一種應用程序的一體化開發(fā)系統(tǒng)、方法及裝置制造方法
【專利摘要】本發(fā)明提出了一種應用程序的一體化開發(fā)系統(tǒng),包括:開發(fā)者客戶端,用于向用戶客戶端和云端服務器發(fā)送開發(fā)者文件;云端服務器,用于根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得云端邏輯代碼,并對數(shù)據(jù)代碼進行處理并與用戶客戶端同步數(shù)據(jù)代碼;用戶客戶端,用于根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得用戶邏輯代碼,并接收云端服務器發(fā)送的同步的數(shù)據(jù)代碼。本發(fā)明還提出了一種應用程序的一體化開發(fā)方法、云端服務器和用戶客戶端。本發(fā)明的系統(tǒng)根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端,使得開發(fā)人員在開發(fā)時無需區(qū)分云端服務器端代碼或客戶端代碼,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。
【專利說明】一種應用程序的一體化開發(fā)系統(tǒng)、方法及裝置
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)云開發(fā)【技術領域】,特別涉及一種應用程序的一體化開發(fā)系統(tǒng)、方法、云端服務器及用戶客戶端。
【背景技術】
[0002]隨著互聯(lián)網(wǎng)云技術的發(fā)展,應用程序的云開發(fā)已經(jīng)越來越普及,并受到開發(fā)人員和用戶的歡迎?,F(xiàn)有的應用程序的云開發(fā)技術中,開發(fā)人員需要同時開發(fā)服務器與客戶端兩側(cè)的代碼邏輯,并制定各類接口定義和數(shù)據(jù)傳輸標準及格式,導致了如下缺點:
[0003]1、要求開發(fā)人員同時具有服務器端與客戶端開發(fā)背景,對開發(fā)人員要求較高。
[0004]2、將服務器提供的各種功能以 URL (Uniform/Universal ResourceLocator,統(tǒng)一資源定位符)的方式發(fā)布為資源,需要制定大量的接口標準,使開發(fā)人員反復糾結于使用URL,表單,AJAX,WebService, script嵌入等或其它各種方式調(diào)用服務器端的資源或向客戶端傳值。
[0005]3、由于服務器與客戶端通常使用兩種不同的語言或兩種完全不同的編程模型,造成兩側(cè)代碼無法通用,為保證兼容性,經(jīng)常需要為相同功能和邏輯分別開發(fā)用于服務器和用于客戶端的代碼,從而造成大量重復性開發(fā),占用開發(fā)人員大量精力,增加了開發(fā)成本。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的旨在至少解決上述技術缺陷之一。
[0007]為此,本發(fā)明的目的在于提出一種應用程序的一體化開發(fā)系統(tǒng)、方法及裝置,以實現(xiàn)根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端,使得開發(fā)人員在開發(fā)時無需區(qū)分云端服務器端代碼或客戶端代碼,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。
[0008]為達到上述目的,本發(fā)明第一方面的實施例提出了一種應用程序的一體化開發(fā)系統(tǒng),包括開發(fā)者客戶端、用戶客戶端和云端服務器,其中,所述開發(fā)者客戶端,用于向所述用戶客戶端和云端服務器發(fā)送開發(fā)者文件,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境;所述云端服務器,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述云端邏輯代碼,并對所述數(shù)據(jù)代碼進行處理并與所述用戶客戶端同步所述數(shù)據(jù)代碼;所述用戶客戶端,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述用戶邏輯代碼,并接收所述云端服務器發(fā)送的同步的數(shù)據(jù)代碼。
[0009]根據(jù)本發(fā)明實施例的應用程序的一體化開發(fā)系統(tǒng),通過使用統(tǒng)一的開發(fā)語言,使云端服務器、客戶端之間的代碼可以通用,在應用程序?qū)嶋H運行時,系統(tǒng)將根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端或兩端通用,使得開發(fā)人員在開發(fā)時無需區(qū)分云端服務器端代碼或客戶端代碼,即抹平了傳統(tǒng)的云端服務器、客戶端的界限,打破云端服務器端、客戶端開發(fā)角色的嚴格區(qū)分,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。
[0010]在本發(fā)明的一個實施例中,所述應用程序的一體化開發(fā)系統(tǒng)還包括:中間數(shù)據(jù)訂閱服務器,用于接收所述開發(fā)者客戶端發(fā)送的數(shù)據(jù)訂閱請求,并根據(jù)所述數(shù)據(jù)訂閱請求從對應的云端服務器獲得對應的開發(fā)者數(shù)據(jù)發(fā)送至所述用戶客戶端。
[0011]在本發(fā)明的一個實施例中,所述云端服務器還用于將所述數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
[0012]在本發(fā)明的一個實施例中,所述中間數(shù)據(jù)訂閱服務器還用于從所述云端服務器獲得相應的多個子數(shù)據(jù)結構,并將所述多個子數(shù)據(jù)結構拼接為對應的開發(fā)者數(shù)據(jù)。
[0013]在本發(fā)明的另一個實施例中,所述云端服務器還用于對自身存儲的所述多個子數(shù)據(jù)結構進行監(jiān)控,并在所述多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過所述中間數(shù)據(jù)訂閱服務器將變化后的數(shù)據(jù)發(fā)送至所述用戶客戶端。
[0014]在本發(fā)明的另一個實施例中,其特征在于,所述云端服務器還用于對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
[0015]本發(fā)明第二方面的實施例提出了一種應用程序的一體化開發(fā)方法,包括以下步驟:云端服務器接收并保存開發(fā)者客戶端發(fā)送的開發(fā)者文件,并在用戶客戶端請求時將所述開發(fā)者文件發(fā)送至用戶客戶端,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境;所述用戶客戶端和云端服務器分別根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述用戶邏輯代碼和云端邏輯代碼,且所述云端服務器對所述數(shù)據(jù)代碼進行處理并與所述用戶客戶端同步所述數(shù)據(jù)代碼。
[0016]根據(jù)本發(fā)明實施例的應用程序的一體化開發(fā)方法,通過使用統(tǒng)一的開發(fā)語言,使云端服務器、客戶端之間的代碼可以通用,在應用程序?qū)嶋H運行時,系統(tǒng)將根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端或兩端通用,使得開發(fā)人員在開發(fā)時無需區(qū)分云端服務器端代碼或客戶端代碼,即抹平了傳統(tǒng)的云端服務器、客戶端的界限,打破云端服務器端、客戶端開發(fā)角色的嚴格區(qū)分,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。
[0017]在本發(fā)明的一個實施例中,所述應用程序的一體化開發(fā)方法還包括:中間數(shù)據(jù)訂閱服務器接收所述開發(fā)者客戶端發(fā)送的數(shù)據(jù)訂閱請求,并根據(jù)所述數(shù)據(jù)訂閱請求從對應的云端服務器獲得對應的開發(fā)者數(shù)據(jù)發(fā)送至所述用戶客戶端。
[0018]在本發(fā)明的一個實施例中,所述應用程序的一體化開發(fā)方法還包括:所述云端服務器將所述數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
[0019]在本發(fā)明的一個實施例中,所述應用程序的一體化開發(fā)方法還包括:所述中間數(shù)據(jù)訂閱服務器從所述云端服務器獲得相應的多個子數(shù)據(jù)結構,并將所述多個子數(shù)據(jù)結構拼接為對應的開發(fā)者數(shù)據(jù)。
[0020]在本發(fā)明的一個實施例中,所述應用程序的一體化開發(fā)方法還包括:所述云端服務器對自身存儲的所述多個子數(shù)據(jù)結構進行監(jiān)控,并在所述多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過所述中間數(shù)據(jù)訂閱服務器將變化后的數(shù)據(jù)發(fā)送至所述用戶客戶端。
[0021]在本發(fā)明的一個實施例中,所述應用程序的一體化開發(fā)方法還包括:所述云端服務器對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
[0022]本發(fā)明第三方面的實施例提出了一種云端服務器,包括:接收模塊,用于接收開發(fā)者客戶端發(fā)送的開發(fā)者文件,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境;邏輯代碼識別模塊,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述云端邏輯代碼;數(shù)據(jù)代碼識別模塊,用于對所述數(shù)據(jù)代碼進行處理并與所述用戶客戶端同步所述數(shù)據(jù)代碼。
[0023]根據(jù)本發(fā)明實施例的云端服務器,自動進行代碼識別,以及數(shù)據(jù)的拆分、監(jiān)控、序列化、發(fā)送等操作,作為應用程序的一體化開發(fā)系統(tǒng)的重要組成部分,為開發(fā)人員減小開發(fā)代碼的復雜度、降低開發(fā)成本提供了可能。
[0024]在本發(fā)明的一個實施例中,所述數(shù)據(jù)代碼識別模塊還用于將所述數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
[0025]在本發(fā)明的一個實施例中,所述云端服務器還包括:監(jiān)控模塊,用于對自身存儲的所述多個子數(shù)據(jù)結構進行監(jiān)控,并在所述多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過所述數(shù)據(jù)代碼識別模塊與所述用戶客戶端進行同步。
[0026]在本發(fā)明的一個實施例中,所述數(shù)據(jù)代碼識別模塊還用于對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
[0027]本發(fā)明第四方面的實施例提出了一種用戶客戶端,包括:接收模塊,用于接收開發(fā)者客戶端發(fā)送的開發(fā)者文件,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境;邏輯代碼識別模塊,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述用戶邏輯代碼;數(shù)據(jù)同步模塊,用于與云端服務器進行數(shù)據(jù)同步。
[0028]根據(jù)本發(fā)明實施例的用戶客戶端,自動進行代碼識別、數(shù)據(jù)同步等操作,作為應用程序的一體化開發(fā)系統(tǒng)的重要組成部分,為開發(fā)人員減小開發(fā)代碼的復雜度、降低開發(fā)成本提供了可能。
[0029]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0030]本發(fā)明所述的和/或附加的方面和優(yōu)點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
[0031]圖1為根據(jù)本發(fā)明實施例的應用程序的一體化開發(fā)系統(tǒng)的示意圖;
[0032]圖2為根據(jù)本發(fā)明另一實施例的應用程序的一體化開發(fā)系統(tǒng)的示意圖;
[0033]圖3為一個根據(jù)本發(fā)明而得到了簡化的開發(fā)程序的示例;
[0034]圖4為根據(jù)本發(fā)明實施例的應用程序的一體化開發(fā)方法的流程圖;
[0035]圖5為根據(jù)本發(fā)明一個實施例的應用程序的運行中代碼執(zhí)行過程的示意圖;
[0036]圖6為根據(jù)本發(fā)明另一個實施例的應用程序的一體化開發(fā)方法的流程圖;
[0037]圖7為本發(fā)明一個實施例的用戶客戶端獲得數(shù)據(jù)的示意圖;
[0038]圖8為根據(jù)本發(fā)明一個實施例的云端服務器的示意圖;以及[0039]圖9為根據(jù)本發(fā)明一個實施例的用戶客戶端的示意圖。
【具體實施方式】
[0040]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0041]在本發(fā)明的描述中,需要理解的是,術語“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內(nèi)”、“外”等指示的方位或位置關系為基于附圖所示的方位或位置關系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構造和操作,因此不能理解為對本發(fā)明的限制。
[0042]在本發(fā)明的描述中,需要說明的是,除非另有規(guī)定和限定,術語“安裝”、“相連”、“連接”應做廣義理解,例如,可以是機械連接或電連接,也可以是兩個元件內(nèi)部的連通,可以是直接相連,也可以通過中間媒介間接相連,對于本領域的普通技術人員而言,可以根據(jù)具體情況理解所述術語的具體含義。
[0043]下面參考圖1至圖5描述根據(jù)本發(fā)明實施例的應用程序的一體化開發(fā)系統(tǒng)及方法。
[0044]如圖1所示,本發(fā)明第一方面實施例提出的應用程序的一體化開發(fā)系統(tǒng)包括開發(fā)者客戶端110、云端服務器120和用戶客戶端130。
[0045]具體地,開發(fā)者客戶端110向用戶客戶端130和云端服務器120發(fā)送開發(fā)者文件,其中,開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境。云端服務器120根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得云端邏輯代碼,并對數(shù)據(jù)代碼進行處理并與用戶客戶端130同步數(shù)據(jù)代碼。用戶客戶端130根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得用戶邏輯代碼,并接收云端服務器120發(fā)送的同步的數(shù)據(jù)代碼。其中,執(zhí)行環(huán)境作為云端服務器和用戶客戶端對代碼進行分析、識別的標準,包括應用程序運行時使用的API(Application Programming Interface,應用程序接口)、目錄結構信息等。在本發(fā)明的實施例中,開發(fā)者客戶端110和用戶客戶端130可以為PC機、移動終端或掌上電腦等。
[0046]如圖2所示,本發(fā)明的一個實施例的應用程序的一體化開發(fā)系統(tǒng)還包括:中間數(shù)據(jù)訂閱服務器140,用于接收開發(fā)者客戶端110發(fā)送的數(shù)據(jù)訂閱請求,并根據(jù)數(shù)據(jù)訂閱請求從對應的云端服務器120獲得對應的開發(fā)者數(shù)據(jù)發(fā)送至用戶客戶端130。本發(fā)明實施例中,中間數(shù)據(jù)訂閱服務器作為開發(fā)者客戶端和用戶客戶端之間的橋梁,以數(shù)據(jù)訂閱請求的形式在開發(fā)者客戶端和用戶客戶端之間交互用戶操作信息。具體的數(shù)據(jù)存儲格式、存儲位置等信息則由云端服務器進行管理,所以數(shù)據(jù)訂閱請求中只需包括業(yè)務信息和用戶信息,減少了數(shù)據(jù)傳輸量,節(jié)省了網(wǎng)絡帶寬。
[0047]本實施例中,云端服務器120、開發(fā)者客戶端110和用戶客戶端130中的數(shù)據(jù)具有相同的數(shù)據(jù)描述。在服務器、客戶端共同使用同一份基于結構化的數(shù)據(jù)描述,做到服務器端與客戶端的統(tǒng)一,兩端可以復用同一數(shù)據(jù)結構,并且立體的結構化數(shù)據(jù),將使得開發(fā)者在描述業(yè)務數(shù)據(jù)時不需寫入實現(xiàn)服務器端與客戶端數(shù)據(jù)兼容的代碼,降低開發(fā)代碼的復雜度,減少了開發(fā)成本。
[0048]在本發(fā)明的一個實施例中,云端服務器120將數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。當客戶端請求數(shù)據(jù)時,中間數(shù)據(jù)訂閱服務器140從云端服務器120獲得相應的多個子數(shù)據(jù)結構,并將多個子數(shù)據(jù)結構拼接為對應的開發(fā)者數(shù)據(jù),再發(fā)送至客戶端。在實際應用中,數(shù)據(jù)代碼經(jīng)常包括多個子數(shù)據(jù)結構,數(shù)據(jù)代碼拆分為子數(shù)據(jù)結構的過程遵循既定的標準,便于數(shù)據(jù)的結構化描述,以及多個業(yè)務云端服務器同時進行并行計算。并且,不同的子數(shù)據(jù)結構,經(jīng)常會存儲在云端服務器中不同的業(yè)務云端服務器上,當接收到數(shù)據(jù)訂閱請求后,需要從多個業(yè)務云端服務器中獲得多個子數(shù)據(jù)結構,并進行拼接以轉(zhuǎn)換為用戶所需要的數(shù)據(jù)格式。
[0049]在本發(fā)明的一個實施例中,云端服務器120對自身存儲的多個子數(shù)據(jù)結構進行監(jiān)控,并在多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過中間數(shù)據(jù)訂閱服務器140將變化后的數(shù)據(jù)發(fā)送至用戶客戶端130。子數(shù)據(jù)結構的變化,并不僅因為客戶端的用戶操作,也可能因為其他子數(shù)據(jù)結構中的數(shù)據(jù)改變而發(fā)生了變化,此時也需要將變化后的數(shù)據(jù)發(fā)送至用戶客戶端,以保證用戶客戶端中的數(shù)據(jù)是實時的最新數(shù)據(jù)。
[0050]在本發(fā)明的一個實施例中,云端服務器120還用于對多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
[0051]具體地,云端服務器自動對主鍵、關聯(lián)表、外鍵等存儲信息進行補充,以實現(xiàn)存儲封裝,并向客戶端發(fā)送封裝完成的數(shù)據(jù)。對存儲信息的自動補充,使客戶端僅需針對云端的數(shù)據(jù)容器提供的內(nèi)容進行訂閱即可獲取數(shù)據(jù),而無需關心數(shù)據(jù)存儲的具體位置等細節(jié)問題,并且所獲取的數(shù)據(jù)由云端提供保證均符合數(shù)據(jù)結構描述,從開發(fā)者角度來說,不需要考慮數(shù)據(jù)的存儲細節(jié),只需關注自身業(yè)務所需的數(shù)據(jù)。如圖3所示,photo數(shù)據(jù)類型中只包括data, meta, comments三種子數(shù)據(jù)結構,系統(tǒng)自動將它們拆分為子數(shù)據(jù)后,分別存儲在文件服務器、meta表服務器、comments表服務器中。在代碼的數(shù)據(jù)結構中,因為無需編寫數(shù)據(jù)庫管理、數(shù)據(jù)兼容、傳輸方式等具體存儲實現(xiàn)方案的代碼,代碼的長度和復雜度比起傳統(tǒng)技術的代碼大幅降低。
[0052]根據(jù)本發(fā)明實施例提供的應用程序的一體化開發(fā)系統(tǒng),通過使用統(tǒng)一的開發(fā)語言,使云端服務器、客戶端之間的代碼可以通用,在應用程序?qū)嶋H運行時,系統(tǒng)將根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端或兩端通用,使得開發(fā)人員在開發(fā)時無需區(qū)分云端服務器端代碼或客戶端代碼,即抹平了傳統(tǒng)的云端服務器、客戶端的界限,打破云端服務器端、客戶端開發(fā)角色的嚴格區(qū)分,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。并且,云端服務器與客戶端采用統(tǒng)一的數(shù)據(jù)結構描述,使應用程序開發(fā)人員無需關注數(shù)據(jù)存儲的具體位置、數(shù)據(jù)傳輸中的兼容性等細節(jié)問題,而只專注于描述業(yè)務所需的數(shù)據(jù)結構,減小了開發(fā)代碼的復雜度,降低了開發(fā)成本,縮減了開發(fā)周期。
[0053]如圖4所示,本發(fā)明第二方面實施例提出的應用程序的一體化開發(fā)方法,包括以下步驟:
[0054]S301:云端服務器接收并保存開發(fā)者文件,并在用戶客戶端請求時將所述開發(fā)者文件發(fā)送至用戶客戶端,其中,開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境。具體地,開發(fā)者文件包括程序源代碼、配置文件、數(shù)據(jù)描述文件等。[0055]在本發(fā)明的一個實施例中,云端服務器端與客戶端使用統(tǒng)一的開發(fā)語言,例如Javascript語言,使云端服務器端與客戶端的代碼通用成為可能。云端服務器端與客戶端采用統(tǒng)一的數(shù)據(jù)描述,并使用框架提供數(shù)據(jù)傳輸及序列化機制,使開發(fā)人員不再糾纏于數(shù)據(jù)接口的定義,不再處理復雜的數(shù)據(jù)交換工作。在本發(fā)明的實施例中,開發(fā)者客戶端和用戶客戶可以為PC機、移動終端或掌上電腦等。
[0056]S302:用戶客戶端和云端服務器分別根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得用戶邏輯代碼和云端邏輯代碼,且云端服務器對數(shù)據(jù)代碼進行處理并與用戶客戶端同步數(shù)據(jù)代碼。
[0057]如圖5所示,本發(fā)明的優(yōu)點在于,使用云端服務器、客戶端統(tǒng)一的編程語言和編程模型,根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端或兩端通用。在本發(fā)明的一個實施例的開發(fā)方法中,在云端服務器和客戶端統(tǒng)一使用Javascript作為開發(fā)語言,云端服務器和客戶端的運行環(huán)境除執(zhí)行環(huán)境不同外,其他的內(nèi)容都是統(tǒng)一的,例如操作字符串、數(shù)組等的程序及工具類等,所以數(shù)據(jù)結構的描述和操作該描述所指的數(shù)據(jù)內(nèi)容的操作代碼,由于操作的主體都是數(shù)據(jù),與運行環(huán)境無關,所以這些代碼在云端服務器和客戶端之間可以通用。在應用程序運行時,只需根據(jù)不同的應用場景調(diào)用不同的對象程序,即可實現(xiàn)不屬于當前環(huán)境的程序代碼不會被錯誤地執(zhí)行。例如,調(diào)用一個將人員對象的年齡加I并返回該人員對象的程序,只需傳入數(shù)據(jù)對象即可,在云端服務器上與在客戶端上都可以執(zhí)行,而并不依賴某一端的API提供的特殊功能。而對于調(diào)用一個只需要執(zhí)行在客戶端中的將對象渲染為頁面的程序,當客戶端調(diào)用此程序時,客戶端運行環(huán)境可以提供處理模板的能力并保證此程序順利執(zhí)行;而云端服務器上并不會執(zhí)行這個程序。通過這種方法,實現(xiàn)了根據(jù)運行環(huán)境(或運行邏輯)自動將代碼運行在某一端,使得開發(fā)人員無需區(qū)分云端服務器端代碼或客戶端代碼,即抹平了傳統(tǒng)的云端服務器、客戶端的界限,打破云端服務器端、客戶端開發(fā)角色的嚴格區(qū)分,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。
[0058]如圖6所示,在本發(fā)明的一個實施例中,開發(fā)系統(tǒng)中還包括中間數(shù)據(jù)訂閱服務器,此時,本實施例的應用程序的一體化開發(fā)方法還包括:
[0059]S303:中間數(shù)據(jù)訂閱服務器接收開發(fā)者客戶端發(fā)送的數(shù)據(jù)訂閱請求,并根據(jù)數(shù)據(jù)訂閱請求從對應的云端服務器獲得對應的開發(fā)者數(shù)據(jù)發(fā)送至用戶客戶端。
[0060]本發(fā)明實施例中,中間數(shù)據(jù)訂閱服務器作為開發(fā)者客戶端和用戶客戶端之間的橋梁,以數(shù)據(jù)訂閱請求的形式在開發(fā)者客戶端和用戶客戶端之間交互用戶操作信息。具體的數(shù)據(jù)存儲格式、存儲位置等信息則由云端服務器進行管理,所以數(shù)據(jù)訂閱請求中只需包括業(yè)務信息和用戶信息,減少了數(shù)據(jù)傳輸量,節(jié)省了網(wǎng)絡帶寬。
[0061]在本發(fā)明的一個實施例中,數(shù)據(jù)代碼經(jīng)常包括多個子數(shù)據(jù)結構,數(shù)據(jù)代碼拆分為子數(shù)據(jù)結構的過程遵循既定的標準,便于數(shù)據(jù)的結構化描述,以及多個業(yè)務云端服務器同時進行并行計算。并且,不同的子數(shù)據(jù)結構,經(jīng)常會存儲在云端服務器中不同的業(yè)務云端服務器上,當接收到數(shù)據(jù)訂閱請求后,需要從多個業(yè)務云端服務器中獲得多個子數(shù)據(jù)結構,并進行拼接以轉(zhuǎn)換為用戶所需要的數(shù)據(jù)格式。此時,應用程序的一體化開發(fā)方法還包括以下步驟:
[0062]S304:云端服務器將數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
[0063]S305:云端服務器對自身存儲的多個子數(shù)據(jù)結構進行監(jiān)控,并在多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過中間數(shù)據(jù)訂閱服務器將變化后的數(shù)據(jù)發(fā)送至用戶客戶端。
[0064]在實際應用中,子數(shù)據(jù)結構的變化,并不僅因為客戶端的用戶操作,也可能因為其他子數(shù)據(jù)結構中的數(shù)據(jù)改變而發(fā)生了變化,此時也需要將變化后的數(shù)據(jù)發(fā)送至用戶客戶端,以保證用戶客戶端中的數(shù)據(jù)是實時的最新數(shù)據(jù)。
[0065]S306:中間數(shù)據(jù)訂閱服務器從云端服務器獲得相應的多個子數(shù)據(jù)結構,并將多個子數(shù)據(jù)結構拼接為對應的開發(fā)者數(shù)據(jù)。
[0066]拼接時,系統(tǒng)根據(jù)開發(fā)者預先規(guī)定的數(shù)據(jù)結構,將子數(shù)據(jù)結構拼接為開發(fā)者數(shù)據(jù),供應用程序使用。
[0067]S307:云端服務器對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
[0068]云端服務器自動對主鍵、關聯(lián)表、外鍵等存儲信息進行補充,以實現(xiàn)存儲封裝,并向客戶端發(fā)送封裝完成的數(shù)據(jù)。對存儲信息的自動補充,使客戶端僅需針對云端的數(shù)據(jù)容器提供的內(nèi)容進行訂閱即可獲取數(shù)據(jù),而無需關心數(shù)據(jù)存儲的具體位置等細節(jié)問題,并且所獲取的數(shù)據(jù)由云端提供保證均符合數(shù)據(jù)結構描述,從開發(fā)者角度來說,不需要考慮數(shù)據(jù)的存儲細節(jié),只需關注自身業(yè)務所需的數(shù)據(jù)。如圖3所示,photo數(shù)據(jù)類型中只包括data,meta, comments三種子數(shù)據(jù)結構,系統(tǒng)自動將它們拆分為子數(shù)據(jù)后,分別存儲在文件服務器、meta表服務器、comments表服務器中。在代碼的數(shù)據(jù)結構中,因為無需編寫數(shù)據(jù)庫管理、數(shù)據(jù)兼容、傳輸方式等具體存儲實現(xiàn)方案的代碼,代碼的長度和復雜度比起傳統(tǒng)技術的代碼大幅降低。
[0069]本發(fā)明的一個實施例中的應用程序的一體化開發(fā)方法還包括步驟:
[0070]S308:云端服務器對多個子數(shù)據(jù)結構進行序列化,所述中間數(shù)據(jù)訂閱服務器在拼接之前進行反序列化。
[0071]序列化是數(shù)據(jù)傳輸過程中客戶端與云端服務器端都需要執(zhí)行的一個操作,序列化是指將數(shù)據(jù)內(nèi)容轉(zhuǎn)換成可以供網(wǎng)絡傳輸?shù)淖址袷交蚨M制格式的轉(zhuǎn)換過程,反序列化則是將傳輸內(nèi)容還原為數(shù)據(jù)內(nèi)容的過程。數(shù)據(jù)由客戶端向云端服務器端進行傳輸時,序列化工作由客戶端完成,反序列化工作由云端服務器端完成;云端服務器端向客戶端傳輸時,序列化工作在云端服務器端完成,反序列化工作由客戶端完成,在傳統(tǒng)開發(fā)過程中,開發(fā)人員需要理解目標云端服務器支持的數(shù)據(jù)傳輸格式,如表單、URL鍵值,或特殊的文本格式如逗號分隔、XML等,并理解傳輸方法(包括get\post\websocket等)及資源請求位置、控制參數(shù)及請求內(nèi)容的返回格式,并以此為基礎開發(fā)傳遞數(shù)據(jù)的數(shù)據(jù)序列化和反序列化方法.在使用框架后,這一系列的操作統(tǒng)一由框架提供,開發(fā)人員只需要使用數(shù)據(jù),不需要關心其傳輸過程,代碼的長度和復雜度比起傳統(tǒng)技術的代碼大幅降低。
[0072]圖7為一個根據(jù)本發(fā)明實施例的面向統(tǒng)一結構化數(shù)據(jù)的應用程序的開發(fā)方法獲得數(shù)據(jù)的示意圖,如圖所示,子數(shù)據(jù)結構存儲在各業(yè)務服務器中,中甲的框架包括中間訂閱服務器、開發(fā)者進行開發(fā)的工具集以及使客戶端程序得以運行的運行時環(huán)境的總稱。當有用戶請求時,框架接收到各訂閱用戶的數(shù)據(jù)訂閱信息,對數(shù)據(jù)訂閱信息進行分析后,將各業(yè)務服務器作為數(shù)據(jù)發(fā)布服務器,框架從各數(shù)據(jù)發(fā)布服務器中提取相應的子數(shù)據(jù)結構,并組裝成應用程序所需的用戶數(shù)據(jù),即實現(xiàn)從子數(shù)據(jù)結構到數(shù)據(jù)結構的自動映射,具有以下優(yōu)
占-
^ \\\.[0073]1、使開發(fā)人員不至于從多個零散的數(shù)據(jù)發(fā)布服務器進行訂閱,減少了獲取得數(shù)據(jù)復雜程度。
[0074]2、使客戶端在運行時,直接從中間容器可以拿到完整的可用數(shù)據(jù),而不需要再對數(shù)據(jù)進行組裝等操作。減少了操作數(shù)據(jù)的復雜程度。
[0075]根據(jù)本發(fā)明實施例提供的應用程序的一體化開發(fā)方法,通過使用統(tǒng)一的開發(fā)語言,使云端服務器、客戶端之間的代碼可以通用,在應用程序?qū)嶋H運行時,系統(tǒng)將根據(jù)代碼的運行邏輯自動決定代碼將執(zhí)行于云端服務器端或客戶端或兩端通用,使得開發(fā)人員在開發(fā)時無需區(qū)分云端服務器端代碼或客戶端代碼,即抹平了傳統(tǒng)的云端服務器、客戶端的界限,打破云端服務器端、客戶端開發(fā)角色的嚴格區(qū)分,讓隨意背景的開發(fā)者群體都可以獨立開發(fā)完整的Web應用程序。并且,云端服務器與客戶端采用統(tǒng)一的數(shù)據(jù)結構描述,使應用程序開發(fā)人員無需關注數(shù)據(jù)存儲的具體位置、數(shù)據(jù)傳輸中的兼容性等細節(jié)問題,而只專注于描述業(yè)務所需的數(shù)據(jù)結構,減小了開發(fā)代碼的復雜度,降低了開發(fā)成本,縮減了開發(fā)周期。
[0076]如圖8所示,本發(fā)明第三方面實施例的云端服務器,包括:接收模塊610、邏輯代碼識別模塊620和數(shù)據(jù)代碼識別模塊630。
[0077]具體地,接收模塊610接收開發(fā)者客戶端發(fā)送的開發(fā)者文件,其中,開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境。邏輯代碼識別模塊620根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得 云端邏輯代碼。數(shù)據(jù)代碼識別模塊630對數(shù)據(jù)代碼進行處理并與用戶客戶端同步數(shù)據(jù)代碼。本發(fā)明實施例中,接收模塊610接收代碼后,邏輯代碼識別模塊620和數(shù)據(jù)代碼識別模塊630均是自動識別代碼并進行處理的,從而使開發(fā)者在開發(fā)時不再需要像傳統(tǒng)的代碼開發(fā)過程中,根據(jù)代碼在云端的運行環(huán)境而設計接口等附加程序或組件保證代碼的兼容性,代碼的長度和復雜度比起傳統(tǒng)技術的代碼大幅降低。
[0078]在本發(fā)明的一個實施例中,數(shù)據(jù)代碼識別模塊630還用于將數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。在實際應用中,數(shù)據(jù)代碼經(jīng)常包括多個子數(shù)據(jù)結構,數(shù)據(jù)代碼拆分為子數(shù)據(jù)結構的過程遵循既定的標準,便于數(shù)據(jù)的結構化描述,以及多個業(yè)務云端服務器同時進行并行計算。并且,不同的子數(shù)據(jù)結構,經(jīng)常會存儲在云端服務器中不同的業(yè)務云端服務器上,當接收到數(shù)據(jù)訂閱請求后,需要從多個業(yè)務云端服務器中獲得多個子數(shù)據(jù)結構,并進行拼接以轉(zhuǎn)換為用戶所需要的數(shù)據(jù)格式。
[0079]本發(fā)明的一個實施例的云端服務器還包括:監(jiān)控模塊。監(jiān)控模塊對云端服務器自身存儲的多個子數(shù)據(jù)結構進行監(jiān)控,并在多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過數(shù)據(jù)代碼識別模塊與用戶客戶端進行同步。在實際應用中,子數(shù)據(jù)結構的變化,并不僅因為客戶端的用戶操作,也可能因為其他子數(shù)據(jù)結構中的數(shù)據(jù)改變而發(fā)生了變化,因此需要監(jiān)控模塊對子數(shù)據(jù)結構進行監(jiān)控,以保證在子數(shù)據(jù)結構變化時,將變化后的數(shù)據(jù)發(fā)送至用戶客戶端,實現(xiàn)用戶客戶端中的數(shù)據(jù)是實時的最新數(shù)據(jù)。
[0080]本發(fā)明一個實施例的云端服務器還包括:序列化模塊。序列化模塊對多個子數(shù)據(jù)結構進行序列化,并將序列化后的多個子數(shù)據(jù)結構發(fā)送至客戶端。序列化是數(shù)據(jù)傳輸過程中客戶端與云端服務器端都需要執(zhí)行的一個操作,序列化是指將數(shù)據(jù)內(nèi)容轉(zhuǎn)換成可以供網(wǎng)絡傳輸?shù)淖址袷交蚨M制格式的轉(zhuǎn)換過程,反序列化則是將傳輸內(nèi)容還原為數(shù)據(jù)內(nèi)容的過程。數(shù)據(jù)由客戶端向云端服務器端進行傳輸時,序列化工作由客戶端完成,反序列化工作由云端服務器端完成;云端服務器端向客戶端傳輸時,序列化工作在云端服務器端完成,反序列化工作由客戶端完成,在傳統(tǒng)開發(fā)過程中,開發(fā)人員需要理解目標云端服務器支持的數(shù)據(jù)傳輸格式,如表單、URL鍵值,或特殊的文本格式如逗號分隔、XML等,并理解傳輸方法(包括get\post\websocket等)及資源請求位置、控制參數(shù)及請求內(nèi)容的返回格式,并以此為基礎開發(fā)傳遞數(shù)據(jù)的數(shù)據(jù)序列化和反序列化方法.在使用框架后,這一系列的操作統(tǒng)一由框架提供,開發(fā)人員只需要使用數(shù)據(jù),不需要關心其傳輸過程,代碼的長度和復雜度比起傳統(tǒng)技術的代碼大幅降低。
[0081]根據(jù)本發(fā)明實施例的云端服務器,自動進行代碼識別,以及數(shù)據(jù)的拆分、監(jiān)控、序列化、發(fā)送等操作,作為應用程序的一體化開發(fā)系統(tǒng)的重要組成部分,為開發(fā)人員減小開發(fā)代碼的復雜度、降低開發(fā)成本提供了可能。
[0082]如圖9所示,本發(fā)明第四方面實施例的用戶客戶端,包括:接收模塊710、邏輯代碼識別模塊720和數(shù)據(jù)同步模塊730。
[0083]具體地,接收模塊710接收開發(fā)者客戶端發(fā)送的開發(fā)者文件,其中,開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境。邏輯代碼識別模塊720根據(jù)執(zhí)行環(huán)境對業(yè)務邏輯代碼進行識別以獲得用戶邏輯代碼。數(shù)據(jù)同步模塊730用于與云端服務器進行數(shù)據(jù)同步。本發(fā)明實施例中,接收模塊710接收代碼后,邏輯代碼識別模塊720和數(shù)據(jù)代碼識別模塊730均是自動識別代碼并進行處理的,從而使開發(fā)者在開發(fā)時不再需要像傳統(tǒng)的代碼開發(fā)過程中,根據(jù)代碼在云端的運行環(huán)境而設計接口等附加程序或組件保證代碼的兼容性,代碼的長度和復雜度比起傳統(tǒng)技術的代碼大幅降低。
[0084]根據(jù)本發(fā)明實施例的用戶客戶端,自動進行代碼識別、數(shù)據(jù)同步等操作,作為應用程序的一體化開發(fā)系統(tǒng)的重要組成部分,為開發(fā)人員減小開發(fā)代碼的復雜度、降低開發(fā)成本提供了可能。
[0085]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn)其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬【技術領域】的技術人員所理解。
[0086]在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設備取指令并執(zhí)行指令的系統(tǒng))使用,或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用。就本說明書而言,"計算機可讀介質(zhì)"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設備或結合這些指令執(zhí)行系統(tǒng)、裝置或設備而使用的裝置。計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(⑶ROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
[0087]應當理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
[0088]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對所述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0089]盡管已經(jīng)示出和描述了本發(fā)明的實施例,對于本領域的普通技術人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權利要求及其等同限定。
【權利要求】
1.一種應用程序的一體化開發(fā)系統(tǒng),其特征在于,包括開發(fā)者客戶端、用戶客戶端和云端服務器,其中, 所述開發(fā)者客戶端,用于向所述用戶客戶端和云端服務器發(fā)送開發(fā)者文件,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境; 所述云端服務器,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述云端邏輯代碼,并對所述數(shù)據(jù)代碼進行處理并與所述用戶客戶端同步所述數(shù)據(jù)代碼;以及 所述用戶客戶端,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述用戶邏輯代碼,并接收所述云端服務器發(fā)送的同步的數(shù)據(jù)代碼。
2.如權利要求1所述的應用程序的一體化開發(fā)系統(tǒng),其特征在于,還包括: 中間數(shù)據(jù)訂閱服務器,用于接收所述開發(fā)者客戶端發(fā)送的數(shù)據(jù)訂閱請求,并根據(jù)所述數(shù)據(jù)訂閱請求從對應的云端服務器獲得對應的開發(fā)者數(shù)據(jù)發(fā)送至所述用戶客戶端。
3.如權利要求1或2所述的應用程序的一體化開發(fā)系統(tǒng),其特征在于,所述云端服務器還用于將所述數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
4.如權利要求1-3任一項所述的應用程序的一體化開發(fā)系統(tǒng),其特征在于,所述中間數(shù)據(jù)訂閱服務器還用于從所述云端服務器獲得相應的多個子數(shù)據(jù)結構,并將所述多個子數(shù)據(jù)結構拼接為對應的開發(fā)者數(shù)據(jù)。
5.如權利要求1-3任一項所述的應用程序的一體化開發(fā)系統(tǒng),其特征在于,所述云端服務器還用于對自身存儲的所述多個子數(shù)據(jù)結構進行監(jiān)控,并在所述多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過所述中間數(shù)據(jù)訂閱服務器將變化后的數(shù)據(jù)發(fā)送至所述用戶客戶端。
6.如權利要求1-3任一項所述的應用程序的一體化開發(fā)系統(tǒng),其特征在于,所述云端服務器還用于對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
7.一種應用程序的一體化開發(fā)方法,其特征在于,包括以下步驟: 云端服務器接收并保存開發(fā)者客戶端發(fā)送的開發(fā)者文件,并在用戶客戶端請求時將所述開發(fā)者文件發(fā)送至用戶客戶端,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境;以及 所述用戶客戶端和云端服務器分別根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述用戶邏輯代碼和云端邏輯代碼,且所述云端服務器對所述數(shù)據(jù)代碼進行處理并與所述用戶客戶端同步所述數(shù)據(jù)代碼。
8.如權利要求7所述的應用程序的一體化開發(fā)方法,其特征在于,還包括: 中間數(shù)據(jù)訂閱服務器接收所述開發(fā)者客戶端發(fā)送的數(shù)據(jù)訂閱請求,并根據(jù)所述數(shù)據(jù)訂閱請求從對應的云端服務器獲得對應的開發(fā)者數(shù)據(jù)發(fā)送至所述用戶客戶端。
9.如權利要求7所述的應用程序的一體化開發(fā)方法,其特征在于,還包括: 所述云端服務器將所述數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
10.如權利要求7所述的應用程序的一體化開發(fā)方法,其特征在于,還包括:所述中間數(shù)據(jù)訂閱服務器從所述云端服務器獲得相應的多個子數(shù)據(jù)結構,并將所述多個子數(shù)據(jù)結構拼接為對應的開發(fā)者數(shù)據(jù)。
11.如權利要求7所述的應用程序的一體化開發(fā)方法,其特征在于,還包括: 所述云端服務器對自身存儲的所述多個子數(shù)據(jù)結構進行監(jiān)控,并在所述多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過所述中間數(shù)據(jù)訂閱服務器將變化后的數(shù)據(jù)發(fā)送至所述用戶客戶端。
12.如權利要求7所述的應用程序的一體化開發(fā)方法,其特征在于,還包括: 所述云端服務器對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
13.—種云端服務器,其特征在于,包括: 接收模塊,用于接收開發(fā)者客戶端發(fā)送的開發(fā)者文件,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境; 邏輯代碼識別模塊,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述云端邏輯代碼;以及 數(shù)據(jù)代碼識別模塊,用于對所述數(shù)據(jù)代碼進行處理并與所述用戶客戶端同步所述數(shù)據(jù)代碼。
14.如權利要求13所述的云端服務器,其特征在于,所述數(shù)據(jù)代碼識別模塊還用于將所述數(shù)據(jù)代碼拆分為多個子數(shù)據(jù)結構并存儲至多個數(shù)據(jù)列表,其中,每個數(shù)據(jù)列表對應不同類型的數(shù)據(jù)。
15.如權利要求13所述的云端服務器,其特征在于,還包括: 監(jiān)控模塊,用于對自身存儲的所述多個子數(shù)據(jù)結構進行監(jiān)控,并在所述多個子數(shù)據(jù)結構中的至少一個發(fā)生變化之后,通過所述數(shù)據(jù)代碼識別模塊與所述用戶客戶端進行同步。
16.如權利要求13所述的云端服務器,其特征在于,所述數(shù)據(jù)代碼識別模塊還用于對所述多個子數(shù)據(jù)結構進行存儲封裝以補充存儲信息。
17.一種用戶客戶端,其特征在于,包括: 接收模塊,用于接收開發(fā)者客戶端發(fā)送的開發(fā)者文件,其中,所述開發(fā)者文件包括業(yè)務邏輯代碼和數(shù)據(jù)代碼,所述業(yè)務邏輯代碼包括云端邏輯代碼和用戶邏輯代碼,且所述云端邏輯代碼和用戶邏輯代碼具有不同的執(zhí)行環(huán)境; 邏輯代碼識別模塊,用于根據(jù)執(zhí)行環(huán)境對所述業(yè)務邏輯代碼進行識別以獲得所述用戶邏輯代碼;以及 數(shù)據(jù)同步模塊,用于與云端服務器進行數(shù)據(jù)同步。
【文檔編號】H04L29/08GK103593173SQ201210421564
【公開日】2014年2月19日 申請日期:2012年10月29日 優(yōu)先權日:2012年10月29日
【發(fā)明者】林仕鼎, 童遙, 柳俊中, 黎科峰, 朱倩, 王骕 申請人:百度在線網(wǎng)絡技術(北京)有限公司