基于SOA和ESB的安全生产管控系统软件架构设计与应用

2018-04-18 11:07:44乔红伟刘海艳
计算机应用与软件 2018年2期
关键词:总线电厂组件

曾 厉 常 青 乔红伟 刘海艳

(珠海优特电力科技股份有限公司 广东 珠海 519000)

0 引 言

随着计算机技术的飞速发展,计算机在各行各业的应用范围也就越来越广,用户对应用计算机技术解决实际问题的需求也就越来越强烈,随之而来的应用的层次越来越深,应用水平也越来越高。这就造成了计算机应用系统的开发规模在不断扩大,系统的复杂性也在不断攀升,系统的开发难度也就越来越大,系统开发的风险也越来越高。自1968年国际NATO软件工程会议提出“软件危机”概念以来[1],人们对软件技术探索的脚步就从未停息。软件是对客观世界问题空间与求解空间的具体描述,是对客观事物的一种反映[2]。而人们认识客观世界的角度总在不断变化和发展,认识的程度也在不断深入,这种变化推动着软件技术发展不断进步,而软件架构是软件技术发展过程中非常关键的技术之一。

软件架构是对业务需求系统分析之后而进行的一系列相关概念的抽象,是对构成系统的组件对象的整体描述,包含它们之间的连接关系、通信方式和协作模式[3]。它主要用于指导大型复杂软件系统的设计和研发,它是软件系统设计研发的重要决策之一,是软件系统设计研发的总体性的规划蓝图,是软件系统质量保证非常重要的技术手段。软件架构设计的目的就是为了降低软件开发的技术风险和研发成本,提高软件系统开发的效率和复用程度。

由于电厂安全生产管理中“两票三制”(两票:工作票和操作票;三制:交接班制度、设备巡检制度和设备定期切换与轮换制度)业务的作业任务繁多,而且作业过程与流程复杂多变,并与其他应用业务系统之间存在着业务和数据的相互关联与交互。企业现有许多单一的业务管理系统(如:财务系统、资产系统、PMS、HR、CRM、OA、DCS和SIS等)的数据和信息不能共享,部门之间的重复着衔接部分的冗余工作,系统彼此之间成为“信息孤岛”[4],这样就造成了企业工作效率低下,以及企业资源浪费。本文提出一种基于SOA和ESB的分布多层软件架构,构建电厂安全生产管控系统(以下简称“安全管控系统”)的解决方案。系统实现了业务功能模块灵活组态、业务流程动态配置、系统集成简单、业务功能拓展方便的应用软件系统的二次开发平台。

1 电厂安全生产管理的需求分析

电厂的安全生产永远关注的是“人、机、环、管”四个环节,“安全第一、预防为主、综合治理”是安全生产管理的基本方针,也是安全生产管理必须遵循的根本原则。由于影响企业安全和生产的因素很多,而且“人、机、环、管”的关系错综复杂,时常还会出现某些不确定的意外情况。为此,在企业的安全生产管理工作中,首先应遵循电力安全生产的客观规律,然后对影响企业安全生产的因素进行综合分析与研究,找出最影响安全生产的最主要的关键因素。着重整治企业安全生产过程中最危险的薄弱环节和危险因素,采取预控预防的手段进行管理,以达到安全生产的管理目标。

电厂的安全生产是由很多关系复杂的作业任务相互协作而完成的一个连续不间断的生产流程。安全生产的管理要求我们把影响安全生产的各方面因素,以及各种业务关联关系进行全面的综合分析。通过我们对电厂安全生产的业务进行全过程的跟踪,收集和整理了电厂安全生产管理的各种业务报表和工作日志,重点分析了电厂安全生产作业过程中的“两票三制”的业务信息和流程。并与电厂一线的工作人员和管理人员进行业务交流和技术探讨,经过系统性的归纳、总结与分析,建立了一个系统性的电厂安全生产管理的业务模型(CIM)。电厂安全生产管理的业务模型如图1所示。

