王靈利,牟 艷,童 年,張雪云
(河海大學物聯(lián)網工程學院,常州213022)
基于三層架構的體育競賽信息發(fā)布系統(tǒng)設計?
王靈利,牟 艷,童 年,張雪云
(河海大學物聯(lián)網工程學院,常州213022)
隨著綜合性運動會辦賽水平的提高,對各單項競賽信息發(fā)布系統(tǒng)的設計要求也越來越高。針對各競賽項目在信息發(fā)布中存在的格式不統(tǒng)一、信息發(fā)布軟件不兼容、開發(fā)工作重復等問題,設計并開發(fā)了體育競賽信息通用發(fā)布系統(tǒng),通過簡單移植即可完成對各單項競賽信息發(fā)布系統(tǒng)的設計。系統(tǒng)基于三層架構、運用.net技術開發(fā),該系統(tǒng)保持之前的競賽單項信息發(fā)布系統(tǒng)的框架不變,只依據各個競賽項目信息發(fā)布特點,對信息發(fā)布系統(tǒng)需要變化的模塊做出相應的配置,即可實現不同競賽項目的信息統(tǒng)一發(fā)布需求。系統(tǒng)已成功運用于2015年第三屆全國智力運動會和第九屆全國殘疾人運動會的競賽信息發(fā)布,結果表明該系統(tǒng)完全能夠滿足綜合性運動會不同競賽項目信息統(tǒng)一發(fā)布的需要。
三層架構;體育競賽信息發(fā)布;通用性;可移植性;低耦合性;通信協(xié)議;競賽項目協(xié)議
隨著各種體育賽事的蓬勃發(fā)展,賽事信息發(fā)布在體育賽事中的作用日趨重要[1]。以往每屆運動會的單項比賽都需要開發(fā)自己獨立的單項信息發(fā)布子系統(tǒng)。目前國內的各個體育競賽項目由不同的信息技術團隊負責,每個技術團隊都獨立開發(fā)自己的單項信息處理系統(tǒng),不同的信息處理系統(tǒng)提供的競賽數據的格式以及提供途徑各不相同,但都需要為信息發(fā)布系統(tǒng)提供統(tǒng)一規(guī)范的數據和報表。面對這樣的情況找出一個針對解決所有競賽項目信息發(fā)布問題的通用發(fā)布系統(tǒng)成為必要。為此,設計開發(fā)了基于三層架構的體育競賽信息通用發(fā)布系統(tǒng),系統(tǒng)采用.Net技術開發(fā)。該通用發(fā)布系統(tǒng)能在不同的單項信息發(fā)布子系統(tǒng)間起到橋梁作用,實現各項目競賽信息的統(tǒng)一發(fā)布。該系統(tǒng)可以提高代碼的復用率,節(jié)省人力和開發(fā)時間,降低開發(fā)難度,開發(fā)者只需進行簡單的配置就可以實現各單項競賽信息發(fā)布子系統(tǒng)的開發(fā)。目前綜合型運動會各項目之間存在競賽信息及成績等數據格式不統(tǒng)一,開發(fā)方式不統(tǒng)一等問題,如何及時將格式各異的成績數據統(tǒng)一發(fā)布是競賽信息成績系統(tǒng)開發(fā)中的重點和難點。軟件設計中運用了三層架構,將設計層和應用層分離,提高了系統(tǒng)應用的通用性和靈活性,降低了耦合,實現了綜合型運動會競賽單項信息發(fā)布子系統(tǒng)的通用開發(fā),并在2015年第三屆全國智力運動會和第九屆全國殘疾人運動會成功應用。
2.1 系統(tǒng)功能
當今的綜合性運動會信息系統(tǒng)均采用通信協(xié)議和公共代碼作為系統(tǒng)的底層支撐,規(guī)范所有競賽項目的數據標準。在此基礎上,體育競賽信息通用發(fā)布系統(tǒng)為各單項信息發(fā)布系統(tǒng)提供一個開發(fā)框架,通過移植,可完成同一賽會不同單項的競賽信息發(fā)布系統(tǒng)開發(fā)。體育競賽成績通用發(fā)布系統(tǒng)具體需要實現的功能如下:
(1)底層數據定制:將公共代碼和通信協(xié)議在數據庫中存儲為通用發(fā)布系統(tǒng)設計做底層支撐;
(2)配置關聯(lián):配置通信協(xié)議和競賽項目的關聯(lián)以及通信協(xié)議和數據庫字段的關聯(lián);
(3)設計報表模板:設計賽會的通用報表模板;
(4)配置競賽項目和信息發(fā)布模板(報表模板、XML模板等)的關聯(lián);
(5)競賽成績錄入:手動錄入和批量導入;
(6)信息同步:比賽信息發(fā)生變化時從綜合系統(tǒng)(管理賽會所有競賽單項信息的系統(tǒng))同步比賽信息;
(7)文件導出:跟隨比賽進程,自動導出XML文件和報表文件,用于傳送比賽實時成績和階段成績。
(8)文件上傳:將報表和XML文件上傳到綜合成績發(fā)布系統(tǒng)。系統(tǒng)功能模塊如圖1所示。
圖1 體育競賽信息通用發(fā)布系統(tǒng)功能圖
2.2 工作流程
該通用發(fā)布系統(tǒng)可以分為兩個階段,賽前設計階段和比賽階段。
比賽前設計階段:針對競賽項目制定通信協(xié)議和公共代碼,規(guī)范競賽項目的所有數據。在賽時數據庫中設置存儲單元,然后配置通信協(xié)議和競賽項目的關聯(lián)、競賽協(xié)議和數據庫字段的關聯(lián)、競賽項目和模板(報表模板和XML模板)的關聯(lián)。然后進行報表模板的設計,并對報表模板和XML模板進行管理。
比賽階段:從綜合系統(tǒng)更新比賽信息(如表頭信息字段Game Info、Protacol Main和項目比賽階段秩序單、成績公告信息等)進行信息同步。當獲取單項成績數據后可以手動錄入或者批量導入單項成績數據。然后生成XML文件和報表文件并根據自動導出機制導出文件并上傳。
3.1 設計思想和設計目標
為滿足不同的單項信息發(fā)布系統(tǒng)統(tǒng)一發(fā)布競賽信息的需求,降低開發(fā)難度、節(jié)省開發(fā)時間、減少操作復雜度,該系統(tǒng)設計在結構上采用三層架構。針對所需實現的功能將系統(tǒng)分為底層、中間層、應用接口層。底層完成通信協(xié)議和公共代碼的定制,用于規(guī)范所有競賽項目的數據標準,在同一個賽會中通信協(xié)議和公共代碼是比較穩(wěn)定的,通常只需制定一次,各單項信息發(fā)布移植中不需做特別處理。中間層主要實現針對某一賽會的通用功能,如報表模板設計、配置關聯(lián)和數據同步等,各單項信息發(fā)布移植中只需根據項目情況做相應配置。應用接口層則實現競賽數據的輸入與文件的自動生成導出功能,這與不同單項的具體情況緊密相關,需要分別處理。三層結構將競賽信息發(fā)布中穩(wěn)定的、需配置和分別處理的功能分離,提高了系統(tǒng)的通用性、靈活性和可移植性,實現低耦合[2]。
該通用發(fā)布系統(tǒng)作為各個項目統(tǒng)一信息發(fā)布的樞紐,不僅要方便競賽單項研發(fā)人員二次開發(fā),還要方便競賽單項的現場工作人員完成單項信息處理系統(tǒng)與信息發(fā)布系統(tǒng)的實時對接。
3.2 整體結構設計
該通用發(fā)布系統(tǒng)設計分為三層結構,如圖2所示。其中公共代碼(各競賽項目的數據字典)和通信協(xié)議作為系統(tǒng)底層支撐,規(guī)范所有競賽項目的數據標準;中間層就是核心服務層,存儲賽時數據以及在比賽前通過配置機制[3]關聯(lián)實現系統(tǒng)各部分的耦合并進行XML模板和報表模板設計;最上層為應用接口軟件層,在體育比賽開始時與綜合系統(tǒng)同步比賽信息,快速獲得單項成績數據并自動提取報表模板和XML模板實現生成實例成績數據協(xié)議及報表,該層根據中間層的配置自動實現,當面對不同的競賽項目時該部分不需要修改。
圖2 體育競賽信息通用發(fā)布系統(tǒng)結構圖
該系統(tǒng)中,底層和中間層都是比賽開始前的準備階段,需要進行調整和配置,應用接口層在比賽階段直接使用即可。體育競賽信息通用發(fā)布系統(tǒng)流程如圖3示。
圖3 體育競賽信息通用發(fā)布系統(tǒng)流程圖
3.3 底層模塊設計
底層中公共代碼和通信協(xié)議是系統(tǒng)的基礎部分,為系統(tǒng)規(guī)范所有競賽項目。通信協(xié)議是雙方實體完成通信或服務所必須遵循的規(guī)則和約定。公共代碼和通信協(xié)議通過在數據庫中設置通信協(xié)議存儲單元實現與數據庫的匹配。通過配置方式將通信協(xié)議與競賽項目建立聯(lián)系,通信協(xié)議和數據庫字段也通過配置產生關聯(lián),這樣數據庫作為中間橋梁就將系統(tǒng)底層和中間層建立聯(lián)系,進而為比賽數據提供支撐。公共代碼即為競賽項目中各個競賽小項的code,也是為比賽數據提供支撐的,通過編碼實現與比賽信息的對應。例如圖5中象棋比賽中的青年男子個人項目的小項代碼即為CCM103,CC是象棋的大項代碼,M表示性別為男,1表示男子個人,03為編號。
3.4 中間層模塊設計
中間層要完成配置、數據同步和模板設計功能。該層對競賽信息發(fā)布系統(tǒng)的框架不變,只是相應的根據各單項信息特點針對公共代碼、通信協(xié)議、XML模板、報表模塊做出相應的修改即可實現軟件的通用。因此該通用發(fā)布系統(tǒng)的核心部分包括比賽前的配置模塊、報表設計同步模塊、報表生成、實時成績生成功能。
(1)數據定制
數據庫設置完成通信協(xié)議與數據庫中存儲單元的對應,以手動設置方式進行,數據庫中協(xié)議存儲單元可以靈活命名。二者是松散對應的關系(采用配置方式進行耦合),遵循“高內聚低耦合”的設計準則[4]。若通信協(xié)議與數據庫中協(xié)議存儲單元是嚴格意義的對應,則數據庫中一張表只能對應一個通信協(xié)議,這樣會產生兩點弊端。其一,當通信協(xié)議很多的時候就需要在數據庫中對應的建很多數量的表,這樣在比賽批量使用的時候會造成不便;其二,當通信協(xié)議發(fā)生變化的時候其在數據庫中對應的表都要做出改變,這樣開發(fā)工作不靈活、效率很低。如果當表建好后對數據庫表與通信協(xié)議做出松散匹配,即同一個表在不同的通信協(xié)議中可以表示多種不同的含義,數據庫中的表和通信協(xié)議采用配置方式來進行數據對應,這樣即可實現通用性。例如智運會比賽中的象棋和國際象棋在數據庫中的存儲單元就相近,都有競賽輪次、號碼、單位名稱、運動員姓名、成績等數據,但是國際象棋中有象棋中沒有的積分數據,因此兩個項目可以共用一個數據庫表,只是這個數據庫表要包含兩個項目的所有數據。
賽前準備階段還包括在應用接口軟件中的一些配置。在應用接口軟件中列出協(xié)議清單(維護內容)后設置競賽項目與其相關的通信協(xié)議,通過配置方式與數據庫產生聯(lián)系。競賽項目與通信協(xié)議、通信協(xié)議與數據庫字段、競賽項目和報表模板之間都是通過配置方式實現低耦合。
(2)配置關聯(lián)
該模塊包括競賽項目和通信協(xié)議的配置、通信協(xié)議和數據庫的配置、項目和報表模板的配置。配置過程中采用手動配置方式,實現系統(tǒng)的動態(tài)修改調整。當在數據庫中設置好通信協(xié)議表中的數據后,進行手動配置方式將通信協(xié)議數據和數據庫字段進行關聯(lián)。競賽項目和通信協(xié)議之間在應用接口軟件中進行配置,在賽事協(xié)議清單和設置項目協(xié)議中將競賽項目名稱和總協(xié)議、協(xié)議代碼與數據表之間設置關聯(lián)。在設置協(xié)議數據中設置競賽項目中需要顯示的通信協(xié)議數據及顯示名稱、顯示順序等信息。在數據庫中可建立通信協(xié)議與數據庫數據間之間的聯(lián)系。在報表管理中建立競賽項目和報表模板之間的關系。第三屆全國智力運動會象棋項目的項目協(xié)議配置圖如圖4所示。可在報表管理中設置報表編碼、報表名稱、存盤文件名、協(xié)議代碼信息。
圖4 第三屆全國智力運動會象棋項目的項目協(xié)議配置圖
(3)報表模板設計
中間層中設計的報表模板是賽會通用的,如各種類型的秩序單和成績公告等,通常設置報表結構、比賽logo、吉祥物圖片等信息,然后設置各個數據的屬性,方便在頁面中設計并修改模板。當更換競賽項目或者同一競賽項目信息發(fā)生變化時直接在報表模板中重新添加或者刪除相應信息即可。在具體應用中開發(fā)人員進入設計模板頁面,從數據庫中取出數據,如表頭信息數據、項目信息和項目的比賽階段秩序單、成績公告信息并為數據添加相應的屬性,操作簡單易行。
(4)信息同步
當綜合系統(tǒng)中的賽事信息發(fā)生變化時,系統(tǒng)通過配置參數Data Source(數據源)、Initial Catalog(數據源名稱)、User ID(用戶名)、Password(密碼)等信息與綜合系統(tǒng)進行實時對接同步更新。
3.5 應用接口層模塊設計
在該階段首先要與綜合系統(tǒng)同步比賽信息,賽事將成績數據批量導入或者手動錄入系統(tǒng),然后實現文件的自動導出功能。
(1)成績錄入模塊
手動錄入:從現場獲取的單項競賽數據可能是EXCEL格式或者是WORD格式也可以是XML格式的。當單項比賽節(jié)奏不是很快的時候可以采用手動錄入從競賽現場獲取的數據,應用接口軟件生成XML文件和報表文件并根據自動導出機制導出文件。
批量導入:當競賽單項比賽進程比較快時,可以使用從競賽現場獲取的XML格式的數據,賽時數據庫根據XML文件中的數據節(jié)點提取數據并保存,再自動生成不同格式的報表文件。
(2)自動導出模塊
自動導出文件有多種類型:XML實時成績文件、PDF和WORD報表文件等。以XML實時成績文件為例:當協(xié)議與比賽信息配置好,協(xié)議與對應數據也配置好后,根據協(xié)議對應的數據定義名稱,在配置表中取出配置協(xié)議數據列表(比如報表日期Message Date、時間Time、運動員姓名AthleteName_A、賽組Row Table、成績Score_A等信息),系統(tǒng)構造數據庫查詢語句并提取數據,最后實現文件的自動導出。
PDF和WORD報表文件自動生成:①根據配置表得到模板名稱;②從磁盤加載模板到報表生成器;③把競賽的實際成績數據注冊給生成器;④報表生成器編譯模板生成實例報表進行打印、預覽、導出;⑤使用自動導出機制根據類型導出PDF或者WORD文件和XML文件生成。
XML文件自動生成:①從配置表中取出協(xié)議的配置列;②構造并提取協(xié)議數據的查詢語句;③獲得協(xié)議數據;④自動生成XML文件。
當競賽項目需求發(fā)生變化時,只需改變需要變化的模塊即可,不會對系統(tǒng)結構產生大的影響。更換比賽項目時需要維護的部分就是通信協(xié)議和模板設計以及公共代碼部分,而程序模塊不需要改變,且需要變化的部分只需要通過配置方式建立起使用方式,從而實現信息發(fā)布系統(tǒng)的通用性。
通用發(fā)布系統(tǒng)將競賽信息發(fā)布系統(tǒng)分為固定模塊和可配置模塊,當競賽需求發(fā)生變化時開發(fā)人員只需要針對需要配置的模塊進行相應的開發(fā)即可。2015年,第三屆全國智力運動會在山東棗莊舉行,賽會共設11個項目,分別由不同的單位開發(fā),各單項均使用體育競賽信息通用發(fā)布系統(tǒng),完成了不同單項信息的統(tǒng)一發(fā)布。該設計系統(tǒng)操作簡單,運行穩(wěn)定,實現了競賽信息發(fā)布及時高效的要求。圖5為山東棗莊第三屆全國智力運動會象棋成績發(fā)布系統(tǒng)軟件主界面圖。
圖5 山東棗莊第三屆全國智力運動會象棋成績發(fā)布系統(tǒng)軟件主界面
該通用發(fā)布系統(tǒng)還成功應用于第九屆全國殘疾人運動會和第十三屆全國冬季運動會,達到了為不同單項信息發(fā)布系統(tǒng)統(tǒng)一發(fā)布競賽信息的目的。
針對綜合性運動會競賽信息發(fā)布面臨的問題,開發(fā)了競賽信息通用發(fā)布系統(tǒng)。經過簡單移植即可滿足不同單項信息統(tǒng)一發(fā)布的需求,降低了開發(fā)難度、節(jié)省開發(fā)時間、減少操作的復雜度。設計中采用三層架構,提高了系統(tǒng)的通用性和可移植性。經多個國內大型體育賽會的使用,表明該方案完全能夠滿足競賽信息發(fā)布的要求。
[1] 趙黎.體育信息技術應用與發(fā)展[J].北京體育大學學報,2008(2):145-147. ZHAO Li.Sports Information Technology and Development[J].Journal of Beijing University of Physical Education,2008(2):145-147.
[2] 湯永華.基于三層架構的圖紙分發(fā)管理系統(tǒng)的開發(fā)[J].梅山科技,2009(6):18-23. TANG Yong-hua.Development of Drawing Distributing Management System Based on Three-layer Architecture Structure[J].Baosteel Meishan,2009(6):18-23.
[3] 文家焱,施平安,著.數據庫系統(tǒng)原理與應用[M].北京:冶金工業(yè)出版社,2002. WEN Jia-yan,SHI Ping-an.Database System Principles and Applications[M].BeiJing:Metallurgical Industry Press,2002.
[4] 殷泰暉.C#編程從基礎到實踐[M].北京:電子工業(yè)出版社,2007. YIN Tai-hui.C#Programming from Basic to Practice[M].BeiJing:Publishing House of Electronics Industry,2007.
[5] 劉丹妮.ASP.NET2.0(C#)大學實用教程[M].北京:電子工業(yè)出版社,2009. LIU Dan-ni.ASP.NET2.0(C#)University Practical Course[M].BeiJing:Publishing House of Electronics Industry,2009.
[6] 李紅芹.基于三層架構的.NET數據庫業(yè)務系統(tǒng)開發(fā)[J].計算機與現代化,2009(10):120-125. Li Hongqin.Development of.NET Database System Based on 3-tier Application[J].Computer and Modernization,2009(10):120-125.
[7] 高揚.基于.NET平臺的三層架構軟件框架的設計與實現[J].計算機技術與發(fā)展,2011(2):77-80,85. GAO Yang.Design and Realization of Three Lavers Structure Software Framework Based on.NET[J].Computer Technology and Development,2011(2):77-80,85.
[8] 陸麗丹.三層架構應用實例研究[J].中國管理信息化,2009(7):25-26. LU Li-dan.The Research on Tri-Tiered Construction and an Example of Its Application[J].Chinese Information Management,2009(7):25-26.
Design of Sports Com petition Information Release System Based on Three Layer Architecture
Wang Lingli,Mu Yan,Tong Nian,Zhang Xueyun
(College of Internet of Things Engineering,Hohai University,Changzhou 213022,China)
With the improvementof the level for the comprehensive games hosting,the high demand is required for the design of Individual Sports competition subsystem.As for the information release system of different competition projects,there are big problems such as non-uniform format,non-compatibility of software and duplication of effort.In this paper,we developed a common distribution system and completed design of the individual race information release system through a simple portability.Based on three layer architecture,the system using.net technology and it does not change the information release system,the appropriate configuration based on the characteristics of each Contest information release system needs to be changed to achieve unified release needs for different Contest.The system has been successfully applied in the Third National Mind Sports Games in 2015 and the Ninth National Games for the Disabled and is fully able to meet the needs of information unified release for different sports competitions information release.
Three layer architecture;Information release of sports competition;Versatility;Portability;Low coupling;Communication protocol;Competition project protocol
10.3969/j.issn.1002-2279.2016.06.020
TP31
A
1002-2279(2016)06-0079-06
國家體育總局體育信息中心委托項目—2015年第三屆全國智力運動會信息發(fā)布系統(tǒng)
王靈利(1990-),女,安徽省六安市人,碩士研究生,主研方向:智能信息處理理論與技術。
2016-03-07