當前位置:工程項目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA信息化
Web服務內(nèi)幕,第10部分:深入主題:可靠性和事務
Web服務內(nèi)幕,第10部分:深入主題:可靠性和事務
James Snell(
軟件 工程師,IBM Software Group
2001 年 11 月
就本質(zhì)而言,Web 服務體系結(jié)構(gòu)是應用程序通過智能的消息交換相互進行集成的
方法。對于企業(yè),這意味著關鍵業(yè)務信息(比如:訂購單、合同以及報價索?。≧FQ))的交換。由 于這種信息的關鍵性本質(zhì),企業(yè)必須確保底層消息傳遞體系結(jié)構(gòu)的可靠性。在
Web 服務內(nèi)幕的這篇 文章中,James Snell 繼續(xù)他的關于影響在企業(yè)中使用 Web 服務的問題的討論,側(cè)重于可靠的消息傳遞和事務。
在
Web 服務內(nèi)幕的前一篇文章中,我邀請了 Maryann Hondo — IBM 的 Web
服務安全標準的領導者,來幫助我通覽了一遍各種安全性和保密性問題,這是使用 Web 服務的企業(yè)開發(fā)者必須考慮的。在這篇文章中,我將花些時間來探索企業(yè)中對 Web
服務的其它兩個關鍵性要求:可靠性和事務。該討論將分成三部分:
a. 可靠的消息傳遞的討論
b. 有條件的消息傳遞的討論
c.
稱為相關性環(huán)境的新的類型的事務管理機制的介紹
可靠的消息傳遞
“可靠的消息傳遞”的簡單定義是確保消息的發(fā)送方和接收方都知道消息是不是確實被發(fā)送或接收了,此外要確保消息一次發(fā)
送給目標接收方,且只能是一次。很簡單?是的。容易實現(xiàn)?并不是這樣。
從一開始,可靠的消息傳遞所存在的問題一直是困擾因特網(wǎng)應用程序開發(fā)的問題。究其本質(zhì),因特網(wǎng)本身就是不 可靠的。服務器在某一時刻啟動并運行,但是可能在另一時刻當機。用來連接發(fā)送方和接收方的 協(xié)議并沒有設計成支持可靠的消息傳遞構(gòu)造,諸如:消息標識符和確認。消息的接收方必須能夠確 認這樣一個事實,即實際上他們已經(jīng)確確實實接收到了消息。萬一沒有接收到確認并且需要再次發(fā)送消息時,消息的發(fā)送方必須能夠高速緩存那些消息。今天推動因特網(wǎng)的基本技術 不支持這樣的機制。因此,迫使開發(fā)者去實現(xiàn)新的協(xié)議、新的技術,從而滿足這些需要。
現(xiàn)在,很明顯,可靠的消息傳遞不是新的問題;也不是開發(fā)者現(xiàn)在才努力去解決的問題。源 自眾多技術供應商的許多現(xiàn)有產(chǎn)品以一種或另一種形式實現(xiàn)可靠的消息傳遞。問題是 — 這是我繼 續(xù)這篇 Web 服務討論的關鍵點 — 目前還沒有可采納的可靠的消息傳遞的解決方案,可以容易地與其它解決方案進 行交互操作。為了解決這個問題,IBM 所采取的方法為:并不是定義一個可靠的消息傳遞應用,而 是定義另一個標準化的、與應用無關的可靠的消息傳遞協(xié)議,它基于廣泛存在的超文本傳輸 協(xié)議(HTTP)。
HTTP 不是可靠的協(xié)議,這是很顯而易見的。以下面的方案作為實例。這些內(nèi)容最初在 7 月 developerWorks 網(wǎng)站上發(fā)表的“HTTPR 概述”中討論過(請參閱參考資料)。
圖 1:同步的、不可靠的消息傳遞
圖 1 展示了典型的 HTTP 請求/響應流程?,F(xiàn)在,請考慮一下出現(xiàn) 在第 1 步和第 2
步(由紅色的圓點標注)之間的某種類型的通信故障。請求方將只知道出現(xiàn)了連接錯誤 ,但不知道請求是否曾傳給了響應方、應不應該回滾請求、響應方能不能處理這個消息或
者響應是不是僅僅是在返回給請求方的途中被中斷。對于那些在線購物的人來說,這恰恰是為什么
會看到這樣的警告:不要多次按提交按鈕,否則您的信用卡上將會多次計費的原因。
HTTPR 增強了 HTTP,在 HTTPR 中它添加了必需的元素來消除或者說至少可以減少在請求/響應過程中出現(xiàn)任何類 型的故障時隨之產(chǎn)生的懷疑程度。HTTPR 工作原理超出了本文討論的范圍。相反,我將向 您推薦早些時候發(fā)布在 developerWorks 網(wǎng)站的“HTTPR 概述”(請參閱參 考資料)以及“HTTPR 規(guī)范”(請參閱參考資料),以獲取關于 HTTPR 如何發(fā)揮作用的詳細的技術信息。而下面的圖 2 說 明了 HTTPR 怎么可以改變上圖所示的請求/響應事務流程,從而實現(xiàn)可靠的消息傳遞。
圖 2:異步的、可靠的消息傳遞
您可能要問的主要問題是 HTTPR 為什么是“可靠的 HTTP”?為什么將 HTTP
用作可靠消息傳遞協(xié)議的基礎?回答是:這僅僅是因為 HTTP 已有的廣泛的部署基礎。Web
服務是因特網(wǎng)技術漸進發(fā)展的結(jié)果。沒有必要去重新開發(fā)不需要重新開發(fā)的東西。將可靠的消息傳遞建立在 HTTP 基礎上,將允許已經(jīng)對 Web
服務器技術的投資的公司利用可靠的消息傳遞性能,同時繼續(xù)利用已有的投資。作為 HTTP 的擴展,HTTPR 也能利用 HTTP
安全性、會話、代理、防火墻支持等設施。
有條件的消息傳遞
與可靠的消息傳遞概念緊密相關的是有條件的消息傳遞,它涉及到各種條件的建立,這些條件用于確定怎
樣以及什么時候傳遞消息。例如,10,000 臺 ThinkPad 膝上電腦的報價可能只在收到報價后 10 天
內(nèi)有效。另一個示例可以表述為:只允許某些人查看消息內(nèi)所包含的信息,其中所涉及的內(nèi)容可以
鏈接到以前的關于安全性和保密性的討論。(請參閱參考資料。)
有條件的消息傳遞是基于規(guī)則的可靠的消息傳遞。一般情況下,這些規(guī)則總是在應用層實現(xiàn)。直 到現(xiàn)在,表達消息條件事實上還沒有一個一致的方法,以便們可以應用于中間件層。對 Web 服 務來說,這種概念將作為企業(yè)中啟用 Web 服務的關鍵因素出現(xiàn) — 允許公司在定義的約束和條件下動態(tài)地集成 業(yè)務過程。
事務和相關性環(huán)境
因特網(wǎng)開發(fā)的一個典型的長期存在的爭論是:是否需要兩階段提交方式的 Web
事務。如果需要,究竟怎樣實現(xiàn)它。簡單的、卻相反的回答是:不,不需要。傳統(tǒng)的兩階段提交不適于 Web 服務,對于這個問題的解釋,我贊同 ActiveState's
ASPN 站點(由 Walter Perry 主持)上的關于該問題的精彩討論(請參閱參考資料)。
IBM 的研究小組提出了實現(xiàn)分布式事務的另一種途徑。這種實現(xiàn)途徑稱為相關性環(huán)境,在最近提交給“企業(yè)分布式對象計算會議”(Enterprise Distributed Object Computing(EDOC)Conference)(9 月初在西雅圖舉行)的論文中討論了。
相關性環(huán)境是新的類型的事務環(huán)境,它允許在單個事務中交換出現(xiàn)同步和異步分布式消 息傳遞風格。這究竟意味著什么?那么,來看一看一個示例方案,這是在 IBM 研究人員呈交給 EDOC 會 議的論文中所提出的(請參閱參考資料)。
“Web 站點的訪問者開了一個新的帳戶,在此之后必須在兩個不同的分布式舊系統(tǒng)中創(chuàng)建 :用于帳戶管理的 ERP
數(shù)據(jù)庫和用于客戶支持的 CRM 數(shù)據(jù)庫。以實體 EJB 實現(xiàn)到 ERP 數(shù) 據(jù)庫的接口,但是訪問 CRM 數(shù)據(jù)庫必須通過 JMS/MQ
消息傳遞接口。難題在于以單個分布式事 務怎樣在 ERP 和 CRM 數(shù)據(jù)庫中完成兩個帳戶的創(chuàng)建。” — Stefan Tai 等人 所著的
Dependency-Spheres: A Global Transaction Context for Distributed Objects and
Messages。
該論文繼續(xù)指出:目前絕對沒有能支持這種類型事務的中間件支持。您可以進一步深入,設想 CRM 和 ERP 應用都遠程地托管基于
SOAP 的 Web 服務(用 WSDL 描述),一個使用 EJB 托管在 WebSphere 環(huán)境,另一個托管在 Microsoft.NET
的環(huán)境?,F(xiàn)在,由于現(xiàn)有的基礎架構(gòu)這種問 題完全不可能解決。
相關性環(huán)境解決了這個問題。作為第三方 Web 服務建立,相關性環(huán)境可以提供必需的事務環(huán)境,確保上面示例中的兩個帳戶的創(chuàng)建操作即使是在分布式的異種環(huán)境中都能進行,并且 正確地進行。我不打算詳細地解釋相關性環(huán)境怎樣工作,關于這些內(nèi)容,請參閱由 IBM 從 事該領域研究的研究小組成員所撰寫的精彩論文。(請參閱參 考資料。)
這種方法很大程度上依賴于其中的可靠的和有條件的消息傳遞原則,為了確定給定的事務是成功還是失敗 ,必須監(jiān)控消息傳遞,從而確保能夠恰當處理應用于消息傳遞和處理的規(guī)則。
現(xiàn)在,必須指出相關性環(huán)境仍然是一個研究項目,至少就這一點來說,它并不是在 Web 服務體 系結(jié)構(gòu)內(nèi)實現(xiàn)事務的唯一最有效和最有價值的方法。但是,對于怎樣在分布式的 Web 服務環(huán)境 中實現(xiàn)事務這個難題,它有希望給出一些可靠的回答。
下一步是什么?
下面我所列出的參考資料將給您研究 Web
服務中可靠的的消息傳遞、有條件的消息傳遞以及事務支持提供充 足的背景資料。要在 Web 服務中實施可靠的消息傳遞,我建議您從 IBM 的 alphaWorks
站點下載 最新版本的 Web Services ToolKit(版本 2.4)。樣本示例中包含 HTTPR 協(xié)議演示。
參考資料
請參加關于本文的討論論壇。
通過閱讀 HTTPR 概述學習“可靠的 HTTP”。
也可以得到 IBM 發(fā)布的 HTTPR 規(guī)范。
本站點有關于 IBM 研究 有條件消息傳遞方面的信息。
提交給 EDOC 會議的 Dependency Sphere 討論論文可在線得到。
要獲取更多的關于 EDOC 的信息,請訪問其 Web 站點。
下載最新版本的 Web Services ToolKit 來運用 HTTPR。
關于作者
瀏覽:Web服務內(nèi)幕,第1部分
Web服務內(nèi)幕,第2部分
Web服務內(nèi)幕,第3部分
Web服務內(nèi)幕,第4部分
Web服務內(nèi)幕,第5部分
Web服務內(nèi)幕,第6部分
Web服務內(nèi)幕,第7部分
Web服務內(nèi)幕,第8部分
Web服務內(nèi)幕,第9部分
- 1無SOAP的Web服務,第二部分
- 2面向并行工程的石家莊OA信息化研究
- 3Web服務內(nèi)幕,第4部分:介紹Web服務流語言
- 4泛普OA個性化門戶主要提供了基于用戶的門戶個性化流程
- 5IT項目實施過程中如何規(guī)避虛擬化技術風險
- 6Web Services with ASP.NET
- 7尊重知識 崇尚理性
- 8Using ASP.NET/WebServices For UPS Shipping Quotes
- 9知識經(jīng)濟時代的知識、競爭與制度演化
- 10Licensing
- 11透視Best Buy石家莊OA信息化實踐(by AMT 夏敬華 編譯)
- 12如何畫石家莊OA信息化項目實施方法論這幅地圖(by AMT夏敬華孔祥云)
- 13BEA舉辦BEA WebLogic Platform 7.0新產(chǎn)品推介會
- 14認識石家莊OA信息化系統(tǒng)模型,把握石家莊OA信息化系統(tǒng)實質(zhì)(BY AMT 夏敬華)
- 15資本的冬天是協(xié)同軟件行業(yè)的春天
- 16[理論] 信息管理的四種模式:從獨裁走向民主(AMT 石家莊OA信息化研究小組)
- 17追問石家莊OA信息化(高麗華)
- 18萬寶:中國首個石家莊OA信息化的暢飲者
- 19IBM WebSphere以最快速度部署開放的Web服務
- 20石家莊OA軟件的征求意見和民意調(diào)查
- 21W3C發(fā)表WSDL 1.2規(guī)范
- 22Building a Distributed Web Service Using a Strongly-Typed Da
- 23我國商貿(mào)業(yè)將迎來新一輪的IT建設高潮
- 24ITToolBox KM(by AMT整理)
- 25石家莊泛普OA軟件管理門戶登錄
- 26OA軟件其他輔助管理與車輛管理介紹
- 27石家莊OA信息化調(diào)研問卷
- 28微軟、IBM和BEA聯(lián)合發(fā)表Web服務新標準
- 29TIBCO來華布道Web服務戰(zhàn)略
- 30BEA支持JAX-RPC標準
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓
版權(quán)所有:泛普軟件 渝ICP備14008431號-2 渝公網(wǎng)安備50011202501700號 咨詢電話:400-8352-114