欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于動態(tài)編譯的客戶端軟件運行方法與流程

文檔序號:12664778閱讀:237來源:國知局
一種基于動態(tài)編譯的客戶端軟件運行方法與流程

本發(fā)明涉及基于客戶端/服務器(C/S)架構的計算機技術領域,并且更具體地涉及一種基于動態(tài)編譯的客戶端軟件運行方法。



背景技術:

Linux操作系統通常是以RPM或DEB安裝包安裝客戶端軟件的,為了適應不同的計算機平臺以及Linux內核和發(fā)行版本之間的差異,開發(fā)人員通常需要對相應的版本以及平臺進行適配,重新編譯、打包、測試才能將RPM或DEB安裝包投入使用。

現有的技術有基于源碼安裝的RPM和DEB開源軟件,以及通過編譯宏對代碼進行控制,來實現對多樣性平臺的適配。然而,基于源碼安裝RPM和DEB開源軟件的方式很顯然不適用于商業(yè)軟件;通過編譯宏以實現對代碼的這種控制來實現對多樣性平臺的適配,這種控制方式對于所需支持的環(huán)境來說編譯量大、編譯方式多,并且當所維護的代碼量規(guī)模較大的時候,難以實施。



技術實現要素:

針對上述現有技術中存在的問題,本發(fā)明的目的在于提供一種基于動態(tài)編譯的客戶端軟件運行方法,其基于動態(tài)連接的C/S架構實現對復雜環(huán)境下客戶端軟件進行安裝并對軟件進行滾動升級,以解決商業(yè)軟件在計算機多樣性硬件平臺以及多種Linux發(fā)行版本的復雜環(huán)境下,人工對軟件進行適配所帶來的各種問題。

為了實現上述目的,本發(fā)明采用的技術方案如下:

一種基于動態(tài)編譯的客戶端軟件運行方法,包括以下步驟:

將客戶端的各個功能模塊的源碼加密后根據所述功能模塊的功能和依賴關系存儲在服務端的數據庫中;

安裝極簡客戶端并從客戶端的功能模塊的動態(tài)庫獲取業(yè)務邏輯所對應的功能接口并執(zhí)行業(yè)務邏輯;

根據本發(fā)明的一個實施例,獲取業(yè)務邏輯所對應的功能接口包括判斷客戶端是否連接到業(yè)務邏輯對應的功能模塊的動態(tài)庫,如果是,獲取動態(tài)庫的功能接口并執(zhí)行業(yè)務邏輯,否則,客戶端與服務端通訊以從服務端獲取功能模塊的源碼。

根據本發(fā)明的一個實施例,方法進一步包括掃描客戶端的軟、硬件系統環(huán)境并將掃描結果存儲在本地數據庫中以在客戶端與服務端通訊時提供給服務端。

根據本發(fā)明的一個實施例,當客戶端不能連接到業(yè)務邏輯對應的功能模塊的動態(tài)庫時,服務端在客戶端索取功能模塊的源碼的情況下詢問客戶端的軟、硬件系統環(huán)境并基于客戶端的軟、硬件系統環(huán)境判斷是否可以從服務端的數據庫中適配到功能模塊的源碼,如果是,服務端將適配到的功能模塊的源碼發(fā)送給客戶端,否則,服務端發(fā)送功能缺失錯誤碼給客戶端。

根據本發(fā)明的一個實施例,當服務端從服務端的數據庫中適配到多個功能模塊的源碼時,服務端將優(yōu)先級最高的功能模塊的源碼發(fā)送給客戶端。

根據本發(fā)明的一個實施例,當服務端從服務端的數據庫中適配到功能模塊的源碼時,客戶端將從服務端獲取的功能模塊的源碼解密并編譯為動態(tài)庫,并將動態(tài)庫的文件存儲到相應目錄中。

根據本發(fā)明的一個實施例,方法進一步包括升級服務端的數據庫中的功能模塊的源碼。

根據本發(fā)明的一個實施例,基于升級服務端的源碼,客戶端在空閑時間或特定時間將動態(tài)庫中功能模塊的版本號與服務端的數據庫中功能模塊的版本號進行對比,以更新動態(tài)庫中功能模塊的源碼。

根據本發(fā)明的一個實施例,極簡客戶端僅包含核心模塊而不包含任何功能模塊以具有不受系統環(huán)境限制的高度可移植性。

