武漢大學經(jīng)濟與管理學院 王亞明
基于SOA的中小型企業(yè)管理信息系統(tǒng)研究
武漢大學經(jīng)濟與管理學院 王亞明

1.中小型企業(yè)內(nèi)部各信息系統(tǒng)應用集成和協(xié)作程度不高。在中小型企業(yè)各部門的日常工作中,一方面,各種功能強大的信息系統(tǒng)的應用有效地提高了企業(yè)的業(yè)務(wù)處理能力并增強了管理的效率水平。但局限于當時的技術(shù)水平,并沒有考慮信息系統(tǒng)的發(fā)展空間和各個不同系統(tǒng)之間的連通,形成了所謂的“信息孤島”。另一方面,各個信息系統(tǒng)之間通常存在很多的相互交叉,甚至重復的信息和數(shù)據(jù),造成了信息和數(shù)據(jù)的重復處理和更新不同步,甚至不一致,既浪費資源又不便于管理。
2.多部門間無法實現(xiàn)系統(tǒng)的互操作,信息交流與共享存在問題。大多數(shù)企業(yè)的業(yè)務(wù)部門都擁有各種不同的遺留系統(tǒng)和應用程序,由于系統(tǒng)設(shè)計時所運用的語言、平臺、數(shù)據(jù)結(jié)構(gòu)等方面的不同,又缺乏統(tǒng)一的端口設(shè)計標準,導致目前的系統(tǒng)在功能上很難實現(xiàn)系統(tǒng)間的互操作。這樣,在業(yè)務(wù)上需要合作的業(yè)務(wù)部門難以實現(xiàn)系統(tǒng)資源功能上的互補,又會導致部門之間信息交流與共享無法得到充分的保證,給管理工作帶來很大的影響。
1.采用SOA架構(gòu)的意義。SOA(Service Qriented Architecture,面向服務(wù)的體系架構(gòu))并不是一個新概念,早在1996年,Gartner Group就已經(jīng)提出了SOA的預言。不過在當時還僅僅是一個“預言”,當時的軟件發(fā)展水平和信息化程度還不足以支撐這樣的概念走進實質(zhì)性應用階段。而到了近幾年,SOA技術(shù)的實現(xiàn)手段已漸漸成熟,相關(guān)的理論研究非常活躍,但業(yè)界關(guān)于SOA還沒有形成一個統(tǒng)一的概念,一般認為,它是一種軟件開發(fā)的體系架構(gòu),它以服務(wù)(Service)作為軟件設(shè)計、開發(fā)、部署、調(diào)用和維護的基本結(jié)構(gòu)和功能單元,這種服務(wù)是一種能獨立完成一定業(yè)務(wù)功能的粗粒度模塊,對它可以在互聯(lián)網(wǎng)范圍內(nèi)進行描述、發(fā)布、定位、調(diào)用和集成。因此,它可以跨越不同的硬件平臺、軟件平臺和網(wǎng)絡(luò)的邊界進行交互,它對外提供完全獨立于軟硬件平臺的接口,隱藏內(nèi)部實現(xiàn)細節(jié),而且,不同的服務(wù)可以聚合成一個新的服務(wù),對外呈現(xiàn)出單一服務(wù)相同標準的交換口,這體現(xiàn)了服務(wù)與服務(wù)之間廣泛的交互性和靈活的松耦合性。
在競爭激烈而多變的市場環(huán)境下,企業(yè)的管理模式本來就很難固化,架構(gòu)基于SOA的中小型企業(yè)管理信息系統(tǒng)能方便地繼承這些遺留系統(tǒng),也可以隨著企業(yè)規(guī)模擴展而方便地實現(xiàn)應用規(guī)模的擴展。
2.SOA的體系架構(gòu)。面向服務(wù)的體系架構(gòu),如圖1所示。

