几种设计模式在调度前置机软件设计中的应用_1

收稿日期:2008-09-12
作者简介:武 刚(1978-),男,辽宁丹东人,沈阳大学讲师,硕士・
第21卷第1期2009年2月沈阳大学学报
J OURNAL OF SHEN YAN G UN IV ERSIT Y Vol 121,No.1Feb.2009
文章编号:100829225(2009)0120103203
几种设计模式在调度前置机软件设计中的应用
武 刚1,周浚哲2
(1.沈阳大学信息工程学院,辽宁沈阳 110044;2.沈阳理工大学信息科学与工程学院,辽宁沈阳 110016)
摘   要:为了实现电力调度前置机子系统软件的灵活性、重用性和有效性,对几种面向对象的设计模式在前置机软件设计中的具体应用作了介绍・主要应用策略(Strategy )模式解决了RTU 、FTU 的连接问题,应用了代理(Proxy )模式解决了代理通道的问题,应用中介者(Mediator )模式解决了前置机和其他的系统接口问题,使前置机软件有效、可靠地运行・
关 键 词:前置机;策略模式;代理模式;中介者模式中图分类号:TP 391.8   文献标识码:Aaffordance
调度自动化系统是一套计算机监控系统,随
着计算机领域新技术的不断出现而快速发展・计算机处理速度和网络技术的提高,使得一些离线应用变成在线应用,并不断激活新的应用・计算机软件业的组件化、面向对象、中间件和多代理等思想,使得调度自动化系统在体系结构、性能指标和功能等方面产生质的飞跃,系统的开放性、可靠性和灵活性越来越好・各种防火墙技术、加密技术和防病毒技术使调度自动化系统的安全性越来越高[1]・
从目前主流的应用软件看,应用的划分不是很准确,程序的重用性比较差,如拓扑分析和潮流计算等可公用的程序在不同的应用中被重复编写,应用软件和支撑平台的接口不清晰,相互交织在一起,因此首先根据复用原则对应用进行重新
划分并进行完整的需求分析,明确每个应用或公用模块的功能和接口,并确定为组件・
本文所谈到的几种面向对象的设计模式在调度前置机软件中的应用,主要有策略(Strategy )模式、代理(Proxy )模式和中介者(Mediator )模式,很好地解决了上述问题・
1 调度前置机软件的整体设计
前置子系统(Front End System )作为调度系统中实时数据输入、输出的中心,主要承担了调度中心与各所属厂站之间、与各个上下级调度中心之间、与其他系统之间以及与调度中心内的后台系统之间的实时数据通信处理任务,也是这些不同系统之间实时信息沟通的桥梁[2]・
前置机的工作原理图如图1所示
甲亢平片
图1 前置机工作原理图
前置机接收来自现场的R TU 、F TU 以及终
端设备等数据,选择合适的通信通道经过预处理传给后一级SCADA 系统及调度中心系统・
前置机处理软件需完成下列主要功能:(1)数据采集:包括模拟量、状态量、脉冲量、保护及综合自动化信息等实时数据的采集・
(2)遥控与遥调功能接收SCADA 服务器发
出的遥控遥调预置、遥调执行、预置撤消等各类命令・对预置命令,检查待控对象信息是否与命令一致,并将校核结果反送给SCADA 服务器・对执行命令按各R TU 、F TU 和集控中心站的通讯规约生成相应的遥控遥调命令,将命令下发给R TU 、F TU 和集控中心站,并将执行结果上送SCADA
服务器・对遥控预置撤消命令则按通讯规约生成
相应的命令[3],将命令下发并将返回结果上送SCADA服务器・
(3)通讯接口:包括通讯规约、传输速率、通讯接口、通讯方式等・
(4)通道及网络管理:支持双通道、双前置机的设备造成数据丢失;能在线关闭和打开指定的通道;可以动态复位通讯口,不影响系统运行・
2 几种面向对象模式的具体应用
下面就前置机接收现场R TU、F TU传感器等设备传送过来的数据和如何选择通道以及与其他系统联系的过程,具体介绍几种面向对象设计模式在前置机软件中的应用・
设计模式描述了软件设计过程中某一类常见问题一般性的解决方案,灵活复用性强・面向对象设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系・设计模式先
小学科学网站
是从建筑学来的,发展到软件设计中・每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,满足应对变化,提高复用性[4-5]・
2.1 策略(Strategy)模式
R TU、F TU 等终端设备连接,有不同的连接方式,有TCP方式、无线GPRS方式、CDMA方式、有线方式等・策略模式可以很好地解决不同的连接方式问题・策略(Strategy)对象可能经常需要使用多种不同的连接方式,但是如果变化频繁,会将类型变得脆弱・在软件构建过程中,对象使用的连接方式多种多样,经常改变,如果将这些连接方式都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的连接方式也是一个性能负担・如何根据需要透明地更改前置机对象的连接方式,将连接方式与对象本身解耦,从而避免上述问题呢?
定义一系列连接方式,把它们一个个封装起来,并且使它们可以互相替换・该模式使得连接方式可以独立于使用它的客户而变化・Strategy及其子类为组件提供了一系列可重用的连接方式,从而可以使得类型在运行时方便地根据需要在各个连接方式之间进行切换・Stratagy模式提供了用条件判断语句以外的另一种选择,消除条件判断语句,就是在解耦合・含有许多条件判断语句的代码通常都需要strategy模式・如果strategy对象没有实例变量,那么各个上下文可以共享同一个strategy对象,从而节省对象开销・
应用Strategy模式,首先定义一个Abstract R TULink抽象类,使用者使用抽象的Abstract R TULink连接类,然后再定义一些子类,如TCPL IN K类、GPRSL IN K类、CDMAL IN K类等,它们都继承了Abstract R TULink类・如果有新的连接方式加入,继续继承Abstract R TULink类・根据发送通道的具体配置,这个Abstract R TULink抽象类的引用指向具体的子类,产生不同的连接行为,但对使用者保持了同样的接口,这样就很好地解决了代码的重用性,很好地解耦合了,使连接方式灵活・
2.2 代理(Proxy)模式
人们对于复杂的软件系统常常有一种处理手法,即增加一层间接层,从而使系统获得一种更为灵活、满足特定需求的解决方案・
在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等),直接访问会给使用者、或者系统结构带来很多麻烦・如何在不失去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接层是软件开发中常见的解决方式,也就是为其他对象提供一种代理以控制对这个对象的访问・在面向对象系统中,直接使用某些对象会带来很多问题,作为间接层的Proxy对象便是解决这一问题的常用手段・具体Proxy设计模式的实现方法、实现粒度都相差很大,有些可能对单个对象做粒度的控制,如copy2on2write技术,有些可能对组件模块提供抽象代理层,在架构层次对对象做Proxy并不一定要求保持接口的一致性,只要能够实现
间接控制,有时候损及一些透明性是可以接受的・应用了Proxy模式,定义一个ProxyR TUChanel类・使用这个ProxyR TUChanel代理类时,根据连通性和通信质量,选择具体的通道,进行通道切换,决定哪个通道作为实际的通道,起到通道切换的代理作用・
2.3 中介者(Mediator)模式
在软件构建过程中,经常会出现多个对象互相关联交互的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用将面临不断的变化・在这种情况下,我们可以使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化・用一个中介对象来封装一系列的对象交互・中介者使各对象不需要显示而相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互・
401沈 阳 大 学 学 报            第21卷
将多个对象间复杂的关联关系解耦,Mediator 模式将多个对象间的控制逻辑进行集中管理,变“多个对象互相关联”为“多个对象和一个中介者关联”,简化了系统的维护,抵御了可能的变化・随着控制逻辑的复杂化,Mediator 具体对象的实现可能相当复杂・这时候可以对mediator 对象进行分解处理・Mediator 模式是解耦系统内各个对象之间(双向)的关联关系・
应用Mediator 模式,实现了依赖关系的转化・中介者使用了“消息总线“这一中介・消息总线集中了所有对象的引用,是资源集中的地方,容易实现对资源的控制・前置机和SCADA 系统以及调度中心都通过消息总线这一中介来解决各个系统之间的联系问题的・如加上一个GIS 系统,让GIS 系统直接和消息总线直接通信就可以了,而不需要再重写代码了・
3 结  论
应用了上面几个面向对象的设计模式可以使
软件更加灵活,具有复用性・在前置机子系统中有如下优点:
(1)在前置机和各种R TU 、F TU 等远程设备
连接时,可以比较方便地加入连接方式,可以加入更多的连接方式,如D TU 等数据终端・
调浆桶(2)在通信通道管理时,可以有效地选择较好的通信通道・通信质量不好的通道可以被通信质量好的通道代替・
(3)可以很方便地实现和其他系统的接口,也可以很方便地加入其他的有关系统,如SCADA 系统、实时数据库、历史数据库等・
参考文献:
[1]范文涛,薛禹胜.面向对象技术及其在电力系统中的应用
[J ].电力系统自动化,1998(3):12-14.
[2]Richard B.c #网络应用编程[M ].王伟,译.北京:电子工
业出版社,2003:86-102.
[3]周存杰.网络编程实例教程[M ].北京:北京希望电子出版社,2002:34-68.
[4]
DESIGN PATTERNS.设计模式可复用面向对象软件的基
础[M ].李英军,译.北京:机械工业出版社,2000:201-256.[5]
Mayo J.c #技术内幕[M ].王启丁,译.北京:机械工业出
版社,2003:160-178.
汗腺炎Applications of Several Design Patterns to Soft w are Design of Scheduling Front 2end System
W U Gang 1,ZHO U J un 2z he 2蓝与白
(1.College of Information Engineering ,Shenyang University ,Shenyang 110044,China ;2.College of Information Science and Engineering ,Shenyang Polytechnic University ,Shenyang 110016,China )
Abstract :To the software flexibility ,reusability and effectiveness of the front 2end system in energy management system ,the specific applications of several object 2oriented software design patterns to the front 2end system design are introduced.The strategy pattern is used to solve R TU and F TU connection problems ,the proxy pattern is used to solve the problem of channel proxy ,and the mediator pattern is used to solve the interface of the front -end system and other sub 2systems.The front 2end software operation is effective and reliable.
K ey w ords :Front 2end system ;strategy pattern ;proxy pattern ;mediator pattern
【责任编辑 张耀华】
5
01第1期     武 刚等:几种设计模式在调度前置机软件设计中的应用

本文发布于:2024-09-23 05:19:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/239413.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   系统   前置   通道   方式   模式   连接
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议