一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

WCF分布式開發(fā)步步為贏(1):WCF分布式框架基礎(chǔ)概念

   眾所周知,系統(tǒng)間的低耦合一直是大型企業(yè)應(yīng)用系統(tǒng)集成追尋的目標(biāo),SOA面向服務(wù)架構(gòu)的出現(xiàn)為我們的如何利用現(xiàn)有企業(yè)系統(tǒng)資源進(jìn)行企業(yè)ERP系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)提供了重要的參考原則。SOA如此炙手可熱,各大廠商都推出了自己的中間件產(chǎn)品,比如Oracle Fusion和 SAP NETWeaver,IBM、BEA等企業(yè)也推出了自己基于SOA的解決方案。基于J2EE平臺(tái)的SOA架構(gòu)設(shè)計(jì)中的一個(gè)重要概念就是EJB企業(yè)服務(wù)總線,作用是實(shí)現(xiàn)各個(gè)系統(tǒng)的數(shù)據(jù)交互。而.NET平臺(tái)上,WCF就是微軟為各個(gè)系統(tǒng)的數(shù)據(jù)交互提供通訊基礎(chǔ)框架。由于論文課題的原因,我對(duì)SOA(Service-oriented architecture,面向服務(wù)架構(gòu))有了接觸,并且產(chǎn)生了濃厚的興趣。故此對(duì).NET平臺(tái)上基于SOA的企業(yè)應(yīng)用系統(tǒng)集成和實(shí)現(xiàn)技術(shù)進(jìn)行潛心學(xué)習(xí),總結(jié)心得和體會(huì),整理出布式開發(fā)的系列文章,與大家分享。   

  下面介紹一下《WCF分布式開發(fā)步步為贏》系列文章的結(jié)構(gòu)。首先會(huì)是WCF分布式開發(fā)基礎(chǔ)概念的介紹,其次會(huì)設(shè)計(jì)各個(gè)知識(shí)點(diǎn)詳細(xì)的介紹和應(yīng)用,中間會(huì)穿插與以前技術(shù)的對(duì)比分析,涉及服務(wù)契約、數(shù)據(jù)契約、操作契約、事物、安全、消息隊(duì)列等重要概念。同樣作為老徐一貫的風(fēng)格,我會(huì)盡量做到文章的調(diào)理清晰、系統(tǒng)詳細(xì)、通俗易懂!也會(huì)放出標(biāo)注的詳細(xì)代碼供大家參考學(xué)習(xí)。    本節(jié)文章的結(jié)構(gòu)是:1.WCF基礎(chǔ)概念介紹2.WCF新的特性3.WCF框架模型4.實(shí)現(xiàn)代碼分析5.總結(jié)。

     【1】WCF基礎(chǔ)概念介紹

     要學(xué)習(xí)WCF,首先我們要清楚WCF的基本概念,那么什么是WCF呢?

     WCF全稱Windows Communication Foundation,是Microsoft為構(gòu)建面向服務(wù)的應(yīng)用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開發(fā)人員可以構(gòu)建跨平臺(tái)、安全、可靠和支持事務(wù)處理的企業(yè)級(jí)互聯(lián)應(yīng)用解決方案。
  根據(jù)微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運(yùn)行面向服務(wù)(Service Oriented)應(yīng)用程序的統(tǒng)一框架。它使得開發(fā)者能夠建立一個(gè)跨平臺(tái)的安全、可信賴、事務(wù)性的解決方案,且能與已有系統(tǒng)兼容協(xié)作。WCF是微軟分布式應(yīng)用程序開發(fā)的集大成者,它整合了.NET平臺(tái)下所有的和分布式系統(tǒng)有關(guān)的技術(shù),如Enterprise Sevices(COM+).NET Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊(duì)列。以通信(Communiation)范圍而論,它可以跨進(jìn)程、跨機(jī)器、跨子網(wǎng)、企業(yè)網(wǎng)乃至于 InterNET;以宿主程序而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支持的協(xié)議包括TCP,HTTP,跨進(jìn)程以及自定義,安全模式則包括SAML, Kerberos,X509,用戶/密碼,自定義等多種標(biāo)準(zhǔn)與模式。也就是說(shuō),在WCF框架下,開發(fā)基于SOA的分布式系統(tǒng)變得容易了,微軟將所有與此相關(guān)的技術(shù)要素都包含在內(nèi),掌握了WCF,就相當(dāng)于掌握了叩開SOA大門的鑰匙。(參考MSDN)

    這里SOA概念我們要明確一下,SOA(Service-oriented architecture,面向服務(wù)架構(gòu))是一種架構(gòu)模式和設(shè)計(jì)原則。在By Juval Lowy 一書中解釋為SOA(Service-oriented applicatoin)面向服務(wù)的應(yīng)用程序,兩者應(yīng)該不沖突,后者應(yīng)該是采用SOA面向服務(wù)架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)的應(yīng)用程序(Service-oriented applicatoin)。

   WCF的強(qiáng)大之處就是因?yàn)檎狭?NET平臺(tái)下所有的和分布式系統(tǒng)有關(guān)的Enterprise Sevices(COM+).NET Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊(duì)列等技術(shù),我在之前的WCF分布式開發(fā)必備知識(shí)WSE3.0構(gòu)建Web服務(wù)安全系列文章中都給出了詳細(xì)的介紹,這里就不在詳述,有興趣的朋友可以自己查閱。以后具體介紹WCF相關(guān)知識(shí)點(diǎn)的時(shí)候需要的地方我會(huì)在進(jìn)行講解。