图1 电厂安全生产管理的业务模型

以电厂安全生产过程中缺陷和隐患为起点,以工作单业务流程管理为主线,在此基础上严格控制好工作票和操作票的管理流程和安全措施。对作业现场的安全措施、工作人员和设备状态进行监督、监测和监控等管理,对作业现场和安全措施发现的问题和异常及时发布预警信息,通知工作人员进行及时响应和处理。当设备缺陷和隐患以及作业现场出现事故险情时,自动启动应急管控,发布应急预案,部署救援措施。风险预控管理应用于安全生产作业过程,针对设备缺陷、隐患、工单任务、工作票和操作票中存在的风险及时预警,并自动提供相应风险预控措施。

2 安全管控系统的软件架构方案

该方案采用面向服务架构SOA(Service-Oriented Architecture)、企业服务总线ESB(Enterprise Service Bus)、业务流程执行语言BPEL(Business Process Execution Language)和分布式多层软件架构技术和设计思想,提出安全管控系统的软件架构方案。安全管控系统软件架构如图2所示。

图2 安全管控系统软件架构

以SOA、BPEL和ESB多层分布式软件架构的技术框架为基础,根据电厂安全生产过程的作业流程和业务需求,把整个系统分为设备管理(含缺陷、隐患等)、作业管理(含工作单、工作票、操作票等)、风险预控、安全监督、应急管控、安全监测、辅助决策和移动APP应用八个业务功能子系统。由于电厂安全生产管理的业务繁多,而且流程比较复杂。所以,在系统架构图中的用户层展示时,我们只选择其中的一部分业务(如:设备缺陷、隐患、工作单、工作票、操作票等),而且在架构图中的服务层只选择工作票单个业务进行展示,这样架构图在表示上就相对简单清晰,其他的业务都是这个业务样式的叠加。

2.1 安全管控系统企业服务总线的实现机制

企业服务总线包括五个组件和四个接口。五个组件分别为ESB服务总线引擎、ESB管理工具、ESB开发工具、流程客户端(BPEL流程引擎)和服务客户端(服务层服务程序),四个接口为服务调用接口、流程调用接口、服务发布与注册接口和服务监控管理接口[5-6]。安全管控系统企业服务总线的实现机制如图3所示。

牛肉膏蛋白胨培养基(g/L):牛肉膏5 g,蛋白胨10 g,氯化钠5 g,琼脂20 g。pH调节至7.0~7.2,121℃、0.1MPa条件下灭菌20 min后,冷却倒平板,备用。

图3 安全管控系统企业服务总线的实现机制

在安全管控系统的ESB层,通过ESB开发工具提供的服务,实现安全管控系统服务组件在服务总线上的发布和注册,并为安全管控系统的服务提供统一资源定位符URL(Uniform Resource Locator)的存储、定位和检索的功能;而ESB管理工具可以对安全管控系统集成和部署服务总线上的服务进行监控,并自动生成运行监控记录日志。流程客户端和服务客户端都成为企业服务总线的用户,并可通过服务总线获得服务。企业服务总线引擎是服务总线层的核心,它与开发工具和管理工具协同配合,共同完成服务的发布、注册、监控、管理和订阅功能。

2.2 安全管控系统业务流程层的实现机制

业务流程层由BPEL流程引擎、BPEL流程建模工具、BPEL流程监控管理工具、应用客户端和ESB服务客户端五个组件,以及流程建模接口、流程监控与管理接口、流程客户端接口、调用服务接口四个接口组成[7]。安全管控系统业务流程层的实现机制如图4所示。

图4 安全管控系统业务流程层的实现机制

BPEL流程引擎是流程层的核心层,它通过与其他组件的合作,共同完成业务流程的建模、执行、监控和管理的功能。应用客户端通过BPEL流程引擎流程客户端接口来调用BPEL流程,ESB服务客户端为BPEL引擎提供服务,而BPEL流程的节点也来自ESB服务中的流程。

