APP下载

企业资产管理系统中通信模型的研究与实现

2012-03-17薛淑敏

电子设计工程 2012年11期
关键词:调用浏览器契约

薛淑敏

(宝鸡文理学院 计算机科学系,陕西 宝鸡 721016)

企业资产管理(EAM)系统以提高资产可利用率、降低企业运行维护成本为目标[1];以优化企业维修资源为核心,通过信息化手段可以合理安排维修计划及相关资源与活动。因此,EAM在企业信息化管理中起着重要作用。笔者采用基于Silverlight与WCF技术[2]研究并实现了EAM系统中的通信模型,用来改进现有的EAM系统存在的不足。

1 Silverlight与WCF概述

Silverlight是一种跨浏览器、跨客户平台的技术,能够设计、开发和发布有多媒体体验与富交互(RIA)的网络交互程序。它允许UI设计和代码分离,这样开发人员就不用担心界面的随意改动,以往的开发工具是不可能实现的。它不仅提供了丰富的类库,对于不会美工的开发人员也可以轻松的做出华丽、美观的客户端效果,而且还提供了基于HTTP的跨域网访问支持,使得Silverlight应用程序能够方便的访问WCF服务和ASP.NET XAML服务等。

WCF[3]是使用托管代码建立和运行面向服务应用程序的统一框架,它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF允许应用程序将功能以服务的方式提供给客户端服务请求者,在实现业务逻辑封装的同时实现服务代码与客户端所用技术与平台的解耦,降低了系统的耦合性。由于WCF技术充分支持 WS-Security,WS-Trust和 WS-SecureConversation等安全标准,用于用户认证、数据完整性验证、数据隐私等多种场合,极大的加强了系统的安全性[4]。

2 EAM系统通信模型的研究

本通信模型使用WCF服务对EAM系统的业务逻辑进行封装,使业务逻辑层与表示层和数据库层进行分离,有利于数据持久化操作的重用和改动,并减少重复代码,增强了系统部署、开发和维护的有效性。这里我们设计一个服务契约IPulisher,它指定了一个回调契约ISubscriber。回调契约ISubscriber提供了Notify()的操作,用来实现数据通信。当客户端与服务端进行消息交互时,WCF服务会将它们放在一个会话中,然后对会话进行维护。

终结点提供了WCF服务的地址、传输协议和传输内容,当Silverlight应用程序发出调用请求时,客户端会生成代理,Silverlight应用程序通过代理调用终结点,实现与WCF服务的通信,从而降低了系统的耦合性,提高了系统的通信速度,增强了系统的安全性[5]。通信模型如图1所示。

图1 通信模型Fig.1 Communicationmodel

此通信模型包括4个主要部分:Silverlight应用程序、代理、终结点、WCF服务。终结点提供了WCF服务的地址、传输协议和传输内容,当Silverlight应用程序发出调用请求时,客户端会生成代理,Silverlight应用程序通过代理调用终结点,实现与WCF服务的通信,从而降低了系统的耦合性,提高了系统的通信速度,增强了系统的安全性。

3 EAM系统通信模型的实现

3.1 建立WCF服务

WCF服务包括契约、服务运行时、消息传递、宿主四部分。契约包括数据契约、消息契约、服务契约等,分别用来描述组成某一服务可创建或使用的每则消息的每个参数,定义特定消息部分,规定与某一服务进行通信所需的条件。服务运行时定义了在服务实际运行期间发生的行为,即该服务的运行时行为。同时定义了发生错误行为时制定服务出线内部错误时应采取的操作,如何向外部提供元数据,指定可运行的服务实例的数目以及在事务处理时所进行的操作。消息传递部分则由通道组成,定义了对消息进行处理的方式,如对消息的编码、提供可靠的会话、对消息进行加密等。而WCF服务不能凭空存在,它必需托管(Hosting)在Windows进程中,被托管的Windows进程被称为宿主。宿主监听来自客户端的请求,并作出相应的响应。WCF服务模型如图2所示。

图2 WCF服务模型Fig.2 WCF servicesmodel

WCF服务层是整个应用架构的核心部分,负责处理系统的业务逻辑,它决定了目标系统的功能。该层对Web表示层提供调用接口,同时还需要调用数据持久层的接口来进行业务逻辑的处理。数据持久层位于数据源之上,提供访问相关数据源的调用接口,同时为WCF服务层提供服务[6]。

3.2 使用Silverlight应用程序调用WCF服务

Silverlight应用程序的核心其实是一个用来呈现XAML的浏览器插件,通过一种可编写C#语言的方式,向浏览器公开其内部的文档对象模型(DOM)与事件模型。图3所示是客户端Silverlight应用程序的运行机制,当用户跟Silverlight应用程序进行交互的时候,它将发送事件给C#,在C#的代码中可以调用Silverlight应用程序的功能。XAML文件会被Silverlight运行时读取并处理,然后根据客户端浏览器呈现出Silverlight应用程序的用户界面。

图3 Silverlight应用程序运行机制Fig.3 Silverlight applications operatingmechanism

这里我们对回调契约ISubscriber进行实现,代码如下:

下边通过使用客户端Silverlight应用程序调用WCF服务来实现用户进行EAM系统登录的操作。首先在Silverlight项目中添加服务引用,将建立的WCF服务引用进来,同时设置好命名空间。下面用代码来实现具体操作:

客户端Silverlight应用程序通过回调契约ISubscriber来调用WCF服务,实现了EAM系统登录的操作,加快了远程数据传输的速度,提高了系统的运行效率。

4 结束语

本文基于Silverlight与WCF技术研究并实现了EAM系统中的通信模型。客户端Silverlight应用程序通过代理调用WCF服务,实现客户端与服务端的数据通信,使EAM系统在满足了企业业务需求的同时,简化了系统代码,提高了系统运行效率,面向服务的系统架构降低了模块间的耦合性,改善了传统的B/S模式在用户体验等方面的不足。

[1]张俐,张维玺.基于J2EE的固定资产管理系统的设计与实现[J].计算机工程与设计,2009,30(16):3797-3800.

ZHANG Li,ZHANG Wei-xi.Design and implementation of fixed assetsmanagementsystem based oon J2EE[J].Computer engineering and design,2009,30(16):3797-3800.

[2]Linaje M,Preeiado JC,Sanchez-Figueroa F.Engineering rich intrenet application user interfaces over legacy web models[J].IEEE Internet Computing,2007,11(6):53-59.

[3]Lowy J,Vasters C.WCF服务编程[M].张逸,徐宁,译.北京:机械工业出版社,2008.

[4]Mcrturyc,Mercurim,Watling N,et al.WCF揭秘[M].赵科平,译.北京:人民邮电出版社,2008.

[5]吴迪,李立新.WCF安全模型的设计与实现[J].网络技术安全与应用,2008,10(5):12-14.

WU Di,LI Li-xin.Design and implementation of WCF security model[J].The safety of network technology and Application,2008,10(5):12-14.

[6]Orenstein J A.Supporting retrievals and updates in an object/relational mapping system[J].IEEE Data Engineering Bulletin,1999(1):50-54.

猜你喜欢

调用浏览器契约
一纸契约保权益
核电项目物项调用管理的应用研究
反浏览器指纹追踪
新疆发现契约文书与中古西域的契约实践
LabWindows/CVI下基于ActiveX技术的Excel调用
基于系统调用的恶意软件检测技术研究
环球浏览器
解放医生与契约精神
《项链》里的契约精神(上)
利用RFC技术实现SAP系统接口通信