【2】WCF新的特性

   Indigo 有三項(xiàng)突出的特性:與多種現(xiàn)有 Microsoft 技術(shù)的統(tǒng)一性,對(duì)跨供應(yīng)商互操作性的支持,以及顯式的面向服務(wù)特性。

 【2.1】 Microsoft 分布式計(jì)算技術(shù)的統(tǒng)一性

   Microsoft以前的分布式計(jì)算技術(shù)特性和應(yīng)用領(lǐng)域不同。要構(gòu)建基本的可互操作的 Web 服務(wù),最佳選擇是 ASP.NET Web 服務(wù)(ASMX)。要連接兩個(gè)基于 .NET Framework 的應(yīng)用程序,選擇 .NET Remoting。如果應(yīng)用程序需要分布式事務(wù)和其他更高級(jí)的服務(wù),其創(chuàng)建者一般會(huì)使用企業(yè)服務(wù)Enterprise Sevices,即COM+ 的繼任者。要構(gòu)建Web 服務(wù)安全,使用WS-Addressing 和 WS-Security規(guī)范,開發(fā)人員可以構(gòu)建采用 WSE3.0的應(yīng)用程序。而要?jiǎng)?chuàng)建基于消息的排隊(duì)式應(yīng)用程序,基于 Windows 的開發(fā)人員則應(yīng)使用 Microsoft 消息隊(duì)列 (MSMQ)。 各個(gè)技術(shù)的具體特性和WCF對(duì)比如下表:

 

ASMX

.NET Remoting

企業(yè)服務(wù)

WSE

MSMQ

Indigo

Web 服務(wù)

X

       

X

.NET - .NET 通信

 

X

     

X

分布式事務(wù)等。

   

X

   

X

WS-* 規(guī)范支持

     

X

 

X

隊(duì)列消息傳輸

       

X

X

     WCF支持了以前分布式技術(shù)的所有的特性,因而對(duì)于建立分?jǐn)?shù)是應(yīng)用更加的靈活和全面。

【2.2】與非 Microsoft 應(yīng)用程序的互操作性

     由于 Indigo 的基本通信機(jī)制是 SOAP,因此 Indigo 應(yīng)用程序可與大量運(yùn)行于各種上下文環(huán)境的其他軟件進(jìn)行通信。基于 Indigo 構(gòu)建的應(yīng)用程序可與下列所有程序進(jìn)行交互:

1)運(yùn)行于同一 Windows 計(jì)算機(jī)上不同進(jìn)程中的 Indigo 應(yīng)用程序。

2)運(yùn)行于另一 Windows 計(jì)算機(jī)上的 Indigo 應(yīng)用程序。

3)基于其他技術(shù)構(gòu)建的應(yīng)用程序,如基于 Java 2 企業(yè)版 (J2EE) 構(gòu)建的、支持標(biāo)準(zhǔn) Web 服務(wù)的應(yīng)用程序服務(wù)器

