Duwamish Web Services分析篇
Written by: Rickie Lee
Nov. 08, 2004
Duwamish 7.0在web項目中提供了一個Web Service(service/catalogservice.asmx),以向 Internet 公開它的書目錄搜索功能。CatalogService Web Service由一個asmx文件和一個代碼隱藏文件組成,其中ASMX 文件充當調用 Web Services的客戶端的基 URL,代碼隱藏文件包含實現 Web 服務的代碼。不過,在整個Duwamish項目中並沒有調用該web service,正如以前的POST中所提及的:
If you need to communicate between applications (even .NET apps) then use web services. Note this is not between tiers, but between applications – as in SOA (Service-Oriented Architecture). SOA is not useful INSIDE applications. It is only useful BETWEEN applications.
1. Web Services概述
Web Services既可以在內部由單個應用程序使用,也可通過 Internet 公開以供外部的應用程序使用。由於可以通過標準接口訪問,因此Web Services使異類系統能夠作爲單個計算網絡資源協同運行。
Web Services並不追求一般的代碼可移植性功能,而是爲實現數據和系統的互操作性提供了一種可行的解決方案。Web Services使用基於XML的消息處理作爲基本的數據通訊方式,以幫助消除使用不同組件模型、操作系統和編程語言的系統之間存在的差異。開發人員可以用像過去在創建分佈式應用程序時使用組件一樣的方式創建將來自各種平臺的Web Services組合在一起的應用程序。
Web Services的核心特徵之一是服務的實現與使用之間的高度抽象化。通過將基於XML的消息處理機制,Web Services客戶端和Web Services提供程序之間除輸入、輸出和位置之外無需互相瞭解其他信息。
Web Services向外界發佈出一個能夠通過Web進行調用的、平臺無關的API。也就是說,你能夠在任何你喜歡的平臺上,用編程的方法通過Web來調用這個應用程序,進行基於Web的分佈式計算和處理。Web Services平臺是一套標準,它定義了應用程序如何在Web上實現互操作性。Web Services平臺採用XML來表示數據的基本格式,採用W3C制定的XML Schema(XSD)來作爲其數據類型系統。
組成Web Services平臺的三個核心的技術規範分別爲SOAP、WSDL和UDDI。SOAP規範定義了SOAP消息的格式,以及怎樣通過HTTP協議來使用SOAP,來執行Web Services的調用。WSDL(Web Services描述語言)用來描述Web Services。因爲其基於XML,所以WSDL文檔既是機器可閱讀的,又是人可閱讀的。UDDI(統一描述,發現和集成協議)標準定義了Web Services的發佈與發現的方法。
從技術的角度來看,Web Services可以被認爲是一種部署在Web上的對象(Web Object),因此,具有對象技術所承諾的所有優點;同時,Web Services的基石是以XML爲主的、開放的Web規範技術,因此,具有比任何現有對象技術更好的開放性。
2. Duwamish中的CatalogService Web Service
(1)CatalogServer.asmx文件中僅包含一行代碼:
<%@ WebService Language="c#" Codebehind="CatalogService.cs" Class="Duwamish7.Web.Service.CatalogService" %>
(2)CatalogService.cs代碼隱藏文件包含實現web service的代碼:
CatalogService Web 服務實現 GetBooksByTopic 和 GetBooksByTopicSecure Web 方法,返回值爲DataSet類型(支持XML編碼和序列化)。Web Service發佈的上述Web方法均都有WebMethodAttribute。
WebMethodAttribute向使用 ASP.NET 創建的 XML Web services 中的某個方法添加此特性後,就可以從遠程 Web 客戶端調用該方法。
另外還有一些輔助的class和方法(調用BusinessFacade tier),代碼比較簡單。
(3)Web.config配置文件<webServices> 元素:可以配置使用 ASP.NET 創建的 XML Web services 的設置。
3. Summary
Web Services不僅可用於異構平臺的相互集成,也是分佈式應用開發的一種技術。Microsoft在推.Net Framework時,盡心盡力吹捧這項技術,並冠以XML Web Services。不過由於Web Services的性能不好的問題,感覺目前在企業內部應用並不多,估計還不及.Net Remoting技術的應用。
Microsoft還有一個Web Services的增強軟件開發包:Web Services Enhancements (WSE) Version 2.0,主要提供如下特性:安全特性(數字簽名和加密),消息路由,消息附件等等,從Reference 1可以下載。
現在,Web Services方面的相關規範很多,如WS-Security, WS-Policy, WS-Trust, WS-SecureConversation……,令人目不暇接,在不斷地向前發展。從另外一個方面也表示,Web Services技術目前在企業應用方面還不夠成熟。
轉自:http://www.cnblogs.com/rickie/archive/2004/11/10/62115.html