2.3 安全管控系统服务层的实现机制

企业应用系统变得日益庞大和复杂,要提高软件的开发效率和系统的复用性,服务层的设计和规划已经变得非常的关键和重要,同时也要面临巨大的挑战。一方面从业务领域模型抽象易于组态的业务组件和公用组件,另一方面组件分解、抽象和映射为一组不同粒度的具有组装关系的服务组件,从而实现服务层中应用业务功能模块组件化的抽象、组件化的实现、业务功能服务的动态组装,以下是工作票服务模块案例说明。工作票服务抽象与业务功能组态如图5所示。

图5 工作票服务抽象与业务功能组态

2.4 安全管控系统数据层的实现机制

主要为安全管控系统服务层提供数据服务的功能,其中包括数据库的读写,数据的持久化和数据仓储等,它还包括数据库的事务管理、并发控制、数据库的备份与恢复等功能。

操作数据库的方法有ADO.NET和ORM两种方式,其中ADO.NET是.NET平台自带的数据库操作功能。而ORM采用的是开源的NHibernate技术框架,它引进的是J2EE的Hibernate开源项目的技术,经技术升级改造后,它成为.NET平台中的数据库应用开发的ORM工具。ORM是一种面向对象的数据封装,以面向对象的方式操纵数据,隔离了实际数据存储和业务层之间的关系,并能对每一层进行单独跟踪,实现的是在.NET平台中数据库对象/关系数据库映射,是数据持久的解决方案。

它不仅可以实现从.NET类到数据库表的数据管理与映射,还为数据查询和获取数据提供了一种快捷的方法,减少了开发人员直接使用SQL和ADO.NET访问和操作数据库,从而提高了开发的效率。

2.5 安全管控系统用户层的实现机制

3 系统关键技术的应用研究

3.1 领域驱动设计的应用研究

领域驱动设计是将领域模型作为软件系统业务分析和设计的重点研究对象,主要用于指导面向大型复杂系统的软件开发方法。领域模型是对业务对象的边界或者对具有边界领域的抽象,反应的是领域内用户业务需求的本质。所以,只有在充分理解业务领域知识的情况下,才可能建好软件系统的领域模型。领域模型建模主要包括分层架构、服务、实体、值对象、仓储、聚合根等基本要素,其目标就是要实现对业务逻辑的封装,保证业务功能模块的高内聚和业务功能模块之间低耦合,使系统具有更好的维护性与扩展性。领域模型消息机制的引入,使得领域对象之间的数据传递变得清晰,这样可以更清晰地划分系统功能模块之间的边界[8]。所以,安全管控系统的领域模型根据电厂安全生产管理的需求分析的结果和领域驱动设计的思想,按照领域对象数据传递的机制进行建模,实现业务功能模块的划分,以及模块之间的数据和消息传输机制。安全管控系统业务领域模型如图6所示。

图6 安全管控系统业务领域模型

安全管控系统的领域模型贯穿系统分析、设计、开发与测试整个过程,是系统所有工作人员业务需求交流沟通的工具,是软件架构设计中最为关键的一部分,也是整个系统的核心。

3.2 图形拓扑技术的应用研究

3.2.1基于CIM 和SVG的图模库建模

SVG是国际W3C组织制定的一种可缩放矢量图形的语言描述规范[8]。为了实现在互联网上图形数据的应用与共享而设计,该规范采用的是基于XML语言的标准规范。所以国际电工委员会将SVG确定为图形数据交换和图形交互操作的标准格式,并且作为所有系统集成与异构之间图形数据交换的载体。其主要原因就是由于SVG图形采用的基于XML技术标准,使得它具有良好的可扩充性、可检索性、互操作性与可重用性等特点。国际电工委员会也在IEC 61970和IEC 61968标准中扩展了基于CIM/SVG信息交换标准化的技术规范,而且已被各国接受为电力系统模型的工业标准[9]。图模库一体化技术在电力系统自动化领域得到了很好的应用,其核心思想是利用SVG图形表达设备模型和拓扑结构,使图形和数据库相互对应。本方案中就是采用CIM的电网模型和SVG图形技术实现电厂系统图(含电气、锅炉、汽机和辅助系统)的图模库一体化建模,实现电厂系统图的数字化管理和图形的交互操作。

