監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

Web服務(wù)的(革)創(chuàng)新,第1部分

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

Web服務(wù)的(革)創(chuàng)新,第1部分

--將Web服務(wù)應(yīng)用于應(yīng)用程序

 

Graham Glass

CEO/首席設(shè)計師,The Mind Electric

2000 年 11 月

這是本新專欄的開篇文章,講述了構(gòu)建 Web 服務(wù)應(yīng)用的一些好處和挑戰(zhàn)。Web 服務(wù)也許是設(shè)計分布式應(yīng)用中一個創(chuàng)造性步驟,但是,它們并不是完美無缺的。Graham 概述了開發(fā)者在創(chuàng)建確實可工作的 Web 服務(wù)分布式系統(tǒng)時會遇到的困難。本文還概述了在本專欄的后續(xù)文章中介紹構(gòu)建對等 Web 應(yīng)用的計劃。

歡迎閱讀這個新專欄的第一部分,本文講述了 Web 服務(wù)技術(shù)的革新和創(chuàng)新。之所以稱為“革新”,是因為 Web 服務(wù)是超越于面向?qū)ο蠹夹g(shù)的抽象范疇中的下一個階段,而稱之為“創(chuàng)新”是因為我堅信它們將推進從客戶機-服務(wù)器體系結(jié)構(gòu)到對等體系結(jié)構(gòu)的轉(zhuǎn)變。

在本系列中,我將從 Web 服務(wù)的概述和一些為了實現(xiàn)大規(guī)模采用而必須克服的障礙入手。接著,構(gòu)建一些簡單的 Web 服務(wù),并使用它們來創(chuàng)建分布式系統(tǒng)。然后,檢查一些棘手問題,如安全性、事務(wù)和可伸縮性。最后,使用 Web 服務(wù)來創(chuàng)建一些對等系統(tǒng),這些系統(tǒng)將演示與傳統(tǒng)分布式體系結(jié)構(gòu)不同的思想方法。

概述

Web 服務(wù)是封裝成單個實體并發(fā)布到網(wǎng)絡(luò)上以供其它程序使用的功能集合。Web 服務(wù)是用于創(chuàng)建開放分布式系統(tǒng)的構(gòu)件,并可以使公司和個人迅速且廉價地將向全世界提供他們的數(shù)字資產(chǎn)。其早期的示例是 Microsoft Passport,Microsoft 擁有的一種便利認證服務(wù)。以下是其它一些示例:

信用檢查服務(wù),給出個人分配社會保障號時,它將返回信用信息。

股票報價服務(wù),返回與指定股票行情自動收錄器符號相關(guān)的股票價格。

采購服務(wù),如果給定了項目代碼和數(shù)量,允許計算機系統(tǒng)購買辦公用品。

Web 服務(wù)可以集合其它 Web 服務(wù)以提供一套更高級的功能。例如,Web 服務(wù)可以通過吸納低級的汽車租借、航空旅行和酒店等 Web 服務(wù)來提供一套高級的旅行服務(wù)。將根據(jù)成本、質(zhì)量和可用性在運行時動態(tài)選擇 Web 服務(wù),并根據(jù)這些 Web 服務(wù)來構(gòu)建未來的應(yīng)用。

幾乎可以保證 Web 服務(wù)是下一代分布式系統(tǒng)的核心部分。其原因如下:

互操作性。任何 Web 服務(wù)都可以與其它 Web 服務(wù)進行交互。應(yīng)感謝 SOAP,這是所有主要供應(yīng)商(以及大多數(shù)中小供應(yīng)商)都支持的新標準協(xié)議,這樣就避免了在 CORBA、DCOM 和其它協(xié)議之間轉(zhuǎn)換的麻煩。還因為可以使用任何語言來編寫 Web 服務(wù)(甚至 COBOL,我敢打賭),開發(fā)者無需更改他們的開發(fā)環(huán)境就可生產(chǎn)和使用 Web 服務(wù)。

普遍性。Web 服務(wù)使用 HTTP 和 XML 進行通信。因此,任何支持這些技術(shù)的設(shè)備都可以擁有和訪問 Web 服務(wù)。不久,它們將在電話、汽車甚至汽水販賣機中出現(xiàn)。汽水供應(yīng)不足嗎?沒問題,無線聯(lián)網(wǎng)的汽水販賣機可以與本地供應(yīng)商的 Web 服務(wù)聯(lián)系,訂購更多您喜愛的飲料。

低進入屏障。Web 服務(wù)背后的概念易于理解,并且來自 IBM 和微軟這樣的供應(yīng)商的免費工具箱能夠讓開發(fā)者快速創(chuàng)建和部署 Web 服務(wù)。此外,其中的某些工具箱還可以讓已有的 COM 組件和 JavaBean 方便地成為 Web 服務(wù)。

行業(yè)支持。所有主要的供應(yīng)商都支持 SOAP 和周邊 Web 服務(wù)技術(shù)。例如,微軟的 .NET 平臺就基于 Web 服務(wù),因此用 Visual Basic 編寫的組件很容易作為 Web 服務(wù)部署,并由使用 IBM VisualAge 編寫的 Web 服務(wù)使用,反之亦然。

