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