專利名稱:表單開發(fā)平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于開發(fā)表單的表單開發(fā)平臺。
背景技術(shù):
最近,在所有的商業(yè)web應(yīng)用中都能發(fā)現(xiàn)表單,用于實(shí)現(xiàn)用戶-系統(tǒng)交互。創(chuàng)建表單的過程包括四個(gè)主要任務(wù)管理、內(nèi)容、風(fēng)格和邏輯。作為管理任務(wù)的一部分,收集一般的表單需求并且傳送給項(xiàng)目組,用于最初的原形開發(fā)和后續(xù)開發(fā)工作。一般而言,該領(lǐng)域應(yīng)當(dāng)由商業(yè)驅(qū)動(dòng)者執(zhí)行,要求商業(yè)驅(qū)動(dòng)者理解用戶需求,并且將用戶需求細(xì)化成高層合同,然后向下傳遞給項(xiàng)目組以進(jìn)行開發(fā)。項(xiàng)目組的項(xiàng)目組長接收到高層合同,然后將需求轉(zhuǎn)換成邏輯模塊或內(nèi)容,并且進(jìn)一步規(guī)定每個(gè)模塊的表現(xiàn)風(fēng)格和功能邏輯。一旦完成了規(guī)格說明,就可以將其傳送給web設(shè)計(jì)師進(jìn)行風(fēng)格實(shí)現(xiàn),傳送給web開發(fā)人員用于邏輯實(shí)現(xiàn)。
該過程受到包括松散的安全性、高維護(hù)成本、低開發(fā)速度、有限的重復(fù)使用能力、缺乏控制和職責(zé)不清楚等問題的困擾。
發(fā)明內(nèi)容
在第一優(yōu)選方面中,提供了一種用于開發(fā)表單的表單開發(fā)平臺,包括屬性設(shè)計(jì)模塊,用于以圖形方式根據(jù)對預(yù)定域的選擇結(jié)果設(shè)計(jì)可重復(fù)使用的表單屬性,所述屬性具有集成的商業(yè)邏輯;表單設(shè)計(jì)模塊,用于使用所述表單屬性以圖形方式設(shè)計(jì)可重復(fù)使用的表單,所述表單具有集成的商業(yè)邏輯;以及項(xiàng)目設(shè)計(jì)模塊,用于通過根據(jù)預(yù)定處理流以圖形方式布置所述表單來設(shè)計(jì)可重復(fù)使用的項(xiàng)目;
其中,所述設(shè)計(jì)模塊彼此獨(dú)立地工作,使得所述屬性、表單和項(xiàng)目的設(shè)計(jì)是獨(dú)立的功能,并且所設(shè)計(jì)的屬性、表單和項(xiàng)目作為獨(dú)立的實(shí)體被存儲。
所設(shè)計(jì)的屬性和表單內(nèi)包含的商業(yè)邏輯可以包括在數(shù)據(jù)正被輸入時(shí)用于表單輸入的驗(yàn)證規(guī)則,以及用于表單輸出、計(jì)算的域和對表單中的其他域的依賴關(guān)系的驗(yàn)證規(guī)則。
該平臺還可以包括用于存儲所設(shè)計(jì)的屬性的屬性庫、存儲所設(shè)計(jì)的表單的表單庫或存儲所設(shè)計(jì)的項(xiàng)目的項(xiàng)目庫。有利的是,這些設(shè)計(jì)模塊允許提取所設(shè)計(jì)的屬性、表單或項(xiàng)目用于重復(fù)使用或者作為模板。
該平臺還可以包括用于驗(yàn)證表單的驗(yàn)證引擎。表單可以針對開放標(biāo)準(zhǔn)被驗(yàn)證,例如XForms1.0的W3C標(biāo)準(zhǔn),或者可以針對商業(yè)的內(nèi)部商業(yè)策略被驗(yàn)證。內(nèi)部驗(yàn)證策略可以包括對文本域的字母數(shù)字檢查或者長度檢查。內(nèi)部驗(yàn)證策略可以被存儲在驗(yàn)證策略倉庫中用于實(shí)現(xiàn)可重復(fù)使用性。
該平臺可以是基于Java2企業(yè)版平臺(J2EE)的。該平臺可以經(jīng)由桌面應(yīng)用而被呈現(xiàn)給開發(fā)人員,以使得能夠?qū)崿F(xiàn)客戶端側(cè)的圖形用戶界面開發(fā)。
該平臺可以是基于服務(wù)器的。該平臺可使用web瀏覽器訪問,例如,Microsoft的Internet Explorer或者Netscape的Navigator。在基于服務(wù)器時(shí),表單定義文件被直接存儲在服務(wù)器側(cè),從而不需要服務(wù)器和客戶端之間的頻繁文件傳送,這正是在開發(fā)和測試階段所期望的。
該平臺還可以包括一個(gè)核準(zhǔn)系統(tǒng),用于使表單在被發(fā)布之前能夠被核準(zhǔn)。該核準(zhǔn)系統(tǒng)可以是集中的系統(tǒng)。有利的是,相對于技術(shù)目的,商業(yè)用戶能夠測試并評估表單來確保它們符合商業(yè)目的。
該核準(zhǔn)系統(tǒng)可以包括收件箱,用于允許訪問與特定用戶相關(guān)聯(lián)的各個(gè)表單;不在辦公室機(jī)制,用于允許用戶指示不在辦公室狀態(tài)并且指定路線重定向或替換動(dòng)作;表單歸檔模塊,用于允許表單可被搜索和過濾;打印模塊,用于允許表單以打印機(jī)友好的格式被打??;
導(dǎo)出模塊,用于允許用戶以XML或其他格式導(dǎo)出表單數(shù)據(jù);或者管理模塊,用于允許遠(yuǎn)程配置和監(jiān)控所有表單及其關(guān)聯(lián)的路線選擇處理。
所設(shè)計(jì)的表單可以被解釋來產(chǎn)生HTML、無線標(biāo)簽語言(WML)或者其他語言的一個(gè)表單或一系列相關(guān)的表單,以在特定的設(shè)備或操作系統(tǒng)上呈現(xiàn)。
預(yù)定的域可以包括輸入域,例如,外部域、口令域或圖像域。
屬性設(shè)計(jì)器模塊可以向?qū)傩詢?nèi)的表單控件指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。
表單設(shè)計(jì)器模塊可以向表單內(nèi)的屬性、分區(qū)和頁面指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。表單設(shè)計(jì)器模塊還可以指定列表實(shí)體、動(dòng)作類型、分頁機(jī)制、預(yù)表單和后表單處理,以及表單持久性。表單設(shè)計(jì)器模塊還可以設(shè)計(jì)具有分區(qū)和頁面的表單。
項(xiàng)目設(shè)計(jì)器模塊可以向表單和它們包含的實(shí)體指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。項(xiàng)目設(shè)計(jì)器模塊還可以指定列表實(shí)體、訪問控制、配置和發(fā)布機(jī)制。
在第二方面中,提供了一種用于開發(fā)表單的方法,包括以下步驟以圖形方式根據(jù)對預(yù)定域的選擇結(jié)果設(shè)計(jì)可重復(fù)使用的表單屬性,所述屬性具有集成的商業(yè)邏輯;使用所述表單屬性以圖形方式設(shè)計(jì)可重復(fù)使用的表單,所述表單具有集成的商業(yè)邏輯;以及通過根據(jù)預(yù)定處理流以圖形方式布置所述表單來設(shè)計(jì)可重復(fù)使用的項(xiàng)目;其中,所述屬性、表單和項(xiàng)目的設(shè)計(jì)是獨(dú)立的功能,并且所設(shè)計(jì)的屬性、表單和項(xiàng)目作為獨(dú)立的實(shí)體被存儲。
在第三方面中,提供了一種利用所述方法開發(fā)的表單。
現(xiàn)在參考附圖描述本發(fā)明的實(shí)施例,在附圖中
圖1是平臺的框圖;圖2是平臺的系統(tǒng)交互圖;圖3A是表單在Web瀏覽器中的顯示的屏幕快照;圖3B是表單在WAP瀏覽器中的顯示的屏幕快照;圖4是屬性設(shè)計(jì)器的第一屏幕快照;圖5是屬性設(shè)計(jì)器的第二屏幕快照;圖6是表單設(shè)計(jì)器的第一屏幕快照;圖7是表單設(shè)計(jì)器的第二屏幕快照;圖8是表單設(shè)計(jì)器的第三屏幕快照;圖9是項(xiàng)目設(shè)計(jì)器的第一屏幕快照;圖10是項(xiàng)目設(shè)計(jì)器的第二屏幕快照;圖11是項(xiàng)目設(shè)計(jì)器的第三屏幕快照;圖12是項(xiàng)目的分層圖;圖13是平臺的系統(tǒng)結(jié)構(gòu)圖;圖14是驗(yàn)證模型圖;圖15是用于開發(fā)表單的過程流圖;圖16是web應(yīng)用的屏幕快照;以及圖17是表單的屏幕快照。
具體實(shí)施例方式
圖1和下面的討論都是要提供對一種可以在其中實(shí)現(xiàn)本發(fā)明的合適的計(jì)算環(huán)境的簡要概述。盡管不是所要求的,但是將在由個(gè)人計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(例如,程序模塊)的一般上下文中描述本發(fā)明。一般而言,程序模塊包括執(zhí)行具體任務(wù)或?qū)崿F(xiàn)具體抽象數(shù)據(jù)類型的例程、程序、字符、組件、數(shù)據(jù)結(jié)構(gòu)。本領(lǐng)域技術(shù)人員將認(rèn)識到,本發(fā)明可以利用其他計(jì)算機(jī)系統(tǒng)配置來實(shí)現(xiàn),包括手持設(shè)備、多處理器系統(tǒng)、基于微處理器的或者可編程的消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、微計(jì)算機(jī)、主機(jī)等。本發(fā)明也可以被實(shí)現(xiàn)在分布式計(jì)算環(huán)境中,在該環(huán)境中,任務(wù)由通過通信網(wǎng)絡(luò)鏈接的多個(gè)遠(yuǎn)程處理設(shè)備執(zhí)行。在一種分布式計(jì)算環(huán)境中,程序模塊可以位于本地存儲器存儲設(shè)備和遠(yuǎn)程存儲器存儲設(shè)備中。
參考圖1和圖2,平臺10包括三個(gè)功能上不同的應(yīng)用,開發(fā)區(qū)(Studio)20、辦公室(Office)30和服務(wù)器40。開發(fā)區(qū)20是一種交互式圖形用戶界面(GUI)客戶端應(yīng)用,其允許用戶可視地組裝和捆綁基于web的表單。
開發(fā)區(qū)20包括三個(gè)設(shè)計(jì)模塊項(xiàng)目設(shè)計(jì)器21、屬性設(shè)計(jì)器22和表單設(shè)計(jì)器23。開發(fā)區(qū)20使用戶能夠以圖形方式設(shè)計(jì)屬性、頁面、表單,頁面流、表單流、處理流、屬性及表單的驗(yàn)證策略。對于維護(hù)web應(yīng)用內(nèi)的信息的完整性、保護(hù)應(yīng)用免受未受約束的用戶輸入數(shù)據(jù)導(dǎo)致的不可預(yù)測的行為破壞,驗(yàn)證是重要的。有兩種主要的驗(yàn)證基本驗(yàn)證和策略驗(yàn)證。基本驗(yàn)證提供數(shù)據(jù)級檢查,例如,數(shù)據(jù)類型檢查和長度檢查?;掘?yàn)證還包括防止SQL或腳本侵入的安全性檢查。策略驗(yàn)證涉及對應(yīng)用設(shè)置的預(yù)定義商業(yè)策略或規(guī)則的檢查。平臺10提供了直觀、靈活并且可重復(fù)使用的方法來指定表單驗(yàn)證。圖14示出了注冊表單中接受用戶的NRIC/FIN號的一個(gè)簡單屬性的示例。該屬性所要求的輸入驗(yàn)證90包括校驗(yàn)該輸入包含字母和數(shù)的組合91,輸入長度可以是9個(gè)字符(NRIC)或12個(gè)字符(FIN)92,輸入的數(shù)字必須基于選定的算法針對字母進(jìn)行驗(yàn)證和檢查93,并且所輸入的NRIC/FIN號必須在現(xiàn)有合法注冊者的列表中存在94。該字母數(shù)字和長度檢查92是基本驗(yàn)證的示例,可以從已實(shí)現(xiàn)的驗(yàn)證功能的公共倉庫中通過聲明指定或者選出。另一方面,檢查記錄在用戶列表中是否存在構(gòu)成策略驗(yàn)證,因?yàn)槠浒囟ㄓ趹?yīng)用的語義,包括數(shù)據(jù)庫查找操作。為了支持特定于應(yīng)用的策略驗(yàn)證的集成,平臺10允許通過定制的被稱為驗(yàn)證器的Java對象插入專用策略。這些驗(yàn)證器實(shí)現(xiàn)了平臺10的驗(yàn)證器接口,并且擴(kuò)展了基本驗(yàn)證器的功能。插入的定制驗(yàn)證器被自動(dòng)存儲在特定于項(xiàng)目的倉庫中,并且可重復(fù)使用于其他表單屬性。
其他驗(yàn)證策略包括輸出數(shù)據(jù)驗(yàn)證。驗(yàn)證策略是圖形化設(shè)計(jì)和配置的。XML模式定義(XSD)是用于指定XML中的數(shù)據(jù)約束、分層關(guān)系和元素名空間的基于XML的語法聲明。其主要用途是以聲明的方式指定一組規(guī)則,來控制XML多策略檢查和數(shù)據(jù)關(guān)系檢查的有效性。XSD支持名空間沖突處理和數(shù)據(jù)約束可重復(fù)使用性(可繼承性),這允許在文檔和元素之間定義復(fù)雜的數(shù)據(jù)結(jié)構(gòu)和關(guān)系。系統(tǒng)使用XSD來驗(yàn)證并校驗(yàn)表單文檔內(nèi)的XML數(shù)據(jù)的有效性,并且使用系統(tǒng)接口來確保所交換的數(shù)據(jù)處于正確的格式。
開發(fā)區(qū)20幫助僅通過繪制流程圖來創(chuàng)建安全的企業(yè)級web應(yīng)用表單。這些項(xiàng)目中的每個(gè)在開發(fā)區(qū)20中可以以圖形方式配置,以允許容易地定制特定的行為。開發(fā)區(qū)20從下層復(fù)雜性和編程語言代碼抽象出來,并且將用戶從下層復(fù)雜性和編程語言代碼屏蔽開。
參考圖4和圖5,屬性設(shè)計(jì)器22由開發(fā)人員用來根據(jù)對基本表單控件的選擇結(jié)果創(chuàng)建可重復(fù)使用商業(yè)屬性。屬性設(shè)計(jì)器22還允許向?qū)傩詢?nèi)的表單控件指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。屬性設(shè)計(jì)器22的用戶界面包括導(dǎo)航面板51、工作面板52、庫面板53和屬性面板54。導(dǎo)航面板51呈現(xiàn)項(xiàng)目的分層視圖,以允許容易地訪問所包含的實(shí)體。對于導(dǎo)航面板51內(nèi)的每個(gè)被選中的實(shí)體,工作面板52給出相關(guān)的用戶界面和驗(yàn)證流。用戶也可以將表單控件和驗(yàn)證元素從工作面板52調(diào)色板拖拉到容納畫布中。導(dǎo)航面板51和工作面板52中的被選中的實(shí)體的細(xì)節(jié)被顯示在屬性面板54中,其可由用戶編輯??蛇x地,用戶可以通過在導(dǎo)航面板51和庫面板53之間拖拉來從公共倉庫導(dǎo)入屬性或者導(dǎo)出屬性到公共倉庫。
參考圖6到圖8,表單設(shè)計(jì)器23由開發(fā)人員用來根據(jù)商業(yè)屬性的選擇結(jié)果、包含分區(qū)和頁面來創(chuàng)建表單。表單設(shè)計(jì)器23允許對表單內(nèi)的屬性、分區(qū)和頁面指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。其他選項(xiàng)包括列表重復(fù)器(list iterator)(動(dòng)態(tài)列表表格)、動(dòng)作(按鈕)類型、分頁機(jī)制、預(yù)表單處理和后表單處理、以及表單持久性。
參考圖9到圖11,項(xiàng)目設(shè)計(jì)器21由開發(fā)人員用來創(chuàng)建項(xiàng)目,指定表單集束、可選的附件、表單流和路線選擇機(jī)制。項(xiàng)目設(shè)計(jì)器21允許在表單和它們包含的實(shí)體之間指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。其他選項(xiàng)包括列表重復(fù)器、訪問控制、配置和發(fā)布機(jī)制。項(xiàng)目設(shè)計(jì)器21還提供管理向?qū)?,管理向?qū)Ь哂屑械慕缑鎭砉芾硭锌芍貜?fù)使用資源,包括定制插件、消息和風(fēng)格。
屬性設(shè)計(jì)器22、表單設(shè)計(jì)器23和項(xiàng)目設(shè)計(jì)器21被集成到開發(fā)區(qū)20中,并且都經(jīng)受用戶的訪問控制權(quán)限。這通過消除多個(gè)工作空間從而確保一致的用戶界面并且使混亂最小化。
插件(未示出)被注冊并且利用開發(fā)區(qū)20以圖形方式配置,來擴(kuò)展具體項(xiàng)目所要求的商業(yè)功能。插件包括外部驗(yàn)證器和處理器。所有已注冊的插件使它們的所有關(guān)聯(lián)參數(shù)和屬性以相同的方式準(zhǔn)確地用圖形方式被配置。一旦插件被插入,它們就可以在開發(fā)區(qū)20中無縫地交互和工作。已注冊的插件由服務(wù)器40管理。
平臺10使用額外的抽象層來將用戶從下面的低層技術(shù)構(gòu)造屏蔽開。該抽象錨定在商業(yè)實(shí)體上,例如,在粒度級別逐漸增大的屬性、分區(qū)、頁面和表單。商業(yè)實(shí)體在系統(tǒng)內(nèi)滲透,并且推動(dòng)在單個(gè)項(xiàng)目內(nèi)、不同項(xiàng)目之間或者在整個(gè)企業(yè)中重復(fù)使用。平臺10包括庫24、25和26,用來收集并存儲商業(yè)實(shí)體,使得用戶能夠在以后的項(xiàng)目中共享并重復(fù)使用這些資產(chǎn)。商業(yè)實(shí)體、屬性和表單可以在項(xiàng)目、域和企業(yè)級被共享。
平臺10適于商業(yè)用戶,因?yàn)樗鼈儽仍谑袌錾袭?dāng)前存在的典型工具中發(fā)現(xiàn)的技術(shù)構(gòu)造能更好地關(guān)聯(lián)商業(yè)實(shí)體。平臺10是以商業(yè)為中心的,就是說,其允許用戶專注于商業(yè)實(shí)體,例如,屬性、分區(qū)、表單和驗(yàn)證策略,而不是低層的編程語言代碼。平臺10允許快速原形開發(fā),這是因?yàn)榇嬖趤碜陨虡I(yè)和技術(shù)用戶二者的協(xié)同努力,而又不包括安全性、完整性和一致性問題。并發(fā)控制允許多個(gè)項(xiàng)目成員同時(shí)在同一個(gè)項(xiàng)目上工作。
平臺10負(fù)責(zé)在實(shí)現(xiàn)開發(fā)web應(yīng)用的表單時(shí)的最佳的實(shí)踐和一致性中推行嚴(yán)格的方案。許可控制被內(nèi)建在平臺10中,以使得特定的許可按照需求被分配給項(xiàng)目的組成員,許可控制還允許對組的結(jié)構(gòu)和組成員的職責(zé)進(jìn)行建模。
平臺10產(chǎn)生的表單是Xforms1.0兼容的,并且在概念上由三個(gè)主要部分組成模型、實(shí)例和用戶界面(UI)。綁定元素互連這些主要部分。下面提供了一個(gè)Xforms語法的簡單注冊表單
<pre id="pre0001" xml:space="preserve" listing-type="sequence">< xml version="1.0"encoding="iso-8859-1" ><envelope xmlns:performa="http://performa.crimsonlogic.com/2003/04/xforms" xmlns:xforms="http://www.w3.org/2002/08/xforms/cr" xmlns:xlink="http://www.w3.org/1999/xlink"> <xforms:model> <xforms:submissionxforms:id="bill-customer" xforms:replace="all" xforms:action="billing/bill-customer" xforms:method="post"/> <xforrms:instance> <name/></pre><pre id="pre0002" xml:space="preserve" listing-type="sequence"> </xforms:instance> <xforms:bind xforms:id="name"xforms:nodeset="/name"/> </xforms:model> <performa:form id="f0"name="testform"desc="Registration Form"> <performa:attr id="a0"name="nameattr"desc="Name section"><xforms:group> <xforms:label>Hello</xforms:label> <xforms:input xforms:id="name-input″xforms:bind="name"> <xforms:label>Your name:</xforms:label> </xforms:input> <xforms:trigger xforms:id="sendit"> <xforms:label>Send</xforrns:label> <xforms:action><xforms:send xforms:id="submit"<xforms:submission="bill-customer"/> </xforms:action> </xforms:trigger> <xforms:trigger xforms:ld="reset-btn"> <xforms:label>Reset</xforrms:label> <xforms:action><xforms:resetinstance xforms:id="reset"/> </xforms:action> </xforms:trigger> </xforms:group></performa:attr> </performa:form></envelope></pre>基于上述表單定義,該表單在Web瀏覽器中的顯示如圖3A所示?;蛘?,相同表單定義在移動(dòng)手持設(shè)備的WAP瀏覽器中的顯示如圖3B所示。
為了實(shí)現(xiàn)目標(biāo)設(shè)備獨(dú)立,定義了表單的通用形式,并且使用戶界面、實(shí)例數(shù)據(jù)和邏輯之間的固有分離符合XForms標(biāo)準(zhǔn)。通用形式按照XForms語法被解釋。上述表單定義示出在根元素內(nèi)部的兩個(gè)子元素、“信封”或任何名空間中的任意有效的XML名<xforms:model>-以此元素包圍的是關(guān)于表單的除了表單看起來如何或者如何呈現(xiàn)之外的所有內(nèi)容。該模型使用“綁定”元素和XPath表達(dá)式的組合,描述初始實(shí)例數(shù)據(jù)、骨架XML文檔,該骨架XML文檔包含“實(shí)例”元素內(nèi)的表單的期望最終文檔的完整結(jié)構(gòu)及其關(guān)聯(lián)的模型,例如,基于XML模式的數(shù)據(jù)類型、驗(yàn)證約束和計(jì)算得的值,。諸如存儲到盤或發(fā)送到后端系統(tǒng)之類的動(dòng)作在這里被定義為“提交”元素。
<performa:form>-該部分包含表單的用戶界面細(xì)節(jié),其告知平臺要提供或呈現(xiàn)的UI控件。在“performa”名空間中的最項(xiàng)上的“form”元素將文檔標(biāo)識為平臺熟知的表單定義,而“attr”子元素構(gòu)成可重復(fù)使用的商業(yè)屬性,該商業(yè)屬性包括一組表單控件。從該示例可知,假定顯示選擇是HTML,則諸如“input”和“trigger”之類的表單控件分別被直接映射到HTML呈現(xiàn)中的文本框和按鈕元素。
嵌入在“trigger”元素內(nèi)的是XForms動(dòng)作(“動(dòng)作”元素),動(dòng)作允許以聲明的方式構(gòu)造表單邏輯。所支持的動(dòng)作的示例可能包括設(shè)置模型實(shí)例中的節(jié)點(diǎn)的值,插入條目到集合中或者從集合中刪除條目,在UI的不同版本之間切換等。
在運(yùn)行時(shí),xforms:model元素被用來實(shí)例化表單模型,而performa:form內(nèi)容被解釋來構(gòu)造表單UI,并且被用來自模型實(shí)例的數(shù)據(jù)初始化。所給出的表單被呈現(xiàn)給用戶,用戶可以改變值并且可以利用點(diǎn)擊“Send(發(fā)送)”按鈕來提交數(shù)據(jù)。提交后,平臺將表單數(shù)據(jù)插入到模型實(shí)例中,然后輸出HTML頁面,該頁面通過在“submission”元素內(nèi)指定的“billing/bill-customer”使所提交的數(shù)據(jù)可視化。
參考圖12,利用平臺10開發(fā)的web應(yīng)用采用了邏輯和分層概念模型。該模型將web應(yīng)用的構(gòu)成實(shí)體區(qū)分為5級項(xiàng)目、集束、表單、頁面、分區(qū)和屬性或列表。對于要驗(yàn)證的web應(yīng)用,每個(gè)邏輯級別必須被實(shí)現(xiàn),并且按照這里的嚴(yán)格排序被嵌套到下一個(gè)較高級別內(nèi)。例如,最簡單的實(shí)現(xiàn)應(yīng)當(dāng)包括項(xiàng)目實(shí)例,項(xiàng)目實(shí)例包括集束實(shí)例,集束實(shí)例包括表單實(shí)例,然后是頁面實(shí)例,分區(qū)實(shí)例,最后是屬性或列表實(shí)例。這種分層組織確保實(shí)現(xiàn)方式的一致性、可靠性,并且可擴(kuò)展來容納額外的表單實(shí)體。
圖12示出了海外支出表單實(shí)現(xiàn)方式80。在分級的最基本的層級處是屬性和列表實(shí)體81,它們是基本的表單構(gòu)造塊。屬性81可以被定義為商業(yè)表單單元,其包括一個(gè)或多個(gè)表單屬性81或主要用于收集用戶輸入的控件。這些包括文本輸入?yún)^(qū)域、下拉列表、選中框或圓形按鈕輸入選擇。屬性81內(nèi)的每個(gè)表單控件關(guān)聯(lián)有特定的數(shù)據(jù)類型和有效性檢查,以反映商業(yè)用途約束。也可以對相關(guān)的表單控件指定電子表格型的算術(shù)函數(shù)來執(zhí)行簡單的計(jì)算。
與屬性81類似,列表重復(fù)器也是基本層級實(shí)體,但是它們的主要用途不同。列表顯示數(shù)據(jù)而不是收集數(shù)據(jù)。列表項(xiàng)通常用在應(yīng)用中來以表格的方式呈現(xiàn)現(xiàn)有數(shù)據(jù),以提供總括的視圖或索引視圖。通常,列表內(nèi)的數(shù)據(jù)被組織成表格列,并且是可以升序或降序排序的。在平臺10中,列表能夠支持從數(shù)據(jù)庫直接提取的數(shù)據(jù),或者從相同的集束空間內(nèi)的存儲器內(nèi)表單數(shù)據(jù)實(shí)例引用的數(shù)據(jù)。
分區(qū)82是允許對屬性81分組的邏輯塊,主要用于分類目的?;谶@種分組,可以作為整體執(zhí)行任務(wù)集合,例如,群組標(biāo)簽、重疊操作和應(yīng)用風(fēng)格主題。
包含分區(qū)是頁面83,頁面83通常用于將較長的表單分割成一系列連接的屏幕大小的頁面,以使視頻顯示滾動(dòng)最小化。頁面一般包括多個(gè)分頁機(jī)制來使導(dǎo)航最容易,并且每個(gè)頁面就錯(cuò)誤檢查和顯示來說類似于自包含的表單。輸入錯(cuò)誤立即被通知給用戶。頁面中的輸入錯(cuò)誤可能導(dǎo)致后續(xù)頁面中的其他輸入不正確,從而要求重新輸入數(shù)據(jù)。
表單84是完整的自包含的實(shí)體,并且能夠?qū)崿F(xiàn)工作流。表單84參與自組織或結(jié)構(gòu)化特性的核準(zhǔn)路線選擇。在核準(zhǔn)路線選擇過程中,核準(zhǔn)者可以附接支持文檔或者任何其他電子資源作為參考。這樣,具體的表單84可以可選地被鏈接到附件,并且總地稱作集束85。集束85還指一組彼此引用的相關(guān)表單或者附件。例如,“海外開支”集束85包括“旅行必需品”表單84和“交通開支”表單84?!敖煌ㄩ_支”表單84是“旅行必需品”表單84的子表單。
分層模型會聚于位于根層級的項(xiàng)目實(shí)體86。在根層級處,不同的表單84和集束85可以被鏈接來指定工作流模塊,或者通過URL重定向來與外部應(yīng)用集成。在這里,特定于項(xiàng)目的配置被設(shè)置,以使改變傳播過整個(gè)模型到屬性層級。一個(gè)實(shí)例是指定一組標(biāo)準(zhǔn)風(fēng)格,這組標(biāo)準(zhǔn)風(fēng)格使得在所有層級上視覺和感覺都一致。還可以有其他配置,例如,訪問控制、版本控制、表單發(fā)布機(jī)制和對實(shí)體倉庫的過濾。
實(shí)例參考圖15,在典型的場景中,開發(fā)人員從桌面啟動(dòng)(101)開發(fā)區(qū)20來開始創(chuàng)建新的web應(yīng)用。開發(fā)人員基于對庫屬性的選擇結(jié)果利用屬性設(shè)計(jì)器22創(chuàng)建(102)必要的表單屬性。在注冊表單的示例中,開發(fā)人員將若干個(gè)原子屬性對準(zhǔn),例如“街道”、“單元號”和“郵編”,并且將它們組合到一起,與“用戶ID”和“口令”和“電子郵件”屬性一起作為復(fù)合的“地址”屬性。對于每個(gè)域,預(yù)先配置的呈現(xiàn)風(fēng)格被指定,并且被分配適當(dāng)?shù)尿?yàn)證規(guī)則和策略。所創(chuàng)建的屬性然后被保存(103)到特定于項(xiàng)目的倉庫中,并且可以被提取和重復(fù)使用于后續(xù)新表單。
接下來,開發(fā)人員或另一組成員調(diào)用表單設(shè)計(jì)器23,并且通過將先前創(chuàng)建的屬性拖拉成期望的布局格式來設(shè)計(jì)(104)表單。也可以使諸如分頁、預(yù)處理/后處理、輸出重定向、錯(cuò)誤顯示格式和路線選擇選項(xiàng)之類的額外的控件可用于配置。在完成表單設(shè)計(jì)之后,開發(fā)人員能夠立即從項(xiàng)目設(shè)計(jì)器21運(yùn)行并預(yù)覽該表單。隨后,在被發(fā)布(107)以供實(shí)時(shí)訪問之前,表單被自動(dòng)路由過核準(zhǔn)過程106。利用職責(zé)隔離,在一般的情形中,開發(fā)人員不被授予訪問全部三個(gè)設(shè)計(jì)器21、22和23的權(quán)限。
參考圖17,一旦表單存活,商業(yè)用戶就能夠執(zhí)行表單提交,并且從集中的辦公室30跟蹤關(guān)聯(lián)的核準(zhǔn)路線。辦公室30包括“收件箱”機(jī)制,用于核準(zhǔn)者以有組織的方便的方式管理并核準(zhǔn)被路由的表單。收件箱允許訪問各個(gè)表單,其中僅當(dāng)前關(guān)聯(lián)有特定用戶的那些表單或附件在它們的收件箱中被看見。用戶可以預(yù)覽表單內(nèi)容、追蹤路線信息、核準(zhǔn)表單、拒絕表單、附加文檔、插入評論、以及指定從他們的收件箱去往的路線目的地。對于表單提交者,提供了工具用于修改和重新提交被拒絕的表單,或者提取部分填充的表單來繼續(xù)數(shù)據(jù)輸入。將來還可以增強(qiáng)表單,使得開發(fā)人員僅執(zhí)行少量鼠標(biāo)點(diǎn)擊操作就能實(shí)現(xiàn)域類型、屬性布局的改變,甚至整個(gè)呈現(xiàn)格式的改變。辦公室30還包括離開辦公室機(jī)制來允許用戶指示他們不在辦公室中,并且因此指定路線重定向或替換動(dòng)作。辦公室30中包括的其他特征有表單歸檔、打印和導(dǎo)出模塊,以及管理功能。
或者,已發(fā)布的表單還能夠通過URL重定向與現(xiàn)有web應(yīng)用集成。圖16示出了這種情形。
參考圖13,服務(wù)器40的體系結(jié)構(gòu)包括三個(gè)功能層,即,處理器11、連接器12和發(fā)布器13。處理器層11建立平臺10的核心命令和控制操作,并且包括專門處理器11,這些處理器在功能上不同并且彼此松散耦合。這些處理器11包括請求和響應(yīng)處理、預(yù)/后表單處理、驗(yàn)證、路線選擇工作流和持久性。在典型的來自客戶端對平臺10的web請求中,產(chǎn)生流水線化的處理,并且取決于流水線配置設(shè)置,各種處理器11可以被交換或組合來服務(wù)于該請求。
處理器11與用于連接到外部系統(tǒng)的連接器層12交互,所述外部系統(tǒng)例如是數(shù)據(jù)庫15、規(guī)則引擎16和其他商業(yè)應(yīng)用17。連接器層12通過健壯的連接代理封裝系統(tǒng)集成規(guī)范,連接代理包含與外部系統(tǒng)接口的能力,同時(shí)維護(hù)一致的應(yīng)用訪問接口。
發(fā)布器層13通過將XML表單實(shí)例轉(zhuǎn)變成可由目標(biāo)設(shè)備理解并提供的各種標(biāo)簽語法來向框架提供多目標(biāo)呈現(xiàn)能力。發(fā)布器層13的每個(gè)組件維護(hù)轉(zhuǎn)變風(fēng)格表,用于將由系統(tǒng)創(chuàng)建的固有表單元素映射到期望的目標(biāo)元素類型。發(fā)布組件提供的發(fā)布格式包括HTML、Macromedia Flash、PDF、WML、VRML和XML。
平臺10根據(jù)組成員扮演的角色來組織開發(fā)基于web的應(yīng)用的表單時(shí)涉及的開發(fā)任務(wù)。職責(zé)隔離允許根據(jù)各個(gè)組成員的責(zé)任和能力來裁剪開發(fā)任務(wù)。這確保每個(gè)組成員僅被許可執(zhí)行分配給他們的功能。在同一個(gè)項(xiàng)目上工作的各個(gè)開發(fā)人員互相協(xié)作并被同步。這允許開發(fā)組可擴(kuò)張,并且允許在不犧牲控制的情況下歸檔外購開發(fā)工作。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)意識到,在不脫離這里廣泛描述的本發(fā)明的范圍和精神的情況下,可以對這里所述的本發(fā)明的特定實(shí)施例作出各種變動(dòng)和/或修改。因此,本發(fā)明在所有方面都應(yīng)當(dāng)被認(rèn)為是說明性的而非限制性的。
權(quán)利要求
1.一種用于開發(fā)表單的表單開發(fā)平臺,包括屬性設(shè)計(jì)模塊,用于以圖形方式根據(jù)對預(yù)定域的選擇結(jié)果設(shè)計(jì)可重復(fù)使用的表單屬性,所述屬性具有集成的商業(yè)邏輯;表單設(shè)計(jì)模塊,用于使用所述表單屬性以圖形方式設(shè)計(jì)可重復(fù)使用的表單,所述表單具有集成的商業(yè)邏輯;以及項(xiàng)目設(shè)計(jì)模塊,用于通過根據(jù)預(yù)定處理流以圖形方式布置所述表單來設(shè)計(jì)可重復(fù)使用的項(xiàng)目;其中,所述設(shè)計(jì)模塊彼此獨(dú)立地工作,使得所述屬性、表單和項(xiàng)目的設(shè)計(jì)是獨(dú)立的功能,并且所設(shè)計(jì)的屬性、表單和項(xiàng)目作為獨(dú)立的實(shí)體被存儲。
2.如權(quán)利要求1所述的平臺,還包括用于存儲所設(shè)計(jì)的屬性的屬性庫、用于存儲所設(shè)計(jì)的表單的表單庫和用于存儲所設(shè)計(jì)的項(xiàng)目的項(xiàng)目庫。
3.如權(quán)利要求1或2所述的平臺,還包括用于驗(yàn)證表單的驗(yàn)證引擎。
4.如權(quán)利要求3所述的平臺,其中,所述表單針對開放標(biāo)準(zhǔn)被驗(yàn)證,或者針對商業(yè)的內(nèi)部商業(yè)策略被驗(yàn)證。
5.如權(quán)利要求3或4所述的平臺,其中,所述表單被驗(yàn)證為符合安全性策略,例如對SQL或腳本入侵的檢查。
6.如權(quán)利要求4所述的平臺,其中,所述內(nèi)部商業(yè)策略被存儲在驗(yàn)證策略倉庫中以實(shí)現(xiàn)可重復(fù)使用性。
7.如前述權(quán)利要求中的任意一個(gè)所述的平臺,還包括核準(zhǔn)系統(tǒng),用于使表單在被發(fā)布之前被核準(zhǔn)。
8.如權(quán)利要求7所述的平臺,其中,所述核準(zhǔn)系統(tǒng)是集中的系統(tǒng)。
9.如權(quán)利要求7或8所述的平臺,其中,所述核準(zhǔn)系統(tǒng)包括收件箱,用于允許訪問與特定用戶相關(guān)聯(lián)的各個(gè)表單;不在辦公室機(jī)制,用于允許用戶指示不在辦公室狀態(tài)并且指定路線重定向或替換動(dòng)作;表單歸檔模塊,用于允許表單可被搜索和過濾;打印模塊,用于允許表單以打印機(jī)友好的格式被打??;導(dǎo)出模塊,用于允許用戶以XML或其他格式導(dǎo)出表單數(shù)據(jù);或者管理模塊,用于允許遠(yuǎn)程配置和監(jiān)控所有表單及其關(guān)聯(lián)的路線選擇處理。
10.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述表單被解釋來產(chǎn)生HTML、無線標(biāo)簽語言(WML)或者其他語言的一個(gè)表單或一系列相關(guān)的表單,以在特定的設(shè)備或操作系統(tǒng)上呈現(xiàn)。
11.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述預(yù)定域包括輸入域,例如,文本域、口令域或圖像域。
12.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述屬性設(shè)計(jì)器模塊向?qū)傩詢?nèi)的表單控件指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。
13.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述屬性被分層設(shè)計(jì)。
14.如權(quán)利要求13所述的平臺,其中,表單驗(yàn)證在預(yù)定層級處被嵌套。
15.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述表單設(shè)計(jì)器模塊設(shè)計(jì)頁面流。
16.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述表單設(shè)計(jì)器模塊向表單內(nèi)的屬性、分區(qū)和頁面指定驗(yàn)證、錯(cuò)誤消息和依賴關(guān)系。
17.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述表單設(shè)計(jì)器模塊指定列表重復(fù)器、動(dòng)作類型、分頁機(jī)制、預(yù)表單和后表單處理,以及表單持久性。
18.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,后端商業(yè)服務(wù)被鏈接到所述預(yù)定處理流。
19.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述表單設(shè)計(jì)器模塊還設(shè)計(jì)具有分區(qū)和頁面的表單。
20.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述項(xiàng)目設(shè)計(jì)器模塊集中管理項(xiàng)目的風(fēng)格、消息和插件。
21.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所述項(xiàng)目設(shè)計(jì)器模塊指定列表重復(fù)器、訪問控制、配置和發(fā)布機(jī)制。
22.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所設(shè)計(jì)的屬性和表單內(nèi)包含的商業(yè)邏輯包括在數(shù)據(jù)正被輸入時(shí)用于表單輸入的驗(yàn)證規(guī)則。
23.如前述權(quán)利要求中的任意一個(gè)所述的平臺,其中,所設(shè)計(jì)的屬性和表單內(nèi)包含的商業(yè)邏輯包括產(chǎn)生有用結(jié)果的方程或計(jì)算器。
24.一種用于開發(fā)表單的方法,包括以下步驟以圖形方式根據(jù)對預(yù)定域的選擇結(jié)果設(shè)計(jì)可重復(fù)使用的表單屬性,所述屬性具有集成的商業(yè)邏輯;使用所述表單屬性以圖形方式設(shè)計(jì)可重復(fù)使用的表單,所述表單具有集成的商業(yè)邏輯;以及通過根據(jù)預(yù)定處理流以圖形方式布置所述表單來設(shè)計(jì)可重復(fù)使用的項(xiàng)目;其中,所述屬性、表單和項(xiàng)目的設(shè)計(jì)是獨(dú)立的功能,并且所設(shè)計(jì)的屬性、表單和項(xiàng)目作為獨(dú)立的實(shí)體被存儲。
25.一種利用根據(jù)權(quán)利要求24的方法開發(fā)的表單。
26.如權(quán)利要求24所述的方法,還包括以下步驟提供圖形用戶界面來允許用戶執(zhí)行以圖形方式設(shè)計(jì)可重復(fù)使用的表單屬性、以圖形方式設(shè)計(jì)可重復(fù)使用的表單和設(shè)計(jì)可重復(fù)使用的項(xiàng)目的步驟。
27.一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括用于存儲計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令用于以圖形方式根據(jù)對預(yù)定域的選擇結(jié)果設(shè)計(jì)可重復(fù)使用的表單屬性,所述屬性具有集成的商業(yè)邏輯;使用所述表單屬性以圖形方式設(shè)計(jì)可重復(fù)使用的表單,所述表單具有集成的商業(yè)邏輯;以及通過根據(jù)預(yù)定處理流以圖形方式布置所述表單來設(shè)計(jì)可重復(fù)使用的項(xiàng)目;其中,所述屬性、表單和項(xiàng)目的設(shè)計(jì)是獨(dú)立的功能,并且所設(shè)計(jì)的屬性、表單和項(xiàng)目作為獨(dú)立的實(shí)體被存儲。
全文摘要
本發(fā)明提供了一種用于開發(fā)表單的表單開發(fā)平臺(10)。該平臺包括屬性設(shè)計(jì)模塊(22),用于以圖形方式根據(jù)對預(yù)定域的選擇結(jié)果設(shè)計(jì)可重復(fù)使用的表單屬性(81),所述屬性(81)具有集成的商業(yè)邏輯;表單設(shè)計(jì)模塊(23),用于使用所述表單屬性(81)以圖形方式設(shè)計(jì)可重復(fù)使用的表單(84),所述表單(84)具有集成的商業(yè)邏輯;以及項(xiàng)目設(shè)計(jì)模塊(21),用于通過根據(jù)預(yù)定處理流以圖形方式布置所述表單(84)來設(shè)計(jì)可重復(fù)使用的項(xiàng)目(86);其中,所述設(shè)計(jì)模塊(21、22和23)彼此獨(dú)立地工作,使得所述屬性(81)、表單(84)和項(xiàng)目(86)的設(shè)計(jì)是獨(dú)立的功能,并且所設(shè)計(jì)的屬性(81)、表單(84)和項(xiàng)目(86)作為獨(dú)立的實(shí)體被存儲。
文檔編號G06F17/24GK1938680SQ200580009863
公開日2007年3月28日 申請日期2005年3月23日 優(yōu)先權(quán)日2004年3月26日
發(fā)明者鄧永昇, 潘泗森 申請人:勁升邏輯有限公司