APP下载

基于WCF的计算机远程监控系统的设计与实现①

2013-08-28杨永健

华北科技学院学报 2013年3期
关键词:企业级应用程序远程

杨永健

(天津青年职业学院 电子工程系,天津 300191)

0 引言

WCF(Windows Communication Foundation)是Microsoft公司开发的基于面向服务体系结构的分布式应用程序编程框架,是.NET Framework(3.0及以上版本)的重要组成部分。开发人员使用该框架可以构建一个跨平台的安全、可靠和支持事务处理的企业级分布式应用解决方案。本文首先从WCF的基本技术要素入手,详细阐述了WCF的基本概念,架构特点,工作原理以及其相对于其他分布式应用开发技术的优势,在此基础上,给出了一个基于WCF技术的计算机远程监控系统的架构设计与实现方案并对系统的运行效率进行了分析,从而全面论述了将WCF技术应用于实际企业级应用开发的具体步骤和实现方法。

1 WCF技术简介

WCF是使用托管代码建立和运行面向服务应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有和分布式系统有关的技术,如.Net Remoting、ASMX、WSE和MSMQ。以通信范围而论,它可以跨进程、跨机器、跨子网乃至于Internet;以宿主程序(Host)而论,可以以 ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+ 作为宿主。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括 SAML,Kerberos,X509,用户/密码,自定义等多种标准与模式[1,2]。

1.1 WCF技术要素

WCF是一种面向服务的体系结构,一个WCF服务由下面三部分组成[3,4],如图 1 所示。

1)Service Class:一个标记了[Service Contract]Attribute的类,在其中可能包含多个方法。除了标记了一些WCF特有的Attribute外,与一般的类没有什么区别。

2)Host(宿主):可以是控制台应用程序、窗体应用程序、ASP.NET应用程序、Windows Service等,它是WCF Service运行的环境,一个WCF的服务必须运行在某种宿主中。

3)Endpoints:Endpoint是WCF实现通信的核心要素,由三部分组成:Address,Binding,Contract。Address是Endpoint的网络地址,它标记了消息发送的目的地。Binding描述的是如何发送消息,例如消息发送的传输协议(如TCP,HTTP),安全(如SSL,SOAP消息安全)。Contract则描述的是消息所包含的内容,以及消息的组织和操作方式,例如 one-way,duplex和 request/reply。

1.2 WCF的技术优势

WCF相对于 ASMX、.NET Remoting等分布式应用开发技术,主要有以下技术优势[5]:

1)统一性:WCF是对ASMX、.Net Remoting、Enterprise Service等技术的整合。由于WCF完全是由托管代码编写,因此用户仍可以像创建面向对象应用程序一样,利用WCF来创建面向服务的应用程序。

图1 WCF服务组成要素

2)互操作性:由于WCF采用的通信协议是SOAP,这就保证了系统之间的互操作性,即使是运行不同的上下文中,只要通信双方支持标准的Web Service,WCF就可以实现跨进程、跨机器甚至跨平台的通信。

3)安全性与可靠性:WCF支持WS-Security,WS-Trust和 WS-Secure Conversation等多种安全性策略,以用于用户认证,数据完整性验证,数据隐私等安全机制。

4)兼容性:WCF充分考虑到了与原有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和 .Net Remoting。只要原有系统支持SOAP协议,WCF应用程序就可以直接与之进行交互。

2 基于WCF架构的远程监控系统的设计与实现

2.1 WCF应用开发步骤

WCF应用程序分为服务端和客户端两部分,开发时应先开发服务端应用程序,主要包括设计和实现服务契约、配置WCF服务的Endpoint设置(包括 Address、Binding和 Contract)。

在服务端完成WCF服务构建之后,开发客户端应用程序,主要包括构建客户端程序,配置远程WCF服务信息,然后即可像调用本地服务对象一样调用WCF服务端的远程对象。客户端可以采用控制台应用程序、windows窗体应用程序或者网页应用程序等多种形式。

2.2 系统功能分析和架构设计

在上文中,我们已经对WCF的技术要点、技术优势以及开发WCF应用的步骤进行了详细的阐述。下面结合一个具体案例计算机远程监控系统,进一步论述如何利用WCF技术开发企业级分布式应用。计算机远程监控系统是一个基于互联网的监控平台,监控端可以通过互联网查看被监控端计算机的状态,并可以向被监控端发送控制指令,如关机、注销、重启等。被监控端主要完成以下功能:定时提交自身的最新状态信息,根据监控端的指令完成相应的操作。

通过上述功能分析不难看出,该系统的主要技术难点在于工作环境是互联网,而监控端和被监控端访问互联网的方式也不尽相同,如光纤接入,ADSL虚拟拨号,企业内部网通过代理连接互联网。因此,如何保证数据在被监控端和监控端之间正确、高效地传递是至关重要的。被监控端首先需要将自身的状态信息通过互联网提交到远程数据库中,监控端又要将指令送达被监控端,因此,考虑到复杂的网络接入方式、网络拓扑结构的复杂性以及程序的运行效率,可以通过构建IDC数据中心,让监控端和被监控端通过互联网访问数据中心,这样既可以实现被监控端的状态提交、更新以及获取监控端发出的控制指令,同时也可以实现监控端的信息查询和远程控制。那么,如果采用这一设计方案,就必须保证数据库访问的高效性和安全性。数据库访问的高效性可以通过优化数据库设计方案等策略来实现,安全性则需要考虑将数据库放在IDC数据中心的内网服务器上,这样可以避免将其直接暴露在互联网上,从而有效地解决了安全性问题,也可以提高数据访问效率。综合以上分析,采用WCF技术就可以很好地实现这一设计方案。首先,将数据库安装在IDC的数据库服务器上,该服务器工作在内网环境,互联网的应用程序无法访问,然后在IDC的应用服务器上安装WCF服务,该服务器既可以访问内网的数据库,同时也允许监控端和被监控端通过互联网访问WCF提供的远程服务对象,如图2所示。

