新闻中心

EEPW首页 > 消费电子 > 设计应用 > ActiveX技术在B/S模式监控系统中的应用

ActiveX技术在B/S模式监控系统中的应用

——
作者:时间:2007-09-24来源:电子技术收藏
随着Internet技术的飞速发展,利用Web服务器的信息服务能力和数据库的数据处理能力来构造大规模的系统已成为当前人们关注的热点。与此同时,软件的开发环境和开发技术也在不断的变化,B/S(Browser/server)模式管理信息系统与传统的C/S(client/server)模式管理信息系统相比,具有使用简单、维护方便、具有广泛通用性和跨平台性、安全性好等优点,因而日益受到广大用户的青睐。 

但是由于各个系统具体需要的不同,要建立符合工程实际情况,满足用户要求的系统,这就需要根据工程的具体情况,采用具体的技术手段来组建具有自己特色的系统。本文以基于B/S模式的监控管理系统为例,对术进行了详细研究。采用术和B/S模式结合的方式,实现了某大型工程高效实时的监控需求。

1 分析

1.1 B/S模式监控系统的系统架构与功能

在B/S体系结构中,用户通过浏览器向分布在网络上的Web服务器发出请求,Web服务器接受客户请求,首先需执行相应的扩展应用程序执行对应的操作,然后将相应的信息返回给浏览器。

基于B/S模式的管理信息系统从结构上主要分为三个层次,如图1所示:图1B/S(Browser/Server)模式系统架构图分别为Internet浏览器、Web服务器和数据库服务器。用户通过客户端的Internet浏览器以表单或者其他形式向Web服务器发送HTTP请求,Web服务器请求数据库服务器,并将获得的结果以HTML页面的形式返回给客户端的Internet浏览器,供用户查看。如图1所示。

 

具有很多优势:平台无关性;使用简单,易于扩展;减少数据库并发用户;代码可重用性好,易于维护。因此B/S模式逐渐成为一种流行的应用系统开发平台。然而B/S也并非完美,随着应用的逐步普及,B/S模式逐渐暴露了它的缺陷,如执行效率低,Web服务器负担过重、安全性有待加强等。特别对于一些实时性要求比较高、数据量比较大的应用系统,比如实时监控远程控制等,B/S模式无法满足系统的需求。

1.2 ActiveX组件技术

ActiveX是Microsoft提出的采用COM(ComponentObject Model)和DCOM(Distributed Component ObjectModel)使软件组件在网络环境中进行交互的一组技术集,它是在COM之上建立的一种理论和概念,与具体的编程语言无关,包括ActiveX Dll组件和ActiveX控件。

ActiveX控件同其他的ActiveX组件相比具有以下特点:能通过设置属性控制其行为,从而实现用户接口;在客户端的浏览器执行,能够缓解服务器的负荷;在有需要时,还可以由应用程序调用ActiveX摔件,扩展应用程序的功能。作为针对Web应用开发的技术,ActiveX控件被广泛应用于Web服务器以及客户端应用的各个方面。

ActiveX控件常用的形式是.exe、.dll或.ocx的形式。通常以动态链接库形式存在,因此必须在容器中运行。ActiveX控件能够直接嵌入到浏览器和其他应用程序中,并具有和应用程序一样强大的数据处理,磁盘操作等能力。

ActiveX控件在以浏览器为主的结构中的作用如图2所示。

 

ActiveX控件由三大要素组成:属性、方法和事件。属性是控件的基本特性,是控制的一部分,在控制装入时或控制正在进行时可以改变;方法是控件提供给外界的一个接口,类似与一个函数调用接口,用户可通过方法来设置控件的某些性质、执行某项动作或者进行某些运算以实现一定的功能;事件是控件对外部操作或控件内部处于某种状态时所发出的通知,它由控件本身所触发,并与容器进行通信。从外界看,ActiveX控件就像一个黑盒,用户只能看到它的三大要素,如图3所示。 



 

要使用ActiveX控件,首先要创建控件实例对象,对控件进行实例化后,对控件属性的设置和操作就可以通过实例对象的属性和方法来实现。ActiveX控件能在ASP.NET页面中通过<object>标签创建,<object>标签包含类id(clsid),用于识别需要实例化的ActiveX控件。如下面的代码所示:

 

