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