咨询电话
ENGLISH0755-88840386发布时间: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,面向服务架构)是一种架构模式和设计原则。在
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)中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。消息队列的优点是稳定、消息优先级、脱机能力以及安全性,有保障的消息传递和执行许多业务处理的可靠的防故障机制。
本文源于网络转载,如有侵权,请联系删除
深圳市卓禾仪器有限公司是一家专门从事称重仪表和全自动包装码垛生产线的研发及生产的高新技术企业,所生产的JY500系列称重显示控制器(包括配料秤仪表、皮带秤仪表、包装秤仪表、重量变送器等)高速高精度,使用寿命长。卓禾仪器有十数年的现场校验经验,在业内有良好的口碑,且有专门的售后工程师帮忙解决产品使用过程中遇到的技术问题,客户可以放心省心顺心的使用我司的产品。如果对我司的产品感兴趣,欢迎咨询。