SOA軟件體系結(jié)構(gòu)_第1頁(yè)
SOA軟件體系結(jié)構(gòu)_第2頁(yè)
SOA軟件體系結(jié)構(gòu)_第3頁(yè)
SOA軟件體系結(jié)構(gòu)_第4頁(yè)
SOA軟件體系結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

WebServices技術(shù)WebServices協(xié)議棧WebServices工作流程SOAPWSDLUDDIWebServices協(xié)議棧WebServices協(xié)議棧MachineAMachineBInvokeWSDL

proxyWSDL

stubHTTP+SOAP1WebServiceUDDIServer4WSDLWSDLWSDL3WSDLrequestresponse1通訊協(xié)議2消息格式描述語(yǔ)言3發(fā)現(xiàn)機(jī)制4XML2那給我用用吧(SOAP)WebServices工作流程Design-TimeorDynamicRuntime你都有什么服務(wù)啊?(WSDL)/?WSDLXMLwithservice描述/svc1XML/SOAPBODYWebServiceWebService客戶端UDDI查找服務(wù)鏈接到DISCO或者WSDL文檔SOAPSimpleObjectAccessProtocol自由的傳輸綁定(不僅僅是HTTP)自由的語(yǔ)言綁定(比方Java,C#)可插入的數(shù)據(jù)格式(當(dāng)然必須基于XML)完全的中立(中立、公開的標(biāo)準(zhǔn))獨(dú)立于任何編程語(yǔ)言、對(duì)象模型、操作系統(tǒng)、平臺(tái)ASOAPRequestMessage<SOAP-ENV:Envelope

xmlns:SOAP-ENV="://{soaporg}/envelope/"

SOAP-ENV:encodingStyle=

"://{soaporg}/encoding/"><SOAP-ENV:Body><m:QuoteStockPricexmlns:m="Some-URI"><Symbol>MSFT</Symbol></m:QuoteStockPrice></SOAP-ENV:Body></SOAP-ENV:Envelope>ASOAPResponseMessage<SOAP-ENV:Envelope

xmlns:SOAP-ENV="://{soaporg}/envelope/"

SOAP-ENV:encodingStyle=

"://{soaporg}/encoding/"><SOAP-ENV:Body><m:QuoteStockPriceResponse

xmlns:m="Some-URI"><Price>78.2</Price></m:QuoteStockPriceResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>WebServicesDescriptionLanguage〔WSDL)使用XML進(jìn)行描述類似IDL,不過是使用XML格式描述了效勞的操縱信息ServiceInterfaceImplementationDetailsAccessProtocolContactEndpointWSDL是早先技術(shù)的綜合IBM'sNASSLMicrosoft'sSDLUDDIUDDI的兩個(gè)重要局部UDDIAPI〔SOAPAPI〕UDDIDataStructureUDDI的作用-Internet上的WebServices的黃頁(yè)簿UniversalDescription,DiscoveryandIntegrationSOA-面向效勞的架構(gòu)ServiceBrokerServiceProviderServiceConsumerPublishFindBindWebServices中的SOAUDDIAnyClientSOAPSOAPSOAPIISWebService總結(jié)WebSerivces介紹WebServices的優(yōu)點(diǎn)WebServices技術(shù)SOAPWSDLUDDISOA(面向效勞的架構(gòu))主要內(nèi)容SOAP開展歷史SOAP的主要功能SOAP協(xié)議組成局部信封標(biāo)題RPC相關(guān)應(yīng)用開展歷史SOAP最早由DaveWinner、DonBox和BodAtkinson提出。在1987年,Microsoft開始考慮基于XML的分布式計(jì)算,其目標(biāo)是使應(yīng)用程序能夠使用HTTP上層的遠(yuǎn)程過程調(diào)用(RPC)相互通信。DevelopMentor和Userland參加到了討論。在1998年初,S0AP名字就已經(jīng)被確定。Userland在1998年發(fā)布了一個(gè)XML-RPC標(biāo)準(zhǔn)。1999年9月SOAP0.9提交IETF。2000年5月8日,SOAP1.1作為Note提交W3C。IBM發(fā)布JavaSOAP實(shí)現(xiàn),并給開放源代碼組織ApacheXMLProject。Sun公司將Web效勞集成到J2EE中。2000年9月13日,W3C組建了XML協(xié)議工作組,專門負(fù)責(zé)設(shè)計(jì)XML協(xié)議,以便成為基于XML分布式計(jì)算的核心。這個(gè)工作組將SOAP1.1作為根底,并于2001年7月9日提交了第一份工作組草案SOAP1.2。SOAP為在一個(gè)松散的、分布的環(huán)境中使用XML對(duì)等地交換結(jié)構(gòu)化和類型化信息提供了一個(gè)簡(jiǎn)單且輕量級(jí)的機(jī)制。SOAP1.1簡(jiǎn)單對(duì)象訪問協(xié)議(SimpleObjectAccessPropotol)是Web效勞的事實(shí)標(biāo)準(zhǔn)。支持應(yīng)用程序與應(yīng)用程序之間的通信;應(yīng)用于商務(wù)對(duì)商務(wù)的通信以及企業(yè)應(yīng)用集成。以獨(dú)立于各種編程語(yǔ)言或平臺(tái)的方式來構(gòu)造消息、處理消息,從而使用不同編程語(yǔ)言編寫的程序之間具有互操作性,并能夠在不同的操作系統(tǒng)上運(yùn)行。通過對(duì)模塊中特定格式編碼的數(shù)據(jù)的重編碼機(jī)制來表示應(yīng)用語(yǔ)義。SOAP概述SOAP主要功能:定義通信單元的機(jī)制:一個(gè)SOAP封套封裝了所有其他的信息。一個(gè)消息可以有一個(gè)消息體,消息體中可以包含任何XML格式文檔。錯(cuò)誤處理機(jī)制:標(biāo)識(shí)錯(cuò)誤源和導(dǎo)致錯(cuò)誤的原因,并允許錯(cuò)誤診斷信息在共享者和交互者之間傳遞??蓴U(kuò)展件機(jī)制:使用XML模式和名字空間技術(shù),靈活擴(kuò)展元素。靈活的數(shù)據(jù)表示機(jī)制:允許交換已經(jīng)以某種格式序列化的數(shù)據(jù),同時(shí)也提供了以XML格式表示諸如編程語(yǔ)言數(shù)據(jù)類型這樣的抽象數(shù)據(jù)結(jié)構(gòu)的規(guī)那么。表示遠(yuǎn)程過程調(diào)用(RPC)和作為響應(yīng)的SOAP消息的約定,并且便于映射為過程式編程語(yǔ)言結(jié)構(gòu)。支持以文檔為中心的方法。將SOAP消息束定到HTTP的機(jī)制,因?yàn)镠TTP是Internd上最常用的通信協(xié)議。SOAP基于XML的協(xié)議,由四局部組成:信封〔Envelope〕:定義了一個(gè)消息框架,描述消息的內(nèi)容是什么,是誰(shuí)發(fā)送的,誰(shuí)應(yīng)當(dāng)接受并處理它以及如何處理。編碼規(guī)那么〔EncodingRules〕:用于表示應(yīng)用程序需要使用的數(shù)據(jù)類型的實(shí)例。綁定〔Binding〕:定義底層通信協(xié)議,進(jìn)行消息交換。RPC:表示遠(yuǎn)程過程調(diào)用和應(yīng)答的協(xié)定。SOAPSOAP信封包裝傳輸?shù)南?。SOAP定義4個(gè)XML元素:信封〔env:Envelope〕標(biāo)題〔env:Header〕

