1 系统设计原则
为了提高系统响应性能和稳定性,增强代码的可重用性,可扩展性和易维护性,最大程度地满足用户日益变化的需求,整个监测网络系统设计原则为:基于分布式组件设计;基于三层结构模式设计:将设备驱动与网络监测软件分开;将数据流与业务流程分开;基于网络化结构设计;基于标准化模块设计。
基于分布式组件(DCOM)设计的软件每一部分模块都是一个独立运行的程序,并可以运行于不同的计算机上。这样可以使各软件功能之间、各设备之间完全独立。
基于三层结构模式设计,将设备驱动与网络监测软件分离开,使各部分完成各自的功能,尽可能地减少了各部分的耦合度。将数据流与业务流程分开,可以简化业务流程的逻辑复杂性,从而可以降低软件的开发难度,提高软件开发效率。
将监测网络中的设备根据不同的监测中心、监测站进行树型结构管理,既可以对用户、设备、功能进行统一的管理,也可以避免因统一管理而带来的网络数据瓶颈。
基于标准化模块设计,使得各功能模块独立运行,一个模块死掉,不影响其他无关模块工作。
2 系统体系结构
2.1 监测系统组成
监测网络系统通过各种测量设备,能对温度、流量、压力还有无线电等各种信号进行测量,将采集到的数据通过网络传送到各级监测中心及监测站,并对其数据进行分析和处理,及时、准确地将信号测量情况反馈给监控人员,从而监测运行情况,对出现的异常情况作出及时的处理,指导决策。
整个监测网络系统由监测中心、各级监测站和监测站下的监测设备通过联网组成。监测中心负责对各监测站进行控制,下达监测任务,是采集和处理数据的中心,由控制器、路由器、集线器/交换机、网络适配器、MODEM及对应的监测软件等组成,实时掌握整个监测网的运行状态。监测站至少包括一个监测服务器、一个数据库服务器和若干个监测设备,能够接受监测中心的测量任务,实现对测量信号进行自动实时和非实时监测,并进行分析处理显示,将数据发送到监测中心。监测站也可做成移动车载系统,通过无线网络接入监测系统,灵活机动地完成各种监测任务。监测站下的各种监测设备实现具体的监测功能。
监测中心、各级监测站和监测设备组成一个局域网络,进行树型结构管理,实现各种监测功能,达到统一管理、分工合作、数据共享的目的。在监测站内部的数据通讯直接通过分布式组件来完成,而各个监测站之间的数据通讯的实现则是通过网络通讯服务程序进行点对点通讯(PPP),这样可以避免网络设备统一管理而带来的数据传输瓶颈问题。根据实际情况,用户可以建成只有一个监测站的小型监测网络系统,也可以扩建成全国监测网络系统。
2.2 系统软件结构
整个监测网络系统基于分布式组件设计,采取“客户端-中间层-设备底层”三层结构形式。客户端是监测系统的功能界面程序,主要完成与用户的交互功能;中间层是工程的核心组件,主要负责命令与数据的分发以及设备和用户的统一管理;底层设备封装成组件形式,主要完成用户的测量任务,并返回数据。图1是监测系统整体框架结构图。
客户端程序,从功能上来说是一个面向用户的窗口,主要完成的功能有两个:作为用户和设备交互的窗口,向中间层发送命令和显示中间层返回的数据;完成一些独立于中间层的数据处理功能。
中间层就象整个系统的中枢神经,其主要完成两大功能:一是负责整个系统数据流的管理,向上接受客户端输入的测量命令和参数,并向客户返回相应的测量数据和状态,向下将测量命令和参数发送给底层设备,并接受设备返回的数据。二是设备管理和用户管理,简单的说就是对网络中的设备和用户进行统一管理。
设备底层主要是设备的DCOM封装和与中间层的接口程序。
3 系统总体设计
3.1 客户端程序设计
怎样设计界面友好,运行稳定,实时反应迅速的监测软件是监测网络系统的首要要求。监测网络系统应用软件的交互界面和功能直接反映了用户的需求。
系统设计中采用基于分布式组件设计的模块化设计:每项功能设计成相对独立的功能模块,每一部分模块都是一个独立运行的程序,模块与模块之间各自预留接口,通过调用接口的方式相互调用。这就要求每个模块有自己独立的参数、变量和过程;各个模块的功能不重复,每个业务功能可以重复调用。模块化设计的优点:利于开发分工、减少程序的开销、提高代码使用效率等。
用户功能界面主要是由用户登陆模块、任务管理模块、命令控制模块、测量参数设置模块、监测数据显示及分析模块等组成。每一个独立的模块充分利用面向对象中类的思想来开发设计。在进行程序开发阶段,分别对各个功能模块进行开发、测试,实现和完善各项具体功能。当进行整体规划的时候,就像堆砌房子一样,调用一个一个的模块,组成一个漂亮、实用、且可随意变形的“房子”。
3.2 中间层设计
中间层是整个系统的核心控制层,主要负责命令数据流的管理和设备管理与用户管理。其中数据流的管理包括:数据的分发与管理、命令的排队管理与分发、数据的分发与管理。
主要的数据流为数据请求过程:
(1)通过参数面板选择测量参数,通过命令面板选择功能操作,将命令直接编译成设备认识的、能直接操作的二进制流,递交给网络通讯服务程序;
(2)网络通讯服务程序将数据传输到对应的监测站数据管理服务程序(加到中间层队列中);
(3)数据管理服务程序将命令数据流发送到对应的监测设备驱动服务程序;
(4)设备得到的监测结果返回到数据管理服务程序;
(5)数据管理服务程序将监测结果数据自动转换成标准数据格式,递交给网络通讯服务程序;
(6)网络通讯服务程序将结果数据返回给用户界面;
(7)用户界面将数据显示出来或通过存储过程保存到数据库。
整个数据请求过程类似于“写信→寄信→回信”过程。首先用户界面按设备认识的格式写好“信和信封”,然后通过中间层“寄”给设备,中间层将设备的“回信”转换成标准格式返回给用户界面。
3.3 设备底层设计
底层设备以DCOM形式封装,各设备间独立运行。一旦设备出现意外问题诎口死机或断网等,不影响其他设备工作。设备底层的开发主要包括两部分:设备与中间层的DLL接口程序;设备的DCOM封装。设备与中间层的接口程序:当加入新设备时,中间层程序不需要编译,只需在底层的DLL中加入新的设备信息;底层DLL负责将上层命令翻译成底层DCOM能够识别的命令格式。
整个系统软件分为五个部分的内容,即:
(1)用户界面,他是瘦客户端,可以安装在需要监测的任意计算机上。
(2)登录服务程序,安装在监测中心的监测服务器上。
(3)数据流管理程序,也可称中间层。包括数据管理服务程序和状态管理服务程序,安装在监测站的监测服务器上。
(4)设备驱动服务程序。
(5)网络通讯服务程序,安装在需要远程访问的任意计算机上。
基于分布式组件设计,使软件的各个部分可以完全独立来封装,形成一个可独立运行的程序,使软件的各部分可以运行于不同的计算机。这样可以缩短设备的启动时间,提高设备的运行效率,减少CPU占用率,可以使各软件功能之间、各设备之间完全独立。
4 系统测试
软件测试是保证软件质量,提高软件可靠性的关键。下面通过搭建全国短波监测系统中的单频测向监测系统为例来进行测试和演示。
无线电短波单频测向系统由监测站下的监测服务器和接收机,测向仪等监测设备联网组成,能对短波信号进行监测和测向,也可以通过几个监测站进行联合测向,提供对单一无线电信号的时域示向度测量和统计分析。由于监测网络系统软件的各个部分都封装成标准化模块形式,这样就可以对其每一部分进行独立的测试,包括软件的功能和性能指标,从而实现对系统各个部分的可测可控。
于是在监测系统的软件开发过程中,就可以对完成的各个模块进行独立的单元测试。当开发人员编写完代码封装成独立功能模块后,可以专门针对此模块编写简单的测试程序,主要测试模块各个接口实现的具体功能。最后通过调用各个功能模块组成整个监测系统,进行整体的功能和性能测试。基于分布式组件设计的软件每一部分模块都是一个独立运行的程序,对于开发完并通过测试的模块,进行系统集成测试时,此模块只需安装,并不需要源代码,降低了软件重复开发的可能性,提高了代码安全性。
图2是无线电短波单频测向监测系统的监测界面显示。开启一个监测测试流程:首先用户登陆系统,选择监测台站中的测向设备和测向功能,启动测量,调用测向功能界面模块。如图2,在参数输入面板上设置测量参数,点击开始测量按钮向设备发送“开始测量”命令,对接收到的监测数据通过分析处理显示在界面上。也可以通过调用数据库、文件、打印模块来保存数据、打印文件等。另外,既可以启动单个测量任务,也可以启动多个不同的测量任务,各个测量任务之间互不影响。
通过测试表明,整个监测网络系统简洁实用,易操作;设置监测任务类型、设置测量参数、运行及关闭程序的操作都非常简单快捷;能够实现实时监测和非实时监测功能;整个系统响应快速且运行稳定。
5 结语
本文基于分布式组件技术和模块化思想设计并实现了一个安全可靠、独立性强、易于扩展的监测网络系统。在整个监测系统软件的开发和测试过程中,基于标准模块化和分布式组件技术的设计思想有助于软件从结构上实现弱耦合分解,可以极大地提高代码的独立性、重用性和可维护性,方便地实现系统的功能扩展,而且可以在不同的语言平台上实现功能模块的开发,从而使得并行开发过程变得更加容易、高效。整个监测网络系统设计实用,易操作;监测功能完善,具有良好的可扩展性;系统运行快速稳定,并实现应用于全国短波监测网络系统中。