APP下载

基于Silverlight、WCF和OPC UA的2级系统B/S架构

2012-01-25王海涛孙明军

制造业自动化 2012年12期
关键词:服务端浏览器应用程序

王 威,王海涛,孙明军

(北京机械工业自动化研究所 机器人中心,北京 100120)

0 引言

2级系统(Level 2 system)是制造业实现信息自动化的基础平台,可用于实现生产数据采集、生产实时监控、生产调度、数据统计分析、工艺配方管理、能耗管理、实验室及仓库信息管理等功能。2级系统能有效地提高生产率,降低操作工劳动强度。2级系统是一种较为典型的分布式系统。

1 总体结构

传统分布式系统采用C/S结构实施。C/S体系结构虽然能够利用客户端的计算能力,但由于每个客户端都需要安装客户端软件,并且C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,所以C/S结构代价高, 效率低。

B/S(Browser/Server)结构即浏览器和服务器结构。它是对C/S结构的一种变化或者改进。在这种结构下,用户图形界面是通过WWW浏览器来实现,极少部分业务逻辑在前端(Browser)实现,主要业务逻辑在服务器端(Server)实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。

虽然B/S结构有种种结构上的优点,但传统的Web应用程序对于如何丰富用户体验还存在问题。技术的限制使得Web应用程序无法像客户端应用程序一样,提供丰富、多样化且快速响应的用户体验。Silverlight技术有效的弥补了这个不足。

MicroSoft Silverlight是微软公司在.NET Framework平台上实现的一个跨平台、跨浏览器的插件。主要用于创建和分发用于Web和移动设备的下一代多媒体应用,以及具有丰富交互式的应用程序。Silverlight是一种表现层技术,通过结合音视频、 动画、交互性以及眩目的用户界面,为Web应用程序提供精彩的多媒体创意和丰富的交互式环境(RIA)。

图1 B/S结构图

2级系统B/S基本结构如图1所示。2级客户端图形用户界面(GUI)完全采用Silverlight设计编写,2级服务端为采用C#设计编写的WPF应用程序。该服务端应用程序负责实现所有需要的业务逻辑。

2级客户端使用的silverlight页面寄宿在2级服务器的IIS中,每当有客户端浏览器申请调用该页面时,IIS将用户请求的页面发送至该客户端浏览器中。用户使用该界面处理日常业务。

2 结构实现

所有的业务逻辑都在2级服务端处理,2级客户端silverlight作为用户界面采用WCF(Windows Communication Foundation)技术与2级服务端进行数据交互。

Windows 通信基础(Windows Communication Foundation)是基于Windows 平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。WCF 为服务提供了运行时环境(Runtime Environment),使得开发者能够将CLR 类型公开为服务,又能够以CLR 类型的方式使用服务。理论上讲,创建服务并不一定需要WCF,但实际上,使用WCF 却可以使得创建服务的任务事半功倍。WCF是微软对一系列产业标准定义的实现,包括服务交互、类型转换、封送(Marshaling)以及各种协议的管理。正因为如此,WCF 才能够提供服务之间的互操作性。WCF 还为开发者提供了大多数应用程序都需要的基础功能模块,提高了开发者的效率。WCF的第一个版本为服务开发提供了许多有用的功能,包括托管、服务实例管理、异步调用、可靠性、事务管理、离线队列调用以及安全性。WCF服务类不能凭空存在。每个WCF服务都必须托管。此处采用的是自托管方式,即由开发者提供和管理宿主进程的生命周期。WCF服务有3种模式:单调服务、会话服务和单例服务。单调服务会为每次方法调用重建实例状态,这必然影响系统的性能,但换来的却是良好的系统可伸缩性。一般而言,单调服务是最佳的服务实例管理模式(Instance-ContextMode = InstanceContextMode.PerCall)。

在工业生产中,2级系统需要处理的数据其来源是多种多样的:有来自1级的数据需要监控,有来自3级的数据需要接收(如生产计划),同时2级服务端还需响应2级客户端的操作以决定是否向3级发送数据。由于操作员使用的是基于silverlight的2级客户端用户界面而不是直接操作2级服务端,因此数据交互分为两种操作模式:

