Terry.Li-彬

          虛其心,可解天下之問(wèn);專其心,可治天下之學(xué);靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評(píng)論 :: 0 Trackbacks

          1, 什么是 Web 服務(wù)?

          Web 是使應(yīng)用程序可以以與平臺(tái)和編程語(yǔ)言無(wú)關(guān)的方式進(jìn)行相互通信的一項(xiàng)技術(shù)。Web 服務(wù)是一個(gè)軟件接口,它描述了一組可以在網(wǎng)絡(luò)上通過(guò)標(biāo)準(zhǔn)化的 XML 消息傳遞訪問(wèn)的操作。它使用基于 XML 語(yǔ)言的協(xié)議來(lái)描述要執(zhí)行的操作或者要與另一個(gè) Web 服務(wù)交換的數(shù)據(jù)。一組以這種方式交互的 Web 服務(wù)在面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)中定義了特殊的 Web 服務(wù)應(yīng)用程序。

          2, 什么是SOAP?

          SOAP(Simple Object Access Protocol )簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過(guò)程調(diào)用的輕量級(jí)協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任何類型的對(duì)象或代碼,在任何平臺(tái)上,以任何一種語(yǔ)言相互通信。

          SOAP包括四個(gè)部分:SOAP封裝(envelop),封裝定義了一個(gè)描述消息中的內(nèi)容是什么,是誰(shuí)發(fā)送的,誰(shuí)應(yīng)當(dāng)接受并處理它以及如何處理它們的框架;SOAP編碼規(guī)則(encoding rules),用于表示應(yīng)用程序需要使用的數(shù)據(jù)類型的實(shí)例;SOAP RPC表示(RPC representation),表示遠(yuǎn)程過(guò)程調(diào)用和應(yīng)答的協(xié)定;SOAP綁定(binding),使用底層協(xié)議交換信息。

          應(yīng)用中比較關(guān)注的是envelop,由一個(gè)或多個(gè)Header和一個(gè)Body組成。

          3, 什么是Axis?

          Axis本質(zhì)上就是一個(gè)SOAP引擎(Apache Axis is an implementation of the SOAP),提供創(chuàng)建服務(wù)器端、客戶端和網(wǎng)關(guān)SOAP操作的基本框架。但Axis并不完全是一個(gè)SOAP引擎,它還包括:

          是一個(gè)獨(dú)立的SOAP服務(wù)器。
          是一個(gè)嵌入Servlet引擎(例如Tomcat)的服務(wù)器。
          支持WSDL。
          提供轉(zhuǎn)化WSDL為Java類的工具。
          提供例子程序。
          提供TCP/IP數(shù)據(jù)包監(jiān)視工具。

          4, Axis相比Soap v2的優(yōu)點(diǎn):

          Axis是第三代Apache SOAP的實(shí)現(xiàn),從2000年起,SOAP v2開(kāi)發(fā)小組開(kāi)始討論如何讓Axis更加靈活、可配置,以及能夠處理SOAP和來(lái)自W3C的各種XML標(biāo)準(zhǔn)。通過(guò)不斷地討論和代碼編寫(xiě),Axis目前相比SOAP V2取得了如下成果:

          速度提高。 Axis通過(guò)基于事件的SAX對(duì)XML文檔進(jìn)行處理,從而在速度和效率上比Apache SOAP有所提高。

          靈活性提高。

          穩(wěn)定性提高。

          提供面向組件的部署。

          提供一個(gè)簡(jiǎn)潔的傳輸抽象框架。其核心引擎完全于傳輸方式獨(dú)立。從而使基于何種協(xié)議傳輸?shù)倪x擇更加靈活。

          支持WSDL。包括WSDL和客戶端代碼生成等。

          5, 什么是WSDL?

          WSDL(Web Service Description Language)Web服務(wù)器描述語(yǔ)言是用XML文檔來(lái)描述Web服務(wù)的標(biāo)準(zhǔn),是Web服務(wù)的接口定義語(yǔ)言,由Ariba、Intel、IBM、MS等共同提出,通過(guò)WSDL,可描述Web服務(wù)的三個(gè)基本屬性:

          ·服務(wù)做些什么——服務(wù)所提供的操作(方法)

          ·如何訪問(wèn)服務(wù)——和服務(wù)交互的數(shù)據(jù)格式以及必要協(xié)議

          ·服務(wù)位于何處——協(xié)議相關(guān)的地址,如URL

          WSDL文檔以端口集合的形式來(lái)描述Web服務(wù),WSDL 服務(wù)描述包含對(duì)一組操作和消息的一個(gè)抽象定義,綁定到這些操作和消息的一個(gè)具體協(xié)議,和這個(gè)綁定的一個(gè)網(wǎng)絡(luò)端點(diǎn)規(guī)范。

          6, 什么是WSDD?

          WSDD就是WEB服務(wù)分布描述(Web Service Deployment Descriptor), 它定義了WEB服務(wù)的接口,如服務(wù)名、提供的方法、方法的參數(shù)等信息。

          7, 什么是UDDI?

          UDDI就是統(tǒng)一描述、發(fā)現(xiàn)和集成(Universal Description, Discovery, and Integration)。UDDI用于集中存放和查找WSDL描述文件,起著目錄服務(wù)器的作用。

          Web 服務(wù)中的角色、操作和構(gòu)件:

          服務(wù)提供者。從企業(yè)的角度看,這是服務(wù)的所有者。從體系結(jié)構(gòu)的角度看,這是托管訪問(wèn)服務(wù)的平臺(tái)。
          服務(wù)請(qǐng)求者。從企業(yè)的角度看,這是要求滿足特定功能的企業(yè)。從體系結(jié)構(gòu)的角度看,這是尋找并調(diào)用服務(wù),或啟動(dòng)與服務(wù)的交互的應(yīng)用程序。服務(wù)請(qǐng)求者角色可以由瀏覽器來(lái)?yè)?dān)當(dāng),由人或無(wú)用戶界面的程序(例如,另外一個(gè) Web 服務(wù))來(lái)控制它。
          服務(wù)注冊(cè)中心。這是可搜索的服務(wù)描述注冊(cè)中心,服務(wù)提供者在此發(fā)布他們的服務(wù)描述。在靜態(tài)綁定開(kāi)發(fā)或動(dòng)態(tài)綁定執(zhí)行期間,服務(wù)請(qǐng)求者查找服務(wù)并獲得服務(wù)的綁定信息(在服務(wù)描述中)。對(duì)于靜態(tài)綁定的服務(wù)請(qǐng)求者,服務(wù)注冊(cè)中心是體系結(jié)構(gòu)中的可選角色,因?yàn)榉?wù)提供者可以把描述直接發(fā)送給服務(wù)請(qǐng)求者。同樣,服務(wù)請(qǐng)求者可以從服務(wù)注冊(cè)中心以外的其它來(lái)源得到服務(wù)描述,例如本地文件、FTP 站點(diǎn)、Web 站點(diǎn)、廣告和服務(wù)發(fā)現(xiàn)(Advertisement and Discovery of Services,ADS)或發(fā)現(xiàn) Web 服務(wù)(Discovery of Web Services,DISCO)。

          8, AXIS的幾種服務(wù)類型:

          AXIS有四種service styles,分別是:RPC, Document, Wrapped, 和Message。最常用的就是RPC和Message。

          RPC:在AXIS中是一個(gè)默認(rèn)選項(xiàng)。當(dāng)你部署的時(shí)候使用下列兩種方式: 或則 ,它遵循SOAP RPC和編碼規(guī)則。每個(gè)RPC都包括一個(gè)表示名稱的外部接點(diǎn)和一些表示參數(shù)的內(nèi)部接點(diǎn)。AXIS會(huì)根據(jù)規(guī)則將一個(gè)XML(WSDL文件)文件轉(zhuǎn)化成一個(gè)JAVA對(duì)象,并對(duì)對(duì)想賦上在文件中描述的值。也可以根據(jù)規(guī)則將一個(gè)JAVA對(duì)象轉(zhuǎn)化成XML文件。

          Document

          適合于老的XML schema。

          Wrapped

          和DOCUMENT一樣,適合于老的XML schema。

          在大多書(shū)情況下,你不許要擔(dān)心是DOCUMENT服務(wù)還是WRAPPED服務(wù)。

          Message

          以這種方式部署的話,會(huì)使AXIS失去意義,它使你的代碼真正的用XML形式,而不需要轉(zhuǎn)化成JAVA對(duì)象。以這種方式部署的有以下四種服務(wù)方法:

          public Element [] method(Element [] bodies);

          public SOAPBodyElement [] method (SOAPBodyElement [] bodies);

          public Document method(Document body);

          public void method(SOAPEnvelope req, SOAPEnvelope resp);

          幾種服務(wù)類型的主要區(qū)別:

          基于RPC(遠(yuǎn)程過(guò)程調(diào)用)方式,這也是Web服務(wù)最常用的方式。面向消息/文檔的的類型跟RPC不同的是它提供了一個(gè)更底層的抽象,要求更多的編程工作??蛻舳丝梢詡魅肴魏蔚腦ML文檔,得到的響應(yīng)不一定是SOAPEnvelope,可以返回任何它所需要的東西,甚至不返回。雖然這對(duì)開(kāi)發(fā)者來(lái)說(shuō)非常的靈活,但是這種通訊類型在實(shí)際的應(yīng)用中并不常見(jiàn)。面向消息/文檔的Web服務(wù)主要適合于下面幾種情況,比如批量處理,基于表單的數(shù)據(jù)導(dǎo)入,有需要返回非XML數(shù)據(jù)時(shí),Web服務(wù)器實(shí)現(xiàn)中要求直接訪問(wèn)傳輸層等等

          9、java類與wsdl相互生成工具:

          Axis提供了”WSDL2Java”工具,可以利用wsdl描述來(lái)產(chǎn)生服務(wù)的Java代理和框架(proxy and skeletons)。

          Axis提供了”Java2WSDL”工具,可以由java類生成wsdl文件。

          posted on 2007-11-24 14:45 禮物 閱讀(732) 評(píng)論(0)  編輯  收藏 所屬分類: webservice
          主站蜘蛛池模板: 寿宁县| 莫力| 安达市| 广河县| 二手房| 马尔康县| 南雄市| 台北市| 浦江县| 嵊泗县| 准格尔旗| 丰顺县| 瑞昌市| 宝清县| 邢台县| 板桥市| 永兴县| 璧山县| 潢川县| 象山县| 巍山| 陆丰市| 郯城县| 二连浩特市| 嘉禾县| 怀安县| 巴中市| 盘锦市| 靖远县| 洪江市| 永平县| 安新县| 嘉兴市| 遵义县| 甘孜| 车险| 临安市| 南靖县| 芦溪县| 庆元县| 苏尼特右旗|