圖1 面向服務(wù)的體系架構(gòu)
SOA包含3個角色:服務(wù)注冊庫,服務(wù)請求者,服務(wù)提供者。
(1)服務(wù)注冊庫(Service Regitry)。服務(wù)請求者(Service Requestor)是一個應用程序、一個軟件模塊或者是需要一個服務(wù)的另一個服務(wù)。他發(fā)起對注冊中心的服務(wù)的查詢,通過傳輸綁定服務(wù),并且執(zhí)行服務(wù)功能。服務(wù)使用者根據(jù)接口契約來執(zhí)行服務(wù)。服務(wù)提供者在服務(wù)注冊庫發(fā)布服務(wù)描述,并允許服務(wù)請求者搜索注冊庫所包含的服務(wù)描述。服務(wù)注冊庫就是服務(wù)提供者與服務(wù)請求者之間的中介。
(2)服務(wù)請求者(Service Requestor)。服務(wù)提供者(Service Provider)是一個可通過網(wǎng)絡(luò)尋址的實體,它接受和執(zhí)行來自使用者的請求。它將自己的服務(wù)和接口契約發(fā)布到服務(wù)注冊中心,以便服務(wù)使用者可以發(fā)布和訪問該服務(wù)。服務(wù)請求者查找分布在一個或多個服務(wù)注冊中的服務(wù)描述,并利用服務(wù)描述綁定或調(diào)用服務(wù)提供者提供的服務(wù)。服務(wù)請求者可以是用戶,也可以是程序。
(3)服務(wù)提供者(Service Provider)。服務(wù)注冊中心(Service Registry)是服務(wù)發(fā)現(xiàn)的支持者。它包含一個可用服務(wù)的存儲庫,并允許感興趣的服務(wù)使用者查找服務(wù)提供者接口。服務(wù)提供者負責創(chuàng)建并在服務(wù)注冊庫上發(fā)布服務(wù)描述,同時接受一個或多個服務(wù)請求的調(diào)用消息,并向其提供服務(wù)。
3.SOA的主要操作。SOA的操作主要包括以下方面:
(1)服務(wù)發(fā)布(Publish)。為了被訪問,服務(wù)的描述信息必須被發(fā)布以便服務(wù)請求者發(fā)現(xiàn)和調(diào)用。
(2)服務(wù)查找(Find)。服務(wù)請求者通過查詢注冊庫去定位符合其需求標準的服務(wù)。
(3)服務(wù)綁定和調(diào)用(Bind)。在獲得服務(wù)描述信息之后,服務(wù)請求者據(jù)此去調(diào)用服務(wù)。
4.Web Service架構(gòu)的相關(guān)技術(shù)。目前的Web系統(tǒng)和Web Service架構(gòu)是SOA的典型實例,通過Web系統(tǒng)和Web Service架構(gòu)可以了解SOA的具體實施方式。Web Service以分散的形式存在于不同的系統(tǒng)中,它主要采用了以下5種技術(shù):HTTP(hypertext Transfer Protocol),為Web的網(wǎng)絡(luò)傳輸協(xié)議;XML(Extensible Markup Language),可擴展的標記語言,為Web Service提供了統(tǒng)一的數(shù)據(jù)格式,包括消息、服務(wù)描述以及工作流的描述;SOAP(Simple Qbject Access Protocol),用于交換XML編碼信息的輕量級協(xié)議;WSDL(Web Service Definition Language),是借助XML來描述一個網(wǎng)絡(luò)服務(wù)或端點,用于定義 Web Service及調(diào)用方式;UDDI(Universal Description Discovery Integration),提供了在Web上描述并發(fā)現(xiàn)商業(yè)服務(wù)的框架,是面向Web服務(wù)的信息注冊中心的實現(xiàn)標準和規(guī)范。
在分析現(xiàn)有中小型企業(yè)管理信息系統(tǒng)體系結(jié)構(gòu)的基礎(chǔ)上并根據(jù)當前中小企業(yè)的需求特點,給出了一個基于SOA的中小型企業(yè)管理信息系統(tǒng)的框架結(jié)構(gòu),如圖2所示。