3.2.2拓扑技术分析算法

接线图的拓扑结构反映是设备之间物理连接及相关的信息,而拓扑分析以设备元件连接点的位置作为判断设备关联的依据。电网拓扑分析算法有:深度或广度搜索法、面向对象启发式搜索法、基于关联矩阵集合划分法、基于OSPF协议的算法、分电压等级的算法、基于分析单元的有色Petri法等。以上的几种算法利用数据结构加上特定的算法实现拓扑分析的改进,目的就是为了加快拓扑的速度和效率,得到准确的拓扑分析的结果和拓扑结构。根据项目的特点,我们选用面向对象启发式搜索法,该算法的特点:当设备的状态发生改变时,对电网节点树拓扑跟踪,进行局部的拓扑分析,这样就可以减少拓扑分析的计算量。

3.2.3拓扑技术应用解决方案

图模库一体化技术和拓扑分析方法实现了对电厂系统图的数字化管理和图模库一体化建模、工作票安全措施的智能分析、操作票内容的防误逻辑判断和作业任务的风险预控措施管理,保证工作票的安全措施、操作票的操作内容与顺序的准确性与完整性和作业任务风险预控措施全面性与准确性。图形与拓扑应用解决方案如图7所示。

图7 图形与拓扑应用解决方案

3.3 系统集成技术的应用研究

在面向服务的架构下,为面向服务的企业应用集成与异构提供一个统一标准的可配置业务集成平台,可以解决不同类型的异构系统难以有效整合的问题[10-11]。ESB服务总线克服传统EAI技术集成的缺陷,因为在ESB总线上的所有服务采用的都是标准的消息通信方式进行交互,所以ESB为整合异构系统资源而提供的一种基于SOA的集成解决方案。该集成解决方案的优点:降低系统之间集成的复杂度,增加重用性,降低成本。通过重用以前的遗留应用程序,实现了更有效的应用程序的开发,减少了企业的重复投资,同时也降低系统维护与集成的成本。安全管控系统集成解决方案如图8所示。

图8 安全管控系统系统集成解决方案

Web服务的关键是遵循了SOA的所定义的服务接口标准和松耦合的连接。Web服务在ESB总线中注册之后,就可以通过ESB服务总线建立和管理各应用服务之间的拓扑关系,使得服务的消息和事件通过ESB总线进行通信与互动,为应用服务程序在分布式异构环境中提供了一种简单高效的企业应用集成的机制。安全管控系统采用的是基于Web服务组件式的方式开发,并按照服务组件发布的要求规划定义好接口服务。具体实现过程如下:

首先,建立安全管控系统服务注册中心,实现安全管控系统所有服务组件的发布与管理;其次,对安全管控系统中的应用系统的服务逻辑进行封装,实现统一接口,以Web服务的方式发布,使其他系统可以通过SOAP进行调用;第三,将需要集成的各应用系统(如:财务管理系统、资产管理系统、PMS系统、HR系统、CRM系统、OA系统、SIS系统数据服务和DCS系统数据服务等)发布的服务进行描述,生成服务的描述文档WSDL,并注册到UDDI注册中心,以便其他系统能够发现和访问这些服务;第四,服务请求者发出消息请求,经解析被封装成SOAP消息,发送给企业服务总线;第五,通过ESB的消息转换和动态消息路由机制,将用户请求发送服务提供者;第六,服务提供者接收请求消息后提供服务,由服务代理者调用服务,服务请求者绑定并使用服务。

4 工程验证及效果