挑戰(zhàn)

到目前為止,一切順利。但要使 Web 服務(wù)成功,還會遇到許多技術(shù)挑戰(zhàn),其中有許多與它們賴以生存的開放、不利的環(huán)境有關(guān)。以下是一些問題:

發(fā)現(xiàn)。Web 服務(wù)如何做自我宣傳以引起其它服務(wù)的關(guān)注?如果服務(wù)在其自我宣傳后做了改動,會發(fā)生什么情況?WSDL(Web 服務(wù)定義語言)和 UDDI(通用描述、發(fā)現(xiàn)和集成)是解決這個問題的兩個新標準。

可靠性。某些 Web 服務(wù)主機將比其它主機更可靠。那如何測量和傳遞這個可靠性呢?當(dāng) Web 服務(wù)主機暫時脫機時會發(fā)生什么情況?您是尋求和使用其它供應(yīng)商擁有的替代服務(wù),還是等待原來的那個重新可用呢?您怎么知道哪些供應(yīng)商可以信賴?

安全性。某些 Web 服務(wù)將在公開情況下可用而沒有保護措施,但大多數(shù)與商業(yè)相關(guān)的服務(wù)將使用帶認證的加密通信。SSL 上的 HTTP 往往能夠提供基本的安全性,但有個別服務(wù)需要更高顆粒度級別。Web 服務(wù)如何認證用戶?服務(wù)需要在方法級別上提供安全性的能力嗎?如果您與在世界范圍內(nèi)提供服務(wù)的供應(yīng)商簽約,這些服務(wù)如何了解您的安全性特權(quán)呢?

事務(wù)。傳統(tǒng)的事務(wù)處理系統(tǒng)使用兩階段提交方式,所有參與的資源都被集中起來,并在整個事務(wù)發(fā)生之前鎖定,等到事務(wù)發(fā)生后,資源被最后釋放。這種方式在事務(wù)生存時間很短的封閉環(huán)境中很有效,但在事務(wù)可能跨越幾小時,甚至幾天的開放環(huán)境中就不那么好用了。微軟支持一種替代的方案,稱為補償事務(wù),用在他們新的分布式商業(yè)過程 XLANG 系統(tǒng)。這種事務(wù)應(yīng)不應(yīng)該集成到 Web 服務(wù)中?如果應(yīng)該,這種方式和建議的標準,例如 XAML(一種將要發(fā)布的支持傳統(tǒng)事務(wù)的 XML 標記語言)之間有什么重疊嗎?

可伸縮性。因為有可能將現(xiàn)有的組件系統(tǒng),例如 Enterprise Java Bean 當(dāng)作 Web 服務(wù),所以應(yīng)該有可能利用已有的負載均衡和其它可伸縮性機制。但在進行的過程中有沒有未預(yù)見的障礙?需不需要一種新的 Web 服務(wù)應(yīng)用服務(wù)器?

可管理性。管理高度分布式的系統(tǒng)需要哪種機制?因為系統(tǒng)的特性是其各個部分特性的函數(shù),所以每種不同 Web 服務(wù)的管理器是否需要以一種特殊的方式協(xié)調(diào)?是否可能將一些 Web 服務(wù)的管理“外包”給其它 Web 服務(wù)?

可說明性。如何定義一個用戶可以訪問和執(zhí)行 Web 服務(wù)多久?如何收取 Web 服務(wù)的費用?占主導(dǎo)地位的模式是基于訂閱的還是現(xiàn)購現(xiàn)付?如果您銷售 Web 服務(wù),如何表明所有權(quán)的變更? Web 服務(wù)是在使用時完全消費,還是可以作為采購協(xié)議的一部分多次重用該服務(wù)?
測試。如果系統(tǒng)由位置和質(zhì)量潛在地不斷變化的許多 Web 服務(wù)組成,測試和調(diào)試就會采用全新的方式。如何實現(xiàn)可預(yù)測的響應(yīng)時間?如何調(diào)試可能來自不同供應(yīng)商、在不同環(huán)境和不同操作系統(tǒng)上駐留的 Web 服務(wù)?

除非您知道解決這些問題的系統(tǒng)已經(jīng)存在,否則聽上去它們都相當(dāng)令人望而卻步。人類社會和生態(tài)組織就是兩個這樣的例子。這兩個示例展示了以下特性:

容錯。

大規(guī)模并行。

分布式。

良好組織的。

自我修復(fù)。

按分層方式設(shè)計。

在簡單組件上設(shè)計。

通過這些現(xiàn)有示例中的榜樣,應(yīng)該有可能創(chuàng)建一個 Web 服務(wù)的社會,其中各個組件相互之間進行合作以實現(xiàn)其各自目的。您可以很容易想象這樣一個聯(lián)網(wǎng)市場,其中 Web 服務(wù)將它們自己出租給最高的出價者。 MojoNation 就是采取這種方法的開放源碼項目。