4)Indigo 應(yīng)用程序還可以與基于 Indigo 以前的 .NET Web 服務(wù)(ASMX)構(gòu)建的應(yīng)用程序進(jìn)行互操作。

 

    這樣通過(guò)標(biāo)準(zhǔn)的SOAP消息WCF可以與其他應(yīng)用程序進(jìn)行交互,很好地支持了跨平臺(tái)跨操作系統(tǒng)的的目標(biāo)。當(dāng)然WCF中支持安全、事物、MTOM特性,這些都以前WSE中的主要概念,我們發(fā)現(xiàn)WCF中也進(jìn)行了擴(kuò)展和支持。利于技術(shù)的向前兼容。 

【2.3】對(duì)面向服務(wù)開發(fā)的顯式支持

     面向服務(wù)是一個(gè)廣泛的領(lǐng)域,它包含面向服務(wù)應(yīng)用程序和更廣泛的面向服務(wù)體系結(jié)構(gòu) (SOA) 的概念。在設(shè)計(jì)此項(xiàng)技術(shù)的過(guò)程中始終遵守四項(xiàng)基本原則:

     1.共享架構(gòu),而不是類:與舊的分布式對(duì)象技術(shù)不同,服務(wù)僅通過(guò)精心定義的 XML 接口與其客戶端進(jìn)行交互。跨越服務(wù)邊界傳遞完整的類、方法及全部之類的行為被禁止。

     2.服務(wù)具有自主性:服務(wù)及其客戶端同意它們之間的接口,但相互獨(dú)立。它們可以采用不同的語(yǔ)言編寫,可以使用不同的運(yùn)行時(shí)環(huán)境(如 CLR 和 Java 虛擬機(jī)),可以運(yùn)行在不同操作系統(tǒng)上,還可以存在其他方面的不同。

     3.邊界是顯式的:分布式對(duì)象技術(shù) [如分布式 COM (DCOM)] 的目標(biāo)之一是使遠(yuǎn)程對(duì)象盡可能看上去像本地對(duì)象一樣。雖然這種方法通過(guò)提供一種通用編程模型在某些方面簡(jiǎn)化了開發(fā),但也同時(shí)隱藏了本地對(duì)象與遠(yuǎn)程對(duì)象之間不可避免的區(qū)別。服務(wù)通過(guò)使服務(wù)與其客戶端之間的交互更明顯而避免了這一問(wèn)題。隱藏分布式特性并非目的。

     4.采用基于策略的兼容性:決定在系統(tǒng)之間使用哪些選項(xiàng)應(yīng)取決于基于 WS-Policy 的機(jī)制。

      WS-Policy 在WSE3.0里我們應(yīng)該比較常見,通過(guò)策略配置來(lái)支持和實(shí)現(xiàn)Web服務(wù)的安全。這里很多技術(shù)概念我們都可以從早期的分布式技術(shù)里找到原型。

【3】WCF服務(wù)框架模型

    下面我們來(lái)介紹一下WCF服務(wù)的基本結(jié)構(gòu)。     WCF服務(wù)的基本結(jié)構(gòu)如下圖所示:

 

每個(gè) Indigo 服務(wù)均由三個(gè)部分構(gòu)成: 

    1.服務(wù)類:采用 C# 或 VB.NET 或其他基于 CLR 的語(yǔ)言編寫,實(shí)現(xiàn)一個(gè)或多個(gè)方法。通常包括服務(wù)契約、操作契約和數(shù)據(jù)契約。 
     2.宿主:一種應(yīng)用程序域和進(jìn)程,服務(wù)將在該環(huán)境中運(yùn)行。ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host) 。
     3.終結(jié)點(diǎn):服務(wù)暴露出來(lái)的地址,由客戶端用于訪問(wèn)服務(wù)。通常提及的概念就是ABC,即地址、綁定和契約的第一個(gè)字母的簡(jiǎn)稱。 如圖:

 

   

終結(jié)點(diǎn)中重要的概念就是綁定,它是實(shí)現(xiàn)通信的關(guān)鍵部分。這里定義消息通訊的協(xié)議包括HTTP、TCP、UDP、MSMQ等,用戶可以根據(jù)自己的需要定義。

