專利名稱:一種用戶界面服務(wù)組合方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及煤礦圖形組態(tài)軟件技術(shù),尤其涉及一種用戶界面(UI,User Interface)服務(wù)組合方法及系統(tǒng)。
背景技術(shù):
面向服務(wù)架構(gòu)(SOA,Service-Oriented Architecture)作為一種新的軟件系統(tǒng)架構(gòu),要求開發(fā)者超越應(yīng)用軟件來思考,并考慮復(fù)用現(xiàn)有的服務(wù),檢查如何使得服務(wù)被重復(fù)利用。SOA鼓勵使用可替代的技術(shù)和方法,通過把服務(wù)聯(lián)系在一起而非編寫新代碼來構(gòu)架應(yīng)用。使用SOA架構(gòu)的企業(yè)應(yīng)用,允許企業(yè)僅通過調(diào)整原有的服務(wù)模式而非被迫進(jìn)行大規(guī)模新的應(yīng)用代碼的開發(fā),使得在商業(yè)環(huán)境許可的時間內(nèi)對變化的市場條件做出快速的響應(yīng)。 其帶來了組合式應(yīng)用(Composite Application)的開發(fā)方式和觀念,這些觀念逐漸被應(yīng)用在集成上,從而產(chǎn)生一個新的研究領(lǐng)域——服務(wù)組合。目前比較典型的服務(wù)組合有Web服務(wù)業(yè)務(wù)流程建模執(zhí)行語言(WS-BPEL,Web Services Business Process Execution Language),但是對于模型-視圖-控制器(MVC, Model View Controller)模式,MVC模式封裝了業(yè)務(wù)功能和數(shù)據(jù)的服務(wù)以及業(yè)務(wù)流程控制邏輯(如BPEL),即MVC模式被清楚地劃分為模型(Model)和控制器(Controller),而對于 MVC中的視圖(View)即UI,往往需要客戶應(yīng)用程序(服務(wù)消費(fèi)者)自己來創(chuàng)建。當(dāng)業(yè)務(wù)需求發(fā)生變化時,雖然可以通過在控制器中的重新組合和編排實現(xiàn)來應(yīng)對該變化,在一定程度上減少了應(yīng)用程序的開發(fā)時間,且提高了應(yīng)用程序?qū)π枨笞兓捻憫?yīng)速度,但用戶需求和業(yè)務(wù)流程控制邏輯的變化往往會導(dǎo)致UI的變化,而重新開發(fā)UI仍然需要很大的代價,其中類似UI通常被重復(fù)開發(fā),不能充分體現(xiàn)SOA中重復(fù)利用的思想。目前,當(dāng)服務(wù)組合在數(shù)據(jù)和應(yīng)用邏輯上已經(jīng)取得一定的成績時,在UI上的服務(wù)組合研究卻很少;此外,UI是人與軟件系統(tǒng)交互的中介,是人與計算機(jī)軟硬件系統(tǒng)進(jìn)行信息交流的雙向通道。對于用戶,UI就是整個軟件系統(tǒng),其開發(fā)質(zhì)量、開發(fā)成本和效率已經(jīng)成為影響整個軟件產(chǎn)品質(zhì)量的重要因素。對于軟件系統(tǒng)或計算機(jī)軟硬件系統(tǒng),UI代表用戶,是軟件系統(tǒng)向用戶展示其運(yùn)行狀態(tài)和獲取人員支持(如信息輸入和決策判斷等)的關(guān)鍵組件, 也是影響其整體運(yùn)行效率的重要因素,這是因為用戶使用UI完成其特定任務(wù)所需的時間越短,整個系統(tǒng)流程的執(zhí)行時間也就相應(yīng)地越短。但是當(dāng)前UI的重復(fù)利用和人工開發(fā)現(xiàn)象非常普遍,其開發(fā)質(zhì)量和開發(fā)效率難以保證,不便于靈活地應(yīng)對各種不同的用戶需求。開發(fā)圖形應(yīng)用的程序員都會意識到UI的開發(fā)是在應(yīng)用程序開發(fā)、測試、維護(hù)中最耗時的部分, 這意味著重復(fù)利用在UI中是必不可少的。目前有一些框架(如java swing)能夠減輕UI 開發(fā)的工作量,是通過提供預(yù)先壓縮的class包實現(xiàn)的,class包中包含很多UI功能,例如按鈕和菜單等,但是框架只是粗糙的將UI元素集成在一起。在2010年完成了一個煤礦圖形組態(tài)軟件JHMI的設(shè)計和開發(fā),能夠根據(jù)JHMI煤礦用戶的需求組合產(chǎn)生圖元,繪制礦圖,并與傳感器連接,實時動態(tài)的顯示傳感器的信息。 JHMI在煤礦圖形組態(tài)軟件中是與用戶交互最多的UI,但是JHMI仍然存在很多缺點(diǎn)
UUI仍然要人工開發(fā);當(dāng)用戶需求改變時,UI需要重新開發(fā);2、UI間相互獨(dú)立,使得礦圖缺乏對傳感器的統(tǒng)一管理、控制、分析及形式化描述;3、UI (傳感器)的控制功能在礦圖生成時已經(jīng)固定,不能靈活進(jìn)行修改;4、JHMI屬于UI的組態(tài)軟件,其以傳統(tǒng)的圖形軟件的方式實現(xiàn)礦圖的制作,在其制作礦圖時代碼已經(jīng)固定,使得實現(xiàn)重復(fù)利用的效果比較差。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種UI服務(wù)組合方法及系統(tǒng),降低UI的開發(fā)和維護(hù)成本。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供一種用戶界面服務(wù)組合方法,包括生成傳感器圖元,將傳感器圖元與服務(wù)組件架構(gòu)(SCA)的服務(wù)組件綁定;對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局 fn息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;根據(jù)顯示模型和傳感器圖元的屬性生成用戶界面(UI),并將該UI與SCA的服務(wù)組件綁定。上述方法中,所述生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定為利用基本圖形并通過“搭積木”的方式生成傳感器圖元,將所述傳感器圖元以可擴(kuò)展標(biāo)記語言(XML)的格式保存在域模型庫中;在以XML的格式保存在域模型庫的過程中,將所述傳感器圖元與SCA的服務(wù)組件綁定。上述方法中,所述傳感器包括甲烷、一氧化碳、二氧化碳、瓦斯和風(fēng)速;所述圖形包括矩形、圓形、線性和三角形;所述SCA的服務(wù)組件提供的服務(wù)包括移動、變色、操作控制和封鎖。上述方法中,所述將所述傳感器圖元以可擴(kuò)展標(biāo)記語言(XML)的格式保存在域模型庫中之后,該方法還包括域模型庫中保存?zhèn)鞲衅鞯挠蚰P兔枋鑫募?,域模型描述文件的?nèi)容是傳感器圖元的屬性,包括組成傳感器圖元的基本圖形、基本圖形的位置、層次和顏色、以及與傳感器圖元綁定的SCA的服務(wù)組件。上述方法中,所述對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型為在任務(wù)模型的建模初期,對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,將作為整體任務(wù)的煤礦圖形分解為多個子任務(wù);將未完成分解且處于正在分解的煤礦圖形稱為任務(wù)原模型,并進(jìn)行保存。上述方法中,所述將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息為將任務(wù)原模型進(jìn)行解析為任務(wù)樹,點(diǎn)擊任務(wù)樹中的任務(wù)節(jié)點(diǎn),彈出畫圖界面,通過拖拽的方式將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面中,根據(jù)預(yù)先保存的傳感器圖元,在畫圖界面中自動生成對應(yīng)的傳感器圖元,將添加完傳感器實例后的任務(wù)樹以XML的格式保存為任務(wù)模型;在將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面的過程中,確定傳感器的布局信息。上述方法中,所述根據(jù)任務(wù)模型和布局信息,得到顯示模型為結(jié)合布局信息,將任務(wù)模型按照一定的轉(zhuǎn)換規(guī)則轉(zhuǎn)換為顯示模型,將得到的顯示模型以XML格式保存在數(shù)據(jù)庫中;所述一定的轉(zhuǎn)換規(guī)則為在任務(wù)模型中,為具有子任務(wù)的任務(wù)節(jié)點(diǎn)創(chuàng)建一個容器, 并為每個葉子節(jié)點(diǎn)創(chuàng)建一個圖元,針對每個圖元的類型并根據(jù)域模型庫中保存的傳感器圖元,為每個圖元的類型創(chuàng)建具體圖元。上述方法中,所述根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI與SCA的服務(wù)組件綁定為調(diào)用SCA的服務(wù)組件中的創(chuàng)建UI元素的組件對顯示模型中的UI元素進(jìn)行解析, 并結(jié)合域模型庫中的傳感器圖元的屬性生成UI,將該UI與SCA的服務(wù)組件綁定。本發(fā)明還提供一種用戶界面服務(wù)組合系統(tǒng),包括域模型建模模塊、任務(wù)模型建模模塊、顯示模型建模模塊、UI生成執(zhí)行環(huán)境模塊;其中,域模型建模模塊,用于生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;任務(wù)模型建模模塊,用于對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;顯示模型建模模塊,用于將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;UI生成執(zhí)行環(huán)境模塊,用于根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI 與SCA的服務(wù)組件綁定。本發(fā)明提供的UI服務(wù)組合方法及系統(tǒng),生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;根據(jù)顯示模型和傳感器圖元的屬性生成用戶界面(UI),并將該UI與SCA的服務(wù)組件綁定,一方面,使用UI組件來組合 UI程序,當(dāng)修改UI程序時,只需要局部修改UI組件即可,提高UI生成的速度;另一方面, 將UI與SCA的服務(wù)組件綁定,容易地封裝各種服務(wù),并根據(jù)需求綁定任何傳輸協(xié)議,可以方便二次開發(fā),第三方能夠容易地根據(jù)需求開發(fā)集成新的控制服務(wù);此外,將可重復(fù)利用的 UI通過DTS建模動態(tài)地組合和構(gòu)造為可支持用戶執(zhí)行業(yè)務(wù)流程中的人員活動或任務(wù)的UI, 不僅可以實現(xiàn)SOA在表現(xiàn)層組件或服務(wù)的復(fù)用和組合,還可以顯著的降低UI的開發(fā)和維護(hù)成本,同時也為用戶高效地參與業(yè)務(wù)流程提供了支持。
圖1是本發(fā)明實現(xiàn)UI服務(wù)組合方法的流程示意圖;圖2是本發(fā)明生成傳感器圖元的示意圖;圖3是本發(fā)明由任務(wù)原模型生成任務(wù)模型以及生成顯示模型的示意圖;圖4是本發(fā)明生成UI,將該UI與SCA的服務(wù)組件綁定的示意圖一;
圖5是本發(fā)明生成UI,將該UI與SCA的服務(wù)組件綁定的示意圖二 ;圖6是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例一的流程示意圖;圖7是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例二的流程示意圖;圖8是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例三的流程示意圖;圖9是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例四的流程示意圖;圖10是本發(fā)明實現(xiàn)UI服務(wù)組合系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式DTS模型分別指的是域模型(Domain model)、任務(wù)模型(Task model)和顯示模型 (Show model),將基于DTS模型的UI的建模應(yīng)用于煤礦圖形組態(tài)軟件JHMI中,可以提高UI 的開發(fā)效率,減少UI的重復(fù)開發(fā),因此本發(fā)明提供一種基于DTS模型的煤礦圖形組態(tài)軟件的UI服務(wù)組合方法及系統(tǒng),其基本思想是生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;根據(jù)顯示模型和傳感器圖元的屬性生成用戶界面(UI),并將該UI與SCA的服務(wù)組件綁定。下面通過附圖及具體實施例對本發(fā)明再做進(jìn)一步的詳細(xì)說明。本發(fā)明提供一種UI服務(wù)組合方法,圖1是本發(fā)明實現(xiàn)UI服務(wù)組合方法的流程示意圖,如圖1所示,該方法包括以下步驟步驟101,生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;具體的,如圖2所示,在煤礦圖形組態(tài)軟件中,域模型建模模塊主要用于進(jìn)行域模型的建模,即主要針對UI進(jìn)行建模,由于煤礦圖形組態(tài)軟件中的UI為傳感器,因此域模型的建模包括傳感器圖元的生成和實現(xiàn)服務(wù)綁定;傳感器包括甲烷、一氧化碳、二氧化碳、瓦斯和風(fēng)速等;對于煤礦圖形組態(tài)軟件,每種類型的傳感器都有自己的代表圖元,可以根據(jù)用戶需求生成不同類型的傳感器圖元;傳感器圖元的生成是利用基本圖形并通過“搭積木”的方式完成的,并以可擴(kuò)展標(biāo)記語言(XML,Extensible Markup Language)的格式保存在域模型庫中;其中,基本圖形包括矩形、圓形、線性和三角形等;例如,如圖2所示,甲烷可以由三個圓形和一個三角形組合得到;在以XML的格式保存在域模型庫的過程中,實現(xiàn)服務(wù)綁定,即將生成的傳感器圖元以各種傳輸協(xié)議與服務(wù)組件架構(gòu)(SCA,Service Component Architecture)的服務(wù)組件進(jìn)行綁定,其中的傳輸協(xié)議可以是簡單對象訪問協(xié)議(S0AP,Simple Object Access Protocol)協(xié)議,遠(yuǎn)程程序調(diào)用 RMI (Remote Procedure Call)協(xié)議,Java 消息服務(wù)(JMS, Java Message Service)協(xié)議;這里,該SCA的服務(wù)組件已經(jīng)預(yù)先封裝好,并能夠在SCA容器中運(yùn)行;其中,SCA的服務(wù)組件可以提供的服務(wù)包括移動、變色、操作控制和封鎖等;將生成的傳感器圖元以XML的格式保存在域模型庫中后,域模型庫中就保存有不同傳感器的域模型描述文件,這些不同傳感器的域模型描述文件都是以圖元描述文件為基礎(chǔ),域模型描述文件的內(nèi)容是傳感器圖元的屬性,具體包括組成傳感器圖元的基本圖形、基本圖形的位置、層次和顏色、以及與傳感器圖元綁定的SCA的服務(wù)組件等;域模型描述文件在實際運(yùn)行時,由數(shù)據(jù)對象解析提取各傳感器的屬性數(shù)據(jù),并結(jié)合任務(wù)節(jié)點(diǎn)的屬性綁定抽象交互對象;這里,當(dāng)需要修改某一類型的傳感器圖元的屬性、方法、綁定服務(wù)、相關(guān)的重要實體時,只需要修改域模型描述文件,在運(yùn)行時,運(yùn)行環(huán)境將重新加載域模型,而不需要針對每個傳感器進(jìn)行修改,快速且方便。步驟102,對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;具體的,在煤礦圖形組態(tài)軟件中,使用任務(wù)模型,結(jié)合圖形軟件的特點(diǎn),將任務(wù)模型的建模分為兩步進(jìn)行任務(wù)原模型和任務(wù)模型;在任務(wù)模型的建模初期,任務(wù)模型建模模塊對煤礦圖形進(jìn)行任務(wù)分解,將煤礦圖形作為一個整體任務(wù),將其分解為多個子任務(wù);子任務(wù)仍然可以繼續(xù)分解為多個更加具體的子任務(wù),因此將未完成分解且處于正在分解的煤礦圖形稱為任務(wù)原模型,并進(jìn)行保存;其中,煤礦圖形是預(yù)先經(jīng)過調(diào)研得到的地理分布模擬信息;本實施例中,可以將整個任務(wù)分為傳感器分層、煤礦采掘區(qū)等抽象的子任務(wù);其中,煤礦圖形的UI是由任務(wù)T的集合{T}組成,其中T= (D,F(xiàn),G),為一個三元組,表示用戶對數(shù)據(jù)對象集合D執(zhí)行功能操作F完成某個目標(biāo)G的執(zhí)行序列;由于整體任務(wù)與子任務(wù)、子任務(wù)與子任務(wù)之間存在任務(wù)的層次性,本實施例中,使用CTT(C0UCUr Task Tree)作為任務(wù)模型規(guī)約的符號,該符號可以給出不同任務(wù)表示和關(guān)系的描述,是UI開發(fā)社區(qū)廣為使用的描述任務(wù)符號。步驟103,將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;具體的,任務(wù)模型的真正完成是在顯示模型建模模塊中進(jìn)行的,將任務(wù)原模型作為顯示模型建模模塊的輸入,顯示模型建模模塊對任務(wù)原模型進(jìn)行解析,即使得輸入到顯示模型建模模塊的任務(wù)原模型的體現(xiàn)形態(tài)是任務(wù)樹;該任務(wù)樹并未完成,在任務(wù)樹中并沒有可具體執(zhí)行的任務(wù),即不存在葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)即為傳感器實例;如圖3所示,在任務(wù)原模型輸入到顯示模型建模模塊后,點(diǎn)擊任務(wù)樹中的任務(wù)節(jié)點(diǎn),彈出一個畫圖界面,通過拖拽的方式將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面中,根據(jù)預(yù)先保存的傳感器圖元,可以在畫圖界面中自動生成對應(yīng)的傳感器圖元,這個過程是在給任務(wù)樹添加葉子節(jié)點(diǎn)(即傳感器實例),將添加完葉子節(jié)點(diǎn)后的任務(wù)樹以XML的格式保存為任務(wù)模型;通過將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面中,可以修改傳感器的大小和位置等布局信息,也是在創(chuàng)建布局模型,確定布局信息。步驟104,根據(jù)任務(wù)模型和布局信息,得到顯示模型;具體的,如圖3所示,顯示模型是在任務(wù)模型的基礎(chǔ)上結(jié)合布局信息完成的,將任務(wù)模型按照一定的轉(zhuǎn)換規(guī)則轉(zhuǎn)換為顯示模型,所述一定的轉(zhuǎn)換規(guī)則具體為在任務(wù)模型中, 為具有子任務(wù)的任務(wù)節(jié)點(diǎn)創(chuàng)建一個容器,并為每個葉子節(jié)點(diǎn)創(chuàng)建一個圖元,針對每個圖元的類型并根據(jù)域模型庫中保存的傳感器圖元,為每個圖元的類型創(chuàng)建具體圖元;解析系統(tǒng)對得到的顯示模型進(jìn)行解析,使顯示模型能夠以XML格式保存在數(shù)據(jù)庫中。步驟105,根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI與SCA的服務(wù)組件綁定;具體的,如圖4和圖5所示,將得到的顯示模型作為UI生成執(zhí)行環(huán)境模塊的輸入,UI生成執(zhí)行環(huán)境模塊調(diào)用SCA的服務(wù)組件中的創(chuàng)建UI元素的組件對顯示模型中的UI元素進(jìn)行解析,并結(jié)合域模型庫中的傳感器圖元的屬性生成UI,并將該UI與域模型庫中的SCA 的服務(wù)組件綁定,這樣當(dāng)有服務(wù)請求時,可以調(diào)用相應(yīng)的服務(wù)。實施例一圖6是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例一的流程示意圖,是步驟101的一種具體實現(xiàn)方式,本實施例中,將甲烷作為傳感器,甲烷圖元由圓形和三角形組成,如圖6所示,該方法包括以下步驟步驟601,域模型建模模塊分析甲烷的業(yè)務(wù)領(lǐng)域概念,確定甲烷的屬性、方法、綁定服務(wù)。步驟602,域模型建模模塊創(chuàng)建甲烷圖元(圓形和三角形的組合)。步驟603,打開SCA的服務(wù)組件庫(已經(jīng)預(yù)先將各種服務(wù)封裝)。步驟604,選擇甲烷需要綁定的服務(wù)組件,這里服務(wù)組件可以是一個或多個。步驟605,對由甲烷圖元和綁定的服務(wù)組件構(gòu)成的域模型進(jìn)行解析,即對甲烷圖元的屬性(如組合的基本圖形的大小、位置等)、綁定服務(wù)進(jìn)行解析,并以XML的格式進(jìn)行保存。步驟606、將甲烷的域模型保存在域模型庫中,方便實際運(yùn)行時由數(shù)據(jù)對象解析提取各傳感器的屬性數(shù)據(jù),并結(jié)合任務(wù)節(jié)點(diǎn)的屬性綁定抽象交互對象。實施例二圖7是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例二的流程示意圖,是步驟102的一種具體實現(xiàn)方式,該方法包括以下步驟步驟701,任務(wù)模型建模模塊分析煤礦圖形,確定其任務(wù)的組成。步驟702,任務(wù)模型建模模塊對煤礦圖形進(jìn)行任務(wù)分解,將其分為采空區(qū)、上山區(qū)兩個子任務(wù),本實施例中只有這兩個子任務(wù)。如果采空區(qū)和上山區(qū)還能再分解為子任務(wù),則重復(fù)步驟201,直到任務(wù)不能細(xì)分為止。步驟703,對同一級的任務(wù)節(jié)點(diǎn)通過任務(wù)操作關(guān)系連接起來。步驟704,雙擊任務(wù)樹上的每個節(jié)點(diǎn),修改其屬性,該屬性包括表示符、描述、頻率、 輸入、輸出等。步驟705,將任務(wù)模型保存為XML文件,該任務(wù)模型是一個不包含實際任務(wù)(傳感器實例)的任務(wù)模型,稱之為任務(wù)原模型。圖8是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例三的流程示意圖,是步驟103的一種具體實現(xiàn)方式,如圖8所示,該方法包括以下步驟步驟801,將任務(wù)原模型的XML描述文件導(dǎo)入到顯示模型建模模塊中,任務(wù)原模型以任務(wù)樹的形式存在。步驟802,點(diǎn)擊任務(wù)樹的采空區(qū)節(jié)點(diǎn),彈出一個畫圖界面。步驟803,打開域模型庫中的傳感器圖元列表,將列表中屬于采空區(qū)的傳感器拖拽到畫圖界面中,畫圖界面中自動生成具有代表性的圖元。步驟804,調(diào)整傳感器圖元的大小、位置等,確定布局信息。然后點(diǎn)擊任務(wù)樹的其他節(jié)點(diǎn),添加傳感器實例,重復(fù)操作即可。
9
步驟805,添加完傳感器實例的任務(wù)原模型為任務(wù)模型,解析并將任務(wù)模型以XML 格式進(jìn)行保存。圖9是本發(fā)明實現(xiàn)UI服務(wù)組合方法的實施例四的流程示意圖,是步驟104和步驟 105的一種具體實現(xiàn)方式,如圖9所示,該方法包括以下步驟步驟901,將圖形組態(tài)軟件封裝為粒度較小的服務(wù)組件,并部署到SCA容器中。步驟902,將數(shù)據(jù)庫封裝為SCA的服務(wù)組件,并部署到SCA容器中。步驟903,將電子地圖封裝為SCA的服務(wù)組件,并部署到SCA容器中。步驟904,將顯示模型的XML描述文件導(dǎo)入到UI生成執(zhí)行環(huán)境模塊。步驟905,UI生成執(zhí)行環(huán)境模塊結(jié)合域模型庫,將輸入的顯示模型中的UI元素表現(xiàn)出來,并與SCA的服務(wù)組件進(jìn)行綁定。步驟906,UI生成執(zhí)行環(huán)境模塊生成UI。步驟907,UI顯示實時數(shù)據(jù),并對出現(xiàn)故障的傳感器進(jìn)行不同級別的顯示報警。步驟908,點(diǎn)擊傳感器,向SCA發(fā)出服務(wù)請求,該服務(wù)請求包括變色、移動、封鎖等操作。步驟909,SCA對應(yīng)的服務(wù)組件響應(yīng)收到的服務(wù)請求。為實現(xiàn)上述方法,本發(fā)明還提供一種UI服務(wù)組合系統(tǒng),圖10是本發(fā)明實現(xiàn)UI服務(wù)組合系統(tǒng)的結(jié)構(gòu)示意圖,如圖10所示,該系統(tǒng)包括域模型建模模塊101、任務(wù)模型建模模塊102、顯示模型建模模塊103、UI生成執(zhí)行環(huán)境模塊104 ;其中,域模型建模模塊101,用于生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;任務(wù)模型建模模塊102,用于對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù), 并將正在分解的煤礦圖形保存為任務(wù)原模型;顯示模型建模模塊103,用于將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;UI生成執(zhí)行環(huán)境模塊104,用于根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI與SCA的服務(wù)組件綁定。所述生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定為利用基本圖形并通過“搭積木”的方式生成傳感器圖元,將所述傳感器圖元以可擴(kuò)展標(biāo)記語言(XML)的格式保存在域模型庫中;在以XML的格式保存在域模型庫的過程中,將所述傳感器圖元與SCA的服務(wù)組件綁定。所述對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型為在任務(wù)模型的建模初期,對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,將作為整體任務(wù)的煤礦圖形分解為多個子任務(wù);將未完成分解且處于正在分解的煤礦圖形稱為任務(wù)原模型,并進(jìn)行保存。所述將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息為將任務(wù)原模型進(jìn)行解析為任務(wù)樹,點(diǎn)擊任務(wù)樹中的任務(wù)節(jié)點(diǎn),彈出畫圖界面, 通過拖拽的方式將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面中,根據(jù)預(yù)先保存的傳感器圖元,在畫圖界面中自動生成對應(yīng)的傳感器圖元,將添加完傳感器實例后的任務(wù)樹以XML的格式保存為任務(wù)模型;在將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面的過程中,確定傳感器的布局信息。
所述根據(jù)任務(wù)模型和布局信息,得到顯示模型為結(jié)合布局信息,將任務(wù)模型按照一定的轉(zhuǎn)換規(guī)則轉(zhuǎn)換為顯示模型,將得到的顯示模型以XML格式保存在數(shù)據(jù)庫中;所述一定的轉(zhuǎn)換規(guī)則為在任務(wù)模型中,為具有子任務(wù)的任務(wù)節(jié)點(diǎn)創(chuàng)建一個容器, 并為每個葉子節(jié)點(diǎn)創(chuàng)建一個圖元,針對每個圖元的類型并根據(jù)域模型庫中保存的傳感器圖元,為每個圖元的類型創(chuàng)建具體圖元。所述根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI與SCA的服務(wù)組件綁定為調(diào)用SCA服務(wù)組件中的創(chuàng)建UI元素的組件對顯示模型中的UI元素進(jìn)行解析,并結(jié)合域模型庫中的傳感器圖元的屬性生成UI,將該UI與SCA服務(wù)組件綁定。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種用戶界面服務(wù)組合方法,其特征在于,該方法包括生成傳感器圖元,將傳感器圖元與服務(wù)組件架構(gòu)(SCA)的服務(wù)組件綁定; 對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;根據(jù)顯示模型和傳感器圖元的屬性生成用戶界面(UI),并將該UI與SCA的服務(wù)組件綁定。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成傳感器圖元,將傳感器圖元與 SCA的服務(wù)組件綁定為利用基本圖形并通過“搭積木”的方式生成傳感器圖元,將所述傳感器圖元以可擴(kuò)展標(biāo)記語言(XML)的格式保存在域模型庫中;在以XML的格式保存在域模型庫的過程中,將所述傳感器圖元與SCA的服務(wù)組件綁定。
3.根據(jù)權(quán)利要求2述的方法,其特征在于,所述傳感器包括甲烷、一氧化碳、二氧化碳、 瓦斯和風(fēng)速;所述圖形包括矩形、圓形、線性和三角形;所述SCA的服務(wù)組件提供的服務(wù)包括移動、變色、操作控制和封鎖。
4.根據(jù)權(quán)利要求2述的方法,其特征在于,所述將所述傳感器圖元以可擴(kuò)展標(biāo)記語言 (XML)的格式保存在域模型庫中之后,該方法還包括域模型庫中保存?zhèn)鞲衅鞯挠蚰P兔枋鑫募?,域模型描述文件的?nèi)容是傳感器圖元的屬性,包括組成傳感器圖元的基本圖形、基本圖形的位置、層次和顏色、以及與傳感器圖元綁定的SCA的服務(wù)組件。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型為在任務(wù)模型的建模初期,對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,將作為整體任務(wù)的煤礦圖形分解為多個子任務(wù);將未完成分解且處于正在分解的煤礦圖形稱為任務(wù)原模型,并進(jìn)行保存。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息為將任務(wù)原模型進(jìn)行解析為任務(wù)樹,點(diǎn)擊任務(wù)樹中的任務(wù)節(jié)點(diǎn),彈出畫圖界面,通過拖拽的方式將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面中,根據(jù)預(yù)先保存的傳感器圖元,在畫圖界面中自動生成對應(yīng)的傳感器圖元,將添加完傳感器實例后的任務(wù)樹以XML的格式保存為任務(wù)模型;在將數(shù)據(jù)庫中的傳感器拖拽到畫圖界面的過程中,確定傳感器的布局信息。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)任務(wù)模型和布局信息,得到顯示模型為結(jié)合布局信息,將任務(wù)模型按照一定的轉(zhuǎn)換規(guī)則轉(zhuǎn)換為顯示模型,將得到的顯示模型以XML格式保存在數(shù)據(jù)庫中;所述一定的轉(zhuǎn)換規(guī)則為在任務(wù)模型中,為具有子任務(wù)的任務(wù)節(jié)點(diǎn)創(chuàng)建一個容器,并為每個葉子節(jié)點(diǎn)創(chuàng)建一個圖元,針對每個圖元的類型并根據(jù)域模型庫中保存的傳感器圖元,為每個圖元的類型創(chuàng)建具體圖元。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI與SCA的服務(wù)組件綁定為調(diào)用SCA的服務(wù)組件中的創(chuàng)建UI元素的組件對顯示模型中的UI元素進(jìn)行解析,并結(jié)合域模型庫中的傳感器圖元的屬性生成UI,將該UI與SCA的服務(wù)組件綁定。
9.一種用戶界面服務(wù)組合系統(tǒng),其特征在于,該系統(tǒng)包括域模型建模模塊、任務(wù)模型建模模塊、顯示模型建模模塊、UI生成執(zhí)行環(huán)境模塊;其中,域模型建模模塊,用于生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;任務(wù)模型建模模塊,用于對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;顯示模型建模模塊,用于將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;UI生成執(zhí)行環(huán)境模塊,用于根據(jù)顯示模型和傳感器圖元的屬性生成UI,并將該UI與 SCA的服務(wù)組件綁定。
全文摘要
本發(fā)明公開一種用戶界面服務(wù)組合方法,包括生成傳感器圖元,將傳感器圖元與SCA的服務(wù)組件綁定;對預(yù)先獲得的煤礦圖形進(jìn)行任務(wù)分解,得到子任務(wù),并將正在分解的煤礦圖形保存為任務(wù)原模型;將任務(wù)原模型解析為任務(wù)樹,為該任務(wù)樹添加傳感器實例,得到任務(wù)模型和布局信息;根據(jù)任務(wù)模型和布局信息,得到顯示模型;根據(jù)顯示模型和傳感器圖元的屬性生成用戶界面(UI),并將該UI與SCA的服務(wù)組件綁定;本發(fā)明還提供一種用戶界面服務(wù)組合系統(tǒng)。根據(jù)本發(fā)明的技術(shù)方案,降低UI的開發(fā)和維護(hù)成本。
文檔編號G06F9/44GK102184107SQ201110131710
公開日2011年9月14日 申請日期2011年5月19日 優(yōu)先權(quán)日2011年5月19日
發(fā)明者吳步丹, 程渤, 章洋, 陳俊亮, 陳宥余 申請人:北京郵電大學(xué)