基于Web的CSNS控制线缆信息管理系统研制

2014-03-20 08:21吕慧慧王春红李洛峰刘正同雷碧峰
原子能科学技术 2014年3期
关键词:线缆完整性数据库

吕慧慧,王春红,李洛峰,刘正同,雷碧峰

(中国科学院 高能物理研究所,北京 100049)

一个大型加速器装置需要成千上万个设备协同工作。在加速器控制系统中,控制设备(如VME、PLC、嵌入式串口设备、网络交换机等)种类各异,控制信号数目繁多,现场的线缆连接更是错综复杂,这给设备的安装和维护带来了很大困难。在国际加速器控制领域,虽然有关系数据库模型IRMIS(Integrated Relational Model of Installed Systems),但 功 能 并 不 完备,只有少数几个图形用户界面,而且数据库表的关系复杂,表的数据繁多,包含很多CSNS不需要的信息,因此不宜直接使用。本文借鉴IRMIS的数据库设计思想,并结合CSNS的控制线缆信息需求,设计符合CSNS实际情况的线缆数据库模型,在此基础上建立CSNS控制线缆信息管理系统,实现控制信号和控制线缆的关联查询功能,以方便将来在线查找设备、定位线缆等管理和维护工作。

1 IRMIS介绍

IRMIS是由APS、SLAC 等多个加速器实验室联合开发的关系数据库模型以及相关的应用程序,用于管理基于EPICS控制系统的大型加速器装置。在它的数据库中,囊括了加速器所有的实时数据、控制系统硬件以及它们之间的关系信息。它不仅包含设备之间的物理关系、逻辑关系,而且包含实时数据(PV)与设备之间的映射关系。所以通过观察异常的PV值,即可确定可能出现故障的设备。在实际应用中,用户利用IRMIS系统开发自己的应用程序。为了方便用户使用,IRMIS 系统提供了Service API来访问数据库。对于少数数据库表,它提供了简单的脚本和PHP 页面与数据库交互,简化了操作,但并未开发面向全局数据库的用户交互页面[1]。

2 控制线缆数据库设计

MySQL 关系数据库是快速、功能强大且价格低廉的应用于网络的数据库。它是开放源代码的数据库产品,性能高、可靠性好,且可跨平台开发和运行,是当今最流行的开源数据库。因此,本系统使用MySQL进行数据库的开发。

2.1 设计步骤

本系统数据库设计分为以下4个阶段:需求分析、概念结构设计、逻辑结构设计和物理实现。

1)需求分析

需求分析是数据库设计的第一阶段,也是非常重要的一个阶段。经过对控制线缆的调研以及与各系统工作人员的交流讨论,了解用户对系统的功能要求,将其合理化、系统化、规格化,并反映在实际的系统设计中。

2)概念结构设计

概念结构设计是在需求分析的基础上,设计能满足用户需求的各种实体,以及反映它们之间的关系,为后续逻辑结构设计打下基础。一个良好的数据库模型既能包含用户所需的全部信息,又占用最少的空间。

根据需求分析,在CSNS的控制线缆数据库中,有控制设备和被控设备、线缆、信号、系统等信息,且设备与线缆、信号与线缆有着多对一(一对多)或一对一的关系。在数据库表中,要将这种关系明确地表示出来。在本系统中,将一些共有的信息(如线缆类型)提取出来形成单独的数据库表,减少了信息的冗余度,节省了存储空间;通过设置外键,将设备与连接到设备上的线缆联系起来,从而实现关联查询。通过不断地分离与整合,表与表之间相互关联,最终形成一个关系网络。数据库模型如图1所示。

3)逻辑结构设计与物理实现

在上述控制线缆数据库关系模型基础上,使用ORM 框架——Hibernate,将上述关系模型映射到MySQL数据库中。

2.2 设计原则

1)表的规范化

在CSNS控制线缆数据库设计过程中,规范化是一个很重要的设计原则。对于数据规模较小的数据库,可轻松地处理表的结构。然而,随着项目规模的不断增长,关系模型表结构更为复杂。如果表结构定义不合理,则会发生插入、删除、更新操作异常,造成数据的不完整。

