林麗娟
(上海戲劇學院附屬戲曲學校,上海 201102)
基于SOA的學校信息整合架構設計與實現
林麗娟
(上海戲劇學院附屬戲曲學校,上海 201102)
筆者在分析了學校各業務系統的應用現狀和所面臨困難的基礎上,提出了基于Web Service技術的SOA信息整合架構。在信息整合架構的各個層次中貫穿面向服務架構(SOA)的思想,按照這種方式建立起來的Web服務將滿足系統間松散耦合的要求,能夠適應學校不斷變化的業務需求。
面向服務架構;企業服務總線;Web服務;信息整合
中國教育信息化從20世紀90年代中開始進入快速發展期,但由于人們對信息化認識程度的差異,以及對信息化需求迫切程度的不同,不同部門先后開發了不同的部門級的應用系統,這樣建立的信息系統由不同時間開發的不同系統組成,各個系統間缺乏關聯,使得信息不能有效共享、應用難以集成、用戶界面風格各異,嚴重阻礙了高校信息化的深入。
各學校經過多年的信息化建設,已經建成多個信息系統,如:學籍管理系統、教務管理系統、網上選課系統 、校園卡系統(借書證、就餐卡)、學費管理系統、題庫管理系統、教學管理系統、多媒體課件管理系統、圖書管理系統、財務管理系統、在線培訓與考試系統、BBS等若干應用系統,這些信息系統間交互性差,因而經常會出現學校各部門間數據更新不同步、數據不一致,各系統部分功能模塊重復開發、重用率低等問題。這種日益突出的孤島問題正越來越嚴重地阻礙著學校內部信息流的有效傳輸。各系統間的信息孤島引發的問題很多,主要有:數據不能有效共享、軟件缺乏有效重用、應用缺乏有效集成以及訪問界面各不相同。[1]如何將這些“信息孤島”有效貫穿起來,即進行信息整合,以便讓不同的應用系統之間交互信息,向廣大師生提供更好的信息服務,已成為學校管理中亟待解決的問題。
此外,學校內信息整合不是一個簡單的合并過程,整合有整理、合并的意思,整合能夠使原有信息更加有條理,并且能夠集中有序地反映出來,它是對原有信息的集中、分類、合并、整理、再利用與提高。所謂整合,就是通過各種手段、方法和工具將已有的資源(包括數據、信息、服務、流程、應用)集成起來,并按照一定的邏輯關系進行組織再利用,從而實現價值增加的過程。基于不同的整合對象,本文提出了基于SOA的信息分層整合架構。
1.面向服務的架構概述
面向服務的架構(Service-Oriented Architecture,簡稱為SOA)是一種軟件架構,該架構采用一組可相互通信的、松散耦合的、能完成特定任務的獨立功能實體(稱為服務)而構建起來,用于解決Internet環境中業務集成的問題,在這些服務之間通過標準的接口進行統一方式交互,以至于可以獨立于具體實現服務的硬件平臺、操作系統和編程語言。SOA架構具有位置透明性、松耦合性以及協議無關性。通過這些SOA架構的特點可以知道,如果基于SOA來構建系統架構,就可以從底層架構的級別來保證整個系統的松耦合性以及靈活性,這都為未來學校業務系統的擴展打好了基礎。[2]
2.Web 服務
Web服務建立在開放標準協議的基礎之上,Web服務在服務提供者和消費者之間進行通信,通常使用一種基于 XML 的 SOAP(Simple Object Access Protocol)協議通過HTTP進行相互間訪問。Web服務為了讓其他程序調用,可通過 WSDL(Web Service Definition Language)定義的接口來在注冊中心進行注冊公布。UDDI協議用于Web服務和注冊中心進行交互、注冊以及查找服務。Web服務具有強自治、松耦合、開放性、可集成等特征。Web服務對于調用者來說可以不必關心服務實現的具體細節,只需提供標準定義的接口即可。正是這種標準接口的設計模式使Web服務的調用者和提供者之間只需很簡單的協調即可。另外,標準Web服務協議完全屏蔽了不同軟件平臺的差異,無論是CORBA、DCOM,還是EJB,都可以通過標準協議進行互操作,實現當前環境下的可集成性。Web Services描述了一組操作的接口,該接口包含了與服務交互所需的各種信息,主要有消息格式、傳輸協議和位置,由于該標準化的接口隱藏了具體服務實現的具體細節,使得該服務的調用與該服務的實現、軟硬件平臺、服務編寫所用的語言無關。
Web服務在商業注冊中心UDDI(Universal Description Discovery and Integration)的注冊發布可通過WSDL語言來描述,對于Web服務的調用者來說可通過SOAP協議進行訪問在UDDI中注冊的服務,從而使開發者和應用程序可以搜索并定位到該服務。Web Services的架構包括三個清晰的角色定義,圖1顯示了它們之間的關系。

1.基于SOA架構的信息整合架構模型
本文提出的基于SOA架構的信息整合架構模型如圖2所示。

