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