<object>元素的属性有id,classid,codebase,height,width等。

其中id的属性值objectJK是用于唯一表示AetiveX控件的名称,classid属性值“clsid:49F8CFDF-6B01-4115-BAF4-D579DB51931B”是AetiveX控件在系统中唯一标识号,codebase属性值“../ikocx.cab”是AetiveX控件的安装文件所在的目录,此处指位于服务器根目录下。

控件技术的具体实现如下:当浏览器发出请求时,Web服务器向用户浏览器回传内嵌ActiveX控件的页面,由浏览器负责解释。在解释过程中首先用该控件的在页面中注明的id值先在本地的注册表内进行查询,若已经存在,则说明该控件已经在本地安装,然后通过沣册表中的相关信息直接使用该控件;否则就要根据页面中所提示的该控件所在的服务器上的路径到服务器上去下载并且自动完成在本地的安装注册,使该控件成为本地资源,供以后使用。当Web服务器提供更高版本的ActiveX控件时,浏览器会自动下载新的摔件,并自动安装,覆盖原来的控件。

2 应用实例

2.1 系统结构设计

作者参加了某大型系统工程的监控分系统的研究与开发,在系统结构的设计中,需要充分考虑系统特点、用户需求和人机交互。诸如系统要完成对高速硬件设备的数据进行采集分析,将数据处理汇报给用户;要实现在线监控,预警,数据库查询分析等功能,对上作服务器或台式机要能远程抓屏;住系统出现问题之后能够智能设置高速硬件设备和后端处理设备的各种工作参数,纠正一般性错误。而对于系统管理人员米讲,希望能够随时在任何一台终端上及时准确的了解现场的全部状况。如果系统出现问题,要迅速知晓问题出现的环节和解决措施。基于以上两方面的考虑,我们采取了ActiveX组件和B/S模式结合的系统。如图4是设计监控系统的结构框图。

 

设计时,对于事务性强,交互少,数据传输,数据处理量小的功能采用B/S模式,它主要是数据发布,数据库查询和操作。对于实时性高、刷新率快、数据处理量大的状态显示功能则采用了ActiveX组件嵌入浏览器的技术,ActiveX组件直接与被监控的设备进行通信,对数据记录并进行处理。对于交互性强、安全性要求高的配置部分则采用应用程序和ActiveX组件通信的方式,ActiveX组件从应用程序得到数据库中的配置参数并进行数据处理,配置被监控硬件设备。在被监控设备的服务端支持下,ActiveX组件还具有远程抓屏的功能。

系统所有的工作参数都保存在数据库服务器中,Web服务器程序和应用程序常驻内存,ActiveX组件既可以由网页嵌入调用,也可以由应用程序直接调用。ActiveX组件由网页嵌入调用时,用户可在任何一台终端上实现所有的监控,由应用程序直接调用时,扩展了应用程序的功能。

2.2 ActiveX组件的开发

本文主要设计并实现了如下几个ActiveX功能组件。

2.2.1 设备工作状态显示

开发ActiveX控件时存程序中保留相应的数据接口,以便传送控制量和接收实时数据。在本工程中,为了提高被监控设备的工作效率,被监控设备对监控查询只需要返回原始的工作状态信息,不需要做任何处理,对数据的处理由ActiveX控件在终端上完成。再将用户需要的结果数据在网页上通过一定形式显示出来,如数字显示、图形显示、曲线显示、表格显示等。数字显示最简单,直接把读到的数据显示出来就行了。图形显示则需用ActiveX控件将数据模拟为现实中的仪表信号灯等设备显示出来。曲线显示需用ActiveX控件将数据按一定的比例在横坐标,纵坐标上绘制成曲线。表格显示用于数据比较多时,数据先在ActiveX控件上进行处理,然后再通过ActiveX控件的表格显示出来。

ActiveX组件相应的监控方法能根据系统中结点的变化调整显示界面,根据系统数据流的流向分布进行分析,设计了常见故障的检测程序,在系统结点出现故障时,能够分析出相应的故障结点及原因,并发出报警信号(声音及闪烁),并向常驻内存的服务器应用程序发出消息。

2.2.2 配置设备工作参数

