[导入]基于Web的B/S结构实时监控系统[转]

文章编号:1009-0193(2002)01-0062-02

基于Web的B/S结构实时监控系统

尉学军,刘 跃

(贵州工业大学 电气工程学院,贵州 贵阳 550003)

摘 要:提出了怎样利用Web技术对生产过程进行监控,介绍了其基本结构和工作原理,并对系统所采用的关键技术进行了讨论。

关键词:B/S结构;ASP;ActiveX控件;DLL;实时监控

中图分类号:TP277;TP311.54 文献标识码:B



0 前 言

随着企业生产规模的扩大和网络技术的发展,为了更好地实现企业内部信息的共享和作出及时的决策,传统意义上的对生产过程进行监控已经不能满足现代化企业的要求。通过与网络技术相结合,以高效、可靠的方式实现企业内部数据的利用最大化,使企业能够对生产过程进行实时监控,并且对所发生的意外情况及时进行处理,就显得越来越迫切了。

Intranet是Internet技术在企业内部进行信息传递的产物,在我国大中型企业中得到广泛的应用。在工业监控系统中,应用Web技术实现远程监控,成了越来越多的企业不可缺少的重要组成部分。目前,从结构模式上讲,有B/S(Browser/Server)结构和C/S(Client/Server)结构。



1 B/S结构和C/S结构的比较

C/S结构就是传统意义上的客户机/服务器模式,系统任务分别由客户机和服务器来完成。服务器具有数据采集、控制和与客户机通信的功能;客户端则包括与服务器通信和用户界面模块。这是一种典型的“瘦服务器/肥客户机”的模式,它有以下缺点:

(1)部署困难,除了要安装服务器软件外,对每台客户机都要安装客户软件的一份拷贝。

(2)满足不了客户端跨平台的要求。一般来说,客户端的操作系统是不同的,与此对应的客户端程序也是不同的。但是,为每一种操作系统设计一个客户端程序是不现实的。而要求客户放弃已有的操作系统来购买一新的操作系统会使客户付出很大的代价。

(3)管理、维修费用高、难度大。

于是,我们就在传统的C/S结构的中间加上一层,把原来客户机所负责的功能交给中间层来实现,这个中间层即为Web服务器层。这样,客户端就不负责原来的数据存取,我们只须在客户端安装浏览器就可以了。把原来的服务器作为数据库服务器,在数据库服务器上安装数据库管理系统和创建数据库。Web服务器的作用就是对数据库进行访问,并通过Internet/Intranet网传递给浏览器。这样,Web 服务器既是浏览器的服务器,又是数据库服务器的浏览器。在这种模式下,客户机就变为一个简单的浏览器,形成了“肥服务器/瘦客户机”的模式。B/S结构同C/S结构相比较,具有以下优点:

(1)可以非常容易地实现多用户监控。

(2)开发环境与应用环境分离,便于系统的管理与升级。

(3)应用环境为标准的浏览器,简化了传统系统中较为复杂的GUI的开发;降低了对用户的培训、安装、维护等费用。

(4)易于实现跨平台的应用。



2 监控系统的具体实现

基于B/S结构的监控系统如图1所示。

将采集到的数据通过动态链接库DLL(Dynamic Link Library) 程序送到应用服务器,应用服务器负责与被控过程的连接,由VC++ 6.0编写的应用程序调用.DLL程序,实现对数据的采集。同时,用ODBC(Open Database Connection)开放数据库链接技术实现数据库服务器与应用服务器之间的通信,使采集到的数据存储到数据库服务器。数据库服务器中的数据库管理系统采用关系型数据库MS.SQL.Server操作系统。客户通过浏览器向Web服务器提出请求,Web服务器处理后,到数据库服务器上进行查询,查询结果送回到Web服务器后,以HTML页面的形式返回到浏览器。


图1 B/S结构工业监控系统


2.1 动态链接与应用程序

动态链接库(DLL)是Windows的重要组成部分。它是一个包含函数的库文件,可以独立地编译成在运行时才链接的.DLL文件,这在工业监控系统中有着特殊的意义,这是因为工业监控对速度有很高的要求。在进行监控时,数据采集得不停地进行,使用.DLL文件,使应用程序变小,留出更多的空间给应用程序进行数据处理使用,这样就提高了监控的效率。Visual C++有很好的对底层系统的编程能力,可以利用它设计开发对端口的操作函数,编译成动态链接库供调用。

应用既负责.DLL程序的链接,同时又通过ODBC把.DLL所采集到的数据送到数据库服务器。它可以通过VC++ 6.0来编写。在编程之前,首先用ODBC把数据库添加到数据源。编程的时候,首先必须使应用程序同数据源连接起来,这可以通过MFC中的CDatabase类来实现;创建了同数据源连接后,就可以对数据库进行操作了,MFC中的CRecordSet类具有这种功能,它可以实时地修改数据库的记录,达到存储所采集数据的目的。

2.2 Web服务器与数据库服务器的通信

