Web Services是什麼?

 

Web Services突然熱起來了,特別是M$.net爲我們描述了一個互聯共享的世界,其實這些美好前景當初在Java誕生時早已經憧憬過,但理想的實現過程總是崎嶇漫長.

我們從一個應用看看Web Services是怎麼運作的:

有一個咖啡連鎖店的老闆叫Coffee Break,要拓展自己銷售的咖啡品種,他指示他的採購經理去尋找一些新的咖啡提供商,得到他們的咖啡全部價格,並且在需要時能夠立即下訂單,Coffee Break能夠分析他們的價格,並決定選用哪一種咖啡,從哪個公司進貨.

詢價
採購經理就將具體任務分配給軟件工程師,軟件工程師認爲尋找新的咖啡提供商的最好辦法是搜索UDDI註冊中心.

UDDI註冊中心:(Universal Description, Discovery, and Integration (UDDI) registry),UDDI Registry是一個邏輯上的統一體,在物理上則是以分佈式系統的架構實施的,而不同站點之間是採用P2P(對等網絡)架構實施的,因此訪問其中任意一個站點就基本等於訪問了UDDI Registry。

當然,Coffee Break也在UDDI註冊中心註冊了自己.

軟件工程師就用JAXR(Java API for XML Registries )發出了一個查詢所有咖啡提供商的指令,JAXR在後臺使用JAXM(Java API for XML Messaging)發出消息,也就是基於SOAP發送XML文本.

UDDI註冊中心接受了這個XML文本,並開始精確的搜索,但搜索完成後,註冊中心將發回那些有關怎樣聯繫那些符合條件的咖啡經銷商的信息.也是基於SOAP發回XML文本.

工程師的下一步工作就是從這些分銷商名單中列出他們的咖啡銷售價格,這個工作分兩步:

1.通過JAX-RPC(Java API for XML-based RPC )完成獲取和分析WSDL文本(Services Description Language (WSDL) document).這也是一個XML文本,它給出了所有關於Web service的信息:告訴訪問者自己提供哪些服務,服務內容是什麼,怎樣獲取這些服務內容等.

2.工程師分析了WSDL文本後,得到了獲取咖啡銷售價格的方法和相應的網址.他就向那些具體的咖啡經銷商網址發出請求,以獲得其銷售的咖啡價格.

每個咖啡分銷商都會接受到這樣的請求,在他發出銷售價格之前,他也會先去查詢一下產品的當前期貨價格,這樣Coffee Break就得到了最新的XML文本格式的咖啡價格.如下面:

<coffee>

<單價>
<哥侖比亞咖啡>19.20</哥侖比亞咖啡>
</單價>

....

</coffee>

XML是即將取代HTML的最新的瀏覽器語言,我們平時通過瀏覽器上網瀏覽,看到的都是HTML編寫的文件,將來都是XML編寫的文件.

分析價格並訂購
讀取XML文本有兩種方式:SAX和DOM,對於簡單比價,使用SAX比DOM更有效率,但是如果要修改價格表,就要使用DOM,Coffee Break的工程師使用SAX比較了這些分銷商發來的價格表,並得出了一張結果表,報送到採購經理或老闆Coffee Break.一旦決定訂購咖啡,也是通過發送XML文本和經銷商聯繫.

通過Internet銷售
Coffee Break 已經準備好了新的咖啡品種,需要在他的網站上發佈這個咖啡品種新的價格.Coffee Break當然不能以自己進貨的價格銷售咖啡,工程師就使用DOM修改了一下上面的XML文檔,將每個價格乘125%,這就是Coffee Break的咖啡銷售價格.

工程師使用JSP做了一個訂單表單.在這個JSP程序裏,他可以從上面修改後的XML文檔中讀取每個咖啡的名稱和價格.顧客只要選擇購買數量,然後按Submit就當前咖啡放入自己的購物車,開始了網上購物.

Web Service是將XML文本在各個網站之間傳送和接受,以達到信息交換的目的.在接受和傳送時有一個協議,就是SOAP(Simple Object Access Protocol),這是個XML+http的協議.當前我們網站公佈信息,都是通過http協議發送到用戶的瀏覽器上,因此SOAP有廣泛的應用基礎,現在就差XML的普及.

不過,因爲XML是純粹的數據結構,但只有數據的互聯網將倒退到學術科研時代,因此,類似Frontpage Dreamweaver基於XML的強大的頁面設計工具是重要的,但是這樣的可視化工具很難設計.

所以XML的普及有時間問題,那麼Web Services提供的上述美好前景的真正實現,恐怕不是一兩年內會達到的.

但是Web Services爲專門從事互聯網服務的公司帶來的機會,因爲他們的客戶是一個個商業網站,因此,他們可以開發一個個商業應用,而不必將這些應用象普通軟件一樣安裝在他們客戶的服務器上,而是讓他們的客戶網站通過SOAP來調用這些軟件功能,並支取一定的使用費.

對於作爲客戶的網站來說,購買了某個互聯網服務,不必專門設立服務器,購買大量軟件,還要維護他們,只要通過直接調用提供該功能的Web Services就可以,比如購物車功能,這是每個網上商店都必須的,但每個商家不一定去購買這個軟件,只要在自己網頁中直接調用網上商店的Web Services就可以。

但現在最致命的是Web Services的安全性。

Sun的Web Service:http://java.sun.com/webservices/docs/ea2/tutorial/index.html

Open source的Web Service服務器,需Tomcat同時運行:http://xml.apache.org/axis

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章