载入中....
设为首页 收藏本站 联系我们 网站地图
论文网
您现在的位置: 免费毕业论文网 >> 计算机论文 >> 计算机应用 >> 正文
搜索: 论文

企业供电分析平台中分布式技术应用的探究

更新时间 2011-4-19 18:30:06 点击数:

企业供电分析平台中分布式技术应用的探究
The Research of Distributed technology using in analysis and service platform for
Enterprises Power Systems
(1.西安石油大学;2.西安科技大学)董张卓1李建新2
DONG Zhang-zhuo LI Jian-xin
摘要:开发一个企业供电系统分析平台,是提高企业电网管理水平的重要手段。企业供电分析平台的建立,拟采用分布式的架
构。Web Service和.NET Remoting是.NET框架构建分布式应用的两种典型方案。本文介绍了.NET框架中基于Web Service和.
NET Remoting分布式应用解决方案的体系结构及具体实现,对两者进行比较和评价,编制客户端和服务器程序进行测试,验
证了采用.NET Remoting技术建立分布式系统的可行性,对企业供电分析平台的架构进行初步分析。
关键词:分布式系统;代理;Web Service
中图分类号:TP399文献标识码:B
    引言大型工矿企业供电网的规模不亚于城乡配电网,如大庆油田内部电网、胜利油田内部电网、兖州矿区内部电网等。这些企业在生产过程中,供电系统的安全稳定运行是保证安全生产的重要方面。当电网结构、负荷变化和企业供电系统出现异常运行状况时,需要运行人员及时做出决策,由于企业供电网运行的复杂性和企业技术力量的限制,难以做到以上几个方面。迫切需要建立一个可交互、通用性好、执行效率高、数据存储结构规范、功能强大的企业供电网分析服务平台。使该平台适用于对电网进行各种分析的计算仿真,而且可与异构的软件交互分析数据,辅助运行人员对供电系统进行分析和仿真是提高企业供电网管理水平的重要手段。
    企业供电系统分析平台的环境建立,需要投入大量的资源,输入电网的各类信息,数据多、管理难度大。平台能通过建立的各类模型对供电网进行分析。采用单计算机方式,数据无法实现共享。为了实现数据集中管理、信息共享和便于维护,平台拟采用分布式的架构。
    Web Service和.NET Remoting是.NET框架构建分布式应用的两种典型方案。其中Web Service提供了构建跨语言、跨平台、跨系统、高复用性的分布式应用的理想方案;.NET Remoting是DCOM的替代技术,它实质上是建立在公共语言运行环境(CLR)之上的进程间通信,较DCOM更容易实现、容易配置和具有更安全的模型,支持更多的协议[1]。
    文中,介绍了.NET框架中基于Web Service和.NET Remot-ing分布式应用解决方案的体系结构及具体实现。比较和评价了两者之间的特点和差异,编制了.NET Remoting和Web Ser-vice服务器和客户端程序,验证用.NET Remoting技术建立此分布式系统平台的可用性。最后给出基于.NET Remoting的企业供电分析平台的架构。
    1.Net Remoting工作原理和开发步骤随着网络技术的发展,分布式处理技术也在飞速发展。微软远程架构是.NET第3代Internet应用程序开发框架,为位于不同应用程序、不同进程、进行无缝通信的不同机器的对象提供了一个丰富而易于扩充的框架。Microsoft.NET Remoting是.
    NET框架下分布式应用的一种解决方案。它实质是一种分布式处理技术,是微软Win32的分布式组件对象模型(DistributedComponent Object Model,DCOM)的改进和替代版本。该技术简化并系统化了创建分布式应用程序的方法,为分布式数据访问提供了一个良好的模型。
    1.1 Remoting原理
    .NET Remoting的运行机制如图1所示,当一个客户端访问另一个应用程序域内的某个对象的方法时,客户访问的是客户应用程序域内的一个代理(Proxy),代理和另一个应用程序域中的对象进行映射。代理是远程对象在客户应用程序域中的一个代理人,使客户端能实现对象的调用。CLR(Common LanguageRuntime)运用反射访问正被访问的远程对象的元数据,自动创建一个代理。代理最终将调用信息交给一个通道对象。这个通道对象使用通信机制TCP或HTTP实现联接,将客户的请求传给远程应用程序域。一旦这个请求到达目的地,运行域该处的一个通信对象便找出这个调用所要送达的目标对象,如果此时该对象尚未建立,就创建它并将此调用传递给该对象,后者执行这个调用,并通过相同的路径传回结果。
    图1.NET Remoting远程对象调用
    Fig1.The principle of NET Remoting remote object work.NET Remoting处理跨越应用程序域边界传递信息时,需要将远程对象的属性或字段进行封送(Marshaling)然后再传递。封送有两种方式:按值封送(MBV---marshal by value)方式,传递某个类型的实例,将值拷贝到远程应用程序域。引用封送(MBR---marshal by reference)方式,是跨越应用程序域边界以引用传递方式传递一个引用类型实例。
    .Net Remoting依赖通道在应用程序域之间传送调用和响应信息。通道中传送信息的应用协议有三种:TCP、HTTP和用于进程间通讯的IPC。三种信息传送协议特点不同:TCP通道适用于在区域网或企业的内网中,不需要穿越防火墙。HTTP适用于跨越并且需要穿透防火墙的情况。同一台计算机进程间的通讯,首选IPC通信方式。
    远程对象的创建,即激活(activation)有三种模式:Single-callobject模式,每一个客户的每一次调用都创建类的一个新实例,调用结束时销毁。Singleton object模式,每一个客户的调用共享类的唯一实例。Client-activated object模式为每一个使用该类的客户创建唯一实例,当客户使用完销毁对应实例。传输数据可采用SOAP或二进制数据。
    1.2开发Remoting的步骤
    第一步:建立远程对象。
    namespace RemoteObject
    public__gc class RemoteObjClass:publicMarshalByRefObject……第二步:创建宿主应用程序,其中包括注册通道、注册服务器激活的远程对象。
    #using
    using namespace RemoteObjectint_tmain(){TcpChannel*Channel=new TcpChannel(8888);
    ChannelServices::RegisterChannel(Channel);
    RemotingConfiguration::RegisterWellKnownServiceType(Type::GetType("RemoteObject.RemoteObjClass,RemoteObject"),S"Test",WellKnownObjectMode::SingleCall);
    ……
    }第三步:建立客户端应用程序,其中包括注册通道、根据URL得到对象代理、使用代理调用远程对象。
    TcpClientChannel*Channel=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 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 Service的体系架构是基于Web服务提供者,Web服务请求者,Web服务注册代理的不同操作来建立的。以角色来表示的Web Service体系架构模型如图2所示。
    图2 Web Service模型
    Fig2.The model of Web Service面向服务的Web Service体系架构共有三种角色:服务提供者,服务请求者和服务注册代理。简单地说,Web服务提供者就是Web服务的拥有者,它为其他服务和用户提供服务功能,服务提供者在实现服务之后可以发布服务,并且响应对其服务的,并且响应对其服务的调用请求。Web服务请求者就是Web服务功能的使用者,它可以利用Web服务注册代理查找所需的服务。并且向Web服务提供者发送请求以获得服务。Weh服务注册代理能够注册已经发布的服务提供者以及所提供的服务,并且提供服务的检索。服务提供者、服务请求者和服务注册代理这三个角色是根据逻辑关系划分的,而在实际应用中,角色可能会出现交叉或者互换。比如,某个Web服务既可以是某类Web服务提供者,也可以是另外的Web服务的请求者。
    2.2 Web Service开发步骤
    第一步:创建新的ASP.NET Web服务。启动Visual Studio2005,选择项目类型下的Visual C++项目,然后单击模板下的ASP.NET Web服务,在其中添加类及其函数,注意函数必须声明为Web服务方法,即在函数声明的前面加上以下语句:[System::Web::Services::WebMethod]然后在生成菜单上单击生成解决方案来构建Web服务。
    第二步:使用Web服务。创建一应用程序,通过添加Web引用来实现使用Web服务。
    3应用测试
    据以上开发步骤,编制服务器和客户端程序.进行了实例测技术创新试。测试实例为在服务器端运行一个数据输出函数,客户端共享服务器的对象,输出数据,数据大小为25.6KB。
    在一个接有8台计算机的100MB局域网上,在两台计算机上,分别测试在Remoting采用TCP通道和HTTP通道在三种激活模式下以及采用Web Service,共享对象建立时间。在客户端依次启动五个客户程序。计算机配置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分布式企业供电分析平台的架构分布式的企业供电分析平台,采用客户/服务器模式,其中为了方便信息的管理,客户端采用瘦客户方式,即客户端预先不存贮电网分析的各类。当客户端程序启动时,通过和服务器进行通信,获得相关的图形、和电网基础数据。在客户端启动服务器的各类分析计算模块,服务器计算完成后,经计算结果就地存储,并将计算结果发送到客户端。系统分为服务器和客户端,一台服务器可以对多个客户端提供服务。服务器和客户端之间的通信通道为搭载TCP/IP规约的通道。客户端和服务器端运行TCP/IP协议就可实现通信,对通道的物理介质和通道的路由没有要求。
    客户端提供和用户交互的界面,由图形显示、图形编辑、参数设置及通信组件组成,组件以动态库方式运行,用.NET Remoting可以在速度和激活方式上优于用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两项分布式技术进行了比较和评价,并进行测试;给出了基于.NETRemoting的分布式企业供电分析平台的架构。
    作者对本文版权全权负责,无抄袭。
    参考文献
    [1]陈绪军,胡君红等..NET框架Web Service和.NET Remoting分布式应用解决方案及评价[J].计算机应用研究,2003,(9):110-112[2]David Chappell,荣耀译..NET大局观(第2版)[M].电子工业出版社.2006.273-281.
    [3]李平,胡立栓等.基于Web服务的分布式文件系统模型[J].微计算机信息.2010,1-3:212-213[4]周世雄编著..NET经典范例教程[M].清华大学出版社.
    2004.310-338.
    作者简介:董张卓(1962-),男,山西万荣人,博士,高级工程师,主要从事电力自动化方面科研教学工作Biography:DONG Zhang-zhuo,male,Shan Xi Province,doctor,senior engineer,Research area:Power System Automationresearch and teaching.
    (710065陕西西安西安石油大学)董张卓(710054陕西西安西安科技大学)李建新(Xi’an Petroleum University,710065,China)DONG Zhang-zhuo(Xi’an University of Science and Technology,710054,China)LI Jian-xin 返回栏目页:计算机应用论文

设为主页】【收藏论文】【保存论文】【打印论文】【回到顶部】【关闭此页