專(zhuān)利名稱(chēng):一種通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā)的技術(shù)實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及服務(wù)端業(yè)務(wù)邏輯開(kāi)發(fā)方法,具體涉及一種通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā) 的技術(shù)實(shí)現(xiàn)方法法。
背景技術(shù):
隨著軟件產(chǎn)業(yè)的飛速發(fā)展,應(yīng)用從提出需求到開(kāi)發(fā)部署的周期越來(lái)越短,開(kāi)發(fā)工 具的功能、語(yǔ)言的支持能力、高效開(kāi)發(fā)能力等因素,在技術(shù)實(shí)施中越來(lái)越占據(jù)重要的比例。 原有的單一業(yè)務(wù)應(yīng)用開(kāi)發(fā)平臺(tái),套件化、定制化、逐個(gè)對(duì)象實(shí)現(xiàn)的方式,無(wú)疑已成為了應(yīng)用 開(kāi)發(fā)的瓶頸。因此,從上世紀(jì)90年代中期開(kāi)始,軟件基礎(chǔ)架構(gòu)平臺(tái)的興起以及業(yè)務(wù)基礎(chǔ)軟件平 臺(tái)的誕生,使得新的軟件平臺(tái)產(chǎn)業(yè)正在悄然而迅速地形成;同時(shí),以業(yè)務(wù)為導(dǎo)向和驅(qū)動(dòng)的、 可快速構(gòu)建應(yīng)用軟件的應(yīng)用軟件平臺(tái)(中間件Middleware),與操作系統(tǒng)、數(shù)據(jù)庫(kù)并稱(chēng)為基 礎(chǔ)軟件的三架馬車(chē),已成為企業(yè)級(jí)應(yīng)用不可或缺的三大支柱。據(jù)專(zhuān)業(yè)研究與咨詢(xún)機(jī)構(gòu)IDC發(fā)布的《軟件商成長(zhǎng)路線圖》白皮書(shū)顯示技術(shù)平臺(tái)及 其與產(chǎn)品平臺(tái)的分離,是當(dāng)前軟件開(kāi)發(fā)商競(jìng)爭(zhēng)力得以差異化并提升的戰(zhàn)略重點(diǎn)。技術(shù)平臺(tái) 對(duì)于軟件商的價(jià)值,從技術(shù)層面來(lái)看,可以直接提高軟件開(kāi)發(fā)的復(fù)用度和敏捷度;從管理層 面來(lái)看,則可降低對(duì)人員的依賴(lài)性并最終提升軟件的規(guī)?;?、流水線式的生產(chǎn)能力。從技術(shù) 和管理兩方面進(jìn)行提高,技術(shù)平臺(tái)將最終使得軟件開(kāi)發(fā)商可以關(guān)注客戶業(yè)務(wù),形成自己的 核心競(jìng)爭(zhēng)力??v觀當(dāng)前市場(chǎng)上的應(yīng)用開(kāi)發(fā)平臺(tái),從技術(shù)角度來(lái)看,主要有以下幾種基于.NET 的應(yīng)用開(kāi)發(fā)平臺(tái)、基于J2EE的開(kāi)發(fā)平臺(tái)、協(xié)同開(kāi)發(fā)平臺(tái)、Web應(yīng)用開(kāi)發(fā)平臺(tái)等。由于資源耗費(fèi)高、安全性能差等局限性,C/S結(jié)構(gòu)被更加靈活的多級(jí)分布式的B/S 結(jié)構(gòu)所取代已經(jīng)成為必然的趨勢(shì)。同時(shí),隨著近年來(lái)互聯(lián)網(wǎng)的快速發(fā)展,特別是2005年以 來(lái)Web2. 0、AJAX技術(shù)的快速發(fā)展所帶來(lái)的Web信息發(fā)布和檢索技術(shù)、網(wǎng)絡(luò)分布式對(duì)象技術(shù) 的飛速發(fā)展,使得B/S取代C/S成了大勢(shì)所趨。C/S應(yīng)用的各種復(fù)雜功能,在B/S上都能得 到實(shí)現(xiàn),而B(niǎo)/S又有C/S所達(dá)不到的重要特性。這也使得基于Web應(yīng)用,以業(yè)務(wù)為導(dǎo)向和驅(qū)動(dòng)、專(zhuān)門(mén)用來(lái)快速構(gòu)建應(yīng)用軟件的應(yīng) 用開(kāi)發(fā)平臺(tái),具有了許多附帶的技術(shù)和方案,既可以與其它技術(shù)結(jié)合,并能夠進(jìn)一步減少 開(kāi)發(fā)Web應(yīng)用的周期、降低客戶投資,無(wú)疑更能滿足用戶的需求,代表著市場(chǎng)未來(lái)發(fā)展的方 向,成為軟件發(fā)展新的撒手锏。就軟件體系結(jié)構(gòu)而言,傳統(tǒng)的軟件體結(jié)構(gòu)雖然經(jīng)歷從基于硬件平臺(tái)、操作系統(tǒng)平 臺(tái)、數(shù)據(jù)庫(kù)平臺(tái)和中間件平臺(tái)的發(fā)展,這種開(kāi)發(fā)體系結(jié)構(gòu)的發(fā)展在也很大程度上提高了軟 件研發(fā)效率,但它們依然有著明顯的不足開(kāi)發(fā)難度依然比較大,開(kāi)發(fā)周期依然比較長(zhǎng)。軟 件開(kāi)發(fā)的效率并沒(méi)數(shù)量級(jí)的改進(jìn)。再加上此前的軟件體系都是從技術(shù)層面進(jìn)行的改進(jìn),和 企業(yè)應(yīng)用軟件主體,密切相關(guān)的業(yè)務(wù)需求領(lǐng)域比較遠(yuǎn),因此無(wú)法在解決因業(yè)務(wù)的復(fù)雜性而 帶來(lái)的管理軟件的復(fù)雜性領(lǐng)域有實(shí)質(zhì)性的突破。
就軟件開(kāi)發(fā)方式而言,傳統(tǒng)開(kāi)發(fā)方式的主要特點(diǎn)是編碼式的開(kāi)發(fā)方式與一次性 開(kāi)發(fā)持續(xù)運(yùn)行的應(yīng)用軟件。編碼式的方式使得快速開(kāi)發(fā)企業(yè)級(jí)應(yīng)用軟件的愿望難以實(shí)現(xiàn); 一次開(kāi)發(fā)持續(xù)運(yùn)行的方式,則導(dǎo)致了軟件的僵化和瀕?!@種軟件不但難以適應(yīng)客戶需 求的變化,而且每次修改都必須在代碼層面上推倒重來(lái),因此造成了效率的降低和資源的浪費(fèi)。我們?cè)陔娏π袠I(yè)、制造行業(yè)、工程管理、電子政務(wù)、商貿(mào)企業(yè)進(jìn)行了多年的應(yīng)用軟 件項(xiàng)目開(kāi)發(fā),開(kāi)發(fā)實(shí)施過(guò)程中體會(huì)到現(xiàn)有開(kāi)發(fā)方式的高成本、低效率等缺陷。一方面,應(yīng)用 軟件開(kāi)發(fā),可以選擇不同的編程語(yǔ)言和實(shí)現(xiàn)方式,例如可以采用PB、VB、Java, JavaScript, 或者可以基于瀏覽器直接實(shí)現(xiàn)。而隨著平臺(tái)的升級(jí)和規(guī)則的調(diào)整,過(guò)去的應(yīng)用往往不能直 接跟新系統(tǒng)對(duì)接。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決上述問(wèn)題,提供了一種節(jié)省了開(kāi)發(fā)成本縮短了開(kāi)發(fā)周 期,提高了 Web軟件開(kāi)發(fā)效率和為管理軟件敏捷開(kāi)發(fā)提供了關(guān)鍵支持,使得開(kāi)發(fā)者能夠更 從容的管理和駕馭大型復(fù)雜管理系統(tǒng)和開(kāi)發(fā)和后期運(yùn)營(yíng)的通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā)的 技術(shù)實(shí)現(xiàn)方法。本發(fā)明的技術(shù)方案如下一種通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā)的技術(shù)實(shí)現(xiàn)方法,電子表單技術(shù)將數(shù)據(jù)采集與展 現(xiàn)功能集成于一體;電子表單系統(tǒng)分為三層界面表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)交換層;在界面表現(xiàn)層將通過(guò)模板引擎將靜態(tài)模板編譯動(dòng)態(tài)模板;封裝好的組件標(biāo)簽化顯 示,各類(lèi)組件將數(shù)據(jù)綁定邏輯,進(jìn)行數(shù)據(jù)采集、校驗(yàn)、計(jì)算、展現(xiàn);可視化的表單設(shè)計(jì)界面,直接采用拖、拉、點(diǎn)、拽的方式來(lái)設(shè)計(jì)表單;常見(jiàn)的數(shù)據(jù)獲 取保存,直接用頁(yè)面組件;涉及到界面的展示,人機(jī)操作交互,因此在表現(xiàn)層提供了豐富的組件;組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息關(guān)聯(lián)、展現(xiàn)計(jì)算;通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè)面刷 新;界面表現(xiàn)層提供批修改、下拉、凍結(jié)、標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表單和表單域、 操作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正的電子表單功能;開(kāi)發(fā)人員通過(guò)表單控制器與內(nèi)置組件 和操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用戶界面表現(xiàn)層上的開(kāi)發(fā);表現(xiàn)層通過(guò)應(yīng)用門(mén)戶、多數(shù)據(jù)源連接可進(jìn)行應(yīng)用擴(kuò)展,可通過(guò)XML、SOA訪問(wèn)JDBC 的方式進(jìn)行數(shù)據(jù)訪問(wèn)。組件包括兩類(lèi)操作和域;操作以鏈接、按鈕方式展現(xiàn);域,與數(shù)據(jù)源 綁定、進(jìn)行數(shù)據(jù)采集、展現(xiàn);業(yè)務(wù)邏輯層起到承上啟下的調(diào)度控制作用;在業(yè)務(wù)邏輯層,主要包含規(guī)則引擎、腳本引擎、映射引擎、消息引擎、表單控制器、 SOA 接口 ;一方面,系統(tǒng)在前端設(shè)計(jì)環(huán)境中,提供豐富的事件接口,允許用戶引入JS腳本,實(shí) 現(xiàn)對(duì)各種復(fù)雜易變邏輯的控制和調(diào)整;另一方面,系統(tǒng)在服務(wù)端構(gòu)建了完整的JAVA腳本引 擎,在系統(tǒng)運(yùn)行的不同時(shí)機(jī)和階段、加載和調(diào)用用戶編寫(xiě)的JS腳本;
腳本引擎支持所有業(yè)務(wù)中間件中的對(duì)象和方法調(diào)用,核心包括組織用戶對(duì)象和方 法、工作流對(duì)象和方法、電子表單對(duì)象和方法,使得用戶用簡(jiǎn)單的javascript也能實(shí)現(xiàn)復(fù) 雜的業(yè)務(wù)處理邏輯;通過(guò)規(guī)則、腳本、映射引擎將界面表現(xiàn)層中各種組件數(shù)據(jù)與數(shù)據(jù)交換層的數(shù)據(jù)進(jìn) 行關(guān)聯(lián),實(shí)現(xiàn)增、刪、改、查,實(shí)現(xiàn)主子數(shù)據(jù)的關(guān)聯(lián);控制器是整個(gè)系統(tǒng)的核心部分,對(duì)頁(yè)面與業(yè)務(wù)層的數(shù)據(jù)進(jìn)行封裝、交換、轉(zhuǎn)發(fā),整 個(gè)系統(tǒng)只有一個(gè)控制器;控制器對(duì)應(yīng)的java類(lèi)為AppAction. java,此類(lèi)主要對(duì)Mruts類(lèi) 進(jìn)行封裝,處理所有頁(yè)面提交的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到業(yè)務(wù)層;業(yè)務(wù)邏輯層能夠進(jìn)行SOA接口發(fā)布服務(wù),使得本應(yīng)用系統(tǒng)與異構(gòu)應(yīng)用系統(tǒng)具有很 好的可調(diào)用性,真正實(shí)現(xiàn)應(yīng)用集成;表單控制,有效地管理了業(yè)務(wù)走向;應(yīng)用與工作流有關(guān) 的走流程;沒(méi)有流程的進(jìn)入下一個(gè)業(yè)務(wù)環(huán)節(jié);在數(shù)據(jù)交換層可以對(duì)數(shù)據(jù)源、數(shù)據(jù)屬性進(jìn)行有效的管理。通過(guò)數(shù)據(jù)庫(kù)引擎實(shí)現(xiàn)后 臺(tái)數(shù)據(jù)的操作,如數(shù)據(jù)連接、數(shù)據(jù)約束、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)校驗(yàn);數(shù)據(jù)庫(kù)引擎還負(fù)責(zé)數(shù)據(jù)的讀取,支持SOA方式、JDBC方式、XML方式、LDAP方式的 數(shù)據(jù)讀?。幌到y(tǒng)設(shè)計(jì)時(shí)采用了跨數(shù)據(jù)庫(kù)技術(shù),可以運(yùn)行在所有的數(shù)據(jù)庫(kù)系統(tǒng)上;數(shù)據(jù)層是企 業(yè)數(shù)據(jù)中心的一個(gè)重要的基礎(chǔ)設(shè)施,用于數(shù)據(jù)的存取,隨著XML在應(yīng)用表達(dá)和數(shù)據(jù)交換中 的應(yīng)用越來(lái)越廣泛,數(shù)據(jù)庫(kù)系統(tǒng)對(duì)XML操作的支持要求也越來(lái)越高;建設(shè)業(yè)務(wù)數(shù)據(jù)中心,需 要選擇一個(gè)功能強(qiáng)大、穩(wěn)定、可靠的數(shù)據(jù)庫(kù)系統(tǒng);數(shù)據(jù)校驗(yàn)管理,提供對(duì)頁(yè)面輸入在保存前或修改前進(jìn)行后臺(tái)數(shù)據(jù)校驗(yàn)處理的模 塊;通過(guò)AJAX進(jìn)行后臺(tái)校驗(yàn),如果校驗(yàn)不通過(guò),則無(wú)法提交更新。提供腳本的編輯、修改等 功能;數(shù)據(jù)映射管理,提供對(duì)頁(yè)面域與數(shù)據(jù)庫(kù)表中相關(guān)字段建立映射關(guān)系的設(shè)置;通過(guò) 映射表和映射字段來(lái)創(chuàng)建映射關(guān)系;這三個(gè)層次有機(jī)集成,互相關(guān)聯(lián);表現(xiàn)層實(shí)現(xiàn)人機(jī)界面交互;業(yè)務(wù)邏輯層承上啟 下,使人機(jī)交互界面同數(shù)據(jù)層形成業(yè)務(wù)邏輯關(guān)系;數(shù)據(jù)層實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的連接、存儲(chǔ)。界面表現(xiàn)層包括各類(lèi)組件、模板引擎、AJAX引擎;組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息 關(guān)聯(lián)、展現(xiàn)計(jì)算。通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè)面刷新;界面表現(xiàn)層提供批修改、下拉、凍結(jié)、 標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表單和表單域、操作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正的電 子表單功能;開(kāi)發(fā)人員通過(guò)表單控制器與內(nèi)置組件和操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用戶界 面表現(xiàn)層上的開(kāi)發(fā);組件包括
1)文本框
2)大文本框
3)下拉框
4)單選框
5)多選框
6)隱藏域
7)只讀域
8)密碼域9)附件域10)意見(jiàn)域11)意見(jiàn)列表域12)計(jì)算域13)關(guān)聯(lián)域14)屬性域1QHTML 域16)狀態(tài)域17)子表域18)日期操作19)日期時(shí)間操作20)選擇用戶操作21)選擇部門(mén)操作22)選擇組織操作23)選擇授權(quán)操作24)彈出程序表單操作25)按鈕或鏈接26)自定義彈出框27)彈出模塊28)彈出樹(shù)29)進(jìn)度條30)校驗(yàn)碼31)條型碼32)快捷輸入碼33)流程工作標(biāo)題域AJAX引擎,頁(yè)面通過(guò)JS發(fā)出AJAX請(qǐng)求,平臺(tái)接收到請(qǐng)求參數(shù),執(zhí)行相應(yīng)的請(qǐng)求,將 處理完的數(shù)據(jù)序列化成XML文件,傳輸給瀏覽器,瀏覽器再根據(jù)JS腳本,顯示在頁(yè)面上,實(shí) 現(xiàn)局部刷新的效果;模板引擎,在表單管理中模板定制中電子表單引用動(dòng)態(tài)模板編輯軟件結(jié)合struts 的標(biāo)簽技術(shù)和映射技術(shù),將靜態(tài)的表格通過(guò)在編輯器中拖拽封裝好的各種標(biāo)簽組件,點(diǎn)擊 保存后臺(tái)自動(dòng)編譯執(zhí)行將靜態(tài)模板轉(zhuǎn)換成動(dòng)態(tài)的jsp頁(yè)面,形成模板引擎;業(yè)務(wù)邏輯層主要包含規(guī)則引擎、腳本引擎、映射引擎、消息引擎、表單控制器和SOA 接口 ;業(yè)務(wù)邏輯層起到承上啟下的調(diào)度作用;通過(guò)規(guī)則、腳本、映射引擎將界面表現(xiàn)層中各 種組件數(shù)據(jù)與數(shù)據(jù)交換層的數(shù)據(jù)進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)增、刪、改、查,實(shí)現(xiàn)主子數(shù)據(jù)的關(guān)聯(lián);通過(guò) SOA接口發(fā)布服務(wù),使得本應(yīng)用系統(tǒng)與異構(gòu)應(yīng)用系統(tǒng)具有很好的互訪性,真正實(shí)現(xiàn)應(yīng)用集 成;腳本引擎,電子表單系統(tǒng)預(yù)留了很多開(kāi)發(fā)腳本接口的地方,開(kāi)發(fā)的腳本都遵循 JavaScript的語(yǔ)法規(guī)則,生成的腳本存放到后臺(tái)服務(wù)器上,單獨(dú)形成獨(dú)立的JS文件,電子表單內(nèi)嵌bsf(Bean Scripting Framework),在后臺(tái)業(yè)務(wù)處理類(lèi)的過(guò)程中通過(guò)腳本引擎動(dòng) 態(tài)的調(diào)用腳本接口處填寫(xiě)的javascript腳本;規(guī)則引擎,通過(guò)抽取業(yè)務(wù)邏輯,封裝成規(guī)則組件,嵌入到表單設(shè)計(jì)器中,根據(jù)需要 隨時(shí)調(diào)??;并且能夠支持規(guī)則的組裝,規(guī)則的擴(kuò)展;映射引擎,電子表單在建立的過(guò)程中有數(shù)據(jù)源的選擇,通過(guò)數(shù)據(jù)源及數(shù)據(jù)庫(kù)表的 確定,系統(tǒng)自動(dòng)讀取表中的字段設(shè)立為表單的域,在表單解析執(zhí)行的過(guò)程中通過(guò)平臺(tái)后臺(tái) 的映射機(jī)制,自動(dòng)將表單頁(yè)面上的域和數(shù)據(jù)庫(kù)表中的字段建立映射,從而形成映射引擎。消息引擎采用兩種方式進(jìn)行信息發(fā)送短信通知方式和消息通知方式;消息引擎 是電子表單的一個(gè)重要組成部分,消息服務(wù)程序?qū)⒃诿糠昼娺\(yùn)行一次,將消息發(fā)送隊(duì)列的 消息發(fā)送出去;消息發(fā)送方式可以通過(guò)腳本進(jìn)行定制和擴(kuò)展,腳本保存在eflow.war/im目 錄下的文件msgsync. js中;表單控制器獲取頁(yè)面提交的表單項(xiàng)的內(nèi)容,將數(shù)據(jù)保存到數(shù)據(jù)交換類(lèi)Command 中。進(jìn)行提供用戶權(quán)限檢查的動(dòng)態(tài)接口。根據(jù)表單所對(duì)應(yīng)的Action及DynaActionForm, 讀取WEB-INFO下的chx-config. xml,根據(jù)其中的設(shè)置讀取相關(guān)的FORM及ACTION設(shè)置文 件,進(jìn)行服務(wù)轉(zhuǎn)發(fā),動(dòng)態(tài)地調(diào)用相關(guān)的BussinessObject類(lèi)進(jìn)行處理。當(dāng)頁(yè)面請(qǐng)求默認(rèn)的 action操作時(shí),調(diào)用默認(rèn)的AppBo類(lèi)進(jìn)行默認(rèn)處理。在BO類(lèi)處理完畢后,將需要傳遞到表 單的數(shù)據(jù)交換到表單,并且將頁(yè)面跳轉(zhuǎn)到設(shè)置的頁(yè)面;數(shù)據(jù)層包括數(shù)據(jù)庫(kù)引擎,程序啟動(dòng)時(shí),系統(tǒng)會(huì)解析eform-config. xml,讀取里面的 參數(shù),根據(jù)不同的數(shù)據(jù)庫(kù)加載不同的驅(qū)動(dòng)類(lèi),按照配置文件里的參數(shù),用jdbc方式連接數(shù) 據(jù)庫(kù);數(shù)據(jù)庫(kù)引擎還負(fù)責(zé)數(shù)據(jù)的讀取,支持SOA方式、JDBC方式、XML方式、LDAP方式的數(shù)據(jù) 讀取。本發(fā)明實(shí)現(xiàn)復(fù)雜業(yè)務(wù)應(yīng)用軟件低代碼量的快速可視化開(kāi)發(fā)。傳統(tǒng)J2EE開(kāi)發(fā)模式中,業(yè)務(wù)應(yīng)用的界面表現(xiàn)、業(yè)務(wù)邏輯、數(shù)據(jù)交換必須通過(guò)代碼 編寫(xiě)實(shí)現(xiàn),業(yè)務(wù)構(gòu)建、變更效率低下、技術(shù)依賴(lài)性高。電子表單技術(shù)打破了傳統(tǒng)開(kāi)發(fā)模式,實(shí) 現(xiàn)了 TOB可視化快速開(kāi)發(fā),由于其技術(shù)倚賴(lài)性、代碼開(kāi)發(fā)量大大降低,使不懂JAVA的人也能 進(jìn)行開(kāi)發(fā)工作。根據(jù)對(duì)目標(biāo)業(yè)務(wù)應(yīng)用系統(tǒng)所做的系統(tǒng)規(guī)劃和設(shè)計(jì),使用電子表單新建系統(tǒng), 做應(yīng)用系統(tǒng)屬性的定義。在該系統(tǒng)節(jié)點(diǎn)創(chuàng)建子系統(tǒng);子系統(tǒng)由N個(gè)模塊構(gòu)成,需要在子系統(tǒng) 下創(chuàng)建模塊,設(shè)置模塊屬性;模塊由表單構(gòu)成,新建表單,定義表單的屬性、字典,設(shè)計(jì)其頁(yè) 面、樣式、子表、后臺(tái)腳本、數(shù)據(jù)校驗(yàn)、數(shù)據(jù)映射、數(shù)據(jù)模型等。設(shè)置完畢后,進(jìn)行用戶、角色授 權(quán),最終形成應(yīng)用系統(tǒng)。此時(shí),可直接返回業(yè)務(wù)系統(tǒng)進(jìn)行業(yè)務(wù)操作。技術(shù)要求低功能開(kāi)發(fā) 和變更對(duì)技術(shù)人員要求低;本發(fā)明不同于代碼開(kāi)發(fā)的模式,能夠低成本、快速靈活地應(yīng)對(duì)應(yīng)用需求及其變更 開(kāi)發(fā)速度高與傳統(tǒng)開(kāi)發(fā)模式相比縮減開(kāi)發(fā)編程代碼90%以上,開(kāi)發(fā)效率比傳統(tǒng)方式提高 一個(gè)數(shù)量級(jí);配置化開(kāi)發(fā)配置化設(shè)計(jì)理念與開(kāi)發(fā)模式,極大的提升了業(yè)務(wù)系統(tǒng)的敏捷性; 高度開(kāi)放性采用SOA松耦合應(yīng)用集成技術(shù)實(shí)現(xiàn)數(shù)據(jù)共享和應(yīng)用整合;平臺(tái)兼容性可跨不 同的底層操作系統(tǒng)、數(shù)據(jù)庫(kù),應(yīng)用系統(tǒng)具有很好的兼容性、可遷移性。
圖1:本發(fā)明結(jié)構(gòu)示意圖。
具體實(shí)施例方式如圖1所示一種通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā)的技術(shù)實(shí)現(xiàn)方法,電子表單技術(shù)將 數(shù)據(jù)采集與展現(xiàn)功能集成于一體;電子表單系統(tǒng)分為三層界面表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)交換層;在界面表現(xiàn)層將通過(guò)模板引擎將靜態(tài)模板編譯動(dòng)態(tài)模板;封裝好的組件標(biāo)簽化顯 示,各類(lèi)組件將數(shù)據(jù)綁定邏輯,進(jìn)行數(shù)據(jù)采集、校驗(yàn)、計(jì)算、展現(xiàn);可視化的表單設(shè)計(jì)界面,直接采用拖、拉、點(diǎn)、拽的方式來(lái)設(shè)計(jì)表單;常見(jiàn)的數(shù)據(jù)獲 取保存,直接用頁(yè)面組件;涉及到界面的展示,人機(jī)操作交互,因此在表現(xiàn)層提供了豐富的組件;組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息關(guān)聯(lián)、展現(xiàn)計(jì)算;通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè)面刷 新;界面表現(xiàn)層提供批修改、下拉、凍結(jié)、標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表單和表單域、 操作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正的電子表單功能;開(kāi)發(fā)人員通過(guò)表單控制器與內(nèi)置組件 和操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用戶界面表現(xiàn)層上的開(kāi)發(fā);表現(xiàn)層通過(guò)應(yīng)用門(mén)戶、多數(shù)據(jù)源連接可進(jìn)行應(yīng)用擴(kuò)展,可通過(guò)XML、SOA訪問(wèn)JDBC 的方式進(jìn)行數(shù)據(jù)訪問(wèn)。組件包括兩類(lèi)操作和域;操作以鏈接、按鈕方式展現(xiàn);域,與數(shù)據(jù)源 綁定、進(jìn)行數(shù)據(jù)采集、展現(xiàn);業(yè)務(wù)邏輯層起到承上啟下的調(diào)度控制作用;在業(yè)務(wù)邏輯層,主要包含規(guī)則引擎、腳本引擎、映射引擎、消息引擎、表單控制器、 SOA 接口 ;一方面,系統(tǒng)在前端設(shè)計(jì)環(huán)境中,提供豐富的事件接口,允許用戶引入JS腳本,實(shí) 現(xiàn)對(duì)各種復(fù)雜易變邏輯的控制和調(diào)整;另一方面,系統(tǒng)在服務(wù)端構(gòu)建了完整的JAVA腳本引 擎,在系統(tǒng)運(yùn)行的不同時(shí)機(jī)和階段、加載和調(diào)用用戶編寫(xiě)的JS腳本;腳本引擎支持所有業(yè)務(wù)中間件中的對(duì)象和方法調(diào)用,核心包括組織用戶對(duì)象和方 法、工作流對(duì)象和方法、電子表單對(duì)象和方法,使得用戶用簡(jiǎn)單的javascript也能實(shí)現(xiàn)復(fù) 雜的業(yè)務(wù)處理邏輯;通過(guò)規(guī)則、腳本、映射引擎將界面表現(xiàn)層中各種組件數(shù)據(jù)與數(shù)據(jù)交換層的數(shù)據(jù)進(jìn) 行關(guān)聯(lián),實(shí)現(xiàn)增、刪、改、查,實(shí)現(xiàn)主子數(shù)據(jù)的關(guān)聯(lián);控制器是整個(gè)系統(tǒng)的核心部分,對(duì)頁(yè)面與業(yè)務(wù)層的數(shù)據(jù)進(jìn)行封裝、交換、轉(zhuǎn)發(fā),整 個(gè)系統(tǒng)只有一個(gè)控制器;控制器對(duì)應(yīng)的java類(lèi)為AppAction. java,此類(lèi)主要對(duì)Mruts類(lèi) 進(jìn)行封裝,處理所有頁(yè)面提交的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到業(yè)務(wù)層;業(yè)務(wù)邏輯層能夠進(jìn)行SOA接口發(fā)布服務(wù),使得本應(yīng)用系統(tǒng)與異構(gòu)應(yīng)用系統(tǒng)具有很 好的可調(diào)用性,真正實(shí)現(xiàn)應(yīng)用集成;表單控制,有效地管理了業(yè)務(wù)走向;應(yīng)用與工作流有關(guān) 的走流程;沒(méi)有流程的進(jìn)入下一個(gè)業(yè)務(wù)環(huán)節(jié);在數(shù)據(jù)交換層可以對(duì)數(shù)據(jù)源、數(shù)據(jù)屬性進(jìn)行有效的管理。通過(guò)數(shù)據(jù)庫(kù)引擎實(shí)現(xiàn)后 臺(tái)數(shù)據(jù)的操作,如數(shù)據(jù)連接、數(shù)據(jù)約束、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)校驗(yàn);數(shù)據(jù)庫(kù)引擎還負(fù)責(zé)數(shù)據(jù)的讀取,支持SOA方式、JDBC方式、XML方式、LDAP方式的 數(shù)據(jù)讀取;
系統(tǒng)設(shè)計(jì)時(shí)采用了跨數(shù)據(jù)庫(kù)技術(shù),可以運(yùn)行在所有的數(shù)據(jù)庫(kù)系統(tǒng)上;數(shù)據(jù)層是企 業(yè)數(shù)據(jù)中心的一個(gè)重要的基礎(chǔ)設(shè)施,用于數(shù)據(jù)的存取,隨著XML在應(yīng)用表達(dá)和數(shù)據(jù)交換中 的應(yīng)用越來(lái)越廣泛,數(shù)據(jù)庫(kù)系統(tǒng)對(duì)XML操作的支持要求也越來(lái)越高;建設(shè)業(yè)務(wù)數(shù)據(jù)中心,需 要選擇一個(gè)功能強(qiáng)大、穩(wěn)定、可靠的數(shù)據(jù)庫(kù)系統(tǒng);數(shù)據(jù)校驗(yàn)管理,提供對(duì)頁(yè)面輸入在保存前或修改前進(jìn)行后臺(tái)數(shù)據(jù)校驗(yàn)處理的模 塊;通過(guò)AJAX進(jìn)行后臺(tái)校驗(yàn),如果校驗(yàn)不通過(guò),則無(wú)法提交更新。提供腳本的編輯、修改等 功能;數(shù)據(jù)映射管理,提供對(duì)頁(yè)面域與數(shù)據(jù)庫(kù)表中相關(guān)字段建立映射關(guān)系的設(shè)置;通過(guò) 映射表和映射字段來(lái)創(chuàng)建映射關(guān)系;這三個(gè)層次有機(jī)集成,互相關(guān)聯(lián);表現(xiàn)層實(shí)現(xiàn)人機(jī)界 面交互;業(yè)務(wù)邏輯層承上啟下,使人機(jī)交互界面同數(shù)據(jù)層形成業(yè)務(wù)邏輯關(guān)系;數(shù)據(jù)層實(shí)現(xiàn) 業(yè)務(wù)數(shù)據(jù)的連接、存儲(chǔ)。界面表現(xiàn)層包括各類(lèi)組件、模板引擎、AJAX引擎;組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息 關(guān)聯(lián)、展現(xiàn)計(jì)算;通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè)面刷新;所述的界面表現(xiàn)層提供批修改、下拉、 凍結(jié)、標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表單和表單域、操作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正 的電子表單功能;開(kāi)發(fā)人員通過(guò)表單控制器與內(nèi)置組件和操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用 戶界面表現(xiàn)層上的開(kāi)發(fā);主要提供的應(yīng)用組
1.文本框
2.大文本框
3.下拉框
4.單選框
5.多選框
6.隱藏域
7.只讀域
8.密碼域
9.附件域
10意見(jiàn)域
11意見(jiàn)列表域
12計(jì)算域
13關(guān)聯(lián)域
14屬性域
15HTML 域
16狀態(tài)域
17子表域
18日期操作
19日期時(shí)間操作
20選擇用戶操作
21選擇部門(mén)操作
22選擇組織操作
23.選擇授權(quán)操作24.彈出程序表單操作25.按鈕或鏈接26.自定義彈出框27.彈出模塊28.彈出樹(shù)29.進(jìn)度條30.校驗(yàn)碼31.條型碼32.快捷輸入碼33.流程工作標(biāo)題域組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息關(guān)聯(lián)、展現(xiàn)計(jì)算;通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè)面刷 新;界面表現(xiàn)層提供批修改、下拉、凍結(jié)、標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表單和表單域、 操作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正的電子表單功能;開(kāi)發(fā)人員通過(guò)表單控制器與內(nèi)置組件 和操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用戶界面表現(xiàn)層上的開(kāi)發(fā);AJAX引擎,頁(yè)面通過(guò)JS發(fā)出AJAX請(qǐng)求,平臺(tái)接收到請(qǐng)求參數(shù),執(zhí)行相應(yīng)的請(qǐng)求,將 處理完的數(shù)據(jù)序列化成XML文件,傳輸給瀏覽器,瀏覽器再根據(jù)JS腳本,顯示在頁(yè)面上,實(shí) 現(xiàn)局部刷新的效果;模板引擎,在表單管理中模板定制中電子表單引用動(dòng)態(tài)模板編輯軟件結(jié)合struts 的標(biāo)簽技術(shù)和映射技術(shù),將靜態(tài)的表格通過(guò)在編輯器中拖拽封裝好的各種標(biāo)簽組件,點(diǎn)擊 保存后臺(tái)自動(dòng)編譯執(zhí)行將靜態(tài)模板轉(zhuǎn)換成動(dòng)態(tài)的jsp頁(yè)面,形成模板引擎;業(yè)務(wù)邏輯層主要包含規(guī)則引擎、腳本引擎、映射引擎、消息引擎、表單控制器和SOA 接口 ;業(yè)務(wù)邏輯層起到承上啟下的調(diào)度作用;通過(guò)規(guī)則、腳本、映射引擎將界面表現(xiàn)層中各 種組件數(shù)據(jù)與數(shù)據(jù)交換層的數(shù)據(jù)進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)增、刪、改、查,實(shí)現(xiàn)主子數(shù)據(jù)的關(guān)聯(lián);通過(guò) SOA接口發(fā)布服務(wù),使得本應(yīng)用系統(tǒng)與異構(gòu)應(yīng)用系統(tǒng)具有很好的互訪性,真正實(shí)現(xiàn)應(yīng)用集 成;腳本引擎,電子表單系統(tǒng)預(yù)留了很多開(kāi)發(fā)腳本接口的地方,開(kāi)發(fā)的腳本都遵循 JavaScript的語(yǔ)法規(guī)則,生成的腳本存放到后臺(tái)服務(wù)器上,單獨(dú)形成獨(dú)立的JS文件,電子 表單內(nèi)嵌bsf(Bean Scripting Framework),在后臺(tái)業(yè)務(wù)處理類(lèi)的過(guò)程中通過(guò)腳本引擎動(dòng) 態(tài)的調(diào)用腳本接口處填寫(xiě)的javascript腳本;規(guī)則引擎,通過(guò)抽取業(yè)務(wù)邏輯,封裝成規(guī)則組件,嵌入到表單設(shè)計(jì)器中,根據(jù)需要 隨時(shí)調(diào)??;并且能夠支持規(guī)則的組裝,規(guī)則的擴(kuò)展;映射引擎,電子表單在建立的過(guò)程中有數(shù)據(jù)源的選擇,通過(guò)數(shù)據(jù)源及數(shù)據(jù)庫(kù)表的 確定,系統(tǒng)自動(dòng)讀取表中的字段設(shè)立為表單的域,在表單解析執(zhí)行的過(guò)程中通過(guò)平臺(tái)后臺(tái) 的映射機(jī)制,自動(dòng)將表單頁(yè)面上的域和數(shù)據(jù)庫(kù)表中的字段建立映射,從而形成映射引擎。消息引擎采用兩種方式進(jìn)行信息發(fā)送短信通知方式和消息通知方式;消息引擎 是電子表單的一個(gè)重要組成部分,消息服務(wù)程序?qū)⒃诿糠昼娺\(yùn)行一次,將消息發(fā)送隊(duì)列的 消息發(fā)送出去;消息發(fā)送方式可以通過(guò)腳本進(jìn)行定制和擴(kuò)展,腳本保存在eflow.war/im目 錄下的文件msgsync. js中;
表單控制器獲取頁(yè)面提交的表單項(xiàng)的內(nèi)容,將數(shù)據(jù)保存到數(shù)據(jù)交換類(lèi)Command 中。進(jìn)行提供用戶權(quán)限檢查的動(dòng)態(tài)接口。根據(jù)表單所對(duì)應(yīng)的Action及DynaActionForm, 讀取WEB-INFO下的chx-config. xml,根據(jù)其中的設(shè)置讀取相關(guān)的FORM及ACTION設(shè)置文 件,進(jìn)行服務(wù)轉(zhuǎn)發(fā),動(dòng)態(tài)地調(diào)用相關(guān)的BussinessObject類(lèi)進(jìn)行處理。當(dāng)頁(yè)面請(qǐng)求默認(rèn)的 action操作時(shí),調(diào)用默認(rèn)的AppBo類(lèi)進(jìn)行默認(rèn)處理。在BO類(lèi)處理完畢后,將需要傳遞到表 單的數(shù)據(jù)交換到表單,并且將頁(yè)面跳轉(zhuǎn)到設(shè)置的頁(yè)面;數(shù)據(jù)層包括數(shù)據(jù)庫(kù)引擎,程序啟動(dòng)時(shí),系統(tǒng)會(huì)解析eform-config. xml,讀取里面的 參數(shù),根據(jù)不同的數(shù)據(jù)庫(kù)加載不同的驅(qū)動(dòng)類(lèi),按照配置文件里的參數(shù),用jdbc方式連接數(shù) 據(jù)庫(kù)。
權(quán)利要求
1. 一種通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā)的技術(shù)實(shí)現(xiàn)方法,其特征在于 電子表單技術(shù)將數(shù)據(jù)采集與展現(xiàn)功能集成于一體; 電子表單系統(tǒng)分為三層 界面表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)交換層;在界面表現(xiàn)層將通過(guò)模板引擎將靜態(tài)模板編譯動(dòng)態(tài)模板;封裝好的組件標(biāo)簽化顯示, 各類(lèi)組件將數(shù)據(jù)綁定邏輯,進(jìn)行數(shù)據(jù)采集、校驗(yàn)、計(jì)算、展現(xiàn);可視化的表單設(shè)計(jì)界面,直接采用拖、拉、點(diǎn)、拽的方式來(lái)設(shè)計(jì)表單;常見(jiàn)的數(shù)據(jù)獲取保 存,直接用頁(yè)面組件;涉及到界面的展示,人機(jī)操作交互,因此在表現(xiàn)層提供了豐富的組件; 組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息關(guān)聯(lián)、展現(xiàn)計(jì)算;通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè)面刷新; 界面表現(xiàn)層提供批修改、下拉、凍結(jié)、標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表單和表單域、操 作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正的電子表單功能;開(kāi)發(fā)人員通過(guò)表單控制器與內(nèi)置組件和 操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用戶界面表現(xiàn)層上的開(kāi)發(fā);表現(xiàn)層通過(guò)應(yīng)用門(mén)戶、多數(shù)據(jù)源連接可進(jìn)行應(yīng)用擴(kuò)展,可通過(guò)XML、SOA訪問(wèn)JDBC的方 式進(jìn)行數(shù)據(jù)訪問(wèn)。組件包括兩類(lèi)操作和域;操作以鏈接、按鈕方式展現(xiàn);域,與數(shù)據(jù)源綁 定、進(jìn)行數(shù)據(jù)采集、展現(xiàn);業(yè)務(wù)邏輯層起到承上啟下的調(diào)度控制作用;在業(yè)務(wù)邏輯層,主要包含規(guī)則引擎、腳本引擎、映射引擎、消息引擎、表單控制器、SOA接Π ;一方面,系統(tǒng)在前端設(shè)計(jì)環(huán)境中,提供豐富的事件接口,允許用戶引入JS腳本,實(shí)現(xiàn)對(duì) 各種復(fù)雜易變邏輯的控制和調(diào)整;另一方面,系統(tǒng)在服務(wù)端構(gòu)建了完整的JAVA腳本引擎, 在系統(tǒng)運(yùn)行的不同時(shí)機(jī)和階段、加載和調(diào)用用戶編寫(xiě)的JS腳本;腳本引擎支持所有業(yè)務(wù)中間件中的對(duì)象和方法調(diào)用,核心包括組織用戶對(duì)象和方法、 工作流對(duì)象和方法、電子表單對(duì)象和方法,使得用戶用簡(jiǎn)單的javascript也能實(shí)現(xiàn)復(fù)雜的 業(yè)務(wù)處理邏輯;通過(guò)規(guī)則、腳本、映射引擎將界面表現(xiàn)層中各種組件數(shù)據(jù)與數(shù)據(jù)交換層的數(shù)據(jù)進(jìn)行關(guān) 聯(lián),實(shí)現(xiàn)增、刪、改、查,實(shí)現(xiàn)主子數(shù)據(jù)的關(guān)聯(lián);控制器是整個(gè)系統(tǒng)的核心部分,對(duì)頁(yè)面與業(yè)務(wù)層的數(shù)據(jù)進(jìn)行封裝、交換、轉(zhuǎn)發(fā),整個(gè)系 統(tǒng)只有一個(gè)控制器;控制器對(duì)應(yīng)的java類(lèi)為AppAction. Java,此類(lèi)主要對(duì)Mruts類(lèi)進(jìn)行 封裝,處理所有頁(yè)面提交的請(qǐng)求,并將請(qǐng)求轉(zhuǎn)發(fā)到業(yè)務(wù)層;業(yè)務(wù)邏輯層能夠進(jìn)行SOA接口發(fā)布服務(wù),使得本應(yīng)用系統(tǒng)與異構(gòu)應(yīng)用系統(tǒng)具有很好的 可調(diào)用性,真正實(shí)現(xiàn)應(yīng)用集成;表單控制,有效地管理了業(yè)務(wù)走向;應(yīng)用與工作流有關(guān)的走 流程;沒(méi)有流程的進(jìn)入下一個(gè)業(yè)務(wù)環(huán)節(jié);在數(shù)據(jù)交換層可以對(duì)數(shù)據(jù)源、數(shù)據(jù)屬性進(jìn)行有效的管理。通過(guò)數(shù)據(jù)庫(kù)引擎實(shí)現(xiàn)后臺(tái)數(shù) 據(jù)的操作,如數(shù)據(jù)連接、數(shù)據(jù)約束、數(shù)據(jù)訪問(wèn)、數(shù)據(jù)校驗(yàn);數(shù)據(jù)庫(kù)引擎還負(fù)責(zé)數(shù)據(jù)的讀取,支持SOA方式、JDBC方式、XML方式、LDAP方式的數(shù)據(jù) 讀取;系統(tǒng)設(shè)計(jì)時(shí)采用了跨數(shù)據(jù)庫(kù)技術(shù),可以運(yùn)行在所有的數(shù)據(jù)庫(kù)系統(tǒng)上;數(shù)據(jù)層是企業(yè)數(shù) 據(jù)中心的一個(gè)重要的基礎(chǔ)設(shè)施,用于數(shù)據(jù)的存取,隨著XML在應(yīng)用表達(dá)和數(shù)據(jù)交換中的應(yīng)用越來(lái)越廣泛,數(shù)據(jù)庫(kù)系統(tǒng)對(duì)XML操作的支持要求也越來(lái)越高;建設(shè)業(yè)務(wù)數(shù)據(jù)中心,需要選 擇一個(gè)功能強(qiáng)大、穩(wěn)定、可靠的數(shù)據(jù)庫(kù)系統(tǒng);數(shù)據(jù)校驗(yàn)管理,提供對(duì)頁(yè)面輸入在保存前或修改前進(jìn)行后臺(tái)數(shù)據(jù)校驗(yàn)處理的模塊;通 過(guò)AJAX進(jìn)行后臺(tái)校驗(yàn),如果校驗(yàn)不通過(guò),則無(wú)法提交更新。提供腳本的編輯、修改等功能;數(shù)據(jù)映射管理,提供對(duì)頁(yè)面域與數(shù)據(jù)庫(kù)表中相關(guān)字段建立映射關(guān)系的設(shè)置;通過(guò)映射 表和映射字段來(lái)創(chuàng)建映射關(guān)系;這三個(gè)層次有機(jī)集成,互相關(guān)聯(lián);表現(xiàn)層實(shí)現(xiàn)人機(jī)界面交互;業(yè)務(wù)邏輯層承上啟下,使 人機(jī)交互界面同數(shù)據(jù)層形成業(yè)務(wù)邏輯關(guān)系;數(shù)據(jù)層實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的連接、存儲(chǔ)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的界面表現(xiàn)層包括各類(lèi)組件、模板引 擎、AJAX引擎;組件將數(shù)據(jù)綁定邏輯,進(jìn)行信息關(guān)聯(lián)、展現(xiàn)計(jì)算;通過(guò)AJAX引擎作用,實(shí)現(xiàn)頁(yè) 面刷新;所述的界面表現(xiàn)層提供批修改、下拉、凍結(jié)、標(biāo)題層疊、鉆取、分組等功能;多頁(yè)表 單和表單域、操作、異步樹(shù)等控制功能,實(shí)現(xiàn)真正的電子表單功能;開(kāi)發(fā)人員通過(guò)表單控制 器與內(nèi)置組件和操作,針對(duì)各類(lèi)應(yīng)用需求進(jìn)行用戶界面表現(xiàn)層上的開(kāi)發(fā)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于所述的組件為1)文本框2)大文本框3)下拉框4)單選框5)多選框6)隱藏域7)只讀域8)密碼域9)附件域10)意見(jiàn)域11)意見(jiàn)列表域12)計(jì)算域13)關(guān)聯(lián)域14)屬性域15)HTML域16)狀態(tài)域17)子表域18)日期操作19)日期時(shí)間操作20)選擇用戶操作21)選擇部門(mén)操作22)選擇組織操作23)選擇授權(quán)操作24)彈出程序表單操作25)按鈕或鏈接26)自定義彈出框27)彈出模塊28)彈出樹(shù)29)進(jìn)度條30)校驗(yàn)碼31)條型碼32)快捷輸入碼33)流程工作標(biāo)題域。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于所述的AJAX引擎,頁(yè)面通過(guò)JS發(fā)出AJAX 請(qǐng)求,平臺(tái)接收到請(qǐng)求參數(shù),執(zhí)行相應(yīng)的請(qǐng)求,將處理完的數(shù)據(jù)序列化成XML文件,傳輸給 瀏覽器,瀏覽器再根據(jù)JS腳本,顯示在頁(yè)面上,實(shí)現(xiàn)局部刷新的效果。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于所述的模板引擎,在表單管理中模板定制 中電子表單引用動(dòng)態(tài)模板編輯軟件結(jié)合struts的標(biāo)簽技術(shù)和映射技術(shù),將靜態(tài)的表格通 過(guò)在編輯器中拖拽封裝好的各種標(biāo)簽組件,點(diǎn)擊保存后臺(tái)自動(dòng)編譯執(zhí)行將靜態(tài)模板轉(zhuǎn)換成 動(dòng)態(tài)的jsp頁(yè)面,形成模板引擎。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的業(yè)務(wù)邏輯層主要包含規(guī)則引擎、腳 本引擎、映射引擎、消息引擎、表單控制器和SOA接口 ;所述的業(yè)務(wù)邏輯層起到承上啟下的 調(diào)度作用;通過(guò)規(guī)則、腳本、映射引擎將界面表現(xiàn)層中各種組件數(shù)據(jù)與數(shù)據(jù)交換層的數(shù)據(jù)進(jìn) 行關(guān)聯(lián),實(shí)現(xiàn)增、刪、改、查,實(shí)現(xiàn)主子數(shù)據(jù)的關(guān)聯(lián);通過(guò)SOA接口發(fā)布服務(wù),使得本應(yīng)用系統(tǒng) 與異構(gòu)應(yīng)用系統(tǒng)具有很好的互訪性,真正實(shí)現(xiàn)應(yīng)用集成。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述的腳本引擎,電子表單系統(tǒng)預(yù)留了很 多開(kāi)發(fā)腳本接口的地方,開(kāi)發(fā)的腳本都遵循JavMcript的語(yǔ)法規(guī)則,生成的腳本存放到后 臺(tái)服務(wù)器上,單獨(dú)形成獨(dú)立的JS文件,電子表單內(nèi)嵌bsf (Bean Scripting Framework),在 后臺(tái)業(yè)務(wù)處理類(lèi)的過(guò)程中通過(guò)腳本引擎動(dòng)態(tài)的調(diào)用腳本接口處填寫(xiě)的javascript腳本; 所述的規(guī)則引擎,通過(guò)抽取業(yè)務(wù)邏輯,封裝成規(guī)則組件,嵌入到表單設(shè)計(jì)器中,根據(jù)需要隨 時(shí)調(diào)??;并且能夠支持規(guī)則的組裝,規(guī)則的擴(kuò)展;所述的映射引擎,電子表單在建立的過(guò)程 中有數(shù)據(jù)源的選擇,通過(guò)數(shù)據(jù)源及數(shù)據(jù)庫(kù)表的確定,系統(tǒng)自動(dòng)讀取表中的字段設(shè)立為表單 的域,在表單解析執(zhí)行的過(guò)程中通過(guò)平臺(tái)后臺(tái)的映射機(jī)制,自動(dòng)將表單頁(yè)面上的域和數(shù)據(jù) 庫(kù)表中的字段建立映射,從而形成映射引擎。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于所述的消息引擎采用兩種方式進(jìn)行信息 發(fā)送短信通知方式和消息通知方式;消息引擎是電子表單的一個(gè)重要組成部分,消息服 務(wù)程序?qū)⒃诿糠昼娺\(yùn)行一次,將消息發(fā)送隊(duì)列的消息發(fā)送出去;消息發(fā)送方式可以通過(guò)腳 本進(jìn)行定制和擴(kuò)展,腳本保存在eflow. war/im目錄下的文件msgsync. js中。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于所述的表單控制器獲取頁(yè)面提交的表 單項(xiàng)的內(nèi)容,將數(shù)據(jù)保存到數(shù)據(jù)交換類(lèi)Command中。進(jìn)行提供用戶權(quán)限檢查的動(dòng)態(tài)接口。 根據(jù)表單所對(duì)應(yīng)的 Action 及 DynaActionForm,讀取 WEB-1NFO 下的 chx-config. xml,根 據(jù)其中的設(shè)置讀取相關(guān)的FORM及ACTION設(shè)置文件,進(jìn)行服務(wù)轉(zhuǎn)發(fā),動(dòng)態(tài)地調(diào)用相關(guān)的 BussinessObject類(lèi)進(jìn)行處理。當(dāng)頁(yè)面請(qǐng)求默認(rèn)的action操作時(shí),調(diào)用默認(rèn)的AppBo類(lèi)進(jìn) 行默認(rèn)處理。在BO類(lèi)處理完畢后,將需要傳遞到表單的數(shù)據(jù)交換到表單,并且將頁(yè)面跳轉(zhuǎn)到設(shè)置的頁(yè)面。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于所述的數(shù)據(jù)層包括數(shù)據(jù)庫(kù)引擎,程序啟 動(dòng)時(shí),系統(tǒng)會(huì)解析eform-config. xml,讀取里面的參數(shù),根據(jù)不同的數(shù)據(jù)庫(kù)加載不同的驅(qū)動(dòng) 類(lèi),按照配置文件里的參數(shù),用jdbc方式連接數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)引擎還負(fù)責(zé)數(shù)據(jù)的讀取,支持 SOA方式、JDBC方式、XML方式、LDAP方式的數(shù)據(jù)讀取。
全文摘要
本發(fā)明公開(kāi)了一種通過(guò)電子表單進(jìn)行應(yīng)用開(kāi)發(fā)的技術(shù)實(shí)現(xiàn)方法,該電子表單技術(shù)將數(shù)據(jù)采集與展現(xiàn)功能集成于一體;電子表單系統(tǒng)分為界面表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)交換層三層;該電子表單技術(shù)與傳統(tǒng)開(kāi)發(fā)模式相比縮減開(kāi)發(fā)編程代碼90%以上,開(kāi)發(fā)效率比傳統(tǒng)方式提高一個(gè)數(shù)量級(jí)、配置化設(shè)計(jì)理念與開(kāi)發(fā)模式,極大的提升了業(yè)務(wù)系統(tǒng)的敏捷性、采用SOA松耦合應(yīng)用集成技術(shù)實(shí)現(xiàn)數(shù)據(jù)共享和應(yīng)用整合、可跨不同的底層操作系統(tǒng)、數(shù)據(jù)庫(kù),應(yīng)用系統(tǒng)具有很好的兼容性、可遷移性。
文檔編號(hào)G06F9/44GK102063306SQ20111000164
公開(kāi)日2011年5月18日 申請(qǐng)日期2011年1月6日 優(yōu)先權(quán)日2011年1月6日
發(fā)明者夏春秋 申請(qǐng)人:夏春秋