基金项目:云南省地震青年基金课题(200601)资助.
(1.云南省红河哈尼族彝族自治州地震局,云南 蒙自 661100; 2.云南省地震局, 昆明 650224; 3.云南省江川县防震减灾局,云南 江川 652600; 4.昆明医学院 海源学院, 昆明 650106)
(1.Earthquake Administration of Honghe Hani and Yi Autonomous Prefecture,Mengzi 661100,Yunnan,China)(2.Earthquake Administration of Yunnan Province,Kunming 650224,Yunnan,China)(3.Earthquake Administration of Jiangchuan County,Jiangchuan 652600,Yunnan,Chin
备注
基金项目:云南省地震青年基金课题(200601)资助.
结合云南地震台站管理的实际,采用Java语言开发了基于B/S结构的地震台站信息管理系统,该系统已在云南省红河州地震局信息节点服务器上运行,提高了台站管理的效率。
Combining with the fact of seismic stations of Yunnan,we use Java language to develop the information management system of seismic station based on B/S structure.Then we operate the system on the servers at the information station in Earthquake Administration of Honghe Prefecture,Yunnan Province.The result shows that the system has improved the efficiency of management work of station.
引言
地震台站作为取得第一手地震监测资料的前沿阵地,对地震预报研究起着重要的作用。通过“十五”期间的建设,全国地震行业网络基本形成,已有300多个地震台站建设了信息节点,根据这一情况,我们在开发软件时,充分比较C/S结构和B/S结构的优缺点,结合省(区、市)地震局对台站进行集中管理的方式,决定采用B/S结构模式来设计台站综合信息管理系统。B/S结构的优点在于客户端不需要安装任何软件,只需在省局网络中心服务器端部署后,客户端具备上网条件就可以实现对数据库信息的添加、查询、修改、删除等功能,从而方便各级地震机构人员对我省地震台站基本情况的查询,加快职能部门对地震台站有关行政审批事项的速度,基本实现台站管理的电子化和网络化,在提高工作效率的同时节约了管理成本。
云南是地震多发区,通过多年的建设,已形成了国家级、省级及市(县)级三级地震监测台站体系。观测项目涵盖测震、流体、电磁、形变和信息五大学科,基本满足了云南及周边地区地震监测的需要,对地震科学基础研究起到了积极的作用。然而,台站管理作为地震监测预报管理的一项重要内容,一直没有一套有效的、高效便捷的管理系统。因此,设计一套集台站信息、观测信息、仪器信息、人员信息等为主要内容的管理系统是十分必要的。
1 云南地震台站基本情况和管理中存在的问题
1.1 地震台站基本情况云南地震监测网由测震和前兆两大台网组成,截至2007年,共有1个国家基准台、15个国家基本台,10个省级台和163个市(县)级台,其中,国家级台站和部分省级台站由云南省地震局管理,部分省级台站和市(县)级台站分别由16个州(市)地震局(防震减灾局)和116个县级地震机构管理。云南的地震监测台站数量居全国之首。
1.2 地震台站管理中存在的问题经过多年的建设,云南地震监测台网有了长足进步,但由于台站众多,仪器类型复杂,观测项目数量庞大,而仪器的新增、停测审批,仪器的运行、维修、标定、检查及数据分析使用等职责分别属于各级地震机构的不同部门,对地震台站的科学有效管理带来了影响。笔者认为,云南的地震台站在维护管理方面主要存在以下问题:① 台站管理效率较低,仅依靠人工采用纸质材料,通过电话、传真、邮寄等方式对台站和仪器进行管理; ② 台站资源不能共享,各级地震部门不能及时掌握全省地震台站和仪器的基本情况; ③ 台站新建、迁建、撤消和仪器新增、停测事务的审批过程较慢; ④ 仪器维修程序较复杂。
2 系统设计
根据以上列出的台站管理工作中存在的问题,设计一套基于B/S结构的台站综合信息管理系统十分必要,对推进台站管理的信息化和综合化将起到积极的作用。
2.1 开发平台的选择开发B/S结构的应用程序可以有多种平台选择,一种是基于Com组件和Active组件技术实现业务逻辑,以Asp或Aspx实现视图的Windows平台。这种平台的优点是简单易学、安装使用方便、开发工具强大而多样,但由于Windows本身固有的问题都会体现到平台上,因此其安全性得不到保障(飞思科技产品研发中心,2004)。另一种是Java技术和PHP技术。Java和PHP都可以实现横跨Windows和Linux两大主流平台。PHP安装复杂、缺少企业级和正规的商业支持,而Java语言具有一次编写、到处运行的特点,并有良好的跨平台特性,而且用Java语言开发的程序具有强大的可伸缩性,还有以JBuilder和Eclipse为代表的强大的开发工具支持,可以极大地提高开发效率,所以我们选择Java语言作为台站综合信息管理系统的开发环境。
2.2 数据库平台和数据表结构设计为了实现系统的跨平台特性,其数据库选用Oracle 10g和MS SQL Server 2000:系统部署在Windows平台时数据库可选用MS SQL Server 2000或Oracle 10g,部署在Linux平台时则选用Oracle 10g。通过在XML配置文件中设置相应的参数,实现两种数据库的访问和控制。
数据表结构参照《地震前兆数据库结构规范第1部分:固定台站观测》 周克昌.2006.地震前兆数据库结构规范 第1部分:固定台站观测(试用稿).中规定的相关数据表结构,并根据实际需要进行适当修改。我们共设计了台站信息、仪器信息、观测信息、仪器运行信息、仪器维修信息、仪器停测审批信息等与台站管理相关的多个数据表,通过主键或外键实现各数据表的关联。数据表结构及表间关系如图1所示。
在各数据表中,对于涉及到存放图形和Word文档的字段,考虑到直接在数据库中存取大型数据时速度较慢,我们将字段类型设置为varchar(254)而不是blob,这样数据库中相应字段仅存放图形文件或Word文档在服务器上的文件路径,在查询时只需从服务器上直接读取图像或文件,极大地提高了显示速度。同时,根据系统设计需要,设计了“用户信息表”和“系统运行日志信息表”,其关联关系见图2。
“用户信息表”用于记录用户信息及登录系统时的用户验证,通过用户类型字段将用户划分为超级用户(具备所有权限)、系统用户(具备查询、审批的权限)及一般用户(只具有查询权限)。在“用户信息表”中,为了安全起见,用户密码字段并不直接存储明码,而是存储经过MD5加密后的字符串。这样,即使有非法用户直接打开了数据库中的“用户信息表”,也不能直接获得用户的登录密码。
“系统运行日志信息表”用于记录系统运行的过程,以便在系统维护中有据可查。一般情况下,用户登录系统后的大部分操作都会被写入“系统运行日志信息表”中。比如用户删除一条记录,在系统日志表中就会增加一条记录,把用户的IP地址、操作内容等记录下来。系统日志只有超级管理员才能进行查看和删除。
2.3 系统功能设计地震台站综合信息管理系统包括台站管理、仪器管理、审批管理、用户管理和日志管理5大功能模块,各个功能模块中又实现了具体的业务逻辑,系统结构见图3。
台站信息管理模块主要用来实现台站基础信息和观测信息的添加、修改、删除、查询等功能。仪器信息管理模块主要用来实现仪器自身信息和仪器运行信息、仪器维修信息的添加、修改、删除、查询等功能。审批管理模块主要用来实现仪器停测的申请、审批、查询等功能。用户管理模块主要用来实现用户的添加、修改、查询功能。日志管理模块实现日志的查询和删除功能,添加功能由系统自动完成。2.4 基于B/S结构的软件设计地震台站综合信息管理系统采用B/S软件设计模式,具有良好的用户界面,客户端无需安装任何组件,只需具备上网的条件,能浏览网页即可。整个系统部署在服务器端,软件的升级和更新均在服务器端完成,极大地方便了系统的维护工作,提高了维护效率,节约软件的运行成本。
系统采用三层架构进行设计,用户界面层通过统一的接口向业务逻辑层发送请求,业务逻辑层按自己的逻辑规则将请求转换为数据库查询、数据处理等操作,然后将数据库返回的数据或经过处理后的数据返回到用户界面层。用户界面层用JSP文件实现,业务逻辑层用Java组件类实现,数据存储层由Oracle 10g或MS SQL Server 2000实现。系统的主要功能由业务逻辑层实现,因此,程序设计的重点是实现业务逻辑的各个Java类。为了便于维护和管理,我们设计了9个对应于相应数据库表的Java类,这些Java类实现了数据的添加、删除、查询、修改等具体的业务逻辑。比如Stations类对应数据库中的Stations数据表(台站信息数据表),用它来实现台站信息的添加、删除、修改、查询操作。在三层结构的软件设计中,为实现业务逻辑层与数据库的连接,我们特别设计了一个连接数据库的Java类,实现了通过数据库连接池或JDBC直接连接数据库的业务逻辑,并实现了利用XML文件进行数据库配置的相关业务逻辑。在用户验证、用户管理模块中,用户密码在数据库中不是存放明码,而是存放经过MD5算法加密后的字符串。实现MD5算法比较复杂,因此单独设计一个用于实现MD5算法的类。在用户登录时,需要读取数据库中相应的用户名和密码与用户输入的信息进行比对,因此专门设计一个用于解密MD5加密字符串进行验证的类。为了便于管理和维护,将功能相近的Java类分为三个不同的包:com.seis.dbconnect包中的组件类用于数据库操作,com.seis.station包中的组件类用于实现台站运维管理各个功能模块的业务逻辑,com.seis.util包中的组件类用于解决JSP中文乱码、MD5算法、用户验证等。各个Java类的功能如表1所示。
表1中各个Java组件类实现了台站综合信息管理系统中所有功能模块的业务逻辑。有些类是在开发相似架构软件系统时可重复使用的类,如DBPoolManager、MD5、XMLProcess等。表示层(用户界面层)是通过JSP文件展现的。在设计JSP文件时,主页利用框架结构进行设计,保持页面左侧菜单、头部、尾部相同,变化的只是右侧显示信息的部分,实现了页面模块化的设计思想。在设计过程中,为了实现菜单的显示和消隐,还充分利用Javascript脚本进行编程。为了提高设计效率,使用Dreamweaver软件进行网页的页面设计,然后在网页中添加必要的JSP代码,调用具体的Java组件类,实现交互式的软件系统。
Java类名 实现功能ChangeCharsetFilter 处理JSP中文乱码的问题DBPoolManager 处理数据库连接。为了适应不同的数据库连接,数据库配置信息储存在XML文件中,通过配置XML文件,可以方便地设置数据库的IP地址、数据库实例名、数据库用户及密码等信息,实现连接到Oracle 10g和MS SQL Server 2000两种数据库Function 系统中用到的一些包括参数转换、分页等的功能类CheckManager 审批台站仪器停测事项InstrMaintenance 处理台站仪器运行维护事务Instruments 实现台站仪器信息管理的类StationInfo 实现台站信息管理的类StationIntruments 实现台站仪器运行信息管理的类StationObservation 实现台站观测信息管理的类XMLProcess 实现存取XML文件的类MD5 实现MD5算法的类User 实现用户管理的类Login 实现用户登录验证和安全退出的类Log 实现系统运行日志管理的类3 系统在云南的实际应用
3.1 系统部署台站综合信息管理系统已在云南的地震台站管理工作中投入使用。Web服务器采用Suse Linux和Tomcat 5.5构建,数据库建立在Oracle 10g平台上,系统暂时部署在云南省红河州地震局信息节点服务器上,通过全国地震行业内网即可访问。目前,数据库中录入了云南省的所有地震台站信息、所有观测项目信息及大部分有存档资料的模拟和数字化仪器信息。
3.2 系统访问权限规定在B/S结构下,不同的用户被赋予不同的权限,不同类别的人员可以在各信息节点访问云南地震台站的信息。数据库的访问权限也得到有效保护,台站综合信息数据库的安全性因此得到有效保障。根据云南省各级地震部门的管理现状,系统对不同的部门用户设立了不同的权限,分三个部门类别进行管理(表2)。
部门类别 部门名称 业务职能 用户级别 用户权限决策机构 省局监测预报处 审批控制 超级用户 最高权限职能管理机构 省局有关部门、16个州市地震机构 管理控制 系统用户 中级权限基层机构 省局直属台站、
县级地震机构 运行控制 普通用户 低级权限
超级用户可添加、修改、删除地震台站和仪器的资料,对仪器停测进行审批,查看各类信息,还可以添加、修改、删除其他用户。系统用户可添加、修改地震台站和仪器的资料,查看除系统日志以外的信息。普通用户只能查看除系统日志外的信息,填写仪器停测表和仪器维修表。
3.3 系统查询功能查询功能包括模糊查询和精确查询两种方式,每种查询方式都提供了几种不同的查询条件。例如,在台站信息查询中,可按台站代码、台站名称、学科信息等不同的条件进行查询。若按照模糊查询,只需输入要查询的某个关键字即可。若按台站名称查询,输入“昆明”,即可将所有台站名称中包含“昆明”字符的地震台站列出。精确查询时,输入的信息必须与数据库中相应字段值精确匹配。若按台站代码查询,输入“53070”,则查询结果只列出相应台站的信息,大大提高了查询效率。若按观测学科查询,查询页面会列出测震、流体、形变、电磁、信息五大学科,用户只需要选中相应的学科即可进行查询。查询时可以单选也可以复选,系统将以分页的形式列出拥有该观测学科的所有地震台站。
3.4 仪器停测网上审批在台站仪器停测审批过程中,台站用户登录台站综合信息管理系统,填写仪器停测审批表,主管部门用户进入系统进行审批,然后将审批意见写入数据库,报主要领导批示后,打印出审批表备案,并将审批结果发送给台站,从而完成整个仪器停测审批过程。
3.5 网上报修地震仪器台站用户登录系统,填写仪器故障情况并提交,省局相关人员登录系统后,查询是否有等待维修的仪器,如果有待修仪器,维修人员可以从系统中迅速查询到待修仪器的仪器号、生产厂家、使用年限等,并根据台站用户提供的故障描述情况,迅速准备备件到台站进行维修,从而极大地缩短了仪器修复的反应时间。
4 结语
地震台站综合信息管理系统真正实现了台站信息管理的远程化、电子化和网络化,克服了单机管理软件的局限,实现了台站管理行政审批事务的即时审批,大大地提高了工作效率,节约了工作成本。该系统可以方便地推广到其它省(区、市)地震局。随着“十五”数字地震观测网络项目的建成,GIS和WEBGIS平台将在各省地震部门逐步投入使用,本系统在未来可以结合WEBGIS技术,实现基于地理信息系统的台站信息展示和查询,使系统更加可视化和智能化。
- 飞思科技产品研发中心.2004.JSP应用开发详解(第2版)[M].北京:电子工业出版社.