李 松
(江蘇自動化研究所,連云港222006)
人機界面是應(yīng)用系統(tǒng)的重要組成部分,界面的效果直接影響用戶對應(yīng)用系統(tǒng)的評價。傳統(tǒng)的界面開發(fā)方法存在一定的局限性,界面只實現(xiàn)了功能模塊所要求的表現(xiàn)方式及交互手段,在設(shè)計過程中沒有考慮到人的認知模型,忽略了界面設(shè)計的交互性。程序設(shè)計人員按照主觀喜好設(shè)計“心目中”的界面,對所有用戶展現(xiàn)的都是同一種形式,重用性差,不同用戶的不同需求導(dǎo)致重復(fù)繁瑣的界面修改,影響了開發(fā)效率。界面的主要存在方式仍然是固化在程序中以供調(diào)度運行,由于界面與應(yīng)用的緊密耦合,任何小改動都需重新編譯,界面的配置、部署、動態(tài)調(diào)度困難,界面管理沒有規(guī)范化的考慮。針對傳統(tǒng)界面設(shè)計的局限,基于構(gòu)件化思想提出了一種界面集成設(shè)計方法,實現(xiàn)界面與應(yīng)用的分離,支持應(yīng)用系統(tǒng)對界面的按需定制、靈活配置、動態(tài)調(diào)整。
基于CCM和XML技術(shù)提出了界面集成框架技術(shù),把界面集成設(shè)計分解為界面框架、功能界面設(shè)計,界面表述,界面定制部署,界面調(diào)度等部分?;舅悸肥峭ㄟ^分解應(yīng)用系統(tǒng)的界面需求,提取應(yīng)用界面的特性,通過XML進行描述,形成界面元素描述庫。同時通過CCM技術(shù)把界面模塊構(gòu)件化,根據(jù)應(yīng)用需求建立界面集成框架,統(tǒng)一調(diào)度管理應(yīng)用系統(tǒng)的各界面模塊,支持應(yīng)用系統(tǒng)根據(jù)集成規(guī)范通過界面集成框架部署、組裝滿足要求的應(yīng)用界面。主要目標是靜態(tài)界面動態(tài)加載、調(diào)度;按需定制界面并支持靈活配置、動態(tài)調(diào)度;支持應(yīng)用系統(tǒng)臺位間界面的動態(tài)配置、重組。
其主要原理如圖1所示。
根據(jù)應(yīng)用系統(tǒng)的顯示、人機交互及冗余備份需求,制定相應(yīng)的界面定制、調(diào)度規(guī)范,作為設(shè)計輸入,指導(dǎo)系統(tǒng)界面集成及操作使用。
提供多種界面框架風(fēng)格,如三區(qū)域(控制區(qū)、常顯區(qū)、主顯區(qū))、四區(qū)域風(fēng)格、圖形顯示風(fēng)格等供應(yīng)用系統(tǒng)選擇。
圖1 界面集成設(shè)計原理
提供統(tǒng)一的界面集成調(diào)度手段,供應(yīng)用系統(tǒng)按需集成。
提供XML文件解析功能,對界面描述信息進行分析,支持對界面的靈活配置、動態(tài)調(diào)度。
提供界面狀態(tài)監(jiān)控功能,統(tǒng)一調(diào)度應(yīng)用系統(tǒng)的界面(包括界面分布、互斥、同步、重組等)。
提供缺省的界面構(gòu)件事件處理,通過CCM機制實現(xiàn)對界面事件的閉環(huán)處理,各功能界面事件自己處理,框架事件由界面框架處理,通過消息機制通知處理模塊,實現(xiàn)界面與處理的分離,其他未處理事件統(tǒng)一由界面框架處理。
相比傳統(tǒng)的界面設(shè)計,此設(shè)計過程中的界面設(shè)計除完成自身的界面設(shè)計開發(fā)外,還增加了界面風(fēng)格及相關(guān)要素的屬性、事件等的描述信息統(tǒng)計,以統(tǒng)一生成界面要素描述信息,存入界面信息描述庫。
XML文檔的樹狀存儲結(jié)構(gòu)和良好的自描述性,非常適合描述界面元素及要素間的相互關(guān)系,通過XML文檔作為圖形界面的中間表示形式。用XML文檔保存圖形界面組件的屬性和描述信息,包括名稱、大小、位置、布局以及與之相對應(yīng)的事件監(jiān)聽類等。如按鈕的描述如下:
界面框架的風(fēng)格也通過XML語言描述確定,如三區(qū)域風(fēng)格的描述如下:
CCM(CORBA Component Model,CORBA 構(gòu)件模型)是一種用來構(gòu)建和部署CORBA應(yīng)用程序的構(gòu)件模型,支持開發(fā)者將來自不同廠商的復(fù)雜、異構(gòu)的應(yīng)用和服務(wù)集成起來,組成更大規(guī)模的構(gòu)件,適用于不同的需求。CCM擴展了傳統(tǒng)的CORBA對象模型,增加了抽象構(gòu)件模型,構(gòu)件實現(xiàn)框架(Component Implementation Frameword,CIF),構(gòu)件的包裝、組裝和部署,構(gòu)件容器框架,通過定義允許應(yīng)用開發(fā)者去應(yīng)用、管理、配置和展開,支持重用已有代碼,加快軟件開發(fā)的速度,提高軟件開發(fā)的質(zhì)量。CCM不僅提高了服務(wù)器軟件的重用性、可升級能力,也為動態(tài)的CORBA應(yīng)用配置提供了巨大的靈活性。其內(nèi)容覆蓋系統(tǒng)構(gòu)件的整個生命周期,包括軟構(gòu)件的模型、管理、規(guī)約語言、組裝、實現(xiàn)、質(zhì)量與測試、部署、運行監(jiān)控、演化升級等。
為實現(xiàn)應(yīng)用系統(tǒng)對界面的靈活配置、動態(tài)部署、重組等能力,要求合理劃分界面模塊粒度,提高界面封裝性,支持獨立調(diào)度、通過CCM機制實現(xiàn)界面組件的接口,包括加載、啟動、使能、刷新處理、事件回調(diào)等,可支持應(yīng)用系統(tǒng)對界面的動態(tài)部署、調(diào)度。
建立構(gòu)件存儲信息庫表,存儲界面構(gòu)件信息及構(gòu)件實體,維護界面構(gòu)件,支持對構(gòu)件的查詢、升級等。
提供界面資源的開發(fā)手段,作為界面構(gòu)件化的輸入。
界面設(shè)計包括兩部分內(nèi)容,分別是:界面框架設(shè)計和界面模塊設(shè)計。
設(shè)計流程設(shè)定CCM環(huán)境是ACE+TAO+CIAO,界面開發(fā)環(huán)境為Tilcon,操作系統(tǒng)環(huán)境為windows XP,界面框架設(shè)計開發(fā)流程如圖2所示,功能界面的開發(fā)流程如圖3所示。
圖2 界面框架設(shè)計開發(fā)流程圖
圖3 功能界面的開發(fā)流程圖
界面集成框架開發(fā)主要包括三部分內(nèi)容,一是框架界面自身的開發(fā),二是應(yīng)用界面綜合調(diào)度模塊的開發(fā);三是界面監(jiān)控、同步服務(wù)。具體描述如下:
界面構(gòu)件化開發(fā):根據(jù)應(yīng)用模塊顯示、交互需求,通過界面開發(fā)工具生成應(yīng)用界面,采用CCM機制實現(xiàn)界面的構(gòu)件化,具體過程有確定構(gòu)件接口,構(gòu)件定義,生成構(gòu)件框架、構(gòu)件功能實現(xiàn)等。
框架界面測試:通過界面測試工具,對界面顯示效果及交互要求進行功能測試,作為界面打包輸入。
框架界面打包:使用構(gòu)件打包工具,把構(gòu)件以及構(gòu)件描述器、屬性描述器等描述信息打包成為單個構(gòu)件軟件包。被打包的構(gòu)件實現(xiàn)和構(gòu)件描述等內(nèi)容將以構(gòu)件存檔文件的形式存儲在構(gòu)件庫中。
框架界面描述:提取框架界面特征信息,把界面元素、位置、大小等要素信息及風(fēng)格描述歸納統(tǒng)計,輸入界面描述庫。
界面定制:定制是指在系統(tǒng)運行前或過程中,系統(tǒng)可根據(jù)使用者權(quán)限及任務(wù)模式、使用習(xí)慣(通過用戶歷史使用界面元素的特征統(tǒng)計,智能感知用戶的使用習(xí)慣)等自動生成、調(diào)整界面環(huán)境,同時支持用戶可以根據(jù)使用要求,對界面元素的屬性進行修改,主要內(nèi)容包括菜單、工具欄、鍵盤方案、及界面風(fēng)格的定制、個性化設(shè)定等。支持通過界面定制構(gòu)件自動將這些定制信息存入XML文件或者界面描述庫中,并在系統(tǒng)運行結(jié)束后保存這些修改,達到持久存儲定制信息的目的。
界面調(diào)度控制,是指在功能執(zhí)行的過程中根據(jù)系統(tǒng)當(dāng)前狀態(tài)對界面元素進行適當(dāng)?shù)恼{(diào)整(例如增加、禁止某些控件),使界面布局更加合理,更適應(yīng)當(dāng)前的系統(tǒng)狀態(tài)。界面控制與界面配置和界面定制不同,是由開發(fā)人員根據(jù)系統(tǒng)狀態(tài)的需要編程實現(xiàn)的。這些控制規(guī)則可以在交互流程定義中實現(xiàn),在執(zhí)行過程中通過傳遞消息給界面調(diào)度控制構(gòu)件實現(xiàn)控制。
界面集成框架的監(jiān)控和同步服務(wù)主要是監(jiān)控界面的運行、調(diào)度情況,自動檢測界面異常,并通過集成規(guī)范中的界面重組策略把故障臺位的界面在備份臺位上重新啟動,完成界面重組,保證系統(tǒng)繼續(xù)工作。
功能界面開發(fā)主要包括以下幾部分內(nèi)容,
1)功能界面需求分析
對應(yīng)用背景進行深入的分析,確定界面元素及界面風(fēng)格,建立界面構(gòu)件的抽象模型,對需要開發(fā)的接口的各個部分(界面、屬性、事件源、事件槽等)進行分析,明確設(shè)計要求。
2)功能界面開發(fā)
通過界面設(shè)計、開發(fā)工具生成界面元素。
3)界面構(gòu)件接口實現(xiàn)
針對構(gòu)件功能、性能及其他約束需求,通過構(gòu)件設(shè)計工具對構(gòu)件進行定義,產(chǎn)生IDL3/CIDL文件。使用構(gòu)件框架生成工具,對構(gòu)件設(shè)計工具產(chǎn)生的IDL文件進行編譯,產(chǎn)生構(gòu)件代碼框架。并將實現(xiàn)業(yè)務(wù)邏輯功能的代碼加入構(gòu)件代碼實現(xiàn)部分中,完成構(gòu)件各功能接口。
4)界面描述
提取界面特征信息,把界面元素、位置、大小等要素信息及風(fēng)格描述歸納統(tǒng)計,輸入界面描述庫。
5)構(gòu)件測試
對界面構(gòu)件進行功能、性能測試,保證入庫構(gòu)件的狀態(tài)。
6)構(gòu)件打包
使用構(gòu)件打包工具,把構(gòu)件以及構(gòu)件描述器、屬性描述器等描述信息打包成為單個的構(gòu)件軟件包。被打包的構(gòu)件實現(xiàn)和構(gòu)件描述等內(nèi)容將以構(gòu)件存檔文件的形式存儲到構(gòu)件庫中。
7)構(gòu)件組裝
使用構(gòu)件組裝工具對多個構(gòu)件進行定制、連接(與其它構(gòu)件)和分割,并形成構(gòu)件組裝集存檔文件。構(gòu)件集中包含有多個可定制的構(gòu)件包以及該構(gòu)件集的XML描述器(包括構(gòu)件實例和它們的互連信息以及構(gòu)件集的邏輯組成)。
由于支持界面的靈活配置、動態(tài)調(diào)整,系統(tǒng)在運行時具備很大的定制能力和靈活度,可以針對不同的應(yīng)用模式及應(yīng)用者,提供最合適的界面顯示、操控效果,系統(tǒng)具體的運行模式如圖4所示。
圖4 系統(tǒng)運行模式圖
具體步驟描述如下:
1)根據(jù)任務(wù)要求及使用者權(quán)限確定系統(tǒng)運行模式;
2)根據(jù)系統(tǒng)臺位的功能配置,把任務(wù)分解到系統(tǒng)各臺位。
3)啟動功能處理模塊;
4)根據(jù)任務(wù)需求,從界面描述庫中提取界面集成框架XML描述信息(包括風(fēng)格、權(quán)限情況、布局等),解析XML文件,確定此次運行的模式、風(fēng)格、在構(gòu)件庫的位置等,并從界面構(gòu)件庫中啟動滿足要求的界面集成框架,初始化同步數(shù)據(jù)庫,監(jiān)控界面運行信息,保證各臺位界面的協(xié)調(diào)工作。
5)界面集成框架通過解析功能模塊對應(yīng)得界面描述XML文檔(描述界面上所有組件的風(fēng)格、大小、事件描述等屬性),調(diào)用界面構(gòu)件庫構(gòu)建功能界面,為界面構(gòu)件綁定相應(yīng)的事件處理模塊,完成應(yīng)用界面的定制,并加載運行。
6)界面重組,在應(yīng)用系統(tǒng)工作過程中,出現(xiàn)功能臺位故障,界面集成框架的監(jiān)控和同步服務(wù)會自動檢測到,并通過集成規(guī)范中的界面重組策略把故障臺位的界面在備份臺位上重新啟動,完成界面重組,保證系統(tǒng)繼續(xù)工作。
7)系統(tǒng)退出運行時,界面集成框架注銷界面構(gòu)件,回收界面資源,安全退出界面框架。
人機界面是應(yīng)用軟件開發(fā)的重要組成部分,界面的動態(tài)調(diào)度、按需定制對于面向不同角色不同任務(wù)的應(yīng)用系統(tǒng)來說尤其重要,是決定該應(yīng)用軟件是否成功的關(guān)鍵因素之一,通過介紹基于 CCM和XML技術(shù)的界面動態(tài)部署集成技術(shù),分析了它的工作原理和實現(xiàn)途徑,并給出設(shè)計開發(fā)流程,結(jié)合應(yīng)用實際對具體運行模式做了說明。該技術(shù)目前已應(yīng)用到具體的項目開發(fā)中,取得了良好的效果。
[1] 韓樂平,薛軍敖,孟洛明.OMG.CORBA系統(tǒng)結(jié)構(gòu)原理與規(guī)范[M].北京:電子工業(yè)出版社,2000.
[2] 潘愛民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,1999.
[3] 王云鵬.支持協(xié)同設(shè)計的CAD開發(fā)平臺[D].北京:北京航空航天大學(xué),2003.
[4] 朱軍,華慶一,郝克剛.一個基于CORBA的圖形用戶界面體系結(jié)構(gòu)及實例[J].計算機學(xué)報,1999,22(1):79-85.