开篇:润墨网以专业的文秘视角,为您筛选了一篇缺陷管理系统的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:根据油田电力系统设备缺陷管理工作的实际需要,结合当前缺陷管理系统开发的经验和不足,利用先进的B/S+ActiveX控件技术,为用户提供内容丰富且响应迅速的缺陷管理信息系统。重点论述了缺陷管理系统的设计与实现过程。系统开发使用.Net和VisualC++开发平台,采用Web Service方式,实现了系统的高质、高效及可维护性。
关键词: 缺陷管理;流程控制;数据库访问
1 引言
基于此应用场景和现有缺陷管理系统的弊端,本课题采用.NET开发平台,采用当前流行的B/S模式,并结合C/S模式下交互性强的特点,摒弃其各自的缺点,为油田电网的缺陷管理工作提供了易于部署的应用程序,节省开发的成本和开发周期。
2 缺陷管理系统的系统设计
油田电网缺陷管理因涉及到多个专业和部门的人员,整个缺陷的处理过程需在集团局域网上跨部门流转,因此系统采用Web方式将缺陷信息在局域网上,相关人员可以通过Web浏览器处理相关缺陷信息。
系统的总体设计如图1所示,B/S+ActiveX Client通过SOAP消息与Web Service进行交互。当从Web返回一个复杂数据类型,如一个DataSet时,会经历一个称为XML串行化的过程,在此过程中一个对象被转换为代表它的XML字符串。Web Service提供必要的服务,对外提供一个统一的接口,通过对接口的调用,便可实现定制的服务。服务调用是通过SOAP消息进行的,复杂的数据类型通过XML串行化的过程返回给客户。
数据库服务器存储企业的数据信息,并提供并发性控制。Web Service通过来访问和操作数据库,并返回DataSet类。
系统基于Internet架构并采用Web Service方式访问数据库,通过XML的数据格式进行访问,可穿越一般防火墙的设置。使得系统具备良好的适应性。
数据库的结构是影响数据性能的关键因素之一,在考虑数据库设计三范式的同时,也要考虑系统性能是否允许。若完全符合三范式就会造成数据库多表关联查询,这将造成数据库IO吞吐量大量增加,造成数据库查询性能下降。结合缺陷管理系统的特点,系统将数据分为两类,一类为统计数据,一类为管理数据。
为了保障系统快速的检索查询性能,在系统设计阶段就将用户经常使用的查询条件按照用户的查询习惯将查询条件进行组合,并将这部分查询涉及的内容集中存放在缺陷信息表中。这样虽然违反了数据三范式的设计原则,但是可以将关联查询调整为单表查询,极大地提高了系统检索性能。为了保证数据的唯一性,我们将重复数据和原数据之间通过数据的触发器技术保证数据的唯一性。
同时为了提高系统的检索速度,在用户经常使用的查询字段上创建索引,在最为常用的字段上创建聚集索引(Cluster Index)。
数据库访问中间件是系统为减轻数据库连接压力,提高数据库安全性而设置的数据库访问转换服务。数据库访问中间件将缺陷应用程序各个客户端的ActiveX控件对数据的请求处理进行转发,并将结果返回给请求客户端。系统访问数据库过程如图2所示。
中间件一方面需要与客户端的各个用户交互,另外一方面还需要与数据库保持联系。系统与客户端的交互采用Tcp/Ip网络协议交互。
中间层在收到客户端的数据请求时,系统将客户端提交的SQL语句和参数信息重新组织,提交给数据库执行,并将数据库返回的记录采用SOAP协议序列化,将序列化的信息以流的方式返回客户端。
(1)事务控制:在客户端提交的任何Delete和Update语句在中间件的执行过程中,系统自动判断客户端传来的SQL语句组的大小,若SQL语句多于一条,则系统自动启动事务控制,其中任何一条SQL语句执行失败,系统将整体回滚,并返回客户端执行失败的标志。若客户端需要获得执行语句的错误信息则通过接口获取SQL语句的报错信息。
(2)连接缓冲池:缺陷管理涉及人员和部门多,同时在线用户数量相对较多,发生并发访问的几率较大,因此系统中间件服务器采用数据库联接缓冲池解决客户端并发访问的问题。
在中间件可以配置其与数据库的最大连接数,在中间件连接数未达到最大连接数时,系统在没有空闲连接的情况下,可新建连接,使用完毕后,该连接并不释放,而是将其放在数据库连接池中,供以后连接使用。
数据库中间件作为软件大部分功能与数据库交互的中间桥梁,系统的稳定性直接影响到系统的正常运行,在中间件运行过程中系统需要将中间件发生的异常等信息记录下来。
3 结论
深入研究了B/S+ActiveX概念的相关特性和相关技术,并对B/S+ActiveX的重要相关技术Web Service进行深入的研究。通过对比证明了B/S+ActiveX是解决本课题的最佳选择。采用模块化的设计思想,设计开发了缺陷管理系统,并提供了丰富的统计分析功能。传统缺陷管理系统面临着更新换代的要求,如何把先进的技术尽快应用到这些系统中也是十分重要而亟待解决的问题。