基于SOA架構的信息整合架構模型分為5層:
第1層是已經存在的系統數據資源,例如學籍管理系統、食堂就餐卡系統等的數據資源。該層的整合重點在于數據的整合。
第2層是構件層,在這一層中我們用不同的構件把底層系統的功能封裝起來,并對軟件構件進行管理,以便實現構件的復用。
第3層是SOA系統中最重要的服務層,在該層中我們要用底層功能構件來構建我們所需要的不同功能的服務。該層又分為服務描述子層、服務發布子層和服務發現子層。服務描述子層為Web Service進行服務實現和服務接口的描述,所使用的規范為WSDL,WSDL是一種定義服務實現和接口的基礎標準,在WSDL中要指定業務環境、服務質量和服務之間的關系,還需要另外的描述手段。在服務發布子層,服務提供者可以將WSDL文檔發布到UDDI注冊中心,或者發布到本地的注冊庫,以便服務的調用者可以通過這些注冊庫來獲得WSDL文檔。服務的發現是基于服務發布的。服務調用者也可以通過本地WSDL注冊庫或UDDI注冊中心來發現服務發布者的WSDL文檔。服務層是基于SOA信息整合模型架構中最重要的一層,在該層中,需要將軟件構件封裝成顆粒化的服務,并對這些服務進行發布、注冊、調用和管理,以方便在搭建業務系統時對這些全方位、顆粒化的服務進行整合。
第4層是業務流程層,在這一層中我們利用已經封裝好的各種服務來構建業務系統中的業務流程,由于基于顆粒化服務的業務流程配置靈活,實現方便,故能夠對業務需求的變化及時做出反應、調整。業務流程管理是業務模式層面的,SOA是實現業務流程管理有效的IT手段,是執行層面的,作為IT基礎設施它能夠靈活配置,快速適應業務需求的變化。在基于SOA的信息整合模型中,業務流程整合是銜接業務模型和IT模型的關鍵一環。業務流程的整合就是將原有的分散于企業內部或外部的“業務流程斷點”進行鏈接,將本來在這些系統間的“流程的中斷點”上需要人工干預或手動處理的操作由系統自動進行處理,對用戶來說,就像沒有跨應用系統一樣,使得不同的管理部門能夠在一個統一的網絡環境中實現對同一事務的協同處理。在流程重組方面,Web服務提供了方便組裝,方便展示的小的應用模塊,Web服務可以作為小的功能模塊在需要的時候方便地進行組裝,這樣就可以做到及時地應對業務需求的變化。
第5層是表示層,我們利用表示層來向用戶提供用戶接口服務,這一層采用基于portal的系統來構建。表示層整合主要采用門戶技術解決單點登錄、個性化配置等系統訪問上的界面整合。
2.學校業務系統流程整合方案
學校的每個信息系統均有自己獨特的業務流程,這些流程可能是程序寫“死”的,也可能包含工作流組件,使得流程可配置,由于軟件設計上和架構上的原因,這些業務流程在本系統中可以正常流轉,但與其他業務系統中在流程上的交互通常存在這樣或那樣的問題。通常來說,這種問題由于牽涉多個業務系統,一般只能靠人工干預的方式解決,并且在任何一個業務系統的改變都不能很好的解決業務流程中斷點銜接的問題。而這種手工處理方式的缺點顯而易見:業務不能及時進行處理,無法跨系統跟蹤流程進度,尤其在跨系統的流程中斷點上的業務處理困難、費時、費力,流轉效率不高,缺乏流程分析功能等缺點,因此學校各系統間業務流程的整合和優化勢在必行。其中關鍵的工作是將業務應用拆開成粒度大小可以伸縮、又可以重新組裝的服務,這樣業務流程的變更、重組將變得很容易。由于服務可以直接被應用調用和組合,從而降低了服務對系統交互的信賴性。服務之間則通過簡單、精確定義的接口進行通信,而不涉及底層的編程進口和通訊模型。然后引入工作流管理系統,搭建一個工作流平臺,實現各系統間業務流程的整合。工作流管理系統將業務流程描述作為輸入并管理流程實例的執行,這使得它比專門應用更靈活。工作流管理系統可以用來管理全局的業務流程,并與應用系統相互協作,將各個業務系統的小流程整合起來形成一個能夠自動流轉的大流程。另外,現有流程是否適合實際情況只能通過實際工作來檢驗。但手工處理無法統計各個環節的處理效率,因此對流程的評估都是大致的、無法量化,對流程的改造缺乏科學的統計數據做基礎。通過采用先進的信息技術,可以對現有流程做深入分析,并對其進行進一步優化。
1.學校面向服務架構的信息整合步驟
SOA需要把緊耦合的系統打散了,做成松耦合的服務,為了達到這個目的,需要對高校中各種各樣的系統都進行改造,使之服務化。采用Web Service的SOA技術對現有信息系統進行整合的具體步驟如下:
(1)提取各個應用系統中需要對外開放的功能模塊。這些功能模塊通常都是一些能夠清晰完整地表現其業務價值的軟件模塊。服務是基于SOA信息整合中的關鍵元素,如何從業務系統中發現和開發業務服務是決定能否成功構建SOA信息整合的關鍵因素,其方法是,首先分析業務模型,其次進行業務領域分解和子系統分析。
(2)以服務的形式將這些功能模塊進行封裝。定義服務的描述信息、服務的接口信息以及調用服務所需要的定位信息等。將軟件模塊的概念模型轉換成實際的服務模型。
(3)將已實現的服務發布到服務注冊器,以供其他服務調用者進行查找和綁定。
(4)綁定和調用服務。將這些顆粒化的服務串接起來形成新的業務功能,以實現各應用系統的集成。
2.實施過程中需注意的問題
我們首先要明白,SOA決不是簡單的一蹴而就的項目,而是一個有可能需要耗費幾年時間,需要分階段實施的藍圖方案。在SOA實施之前需要更多的業務流程方面的工作,如業務流程分析和優化會為SOA項目奠定良好的基礎。在SOA實施之前應把業務流程仔細梳理一遍,定義業務關鍵點,以及明確每個關鍵點將涉及哪些關鍵業務操作,分析這些關鍵業務操作中哪些與其他系統或平臺相關,其他系統或平臺又需要為這些業務操作提供哪些服務,最終確定每個系統需定義的SOA服務。
3.學校核心業務的Web服務
對學校的核心業務進行服務化封裝,形成各業務所需要的顆粒化模塊。目前可對原有各個系統共享服務進行封裝的主要有:
教務管理系統:(學生)可選課程信息服務、(學生)對教學的評價服務、(學生)課表查詢服務、(學生)成績查詢服務、(學生)教師查學服務、(教師)各種統計匯總服務(如:成績、保籍、借讀、休學、輟學等)、學籍信息服務、校歷查詢服務等。
網上選課系統:(學生)選課服務、(教師)選課學生名單服務、(學生)課表查詢服務等。
圖書管理系統:借書查詢服務、過期圖書查詢服務等。
食堂就餐卡管理系統:就餐消費查詢服務、余額查詢服務等。
門禁管理系統:身份認證服務、門禁與考勤服務等。
對于新建的校園一卡通系統可以直接用Web Service調用其他系統封裝好的服務,具體服務有:食堂就餐卡管理系統的就餐消費查詢服務、食堂就餐卡管理系統的余額查詢服務、圖書管理系統的借書查詢服務、門禁管理系統的身份認證服務、門禁管理系統的(教師)門禁與考勤服務等等。
其他系統的服務封裝在這里就不一一列舉了。
1.場景示例
業務流程服務是為學校業務流程的運行提供支撐的一組標準服務。業務流程是一組服務的集合,可以按照特定的順序并使用一組特定的規則進行調用。業務流程服務提供流程驅動、服務調用、事務管理等功能。如學校學生畢業流程和新生入學流程。對于學生畢業流程來說,由于牽涉多個系統的手續要辦理,具體有教務管理系統中的學籍管理信息和所有考試成績查詢、圖書管理系統中的借書查詢、食堂就餐卡管理系統的余額查詢、門禁管理系統的身份認證等。如果采用業務流程管理將這些系統中的服務串接起來,這樣在一個地方就可以辦理離校的所有手續了。
2.Web 服務創建示例
以畢業生畢業時辦理離校手續為例,要查看是否在圖書館有書沒有還,在學籍管理的離校服務中調用圖書管理系統的借書查詢服務即可實現,現在我們以該場景調用的圖書管理系統的借書查詢服務的創建為例,來說明Web服務的創建。
創建一個Web服務可首先創建一個.asmx文件(可以用Visual Studio.NET或自己喜歡的任何文本編輯器),Web服務作為一個普通的類進行創建,在方法的前面有一個宏,表明這個方法是通過Web服務來訪問的。以圖書管理系統的借書查詢服務的創建來舉例,下面就是實現的代碼(略去了非關鍵代碼):

Return GetBookDataSet(SQL Query)'這里的參數SQL用來得到某用戶(stuID)的所有借的書
本論文提出了基于Web Service技術的SOA信息整合架構,按照這種方式建立起來的Web服務將滿足系統間松散耦合的要求,能夠適應不斷變化的業務環境的要求。在整合架構的服務層構建了Web服務后,各系統可通過Web服務進行交互,實現學校各應用系統間靈活、可擴展的信息整合。
[1]文琪,喬林,王行言.校園網中基于信息整合的檢索系統解決方案[J].計算機應用,2005,25(B12):500-502.
[2]張亮,葛敏輝,畢曉亮.虛擬化與信息整合技術在電力調度中心的應用[J].電力系統自動化,2008,32(16):38-42.
(編輯:隗爽)
TP319
A
1673-8454(2010)19-0029-04