專利名稱:一種用戶應(yīng)用界面的生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件開發(fā)技術(shù),更具體地說,涉及一種用戶應(yīng)用界面的生成方法。
背景技術(shù):
軟件開發(fā)技術(shù)已經(jīng)發(fā)展了幾十年,隨著軟件應(yīng)用越來越廣泛,功能越來越復(fù)雜, 規(guī)模越來越龐大,逐個界面定制開發(fā)的傳統(tǒng)開發(fā)方式已經(jīng)不能滿足需求,主要存在以下問題1.軟件規(guī)模越來越龐大,導(dǎo)致開發(fā)工作量成倍增長,不可控制;2.軟件界面風格很難做到統(tǒng)一;3.如果需要統(tǒng)一改變軟件界面,需要每個界面重新修改,代價很大。然而,模板技術(shù)能夠很好的實現(xiàn)美工和程序的分離,同時方便程序員和美工人員的分工合作,現(xiàn)在業(yè)界已經(jīng)有多種模板技術(shù),例如smartyjreemaker、velocity等。其中, smarty是一個使用PHP寫出來的模板引擎,它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。簡單的講, 目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會影響到前端人員的頁面設(shè)計,前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。目前的模板引擎的模板解析都是解釋執(zhí)行的,即在程序運行時,讀取模板文件,并解析模板中的內(nèi)容,最后輸出最終結(jié)果。如圖1所示,首先用戶通過客戶端瀏覽器發(fā)送客戶請求業(yè)務(wù),服務(wù)端的業(yè)務(wù)處理模塊處理業(yè)務(wù)數(shù)據(jù),并將處理后的業(yè)務(wù)數(shù)據(jù)發(fā)送至模板總線, 模板總線向模板文件池發(fā)送獲取特定模板文件的請求,其中,模板文件池存儲有多個模板文件,特定模板文件是與客戶發(fā)送的業(yè)務(wù)請求相關(guān)的模板文件,然后模板文件池向模板總線返回特定模板文件,模板總線再將特定模板文件交給模板解析模塊進行解析,模板解析模塊完成解析后,向模板總線返回解析完成后的特定模板文件的數(shù)據(jù)對象,模板總線最后將特定模板文件的數(shù)據(jù)對象組合成最終的HTML數(shù)據(jù),并通過客戶端瀏覽器返回到客戶端。 然而,模板解析模塊在解析模板文件時要消耗系統(tǒng)很多時間,導(dǎo)致運行效率非常低,如果大規(guī)模地動態(tài)執(zhí)行運用模板語言,會造成系統(tǒng)性能的嚴重下降,因此該用戶應(yīng)用界面的生成方法更多地應(yīng)用在數(shù)據(jù)內(nèi)容靜態(tài)化的場景以及對性能要求不高的應(yīng)用場景。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述在大規(guī)模地動態(tài)執(zhí)行模板語言時運行效率低的缺陷,提供一種用戶應(yīng)用界面的生成方法,在大規(guī)模地動態(tài)執(zhí)行模板語言時運行效率高。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是構(gòu)造一種用戶應(yīng)用界面的生成方法,包括A.業(yè)務(wù)處理模塊接收客戶請求業(yè)務(wù),處理業(yè)務(wù)數(shù)據(jù),并將處理后的業(yè)務(wù)數(shù)據(jù)發(fā)送至模板總線;B.模板總線接收處理后的業(yè)務(wù)數(shù)據(jù),并向模板對象池發(fā)送獲取特定模板文件的數(shù)據(jù)對象的請求,所述特定模板文件與所述業(yè)務(wù)數(shù)據(jù)相關(guān);C.模板對象池判斷是否存在有特定模板文件的數(shù)據(jù)對象,若是,則執(zhí)行步驟D ;若否,則執(zhí)行步驟E ;D.模板對象池向模板總線返回特定模板文件的數(shù)據(jù)對象,然后執(zhí)行步驟J ;E.模板對象池向模板文件池發(fā)送獲取特定模板文件的請求;F.模板文件池向模板總線返回特定模板文件;G.模板總線向模板解析模塊發(fā)送特定模板文件;H.模板解析模塊解析并編譯特定模板文件,以生成JAVA模板對象,并向模板總線返回JAVA模板對象;I.模板總線將編譯完成的JAVA模板對象放入JVM中的模板對象池中,以便給后續(xù)流程直接調(diào)用;J.模板總線將編譯完成的模板文件的數(shù)據(jù)對象與業(yè)務(wù)流程中產(chǎn)生的數(shù)據(jù)對象組合成HTML數(shù)據(jù),并將所述HTML數(shù)據(jù)返回給客戶端。在本發(fā)明所述的用戶應(yīng)用界面的生成方法中,所述步驟F包括Fl.模板文件池判斷是否存在有特定模板文件,若是,則執(zhí)行步驟F2 ;若否,則執(zhí)行步驟F3 ;F2.向模板總線返回特定模板文件,然后執(zhí)行步驟G ;F3.向模板總線返回相應(yīng)的錯誤代碼,模板總線再向客戶端返回所述錯誤代碼。在本發(fā)明所述的用戶應(yīng)用界面的生成方法中,在所述步驟I中,模板總線以異步的方法將JAVA模板對象放入JVM中的模板對象池中。在本發(fā)明所述的用戶應(yīng)用界面的生成方法中,在所述步驟I中,模板總線以緩沖和同步的方法將JAVA模板對象放入JVM中的模板對象池中。實施本發(fā)明的技術(shù)方案,若在第一次讀取某一模板文件時,對其進行解析和編譯, 以生成對應(yīng)的JAVA模板對象,然后將該編譯完成的JAVA模板對象放入JVM中的模板對象池中;若在非第一次讀取該模板文件時,只需從模板對象池中調(diào)出相應(yīng)的模板對象即可,運行的即是JAVA 二進制流對象,而不需要對其重新進行解析與編譯,因此可大大減小系統(tǒng)的負載,提高系統(tǒng)的運行效率。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1是現(xiàn)有技術(shù)用戶應(yīng)用界面的生成方法的流程圖;圖2A是本發(fā)明用戶應(yīng)用界面的生成方法實施例一的部分流程圖;圖2B是本發(fā)明用戶應(yīng)用界面的生成方法實施例一的部分流程圖。
具體實施例方式對于一些需要實時更新的用戶應(yīng)用界面,如股票顯示的用戶應(yīng)用界面或者一些帶有M_Market業(yè)務(wù)的用戶應(yīng)用界面,應(yīng)當說明的是,該有M_Market業(yè)務(wù)是指服務(wù)運營商在3G時代搭建的增值業(yè)務(wù)平臺,這些用戶應(yīng)用界面的所有的請求都是動態(tài)的,無法像現(xiàn)有的各大門戶網(wǎng)站一樣將數(shù)據(jù)內(nèi)容靜態(tài)化,為提高系統(tǒng)運行的效率,需要構(gòu)建一種可編譯執(zhí)行的動態(tài)模板語言。在本發(fā)明的用戶應(yīng)用界面的生成方法實施例一中,結(jié)合圖2A和圖2B,應(yīng)當說明的是,圖2A是第一次讀取某模板文件時生成戶應(yīng)用界面的方法的流程圖,圖2B是非第一次讀取某模板文件時生成戶應(yīng)用界面的方法的流程圖,圖2A和圖2B中的步驟S100-S103及步驟S110-S111都是相同的,區(qū)別只是在第一次讀取某模板文件時,需要對上述的模板文件進行解析和編譯,而在解析和編譯后就存儲在了模板對象池中,在下次需要重新讀取該模板文件時,只需從模板對象池中調(diào)出相應(yīng)的模板文件的數(shù)據(jù)對象即可,因此,提高了系統(tǒng)的運行效率,下面具體說明本發(fā)明的用戶應(yīng)用界面的生成方法,該方法包括S100.業(yè)務(wù)處理模塊接收客戶請求業(yè)務(wù),該客戶請求業(yè)務(wù)可來自客戶端瀏覽器;S101.業(yè)務(wù)處理模塊處理業(yè)務(wù)數(shù)據(jù);S102.業(yè)務(wù)處理模塊將處理后的業(yè)務(wù)數(shù)據(jù)發(fā)送至模板總線;S 103.模板總線接收處理后的業(yè)務(wù)數(shù)據(jù),并向模板對象池發(fā)送獲取特定模板文件的數(shù)據(jù)對象的請求,所述特定模板文件與所述業(yè)務(wù)數(shù)據(jù)相關(guān);S104.若模板對象池判斷不存在特定模板文件的數(shù)據(jù)對象,則向模板文件池發(fā)送獲取特定模板文件的請求,模板對象池在內(nèi)存中,然后執(zhí)行步驟S105 ;應(yīng)當說明的是,模板文件如果是非第一次讀取,即該頁面為非第一次運行、沒有進行了改動或變更,則與該頁面對應(yīng)的模板文件已經(jīng)進行了編譯,該模板文件所對應(yīng)的數(shù)據(jù)對象已經(jīng)存儲在了模板對象池中(下面將會詳細說明);如果該頁面的模板文件是第一次讀取,即該頁面為第一次運行、 已經(jīng)進行了改動或變更,則模板對象池中將不會存在該模板文件的數(shù)據(jù)對象;S112.若模板對象池判斷存在有特定模板文件的數(shù)據(jù)對象,則向模板總線返回特定模板文件的數(shù)據(jù)對象,然后執(zhí)行步驟SllO ;S105.模板文件池向模板總線返回特定模板文件;S106.模板總線向模板解析模塊發(fā)送特定模板文件;S107.模板解析模塊解析并編譯特定模板文件,以生成JAVA模板對象;S108.模板解析模塊向模板總線返回編譯完成的JAVA模板對象;S109.模板總線將編譯完成的JAVA模板對象放入JVM中的模板對象池中,以生成特定模板文件的數(shù)據(jù)對象,在該步驟中,模板總線可以異步的方法將編譯完成的JAVA模板對象放入JVM中的模板對象池中,也可以緩沖和同步的方法將JAVA模板對象放入JVM中的模板對象池中;S110.模板總線將編譯完成的模板文件的數(shù)據(jù)對象與業(yè)務(wù)流程中產(chǎn)生的數(shù)據(jù)對象組合成HTML數(shù)據(jù),并將所述HTML數(shù)據(jù)返回給客戶端。另外,SMARTY原生是為PHP服務(wù)的,對于JAVA對象中的值獲取本身的語法SMARTY 本身并不支持,這里我們專門原創(chuàng)一種語法,用來專門獲取JAVA中對象的值。{$object. count}其中$object即為java中對應(yīng)的數(shù)據(jù)對象名稱,count為該對象中的一個參數(shù)。優(yōu)選地,在上述實施例中的步驟S104和步驟S105之間,還包括模板文件池判斷是否存在有特定模板文件,若是,則向模板總線返回特定模板文件,然后繼續(xù)執(zhí)行步驟S105 ;若否,則向模板總線返回相應(yīng)的錯誤代碼,模板總線再向客戶端返回所述錯誤代碼,以告知客戶所請求的業(yè)務(wù)的模板文件不存在。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
權(quán)利要求
1. 一種用戶應(yīng)用界面的生成方法,其特征在于,包括A.業(yè)務(wù)處理模塊接收客戶請求業(yè)務(wù),處理業(yè)務(wù)數(shù)據(jù),并將處理后的業(yè)務(wù)數(shù)據(jù)發(fā)送至模板總線;B.模板總線接收處理后的業(yè)務(wù)數(shù)據(jù),并向模板對象池發(fā)送獲取特定模板文件的數(shù)據(jù)對象的請求,所述特定模板文件與所述業(yè)務(wù)數(shù)據(jù)相關(guān);C.模板對象池判斷是否存在有特定模板文件的數(shù)據(jù)對象,若是,則執(zhí)行步驟D;若否, 則執(zhí)行步驟E ;D.模板對象池向模板總線返回特定模板文件的數(shù)據(jù)對象,然后執(zhí)行步驟J;E.模板對象池向模板文件池發(fā)送獲取特定模板文件的請求;F.模板文件池向模板總線返回特定模板文件;G.模板總線向模板解析模塊發(fā)送特定模板文件;H.模板解析模塊解析并編譯特定模板文件,以生成JAVA模板對象,并向模板總線返回 JAVA模板對象;I.模板總線將JAVA模板對象放入JVM中的模板對象池中,以生成特定模板文件的數(shù)據(jù)對象;J.模板總線將編譯完成的模板文件的數(shù)據(jù)對象與業(yè)務(wù)流程中產(chǎn)生的數(shù)據(jù)對象組合成 HTML數(shù)據(jù),并將所述HTML數(shù)據(jù)返回給客戶端。
2.根據(jù)權(quán)利要求1所述的用戶應(yīng)用界面的生成方法,其特征在于,所述步驟F包括 Fl.模板文件池判斷是否存在有特定模板文件,若是,則執(zhí)行步驟F2 ;若否,則執(zhí)行步驟F3 ;F2.向模板總線返回特定模板文件,然后執(zhí)行步驟G ;F3.向模板總線返回相應(yīng)的錯誤代碼,模板總線再向客戶端返回所述錯誤代碼。
3.根據(jù)權(quán)利要求1或2所述的用戶應(yīng)用界面的生成方法,其特征在于,在所述步驟I 中,模板總線以異步的方法將JAVA模板對象放入JVM中的模板對象池中。
4.根據(jù)權(quán)利要求1或2所述的用戶應(yīng)用界面的生成方法,其特征在于,在所述步驟I 中,模板總線以緩沖和同步的方法將JAVA模板對象放入JVM中的模板對象池中。
全文摘要
本發(fā)明涉及一種用戶應(yīng)用界面的生成方法,該方法包括若模板對象池判斷不存在特定模板文件的數(shù)據(jù)對象,模板對象池向模板文件池發(fā)送獲取特定模板文件的請求;模板文件池向模板總線返回特定模板文件;模板解析模塊解析并編譯特定模板文件,以生成二進制JAVA模板對象,并向模板總線返回JAVA模板對象;模板總線將JAVA模板對象放入JVM中的模板對象池中,以生成特定模板文件的數(shù)據(jù)對象;模板總線將編譯完成的模板文件的數(shù)據(jù)對象與業(yè)務(wù)流程中產(chǎn)生的數(shù)據(jù)對象組合成HTML數(shù)據(jù),并將所述HTML數(shù)據(jù)返回給客戶端。實施本發(fā)明的技術(shù)方案,可大大減小系統(tǒng)的負載,提高系統(tǒng)的運行效率。
文檔編號G06F9/44GK102455903SQ20101052541
公開日2012年5月16日 申請日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者倪江利, 畢輝, 榮存浩, 陳綺石 申請人:卓望數(shù)碼技術(shù)(深圳)有限公司