|
摘 要:探讨了一种如何利用ActiveX控件创建网络虚拟仪器实验室的通用方法,整个系统基于B/S构架,在VB6.0环境下采用ActiveX控件技术设计出虚拟仪器,并将其制作成相关的网页,通过Internet向外发布。 关键词:ActiveX控件;网络虚拟仪器实验室;B/S;Web 虚拟仪器(VirtualInstrument,VI)是仪器技术和计算机技术深层次结合的产物,是全新概念的仪器,是对传统仪器概念的重大突破,代表着电子测控仪器的发展方向。国内外的大学纷纷将其引入教学中来,同时积极开展了针对远程虚拟仪器实验室方面的研究,并且取得了一定的进展。但目前都还没有非常成功的应用实例,而且也未达成一定的设计规范。现有的网络虚拟实验室大都采用C/S构架。在该构架下不仅要为服务器开发软件,而且还要为客户端开发专用软件,而且当服务器软件升级或发生修改时,客户端程序也必须做相应的变动。 基于上述原因,从C/S构架基础上发展起来的B/S构架开始受到重视。他最大的特点是用户端只需接入Internet并且安装一个浏览器,而不涉及任何程序开发。本文所讨论的网络虚拟仪器实验室采用的是B/S构架,并且涉及到组件技术、ActiveX控件、Internet网络编程、DataSocket等多种技术。用户只需要安装一个浏览器(如InternetExplore),就可以通过Internet来访问网络虚拟仪器实验室,在Web页面上选择适宜的实验来远程控制实验仪器设备之后,就可根据其工作原理进行操作练习,而且可以从网上直接获得实验数据,实时地观察到实验结果。 1 ActiveX技术 ActiveX技术则是微软提出的基于DCOM(Distributed ComponentObjectModel)使得软件组件能够在网络环境中进行交互的技术集[1,2],他的前身是对象的链接和嵌入(OLE)。DCOM本身并不是一个编程工具,而是一个可扩展体系结构的规范[3],在这个体系结构中,可以无缝地加入服务。DCOM模型定义了符合MSWindows对象的标准,包括一个统一的对象访问接口Iunkown和对象的结构。ActiveX技术正是符合这一标准的工具,通过他将计算机桌面与Internet环境集成起来。ActiveX描述对象的可执行代码可被其他用不同语言编写的对象执行,对象之间通过接口交互。应用程序ActiveXAutomation Server让其他应用程序告诉他在做什么、提示方法和属性,由他控制着ActiveX对象的运行。 ActiveX技术在B/S构架中的应用是以ActiveX控件的形式出现的,用于向Web页面,MicrosoftWord等支持ActiveX的容器(Container)中插入COM对象[4,5]。ActiveX是一个非常快的小型ActiveXAutomation Server,分为客户端控件和服务器端控件。客户端控件是面向用户的,以可视化的图形视频或文字界面、或音频形式在浏览器上出现。但他可能当浏览器发出请求时,Web服务器回传页面,由浏览器负责解释。在解释过程中,若发现页面中要求调用ActiveX控件,则用该控件在页面中注明的ID值先在本地的注册表中进行查询。若已存在,说明该控件已经在本地安装,然后就可以通过注册表中的信息直接使用该控件;否则就要根据页面中所提示的信息到该控件所在的服务器上去下载并且自动完成在本地的安装注册,使该控件成为本地资源。利用脚本描述语言可以在控件之间以及客户与服务器之间通过设置属性(Property)、调用方法(Method)和激活事件(Event)的方式进行通信。这样通过该控件不但可以访问本地资源,而且可以进行远程访问。 ActiveX控件在B/S构架中的作用可用图1表示。 由图可见服务器端控件是位于Web服务器上与Application Server进行交互的控件,他只能在服务器上运行,对浏览器端是完全透明的。作为Web服务器与Application Server的接口,客户端可以快速地访问和使用Application Server上的资源和服务。

