專利名稱:一種基于Android的透明數(shù)據(jù)存儲(chǔ)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于Android的透明數(shù)據(jù)存儲(chǔ)的方法和系統(tǒng),屬于移動(dòng)計(jì)算領(lǐng) 域。
背景技術(shù):
Android是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系 統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是一個(gè)為移動(dòng)終端打造 的真正開放和完整的移動(dòng)軟件。隨著移動(dòng)計(jì)算技術(shù)的發(fā)展,手機(jī)的性能越來越強(qiáng)。雖然很多臺(tái)式機(jī)上的應(yīng)用也可 以在手機(jī)上運(yùn)行,但是作為一個(gè)移動(dòng)設(shè)備,手機(jī)的存儲(chǔ)容量還是不足以能夠滿足用戶的所 有需求。另外,手機(jī)設(shè)備的更換頻率也很高,用戶每次更換手機(jī)設(shè)備都需要同步數(shù)據(jù)。這兩 個(gè)問題給用戶造成了很大的麻煩?,F(xiàn)有的手機(jī)已經(jīng)能夠支持通訊錄等重要的數(shù)據(jù)的同步,但是對(duì)于一般的應(yīng)用程序 的配置文件和數(shù)據(jù)文件等還沒有一種通用的解決方法。網(wǎng)絡(luò)文件系統(tǒng)可以擴(kuò)展一臺(tái)設(shè)備上的存儲(chǔ)容量,但是如果要把數(shù)據(jù)存儲(chǔ)在網(wǎng)絡(luò) 上,需要顯式的指定存儲(chǔ)路徑,這樣不兼容現(xiàn)有的手機(jī)應(yīng)用程序。
發(fā)明內(nèi)容
本發(fā)明提供了一種透明的數(shù)據(jù)存儲(chǔ)方法和系統(tǒng)。用戶和應(yīng)用程序看來,文件依然 是在本地的目錄下,但是實(shí)際上文件存儲(chǔ)在服務(wù)器上的,這樣既擴(kuò)展了手機(jī)端的存儲(chǔ)容量, 同時(shí)也避免修改現(xiàn)有的手機(jī)應(yīng)用程序。本發(fā)明的原理是利用用戶文件系統(tǒng)接口模塊提供的機(jī)制,我們可以截獲對(duì)于文 件的各種操作,同時(shí)重新定義這些文件操作的具體實(shí)現(xiàn),把對(duì)于本地文件的操作重新定向 為對(duì)于服務(wù)器上的對(duì)應(yīng)的文件的操作,這樣就實(shí)現(xiàn)了數(shù)據(jù)的透明存儲(chǔ)。本方法包括,讀取系統(tǒng)的配置信息,利用用戶文件系統(tǒng)接口模塊提供一組可以重 新實(shí)現(xiàn)文件操作語義的用戶態(tài)的接口,通過用戶態(tài)的程序?qū)崿F(xiàn)這組用戶態(tài)的文件操作接 口。根據(jù)手機(jī)設(shè)備的網(wǎng)絡(luò)連接情況,提供本地模式和網(wǎng)絡(luò)模式下的基本的文件操作功能。 本地模式下把文件操作重新定向到本地的另一個(gè)目錄下;網(wǎng)絡(luò)模式下利用ftp作為通訊協(xié) 議,把文件操作重定向到服務(wù)器端。網(wǎng)絡(luò)模式下為了提高效率增加了本地緩存,同時(shí)還要保 證手機(jī)端和服務(wù)器端的數(shù)據(jù)一致性。本方明的流程,如附圖1 A.讀取系統(tǒng)的配置文件,獲得ftp服務(wù)器及透明存儲(chǔ)的相關(guān)配置信息,配置信息 主要包括 AA. ftp服務(wù)器的IP地址;AB. ftp服務(wù)器的賬號(hào);AC. ftp服務(wù)器的密碼;
AD.需要透明存儲(chǔ)的數(shù)據(jù)所在的目錄;AE.網(wǎng)絡(luò)模式下本地緩存的目錄。B.用用戶文件系統(tǒng)接口模塊提供一組可以重新實(shí)現(xiàn)文件操作語義的用戶態(tài)的接 口,具體做法為BA.在VFS中注冊(cè)一個(gè)用戶文件系統(tǒng),根據(jù)需要把該文件系統(tǒng)掛載到某個(gè)特定的 目錄;BB.把VFS中的所有文件操作轉(zhuǎn)化為一組接口 ;BC.提供用戶態(tài)庫來實(shí)現(xiàn)和操作系統(tǒng)內(nèi)核之間的通訊,并把自己的接口提供給用 戶態(tài)程序;C.通過用戶態(tài)程序?qū)崿F(xiàn)用戶文件系統(tǒng)接口模塊提供的用戶態(tài)文件操作接口,根據(jù) 手機(jī)設(shè)備的網(wǎng)絡(luò)連接情況,提供本地模式和網(wǎng)絡(luò)模式下的基本的文件操作功能,具體為CA.當(dāng)網(wǎng)絡(luò)連接不好的時(shí)候,采用本地模式把當(dāng)前的文件操作重新定向到另一個(gè) 本地目錄下。所述的本地目錄可以是手機(jī)設(shè)備的擴(kuò)展存儲(chǔ),比如SD卡,也可以是網(wǎng)絡(luò)模式 下使用的本地緩存的目錄。本地模式下具體實(shí)現(xiàn)了如下的文件操作接口 CAl. open操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào)用 open函數(shù),如果得到的句柄有效,返回結(jié)果0 (代表成功),否則返回-1 (代表失敗)。關(guān)閉 句柄;CA2. close操作直接返回成功即可;CA3. stat操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào)用 stat函數(shù),返回執(zhí)行結(jié)果;CA4. create操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào) 用access函數(shù),如果該文件存在那么返回失敗。否則,調(diào)用open函數(shù),指定參數(shù)為文件不 存在則創(chuàng)建。返回open函數(shù)的執(zhí)行結(jié)果;CA5.mkdir操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào) 用mkdir函數(shù),返回執(zhí)行結(jié)果;CA6. unlink操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào) 用unlink函數(shù),返回執(zhí)行結(jié)果;CA7.rmdir操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào) 用rmdir函數(shù),返回執(zhí)行結(jié)果;CAS.read操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào)用 open函數(shù),獲得文件句柄,如果句柄小于0,返回失敗,用Iseek函數(shù)設(shè)置偏移位置,調(diào)用 read函數(shù),關(guān)閉句柄,返回read函數(shù)的執(zhí)行結(jié)果;CA9. write操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,用該路徑作為參數(shù)調(diào) 用open函數(shù),獲得文件句柄,如果句柄小于0,返回失敗,用Iseek函數(shù)設(shè)置偏移位置,調(diào)用 write函數(shù),關(guān)閉句柄,返回write函數(shù)的執(zhí)行結(jié)果;CA10. readdir操作計(jì)算另一個(gè)目錄下對(duì)應(yīng)文件所在的路徑,讀取全部的目錄信 息,返回結(jié)果;CB.當(dāng)網(wǎng)絡(luò)可以連接的時(shí)候,采用網(wǎng)絡(luò)模式文件操作重新定向到ftp服務(wù)器上的 文件,并把結(jié)果返回給手機(jī)端,具體實(shí)現(xiàn)了如下操作
CBl. open操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,通過請(qǐng)求文件的創(chuàng)建時(shí)間來判斷 服務(wù)器端對(duì)應(yīng)的文件是否存在(如果不存在,ftp服務(wù)器返回空指針),如果存在返回成功, 否則,返回失敗。系統(tǒng)默認(rèn)用戶和應(yīng)用程序?qū)λ械耐该鞔鎯?chǔ)的文件都具有最大的權(quán)限;CB2. close操作直接返回成功即可;CB3. stat操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,通過請(qǐng)求文件的創(chuàng)建時(shí)間來判斷 服務(wù)器端對(duì)應(yīng)的文件是否存在,如果不存在,返回失敗,如果存在,那么通過請(qǐng)求該文件的 大小來判斷該文件是普通文件還是目錄文件(目錄文件沒有size屬性,所以如果請(qǐng)求目錄 文件的大小,ftp服務(wù)器返回失敗),設(shè)置該文件的權(quán)限屬性為最大,返回結(jié)果;CB4. create操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,請(qǐng)求ftp服務(wù)器創(chuàng)建文件,返回 請(qǐng)求結(jié)果;CB5. mkdir操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,請(qǐng)求ftp服務(wù)器創(chuàng)建目錄,返回 請(qǐng)求結(jié)果;CB6. unlink操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,請(qǐng)求ftp服務(wù)器刪除文件,返回 請(qǐng)求結(jié)果;CB7. rmdir操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,請(qǐng)求ftp服務(wù)器刪除目錄,返回 請(qǐng)求結(jié)果;CBS.read操作如果本地緩存中不存在該文件,那么更新緩存,然后讀本地副本 的內(nèi)容;CB9. write操作更新服務(wù)器端文件的內(nèi)容,如果本地緩存中有該文件的副本,那 么同時(shí)更新本地緩存;CB10. readdir操作計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,請(qǐng)求ftp服務(wù)器該目錄的內(nèi) 容,解析返回的字符串,提取出所有的文件名以及文件類型(目錄還是普通文件),默認(rèn)所 有文件的權(quán)限都是最大,返回結(jié)果。D.網(wǎng)絡(luò)模式下,增加本地緩存提高運(yùn)行效率,在第一次讀取文件時(shí),緩沖整個(gè)文件 內(nèi)容到本地,來減少后續(xù)讀文件操作的延遲,具體做法;DA. read操作首先檢查本地緩存中是否有該文件的副本,如果不存在副本,請(qǐng)求 ftp服務(wù)器下載該文件到本地緩存中,如果存在,那么直接跳過這一步;DB.利用read函數(shù)讀取本地副本中的內(nèi)容,返回執(zhí)行結(jié)果;E.網(wǎng)絡(luò)模式下,保證手機(jī)端和服務(wù)器端的數(shù)據(jù)一致性,因此當(dāng)write操作更新文 件內(nèi)容時(shí),要保證本地的副本內(nèi)容也被更新;EA. write操作首先檢查本地緩存中是否有該文件的副本,如果存在,那么利用 wirte函數(shù)把更新寫入副本中,否則跳過這一步;EB.計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,如果要求寫入的字節(jié)數(shù)大于ftp —次傳輸?shù)?最大長(zhǎng)度,那么拆分為多次的寫文件的請(qǐng)求,返回一共寫入的字節(jié)數(shù)。本方面同時(shí)包含一種基于Android的支持透明數(shù)據(jù)存儲(chǔ)的系統(tǒng),如圖2所示,該系 統(tǒng)實(shí)現(xiàn)了用戶文件系統(tǒng)接口模塊提供的文件系統(tǒng)接口,把文件操作重新定向到了 ftp服務(wù) 器上。該系統(tǒng)采用本發(fā)明提供的方法實(shí)現(xiàn),主要包括以下幾個(gè)功能單元1.配置單元,主要用于讀取系統(tǒng)的配置文件,確定系統(tǒng)運(yùn)行的各個(gè)參數(shù);2.用戶文件系統(tǒng)接口模塊,,主要用于在VFS中注冊(cè)自己,并提供一組用戶態(tài)的接口來重新實(shí)現(xiàn)文件操作的語義;3.功能單元,主要用于實(shí)現(xiàn)用戶文件系統(tǒng)接口模塊提供的文件操作接口,根據(jù) 網(wǎng)絡(luò)情況分為本地模式的實(shí)現(xiàn)和網(wǎng)絡(luò)模式的實(shí)現(xiàn),網(wǎng)絡(luò)模式下增加了本地緩存功能提高效 率,同時(shí)也解決了本地副本和服務(wù)器文件的一致性問題;4.通信單元,主要用于手機(jī)端和ftp服務(wù)器端通信,封裝ftp協(xié)議的具體議內(nèi) 容,提供各種ftp請(qǐng)求的庫函數(shù)。各模塊之間的關(guān)系如下1.配置單元讀取配置文件,獲得系統(tǒng)運(yùn)行的各項(xiàng)參數(shù),并把這些參數(shù)傳遞給功能 單元;2.用戶文件系統(tǒng)接口模塊會(huì)調(diào)用功能單元的具體實(shí)現(xiàn)來最終完成文件操作;3.功能單元在網(wǎng)絡(luò)模式下,會(huì)通過通信單元與ftp服務(wù)器通信。
圖1 本發(fā)明基于Android的透明數(shù)據(jù)存儲(chǔ)方法流程圖;圖2 本發(fā)明基于Android的透明數(shù)據(jù)存儲(chǔ)系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式下面通過一個(gè)具體的實(shí)施例對(duì)本發(fā)明作進(jìn)一步的闡述。本實(shí)施例是針對(duì)的硬件是HTC生產(chǎn)的G2手機(jī),該手機(jī)上安裝的操作系統(tǒng)是 Android 1. 6,相應(yīng)的Iinux內(nèi)核版本是android-goldfish-2. 6. 29。我們使用一個(gè)臺(tái)式機(jī) 作為ftp服務(wù)器,安裝的操作系統(tǒng)是Ubimtu 9. 04,在該臺(tái)式機(jī)上安裝開源的ftp服務(wù)器軟 件VSftpj^W ftp的用戶,并為每個(gè)用戶建立一個(gè)單獨(dú)的目錄作為他們登錄ftp后的根目 錄,配置ftp服務(wù)器的IP地址為192. 168. 3. 72。本實(shí)施例中采用fuse作為用戶文件系統(tǒng) 接口模塊。本實(shí)施例的測(cè)試程序采用的是一款基于Android系統(tǒng)的看書軟件PkuReader, 主要的功能就是打開txt格式的書籍,提供基本的翻頁,書簽,修改字體和背景等功能。 PkuReader會(huì)在手機(jī)的/data/data/目錄下創(chuàng)建一個(gè)叫做pku. oslab. reader的目錄,在目 錄中創(chuàng)建文件SETTING, xml來保存當(dāng)前的字體,背景,以及書簽位置。本實(shí)施例的目的是透明地存儲(chǔ)PkuReader的配置文件,使得用戶更換了手機(jī)設(shè) 備,只要使用相同的賬號(hào)登錄系統(tǒng),那么具體的實(shí)施步驟如下1.配置系統(tǒng)信息,相應(yīng)的參數(shù)為
ftp服務(wù)器的IP地址;192. 168. 3. 72ftp服務(wù)器的賬號(hào);UseAftp服務(wù)器的密碼;UseA需要透明存儲(chǔ)的數(shù)據(jù)所在的目錄;/data/data/pku. oslab. reader/
7 2.利用fuse提供一組可以重新實(shí)現(xiàn)文件操作語義的 用戶態(tài)的接口,具體過程為V Android默認(rèn)使用的Iinux內(nèi)核并不支持fuse,因此我們需要重新編譯Iinux 的內(nèi)核,在編譯配置選項(xiàng)中添加fuse模塊;V利用fuse文件系統(tǒng)重新掛載/data/data/pku. oslab. reader/目錄,這樣對(duì)于 這個(gè)目錄的所有文件操作都會(huì)被fuse所截獲。3.通過用戶態(tài)的程序?qū)崿F(xiàn)fuse提供的文件操作接口,實(shí)現(xiàn)了本地模式和網(wǎng)絡(luò)模 式兩種情況下的文件操作接口,當(dāng)網(wǎng)絡(luò)連接不上的時(shí)候,系統(tǒng)采用本地模式,當(dāng)網(wǎng)絡(luò)連接上 的時(shí)候,系統(tǒng)采用網(wǎng)絡(luò)模式;具體為V本地模式下,把/data/data/pku. oslab. reader/目錄下的文件操作重新定向 到/data/mfs-cache/目錄下,實(shí)現(xiàn)了本方法所述的10種操作;V網(wǎng)絡(luò)模式下,把/data/data/pku. oslab. reader/目錄下的文件操作重新定向 到ftp服務(wù)器上的/<ftp-path>/UseA/目錄下,我們使用一個(gè)開源的ftp庫Iibftp來完成 于ftp服務(wù)器的通信。4.網(wǎng)絡(luò)模式下,增加本地緩存提高運(yùn)行效率,具體操作為V在手機(jī)端檢查目錄/data/mfs-cache/是否存在,如果不存在,那么創(chuàng)建目錄/ data/mfs-cache/,如果存在,那么需要清空目錄中的所有文件和子目錄,這樣做是為了該 設(shè)備上的本地副本已經(jīng)不是最新的了;V當(dāng)應(yīng)用程序讀取配置文件內(nèi)容時(shí),read操作首先檢查目錄/data/mfs-cache/ 下面是否包含文件SETTING, xml,如果包含,那么直接讀取/data/mfs-cache/SETTING. xml的內(nèi)容,否則下載ftp服務(wù)器上的文件/<ftp-path>/UseA/SETTING. xml 到 /data/mfs-cache/ 目錄下,然后讀取副本內(nèi)容。5.網(wǎng)絡(luò)模式下,保證手機(jī)端和服務(wù)器端的數(shù)據(jù)一致性V當(dāng)應(yīng)用程序?qū)懪渲梦募膬?nèi)容時(shí),首先檢查/data/mfs-cache/目錄下是否有 SETTING, xml文件,如果有那么需要更新/data/mfs-cache/SETTING. xml的內(nèi)容V 更新服務(wù)器端的 /<ftp-path>/UseA/SETTING. xml 的內(nèi)容系統(tǒng)的測(cè)試,首先準(zhǔn)備兩臺(tái)同樣型號(hào)的HTC生產(chǎn)的G2手機(jī)A和B,在A,B上都安 裝我們的透明存儲(chǔ)系統(tǒng)以及PkuReader軟件。首先用賬號(hào)UseA登錄手機(jī)A,保證網(wǎng)絡(luò)連接, 修改PkuReader的配置信息,比如調(diào)整字體大小,更換背景圖片等,然后關(guān)閉手機(jī)A。打開手 機(jī)B,并使用UseA登錄系統(tǒng),保證網(wǎng)絡(luò)連接,進(jìn)入PkuReader軟件,發(fā)現(xiàn)已經(jīng)是新的配置。
權(quán)利要求
一種基于Android的透明數(shù)據(jù)存儲(chǔ)的方法,其特征在于,包括以下步驟a)讀取系統(tǒng)的配置文件,獲得ftp服務(wù)器及透明存儲(chǔ)的相關(guān)配置信息;b)用用戶文件系統(tǒng)接口模塊提供一組可以重新實(shí)現(xiàn)文件操作語義的用戶態(tài)的接口;c)通過用戶態(tài)程序?qū)崿F(xiàn)用戶文件系統(tǒng)接口模塊提供的用戶態(tài)文件操作接口,根據(jù)手機(jī)設(shè)備的網(wǎng)絡(luò)連接情況,提供本地模式和網(wǎng)絡(luò)模式下的基本的文件操作功能;d)網(wǎng)絡(luò)模式下,增加本地緩存提高運(yùn)行效率,在第一次讀取文件時(shí),緩沖整個(gè)文件內(nèi)容到本地,來減少后續(xù)讀文件操作的延遲;e)網(wǎng)絡(luò)模式下,保證手機(jī)端和服務(wù)器端的數(shù)據(jù)一致性,因此當(dāng)write操作更新文件內(nèi)容時(shí),要保證本地的副本內(nèi)容也被更新。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟A中配置的信息包括 Al. ftp服務(wù)器的IP地址;A2. ftp服務(wù)器的賬號(hào);A3, ftp服務(wù)器的密碼;A4.需要透明存儲(chǔ)的數(shù)據(jù)所在的目錄;A5.網(wǎng)絡(luò)模式下本地緩存的目錄。
3.如權(quán)利要求2所述的方法,其特征在于,所述步驟B的實(shí)現(xiàn)方法為Bi.在VFS中注冊(cè)一個(gè)用戶文件系統(tǒng),根據(jù)需要把該文件系統(tǒng)掛載到某個(gè)特定的目錄; B2.把VFS中的所有文件操作轉(zhuǎn)化為一組接口 ;B3.提供用戶態(tài)庫來實(shí)現(xiàn)和操作系統(tǒng)內(nèi)核之間的通訊,并把自己的接口提供給用戶態(tài)程序。4.如權(quán)利要求3所述的方法,其特征在于,所述步驟C的實(shí)現(xiàn)方法為Cl.當(dāng)網(wǎng)絡(luò)連接不好的時(shí)候,采用本地模式把當(dāng)前的文件操作重新定向到另一個(gè)本 地目錄下。所述的本地目錄可以是手機(jī)設(shè)備的擴(kuò)展存儲(chǔ),比如SD卡,也可以是網(wǎng)絡(luò)模式 下使用的本地緩存的目錄;本地模式下具體實(shí)現(xiàn)的文件操作接口包括open,close, stat, create,mkdir,unlink,rmdir,read,write, readdir ;C2.當(dāng)網(wǎng)絡(luò)可以連接的時(shí)候,采用網(wǎng)絡(luò)模式文件操作重新定向到ftp服務(wù)器上的文件, 并把結(jié)果返回給手機(jī)端;網(wǎng)絡(luò)模式下實(shí)現(xiàn)的文件操作接口包括open,close, stat, create, mkdir, unlink, rmdir, read, write, readdir。5.如權(quán)利要求4所述的方法,其特征在于,所述步驟D實(shí)現(xiàn)方法為Dl. read操作首先檢查本地緩存中是否有該文件的副本,如果不存在副本,請(qǐng)求ftp服 務(wù)器下載該文件到本地緩存中,如果存在,那么直接跳過這一步; D2.利用read函數(shù)讀取本地副本中的內(nèi)容,返回執(zhí)行結(jié)果。6.如權(quán)利要求5所述的方法,其特征在于,所述步驟E實(shí)現(xiàn)方法為El. write操作首先檢查本地緩存中是否有該文件的副本,如果存在,那么利用wirte 函數(shù)把更新寫入副本中,否則跳過這一步;E2.計(jì)算服務(wù)器端對(duì)應(yīng)文件的路徑,如果要求寫入的字節(jié)數(shù)大于ftp —次傳輸?shù)淖畲?長(zhǎng)度,那么拆分為多次的寫文件的請(qǐng)求,返回一共寫入的字節(jié)數(shù)。7. 一種基于Android的透明數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,該系統(tǒng)的實(shí)現(xiàn)方法如權(quán)利要 求1所述;系統(tǒng)包含如下幾個(gè)功能單元_配置單元,主要用于讀取系統(tǒng)的配置文件,確定系統(tǒng)運(yùn)行的各個(gè)參數(shù); -用戶文件系統(tǒng)接口模塊,,主要用于在VFS中注冊(cè)自己,并提供一組用戶態(tài)的接口來 重新實(shí)現(xiàn)文件操作的語義;-功能單元,主要用于實(shí)現(xiàn)用戶文件系統(tǒng)接口模塊提供的文件操作接口,根據(jù)網(wǎng)絡(luò)情 況分為本地模式的實(shí)現(xiàn)和網(wǎng)絡(luò)模式的實(shí)現(xiàn),網(wǎng)絡(luò)模式下增加了本地緩存功能提高效率,同 時(shí)也解決了本地副本和服務(wù)器文件的一致性問題;-通信單元,主要用于手機(jī)端和ftp服務(wù)器端通信,封裝ftp協(xié)議的具體議內(nèi)容,提供 各種ftp請(qǐng)求的庫函數(shù)。 各模塊之間的關(guān)系如下1.配置單元讀取配置文件,獲得系統(tǒng)運(yùn)行的各項(xiàng)參數(shù),并把這些參數(shù)傳遞給功能單元;2.用戶文件系統(tǒng)接口模塊會(huì)調(diào)用功能單元的具體實(shí)現(xiàn)來最終完成文件操作;3.功能單元在網(wǎng)絡(luò)模式下,會(huì)通過通信單元與ftp服務(wù)器通信。
全文摘要
本發(fā)明涉及一種基于Android的透明數(shù)據(jù)存儲(chǔ)的方法和系統(tǒng),屬于移動(dòng)計(jì)算領(lǐng)域。本方法包括,讀取系統(tǒng)的配置信息,利用用戶文件系統(tǒng)接口模塊提供一組可以重新實(shí)現(xiàn)文件操作語義的用戶態(tài)的接口,通過用戶態(tài)的程序?qū)崿F(xiàn)這組用戶態(tài)的文件操作接口。根據(jù)手機(jī)設(shè)備的網(wǎng)絡(luò)連接情況,提供本地模式和網(wǎng)絡(luò)模式下的基本的文件操作功能。本地模式下把文件操作重新定向到本地的另一個(gè)目錄下;網(wǎng)絡(luò)模式下利用ftp作為通訊協(xié)議,把文件操作重定向到服務(wù)器端。網(wǎng)絡(luò)模式下為了提高效率增加了本地緩存,同時(shí)還要保證手機(jī)端和服務(wù)器端的數(shù)據(jù)一致性。
文檔編號(hào)H04L29/08GK101902502SQ20101024771
公開日2010年12月1日 申請(qǐng)日期2010年8月8日 優(yōu)先權(quán)日2010年8月8日
發(fā)明者馮濤, 孔俊俊, 趙霞, 郭耀, 陳向群 申請(qǐng)人:北京大學(xué)