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