摘 要: 針對“西門子杯全國大學生控制仿真挑戰賽”的發展狀況和需求分析,總結出競賽網站的通用特性和特定的用戶需求,設計出競賽通用的組態軟件平臺。該平臺實現賽區組態和賽區內部流程組態,管理員可根據競賽具體需求實現動態組態生成大賽網站。利用.NET開發環境以及B/S體系結構實現該平臺,并將其首先應用于該大賽的網絡實現,進而應用于其他類型的大賽網站。
關鍵詞: .NET;組態;B/S體系結構;通用競賽平臺
“西門子杯全國大學生控制仿真挑戰賽”是由教育部高等學校自動化專業教學指導分委員會、中國系統仿真學會、西門子(中國)有限公司工業領域工業自動化與驅動技術集團主辦的已被教育部認可的官方賽事,已經成功舉辦多屆。該大賽的發展規模逐步擴大,可變性因素增多,建立一套適合該大賽未來發展的網絡化信息管理系統,基于網絡實現大賽的開展和大賽過程的管理,不僅為大賽的參與者帶來更大便利,并且為大賽的有效快速進行提供重要保障。傳統的管理信息系統存在開發周期長、系統專用性強,而通用性、可維護性、可擴展性、可重構性差等缺點[1]。針對這些缺點和不足,受組態軟件在工業控制自動化領域已經得到的很好應用所啟發,總結出競賽網站的通用特性和特定的用戶需求[2]。本文提出構建一個通用競賽組態平臺,根據實際需要組態生成一個具有針對性的信息管理系統的組態開發模式。
1 組態平臺設計與實現
1.1 功能需求
大賽平臺的功能性需求包括實現在線參賽報名、提交參賽作品、專家在線評審、預約設備練習、競賽管理、參賽管理、新聞發布等功能。功能模塊如圖1所示。
為適應大賽發展需求,并考慮大賽的可變因素,將大賽平臺的功能模塊抽象提取,構建為可定制賽區和內部流程的組態化管理平臺。
該大賽組態化管理有兩點要求:(1)賽區需要組態化配置:管理員首次使用該平臺時,根據分賽區機制動態定制賽區結構,定義總決賽區和各個級別分賽區,以及各分賽區之間的父子(晉級)關系;(2)各個賽區的內部流程需要組態化配置:管理員建立一個賽區后,需要填充該賽區內部流程以及流程之間的順序和信息流關系。該平臺組態化定制賽區和流程需要考慮兩個關鍵點:一是賽區和流程所需的實體因素,如:資源、人、設備、場地、處理者、開始截止時間等;二是賽區和流程之間的信息流的輸入輸出關系。有些流程的輸入輸出需要傳遞給其他流程或者從其他流程的輸出獲得,有些流程則不需要信息流輸入或輸出,功能由模塊自身內部處理實現。這樣可定制組態實現網站需求,充分體現了該平臺的靈活性和復用性。系統組態生成的示例圖如圖2所示。
1.2 平臺建模與實現
賽區的基本屬性有賽區ID、賽區名稱、舉辦地、起始時間、結束時間、主辦方、承辦方、流程序列等。組委會管理員組態創建賽區,需要定義賽區的基本屬性以及賽區之間的晉級關系,即定義決賽區和分賽區之間的關系。建立賽區過程如圖3所示。
流程組態是本系統的難點。不同的流程所需要的信息及內部操作不同,流程作為競賽的環節又具有共同特性,這里設計一個流程抽象類CProcess作為所有流程的基類。這個抽象類定義所有流程的共有屬性和操作,包括流程名稱、處理者、起始時間、結束時間、激活狀態、輸入、輸出等屬性以及創建流程、加載流程等功能操作函數。該平臺的所有實體流程類都繼承CProcess,實現基類操作函數和自身所需的操作。流程類關系如圖4所示。
管理員添加賽區流程時,在系統的流程模板中選擇所需流程,定義流程的基本屬性,系統根據所選的具體流程實例化該流程,并跳轉到該流程的詳細信息頁面,管理員定義該流程的詳細信息以及該流程的輸入、輸出、前序流程、后續流程等屬性。創建流程的序列圖如圖5所示。
2 數據庫設計
數據庫設計時應充分考慮系統的擴展性和靈活性,數據元素程度應盡量細化,以滿足各種數據項組合結構。根據需求分析及考慮到需求的進一步發展變化,數據庫建立思想如下:
(1)建立流程模塊表tblModule,字段moduleId為主鍵,字段moduleMark用來區分標志不同流程模塊。該數據表存儲系統當前已有的流程模塊。管理員組合賽區內部流程時,實際是在該表中選擇所需要的流程模塊。目前該系統可定制的流程模塊數據如圖6所示。
(2)數據庫中用來存儲各個賽區定制流程的數據表為賽區流程表tblDivisionToProcess。該表僅存放流程的基本信息(如流程ID、模塊ID、賽區ID、起始結束時間、激活狀態等)。針對不同的流程,根據該流程的模塊ID,分別將詳細信息存入到各個模塊的對應表中。該表的moduleId字段與流程模塊表tblModule的主鍵moduleId字段是多對一的關系。賽區流程表定義如表1所示。
(3)不同流程模塊的性質不同,針對系統的各個流程模塊建立了對應的詳細信息表。例如報名流程模塊的對應數據表是tblRegistProcess,該表用來存儲各個賽區的報名流程的網申、審核、發布等階段的詳細信息。再例如上傳文件流程模塊的對應表是上傳文件流程詳細信息表tblUploadDocumentProcess和上傳文件格式表tblUploadDocumentProcessFormat,分別用來定義上傳的文件流程的上傳、審核階段的起始結束時間、存儲表名稱、激活標志等信息和上傳文件的可選文件格式信息,上傳文件的文件存儲表則根據流程ID自動生成。專家評審流程模塊、新聞發布流程模塊等系統的其他流程模塊都設計了各自對應的一個或多個流程模塊相關數據表,這里不再詳細說明。
(4)數據庫中建立了流程順序表tblProcessSequence,用來存儲各個流程之間的先后順序以及需要傳遞的信息流信息,表中設有backProcessId和nextProcessId字段,分別存儲有先后順序關系的流程ID。并且這兩個字段都是賽區流程表tblDivisionToProcess的主鍵processId的外鍵。與字段processId的關系是一對多的關系。有些流程之間需要信息流的傳遞,即上一個流程的輸出傳遞給下一個流程作為輸入。有些流程之間只有先后順序,不需要信息流傳遞,因此,此表中設置了outToInputTable字段,用來存儲流程之間存儲信息流的表名稱。當兩個流程僅有先后順序而不需要信息流傳遞時,此字段數據可為空。系統流程順序表如表2所示。
(5)系統添加流程時涉及到的數據表有一部分是綜合流程標志和賽區標志自動建立,另一部分是系統已有數據表。大賽包括一部分數據共享資源,如教師、學生、參賽隊、專家、設備、場地等,針對這些共享資源分別建立數據表作為數據庫固有表。
以上數據表的建立思想把數據元素細化,保證了流程組態的靈活性和擴展性。
隨著組態化工控軟件的大量應用以及顯著的優勢,基于Web網絡的其他商用型組態平臺也將成為一種趨勢。本文以競賽網站為出發點,初步建立了能夠滿足大賽需求的組態平臺。該平臺還可繼續擴展其他流程模塊,并將在應用中逐步完善,力求建成一套完善的通用性競賽組態平臺。
參考文獻
[1] 李朝輝,鄧貴仕,馮強,等.信息管理組態平臺的設計與實現[J].計算機工程與應用,2002,38(22):9-11,37.
[2] 任昌榮,孫常宏,尹斌.一種小型組態軟件平臺的開發與應用[J].計算機時代,2005(8):29-31.
[3] 馬國華.監控組態軟件及其應用[M].北京:清華大學出版社,2001.