根據本發(fā)明的一個實施例,業(yè)務邏輯包含以下中的一個或多個:客戶端的分析軟硬件系統環(huán)境的功能、加解密功能、與服務器通訊的功能、對源碼進行編譯的功能、對客戶端的功能進行調度的功能、服務端的加解密功能、與客戶端通訊的功能、響應客戶端的請求以在數據庫中搜索適配的源碼的功能、將適配到的源碼分發(fā)到客戶端的功能。

與傳統的RPM或DEB源碼安裝相比,本發(fā)明可應用于商業(yè)軟件,可以防止源碼泄露所帶來的商業(yè)損失;與傳統的編譯宏控制代碼的方式相比,本發(fā)明減少了程序員對整個代碼的整體把控所帶來的負面影響,例如,時間、效能、產出率、質量等方面帶來的影響;對龐大的代碼量所帶來的意想不到的影響起到了規(guī)避作用;進一步地,程序員只需要專注于開發(fā)各個功能模塊在不同環(huán)境下不同的編碼方法和技術手段。

附圖說明

圖1為根據本發(fā)明的一個實施例的服務端的業(yè)務流程圖;

圖2為根據本發(fā)明的一個實施例的客戶端的業(yè)務流程圖;

圖3為根據本發(fā)明的一個實施例的更新客戶端源碼的業(yè)務流程圖。

具體實施方式

為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,下面結合附圖,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

圖1示出了根據本發(fā)明的一個實施例的服務端的業(yè)務流程圖,其中所示的方法開始于步驟S101。在步驟S101,將客戶端需要的各個業(yè)務邏輯對應的功能模塊的源碼加密后根據模塊的功能和依賴存儲在服務端數據庫中以供客戶端使用,方法前進到步驟S102。在步驟S102,判斷服務端數據庫中的功能模塊是否需要更新,如果是,方法前進到步驟S103,如果服務端數據庫中的功能模塊不需要更新,方法前進到步驟S104。在步驟S103,將對服務端數據庫中相應的模塊的源碼進行更新,需要強調的是,僅需要對服務端數據庫中的功能模塊的源碼進行更新,而不需要對客戶端的功能模塊進行更新,這將在下面的描述中進一步說明,隨后方法前進到步驟S104。在步驟S104,當有客戶端向服務端索取某一功能模塊的源碼時,服務器將根據該功能模塊的需要,詢問客戶端的軟硬件平臺支持(即客戶端的軟、硬件系統環(huán)境),然后方法前進到步驟S105。在步驟S105,服務端收到客戶端關于客戶端的軟硬件平臺支持的響應后,判斷服務端基于該響應是否在服務端數據庫中搜索到該功能模塊的源碼,如果是,方法前進到步驟S106,否則,方法前進到步驟S107。在步驟S106,服務器將搜索到的功能模塊的源碼發(fā)送給客戶端,需要說明的是,如果服務器從數據庫中適配到多個可以實現該功能模塊的源碼,則服務器將優(yōu)先級最高的功能模塊的源碼發(fā)送到客戶端。在步驟S107,由于服務器沒有從其數據庫中適配到實現該功能模塊的源碼,因此服務器將向客戶端發(fā)送功能缺失錯誤碼并記錄該情況,以方便開發(fā)技術人員查看并在后續(xù)版本中推出該功能模塊的源碼。至此,方法結束。