1)采用请求应答操作模式

这与C/S编程类似:首先客户端发送请求,随后客户端进程等待,服务端收到该请求后根据具体的业务逻辑进行处理,然后返回操作结果。如果在指定的时间之后服务仍然没有应答,客户端就会获得一个超时的异常。该模式主要用于处理一般性业务逻辑。客户根据需求主动向服务端提交请求,服务端被动处理。

例如钢卷上开卷机操作可使用请求应答模式。首先定义服务契约:

在2级服务端应用程序中开启该服务:

这样,当2级服务端应用程序启动后,就开启了OperatorService服务。接下来在服务端程序的配置文件(App.config)的 <system.serviceModel>节点中加入OperatorService服务对应的终结点:

2级客户端通过终结点获取该服务信息后,可异步调用该服务:

2)采用事件订阅-发布模式

WCF支持回调(CallBack)操作,所谓回调就是服务端调用客户端的操作。如图2所示,在回调时:服务端成为客户端,客户端成为服务端。

图2 回调示意图

利用回调操作,服务端可以主动向某指定客户端发送该客户端感兴趣的数据:客户端(订阅者)向服务端(发布者)提出订阅某服务的请求,服务端对该客户端进行登记。当有满足该服务的事件发生时,服务响应所有对该服务登记的客户端,并通过回调客户端上的操作来通知各个客户端。该操作模式可用于生产数据采集、生产实时监控等功能的实现。该模式与以往的轮询模式相比,效率更高,整个系统包括带宽开销更小。

2级服务端与2级客户端连接的心跳可采用事件订阅-发布模式实现。首先定义服务契约:

2级服务端通过终结点获取L2EventsPubService服务。定时调用该服务后,该服务得以发布:

2级客户端通过终结点获取L2EventsSubService服务并订阅L2Events:

需要注意的是,当服务端为silverlight提供服务时,其对应的绑定类型只能是“customBinding”绑定类型。使用net.tcp通讯协议。

2级系统除内部服务端与客户端存在通讯外,与1级PLC和ERP也必须进行通讯。与1级采用Opc UA进行通讯。OPC UA有效地将现有的OPC规范 (DA、A&E、HDA、命令、复杂数据和对象类型) 集成进来,成为现在的新的OPC UA规范。OPC UA提供了一致、完整的地址空间和服务模型,解决了过去同一系统的信息不能以统一方式被访问的问题。运用OPC UA,2级系统能够对生产进行监控,如若需要也可对生产过程进行干预。比如对生产配方的修改等等。与ERP采用Socket套接字进行通讯。一般采用两个通道:一个用于向ERP发送数据,另一个用于接收ERP发送的数据。

3 总体示例

完整的2级系统示意图如下:

图3 系统整体图

如图3所示结构,当4级有生产任务时,通过Socket通讯将PDI数据下发至2级,2级存储该数据并通过OpcUA通讯下发至1级.若在生产过程中发觉该PDI中有数据需修改,则可通过2级客户端浏览器进行修改。2级支持对未进行生产的数据进行修改。在生产过程中,2级通过OpcUA通讯持续对生产数据进行采集,并在生产结束时汇成PDO数据。2级将该类数据存储至Oracle数据库,同时通过Socket通讯将数据送至4级。Server App是2级系统的服务器端,该APP与2级客户端采用Microsoft WCF进行数据交互。

当2级系统被用于全厂级信息化时,需要在系统中加入基于角色的访问控制(Role-Based Access Control)模块,以实现对数据请求的权限管理。

[1]Juval Lowy.Programming WCF Services.United States:O'Reilly Media,2007.

[2]丁士锋.精通Silverlight—RIA开发技术详解[M].北京:人民邮电出版社,2008.

猜你喜欢

服务端浏览器应用程序
删除Win10中自带的应用程序
微软发布新Edge浏览器预览版下载换装Chrome内核
反浏览器指纹追踪
谷歌禁止加密货币应用程序
新时期《移动Web服务端开发》课程教学改革的研究
摸清黑客套路防范木马侵入
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序
浏览器