2.3 系统功能实现

2.3.1 WCF服务的实现

利用Visual Studio 2008新建一个WCF服务库项目,服务库中包含对外提供远程服务的接口和类。在接口中首先定义需要远程调用的函数和数据类型,然后在具体的实现类中给出接口中定义的抽象函数的具体实现,最后使用IIS将WCF服务进行发布,这样监控端和被监控端就可以通过互联网调用WCF服务提供的远程方法了。这里我们定义了一个IService接口和一个Service类,用于为监控端和被监控端提供远程服务,主要代码如下:

图2 基于WCF的远程监控系统总体架构

定义好接口后,定义一个Service类实现接口中定义的抽象函数。在WCF服务库项目的

APP.CONFIG配置文件中,可以对服务的endpoint配置项,如服务行为、服务发布的IP地址(Address)、绑定方式(Binding)以及合约内容(Contract)等项目进行设置。

2.3.2 监控端和被监控的实现

被监控端在启动后首先更新远程数据库中保存的自身状态信息,然后每隔一段时间,访问远程数据库更新自身状态信息,获取监控端发出的控制指令,然后按照指令执行相应操作。

图3 被监控端主要业务流程

下面我们用UML活动图来描述被监控端的主要业务流程:

监控端和被监控端均采用Windows窗体应用程序,只要在项目中按照远程WCF服务的IP地址添加WEB引用,就可以像调用本地对象一样调用远程WCF对象提供的方法。下图是监控端的实现效果,主窗体中列出了不同公司被监控端的即时状态,每隔一段时间,可以对信息进行动态更新。通过监控端,可以对选中的被监控端计算机实施关机、重启、注销、断网、开网等控制。

图4 监控端功能主界面

2.4 系统运行效果分析

1)安全性和可靠性分析

通过使用WCF技术,将远程数据库与分布式应用的隔离,监控端和被监控端均通过调用WCF服务提供的远程对象实现对数据库的各种操作,有效避免了数据库遭受病毒和网络恶意攻击。WCF提供的安全性策略和数据验证机制也保证了数据在网络上传输的正确性。

2)系统运行效率分析

我们选择了一个机房的60台计算机作为被监控端进行了系统的实际测试,计算机通过校园网代理方式连接互联网,基本配置如下:(CPU:Intel Core Duo 2.0GHZ;硬盘:80 GB;内存:2 GB;网卡:10/100 Mbps以太网卡;操作系统:Windows XP专业版)。随着被监控端数量不断增加,系统的运行情况基本保持稳定,被监控端从访问远程数据库到读取控制指令并开始执行相应操作的平均响应时间为7.8s,如下图所示。从被监控端的实际测试情况来看,系统还是保持了较高的执行效率,这也充分说明了利用WCF技术可以开发高效率的分布式应用程序。

图5 被监控端平均响应时间统计图

3 结束语

WCF是Microsoft公司推出的新一代企业级分布式应用程序开发框架,可以用于构建跨平台的安全、可靠和支持事务处理的分布式企业级应用。本文首先对WCF的基本概念,架构特点,工作原理以及其相对于其他分布式应用开发技术的优势做了全面阐述,在此基础上,给出了一个基于WCF的远程监控系统的架构与实现方案,从而全面论述了利用WCF技术开发企业级应用的具体步骤和实现方法。由于本监控系统测试的终端数较少加之传输的数据均为规模较小的数据,如控制指令码、被监控端机器状态信息等,所以系统执行效率比较高。下一步将围绕以下几方面展开进一步的研究工作:

1)当访问WCF服务的终端数急剧增加时,如何进行系统优化以保证较高的运行效率。

2)WCF服务端为运行在LINUX等非Windows操作系统下的客户端提供服务时,如何保证系统的运行稳定性和执行效率。

3)如果在服务端和客户端之间传输大规模数据或者复杂数据结构的数据时,如何保证系统较高的运行效率。

[1]毛晓岚.基于SOA和WCF的远程审判系统设计与实现[J].科技通报,2011,27(1):115-119

[2]李文滔.基于WCF架构的应用开发研究[J].计算机时代,2011(2):19-21

[3]周斌等.WCF在数字化校园建设中的应用[J].中山大学学报(自然科学版),2009(3):335-337

[4]林昕,等.基于WCF的商业智能系统的应用研究[J].计算机技术与发展,2010,20(7):223-226

[5]钱涛.基于WCF的机房管理系统的设计与实现[J].计算机技术与自动化,2010,29(4):135-137

猜你喜欢

企业级应用程序远程
让人胆寒的“远程杀手”:弹道导弹
企业级BOM数据管理概要
远程工作狂综合征
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
远程诈骗
基于慕课网的“企业级应用开发”课堂教学改革探索
企业级信息系统应用级灾备建设与应用
城市轨道交通企业级BIM应用策划研究
三星电子将开设应用程序下载商店