體〔env:Body〕

一組和多組SOAP條目的信息。故障〔env:Fault〕

協(xié)議層錯(cuò)誤信息的特殊SOAP條目命名空間"""""://""oding""wsdl/""wsdl/soap"":///schema/conformanceClain"

SOAP用例<env:Envelopexmlns:env=":///2001/06/soap-envelope"><env:Header>

<n:alertcontrolxmlns:n=":///alertcontrol"><n:priority>1</n:priority><n:expires>2001-06-22T14:00:00-05:00</n:expires>

</n:alertcontrol></env:Header>

<env:Body>

<m:alertxmlns:m=":///alert"><m:msg>PickupMaryatschoolat2pm</m:msg>

</m:alert></env:Body></env:Envelope>MessageEnvelopeSOAP結(jié)構(gòu)SOAP消息是由一個(gè)SOAPEnvelope、一個(gè)可選的SOAPHeader和一個(gè)SOAPBody組成的XML文檔。元素和屬性的命名空間標(biāo)識(shí)是":///2001/06/soap-envelope"。SOAP消息應(yīng)當(dāng)包含如下局部:一個(gè)SOAPenvelope。Envelope是表示該消息的XML文檔的根級(jí)元素。一個(gè)SOAPHeader。Header是為了支持在松散環(huán)境下在通訊方之間尚未預(yù)先達(dá)成一致的情況下為SOAP消息增加特性的通用機(jī)制。SOAP定義了很少的一些屬性來用于指明誰(shuí)可以處理該特性以及它是可選的還是強(qiáng)制的。一個(gè)SOAPBody。Body為該消息的最終接收者所想要得到的信息提供了一個(gè)容器。此外,SOAP定義了Body的一個(gè)子元素Fault用于報(bào)告錯(cuò)誤。SOAP主要屬性encodingStyle屬性SOAP的全局encodingStyle屬性被用于指明在SOAP消息中使用哪種編碼規(guī)那么。該屬性可以在任意元素中出現(xiàn),其作用范圍包括該元素的內(nèi)容和所有其子元素中未使用該屬性的所有子元素。root屬性可以被用來標(biāo)注編序的根,根一般就有值“1”。那些非真正根的編序根也可以被標(biāo)注為賦予值為“1”的編序根。一個(gè)元素也可以被明確地標(biāo)注為賦予值為“0”的非編序根。SOAP根屬性可以出現(xiàn)在SOAPHeader和SOAPBody元素中的任何子元素里,該屬性沒有默認(rèn)值。SOAPHeaderSOAP提供了一個(gè)可伸縮的機(jī)制用于在分散的模塊化的環(huán)境下擴(kuò)展SOAP消息,而通訊雙方并不需要有預(yù)先的約定知識(shí)。典型的擴(kuò)展例子可以是實(shí)現(xiàn)一些諸如認(rèn)證、事務(wù)管理以及支付的Header條目。Header元素應(yīng)當(dāng)被編碼為SOAPEnvelopeXML文檔的第一直接子元素。Header的所有直接子元素都被稱為Header條目。Header條目的編碼規(guī)那么包括:一個(gè)SOAPHeader條目由一個(gè)完整修飾的元素名來標(biāo)識(shí),所謂完整修飾的元素名是由一個(gè)命名空間URI和局部名來組成。SOAPHeader元素的所有直接子元素都必須是完整修飾的。encodingStyle屬性可以用于指明Header條目的編碼風(fēng)格。actor屬性和SOAPmustUnderstand屬性可以用于指明由哪個(gè)SOAP結(jié)點(diǎn)來處理?xiàng)l目以及如何處理?xiàng)l目。SOAPHeader描述平安憑證事務(wù)ID路由調(diào)試信息支付令牌……actor屬性SOAP消息從生成者到達(dá)最終接受者,將潛在地沿著消息路徑經(jīng)過一系列的SOAP中間結(jié)點(diǎn)。SOAP中間結(jié)點(diǎn)是一個(gè)能夠接受和轉(zhuǎn)發(fā)SOAP消息的應(yīng)用程序。所有的中間結(jié)點(diǎn)都如同最終接受者一樣由一個(gè)URI來標(biāo)識(shí)。actor屬性用一個(gè)RUI標(biāo)識(shí)節(jié)點(diǎn)處理對(duì)應(yīng)的文件頭時(shí)必須扮演的角色。當(dāng)一個(gè)節(jié)點(diǎn)接收到一個(gè)SOAP消息時(shí),它要分析文件頭,以確定哪些代碼塊是由該節(jié)點(diǎn)支持的角色。Header元素中接收者角色類似和約的接受者。一個(gè)接收者接到其想要的一個(gè)Header元素必須不轉(zhuǎn)發(fā)該Header給SOAP消息路徑中的下一個(gè)應(yīng)用程序。SOAPactor全局屬性可以被用于指明Header元素的接收者。而SOAPactor屬性的值是一個(gè)URI。這個(gè)特別的URI":///2001/06/soap-envelope/actor/next"指明該Header元素是直接的下一個(gè)進(jìn)行消息處理的SOAP應(yīng)用程序想要的。這與HTTP的連接頭字段的hop-by-hopscopemodel的表示。假設(shè)省略SOAPactor屬性,那么說明接收者是SOAP消息的最終接收者。

mustUnderstand屬性mustUnderstand全局屬性用于指明一個(gè)Header條目是強(qiáng)制的還是可選的要求接收者處理。Header條目的接收結(jié)點(diǎn)由SOAPactor屬性來定義。mustUnderstand屬性的值可為“0”或“1”。假設(shè)沒有使用SOAPmustUnderstand屬性,那么在語(yǔ)義上等價(jià)于mustUderstand屬性出現(xiàn)同時(shí)取值為“0”。假設(shè)Header條目帶有值為“1”的mustUnderstand屬性,那么該Header條目的接收結(jié)點(diǎn)要么必須遵循語(yǔ)義并正確地處理這些語(yǔ)義,要么必須宣稱處理消息失敗。mustUnderstand屬性是為了考慮健壯地升級(jí)而設(shè)置的。所有用值為“1”的SOAPmustUnderstand屬性來標(biāo)記的元素必須被認(rèn)為是可以影響該元素的上級(jí)元素或同級(jí)元素的語(yǔ)義。SOAPBodySOAPBody元素提供一個(gè)簡(jiǎn)單的用于與消息的最終接收者交換強(qiáng)制信息的機(jī)制。而Body元素的典型應(yīng)用包含序列的RPC調(diào)用和錯(cuò)誤報(bào)告。Body元素在編碼上作為SOAPEnvelope元素的一個(gè)直接子元素。如果包含Header元素,那么Body元素必須直接跟隨Header元素,否那么Body元素必須是Envelope元素的第一直接子元素。所有Body元素的直接子元素被成為SOAPBody條目,同時(shí)每一個(gè)Body條目都應(yīng)當(dāng)編碼為SOAPBody元素里的一個(gè)獨(dú)立元素。SOAPBodyBody條目的編碼規(guī)那么包括:1.一個(gè)Body條目由一個(gè)完整修飾的元素名來標(biāo)識(shí),所謂完整修飾的元素名是由一個(gè)命名空間URI和局部名來組成。SOAPBody元素的直接子元素可以是命名空間修飾的。2.SOAPencodingStyle屬性可以被用來說明Body條目中使用的編碼規(guī)那么。3.SOAP定義了一個(gè)Body條目,用于報(bào)告錯(cuò)誤的Fault條目。SOAP錯(cuò)誤SOAPFault元素是用于在SOAP消息中傳輸錯(cuò)誤或狀態(tài)信息。如果SOAP消息需要包含SOAPFault元素的話,它必須作為一個(gè)Body條目出現(xiàn),同時(shí)在Body元素內(nèi)它必須至多出現(xiàn)一次。SOAPFault元素定義了如下子元素:1.faultcode元素是應(yīng)那些要提供一個(gè)算法上的機(jī)制來標(biāo)識(shí)錯(cuò)誤的軟件的需要。faultcode必須在SOAPFault元素中出現(xiàn)。SOAP定義了一個(gè)很小的SOAP錯(cuò)誤代碼的集合用于覆蓋根本的SOAP錯(cuò)誤。2.faultstring元素是為那些錯(cuò)誤代碼提供一個(gè)人可以讀懂的錯(cuò)誤解釋,它不是為程序處理而設(shè),提供一些解釋該錯(cuò)誤種類的信息。3.faultactor元素是為在SOAP消息路徑中是誰(shuí)引起了該錯(cuò)誤的發(fā)生這一情況描述信息。faultactor屬性的值是一個(gè)標(biāo)識(shí)該源的一個(gè)URI。所謂并非作為SOAP消息最終接收者的應(yīng)用程序必須在SOAPFault元素中包含faultactor元素。而消息的最終接收者可以使用faultactor元素來明確地指明是它生成了該錯(cuò)誤。4.detail元素是用于傳輸與SOAPBody元素相關(guān)的應(yīng)用程序特別的錯(cuò)誤信息。如果Body元素中的內(nèi)容不能被成功地處理的時(shí)候,它必須出現(xiàn)。它必須不能被用于傳輸屬于Header條目的錯(cuò)誤信息。SOAP錯(cuò)誤假設(shè)SOAPFault元素中不出現(xiàn)detail元素,那么說明其中的錯(cuò)誤與Body元素的處理無關(guān)。這可以用于區(qū)分在錯(cuò)誤情況下Body元素是否被SOAP的最終接受者處理過。detail元素的所有直接子元素都被稱為detail條目,同時(shí)每個(gè)detail條目都作為detail元素中的一個(gè)獨(dú)立的元素進(jìn)行編碼。detail條目的編碼規(guī)那么如下:1.一個(gè)detail條目由一個(gè)完整修飾的元素名來標(biāo)識(shí)。detail元素的直接子元素可以是命名空間修飾的。2.SOAPencodingStyle屬性可以被用來說明detail條目中使用的編碼規(guī)那么。SOAP編碼簡(jiǎn)單類型SOAP采用了在“XMLSchemaPart2:Datatypes”的“Build-indatatypes”節(jié)中定義的所有類型,包括值和詞匯空間(lexicalspaces)1.字符串:“string”數(shù)據(jù)類型在“XMLSchemaPart2:Datatypes”中被定義。2.枚舉:“XMLSchemaPart2:Datatypes”標(biāo)準(zhǔn)定義了一種稱為“玫舉(enumeration)”的機(jī)制。3.字節(jié)數(shù)組:一個(gè)Byte數(shù)組可以編碼為單引用或多引用值。對(duì)一個(gè)不透明的Byte數(shù)組的推薦表示是使用在XMLSchema標(biāo)準(zhǔn)中定義的“base64”編碼方式。4.多態(tài)存取標(biāo)識(shí):多態(tài)地訪問數(shù)個(gè)類型的值,在運(yùn)行時(shí)刻每個(gè)類型都是可使用的。一個(gè)多態(tài)存取標(biāo)識(shí)實(shí)例必須包含一個(gè)“xsi:type”屬性以描述類型的實(shí)際值。SOAP編碼復(fù)合類型SOAP依照在程序語(yǔ)言中常??匆姷囊韵陆Y(jié)構(gòu)模式來定義復(fù)合類型:1.“struct”是一個(gè)復(fù)合類型值,其成員的存取標(biāo)識(shí)名是相互區(qū)別的唯一標(biāo)志,應(yīng)彼此各不相同。2.“array”是一個(gè)復(fù)合類型值,其成員的順序位置是相互區(qū)別的唯一標(biāo)志。SOAP中的RPCSOAP的一個(gè)設(shè)計(jì)目標(biāo)就是要利用XML的可擴(kuò)展性和可伸縮性來包裝和交換RPC調(diào)用。在RPC中,使用HTTP作為SOAP協(xié)議綁定媒介的情況下,一個(gè)RPC調(diào)用可以很自然地映射到一個(gè)HTTP請(qǐng)求,而RPC響應(yīng)那么可以映射到HTTP響應(yīng)。使用SOAP方式的RPC并不限于HTTP協(xié)議綁定。為實(shí)施一個(gè)方法調(diào)用,需要以下信息:1.目標(biāo)SOAP結(jié)點(diǎn)的URI2.方法名3.可選的方法或過程的特征4.方法或過程的參數(shù)5.可選的頭數(shù)據(jù)SOAP依賴協(xié)議綁定來提供傳送URI的機(jī)制。RPC和SOAPBodyRPC調(diào)用和響應(yīng)都是在SOAPBody元素中傳送,使用如下表示方式:1.一個(gè)方法調(diào)用被建模成一個(gè)結(jié)構(gòu)struct。該方法調(diào)用顯示為一個(gè)簡(jiǎn)單結(jié)構(gòu)struct,包含每個(gè)[in]或[in/out]參數(shù)的存取標(biāo)識(shí)。該結(jié)構(gòu)的名和類型可使用過程或方法的名來標(biāo)識(shí)。2.每個(gè)[in]或[in/out]參數(shù)都被表示為一個(gè)存取標(biāo)識(shí),該存取標(biāo)識(shí)的名和類型都對(duì)應(yīng)于相應(yīng)參數(shù)的名和類型。他們的次序也是按照原來RPC中的次序。3.一個(gè)方法響應(yīng)被建模成一個(gè)結(jié)構(gòu)struct。SOAP請(qǐng)求消息<SOAP-ENV:Envelope

xmlns:SOAP-ENV="://{soaporg}/envelope/"

SOAP-ENV:encodingStyle=

"://{soaporg}/encoding/"><SOAP-ENV:Body><m:QuotePricexmlns:m="Some-URI"><commodity>Computer</commodity></m:QuotePrice></SOAP-ENV:Body></SOAP-ENV:Envelope>RPC和SOAPBody該方法響應(yīng)顯示為一個(gè)簡(jiǎn)單結(jié)構(gòu)struct,包含每個(gè)[out]或[in/out]參數(shù)的存取標(biāo)識(shí)。而第一個(gè)存取標(biāo)識(shí)是返回值,而隨后那么是按照原來次序的返回參數(shù)。每個(gè)[out]或[in/out]參數(shù)都被表示為一個(gè)存取標(biāo)識(shí),該存取標(biāo)識(shí)的名和類型都對(duì)應(yīng)于相應(yīng)參數(shù)的名和類型。返回值的存取標(biāo)識(shí)名并沒有多少語(yǔ)義。同樣的,結(jié)構(gòu)的名也并沒有多少語(yǔ)義。當(dāng)然,無論如何,在添加了“Response”字串的方法名后,要有一個(gè)約定來命名它。方法調(diào)用出錯(cuò)應(yīng)使用SOAPFault元素來編碼。如果一個(gè)綁定協(xié)議對(duì)于錯(cuò)誤表達(dá)還有額外規(guī)那么,那么這些規(guī)那么都應(yīng)當(dāng)被遵守。方法和響應(yīng)的結(jié)構(gòu)可以使用規(guī)那么來編碼,也可以使用在encodingStyle屬性中描述的其他編碼。應(yīng)用程序可以處理漏寫參數(shù)的請(qǐng)求不過也可以返回一個(gè)錯(cuò)誤。因?yàn)樵陧憫?yīng)中假設(shè)包含“result”那么說明成功,假設(shè)包含“fault”那么說明失敗,所以如果方法響應(yīng)中同時(shí)包含了“result”和“fault”那么是錯(cuò)誤的。SOAP響應(yīng)消息<SOAP-ENV:Envelope

xmlns:SOAP-ENV="://{soaporg}/envelope/"

SOAP-ENV:encodingStyle=

"://{soaporg}/encoding/"><SOAP-ENV:Body><m:QuotePriceResponsexmlns:m="Some-URI"><Price>¥8000.00</Price></m:QuoteStockPriceResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>HTTP傳輸SOAP雖然SOAP可以和多種HTTP請(qǐng)求方法聯(lián)合使用,但這里的綁定只定義了SOAP是如何在HTTPPost請(qǐng)求中傳輸?shù)摹?.HTTPHeader中的SOAPAction字段:SOAPActionHTTP請(qǐng)求頭字段(headerfield)可以用于指示SOAPHTTP請(qǐng)求的目的。它的值是一個(gè)標(biāo)識(shí)該目的的URI。2.SOAPHTTP響應(yīng):在HTTP之上的SOAP遵從用于在HTTP中表示通訊狀態(tài)的HTTP狀態(tài)代碼的語(yǔ)義。例如,2xx狀態(tài)代碼說明這是客戶端包含SOAP構(gòu)件的請(qǐng)求被成功的接收、理解和接受等等。3.當(dāng)處理請(qǐng)求的時(shí)候發(fā)生SOAP錯(cuò)誤的時(shí)候,SOAPHTTP效勞器必須發(fā)出一個(gè)HTTP500“InternalServerError”響應(yīng)同時(shí)在包含于該響應(yīng)的SOAP消息中應(yīng)包含一個(gè)SOAPFault元素。4.HTTP擴(kuò)展框架:SOAP消息可以與HTTPExtensionFramework一起使用來標(biāo)識(shí)SOAPHTTP請(qǐng)求。在HTTP中使用SOAP

SOAP利用HTTP的請(qǐng)求/響應(yīng)消息模型,將SOAP請(qǐng)求的參數(shù)放在HTTP請(qǐng)求里,而將SOAP響應(yīng)的參數(shù)放在HTTP響應(yīng)里。SOAPActionHTTP請(qǐng)求頭字段(headerfield)可以用于指示SOAPHTTP請(qǐng)求的目的。它的值是一個(gè)標(biāo)識(shí)該目的的URI。POST/StockQuoteHTTP/1.1Content-Type:text/xml;charset="utf-8"Content-Length:nnnnSOAPAction:":///abc#MyMessage"<env:Envelopexmlns:env=":///2001/06/soap-envelope">...</env:Envelope>在HTTP之上的SOAP遵從用于在HTTP中表示通訊狀態(tài)的HTTP狀態(tài)代碼的語(yǔ)義。HTTP/1.1200OKContent-Type:text/xml;charset="utf-8"Content-Length:nnnn<env:Envelopexmlns:env=":///2001/06/soap-envelope">...</env:Envelope>SOAP工具列表Company/OrganizationReporting

ImplementationName

ImplementationVersionSpecVersion/CommentApacheGlenDanielsAxisBeta1andafterLimitedsupportforJuneSOAP1.2specinBeta1,andfortheDecemberSOAP1.2specinthecurrentCVSimplementation.Don'tyetfullysupportnewencodingorallfaults,butweplantobefullycompliantsoon,trackingthespecintofuturereleases.BEADavidOrchard

WebLogicServer8.0andlaterBEAprovidesasoap1.2endpointat:9001/index.html.EndpointcontactisManojCheenath.MicrosoftHenrikFrystykNielsen

BizTalkInordertohelpmeetingtheW3Cimplementationrequirements,MicrosoftwillprovideapublicendpointthatcanacceptincomingSOAP1.2messagesandbeabletogenerateSOAP1.2messagesandsendthemtootherSOAP1.2endpoints.Endpointisat/asmx/(Contacts:AlexDeJarnatt<alexdej@>andJohnKoropchak<johnko@>).SOAPLitePaulKulchenko

SOAP::Lite0.55andlaterLimitedsupportforSOAP1.2.PlantosupportmostofthespecbeforeMarch2003.SystinetJacekKopecky

WASPServerforJava4.0WASP4.5supportsmostfeaturesoftheJune2002LastCalldraftofSOAP1.2.Endpointisavailable,see/interop/formoreinformation.TIBCODonMullen

WebServicesSDK2.0TIBCO'sSOAP1.2endpointisavailableat/interop

WhiteMesaBobCunnings

WhiteMesaServer3.0EndpointsupportsSOAP1.2,see/fordetails.SOAP工具列表Company/OrganizationImplementationName

ImplementationVersionSpecVersion/CommentIBMWebsphere5.0orlaterApacheSOAPhasworkedundereveryversionofWebSpherefrom1.1to3.02.ItwillworkoutoftheboxonWebSphere3.5withfixpak2applied.WouterCloetenshasprovidedinstructionsonusingApache-SOAPwithIBMWebspherev1,v2,andv3.0on/~zombie/soap/.TherearealsoinstructionsforWebSpherev3.5intheApache-SOAPdistribution-see/websrc/cvsweb.cgi/~checkout~/xml-soap/java/docs/install/websphere.html?rev=1.1&content-type=text/html&only_with_tag=MAIN.Besuretocheckthefollowingitems:

1.Explicitlysettheportnumberthatyouhaveexposedtherpcrouterservleton.Evenifitisdefault(80),justmentionitintheURLashttp://aaa.bbb.ccc.ddd:port/soap/servlet/rpcrouter.

2.VerifythatxercesisatthestartofyourpathnotonlybysettingitintheAppbutalsointhewebsphereconfigurationfiles(admin.config,setupclient.bat).OracleOracle8iAccordingtotheOraclefolks,SOAPshouldworkunderthelatestproductionreleaseofOracle8i,whichisOracle8.1.7.EarlierreleasesofOracle8i(e.g8.1.6)seemtobemoreawkward:theJVMbundledwith8.1.6hasabugthataffectsXerces.Seehereformoreinformation:/?l=soap-user&m=98200304522497&w=2

主要內(nèi)容Web效勞產(chǎn)生的計(jì)算與網(wǎng)絡(luò)背景Web效勞計(jì)算的技術(shù)開展歷程中間件技術(shù)的業(yè)界現(xiàn)狀SOA與WebService10計(jì)算設(shè)備開展yearlog(peoplepercomputer)Streaminginformationto/fromphysicalworldNumberCrunchingDataStorageProductivityInteractiveMainframeMinicomputerWorkstationPCLaptopPDA607080905000RFIDMotes國(guó)際因特網(wǎng)開展1969年12月:4個(gè)結(jié)點(diǎn)1972年3月:23個(gè)結(jié)點(diǎn)1974年6月:62個(gè)結(jié)點(diǎn)1977年3月:111個(gè)結(jié)點(diǎn)1988年10月:56000個(gè)結(jié)點(diǎn)1994年7月:超過320萬臺(tái)中國(guó)互連網(wǎng)開展統(tǒng)計(jì)報(bào)告(CNNIC)2006年1月17日上網(wǎng)計(jì)算機(jī)總數(shù)為4950萬臺(tái)內(nèi)地網(wǎng)民總?cè)藬?shù)已達(dá)1.11億人域名總數(shù)約為2,592,410個(gè)網(wǎng)站總數(shù)約為694,200個(gè)國(guó)際出口帶寬總量為136,106M大陸IPv4地址總數(shù)為74,391,296個(gè)連接的國(guó)家有美國(guó)、俄羅斯、法國(guó)、英國(guó)、德國(guó)、日本、韓國(guó)、新加坡等40年來計(jì)算機(jī)的瓶頸發(fā)生了極大的變化微軟預(yù)測(cè)—2007年計(jì)算與網(wǎng)絡(luò)條件微機(jī)硬件CPU:4-6GHz內(nèi)存:2GB硬盤:1TB網(wǎng)絡(luò)帶寬:桌面帶寬:1GPS無線帶寬:100MBPSInternet信息化應(yīng)用需求HTMLSOAP/WSDL/UDDIAnytimeAnywhereAnydevice跨互聯(lián)網(wǎng)松散耦合協(xié)同工作資源共享互連互通互操作機(jī)遇與挑戰(zhàn)1980’s1990’s2000’sService-OrientedComputingReturnonInvestmentInteroperability/FlexibilityTimetoMarketInfrastructureLeveragePeriod

CharacteristicsPackaged&CustomMainframeApplicationsTop-Down,ProceduralDevelopmentCentralizedComputingModelsNon-DistributedSolutionsEmergingPC-BasedTechnologiesClient-Server

ApplicationsObject-Oriented

DevelopmentEnterprise-CentricComputingInternetProliferationE-Commerce

ApplicationsEnterpriseWebApplications&SuitesWebServices&SoftwareComponentsNext-GenerationIntegrationsReal-TimeApplicationAssemblyRapidDeployment&Management分布式計(jì)算演化Mainframe

ComputingInternet/

E-Business

Client-Server

Computing中間件技術(shù)的開展歷史起源于20世紀(jì)80年代末開展于企業(yè)計(jì)算屏蔽異構(gòu)性,支持系統(tǒng)間的信息交換、共享,及協(xié)同開展中的概念、主要的表達(dá)消息中間件事務(wù)處理中間件〔TP-Monitor〕集成中間件應(yīng)用效勞器……計(jì)算模式和中間件開展趨勢(shì)緊密寬松聯(lián)接粒度/耦合度范圍XML/HTTPMOMORB網(wǎng)絡(luò)應(yīng)用同類應(yīng)用程序訪問手段Web服務(wù)WebServices簡(jiǎn)單服務(wù)Services構(gòu)件Components對(duì)象Objects互聯(lián)網(wǎng)應(yīng)用單機(jī)范圍網(wǎng)絡(luò)應(yīng)用文字處理數(shù)學(xué)計(jì)算互聯(lián)網(wǎng)應(yīng)用局域網(wǎng)互聯(lián)網(wǎng)主機(jī)計(jì)算客戶/服務(wù)器客戶/網(wǎng)絡(luò)Web效勞開展簡(jiǎn)史工業(yè)界趨勢(shì)—中間件TheImpactofStandardsDB/2DatabaseIBMWebSphereMQWebSphereCommercePECrossWorlds/WebSphereMQIntegratorBrokerMQSeriesWorkflowWebSphereApp.ServerOracle9iDatabaseOracleAdvancedQueuingOracleE-CommerceOracle9iAS

Integration/InterConnectOracleWorkflowOracle9iAS—WebLogicServer/TuxedoWebLogicPortalWebLogicIntegrationWebLogicServer—SunONEMessageQueue—SunONEApp.ServerSunONEIntegrationServer,EAIEditionContentManagementClientServerApps.LegacyApplicationsPortalsApplicationsWebServicesApps.EnterpriseWebApplicationsDevelopment,Deployment,&Management(ManagementofPortals,WebServices,Content,Applications&WebInitiatives)PortletInteroperability(JSR168/WSRP)BEAWebLogicPortalOracle9ASPortalIBMWebSpherePortalSunONEPortal國(guó)內(nèi)外研發(fā)現(xiàn)狀SUN的開放網(wǎng)絡(luò)環(huán)境SUNONE未來的網(wǎng)絡(luò)計(jì)算是開放的智能Web效勞,其關(guān)鍵是Web效勞根底設(shè)施建設(shè),XML、JAVA和一些根底設(shè)施標(biāo)準(zhǔn)是核心技術(shù)。國(guó)內(nèi)外研發(fā)現(xiàn)狀I(lǐng)BM的軟件就是中間件IBM的WebServices框架基于XML的WebServices協(xié)議棧,如SOAP/UDDI/WFML,及基于websphere應(yīng)用效勞器的軟件整合。EnterpriseapplicationsEnterprisedataDataAccessServicesApplicationAccessServicesIBMSoftwareOfferings

MonitoringServicesIBM商務(wù)整合的參考架構(gòu)Model,design,development,testtoolsCommonRuntimeInfrastructureWebSphereBIModelerWebSphereBIMonitorWebServicesGatewayWebSphereBIEvent/MessageBrokerWebSphereMQWebSphereBIAdaptersDB2InformationIntegratorClassicWebSphereStudioDB2InformationIntegratorWebSphere

BusinessIntegration

Server

WebSphereBusinessIntegrationConnect

WebSphere

ApplicationServerEnterpriseServiceBusProcess

ServicesCommunityIntegrationServicesApplicationServicesInformation

Services

WebSphere

PortalServerUserInteractionServicesOptimizeOperationsIBMWebSphere

軟件平臺(tái)WebSphereStudioAnopencomprehensivedevelopmentenvironmentforbuildingdynamice-businessapplicationsWebSphereApplicationServerAhigh-performanceandextremelyscalabletransactionenginefordynamice-businessapplicationsWebSphereHostIntegrationSoftwaretoleverageandextendlegacyassetsfornewe-businesssolutionsWebSphereEveryplaceSoftwareforextendinge-businessapplicationstomobiledevicesWebSphereCommercePowerfulsell-andbuy-sidesolutionstohandlethechallengesencounteredincustomerandtradingpartnerenvironments

WebSphereVoiceSoftwareforenablingnaturalvoiceinteractionswithapplicationsanddataWebSphereBusinessIntegrationSoftwarethatdeliversend-to-endintegrationthroughfiveprovencapabilities:model,integrate,connect,monitorandmanageWebSphereMQSoftwaretoconnectinternalandexternalapplicationstoexchangeinformationreliablyandsecurelyWebSpherePortalAsinglepointofpersonalizedinteractionwithapplications,content,processesandpeopleMicroSoft的戰(zhàn)略.net是微軟公司在WebService方面的一種解決方案。.net的根本思想是:將Internet上的基于孤立的Web站點(diǎn)的應(yīng)用方式,轉(zhuǎn)變?yōu)榇罅縒eb效勞協(xié)同工作的應(yīng)用方式〔微軟.net白皮書〕SUN的戰(zhàn)略操作系統(tǒng)Solaris開源軟件主推SunOneBEAWEBLOGIC平臺(tái)BEA系統(tǒng)公司的WebLogic效勞器是企業(yè)級(jí)的應(yīng)用效勞器,支持EJB,集群以及ERP〔企業(yè)資源方案〕的連通性。Integration

ProjectsCustom

ApplicationsPortal

InitiativesWebLogic

PlatformPortal

DevelopersIntegration

DevelopersArchitectsApplication

DevelopersMicrosoft

Developers

Enterprise J2EE

DevelopersData

ArchitectsProcess

ModelersBusinessAnalystsApplication

DevelopersBEAWEBLOGICENTERPRISEPLATFORMApplicationFrameworkBEAWebLogicWorkshopApplicationServerBEAWebLogicServerUser

IntegrationJVM

BEAWebLogicJRockitIntegratedDevelopmentEnvironmentBEAWebLogicWorkshopProcess

IntegrationDataIntegration

BEAWebLogic

IntegrationBEALiquidData

forWebLogicBEAWebLogic

PortalJBOSS平臺(tái)JBoss是JBo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論