计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000　Vol.17　No.2　P.58-59



基于Web的组态技术研究
熊良才
摘 要 介绍了用Asp技术实现Web组态功能的基本原理、步骤和事例。
关键词 Asp Web 数据库 报表 组态
1． 引言
　　随着Web技术的广泛应用，基于Web的系统越来越多，不仅出现许多类似于网上购物之类的管理与商业方面的应用，而且还出现了远程测控类的工业应用系统。开发人员面临着用户需求千变万化的局面，在开发本机应用程序时，为了缩短开发周期和提高软件的灵活性，往往采用组态技术来进行处理。实际上，也可以用组态的思想来开发基于Web的远程应用系统。
　　所谓的组态(Configuration)技术就是对于不同但类似的应用对象不需要重新设计和编程，只需根据系统分析，应用组态工具进行简单的配置和定义或编写简单的组态语言，即可设计完成一个特定功能的新系统或修改系统的功能。
　　组态技术的应用极大地方便了软件开发人员的工作，同时，也为用户将来自行更改程序功能等操作提供了有力的保障。本文以开发基于Web的状态监测与诊断系统为背景，论述利用Asp进行组态的基本原理、基本步骤。最后，给出实现报表组态的基本方法。
2 Asp及其实现组态(Configuration)技术的基本原理
2.1 Asp简介
　　Asp(Active Server Pages)是一项由微软开发的服务器端技术。它与客户机方处理之不同在于：在Web页面开发过程中，客户机方处理有一个严重的局限性，即要求Web浏览器必须支持在Web页面中调用脚本语言的功能。由于Asp中的命令和嵌入的一些脚本语言如VBScript或JavaScript都是由服务器来解释执行的，并将执行产生的动态Web页面以标准的HTML格式返回到浏览器，所以，Asp消除了在Web开发过程中对于Web浏览器的依赖性。Asp模型可以用图1表示。

图1　Asp模型
2.2 Asp实现组态技术的基本原理
　　基于Web的组态技术，按组态的要求不同，可以分为服务器端组态技术和客户端组态技术两种形式。两种组态技术各有特点，组态的方法也不尽相同。
　　服务器端的组态方法是在服务器端由网络管理人员进行组态的一种方法。网络管理人员根据系统运行的实际情况和系统操作使用人员(用户)的要求，启动本机组态程序或组态工具进行配置，生成需要的Web动态页面程序。这种方法实质上是一种本地组态的方法。它能在一定的程度上提高系统的开发速度，改善系统的灵活性，但不能让用户按各自的要求在较大的范围内自由组态。
　　客户端组态技术是用户在客户端通过浏览器自由进行组态的一种组态技术。客户在需要进行组态时，通过Web页面上的组态设置进入系统组态页面，用户按组态页面上的提示，输入相应的组态参数，当用户提交这些参数后，系统组态的任务就完成。这种方法实质上也是通过在远端更改系统组态文件的方式实现的。因此，客户端组态技术是一种应该予以采用的技术。
　　Asp作为一种可以产生和执行动态的、交互式、高效率的Web服务器应用程序的工具，它的一些特点特别适合于用来开发基于Web的组态系统。具体表现在如下几个方面：
　　●文件包含
　　在不同的.asp文件中可能会有一些完全相同的部分，如函数、过程等。为了减少编程工作量，往往将这些部分放在一个文件内。当.asp文件要使用这些函数或子过程时，可以用Include将它包含进来。
　　●内置对象
　　Asp提供了五个内置对象，即Response, Request, Server, Session, Application。其中，Request对象连接着Web客户机程序和Web服务器。通过这一连接，可以从HTTP QueryString、HTTP Request体中的窗体数据、HTTP Cookies和预定的ServerVariables中获取信息流，通常用于获取用户信息；Response对象用于管理服务器和客户机之间的交互操作，最重要的方法是Write方法，它向指向客户机的HTML输出流中写入数据。用Response, Request两个对象可以方便地实现客户端与服务器之间的信息传递和交换。
　　●服务器组件
　　Asp支持COM(Component Object Model)技术，在Asp中带有几个公共组件，用户可以自由使用。其中，最著名的组件有数据访问组件ADO和文件访问组件FileSystemObject。ADO支持对任意ODBC数据源的操作，对数据库的访问和操作简便。FileSystemObject支持对文本文件的读写操作。
　　因此，用Asp进行组态，可以利用文件包含的特性将公共的功能和操作以子函数或子过程的形式保存在一个文本文件内，然后，可在组态文件中，将包含有函数或过程的文件包含进去；利用内置对象可以很方便地实现客户与服务器进行信息交换，使得用户的组态信息易于获取和处理；利用ADO组件可以方便地提取数据库基本操作，生成基本的数据库操作函数，并将其标准化，有利于实现数据库操作的组态；利用FileSystemObject组件可以对文本文件进行读写操作，有利于组态文件的生成与修改。
　　用Asp实现组态的基本原理和基本过程可以用图2予以表示。

