摘要:本文首先對(duì)Web Service技術(shù)進(jìn)行了簡(jiǎn)介,并對(duì)它的體系結(jié)構(gòu)進(jìn)行深入的闡述。其次介紹了Web Service技術(shù)中的關(guān)鍵技術(shù),其中包括UML、XML、SOAP、WSDL和UDDI。最后依據(jù)Web Services的技術(shù)原理、體系架構(gòu)及關(guān)鍵技術(shù),提出了一個(gè)Web Services技術(shù)在ERP財(cái)務(wù)系統(tǒng)中的應(yīng)用方案。
關(guān)鍵詞:Web Service技術(shù);XML;SOAP;WSDL;UDDI協(xié)議
中圖分類號(hào):TP393.09 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 22-0000-02
1 Web Service技術(shù)概述
Web Service是一種成熟的技術(shù)體系,當(dāng)企業(yè)發(fā)布的完成其特定業(yè)務(wù)功能的Web Service程序時(shí),其他應(yīng)用系統(tǒng)和軟件能夠通過網(wǎng)絡(luò)發(fā)現(xiàn)、訪問和使用該Web Service提供的服務(wù)和功能。Web Services技術(shù)可以理解為[1]:各個(gè)站點(diǎn)之間互相調(diào)用方法實(shí)現(xiàn)功能,不受操作系統(tǒng),編程語(yǔ)言等等的限制,比如:工行的網(wǎng)上銀行系統(tǒng)是使用Java編寫的,中行的網(wǎng)上銀行系統(tǒng)是使用.NET實(shí)現(xiàn)的,但他們都提供轉(zhuǎn)賬的對(duì)外接口,實(shí)現(xiàn)跨語(yǔ)言、平臺(tái)的信息交互。在工行的提款機(jī)上可以使用中行的卡取錢,它就是調(diào)用了中行系統(tǒng)的方法和數(shù)據(jù)庫(kù),中行的數(shù)據(jù)庫(kù)是不允許工行的程序直接去訪問的。
2 Web Service技術(shù)架構(gòu)
Web Service的一個(gè)核心思想[2]就是未來的應(yīng)用將由一組分布式的服務(wù)組成。只要兩個(gè)等同的服務(wù)使用統(tǒng)一標(biāo)準(zhǔn)和規(guī)范化的方法在網(wǎng)絡(luò)上發(fā)布自己,那么其他的應(yīng)用程序就可以根據(jù)需要,從這兩個(gè)服務(wù)之中選出一個(gè)來應(yīng)用,而且均能滿足該應(yīng)用程序的業(yè)務(wù)需求。另外,一些功能服務(wù)是允許在各應(yīng)用服務(wù)器之間復(fù)制的,因此可以通過把需要的服務(wù)加載到本地儲(chǔ)存庫(kù),以提高允許運(yùn)行在特定的服務(wù)器(集群)上的應(yīng)用系統(tǒng)的性能。
Web Services體系架構(gòu)是面向?qū)ο蠓治雠c設(shè)計(jì)(OOAD)的進(jìn)一步的發(fā)展,在電子商務(wù)和網(wǎng)絡(luò)支付中得到廣泛應(yīng)用,WebService是面向體系結(jié)構(gòu)的,其設(shè)計(jì)和實(shí)現(xiàn)是采用的組件化的思想。這種架構(gòu)在大型復(fù)雜系統(tǒng)中經(jīng)受住了應(yīng)用的考驗(yàn)。和面向?qū)ο笙到y(tǒng)一樣,Web Services中的基本概念包括服務(wù)封裝、消息傳遞、動(dòng)態(tài)綁定、服務(wù)描述和查詢,Web Services另外一個(gè)基本觀點(diǎn)就是:所有功能和對(duì)象都是服務(wù),這些服務(wù)通過開放應(yīng)用程序接口,讓網(wǎng)絡(luò)中的其他服務(wù)調(diào)用,并且隱藏其實(shí)現(xiàn)的技術(shù)細(xì)節(jié)。下圖是Web Services的體系結(jié)構(gòu)--面向服務(wù)的體系結(jié)構(gòu)(SOA)。
從圖1可以看出,SOA架構(gòu)中共有三種不同的角色,分別是Service provider、Service broker和Service requester。其中Service provider發(fā)布應(yīng)用服務(wù),并且對(duì)調(diào)用自己發(fā)布服務(wù)的請(qǐng)求進(jìn)行應(yīng)答。Service broker:對(duì)已經(jīng)發(fā)布的Service provider進(jìn)行注冊(cè),并對(duì)其進(jìn)行分類和提供搜索服務(wù)。Service requester:通過Service broker發(fā)現(xiàn)并使用所需要的服務(wù)。
SOA中的組件必須擁有上述一種或多種角色。在這些角色之間使用了三類操作,分別是publish、find和bind。為了支持這三種操作,SOA需要對(duì)服務(wù)進(jìn)行標(biāo)準(zhǔn)化地描述,這種服務(wù)描述具有以下幾個(gè)重要特點(diǎn),首先,它要聲明Service provider的語(yǔ)義特征。Service broker使用語(yǔ)義特征將Service provider進(jìn)行分類,以幫助具體服務(wù)的查找。Service requester根據(jù)語(yǔ)義特征來匹配那些滿足要求的Service provider。因此,語(yǔ)義特征中重要的一點(diǎn)就是對(duì)Service provider的分類。其次,服務(wù)描述應(yīng)該聲明接口特征,以訪問特定的服務(wù)。最后,服務(wù)描述還應(yīng)聲明各種非功能特征,如安全要求,性能要求,事務(wù)要求等。接口特征和非功能特征也可以用來幫助Service requester對(duì)Service provider的查找。
需要注意的是,服務(wù)描述和服務(wù)實(shí)現(xiàn)是分離的,這使得在Service provider的具體實(shí)現(xiàn)(implementation)正處于開發(fā)、部署或完成階段時(shí),Service requester可以對(duì)其進(jìn)行綁定。
另外,要實(shí)現(xiàn)這三種操作,SOA架構(gòu)中的組件之間必須能夠進(jìn)行交互。所以Web Services體系結(jié)構(gòu)的另外一個(gè)開發(fā)準(zhǔn)則就是使用標(biāo)準(zhǔn)的軟件技術(shù),包括消息封裝格式、服務(wù)描述和網(wǎng)絡(luò)協(xié)議等。這樣一來,開發(fā)者就可以開發(fā)出不依賴平臺(tái)和編程語(yǔ)言的Web Services應(yīng)用,從而實(shí)現(xiàn)充分利用現(xiàn)有的軟硬件資源的目的。
最后,SOA體系結(jié)構(gòu)沒有對(duì)Web Service的粒度進(jìn)行限制,因此一個(gè)Web Service既可以是一個(gè)組件(小粒度),該組件必須和其他組件結(jié)合才能進(jìn)行完整的業(yè)務(wù)處理,也可以是一個(gè)應(yīng)用程序(大粒度)。
在使用Web Services時(shí),包括三個(gè)階段的通信。
第一階段的通信被稱為發(fā)現(xiàn)階段(Discover),其主要作用發(fā)現(xiàn)有哪些服務(wù)。經(jīng)過發(fā)現(xiàn)階段我們一般可以確定服務(wù)器一共提供了哪些服務(wù),在使用這些服務(wù)之前我們還必須知道這些服務(wù)支持什么樣的UI。
第二階段的通信就是發(fā)送請(qǐng)求獲得WSDL。
第三階段的通信主要是向Web Services服務(wù)器發(fā)送信息服務(wù)請(qǐng)求,并等待服務(wù)器的應(yīng)答。
3 Web Service的關(guān)鍵技術(shù)
Web Services涉及的最基本的技術(shù)規(guī)范包括XML、SOAP、WSDL和UDDI。WSDL是開發(fā)工程師描述Web Services的編程接口。Web Services可以通過UDDI來注冊(cè)自己提供的服務(wù),其他應(yīng)用程序則可以通過UDDI找到所需要的Web服務(wù)。SOAP則可提供了應(yīng)用程序和Web服務(wù)之間的通信手段。而WSDL、SOAP、和UDDI都是建立在XML基礎(chǔ)之上。Web Service的關(guān)鍵技術(shù)架構(gòu)如圖2所示。
4 Web Service在財(cái)務(wù)系統(tǒng)中的應(yīng)用
現(xiàn)在企業(yè)的ERP系統(tǒng)體系包括很多子系統(tǒng)模塊,這些子系統(tǒng)可能是由不同廠商開發(fā)和提供的,因此企業(yè)對(duì)這些系統(tǒng)數(shù)據(jù)的高集成性提出了更高的要求。一般而言,企業(yè)的信息系統(tǒng)體系是以財(cái)務(wù)子系統(tǒng)為中心,其他的子系統(tǒng)根據(jù)業(yè)務(wù)需求通過接口與財(cái)務(wù)進(jìn)行集成,如采購(gòu)、人事、倉(cāng)庫(kù)、生產(chǎn)、銷售等活動(dòng)產(chǎn)生的數(shù)據(jù)會(huì)動(dòng)態(tài)地進(jìn)入財(cái)務(wù)系統(tǒng),并生成相應(yīng)的財(cái)務(wù)數(shù)據(jù),如應(yīng)收賬款,成本核算等。下面以銷售/收款業(yè)務(wù)為案例,來描述Web Service在財(cái)務(wù)和銷售接口中的應(yīng)用設(shè)計(jì)。
4.1 接口業(yè)務(wù)功能
通過Web Service自動(dòng)提取來自銷售系統(tǒng)的銷售業(yè)務(wù)數(shù)據(jù),并自動(dòng)進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理、結(jié)轉(zhuǎn)銷售收入和產(chǎn)生的費(fèi)用等,及時(shí)獲取即將到期的應(yīng)收款項(xiàng),并生成催款通知單。
4.2 接口設(shè)計(jì)原則
(1)設(shè)計(jì)的接口要穩(wěn)定可靠,茁壯性要強(qiáng),功能定義要完善,任何業(yè)務(wù)系統(tǒng)的升級(jí)或維護(hù)都不能對(duì)另一業(yè)務(wù)系統(tǒng)產(chǎn)生太大影響,同時(shí)要保證傳遞的數(shù)據(jù)的一致性和完整性。
(2)接口系統(tǒng)作為營(yíng)銷系統(tǒng)和財(cái)務(wù)系統(tǒng)間聯(lián)系的通道,應(yīng)該要有很好的可擴(kuò)展性和安全性,有很好的吞吐性能,從而保證能進(jìn)行及時(shí)的數(shù)據(jù)交換和處理。
4.3 接口設(shè)計(jì)
在實(shí)現(xiàn)財(cái)務(wù)銷售接口過程中,采用了Visual Studio 2008作為主要的開發(fā)平臺(tái),使用Sql Server 2005簡(jiǎn)體中文企業(yè)版作為后臺(tái)數(shù)據(jù)庫(kù),操作系統(tǒng)采用Windows 2003中文版。
本接口程序定義了三個(gè)對(duì)象SaleDataService、GLData和DunningBill,SaleDataService存放的是當(dāng)前銷售記錄,對(duì)象GLData存放的是應(yīng)收款項(xiàng)記錄,對(duì)象DunningBill存有財(cái)務(wù)系統(tǒng)發(fā)出的催款信息。接口設(shè)計(jì)如下:
(1)銷售數(shù)據(jù)采集(SalesDataCollection):該接口通過TCP/IP協(xié)議與營(yíng)銷系統(tǒng)完成消息傳遞。把入口參數(shù)提供給接口,就可以采集到銷售業(yè)務(wù)數(shù)據(jù)。
(2)銷售數(shù)據(jù)轉(zhuǎn)換(SalesDataConvert):由于銷售業(yè)務(wù)數(shù)據(jù)是從營(yíng)銷系統(tǒng)采集過來的,營(yíng)銷系統(tǒng)采用的數(shù)據(jù)庫(kù)、編程語(yǔ)言、數(shù)據(jù)字段定義等信息與財(cái)務(wù)系統(tǒng)均不一致,因此需要通過該接口處理數(shù)據(jù),按照財(cái)務(wù)系統(tǒng)的要求規(guī)范數(shù)據(jù)定義和格式。
(3)發(fā)送催款單(SendDunning):根據(jù)財(cái)務(wù)系統(tǒng)定義的賬期,系統(tǒng)會(huì)根據(jù)將即將到期的應(yīng)收款項(xiàng)產(chǎn)生催款信息,該接口會(huì)將催款單傳送給營(yíng)銷系統(tǒng)。
其流程圖如圖3所示:
4.4 系統(tǒng)集成
財(cái)務(wù)與銷售系統(tǒng)的接口集成,采用Web服務(wù)作為訪問接口,實(shí)現(xiàn)對(duì)業(yè)務(wù)數(shù)據(jù)的封裝。Web服務(wù)以WSDL作為Web服務(wù)統(tǒng)一的描述語(yǔ)言,采用統(tǒng)一的可擴(kuò)展的標(biāo)記語(yǔ)言XML作為機(jī)器表示數(shù)據(jù)的基本格式,簡(jiǎn)單對(duì)象訪問協(xié)議SOAP則提供了標(biāo)準(zhǔn)的遠(yuǎn)程過程調(diào)用。這些應(yīng)用程序采用標(biāo)準(zhǔn)協(xié)議(HTTP、XML、SOAP和WSDL)在可伸縮的、松耦合和無狀態(tài)環(huán)境中提供消息傳遞的功能。
5 總結(jié)
本文深刻地闡述了Web Service的核心思想和關(guān)鍵技術(shù),對(duì)其技術(shù)架構(gòu)進(jìn)行了深入的研究,并通過對(duì)財(cái)務(wù)銷售系統(tǒng)的接口集成案例,進(jìn)一步對(duì)WebServices在異構(gòu)系統(tǒng)的接口開發(fā)進(jìn)行了更深層地論述。在跨網(wǎng)絡(luò)跨平臺(tái)應(yīng)用環(huán)境中,Web Service具有很強(qiáng)的生命力。
參考文獻(xiàn):
[1]柴曉路.WebService技術(shù)系列概述[J].互聯(lián)網(wǎng)世界,2002,12(5):80-83.
[2]王繪,尹治本.WebService的深入剖析與研究[J].電腦知識(shí)與技術(shù),2005,33.
[3]熊輝.基于Web Services的企業(yè)信息系統(tǒng)應(yīng)用集成研究[J].武漢科技大學(xué),2008.