天天看點

論Web Service 相關技術

摘要:随着Internet和weh技術的迅速發展,傳統的分布式計算技術已經不能很好的适用于Web環境。正是基于這種情況,Web Service技術應運而生。Web Service是一個新概念,它的系統架構、實作技術是現有應用的面向Internet的一個延伸。Web是為了程式到使用者的互動,而Web Service是為程式到程式的互動作準備,web Service已成為IT産業近幾年來探索的熱點課題之一。

關鍵詞:Web Service;特點;技術

1 Web Service關鍵技術

Web Service以技術棧的形式規範了Web Service體系中的各類關鍵技術,包括服務的描述、釋出、實作以及消息的傳輸等,

1.1XML和HTTP。

這是Web Service最基本的平台。}玎 P是—個在Internet上廣泛使用的協定,為Web Service部件通過Internet互動奠定了協泌基礎,并具有穿透防火牆的良呼特陛。可擴充标記語言XML是一種元語言,是一種新的Internet上的資料交換标準,與HTML使用标簽來描述外觀和資料不同,XML嚴格地定義和描述可移植的結構化資料,它是Web Service得以實作的語言基礎。Web Service的其它協定規範都是以XML形式來描述和表達的。

1.2SOAP。

簡單對象通路協定(S0A Simple Object Access Protocol)是一個基于可擴充辨別語言(XML,The Extensible Markup Language),在分布式的環境中交換資訊的簡單的協定。它建立在HTTP協定之上,可以說它是HTTP與XML的結合。SOAP為在—個松散的、分布式的環境中使用XML對等的交換結構化的和類型化的資訊提供了一種簡單的機制。SOAP本身并不定義任何應用語義,如程式設計模型或特定語義實作;實際上它通過提供—個有标準元件的包模型和在子產品中編碼資料的機制,定義了—個簡單的表示應用程式語義的機制。這使SOAP能夠被用于從消息傳遞到RPC的各種系統。

SOAP規範由三部分組成:

a.SOAP封裝結構定義了一個整體架構用來表示消息中包含什麼内容,準來處理這些内容已及這些内容是可選的還是必需的。

b.SOAP編碼規則定義了用以交換應用程式定義的資料類型的執行個體的一系列機制。

c.SOAP RPC表示定義了—個用來表示遠端過程調用和應答的協定。

SOAP的消息由三部分組成:SOAP信封(Envelope),SOAP頭(Header) SOAP體(Body)。

SOAP體包含用于執行方法調用所需要的資訊,例如方法名稱和參數等。該部分是強制必需的。

SOAP頭包含其他的一些附加資料,例如安全或事務資訊。該部分是可選的。

SOAP信封将SOAP頭和SOAP體封裝在一起。

下面是一個SOAP請求示例,請求—個通過産品編号獲得産品價格的服務(服務名稱是Get—ProductPrice,它接受—個“ProductID”參數):

<SOAP-ENV:Envelope

xmlns:SOAP-ENV-“http://schemas.xmlsoap.org/soap/envelope/”

SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”>

<S0AP—ENV:Body>

<m:GetProductPrice xmlns:m=“Some—URI”>

<ProductID>SD9001</ProductID >

</m:GetProductPrice>

</S0AP—ENV:Body>

</SOAP—ENV:Envelope>

相應的SOAP響應可能如下所示:

<SOAP-ENV:Envelope

Xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”

SOAP—ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”/>

<m:GetProductPriceResponse xmlns:m=“Some-URI”>

<Price>45.6</Price>

</m:GetProductPriceResponse>

</SOAP-ENV:Envelope>

其中,Some—URI是服務提供者的位址,Get—ProductPriee是該提供者所提供的一個Web服務方法(Web Method) ,該方法接收一個産品辨別的參數(ProductID),方法傳回該産品的單價,傳回資訊包含在Response單元中。

1.3WSDL。

随着通信協定和消息格式在Web社群中的标準化,以結構化方式來描述通信的可能性和重要性也在13益增加。Web服務描述語言eb Services Description Language,wsDL灑過定義XML文法将網絡服務描述成具有消息交換功能的通信端點的集合,進而滿足了這種需要,它取代了以往複雜的互動式資料語言(InteractiveData Language,IDL)。WSDL服務定義為分布式系統提供了描述文檔,并且可以用作應用程式通信中所涉及的詳細資訊的自動化方法,用戶端應用程式通過WSDL文檔來了解Web Service的服務資訊和調用接口。

