午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)及其運(yùn)行方式的制作方法

文檔序號(hào):6428366閱讀:218來源:國知局
專利名稱:面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)及其運(yùn)行方式的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種計(jì)算機(jī)軟件系統(tǒng)中實(shí)現(xiàn)面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)。
背景技術(shù)
軟件開發(fā)技術(shù)經(jīng)歷了面向過程、面向?qū)ο蟮陌l(fā)展階段,目前正向面向構(gòu)件、面向服務(wù)的方向發(fā)展。當(dāng)前市場上也出現(xiàn)了很多為加快軟件開發(fā)速度,縮短軟件開發(fā)周期,而推出了各種解決方案和軟件產(chǎn)品,國外也有很多軟件廠商推出了一些應(yīng)用。但在現(xiàn)有的技術(shù)和解決方案中,這些應(yīng)用基本是圍繞原有的技術(shù)和平臺(tái)進(jìn)行的,其運(yùn)行方式和設(shè)計(jì)思想并沒有實(shí)質(zhì)性改變,很難兼顧復(fù)雜多變的業(yè)務(wù)需求和變化,特別目前基于互聯(lián)網(wǎng)環(huán)境的應(yīng)用絕大多數(shù)都是基于表單式的,交互性很差且控制復(fù)雜,代碼量也非常多,開發(fā)和維護(hù)成本高昂;目前絕大部分云開發(fā)方案和產(chǎn)品都只是將傳統(tǒng)的開發(fā)手段簡單地“搬”互聯(lián)網(wǎng)環(huán)境或局限在某種產(chǎn)品進(jìn)行修改和定制,很難滿足最終用戶需要,這給計(jì)算機(jī)軟件技術(shù)的發(fā)展帶來很多不利的影響。

發(fā)明內(nèi)容
本發(fā)明的主要目的在于公開一種面向業(yè)務(wù)模型,提供安全、穩(wěn)定、可靠,開發(fā)效率高、維護(hù)成本低、易于擴(kuò)展、簡單易學(xué)的軟件運(yùn)行平臺(tái)及其運(yùn)行方法。為達(dá)上述目的,本發(fā)明公開的軟件運(yùn)行平臺(tái)包括服務(wù)器端系統(tǒng)架構(gòu)和客戶端系統(tǒng)架構(gòu);
所述服務(wù)器端系統(tǒng)架構(gòu)包括
業(yè)務(wù)模型工廠組件,用于查找定義的業(yè)務(wù)模型的資源,根據(jù)查找到的資源數(shù)據(jù)創(chuàng)建和管理業(yè)務(wù)模型實(shí)例,所述業(yè)務(wù)模型包括使用命名訪問的數(shù)據(jù)對(duì)象、用戶界面描述組件、業(yè)務(wù)模型活動(dòng)和客戶端資源;
業(yè)務(wù)模型控制引擎,用于提供會(huì)話安全認(rèn)證和業(yè)務(wù)模型訪問認(rèn)證服務(wù),加載、管理和釋放活動(dòng)業(yè)務(wù)模型組件,為客戶端或其他外部訪問提供正確的活動(dòng)業(yè)務(wù)模型組件;
活動(dòng)業(yè)務(wù)模型組件,用于處理客戶端訪問請(qǐng)求,提供程序上下文環(huán)境接口和外部訪問接口 ;根據(jù)客戶端請(qǐng)求,同步和接受客戶端傳遞的數(shù)據(jù),查詢、創(chuàng)建請(qǐng)求的各種資源,響應(yīng)并執(zhí)行請(qǐng)求的業(yè)務(wù)模型活動(dòng),并根據(jù)業(yè)務(wù)模型活動(dòng)的執(zhí)行情況,返回請(qǐng)求的各種資源、數(shù)據(jù)或異常信息;并用于加載所述業(yè)務(wù)模型工廠組件定義的業(yè)務(wù)模型實(shí)例,解析業(yè)務(wù)模型定義和業(yè)務(wù)模型繼承、組件鏈接關(guān)系,調(diào)度業(yè)務(wù)模型中的定義的各種資源,根據(jù)業(yè)務(wù)模型實(shí)例中的數(shù)據(jù)對(duì)象組件實(shí)例創(chuàng)建和管理活動(dòng)數(shù)據(jù)對(duì)象實(shí)例和交互數(shù)據(jù),執(zhí)行業(yè)務(wù)模型定義的業(yè)務(wù)模型活動(dòng),完成客戶端調(diào)用或其他外部調(diào)用;所述客戶端系統(tǒng)架構(gòu)包括
客戶端控制引擎, 用于處理客戶端的資源請(qǐng)求,指令調(diào)用,發(fā)送向服務(wù)器同步的數(shù)據(jù)或其他資源,請(qǐng)求執(zhí)行業(yè)務(wù)模型活動(dòng)、進(jìn)行數(shù)據(jù)編碼、解碼,通訊,響應(yīng)、解析、加載、執(zhí)行服務(wù)器端返回的數(shù)據(jù)、代碼或其他資源,并為客戶端程序提供代碼運(yùn)行環(huán)境;
數(shù)據(jù)對(duì)象代理組件,用于充當(dāng)用戶界面組件顯示的數(shù)據(jù)來源,其與上述活動(dòng)業(yè)務(wù)模型組件中命名相同的活動(dòng)數(shù)據(jù)對(duì)象實(shí)例對(duì)應(yīng),包含所述活動(dòng)數(shù)據(jù)對(duì)象實(shí)例的部分或全部數(shù)據(jù),實(shí)現(xiàn)客戶端數(shù)據(jù)的持久化;
用戶界面組件,包括用于在客戶端顯示的各種界面組件,其與所述業(yè)務(wù)模型中定義的所述用戶界面描述組件通過命名相對(duì)應(yīng),并通過事件驅(qū)動(dòng)響應(yīng)機(jī)制與所述數(shù)據(jù)對(duì)象代理組件的數(shù)據(jù)進(jìn)行同步。與上述軟件運(yùn)行平臺(tái)相對(duì)應(yīng)的,本發(fā)明公開的的運(yùn)行方法包括以下步驟 步驟Si、所述軟件運(yùn)行平臺(tái)進(jìn)行啟動(dòng),完成初始化操作;
步驟S2、客戶端向工作頁面發(fā)出頁面請(qǐng)求,請(qǐng)求的頁面參數(shù)包括在所述軟件運(yùn)行平臺(tái)中定義的業(yè)務(wù)模型名;
步驟S3、所述工作頁面加載頁面資源,啟動(dòng)客戶端系統(tǒng)架構(gòu)的客戶端控制引擎,并將頁面參數(shù)中的業(yè)務(wù)模型名傳遞給所述客戶端控制引擎,由該客戶端控制引擎向服務(wù)器端請(qǐng)求加載與該業(yè)務(wù)模型名同名的活動(dòng)業(yè)務(wù)模型組件以初始化用戶界面組件資源;
步驟S4、服務(wù)器端的業(yè)務(wù)模型控制引擎響應(yīng)客戶端請(qǐng)求,根據(jù)請(qǐng)求的業(yè)務(wù)模型名,查找緩存中是否有與其同名的活動(dòng)業(yè)務(wù)模型組件,如果有,則轉(zhuǎn)步驟S8,否則轉(zhuǎn)步驟S5 ;
步驟S5、服務(wù)器端的業(yè)務(wù)模型控制引擎向服務(wù)器端的業(yè)務(wù)模型工廠組件查找與客戶端請(qǐng)求的業(yè)務(wù)模型名同名的業(yè)務(wù)模型實(shí)例,根據(jù)查找到的業(yè)務(wù)模型實(shí)例進(jìn)行檢查和授權(quán)認(rèn)證;
步驟S6、服務(wù)器端業(yè)務(wù)模型控制引擎根據(jù)認(rèn)證后的所述業(yè)務(wù)模型實(shí)例,創(chuàng)建活動(dòng)業(yè)務(wù)模型組件,并緩存;
步驟S7、服務(wù)器端活動(dòng)業(yè)務(wù)模型組件進(jìn)行初始化操作;
步驟S8、服務(wù)器端活動(dòng)業(yè)務(wù)模型組件根據(jù)所述客戶端請(qǐng)求,查找請(qǐng)求的資源、執(zhí)行請(qǐng)求的所述業(yè)務(wù)模型中定義的業(yè)務(wù)活動(dòng),同步和接受客戶端提交的數(shù)據(jù),并將需要返回客戶端的各種資源、數(shù)據(jù)和異常信息,進(jìn)行格式編碼后返回客戶端;
步驟S9、客戶端控制引擎根據(jù)服務(wù)器端返回的格式數(shù)據(jù)進(jìn)行解析,動(dòng)態(tài)創(chuàng)建客戶端系統(tǒng)架構(gòu)的用戶界面組件、數(shù)據(jù)對(duì)象代理組件和加載數(shù)據(jù),緩存或執(zhí)行返回的腳本和其他資源,并顯示所創(chuàng)建的用戶界面組件;
步驟S10、客戶端系統(tǒng)架構(gòu)的客戶端用戶執(zhí)行相關(guān)操作,由客戶端控制引擎執(zhí)行預(yù)先定義的腳本,向服務(wù)器端同步增加或修改的數(shù)據(jù),和/或請(qǐng)求服務(wù)器端執(zhí)行相應(yīng)的業(yè)務(wù)模型活動(dòng)。本發(fā)明公開的面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)及其運(yùn)行方式,至少具有以下優(yōu)點(diǎn) 1、支持構(gòu)件集成和定制,集平臺(tái)架構(gòu)、用戶界面、數(shù)據(jù)持久化、安全性、權(quán)限管理等一體
化解決方案,可以不用發(fā)布和部署,代碼量比傳統(tǒng)方式大幅度減少,具有簡捷清晰、安全、穩(wěn)定、可靠,易于學(xué)習(xí),開發(fā)效率高、維護(hù)成本低、易于擴(kuò)展,適用范圍廣泛等優(yōu)點(diǎn)。2、基于上述軟件運(yùn)行平臺(tái)及其運(yùn)行方法,其軟件的開發(fā)方式,只需創(chuàng)建或定義軟件運(yùn)行平臺(tái)的各種業(yè)務(wù)模型,簡化了軟件系統(tǒng)開發(fā),可以不用部署和發(fā)布程序,并且大幅度減少編寫代碼工作量,降低開發(fā)成本、實(shí)施成本和維護(hù)成本,顯著縮短軟件開發(fā)周期,同時(shí)還有效減少網(wǎng)絡(luò)交互次數(shù)和傳輸?shù)臄?shù)據(jù)流量,增強(qiáng)了系統(tǒng)的安全性、穩(wěn)定性、可靠性和用戶界面的交互性,適用范圍廣泛,為面向服務(wù)的軟件技術(shù)發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ),為云環(huán)境開發(fā)計(jì)算機(jī)軟件系統(tǒng)提供了解決方案,也為網(wǎng)構(gòu)化軟件的發(fā)展應(yīng)用開辟了新的思路和實(shí)現(xiàn)方法。