圖2示出了根據本發(fā)明的一個實施例的客戶端的業(yè)務流程圖,其中所示的方法開始于步驟S201。在步驟S201,安裝基于源碼的RPM、DEB或者提供安裝腳本的極簡客戶端,需要說明的是,極簡客戶端僅包含核心模塊而不涉及任何功能模塊以具有不受系統環(huán)境限制的高度可移植性,也就是說,極簡客戶端要實現不用適配,原因在于極簡客戶端所使用的加解密通信編譯環(huán)境等是計算機系統自帶的,因此也不會涉及商業(yè)機密,接著方法前進到步驟S202。在步驟S202,客戶端對計算機的軟、硬件系統環(huán)境進行掃描并將掃描結果記錄在本地數據庫中,步驟前進至步驟S203。在步驟S203,客戶端開始執(zhí)行某業(yè)務邏輯(例如,極簡客戶端的調度模塊、加解密模塊等)時,客戶端將動態(tài)連接該業(yè)務邏輯對應的功能模塊的動態(tài)庫,方法前進到步驟S204。在步驟S204,判斷客戶端是否連接到該功能模塊的動態(tài)庫,如果是,方法將前進到步驟S209,否則,方法將前進到步驟S205。在步驟S205,客戶端將與服務端建立通訊,以請求該業(yè)務邏輯對應的功能模塊的源碼,隨后方法前進到步驟S206。在步驟S206,服務端基于該功能模塊向客戶端詢問客戶端的軟、硬件系統環(huán)境,然后服務端根據客戶端作出的響應判斷是否從服務端數據庫中適配到該功能的源碼,如果是,方法前進到步驟S207,否則,方法前進到步驟S210。在步驟S207,服務端將適配到的該功能模塊的優(yōu)先級最高的源碼發(fā)送給客戶端,需要說明的是,服務端數據庫中可能存儲多個能夠實現該功能模塊的源碼,如果服務器適配到多個都能實現該功能模塊的源碼,則服務器選取優(yōu)先級最高的源碼并將該源碼發(fā)送給客戶端,方法前進到步驟S208。在步驟S208,客戶端收到服務端發(fā)送的該功能模塊的源碼后,將所收到的源碼編譯為動態(tài)庫文件,并將該動態(tài)庫文件存儲到動態(tài)庫中相應的目錄,同時執(zhí)行所編譯的動態(tài)庫以執(zhí)行相應的業(yè)務邏輯,方法結束。在步驟S210,由于服務器沒有適配到該功能模塊的源碼,因此服務端將向客戶端發(fā)送功能缺失錯誤碼并將該情況記錄以方便開發(fā)技術人員查看并在后續(xù)版本中推出該功能模塊的源碼,方法結束。在步驟S209,由于客戶端成功地動態(tài)連接到該功能模塊的動態(tài)庫,因此客戶端獲取該功能模塊的功能接口并執(zhí)行該功能,方法結束。

圖3示出了根據本發(fā)明的一個實施例的對客戶端的功能模塊的源碼進行更新的業(yè)務流程圖,其中所示的方法開始于步驟S301。在步驟S301,客戶端在空閑時間或者特定時間,將客戶端的各個功能模塊的版本號與服務端對應的功能模塊的版本號進行對比,然后方法前進到步驟S302。在步驟S302,判斷客戶端功能模塊的版本號是否與服務端對應的功能模塊的版本號相同,如果是,方法結束,否則,方法前進到步驟S303。在步驟S303,客戶端將與服務端建立通訊,以請求功能模塊的源碼,隨后方法前進到步驟S304。在步驟S304,服務端基于該功能模塊向客戶端詢問客戶端的軟、硬件系統環(huán)境,然后服務端根據客戶端作出的響應從服務端數據庫中獲取適配該功能模塊的源碼,方法前進到步驟S305。在步驟S305,服務端將適配到的該功能模塊的優(yōu)先級最高的源碼發(fā)送給客戶端,需要說明的是,服務端數據庫中可能存儲多個能夠實現該功能模塊的源碼,如果服務器適配到多個都能實現該功能模塊的源碼,則服務器選取優(yōu)先級最高的源碼并將該源碼發(fā)送給客戶端,方法前進到步驟S306。在步驟S306,客戶端收到服務端發(fā)送的該功能模塊的源碼后,將所收到的源碼編譯為動態(tài)庫文件,并將該動態(tài)庫文件存儲到動態(tài)庫中相應的目錄,方法結束。

以上所述實施例僅表達了本發(fā)明的實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
岫岩| 尼玛县| 浦江县| 射洪县| 南岸区| 化德县| 贡山| 九龙县| 蓝山县| 浙江省| 成安县| 万盛区| 汤原县| 梓潼县| 高碑店市| 师宗县| 高淳县| 平远县| 砚山县| 巴中市| 伊吾县| 瑞金市| 内江市| 五大连池市| 镇宁| 尉犁县| 怀化市| 叶城县| 安达市| 云龙县| 襄汾县| 乌苏市| 安吉县| 恩平市| 玉田县| 凤阳县| 吴桥县| 靖西县| 兴和县| 黔西县| 宝坻区|