前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇soap協(xié)議范文,相信會(huì)為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
關(guān)鍵詞:ONVIF Web 服務(wù) gsoap 網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)
中圖分類號(hào):TP277 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2013)06-0128-03
ONVIF致力于通過全球性的開放接口標(biāo)準(zhǔn)推進(jìn)網(wǎng)絡(luò)視頻在安防市場(chǎng)的應(yīng)用[1]。這一標(biāo)準(zhǔn)定義了網(wǎng)絡(luò)視頻設(shè)備之間信息交換的通用協(xié)議,使不同生產(chǎn)廠商的網(wǎng)絡(luò)視頻產(chǎn)品具有互通性。該協(xié)議是以Web Service為基礎(chǔ)的,目前WebService主要通過基于C/C++編程的gSOAP開源工具、基于C#的NET:sveutil.exe開發(fā)工具和采用JAVA語言的ApacheAXIS2這幾種編程工具來實(shí)現(xiàn)。不管是哪種編程語言,都已經(jīng)有相應(yīng)的工具包來定制和Web服務(wù)。
考慮到gSOAP是一個(gè)快速應(yīng)用程序開發(fā)(RAD)環(huán)境,因?yàn)樵撓到y(tǒng)在利用C和C++開發(fā)Web服務(wù)和客戶端應(yīng)用程序時(shí)很大程度地實(shí)現(xiàn)了自動(dòng)化,在簡(jiǎn)化Web服務(wù)的應(yīng)用程序開發(fā)上具有一系列特征。本文將研究gSOAP工具包在基于ONVIF協(xié)議的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)中的應(yīng)用。
1 gSOAP簡(jiǎn)介
1.1 gSOAP工具包
gSOAP的工具包項(xiàng)目受到美國(guó)聯(lián)邦政府的研究和發(fā)展項(xiàng)目基金的資助[2],是一款開源的WebServices軟件。該工具包提供了一個(gè)SOAP/XML關(guān)于C/C++語言的實(shí)現(xiàn),一定程度上簡(jiǎn)化了使用C/C++語言開發(fā)Web服務(wù)或客戶端程序的工作。gSOAP利用編譯器技術(shù)提供了一組透明化的SOAPAPI,并將與開發(fā)無關(guān)的SOAP實(shí)現(xiàn)細(xì)節(jié)相關(guān)的內(nèi)容對(duì)用戶隱藏起來,故對(duì)軟件開發(fā)者而言無需了解SOAP協(xié)議實(shí)現(xiàn)細(xì)節(jié)而只需調(diào)用這些API即可,因此非常方便。同時(shí)gSOAP能夠集成C/C++和Fortran代碼,跨越多個(gè)操作系統(tǒng)平臺(tái)和語言環(huán)境,使用范圍相當(dāng)廣泛。該工具包分析WSDL語法和XML模式,并且把XML模式類型和SOAP傳遞協(xié)議映射到易于理解和使用的C/C++代碼。如果使用C++語言開發(fā)萬維網(wǎng)服務(wù),還可以選擇是否支持C++的STL。
1.2 gSOAP技術(shù)
gSOAP是跨平臺(tái)的萬維網(wǎng)服務(wù)開發(fā)平臺(tái),資源要求不高,它以XML文件形式請(qǐng)求遠(yuǎn)程服務(wù),再以XML文件的形式返回執(zhí)行結(jié)果。在gSOAP開發(fā)Web服務(wù)的方法的過程,通過使用gSOAP中的wsdl2h命令并根據(jù)輸入的WSDL文檔生成相應(yīng)的頭文件,接著根據(jù)剛剛生成的gSOAP頭文件來運(yùn)行g(shù)SOAP編譯器soap2cpp生成源代碼來實(shí)現(xiàn)客戶端應(yīng)用程序框架,客戶端應(yīng)用程序則可利用RPC存根和gSOAP通信模塊在網(wǎng)絡(luò)上觸發(fā)SOAP/XML服務(wù)函數(shù)。具體流程如圖1所示。
需要指出的是,上面客戶端開發(fā)中所使用的WSDL文檔實(shí)質(zhì)上是一個(gè)XML文檔,它用來描述一個(gè)Web服務(wù)的定義。
2 相關(guān)ONVIF模塊實(shí)現(xiàn)
基于ONVIF協(xié)議的網(wǎng)絡(luò)視頻監(jiān)控的網(wǎng)絡(luò)視頻接口方案,是基于Web服務(wù)框架,使用了WSDL網(wǎng)絡(luò)描述語言進(jìn)行服務(wù)定義,XML語言對(duì)數(shù)據(jù)進(jìn)行描述,并采用SOAP通信協(xié)議進(jìn)行信息傳輸。其重點(diǎn)在于網(wǎng)絡(luò)視頻的發(fā)送端與網(wǎng)絡(luò)視頻接收端之間的接口,因而具有嚴(yán)格的執(zhí)行過程,確保了作為統(tǒng)一化通用接口的兼容性與可靠性。ONVIF規(guī)范的接口功能包含網(wǎng)絡(luò)服務(wù)框架、設(shè)備發(fā)現(xiàn)和管理、媒體服務(wù)和實(shí)時(shí)流傳輸、云臺(tái)控制等。
ONVIF的相關(guān)服務(wù)模塊,利用與其對(duì)應(yīng)的WSDL文件來描述該服務(wù)。服務(wù)請(qǐng)求方可以利用該WSDL文件,通過gSOAP編譯工具wsdl2h和soapcpp2產(chǎn)生SOAP框架代碼。下面具體分析gSOAP對(duì)ONVIF規(guī)范下的媒體服務(wù)模塊的應(yīng)用開發(fā)。
2.1 媒體服務(wù)
2.2 具體實(shí)現(xiàn)
根據(jù)ONVIF規(guī)范開發(fā)流程,可以在ONVIF官方網(wǎng)站下載相應(yīng)的媒體服務(wù)相關(guān)的media.wsdl文件,該文件主要是用來描述與媒體服務(wù)相關(guān)的Web服務(wù)交互的消息格式、數(shù)據(jù)類型、操作、協(xié)議在程序設(shè)計(jì)中我們調(diào)用的SOAP系列函數(shù)是gSOAP提供的透明化的API,通過它們,可以設(shè)置SOAP環(huán)境,并進(jìn)而通過遠(yuǎn)程調(diào)用方法作為gSOAP交互模型的入口函數(shù),發(fā)送請(qǐng)求。在gSOAP交互模型中,主要遵循HTTP/HTTPS通信協(xié)議來完成開發(fā)人員的需求。
關(guān)鍵詞:Web服務(wù);SOAP頭;身份驗(yàn)證;ASP.NE;C#
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)04-0849-02
Authentication Technology of Web Services Based on SOAP Header
LU Shou-dong
(Department of Computer And Information Management, Guangxi University of Finance and Economics, Nanning 530003, China)
Abstract: This paper introduces the authentication technology of Web Services based on SOAP header, and explains its programming pattern under .NET plat through the concrete example.
Key words:Web Services; SOAP Header; Authentication; ; C#
Web服務(wù)(Web Services)是目前最為流行的應(yīng)用于異構(gòu)環(huán)境的分布式組件開發(fā)技術(shù)。作為一種部署在Web上的可編程訪問的對(duì)象,如何確保其安全性是在具體應(yīng)用中必須考慮的一個(gè)重要問題。為控制對(duì)Web服務(wù)的合法訪問,對(duì)服務(wù)使用者的身份進(jìn)行驗(yàn)證是很有必要的。本文主要介紹一種基于SOAP頭的Web服務(wù)身份驗(yàn)證技術(shù),并通過具體示例說明其編程模式。
1 Web服務(wù)簡(jiǎn)介
Web服務(wù)是一種通過網(wǎng)絡(luò)進(jìn)行、發(fā)現(xiàn)、調(diào)用的自描述的服務(wù)器端軟件組件,其實(shí)現(xiàn)依賴于一系列的標(biāo)準(zhǔn)協(xié)議或規(guī)范(如圖1所示),包括HTTP、XML、SOAP、WSDL、UDDI等。簡(jiǎn)言之,Web服務(wù)以XML與XML Schema為數(shù)據(jù)編碼格式與數(shù)據(jù)類型標(biāo)準(zhǔn),使用WSDL進(jìn)行描述,使用UDDI進(jìn)行與發(fā)現(xiàn),使用SOAP進(jìn)行訪問,并通過HTTP等進(jìn)行傳輸。Web服務(wù)的上層核心標(biāo)準(zhǔn)都是基于XML的,具有優(yōu)異的跨平臺(tái)特性,這為Web服務(wù)在異構(gòu)平臺(tái)上進(jìn)行系統(tǒng)的集成與交互提供了充分的保證。
2 SOAP協(xié)議概況
SOAP即簡(jiǎn)單對(duì)象訪問協(xié)議(Simple Object Access Protocol),是一種基于XML的、簡(jiǎn)單的、輕量級(jí)的通信協(xié)議,用于在客戶端與Web服務(wù)之間傳遞消息(包括請(qǐng)求消息與響應(yīng)消息)。
SOAP協(xié)議使用XML描述消息。一個(gè)SOAP消息其實(shí)是一個(gè)XML文檔,包括Envelope(SOAP信封)、Header(SOAP頭)、Body(SOAP體)3個(gè)元素。其中,Envelope是整個(gè)SOAP消息的根元素,是必須的;Header是SOAP消息是可選元素,若存在,則必須是Envelope的第一個(gè)直接子元素;Body是SOAP消息必須有的元素,而且是Envelope的直接子元素,用于包含Web服務(wù)的調(diào)用信息(如所調(diào)用方法的名稱及有關(guān)參數(shù)等)或響應(yīng)信息以及相關(guān)的錯(cuò)誤信息。SOAP消息的結(jié)構(gòu)如圖2所示。
在SOAP消息中,SOAP體的使用是由SOAP協(xié)議規(guī)定,而SOAP頭的使用則較為靈活,可由用戶根據(jù)需要進(jìn)行定制。通常,可在SOAP頭中添加一些條目,以包含具體應(yīng)用所必須的重要信息(如賬戶信息、事務(wù)標(biāo)識(shí)等),并據(jù)此實(shí)現(xiàn)相應(yīng)的功能。
3 基于SOAP頭的身份驗(yàn)證
通過在SOAP頭中添加適當(dāng)?shù)尿?yàn)證信息,并由Web服務(wù)的進(jìn)行讀取與處理,即可實(shí)現(xiàn)對(duì)服務(wù)使用者的身份驗(yàn)證。在此,以 Web服務(wù)為例,說明基于SOAP頭的Web服務(wù)身份驗(yàn)證技術(shù)。
3.1 基本步驟
Web服務(wù)允許定義并處理SOAP頭條目,其基本步驟為:
1) 創(chuàng)建一個(gè)繼承自SoapHeader的類AuthSoapHeader,該類的名稱與公共成員變量即為SOAP頭條目元素的名稱與內(nèi)容子元素。
2) 在Web服務(wù)類中聲明一個(gè)AuthSoapHeader類的公共變量MyASH。
3) 為Web服務(wù)的有關(guān)方法應(yīng)用SoapHeader屬性,并將其MemberName屬性設(shè)置為MyASH。
4) 在應(yīng)用了SoapHeader屬性的Web服務(wù)方法中訪問MyASH的成員變量,并完成相應(yīng)的處理過程。
相應(yīng)地,在調(diào)用Web服務(wù)的客戶端,可通過以下基本步驟設(shè)置SOAP頭條目:
1) 創(chuàng)建一個(gè)Web服務(wù)的實(shí)例變量MyAService。
2) 創(chuàng)建一個(gè)AuthSoapHeader類的實(shí)例變量MyASHeader,并為其成員變量賦值。
3) 將MyASHeader賦給MyAService.AuthSoapHeaderValue(即設(shè)置SOAP頭條目),并調(diào)用Web服務(wù)的有關(guān)方法以完成相應(yīng)的功能。
3.2 應(yīng)用示例
如圖3所示,為一系統(tǒng)登錄表單,用于對(duì)系統(tǒng)用戶進(jìn)行身份驗(yàn)證,其驗(yàn)證過程是通過調(diào)用Web服務(wù)完成的,而用戶名與密碼則通過SOAP 頭進(jìn)行傳送。為簡(jiǎn)單起見,該示例假定用戶名與密碼均非空串時(shí)即為合法。單擊“確定”按鈕后,若為合法用戶,則提示信息顯示為“Success”,否則為“Failure”。下面,簡(jiǎn)述該示例的設(shè)計(jì)要點(diǎn)。
1) Web服務(wù)AuthService的設(shè)計(jì)
在Visual Studio .NET中使用 Web服務(wù)模板新建一個(gè)Visual C#項(xiàng)目AuthService,并將Service1.asmx重命名為Authentication.asmx,然后在Authentication.asmx.cs中編寫相應(yīng)的代碼。關(guān)鍵代碼如下:
……
using System.Web.Services.Protocols;
namespace AuthService {
public class AuthSoapHeader : SoapHeader {
public string Username;
public string Password; }
[WebService(Namespace="/webservices")]
public class AuthService : System.Web.Services.WebService {
……
public AuthSoapHeader MyASH;
[WebMethod]
[SoapHeader("MyASH")]
public string AuthenticateUser() {
if (MyASH==null)
return "Failure!";
if (VerifyUser(MyASH.Username,MyASH.Password))
return "Success";
return "Failure"; }
private bool VerifyUser(string Username,string Password) {
if ((Username!="")&&(Password!=""))
return true;
return false;
} } }
2) 客戶端Login.aspx的設(shè)計(jì)
① 在Visual Studio .NET中使用 Web應(yīng)用程序模板新建一個(gè)Visual C#項(xiàng)目AuthClient。
② 添加對(duì)Web服務(wù)AuthService的Web引用,并命名為Authentication。
③ 將WebForm1.aspx重命名為L(zhǎng)ogin.aspx,同時(shí)設(shè)計(jì)好其界面(如圖3所示),主要包括用戶名文本框TB_Username、密碼文本框TB_Password、提示信息標(biāo)簽L_Message與“確定”按鈕。
④ 為L(zhǎng)ogin.aspx.cs添加功能代碼。
首先,引用命名空間AuthClient.Authentication:
using AuthClient.Authentication;
然后,編寫“確定”按鈕的單擊事件代碼:
AuthService MyAService=new AuthService();
AuthSoapHeader MyASHeader=new AuthSoapHeader();
MyASHeader.Username=TB_Username.Text;
MyASHeader.Password=TB_Password.Text;
MyAService.AuthSoapHeaderValue=MyASHeader;
L_Message.Text="提示信息:"+MyAService.AuthenticateUser()+".";
4 結(jié)束語
SOAP頭為Web服務(wù)及其客戶端之間關(guān)鍵數(shù)據(jù)的傳遞提供了一種靈活且有效的途徑,有利于實(shí)現(xiàn)身份驗(yàn)證、事務(wù)處理等特殊功能。文中所述,即為利用SOAP頭對(duì)Web服務(wù)使用者進(jìn)行身份驗(yàn)證的關(guān)鍵技術(shù)與與典型模式。
參考文獻(xiàn):
[關(guān)鍵詞]Web Service;SOAP消息;WSDL
中圖分類號(hào):TM743 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-914X(2016)08-0317-01
1.緒論
隨著互聯(lián)網(wǎng)絡(luò)的廣泛應(yīng)用和發(fā)展,特別是.NET技術(shù)的升溫和市場(chǎng)的日漸成熟,微軟公司的.NET框架和SUN公司的J2EE框架均可作為開發(fā)平臺(tái)和工具。只有少數(shù)有實(shí)力的公司具備開發(fā)兩套獨(dú)立的產(chǎn)品的實(shí)力,以滿足不同的客戶需求。更多的廠商則希望自己開發(fā)的產(chǎn)品能相互移植,并能更容易的與其他有需要的業(yè)務(wù)系統(tǒng)接口。
Web Service[1]的出現(xiàn)在一定程度上實(shí)現(xiàn)了上述所需要的功能。狹義的說:Web Service就是XML與HTTP相結(jié)合。HTTP是一個(gè)在Internet上廣泛使用的協(xié)議。XML[2]是一種元語言,你可以用它書寫特定的語言來描述客戶和服務(wù)之間或者組件和復(fù)雜服務(wù)之間的交互。在通過Web Service之后,XML格式的消息被轉(zhuǎn)變成中間件的請(qǐng)求,返回的結(jié)果也會(huì)轉(zhuǎn)化成XML格式。
可見Web Service并不是一種新的技術(shù),它是將 XML、Internet等網(wǎng)絡(luò)軟件技術(shù)有機(jī)結(jié)合后,所產(chǎn)生的一種新的web應(yīng)用程序分支。它是一種包括自包含、自描述、模塊化的應(yīng)用,可以、定位、通過web調(diào)用。它可以執(zhí)行從簡(jiǎn)單的請(qǐng)求到復(fù)雜商務(wù)處理的任何功能,一旦部署以后,其他Web Service應(yīng)用程序就可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。
2.Web Service 結(jié)構(gòu)分解
因此,可以從兩個(gè)角度分解 Web Service 結(jié)構(gòu):
1、 從每個(gè)單獨(dú)的Web Service 使用者的角度:
服務(wù)的請(qǐng)求者:即任意 Web Service 的消費(fèi)者,通過網(wǎng)絡(luò)連接和發(fā)送XML 請(qǐng)求使用一個(gè)實(shí)際可用的Web Service。
服務(wù)的提供者:負(fù)責(zé)維護(hù)Web Service和提供相應(yīng)的服務(wù)。
服務(wù)注冊(cè)中心:即一個(gè)Web Service的“黃頁”,使提供者可以新的服務(wù),請(qǐng)求者可以找到需要的服務(wù)。
2、 從Web Service協(xié)議層的角度
Web Service的協(xié)議層仍在不斷發(fā)展中。當(dāng)前,一般將其分為4層
傳輸層:該層位于協(xié)議堆棧的最底層,主要負(fù)責(zé)在應(yīng)用程序間傳輸信息。當(dāng)前該層使用包括 HTTP、FTP、SMTP 協(xié)議在內(nèi)的多種傳統(tǒng)網(wǎng)絡(luò)傳輸協(xié)議。
XML 消息層:該層負(fù)責(zé)將信息編碼為通用XML格式,當(dāng)前該層使用XML-RPC、SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議)。
服務(wù)描述層:該層負(fù)責(zé)描述指定Web Service的公用接口,當(dāng)前該層使用 WSDL(Web Service Description Language,Web 服務(wù)描述語言)。
查找發(fā)現(xiàn)層:該層負(fù)責(zé)將Web Service集中到一個(gè)公用的注冊(cè)中心,相當(dāng)于一個(gè)Web Service
的“黃頁”,并提供和查找功能,當(dāng)前使用 UDDI(Universal Description,Discovery, and Integration,統(tǒng)一描述、發(fā)現(xiàn)和集成)。
不難看出,Web Service是建立在一些通用協(xié)議的基礎(chǔ)上,如HTTP、SOAP、XML、XML-RPC、WSDL、UDDI等。這些協(xié)議在涉及到操作系統(tǒng)、對(duì)象模型和編程語言的選擇時(shí),沒有明顯的傾向,因此將會(huì)有較強(qiáng)的生命力。
3.SOAP
SOAP,簡(jiǎn)單對(duì)象訪問協(xié)議[3]:用于分散或分布的環(huán)境中交換信息的簡(jiǎn)單的協(xié)議,它是一個(gè)基于XML的協(xié)議,通過 XML Schema 定義了傳遞數(shù)據(jù)時(shí)的統(tǒng)一方式。包括三個(gè)部分:
1、 描述消息中包含什么內(nèi)容以及如何處理它們。
2、 用于表示應(yīng)用程序數(shù)據(jù)類型的編碼規(guī)則,主要使用 XML Schema 數(shù)據(jù)類型,并添加了 Array 和Struct,用于表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。
3、 表示 Request和 Response的協(xié)定。
Envelope:是每個(gè) SOAP 消息的根元素。
Header:可選的Header 元素提供了一個(gè)可擴(kuò)展的框架用于定義應(yīng)用程序所需的額外信息。
Body:Body 元素是所有 SOAP 消息所必須的,一個(gè)典型的 Body 元素包含 RPC 請(qǐng)求和響應(yīng)。
Fault:當(dāng)發(fā)生錯(cuò)誤時(shí),Body元素將包括一個(gè) Fault 元素,包含了該錯(cuò)誤的所有詳細(xì)信息。
WSDL,Web 服務(wù)描述語言
UDDI(Universal Description, Discovery, and Integration,統(tǒng)一描述、發(fā)現(xiàn)和集成):
Web服務(wù)描述語言 (WSDL) 使用XML語法,用來描述一個(gè)Web Service能做什么,它的位置在哪里,如何調(diào)用它等等。當(dāng)在以SOAP/HTTP/MIME作為遠(yuǎn)程對(duì)象調(diào)用機(jī)制的情況下,WSDL會(huì)發(fā)揮其最大作用[4]。
UDDI則描述了Web Service的絕大多數(shù)方面,包括服務(wù)綁定等細(xì)節(jié)。因此,WSDL可以看作是UDDI服務(wù)描述的子集。
4.結(jié)論與展望
當(dāng)前的 Web Service 仍然不很成熟,主要表現(xiàn)在以下幾個(gè)方面:
1、 由于Web Service的基礎(chǔ)是 XML,SOAP、WSDL、XML-RPC、UDDI 都是通過 XML作為元語言定義的。但是XML定義仍不統(tǒng)一,雖然 W3C 在2001 年 XML Schema,用于代替 DTDs,但微軟也拋出了自己的XML 定義模式-“XDR”。而且 DTDs 也還有一定的市場(chǎng),所以對(duì)于“跨平臺(tái)使用”,這個(gè) Web Service 最大的優(yōu)勢(shì),有所制約。
2、 Web Service本身不提供加密機(jī)制,這對(duì)使用者的安全性是一個(gè)巨大的挑戰(zhàn)。而使用SSL機(jī)制加密,則對(duì)性能有很大的影響,保守估計(jì)下降 20%-30%。
瑕不掩瑜,作為 Internet的一個(gè)革命性進(jìn)步,Web服務(wù)必將開創(chuàng)一個(gè)分布式應(yīng)用程序開發(fā)的新時(shí)代。
參考文獻(xiàn)
[1] 王建斌,胡小生,李康君, 趙靚,REST風(fēng)格和基于SOAP的Web Services的比較與結(jié)合 [J],計(jì)算機(jī)應(yīng)用與軟件,2010,27(9):298-300
[2] 周軍鋒,孟小峰,XML關(guān)鍵字查詢處理研究[J],計(jì)算機(jī)學(xué)報(bào) , 2012,35(12):2459-2478
關(guān)鍵詞:分布式計(jì)算;XML Web Service;SOAP、WSDL;UDDI
Abstract: with the development of geographic information system and the popularization, cannot be confined to a single geographic information system server mode, can only be updated by the server system. Distributed network geographic information system spatial data storage server can be in multiple sites, the server through the analysis of the client request, determining the user required data location, access to the corresponding data back to the client.
Key words: distributed computing; XML Web Service; SOAP, WSDL; UDDI
中圖分類號(hào):TP338.8文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-2104(2012)
地理信息系統(tǒng)是土地管理和分析空間數(shù)據(jù)的應(yīng)用工程技術(shù)。近年來,地理信息系統(tǒng)發(fā)展迅速,已經(jīng)不滿足于集中式計(jì)算模式,桌面系統(tǒng)在數(shù)據(jù)共享和信息交換的模式。需要更廣義的應(yīng)用模式來完善地理信息系統(tǒng)。
分布式計(jì)算是指在獨(dú)立的計(jì)算機(jī)的集合系統(tǒng)中通過網(wǎng)絡(luò)通信來開發(fā)、部署、管理和維護(hù)以資源共享和協(xié)同工作為主要應(yīng)用目標(biāo)的分布式應(yīng)用系統(tǒng)[9]。其目的在于改進(jìn)傳統(tǒng)的集中式計(jì)算模式。分布式計(jì)算在性價(jià)比、伸縮性、安全性等很多方面相對(duì)于集中式計(jì)算模式都有很大優(yōu)勢(shì),比桌面系統(tǒng)在數(shù)據(jù)共享和信息交流方面也體現(xiàn)出極大的優(yōu)勢(shì)。
分布式計(jì)算模式與網(wǎng)絡(luò)地理信息系統(tǒng)相結(jié)合,改善了用戶只能通過瀏覽器訪問單一的地理信息系統(tǒng)服務(wù)器的方式,可以將空間數(shù)據(jù)存儲(chǔ)在多個(gè)站點(diǎn)上,服務(wù)器通過分析客戶端請(qǐng)求,確定用戶需要的數(shù)據(jù)位置,獲得相應(yīng)的數(shù)據(jù)返回給客戶端。分布式網(wǎng)絡(luò)地理信息系統(tǒng)的服務(wù)器端必須是一個(gè)網(wǎng)絡(luò),通過系統(tǒng)中的數(shù)據(jù)分布特征和針對(duì)其中數(shù)據(jù)處理的計(jì)算特征而分類,其目的是實(shí)現(xiàn)空間數(shù)據(jù)互操作和空間計(jì)算功能共享。
XML Web Service(eXtensible Markup Language Web Service,可擴(kuò)展標(biāo)記語言的Web服務(wù))是分布式計(jì)算模式的重大變革。XML為計(jì)算機(jī)之間和應(yīng)用程序之間提供了用于數(shù)據(jù)采集和傳輸?shù)慕y(tǒng)一數(shù)據(jù)格式,XML Web Service是Internet級(jí)別分布式計(jì)算環(huán)境的基本程序模塊,其最大特點(diǎn)是基于標(biāo)準(zhǔn)開放網(wǎng)絡(luò)協(xié)議進(jìn)行程序間的通訊和協(xié)作。由于XML Web Service是同構(gòu)/異構(gòu)應(yīng)用程序集成平臺(tái),應(yīng)用程序可以集成多個(gè)不同來源的XML Web Service,這些服務(wù)協(xié)同工作,不需要知道XML Web Service的實(shí)現(xiàn)技術(shù)、運(yùn)行平臺(tái)和服務(wù)所處位的,就可以構(gòu)建一定業(yè)務(wù)操作的服務(wù)。XML Web Service的最大優(yōu)點(diǎn)是允許在不同的平臺(tái)上用不同語言編寫各種程序以實(shí)現(xiàn)基于標(biāo)準(zhǔn)的方式相互通信。
SOAP(Simple Object Access Protocol ,簡(jiǎn)單對(duì)象訪問協(xié)議)是XML Web Service的標(biāo)準(zhǔn)通信協(xié)議,用來規(guī)范XML格式,其規(guī)范的其他程序,比如將程序數(shù)據(jù)表示為XML,以及如何使用SOAP進(jìn)行遠(yuǎn)程過程調(diào)用,這些可選的規(guī)范部分用于實(shí)現(xiàn)RPC(Remote Procedure Call,遠(yuǎn)程過程調(diào)用)形式的應(yīng)用程序。SOAP規(guī)范的最后一個(gè)可選部分定義了包含SOAP消息的HTTP消息的樣式,該部分雖然可選,但幾乎所有的SOAP實(shí)現(xiàn)方案都支持HTTP綁定,它是SOAP的唯一標(biāo)準(zhǔn)協(xié)議,也是Web的核心協(xié)議。HTTP的普及和SOAP的簡(jiǎn)單性是XML Web Service的理想基礎(chǔ)。
WSDL(Web Service Description Language)是一個(gè)XML文檔,是XML Web Service的接口描述語言,用于說明一組SOAP消息以及如何交換這些消息,還定義了服務(wù)的位置以及使用什么通信協(xié)議與服務(wù)進(jìn)行通信。
UDDI(Universal Description,Discovery,and Intergration,統(tǒng)一描述、發(fā)現(xiàn)和集成)是Web服務(wù)的黃頁,UDDI目錄條目是介紹提供的業(yè)務(wù)和服務(wù)的XML文件,其服務(wù)的類型是通過一個(gè)成為類模型的UDDI文檔來完成的,多數(shù)情況下,類模型包括一個(gè)WSDL文件,用于說明訪問XML Web Service的SOAP接口,該模型非常靈活,可以用于說明幾乎所有類型的服務(wù)。UDDL還包括很多種方法,可用于搜索構(gòu)建應(yīng)用程序所需要的服務(wù)。
參考文獻(xiàn)
[1]鄔倫,劉瑜,張晶等.地理信息系統(tǒng)原理方法和應(yīng)用[M].科學(xué)出版社.2007.
關(guān)鍵詞:Web Services 供應(yīng)鏈 SOAP XML WDSL
中圖分類號(hào):G71 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2013)04(c)-0001-02
隨著市場(chǎng)競(jìng)爭(zhēng)的日益激烈、顧客需求的不斷變化,企業(yè)但憑自身的有限資源難以在市場(chǎng)中獲得競(jìng)爭(zhēng)優(yōu)勢(shì),企業(yè)之間的競(jìng)爭(zhēng)逐漸演化為企業(yè)所處供應(yīng)鏈之間的競(jìng)爭(zhēng)。供應(yīng)鏈?zhǔn)菄@核心企業(yè),通過對(duì)信息流、物流、資金流等各種流的管理與控制,原材料的供應(yīng)開始,經(jīng)過產(chǎn)品的制造、分配、遞送、消費(fèi)等過程中將供應(yīng)商、制造商、分銷商、零售商直至最終客戶聯(lián)成一個(gè)整體的功能網(wǎng)鏈的結(jié)構(gòu)模式[1~3]。供應(yīng)鏈?zhǔn)瞧髽I(yè)之間為了共同的市場(chǎng)利益而結(jié)成的戰(zhàn)略聯(lián)盟,核心企業(yè)利用各個(gè)盟友的核心資源優(yōu)勢(shì),迅速提升企業(yè)的綜合能力。
供應(yīng)鏈具有明顯的動(dòng)態(tài)性,供應(yīng)鏈中的節(jié)點(diǎn)企業(yè)隨市場(chǎng)需求的變化及時(shí)更新。如何在分布的企業(yè)中有效地尋找最合適的盟友,實(shí)現(xiàn)供應(yīng)鏈的動(dòng)態(tài)重組與控制是供應(yīng)鏈組鏈的首要任務(wù)。其次由于供應(yīng)鏈上各節(jié)點(diǎn)企業(yè)的資源具有分布性、異構(gòu)性和不確定性的特點(diǎn),資源的有效集成難以實(shí)現(xiàn)。Web Service技術(shù)是Web應(yīng)用的前沿技術(shù),適用于分布式異構(gòu)系統(tǒng)的集成,本文提出了基于Web Service的動(dòng)態(tài)供應(yīng)鏈集成模式[4]。
1 Web Service技術(shù)及實(shí)施模式
1.1 Web Service含義及技術(shù)內(nèi)容
Web Service是能夠獨(dú)立實(shí)現(xiàn)某些功能的模塊化Web服務(wù)程序[5~6]。它的基本思想是把軟件當(dāng)作一種服務(wù)。Web Services后,其他應(yīng)用軟件或Web Services可以通過Internet來訪問并使用該服務(wù)。Web Services的內(nèi)核由服務(wù)程序或功能組件(如:COM、DCOM、CORBA、EJB、RMI-IIOP等)組成,服務(wù)程序和功能組件決定了Web Services的功能,Web Services的創(chuàng)建過程是通過配置WSDL文件,用SOAP協(xié)議把異構(gòu)的服務(wù)程序或功能組件封裝成Web Services[7]。Web Services的結(jié)構(gòu)如圖1所示。
Web Service的技術(shù)支持如下。
(1)以XML為基礎(chǔ)語言把數(shù)據(jù)序列轉(zhuǎn)化成一個(gè)可以傳遞的形式,使得它能夠在任何平臺(tái)上被解碼。
(2)運(yùn)用SOAP協(xié)議實(shí)現(xiàn)通信。SOAP以HTTP為底層通訊協(xié)議,把對(duì)象間的訪問請(qǐng)求和響應(yīng)都打包成符合規(guī)范的XML文檔,在對(duì)象間傳遞。
(3)采用標(biāo)準(zhǔn)的WSDL(Web Services Description Language)描述服務(wù)和接口的說明信息,WDSL文檔描述Web Services所的服務(wù)內(nèi)容及Web Services提供的每個(gè)方法的返回類型、名稱、傳遞參數(shù)類型等。
(4)通過UDDI(Universal Description,Discovery,Integration)、請(qǐng)求服務(wù)。服務(wù)提供方通過在一個(gè)或者多個(gè)UDDI注冊(cè)中心注冊(cè)服務(wù),服務(wù)請(qǐng)求者可以到一個(gè)或者多個(gè)UDDI注冊(cè)中心查詢所需要的服務(wù)。
1.2 Web Service實(shí)施模式
Web Services的體系結(jié)構(gòu)基于服務(wù)提供者、服務(wù)者(UDDI注冊(cè)中心)和服務(wù)請(qǐng)求者三種角色之間的交互,交互過程如圖2所示。
(1)Web Services的提供者按照UDDI的規(guī)范,把WSDL文檔注冊(cè)到UDDI服務(wù)中心,并保持注冊(cè)信息的動(dòng)態(tài)更新。UDDI對(duì)注冊(cè)服務(wù)進(jìn)行分類,并提供搜索服務(wù),同時(shí)向服務(wù)提供方反饋?zhàn)?cè)狀態(tài)。(2)服務(wù)需求者登陸UDDI中心,根據(jù)需求查詢對(duì)應(yīng)服務(wù),獲取它們的WSDL文檔。(3)服務(wù)需求方根據(jù)在UDDI中獲得的WSDL文檔直接向服務(wù)提供方發(fā)送服務(wù)請(qǐng)求命令,服務(wù)提供方按命令提供相應(yīng)的服務(wù)。
2 基于Web Services的動(dòng)態(tài)供應(yīng)鏈組鏈模型
動(dòng)態(tài)供應(yīng)鏈強(qiáng)調(diào)快速響應(yīng)市場(chǎng)變化,當(dāng)某一核心企業(yè)獲得市場(chǎng)機(jī)遇,立即尋找合作伙伴組鏈,共同完成產(chǎn)品的設(shè)計(jì)、原材料采購(gòu)、制造、銷售等,當(dāng)某個(gè)企業(yè)完成任務(wù)后便解鏈離開,當(dāng)遇到新的問題是核心企業(yè)再尋找新的伙伴組鏈;其實(shí)質(zhì)是發(fā)揮企業(yè)各自的核心競(jìng)爭(zhēng)力,把自己不擅長(zhǎng)的業(yè)務(wù)外包,或與盟友協(xié)作共同完成。然而由于供應(yīng)商、制造商、銷售商在具有分布性、異構(gòu)性和不確定性,盟友的合理、快速的選擇是組建動(dòng)態(tài)供應(yīng)鏈的核心問題。基于Web Services技術(shù)的組鏈有兩個(gè)過程。
(1)首先,供應(yīng)鏈上的各個(gè)企業(yè)把自己的核心業(yè)務(wù)范圍描述成WSDL文檔,并在供應(yīng)鏈UDDI中心注冊(cè)。UDDI保存各個(gè)注冊(cè)企業(yè)的WSDL描述文檔,并向外,過程如圖3所示。
(2)當(dāng)某個(gè)核心企業(yè)獲得市場(chǎng)機(jī)遇需要與其他企業(yè)合作組建供應(yīng)鏈時(shí),便登陸供應(yīng)鏈UDDI注冊(cè)中心尋找匹配的盟友,獲得他們的WSDL描述文檔。根據(jù)WSDL的描述與盟友進(jìn)行信息通訊、業(yè)務(wù)合作,形成供應(yīng)鏈,如圖4所示。
3 基于Web Services的動(dòng)態(tài)供應(yīng)鏈資源集成
動(dòng)態(tài)供應(yīng)鏈的集成是通過各個(gè)Web Services之間的信息傳遞來實(shí)現(xiàn)的。核心企業(yè)對(duì)Web Services的調(diào)用是通過SOAP消息方式實(shí)現(xiàn)的,SOAP協(xié)議的執(zhí)行而不依賴于某種專用的組件技術(shù)或?qū)ο笳{(diào)用約定。無須考慮Web Services具體使用的編程語言以及其內(nèi)部使用的分布式組件結(jié)構(gòu)。工作原理如圖5所示。
(1)核心企業(yè)用客戶程序創(chuàng)建一個(gè)調(diào)用Web Services的SOAP消息,消息包含進(jìn)行服務(wù)調(diào)用必須的信息和XML格式的消息載荷,消息載荷是用于資源信息轉(zhuǎn)換的XML文件。SOAP協(xié)議與HTTP協(xié)議綁定,SOAP消息通過HTTP協(xié)議在網(wǎng)上送出。
(2)基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)將消息送到服務(wù)提供方的SOAP消息服務(wù)器上,消息服務(wù)器由消息監(jiān)聽器和消息路由器組成。
(3)消息服務(wù)器上的監(jiān)聽器收到此消息后,交由SOAP路由器處理決定轉(zhuǎn)發(fā)至負(fù)荷請(qǐng)求調(diào)用要求的Web Services。
(4)由Web Services功能組件處理后將結(jié)果封裝成SOAP消息返回給核心企業(yè)。
(5)核心企業(yè)接收到響應(yīng)后解析出處理結(jié)果,再返回給實(shí)際的業(yè)務(wù)需求程序。
4 結(jié)論
We Services是多項(xiàng)技術(shù)共同發(fā)展的結(jié)果,涉及到分布式計(jì)算、組件技術(shù)、網(wǎng)絡(luò)通信、XML、Web和中間件等等。它提出了一種新的面向服務(wù)的體系結(jié)構(gòu),為企業(yè)資源的集成與共享提供了一個(gè)方便有效的途徑。本文把Web Services技術(shù)運(yùn)用于企業(yè)動(dòng)態(tài)供應(yīng)鏈的快速組建、敏捷重構(gòu)于控制,從而迅速提升企業(yè)的綜合能力,提高響應(yīng)市場(chǎng)變化的能力。當(dāng)然隨著Web Services技術(shù)的發(fā)展,它將會(huì)在動(dòng)態(tài)供應(yīng)鏈的資源集成中發(fā)揮更大的作用。
參考文獻(xiàn)
[1] 宋庭新,黃必清,熊健民,等.語義Web服務(wù)在業(yè)務(wù)協(xié)同與供應(yīng)鏈集成中的應(yīng)用[J].中國(guó)機(jī)械工程,2008,19(4):410-413.
[2] Mose M, Seshadri S. Policy mechanisms for supply chain co-ordination. IIE Transactions,2000,32:245-262.
[3] Guide JVDR, Luk N, Van W. The Reverse Supply Chain, Harvard Business Review,2002,80(2):25-26.
[4] 王彥麗,陳明,陳峰,等.基于Web Services企業(yè)應(yīng)用集成的設(shè)計(jì)與分析[J].計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(9):212-215.
[5] 鞠彥輝.基于Web Services技術(shù)的企業(yè)信息集成系統(tǒng)架構(gòu)研究[J].中國(guó)管理信息化,2007,10(2):39-41.