电网安全生产平台设计与实现

2010-03-13 08:54白凯
电子设计工程 2010年8期
关键词:消息客户端组件

白凯

(西安职业技术学院 陕西 西安 710077)

陕西生产管理系统(简称生产系统)就是要解决适应电网特性的跨地域、集团化、网络化的应用,规范电网生产业务、优化管理流程,统一数据格式,信息共享,做到信息传递的及时、可靠和准确,加强过程管理和监督,提高工作质量和工作效率;最终提高电网安全生产水平,提高电网运行效率和效益以及电网管理水平。

生产系统主要业务包括设备管理、运行管理(变电/送电/电缆)、检修管理、两票管理、技术监督管理、大修管理、技改管理、科技管理、工器具管理等业务。以实现电网生产的规范化管理为目标,采用可定制的流程化作业方式推动和监控各项业务的进行,服务于全省电网的生产管理全过程。

生产系统数据以地区局集中方式统一存放,形成各地区局电网生产数据中心和业务处理中心,各班组/变电站以网络/远程用户用浏览器方式访问和工作,省公司建立全省电网生产管理的数据中心、决策分析中心和各局数据的异地备份中心。系统以B/S三层架构实现,以组件化、模块化进行应用开发,用户只要采用浏览器方式就可高效运行。

本文就生产管理系统设计与实现中的三层架构及应用,分布式系统设计与系统接口实现、平台部分总体设计,消息组件设计与实现等4部分进行详细讨论。

1 基于.NET的B/S三层架构系统

随着软件系统的规模与复杂性的增加,软件体系结构的选择成为比数据结构和算法的选择更为重要的因素,三层客户/服务器体系结构为企业资源规划整合提供了良好的框架,是建立企业级管理信息系统的最佳选择。由于生产系统涵盖全省输变电电力业务,逻辑多且复杂,用户遍布全省生产业务的方方面面,所以采用B/S结构的三层架构系统是必然的选择。

生产系统采用三层客户/服务器模式(图1),是因为该结构是解决目前企业级系统的成熟方案[1]。同样也具有成熟的开发模式。这种模式在逻辑上将应用功能分为3层:客户显示层、业务逻辑层、数据访问层。客户显示层是为客户提供应用服务的图形界面,有助于用户理解和高效的定位应用服务。业务逻辑层位于客户显示层和数据访问层之间,专为实现企业的业务逻辑提供一个明确的层次,这个层次封装了与系统关联的应用模型,并把用户表示层和数据库代码分开[2]。这个层次提供客户应用程序和数据服务之间的联系,主要是执行应用策略和封装应用模式,并将封装的模式呈现给客户应用程序。而数据访问层是三层模式中最底层,它用来定义、维护、访问和更新数据并管理和满足应用服务对数据的请求[3]。

图1三层客户/服务器模式Fig.1 Three-tier client/server module

Microsoft.Net平台包括用于创建和操作新一代服务的.Net基础结构和工具,用于建立新一代高度分布式的数以百万计的.Net积木式组建服务[4]。NET框架为局域网 (LAN)和Internet上的分布式企业应用提供了一致和有效的支持。陕西电网安全生产系统则充分利用上述特点,采用ASP.NET技术与Windows 2003 Server的完美结合,快速、高效、安全地建立了基于广域网的分布式全省电网安全生产系统。

2 基于分布式技术系统设计与实现

分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多服务器体系结构上执行任务的系统。分布式系统是由若干个节点集合而成。它们在通信网络中联接在一起,每个节点都是一个独立的业务系统,它们都拥有各自的运行程序、客户端,以及各自的局部数据库管理系统。因此分布式系统可以看作是一系列集中式系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。

分布式系统已经成为信息处理的重要研究方向,原因基于以下几点:

1)它可以解决组织机构分散而数据需要相互联系的问题。生产系统,省电力公司与各地区供电局处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统;

2)如果一个组织机构需要增加新的相对自主的组织单位来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充;

3)均衡负载的需要。数据的分解采用使局部应用达到最大,这使得各服务器之间的相互干扰降到最低。负载在各服务器之间分担,可以避免临界瓶颈;

4)当现有机构中已存在多个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统;

5)相等规模的分布式数据库系统在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲,其可靠性比较高。

在电力广域网中,地区供电局作为全省电网生产管理的业务处理中心和数据中心,各班组和县局作为地区局的远程工作站进行业务处理,而省公司作为全省的业务监管中心和数据备份中心指导基层单位的电网生产管理,保证全省电网生产数据的安全。陕西省电力公司和供电局之间的数据传输利用已经建立的广域网。陕西省电力公司和各个供电局通过各自的局域网访问各自的系统。

