



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、企业供电分析平台中分布式技术应用的探究 企业供电分析平台中分布式技术应用的探究the research of distributed technology using in analysis and service platform forenterprises power systems(1.西安石油大学;2.西安科技大学)董张卓1李建新2dong zhang-zhuo li jian-xin摘要:开发一个企业供电系统分析平台,是提高企业电网管理水平的重要手段。企业供电分析平台的建立,拟采用分布式的架构。web service和.net remoting是.net框架构建分布式应用的两种典型
2、方案。本文介绍了.net框架中基于web service和.net remoting分布式应用解决方案的体系结构及具体实现,对两者进行比较和评价,编制客户端和服务器程序进行测试,验证了采用.net remoting技术建立分布式系统的可行性,对企业供电分析平台的架构进行初步分析。关键词:分布式系统;代理;web service中图分类号:tp399文献标识码:b 引言大型工矿企业供电网的规模不亚于城乡配电网,如大庆油田内部电网、胜利油田内部电网、兖州矿区内部电网等。这些企业在生产过程中,供电系统的安全稳定运行是保证安全生产的重要方面。当电网结构、负荷变化和企业供电系统出现异常运行状况时,需要运
3、行人员及时做出决策,由于企业供电网运行的复杂性和企业技术力量的限制,难以做到以上几个方面。迫切需要建立一个可交互、通用性好、执行效率高、数据存储结构规范、功能强大的企业供电网分析服务平台。使该平台适用于对电网进行各种分析的计算仿真,而且可与异构的软件交互分析数据,辅助运行人员对供电系统进行分析和仿真是提高企业供电网管理水平的重要手段。 企业供电系统分析平台的环境建立,需要投入大量的资源,输入电网的各类信息,数据多、管理难度大。平台能通过建立的各类模型对供电网进行分析。采用单计算机方式,数据无法实现共享。为了实现数据集中管理、信息共享和便于维护,平台拟采用分布式的架构。 web service和
4、.net remoting是.net框架构建分布式应用的两种典型方案。其中web service提供了构建跨语言、跨平台、跨系统、高复用性的分布式应用的理想方案;.net remoting是dcom的替代技术,它实质上是建立在公共语言运行环境(clr)之上的进程间通信,较dcom更容易实现、容易配置和具有更安全的模型,支持更多的协议。 文中,介绍了.net框架中基于web service和.net remoting分布式应用解决方案的体系结构及具体实现。比较和评价了两者之间的特点和差异,编制了.net remoting和web service服务器和客户端程序,验证用.net remoting
5、技术建立此分布式系统平台的可用性。最后给出基于.net remoting的企业供电分析平台的架构。 1.net remoting工作原理和开发步骤随着网络技术的发展,分布式处理技术也在飞速发展。微软远程架构是.net第3代internet应用程序开发框架,为位于不同应用程序、不同进程、进行无缝通信的不同机器的对象提供了一个丰富而易于扩充的框架。microsoft.net remoting是. net框架下分布式应用的一种解决方案。它实质是一种分布式处理技术,是微软win32的分布式组件对象模型(distributedcomponent object model,dcom)的改进和替代版本。该技
6、术简化并系统化了创建分布式应用程序的方法,为分布式数据访问提供了一个良好的模型。 1.1 remoting原理 .net remoting的运行机制如图1所示,当一个客户端访问另一个应用程序域内的某个对象的方法时,客户访问的是客户应用程序域内的一个代理(proxy),代理和另一个应用程序域中的对象进行映射。代理是远程对象在客户应用程序域中的一个代理人,使客户端能实现对象的调用。clr(common languageruntime)运用反射访问正被访问的远程对象的元数据,自动创建一个代理。代理最终将调用信息交给一个通道对象。这个通道对象使用通信机制tcp或http实现联接,将客户的请求传给远程应
7、用程序域。一旦这个请求到达目的地,运行域该处的一个通信对象便找出这个调用所要送达的目标对象,如果此时该对象尚未建立,就创建它并将此调用传递给该对象,后者执行这个调用,并通过相同的路径传回结果。 图1.net remoting远程对象调用 fig1.the principle of net remoting remote object work.net remoting处理跨越应用程序域边界传递信息时,需要将远程对象的属性或字段进行封送(marshaling)然后再传递。封送有两种方式:按值封送(mbv-marshal by value)方式,传递某个类型的实例,将值拷贝到远程应用程序域。引用封
8、送(mbr-marshal by reference)方式,是跨越应用程序域边界以引用传递方式传递一个引用类型实例。 .net remoting依赖通道在应用程序域之间传送调用和响应信息。通道中传送信息的应用协议有三种:tcp、http和用于进程间通讯的ipc。三种信息传送协议特点不同:tcp通道适用于在区域网或企业的内网中,不需要穿越防火墙。http适用于跨越并且需要穿透防火墙的情况。同一台计算机进程间的通讯,首选ipc通信方式。 远程对象的创建,即激活(activation)有三种模式:single-callobject模式,每一个客户的每一次调用都创建类的一个新实例,调用结束时销毁。si
9、ngleton object模式,每一个客户的调用共享类的唯一实例。client-activated object模式为每一个使用该类的客户创建唯一实例,当客户使用完销毁对应实例。传输数据可采用soap或二进制数据。 1.2开发remoting的步骤 第一步:建立远程对象。 namespace remoteobject public_gc class remoteobjclass:publicmarshalbyrefobject第二步:创建宿主应用程序,其中包括注册通道、注册服务器激活的远程对象。 #using using namespace remoteobjectint_tmain()tc
10、pchannel*channel=new tcpchannel(8888); channelservices:registerchannel(channel); remotingconfiguration:registerwellknownservicetype(type:gettype(“remoteobject.remoteobjclass,remoteobject”),s”test”,wellknownobjectmode:singlecall); 第三步:建立客户端应用程序,其中包括注册通道、根据url得到对象代理、使用代理调用远程对象。 tcpclientchannel*channe
11、l=newtcpclientchannel(); channelservices:registerchannel(channel); remoteobjclass*pobj=static_cast(activator:getobject(type:gettype(“remoteobject. remoteobjclass,remoteobject”),s”tcp:/localhost:8888/test”); console:writeline(s”return string is:0”,pobj->displaymessage(); 2 web service体系结构和开发步骤web
12、service是.net框架下分布式应用的另一种解决方案,它通过网络发布给其它程序使用,当web service提供者完成web service开发后并通过描述、发现、和集成(universaldescription,discovery,and integration,uddi)中心进行注册后,用户即可通过搜索工具发现所需要的web service,并按照其提供的web service描述语言(web service description language,wsdl)文件所描述的方法对web service进行调用,得到所需要的数据。 2.1 web service的体系架构 web ser
13、vice的体系架构是基于web服务提供者,web服务请求者,web服务注册代理的不同操作来建立的。以角色来表示的web service体系架构模型如图2所示。 图2 web service模型 fig2.the model of web service面向服务的web service体系架构共有三种角色:服务提供者,服务请求者和服务注册代理。简单地说,web服务提供者就是web服务的拥有者,它为其他服务和用户提供服务功能,服务提供者在实现服务之后可以发布服务,并且响应对其服务的,并且响应对其服务的调用请求。web服务请求者就是web服务功能的使用者,它可以利用web服务注册代理查找所需的服务。
14、并且向web服务提供者发送请求以获得服务。weh服务注册代理能够注册已经发布的服务提供者以及所提供的服务,并且提供服务的检索。服务提供者、服务请求者和服务注册代理这三个角色是根据逻辑关系划分的,而在实际应用中,角色可能会出现交叉或者互换。比如,某个web服务既可以是某类web服务提供者,也可以是另外的web服务的请求者。 2.2 web service开发步骤 第一步:创建新的asp.net web服务。启动visual studio2005,选择项目类型下的visual c+项目,然后单击模板下的asp.net web服务,在其中添加类及其函数,注意函数必须声明为web服务方法,即在函数声明
15、的前面加上以下语句:system:web:services:webmethod然后在生成菜单上单击生成解决方案来构建web服务。 第二步:使用web服务。创建一应用程序,通过添加web引用来实现使用web服务。 3应用测试 据以上开发步骤,编制服务器和客户端程序.进行了实例测技术创新试。测试实例为在服务器端运行一个数据输出函数,客户端共享服务器的对象,输出数据,数据大小为25.6kb。 在一个接有8台计算机的100mb局域网上,在两台计算机上,分别测试在remoting采用tcp通道和http通道在三种激活模式下以及采用web service,共享对象建立时间。在客户端依次启动五个客户程序。计
16、算机配置cpu均为1.7ghz intel酷睿双核,2gb内存笔记本电脑。测试结果如下表1所示。 表1共享对象建立时间 tab.1 the time of share object4.net remoting和web service比较通过对.net remoting和web service两种分布式解决方案的比较和分析,对二者的主要特点和区别列于下表2所示:表2 web service和.net remoting特点tab2 the feature of web service and.net remoting5分布式企业供电分析平台的架构分布式的企业供电分析平台,采用客户/服务器模式,其中
17、为了方便信息的管理,客户端采用瘦客户方式,即客户端预先不存贮电网分析的各类。当客户端程序启动时,通过和服务器进行通信,获得相关的图形、和电网基础数据。在客户端启动服务器的各类分析计算模块,服务器计算完成后,经计算结果就地存储,并将计算结果发送到客户端。系统分为服务器和客户端,一台服务器可以对多个客户端提供服务。服务器和客户端之间的通信通道为搭载tcp/ip规约的通道。客户端和服务器端运行tcp/ip协议就可实现通信,对通道的物理介质和通道的路由没有要求。 客户端提供和用户交互的界面,由图形显示、图形编辑、参数设置及通信组件组成,组件以动态库方式运行,用.net remoting可以在速度和激活
18、方式上优于用web service,所以用.netremoting组件实现和服务器的通信。平台架构如图3所示。 6结论 根据企业供电网分析服务软件的需求分析,通过分布式技术建立客户端和服务器模式的系统,来实现信息数据共享,使用、维护。(1)对.net remoting和web service两项分布式技术进行了比较和评价,选用.net remoting技术来实现分布式分析平台。(2)编制了服务端和客户端应用程序,测试了二者在效率上的差异,得出.net remoting通过tcp通道建立对象的时间比web service快近两个数量级。.net remoting通过http通道建立对象的时间和web service几乎一致。(3)对系统的需求进行分析,得出系统的总体框架。 本文作者创新点:对.net remoting和web service两项分布式技术进行了比较和评价,并进行测试;给出了基于.netrem
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论