WSDL文檔将服務定義為網絡端點或網絡端口的集合。在WSDL中,端點和消息的抽象定義已從它們的具體網絡部署或資料格式綁定中分離出來。

這樣就可以重複使用抽象定義:

消息:對所交換資料的抽象描述。

端口類型:操作的抽象集合。

一種特定端口類型的具體協定和資料格式規範構成了—個可重複使用的綁定。—個端口是通過将—個網絡位址和—個可重複使用的綁定相關聯來定義的;—個端口集合定義一種服務。

1.4UDDI。

通用描述、發現和內建協定UDDI(Universal Description,Discovery and Integration),它是Web Service的資訊注冊規範,同時也定義了一種程式設計接口。通過UDDI提供的标準接口,企業可以釋出自己的Web Service供其它企業查詢、調用;也可以查詢特定服務的描述資訊,并動态綁定到該服務上。通過UDDI,Web Service可以真正實作資訊的“一次注冊,到處通路”。

1.5WSFL。

WSFL (Web Service Flow Language)使用WSDL和WSEI(Web Service EndpointLanguage)來描述服務接El和它們的協定綁定。WSEL是用來描述非操作性的服務特征(如服務品質等)的—種語言。建立和實作基于計算機網絡的分布式系統模式,是對傳統模式的揚棄與創新。分布式應用系統是分布、開放的體系結構,具有良好的容錯能力、可擴充和可重組陛,處于同一網絡層次中的各個結點在邏輯結構上或地理位置上是分布的,無主從之分,能獨立地、自主地完成各自的子任務,但為完成系統的整體任務,彼此間還需進行大量的互動活動,包括資訊、資料的交流與共享,互相協商、協調與合作以協同完成任務。其基本目标是将現有的各種在地理位置上或邏輯上分布的異構系統,連接配接到計算機網絡中去,以提高各個子系統間的資訊交流與合作能力,進而實作資料、資源的共享。

2 Web Service的優勢及前景

随着Web Service應用的日益廣泛,基于Web Service的公共技術标準SOAP,WSDL/UDDI/WSFL或是已經成為事實上的行業标準,或是正在制訂的過程中。作為Web Service的體系結構的上司者,IBM和Microsoft也開始在全球推廣Web Service技術。

2.1 web Service的優勢。

web Service有四大優勢:

a.互操作性增強。在服務提供者和服務請求者之間的互動是獨立于平台和語言的,這種互動需要—個WSDL文檔描述服務,也需要一個網絡協定國常是H,ITrP協定)o互操作中的服務提供者和服務請求者不必知道互相使用的平台和語言。

b.即時內建(Justin—time intepen)。服務發現的過程時動态發生的(通過UDDI注冊中心等),一旦服務請求者發現了服務,服務提供者的WSDL文檔就被用來将服務請求者和服務綁定到一起。這意味着服務請求者服務提供者與服務注冊中心一起工作以建立自動配置的、應的、健壯的系統。

c.通過封裝降低複雜性。服務請求者和服務提供者隻考慮自己要用于互動的接口,服務請求者不知道服務提供者如何實作它的服務,服務提供者也不知道—個服務請求者如何使用他的服務,這些細節在請求者和提供者内部封裝了。

d.有效利用傳統應用系統。使用—個應用程式生成—個SOAP包裝器,然後生成一個WSDL文檔将應用程式轉換成一個Web Service的過程是相當直接的,這意味着,傳統應用系統可以以一種新的方式使用。另外,與傳統應用系統相關的基礎結構,例如安全、目錄服務、事務等也可以被包裝成—個服務。

2.2 Web Service在Intemet上的應用內建。

在新—代的分布式應用系統中,必須解決不同元件模型、開發工具、程式語言和應用系統之間在Intemet環境中互相溝通和合作的問題,是以軟體界勢必要一種标準的溝通機制,而這種機制正式現在的SOAP。

以往的元件通信機制總是屬于某一或幾個廠商所制訂的标準,很難在整個企業界形成為一的同一和認可,是以造成了不同元件的應用系統難于內建的情況,但現在的SOAP是獨立于任何廠商的一種标準協定,它是以XML的标準格式來封裝通信資訊的一種溝通機制,其中封裝的通信資訊以文本形式來表達,任何元件模型、開發工具、程式語言和應用系統以及作業系統隻要支援XML和文本格式,就可以完全支援SOAP。這使得SOAP成為了lnternet上應用系統內建的關鍵。

繼續閱讀