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

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

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

AMTeam.org

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

--將Web服務應用于應用程序

 

Graham Glass

CEO/首席設計師,The Mind Electric

2000 年 11 月

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

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

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

概述

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

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

股票報價服務,返回與指定股票行情自動收錄器符號相關的股票價格。

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

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

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

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

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

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

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

挑戰(zhàn)

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

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

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

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

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

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

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

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

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

容錯。

大規(guī)模并行。

分布式。

良好組織的。

自我修復。

按分層方式設計。

在簡單組件上設計。

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

對等和 Web 服務

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

一個更大膽的想法是 P2P 蜂窩網(wǎng)絡,它使用其它中間消費者的電話,而不是基站。當您撥打電話時,通話沿著相鄰的蜂窩電話進行路由,到達它的最終目的地。使用這種體系結(jié)構,從理論上說,可以將 10,000 個蜂窩電話投放到以前未裝電話線的區(qū)域中,并且只要有適當?shù)娜巳海涂梢粤⒓丛诓皇褂没净蚱渌鼈鹘y(tǒng)電話網(wǎng)絡基礎設施的情況下?lián)艽螂娫挘?/FONT>

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

上機實踐教程。

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

對等體系結(jié)構。

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

安全性和事務。

Web 服務的用戶界面。

Web 服務的安排。

測試基于 Web 服務的應用。

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

參考資料

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

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

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

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

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

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

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

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

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

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

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

咨詢:400-8352-114

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

QQ在線咨詢