基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法
【專利摘要】本發(fā)明公開(kāi)了一種基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,主要解決了現(xiàn)有技術(shù)中存在的webkit動(dòng)態(tài)加載本地庫(kù)的能力較差,且在webkit中擴(kuò)展自己應(yīng)用的能力較差,無(wú)法滿足用戶需求的問(wèn)題。該基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,包括以下步驟:webkit根據(jù)用戶提供的.idl文件編譯生成JSXXX.cpp、JSXX.h、webkitDOMXXX.cpp、webkitDOMXXX.h及webkitDOMXXXPrivate.h文件;用戶將與頁(yè)面展示有關(guān)的擴(kuò)展操作放置到/Source/webCore/page目錄下,并將該擴(kuò)展操作的接口函數(shù)編寫(xiě)入對(duì)應(yīng)的.cpp文件中;根據(jù)用戶的擴(kuò)展操作編寫(xiě)符合WEBIDL規(guī)范的idl文件,并對(duì)makefile.am文件的編譯過(guò)程、DOMWindow.h、DOMWindow.cpp和DOMWindow.idl進(jìn)行相應(yīng)修改。通過(guò)上述方案,本發(fā)明達(dá)到了擴(kuò)展性較高、使用方便的目的,具有很高的實(shí)用價(jià)值和推廣價(jià)值。
【專利說(shuō)明】基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種擴(kuò)展方法,具體地說(shuō),是涉及一種基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法。
【背景技術(shù)】
[0002]隨著無(wú)線通信技術(shù)的發(fā)展,移動(dòng)終端日益普及,移動(dòng)互聯(lián)網(wǎng)用戶和業(yè)務(wù)呈爆炸式增長(zhǎng),預(yù)計(jì)未來(lái)3年內(nèi)中國(guó)的移動(dòng)互聯(lián)網(wǎng)用戶將超過(guò)電腦上網(wǎng)用戶,5年內(nèi),移動(dòng)互聯(lián)網(wǎng)業(yè)務(wù)的規(guī)模將超過(guò)傳統(tǒng)的互聯(lián)網(wǎng)。
[0003]同時(shí),隨著互聯(lián)網(wǎng)的不斷發(fā)展,數(shù)據(jù)在網(wǎng)絡(luò)上所呈現(xiàn)出的形式越來(lái)越多,數(shù)據(jù)的規(guī)模也以超出人們想象的速度增長(zhǎng),單憑一臺(tái)或幾臺(tái)服務(wù)器的處理能力是遠(yuǎn)遠(yuǎn)滿足不了需求的。而對(duì)于很多大型運(yùn)營(yíng)商,其業(yè)務(wù)對(duì)數(shù)據(jù)集進(jìn)行計(jì)算和分析的能力對(duì)計(jì)算資源提出了非常高的要求,并且在業(yè)務(wù)服務(wù)處理方面對(duì)系統(tǒng)的可靠性、容錯(cuò)性和一致性等性能方面都提出了挑戰(zhàn),因而,采用分布式計(jì)算引擎平臺(tái)成為了可能,充分利用單個(gè)計(jì)算資源的能力來(lái)對(duì)大規(guī)模數(shù)據(jù)集進(jìn)行處理,這也就是我們的云存儲(chǔ)后臺(tái)系統(tǒng)所提供的功能。
[0004]瀏覽器作為互聯(lián)網(wǎng)時(shí)代用戶入網(wǎng)的入口,在網(wǎng)絡(luò)中的地位不言而喻,如何實(shí)現(xiàn)快速開(kāi)發(fā)、部署各類業(yè)務(wù),滿足用戶在學(xué)習(xí)、生活、工作等多方面的業(yè)務(wù)需求,成為業(yè)界特別是移動(dòng)運(yùn)營(yíng)商關(guān)注的焦點(diǎn)之一。其中,Mobile Widget (移動(dòng)微技)憑借其技術(shù)門(mén)檻低、用戶體驗(yàn)好、可跨平臺(tái)運(yùn)行等優(yōu)點(diǎn),成為新一代移動(dòng)互聯(lián)網(wǎng)終端應(yīng)用的最佳技術(shù)。目前,全球包括中國(guó)移動(dòng)、沃達(dá)豐、雅虎、谷歌、諾基亞等諸多知名的電信運(yùn)營(yíng)商、互聯(lián)網(wǎng)公司、手機(jī)終端廠商都相繼推出自己的Widget產(chǎn)品,Widget應(yīng)用已成為終端用戶的新寵。而webkit作為當(dāng)前主流的瀏覽器內(nèi)核也成為了 Widget內(nèi)核的首選,然而webkit動(dòng)態(tài)加載本地庫(kù)的能力較差,且在webkit中擴(kuò)展自己應(yīng)用的能力較差,無(wú)法滿足用戶需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,主要解決現(xiàn)有技術(shù)中存在的webkit動(dòng)態(tài)加載本地庫(kù)的能力較差,且在webkit中擴(kuò)展自己應(yīng)用的能力較差,無(wú)法滿足用戶需求的問(wèn)題。
[0006]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,包括以下步驟:
(1)webkit 根據(jù)用戶提供的.1dl 文件編譯生成 JSXXX.cpp、JSXX.h、webkitDOMXXX.cpp> webkitDOMXXX.h 及 webkitDOMXXXPrivate.h 文件;
(2)用戶將與頁(yè)面展示有關(guān)的擴(kuò)展操作放置到/Source/webCore/page目錄下,并將該擴(kuò)展操作的接口函數(shù)編寫(xiě)入對(duì)應(yīng)的.cpp文件中;
(3)根據(jù)用戶的擴(kuò)展操作編寫(xiě)符合WEBIDL規(guī)范的idl文件,并對(duì)makefile, am文件的編譯過(guò)程、DOMWindow.h、DOMWindow.cpp和DOMWindow.1dl進(jìn)行相應(yīng)修改。本發(fā)明中的修改方式優(yōu)選在DOMWindow.1dl屬性欄添加DOMWindow.h中聲明的對(duì)象名稱,屬性值設(shè)為Replaceable。
[0007]所述步驟(3)中,makefile, am文件的編譯過(guò)程如下:
(3a)在 Source/WebCore 下的 GNUmakefile.list, am 中添加對(duì)應(yīng)的 h、cpp、idl、JSXXX.h 和 JSXXX.cpp 文件;
(3b)在 Source/ffebCore/bindings/gob ject 下的 GNUmakefile.am 中添加對(duì)應(yīng)的WebKitDOMXXX.h 和 WebkitDOMXXX.cpp 文件。
[0008]具體地說(shuō),所述idl文件包括idl屬性、接口屬性和參數(shù)。
[0009]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
(I)通過(guò)使用本發(fā)明,用戶可以便捷地通過(guò)操作界面的形式進(jìn)行服務(wù)的接入,大大提升了整套系統(tǒng)的用戶體驗(yàn),通過(guò)與云存儲(chǔ)后臺(tái)服務(wù)系統(tǒng)的協(xié)作能夠提供給用戶較便捷的存儲(chǔ)服務(wù)的操作、實(shí)現(xiàn)本地的擴(kuò)展,從而降低了前端用戶的操作復(fù)雜度、增加了整個(gè)系統(tǒng)的通用性,可以使用戶方便、快捷的通過(guò)網(wǎng)頁(yè)的形式接受云存儲(chǔ)系統(tǒng)等提供的服務(wù),具有突出的實(shí)質(zhì)性特點(diǎn)和顯著進(jìn)步,適合大規(guī)模推廣應(yīng)用。
【具體實(shí)施方式】
[0010]下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,本發(fā)明的實(shí)施方式包括但不限于下列實(shí)施例。
實(shí)施例
[0011]為了解決現(xiàn)有技術(shù)中存在的webkit動(dòng)態(tài)加載本地庫(kù)的能力較差,且在webkit中擴(kuò)展自己應(yīng)用的能力較差,無(wú)法滿足用戶需求的問(wèn)題,本發(fā)明公開(kāi)了一種基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,由于現(xiàn)有技術(shù)中外部用戶主要通過(guò)HTTP協(xié)議與網(wǎng)關(guān)進(jìn)行交互,由網(wǎng)關(guān)進(jìn)行協(xié)議轉(zhuǎn)換之后再與內(nèi)部存儲(chǔ)系統(tǒng)交互,內(nèi)部存儲(chǔ)系統(tǒng)根據(jù)請(qǐng)求進(jìn)行相應(yīng)的服務(wù)之后再將回復(fù)請(qǐng)求發(fā)送至網(wǎng)關(guān),再由網(wǎng)關(guān)對(duì)外提供客戶請(qǐng)求的回復(fù),因而,本發(fā)明對(duì)前端與網(wǎng)關(guān)之間交互的部分進(jìn)行了研發(fā)改進(jìn),通過(guò)將云存儲(chǔ)系統(tǒng)的API添加至webkit內(nèi)核中實(shí)現(xiàn)對(duì)瀏覽器功能的擴(kuò)展,其主要包括以下步驟:
采用binding的方式,即webkit根據(jù)用戶提供的.1dl文件編譯生成JSXXX.cpp、JSXXX.h,WebKitDOMXXX.cpp,WebKitDOMXXX.h 及 WebKitDOMXXXPrivate.h 文件,其中,生成的JSXXX.cpp和JSXXX.h與服務(wù)器中原有的JavascriptCore相關(guān)聯(lián);
將與頁(yè)面展示有關(guān)的擴(kuò)展操作放到/Source/webCore/page目錄下;
編寫(xiě)接口函數(shù),將接口函數(shù)編寫(xiě)入用戶需要的.cpp文件中;編寫(xiě)包括IDL屬性、接口屬性和參數(shù)等的idl文件,其中,IDL接口規(guī)范參考WEB IDL規(guī)范;對(duì)DOMWindow.h、DOMWindow.cpp 和 DOMWindow.1dl 進(jìn)行相應(yīng)修改;
修改 makefile, am 文件的編譯過(guò)程,即在 Source/WebCore 下的 GNUmakefile.list, am中添加對(duì)應(yīng)的h、cpp和 idl 文件以及 JSXXX.h和 JSXXX.cpp ;在 Source/WebCore/bindings/gob ject 下的 GNUmakefile.am 中添加對(duì)應(yīng)的 WebKitDOMXXX.h> WebkitDOMXXX.cpp。
[0012]以DOMWindow 和 JSDOMWindow 為例,其中,JSDOMWindow 只提供接口的語(yǔ)義,DOMWindow提供其具體的實(shí)現(xiàn)。通過(guò)HTML到JS再到C++的三級(jí)映射關(guān)系最終實(shí)現(xiàn)它的功能,即在HTML中調(diào)用javascript接口,而javascript與C++之間為接口與實(shí)現(xiàn)的關(guān)系,即接口采用javascript方式進(jìn)行定義而接口的實(shí)現(xiàn)采用C++的方式。其中與后臺(tái)服務(wù)系統(tǒng)交互的部分通過(guò)C++對(duì)象進(jìn)行封裝,將封裝好的對(duì)象放入/WebCore/page目錄下;同時(shí),編寫(xiě)IDL文件,系統(tǒng)會(huì)根據(jù)IDL文件解析并轉(zhuǎn)化為JS的調(diào)用接口以便與上層接口發(fā)生聯(lián)系。
[0013]按照以上步驟,就可以實(shí)現(xiàn)相應(yīng)接口的本地功能擴(kuò)展。
[0014]本發(fā)明中,API主要模擬了 HTTP協(xié)議的報(bào)文格式,對(duì)HTTP協(xié)議進(jìn)行了封裝,通過(guò)發(fā)送HTTP報(bào)文對(duì)后臺(tái)服務(wù)器提出請(qǐng)求來(lái)實(shí)現(xiàn)用戶所需的功能。為了得以實(shí)現(xiàn),需通過(guò)webkit在應(yīng)用層加載html頁(yè)面的方式調(diào)用應(yīng)用層API接口。接口釋義如表1:
表I
【權(quán)利要求】
1.基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,其特征在于,包括以下步驟: (1)webkit 根據(jù)用戶提供的.1dl 文件編譯生成 JSXXX.cpp、JSXX.h、webkitDOMXXX.cpp、webkitDOMXXX.h 及 webkitDOMXXXPrivate.h 文件; (2)用戶將與頁(yè)面展示有關(guān)的擴(kuò)展操作放置到/Source/webCore/page目錄下,并將該擴(kuò)展操作的接口函數(shù)編寫(xiě)入對(duì)應(yīng)的.cpp文件中; (3)根據(jù)用戶的擴(kuò)展操作編寫(xiě)符合WEBIDL規(guī)范的idl文件,并對(duì)makefile, am文件的編譯過(guò)程、DOMWindow.h> DOMWindow.cpp 和 DOMWindow.1dl 進(jìn)行相應(yīng)修改。
2.根據(jù)權(quán)利要求1所述的基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,其特征在于,所述步驟(3)中,makefile, am文件的編譯過(guò)程如下: (3a)在 Source/WebCore 下的 GNUmakefile.list, am 中添加對(duì)應(yīng)的 h、cpp、idl、JSXXX.h 和 JSXXX.cpp 文件; (3b)在 Source/ffebCore/bindings/gobject 下的 GNUmakefile.am 中添加對(duì)應(yīng)的WebKitDOMXXX.h 和 WebkitDOMXXX.cpp 文件。
3.根據(jù)權(quán)利要求2所述的基于webkit內(nèi)核的存儲(chǔ)資源服務(wù)的本地?cái)U(kuò)展方法,其特征在于,所述idl文件包括idl屬性、接口屬性和參數(shù)。
【文檔編號(hào)】G06F9/44GK103440134SQ201310391885
【公開(kāi)日】2013年12月11日 申請(qǐng)日期:2013年9月2日 優(yōu)先權(quán)日:2013年9月2日
【發(fā)明者】段翰聰, 詹文翰, 秦小寒 申請(qǐng)人:電子科技大學(xué)