對等和 Web 服務(wù)

除了 Web 服務(wù)的直接使用以外,在對等 (P2P) 計算領(lǐng)域中,這種技術(shù)還有許多精彩的應(yīng)用。例如,考慮一個 eBay 的 P2P 版本,在這里,消費者將一個簡單的拍賣 Web 服務(wù)安裝到他們的家庭計算機或智能電話上。一旦告訴了拍賣服務(wù)您的買賣意向后,它就與世界范圍內(nèi)的其它拍賣服務(wù)聯(lián)系,幫您找到適當(dāng)?shù)馁I家和賣家。交易在消費者的設(shè)備之間直接發(fā)生,不需要任何服務(wù)器。

一個更大膽的想法是 P2P 蜂窩網(wǎng)絡(luò),它使用其它中間消費者的電話,而不是基站。當(dāng)您撥打電話時,通話沿著相鄰的蜂窩電話進行路由,到達它的最終目的地。使用這種體系結(jié)構(gòu),從理論上說,可以將 10,000 個蜂窩電話投放到以前未裝電話線的區(qū)域中,并且只要有適當(dāng)?shù)娜巳?,就可以立即在不使用基站或其它傳統(tǒng)電話網(wǎng)絡(luò)基礎(chǔ)設(shè)施的情況下?lián)艽螂娫挘?/FONT>

我想,Web 服務(wù)的強大威力和簡單性將加速分布式計算世界的革新。在本系列的其余部分中,我打算培養(yǎng)、接納和促進這一領(lǐng)域中開發(fā)者之間的討論。盡管預(yù)測演示的特定順序比較困難,但將涉及到以下方面:

上機實踐教程。

新興標準,例如 SOAP、UDDI、WSDL 和 XAML。

對等體系結(jié)構(gòu)。

動態(tài)發(fā)現(xiàn)。

安全性和事務(wù)。

Web 服務(wù)的用戶界面。

Web 服務(wù)的安排。

測試基于 Web 服務(wù)的應(yīng)用。

下一專欄將指導(dǎo)您完成創(chuàng)建自己的 Web 服務(wù)的每個步驟。到那時再享受其中的樂趣吧!

參考資料

  • UDDI 組織有一本關(guān)于 UDDI 接口的白皮書。
  • Web 服務(wù)描述語言 1.1 說明了 Web 服務(wù)之間如何描述自己。
  • James Snell 在 SOAP Web 資源中心上有許多新聞項。
  • Apache 項目還存放著有用的有關(guān) SOAP 的信息。
  • 查看將要發(fā)布的 XAML 事務(wù)權(quán)限標記語言。
  • 第二部分:你好世界,Web 服務(wù)風(fēng)格
  • 第三部分:SOAP 是如何工作的
  • 第四部分:Web 服務(wù)描述語言 (WSDL)

關(guān)于作者
Graham Glass 是 The Mind Electric 的創(chuàng)建者、CEO 和首席設(shè)計師,該公司致力于大型分布式計算的構(gòu)建。他相信因特網(wǎng)的發(fā)展將反映生物頭腦的發(fā)展,而幫助人們和商家有效聯(lián)網(wǎng)的那些體系結(jié)構(gòu)將提供對將人類思想連接在一起的體系結(jié)構(gòu)的深入了解。

在創(chuàng)建 The Mind Electric 之前,Graham 是 ObjectSpace 的主席、CTO 和聯(lián)合發(fā)起人之一,該公司總部位于達拉斯,專門從事商家到商家的集成。在 ObjectSpace 時,他擔(dān)任分布式計算、JGL Java 集合庫和跨平臺 C++ 工具箱的 Voyager 產(chǎn)品線的設(shè)計師和首席開發(fā)者。Graham 由于 Voyager 和 JGL 的開發(fā),于 1996 年榮獲年度 Ernst and Young Entrepeneur 獎和一些行業(yè)大獎。

Graham 還是 ObjectLesson(一家提供前沿技術(shù)培訓(xùn)的公司)的創(chuàng)辦人。他為 Prentice Hall 撰寫了兩本有關(guān) UNIX 和 STL 的書籍,并以他對新興技術(shù)的熱情和清晰闡述而成為受歡迎的演說家。

Graham 從南安普敦大學(xué)獲得了數(shù)學(xué)和計算機科學(xué)理學(xué)士學(xué)位,從達拉斯的得州大學(xué)獲得了計算機科學(xué)碩士學(xué)位,并從 Haberdashers 的 Aske's School 獲得 British "O" 和 "A" 級。在轉(zhuǎn)向企業(yè)之前,他在 UTD 作為高級講師,教授 UNIX、C、C++、Smalltalk 和編程語言??赏ㄟ^ graham-glass@mindspring.com 與他聯(lián)系。

瀏覽: Web服務(wù)的(革)創(chuàng)新,第2部分

Web服務(wù)的(革)創(chuàng)新,第3部分

Web服務(wù)的(革)創(chuàng)新,第4部分

發(fā)布:2007-03-25 13:26    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
石家莊OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