圖2 基于SOA的中小型企業(yè)管理系統(tǒng)的框架結(jié)構(gòu)
該框架主要包括部門SOAP服務(wù)器和企業(yè)業(yè)務(wù)服務(wù)UDDI注冊中心。企業(yè)門戶Web服務(wù)器各部門擁有自己的SOAP服務(wù)器,用WSDL對自己發(fā)布的服務(wù)進行描述,同時在企業(yè)服務(wù)UDD注冊中心進行注冊。而對于部門內(nèi)部的服務(wù)實現(xiàn),可采取開發(fā)Web Service組件的方式進行。
企業(yè)門戶Web服務(wù)器主要用來對用戶進行服務(wù)的集成與展現(xiàn)。用戶通過門戶登錄,根據(jù)相應的權(quán)限,瀏覽相應的頁面,使用具有訪問權(quán)的服務(wù)。用戶也可以使用查詢工具,在UDDI注冊中心進行服務(wù)查詢,既可以通過UDDI的定位URL靜態(tài)定位到需要訪問服務(wù)的SOAP服務(wù)器,也可以通過Web服務(wù)或者應用程序的方式,動態(tài)查找相應的SOAP服務(wù)器。
在此框架中,通過在Web服務(wù)中集成多個管理信息的應用軟件,并提供一個跨越這些應用的業(yè)務(wù)處理的入口點。通過使用私有UDDI注冊中心來獲取可提供的Web服務(wù)管理信息,并且在企業(yè)內(nèi)部網(wǎng)上調(diào)用這些服務(wù)。
系統(tǒng)的工作原理。一般由企業(yè)信息部門建設(shè)和管理Web服務(wù)器以及UDDI注冊中心。其他部門或相關(guān)目錄管理機構(gòu)通過WSDL定義自己的服務(wù),并且在UDDI注冊中心完成注冊后,所有服務(wù)請求者就可以在該框架模型下開展自己的業(yè)務(wù)了。每個部門擁有自己的SOAP服務(wù)器作為服務(wù)發(fā)布器,而以前遺留系統(tǒng)可以通過適配器連接到SOAP服務(wù)器。同時,以后該部門的系統(tǒng)建設(shè)可以直接按照Web Service組件的方式進行開發(fā)和建設(shè)。
系統(tǒng)的具體工作流程。Web服務(wù)提供者根據(jù)需求信息編寫相應的Web服務(wù)功能模塊,并以WSDL的形式描述這些功能,保存在SOAP服務(wù)器中,然后在UDDI注冊中心注冊。UDDI注冊中心更新當前信息或者其他服務(wù)的注冊信息。
本地用戶應用程序(包括終端、PC、手持設(shè)備)請求元數(shù)據(jù)服務(wù)體系查詢所需服務(wù),元數(shù)據(jù)服務(wù)體系返回客戶的所需求的服務(wù)信息(如服務(wù)的當前地址、參數(shù)、功能描述等)。
瀏覽器向Web服務(wù)器發(fā)送事務(wù)請求和身份認證,服務(wù)器接受請求后,瀏覽器可以調(diào)用Web服務(wù),實現(xiàn)對數(shù)據(jù)的操作和處理,在瀏覽器處得到服務(wù)端的處理結(jié)果和相應的消息信息。
此外,在中小型企業(yè)管理信息系統(tǒng)內(nèi),各服務(wù)之間也可以相互調(diào)用、相互服務(wù),將網(wǎng)絡(luò)作為操作平臺,實現(xiàn)真正的分布式處理。采用Web服務(wù)的方式進行功能組織,在各個部分之間使用SOAP協(xié)議進行通信,能較容易穿透防火墻,可很好地解決跨平臺的問題。
面向服務(wù)架構(gòu)是一種面向服務(wù)的企業(yè)應用體系結(jié)構(gòu),是一種分布式的軟件架構(gòu)模型。在該模型中,任何業(yè)務(wù)功能都被作為提供的一個服務(wù)應用。應用程序的不同功能通過這些服務(wù)之間定義的結(jié)構(gòu)和合約聯(lián)系。因此,應用系統(tǒng)可以看做是一系列服務(wù)的集成。
服務(wù)是由它對與其他服務(wù)交換的消息來定義的。服務(wù)與應用之間是聯(lián)通的,服務(wù)可以很容易地在整個部門、企業(yè)或者Internet范圍內(nèi)共享數(shù)據(jù)。面向服務(wù)架構(gòu)定義了部署和管理服務(wù)的方式,采用面向服務(wù)的架構(gòu)可以提高可重用性,降低總成本,并可提高快速修改和演化IT系統(tǒng)的能力。
SOA不是一種語言,也不是一種具體的技術(shù),而是一種架構(gòu)模式,它將應用程序不同功能單元通過這些服務(wù)之間定義良好的接口契約聯(lián)系起來,使得構(gòu)建在系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進行交互。
在整個中小型企業(yè)管理信息系統(tǒng)中,體系結(jié)構(gòu)部分的研究是關(guān)系到整個系統(tǒng)是否靈活、可靠的關(guān)鍵部分。本文中提出的中小型企業(yè)管理的體系結(jié)構(gòu)是基于SOA這種以服務(wù)為導向的、松耦合的架構(gòu),不僅滿足了目前中小型企業(yè)管理的需求,而且滿足了不斷變化的企業(yè)管理的需要,具有十分重要的現(xiàn)實意義。