2 基于ActiveX控件的网络虚拟仪器实验室 网络虚拟仪器实验室是一个由硬件、软件和具体的教学内容组成的一体化有机系统。支撑他的硬件基础是虚拟仪器实验室中的各种能够连接到计算机的各种实验设备(如带GPIB接口的数字示波器、数据采集卡等)、服务器以及Internet,系统的整体结构如图2所示。在该结构下,用户的计算机只要接入Internet就可以通过浏览器访问网络虚拟仪器实验室。服务器端则由Web服务器、虚拟仪器服务器和具体的仪器设备组成。其中在Web服务器上还建有一个数据库,用来记录访问实验室的用户的相关信息,如IP地址、访问时间、退出时间和实验内容等。 建立网络虚拟仪器实验室的一个关键问题是测控数据在网上的发布和共享。针对这一问题,以往多采用TCP/IP,API,DDE等技术去解决这方面的问题,但涉及到较为复杂的底层编程或传输数据速率较慢,限制着网上远程测控技术的推广应用。NI公司于1999年初正式推出的DataSocket技术,他基于TCP/IP协议,支持本地文件I/O操作、FTP和HTTP文件传输、实时数据共享,并提供统一的API编程接口。他具有使用方便、编程工作量少、无需了解底层操作过程等优点,特别适合测量和自动化工程的网上实时高速数据交换。

DataSocket包括两部分,即DataSocket API和DataSocketServer。前者提供统一的编程接口,作为客户,可以在多种编程环境下与多种数据类型通信。NI分别提供了DataSocket的ActiveX控件、LabWindows/CVIC函数库以及Labview下的VIS,所以使用非常方便,此处选用了ActiveX控件形式。通过独立的DataSocketServer,使用DataSocketAPI程序就可以方便的向外高速发布数据。 网络虚拟仪器实验室中所有的虚拟仪器都采用ActiveX控件形式来实现,开发工具采用ComponentWorks和VB6.0。其中在涉及到硬件的虚拟仪器中就采用了上述的DataSocket ActiveX控件,并且将其集成到具体的仪器中实现测控数据的传输。以基于NILab-PC-1200数据采集卡设计的虚拟信号发生器指令仪产生正弦波信号为例,当用户选定适当的信号参数并且连接服务器之后,服务器根据这些参数产生相应的信号并且将信号的采样值反馈回用户端,最终得到的信号波形如图3所示。

基于ActiveX的虚拟仪器开发完成后,采用了HTML(Hypertext Markup Language)和CSS(Cascading Style Sheets)相结合的方式将其制作成为相关的网页,然后通过Web服务器将网页和网络结合起来向Internet进行发布。当Web服务器接收到用户端发来的请求时,首先要检查用户的主机名或IP地址是否有权访问。如果是有权访问的用户,则根据连接到服务器的先后顺序进行实验操作。同时Web服务器必须阻止访问冲突,以保证虚拟实验室的安全性,确保一次只允许一个用户远程控制仪器。 3 基于组件建立网络虚拟仪器实验室的意义 综上所述,采用基于组件建立网络虚拟仪器实验室具有以下优点: (1)采用B/S构架,客户端只需一个浏览器,不涉及任何程序开发,因此其应用程序界面是高度统一。客户端与服务器之间只能基于TCP/IP,Data Socket协议,Browser与Web Server之间只能按标准的HTTP传输数据。Browser只提出请求服务器所需的参数,而具体的请求命令在Web Server或ApplicationServer上解释、生成并运行。 (2)基于ActiveX技术开发的网络虚拟仪器实验室在技术上具有明显的优势。当实验内容发生改变时,只需要重新开发相应的ActiveX控件就能构造出新的虚拟仪器,然后在网页中添加或更新相应的内容即可。用户端却不必做任何变动和更改。 (3)彻底改变传统的实验教学模式,对于同一实验内容,用户能够通过交互进行几次或几十次的实验,而不必担心受到外界的影响。实现教育资源共享,节约设备投入,提高利用率。在教学内容上能为用户提供更深、更广的教学内容。同时用户不受时间和地点的限制,可以随时通过Internet进行实验。最为重要的一点是:通过访问网络虚拟仪器实验室,能够使用户获得课前预习、课后巩固的学习效果。
参考文献 [1] Corry C,Cadm an J.COM/DCOM PrimerPlus[M].Indianapolis:Sams Publishing,1999. [2] Pan Aimin.COM Principles and Applications[M].Beijing:Tsinghua University Press,1999(Cb). [3] 朱晓华,冯玉田,章玉鉴.基于组件技术的虚拟仪器开发方法的研究[J].上海大学学报,1999,(Cb). [4] 周皓峰,方方,朱扬勇.ActiveX技术对浏览器/Web服务器构架的功能扩充[J].计算机工程,1999,25(12):33-35. [5] 贾群,朱秋萍,李永茂,等.基于DCOM技术的网络虚拟实验系统[J].武汉大学学报,2001,47(3):381-384. () |