圖1為本發(fā)明實(shí)施例公開的面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)的總體架構(gòu)示意圖; 圖2為本發(fā)明實(shí)施例公開的業(yè)務(wù)模型結(jié)構(gòu)和內(nèi)容示意圖; 圖3為本發(fā)明實(shí)施例公開的業(yè)務(wù)模型的命名繼承結(jié)構(gòu)示意圖; 圖4為本發(fā)明實(shí)施例公開的業(yè)務(wù)模型定義的跨模型鏈接的用戶界面描述組件結(jié)構(gòu)示意圖5為本發(fā)明實(shí)施例公開的計(jì)算機(jī)軟件系統(tǒng)中面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)的運(yùn)行方法流程示意圖6和圖7為本發(fā)明實(shí)施例公開的計(jì)算機(jī)軟件系統(tǒng)中面向業(yè)務(wù)模型的軟件的開發(fā)方法流程示意圖。
具體實(shí)施例方式下面結(jié)合說明書附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)描述。本實(shí)施例公開一種軟件運(yùn)行平臺(tái),如圖1所示,包括服務(wù)器端系統(tǒng)架構(gòu)和客戶端系統(tǒng)架構(gòu);其中服務(wù)器端系統(tǒng)架構(gòu)包括業(yè)務(wù)模型工廠組件,業(yè)務(wù)模型控制引擎和活動(dòng)業(yè)務(wù)模型組件;客戶端系統(tǒng)架構(gòu)包括客戶端控制引擎,數(shù)據(jù)對(duì)象代理組件和用戶界面組件。 其中Port是服務(wù)器響應(yīng)客戶端請(qǐng)求而開放的訪問端口,ASP是Active Server Page的縮寫,意為“動(dòng)態(tài)服務(wù)器頁面”,屬于微軟.net架構(gòu)的應(yīng)用,JSP、Servlet (Java Server Pages) 是由Sun Microsystems為主導(dǎo)倡導(dǎo)一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)和訪問技術(shù),屬于J2EE規(guī)范。各組成部分的功能分述如下
業(yè)務(wù)模型工廠組件用于查找定義的業(yè)務(wù)模型的資源,根據(jù)查找到的資源數(shù)據(jù)創(chuàng)建和管理業(yè)務(wù)模型實(shí)例,所述業(yè)務(wù)模型是從軟件工程的角度對(duì)軟件系統(tǒng)所要描述的客體進(jìn)行的分類,具體包括使用命名訪問的數(shù)據(jù)對(duì)象、用戶界面描述組件、業(yè)務(wù)模型活動(dòng)和客戶端資源。業(yè)務(wù)模型控制引擎用于提供會(huì)話安全認(rèn)證和業(yè)務(wù)模型訪問認(rèn)證服務(wù),加載、管理和釋放活動(dòng)業(yè)務(wù)模型組件,為客戶端或其他外部訪問提供正確的活動(dòng)業(yè)務(wù)模型組件?;顒?dòng)業(yè)務(wù)模型組件用于處理客戶端訪問請(qǐng)求,提供程序上下文環(huán)境接口和外部訪問接口 ;根據(jù)客戶端請(qǐng)求,同步和接受客戶端傳遞的數(shù)據(jù),查詢、創(chuàng)建請(qǐng)求的各種資源, 響應(yīng)并執(zhí)行請(qǐng)求的業(yè)務(wù)模型活動(dòng),并根據(jù)業(yè)務(wù)模型活動(dòng)的執(zhí)行情況,返回請(qǐng)求的各種資源、 數(shù)據(jù)或異常信息(值得說明的是,在本發(fā)明中,關(guān)于數(shù)據(jù)和資源,并沒有嚴(yán)格的區(qū)分,一般來說,資源的范圍更廣泛一些,如腳本、用戶界面、外部文件等都可以稱為資源,但這些資源也是以各種各樣形式的數(shù)據(jù)存在于軟件系統(tǒng)中);并用于加載所述業(yè)務(wù)模型工廠組件定義的業(yè)務(wù)模型實(shí)例,解析業(yè)務(wù)模型定義和業(yè)務(wù)模型繼承、組件鏈接關(guān)系,調(diào)度業(yè)務(wù)模型中的定義的各種資源,根據(jù)業(yè)務(wù)模型實(shí)例中的數(shù)據(jù)對(duì)象組件實(shí)例創(chuàng)建和管理活動(dòng)數(shù)據(jù)對(duì)象實(shí)例和交互數(shù)據(jù),執(zhí)行業(yè)務(wù)模型定義的業(yè)務(wù)模型活動(dòng),完成客戶端調(diào)用或其他外部調(diào)用。進(jìn)一步的, 活動(dòng)數(shù)據(jù)對(duì)象還與數(shù)據(jù)庫或其他外部資源進(jìn)行緩存活動(dòng)數(shù)據(jù)的交互,以實(shí)現(xiàn)數(shù)據(jù)加工處理和數(shù)據(jù)的持久化??蛻舳丝刂埔嬗糜谔幚砜蛻舳说馁Y源請(qǐng)求,指令調(diào)用,發(fā)送向服務(wù)器同步的數(shù)據(jù)或其他資源,請(qǐng)求執(zhí)行業(yè)務(wù)模型活動(dòng)、進(jìn)行數(shù)據(jù)編碼、解碼,通訊,響應(yīng)、解析、加載、執(zhí)行服務(wù)器端返回的數(shù)據(jù)、代碼或其他資源,并為客戶端程序提供代碼運(yùn)行環(huán)境。