数据库设计所需满足的规范就是范式(NF),满足这些规范的数据库是简洁的、结构明晰的,按从低到高有6 种不同级别的范式。第1范式(1NF):数据库表中的字段都是单一属性的,不可再分。第2范式(2NF):满足1NF的所有要求,且数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖。第3范式(3NF):满足2NF 的所有要求,且数据库表中不存在非关键字段对任一候选关键字段的传递函数依赖[2]。第4~6范式要求较为苛刻,在实际应用中较少见。CSNS控制线缆数据库按3NF的标准进行设计。但根据工程的实际情况,为了效率的缘故,对某些表不进行规范化有时也是必要的。在本系统数据库中,为了提高查询速度,对频繁查询的表设计了冗余字段;对频繁查询的关联表,通过设计冗余字段,将表与表之间一对多的关系改为一对一的关系。

图1 控制线缆数据库关系模型Fig.1 Relation model of control cable database

2)键的设计

主键和外键用来将多个表组织成1个有效的关系型数据库。键的设置对数据库的性能有着决定性的影响,一般参考4个原则:(1)为关键字段创建外键;(2)所有的键都必须唯一;(3)避免使用复合键;(4)外键总是关联唯一的键字段。

采用系统生成的键作为主键,从而保证了数据库索引的完整性。这样,数据库和非人工机制就有效地控制了对存储数据中每一行的访问。在本系统数据库的设计中,采用自增方式产生主键,未使用复合键。

3)完整性设计

数据库完整性是指数据库中数据的正确性和相容性,数据库完整性由各种完整性约束来保证,数据库完整性约束可通过DBMS(数据库管理系统)或应用程序来实现。CSNS 控制线缆数据库从以下几方面进行数据库完整性约束:(1)采用DBMS实现的数据库完整性不但包括通过标准化实现的完整性,而且还包括数据的功能性。在本系统数据库的设计中,通过外键的级联约束来实现。(2)在有害数据进入数据库之前将其剔除,激活数据库系统的指示完整性特性。(3)使用查找控制数据完整性:限制用户的选择,只要有可能就提供给用户一个清晰的价值列表供其选择。这样既可减少键入代码的错误和误解,同时提供数据的一致性。

为了同时兼顾数据库的完整性和系统的性能,在批量导入数据时,临时使数据库完整性约束失效,此后再使其生效,既不影响数据装载的效率又能保证数据库的完整性。

3 基于Web的控制线缆信息管理系统设计

一个良好的信息管理系统的实现是体现数据库设计的价值所在。它是用户和数据库之间沟通的桥梁,一方面要将数据库的数据直观、准确地呈现给用户,另一方面将用户输入的数据转化为数据库能接受的方式存入数据库。

本系统采用B/S 模式进行开发。B/S 体系结构具有成本低、跨平台、易维护、开放性好等优点。B/S 结构由浏览器、Web 服务器、数据库服务器3 个层次组成。在这种体系结构下,客户端使用一个通用的浏览器,代替各种应用软件,用户的操作均通过浏览器进行。结构的核心部分是Web服务器,它负责接收远程的HTTP请求,然后利用JDBC 连接到数据库服务器,并将结果翻译成HTML、JSON 等语言,传送回浏览器[3]。

系统架构如图2所示,其中包括服务器端设计和客户端设计。客户端主要是Web页面的设计,系统采用AJAX 技术,实现了网页异步更新,从而获得了更快捷的响应速度。服务器端处理业务逻辑,为前端页面提供强大的逻辑支持,主要是Servlet的编写,一个网页可能需几个甚至十几个Servlet的支持。Web应用服务器使用免费开源的Tomcat,因为它运行时占用的系统资源小、扩展性好、支持负载平衡。

图2 系统架构Fig.2 System structure

