本發(fā)明涉及應用開發(fā)技術(shù)領(lǐng)域,特別涉及一種應用程序?qū)崿F(xiàn)方法及裝置。
背景技術(shù):
移動互聯(lián)網(wǎng)與移動支付等基礎架構(gòu)在國內(nèi)的大范圍普及使得很多基于互聯(lián)網(wǎng)的服務業(yè)應用變得可能。目前在應用程序開發(fā)中,react是一個較為熱門的應用程序框架(框架用于定義一套解決問題的流程,并提供解決問題的過程中需要應用到的相關(guān)組件、增加相關(guān)組件的方法的程序套件)。react也被定義成一個“用來構(gòu)建ui(即userinterface(用戶界面)的簡稱)的javascript庫”,react可以較為容易地生成各種程序員所需要的控件(控件例如是指顯示在用戶界面上的“按鈕”,“文本框”,“地圖上選擇地點”,“相冊選擇”等的顯示元素),并能夠做到快捷地事件綁定等操作。其中,開發(fā)者只需要關(guān)心數(shù)據(jù)整體的變化,即兩次數(shù)據(jù)變化之間的ui如何變化(如需要增加一行文字、增加一個按鈕等),剩下的工作可以完全交給react框架去做,而不需要開發(fā)者關(guān)心具體該如何對ui進行操作。因此,使用react能夠明顯降低邏輯復雜性,從而使得應用開發(fā)難度降低、并且產(chǎn)生bug的機會也會更少。
微信ui開發(fā)框架是一套基于微信客戶端的用戶界面框架。其中,微信ui開發(fā)框架使微信公共號可以直接調(diào)用微信原生的接口,具備部分原生應用的能力,并且微信ui也使得微信公眾號可以具有風格一致的用戶體驗。
本發(fā)明的發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn):react的不足在于:其是一個通用的主要針對ui設計的應用程序框架,而其后端框架仍然只有最基礎的讀寫數(shù)據(jù)功能,并不具備邏輯處理功能,而且,在當前軟件工程理論水平之下只能做到為開發(fā)者提供細粒度的控件,如最基礎的“按鈕”、“標簽”等。而對于ui界面設計,開發(fā)者更需要的是粗顆粒度的控件,如“支付組件”,“聊天頁面”,“錄音界面”等,同時還需要更便捷地寫出數(shù)據(jù)處理邏輯,數(shù)據(jù)處理邏輯包括數(shù)據(jù)驗證、一連串的用戶交互行為而不僅僅是簡單的讀寫數(shù)據(jù)庫。因此react雖然有效地降低了開發(fā)通用互聯(lián)網(wǎng)app(application的簡稱,應用)的人工和耗時,但對于快速開發(fā)互聯(lián)網(wǎng)應用而言仍然存在巨大的提升空間。而微信ui(即weui)仍然只是一個前端ui框架,雖然其提供了比react更為粗顆粒且更為實用的ui控件,但是同樣,微信ui也沒有提供互聯(lián)網(wǎng)app(例如服務業(yè)app)所需要的后端服務器支持。因此weui只能部分降低服務業(yè)app開發(fā)者的勞動強度。因此目前開發(fā)者即便使用現(xiàn)有的最新款的開發(fā)工具,開發(fā)一個具有完整功能的互聯(lián)網(wǎng)服務業(yè)應用仍然需要耗費大量人力與時間來編寫相當多本來可以重復利用的組件(如聊天工具、下單工具、支付組件等),并需要編寫一組后端服務器處理程序以及設置數(shù)據(jù)庫和復雜的數(shù)據(jù)驗證、狀態(tài)存儲程序等,因此需要承擔由于編碼復雜度高而帶來的程序健壯性低下的風險。因此,現(xiàn)有應用程序開發(fā)人員所面臨的控件拼接繁瑣(由于開發(fā)工具僅提供了細顆粒度的空間)以及代碼邏輯設計難度大(即開發(fā)人員需要考慮api的調(diào)用等技術(shù)層面的問題)等的問題嚴重阻礙了應用程序開發(fā)效率以及質(zhì)量,所以如何更快速更穩(wěn)健地開發(fā)服務業(yè)應用對于相關(guān)中小創(chuàng)業(yè)企業(yè)和個人是至關(guān)重要的。
技術(shù)實現(xiàn)要素:
本發(fā)明實施方式的目的在于提供一種應用程序?qū)崿F(xiàn)方法及裝置,使得開發(fā)人員無需考慮后端服務器中的庫文件調(diào)用這樣的技術(shù)層面的問題,從而可以降低開發(fā)難度,有利于提高開發(fā)效率。
為解決上述技術(shù)問題,本發(fā)明的實施方式提供了一種應用程序?qū)崿F(xiàn)方法,應用于服務端,包括:接收并存儲服務過程腳本;其中,所述服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于所述業(yè)務邏輯中的運行位置標識,其中,所述運行位置標識用于指示所述業(yè)務邏輯運行于客戶端或者服務端;將所述服務過程腳本發(fā)送至與所述服務端配合的客戶端,供所述客戶端存儲并運行所述服務過程腳本;與所述客戶端配合運行所述服務過程腳本;其中,當所述服務端運行所述服務過程腳本時,若檢測到所述運行位置標識,則暫停運行所述服務過程腳本,并獲取所述服務過程腳本所生成的上下文信息,將獲取的所述上下文信息同步至所述客戶端,供所述客戶端根據(jù)同步的上下文信息以及所述運行位置標識繼續(xù)運行所述服務過程腳本;當檢測到來自所述客戶端同步的上下文信息以及運行位置標識時,根據(jù)所述客戶端同步的上下文信息以及運行位置標識繼續(xù)運行所述服務過程腳本。
本發(fā)明的實施方式還提供了一種應用程序?qū)崿F(xiàn)方法,應用于客戶端,接收并存儲來自服務端的服務過程腳本;其中,所述服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于所述業(yè)務邏輯中的運行位置標識,其中,所述運行位置標識用于指示所述業(yè)務邏輯運行于客戶端或者服務端;與所述服務端配合運行所述服務過程腳本;其中,當所述客戶端運行所述服務過程腳本時,若檢測到所述運行位置標識,則暫停運行所述服務過程腳本,并獲取所述服務過程腳本所生成的上下文信息,將獲取的所述上下文信息同步至所述服務端,供所述服務端根據(jù)同步的上下文信息以及所述運行位置標識繼續(xù)運行所述服務過程腳本;當檢測到來自所述服務端同步的上下文信息以及運行位置標識時,根據(jù)所述服務端同步的上下文信息以及運行位置標識繼續(xù)運行所述服務過程腳本。
本發(fā)明的實施方式還提供了一種應用程序?qū)崿F(xiàn)裝置,應用于服務端,包括:第一接收模塊,用于接收并存儲服務過程腳本;其中,所述服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于所述業(yè)務邏輯中的運行位置標識,其中,所述運行位置標識用于指示所述業(yè)務邏輯運行于客戶端或者服務端;第一發(fā)送模塊,用于將所述服務過程腳本發(fā)送至與所述服務端配合的客戶端,供所述客戶端存儲并運行所述服務過程腳本;第一控制模塊,用于控制服務端與所述客戶端配合運行所述服務過程腳本;所述第一控制模塊包括:第一檢測子模塊,用于在所述服務端運行所述服務過程腳本時,檢測所述運行位置標識;第一獲取子模塊,用于在第一檢測子模塊檢測到所述運行位置標識時,暫停運行所述服務過程腳本,并獲取所述服務過程腳本所生成的上下文信息;第一同步子模塊,用于將獲取的所述上下文信息同步至所述客戶端,供所述客戶端根據(jù)同步的上下文信息以及所述運行位置標識繼續(xù)運行所述服務過程腳本;第二檢測子模塊,用于檢測來自所述客戶端同步的上下文信息以及運行位置標識,第一恢復子模塊,用于根據(jù)所述客戶端同步的上下文信息以及運行位置標識繼續(xù)運行所述服務過程腳本。
本發(fā)明的實施方式還提供了一種應用程序?qū)崿F(xiàn)裝置,應用于客戶端,包括:第二接收模塊,用于接收并存儲來自服務端的服務過程腳本;其中,所述服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于所述業(yè)務邏輯中的運行位置標識,其中,所述運行位置標識用于指示所述業(yè)務邏輯運行于客戶端或者服務端;第二控制模塊,用于控制所述客戶端與所述服務端配合運行所述服務過程腳本;所述第二控制模塊包括:第三檢測子模塊,用于在所述客戶端運行所述服務過程腳本時,檢測所述運行位置標識;第二獲取子模塊,用于在檢測到所述運行位置標識時,暫停運行所述服務過程腳本,并獲取所述服務過程腳本所生成的上下文信息;第二同步子模塊,用于將獲取的所述上下文信息同步至所述服務端,供所述服務端根據(jù)同步的上下文信息以及所述運行位置標識繼續(xù)運行所述服務過程腳本;第四檢測子模塊,用于檢測來自所述服務端同步的上下文信息以及運行位置標識;第二恢復子模塊,用于根據(jù)所述服務端同步的上下文信息以及運行位置標識繼續(xù)運行所述服務過程腳本。
本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,開發(fā)者可以將應用程序的服務過程寫為一個文件,即服務過程腳本,并且在服務過程腳本中設置運行位置標識,通過該運行位置標識指示服務過程腳本中的業(yè)務邏輯的當前位置處之后業(yè)務邏輯的運行位置,即運行于服務端或者客戶端,而當服務過程腳本運行完成時,應用程序的各項功能即可得以實現(xiàn)。由于在服務過程腳本運行過程中,當檢測到運行位置標識時,當前運行服務過程腳本的一端,可以獲取其所產(chǎn)生的上下文信息,并將上下文信息同步至服務過程腳本運行的對應端,從而使得對應端可以繼續(xù)運行服務過程腳本,這樣,在服務過程腳本運行的過程中,其既可以運行于服務端,也可以運行于客戶端,且通過同步保證服務端和客戶端的信息共享,從而保證服務過程腳本協(xié)調(diào)有序運行。因此,本發(fā)明實施方式無需開發(fā)者自行設計后端服務器的庫文件的調(diào)用邏輯(例如考慮api的調(diào)用順序等的技術(shù)層面的問題),從而降低了應用程序開發(fā)難度,進而有利于提高開發(fā)效率。
另外,所述獲取所述服務過程腳本所生成的上下文信息,具體包括:對所述應用程序進行初始化;其中所述初始化用于分配緩存,所述緩存用于存儲所述服務過程腳本的運行數(shù)據(jù);在所述服務過程腳本運行時,將所述服務過程腳本的運行數(shù)據(jù)存儲在所述緩存中;當檢測到所述運行位置標識時,讀取所述緩存中的運行數(shù)據(jù),并將讀取的所述運行數(shù)據(jù)作為上下文信息。通過初始化緩存保存上下文信息,在需要同步至對應端時,可以快速獲取上下文信息,保證同步效率。
另外,所述將獲取的所述上下文信息同步至所述客戶端,具體包括:通過預設接口將所述上下文信息同步至所述客戶端。另外,所述應用程序?qū)崿F(xiàn)方法還包括:預設應用程序模板,所述應用程序模板包括預定義的內(nèi)容元素以及應用程序框架;接收內(nèi)容元素配置文件,并根據(jù)預定義的內(nèi)容元素以及所述內(nèi)容元素配置文件生成所述應用程序的內(nèi)容元素;所述與所述客戶端配合運行所述服務過程腳本,具體包括:根據(jù)所述應用程序框架設置所述服務過程腳本的運行環(huán)境、生成服務過程腳本的用戶頁面以及服務過程腳本需要的組件;基于所述運行環(huán)境、用戶頁面以及組件運行所述服務過程腳本。通過預設應用程序模板,并根據(jù)預設的應用程序模板設置應用程序服務過程腳本的運行環(huán)境、生成服務過程腳本的用戶頁面以及服務過程腳本需要的組件等,可以大量減少開發(fā)者重復開發(fā)的工作量。
另外,所述內(nèi)容元素包括以下之一或其任意組合:商品詳情、訂單詳情,支付信息。
另外,所述獲取所述服務過程腳本所生成的上下文信息,具體包括:對所述應用程序進行初始化;其中所述初始化用于分配緩存,所述緩存用于存儲所述服務過程腳本的運行數(shù)據(jù);在所述服務過程腳本運行時,將所述服務過程腳本的運行數(shù)據(jù)存儲在所述緩存中;當檢測到所述運行位置標識時,讀取所述緩存中的運行數(shù)據(jù),并將讀取的所述運行數(shù)據(jù)作為上下文信息。
另外,所述將所述服務過程腳本的運行數(shù)據(jù)存儲在所述緩存中,具體包括:顯示表單;其中所述表單包括內(nèi)容元素以及與所述內(nèi)容元素對應的內(nèi)容元素入口;若檢測到所述內(nèi)容元素入口被觸發(fā),則顯示對應的內(nèi)容元素修改界面,并接收內(nèi)容元素修改信息,且將接收到的內(nèi)容元素修改信息存儲入所述緩存。
附圖說明
圖1是根據(jù)本發(fā)明第一實施方式應用程序?qū)崿F(xiàn)方法的流程圖;
圖2是根據(jù)本發(fā)明第二實施方式應用程序?qū)崿F(xiàn)方法的流程圖;
圖3是根據(jù)本發(fā)明第三實施方式應用程序?qū)崿F(xiàn)方法的流程圖;
圖4是根據(jù)本發(fā)明第四實施方式應用程序?qū)崿F(xiàn)裝置的結(jié)構(gòu)示意圖;
圖5是根據(jù)本發(fā)明第五實施方式應用程序?qū)崿F(xiàn)裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明的各實施方式進行詳細的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術(shù)細節(jié)。但是,即使沒有這些技術(shù)細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請所要求保護的技術(shù)方案。
現(xiàn)有開發(fā)人員在使用面向開發(fā)互聯(lián)網(wǎng)應用程序等的開發(fā)工具開發(fā)應用程序時,需要手動編寫服務端和客戶端的交互接口以及手動定義例如訂單或者商品等的狀態(tài)轉(zhuǎn)移模式等,即開發(fā)人員需要考慮通過api(applicationprograminterface的簡稱,應用程序接口)獲取服務端數(shù)據(jù)庫中的數(shù)據(jù),然而,由于不同數(shù)據(jù)具有不同的權(quán)限(如一些數(shù)據(jù),用戶a能訪問,用戶b不能訪問)等上下文信息限制,因此,在開發(fā)新的app時就需要重復編寫api。同時,為了調(diào)用api,開發(fā)者還需要在客戶端頁面中設置很多“點擊事件”,“回調(diào)”等技術(shù)細節(jié),這些對于不同的api均需重新編寫,因此,編寫一個新的app存在大量重復勞動,且這樣的技術(shù)細節(jié)存在一定的邏輯難度。針對上述需要重復編寫api等的技術(shù)細節(jié)的問題,本發(fā)明通過將應用程序的業(yè)務邏輯寫成一個文件(即服務過程腳本),并通過引入同步機制,使得服務過程腳本可以跨服務端和客戶端協(xié)調(diào)有序運行,從而實現(xiàn)完整的應用程序業(yè)務邏輯,進而實現(xiàn)應用程序的各項功能。
本發(fā)明的第一實施方式涉及一種應用程序?qū)崿F(xiàn)方法,應用于服務端,具體流程如圖1所示,包括步驟101至步驟103。
步驟101:接收并存儲服務過程腳本,其中,服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于業(yè)務邏輯中的運行位置標識。其中,運行位置標識用于指示業(yè)務邏輯運行于客戶端或者服務端。
其中,業(yè)務邏輯可以是描述應用程序服務過程的代碼。這里,應用程序服務過程可以是指任何基于互聯(lián)網(wǎng)的應用程序的服務過程(也可稱為服務流程)。舉例而言,打車軟件的服務流程例如是:呼叫快車、派車、開始服務、結(jié)束服務、完成支付等的過程。開發(fā)人員在編寫服務過程腳本時,無需考慮技術(shù)層面如何獲取服務端的數(shù)據(jù),即無需通過api或者其他可以實現(xiàn)的方式自行編寫獲取服務端的數(shù)據(jù)的邏輯,僅需根據(jù)服務流程編寫出業(yè)務邏輯并且在業(yè)務邏輯中設置運行位置標識即可。一般而言,業(yè)務邏輯的代碼逐行順序運行,但是本實施方式的服務過程腳本既需要在服務端運行,也需要在客戶端運行,所以運行位置標識即用于指示該運行位置標識處之后的業(yè)務邏輯的運行位置(即在服務端或者客戶端)。例如,開發(fā)人員在編寫打車軟件的服務過程腳本時,可以人為設定呼叫快車運行于客戶端,派車運行于服務端等。
步驟102:將服務過程腳本發(fā)送至與服務端配合的客戶端,供客戶端存儲并運行服務過程腳本。
其中,用戶在使用基于本實施方式所實現(xiàn)的應用程序app時,可以通過客戶端從服務端下載該app,其中,下載的app中包含有服務過程腳本。
步驟103:與客戶端配合運行服務過程腳本。
其中步驟103具體包括子步驟1031至子步驟1032。
子步驟1031:當服務端運行服務過程腳本時,若檢測到運行位置標識,則暫停運行服務過程腳本,并獲取服務過程腳本所生成的上下文信息,將獲取的上下文信息同步至客戶端,供客戶端根據(jù)同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
子步驟1032:當檢測到來自客戶端同步的上下文信息以及運行位置標識時,根據(jù)客戶端同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
其中子步驟1031和子步驟1032之間沒有前后順序限制。在實際應用中,服務過程腳本既可以在客戶端開始運行,也可以在服務端開始運行。當檢測到服務過程腳本被觸發(fā)時,則開始運行服務過程腳本,當檢測到服務過程腳本運行結(jié)束時,則相應地實現(xiàn)了應用程序的服務流程,同時可相應地實現(xiàn)應用程序的各項功能。其中,服務過程腳本例如可以被某種事件觸發(fā),這些事件例如是檢測到應用程序圖標被觸摸、應用程序的控件被觸發(fā)等。本實施方式對于服務過程腳本被觸發(fā)的方式不做限制。
由于服務過程腳本是一個文件,且需要跨服務端和客戶端運行,所以分別在子步驟1031和子步驟1032中說明了服務端運行服務過程腳本的兩種情況:其一,即服務過程腳本當前在服務端運行且需要將服務過程腳本切換至客戶端運行時,需要將服務端上生成的上下文信息同步至客戶端,其二,即服務過程腳本當前在客戶端運行且需要將服務過程腳本切換至服務端運行時,需要將客戶端上生成的上下文信息同步至服務端。其中,上下文信息包括運行位置標識,以便客戶端或者服務端根據(jù)運行位置標識繼續(xù)運行服務過程腳本。
其中,獲取服務過程腳本所生成的上下文信息具體包括:對應用程序進行初始化,其中該初始化用于分配緩存,緩存用于存儲服務過程腳本的運行數(shù)據(jù)。在服務過程腳本運行時,將服務過程腳本的運行數(shù)據(jù)存儲在緩存中。當檢測到所運行位置標識時,讀取緩存中的運行數(shù)據(jù),并將讀取的運行數(shù)據(jù)作為上下文信息。
換句話說,本實施方式當服務過程腳本運行于服務端時,服務過程腳本運行時所生成的上下文信息均可以在初始化的緩存中得到,而不需要保存在庫文件中,進而不需要開發(fā)人員編寫api去調(diào)用相關(guān)的庫文件以獲取應用程序運行產(chǎn)生的相關(guān)數(shù)據(jù)和信息。
本實施方式中,當服務過程腳本運行于客戶端時,服務端暫停運行服務過程腳本。本實施方式可以通過預設接口將上下文信息同步至客戶端,其中,預設接口可以是指通過超文本傳輸協(xié)議實現(xiàn)上下文信息的同步。
本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,開發(fā)者可以將服務過程寫為一個文件,即服務過程腳本,并且在服務過程腳本中設置運行位置標識,通過運行位置標識控制服務過程腳本跨服務端和客戶端運行。同時,通過將服務端和客戶端上生成的上下文信息同步至另一端,為服務過程腳本跨服務端和客戶端的連續(xù)運行提供了數(shù)據(jù)支撐,保證了服務過程腳本的正常運行。因此,本實施方式避免了開發(fā)者自行編寫后端服務器的訪問邏輯,降低了應用程序開發(fā)的難度,從而有利于提高開發(fā)效率以及應用程序質(zhì)量。
本發(fā)明的第二實施方式涉及一種應用程序?qū)崿F(xiàn)方法。第二實施方式在第一實施方式的基礎上做出改進,主要改進之處在于:在第二實施方式中,通過預設的應用程序模板以及預定義的內(nèi)容元素避免了開發(fā)人員人工拼接細顆粒度控件以及重復開發(fā)應用程序框架等的繁瑣工作,進一步提高開發(fā)效率。
如圖2所示,本實施方式的應用程序?qū)崿F(xiàn)方法包括步驟201至步驟205。
步驟201:預設應用程序模板,應用程序模板包括預定義的內(nèi)容元素以及應用程序框架。
其中,內(nèi)容元素為用于記錄應用程序的數(shù)據(jù)以及狀態(tài)的操作對象。在一些例子中,應用程序內(nèi)容元素可以包括以下之一或其任意組合:商品詳情、訂單詳情,支付信息。本實施方式對于內(nèi)容元素不做具體限制。在一個例子中,應用程序內(nèi)容元素還可以為應用程序基礎頁面以及組件等的級別的應用程序組成部分,如“支付組件”,“聊天頁面”,“錄音界面”,“通知組件”等。
步驟202:接收內(nèi)容元素配置文件,并根據(jù)預定義的內(nèi)容元素以及內(nèi)容元素配置文件生成應用程序的內(nèi)容元素。
其中,內(nèi)容元素配置文件用于確定應用程序使用的內(nèi)容元素。在實際應用中,可以通過插件擴充用戶額外需要的內(nèi)容元素種類。
步驟203:接收并存儲服務過程腳本,其中,服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于業(yè)務邏輯中的運行位置標識。其中,運行位置標識用于指示業(yè)務邏輯運行于客戶端或者服務端。
其中,本實施方式對于步驟202和步驟203的先后順序不作限制。
步驟204:將服務過程腳本發(fā)送至與服務端配合的客戶端,供客戶端存儲并運行服務過程腳本。
步驟205:與客戶端配合運行服務過程腳本。
步驟205具體包括子步驟2051至子步驟2052:
子步驟2051:根據(jù)應用程序框架設置服務過程腳本的運行環(huán)境、生成服務過程腳本的用戶頁面以及服務過程腳本需要的組件。其中,用戶頁面可以是各種交互頁面。
子步驟2052:基于運行環(huán)境、用戶頁面以及組件運行服務過程腳本。
子步驟2053:當服務端運行服務過程腳本時,若檢測到運行位置標識,則暫停運行服務過程腳本并獲取服務過程腳本所生成的上下文信息,將獲取的上下文信息同步至客戶端,供客戶端根據(jù)同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
子步驟2054:當檢測到來自客戶端同步的上下文信息以及運行位置標識時,根據(jù)客戶端同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
子步驟2051和子步驟2052通過預設的應用程序模板生成應用程序的運行環(huán)境、基礎頁面以及一些組件,從而可以避免開發(fā)人員進行重復開發(fā)。
本實施方式中,獲取服務過程腳本所生成的上下文信息具體包括:對應用程序進行初始化,其中該初始化用于分配緩存,緩存用于存儲服務過程腳本的運行數(shù)據(jù);在所服務過程腳本運行時,將服務過程腳本的運行數(shù)據(jù)存儲在緩存中;當檢測到所運行位置標識時,讀取緩存中的運行數(shù)據(jù),并將讀取的運行數(shù)據(jù)作為上下文信息。其中,在當服務端中運行有多個基于本實施方式實現(xiàn)的應用程序時,需要針對不同的應用程序分別進行初始化,從而可以將各個應用程序隔離開,避免不同的應用程序之間互相干擾。其中,每個應用程序可以有若干個服務過程腳本和若干內(nèi)容元素,但除非開發(fā)者在定義內(nèi)容元素或服務過程腳本時明確聲明,否則不同的應用程序之間不能相互觸發(fā)服務過程腳本、訪問計算結(jié)果或者訪問內(nèi)容元素。這樣,這些應用程序都可以運行在同一個客戶端或服務端上。換句話說,不同的應用程序的服務過程腳本運行環(huán)境(客戶端或服務端)都是分別初始化的,確保計算結(jié)果、內(nèi)容元素等不會共享。需要共享的計算結(jié)果需要提前指定,則運行環(huán)境會設置訪問接口。若觸發(fā)、訪問、修改其他應用程序的服務過程腳本、內(nèi)容元素,服務過程運行環(huán)境檢查該應用程序的相關(guān)服務過程腳本或內(nèi)容元素是否有訪問接口,如果有則可以繼續(xù)。
本實施方式通過提供預設的應用程序模板以及預定義內(nèi)容元素,為開發(fā)者提供了可以重復使用的應用程序框架、基礎頁面以及組件等,因此,開發(fā)人員(用戶)在開發(fā)應用程序時,僅需編寫簡單的內(nèi)容元素配置腳本和少量的業(yè)務邏輯代碼即可制出完整的應用程序。因此,本實施方式不僅可顯著提高應用程序開發(fā)效率、降低應用程序開發(fā)難度,而且還有利于提高應用程序開發(fā)質(zhì)量。
本發(fā)明第三實施方式涉及一種應用程序?qū)崿F(xiàn)方法,應用于客戶端,如圖3所示,本實施方式的應用程序?qū)崿F(xiàn)方法包括步驟301至步驟302。
步驟301:接收并存儲來自服務端的服務過程腳本。
步驟302:與服務端配合運行服務過程腳本。
其中,步驟302具體包括子步驟3021和子步驟3022。
子步驟3021:當客戶端運行服務過程腳本時,若檢測到運行位置標識,則暫停運行服務過程腳本,并獲取服務過程腳本所生成的上下文信息,將獲取的上下文信息同步至服務端,供服務端根據(jù)同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。而服務端在接收到客戶端同步的上下文信息以及運行位置標識時,將從接收到的運行位置標識處恢復服務過程腳本的運行,由于服務端同時還接收了客戶端同步的上下文信息,所以為服務過程腳本切換運行位置提供了保證。
子步驟3022:當檢測到來自服務端同步的上下文信息以及運行位置標識時,根據(jù)服務端同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
子步驟3021中獲取服務過程腳本所生成的上下文信息的方式例如為:對應用程序進行初始化,該初始化用于分配緩存,緩存用于存儲服務過程腳本的運行數(shù)據(jù)。在服務過程腳本運行時,將服務過程腳本的運行數(shù)據(jù)存儲在緩存中。當檢測到運行位置標識時,讀取緩存中的運行數(shù)據(jù),并將讀取的運行數(shù)據(jù)作為上下文信息。
子步驟3021中將服務過程腳本的運行數(shù)據(jù)存儲在緩存中,具體可以包括:顯示表單,其中該表單包括內(nèi)容元素以及與內(nèi)容元素對應的內(nèi)容元素入口。若檢測到內(nèi)容元素入口被觸發(fā),則顯示對應的內(nèi)容元素修改界面,并接收內(nèi)容元素修改信息,且將接收到的內(nèi)容元素修改信息存儲入緩存。其中,內(nèi)容元素既可以使用服務端預定義的內(nèi)容元素,也可以由開發(fā)者自行開發(fā),通過插件添加到應用程序中。
本實施方式相對于現(xiàn)有技術(shù)而言,客戶端能夠與服務端相互配合,同步服務過程腳本的運行數(shù)據(jù),使得服務過程腳本可以跨服務端和客戶端協(xié)調(diào)有序運行,從而保證了應用程序各項功能的實現(xiàn)。
上面各種方法的步驟劃分,只是為了描述清楚,實現(xiàn)時可以合并為一個步驟或者對某些步驟進行拆分,分解為多個步驟,只要包含相同的邏輯關(guān)系,都在本專利的保護范圍內(nèi);對算法中或者流程中添加無關(guān)緊要的修改或者引入無關(guān)緊要的設計,但不改變其算法和流程的核心設計都在該專利的保護范圍內(nèi)。
本發(fā)明第四實施方式涉及一種應用程序?qū)崿F(xiàn)裝置,應用于服務端,如圖4所示,該應用程序?qū)崿F(xiàn)裝置包括:
第一接收模塊40,用于接收并存儲服務過程腳本。其中,服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于所述業(yè)務邏輯中的運行位置標識。其中,運行位置標識用于指示所述業(yè)務邏輯運行于客戶端或者服務端。
第一發(fā)送模塊41,用于將服務過程腳本發(fā)送至與服務端配合的客戶端,供客戶端存儲并運行所述服務過程腳本。
第一控制模塊42,用于控制服務端與客戶端配合運行服務過程腳本。
其中,第一控制模塊42包括:
第一檢測子模塊420,用于在服務端運行所述服務過程腳本時,檢測運行位置標識。
第一獲取子模塊421,用于在第一檢測子模塊420檢測到運行位置標識時,暫停運行服務過程腳本,并獲取服務過程腳本所生成的上下文信息。
第一同步子模塊422,用于將獲取的上下文信息同步至客戶端,供客戶端根據(jù)同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
第二檢測子模塊423,用于檢測來自客戶端同步的上下文信息以及運行位置標識。其中,第二檢測子模塊423可以在未開始運行或者暫停服務過程腳本運行時檢測來自客戶端同步的上下文信息以及運行位置標識。
第一恢復子模塊424,用于根據(jù)客戶端同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,開發(fā)者可以將服務過程寫為一個文件,即服務過程腳本,并且在服務過程腳本中設置運行位置標識,通過運行位置標識控制服務過程腳本跨服務端和客戶端運行。同時,通過將服務端和客戶端上生成的上下文信息同步至另一端,為服務過程腳本跨服務端和客戶端的連續(xù)運行提供了數(shù)據(jù)支撐,保證了服務過程腳本的正常運行。因此,本實施方式避免了開發(fā)者自行編寫后端服務器的訪問邏輯,降低了應用程序開發(fā)的難度,從而有利于提高開發(fā)效率以及應用程序質(zhì)量。
不難發(fā)現(xiàn),本實施方式為與第一實施方式相對應的裝置實施例,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關(guān)技術(shù)細節(jié)在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關(guān)技術(shù)細節(jié)也可應用在第一實施方式中。
本發(fā)明第五實施方式涉及一種應用程序?qū)崿F(xiàn)裝置,應用于客戶端,如圖5所示,該應用程序?qū)崿F(xiàn)裝置包括:
第二接收模塊50,用于接收并存儲來自服務端的服務過程腳本。其中,服務過程腳本包括:跨服務端和客戶端運行的應用程序的業(yè)務邏輯以及設置于業(yè)務邏輯中的運行位置標識。其中,運行位置標識用于指示業(yè)務邏輯運行于客戶端或者服務端。
第二控制模塊51,用于控制客戶端與服務端配合運行服務過程腳本。
第二控制模塊51包括:
第三檢測子模塊510,用于在客戶端運行服務過程腳本時,檢測運行位置標識。
第二獲取子模塊511,用于在檢測到運行位置標識時,暫停運行服務過程腳本,并獲取服務過程腳本所生成的上下文信息。
第二同步子模塊512,用于將獲取的上下文信息同步至服務端,供服務端根據(jù)同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
第四檢測子模塊513,用于檢測來自服務端同步的上下文信息以及運行位置標識。其中,第四檢測子模塊513可以在未開始運行或者暫停服務過程腳本運行時檢測來自服務端同步的上下文信息以及運行位置標識。
第二恢復子模塊514,用于根據(jù)服務端同步的上下文信息以及運行位置標識繼續(xù)運行服務過程腳本。
本實施方式相對于現(xiàn)有技術(shù)而言,客戶端能夠與服務端相互配合,同步服務過程腳本的運行數(shù)據(jù),使得服務過程腳本可以跨服務端和客戶端協(xié)調(diào)有序運行,從而保證了應用程序各項功能的實現(xiàn)。
值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現(xiàn)。此外,為了突出本發(fā)明的創(chuàng)新部分,本實施方式中并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單元。
本領(lǐng)域技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序存儲在一個存儲介質(zhì)中,包括若干指令用以使得一個設備(可以是單片機,芯片等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本領(lǐng)域的普通技術(shù)人員可以理解,上述各實施方式是實現(xiàn)本發(fā)明的具體實施例,而在實際應用中,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。