數(shù)據(jù)對(duì)象代理組件用于充當(dāng)用戶界面組件顯示的數(shù)據(jù)來源,其與上述活動(dòng)業(yè)務(wù)模型組件中命名相同的活動(dòng)數(shù)據(jù)對(duì)象實(shí)例對(duì)應(yīng),包含活動(dòng)數(shù)據(jù)對(duì)象實(shí)例的部分或全部數(shù)據(jù),實(shí)現(xiàn)客戶端數(shù)據(jù)的持久化。本實(shí)施例中,優(yōu)選的,該數(shù)據(jù)對(duì)象代理組件的行數(shù)據(jù)與服務(wù)器端活動(dòng)業(yè)務(wù)模型組件內(nèi)的活動(dòng)數(shù)據(jù)對(duì)象的行數(shù)據(jù)通過動(dòng)態(tài)產(chǎn)生的唯一行標(biāo)識(shí)進(jìn)行對(duì)應(yīng), 作為數(shù)據(jù)同步的識(shí)別依據(jù),該唯一行標(biāo)識(shí)不依賴于行數(shù)據(jù)的任何狀態(tài)或內(nèi)容;其中該數(shù)據(jù)對(duì)象代理組件與服務(wù)器端活動(dòng)業(yè)務(wù)模型組件內(nèi)的活動(dòng)數(shù)據(jù)對(duì)象的行數(shù)據(jù)內(nèi)容同步包括兩種方式基于列名的同步,每一行數(shù)據(jù)使用列名和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式;或者基于序號(hào)的同步,每一行數(shù)據(jù)使用字母加列號(hào)和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式。用戶界面組件包括用于在客戶端顯示的各種界面組件,其與所述業(yè)務(wù)模型中定義的所述用戶界面描述組件通過命名相對(duì)應(yīng),并通過事件驅(qū)動(dòng)響應(yīng)機(jī)制與所述數(shù)據(jù)對(duì)象代理組件的數(shù)據(jù)進(jìn)行同步。在該系統(tǒng)架構(gòu)中,如圖1所示,服務(wù)器端業(yè)務(wù)模型工廠組件和活動(dòng)業(yè)務(wù)模型組件還與數(shù)據(jù)庫等外部資源連接以交互資源文件或數(shù)據(jù)。圖1所示的軟件運(yùn)行平臺(tái)是面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)總體架構(gòu)。業(yè)務(wù)模型的內(nèi)容如圖2所示,包括相關(guān)的業(yè)務(wù)模型屬性描述和業(yè)務(wù)模型組件,業(yè)務(wù)模型組件包括數(shù)據(jù)對(duì)象、用戶界面描述組件、業(yè)務(wù)模型活動(dòng)和客戶端資源。其中業(yè)務(wù)模型屬性包括模型代碼,層次代碼、模型名稱、初始界面組件命名、附件路徑、公共標(biāo)識(shí)、活動(dòng)標(biāo)識(shí)、生命周期、驗(yàn)證標(biāo)識(shí)、子模型標(biāo)識(shí)、版本號(hào)、修改日期、修改日志信息。公共標(biāo)識(shí)為真時(shí),表示所有在線用戶共用根據(jù)所述業(yè)務(wù)模型實(shí)例創(chuàng)建的活動(dòng)業(yè)務(wù)模型組件,否則,則根據(jù)調(diào)用為每個(gè)用戶創(chuàng)建一個(gè)活動(dòng)業(yè)務(wù)模型組件。優(yōu)選的,業(yè)務(wù)模型活動(dòng)屬性還包含授權(quán)別名,以供上述活動(dòng)業(yè)務(wù)模型組件根據(jù)該授權(quán)別名自動(dòng)判斷登錄用戶是否具有請(qǐng)求執(zhí)行業(yè)務(wù)模型活動(dòng)的權(quán)限。數(shù)據(jù)對(duì)象,是對(duì)象的業(yè)務(wù)實(shí)體的抽象,使用命名訪問。業(yè)務(wù)模型的數(shù)據(jù)對(duì)象屬性包括數(shù)據(jù)對(duì)象名稱、是否靜態(tài)、修改屬性、SQL屬性、默認(rèn)值、同步列名、多表更新依賴關(guān)系、分頁和其他列屬性,可以自定義數(shù)據(jù)列;是否靜態(tài)是指活動(dòng)數(shù)據(jù)對(duì)象的數(shù)據(jù)被所有調(diào)用者共享,當(dāng)靜態(tài)為真時(shí),其對(duì)基于該數(shù)據(jù)對(duì)象創(chuàng)建的活動(dòng)數(shù)據(jù)對(duì)象的調(diào)用指向同一個(gè)實(shí)例,指定同步列名意味著所述軟件運(yùn)行平臺(tái)的客戶端數(shù)據(jù)對(duì)象代理組件與服務(wù)器端業(yè)務(wù)模型的數(shù)據(jù)對(duì)象可以有不同的數(shù)據(jù)結(jié)構(gòu)。用戶界面描述組件,是所述業(yè)務(wù)模型在客戶端展現(xiàn)層的所述客戶端架構(gòu)的用戶界面組件的內(nèi)容描述和事件腳本,使用命名訪問。換言之,用戶界面描述組件是對(duì)軟件運(yùn)行平臺(tái)客戶端系統(tǒng)架構(gòu)中的用戶界面組件所做的定義,可選的,根據(jù)客戶端的請(qǐng)求,可以由服務(wù)器端的活動(dòng)業(yè)務(wù)模型組件根據(jù)用戶界面組件的屬性定義,生成描述文本,再由客戶端系統(tǒng)架構(gòu)的客戶端控制引擎解析、創(chuàng)建客戶端界面組件和顯示。其中,用戶界面組件有很多類型,如自由表、二維表、樹形表、按紐組、窗口、組件容器、二分容器、標(biāo)簽頁、菜單、列表組件、自定義等多種類型,對(duì)應(yīng)的用戶界面描述組件就是對(duì)用戶界面組件所做的描述。所述用戶界面描述組件與用戶界面組件一一對(duì)應(yīng),也有多種不同的類型;屬性包括公共屬性和私有屬性;公共屬性包括所述用戶界面組件的命名、名稱描述、位置、大小、創(chuàng)建完成時(shí)執(zhí)行的腳本;私有屬性隨所述用戶界面組件類型的不同,而呈現(xiàn)不同的屬性。優(yōu)選的,本實(shí)施例還可進(jìn)一步增設(shè)一用戶界面組件(其可采用網(wǎng)格定位的方法來進(jìn)行定位和設(shè)置大小)一按紐組界面組件(包含一個(gè)或多個(gè)按紐的界面組件),可以通過定義操作方式設(shè)置和授權(quán)別名設(shè)置,在不同的操作方式或授權(quán)下,顯示不同的按紐,簡化了傳統(tǒng)方式下的復(fù)雜的授權(quán)管理。本實(shí)施例中,優(yōu)選的,可以采用網(wǎng)格定位的方法來定位和設(shè)置用戶界面組件大小,所謂網(wǎng)格定位是將用戶界面從邏輯上分成一個(gè)多行多列的網(wǎng)格,每行、列都有指定的寬度和高度,上述組件就是通過指定定義的不同的組件在網(wǎng)格中的位置進(jìn)行排列的。 業(yè)務(wù)模型活動(dòng),是所述業(yè)務(wù)模型中定義的動(dòng)作,使用命名訪問。其中,一方面,業(yè)務(wù)模型活動(dòng)主要包括下述三種類型的活動(dòng)第一類,在所述軟件運(yùn)行平臺(tái)服務(wù)器端的業(yè)務(wù)模型控制引擎創(chuàng)建所述軟件運(yùn)行平臺(tái)活動(dòng)業(yè)務(wù)模型組件實(shí)例時(shí),自動(dòng)執(zhí)行的初始化時(shí)業(yè)務(wù)模型活動(dòng);第二類,在所述軟件運(yùn)行平臺(tái)服務(wù)器端的業(yè)務(wù)模型控制引擎創(chuàng)建所述軟件運(yùn)行平臺(tái)活動(dòng)業(yè)務(wù)模型組件卸載時(shí),自動(dòng)執(zhí)行模型卸載時(shí)的業(yè)務(wù)模型活動(dòng);第三類,在客戶端請(qǐng)求調(diào)用時(shí)或其他顯式調(diào)用時(shí)執(zhí)行其他業(yè)務(wù)模型活動(dòng)。另一方面,每個(gè)業(yè)務(wù)模型活動(dòng)支持三種約定方法(不排除自定義其他方法),在被請(qǐng)求調(diào)用時(shí)執(zhí)行的時(shí)間上各不相同,在該業(yè)務(wù)模型活動(dòng)被調(diào)用時(shí),這三種約定方法將依次執(zhí)行方法一,在活動(dòng)業(yè)務(wù)模型組件同步和接受客戶端發(fā)送的數(shù)據(jù)操作之前執(zhí)行的before方法;方法二,在活動(dòng)業(yè)務(wù)模型組件同步和接受客戶端發(fā)送的數(shù)據(jù)操作之后執(zhí)行的call方法;方法三,在所述活動(dòng)業(yè)務(wù)模型組件執(zhí)行所述本業(yè)務(wù)模型活動(dòng)調(diào)用后,在本次客戶端和服務(wù)器端會(huì)話結(jié)束時(shí)執(zhí)行的after方法??蛻舳速Y源,是所述軟件運(yùn)行平臺(tái)客戶端需要請(qǐng)求的其他資源或腳本,使用命名訪問ο本實(shí)施例中,較佳的,業(yè)務(wù)模型使用命名規(guī)則或指定父業(yè)務(wù)模型名稱方式進(jìn)行業(yè)務(wù)模型繼承。在上述軟件運(yùn)行平臺(tái)運(yùn)行過程中,子業(yè)務(wù)模型可以訪問父業(yè)務(wù)模型定義的內(nèi)容;其中當(dāng)子業(yè)務(wù)模型存在與父業(yè)務(wù)模型相同命名的數(shù)據(jù)對(duì)象、業(yè)務(wù)模型活動(dòng)和客戶端資源時(shí),則在訪問該子業(yè)務(wù)模型時(shí),其父業(yè)務(wù)模型的對(duì)應(yīng)資源被覆蓋。下述以圖3為例進(jìn)行詳細(xì)說明
請(qǐng)參閱圖3所示,命名繼承是采用業(yè)務(wù)模型代碼字符串向左包含的原則進(jìn)行,圖中定義了業(yè)務(wù)模型ab、ab_Cl、ab_C2,則業(yè)務(wù)模型ab_Cl、ab_C2被認(rèn)為是繼承了業(yè)務(wù)模型ab ;當(dāng)業(yè)務(wù)模型ab_cl、ab_c2存在與父業(yè)務(wù)模型ab相同命名的數(shù)據(jù)對(duì)象、業(yè)務(wù)模型活動(dòng)和客戶端資源時(shí),則父業(yè)務(wù)模型的對(duì)應(yīng)資源被覆蓋;圖中,業(yè)務(wù)模型ab,定義了數(shù)據(jù)對(duì)象db_2和用戶界面描述組件div_l,div_l使用了 db_2,業(yè)務(wù)模型ab_c2繼承了 ab,也定義了數(shù)據(jù)對(duì)象 db_2,這時(shí)如通過使用業(yè)務(wù)模型ab_c2,調(diào)用div_l,則ab_c2的db_2覆蓋了 ab中定義的 db_2,即div_l實(shí)際使用的數(shù)據(jù)對(duì)象是ab_c2中的db_2而非ab中的db_2 ;與對(duì)象的定義不同,使用命名繼承方式下的業(yè)務(wù)模型的繼承只需通過命名方式即可,而不需要其他標(biāo)識(shí)。
在使用指定父業(yè)務(wù)模型名稱方式進(jìn)行業(yè)務(wù)模型繼承時(shí),對(duì)應(yīng)指定的業(yè)務(wù)模型名稱的業(yè)務(wù)模型將成為該模型的父模型,業(yè)務(wù)模型繼承規(guī)則與命名繼承方式相同。進(jìn)一步的,業(yè)務(wù)模型可通過定義鏈接組件方式,來訪問非繼承方式下的其他業(yè)務(wù)模型中定義的用戶界面組件,其中當(dāng)該業(yè)務(wù)模型及其父模型與被鏈接的業(yè)務(wù)模型存在命名相同的數(shù)據(jù)對(duì)象時(shí),則被鏈接的業(yè)務(wù)模型中命名相同的數(shù)據(jù)對(duì)象將被覆蓋。下述以圖5為例進(jìn)行詳細(xì)說明
請(qǐng)參閱圖4所示,所述業(yè)務(wù)模型通過定義鏈接組件方式,來訪問非繼承方式下的其他所述業(yè)務(wù)模型中定義的用戶界面組件;在鏈接組件模式下,當(dāng)服務(wù)器端活動(dòng)業(yè)務(wù)模型組件已經(jīng)加載與鏈接源組件相同命名的數(shù)據(jù)對(duì)象時(shí),則鏈接源組件使用的其所在業(yè)務(wù)模型定義的數(shù)據(jù)對(duì)象被覆蓋;在圖5中,業(yè)務(wù)模型ac定義了一個(gè)鏈接組件div_2鏈接到源組件業(yè)務(wù)模型ab的div_l,當(dāng)在服務(wù)器端加載的活動(dòng)業(yè)務(wù)模型組件ac中調(diào)用組件div_2時(shí),業(yè)務(wù)模型ac中定義的數(shù)據(jù)對(duì)象db_2覆蓋了業(yè)務(wù)模型ab中定義的數(shù)據(jù)對(duì)象db_2 ;鏈接組件模式下,業(yè)務(wù)模型中除數(shù)據(jù)對(duì)象外,其他資源的不會(huì)被覆蓋。對(duì)應(yīng)于圖1所示的面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái),圖5公開一種該系統(tǒng)的運(yùn)行方法,包括以下步驟
步驟Si、軟件運(yùn)行平臺(tái)進(jìn)行啟動(dòng),完成初始化操作。 步驟S2、客戶端向工作頁面發(fā)出頁面請(qǐng)求,請(qǐng)求的頁面參數(shù)包括在軟件運(yùn)行平臺(tái)中定義的業(yè)務(wù)模型名。步驟S3、工作頁面加載頁面資源,啟動(dòng)客戶端系統(tǒng)架構(gòu)的客戶端控制引擎,并將頁面參數(shù)中的業(yè)務(wù)模型名傳遞給客戶端控制引擎,由該客戶端控制引擎向服務(wù)器端請(qǐng)求加載與該業(yè)務(wù)模型名同名的活動(dòng)業(yè)務(wù)模型組件以初始化用戶界面組件資源。步驟S4、服務(wù)器端的業(yè)務(wù)模型控制引擎響應(yīng)客戶端請(qǐng)求,根據(jù)請(qǐng)求的業(yè)務(wù)模型名, 查找緩存中是否有與其同名的活動(dòng)業(yè)務(wù)模型組件,如果有,則轉(zhuǎn)步驟S8,否則轉(zhuǎn)步驟S5。步驟S5、服務(wù)器端的業(yè)務(wù)模型控制引擎向服務(wù)器端的業(yè)務(wù)模型工廠組件查找與客戶端請(qǐng)求的業(yè)務(wù)模型名同名的業(yè)務(wù)模型實(shí)例,根據(jù)查找到的業(yè)務(wù)模型實(shí)例進(jìn)行檢查和授權(quán)認(rèn)證。其中,上述步驟S5中服務(wù)器端的業(yè)務(wù)模型控制引擎向服務(wù)器端的業(yè)務(wù)模型工廠組件查找與客戶端請(qǐng)求的業(yè)務(wù)模型名同名的業(yè)務(wù)模型實(shí)例,如該業(yè)務(wù)模型實(shí)例不存在,則業(yè)務(wù)模型工廠組件在軟件平臺(tái)中查找定義該業(yè)務(wù)模型的資源,并根據(jù)查找到的資源數(shù)據(jù)創(chuàng)建和管理業(yè)務(wù)模型實(shí)例,業(yè)務(wù)模型包括使用命名訪問的數(shù)據(jù)對(duì)象、用戶界面描述組件、業(yè)務(wù)模型活動(dòng)和客戶端資源。步驟S6、服務(wù)器端業(yè)務(wù)模型控制引擎根據(jù)認(rèn)證后的業(yè)務(wù)模型實(shí)例,創(chuàng)建活動(dòng)業(yè)務(wù)模型組件,并緩存。其中如圖1所示,活動(dòng)業(yè)務(wù)模型組件包括活動(dòng)數(shù)據(jù)對(duì)象、業(yè)務(wù)模型活動(dòng)、 活動(dòng)用戶描述組件和業(yè)務(wù)模型實(shí)例。步驟S7、服務(wù)器端活動(dòng)業(yè)務(wù)模型組件進(jìn)行初始化操作,即執(zhí)行所述業(yè)務(wù)模型中定義的初始化業(yè)務(wù)模型活動(dòng)。較佳的,每個(gè)業(yè)務(wù)模型實(shí)例使用自己定義的類裝載器,實(shí)時(shí)編譯執(zhí)行,并將編譯的腳本緩存于所述業(yè)務(wù)模型實(shí)例;以及當(dāng)服務(wù)器端的業(yè)務(wù)模型工廠組件釋放該業(yè)務(wù)模型實(shí)例時(shí),所述類裝載器也被釋放,以確保即時(shí)更新。較佳的,活動(dòng)業(yè)務(wù)模型組件支持自動(dòng)生命周期管理,具體體現(xiàn)在服務(wù)器端活動(dòng)業(yè)務(wù)模型組件上,包括下述兩種類型
維持從加載開始直到整個(gè)會(huì)話結(jié)束(除非顯式關(guān)閉)或一個(gè)新的同名的活動(dòng)業(yè)務(wù)模型組件重新創(chuàng)建時(shí)才釋放;
獨(dú)占在整個(gè)會(huì)話過程中,只能維持一個(gè)此種類型的活動(dòng)業(yè)務(wù)模型組件,一旦有一個(gè)其他同種類型的活動(dòng)業(yè)務(wù)模型組件建立,其他獨(dú)占類型的活動(dòng)業(yè)務(wù)模型組件將自動(dòng)釋放。 步驟S8、服務(wù)器端活動(dòng)業(yè)務(wù)模型組件根據(jù)客戶端請(qǐng)求,查找請(qǐng)求的資源、執(zhí)行請(qǐng)求的所述業(yè)務(wù)模型中定義的業(yè)務(wù)模型活動(dòng),同步和接受客戶端提交的數(shù)據(jù),并將需要返回客戶端的各種資源、數(shù)據(jù)和異常信息,進(jìn)行格式編碼后返回客戶端。步驟S9、客戶端控制弓I擎根據(jù)服務(wù)器端返回的格式數(shù)據(jù)進(jìn)行解析,動(dòng)態(tài)創(chuàng)建客戶端系統(tǒng)架構(gòu)的用戶界面組件、數(shù)據(jù)對(duì)象代理組件和加載數(shù)據(jù),緩存或執(zhí)行返回的腳本和其他資源,并顯示所創(chuàng)建的用戶界面組件。步驟S10、客戶端系統(tǒng)架構(gòu)的客戶端用戶執(zhí)行相關(guān)操作,由客戶端控制引擎執(zhí)行預(yù)先定義腳本,向服務(wù)器端同步增加或修改的數(shù)據(jù),和/或請(qǐng)求服務(wù)器端執(zhí)行相應(yīng)的業(yè)務(wù)模型活動(dòng)(所謂和/或,即可選的,在同步相關(guān)增加或修改的數(shù)據(jù)時(shí),可以同時(shí)請(qǐng)求服務(wù)器端執(zhí)行相應(yīng)的業(yè)務(wù)模型活動(dòng),但同步相關(guān)數(shù)據(jù)也可與請(qǐng)求執(zhí)行相應(yīng)業(yè)務(wù)模型活動(dòng)分開而各自獨(dú)立執(zhí)行)。通常,由客戶端請(qǐng)求服務(wù)器端執(zhí)行指定業(yè)務(wù)模型中定義的命名業(yè)務(wù)模型活動(dòng); 再由服務(wù)器端查找命名業(yè)務(wù)模型活動(dòng)資源,執(zhí)行查找出的業(yè)務(wù)模型活動(dòng)的腳本,將相關(guān)結(jié)果信息返回客戶端;然后再由客戶端控制引擎解析相關(guān)數(shù)據(jù),并做相關(guān)處理;處理完畢后, 轉(zhuǎn)步驟S4,進(jìn)入下一個(gè)交互式會(huì)話,依此循環(huán)。圖5所示的運(yùn)行方法是基于業(yè)務(wù)模型的,在該方法的運(yùn)行過程中,業(yè)務(wù)模型可以使用命名規(guī)則或指定父業(yè)務(wù)模型名稱方式進(jìn)行業(yè)務(wù)模型繼承,子業(yè)務(wù)模型可以訪問父業(yè)務(wù)模型定義的內(nèi)容;其中當(dāng)子業(yè)務(wù)模型存在與父業(yè)務(wù)模型相同命名的數(shù)據(jù)對(duì)象、業(yè)務(wù)模型活動(dòng)和客戶端資源時(shí),則在訪問該子業(yè)務(wù)模型時(shí),其父業(yè)務(wù)模型的對(duì)應(yīng)資源被覆蓋。由此,業(yè)務(wù)模型對(duì)應(yīng)資源的覆蓋可以使得子業(yè)務(wù)模型在可以重用父業(yè)務(wù)模型的資源基礎(chǔ)上,避免子業(yè)務(wù)模型與父業(yè)務(wù)模型不一致的地方,滿足子業(yè)務(wù)模型的個(gè)性化需要,還可以實(shí)現(xiàn)對(duì)業(yè)務(wù)模型的構(gòu)件集成和封裝。由于活動(dòng)業(yè)務(wù)模型組件只能訪問本活動(dòng)業(yè)務(wù)模型組件依賴的業(yè)務(wù)模型實(shí)例資源和父(包括祖先)業(yè)務(wù)模型實(shí)例資源,即業(yè)務(wù)模型本身具有封裝性。本實(shí)施例中,進(jìn)一步的, 業(yè)務(wù)模型可以通過定義鏈接組件方式,來訪問非繼承方式下的其他所述業(yè)務(wù)模型中定義的用戶界面組件,其中當(dāng)該業(yè)務(wù)模型及其父模型與被鏈接的業(yè)務(wù)模型存在命名相同的數(shù)據(jù)對(duì)象時(shí),則被鏈接的業(yè)務(wù)模型中命名相同的數(shù)據(jù)對(duì)象將被覆蓋。通過組件鏈接方式,可以實(shí)現(xiàn)對(duì)非繼承方式下其他業(yè)務(wù)模型資源的訪問,提高了業(yè)務(wù)模型資源的重用性和擴(kuò)展性。在組件鏈接方式下,相同命名的數(shù)據(jù)對(duì)象被覆蓋的方式,不但避免了資源訪問的沖突,還使得業(yè)務(wù)模型的擴(kuò)展性得到加強(qiáng),實(shí)現(xiàn)了業(yè)務(wù)模型對(duì)構(gòu)件的支持。比如,我們定義了一個(gè)實(shí)現(xiàn)工作流處理的業(yè)務(wù)模型,工作流的接口方法通常都是統(tǒng)一的,但為了實(shí)現(xiàn)對(duì)不同票據(jù)或文件處理的工作流支持,對(duì)實(shí)現(xiàn)流程定義規(guī)則的數(shù)據(jù)對(duì)象或記錄流程處理的數(shù)據(jù)對(duì)象需要對(duì)應(yīng)到數(shù)據(jù)庫中不同的數(shù)據(jù)表,這時(shí),只要在訪問工作流業(yè)務(wù)模型的業(yè)務(wù)模型中,定義相同命名的數(shù)據(jù)對(duì)象即可,工作流業(yè)務(wù)模型的內(nèi)容不需要做任何改變,覆蓋方式極大地提高了業(yè)務(wù)模型的通用性和靈活性,也實(shí)現(xiàn)了業(yè)務(wù)模型對(duì)構(gòu)件化的支持。
在傳統(tǒng)的軟件開發(fā)中,判斷登錄用戶是否具有執(zhí)行某個(gè)方法的或功能的權(quán)限占據(jù)了程序員很多的時(shí)間,需要寫很多的代碼,還往往和具體的方法混在一起,層次不分明,難于開發(fā)、修改、擴(kuò)展和維護(hù)。為此,本發(fā)明實(shí)施例可由活動(dòng)業(yè)務(wù)模型組件根據(jù)授權(quán)別名自動(dòng)判斷登錄用戶是否具有請(qǐng)求執(zhí)行相關(guān)業(yè)務(wù)模型活動(dòng)的權(quán)限。采用授權(quán)別名的自動(dòng)判斷方式可以實(shí)現(xiàn)功能代碼和判斷用戶執(zhí)行權(quán)限的分離,程序員可以不需要考慮登錄用戶的執(zhí)行權(quán)限,也不需要為此寫任何程序代碼,只要設(shè)置和具體權(quán)限別名相同的授權(quán)別名即可,實(shí)現(xiàn)簡單、層次分明、易于開發(fā)、擴(kuò)展和維護(hù),大幅度提高了開發(fā)效率。 較佳的,在圖5所示的運(yùn)行方法中,還可以進(jìn)一步包括以下步驟
客戶端系統(tǒng)架構(gòu)的數(shù)據(jù)對(duì)象代理組件的行數(shù)據(jù)與服務(wù)器端所述活動(dòng)業(yè)務(wù)模型組件內(nèi)的活動(dòng)數(shù)據(jù)對(duì)象的行數(shù)據(jù)通過動(dòng)態(tài)產(chǎn)生的唯一行標(biāo)識(shí)進(jìn)行對(duì)應(yīng),作為行數(shù)據(jù)同步的識(shí)別依據(jù),該唯一行標(biāo)識(shí)不依賴于行數(shù)據(jù)的任何狀態(tài)或內(nèi)容;
其中所述客戶端系統(tǒng)架構(gòu)的數(shù)據(jù)對(duì)象代理組件與服務(wù)器端所述活動(dòng)業(yè)務(wù)模型組件內(nèi)的活動(dòng)數(shù)據(jù)對(duì)象的行數(shù)據(jù)內(nèi)容同步包括兩種方式
基于列名的同步,每一行數(shù)據(jù)使用列名和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式;或者基于序號(hào)的同步,每一行數(shù)據(jù)使用字母加列號(hào)和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式。上述兩種同步方式的優(yōu)缺點(diǎn)舉例分述如下
比如,修改或錄入一個(gè)學(xué)生信息,學(xué)生具有以下字段信息
StudentName 學(xué)生姓名
StudentCode 學(xué)生代碼
ClassName 班級(jí)名稱
BornDate 生日
以上行信息在客戶和服務(wù)器端交互數(shù)據(jù)時(shí),在兩種同步方式下的數(shù)據(jù)編碼有所不同
1、基于列名的同步,每一行數(shù)據(jù)使用列名和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式; 編碼為〈row _rowid="r' StudentName="張三“StudentCode=OOOl"
ClassName="101" BornDate="1980-01-01"/>
2、基于序號(hào)的同步,每一行數(shù)據(jù)使用字母加列號(hào)和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式。編碼為〈row_rowid="l" cl="張三〃 c2="0001" c3="101" c4="1980-01_0l7> 由于在客戶端的數(shù)據(jù)對(duì)象代理組件和服務(wù)器端的活動(dòng)數(shù)據(jù)對(duì)象已經(jīng)建立列對(duì)應(yīng)關(guān)系,
在采用基于序號(hào)的同步方式時(shí),顯然可以減少傳遞的數(shù)據(jù)流量,而且如列名cl分離后得到列號(hào)1,直接指向數(shù)據(jù)列的位置,從而有效縮短了數(shù)據(jù)列的定位時(shí)間,提升了軟件的運(yùn)行效率,而采用第一種方式時(shí),還要根據(jù)列名查找列的位置,速度要慢很多。相比于傳統(tǒng)的使用表單與服務(wù)器交互的情況下,表單Form內(nèi)的信息需要全部下載或提交,無論內(nèi)容是否修改,交互次數(shù)多,數(shù)據(jù)量也多。其中本發(fā)明所公開的軟件運(yùn)行平臺(tái)及其運(yùn)行方法體現(xiàn)在減少網(wǎng)絡(luò)交互次數(shù)和傳輸?shù)臄?shù)據(jù)流量至少包括以下a、所述的內(nèi)容
a、在本平臺(tái)下,對(duì)于客戶端頁面的展現(xiàn)界面,通過使用命名組件方式,在客戶端界面組件被加載一次后,組件就被客戶端控制引擎緩存(除非顯式移除),再次請(qǐng)求時(shí),客戶端控制引擎從客戶端緩存中加載,這種方式可大幅度減少請(qǐng)求的界面資源數(shù)據(jù)量;在界面組件內(nèi)的數(shù)據(jù)需要變動(dòng)時(shí),只需要更新客戶端數(shù)據(jù)對(duì)象代理組件的數(shù)據(jù)內(nèi)容,其對(duì)應(yīng)的客戶端界面組件內(nèi)容即通過事件機(jī)制得到更新;其展現(xiàn)層(View)與數(shù)據(jù)層(Model)是分離的,符合經(jīng)典的MVC結(jié)構(gòu)思想。b、客戶端的數(shù)據(jù)對(duì)象代理組件和服務(wù)器端的活動(dòng)數(shù)據(jù)對(duì)象組件的行數(shù)據(jù)通過前述“基于序號(hào)的同步”方式,進(jìn)行交互數(shù)據(jù),網(wǎng)絡(luò)流量比傳統(tǒng)方式要少很多(一般可減少1/3 以上)。 C、客戶端的數(shù)據(jù)對(duì)象代理組件可以記錄修改的列單元數(shù)據(jù),這樣,在向服務(wù)器提交修改的數(shù)據(jù)時(shí),只提交修改的部分,而不是全部;如以上例子中,客戶修改了學(xué)生姓名 StudentName字段內(nèi)容,則傳遞的行數(shù)據(jù)經(jīng)編碼后為
〈row —rowid=〃l〃 cl=〃李四 〃/>
這種方式減少的數(shù)據(jù)量隨實(shí)際情況而定,一般可減少10%_90%的網(wǎng)絡(luò)數(shù)據(jù)量,比傳統(tǒng)方式總體減少可達(dá)1/2以上。本實(shí)施例中,較佳的,業(yè)務(wù)模型活動(dòng)的腳本代碼支持源代碼加載,其中每個(gè)業(yè)務(wù)模型實(shí)例使用自己定義的類裝載器,實(shí)時(shí)編譯執(zhí)行,并將編譯的腳本緩存于業(yè)務(wù)模型實(shí)例;當(dāng)服務(wù)器端的業(yè)務(wù)模型工廠組件釋放該業(yè)務(wù)模型實(shí)例時(shí),相應(yīng)類裝載器也被釋放,以確保即時(shí)更新。 本實(shí)施例中,較佳的,服務(wù)器端業(yè)務(wù)模型工廠組件在創(chuàng)建業(yè)務(wù)模型實(shí)例時(shí),生成數(shù)據(jù)對(duì)象實(shí)例,在活動(dòng)業(yè)務(wù)模型組件處理客戶端請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)對(duì)象實(shí)例生成活動(dòng)數(shù)據(jù)對(duì)象實(shí)例;其中活動(dòng)數(shù)據(jù)對(duì)象還與數(shù)據(jù)庫或其他外部資源進(jìn)行緩存活動(dòng)數(shù)據(jù)的交互,以實(shí)現(xiàn)數(shù)據(jù)加工處理和數(shù)據(jù)的持久化?;谏鲜鲕浖\(yùn)行平臺(tái)及其運(yùn)行方法,使得其面向業(yè)務(wù)模型的軟件的開發(fā)方法通過以下步驟即可實(shí)現(xiàn),如圖6所示
步驟Kl、軟件運(yùn)行平臺(tái)進(jìn)行啟動(dòng),完成初始化操作。步驟K2、登錄用戶完成登錄請(qǐng)求和注冊(cè)后,進(jìn)入工作頁面。步驟K3、進(jìn)入模型管理頁面,創(chuàng)建或定義軟件運(yùn)行平臺(tái)的各種業(yè)務(wù)模型。步驟K4、進(jìn)入業(yè)務(wù)模型的內(nèi)容定義界面。步驟K5、設(shè)置業(yè)務(wù)模型的屬性。步驟K6、定義業(yè)務(wù)模型的數(shù)據(jù)對(duì)象。步驟K7、定義業(yè)務(wù)模型的各種類型的用戶界面描述組件。步驟K8、定義業(yè)務(wù)模型的模型活動(dòng)。步驟K9、定義業(yè)務(wù)模型的客戶端資源。上述開發(fā)方法十分簡單,定義業(yè)務(wù)模型與具體的業(yè)務(wù)需求聯(lián)系比較緊密,而對(duì)具體的技術(shù)要求較低,可以使開發(fā)和實(shí)施人員的主要精力專注于業(yè)務(wù),如圖7所示,開發(fā)人員的大部分工作就集中于根據(jù)需求分析建立數(shù)據(jù)模型,然后再劃分和提取業(yè)務(wù)模塊,定義業(yè)務(wù)模型及業(yè)務(wù)模型內(nèi)容;而不必再為技術(shù)實(shí)現(xiàn)花費(fèi)過多的時(shí)間;在實(shí)際開發(fā)中,這種開發(fā)平臺(tái)也是基于本發(fā)明所述的體系架構(gòu)建立的。本發(fā)明中,上述軟件運(yùn)行平臺(tái)中的軟件系統(tǒng)架構(gòu)是一種技術(shù)框架和實(shí)現(xiàn)策略,包括運(yùn)行方式和開發(fā)方法在內(nèi),并不依賴于具體的Web運(yùn)行平臺(tái)或某種具體的語言,無論是 J2EE規(guī)范、.net,還是其他的服務(wù)平臺(tái)都是如此。
本實(shí)施例公開的實(shí)現(xiàn)面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)和開發(fā)方法,軟件運(yùn)行平臺(tái)客戶端按業(yè)務(wù)模型名請(qǐng)求的主頁面文件一般只有一個(gè)(但不排斥使用多個(gè)頁面文件),其顯示的用戶界面按請(qǐng)求的業(yè)務(wù)模型內(nèi)定義的組件資源不同而不同;主頁面文件(或稱工作頁面) 可以不再使用表單與平臺(tái)的服務(wù)器端進(jìn)行交互(但不排斥使用表單),而是由軟件運(yùn)行平臺(tái)的客戶端控制引擎和服務(wù)器端業(yè)務(wù)模型控制引擎來進(jìn)行統(tǒng)一管理;總體代碼量比傳統(tǒng)方式大幅度減少,整個(gè)系統(tǒng)簡潔清晰,且可以不用發(fā)布和部署,顯著縮短了軟件發(fā)布周期,極大降低了軟件的開發(fā)成本和實(shí)施成本,維護(hù)簡單,二次開發(fā)非常容易;由于可以采用非表單方式,能夠提供良好的人機(jī)交互界面,更容易被最終用戶接受;本軟件運(yùn)行平臺(tái)中,數(shù)據(jù)對(duì)象的使用,屏蔽了客戶端對(duì)數(shù)據(jù)庫SQL的直接訪問,可有效防止SQL注入攻擊,性能更高、更安全;由于對(duì)數(shù)據(jù)傳輸和同步方式做了優(yōu)化,網(wǎng)絡(luò)流量大幅度減少,且更加安全、穩(wěn)定、可靠, 更適合開發(fā)大型的企業(yè)級(jí)應(yīng)用。