线缆信息通过Web 页面传递到Servlet中,由Servlet进行处理,然后保存到已建立的MySQL 数据库中。网页设计综合采用了HTML、CSS、JavaScript、ext等技术,力求呈现给用户一个形象、直观、丰富的界面;Servlet使用纯Java编写,从而使系统可跨平台运行;数据库操作使用Hibernate,使开发更加对象化。整个系统的开发在MyEclipse平台下进行,包括Web页面设计,Java程序、Servlet的编写。

4 系统功能

4.1 权限控制

权限控制是保证数据一致性的重要手段。在本系统中,登陆时要进行身份验证。管理员拥有所有权限,包括对数据库的增、删、改、查;普通用户仅有查询的功能。

4.2 录入功能

系统同时提供批量保存和手动输入功能。对于批量数据,只要上传指定格式的Excel表格,即可将信息一次性录入到数据库中。在此,关键是对数据分类以及重复数据的处理,因为系统控制人员会将所有信息汇总到一个Excel文件中,此文件与数据库表并不是一对一的关系。要将此表格中的数据映射到不同的数据库表中,并且要在数据库中反映它们之间的关系信息。对于其中的重复数据,程序要进行判断,保证数据的一致性、唯一性。

4.3 查询以及修改、删除功能

针对不同系统工作人员的信息需求,对设备及线缆信息按系统进行分类,如图3所示。对于每个系统,还可按设备在控制系统中的作用进一步分类。整体采用级联显示的功能,按控制设备(被控设备)-线缆-被控设备(控制设备)的顺序依次呈现给用户,其中设备信息可细化到设备上的模块以及模块上的端子排。因此,工作人员可查看连接到某个设备上的所有线缆以及这些线缆的具体连接端子位置。如果出现故障,可迅速定位错误根源,及时维修或更换设备。

图3 线缆信息管理界面Fig.3 Interface of cable information management

在此页面上,系统管理员可对已有的信息进行删除、修改操作。删除功能通过每个表格上方的delete按钮实现;双击任意一行数据,可进行修改操作。

5 系统测试

5.1 测试条件

本测试在HP Z800 的工作站上进行,Win7 64 位操作系统,内存12G,数据库使用MySQL Server 5.1,数据库和Web 服务部署在同一机器上。

5.2 测试结果

Web服务启动时的资源占用情况示于图4。从图4 可看出,在CSNS 控制线缆信息管理系统启动时,占用的系统资源会出现1个高峰,系统稳定运行后,占用的资源稳定在较低的水平。

图4 Web服务启动时的资源占用情况Fig.4 Resource occupation in start of service

使用Apache的压测工具ab模拟1 000个用户同时发送10个请求,得到的测试结果如下:每秒事物数,1 456.87;平均事物响应时间,521.875ms;平均每秒网络上的流量,365.64bytes。

由此可看出,本系统响应迅速、占用的网络流量低,这也是采用Ajax技术的优势所在。

6 结语

本文介绍了基于Web的CSNS控制线缆信息管理系统,该系统为控制设备维护人员提供了在线查询控制设备及线缆信息的功能。该系统关键在于将设备之间的关系通过线缆联系起来,从而实现关联查询,为相关系统工作人员将来管理和维护CSNS的控制设备和线缆提供了极大的便利。

[1] DOHAN D.Component/connection/signal modeling of accelerator systems[C]∥Proceedings of Particle Accelerator Conference.Knoxville,Tennessee:[s.n.],2005:707-709.

[2] 惠燕,潘煜,徐光辉.数据库设计范式[J].现代电子技术,2003,26(24):107-108.HUI Yan,PAN Yu,XU Guanghui.Design formula of data base[J].Modern Electronics Technique,2003,26(24):107-108(in Chinese).

[3] 郝玉龙,姜韦华.J2EE 编程技术[M].北京:清华大学出版社,2005:98-106.

猜你喜欢
线缆完整性数据库
石油化工企业设备完整性管理
上海福尔欣线缆有限公司
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
数据库
数据库
弹上线缆布设技术研究
精子DNA完整性损伤的发生机制及诊断治疗
数据库
数据库
华通线缆:“通”向未来的品牌梦