咨詢電話
ENGLISH0755-88840386發(fā)布時(shí)間:2021-04-02 13:40:54 |來源:網(wǎng)絡(luò)轉(zhuǎn)載
杭州某科技有限公司在稱重軟件中使用了WCF技術(shù),有效地滿足了客戶的業(yè)務(wù)需求,現(xiàn)在根據(jù)本人對(duì)WCF的了解結(jié)合參加稱重軟件開發(fā)的經(jīng)驗(yàn)對(duì)WCF技術(shù)及其的應(yīng)用,作個(gè)簡(jiǎn)單介紹。國(guó)泰科技采用嵌入式控制系統(tǒng)對(duì)磅房、道閘進(jìn)行實(shí)時(shí)信息采集和稱重控制,同時(shí)在基于消息包的軟件架構(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)建跨平臺(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)與模式。也就是說,在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ì)原則。在
WCF的強(qiáng)大之處就是因?yàn)檎狭?Net平臺(tái)下所有的和分布式系統(tǒng)有關(guān)的Enterprise Services(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊(duì)列等技術(shù)。
2.WCF的特點(diǎn)
WCF擁有三項(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 Services,即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ì)比如下表:
WCF技術(shù)的具體特性和WCF對(duì)比表
WCF技術(shù)的具體特性和WCF對(duì)比表
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)行通信?;贗ndigo構(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)行互操作。
稱重軟件程序進(jìn)行互操作
這樣通過標(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ù)的過程中始終遵守四項(xiàng)基本原則:
1).共享架構(gòu),而不是類:與舊的分布式對(duì)象技術(shù)不同,服務(wù)僅通過精心定義的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ì)象一樣。雖然這種方法通過提供一種通用編程模型在某些方面簡(jiǎn)化了開發(fā),但也同時(shí)隱藏了本地對(duì)象與遠(yuǎn)程對(duì)象之間不可避免的區(qū)別。服務(wù)通過使服務(wù)與其客戶端之間的交互更明顯而避免了這一問題。隱藏分布式特性并非目的。
4).采用基于策略的兼容性:決定在系統(tǒng)之間使用哪些選項(xiàng)應(yīng)取決于基于WS-Policy的機(jī)制。
WS-Policy在WSE3.0里我們應(yīng)該比較常見,通過策略配置來支持和實(shí)現(xiàn)Web服務(wù)的安全。這里很多稱重技術(shù)概念我們都可以從早期的分布式技術(shù)里找到原型。
3. WCF服務(wù)框架模型
WCF技術(shù)服務(wù)的基本結(jié)構(gòu)
每個(gè)WCF服務(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ù)暴露出來的地址,由客戶端用于訪問服務(wù)。通常提及的概念就是ABC,即地址、綁定和契約的第一個(gè)字母的簡(jiǎn)稱。
WCF服務(wù)在稱重系統(tǒng)軟件上的終結(jié)點(diǎn)
終結(jié)點(diǎn)中重要的概念就是綁定,它是實(shí)現(xiàn)通信的關(guān)鍵部分。這里定義消息通訊的協(xié)議包括HTTP、TCP、UDP、MSMQ等,用戶可以根據(jù)自己的需要定義。
4.WCF在棗礦項(xiàng)目中的應(yīng)用
棗莊礦業(yè)集團(tuán)遠(yuǎn)程集中防作弊稱重系統(tǒng)是一個(gè)分布式的企業(yè)級(jí)應(yīng)用系統(tǒng)。該系統(tǒng)將棗礦集團(tuán)與其下屬的七個(gè)分散的煤礦聯(lián)接,通過一個(gè)集中的稱重平臺(tái)進(jìn)行統(tǒng)一的標(biāo)準(zhǔn)化過磅,能有效地檢測(cè)過磅過程中存在的各種作弊行為,能最大程度地減少企業(yè)資產(chǎn)的流失,保護(hù)企業(yè)自身的經(jīng)濟(jì)利益。
由于WCF具有上述種種特性和優(yōu)勢(shì),我公司在該項(xiàng)目中采用了基于WCF的面向服務(wù)框架。現(xiàn)對(duì)該項(xiàng)目中WCF實(shí)際應(yīng)用情況做一簡(jiǎn)單介紹:
(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)上線運(yùn)行2個(gè)多月的情況來看,該托管方式運(yùn)行穩(wěn)定可靠、能有效應(yīng)對(duì)客戶在各種條件下的業(yè)務(wù)負(fù)載。
(2).為提高系統(tǒng)在WCF服務(wù)通信等方面的安全性,我們采取了基于X.509數(shù)字證書的認(rèn)證方式。
通過采用WCF,我們有效的避免了在企業(yè)分布式系統(tǒng)開發(fā)中存在的各種難題,能高效地開發(fā)滿足客戶需求的企業(yè)級(jí)分布式系統(tǒng)。通過稱重軟件的上線運(yùn)行,客戶對(duì)系統(tǒng)性能還是比較滿意的。
(3).為進(jìn)一步提高稱重系統(tǒng)的可靠性,我們?cè)陧?xiàng)目中采用了WCF與MSMQ相結(jié)合的方式。 MSMQ全稱MicroSoft Message Queue,微軟消息隊(duì)列,是在多個(gè)不同的應(yīng)用之間實(shí)現(xiàn)相互通信的一種異步傳輸模式,相互通信的應(yīng)用可以分布于同一臺(tái)機(jī)器上,也可以分布于相連的網(wǎng)絡(luò)空間中的任一位置。它的實(shí)現(xiàn)原理是:消息的發(fā)送者把自己想要發(fā)送的信息放入一個(gè)容器中(我們稱之為Message),然后把它保存至一個(gè)系統(tǒng)公用空間的消息隊(duì)列(Message Queue)中;本地或者是異地的消息接收程序再?gòu)脑撽?duì)列中取出發(fā)給它的消息進(jìn)行處理。消息隊(duì)列的優(yōu)點(diǎn)是穩(wěn)定、消息優(yōu)先級(jí)、脫機(jī)能力以及安全性,有保障的消息傳遞和執(zhí)行許多業(yè)務(wù)處理的可靠的防故障機(jī)制。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請(qǐng)聯(lián)系刪除
深圳市卓禾儀器有限公司是一家專門從事稱重儀表和全自動(dòng)包裝碼垛生產(chǎn)線的研發(fā)及生產(chǎn)的高新技術(shù)企業(yè),所生產(chǎn)的JY500系列稱重顯示控制器(包括配料秤儀表、皮帶秤儀表、包裝秤儀表、重量變送器等)高速高精度,使用壽命長(zhǎng)。卓禾儀器有十?dāng)?shù)年的現(xiàn)場(chǎng)校驗(yàn)經(jīng)驗(yàn),在業(yè)內(nèi)有良好的口碑,且有專門的售后工程師幫忙解決產(chǎn)品使用過程中遇到的技術(shù)問題,客戶可以放心省心順心的使用我司的產(chǎn)品。如果對(duì)我司的產(chǎn)品感興趣,歡迎咨詢。