最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái),其特征在于,包括服務(wù)器端系統(tǒng)架構(gòu)和客戶端系統(tǒng)架構(gòu);所述服務(wù)器端系統(tǒng)架構(gòu)包括業(yè)務(wù)模型工廠組件,用于查找定義的業(yè)務(wù)模型的資源,根據(jù)查找到的資源數(shù)據(jù)創(chuàng)建和管理業(yè)務(wù)模型實(shí)例,所述業(yè)務(wù)模型包括使用命名訪問的數(shù)據(jù)對(duì)象、用戶界面描述組件、業(yè)務(wù)模型活動(dòng)和客戶端資源;業(yè)務(wù)模型控制引擎,用于提供會(huì)話安全認(rèn)證和業(yè)務(wù)模型訪問認(rèn)證服務(wù),加載、管理和釋放活動(dòng)業(yè)務(wù)模型組件,為客戶端或其他外部訪問提供正確的活動(dòng)業(yè)務(wù)模型組件;活動(dòng)業(yè)務(wù)模型組件,用于處理客戶端訪問請(qǐng)求,提供程序上下文環(huán)境接口和外部訪問接口 ;根據(jù)客戶端請(qǐng)求,同步和接受客戶端傳遞的數(shù)據(jù),查詢、創(chuàng)建請(qǐng)求的各種資源,響應(yīng)并執(zhí)行請(qǐng)求的業(yè)務(wù)模型活動(dòng),并根據(jù)業(yè)務(wù)模型活動(dòng)的執(zhí)行情況,返回請(qǐng)求的各種資源、數(shù)據(jù)或異常信息;并用于加載所述業(yè)務(wù)模型工廠組件定義的業(yè)務(wù)模型實(shí)例,解析業(yè)務(wù)模型定義和業(yè)務(wù)模型繼承、組件鏈接關(guān)系,調(diào)度業(yè)務(wù)模型中的定義的各種資源,根據(jù)業(yè)務(wù)模型實(shí)例中的數(shù)據(jù)對(duì)象組件實(shí)例創(chuàng)建和管理活動(dòng)數(shù)據(jù)對(duì)象實(shí)例和交互數(shù)據(jù),執(zhí)行業(yè)務(wù)模型定義的業(yè)務(wù)模型活動(dòng),完成客戶端調(diào)用或其他外部調(diào)用; 所述客戶端系統(tǒng)架構(gòu)包括客戶端控制引擎,用于處理客戶端的資源請(qǐng)求,指令調(diào)用,發(fā)送向服務(wù)器同步的數(shù)據(jù)或其他資源,請(qǐng)求執(zhí)行業(yè)務(wù)模型活動(dòng)、進(jìn)行數(shù)據(jù)編碼、解碼,通訊,響應(yīng)、解析、加載、執(zhí)行服務(wù)器端返回的數(shù)據(jù)、代碼或其他資源,并為客戶端程序提供代碼運(yùn)行環(huán)境;數(shù)據(jù)對(duì)象代理組件,用于充當(dāng)用戶界面組件顯示的數(shù)據(jù)來源,其與上述活動(dòng)業(yè)務(wù)模型組件中命名相同的活動(dòng)數(shù)據(jù)對(duì)象實(shí)例對(duì)應(yīng),包含所述活動(dòng)數(shù)據(jù)對(duì)象實(shí)例的部分或全部數(shù)據(jù);用戶界面組件,包括用于在客戶端顯示的各種界面組件,其與所述業(yè)務(wù)模型中定義的所述用戶界面描述組件通過命名相對(duì)應(yīng),并通過事件驅(qū)動(dòng)響應(yīng)機(jī)制與所述數(shù)據(jù)對(duì)象代理組件的數(shù)據(jù)進(jìn)行同步。
2.一種根據(jù)權(quán)利要求1所述的軟件運(yùn)行平臺(tái)的運(yùn)行方法,其特征在于,包括以下步驟 步驟Si、所述軟件運(yùn)行平臺(tái)進(jìn)行啟動(dòng),完成初始化操作;步驟S2、客戶端向工作頁面發(fā)出頁面請(qǐng)求,請(qǐng)求的頁面參數(shù)包括在所述軟件運(yùn)行平臺(tái)中定義的業(yè)務(wù)模型名;步驟S3、所述工作頁面加載頁面資源,啟動(dòng)客戶端系統(tǒng)架構(gòu)的客戶端控制引擎,并將頁面參數(shù)中的業(yè)務(wù)模型名傳遞給所述客戶端控制引擎,由該客戶端控制引擎向服務(wù)器端請(qǐng)求加載與該業(yè)務(wù)模型名同名的活動(dòng)業(yè)務(wù)模型組件以初始化用戶界面組件資源;步驟S4、服務(wù)器端的業(yè)務(wù)模型控制引擎響應(yīng)客戶端請(qǐng)求,根據(jù)請(qǐng)求的業(yè)務(wù)模型名,查找緩存中是否有與其同名的活動(dòng)業(yè)務(wù)模型組件,如果有,則轉(zhuǎn)步驟S8,否則轉(zhuǎn)步驟S5 ;步驟S5、服務(wù)器端的業(yè)務(wù)模型控制引擎向服務(wù)器端的業(yè)務(wù)模型工廠組件查找與客戶端請(qǐng)求的業(yè)務(wù)模型名同名的業(yè)務(wù)模型實(shí)例,根據(jù)查找到的業(yè)務(wù)模型實(shí)例進(jìn)行檢查和授權(quán)認(rèn)證;步驟S6、服務(wù)器端業(yè)務(wù)模型控制引擎根據(jù)認(rèn)證后的所述業(yè)務(wù)模型實(shí)例,創(chuàng)建活動(dòng)業(yè)務(wù)模型組件,并緩存;步驟S7、服務(wù)器端活動(dòng)業(yè)務(wù)模型組件進(jìn)行初始化操作;步驟S8、服務(wù)器端活動(dòng)業(yè)務(wù)模型組件根據(jù)所述客戶端請(qǐng)求,查找請(qǐng)求的資源、執(zhí)行請(qǐng)求的所述業(yè)務(wù)模型中定義的業(yè)務(wù)活動(dòng),同步和接受客戶端提交的數(shù)據(jù),并將需要返回客戶端的各種資源、數(shù)據(jù)和異常信息,進(jìn)行格式編碼后返回客戶端; 步驟S9、客戶端控制引擎根據(jù)服務(wù)器端返回的格式數(shù)據(jù)進(jìn)行解析,動(dòng)態(tài)創(chuàng)建客戶端系統(tǒng)架構(gòu)的用戶界面組件、數(shù)據(jù)對(duì)象代理組件和加載數(shù)據(jù),緩存或執(zhí)行返回的腳本和其他資源,并顯示所創(chuàng)建的用戶界面組件;步驟S10、客戶端系統(tǒng)架構(gòu)的客戶端用戶執(zhí)行相關(guān)操作,由客戶端控制引擎執(zhí)行預(yù)先定義的腳本,向服務(wù)器端同步增加或修改的數(shù)據(jù),和/或請(qǐng)求服務(wù)器端執(zhí)行相應(yīng)的業(yè)務(wù)模型活動(dòng)。
3.根據(jù)權(quán)利要求2所述的運(yùn)行方法,其特征在于,還包括上述步驟S5中所述服務(wù)器端的業(yè)務(wù)模型控制引擎向服務(wù)器端的業(yè)務(wù)模型工廠組件查找與客戶端請(qǐng)求的業(yè)務(wù)模型名同名的業(yè)務(wù)模型實(shí)例,如該實(shí)例不存在,則所述業(yè)務(wù)模型工廠組件在所述軟件平臺(tái)中查找定義該業(yè)務(wù)模型的資源信息,并很據(jù)查找到的資源信息創(chuàng)建和管理業(yè)務(wù)模型實(shí)例,所述業(yè)務(wù)模型包括使用命名訪問的數(shù)據(jù)對(duì)象、用戶界面描述組件、業(yè)務(wù)模型活動(dòng)和客戶端資源。
4.根據(jù)權(quán)利要求3所述的運(yùn)行方法,其特征在于,所述業(yè)務(wù)模型使用命名規(guī)則或指定父業(yè)務(wù)模型名稱方式進(jìn)行業(yè)務(wù)模型繼承,子業(yè)務(wù)模型可以訪問父業(yè)務(wù)模型定義的內(nèi)容;其中當(dāng)子業(yè)務(wù)模型存在與父業(yè)務(wù)模型相同命名的數(shù)據(jù)對(duì)象、業(yè)務(wù)模型活動(dòng)和客戶端資源時(shí), 則在訪問該子業(yè)務(wù)模型時(shí),其父業(yè)務(wù)模型的對(duì)應(yīng)資源被覆蓋。
5.根據(jù)權(quán)利要求4所述的運(yùn)行方法,其特征在于,所述業(yè)務(wù)模型通過定義鏈接組件方式,來訪問非繼承方式下的其他所述業(yè)務(wù)模型中定義的用戶界面組件,其中當(dāng)該業(yè)務(wù)模型及其父模型與被鏈接的業(yè)務(wù)模型存在命名相同的數(shù)據(jù)對(duì)象時(shí),則被鏈接的業(yè)務(wù)模型中命名相同的數(shù)據(jù)對(duì)象將被覆蓋。
6.根據(jù)權(quán)利要求2、3、4或5所述的運(yùn)行方法,其特征在于,所述業(yè)務(wù)模型活動(dòng)屬性還包含授權(quán)別名,所述運(yùn)行方法還包括由所述活動(dòng)業(yè)務(wù)模型組件根據(jù)授權(quán)別名自動(dòng)判斷登錄用戶是否具有請(qǐng)求執(zhí)行所述業(yè)務(wù)模型活動(dòng)的權(quán)限。
7.根據(jù)權(quán)利要求2、3、4或5所述的運(yùn)行方法,其特征在于,所述客戶端系統(tǒng)架構(gòu)的數(shù)據(jù)對(duì)象代理組件的行數(shù)據(jù)與服務(wù)器端所述活動(dòng)業(yè)務(wù)模型組件內(nèi)的活動(dòng)數(shù)據(jù)對(duì)象的行數(shù)據(jù)通過動(dòng)態(tài)產(chǎn)生的唯一行標(biāo)識(shí)進(jìn)行對(duì)應(yīng),作為行數(shù)據(jù)同步的識(shí)別依據(jù);其中所述客戶端系統(tǒng)架構(gòu)的數(shù)據(jù)對(duì)象代理組件與服務(wù)器端所述活動(dòng)業(yè)務(wù)模型組件內(nèi)的活動(dòng)數(shù)據(jù)對(duì)象的行數(shù)據(jù)內(nèi)容同步包括兩種方式基于列名的同步,每一行數(shù)據(jù)使用列名和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式;或者基于序號(hào)的同步,每一行數(shù)據(jù)使用字母加列號(hào)和對(duì)應(yīng)的值來交互和同步數(shù)據(jù)的方式。
8.根據(jù)權(quán)利要求2、3、4或5所述的運(yùn)行方法,其特征在于,所述業(yè)務(wù)模型活動(dòng)的腳本代碼支持源代碼加載,所述運(yùn)行方法還包括所述每個(gè)業(yè)務(wù)模型實(shí)例使用自己定義的類裝載器,實(shí)時(shí)編譯執(zhí)行,并將編譯的腳本緩存于所述業(yè)務(wù)模型實(shí)例;以及當(dāng)服務(wù)器端的業(yè)務(wù)模型工廠組件釋放該業(yè)務(wù)模型實(shí)例時(shí),所述類裝載器也被釋放,以確保即時(shí)更新。
9.根據(jù)權(quán)利要求2、3、4或5所述的運(yùn)行方法,其特征在于,服務(wù)器端業(yè)務(wù)模型工廠組件在創(chuàng)建業(yè)務(wù)模型實(shí)例時(shí),生成數(shù)據(jù)對(duì)象實(shí)例,在活動(dòng)業(yè)務(wù)模型組件處理客戶端請(qǐng)求時(shí),根據(jù)所述數(shù)據(jù)對(duì)象實(shí)例生成活動(dòng)數(shù)據(jù)對(duì)象實(shí)例;其中活動(dòng)數(shù)據(jù)對(duì)象還與數(shù)據(jù)庫或其他外部資源進(jìn)行緩存活動(dòng)數(shù)據(jù)的交互。
10.根據(jù)權(quán)利要求2、3、4或5所述的運(yùn)行方法,其特征在于,其面向業(yè)務(wù)模型的軟件的開發(fā)方法包括以下步驟步驟K1、軟件運(yùn)行平臺(tái)進(jìn)行啟動(dòng),完成初始化操作;步驟K2、登錄用戶完成登錄請(qǐng)求和注冊(cè)后,進(jìn)入工作頁面;步驟K3、進(jìn)入業(yè)務(wù)模型管理頁面,創(chuàng)建或定義軟件運(yùn)行平臺(tái)的各種業(yè)務(wù)模型;步驟K4、進(jìn)入業(yè)務(wù)模型的內(nèi)容定義界面;步驟K5、設(shè)置業(yè)務(wù)模型的屬性;步驟K6、定義業(yè)務(wù)模型的數(shù)據(jù)對(duì)象;步驟K7、定義業(yè)務(wù)模型的各種類型的用戶界面描述組件;步驟K8、定義業(yè)務(wù)模型的模型活動(dòng);步驟K9、定義業(yè)務(wù)模型的客戶端資源。
全文摘要
本發(fā)明公開一種面向業(yè)務(wù)模型的軟件運(yùn)行平臺(tái)及其運(yùn)行方法,以面向業(yè)務(wù)模型,開發(fā)安全、穩(wěn)定、可靠的軟件系統(tǒng),具有開發(fā)效率高、維護(hù)成本低、易于擴(kuò)展、簡單易學(xué)等優(yōu)點(diǎn)。本發(fā)明公開的軟件運(yùn)行平臺(tái)包括服務(wù)器端系統(tǒng)架構(gòu)和客戶端系統(tǒng)架構(gòu);服務(wù)器端系統(tǒng)架構(gòu)包括業(yè)務(wù)模型工廠組件,業(yè)務(wù)模型控制引擎和活動(dòng)業(yè)務(wù)模型組件;客戶端系統(tǒng)架構(gòu)包括客戶端控制引擎,數(shù)據(jù)對(duì)象代理組件和用戶界面組件。本發(fā)明公開的軟件運(yùn)行平臺(tái)及其運(yùn)行方法為面向服務(wù)的軟件技術(shù)發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ),為云環(huán)境開發(fā)計(jì)算機(jī)軟件系統(tǒng)提供了解決方案,也為網(wǎng)構(gòu)化軟件的發(fā)展應(yīng)用開辟了新的思路和實(shí)現(xiàn)方法,適用范圍廣泛。
文檔編號(hào)G06F9/44GK102222005SQ20111019303
公開日2011年10月19日 申請(qǐng)日期2011年7月12日 優(yōu)先權(quán)日2011年7月12日
發(fā)明者鐘文祥 申請(qǐng)人:銅陵玉成軟件科技有限責(zé)任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1