是否了解WCF服務(wù)性能
WCF經(jīng)過長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解WCF服務(wù)了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。Windows通訊基礎(chǔ)(簡(jiǎn)稱為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ù)。
#T#盡管在理論上你可以不用WCF來構(gòu)建服務(wù);但是,在實(shí)踐中,WCF能夠顯著地簡(jiǎn)化這一任務(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)建簡(jiǎn)單的服務(wù)。
什么是WCF服務(wù)?
一個(gè)服務(wù)是一個(gè)暴露給外界的功能單元。從編程模型的發(fā)展歷史來說,它經(jīng)歷了從函數(shù)到對(duì)象再到組件***到服務(wù)的過程;而WCF服務(wù)正代表了下一代的革命性的Windows編程模型。面向服務(wù)(SO)是一組原則的抽象集和針對(duì)于構(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)用程序聚合對(duì)象的方式。服務(wù)可以是本地的也可以是遠(yuǎn)程的,可以由多種團(tuán)隊(duì)使用任何技術(shù)開發(fā)而成,它們可以被獨(dú)立地進(jìn)行版本化管理,甚至可以在不同的時(shí)間進(jìn)度上執(zhí)行。在一個(gè)服務(wù)內(nèi)部,你可以使用例如語言,技術(shù),平臺(tái),版本和框架等概念;然而,在服務(wù)之間,只允許使用規(guī)定的通訊模式。
圖1:一個(gè)面向服務(wù)的應(yīng)用程序的框架。
客戶端通過發(fā)送和接收消息與服務(wù)進(jìn)行交互。消息可以從客戶端直接或經(jīng)中介傳輸?shù)椒?wù)。在WCF服務(wù)中,所有的消息都是SOAP消息。注意,這些消息獨(dú)立于傳輸協(xié)議——不象Web服務(wù),WCF服務(wù)可以通過多種傳輸協(xié)議進(jìn)行通訊,而不僅是HTTP。