谘詢電話

ENGLISH0755-88840386
新聞中心

谘詢電話

0755-88840386
您的位置:首頁 > K8凯发大酒店天生赢家專題 > 專業技術專題 > 工業自動化稱重儀表>詳情頁

稱重軟件中WCF技術的應用

發布時間:2021-04-02 13:40:54 |來源:網絡轉載

杭州某科技有限公司在稱重軟件中使用了WCF技術,有效地滿足了客戶的業務需求,現在根據本人對WCF的了解結合參加稱重軟件開發的經驗對WCF技術及其的應用,作個簡單介紹。國泰科技采用嵌入式控製係統對磅房、道閘進行實時信息采集和稱重控製,同時在基於消息包的軟件架構的基礎上開發了稱重軟件。

1.什麽是WCF
首先我們要清楚WCF的基本概念,那麽什麽是WCF呢?

WCF全稱Windows Communication Foundation,是Microsoft為構建麵向服務的應用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開發人員可以構建跨平台、安全、可靠和支持事務處理的企業級互聯應用解決方案。

根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行麵向服務(Service Oriented)應用程序的統一框架。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有係統兼容協作。WCF是微軟分布式應用程序開發的集大成者,它整合了.Net平台下所有的和分布式係統有關的技術,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)範圍而論,它可以跨進程、跨機器、跨子網、企業網乃至於Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支持的協議包括TCP,HTTP,跨進程以及自定義,安全模式則包括SAML,Kerberos,X509,用戶/密碼,自定義等多種標準與模式。也就是說,在WCF框架下,開發基於SOA的分布式係統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了WCF,就相當於掌握了叩開SOA大門的鑰匙。(參考MSDN)

這裏SOA概念我們要明確一下,SOA(Service-oriented architecture,麵向服務架構)是一種架構模式和設計原則。在By Juval Lowy一書中解釋為SOA(Service-oriented applicatoin)麵向服務的應用程序,兩者應該不衝突,後者應該是采用SOA麵向服務架構設計和實現的應用程序(Service-oriented applicatoin)。

WCF的強大之處就是因為整合了.Net平台下所有的和分布式係統有關的Enterprise Services(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列等技術。

2.WCF的特點
WCF擁有三項突出的特性:與多種現有Microsoft技術的統一性,對跨供應商互操作性的支持,以及顯式的麵向服務特性。

2.1,與Microsoft分布式計算技術的統一性

Microsoft以前的分布式計算技術特性和應用領域不同。要構建基本的可互操作的Web服務,最佳選擇是ASP.NET Web服務(ASMX)。要連接兩個基於.NET Framework的應用程序,選擇.NET Remoting。如果應用程序需要分布式事務和其他更高級的服務,其創建者一般會使用企業服務Enterprise Services,即COM+的繼任者。要構建Web服務安全,使用WS-Addressing和WS-Security規範,開發人員可以構建采用WSE3.0的應用程序。而要創建基於消息的排隊式應用程序,基於Windows的開發人員則應使用Microsoft消息隊列(MSMQ)。 各個技術的具體特性和WCF對比如下表:

WCF技術的具體特性和WCF對比表
WCF技術的具體特性和WCF對比表

WCF支持了以前分布式技術的所有的特性,因而對於建立分數是應用更加的靈活和全麵。

2.2,與非Microsoft應用程序的互操作性

由於Indigo的基本通信機製是SOAP,因此Indigo應用程序可與大量運行於各種上下文環境的其他稱重軟件進行通信。基於Indigo構建的應用程序可與下列所有程序進行交互:

1)運行於同一Windows計算機上不同進程中的Indigo應用程序。

2)運行於另一Windows計算機上的Indigo應用程序。

3)基於其他技術構建的應用程序,如基於Java 2企業版(J2EE)構建的、支持標準Web服務的應用程序服務器。

4)Indigo應用程序還可以與基於Indigo以前的.NET Web服務(ASMX)構建的應用程序進行互操作。

稱重軟件程序進行互操作

這樣通過標準的SOAP消息WCF可以與其他應用程序進行交互,很好地支持了跨平台跨操作係統的目標。當然WCF中支持安全、事物、MTOM特性,這些都以前WSE中的主要概念,我們發現WCF中也進行了擴展和支持。利於稱重軟件技術的向前兼容。

2.3,對麵向服務開發的顯式支持

麵向服務是一個廣泛的領域,它包含麵向服務應用程序和更廣泛的麵向服務體係結構(SOA)的概念。在設計此項技術的過程中始終遵守四項基本原則:

1).共享架構,而不是類:與舊的分布式對象技術不同,服務僅通過精心定義的XML接口與其客戶端進行交互。跨越服務邊界傳遞完整的類、方法及全部之類的行為被禁止。

