首页 基于SCA的电力监控系统SOA解决方案

基于SCA的电力监控系统SOA解决方案

举报
开通vip

基于SCA的电力监控系统SOA解决方案 收稿日期: 2009- 01- 13;修回日期: 2009- 03- 05 作者简介: 陈 锺 ( 1976- ) , 男,上海人,工程师, 硕士研究生,工程 师,研究方向为软件工程、SOA、计算机网络工程。 基于 SCA的电力监控系统 SOA解决方案 陈 锺,沈 正 (南京航空航天大学 信息科学与技术学院,江苏 南京 210016) 摘 要:随着用户对于用电安全性和经济性要求越来越高, 电力监控系统已经不仅仅局限于 SCADA功能。而是以 SCADA 系统为基础,集合了两票子系统、故障分断 FA 子...

基于SCA的电力监控系统SOA解决方案
收稿日期: 2009- 01- 13;修回日期: 2009- 03- 05 作者简介: 陈 锺 ( 1976- ) , 男,上海人, 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 师, 硕士研究生,工程 师,研究方向为软件工程、SOA、计算机网络工程。 基于 SCA的电力监控系统 SOA解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 陈 锺,沈 正 (南京航空航天大学 信息科学与技术学院,江苏 南京 210016) 摘 要:随着用户对于用电安全性和经济性要求越来越高, 电力监控系统已经不仅仅局限于 SCADA功能。而是以 SCADA 系统为基础,集合了两票子系统、故障分断 FA 子系统、设备管理子系统、高级计算子系统等其他高级应用功能的集成系 统。阐述了采用 SOA的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 思想,采用 SCA编程模型,使用Apache Tuscany SCA 实现技术, 进行电力监控系统内子系统 之间的异构集成。结果表明采用 SCA可以实现电力监控系统内子系统之间的基于 SOA的无缝集成, 提高了软件的可重 用性、可扩展性。 关键词:面向服务的构架; 基于服务的构件架构; Apache T uscany;电力监控系统 中图分类号: T P311 文献标识码: A 文章编号: 1673- 629X( 2009) 09- 0160- 04 An SOA Solution for Electric Power Scada System Based on SCA CHEN Zhong , SHEN Zheng ( College of Information Science & Technology, Nanjing University of Aeronautics and Astr onautics, Nanjing 210016, China) Abstract:As customers. higher dem and for safety and economical ef ficiency of elect ricity, the funct ion of elect ric power SCADA system is not only SCADA. Elect ric pow er SCADA system has integrated other subsystems, such as t ickets subsystem, fault diagnose subsystem, equipment management subsystem, and advanced comput ing subsystem. Describes that making use of the design ideas of SOA and SCA programming model, w ith Apache Tuscany SCA implementat ion technique, to achieve the integration among subsystems of elect ric pow er SCADA system. T he result indicates that using SCA can achieve the seamless integrat ion among subsystems of electric pow er SCADA system, w hich improves the reusability and extensibilit y of software. Key words:SOA; SCA; Apache Tuscany; elect ric pow er SCADA system 0 引 言 早期的电力监控系统,其功能大多局限于 SCADA 系统功能。随着应用的发展,用户对于输变配电中的 安全性、经济性提出了更高的要求,电力监控系统也相 应扩充为 SCADA 子系统、两票子系统、故障分断 FA 子系统、设备管理子系统、高级计算子系统等。 这些应用子系统之间需要交互数据,例如,故障分 断 FA 子系统需要 SCADA子系统的实时数据;故障分 断 FA子系统产生的操作命令, 也需要传输给 SCADA 子系统。而且往往各子系统是分布在不同的机器上, 基于不同的操作系统,采用不同的编程语言。因此电 力监控系统内部的子系统之间的数据交互问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 就较为 棘手,既要解决不同操作系统的差异,也要考虑不同编 程语言,例如 C与 Java之间的差异。 虽然目前已经有 DCOM、CORBA等组建模型,但 它们在支持不同操作系统方面,在协议标准性方面,在 编程的简单性方面, 在支持的编程语言方面都有着或 这或那的缺陷。 近来, SOA 的提出与实现,给人们解决这些问题 提供了新的思路和 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。面向服务的构架 SOA( Ser- vice Orient ed A rchitecture)是一种架构风格, 服务是最 核心的核心手段,业务被划分为一系列粗粒度的业务 服务和业务流程[ 1]。其中, 服务是指业务流程中的服 务[ 2]。SOA通过 UDDI注册和查找服务, 通过 WSDL 描述服务,通过 SOAP进行通讯。借助 Web服务可以 方便、安全、高效地实现企业应用集成[ 3 ]。SCA 是一种 用于构建 SOA应用和解决方案的编程模型[ 4] ,是一种 很好的 SOA 解决方案, 无论是同构系统还是异构系 统,都可以实现基于 XML 的信息交换[ 5 ] ,达到信息共 享,实现高度的互操作性和可扩充性[ 6 ] ,尤其对于采用 C编程很广泛,有些子系统又是用 Java编程的电力监 控系统更是如此。 第 19 卷 第 9 期 2009 年 9 月 计 算 机 技 术 与 发 展 COM PUT ER TECHNOLOGY AND DEVELOPMENT Vol. 19 No. 9Sep. 2009 1 SCA编程模型 SCA是一种用于构建 SOA 应用和解决方案的编 程模型,它的基本思想是业务功能总是由一系列的服 务组成的,这些服务装配在一起就构成了能满足一定 商业需求的应用和解决方案[ 4]。SCA 使得开发者更 关注于业务逻辑[ 7]。 SCA最基本的是组件( component ) ,是系统的构成 单元,也是提供服务的基本单元。一个 SCA 组件由四 个部分组成[ 4] : ( 1)服务( services) ,表示本组件提供给其他组件使 用的功能。 ( 2)实现( implementation) ,表示提供了特定功能的 代码段。 ( 3)属性( properties) ,是功能运行需要的数据值。 ( 4)引用( references) ,表示本组件的实现所依赖的 其他组件提供的服务。 而构件 ( composit e) 则描述了一个 SCA 应用的内 容以及不同 SCA应用之间的连接,也就是若干组件如 何装配成一个完整的解决方案。 所以, SCA 具有如下特点[ 4] : 1)松耦合。SCA 中的服务的定义, 实现和使用是 分离的。组件和构件以接口的方式提供服务, 服务的 调用者只看到接口而无须关心里面的实现细节,组件 在服务确定的前提下可以采用任意的实现技术,相同 的服务可以通过不同的绑定方式供不同客户端调用。 这种松耦合结构可以使 SCA 应用灵活, 易于搭建,易 于扩展,可适应多变的应用。 2)异构。SCA 支持众多的编程语言 , 例如 Java, C + + , BPEL, PHP, JavaScript 等, 可以在不同的操作系 统上实现。SCA 支持常见的通信和服务访问技术,例 如Web服务、消息系统和 RPC。 3)重用。SCA 的组件和构件是 SCA 应用的构建 单元,可以通过/搭积木0的方式构成不同的应用,而且 原有的非 SCA系统也可以通过作为 SCA 组件实现的 方式加入到 SCA系统。 可以看出,利用 SCA对电力监控系统内的各子系 统进行整合,可以充分地利用电力监控系统原有的各 种资源,通过合理地规划服务和接口,可以在较少的代 价前提下,实现电力监控系统内部的异构子系统之间 的数据交互和应用整合。 2 Apache Tuscany Tuscany是 SCA编程模型规范的一个 SCA开源实 现,目前正在 Apache Incubator 里进行进一步更新、完 善[ 8]。Apache Tuscany 实现了 SCA 标准 1. 0 版,为开 发者提供了进一步简化的开发支持,尤其是对于那些 希望运用 SOA 技术的开发者。同时, T uscany还提供 了轻量级的运行时环境, 更加易于集成到现有系统 中[ 4]。Tuscany可以支持多种编程技术和绑定技术,还 集成了来自多个 Apache项目的技术实现。可以通过 Java和 C+ + 实现 Apache Tuscany SCA。 Tuscany分为三个部分: ( 1) SCA的开源实现,实现服务的整合。 ( 2) SDO 的开源实现,实现了数据的整合。 ( 3) DAS(数据访问服务 ) ,提供 SDO 到关系数据 库的接口服务。 3 电力监控系统设计 电力监控系统以 SCADA 子系统为基础,而 SCA- DA 子系统原来就有一套完整的数据采集、数据处理、 数据传输、数据显示的流程, SCADA 子系统对性能要 求非常严格并且功能要求非常明确。所以,在新一代 的电力监控系统中, SCADA 子系统被保留, 原有的数 据流和显示功能不变。着力要解决的是如何利用 SCA 做到各子系统之间的无缝拼接,异构集成。 在新一代电力监控系统中,各个监控子系统之间 需要交互数据,而且用户请求的服务往往不是一个子 系统的功能可以实现的。所以,各个子系统之间的交 互数据、协同运作就需要每一个子系统都具备提供服 务以及从其他子系统获取数据信息的能力。利用 SCA 构架子系统之间的服务发布和调用是解决这种需求的 一种很好的方法。 在系统架构上,将新一代的电力监控系统划分为 六个层次;在功能上, 把服务划分为实时数据服务、历 史数据服务、两票服务、FA 服务、设备服务、高级计算 服务。如表 1为电力监控系统架构表。 表 1 电力监控系统架构表 应用层 应用程序, Web浏览器,其他程序 服务层 实时数据服务 历史数 据服务 两票 服务 FA 服务 设备 服务 高级计 算服务 构件层 各种构件库 组件层 各种组件库 数据层 实时数据 历史数据 系统层 数据库管理系统、Apache Tuscany SCA、操作系统 应用层: 采用良好人机界面的应用程序, Web 浏 览器。着力于采用丰富的手段显示电力监控系统中的 各种数据,例如:表格,曲线,棒图, 饼图等。采用良好 的界面供用户查询、检索。SCADA子系统应用层保留 原有机制,其他应用层可以通过 SCA 服务接口访问服 务。 服务层: 基于 Apache Tuscany 的 SCA 服务, 包括 #161#第 9 期 陈 锺等: 基于 SCA的电力监控系统 SOA 解决方案 历史数据服务,实时数据服务, 两票服务, FA 服务,设 备服务,高级计算服务等六大类。 构件层: 基于 Apache Tuscany 的 SCA 构件, 各个 构件通过组合组件的方式实现了各种各样的独立功 能,提供了完整的应用服务。要实现服务功能时,只要 选择不同的组件加以组合就可以了。 组件层: 基于 Apache Tuscany 的 SCA 组件, 各个 组件实现了各种各样的独立的功能。 数据层:电力监控系统的实时数据和历史数据。 系统层: 包括各种数据库管理系统, Apache Tus- cany SCA 软件包,各种操作系统。 服务层是设计的核心部分,采用 SOA 的理念设计 和规划服务,使其具有独立性、自描述性、松耦合性、异 构性、可组合性、开放性等特点。而组件层是构建服务 的基础,充分考虑组件的独立性、可重用性来规划组 件,增加组件之间搭配的灵活性。 4 电力监控系统 SCA实现 采用 SOA的设计思想,采用 SCA 编程模型,使用 Apache Tuscany SCA实现技术来实现新一代的多子系 统的电力监控系统。以电力监控系统中的实时数据服 务中批量读取 YC量数据为例,说明如何使用 Apache Tuscany SCA实现基于 C+ + 语言的 SCA。 4. 1 构建实时数据服务 在搭建好 Tuscany 环境之后,来构建实时数据服 务。SCA 的 C+ + 实现采用的是 C+ + 抽象类作为接 口,如以下接口头文件代码所示,定义了 getGetRealY- cValueG接口,利用 Service Data Object s[ 9]传递数据,参 数中 nlrds为需要读取的 YC点的指针, count为读取个 数,返回的是 Yc数据的指针。 virtual commonj: : sdo: : DataObjectPtr / * YcV alues* / getGetRealYcValueG ( commonj: : sdo: : DataObjectPtr / * NLRDs * / nlrds, const int count) = 0; 接着定义接口的实现的头文件。 virtual commonj: : sdo: : DataObjectPtr / * YcV alues* / getGetRealYcValueG ( commonj: : sdo: : DataObjectPtr / * NLRDs * / nlrds, const int count) ; 定义接口的实现的实现文件之后, 实现接口的功 能。 DataObjectPtr / * Y cValues* * / DataCenterServiceImpl: : getGetRealYcValueG ( DataObjectPtr / * NLRDs* / n, const int count) { try { int i; DataFactoryPtr factory = ComponentContext: : getCurrent ( ) . get- DataFactory( ) ; / /得到数据工厂 DataObjectList& nlrds = n- > getList(/ nlrds0 ) ; / /得到参数中的 nlrds条目 DataObjectPtr outdata = factory- > create (/ http: / / www. njhx. com/ DataCenterService0 , / YcValues0 ) ; / /创建返回数据类型 DataObjectList& values = outdata - > getList (/ ycvalues0 ) ; / /得 到返回数据中的 ycvalues条目 if ( nlrds. size( ) ! = count) return 0; for ( i= 0; i< count; i+ + ) { DataObjectPtr nlrd= nlrds[ i] ; DataObjectPtr adddata = factory - > create(/ http: / / www. njhx. com/ DataCenterService0 , / YcValue0 ) ; / / 创建数据类型 / * 省略从实时库读取代码* / adddata- > setInteger(/ value0 , ycvalue) ; / / y c数据 adddata- > setInteger(/ flag0 , ycflag) ; / / yc数据标志 values. append( adddata) ; / /添加到返回数据 } return outdata; } catch ( SDORuntimeException& ) { return 0; } } 我们必须创建 DataCenterImpl. componentT ype文 件来定义组件提供的服务。 < componentT ype xmlns= / http: / / www. osoa. org/ xmlns/ sca/ 1. 00 xmlns: x s= / http: / / www. w3. org/ 2001/ XMLSchema0 > < service name= / DataCenterService0 > < interface. cpp header= 0DataCenterService. h0 / > < / ser vice> < / componentT ype> 上面代码中的 cpp 说明服务名为 DataCenterSer- vice的实现采用的是 C+ + , 提供的服务接口在 Data- CenterService. h。 创建 njhx. Datacent er. composite来定义构件。 < composite xmlns = / http: / / www. osoa. org/ xmlns/ sca/ 1. 00 name= / njhx. datacenter0> < service name= / DataCenterService0 > < inter face. wsdl interface= / http: / / www. njhx. com/ DataCenter- Service# wsdl. interface( DataCenterService)0 / > < ! - The endpoint is optional - > < ! - < binding. ws endpoint = / http: / / www. njhx. com/ Data- CenterService # wsdl. endpoint ( DataCenterService/ DataCenterSer- viceSOAP)0 / > - > < binding. ws/ > #162# 计算机技术与发展 第 19 卷 < reference> DataCenterServiceComponent< / reference> < / service> < component name= / DataCenterServiceComponent0> < implementation. cpp library = / DataCenter0 header= / DataCen- terServiceImpl. h0 / > < / component> < / composite> 这些文件编写好之后, 使用 scagen文件生成 SCA 相关的. h和. cpp文件。采用 Vs. net2005 以上编译这 些文件,可以得到 DataCenter. dll。这就是采用 Apache Tuscany编写 SCA 服务的全过程。可以看出, 采用 A- pache Tuscany编写 SCA 过程简单明了,几乎只要关注 于接口定义和服务实现即可,并且实现部分可以紧密 结合已有的代码。可以在增加少量代码的情况下,在 不改变原有系统架构的前提下实现 SOA。 4. 2 发布实时数据服务 发布服务最重要的是定义 DataCent erService. wsdl 文件,来定义发布的Web服务。 在 DataCent er. dll目录下运行如下批处理,即可实 现通过 axis2- http- server发布实时数据的 SCA 功能。 set PATH = % TUSCANY- SCACPP% \ bin; % TUSCANY- SCACPP% \ extensions \ cpp \ bin; % TUSCANY- SDOCPP% \ bin; %AXIS2C- HOME% \ lib; % PATH% set APFULLDIR= %~ d0%~ p0 set TU SCANY- SCACPP- ROOT= % ~ d0% ~ p0 \ . . \ cd %AXIS2C- HOME% \ bin . \ axis2- http- server. exe 通过其他程序远程调用该 SCA 服务, 结果正确。 可见, Apache Tuscany SCA 是实现电力监控系统 SOA 的非常好的解决方案。 5 结束语 在充分考虑电力监控系统应用发展的基础上,提 出了新一代以 SCADA 系统为主体,结合多种高级应 用子系统的电力监控系统的 SOA 解决方案。该方案 采用 SOA 的设计思想,采用 SCA 编程模型, 使用 A- pache Tuscany SCA实现技术, 开拓性地进行了电力监 控系统内子系统之间的异构集成的实现。当然,服务 质量、传输效率等因素是需要进一步考虑和解决的问 题。而 SOA下的事务处理的协同性[ 10 ]、脆弱性[ 10]与 冗余性[ 10]也是将来解决事务处理需考虑的因素。 参考文献: [ 1] 毛新生. SOA原理. 方法. 实践[ M] .北京: 电子工业出版 社, 2007. [ 2] 凌晓东. SOA综述[ J] . 计算机应用与软件, 2007, 24( 10) : 122- 124. [ 3] 佘名高,贾秀峰,林坤江,等.基于 Web 服务的企业应用集 成[ J] .计算机技术与发展, 2007, 17( 5) : 55- 57. [ 4] 王紫瑶,南俊杰,段紫辉, 等. SOA 核心技术及应用[ M] .北 京:电子工业出版社, 2008. [ 5] 谭永明,苏 斌.面向服务架构体系的研究[ J] .计算机技 术与发展, 2007, 17( 3) : 132- 134. [ 6] 房洪臣, 冷文浩,吴建波. 基于 SOA的企业 IT 架构[ J] . 计 算机工程, 2008, 34( 23) : 272- 274. [ 7] Margolis B. SOA for the Business Developer: Concepts, BPEL, and SCA[ M ] . [ s. l. ] : MC Press, 2007. [ 8] Slattery E, Robbins P, Borley A. Build a simple C+ + ser- vice component, Par t 1: A quick tour of the C+ + API for the Service Component Architecture[ EB/ OL ] . 2006. http: / / www. ibm. com/ developerworks/ webservices/ library/ ws- soa - capisca1/ . [ 9] Lwo F. How to use dynamic data APIs for Service Data Ob- jects 2. 1 in a Web service[ EB/ OL ] . 2007. http: / / www. ibm. com/ developerworks/ webservices/ library/ ws- sdoapis/ . [ 10] 郭玉彬, 王新忠,奚建清. SOA 事务处理系统设计与实现 [ J] .计算机应用研究, 2007, 24( 11) : 218- 221. (上接第 156 页) 参考文献: [1] Ramaswamy C, Sandbu R. Role- Based Access Control Fea- tures in Commercial Database Management Systems[ J] . ACM T rans. Inf. Syst. Secur, 2001( 1) : 1- 5. [ 2] 罗 锐.基于 RBAC和 PKI 的安全模型的研究[ D] .武汉: 华中科技大学, 2006: 6- 13. [ 3] 罗 锐,程文青. Java安全体系在 Web 程序中的研究和应 用[ J] .计算机应用与研究, 2006( 7) : 113- 114. [ 4] 杨宗凯,刘宏波. 基于角色的访问控制在网络教育中的应 用研究[ J] .计算机应用与研究, 2006( 10) : 134- 136. [ 5] 田好美,杨宗凯,吴 砥,等.参数化 RBAC 在网上申报系 统中的研究与应用[ J] . 微计算机信息, 2007 ( 6) : 158- 160. [ 6] 孙尚辉,曹宝香,王廷蔚.扩展 RBAC 模型在文档管理中的 应用[ J] .计算机技术与发展, 2007, 17( 3) : 210- 213. [ 7] 景栋盛,杨季文. 一种基于任务和角色的访问控制模型及 其应用[ J] .计算机技术与发展, 2006, 16( 2) : 212- 214. [ 8] Krutz R L, Vines R D. CISSP Prep Guide: M aster ing the T en Domains of Computer Security[ J] . Wiley Computer Publish- ing, 2001( 1) : 200- 214. [ 9] Osborn S, Sandhu R, M unawer Q. Configuring role- based ac- cess control to enforcemandatory and discretionary access con- trol policies[ J] . ACM T ransactions on Information and System Security, 2000( 3) : 100- 106. #163#第 9 期 陈 锺等: 基于 SCA的电力监控系统 SOA 解决方案
本文档为【基于SCA的电力监控系统SOA解决方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_231337
暂无简介~
格式:pdf
大小:130KB
软件:PDF阅读器
页数:4
分类:互联网
上传时间:2012-10-25
浏览量:16