林麗娟
(上海戲劇學(xué)院附屬戲曲學(xué)校,上海 201102)
基于SOA的學(xué)校信息整合架構(gòu)設(shè)計與實現(xiàn)
林麗娟
(上海戲劇學(xué)院附屬戲曲學(xué)校,上海 201102)
筆者在分析了學(xué)校各業(yè)務(wù)系統(tǒng)的應(yīng)用現(xiàn)狀和所面臨困難的基礎(chǔ)上,提出了基于Web Service技術(shù)的SOA信息整合架構(gòu)。在信息整合架構(gòu)的各個層次中貫穿面向服務(wù)架構(gòu)(SOA)的思想,按照這種方式建立起來的Web服務(wù)將滿足系統(tǒng)間松散耦合的要求,能夠適應(yīng)學(xué)校不斷變化的業(yè)務(wù)需求。
面向服務(wù)架構(gòu);企業(yè)服務(wù)總線;Web服務(wù);信息整合
中國教育信息化從20世紀(jì)90年代中開始進入快速發(fā)展期,但由于人們對信息化認(rèn)識程度的差異,以及對信息化需求迫切程度的不同,不同部門先后開發(fā)了不同的部門級的應(yīng)用系統(tǒng),這樣建立的信息系統(tǒng)由不同時間開發(fā)的不同系統(tǒng)組成,各個系統(tǒng)間缺乏關(guān)聯(lián),使得信息不能有效共享、應(yīng)用難以集成、用戶界面風(fēng)格各異,嚴(yán)重阻礙了高校信息化的深入。
各學(xué)校經(jīng)過多年的信息化建設(shè),已經(jīng)建成多個信息系統(tǒng),如:學(xué)籍管理系統(tǒng)、教務(wù)管理系統(tǒng)、網(wǎng)上選課系統(tǒng) 、校園卡系統(tǒng)(借書證、就餐卡)、學(xué)費管理系統(tǒng)、題庫管理系統(tǒng)、教學(xué)管理系統(tǒng)、多媒體課件管理系統(tǒng)、圖書管理系統(tǒng)、財務(wù)管理系統(tǒng)、在線培訓(xùn)與考試系統(tǒng)、BBS等若干應(yīng)用系統(tǒng),這些信息系統(tǒng)間交互性差,因而經(jīng)常會出現(xiàn)學(xué)校各部門間數(shù)據(jù)更新不同步、數(shù)據(jù)不一致,各系統(tǒng)部分功能模塊重復(fù)開發(fā)、重用率低等問題。這種日益突出的孤島問題正越來越嚴(yán)重地阻礙著學(xué)校內(nèi)部信息流的有效傳輸。各系統(tǒng)間的信息孤島引發(fā)的問題很多,主要有:數(shù)據(jù)不能有效共享、軟件缺乏有效重用、應(yīng)用缺乏有效集成以及訪問界面各不相同。[1]如何將這些“信息孤島”有效貫穿起來,即進行信息整合,以便讓不同的應(yīng)用系統(tǒng)之間交互信息,向廣大師生提供更好的信息服務(wù),已成為學(xué)校管理中亟待解決的問題。
此外,學(xué)校內(nèi)信息整合不是一個簡單的合并過程,整合有整理、合并的意思,整合能夠使原有信息更加有條理,并且能夠集中有序地反映出來,它是對原有信息的集中、分類、合并、整理、再利用與提高。所謂整合,就是通過各種手段、方法和工具將已有的資源(包括數(shù)據(jù)、信息、服務(wù)、流程、應(yīng)用)集成起來,并按照一定的邏輯關(guān)系進行組織再利用,從而實現(xiàn)價值增加的過程?;诓煌恼蠈ο螅疚奶岢隽嘶赟OA的信息分層整合架構(gòu)。
1.面向服務(wù)的架構(gòu)概述
面向服務(wù)的架構(gòu)(Service-Oriented Architecture,簡稱為SOA)是一種軟件架構(gòu),該架構(gòu)采用一組可相互通信的、松散耦合的、能完成特定任務(wù)的獨立功能實體(稱為服務(wù))而構(gòu)建起來,用于解決Internet環(huán)境中業(yè)務(wù)集成的問題,在這些服務(wù)之間通過標(biāo)準(zhǔn)的接口進行統(tǒng)一方式交互,以至于可以獨立于具體實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言。SOA架構(gòu)具有位置透明性、松耦合性以及協(xié)議無關(guān)性。通過這些SOA架構(gòu)的特點可以知道,如果基于SOA來構(gòu)建系統(tǒng)架構(gòu),就可以從底層架構(gòu)的級別來保證整個系統(tǒng)的松耦合性以及靈活性,這都為未來學(xué)校業(yè)務(wù)系統(tǒng)的擴展打好了基礎(chǔ)。[2]
2.Web 服務(wù)
Web服務(wù)建立在開放標(biāo)準(zhǔn)協(xié)議的基礎(chǔ)之上,Web服務(wù)在服務(wù)提供者和消費者之間進行通信,通常使用一種基于 XML 的 SOAP(Simple Object Access Protocol)協(xié)議通過HTTP進行相互間訪問。Web服務(wù)為了讓其他程序調(diào)用,可通過 WSDL(Web Service Definition Language)定義的接口來在注冊中心進行注冊公布。UDDI協(xié)議用于Web服務(wù)和注冊中心進行交互、注冊以及查找服務(wù)。Web服務(wù)具有強自治、松耦合、開放性、可集成等特征。Web服務(wù)對于調(diào)用者來說可以不必關(guān)心服務(wù)實現(xiàn)的具體細(xì)節(jié),只需提供標(biāo)準(zhǔn)定義的接口即可。正是這種標(biāo)準(zhǔn)接口的設(shè)計模式使Web服務(wù)的調(diào)用者和提供者之間只需很簡單的協(xié)調(diào)即可。另外,標(biāo)準(zhǔn)Web服務(wù)協(xié)議完全屏蔽了不同軟件平臺的差異,無論是CORBA、DCOM,還是EJB,都可以通過標(biāo)準(zhǔn)協(xié)議進行互操作,實現(xiàn)當(dāng)前環(huán)境下的可集成性。Web Services描述了一組操作的接口,該接口包含了與服務(wù)交互所需的各種信息,主要有消息格式、傳輸協(xié)議和位置,由于該標(biāo)準(zhǔn)化的接口隱藏了具體服務(wù)實現(xiàn)的具體細(xì)節(jié),使得該服務(wù)的調(diào)用與該服務(wù)的實現(xiàn)、軟硬件平臺、服務(wù)編寫所用的語言無關(guān)。
Web服務(wù)在商業(yè)注冊中心UDDI(Universal Description Discovery and Integration)的注冊發(fā)布可通過WSDL語言來描述,對于Web服務(wù)的調(diào)用者來說可通過SOAP協(xié)議進行訪問在UDDI中注冊的服務(wù),從而使開發(fā)者和應(yīng)用程序可以搜索并定位到該服務(wù)。Web Services的架構(gòu)包括三個清晰的角色定義,圖1顯示了它們之間的關(guān)系。
1.基于SOA架構(gòu)的信息整合架構(gòu)模型
本文提出的基于SOA架構(gòu)的信息整合架構(gòu)模型如圖2所示。
基于SOA架構(gòu)的信息整合架構(gòu)模型分為5層:
第1層是已經(jīng)存在的系統(tǒng)數(shù)據(jù)資源,例如學(xué)籍管理系統(tǒng)、食堂就餐卡系統(tǒng)等的數(shù)據(jù)資源。該層的整合重點在于數(shù)據(jù)的整合。
第2層是構(gòu)件層,在這一層中我們用不同的構(gòu)件把底層系統(tǒng)的功能封裝起來,并對軟件構(gòu)件進行管理,以便實現(xiàn)構(gòu)件的復(fù)用。
第3層是SOA系統(tǒng)中最重要的服務(wù)層,在該層中我們要用底層功能構(gòu)件來構(gòu)建我們所需要的不同功能的服務(wù)。該層又分為服務(wù)描述子層、服務(wù)發(fā)布子層和服務(wù)發(fā)現(xiàn)子層。服務(wù)描述子層為Web Service進行服務(wù)實現(xiàn)和服務(wù)接口的描述,所使用的規(guī)范為WSDL,WSDL是一種定義服務(wù)實現(xiàn)和接口的基礎(chǔ)標(biāo)準(zhǔn),在WSDL中要指定業(yè)務(wù)環(huán)境、服務(wù)質(zhì)量和服務(wù)之間的關(guān)系,還需要另外的描述手段。在服務(wù)發(fā)布子層,服務(wù)提供者可以將WSDL文檔發(fā)布到UDDI注冊中心,或者發(fā)布到本地的注冊庫,以便服務(wù)的調(diào)用者可以通過這些注冊庫來獲得WSDL文檔。服務(wù)的發(fā)現(xiàn)是基于服務(wù)發(fā)布的。服務(wù)調(diào)用者也可以通過本地WSDL注冊庫或UDDI注冊中心來發(fā)現(xiàn)服務(wù)發(fā)布者的WSDL文檔。服務(wù)層是基于SOA信息整合模型架構(gòu)中最重要的一層,在該層中,需要將軟件構(gòu)件封裝成顆?;姆?wù),并對這些服務(wù)進行發(fā)布、注冊、調(diào)用和管理,以方便在搭建業(yè)務(wù)系統(tǒng)時對這些全方位、顆?;姆?wù)進行整合。
第4層是業(yè)務(wù)流程層,在這一層中我們利用已經(jīng)封裝好的各種服務(wù)來構(gòu)建業(yè)務(wù)系統(tǒng)中的業(yè)務(wù)流程,由于基于顆?;?wù)的業(yè)務(wù)流程配置靈活,實現(xiàn)方便,故能夠?qū)I(yè)務(wù)需求的變化及時做出反應(yīng)、調(diào)整。業(yè)務(wù)流程管理是業(yè)務(wù)模式層面的,SOA是實現(xiàn)業(yè)務(wù)流程管理有效的IT手段,是執(zhí)行層面的,作為IT基礎(chǔ)設(shè)施它能夠靈活配置,快速適應(yīng)業(yè)務(wù)需求的變化。在基于SOA的信息整合模型中,業(yè)務(wù)流程整合是銜接業(yè)務(wù)模型和IT模型的關(guān)鍵一環(huán)。業(yè)務(wù)流程的整合就是將原有的分散于企業(yè)內(nèi)部或外部的“業(yè)務(wù)流程斷點”進行鏈接,將本來在這些系統(tǒng)間的“流程的中斷點”上需要人工干預(yù)或手動處理的操作由系統(tǒng)自動進行處理,對用戶來說,就像沒有跨應(yīng)用系統(tǒng)一樣,使得不同的管理部門能夠在一個統(tǒng)一的網(wǎng)絡(luò)環(huán)境中實現(xiàn)對同一事務(wù)的協(xié)同處理。在流程重組方面,Web服務(wù)提供了方便組裝,方便展示的小的應(yīng)用模塊,Web服務(wù)可以作為小的功能模塊在需要的時候方便地進行組裝,這樣就可以做到及時地應(yīng)對業(yè)務(wù)需求的變化。
第5層是表示層,我們利用表示層來向用戶提供用戶接口服務(wù),這一層采用基于portal的系統(tǒng)來構(gòu)建。表示層整合主要采用門戶技術(shù)解決單點登錄、個性化配置等系統(tǒng)訪問上的界面整合。
2.學(xué)校業(yè)務(wù)系統(tǒng)流程整合方案
學(xué)校的每個信息系統(tǒng)均有自己獨特的業(yè)務(wù)流程,這些流程可能是程序?qū)憽八馈钡?,也可能包含工作流組件,使得流程可配置,由于軟件設(shè)計上和架構(gòu)上的原因,這些業(yè)務(wù)流程在本系統(tǒng)中可以正常流轉(zhuǎn),但與其他業(yè)務(wù)系統(tǒng)中在流程上的交互通常存在這樣或那樣的問題。通常來說,這種問題由于牽涉多個業(yè)務(wù)系統(tǒng),一般只能靠人工干預(yù)的方式解決,并且在任何一個業(yè)務(wù)系統(tǒng)的改變都不能很好的解決業(yè)務(wù)流程中斷點銜接的問題。而這種手工處理方式的缺點顯而易見:業(yè)務(wù)不能及時進行處理,無法跨系統(tǒng)跟蹤流程進度,尤其在跨系統(tǒng)的流程中斷點上的業(yè)務(wù)處理困難、費時、費力,流轉(zhuǎn)效率不高,缺乏流程分析功能等缺點,因此學(xué)校各系統(tǒng)間業(yè)務(wù)流程的整合和優(yōu)化勢在必行。其中關(guān)鍵的工作是將業(yè)務(wù)應(yīng)用拆開成粒度大小可以伸縮、又可以重新組裝的服務(wù),這樣業(yè)務(wù)流程的變更、重組將變得很容易。由于服務(wù)可以直接被應(yīng)用調(diào)用和組合,從而降低了服務(wù)對系統(tǒng)交互的信賴性。服務(wù)之間則通過簡單、精確定義的接口進行通信,而不涉及底層的編程進口和通訊模型。然后引入工作流管理系統(tǒng),搭建一個工作流平臺,實現(xiàn)各系統(tǒng)間業(yè)務(wù)流程的整合。工作流管理系統(tǒng)將業(yè)務(wù)流程描述作為輸入并管理流程實例的執(zhí)行,這使得它比專門應(yīng)用更靈活。工作流管理系統(tǒng)可以用來管理全局的業(yè)務(wù)流程,并與應(yīng)用系統(tǒng)相互協(xié)作,將各個業(yè)務(wù)系統(tǒng)的小流程整合起來形成一個能夠自動流轉(zhuǎn)的大流程。另外,現(xiàn)有流程是否適合實際情況只能通過實際工作來檢驗。但手工處理無法統(tǒng)計各個環(huán)節(jié)的處理效率,因此對流程的評估都是大致的、無法量化,對流程的改造缺乏科學(xué)的統(tǒng)計數(shù)據(jù)做基礎(chǔ)。通過采用先進的信息技術(shù),可以對現(xiàn)有流程做深入分析,并對其進行進一步優(yōu)化。
1.學(xué)校面向服務(wù)架構(gòu)的信息整合步驟
SOA需要把緊耦合的系統(tǒng)打散了,做成松耦合的服務(wù),為了達(dá)到這個目的,需要對高校中各種各樣的系統(tǒng)都進行改造,使之服務(wù)化。采用Web Service的SOA技術(shù)對現(xiàn)有信息系統(tǒng)進行整合的具體步驟如下:
(1)提取各個應(yīng)用系統(tǒng)中需要對外開放的功能模塊。這些功能模塊通常都是一些能夠清晰完整地表現(xiàn)其業(yè)務(wù)價值的軟件模塊。服務(wù)是基于SOA信息整合中的關(guān)鍵元素,如何從業(yè)務(wù)系統(tǒng)中發(fā)現(xiàn)和開發(fā)業(yè)務(wù)服務(wù)是決定能否成功構(gòu)建SOA信息整合的關(guān)鍵因素,其方法是,首先分析業(yè)務(wù)模型,其次進行業(yè)務(wù)領(lǐng)域分解和子系統(tǒng)分析。
(2)以服務(wù)的形式將這些功能模塊進行封裝。定義服務(wù)的描述信息、服務(wù)的接口信息以及調(diào)用服務(wù)所需要的定位信息等。將軟件模塊的概念模型轉(zhuǎn)換成實際的服務(wù)模型。
(3)將已實現(xiàn)的服務(wù)發(fā)布到服務(wù)注冊器,以供其他服務(wù)調(diào)用者進行查找和綁定。
(4)綁定和調(diào)用服務(wù)。將這些顆?;姆?wù)串接起來形成新的業(yè)務(wù)功能,以實現(xiàn)各應(yīng)用系統(tǒng)的集成。
2.實施過程中需注意的問題
我們首先要明白,SOA決不是簡單的一蹴而就的項目,而是一個有可能需要耗費幾年時間,需要分階段實施的藍(lán)圖方案。在SOA實施之前需要更多的業(yè)務(wù)流程方面的工作,如業(yè)務(wù)流程分析和優(yōu)化會為SOA項目奠定良好的基礎(chǔ)。在SOA實施之前應(yīng)把業(yè)務(wù)流程仔細(xì)梳理一遍,定義業(yè)務(wù)關(guān)鍵點,以及明確每個關(guān)鍵點將涉及哪些關(guān)鍵業(yè)務(wù)操作,分析這些關(guān)鍵業(yè)務(wù)操作中哪些與其他系統(tǒng)或平臺相關(guān),其他系統(tǒng)或平臺又需要為這些業(yè)務(wù)操作提供哪些服務(wù),最終確定每個系統(tǒng)需定義的SOA服務(wù)。
3.學(xué)校核心業(yè)務(wù)的Web服務(wù)
對學(xué)校的核心業(yè)務(wù)進行服務(wù)化封裝,形成各業(yè)務(wù)所需要的顆粒化模塊。目前可對原有各個系統(tǒng)共享服務(wù)進行封裝的主要有:
教務(wù)管理系統(tǒng):(學(xué)生)可選課程信息服務(wù)、(學(xué)生)對教學(xué)的評價服務(wù)、(學(xué)生)課表查詢服務(wù)、(學(xué)生)成績查詢服務(wù)、(學(xué)生)教師查學(xué)服務(wù)、(教師)各種統(tǒng)計匯總服務(wù)(如:成績、保籍、借讀、休學(xué)、輟學(xué)等)、學(xué)籍信息服務(wù)、校歷查詢服務(wù)等。
網(wǎng)上選課系統(tǒng):(學(xué)生)選課服務(wù)、(教師)選課學(xué)生名單服務(wù)、(學(xué)生)課表查詢服務(wù)等。
圖書管理系統(tǒng):借書查詢服務(wù)、過期圖書查詢服務(wù)等。
食堂就餐卡管理系統(tǒng):就餐消費查詢服務(wù)、余額查詢服務(wù)等。
門禁管理系統(tǒng):身份認(rèn)證服務(wù)、門禁與考勤服務(wù)等。
對于新建的校園一卡通系統(tǒng)可以直接用Web Service調(diào)用其他系統(tǒng)封裝好的服務(wù),具體服務(wù)有:食堂就餐卡管理系統(tǒng)的就餐消費查詢服務(wù)、食堂就餐卡管理系統(tǒng)的余額查詢服務(wù)、圖書管理系統(tǒng)的借書查詢服務(wù)、門禁管理系統(tǒng)的身份認(rèn)證服務(wù)、門禁管理系統(tǒng)的(教師)門禁與考勤服務(wù)等等。
其他系統(tǒng)的服務(wù)封裝在這里就不一一列舉了。
1.場景示例
業(yè)務(wù)流程服務(wù)是為學(xué)校業(yè)務(wù)流程的運行提供支撐的一組標(biāo)準(zhǔn)服務(wù)。業(yè)務(wù)流程是一組服務(wù)的集合,可以按照特定的順序并使用一組特定的規(guī)則進行調(diào)用。業(yè)務(wù)流程服務(wù)提供流程驅(qū)動、服務(wù)調(diào)用、事務(wù)管理等功能。如學(xué)校學(xué)生畢業(yè)流程和新生入學(xué)流程。對于學(xué)生畢業(yè)流程來說,由于牽涉多個系統(tǒng)的手續(xù)要辦理,具體有教務(wù)管理系統(tǒng)中的學(xué)籍管理信息和所有考試成績查詢、圖書管理系統(tǒng)中的借書查詢、食堂就餐卡管理系統(tǒng)的余額查詢、門禁管理系統(tǒng)的身份認(rèn)證等。如果采用業(yè)務(wù)流程管理將這些系統(tǒng)中的服務(wù)串接起來,這樣在一個地方就可以辦理離校的所有手續(xù)了。
2.Web 服務(wù)創(chuàng)建示例
以畢業(yè)生畢業(yè)時辦理離校手續(xù)為例,要查看是否在圖書館有書沒有還,在學(xué)籍管理的離校服務(wù)中調(diào)用圖書管理系統(tǒng)的借書查詢服務(wù)即可實現(xiàn),現(xiàn)在我們以該場景調(diào)用的圖書管理系統(tǒng)的借書查詢服務(wù)的創(chuàng)建為例,來說明Web服務(wù)的創(chuàng)建。
創(chuàng)建一個Web服務(wù)可首先創(chuàng)建一個.asmx文件(可以用Visual Studio.NET或自己喜歡的任何文本編輯器),Web服務(wù)作為一個普通的類進行創(chuàng)建,在方法的前面有一個宏,表明這個方法是通過Web服務(wù)來訪問的。以圖書管理系統(tǒng)的借書查詢服務(wù)的創(chuàng)建來舉例,下面就是實現(xiàn)的代碼(略去了非關(guān)鍵代碼):
Return GetBookDataSet(SQL Query)'這里的參數(shù)SQL用來得到某用戶(stuID)的所有借的書
本論文提出了基于Web Service技術(shù)的SOA信息整合架構(gòu),按照這種方式建立起來的Web服務(wù)將滿足系統(tǒng)間松散耦合的要求,能夠適應(yīng)不斷變化的業(yè)務(wù)環(huán)境的要求。在整合架構(gòu)的服務(wù)層構(gòu)建了Web服務(wù)后,各系統(tǒng)可通過Web服務(wù)進行交互,實現(xiàn)學(xué)校各應(yīng)用系統(tǒng)間靈活、可擴展的信息整合。
[1]文琪,喬林,王行言.校園網(wǎng)中基于信息整合的檢索系統(tǒng)解決方案[J].計算機應(yīng)用,2005,25(B12):500-502.
[2]張亮,葛敏輝,畢曉亮.虛擬化與信息整合技術(shù)在電力調(diào)度中心的應(yīng)用[J].電力系統(tǒng)自動化,2008,32(16):38-42.
(編輯:隗爽)
TP319
A
1673-8454(2010)19-0029-04