趙秋錦,許武軍,黃棟梁,楊志勇
(1.東華大學 信息科學與技術(shù)學院,上海 201620; 2.上海微電子裝備有限公司 上海 201203)
隨著科學技術(shù)的不斷發(fā)展,光刻機技術(shù)也在逐步提高,對光刻機人機交互界面的要求也逐步提高,如何設(shè)計出操作快捷、響應事實、運行穩(wěn)定的人機交互界面是光刻機人機工程應用研究的重點和難點。不同于其他商業(yè)軟件或個人計算機上普遍使用的GUI應用程序,光刻機軟件系統(tǒng)是一個分布式的設(shè)備軟件控制系統(tǒng),分布在多個硬件平臺上,并且采用了分層控制的形式。
本文介紹了MVC技術(shù)和Observer、Command兩種設(shè)計模式的基礎(chǔ)理論,提出了一種基于這兩種設(shè)計模式構(gòu)建的MVC框架方法,并詳細敘述了它結(jié)合ADAE平臺和光刻機系統(tǒng)狀態(tài)管理模型實現(xiàn)的人機交互界面的框架設(shè)計方案。
光刻機圖形化界面是光刻機軟件系統(tǒng)應用的操作入口。作為光刻機設(shè)備與終端用戶(End-user)最主要的人機接口,光刻機圖形化界面能夠接受用戶輸入的參數(shù)、指令,并將其分發(fā)給軟件系統(tǒng)應用模塊,從而執(zhí)行設(shè)備各類應用功能。
光刻機設(shè)備本身體系復雜,應用功能又種類繁多,圖形化界面必須精心設(shè)計,做到將應用功能分門別類以供選擇,對每一個應用功能,用戶能快速、準確輸入?yún)?shù),并提供一套一致的操作模式,有效確保終端用戶能順利使用設(shè)備。
光刻機圖形化界面作為軟件系統(tǒng)的最頂層,通過逐層調(diào)用系統(tǒng)軟件模塊,完成用戶期望的應用功能。那些需要使用設(shè)備硬件的應用功能,如物料操作、生產(chǎn)批處理等,在應用功能執(zhí)行過程中,由于設(shè)備硬件本身執(zhí)行動作需要時間消耗,因而從應用功能發(fā)起執(zhí)行到執(zhí)行完成返回結(jié)果,具有較大的延時(相對軟件執(zhí)行速度而言)。此外,在應用功能執(zhí)行過程中,由于硬件設(shè)備本身的可靠性有一定限度,因而可能出現(xiàn)設(shè)備局部發(fā)生故障而導致軟件無法響應的情況。
因此,光刻機圖形化界面的另一個重要特征就是,操作常常涉及大延時的底層調(diào)用,甚至由于底層硬件故障而導致底層軟件無法響應。圖形化界面設(shè)計時必須予以關(guān)注,避免出現(xiàn)界面凍結(jié)甚至崩潰,而需為用戶提供友善的提示,同時提高健壯性。
MVC設(shè)計模式是典型的基于Agent的用戶界面模型 ,其主要優(yōu)點是分離了界面顯示和事件處理,可以提高界面顯示與事件處理之間接插靈活性,以及界面的可移植性和可復用性。對于界面設(shè)計可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器3種部件 。
模型、視圖與控制器的分離,使得一個模型可以具有多個顯示視圖。如果用戶通過某個視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應反映到這些變化。因此,無論何時發(fā)生了何種數(shù)據(jù)變化,控制器都會將變化通知所有的視圖,導致顯示的更新[1]。這實際上是一種模型的變化-傳播機制。這種變化-傳播機制體現(xiàn)在各個相互依賴部件之間的注冊關(guān)系上。模型數(shù)據(jù)和狀態(tài)的變化會激發(fā)這種變化-傳播機制,它是模型、視圖和控制器之間聯(lián)系的紐帶[2]。在初始化時,通過與變化-傳播機制的注冊關(guān)系建立起所有視圖與模型間的關(guān)聯(lián)。視圖與控制器之間保持著一對一的關(guān)系,每個視圖創(chuàng)建一個相應的控制器,視圖提供給控制器處理顯示的操作。
模型在邏輯結(jié)構(gòu)上可以劃分為兩個任務進程:數(shù)據(jù)顯示進程和邏輯處理進程。數(shù)據(jù)顯示進程包含模型的視圖和邏輯控制器部分,邏輯處理進程包含模型的數(shù)據(jù)模型部分?;趦蓚€任務進程的劃分主要考慮以下因素:首先,模型邏輯和功能的計算需要耗費大量時間,這個過程可能會導致視圖無法及時響應,且異常情況下無法實現(xiàn)取消以及恢復功能;其次,界面功能比較復雜,需要劃分成多個子模型,存在多個視圖或控制器需要和同一個數(shù)據(jù)模型交互。如果在同一進程內(nèi)部,較難實現(xiàn)管理(如:數(shù)據(jù)同步等)。
界面進程間通訊包括界面進程與各功能模型進程之間,以及功能模型進程之間的通訊方式。界面進程之間通訊使用ADAE平臺提供的CN通訊方式和GF共享內(nèi)存通訊方式。如界面初始化時訂閱處理模型狀態(tài)或者信息事件,一旦處理模型變化則主動通知界面,然后界面根據(jù)需要向處理模型獲取狀態(tài)或數(shù)據(jù)信息。而事件請求接口則一般由用戶通過界面發(fā)起,由處理模型分類處理,模型結(jié)合ADAE平臺機制完全實現(xiàn)了變化-傳播機制。
MVC模型中控制器是視圖和模型之間交互的關(guān)鍵,因此必須協(xié)調(diào)好各類事件,保證事件能夠及時準確的傳送。一旦事件通道出現(xiàn)異??赡軐е陆缑鏌o法響應,或者底層模型執(zhí)行錯誤的指令[3]??刂破魇录芾硇枰?部分協(xié)調(diào)完成:
1)Command:視圖和模型事件封裝為命令,事件觸發(fā)就是一個命令發(fā)起,命令分3種:訂閱事件命令(Subscribe Command)、異步事件命令(Asynchronous Command)以及同步事件命令(Synchron-ous Command);
2)Controller:管理視圖發(fā)起的Command,并控制拋出給Observer;
3)Observer:執(zhí)行視圖發(fā)起的命令,監(jiān)聽命令執(zhí)行變化(數(shù)據(jù)和狀態(tài))并通知視圖。
控制器事件管理模型中 所有命令(繼承于Abstract Command)由視圖創(chuàng)建和發(fā)起,并提交給Controller管理。而Observer只負責監(jiān)聽Command執(zhí)行變化并通知視圖。命令通常封裝了模型接口,命令變化都通過CN通訊返回。 因此Observer需要使用ADAE平臺的CN事件循環(huán)機制來監(jiān)聽所有命令執(zhí)行變化。
光刻機界面應用功能繁多,界面框架由多個功能模塊組合而成,每個功能模塊都是一個或多個獨立的MVC模型,模型之間可以嵌套組合。而系統(tǒng)狀態(tài)管理機制負責實現(xiàn)各模型之間狀態(tài)同步和控制。狀態(tài)管理指界面根據(jù)當前登錄系統(tǒng)用戶操作權(quán)限以及光刻機系統(tǒng)業(yè)務流程關(guān)系,來管理各功能項的使能狀態(tài)。
狀態(tài)管理采用分層管理的模式,即一個總的狀態(tài)管理器和多個子狀態(tài)管理器。狀態(tài)管理器定制當前登錄用戶權(quán)限表,并通知各子狀態(tài)管理器權(quán)限表變更狀態(tài);同時定義各種狀態(tài)遷移事件,并維護狀態(tài)遷移事件對子狀態(tài)管理器的影響關(guān)系。子狀態(tài)管理器維護內(nèi)部功能項的狀態(tài),并觸發(fā)狀態(tài)遷移事件,通過狀態(tài)管理器通知相關(guān)聯(lián)的子狀態(tài)管理器[5]。一般每個功能模型都擁有子狀態(tài)管理器,管理本功能模型內(nèi)的受影響功能項。狀態(tài)管理模型是總的狀態(tài)管理器,維護用戶權(quán)限表、狀態(tài)遷移事件影響關(guān)系、以及記錄當前觸發(fā)的事件。
光刻機圖形化界面是光刻機應用程序與用戶之間的接口與橋梁,用戶從界面輸入?yún)?shù),選擇并發(fā)出指令,界面需要將用戶的請求傳遞給系統(tǒng)內(nèi)部應用層或其他層的處理進程,由這些處理進程來實際執(zhí)行用戶的請求,執(zhí)行完畢界面還需向用戶反饋處理結(jié)果。
界面模型使用的是UI設(shè)計中通用的MVC設(shè)計模式,基于以上3點關(guān)鍵技術(shù)的解決并借助與ADAE平臺基礎(chǔ),基本可以實現(xiàn)MVC界面框架。圖1是掃描光刻機整機軟件界面基于MVC界面架構(gòu)設(shè)計的模型方案。
圖1 掃描光刻機整機軟件界面Fig. 1 The machine interface of scanning lithography machine
模型中每個功能模塊是一個獨立的MVC模型,總的界面也是一個MVC模型,模型之間相互嵌套形成總的界面框架模型,各模塊之間相互獨立。界面模塊是指實現(xiàn)界面功能的基本單位,具有獨立完成業(yè)務功能的能力。實現(xiàn)的MVC架構(gòu)模型當前存在有以下兩方面的問題需要解決:如果視圖刷新數(shù)據(jù)量或頻率過大會存在效率問題,還有可能會導致界面短時間僵死;模型假設(shè)ADAE平臺可靠且穩(wěn)定的,如果出現(xiàn)訂閱失敗等問題時如何建立保護措施。
界面數(shù)據(jù)刷新如果數(shù)據(jù)量和頻率過大,可能導致界面出現(xiàn)阻塞狀況,因此在設(shè)計時應該合理劃分訂閱數(shù)據(jù)項,使刷新頻率高和刷新頻率低的數(shù)據(jù)項劃分開,避免沒有必要的刷新。如果被訂閱方任務進程未啟動時,會導致訂閱失敗。因此,在啟動任務進程時,應盡量考慮被訂閱方任務進程先啟動。如果訂閱失敗,應該設(shè)置默認保護,以免誤操作。
通過項目設(shè)計開發(fā)實踐已經(jīng)驗證了方案基本可行,基本可以滿足光刻機人機交互界面性能需求。為進一步降低界面開發(fā)和維護成本,提高界面模塊化提供的思路。模型在設(shè)計實現(xiàn)過程中還有部分問題沒有解決,還需要繼續(xù)健全模型。
[1]余志峰,丁鋒.信息系統(tǒng)人機界面設(shè)計的基本原則[J].網(wǎng)絡信息技術(shù), 2004(3) :44-45.
YU Zhi-feng,DING Feng. Information system the basic principles of human interface design[J]. Network Information Technology,2004(3):44-45.
[2]彭曉青.MVC模式的應用架構(gòu)系統(tǒng)的研究與實現(xiàn)[J].微計算機信息, 2002(8):74-75.
PENG Xiao-qing.MVC pattern application architecture system research and implementation[J].Microcomputer Information,2002(8):74-75.
[3]Scottw.AmbJer著.李皓陽,劉銳譯.面向?qū)ο筌浖_發(fā)教程[M].北京:機械工業(yè)出版社,2003.
[4]黃巖.用戶界面設(shè)計與制作[M].上海:上??萍冀逃霭嫔?2012.
[5]劉偉. 人機界面設(shè)計[M]. 北京:北京郵電大學出版社有限公司,2011.
[6]Jasmin Blanchette, Mark Summerfield. C++ GUI Programming withQT4[M]. London: Prentice Hall, 2008.