小菜毛毛技術(shù)分享

          與大家共同成長(zhǎng)

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks
          做客戶端有必要對(duì)soap做基本的了解,開發(fā)手機(jī)的程序員可能對(duì)web service不是太了解。
          soap簡(jiǎn)單說是基于xml的,建立在http協(xié)議上的協(xié)議,用來調(diào)用web server提供的service。
          這里轉(zhuǎn)載一個(gè)對(duì)soap的簡(jiǎn)單原理,希望對(duì)大家有幫助

          什么是Web Services
            
            從表面上看,Web service 就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過Web進(jìn)行調(diào)用的API。也就是說,可以利用編程的方法通過Web來調(diào)用這個(gè)應(yīng)用程序。
            
            對(duì)Web service 更精確的解釋: Web services是建立可互操作的分布式應(yīng)用程序的新平臺(tái)。Web service平臺(tái)是一套標(biāo)準(zhǔn),它定義了應(yīng)用程序如何在Web上實(shí)現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺(tái)上寫Web service ,只要我們可以通過Web service標(biāo)準(zhǔn)對(duì)這些服務(wù)進(jìn)行查詢和訪問。
            
            不管你的Web service是用什么工具,什么語言寫出來的,只要你用SOAP協(xié)議通過HTTP來調(diào)用它,總體結(jié)構(gòu)都一致。通常,你用你自己喜歡的語言(如VB 6或者VB.NET)來構(gòu)建你的Web service,然后用SOAP Toolkit或者.NET的內(nèi)建支持來把它暴露給Web客戶。于是,任何語言,任何平臺(tái)上的客戶都可以閱讀其WSDL文檔,以調(diào)用這個(gè)Web service。客戶根據(jù)WSDL描述文檔,會(huì)生成一個(gè)SOAP請(qǐng)求消息。Web service都是放在Web服務(wù)器 (如IIS) 后面的,客戶生成的SOAP請(qǐng)求會(huì)被嵌入在一個(gè)HTTP POST請(qǐng)求中,發(fā)送到Web服務(wù)器來。Web服務(wù)器再把這些請(qǐng)求轉(zhuǎn)發(fā)給Web service請(qǐng)求處理器。請(qǐng)求處理器的作用在于,解析收到的SOAP請(qǐng)求,調(diào)用Web service,然后再生成相應(yīng)的SOAP應(yīng)答。Web服務(wù)器得到SOAP應(yīng)答后,會(huì)再通過HTTP應(yīng)答的方式把它送回到客戶端。

          iGoogle 發(fā)表于 2010-10-24 17:00

          基本概念
            
            SOAP
            
            XML和XSD
            
            WSDL(Web Services Description Language)
            
            WSML(Web Services Meta Language)
            
            什么時(shí)候使用Web Services
            
            Web service是創(chuàng)建可互操作的分布式應(yīng)用程序的新平臺(tái)。Web service 的主要目標(biāo)是跨平臺(tái)的可互操作性。為了達(dá)到這一目標(biāo),Web service 是完全基于XML、XSD等獨(dú)立于平臺(tái)、獨(dú)立于軟件供應(yīng)商的標(biāo)準(zhǔn)的。
            
            Web service在應(yīng)用程序跨平臺(tái)和跨網(wǎng)絡(luò)進(jìn)行通信的時(shí)候是非常有用的。Web service適用于應(yīng)用程序集成、B2B集成、代碼和數(shù)據(jù)重用,以及通過Web進(jìn)行客戶端和服務(wù)器的通信的場(chǎng)合。
            
            當(dāng)然,Web service也不是萬能的,你不能到處濫用Web service。在有些情況下,Web service 會(huì)降低應(yīng)用程序的性能,而不會(huì)帶來任何好處。例如,一臺(tái)機(jī)器或一個(gè)局域網(wǎng)里面運(yùn)行的同構(gòu)應(yīng)用程序就不應(yīng)該用Web service 進(jìn)行通信。
            
            如何調(diào)用Web Services
            
            客戶端:取得服務(wù)端的服務(wù)描述文件WSDL,解析該文件的內(nèi)容,了解服務(wù)端的服務(wù)信息,以及調(diào)用方式。根據(jù)需要,生成恰當(dāng)?shù)腟OAP請(qǐng)求消息(指定調(diào)用的方法,已經(jīng)調(diào)用的參數(shù)),發(fā)往服務(wù)端。等待服務(wù)端返回的SOAP回應(yīng)消息,解析得到返回值。


            服務(wù)端:生成服務(wù)描述文件,以供客戶端獲取。接收客戶端發(fā)來的SOAP請(qǐng)求消息,解析其中的方法調(diào)用和參數(shù)格式。根據(jù)WSDL和WSML的描述,調(diào)用相應(yīng)的COM對(duì)象來完成指定功能,并把返回值放入SOAP回應(yīng)消息返回給用戶。
            
            高層接口
            
            使用高層接口,不需要知道SOAP和XML的任何信息,就可以生成和使用一個(gè)WebService。Soap Toolkit 2.0通過提供兩個(gè)COM對(duì)象――SoapClient和SoapServer,來完成這些功能。
            
            在客戶端,只需要生成一個(gè)SoapClient實(shí)例,并用WSDL作為參數(shù)來調(diào)用其中的mssoapinit方法。SoapClient對(duì)象會(huì)自動(dòng)解析 WSDL文件,并在內(nèi)部生成所有Web Service的方法和參數(shù)信息。之后,你就可以像調(diào)用IDispatch接口里的方法一樣,調(diào)用里面所有的方法。在VB或是腳本語言里,你甚至可以直接在SoapClient對(duì)象名后面直接加上.方法(參數(shù)…)進(jìn)行調(diào)用。
            
            低層接口
            
            要使用低層接口,你必須對(duì)SOAP和XML有所了解。你可以對(duì)SOAP的處理過程進(jìn)行控制,特別是要做特殊處理的時(shí)候。
            
            在客戶端,首先要?jiǎng)?chuàng)建一個(gè)HttpConnector對(duì)象,負(fù)責(zé)HTTP連接。設(shè)定Connector的一些頭部信息,比如EndPoinURL和 SoapAction等。如果網(wǎng)絡(luò)連接需要使用代理服務(wù)器,那也要在這里設(shè)定相關(guān)的信息。接著創(chuàng)建SoapSerializer對(duì)象,用于生成Soap消息。按照WSDL里定義,把所有參數(shù)按順序序列化,得到一個(gè)完整的SOAP請(qǐng)求消息。該Soap消息,作為Payload通過HttpConnector 被發(fā)送到服務(wù)端。最后,生成一個(gè)
          posted on 2010-11-15 16:57 小菜毛毛 閱讀(12111) 評(píng)論(0)  編輯  收藏 所屬分類: webservice
          主站蜘蛛池模板: 霍山县| 怀宁县| 游戏| 大同县| 夏河县| 密山市| 松溪县| 延吉市| 类乌齐县| 江油市| 昔阳县| 平阴县| 象山县| 淮阳县| 和政县| 大田县| 商河县| 乾安县| 宁晋县| 宣汉县| 河南省| 静乐县| 疏勒县| 乐陵市| 门源| 陇南市| 普宁市| 磴口县| 临桂县| 正蓝旗| 菏泽市| 南江县| 滦南县| 石首市| 车致| 通道| 昌图县| 临湘市| 隆回县| 南澳县| 常德市|