当终端上的监控ActiveX控件率先检测到系统中的问题需要重新配置时,会向服务器应用程序请求数据库操作,如果数据库中正在配置标志为1,则不进行任何操作,如果标志为0,则将标志置1,然后进行参数配置,配置完毕,状态恢复正常后将标志恢复为0。如果用户没有在任何终端上监控系统的工作状态,常驻服务器内存的应用程序会调用ActiveX控件的监控方法,一直监控所有被监控设备,当系统中的工作结点发生变化,或检测到硬件状态异常时,需要调用ActiveX控件对相应硬件设备进行重新配置。

2.2.3 远程控制功能

为了能做到在任何一台终端上对工作服务器和台式机的更有效的临控,ActiveX组件实现了远程控制这一功能。如图5所示。

 

用户在任何一台终端上,可以对服务器或者台式机进行远程控制,由于远程抓屏实时性高,为了减少被监控设备的负荷,我们设计了同一台硬件设备最多向一个终端提交远程控制的限制,从而避免多个用户同时操作一台机器出现冲突和竞争。

2.3 ActiveX组件的安全性

因为ActiveX组件具有和应用程序一样强大的功能,在Internet上,当用户浏览到带ActiveX组件的网页时,IE浏览器在自动下载和提示用户安装之前,必须经过用户的同意及确认才可。

我们设计的ActiveX控件或插什是白行开发的,其状态通常是未标记为安全或足未经签名验证的。由于IE浏览器的默认安全设置是禁止下载、运行未签名的ActiveX控件和插件,因此客户机必须在IE浏览器的安伞设置页面中将“ActiveX控件和插件”下的相关选项设置由“禁用”改为“启用”后,才能正常地进行应用。

启用下载、运行未经签名验证的ActiveX控件和插件后,一些未经签名验证的插件会趁虚而入,它们会在用户浏览网页的时候,在用户毫不知晓的情况下自动下载到本地计算机并加载到IE浏览器中。由于这些ActiveX摔件和插什未经签名验证,不仪会影响系统的安全性,同时企业内部用户在使用IE浏览器进行S应用时,应用调用的ActiveX控件和这些已经自动加载到IE浏览器中未经签名验证的控件或插件可能发生访问冲突,造成应用异常中止。

当然,在工程内部可信赖的网络环境中,这种情况发生的可能性很小,但是在系统内部感染病毒的情况下也有可能发生。如何有效地管理这些已经加载到IE浏览器的未签名ActiveX控件,同时防止系统继续自动下载、加载未经签名验证的ActiveX摔件呢?我们可以采取以下三种方法:

禁用/删除IE浏览器的加载项;分区域设置IE的安全选项,只加载来自服务器站点的ActiveX控件;对Windows Server 2003,我们可以使用管理域中的ActiveX控件的组策略工具。

采用上面这三种方法的任何一种之后,我们可以放心的使用我们自己设计的ActiveX控件了。但对于最新版本的Windows用户,在访问到带ActiveX组件的页面时,IE会弹出一个提示:“单击以激活并使用此控件”。这是因为Microsoft在2006年2月28日发布了安全通报MS06-013,讨论IE的非安全更新912945。应用此更新之后,只有当用户手动激活其用户界面时,才能与网页中加载的Microsoft ActiveX进行交互。如果用户不点击激活,ActiveX组件就无法发挥作用。

在实际的软件设计中,为了方便用户使用浏览器来进行监控而不需要额外的点击,我们修改了使用ActiveX组件的方式。在网页中使用ActiveX组件的传统方式是:<object classid=”clsid:ActiveX组件ID号”:></object>

因为一个页面的所有</object>的活动内容都不会被自动激活。我们采用外部调用JavaScript代码的document.write方法,把JavaScript代码和调用ActiveX控件的页面写在不同的文件中。这样虽然麻烦一些,但是不强制用户通过点击来激活控件,方便了用户使用。

木文中将术应用于B/S监控软件中,不仅增强了B/S监控软件的功能,加快了软件的开发速度,而且适应了当前软件开发向模块化、开放化发展的趋势,提高了系统的实时性、可靠性和可扩展性。

ActiveX技术应用于B/S模式弥补了单B/S模式的不足,比B/S和C/S结合的方式简单实用(不需要安装C/S客户端),可以用在商业化的在线杀毒,在线点播,在线考试等诸多领域,具有非常光明的应用前景。


评论


相关推荐

技术专区

关闭