2).服務具有自主性:服務及其客戶端同意它們之間的接口,但相互獨立。它們可以采用不同的語言編寫,可以使用不同的運行時環境(如CLR和Java虛擬機),可以運行在不同操作係統上,還可以存在其他方麵的不同。

3).邊界是顯式的:分布式對象技術[如分布式COM (DCOM)]的目標之一是使遠程對象盡可能看上去像本地對象一樣。雖然這種方法通過提供一種通用編程模型在某些方麵簡化了開發,但也同時隱藏了本地對象與遠程對象之間不可避免的區別。服務通過使服務與其客戶端之間的交互更明顯而避免了這一問題。隱藏分布式特性並非目的。

4).采用基於策略的兼容性:決定在係統之間使用哪些選項應取決於基於WS-Policy的機製。

WS-Policy在WSE3.0裏我們應該比較常見,通過策略配置來支持和實現Web服務的安全。這裏很多稱重技術概念我們都可以從早期的分布式技術裏找到原型。

3. WCF服務框架模型

WCF技術服務的基本結構

每個WCF服務均由三個部分構成:

1).服務類:采用C#或VB.NET或其他基於CLR的語言編寫,實現一個或多個方法。通常包括服務契約、操作契約和數據契約。

2).宿主:一種應用程序域和進程,服務將在該環境中運行。ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host) 。

3).終結點:服務暴露出來的地址,由客戶端用於訪問服務。通常提及的概念就是ABC,即地址、綁定和契約的第一個字母的簡稱。

WCF服務在稱重係統軟件上的終結點

終結點中重要的概念就是綁定,它是實現通信的關鍵部分。這裏定義消息通訊的協議包括HTTP、TCP、UDP、MSMQ等,用戶可以根據自己的需要定義。

4.WCF在棗礦項目中的應用
棗莊礦業集團遠程集中防作弊稱重係統是一個分布式的企業級應用係統。該係統將棗礦集團與其下屬的七個分散的煤礦聯接,通過一個集中的稱重平台進行統一的標準化過磅,能有效地檢測過磅過程中存在的各種作弊行為,能最大程度地減少企業資產的流失,保護企業自身的經濟利益。

由於WCF具有上述種種特性和優勢,我公司在該項目中采用了基於WCF的麵向服務框架。現對該項目中WCF實際應用情況做一簡單介紹:

(1).由於該係統采用BS + CS的混合模式,係統中既存在遠程稱重客戶端,又存在方便管理人員使用的網站,客戶端與網站調用相同的服務。係統的WCF服務采用基於windows Service的托管方式。根據係統上線運行2個多月的情況來看,該托管方式運行穩定可靠、能有效應對客戶在各種條件下的業務負載。

(2).為提高係統在WCF服務通信等方麵的安全性,我們采取了基於X.509數字證書的認證方式。

通過采用WCF,我們有效的避免了在企業分布式係統開發中存在的各種難題,能高效地開發滿足客戶需求的企業級分布式係統。通過稱重軟件的上線運行,客戶對係統性能還是比較滿意的。

(3).為進一步提高稱重係統的可靠性,我們在項目中采用了WCF與MSMQ相結合的方式。 MSMQ全稱MicroSoft Message Queue,微軟消息隊列,是在多個不同的應用之間實現相互通信的一種異步傳輸模式,相互通信的應用可以分布於同一台機器上,也可以分布於相連的網絡空間中的任一位置。它的實現原理是:消息的發送者把自己想要發送的信息放入一個容器中(我們稱之為Message),然後把它保存至一個係統公用空間的消息隊列(Message Queue)中;本地或者是異地的消息接收程序再從該隊列中取出發給它的消息進行處理。消息隊列的優點是穩定、消息優先級、脫機能力以及安全性,有保障的消息傳遞和執行許多業務處理的可靠的防故障機製。

 

本文源於網絡轉載,如有侵權,請聯係刪除

深圳市k8凯发版官网儀器有限公司是一家專門從事稱重儀表和全自動包裝碼垛生產線的研發及生產的高新技術企業,所生產的JY500係列稱重顯示控製器(包括配料秤儀表皮帶秤儀表包裝秤儀表重量變送器等)高速高精度,使用壽命長。k8凯发版官网儀器有十數年的現場校驗經驗,在業內有良好的口碑,且有專門的售後工程師幫忙解決產品使用過程中遇到的技術問題,客戶可以放心省心順心的使用我司的產品。如果對我司的產品感興趣,歡迎谘詢。

分享到
網站地圖凱發K8凱發K8凱發K8凱發K8凱發K8