專利名稱:瀏覽器插件的生成、發(fā)布、加載和更新方法以及系統(tǒng)的制作方法
技術領域:
本申請涉及一種瀏覽器插件的生成、發(fā)布、加載、更新方法以及使用所述方法的系統(tǒng)以及瀏覽器插件,尤其涉及一種將依賴于瀏覽器的功能函數(shù)封裝在插件中,而單獨部署在其中調(diào)用為相關功能定義的虛擬API的業(yè)務邏輯代碼,并且通過動態(tài)接口加載所述業(yè)務邏輯代碼,從而實現(xiàn)瀏覽器插件的快速迭代和更新。
背景技術:
為了加強用戶粘度或者為用戶提供便捷的服務,很多互聯(lián)網(wǎng)產(chǎn)品提供配套的瀏覽器插件作為輔助。互聯(lián)網(wǎng)產(chǎn)品的優(yōu)點是能夠快速迭代并方便維護,而且發(fā)布一個版本就能在各種操作系統(tǒng)的瀏覽器下使用。但是,瀏覽器插件更像是一個客戶端產(chǎn)品,它的更新機制并不像傳統(tǒng)互聯(lián)網(wǎng)產(chǎn)品那樣,能夠立即上線、立即生效,而是通過瀏覽器自身的機制檢測更新,甚至低版本的瀏覽器需要用戶手動更新插件。此外,不同瀏覽器的插件API都是不兼容的,因此特定的插件只能在特定的瀏覽器下使用。以上兩個瀏覽器插件的特性與互聯(lián)網(wǎng)產(chǎn)品的特性發(fā)生了強烈的沖突。傳統(tǒng)的開發(fā)互聯(lián)網(wǎng)產(chǎn)品的配套瀏覽器插件的方式為整個產(chǎn)品的維護、升級和快速迭代帶來了巨大的成本和挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種瀏覽器插件的生成、發(fā)布、加載和更新方法以及使用所述方法的系統(tǒng)和瀏覽器插件,通過單獨部署獨立于瀏覽器的業(yè)務邏輯代碼,而將依賴于瀏覽器的代碼封裝在實際發(fā)布到客戶端的瀏覽器插件中,為多種瀏覽器發(fā)布的瀏覽器插件可共享業(yè)務邏輯代碼,從而實現(xiàn)瀏覽器插件的快速開發(fā)和快速迭代。根據(jù)本發(fā)明的一方面,提供一種生成瀏覽器插件的方法,所述方法包括定義調(diào)用至少一個虛擬API的業(yè)務邏輯代碼;為所述至少一個虛擬API構(gòu)建適于特定瀏覽器的API函數(shù);構(gòu)建用于定位所述業(yè)務邏輯代碼的插件啟動接口 ;構(gòu)建適于所述特定瀏覽器的瀏覽器插件,其中,將用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及構(gòu)建的適于所述特定瀏覽器的API函數(shù)封裝在瀏覽器插件中。所述的方法可還包括定義一個或多個虛擬API ;其中,定義的業(yè)務邏輯代碼可調(diào)用所述一個或多個虛擬API。所述業(yè)務邏輯代碼可以是腳本代碼。所述的方法可還包括將記錄有所述業(yè)務邏輯代碼的代碼文件部署在服務器的特
定位置。所述的方法可還包括在所述特定位置還部署業(yè)務邏輯代碼的資源文件,其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。所述的方法可還包括將插件啟動接口部署在所述服務器或另一服務器上。
根據(jù)本發(fā)明的另一方面,提供一種發(fā)布瀏覽器插件的方法,所述方法包括將業(yè)務邏輯代碼的代碼文件部署在第一服務器上;將用于定位所述代碼文件的插件啟動接口部署在第二服務器的特定位置上;將插件代碼發(fā)布到公眾可訪問的指定位置上,以用于客戶機下載所述插件代碼。其中,業(yè)務邏輯代碼調(diào)用至少一個虛擬API,發(fā)布的插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。所述業(yè)務邏輯代碼可以是腳本代碼。所述的方法可還包括在所述特定位置上還部署業(yè)務邏輯代碼的資源文件,其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。所述第一服務器和第二服務器可以是同一服務器。根據(jù)本發(fā)明的另一方面,提供一種加載瀏覽器插件的方法,所述方法包括,在瀏覽器插件中通過調(diào)用在其中封裝的插件啟動接口的代碼調(diào)用部署在第一服務器上的插件啟動接口,以定位第二服務器上的業(yè)務邏輯代碼;從第二服務器加載定位的業(yè)務邏輯代碼。其中,瀏覽器插件中的插件代碼封裝有用于加載所述業(yè)務邏輯代碼的代碼、用于調(diào)用部署在第一服務器上的插件啟動接口的代碼以及適于所述瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù),所述插件啟動接口用于定位第二服務器上的業(yè)務邏輯代碼。所述業(yè)務邏輯代碼可以是腳本代碼。所述的方法可還包括在第二服務器上還部署業(yè)務邏輯代碼的資源文件,其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。所述第一服務器和第二服務器可以是同一服務器。根據(jù)本發(fā)明的另一方面,提供一種更新瀏覽器插件的方法,所述方法包括修改實現(xiàn)特定業(yè)務邏輯的業(yè)務邏輯代碼;將記錄有所述修改的業(yè)務邏輯代碼的第一代碼文件部署到第一服務器上的特定位置,其中,在所述特定位置上已部署有第二代碼文件,所述第二代碼文件記錄有修改前的業(yè)務邏輯代碼,并且第一代碼文件與第二代碼文件具有不同的文件名;更新先前部署在第二服務器上的插件啟動接口,以使插件啟動接口定位第一代碼文件,其中,所述業(yè)務邏輯代碼調(diào)用至少一個虛擬API,先前發(fā)布的插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。所述業(yè)務邏輯代碼可以是腳本代碼。所述的方法可還包括創(chuàng)建所述業(yè)務邏輯代碼的第一資源文件,并且在所述特定位置上還部署第一資源文件,所述第一資源文件與先前部署的第二資源文件具有不同的文件名,其中,所述插件啟動接口用于定位第一代碼文件以及第一資源文件。所述第一服務器和第二服務器可以是同一服務器。本發(fā)明還提供一種使用上述的瀏覽器插件的生成、發(fā)布、加載和更新方法的系統(tǒng)以及瀏覽器插件。
通過下面結(jié)合附圖進行的描述,本發(fā)明的上述和其他目的和特點將會變得更加清楚,其中
圖1是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的開發(fā)方法的流程圖;圖2是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的發(fā)布方法的流程圖;圖3是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的加載方法的流程圖;圖4是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的更新方法的流程圖;圖5是示出實現(xiàn)根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的開發(fā)、發(fā)布和更新方法的系統(tǒng)的示意圖;圖6 圖12示出根據(jù)本發(fā)明的示例性實施例的用于瀏覽器開發(fā)的示例性代碼。
具體實施例方式以下,將參照附圖來詳細說明本發(fā)明的實施例。在本發(fā)明中將瀏覽器插件分為兩個部分,在此稱為內(nèi)核部分和業(yè)務邏輯部分。內(nèi)核部分將被封裝為實際發(fā)布給客戶端的瀏覽器插件,其包含插件基礎框架以及插件中依賴于瀏覽器的代碼,內(nèi)核部分不包括業(yè)務邏輯。業(yè)務邏輯部分則如同傳統(tǒng)的互聯(lián)網(wǎng)產(chǎn)品的上線方式,被部署到靜態(tài)服務器上,所述業(yè)務邏輯部分包含業(yè)務邏輯代碼,所述業(yè)務邏輯代碼不依賴于諸如FireFox瀏覽器、Chromo瀏覽器、搜狗瀏覽器等的特定的瀏覽器。為此,根據(jù)本發(fā)明的示例性實施例,為依賴瀏覽器的特定功能定義虛擬API (應用程序接口)。相應地,在業(yè)務邏輯部分的業(yè)務邏輯代碼中通過調(diào)用定義好的虛擬API來執(zhí)行所述特定功能,并且將為所述虛擬API構(gòu)建的適于特定瀏覽器的API函數(shù)封裝在所述內(nèi)核部分。此外,構(gòu)建指示業(yè)務邏輯代碼的位置的啟動接口,并且內(nèi)核部分在啟動時通過調(diào)用所述啟動接口來加載所述業(yè)務邏輯代碼。圖5示意性地示出根據(jù)本發(fā)明的示例性實施例的用于部署本發(fā)明的瀏覽器插件的各個部分的系統(tǒng)。其中,服務器I是用于部署上述的業(yè)務邏輯部分的靜態(tài)服務器;應用庫2是公眾可訪問的公共主機,通常是用于公眾訪問并下載瀏覽器插件的應用商店;而服務器3是用于運行服務的服務器,用于部署、運行所述的啟動接口,還可運行其他的接口服務。根據(jù)訪問流量,服務器I和服務器3從物理上可以是同一臺服務器。圖1是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的開發(fā)方法的流程圖,圖6 圖12示出根據(jù)本發(fā)明的示例性實施例的用于瀏覽器開發(fā)的示例性代碼。以下將參照圖1和圖6 圖12詳細描述根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的開發(fā)方法。在當前的示例性實施例中,以Firefox和Chrome瀏覽器為例示出本發(fā)明針對不同瀏覽器開發(fā)瀏覽器插件的方法。當然,本發(fā)明不限于這兩種瀏覽器,而是適用于任何已有或未來開發(fā)的具有相似工作原理的瀏覽器。在當前的示例性實施例中,示出在網(wǎng)頁上通過點擊一個打印按鈕來打印當前頁面中的全部圖片的情形。在不同的瀏覽器中,用于打印功能而調(diào)用的接口函數(shù)不同。例如,圖
7和圖8分別示出在Chrome瀏覽器和Firefox瀏覽器中打印圖片的接口函數(shù)。參照圖1,在步驟S110,瀏覽器插件生成系統(tǒng)為一個或多個特定功能分別定義虛擬應用程序接口(API)。所述特定功能通常為依賴于瀏覽器的任何功能,例如執(zhí)行打印的功能。為了屏蔽不同瀏覽器中用于打印的功能的接口函數(shù)的差異,定義如圖6示出的用于在網(wǎng)頁中執(zhí)行打印功能的虛擬API的示例代碼。其中,Extension. printlmgO是所述打印API,以圖片URL、打印寬度和打印高度作為參數(shù)??梢钥闯?,針對所述兩種瀏覽器,用于打印的類、方法以及參數(shù)都不相同。在步驟S120,瀏覽器插件生成系統(tǒng)定義在其中調(diào)用至少一個所述虛擬API的業(yè)務邏輯代碼(也就是前述的瀏覽器插件的業(yè)務邏輯部分)。根據(jù)本發(fā)明的可選實施例,所述業(yè)務邏輯代碼可以是腳本。圖12示出調(diào)用圖6中的打印API的腳本代碼,其中,在printBtn被點擊時,獲得頁面上的全部圖像,此后,針對每個圖像,調(diào)用Extension. printlmgO。在此,可以看出,所述業(yè)務邏輯代碼不包括依賴于瀏覽器的代碼。記錄有所述業(yè)務邏輯代碼的代碼文件將被部署到服務器的特定位置,所述特定位置通常是服務器上的某個目錄。根據(jù)本發(fā)明的優(yōu)選實施例,在所述特定位置還部署業(yè)務邏輯代碼的資源文件,如CSS文件。在步驟S130,瀏覽器插件生成系統(tǒng)為所述至少一個虛擬API構(gòu)建適于特定瀏覽器的API函數(shù)。針對圖6中示出的打印API,為Firefox瀏覽器的插件定義如圖11的上端所示的API函數(shù),在所述API函數(shù)中調(diào)用在Firefox瀏覽器中用于打印的Firefox. print ()接口函數(shù);另一方面,針對同一個API,為Chrome瀏覽器的插件定義的API函數(shù)如圖11的下端所示,在所述API函數(shù)中調(diào)用在Chrome瀏覽器中用于打印的Chrome. printlmgO接口函數(shù)。此后,在步驟S140,瀏覽器插件生成系統(tǒng)構(gòu)建用于定位所述業(yè)務邏輯代碼的插件啟動接口。假設瀏覽器插件在啟動時調(diào)用的http接口地址為http://server-host,com/abc/extension-start,記錄有圖12所示的用于打印的業(yè)務邏輯代碼的文件被命名為print1. 0. js,圖9示出所述http接口返回的結(jié)果,即構(gòu)建的用于定位所述業(yè)務邏輯代碼的插件啟動接口。根據(jù)本發(fā)明的示例性實施例,所述插件啟動接口用于定位位于static-host上的print1. 0. js文件以及所述業(yè)務邏輯代碼的資源文件print1. 0. css。所述插件啟動接口可被部署在部署業(yè)務邏輯代碼的代碼文件的服務器上,也可被部署在另一服務器上。在步驟S150,所述瀏覽器插件生成系統(tǒng)構(gòu)建適于特定瀏覽器的瀏覽器插件(也就是前述的瀏覽器插件的內(nèi)核部分)。在構(gòu)建將被發(fā)布的瀏覽器插件的處理中,除了封裝插件基礎框架以外,還在所述瀏覽器插件中封裝在步驟S130構(gòu)建的依賴于瀏覽器的代碼(如圖
11中示出的用于Firefox瀏覽器或Chrome瀏覽器的API函數(shù))、用于調(diào)用在步驟S140構(gòu)建的啟動接口的代碼以及用于加載在步驟S120定義的業(yè)務邏輯代碼。圖10示例性地示出瀏覽器插件的加載框架,其中,ajax. get()用于調(diào)用啟動接口,而IoadCssO和IoadScriptO用于加載業(yè)務邏輯代碼。在不同的瀏覽器中,加載框架比較相似。由此,完成本發(fā)明的生成瀏覽器插件的方法。根據(jù)本發(fā)明的另一示例性實施例,不執(zhí)行步驟S110,而是在步驟S120,瀏覽器插件生成系統(tǒng)定義在其中調(diào)用至少一個預先定義的虛擬API的業(yè)務邏輯代碼。也就是說,步驟SllO不是必需的步驟,所述至少一個虛擬API可以由本發(fā)明的瀏覽器插件生成系統(tǒng)定義,也可以是預先由第三方定義的虛擬API,只要是業(yè)務邏輯代碼可以調(diào)用以實現(xiàn)特定功能的虛擬API即可。通過上述關于本發(fā)明的示例性實施例的瀏覽器插件的生成方法的描述可以看出,本發(fā)明將插件中依賴于瀏覽器的代碼和獨立于瀏覽器的代碼分離,而將所述獨立于瀏覽器的代碼單獨進行部署,從而當業(yè)務邏輯發(fā)生改變時,不需要更新整個瀏覽器插件,而僅通過修改的插件啟動插口可調(diào)用更新的業(yè)務邏輯代碼,實現(xiàn)瀏覽器插件的快速迭代和更新。圖2是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的發(fā)布方法的流程圖。如前參照圖1所述來生成在此要發(fā)布的瀏覽器插件,即瀏覽器插件的業(yè)務邏輯代碼調(diào)用至少一個虛擬API,封裝在瀏覽器插件中的插件代碼(前述的內(nèi)核部分)封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。參照圖2,在步驟S210,瀏覽器插件發(fā)布系統(tǒng)將業(yè)務邏輯代碼的代碼文件部署在第一服務器(例如圖6中的服務器I)上。所述代碼文件例如記錄為如圖12所述的腳本代碼的代碼文件。在步驟S220,瀏覽器插件發(fā)布系統(tǒng)將用于定位所述代碼文件的插件啟動接口部署在第二服務器(例如圖6中的服務器3)的特定位置上。例如,可將如圖9所示的作為插件啟動接口的extension-start部署在第二服務器上。根據(jù)本發(fā)明的可選實施例,所述第一服務器和第二服務器是同一服務器。在步驟S230,瀏覽器插件發(fā)布系統(tǒng)將封裝的插件代碼作為瀏覽器插件發(fā)布到公眾可訪問的指定位置(如圖6中的應用庫2)上,以用于客戶機下載所述瀏覽器插件。根據(jù)本發(fā)明的優(yōu)選實施例,瀏覽器插件發(fā)布系統(tǒng)在所述特定位置上還部署業(yè)務邏輯代碼的資源文件,所述插件啟動接口用于定位所述代碼文件以及資源文件。圖3是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的加載方法的流程圖。如前參照圖1所述來生成在此要發(fā)布的瀏覽器插件,即瀏覽器插件的業(yè)務邏輯代碼調(diào)用至少一個虛擬API,封裝在瀏覽器插件中的插件代碼封裝有用于調(diào)用部署在第一服務器上的插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及適于所述瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù),所述插件啟動接口用于定位第二服務器上的業(yè)務邏輯代碼。參照圖3,當在步驟S310瀏覽器插件啟動時,在步驟S320,瀏覽器插件調(diào)用在其中封裝的插件啟動接口的代碼,以調(diào)用部署在第一服務器上的插件啟動接口。這樣,瀏覽器插件可定位第二服務器上的業(yè)務邏輯代碼。如圖10所示的插件代碼通過調(diào)用ajax. get()來調(diào)用插件啟動接口,所述接口返回如圖9所示的結(jié)果。在此基礎上,在步驟S330,瀏覽器插件加載插件啟動接口返回的業(yè)務邏輯代碼。自此,完成所述瀏覽器插件的加載。圖4是示出根據(jù)本發(fā)明的示例性實施例的瀏覽器插件的更新方法的流程圖。如前參照圖1所述來生成在此要發(fā)布的瀏覽器插件,即瀏覽器插件的業(yè)務邏輯代碼調(diào)用至少一個虛擬API,插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。在圖12示出的業(yè)務邏輯代碼中,打印圖片的分辨率是800*600?,F(xiàn)在假設需要將代碼中的800*600改為1024*768。參照圖4,在步驟S410,瀏覽器插件更新系統(tǒng)修改實現(xiàn)特定業(yè)務邏輯的業(yè)務邏輯代碼。例如,在圖12的示例中,將作為調(diào)用參數(shù)的800和600分別修改為1024和768。在步驟S420,瀏覽器插件更新系統(tǒng)將記錄有所述修改的業(yè)務邏輯代碼的第一代碼文件部署到第一服務器上的特定位置。在所述特定位置上已部署有先前版本的第二代碼文件,第一代碼文件與第二代碼文件具有不同的文件名。例如,將記錄有步驟S410的業(yè)務邏輯代碼的代碼文件命名為print_l.1. js,并且將print_l.1. js先前部署print_l. 0. js的
同一位置。根據(jù)本發(fā)明的優(yōu)選實施例,瀏覽器插件還創(chuàng)建所述業(yè)務邏輯代碼的第一資源文件,并且在所述特定位置上還部署第一資源文件,所述第一資源文件與先前部署的第二資源文件具有不同的文件名。例如,可創(chuàng)建相應于print_l.1. js的資源文件print_l.1. css,并且在先前已部署print_. 0. css的同一位置部署print_l.1. css。在步驟S430,瀏覽器插件更新系統(tǒng)更新先前部署在第二服務器上的插件啟動接口,以使插件啟動接口定位第一代碼文件。當存在第一代碼文件的資源文件時,更新的插件啟動接口還用于定位第一資源文件。例如,修改如圖8所示的插件啟動接口,將其中的print_l. 0. js 和 print_l. 0. css 分別更新為 print_l.1. js 和 print_l.1. css。根據(jù)本發(fā)明的可選實施例,所述第一服務器和第二服務器是同一服務器。至此,當用戶再次打開瀏覽器,啟動先前下載的同一瀏覽器插件時,不需要重新下載瀏覽器插件,就可以通過調(diào)用更新的插件啟動接口,加載已更新的業(yè)務邏輯代碼。此外,由于單獨部署的業(yè)務邏輯代碼獨立于瀏覽器,不同瀏覽器可共享同一業(yè)務邏輯代碼,因此同一業(yè)務邏輯代碼的更新適用于為多種瀏覽器發(fā)布的瀏覽器插件,便于更新和迭代。本發(fā)明還提供一種用于實現(xiàn)瀏覽器插件的生成、發(fā)布、加載和更新方法的系統(tǒng)以及瀏覽器插件。盡管已參照優(yōu)選實施例表示和描述了本發(fā)明,但本領域技術人員應該理解,在不脫離由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對這些實施例進行各種修改和變換。
權(quán)利要求
1.一種生成瀏覽器插件的方法,所述方法包括 定義調(diào)用至少一個虛擬應用程序接口(API)的業(yè)務邏輯代碼; 為所述至少一個虛擬API構(gòu)建適于特定瀏覽器的API函數(shù); 構(gòu)建用于定位所述業(yè)務邏輯代碼的插件啟動接口; 構(gòu)建適于所述特定瀏覽器的瀏覽器插件,其中,將用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及構(gòu)建的適于所述特定瀏覽器的API函數(shù)封裝在瀏覽器插件中。
2.如權(quán)利要求1所述的方法,還包括定義一個或多個虛擬API, 其中,定義的業(yè)務邏輯代碼調(diào)用所述一個或多個虛擬API。
3.如權(quán)利要求1所述的方法,其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
4.如權(quán)利要求3所述的方法,還包括將記錄有所述業(yè)務邏輯代碼的代碼文件部署在服務器的特定位置。
5.如權(quán)利要求4所述的方法,還包括在所述特定位置還部署業(yè)務邏輯代碼的資源文件, 其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。
6.如權(quán)利要求5所述的方法,還包括將插件啟動接口部署在所述服務器或另一服務器上。
7.一種發(fā)布瀏覽器插件的方法,所述方法包括 將業(yè)務邏輯代碼的代碼文件部署在第一服務器上; 將用于定位所述代碼文件的插件啟動接口部署在第二服務器的特定位置上; 將插件代碼發(fā)布到公眾可訪問的指定位置上,以用于客戶機下載所述插件代碼, 其中,業(yè)務邏輯代碼調(diào)用至少一個虛擬API,發(fā)布的插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。
8.如權(quán)利要求7所述的方法,其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
9.如權(quán)利要求8所述的方法,還包括在所述特定位置上還部署業(yè)務邏輯代碼的資源文件, 其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。
10.如權(quán)利要求1-9中任一項所述的方法,其中,所述第一服務器和第二服務器是同一服務器。
11.一種加載瀏覽器插件的方法,所述方法包括,在瀏覽器插件中 通過調(diào)用在其中封裝的插件啟動接口的代碼調(diào)用部署在第一服務器上的插件啟動接口,以定位第二服務器上的業(yè)務邏輯代碼; 從第二服務器加載定位的業(yè)務邏輯代碼, 其中,瀏覽器插件中的插件代碼封裝有用于加載所述業(yè)務邏輯代碼的代碼、用于調(diào)用部署在第一服務器上的插件啟動接口的代碼以及適于所述瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù),所述插件啟動接口用于定位第二服務器上的業(yè)務邏輯代碼。
12.如權(quán)利要求11所述的方法,其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
13.如權(quán)利要求12所述的方法,還包括在第二服務器上還部署業(yè)務邏輯代碼的資源文件, 其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。
14.如權(quán)利要求11-13中任一項所述的方法,其中,所述第一服務器和第二服務器是同一服務器。
15.一種更新瀏覽器插件的方法,所述方法包括 修改實現(xiàn)特定業(yè)務邏輯的業(yè)務邏輯代碼; 將記錄有所述修改的業(yè)務邏輯代碼的第一代碼文件部署到第一服務器上的特定位置,其中,在所述特定位置上已部署有第二代碼文件,所述第二代碼文件記錄有修改前的業(yè)務邏輯代碼,并且第一代碼文件與第二代碼文件具有不同的文件名; 更新先前部署在第二服務器上的插件啟動接口,以使插件啟動接口定位第一代碼文件, 其中,所述業(yè)務邏輯代碼調(diào)用至少一個虛擬API,先前發(fā)布的插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。
16.如權(quán)利要求15所述的方法,其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
17.如權(quán)利要求16所述的方法,還包括創(chuàng)建所述業(yè)務邏輯代碼的第一資源文件,并且在所述特定位置上還部署第一資源文件,所述第一資源文件與先前部署的第二資源文件具有不同的文件名, 其中,所述插件啟動接口用于定位第一代碼文件以及第一資源文件。
18.如權(quán)利要求15-17中任一項所述的方法,其中,所述第一服務器和第二服務器是同一服務器。
19.一種生成瀏覽器插件的系統(tǒng),所述系統(tǒng)包括 第一模塊,用于定義調(diào)用至少一個虛擬應用程序接口(API)的業(yè)務邏輯代碼; 第二模塊,用于為所述至少一個虛擬API構(gòu)建適于特定瀏覽器的API函數(shù); 第三模塊,用于構(gòu)建用于定位所述業(yè)務邏輯代碼的插件啟動接口 ; 第四模塊,用于構(gòu)建適于所述特定瀏覽器的瀏覽器插件,其中,將用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及構(gòu)建的適于所述特定瀏覽器的API函數(shù)封裝在瀏覽器插件中。
20.如權(quán)利要求19所述的系統(tǒng),還包括 第五模塊,用于定義一個或多個虛擬API, 其中,第一模塊定義的業(yè)務邏輯代碼調(diào)用所述一個或多個虛擬API。
21.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
22.如權(quán)利要求21所述的系統(tǒng),還包括 第六模塊,用于將記錄有所述業(yè)務邏輯代碼的代碼文件部署在服務器的特定位置。
23.如權(quán)利要求22所述的系統(tǒng),還包括 第七模塊,用于在所述特定位置還部署業(yè)務邏輯代碼的資源文件, 其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。
24.如權(quán)利要求23所述的系統(tǒng),還包括 第八模塊,用于將插件啟動接口部署在所述服務器或另一服務器上。
25.—種發(fā)布瀏覽器插件的系統(tǒng),所述系統(tǒng)包括 第一模塊,用于將業(yè)務邏輯代碼的代碼文件部署在第一服務器上; 第二模塊,用于將用于定位所述代碼文件的插件啟動接口部署在第二服務器的特定位置上; 第三模塊,用于將插件代碼發(fā)布到公眾可訪問的指定位置上,以用于客戶機下載所述插件代碼, 其中,業(yè)務邏輯代碼調(diào)用至少一個虛擬API,發(fā)布的插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。
26.如權(quán)利要求25所述的系統(tǒng),其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
27.如權(quán)利要求26所述的系統(tǒng),還包括 第四模塊,用于在所述特定位置上還部署業(yè)務邏輯代碼的資源文件, 其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。
28.如權(quán)利要求25-27中任一項所述的系統(tǒng),其中,所述第一服務器和第二服務器是同一服務器。
29.—種瀏覽器插件,包括 第一模塊,通過調(diào)用在其中封裝的插件啟動接口的代碼調(diào)用部署在第一服務器上的插件啟動接口,以定位第二服務器上的業(yè)務邏輯代碼; 第二模塊,從第二服務器加載定位的業(yè)務邏輯代碼, 其中,瀏覽器插件中的插件代碼封裝有用于加載所述業(yè)務邏輯代碼的代碼、用于調(diào)用部署在第一服務器上的插件啟動接口的代碼以及適于所述瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù),所述插件啟動接口用于定位第二服務器上的業(yè)務邏輯代碼。
30.如權(quán)利要求29所述的瀏覽器插件,其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
31.如權(quán)利要求30所述的瀏覽器插件,還包括在第二服務器上還部署業(yè)務邏輯代碼的資源文件, 其中,所述插件啟動接口用于定位所述代碼文件以及資源文件。
32.如權(quán)利要求29-31中任一項所述的瀏覽器插件,其中,所述第一服務器和第二服務器是同一服務器。
33.一種更新瀏覽器插件的系統(tǒng),所述系統(tǒng)包括 第一模塊,用于修改實現(xiàn)特定業(yè)務邏輯的業(yè)務邏輯代碼; 第二模塊,用于將記錄有所述修改的業(yè)務邏輯代碼的第一代碼文件部署到第一服務器上的特定位置,其中,在所述特定位置上已部署有第二代碼文件,所述第二代碼文件記錄有修改前的業(yè)務邏輯代碼,并且第一代碼文件與第二代碼文件具有不同的文件名; 第三模塊,用于更新先前部署在第二服務器上的插件啟動接口,以使插件啟動接口定位第一代碼文件, 其中,所述業(yè)務邏輯代碼調(diào)用至少一個虛擬API,先前發(fā)布的插件代碼封裝有用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼以及適于所述特定瀏覽器的實現(xiàn)所述至少一個虛擬API的至少一個API函數(shù)。
34.如權(quán)利要求33所述的系統(tǒng),其特征在于,所述業(yè)務邏輯代碼為腳本代碼。
35.如權(quán)利要求34所述的系統(tǒng),還包括 第四模塊,用于創(chuàng)建所述業(yè)務邏輯代碼的第一資源文件,并且在所述特定位置上還部署第一資源文件,所述第一資源文件與先前部署的第二資源文件具有不同的文件名, 其中,所述插件啟動接口用于定位第一代碼文件以及第一資源文件。
36.如權(quán)利要求1-3中任一項所述的系統(tǒng),其中,所述第一服務器和第二服務器是同一服務器。
全文摘要
提供一種瀏覽器插件的生成方法、發(fā)布方法、加載方法和更新方法以及系統(tǒng)。一種生成瀏覽器插件的方法包括為一個或多個特定功能分別定義虛擬應用程序接口(API);定義調(diào)用至少一個所述虛擬API的業(yè)務邏輯代碼;為所述至少一個虛擬API構(gòu)建適于特定瀏覽器的API函數(shù);構(gòu)建用于定位所述業(yè)務邏輯代碼的插件啟動接口;構(gòu)建適于所述特定瀏覽器的瀏覽器插件,其中,將用于調(diào)用所述插件啟動接口的代碼、用于加載所述業(yè)務邏輯代碼的代碼以及構(gòu)建的適于所述特定瀏覽器的API函數(shù)封裝在瀏覽器插件中。
文檔編號G06F9/445GK103064663SQ20121046970
公開日2013年4月24日 申請日期2012年11月19日 優(yōu)先權(quán)日2012年11月19日
發(fā)明者王晨, 趙先烈 申請人:北京百度網(wǎng)訊科技有限公司