Windows Communication Foundation介紹(一)

來源:互聯網
上載者:User
 Windows Communication Foundation介紹(一)

參閱: WCF 介紹(一) | WCF 介紹(二) | WCF 介紹(三) | WCF 介紹(四)

前言:WCF是微軟基於SOA(Service Oriented Architecture)推出的.Net平台下的架構產品,它代表了軟體架構設計與開發的一種發展方向,在微軟的戰略計劃中也佔有非常重要的地位。瞭解和掌握WCF,對於程式員特別是基於微軟產品開發的程式員而言,是非常有必要的。

一、什麼是WCF?

根據微軟官方的解釋,WCF是使用Managed 程式碼建立和運行面向服務(Service Oriented)應用程式的統一架構。它使得開發人員能夠建立一個跨平台的、安全、可信賴、事務性的解決方案,且能與已有系統相容協作。WCF是微軟分布式應用程式開發的集大成者,它整合了.Net平台下所有的和分布式系統有關的技術,例如.Net Remoting、ASMX、WSE和MSMQ。以通訊(Communiation)範圍而論,它可以跨進程、跨機器、跨子網、企業網乃至於Internet;以宿主程式而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支援的協議包括TCP,HTTP,跨進程以及自訂,安全模式則包括SAML,Kerberos,X509,使用者/密碼,自訂等多種標準與模式。也就是說,在WCF架構下,開發基於SOA的分布式系統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了WCF,就相當於掌握了叩開SOA大門的鑰匙。
WCF是建立在.Net Framework 2.0基礎之上的,包含在.NET 3.0/3.5當中。2005中並沒有包含WCF,但是當安裝好了WinFX Runtime Components後,我們就可以在Visual Studio 2005環境下開發和建立WCF的程式了。
WCF是微軟重點介紹的產品,因此也推出了專門的官方網站(http://windowscommunication.net),該網站有最新的WCF新聞發布,以及介紹WCF的技術文檔和範例代碼。

二、WCF的優勢

在David Chappell所撰的《Introducing Windows Communication Foundation》一文中,用了一個活鮮鮮的例子,來說明WCF的優勢所在。假定我們要為一家汽車租賃公司開發一個新的應用程式,用於租車預約服務。該租車預約服務會被多種應用程式訪問,包括話務中心(Call Center),基於J2EE的租車預約服務以及夥伴的應用程式(Partner Application),:

話務中心運行在Windows平台下,是在.Net Framework下開發的應用程式,使用者為公司員工。由於該汽車租賃公司兼并了另外一家租賃公司,該公司原有的汽車預約服務應用程式是J2EE應用程式,運行在非Windows作業系統下。話務中心和已有的汽車預約應用程式都運行在Intranet環境下。夥伴的應用程式可能會運行在各種平台下,這些夥伴包括旅行社、航空公司等等,他們會通過Internet來訪問汽車預約服務,實現對汽車的租用。
這樣一個案例是一個典型的分布式應用系統。如果沒有WCF,利用.Net現有的技術應該如何開發呢?
首先考慮話務中心,它和我們要開發的汽車預約服務一樣,都是基於.Net Framework的應用程式。話務中心對於系統的效能要求較高,在這樣的前提下,.Net Remoting是最佳的實現技術。它能夠高效能的實現.Net與.Net之間的通訊。
要實現與已有的J2EE汽車預約應用程式之間的通訊,只有基於SOAP的Web Service可以實現此種目的,它保證了跨平台的通訊;而夥伴由於是通過Internet來訪問,利用ASP.Net Web Service,即ASMX,也是較為合理的選擇,它保證了跨網路的通訊。由於涉及到網路之間的通訊,我們還要充分考慮通訊的安全性,利用WSE(Web Service Enhancements)可以為ASMX提供安全的保證。
一個好的系統除了要保證訪問和管理的安全,高效能,同時還要保證系統的可信賴性。因此,交易處理是公司專屬應用程式必須考慮的因素,對於汽車預約服務而言,同樣如此。在.Net中,Enterprise Service(COM+)提供了對事務的支援,其中還包括分散式交易(Distributed Transactions)。不過對於Enterprise Service而言,它僅支援有限的幾種通訊協定。
如果還要考慮到非同步呼叫、離線串連、斷點串連等功能,我們還需要應用MSMQ(Mcrosoft Message Queuing)利用訊息佇列支援應用程式之間的訊息傳遞。
如此看來,要建立一個好的汽車租賃預約服務系統,需要用到的.Net分布式技術,包括.Net Remoting、Web Service,COM+等五種技術,這既不利於開發人員的開發,也加大了程式的維護難度和開發成本。正是因應於這樣的缺陷,WCF才會在.Net 2.0中作為全新的分布式開發技術被微軟強勢推出,它整合了上述所屬的分布式技術,成為了理想的分布式開發的解決之道。展示了WCF與之前的相關技術的比較:

從功能的角度來看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技術的並集。(註:這種說法僅僅是從功能的角度。事實上WCF遠非簡單的並集這樣簡單,它是真正面向服務的產品,它已經改變了通常的開發模式。)因此,對於上述汽車預約服務系統的例子,利用WCF,就可以解決包括安全、可信賴、互操作、跨平台通訊等等需求。開發人員再不用去分別瞭解.Net Remoting,ASMX等各種技術了。
概括地說,WCF具有如下的優勢:
1、統一性
前面已經敘述,WCF是對於ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技術的整合。由於WCF完全是由Managed 程式碼編寫,因此開發WCF的應用程式與開發其它的.Net應用程式沒有太大的區別,我們仍然可以像建立物件導向的應用程式那樣,利用WCF來建立面向服務的應用程式。
2、互通性
由於WCF最基本的通訊機制是SOAP,這就保證了系統之間的互通性,即使是運行不同的上下文中。這種通訊可以是基於.Net到.Net間的通訊,如所示:

可以跨進程、跨機器甚至於跨平台的通訊,只要支援標準的Web Service,例如J2EE應用伺服器(如WebSphere,WebLogic)。應用程式可以運行在Windows作業系統下,也可以運行在其他的作業系統,如Sun Solaris,HP Unix,Linux等等。如所示:

3、安全與可信賴
WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP訊息中,以用於使用者認證,資料完整性驗證,資料隱私等多種安全因素。
在SOAP的header中增加了WS-ReliableMessaging允許可信賴的端對端通訊。而建立在WS-Coordination和WS-AtomicTransaction之上的基於SOAP格式交換的資訊,則支援兩階段的事務提交(two-phase commit transactions)。
上述的多種WS-Policy在WCF中都給與了支援。對於Messaging而言,SOAP是Web Service的基本協議,它包含了訊息頭(header)和訊息體(body)。在訊息頭中,定義了WS-Addressing用於定位SOAP訊息的地址資訊,同時還包含了MTOM(訊息傳輸最佳化機制,Message Transmission Optimization Mechanism)。:

4、相容性
WCF充分的考慮到了與舊有系統的相容性。安裝WCF並不會影響原有的技術如ASMX和.Net Remoting。即使對於WCF和ASMX而言,雖然兩者都使用了SOAP,但基於WCF開發的應用程式,仍然可以直接與ASMX進行互動。

註:本部分內容主要來源於David Chappell,《Introducing Windows Communication Foundation》

參閱
WCF 介紹(一)
WCF 介紹(二)
WCF 介紹(三)
WCF 介紹(四)[最後修改由 LoongTsui, 於 2007-09-03 20:44:02]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.