第18卷第,期江西电力职业技术学院学报Vol. 18, No. 12005年3月Journal of Jiangxi Vocational and Technical College of ElectricityMar . 2005计算机中间件技术时军(江西电力职业技术学院,江西南昌330032)摘要:介绍应用于软件开发的中间件技术及在电力行业中的应用。关键词:中间件;网络;系统;管理中图分类号:TP319文献标识码:B文章编号:1673一0097(2005)010031一(02)0前言此类中间件使应用开发简单,但如果是透过广域网使用,会带来严重的效率问题,因为在低速网上来回交互SQL语句 随着计算机技术的发展,IT厂商出于商业和技术利会使通信流量过大,同时对数据压缩、加密带来不便。益的考虑,各自的产品之间形成了差异,于是,如何屏蔽( 3)远程过程调用中间件不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂性,就成为技术不断进步之后,人们不能不面对应用所经常采用的一种同步式的请求应答协议。通过这RPC (Remote Procedure Call)机制是早期开发分布式的现实问题。显然,由一个厂商去统一众多产品之间的差种协议,程序员编写客户方的应用,需要时可调用位于远异是不可能的,而由计算机用户在自己的应用软件中去端服务器上的过程。弥补,由于技术深度和广度的要求,必然也是勉为其难。 RPC是一种广泛使用的分布式应用程序处理方法。于是,中间件(Middleware)应运而生。中间件试图通过屏当编译一个采用RPC机制的客户方时,编译器告之代表蔽各种复杂的技术细节使技术问题简单化。在中间件产远程功能调用的句柄,客户方需要调用远地的过程时,引生之前,应用软件直接使用操作系统、网络协议和数据库用相应的功能调用的句柄,由RPC机制来负责客户方程等开发,这些都是计算机最底层的东西,越底层越复杂,序实时的调用到远地的过程。服务器上的过程返回后,客开发者不得不面临许多很棘手的问题,如操作系统的多户方的程序得到结果并继续往下进行。在采用RPC机制样性,复杂的网络程序设计、管理,复杂多变的网络环境、时,调用远程的过程只需去引用它,而不必告知网络地域数据分散处理带来的不一致性等问题。这些与用户的业或其它底层信息。一个应用程序使用RPC来“远程”执行务没有直接联系,但又必须解决。于是,有人提出将应用一个位于不同地址空间里的过程,从效果上看和执行本软件所面临的共性问题进行提炼、抽象,在操作系统之上地调用相同。在RPC模型中,client和server只要具备了再形成一个可复用的部分,供成千上万的应用软件重复相应的RPC接口,并且具有RPC运行支持,就可以完成使用,这一技术思想最终构成了中间件这类的软件。相应的互操作,而不必限制于特定的server。因此,RPC为1应用于软件开发的中间件client/server分布式计算机提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此 中间件的分类方式很多,有些软件在中间件的概念也具有一定的局限性。比如,RPC通常需要一些网络细节产生以前就已经存在,有些软件虽然不是作为中间件开定位server;在client发出请求时,要求serve:必须是活动发出来的,但是符合中间件的定义,也把它归于中间件的的等等。范畴.1998年IDE和Gig。在各自的报告中给出了中间件 RPC机制可用以构造客户机/服务器方式的应用,但的分类,按照IDC的分类方法,中间件可分为六类。由于它是同步方式,因而在工作的时候,有一方不能工作(1)终端仿真/屏幕转换 将导致RPC失败,这在网络故障、机器故障存在的情况用以实现客户图形机用户接口与已有的字符接口方 下,这一要求是很难保证的。还有一点值得注意的是,不式的服务器应用程序之间的互操作。管客户方能做什么或做的多快,它必须依靠服务方才能 (2)数据访问中间件有效工作。有些恢复机制可以在一个远程调用阻塞时转适用于应用程序与数据源之间的互操作模型,客户 而去调用另一个服务器上的过程,但这种路由方式也会端使用面向数据库的API,以提请直接访问和更新基于服影响效率。也有的RPC机制采用异步方式,客户方非阻塞务器的数据源,数据源可以是关系型、非关系型和对象地调用远端的过程,但这种方式不太标准而且很难采型。这类中间件大都基于SQL语句,采用同步通信方式。用。另外,由于大多数RPC机制很难建立点到点的关系,收稿日期:2004-05一11作者简介:时军(1952-),男,安徽洒县人,副教授.万方数据时军:计算机中间件技术第5期万方数据因而也很难用在面向对象的编程过程中。( 4)消息中间件尽管消息中间件不像RPC机制那样流行,但越来越 多的分布式应用采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用,当 一个事件发生时,消息中间件通知服务器方应该进行何种操作。事件可以是一种请求,也可以是一种替示,警示来到后,即可进行某种处理,但不需等待应答。使用消息中间件编程采用的是消息中间件的API,可以很好地扩展到不同的操作系统和硬件平台上。消息中间件的核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息发送。消息中间件可以既支持同步方式,又支持异步方式,实际上它是一种点到点的机制,因而可以很好地适用于面向对象的编程方式。中间件领域目前最热门的技术是异步的消息中间件,异步中间件技术比同步中间件技术具有更强的容错性,在系统故障时可以保证消息的正常传输,因而在过去的两年里增长迅速。异步中间件技术可以分为两类:广播方式和分布/订阅方式。广播方式把消息分发给系统的所有用户;分布/订阅方式可以指定哪种类型的用户可以接收哪种类型的消息,由于分布/订阅方式更加智能有效,事实上已成为异步中间件的非正式标准。( 5)交易中间件交易中间件是专门针对联机交易处理系统而设计 的。联机交易处理系统需要处理大量的并发进程,处理并发涉及到操作系统、文件系统、编程语言、数据通信、数据库系统、系统管理和应用软件,是一个相当艰巨的任务,但是工作的难度可以通过采用一个消息中间件来简化。消息中间件就是一组程序模块,用以大大减少开发一个联机交易处理系统所需的编程量。X/OPEN组织专门定义了分布式交易处理的标准及参考模型,把一个联机交易系统分成资源管理(RM )、交易管理(TM)和应用(AP)三部分,定义了应用程序、交易管理器、多个资源管理器是如何协同工作的。资源管理器是指数据库和文件系统,交易管理器可归人交易中间件。交易中间件管理由应用声明和提交的交易,并通过两阶段提交协议等方式保证分布式交易的完整性,控制并发,实现交易路由和均衡负载。交易中间件理论上相对成熟,功能和性能界定清晰, 但基本上适用联机交易系统,如银行业务系统、定票系统等。尽管交易系统也是消息,交易中间件也是基于消息的传输,也可支持同步和异步方式,但与消息中间件的定位差距较大,属于一种较专门的中间件。( 6)对象中间件面向对象的技术一直是软件界努力追求的目标,传统 的对象技术通过封装、继承及多态提供了良好的代码重用功能。但这些对象只存在一个过程中,外面的世界并不知道它们的存在,也无法访问它们。面向对象的中间件建设要解决这些问题,它提供一个标准的构件框架,能使不同厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。例如,我们通过简单的组装或扩展己有的构件就可以建立一个客户机/服务器结构的信息系统。面向对象的中间件技术的目标就是为软件用户及开发者提供一种应用级的即插即用的互操作系统,就像现在使用集成块和扩展板一样。有关对象中间件的标准相继问世,像OMG组织的 CORBA, 标准都极大地促进了对象的中间件技术的发展,随着面向Microsoft的COM以及IBM公司的SOM等,这些对象的应用系统的广泛应用,对象中间件的需求也在逐年加大。对象技术的优势和对象中间件的标准化,促使对象的中间件的功能将最终涵盖其它几类中间件的功能而成为中间件产品的主流。2中间件技术在电力行业的应用 电力行业的信息化系统,经过多年的建设,已经逐渐形成了一个复杂的体系,重点工程主要有几类,即发电厂、变电站自动化监控系统、电网调度自动化系统、电力负荷管理系统、管理信息系统、电力通信网络监控系统等,各种系统都已具备了一定的应用基础,许多系统已经形成了比较成熟的产品,如果能将中间件技术引人其中,必将使电力信息技术的发展如虎添翼。(1)电力信息管理系统 电力信息管理系统应包括电网实时、办公自动化、计 划、统计、生产、燃料、经济活动分析(以部颁关键指标体系为基础)、设备物质、人事、用电营业、综合服务等子系统。MIS系统功能繁多,结构复杂,并需要针对不同的电力企业开发不同的MIS系统,根据不同的业务范围开发出各种局域网、城域网、广域网的应用。随着WEB技术的逐渐成熟,企业管理也将逐渐建立起基于Internet/Intar-net的应用,因此消息中间件,交易管理中间件、应用服务器都会在电力企亚的MIS系统中发挥重要的作用。对于变电站的百动化监控,许多系统已经实现了分 ( 2)发电厂、变电站自动化监控层处理,许多索统已经把电站与间隔层之间的通信放到以太网上,尽管变电站的自动化监控系统是在一个局域网内,但由于网络上的信息流量较大,业务处理繁重,仍然可以基于交易中间件实现为三层结构。对于电厂的自动化系统,一般可以由厂级监控信息 系统(SIS)和厂级管理信息系统(MIS )、辅助车间监控系统、网络站监控系统等组成,这些系统分布在一个发电厂范围内的网络中,对外与电网运营系统、电网调度系统、电力集团的MIS系统互连,系统存在大量的数据传输和数据集中处理,因此系统可以采用消息中间件和交易中间件来构建三层结构的应用。( 3)电力通信网络监控系统在电力通信网络监控系统中,由于网络的监控管理 需要实时采集遍布全国的各种网源设备的管理数据,因此消息中间件将大有用武之地。同时,如果未来的网络管理走向TMN的话,由于TMN体系结构是以面向对象技术为基础的,因此基于对象中间件来开发将最为合适。 (4)电网调度自动化系统(SCADA/EMS/DMS)许多新的SCADA系统已经开始基于网络的分层结 构实现,并独立出来数据采集系统和数据处理系统,系统将在一个广域网环境中实现对电网调度的集中安全监控和管理,如果新的SCADA系统能够基于交易中间件实现成三层结构的应用模式,将会在系统的开发周期、效率、安全、可靠性方面得到很大的提高,并会对以此为基础的EMS和DMS系统提供更好的支持。因此,交易中间件将使此类系统逐渐得到广泛的应用。3结束语电力企业的各种信息化系统随着网络技术的发展将 会更加成熟,而中间件作为支持网络化应用的基础支撑平台,将对各种分布式应用系统的开发、管理和部署带来巨大的好处,在不久的将来,中间件将会像操作系统和数据库一样,成为开发各种电力应用系统的必选基础软件。