專利名稱:基于頁(yè)面組件的應(yīng)用系統(tǒng)快速開發(fā)平臺(tái)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種應(yīng)用系統(tǒng)開發(fā)平臺(tái),特別涉及一種基于頁(yè)面組件的應(yīng) 用系統(tǒng)快速開發(fā)平臺(tái)。
背景技術(shù):
隨著基于WEB的應(yīng)用系統(tǒng)越來越復(fù)雜,前臺(tái)用戶界面的展示,后臺(tái)的
業(yè)務(wù)邏輯也趨于復(fù)雜化。傳統(tǒng)的開發(fā)平臺(tái)存在下述的缺點(diǎn)第一,前臺(tái)展 示層的開發(fā)沒有很好地組件化,開發(fā)效率和質(zhì)量無法得到保證;第二,前 臺(tái)展示方式無法滿足用戶需求;第三,在應(yīng)用系統(tǒng)中,與前臺(tái)界面相關(guān)的 操作模式不能有效的整合、復(fù)用。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種基于頁(yè)面組件的應(yīng)用系統(tǒng)快速開 發(fā)平臺(tái),實(shí)現(xiàn)靜態(tài)頁(yè)面到動(dòng)態(tài)頁(yè)面的轉(zhuǎn)化,提供可擴(kuò)展、可復(fù)用的頁(yè)面組 件;并將頁(yè)面控制邏輯前移到客戶端,改善了用戶的操作體驗(yàn);提供一種 客戶端和服務(wù)端數(shù)據(jù)交互的方式,簡(jiǎn)化、統(tǒng)一了服務(wù)端業(yè)務(wù)邏輯的實(shí)現(xiàn)方 式;提供一種基于客戶端(瀏覽器)的動(dòng)態(tài)頁(yè)面組件處理模塊。
為解決上述技術(shù)問題,本發(fā)明提供的一種基于頁(yè)面組件的應(yīng)用系統(tǒng)快 速開發(fā)平臺(tái),包括
頁(yè)面組件, 一塊動(dòng)態(tài)的頁(yè)面顯示區(qū)域,所述開發(fā)平臺(tái)中最小的頁(yè)面處 理單元,顯示頁(yè)面處理器的功能結(jié)果;
動(dòng)態(tài)屬性標(biāo)識(shí), 一種在靜態(tài)HTML頁(yè)面上標(biāo)識(shí)動(dòng)態(tài)信息的擴(kuò)展屬性集合; 頁(yè)面處理器, 一種基于客戶端(瀏覽器)的動(dòng)態(tài)頁(yè)面組件的處理模塊; 頁(yè)面組件控制器,用來控制頁(yè)面組件;
數(shù)據(jù)封裝器,提供基于客戶端數(shù)據(jù)源的所有頁(yè)面組件的數(shù)據(jù)封裝; 頁(yè)面全局控制器,控制和協(xié)調(diào)一個(gè)頁(yè)面中多個(gè)頁(yè)面組件控制器; 數(shù)據(jù)傳輸器,按照一定的規(guī)則(協(xié)議)實(shí)現(xiàn)數(shù)據(jù)封裝器與后臺(tái)服務(wù)端 的數(shù)據(jù)交互。
其中的頁(yè)面處理器,是一種基于客戶端(瀏覽器)的動(dòng)態(tài)頁(yè)面組件的 處理模塊,將靜態(tài)HTML頁(yè)面結(jié)合動(dòng)態(tài)屬性標(biāo)識(shí)轉(zhuǎn)化為動(dòng)態(tài)頁(yè)面組件,包括 以下步驟
(1) 當(dāng)HTML頁(yè)面加載到客戶端(瀏覽器)之后,找到所有具有動(dòng)態(tài)屬 性標(biāo)識(shí)的頁(yè)面元素節(jié)點(diǎn)的集合N;
(2) 根據(jù)N中的每一個(gè)元素節(jié)點(diǎn)n,獲取所有的動(dòng)態(tài)屬性標(biāo)識(shí)集合A;
(3) 根據(jù)集合A中頁(yè)面組件標(biāo)識(shí)tw,生成相對(duì)應(yīng)的頁(yè)面組件實(shí)例w,將 集合A中的配置參數(shù)集合S應(yīng)用到頁(yè)面組件w上,根據(jù)頁(yè)面組件w的不同,可 能的效果如下(1)添加若干子節(jié)點(diǎn)到節(jié)點(diǎn)n下;(2)修改節(jié)點(diǎn)n的若干子 節(jié)點(diǎn);(3)修改節(jié)點(diǎn)n的一些屬性;(4)修改節(jié)點(diǎn)n的顯示樣式;(5)移動(dòng)
節(jié)點(diǎn)n; (6)其它可能;(7)上述變化的組合;
對(duì)于集合A中的頁(yè)面組件控制器的標(biāo)識(shí)tc,如果該頁(yè)面控制器實(shí)例不存 在則生成新的頁(yè)面控制器實(shí)例c,否則獲取對(duì)應(yīng)的頁(yè)面控制器c,然后將該
頁(yè)面控制器實(shí)例C和頁(yè)面組件W建立關(guān)聯(lián);
對(duì)于集合A中的數(shù)據(jù)封裝器的標(biāo)識(shí)td,如果該數(shù)據(jù)封裝器不存在則生成
新的數(shù)據(jù)封裝器的實(shí)例d,否則獲取對(duì)應(yīng)的數(shù)據(jù)封裝器d,如果頁(yè)面控制器C 和數(shù)據(jù)封裝器d沒有建立關(guān)聯(lián),則建立C和d的關(guān)聯(lián);
對(duì)于集合A中的頁(yè)面全局控制器的標(biāo)識(shí)tg,如果該頁(yè)面全局控制器實(shí)例
不存在則生成新的頁(yè)面全局控制器實(shí)例g,否則獲取對(duì)應(yīng)的頁(yè)面全局控制器 g,然后將該頁(yè)面全局控制器實(shí)例g和頁(yè)面組件W建立關(guān)聯(lián);
處理完畢。
本發(fā)明由于采用了上述技術(shù)方案,具有這樣的有益效果:第一,開發(fā)人
員可以在頁(yè)面設(shè)計(jì)人員設(shè)計(jì)的靜態(tài)原型頁(yè)面中加上動(dòng)態(tài)屬性標(biāo)識(shí),使得開
發(fā)和設(shè)計(jì)過程順暢;第二,基于組件的開發(fā)模式,極大的減少了開發(fā)工作 量;第三,基于客戶端的控制器和數(shù)據(jù)交互模式,改善了用戶的操作體驗(yàn)。
下面結(jié)合附圖與具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明
圖1是本發(fā)明所述基于頁(yè)面組件快速開發(fā)平臺(tái)的UML靜態(tài)對(duì)象關(guān)系
圖2是本發(fā)明所述頁(yè)面處理器的處理方法流程圖。
具體實(shí)施例方式
如圖l所示為本發(fā)明所述基于頁(yè)面組件快速開發(fā)平臺(tái)的結(jié)構(gòu)框圖,包
括
頁(yè)面組件, 一塊動(dòng)態(tài)的頁(yè)面顯示區(qū)域,本開發(fā)框架下最小的頁(yè)面處理
單元,是頁(yè)面處理器處理HTML和動(dòng)態(tài)屬性標(biāo)識(shí)得到的結(jié)果。例如文本輸入, 曰期選擇都可以作為一個(gè)頁(yè)面組件。
動(dòng)態(tài)屬性標(biāo)識(shí), 一種在靜態(tài)HTML頁(yè)面上標(biāo)識(shí)動(dòng)態(tài)信息的擴(kuò)展屬性集合。
例如對(duì)于頁(yè)面上的一個(gè)標(biāo)簽DIV: 〈div id^myid〉〈/div〉添加了動(dòng)態(tài)屬性標(biāo) 識(shí)后開幼口 <div id=myid por:type二Date〉〈/div〉其中por是命名空間,Date 標(biāo)識(shí)這個(gè)節(jié)點(diǎn)將會(huì)被處理成為一個(gè)日期選擇組件。
頁(yè)面處理器, 一種基于客戶端(瀏覽器)的負(fù)責(zé)將靜態(tài)HTML頁(yè)面與動(dòng) 態(tài)屬性標(biāo)識(shí)處理為動(dòng)態(tài)頁(yè)面組件的模塊。處理器是運(yùn)行在客戶端的,現(xiàn)階 段通常采用跨瀏覽器的javascript來實(shí)現(xiàn)。
頁(yè)面組件控制器,用來控制頁(yè)面組件。例如〈div id=myid por:type二Select por:control=ListControl〉</div〉, Select標(biāo)識(shí)該節(jié)點(diǎn) 對(duì)應(yīng)一個(gè)下拉選擇組件,對(duì)應(yīng)的頁(yè)面控制器的名稱是"ListControl",這 樣在本框架中,會(huì)產(chǎn)生一個(gè)名稱為"ListControl"的頁(yè)面控制器實(shí)例,該 頁(yè)面控制器和該頁(yè)面組件存在關(guān)聯(lián)關(guān)系。
數(shù)據(jù)封裝器, 一種基于客戶端的數(shù)據(jù)源,提供所有頁(yè)面組件的數(shù)據(jù)封 裝;例如<div id=myid por:type=Select por:control二ListControl por: data=PR01 X/div>,將生成名為PROl的數(shù)據(jù)封裝器。
頁(yè)面全局控制器,控制和協(xié)調(diào)一個(gè)頁(yè)面中多個(gè)頁(yè)面組件控制器。也就 是控制器的控制器。例如〈div id=master por:type二DataGrid por:control二MasterGridControl por:data=PR01 por:link= {name二 'link' ,type:master}〉</div〉 , 〈div id=slave por:type二DataGrid por:control二SlaveGridControl por:data二PR02 por:link={name: 'link, , type:slave}〉〈/div〉將生成兩個(gè)數(shù)據(jù)表格組件,兩個(gè)頁(yè)面控制器 (MasterGridControl和SlaveGridControl),分別對(duì)應(yīng)的數(shù)據(jù)封裝器PROl 和PR02,這兩個(gè)頁(yè)面控制器通過頁(yè)面全局控制器link進(jìn)行協(xié)作實(shí)現(xiàn)主從聯(lián)
動(dòng)模式(master標(biāo)識(shí)主表,slave標(biāo)識(shí)從表)。
數(shù)據(jù)傳輸器,按照一定的規(guī)則(協(xié)議)實(shí)現(xiàn)數(shù)據(jù)封裝器與后臺(tái)服務(wù)端 的數(shù)據(jù)交互。典型的數(shù)據(jù)格式如下(基于javascript對(duì)象格式) {blocks: {result: {rows: [["apple","蘋果"]],attr: {limit:"5", orderBy:null, count:〃11〃, offset:〃10〃}, meta:{columns: [{descName:"代號(hào)",pos:O, name: "code"} , {descName:"名禾爾", name:"name"}]}}, inqu一status:{rows:[], attr:{}, meta:{attr:{}, columns:[]}}}, attr:{serviceName:"PR01", methodName: "query"}, status:0K該數(shù)據(jù)描述了一行兩列的表格數(shù)據(jù),兩列為"代號(hào)"和"名稱", 一行數(shù)據(jù)是["apple", 〃蘋果"],同時(shí)擴(kuò)展屬性標(biāo)識(shí)了這個(gè)數(shù)據(jù)集的總記錄 數(shù)是11條,當(dāng)前是第10條記錄。
具體的實(shí)施例
本發(fā)明所述的基于頁(yè)面組件快速開發(fā)平臺(tái),其實(shí)施流程如圖2所示 (1)假設(shè)存在基于HTML的靜態(tài)頁(yè)面片段如下
<div id二master por:type二DataGrid por:control=master por:data=PR01 por:link二{name:, link, ,type:master)></div>
<div id二slave por: type二DataGrid por: corrtrol=slave por:data=PR02
por:link={name:, link, ,type:slave, mapping:{master: [ 'code, ],sl ave:[ 'company' ]}}></div>;
(2 )頁(yè)面加載完成后,通過搜索發(fā)現(xiàn)兩個(gè)符合條件的節(jié)點(diǎn)(id為master 的DIV和id為slave的DIV);
(3) 首先處理divttnaster節(jié)點(diǎn),發(fā)現(xiàn)組件標(biāo)識(shí)是DataGrid,所以生成 一個(gè)DatGrid的實(shí)例(數(shù)據(jù)表格);
(4) 發(fā)現(xiàn)名為master的組件控制器不存在,創(chuàng)建一個(gè)名為master的組 件控制器;
(5) 發(fā)現(xiàn)名為PR01的數(shù)據(jù)封裝器不存在,創(chuàng)建一個(gè)名為PR01的數(shù)據(jù)封
裝器;
(6) 發(fā)現(xiàn)名為link的全局控制器不存在,創(chuàng)建一個(gè)名為link的全局控 制器,并將master組件控制器以master的身份與link關(guān)聯(lián);
(7) 處理divftslave節(jié)點(diǎn),發(fā)現(xiàn)發(fā)現(xiàn)組件標(biāo)識(shí)是DataGrid,所以生成 一個(gè)DatGrid的實(shí)例(數(shù)據(jù)表格);
(8) 發(fā)現(xiàn)名為slave的組件控制器不存在,創(chuàng)建一個(gè)名為slave的組件 控制器;
(9) 發(fā)現(xiàn)名為PR02的數(shù)據(jù)封裝器不存在,創(chuàng)建一個(gè)名為PR02的數(shù)據(jù)封
裝器;
(10) 發(fā)現(xiàn)名為link的全局控制器存在,獲取名為link的全局控制器, 并將slave組件控制器以slave的身份與link關(guān)聯(lián),并設(shè)置映射關(guān)系是 master的code字段對(duì)應(yīng)slave的company字段;
(11) 沒有需要處理的節(jié)點(diǎn),處理完畢。
權(quán)利要求
1、一種基于頁(yè)面組件的應(yīng)用系統(tǒng)快速開發(fā)平臺(tái),其特征在于,包括頁(yè)面組件,一塊動(dòng)態(tài)的頁(yè)面顯示區(qū)域,所述開發(fā)平臺(tái)中最小的頁(yè)面處理單元,顯示頁(yè)面處理器的功能結(jié)果;動(dòng)態(tài)屬性標(biāo)識(shí),一種在靜態(tài)HTML頁(yè)面上標(biāo)識(shí)動(dòng)態(tài)信息的擴(kuò)展屬性集合;頁(yè)面處理器,一種基于客戶端(瀏覽器)的動(dòng)態(tài)頁(yè)面組件處理模塊;頁(yè)面組件控制器,用來控制頁(yè)面組件;數(shù)據(jù)封裝器,提供基于客戶端數(shù)據(jù)源的所有頁(yè)面組件的數(shù)據(jù)封裝;頁(yè)面全局控制器,控制和協(xié)調(diào)一個(gè)頁(yè)面中多個(gè)頁(yè)面組件控制器;數(shù)據(jù)傳輸器,按照一定的規(guī)則(協(xié)議)實(shí)現(xiàn)數(shù)據(jù)封裝器與后臺(tái)服務(wù)端的數(shù)據(jù)交互。
2、 根據(jù)權(quán)利要求l所述的頁(yè)面組件,其特征在于,所述的頁(yè)面組件是 頁(yè)面上的功能實(shí)體,負(fù)責(zé)頁(yè)面的顯示,實(shí)現(xiàn)相關(guān)功能(驗(yàn)證),并且可以 設(shè)置獲取頁(yè)面組件的值。
3、 根據(jù)權(quán)利要求l所述的動(dòng)態(tài)屬性標(biāo)識(shí),其特征在于,所述的動(dòng)態(tài)屬 性標(biāo)識(shí)是可以在HTML標(biāo)簽(元素節(jié)點(diǎn))中包含的合法屬性。
4、 根據(jù)權(quán)利要求l所述的頁(yè)面處理器,其特征在于,所述的頁(yè)面處理 器將靜態(tài)HTML頁(yè)面結(jié)合動(dòng)態(tài)屬性標(biāo)識(shí)轉(zhuǎn)化為動(dòng)態(tài)頁(yè)面組件。
5、 根據(jù)權(quán)利要求l所述的頁(yè)面組件控制器,其特征在于,所述的頁(yè)面 組件控制器可以接收其它頁(yè)面組件或者頁(yè)面全局控制器的消息,控制頁(yè)面 組件的顯示,值等狀態(tài),也可以通知其它的頁(yè)面組件或者頁(yè)面全局控制器。
6、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)封裝器,其特征在于,所述的數(shù)據(jù)封裝器是客戶端的數(shù)據(jù)集合。
7、 根據(jù)權(quán)利要求1和5所述的頁(yè)面全局控制器,其特征在于,所述的頁(yè) 面全局控制器通過一定的消息機(jī)制協(xié)調(diào)多個(gè)頁(yè)面組件控制器。
8、 根據(jù)權(quán)利要求l所述的數(shù)據(jù)傳輸器,其特征在于,所述的數(shù)據(jù)傳輸器是一套客戶端和服務(wù)端數(shù)據(jù)交互的格式,數(shù)據(jù)傳輸器e是一個(gè)二元組(B, A),其中B是數(shù)據(jù)塊的b集合,A是擴(kuò)展屬性a的集合;數(shù)據(jù)塊b是一個(gè)三元組 (m, R, A),其中m是元數(shù)據(jù)信息,R是數(shù)據(jù)記錄r的集合,A是擴(kuò)展屬性集合; 元數(shù)據(jù)m是一個(gè)二元組(C, A),其中C是數(shù)據(jù)字段定義c的集合,A是擴(kuò)展屬 性集合。
9、 根據(jù)權(quán)利要求1和3所述的動(dòng)態(tài)屬性標(biāo)識(shí),其特征在于,所述的動(dòng)態(tài) 屬性標(biāo)識(shí)是一個(gè)五元組(tw, tc, td, tg, S),其中tw是頁(yè)面組件的標(biāo)識(shí), tc是頁(yè)面控制器標(biāo)識(shí),td是數(shù)據(jù)封裝器標(biāo)識(shí),tg是頁(yè)面全局控制器標(biāo)識(shí),S 是配置參數(shù)的集合。
全文摘要
本發(fā)明公開了一種基于頁(yè)面組件的應(yīng)用系統(tǒng)快速開發(fā)平臺(tái),包括頁(yè)面組件,一塊動(dòng)態(tài)的頁(yè)面顯示區(qū)域,顯示頁(yè)面處理器處理HTML和動(dòng)態(tài)屬性標(biāo)識(shí)所得到的結(jié)果;動(dòng)態(tài)屬性標(biāo)識(shí),一種在靜態(tài)HTML頁(yè)面上標(biāo)識(shí)動(dòng)態(tài)信息的擴(kuò)展屬性集合;頁(yè)面處理器,一種基于客戶端(瀏覽器)的負(fù)責(zé)將靜態(tài)HTML頁(yè)面與動(dòng)態(tài)屬性標(biāo)識(shí)處理為動(dòng)態(tài)頁(yè)面組件的模塊;頁(yè)面組件控制器,用來控制頁(yè)面組件;數(shù)據(jù)封裝器,一種基于客戶端的數(shù)據(jù)源,提供所有頁(yè)面組件的數(shù)據(jù)封裝;頁(yè)面全局控制器,控制和協(xié)調(diào)一個(gè)頁(yè)面中多個(gè)頁(yè)面組件控制器;數(shù)據(jù)傳輸器,按照一定的規(guī)則(協(xié)議)實(shí)現(xiàn)數(shù)據(jù)封裝器與后臺(tái)服務(wù)端的數(shù)據(jù)交互。本發(fā)明能夠使得應(yīng)用系統(tǒng)的開發(fā)和設(shè)計(jì)過程順暢,極大的減少了系統(tǒng)開發(fā)的工作量,改善了客戶端用戶的操作體驗(yàn)。
文檔編號(hào)G06F9/44GK101178649SQ20071009389
公開日2008年5月14日 申請(qǐng)日期2007年6月27日 優(yōu)先權(quán)日2007年6月27日
發(fā)明者樊國(guó)柱 申請(qǐng)人:上海寶信軟件股份有限公司