【4】實(shí)現(xiàn)代碼分析

      上面介紹了WCF相關(guān)的一些基本概念、特性和框架模型,現(xiàn)在我們來(lái)具體實(shí)現(xiàn)一個(gè)WCF的應(yīng)用實(shí)例。客戶端和WCF服務(wù)通信的過(guò)程如圖:

 

    客戶端通過(guò)代理調(diào)用WCF服務(wù),代理通過(guò)服務(wù)地址找到特定的服務(wù),調(diào)用執(zhí)行特定的服務(wù)方法。

    我們代碼的演示部分也分為3個(gè)部分,首先是服務(wù)類(契約部分),其次是宿主(自己定義一個(gè)控制臺(tái)程序),客戶端(控制臺(tái))。

【4.1】契約(Contract)

定義實(shí)現(xiàn)的代碼包括服務(wù)契約IWCFService、操作契約OperationContract、和數(shù)據(jù)契約DataContract。具體代碼實(shí)現(xiàn)如下:

Code

【5】總結(jié)

   結(jié)果顯示調(diào)用成功,包括直接調(diào)用簡(jiǎn)單的SayHello方法和通過(guò)數(shù)據(jù)契約調(diào)用SayHellotoUser方法。

    此系列文章的取名《WCF分布式開發(fā)步步為贏》。在此之前,我曾經(jīng)整理出WCF分布式開發(fā)必備知識(shí)WSE3.0構(gòu)建Web服務(wù)安全系列文章,主要系統(tǒng)介紹了微軟分布式開發(fā)的相關(guān)的技術(shù):COM+(Enterprise Services)、.NET Remoting、MSMQ消息隊(duì)列、Web 服務(wù)、WSE3.0等相關(guān)知識(shí)。目的也就是為了學(xué)習(xí)WCF打下堅(jiān)實(shí)的基礎(chǔ)。步步為營(yíng),步步為贏!這個(gè)也是本系列文章取名的真正目的原因!    如果你是.NET開發(fā)的程序員,老徐的建議是,有時(shí)間的話,看看微軟早期的分布式開發(fā):COM+(Enterprise Services)、.NET Remoting、MSMQ消息隊(duì)列、Web 服務(wù)、WSE3.0等相關(guān)技術(shù)。這些技術(shù)看是陳舊,實(shí)際目前還是應(yīng)用廣泛。而你想要真正成為一個(gè)企業(yè)應(yīng)用系統(tǒng)集成領(lǐng)域的專家,這些技術(shù)必不可少。

   最后給出本節(jié)文章的示例代碼,供大家參考。下載連接:/Files/frank_xl/WCFServiceFrankXuLei.rar。希望能對(duì)大家有所幫助,也歡迎留言交流~如果感覺不錯(cuò),希望大家支持和繼續(xù)關(guān)注《WCF分布式開發(fā)步步為贏》的后續(xù)文章,謝謝~

 參考:MSDN

老徐的博客

【作者】:Frank Xu Lei

【地址】:http://www.cnblogs.com/frank_xl/archive/2009/03/14/1411751.html

NET技術(shù)WCF分布式開發(fā)步步為贏(1):WCF分布式框架基礎(chǔ)概念,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人欧美在线观看 | 性欧美xxxx乳高跟 | 六月婷婷激情 | 欧美一级高跟鞋鞋交 | 久久久综合中文字幕久久 | 4hu永久影院在线四虎 | 在线综合色 | 国产免费一区二区三区在线观看 | 免费看岛国视频在线观看 | 国产精品久久久久久一级毛片 | 四虎影视永久在线精品免费播放 | 日产精品一区二区三区免费 | 91短视频在线 | 一区二区在线观看高清 | 国产欧美精品区一区二区三区 | 成人黄视频在线观看 | 久久99热国产这有精品 | youjizz日韩| 日日噜噜夜夜狠狠tv视频免费 | 亚洲免费视频一区 | 五月天天堂网 | 伊人久久综在合线亚洲91 | 乱人伦一区二区三区 | 亚洲第一页在线视频 | 国产三级国产精品国产普男人 | 亚洲成人福利在线 | 色干干| 国产精品一区二区三区四区 | 五月婷婷激情视频 | 欧美成人第一页 | 伊人色综合久久天天 | 欧美精品www | 99久久国产综合精品国 | www日本高清视频 | 久久亚洲伊人 | 国产成人精品一区 | 美女又胸大又黄的网站 | 国产成人精选免费视频 | 美女色影院| 日本精品久久久久中文字幕 1 | 国产精品秒播无毒不卡 |