电厂安全生产管控系统在安徽和陕西的两个电厂得到推广和应用,已经取得很好的应用效果。(1) 实现安全生产安全管控系统与其他系统(DCS、SIS、PMS等)的集成和异构,使得各系统之间的业务与数据能互联互通和数据共享,解决了企业“信息孤岛”的问题。(2) 系统采用面向服务和组件的开发模式,实现企业业务的灵活组态,满足了企业应用的灵活性和企业未来变化与发展的需求。(3) 系统采用分布式多层软件架构设计思想,增强系统的可扩展性和可维护性,为用户的业务扩展与集成提供二次开发平台。电厂安全生产管控系统现场应用的主界面如图9所示。

图9 电厂安全生产管控系统现场应用的主界面

5 结 语

结合电厂安全生产管理业务,采用基于多层分布软件架构的设计思想和领域驱动设计理念,通过分层分而治之,使其关注点进行分离,增进了业务模块的内聚性,降低模块之间的耦合度,进而降低了系统复杂性并增强业务模块的复用性和可维护性。基于SOA和ESB服务总线设计,安全管控系统解决系统异构集成、业务功能扩展、数据共享和数据交换的问题。所以,我们在后续的功能扩展时,可以把所有精力聚焦在企业业务管理的应用组件开发,很好地适应企业未来发展变化的需要。

[1] 杨毅,杨杰. 一种提高软件需求分析质量的方法[J]. 计算机系统应用, 2014, 23(5):16-20.

[2] 杨芙清. 软件工程技术发展思索[J]. 软件学报, 2005,16(1):1-7.

[3] 陈向东. 动态自适应软件体系结构重配置研究[J]. 计算机科学, 2015,42(6):185-188.

[4] 毕艳冰,蒋林,王新军,等.面向服务的智能电网调度控制系统架构方案[J].电力系统及自动化,2015,39(2):92-98.

[5] 胡亮,李玮.一种高可靠性企业服务总线的研究与设计[J]. 计算机应用与软件, 2012,29(6):100-104.

[6] 刘学林. 基于SOA的电力企业信息一体化平台的研究与应用[D]. 保定:华北电力大学, 2014.

[7] 王玉娟. 基于SOA的科技管理BPM平台设计与实现[J]. 计算机科学,2013, 40(11A):423-425.

[8] 李引,袁峰. 基于领域驱动设计的应用系统模型[J]. 计算机工程与应用, 2013,49(16):1-8.

[9] 郑贵省,赵锐,于波,等. 基于SVG的10kV电网网络拓扑生成算法研究[J]. 微型计算机信息(测控自动化), 2010, 26(2-1):29-31.

[10] 王晓明,牛立栋. 基于SOA的企业应用集成技术分析[J]. 无线电工程, 2012,42(1):54-57.

[11] 柳少华,孙赫勇,王小平. 企业信息系统集成中复杂业务流程优化方法研究[J]. 计算机应用与软件, 2014,31(9):90-93.

猜你喜欢
总线电厂组件
无人机智能巡检在光伏电站组件诊断中的应用
能源工程(2022年2期)2022-05-23 13:51:50
新型碎边剪刀盘组件
重型机械(2020年2期)2020-07-24 08:16:16
U盾外壳组件注塑模具设计
世界上最大海上风电厂开放
军事文摘(2018年24期)2018-12-26 00:57:54
基于PCI Express总线的xHC与FPGA的直接通信
测控技术(2018年6期)2018-11-25 09:50:12
机载飞控1553B总线转以太网总线设计
测控技术(2018年8期)2018-11-25 07:42:08
智慧电厂来袭
能源(2018年6期)2018-08-01 03:41:50
智慧电厂来袭,你准备好了吗?
能源(2018年6期)2018-08-01 03:41:46
用Citect构造电厂辅网
风起新一代光伏组件膜层:SSG纳米自清洁膜层
太阳能(2015年11期)2015-04-10 12:53:04