摘 要:針對高等院校實驗教學管理的實際應用,論述了基于SOA的實驗教學管理原型系統的開發和設計、實施過程。通過對高校實驗教學流程的分析,著重探討了如何通過SOA關鍵技術和工作流技術來實現一個基于SOA的實驗教學管理系統的原型系統,通過該系統,可以使高校實驗教學管理系統得到整合,達到提升實驗教學管理水平的目的。關鍵詞:SOA; SLEMM; 實驗教學管理;工作流技術
中圖分類號:TN911-34; TP311 文獻標識碼:A
文章編號:1004-373X(2010)22-0042-04
Research of SOA-based Laboratory Education Management Prototype System
DENG Rong
(Chongqing Vocational Institute of Engineering, Chongqing 400037, China)
Abstract: The development, design and implementation process of SOA-based laboratory education management prototype system are introduced for the practical application of laboratory education management in high schools. It mainly analyzes the workflow, and discusses the prototype system of SOA-based laboratory education management through SOA key technology. The laboratory education management system can be integrated, and the management level can be improved.Keywords: SOA; SLEMM; laboratory education management; workflow technology
收稿日期:2010-06-03
基金項目:重慶市高等教育教學改革研究重點項目:煤礦安全網絡監控實訓教學研究與實踐(09-2-129)
目前在國內眾多高等院校的實驗教學管理中,很多學校都構建了實驗教學管理系統或實驗室管理系統。這些系統從功能上主要服務于實驗教學和實驗室管理,常見的功能包括實驗課程管理、計算機機房管理、實驗設備管理、門禁管理和實驗室人員管理等。這些系統在實際的實驗教學中發揮了積極的作用,促進了實驗教學活動的有序開展。然而,隨著校園網絡化建設的實施,高等院校對整個高校的信息化管理提出了更高的要求,其中焦點問題是如何通過有效的技術手段將現有若干信息系統有效地整合起來,形成統一的整體。各業務系統之間能夠交互數據,進而具備協同工作能力。在這種管理要求下,實驗教學管理系統已經不再是一個孤立的管理系統,而是以實驗教學管理系統為核心,同時整合其他相關信息系統的一個整合系統[1-4]。
1 實驗教學管理系統模型概述
SOA通過低廉的代價把原有的業務系統功能封裝成服務,每個服務提供與實現技術無關的通用服務接口,于是上層應用就能夠通過調用和協調不同的服務接口訪問服務,并根據應用需求組織服務訪問和協作的邏輯關系。這種計算模式很適合于解決校園網環境下不同信息系統整合和協作問題。SOA架構的提出為低成本實施分布式環境下異構軟件系統之間的交互和協同提供了一種可實施的技術途徑。
基于SOA的實驗教學管理系統模型(SOA-based labortary education management model,SLEMM)如圖1所示。SLEMM是一個層次化的模型,可以分為網絡承載層、服務層、工作流層和應用層等,此外,系統管理和安全的功能則貫穿與這些層次[5-7]。
圖1 基于SOA的實驗教學管理模型
SLEMM模型是一種支持分布式環境下若干業務系統集成、整合與協同工作的實驗教學管理系統的通用模型。當該模型被具體應用時,需要結合應用所面向的具體高校,探討其具體參與的業務部門、系統和應用流程。
2 業務分析
2.1 業務部門與業務系統
根據調研數據,該校實驗教學管理工作由實驗教學中心為主要負責部門,在各項實驗教學管理中涉及的相關部門有教務處、設備處、人事處、網絡中心、系部等。每個部門分別有各自的業務系統,由于這些系統分別針對各自業務部門開發,并且開發的時間和方式各不相同,因此存在著明顯的異構特點。如果不采用SOA技術,要實現各系統之間的交互和整合是非常困難的。
通過需求分析,可以得到系統的部分用例圖,如圖2所示。該圖展現了目前該校在實驗教學及其相關業務領域中的主要管理工作內容以及參與人員的情況。
圖2 實驗教學管理主要業務用例圖
2.2 業務流程與業務功能
業務流程和業務功能的設計完成實際業務操作過程,與SLEMM中服務功能和工作流相對應,即所設計的服務和工作流是根據實際業務操作過程來獲取的。因此,下面首先分析主要的業務操作過程,然后在業務流程的基礎上進一步提取出系統服務和工作流。
通過需求調研,主要業務操作過程描述如下:
(1) 教務處向各系部發布下學期任課安排表;
(2) 各系部按照課程需要安排任課老師,并將安排情況反饋給教務處;
(3) 任課老師根據實驗教學內容向實驗實訓中心提交《實驗實訓室使用申請表》 ;
(4) 實驗實訓中心根據老師提交《實驗實訓室使用申請表》與教務處進行溝通,按照教學計劃審核教師提出的申請;
(5) 實驗實訓中心根據實驗需求和耗材庫存情況向后勤處提交《實驗耗材采購表》;
(6) 在實驗教學進行過程中,任課老師填寫《實訓項目完成情況登記表》,記錄教師實施實驗教學活動的相關信息;
(7) 實驗實訓中心填寫《實訓項目完成情況考核表》報送至教務處,并以此作為核算教師工作量和工作質量的部分依據;
(8) 教務處將《教師工作量統計表》提交給人事處,對教師進行月度或學期考核;
(9) 實驗教學中心收集學生填寫的《實驗項目意見收集表》,報送到教務處、各系部,以此作為考評教師實驗教學質量以及實驗室工作的部分依據;
(10) 每個學期結束后,實驗教學中心提交《實訓項目完成情況分析統計表》到各系部、教務處,作為實驗教學總體情況基礎數據。
上述內容是實驗教學管理的主干流程,下面就其中的一個業務流程進行實例分析。如圖3所示為實驗教學中提交實驗實訓場地申請的時序圖,它能夠反映出一個業務流程的處理過程以及涉及到的各業務系統的時序關系。
圖3 教師提交實驗實訓申請表業務時序圖
根據圖3的業務流程描述可以看出,該流程涉及到3個業務系統,其中每個業務系統在該流程中分別需要對外提供如下業務功能:
(1) 實驗教學管理平臺提供了與用戶進行交互的界面,同時負責與后臺的其他業務系統之間進行數據交互和協作;
(2) 教務管理系統需要提供課程安排功能;
(3) 實驗教學管理系統需要提供可用場地查詢功能和實驗實訓申請處理功能。
3 系統服務提取
系統的服務功能是在業務流程分析和工作流提取的基礎上完成的,以圖3為例,該流程中涉及的的幾個業務系統均需要對外提供服務接口,具體可以根據業務流程描述獲得的結果為:
(1) 教務系統提供的服務為提供課程安排服務TechService;
(2) 實驗教學管理系統提供場地查詢服務和實驗實訓申請處理LabroomService。
按照類似的方法,系統可以抽象出若干的工作流程,進而提取工作流以及其中的系統服務。最后就能夠得到系統總的工作流集合和系統服務的集合。
4 系統間數據交互
4.1 數據交互需求
根據圖2的描述,各個系統涉及到交互數據,根據不同角色完成特定活動需要會涉及到不同的系統用例,其中包括:
(1) 任課教師需要在教務管理系統中查詢相應的實驗教學安排數據,提交到實驗教學管理系統用于申請實驗實訓教室;
(2) 實驗實訓中心在教務管理系統查詢相應的實驗教學安排數據,提交到實驗教學管理系統用于核實實驗實訓教室;
(3) 實驗實訓中心在實驗教學管理系統中查詢相應的實驗耗材數據,提交到設備管理系統申請實驗耗材的采購;
(4) 實驗室在實驗教學管理系統中查詢實驗項目反饋數據,提交到教務管理系統作為實驗教學工作的反饋。
4.2 交互數據模型
在上述需求的前提下,本文就現有業務系統進行了分析和調研,并根據實際數據交互的需要,獲得了在系統整合過程中涉及到的部分交互數據。本文就其中實驗教學安排部分進行了詳細分析,獲取了各系統間存在交互和關聯的數據。這些數據及其相互關系可以通過圖4的數據庫物理模型來體現。
對于需要交互的數據,由于安全原因的考慮,并不能允許系統外部直接訪問到數據庫,所以必須以服務的形式提供需要交互數據。那么根據業務流程為基礎,對交互數據使用的方式來進行相應服務的設計[8-11]。
5 服務開發實例
5.1 服務實現實例
服務的開發可以通過任何支持SOA的軟件開發工具,當然也可以采用傳統的軟件開發工具,但是這需要軟件開發人員自己在程序設計時嚴格按照SOA的相應技術規范來接收服務接口數據,對外按照服務規范發送服務數據。本文在實驗原型系統開發中采用VS 2005,它能夠支持Web Service編程,因此為服務的開發提供了很多便利。
圖4 實驗教學安排數據庫物理模型
下面是一個服務實例LabroomService。服務實現實例如下:
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using cqjy.lab;
///
/// Summary description for LabroomService
///
[WebService(Namespace = \"http:// www.cqjy.com.cn/\")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class LabroomService: System.Web.Services.WebService {
public LabroomService () {
}
[WebMethod]
public RoomInfo getRoomInfo (int roomType,int roomState,string teacherNumber) {
using (RoomInfoAccessProxy roomProxy = new RoomInfoAccessProxy ())
{
RoomInfo[] rooms = roomProxy.GetRooms(roomType,roomState);
foreach (RoomInfo myRoom in room)
{//提供教師號,是為了優先讓相同的老師選擇以前用過的實驗室
foreach (RoomInfo tempRoom in roomProxy.GetRoomsForTopic(teacherNumber))
{
if (RoomInfo.UseInfo ==
tempRoom.UseInfo)
return myRoom;
}
}
}
return 1;//如果沒有找到可用的實驗室則返回為空
}
}
5.2 服務調用實例
一個系統的功能被采用服務的形式封裝起來之后,就能夠被任何支持SOA架構的服務調用者所使用。服務的調用從工作機制上采用的是請求回答方式,即服務消費者向服務提供者發送一個服務請求,服務提供者接收到服務請求后做出響應。
下面是一個服務調用的實例,在這個實例中,涉及到兩個服務的調用,一個是教務系統的服務TeachService,另一個是前面定義的服務LabroomService。
調用(完成前面提到的提交實驗實訓申請表)C#代碼
//查詢教師的課程(數據來源與教務管理系統)
com.qyjy.TeachService teachserver = new com.qyjy.TeachService ()
classInfo = teachserver.getClassInfo(teacher.Number);
//查詢(使用教務管理系統的獲得的數據)可用的計算機網絡實驗室(數據來源于實驗教務系統)
com.qyjy.LabroomService labroomserver = new com.qyjy.LabroomService() ;
roomInfo=labroomserver.getRoomInfo(classInfo.type,ROOMSTATE_IDLESSE,Number);
//填寫申請(業務操作,使用兩個系統的數據)
RoomApply roomApply = new RoomApply(classInfo,roomInfo,teahcer);
//提交申請,將數據寫回到實驗教務系統
labroomserver.SendApply(roomApply);
從上述實例可以看出,從代碼的描述形式看,服務請求與普通的函數調用并沒有太多的差別,但是從本質上,則可能是跨越網絡并通過統一的服務接口對另外一個異構的信息系統的訪問。
6 結 語
本文以某個高等院校實驗教學管理的實際應用為背景,運用SLEMM模型,根據實驗教學管理實際需求,實現了原型系統的設計和開發,各業務系統之間能夠交互數據,進而具備協同工作能力。使實際的實驗教學中發揮了更為積極的作用,促進了實驗教學活動的有序開展。
參考文獻
[1]鄧榮,張秀英.SOA體系架構模型及特征分析[J].中國新技術新產品,2010(10):28-29.
[2]汪平,王錚.開放式計算機實驗室監控管理系統的設計與實現[J].計算機與現代化,2007(11):125-128.
[3]鄔志紅,段喜龍,舒遠仲.開放型計算機實驗室管理系統的設計與實現[J].計算機與現代化,2006(2):114-115,121.
[4]王建明.計算機實驗室管理系統的設計與實現[J].計算機與信息技術,2007(25):74,81.
[5]鄧榮.高校計算機實驗室綜合信息管理系統設計與實現[J].價值工程,2010(15):133-134.
[6]劉振鵬,周冬冬,薛林雁,等.一個基于SOAP消息的Web服務綜合安全模型[J].武漢大學學報:理學版,2006,52(5):570-573.
[7]易崢榮,卜煒,葛序風,等.基于SOA 的數據協同模型[J].計算機工程,2009(2):261-264.
[8]柴曉路,梁宇奇.Web Services技術、架構和應用[M].北京:電子工業出版社,2003.
[9]W3C. Simple object access protocol version 1.2[EB/OL].[2002-04-29].http://www.w3.org/TR/soap/.
[10]W3C. Web services description language version 1.1[EB/OL].[2001-10-20].http://www.w3.org/TR/wsdl.
[11]夏文棟,樂建亮,廖寧.基于SOA 的高校信息系統集成研究與設計[J].現代計算機,2009(6):15-17.