在这样的分布式体统中,其中一个节点发生问题,并不影响其他节点的运行。同时由于每个节点都有可以独立运行的生产系统,这样系统的负载压力就平均分摊到了各个节点上。同时当一个供电局的组织结构发生变化时也便于更改和扩充,同时对它供电局的生产系统没有任何影响。图2为分布式系统中的电网生产系统结构框图。

处于分布式系统中的电网生产系统通过Web Services技术相互传输数据,进行省公司生产系统和各个供电局生产系统的数据交换。同样的通过该技术对门户、ERP、数据中心接口提供生产运行数据支持。

图2分布式系统中的电网生产系统Fig.2 Power network production system for distributed system

3 系统平台总体设计

系统平台部分是生产系统应用程序的核心部分。平台部分程序基本上都是通过Microsoft Visual Studio 2005开发完成的。这部分是整个生产系统运行的基础,各个业务模块通过平台部分构建的中间层访问数据库实现业务逻辑。通过平台搭建的系统框架将各个业务模块进行继承,通过平台提供的权限对用户和模块进行授权。业务模块的流转也是通过平台工作流引擎来推动的。也就是说平台部分是电网生产系统最核心的部分。图3为系统平台。

图3系统平台Fig.3 System platform

系统平台提供业务对数据库访问的实体层,对数据库的访问进行封装并统一提供访问接口。各业务模块通过对接口数据库进行访问,不允许各业务直接访问数据库。这部分功能是通过Microsoft ADO.NET及时实现的。ADO.NET提供对ORACLE、SQLAERVER等公开数据源的一致性访问。ADO.NET提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。

系统平台,提供系统通用的变量。公共变量通过session保存,并提供给各个业务模块。系统平台提供系统统一的界面设计,提供统一的样式表给各个业务模块引用,统一的样式是通过CSS(Cascading Style Sheets层叠样式表)技术实现的。CSS语言是一种标记语言,它不需要编译,可以直接由浏览器执行。可以通过简单的更改CSS文件,改变网页的整体表现形式,这样可以减少界面设计的工作量。同时由于引用了一个样式文件,这样整个系统就统一了界面风格。设计界面时在HTML页面引用CSS文件就可以了。

系统平台构建业务模块的基类。系统基类提供每个模块需要继承的方法。电网生产系统是通过面向对象的技术进行设计和实现的,那么就要平台提供整个应用系统的基类。基类中提供了接口方法,各个业务模块通过继承和重载方法就可以使用了。同时基类也实现了具体的功能方法如:权限控制、日志写入等。各个业务模块只需要继承基类就可以方便实现上述功能。

系统平台搭建系统应用框架,完成对应用框架进行总体设计。系统平台提供的应用模块有:用户管理、职工管理、典型角色管理、岗位角色管理、实例化管理、机构管理、模块注册管理、权限综合查询管理、变电站关系管理、日志查询、日志统计、用户密码修改、意见建立交流、帮助管理等模块。平台的程序基本上都是用C#语言开发的。

系统平台对整个应用系统的权限进行管理和授权,提供平台公用的方法给各个业务调用。权限主要管理用户、角色、模块之间的关系,以及与工作流之间的关系等。而与用户相关的权限主要有用户管理、职工管理、部门机构管理;与角色相关的权限主要有典型角色管理、岗位角色管理、实例化角色管理;与模块相关的权限有模块管理。

系统平台提供工作流引擎,各个模块通过工作流推动。工作流引擎提供统一的引擎接口调用。同时平台提供消息组件,通过建立消息中心,将代办工作消息发送给用户计算机,同时也可以通过手机模块发送短信给用户。这些都是通过组件化技术实现的。

4 消息组件设计与实现

软件的组件技术又被称为“软插件”技术,它通俗被称为可重用、可组装技术,是复用技术发展到今天的必然产物[5]。

组件有其自身的规则实现,而规则的实现又提到接口的实现,但是组件对象本身也是一个组件,它也有业务逻辑规则需要处理,它也要起到所集合组件的协调。因此可以通过某一个组件对象协调实现一些、一部分的业务逻辑规则。使用组件技术的目的是实现各种规则的实现,而且组件对象还将从更广阔的方面来考虑,它能将一个大型的分布式系统进行统一规划、合理处理冗余、安全、平衡负载等单纯编程手段不能实现的功能。组件对象可以很平滑地实现自身的升级与扩展。

