咨詢電話
ENGLISH0755-88840386發(fā)布時間:2021-04-02 13:40:54 |來源:網絡轉載
杭州某科技有限公司在稱重軟件中使用了WCF技術,有效地滿足了客戶的業(yè)務需求,現(xiàn)在根據(jù)本人對WCF的了解結合參加稱重軟件開發(fā)的經驗對WCF技術及其的應用,作個簡單介紹。國泰科技采用嵌入式控制系統(tǒng)對磅房、道閘進行實時信息采集和稱重控制,同時在基于消息包的軟件架構的基礎上開發(fā)了稱重軟件。
1.什么是WCF
首先我們要清楚WCF的基本概念,那么什么是WCF呢?
WCF全稱Windows Communication Foundation,是Microsoft為構建面向服務的應用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開發(fā)人員可以構建跨平臺、安全、可靠和支持事務處理的企業(yè)級互聯(lián)應用解決方案。
根據(jù)微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行面向服務(Service Oriented)應用程序的統(tǒng)一框架。它使得開發(fā)者能夠建立一個跨平臺的安全、可信賴、事務性的解決方案,且能與已有系統(tǒng)兼容協(xié)作。WCF是微軟分布式應用程序開發(fā)的集大成者,它整合了.Net平臺下所有的和分布式系統(tǒng)有關的技術,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)范圍而論,它可以跨進程、跨機器、跨子網、企業(yè)網乃至于Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支持的協(xié)議包括TCP,HTTP,跨進程以及自定義,安全模式則包括SAML,Kerberos,X509,用戶/密碼,自定義等多種標準與模式。也就是說,在WCF框架下,開發(fā)基于SOA的分布式系統(tǒng)變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了WCF,就相當于掌握了叩開SOA大門的鑰匙。(參考MSDN)
這里SOA概念我們要明確一下,SOA(Service-oriented architecture,面向服務架構)是一種架構模式和設計原則。在
WCF的強大之處就是因為整合了.Net平臺下所有的和分布式系統(tǒng)有關的Enterprise Services(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列等技術。
2.WCF的特點
WCF擁有三項突出的特性:與多種現(xiàn)有Microsoft技術的統(tǒng)一性,對跨供應商互操作性的支持,以及顯式的面向服務特性。
2.1,與Microsoft分布式計算技術的統(tǒng)一性
Microsoft以前的分布式計算技術特性和應用領域不同。要構建基本的可互操作的Web服務,最佳選擇是ASP.NET Web服務(ASMX)。要連接兩個基于.NET Framework的應用程序,選擇.NET Remoting。如果應用程序需要分布式事務和其他更高級的服務,其創(chuàng)建者一般會使用企業(yè)服務Enterprise Services,即COM+的繼任者。要構建Web服務安全,使用WS-Addressing和WS-Security規(guī)范,開發(fā)人員可以構建采用WSE3.0的應用程序。而要創(chuàng)建基于消息的排隊式應用程序,基于Windows的開發(fā)人員則應使用Microsoft消息隊列(MSMQ)。 各個技術的具體特性和WCF對比如下表:
WCF技術的具體特性和WCF對比表
WCF技術的具體特性和WCF對比表
WCF支持了以前分布式技術的所有的特性,因而對于建立分數(shù)是應用更加的靈活和全面。
2.2,與非Microsoft應用程序的互操作性
由于Indigo的基本通信機制是SOAP,因此Indigo應用程序可與大量運行于各種上下文環(huán)境的其他稱重軟件進行通信?;贗ndigo構建的應用程序可與下列所有程序進行交互:
1)運行于同一Windows計算機上不同進程中的Indigo應用程序。
2)運行于另一Windows計算機上的Indigo應用程序。
3)基于其他技術構建的應用程序,如基于Java 2企業(yè)版(J2EE)構建的、支持標準Web服務的應用程序服務器。
4)Indigo應用程序還可以與基于Indigo以前的.NET Web服務(ASMX)構建的應用程序進行互操作。
稱重軟件程序進行互操作
這樣通過標準的SOAP消息WCF可以與其他應用程序進行交互,很好地支持了跨平臺跨操作系統(tǒng)的目標。當然WCF中支持安全、事物、MTOM特性,這些都以前WSE中的主要概念,我們發(fā)現(xiàn)WCF中也進行了擴展和支持。利于稱重軟件技術的向前兼容。
2.3,對面向服務開發(fā)的顯式支持
面向服務是一個廣泛的領域,它包含面向服務應用程序和更廣泛的面向服務體系結構(SOA)的概念。在設計此項技術的過程中始終遵守四項基本原則:
1).共享架構,而不是類:與舊的分布式對象技術不同,服務僅通過精心定義的XML接口與其客戶端進行交互??缭椒者吔鐐鬟f完整的類、方法及全部之類的行為被禁止。
2).服務具有自主性:服務及其客戶端同意它們之間的接口,但相互獨立。它們可以采用不同的語言編寫,可以使用不同的運行時環(huán)境(如CLR和Java虛擬機),可以運行在不同操作系統(tǒng)上,還可以存在其他方面的不同。
3).邊界是顯式的:分布式對象技術[如分布式COM (DCOM)]的目標之一是使遠程對象盡可能看上去像本地對象一樣。雖然這種方法通過提供一種通用編程模型在某些方面簡化了開發(fā),但也同時隱藏了本地對象與遠程對象之間不可避免的區(qū)別。服務通過使服務與其客戶端之間的交互更明顯而避免了這一問題。隱藏分布式特性并非目的。
4).采用基于策略的兼容性:決定在系統(tǒng)之間使用哪些選項應取決于基于WS-Policy的機制。
WS-Policy在WSE3.0里我們應該比較常見,通過策略配置來支持和實現(xiàn)Web服務的安全。這里很多稱重技術概念我們都可以從早期的分布式技術里找到原型。
3. WCF服務框架模型
WCF技術服務的基本結構
每個WCF服務均由三個部分構成:
1).服務類:采用C#或VB.NET或其他基于CLR的語言編寫,實現(xiàn)一個或多個方法。通常包括服務契約、操作契約和數(shù)據(jù)契約。
2).宿主:一種應用程序域和進程,服務將在該環(huán)境中運行。ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host) 。
3).終結點:服務暴露出來的地址,由客戶端用于訪問服務。通常提及的概念就是ABC,即地址、綁定和契約的第一個字母的簡稱。
WCF服務在稱重系統(tǒng)軟件上的終結點
終結點中重要的概念就是綁定,它是實現(xiàn)通信的關鍵部分。這里定義消息通訊的協(xié)議包括HTTP、TCP、UDP、MSMQ等,用戶可以根據(jù)自己的需要定義。
4.WCF在棗礦項目中的應用
棗莊礦業(yè)集團遠程集中防作弊稱重系統(tǒng)是一個分布式的企業(yè)級應用系統(tǒng)。該系統(tǒng)將棗礦集團與其下屬的七個分散的煤礦聯(lián)接,通過一個集中的稱重平臺進行統(tǒng)一的標準化過磅,能有效地檢測過磅過程中存在的各種作弊行為,能最大程度地減少企業(yè)資產的流失,保護企業(yè)自身的經濟利益。
由于WCF具有上述種種特性和優(yōu)勢,我公司在該項目中采用了基于WCF的面向服務框架。現(xiàn)對該項目中WCF實際應用情況做一簡單介紹:
(1).由于該系統(tǒng)采用BS + CS的混合模式,系統(tǒng)中既存在遠程稱重客戶端,又存在方便管理人員使用的網站,客戶端與網站調用相同的服務。系統(tǒng)的WCF服務采用基于windows Service的托管方式。根據(jù)系統(tǒng)上線運行2個多月的情況來看,該托管方式運行穩(wěn)定可靠、能有效應對客戶在各種條件下的業(yè)務負載。
(2).為提高系統(tǒng)在WCF服務通信等方面的安全性,我們采取了基于X.509數(shù)字證書的認證方式。
通過采用WCF,我們有效的避免了在企業(yè)分布式系統(tǒng)開發(fā)中存在的各種難題,能高效地開發(fā)滿足客戶需求的企業(yè)級分布式系統(tǒng)。通過稱重軟件的上線運行,客戶對系統(tǒng)性能還是比較滿意的。
(3).為進一步提高稱重系統(tǒng)的可靠性,我們在項目中采用了WCF與MSMQ相結合的方式。 MSMQ全稱MicroSoft Message Queue,微軟消息隊列,是在多個不同的應用之間實現(xiàn)相互通信的一種異步傳輸模式,相互通信的應用可以分布于同一臺機器上,也可以分布于相連的網絡空間中的任一位置。它的實現(xiàn)原理是:消息的發(fā)送者把自己想要發(fā)送的信息放入一個容器中(我們稱之為Message),然后把它保存至一個系統(tǒng)公用空間的消息隊列(Message Queue)中;本地或者是異地的消息接收程序再從該隊列中取出發(fā)給它的消息進行處理。消息隊列的優(yōu)點是穩(wěn)定、消息優(yōu)先級、脫機能力以及安全性,有保障的消息傳遞和執(zhí)行許多業(yè)務處理的可靠的防故障機制。
本文源于網絡轉載,如有侵權,請聯(lián)系刪除
深圳市卓禾儀器有限公司是一家專門從事稱重儀表和全自動包裝碼垛生產線的研發(fā)及生產的高新技術企業(yè),所生產的JY500系列稱重顯示控制器(包括配料秤儀表、皮帶秤儀表、包裝秤儀表、重量變送器等)高速高精度,使用壽命長。卓禾儀器有十數(shù)年的現(xiàn)場校驗經驗,在業(yè)內有良好的口碑,且有專門的售后工程師幫忙解決產品使用過程中遇到的技術問題,客戶可以放心省心順心的使用我司的產品。如果對我司的產品感興趣,歡迎咨詢。