當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
Web Services Gateway入門
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
AMTeam.orgWeb Services Gateway入門
--Web 服務(wù)的代理
Chandra Venkatapathy(chandrav@us.ibm.com),市場(chǎng)經(jīng)理,IBM
Simon
Holdsworth(Simon_Holdsworth@uk.ibm.com),開發(fā)小組領(lǐng)導(dǎo)人,IBM
2002 年 5 月
Web服務(wù)要做到可以被公司防火墻內(nèi)外的應(yīng)用程序和流程訪問,其基礎(chǔ)是如何將您企業(yè)網(wǎng)內(nèi)部的服務(wù)公開給外部用戶。本文著眼于這條途徑所涉及的問題以及 IBM 的 Web Services Gateway 怎樣解決這些問題。
介紹
Web
服務(wù)作為企業(yè)中有效的流程集成的一種機(jī)制在市場(chǎng)中被采用。在為您公司的網(wǎng)絡(luò)創(chuàng)建 Web
服務(wù)的過程中,您可能發(fā)現(xiàn)需要將這些服務(wù)的范圍擴(kuò)大為超出防火墻的限制。您可以將您的服務(wù)提供給業(yè)務(wù)合作伙伴、客戶,甚至是訂戶,并允許他們成為您業(yè)務(wù)流程中不可分割的部分。在您給他人提供對(duì)您的網(wǎng)絡(luò)中的服務(wù)的訪問權(quán)之前,無疑有很多業(yè)務(wù)問題要解決,而我們把重點(diǎn)放在這背后的技術(shù)問題上。
當(dāng)您開始外化超出企業(yè)網(wǎng)范圍的 Web 服務(wù)時(shí),您將面臨很多需要解決的問題。這些問題包括安全、可靠性、服務(wù)質(zhì)量、通信兼容性等等。就通信兼容性問題(這屬于本文的范疇)而言,您可能陷入到大量的技術(shù)問題之中,使用不同協(xié)議、操作系統(tǒng)平臺(tái)、或者甚至用不同編程語言編寫的網(wǎng)絡(luò)軟件需要滿足彼此能夠進(jìn)行平等對(duì)話。
在這些通信兼容性問題之中,您需要考慮下面這些事宜:
將部署和調(diào)用分離:將服務(wù)的實(shí)際實(shí)現(xiàn)與另一個(gè)服務(wù)訪問它的方法分離。這些包括:
入站請(qǐng)求:在防火墻內(nèi)創(chuàng)建并部署 Web
服務(wù)。在不經(jīng)歷一些復(fù)雜的部署和編程問題的情況下,服務(wù)請(qǐng)求者將怎樣從防火墻之外發(fā)出請(qǐng)求?
出站請(qǐng)求:與前一個(gè)條目類似;內(nèi)部用戶怎樣訪問受控環(huán)境中的外部服務(wù)?
流程抽象:怎樣能夠提供更高級(jí)的抽象來識(shí)別并鏈接到調(diào)用的服務(wù)實(shí)現(xiàn)?服務(wù)調(diào)用方法必須足夠靈活以處理一些事件,比如經(jīng)常在類似服務(wù)的外部提供者之間切換,而不需要更改應(yīng)用程序。
靈活性:作為一個(gè)服務(wù)提供者,您需要有更改部署基礎(chǔ)結(jié)構(gòu),而不用通知所有服務(wù)請(qǐng)求者的靈活性。比方說將 Web
服務(wù)部署在后來在操作期間將發(fā)生故障的機(jī)器中。在您的基礎(chǔ)結(jié)構(gòu)中需要一個(gè)流程將調(diào)用路由到另一個(gè)服務(wù)。
協(xié)議轉(zhuǎn)換:為滿足業(yè)務(wù)需求,企業(yè)可能在其網(wǎng)絡(luò)中使用一種特定的消息傳遞基礎(chǔ)結(jié)構(gòu)。但是,您的合作伙伴和客戶可能使用不同的協(xié)議來調(diào)用您的 Web
服務(wù)。您需要一種機(jī)制來協(xié)調(diào)不同的服務(wù)調(diào)用,從而與內(nèi)部基礎(chǔ)結(jié)構(gòu)的需要匹配。
您可能發(fā)現(xiàn),前面的問題涵蓋了部署和操作模型。Web Services Gateway 技術(shù)旨在當(dāng)外化您的 Web 服務(wù)時(shí),解決前面這些問題。從商業(yè)的角度看,它增強(qiáng)了您的資源的重用性,因?yàn)槟暮献骰锇?、客戶和訂戶都可以共享您?nèi)部的 Web 服務(wù)。
介紹 Web Services Gateway
Web Services
Gateway 是提供基于 WSDL 文檔的可配置映射的運(yùn)行時(shí)組件。它在任何可用的傳輸通道將任何用 WSDL
定義的服務(wù)映射成另一個(gè)服務(wù)。它通常部署在防火墻處,并能夠訪問內(nèi)部服務(wù)。Web Services Gateway 提供了下面這些功能:
服務(wù)映射:Web Services Gateway 的主要功能是將現(xiàn)有的用 WSDL 定義的 Web 服務(wù)映射成 Gateway
提供給他人的新服務(wù)。這樣 Gateway 擔(dān)當(dāng)代理的角色。外部服務(wù)被導(dǎo)入到 Gateway 中,使其作為代理服務(wù)可供企業(yè)內(nèi)部使用。同樣,內(nèi)部服務(wù)被導(dǎo)入到
Gateway 中,使其作為代理服務(wù)可供外部使用。這些服務(wù)還在必要的地方被發(fā)布到相關(guān)的 UDDI 目錄。
導(dǎo)出映射:內(nèi)部服務(wù)可以被導(dǎo)出供外部調(diào)用。給定 WSDL 文件,Gateway 將生成一個(gè)可以被外部請(qǐng)求者共享的新的 WSDL 文件。請(qǐng)求者將使用
Gateway 作為服務(wù)端點(diǎn)。
導(dǎo)入服務(wù):類似的,外部服務(wù)可以被導(dǎo)入并作為內(nèi)部服務(wù)可用。這將幫助內(nèi)部的服務(wù)請(qǐng)求者調(diào)用服務(wù),服務(wù)好像在
Gateway 上運(yùn)行。
轉(zhuǎn)換:服務(wù)的請(qǐng)求可能源于一個(gè)協(xié)議,而通過使用轉(zhuǎn)換功能可以用一些其它的協(xié)議調(diào)用服務(wù)。一個(gè)通過SOAP over JMS
調(diào)用的內(nèi)部服務(wù)可能使用 SOAP over HTTP 來調(diào)用。
UDDI 發(fā)布和查找:Gateway 使與 UDDI
注冊(cè)中心的操作更容易。當(dāng)您使用 Gateway 映射一個(gè)供外部消費(fèi)的服務(wù)時(shí),您可以在 UDDI 注冊(cè)中心發(fā)布所導(dǎo)出的 WSDL。當(dāng) Gateway
中的服務(wù)被修改過后,UDDI 注冊(cè)中心要隨最近的更新而更新。
安全和管理:提供 Web 服務(wù)請(qǐng)求的單點(diǎn)控制、訪問和驗(yàn)證。
Web Services Gateway 怎樣工作
Web Services
Gateway 配有很多傳輸通道。傳輸通道可以定義為 Web 服務(wù)調(diào)用的底層傳輸機(jī)制。這些通道向您提供可以使您的 Web 服務(wù)可用的傳輸選擇。當(dāng)您通過
Gateway 映射服務(wù)時(shí),值得一提的是,您可以指定服務(wù)使用的一組傳輸通道、服務(wù)的 WSDL 位置以及 Gateway 處服務(wù)的名稱。Web Services
Gateway 構(gòu)建在 IBM 的 Web 服務(wù)調(diào)用框架(Web Services Invocation Framework(WSIF))基礎(chǔ)上,WSIF 使
Gateway 能夠?qū)?Web 服務(wù)調(diào)用傳遞給任何用 WSDL 定義的 Web 服務(wù),甚至那些用外部協(xié)議(比如 CORBA)的服務(wù)。
情景說明 1. 處理入站請(qǐng)求
我們假設(shè)您提供部署在您企業(yè)的防火墻內(nèi)的
StockQuote 服務(wù),并且您想要和您的合作伙伴和客戶共享這個(gè)服務(wù)。
第 1 步. 創(chuàng)建 WSDL 文檔
創(chuàng)建描述并調(diào)用您的 StockQuote
服務(wù)的 WSDL 文檔。清單 1 展示了描述 StockQuote 服務(wù)的 WSDL 的樣本。正如您看到的,soap address location
指向防火墻內(nèi)的 myhost。
清單 1. StockQuote SOAP 服務(wù) WSDL
<definitions targetNamespace=...>
<message
name="GetQuoteInput">
<part name="symbol"
type="xsd:string"/>
</message>
<message
name="GetQuoteOutput">
<part name="quote"
type="xsd:float"/>
</message>
<portType
name="StockquotePT">
<operation
name="getQuote">
<input
message="tns:GetQuoteInput"/>
<output
message="tns:GetQuoteOutput"/>
</operation>
</portType>
<binding name="SOAPBinding"
type="tns:StockquotePT">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation
name="getQuote">
<soap:operation
soapAction="http://example.com/GetTradePrice"/>
<input>
<soap:body
use="encoded"
namespace="urn:xmltoday-delayed-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body
use="encoded"
namespace="urn:xmltoday-delayed-quotes"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service
name="StockquoteService">
<documentation>Stock quote
service</documentation>
<port
name="SOAPPort"
binding="tns:SOAPBinding">
<soap:address location="http://myhost:8080/soap/servlet/rpcrouter"/>
</port>
</service>
</definitions>
第 2 步. 將 WSDL 文檔導(dǎo)入到 Gateway
這只要求提供托管在
Gateway 的服務(wù)的名稱,選擇 SOAP/HTTP 傳輸通道,并指定 StockQuote WSDL 文件的位置。Gateway
將生成一個(gè)可以與您的合作伙伴共享的新的 WSDL 文件。這兩個(gè)文件之間的主要區(qū)別是 Gateway 所生成的文件將把 Gateway 作為服務(wù)端點(diǎn),并且將
binding 和 portType 分離成一個(gè)接口 WSDL 文件。清單 2 展示了恰當(dāng)修改過的 Gateway 所生成的文件。
清單 2. Gateway StockQuote 服務(wù)實(shí)現(xiàn)
WSDL
<definitions targetNamespace=...>
<import
namespace="http://www.ibm.com/namespace/wsif/samples/stockquote"
location="http://gatewayhost:80/wsgw/ServiceInterface?name=StockQuote"/>
<service name="StockQuote">
<port
name="StockquotePTApacheSOAPBindingPort"
binding="interface:StockquotePTApacheSOAPBinding">
<soap:address location="http://gatewayhost:80/wsgwsoap1/soaprpcrouter"/>
</port>
</service>
</definitions>
第 3 步. 讓防火墻外的請(qǐng)求者共享 WSDL
文檔
這可以以下面三種方式中的一種完成:
請(qǐng)求 Gateway 將服務(wù)發(fā)布到 UDDI,在這種情況下,服務(wù)請(qǐng)求者可以通過使用 UDDI 查找獲得服務(wù)。
使用從 Gateway 獲得的 WSDL 副本。
訪問所提供的從 Gateway 動(dòng)態(tài)獲得 WSDL 的 URL(請(qǐng)參閱清單
3)。
清單 3. Gateway Web 服務(wù) URL
http://gatewayhost:gatewayport/wsgw/ServiceDefinition?name=gatewayservicename
第 4 步. 服務(wù)請(qǐng)求者向 Gateway 發(fā)送 SOAP 請(qǐng)求
服務(wù)請(qǐng)求者將向 Gateway 發(fā)送 SOAP 請(qǐng)求,Gateway 將調(diào)用防火墻內(nèi)部的服務(wù),如圖 1 所示。
圖 1. 經(jīng)過 Gateway 的入站請(qǐng)求
情景說明 2.
處理出站請(qǐng)求:
除了您將 WSDL 文檔從防火墻外的提供者導(dǎo)入到 Gateway(Gateway
生成將被內(nèi)部服務(wù)請(qǐng)求者使用的新的 WSDL 文檔)之外,它與前一個(gè)案例相同。圖 2 展示了出站請(qǐng)求的流程。
圖 2. 經(jīng)過 Gateway 的出站請(qǐng)求
情景說明 3. 協(xié)議轉(zhuǎn)換
我們來擴(kuò)展情景說明 1。您內(nèi)部的 StockQuote 服務(wù)對(duì)于 SOAP/JMS 是可用的,而您的客戶和合作伙伴將通過 SOAP over HTTP 調(diào)用它。在這個(gè)案例中,您大體上按照和情景說明 1 相同的步驟執(zhí)行。但是,在第 2 步中,您在 Gateway 中指定服務(wù)將通過 SOAP over HTTP 來訪問。Gateway 將生成與您的合作伙伴共享的新的 WSDL。特別是,接口 WSDL 文件將包含 SOAP/HTTP 綁定,而不是原始的 SOAP/JMS 綁定。圖 3 展示了被轉(zhuǎn)換成 SOAP/JMS 調(diào)用的入站請(qǐng)求的流程。
圖 3. 協(xié)議轉(zhuǎn)換
情景說明 4. 對(duì)非 SOAP
服務(wù)的訪問
這一次 StockQuote 服務(wù)作為 Java 對(duì)象實(shí)現(xiàn),但是您希望使它對(duì)于使用 SOAP/HTTP
的客戶機(jī)可用。在這個(gè)案例中,服務(wù)的 WSDL 與情景說明 1 中的 WSDL 相同,除了 WSDL 包含 Java 綁定之外,如清單 4 所示。
清單 4:StockQuote 服務(wù)的 Java
綁定
<definitions ...>
<binding name="JavaBinding"
type="tns:StockquotePT">
<java:binding/>
<format:typeMapping
encoding="Java" style="Java">
<format:typeMap typeName="xsd:string" formatType="java.lang.String"
/>
<format:typeMap typeName="xsd:float"
formatType="java.lang.Float" />
</format:typeMapping>
<operation
name="getQuote">
<java:operation
methodName="getQuote"/><input/><output/>
</operation>
</binding>
<service
name="StockquoteService">
<documentation>Stock
quote service</documentation>
<port
name="JavaPort" binding="tns:JavaBinding">
<java:address
className="services.stockquote.Stockquote"/>
</port>
</service>
</definitions>
當(dāng)這個(gè)服務(wù)被部署到 Gateway,并且 SOAP/HTTP 傳輸通道被選中時(shí),來自 Gateway 的 WSDL 包含 SOAP 綁定和當(dāng)前服務(wù)可用的 SOAP/HTTP 端口。
最后,您可以在 http://www7b.boulder.ibm.com/wsdd/downloads/wsgw/wsgw.html 上得到 Web Services Gateway 預(yù)覽技術(shù),作為一種預(yù)覽技術(shù)。
總結(jié)
隨著 Web
服務(wù)部署的增加以及更頻繁地在防火墻內(nèi)部和外部被使用,公開這些應(yīng)用程序以及流程的傳統(tǒng)的非 Web 服務(wù)方法可能會(huì)導(dǎo)致維護(hù)和可靠性問題。Web Services
Gateway 靈活的抽象方法旨在為這些問題提供解決方案,并且鼓勵(lì)更好地使用像應(yīng)用程序和流程這樣的資產(chǎn)。
參考資料
- 請(qǐng)通過單擊文章頂部或底部的討論參加關(guān)于本文的討論論壇。
- 請(qǐng)下載 Web Services Gateway,然后試驗(yàn) StockQuote 樣本。
- 請(qǐng)下載 IBM UDDI WebSphere Registry,從而在專有設(shè)置中發(fā)布和共享您的服務(wù)。
- 請(qǐng)下載 alphaWorks 上的 WSIF 分發(fā)包,然后試驗(yàn)更容易的樣本。這給您 WSIF
支持的不同調(diào)用風(fēng)格的第一手示例及其超出特定于協(xié)議的客戶機(jī) API 的優(yōu)點(diǎn)。
- 請(qǐng)學(xué)習(xí) SOAP、WSDL 和
UDDI。
- 如果您以前沒對(duì) Web 服務(wù)編過程,Web Services ToolKit 是良好的起點(diǎn)。
- 請(qǐng)看一看 WSDL4J,一個(gè)可擴(kuò)展的 WSDL 解析框架,WSIF 在此之上構(gòu)建。
關(guān)于作者
Chandra Venkatapathy 是
IBM Software Group 的 WebSphere Web 服務(wù)市場(chǎng)推廣部門的市場(chǎng)經(jīng)理。整個(gè)去年,他都在管理和推廣 Web
服務(wù)技術(shù)和產(chǎn)品。當(dāng)前,Chandra 正忙于用 Web 服務(wù)改進(jìn)中間件和集成的業(yè)務(wù)。Chandra 持有 University of North
Carolina 的 Kenan-Flagler Business School 頒發(fā)的 MBA
學(xué)位以及電子工程和計(jì)算機(jī)科學(xué)方面的碩士學(xué)位。您可以通過 chandrav@us.ibm.com 與 Chandra 聯(lián)系。
Simon Holdsworth 是 IBMs Hursley,
UK Labs 的 WebSrvices Gateway 的開發(fā)小組領(lǐng)導(dǎo)人以及系統(tǒng)設(shè)計(jì)師。他以前在 IBM 的經(jīng)驗(yàn)包括 MQSeries
Integrator、Component Broker、DSOM(在此期間他參與開發(fā) OMG OTS 規(guī)范和 IBM 參考實(shí)現(xiàn))和
CICS/ESA。他具有英國(guó) Bristol University 頒發(fā)的數(shù)理邏輯和計(jì)算理論的理學(xué)碩士學(xué)位。您可以通過 Simon_Holdsworth@uk.ibm.com 與 Simon 聯(lián)系。
- 1重慶OA信息化
- 2成都OA信息化
- 3貴陽(yáng)OA信息化
- 4西安OA信息化
- 5武漢OA信息化
- 6北京OA信息化
- 7廣州OA信息化
- 8深圳OA信息化
- 9天津OA信息化
- 10沈陽(yáng)OA信息化
- 11長(zhǎng)春OA信息化
- 12福州OA信息化
- 1Web Services 及其技術(shù)(上)
- 2網(wǎng)絡(luò)服務(wù)熱火如潮 前景撲朔迷離
- 3出版社行業(yè)如何做好信息化建設(shè)的思考
- 4微軟、IBM和BEA聯(lián)合發(fā)表Web服務(wù)新標(biāo)準(zhǔn)
- 5中國(guó)特色生態(tài)文明建設(shè)的理論創(chuàng)新和實(shí)踐
- 6協(xié)同辦公系統(tǒng)整合了多層次的安全控制方案
- 7Sharing information through the Lotus Knowledge Discovery Sy
- 8如何幫助企業(yè)構(gòu)建安全的協(xié)同辦公系統(tǒng)?
- 9石家莊OA信息化與企業(yè)發(fā)展
- 10源天軟件獲2008年度中國(guó)IT服務(wù)創(chuàng)新獎(jiǎng)
- 11固化組織知識(shí)
- 12炎黃盈動(dòng)AWS石家莊OA信息化應(yīng)用套件
- 13從Web Services中訪問服務(wù)器變量
- 14石家莊OA信息化如何做到親身實(shí)踐
- 15OA辦公系統(tǒng)的信息發(fā)布與管理門戶介紹
- 16看APQC如何實(shí)施和考評(píng)石家莊OA信息化?(by AMT 石家莊OA信息化研究小組)
- 17使用WSDL部署Web服務(wù),第2部分:簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP)
- 18我國(guó)商貿(mào)業(yè)將迎來新一輪的IT建設(shè)高潮
- 19關(guān)于知識(shí)的問題
- 20透視Best Buy石家莊OA信息化實(shí)踐(by AMT 夏敬華 編譯)
- 21技巧:通過Web Service讓Delphi/Visual Basic程序訪問EJB
- 22EIP 相關(guān)資源
- 23BEA與OASIS協(xié)作 加強(qiáng)Web Services安全
- 242008協(xié)同軟件冰火之年:概念褪去 普及延伸
- 25泛普協(xié)同OA辦公軟件的信息資源共享
- 26泛普軟件石家莊OA信息化系統(tǒng)集成方案
- 27W3C加速語義網(wǎng)和Web服務(wù)方案開發(fā)
- 28泛普軟件石家莊OA信息化系統(tǒng)實(shí)施9大推進(jìn)步驟
- 29Managing Knowledge Workers
- 30全球性學(xué)習(xí)型組織的十一個(gè)特征
成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