生产系统就应用了组件技术,其中包括:消息机制、日志管理、权限控制、工作流、图形分析、通用报表、标准接口等组件。这里重点介绍消息组件。由于采用组件技术,消息机制组件的内部规则和逻辑都是独立实现,程序代码进行封装。组件提供了标准的COM接口和Web Services接口[6]。使得不同的应用系统都可以通过标准的接口对组件进行集成,为其他系统开发提供了丰富的组件支持。

消息组件的服务由消息客户端和消息服务器组成。消息服务器负责提供业务消息接口接收各个业务的消息,同时对消息进行发送排队消息发送和确认。消息客户端用来接收、发送消息。消息客户端可以给一个或多个用户发送消息,系统自动识别用户在何处登录生产管理系统,从而消息可以跟踪发送。消息客户端会自动监测程序的版本变化,当发现新程序时,会出现提示并自动更新。消息客户端可以一人或多人使用,用户可以上线、下线。

服务器端服务采用定时器功能从及时消息表取出要发送的消息,发送给客户端,定时器刷新时间10 s。服务器端服务采用定时器功能从定时消息表中取出定时消息,分析定时发送次数,将定时发送的消息放入及时消息表进行排队,等待发送。

服务器端和客户端采用Socket的Udp协议来进行数据传输,发送端口9000接收端口9001,数据传输的字符集采用utf-8字符集。

客户端用户登陆进行验证后采用托盘技术,托盘的功能右键设置为消息客户端功能,实现客户端的发送消息,查询消息等功能,采用调用Windows IE核心功能建立浏览框调用生产系统中功能页面来实现。

服务器端给客户端发送消息的时候带上版本功能,如果发现新版本,采用ftp技术将最新版本的程序文件下载下来进行更新。

用户登陆生产系统后,如果用户有消息,系统将消息取出,采用js脚本技术将消息滚动起来,然后将消息页面放到系统框架中显示出来。主页要有一个第三方页面定时进行页面刷新,判断是否有新消息产生。如果有新消息打开框架显示,如果没有则关闭框架。

客户端机器IP的获得有2种方式:1)用户登陆生产系统时,系统会记录用户登陆的IP地址;2)用户登陆消息客户端时,系统会记录用户登陆的IP地址。服务器端根据用户最后一次登陆系统的IP地址将消息发送给客户端机器。

消息组件需要在客户端安装,而用户的计算机能力参差不齐。采用ActiveX技术,可以通过加载网页控件来控制安装,打开网页后,控件能够控制消息客户端自动安装。

ActiveX是基于标准COM接口来实现对象连接与嵌入的ActiveX控件。它是从VBX发展而来的,面向微软的In-ternet Explorer技术而设计的以OCX为扩展名的OLE控件。通过定义容器和组件之间的接口规范,如果编写了一个遵循规范的控件,那么可以很方便地在多种容器中使用而不用修改控件的代码。同样,通过实现标准接口调用,一个遵循规范的容器可以很容易地嵌入任何遵循规范的控件。

一般浏览器都不同程度上支持ActiveX控件。这允许网页通过脚本和控件交互产生更加丰富的效果,同时也带来一些安全性的问题。Internet Explorer和一些其他应用程序同时支持ActiveX Documents接口规范,允许在一个应用程序中嵌入另一个支持这个规范的应用程序。很多应用软件,例如微软的Microsoft Office系列和Adobe的Acrobat Reader都实现了这个规范。

5 结 论

根据电力广域网的特点,构建了一个分布式的电网安全生产系统。从三层架构及应用,分布式系统设计与系统接口实现、平台部分总体设计,消息组件设计与实现等部分论述该声场管理系统设计。经实际应用,该系统设计能够提高电网安全、生产水平、电网运行效率以及电网管理水平。

[1]ROBINSON S ,HARREY B.C# 高级编程 [M].2 版.杨浩,译.北京:清华大学出版社 ,2002.

[2]拉曼.UML和模式应用[M].北京:机械工业出版社,2005.

[3]PRIESTLY M.面向对象设计的UML实践[M].北京:清华大学出版社,2000.

[4]刘超,张莉,周伯生.可视化面向对象建模技术:标准建模语言UML[M].北京:北京航空航天大学出版,1999.

[5]蒋培,王笑梅.ASP.NET Web 程序设计[M].北京:清华大学出版社,2007.

[6]DUTHIE G A.Microsoft ASP.NET 程序设计[M].北京:清华大学出版社,2002.

猜你喜欢
消息客户端组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
一张图看5G消息
U盾外壳组件注塑模具设计
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
风起新一代光伏组件膜层:SSG纳米自清洁膜层
消息
消息