数据库服务器中的数据库可以采用MS.SQL.Server、Access、Oracle等数据库管理系统。Web服务器利用ASP、ODBC结合SQL数据库技术来访问数据库。

ASP(Active Server Pages)是一个Web服务器端的开发环境,利用它可以产生和运行动态的、交互的、高性能的Web服务器应用程序。它集成了Microsoft的编程语言ISAPI,我们在ASP网页的开发方案中用ADO(Active Data Object)技术对数据库进行访问。其步骤如下:

(1)使用ASP的Server对象“Server.CreateObject”建立要连接的对象,并用“Open”打开待访问的数据库;

(2)设置SQL命令,使用“Execute”开始执行访问数据库的动作;

(3)使用ADO的Recordset 对象提供的命令,得到访问的结果;

(4)关闭数据库。

但是,这种访问要经过数据库服务器和Web服务器,这势必会影响访问的速度,只适合对历史数据的访问。对于实时数据,采用内嵌的ActiveX控件直接对应用服务器进行访问,这时Web服务器和数据库服务器对此毫无知觉,提高了访问的实时性。ActiveX技术是用于组件对象模型(COM)的一种技术,它使各种软件组件可以在网络工作环境中相互使用。ActiveX控件是ActiveX的一个重要组成部分,利用它将实时数据与HTML网页连接起来。



3 结束语

目前在我国,基于Web的信息管理系统(MIS)不乏成功的应用,但是,基于Web的实时监控应用还比较少。B/S结构的网络技术是一种先进的,灵活的数据库结构,利用它进行数据采集和生产过程监控在我国大中型企业中有着广泛的应用。



参考文献:

[1] 胡峪,刘静.Visual C++ 编程技巧与示例[M].西安:西安电子科技大学出版社,2000.

[2] 姜麟,等.开发基于Web技术的工业信息远程实时监测系统[J].计算机应用,2000,(7):63-65.

[3] 飞天工作组. 动起来,更精彩——ASP3.0动态网页精彩制作[M].北京:人民邮电出版社,2001.



Real-time supervisory system based on web's B/S structure

WEI Xue-jun,LIU Yue

(College of Electrical Engineering,GUT,Guiyang 550003,China)

Abstract:This paper describes how to use Web technology to monitor industrial production process,discussing the primary structure and principle and the key technology adopted in the supervisory system.

Key words:B/S structure;APS;ActiveX control;DLL;real-time supervisory


文章来源:http://computer.mblogger.cn/wucountry/posts/22873.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

被裁之后才明白:有一种抗风险能力,叫做会讲故事

如果你注意观察,会发现周围总有这么一种人:他说的每句话,单拎出来都没毛病,但一说出口就让人无法接受,很难说服你。尤其在职场里,这种无效沟通特别多,以至于产生了庞大的“沟通成本”&#xff1…

saltstack php,Saltstack快速入门简单汇总

[rootmaster~]# salt \* test.pingminion-1:Trueminion-2:Trueminion-3:Trueminion-4:TrueTrue代表正常,没有响应当然代表客户端没有启动或者没有认证成功之类的。指定目标主要有五种方式一: Global,即salt默认的匹配方式,能识别终…

课下测试03!03!03!题目截图及解析(不完全正确)第四周--信息安全系统设计基础...

课下测试03,也就是第三章内容,以下分析和解析仅供参考哦~ 注意!最好是对着题目看一下书,自己思考一下题目(毕竟我页数都给你标出来了),不是说这样你就能提高了,而是我正确率真不高&a…

哦!数组还能这么用,学到了!

来源:公众号【编程珠玑】作者:守望先生ID:shouwangxiansheng这个问题源于读者在阅读redis源码时的一个疑问。先看下面的代码,对于包含动态字符串成员的两个结构体Test0和Test1占用空间分别是多少呢?//来源:…

推荐开源代码2004/12/17

严正声明:本博客中的任何随笔、文章、图片等内容都不能私自转载,必须书面征得作者同意才能转载,并不能随意篡改,如要作出任何改动,必须书面征得作者同意方可,作者拥有一切权利并保留一切追究权利&#xff0…

matlab图片取模程序,彩屏图像取模,BMP图像提取程序示例 | 学步园

//bmconv.c#include #include#include#include"bmconv.h"/*************************************************************************文件名称:bmconv.c/bmconv.h文件功能:BMP提取到点阵RGB显示创建时间:2013-04-20文件作者:女孩不哭文件版本:1.0文件说明:专用***…

pug模板引擎——jade

随着前端项目工程化的发展,代码结构越来越复杂,代码却越来越简单,为了将更多的精力集中在业务功能上面,对页面的快速构建需求日益剧增,同js、css一样,html也出现了各种各样的工具,即模板引擎&am…

广东,就是这么横?

昨晚的稿 今天发一下 应该有好久好久没有写篮球相关的文章了,因为之前写了被骂了,不过,今天不一样,毕竟方超巨打得这么好,不吹一下,总感觉今天不完整,骂就骂了吧,反正也不差这一次了…

