日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

WinVista新技術(shù) WCF開發(fā)指南之構(gòu)建服務(wù)

作者:朱先忠編譯
一. 引言

Windows通訊基礎(chǔ)(簡稱為WCF)是一種SDK,用于讓你使用典型的CLR編程結(jié)構(gòu)(例如用于發(fā)布和消費(fèi)服務(wù)的類和接口等)來構(gòu)建Windows面向服務(wù)的應(yīng)用程序 。WCF的編程模型是聲明性的并且大部分是屬性驅(qū)動(dòng)的 。

WCF為通訊服務(wù)提供了一種運(yùn)行時(shí)刻環(huán)境,使你能夠把CLR類型暴露為服務(wù)并且以CLR類型來消費(fèi)服務(wù) 。

盡管在理論上你可以不用WCF來構(gòu)建服務(wù);但是,在實(shí)踐中,WCF能夠顯著地簡化這一任務(wù) 。WCF是微軟的一組工業(yè)標(biāo)準(zhǔn)的實(shí)現(xiàn),該標(biāo)準(zhǔn)定義了服務(wù)交互、類型轉(zhuǎn)化、編排和多種協(xié)議的管理 。因此,WCF提供了服務(wù)間的互操作性并且提高了開發(fā)效率(包括幾乎任何應(yīng)用程序所要求實(shí)現(xiàn)的基本的常規(guī)的繁重任務(wù)) 。本文將描述WCF塊及其架構(gòu)的基本概念和構(gòu)建,從而使你能夠構(gòu)建簡單的服務(wù) 。

二. 什么是WCF服務(wù)?

一個(gè)服務(wù)是一個(gè)暴露給外界的功能單元 。從編程模型的發(fā)展歷史來說,它經(jīng)歷了從函數(shù)到對象再到組件最后到服務(wù)的過程;而WCF服務(wù)正代表了下一代的革命性的Windows編程模型 。面向服務(wù)(SO)是一組原則的抽象集和針對于構(gòu)建SO應(yīng)用程序的最好實(shí)踐,但這其中的一大部分已經(jīng)超出了本文的范圍 。

一個(gè)面向服務(wù)的應(yīng)用程序(SOA)把服務(wù)聚合成單個(gè)邏輯的應(yīng)用程序(見圖1),這類似于一個(gè)面向組件的應(yīng)用程序聚合組件或一個(gè)面向?qū)ο蟮膽?yīng)用程序聚合對象的方式 。服務(wù)可以是本地的也可以是遠(yuǎn)程的,可以由多種團(tuán)隊(duì)使用任何技術(shù)開發(fā)而成,它們可以被獨(dú)立地進(jìn)行版本化管理,甚至可以在不同的時(shí)間進(jìn)度上執(zhí)行 。在一個(gè)服務(wù)內(nèi)部,你可以使用例如語言,技術(shù),平臺,版本和框架等概念;然而,在服務(wù)之間,只允許使用規(guī)定的通訊模式 。


圖1:一個(gè)面向服務(wù)的應(yīng)用程序的框架 。

客戶端通過發(fā)送和接收消息與服務(wù)進(jìn)行交互 。消息可以從客戶端直接或經(jīng)中介傳輸?shù)椒?wù) 。在WCF中,所有的消息都是SOAP消息 。注意,這些消息獨(dú)立于傳輸協(xié)議——不象Web服務(wù),WCF服務(wù)可以通過多種傳輸協(xié)議進(jìn)行通訊,而不僅是HTTP 。

在WCF中,客戶端從不直接與服務(wù)進(jìn)行交互,即使在當(dāng)處理一個(gè)本地的內(nèi)存中服務(wù)時(shí) 。而是,客戶端總是使用一個(gè)代理來把該調(diào)用轉(zhuǎn)發(fā)給服務(wù) 。WCF允許客戶端跨越所有執(zhí)行邊界與服務(wù)進(jìn)行通訊 。在同一臺計(jì)算機(jī)上(見圖2),客戶端可以跨越同一進(jìn)程中的應(yīng)用程序域或進(jìn)程來消費(fèi)同一個(gè)應(yīng)用程序域中的服務(wù) 。通過跨越計(jì)算機(jī)邊界(圖3),客戶端能夠在企業(yè)內(nèi)網(wǎng)或跨越因特網(wǎng)與服務(wù)進(jìn)行交互 。


圖3.跨機(jī)器通訊:這里是一個(gè)跨機(jī)器使用WCF通訊的例子 。

圖2.使用WCF在同一臺機(jī)器上通訊 。
因?yàn)樗械慕换ナ墙?jīng)由一個(gè)代理實(shí)現(xiàn)的,所以對于本地和遠(yuǎn)程情況下,WCF保持相同的編程模型,這樣以來不僅能夠使你進(jìn)行位置切換而不影響客戶端,而且顯著地簡化應(yīng)用程序編程模型 。大多數(shù)WCF功能被包括到位于System.ServiceModel命名空間的單個(gè)的程序集System.ServiceModel.dll中 。

三. 服務(wù)地址

在WCF中,每一個(gè)服務(wù)都與唯一一個(gè)地址相聯(lián)系 。該地址提供了兩個(gè)重要的元素:服務(wù)的位置和用于與服務(wù)進(jìn)行通訊的傳輸協(xié)議 。地址的位置部分指出目標(biāo)計(jì)算機(jī)名,站點(diǎn)或網(wǎng)絡(luò),一個(gè)通訊端口,管道或隊(duì)列,還有一個(gè)可選的特定的路徑或URI 。至于傳輸,WCF 1.0支持下列:

· HTTP
· TCP
· 端對端網(wǎng)絡(luò)
· IPC(通過命名管道進(jìn)行的進(jìn)程間通訊)
· MSMQ

地址總是使用如下格式:

[base address]/[optional URI]
其中,基地址總是使用如下格式:

[transport]://[Machine or domain][:optional port]

推薦閱讀