[WCF] WCF 、ASP.NET Web Service
WCF(Windows Communication Foundation):根據MSDN的定義-『建置服務導向應用程式
的統一程式設計模型』,是在.NET Framework 3.0以上所提供的技術
Web Service:根據W3C的定義-『A Web service is a software system designed to support
interoperable machine-to-machine interaction over a network. It has an interface described in a
machine-processable format (specifically WSDL). Other systems interact with the Web service
in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP
with an XML serialization in conjunction with other Web-related standards.』,簡單來說就是
透過網路的服務以SOAP、XML進行跨平台的應用程式服務介面
ASP.NET Web Service:在.NET Framework裡為了實作Web Service所提供的一組Framework
那WCF與ASP.NET Web Service間又有什麼關係呢?由於網路本身是跨平台的,不管什麼
系統平台基本都是可以存取網路的,所以從Service的慨念來看,對於分散式架構來說,
只要能在網路中提供類似的服務元件,那麼它就可以做跨平台的服務。但是在.NET裡能
夠提供分散式元件建構的技術並不只有Web Service,例如:.NET Remoting或是COM+ ....等
,不過這麼一來對開發人員來說為了達成類似的架構需求,然而所可以運用的實作技術卻
有多種,而每一種技術在實作上卻是不相同,因此在開發上的負擔就變重了,所以在.NET
Framework 3.0之後微軟就提供Windows Communication Foundation技術,WCF將這些不同通訊
實作的方式整合起來,也就是WCF除了可以開發Web Servcie之外,也可以開發其它通訊實作
(TCP、MSMQ.....),使得開發人員只需要學習WCF的開發就可以了。
WCF的架構:(取自http://msdn.microsoft.com/zh-tw/library/ms733128(v=vs.90).aspx)
WCF的概念上是以合約Contract來定義,從架構圖可以看到分成四類-資料合約、訊息合約、
服務合約、原則和繫結合約,利用合約的制定來定義彼此間要如何溝通的約定。
透過以上簡單的說明,應該可以初步分瞭解WCF、Web Service、ASP.NET Web Service三者
間關係,也就不容易再陷入WCF 等不等於 Web Service這樣的問題中了
Ref:
http://www.w3.org/TR/ws-arch/#whatis
http://zh.wikipedia.org/wiki/Web_Services#.E5.AE.9A.E4.B9.89
http://zh.wikipedia.org/wiki/.NET_Remoting
http://msdn.microsoft.com/en-us/library/kwdt6w2k(v=vs.71).aspx
http://msdn.microsoft.com/zh-tw/library/ms733128(v=vs.90).aspx
http://msdn.microsoft.com/zh-tw/library/ms735119.aspx
By No.18