图2　用Asp组态原理与基本过程框图
3 基于Web组态程序设计步骤
　　设计一个基于Web的组态程序，一般有如下几个步骤。
　　第一步：设计用户请求页面。在设计用户请求页面时，分清系统组态的类型，并将其罗列在页面中，供用户选择。同时，设计用户身份验证与组态权限的确认程序，以保证只有拥有组态权限的用户才能使用组态功能。验证合格后，向服务器发送组态请求信息，启动服务器动态生成组态页面程序。
　　第二步：设计服务器动态生成组态页面程序。该程序在接收用户组态请求后，按组态的类型不同动态返回不同的组态页面，以便向用户提供填写组态参数的表单等。
　　第三步：设计组态文件生成程序。该程序用于接收用户组态信息，并按组态信息动态生成组态文件。在设计前，对系统需要组态的基本操作予以提炼，形成基本的一系列标准函数或过程，放在一个文本文件中。这是组态程序设计好坏的关键所在。
　　第四步：设计组态文件管理程序。该程序的目的在于管理组态文件，以避免组态文件过多。有管理组态权限的用户发管理文件请求后，系统提供文件管理操作。用户可以选择要删除的组态文件进行删除，以保证组态文件的数量适当。
4 事例
　　作者在“热轧机状态监测与故障诊断系统”的研制过程中，完成了一套基于Web的组态系统。现将其中的故障报表组态的设计方法作一个简单的介绍。

　　当用户进入报表组态页面时，有关轧机故障信息的所有表及各表中字段及其含义用Asp列出，在各表及字段旁还有复选控件用于选中表与字段。用户选择表名和字段，并输入条件和排序方式后，按“下一步”按钮，完成对报表的查询语句进行组态，并进入报表格式组态页面。用户可输入报表标题、字体和“制表日期”、“制表人”，选择报表排版方式(如是否分页、是横排还是竖排等)。当用户组态完成后，可以选择保存组态的文件名进行保存，以便以后使用。通过这种方式，任何有组态权限的客户都可在远端(客户端)对报表的形式及内容进行自由组态。具有组态文件管理权限的客户还可从远端对废弃的组态文件进行删除等管理操作，以免组态文件过多。
5 结束语
　　用Asp实现基于Web的组态技术，在原理上易于理解；在实现方法上简单、直观；并且实现组态的效果比较满意。由于目前Asp只适应于部分Web服务器，其应用范围受到一些限制，但文中关于基于Web的组态技术的基本思路是值得借鉴的。
本文得到国家“九五”攀登预选项目资助(编号：PD9521908)
熊良才（华中理工大学机械学院信息所 武汉 430074）
参考文献
1，周治平. ADO数据存取技术. 计算机应用, Vol.19. No.7
收稿日期：1999年9月13日
