基于构件的煤矿设备安全监测系统研究
2013-09-13赵淑芳陈立潮
赵淑芳,陈立潮
(太原科技大学 计算机科学与技术学院,太原030024)
软件复用是解决软件危机、提高软件生产效率和质量的现实有效途径。为了有效管理构件,软件构件技术的主要研究内容是建立构件库系统。在构件库系统中,构件的分类与检索是两个核心问题[1]。同时,构件的合理分类是实现构件高效快速检索的基础和关键。鉴于煤矿设备种类繁多,信息繁杂,笔者从用户的角度出发,对构件进行更优、更人性化的分类,使分类结果更合理,更符合用户的要求,有效解决了目前煤矿矿用设备在安全监测方面存在的业务流程手工操作、信息隔离分散等信息化滞后问题,为煤矿企业建立一整套的安全管理体系提供支撑平台。
1 基于构件的系统设计
1.1 系统体系结构
本系统架构遵循软件分层的设计思想,分为构件表现层、构件业务层、构件持久层和构件数据访问层。构件表现层基于Struts MVC框架,采用Spring作为构件业务层,以iBATIS为构件持久层,通过使用这些成熟的构件框架,使得软件设计层次清晰,能够减少重复开发工作量,缩短开发周期,降低开发成本,增强软件构件的可维护性、可扩展性和可移植性。
根据构件的标准,采用了标准构件,在Java环境下使用窗口、菜单、模板等[2],Java的软件构件JavaBean(EJB)是能够在构造工具中进行可视化操作的可复用软件,它的构件模型包含构件和容器两个基本要素,其结构完全采用基于软件构件模型的分布对象计算体系,较规范地定义了Java的服务器端构件模型[3],采用EJB可以使开发应用系统变得比较容易,应用系统可以在一个支持EJB的环境中进行开发,开发完之后部署在其他的环境中,随着需求的改变,应用系统可以不加修改地迁移到其他功能更强、更复杂的服务器上。基于构件的系统体系结构如图1所示。
1.2 系统主要功能
刻面用于描述构件所实现的具体功能。构件库中任何构件都必须提供一种或多种具体功能,不能完成某种功能的构件是没有任何软件复用价值的,同时构件使用者在进行构件检索时,首要关心的也是构件具体可以完成什么功能,以及构件的功能是否符合用户的需求[1]。
基于构件的软件开发以系统体系结构为中心,构件设计要遵循模块独立化原理,要做到高内聚、低耦合,使煤矿设备监测管理系统有利于做出正确、稳定、灵活的系统设计,从而为构件设计的决策提供具体指导和框架支持。针对管理过程中的不同单位、不同职能、不同用户设计各自的功能来实现“一方主导、三方联动”的管理模式,实现煤矿矿用设备安全管理的规范化和对安全数据智能分析与预警,系统主要功能包括设备信息、设备监测、证书与文书管理、日志管理和单位信息管理5大功能。
图1 系统总体架构图
1)设备信息构件。各部门以基本库信息为基底对所有信息进行修改和更新,以备查询。煤矿用户可以对自己的设备信息进行修改,煤矿用户和煤监局同时都能对设备信息进行浏览和查询。设备信息可根据用户权限级别来查看,通过查看设备状态,来对设备状况进行预测,把事后补救变为事前防范预警。
2)设备监测构件。主要实现分类浏览、申请监测、常规监测、简单查询监测结果、高级查询监测结果等。
3)证书与文书管理构件。主要负责煤监局、中介机构和煤矿用户查看煤矿矿用设备的安标信息,资料的管理有安全的权限设置,各类人员只能在自己的权限内查看文件资料,不能越权查看;用于收发文件和上传设备监测报告。
4)日志管理构件。统计工作日志管理,对用户进出系统、使用功能、对数据的操作等运行情况进行记录,便于系统故障跟踪等系统维护工作,避免相互之间推卸责任。
5)单位信息管理构件。包括煤监局、中介机构及煤矿三类用户。主要实现前台个人用户信息浏览、修改单位信息、单位信息内容浏览以及检索;后台单位信息以及相关用户的添加、修改、内容浏览、内容检索、权限设置以及前台用户密码修改等功能。
2 构件分类表示
目前,构件的刻面描述是一种正逐步得到重视与应用的描述方法。构件分类方法大部分都是基于刻面的[1]。对于刻面描述的构件的检索采用的是SQL2000数据库检索技术,另外,由于设备信息监测系统是基于WEB的,笔者采用XML检索语言来完成构件检索的任务,构件库的检索需要兼顾对查询的构件的不完全描述,对查询的匹配应有一定的张弛能力,不仅要求能给用户返回匹配的结果,还要求能返回相应的匹配程度,为用户复用构件提供有意义的参考信息[5]。其次,各构件库的刻面分类方案可能完全不一样,为了查询到符合用户需求的构件,用户可能需要跨越多个构件库。针对煤矿设备种类繁多、数据量大的特点,根据刻面分类方法,定义了4个刻面[8]:
a.功能,构件功能描述,煤矿领域;
b.操作对象,构件输入的煤矿设备对象;
c.使用环境,系统软硬件环境;
d.表示方法,构件形态(如类、构架、框架)和表示(如图形、语言)。
针对煤矿每一类设备监测信息D,对应一个谓词PD,根据D检索将得到所有满足条件PD的构件集合FT,当查询条件中有多个设备信息刻面时,各个刻面检索到的构件集合的交集就构成了最终的结果集合,提高了检索的效率[7]。其构件的分类表示如图2所示。
图2 构件分类表示
从图2中可以看出,构件在入库时,按照某种刻面分类方案首先对构件的描述文本进行分类,其中刻面值可以是煤矿设备信息的关键词、句、WEB文本;然后利用构件的表示方法建立设备信息构件的空间模型[6];最后,对构件进行聚类分析,从而实现对构件的分类,提高对设备安全监测信息的查全率和查准率。
3 构件的实现
3.1 构件库的设计
3.1.1 设计模式
笔者采用MVC设计模式,MVC作为一种设计模式,它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成三个核心模块:模型、视图和控制器,它们分别承担不同的任务。其处理过程为:首先控制器接收用户的请求,当Web用户单击页面中的提交按钮来发送HTML表单时,控制器接收请求并调用相应的模型构件,并决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。图3显示了煤矿矿用设备安全监测管理系统的功能以及它们之间的相互关系。
图3 MVC设计模式
3.1.2 Struts框架
本系统采用Struts框架,Struts是基于MVC的Web应用框架,此框架可以提高软件开发的速度和效率,并且使软件更便于维护。
1)Struts实现MVC的机制。在Struts框架中,模型由实现业务逻辑的JavaBean组件构成,控制器由Action Servlet和Action来实现,视图由一组JSP文件构成。一个用户请求是通过Action Servlet来处理和转发的,这就需要一些描述用户请求路径和Action映射关系的配置信息了。在Struts中,这些配置映射信息都存储在特定的XML文件struts-config.xml中。在该配置文件中,每一个Action的映射信息都通过一个〈action〉元素来配置。图4显示了Struts实现的MVC框架。
图4 Struts实现的MVC框架
2)Struts的工作流程。对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化 ActionServlet,ActionServlet 从 struts-config.xml文件中读取设备配置信息,把它们存放到各种配置对象中,当ActionServlet接受到一个用户请求时,其执行过程如下:
a.检索和各类用户请求相匹配的ActionMapping实例,如果不存在,返回用户请求路径无效的消息;
b.如果ActionForm实例不存在,创建一个ActionForm对象,把煤矿用户提交的表单数据保存到ActionForm对象中;
c.根据煤矿设备配置信息决定是否需要表单验证。如需要,就调用ActionForm的validate()方法;
d.如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象,表示表单验证成功;
e.ActionServlet根据ActionMapping对象,再把煤矿用户请求转发到ActionForward对象指向的JSP组件;
f.ActionForward指向的JSP组件生成动态网页,返回给用户。
对于上述流程的d,如果ActionForm的validate()方法返回包含一个或多个ActionMessage的ActionErrors对象,表示表单验证失败,此时ActionServlet将直接把请求转发给包含各个用户提交表单的JSP组件。
3.2 构件平台的集成
目前,对于刻面描述的构件检索主要以较传统的数据库检索技术来实现。本系统采用的Web服务器系统平台操作系统为Windows XP,Web服务器软件采用了Tomcat6.0,数据库采用SQL2000,通过动态网页JSP技术(Struts技术)与iBATIC框架技术,实现数据库的互联。本研究的构件存储采用构件信息与构件实体分别存储的方式,即构件描述信息存入关系数据库,构件实体存入文件系统,二者通过地址信息映射联系[6]。开发环境刻面主要用于描述构件的开发工具和开发语言,即两个子刻面。开发工具子刻面说明了开发该构件所使用的工具,开发语言表明了构件的语言特性,主要体现在实体文件的扩展名上。
Myeclipse5.5.1平台本身是一个相同的插件群集,其扩展功能是由各个独立的插件提供,在此系统中把构件平台看作是一个封闭的系统,它的运行必须以一个整体来进行。Myeclipse5.5.1允许定义对实现一个完整的扩展点描述和实现增加一个新的扩展点[4],主要操作为:a.将图2上的构件特性用XML语言进行描述,文件中的各种要素均以Myeclipse5.5.1为扩展点加以描述;b.把该描述文件放在任意一个插件子目录下,其扩展名为exsd;c.新的扩展点就被扩展到原来的点中,新的构件类型通过该扩展点就能被Myeclipse5.5.1平台来管理了,从而实现了设备信息资源的共享。目前此系统通过在山西省某煤矿的试运行,初步使煤矿设备信息具有较强的融合能力,能对来自不同信息源的安全信息进行综合管理和分析,实现对生产现场安全信息的快速反馈、动态跟踪与闭环控制,提高对煤矿整体安全管理工作的监控能力。
4 结束语
基于Myeclipse5.5.1平台构件的煤矿设备安全监测系统可以获得任何设备的状态监测信息、诊断等动态管理信息,帮助煤矿管理人员做出正确的决策;针对煤矿设备信息构件的特点,采用了刻面分类表示的方法对构件进行描述,为煤矿每个入库设备信息构件指定术语,对它进行描述。在进行检索时,首先利用刻面分类对检索条件进行预处理,对检索条件进行加强与扩展,接下来引用处理后的条件进行检索,将得到更符合用户需求的返回结果,提高了对煤矿设备安全监测信息的查全率和差准率,从而提高对煤矿整体安全管理工作的监控能力。
[1] 杨芙清,梅宏,李克勤.软件复用与软件构件技术[J].电子学报,1999,27(2):68-74.
[2] 常继传,李克勤,郭立峰.青鸟系统中可复用软件构件的表示与查询[J].电子学报,2000,28(8):20-23.
[3] 徐玮,尹宝林,李昭原.企业信息系统业务构件设计研究[J].软件学报,2003,14(7):1213-1220.
[4] 刘勇,刘虹.基于库存管理领域的软件复用技术[J].计算机工程,2007,33(21):270-272.
[5] 潘颖,赵俊峰,谢冰.构件库技术的研究与发展[J].计算机科学,2003,30(5):90-93.
[6] 黄凯.基于Eclipse体系的构件开发管理平台的设计实现[J].科学技术与工程,2005,5(14):995-997.
[7] 姚清耘.基于向量空间模型的中文文本聚类方法的研究[D].上海:上海交通大学,2008.
[8] 任姚鹏,陈立潮,张英俊,等.基于潜在语义分析的构件聚类改进方法[J].计算机工程,2011,37(4):68-69.