免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
典型的Web Service結(jié)構(gòu)
典型的Web Service結(jié)構(gòu)。
不管你的Web service是用什么工具,什么語言寫出來的,只要你用SOAP協(xié)議通過HTTP來調(diào)用它,總體結(jié)構(gòu)都應(yīng)如下圖所示。通常,你用你自己喜歡的語言(如VB 6或者VB.NET)來構(gòu)建你的Web service,然后用SOAP Toolkit或者.NET的內(nèi)建支持來把它暴露給Web客戶。于是,任何語言,任何平臺上的客戶都可以閱讀其WSDL文檔,以調(diào)用這個Web service。客戶根據(jù)WSDL描述文檔,會生成一個SOAP請求消息。Web service都是放在Web服務(wù)器 (如IIS) 后面的,客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中,發(fā)送到Web服務(wù)器來。Web服務(wù)器再把這些請求轉(zhuǎn)發(fā)給Web service請求處理器。對VB 6程序來說,Web service請求處理器是一個與SOAP Toolkit組件協(xié)同工作的ASP頁面或ISAPI extension。而對VB.NET程序來說,Web service請求處理器則是一個.NET Framework自帶的ISAPI extension。請求處理器的作用在于,解析收到的SOAP請求,調(diào)用Web service,然后再生成相應(yīng)的SOAP應(yīng)答。Web服務(wù)器得到SOAP應(yīng)答后,會再通過HTTP應(yīng)答的方式把它送回到客戶端。
典型的Web service結(jié)構(gòu),點擊小圖放大
遠(yuǎn)程過程調(diào)用(RPC)與消息傳遞
Web service本身實際是在實現(xiàn)應(yīng)用程序間的通信。我們現(xiàn)在有兩種應(yīng)用程序通信的方法:RPC(遠(yuǎn)程過程調(diào)用)和消息傳遞。使用RPC的時候,客戶端的概念是調(diào)用服務(wù)器上的遠(yuǎn)程過程,通常方式為實例化一個遠(yuǎn)程對象并調(diào)用其方法和屬性。RPC強(qiáng)調(diào)的是遠(yuǎn)程對象和它的界面,即屬性、方法和調(diào)用時的參數(shù)。DCOM和.NET遠(yuǎn)程訪問都是RPC的例子。
消息傳遞一般是在耦合度更低的系統(tǒng)中。消息傳遞的概念是,客戶端向服務(wù)器發(fā)送消息,然后等待服務(wù)器的回應(yīng)。消息傳遞系統(tǒng)強(qiáng)調(diào)的是消息的發(fā)送和回應(yīng),而不是遠(yuǎn)程對象的界面。由于是基于消息的系統(tǒng),客戶端和服務(wù)器之間的耦合度比RPC方法更低。
RPC系統(tǒng)試圖達(dá)到一種位置上的透明性:服務(wù)器暴露出遠(yuǎn)程對象的接口,而客戶端就好像在使用本地使用的這些對象的接口一樣,這樣就隱藏了底層的信息,客戶端也就根本不需要知道對象是在哪臺機(jī)器上。例如,你在VB 6中通過DCOM調(diào)用一個遠(yuǎn)程對象,你的代碼看起來就與調(diào)用本地對象一樣。而消息傳遞則不同,它強(qiáng)調(diào)傳遞的東西是什么,但不管消息傳遞過去后干什么。客戶不需要知道服務(wù)器是怎么實現(xiàn)的,以及消息是怎么被處理的。
我們已經(jīng)說過,你可以建立一個消息服務(wù)器,根據(jù)收到的消息來調(diào)用對象。這是通過消息傳遞方式有效的實現(xiàn)了RPC。如果客戶仍然以消息的思維方式來進(jìn)行操作,那么你可以把它叫做消息傳遞。但如果客戶以遠(yuǎn)程對象的思維方式來進(jìn)行操作,那么你就應(yīng)該把它叫做RPC。
如果你想實現(xiàn)一個基于XML的消息傳遞系統(tǒng),大量的工作將集中在處理XML請求和應(yīng)答消息上。雖然VB 6和VB.NET中,幫助你建立Web Service的工具已經(jīng)做了許多對XML消息進(jìn)行處理的工作,但畢竟所有的數(shù)據(jù)都是用XML的形式收發(fā)的,許多情況下你還是需要對消息進(jìn)行一些自己的處理。深入理解XML和XML Schema對于有效地實現(xiàn)XML消息系統(tǒng)是至關(guān)重要的。
建立Web Service
我知道你現(xiàn)在已經(jīng)很心急的想要寫點代碼,看看Web service到底是什么樣的了。那么我們現(xiàn)在就介紹怎樣用VB 6和VB.NET實際做出一個Web service來。本節(jié)的目的只是向你展示一下這些工具的功能,而不是深入地講解Web service的工作原理。本書后面的章節(jié)會向你慢慢說明Web service以及Microsoft SOAP Toolkit和.NET等工具的內(nèi)部原理的。
使用SOAP Toolkit
Microsoft的SOAP Toolkit V2幫助你把COM組件變成Web service。這套工具分為三大主要部分:SoapClient是一個用于調(diào)用Web service的COM組件;SoapServer 是一個處理SOAP請求和返回SOAP應(yīng)答的組件;還有一個WSDL向?qū)?,它可以把你的type library轉(zhuǎn)換成WSDL文檔,以暴露給Web service的客戶。
假設(shè)你有一個COM組件,暴露出一個GetTemperature方法:
Public Function GetTemperature(ByVal zipcode As String, _
ByVal celsius As Boolean) As Single
要把這個組件變成一個Web service,你可以使用WSDL向?qū)?。給出你要轉(zhuǎn)換的組件后,向?qū)氵x擇你想暴露出的方法,指出生成的Web service所在的URL(如http://localhost/Temperature/),以及你希望用ASP還是ISAPI做你的請求處理器(如圖1-2)。然后向?qū)н€會問你生成的WSDL和ASP文件應(yīng)該放在那個目錄下。
使用SOAP Toolkit向?qū)磙D(zhuǎn)換COM組件,點擊小圖放大
現(xiàn)在該調(diào)用這個Web service了。方法是在VB或其他任何可以使用COM的語言里調(diào)用SoapClient組件。下面這段代碼演示了怎樣調(diào)用Webservice中的GetTemperature方法:
Dim soap As MSSOAPLib.SoapClient
Set soap = New MSSOAPLib.SoapClient
soap.mssoapinit _
"http://localhost/Temperature/Temperature.wsdl"
MsgBox ("氣溫是: " & _
soap.GetTemperature("20171", False))
首先調(diào)用mssoapinit,把WSDL文檔的URL傳給SoapClient。WSDL文檔的URL就是你在WSDL向?qū)е薪o出的URL加上〈Service名字.wsdl〉。一旦初始化完成,SoapClient就得到了Web service的所有方法,你就可以直接調(diào)用這些方法了。
(責(zé)任編輯 尤北lvye@staff.ccidnet.com
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Microsoft SOAP Toolkit 2.0介紹
Web services programming tips and tricks: SOAP attachments with JAX-RPC
WebService學(xué)習(xí),開發(fā)總結(jié)--唐木之無線觀察
XML Web Service 基礎(chǔ)
Web Service——下一代的WWW
編寫一個Web service客戶端
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服