在ASP.NET中利JavaScript实现控件的聚焦

在Windows应用程序中很容易控制控件的聚焦&#xff0c;但是在ASP.NET中并没有提供这样的功能&#xff0c;但是我们同样可以实现这样的功能&#xff0c;这篇文章就讲述了通过JaveScript实现在页面上某一特定控件获得焦点的功能。 下面是用到的JavaScript代码。 <script langu…

mysql自动备份发邮箱,定时任务自动备份数据库并邮件发送

我原本是使用Vastar的第一个脚本方案来自动备份WordPress数据库并邮件发送的&#xff0c;不过后来因为更换服务器&#xff0c;不知道为什么造成了会二次备份并有错误提示。刚好Vastar又给了一个更简洁的方法&#xff0c;于是昨天就替换掉了。不过Vastar的是同时备份数据库和网站…

电厂各类设备原理动图,绝对让你看花眼!

▲ 火力发电流程原理▲ 核能发电流程原理▲ 水力发电流程原理▲ 光热发电原理▲ 垃圾发电原理▲ 蒸汽吸收式制冷原理▲ 尿素热解脱硝流程原理▲ 湿法脱硫工艺原理▲ 钢球磨煤机内煤的破碎原理▲ 碎煤机工作原理▲ 螺旋输送机&#xff08;绞龙&#xff09;原理▲ 多管电除尘器▲…

也谈MMU管理机制

1&#xff0c;结构&#xff1a; MMU存储器系统的结构允许对存储器系统的精细控制。大部分的控制细节由存在存储器中的转换表提供。这些表的入口定义了从1KB 到1MB 的各种存储器区域的属性。这些属性包括&#xff1a; 虚拟地址到物理地址映射 ARM 处理器产生的地址叫虚拟…

__ATTRIBUTE__ 你知多少?

_ATTRIBUTE__ 你知多少&#xff1f; 1 #include "stdio.h"2 3 /* 地址参考基准 */4 5 char r1;6 short r2;int refer;7 8 struct p9 { 10 int a; 11 12 char b; 13 14 short c; 15 16 }__attribute__((aligned(4))) pp; 17 /* 4字节对齐&#xff0c;a…

oracle 根据分隔符提取,oracle自定义函数按照某个分隔符拆分字符串

1.首先需要定义一个集合类型&#xff0c;我这里定义的是变长数组类型(VARRAY)create type type_splitstr is varray(1024) of varchar2(128);--注意&#xff0c;我这里之所以不用嵌套表类型(NESTED TABLE)&#xff0c;是因为oracle官方文档有如下说明。--Nested Tables: The in…

跟几位大佬共进晚餐

这是一篇几个程序员大佬聚会的聚后感文章这次聚会比较唐突&#xff0c;连总从广州专门开车来深圳看望我们&#xff0c;我们约在了某个地铁站的八合里牛肉火锅店&#xff0c;这是一个周五的下午&#xff0c;理论上是非常简单的一个周五&#xff0c;但是因为这些男人女人的存在&a…

vue.js框架搭建

安装脚手架 前提条件&#xff1a;已安装node&#xff08;4.0版本以上&#xff09;&#xff0c;npm a、全局安装 vue-cli npm install -g vue-cli 安装成功后可以通过命令行查看版本号&#xff0c;如图 b、初始化项目 新建一个文件夹命名为01vue&#xff0c;准备在此文件夹下存放…

oracle数据库imp导入,imp 导入 没有数据库

IMP-00009: 导出文件异常结束今天准备从生产库向测试库进行数据导入&#xff0c;结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误&#xff0c;google一下&#xff0c;发现可能有如下原因导致imp的数据太大&#xff0c;没有写buffer和commit两个数据库字符集不同从…

MIK C语言面试两题

这是一个读者朋友在知识星球上提到的两个笔试题&#xff0c;第一个题目比较简单&#xff0c;关键在第二个题目「编程题」&#xff0c;我文章中写的解题思路应该不是最好的&#xff0c;希望大神读者们给出更好的答案&#xff0c;让这个充满乐趣的程序世界再增添一些乐趣吧&#…

[听尉迟方侃侃]平台

很长一段时期我都不能理解什么叫做平台。这个平台那个平台&#xff0c;随随便便的东西都要带上“平台”两个字以期蓬荜生辉。搞得人很是反感。 查了一下金山词霸&#xff0c;对平台一词有两个解释和软件行业相关&#xff1a; 解释1、[platform] ∶ 通常高于附近区域的平…

Swift基础学习(二)数据类型

在编程语言中&#xff0c;不同的数据信息需要不同的数据类型来存储&#xff0c;计算机内存中针对不同的数据类型它们所分配的内存大小是不同的&#xff0c;特定的值需要特定的类型来声明。 Swift 数据类型 内置数据类型 整数 - Int & UInt 根据一个整数变量占据的内存空间&…