前言:想要写出一篇引人入胜的文章?我们特意为您整理了中间件在计费系统中的运用范文,希望能给你带来灵感和参考,敬请阅读。
本文作者:王秀敏、袁晓红、赵丽娜 单位:渤海大学信息科学与工程学院、首都师范大学信息工程学院
0引言
中间件[1]是设计用来在分布式系统中管理复杂性和异构性的软件技术,介于操作系统(OS,OperatingSystem)和应用程序之间,提供独立于OS和硬件的公共应用程序接口(API),比OS提供的如sockets的API高级,允许运行于分布式系统中一个或多个机器上的若干进程通过网络互相作用,通过数据管道连接分布式应用的各个部分并在它们之间传送数据,不仅解决了异构系统平台间的通讯和资源共享问题,还缓解了单调乏味和易于出错的编程工作,显著减轻了应用程序员的负担,见图1。
从20世纪90年代到现在,中间件技术发展日趋成熟,最初只是在支持客户/服务器(Client/Server)两层(Two-Tier)体系结构方面提供互用性,后来是多层体系结构(Multi-Tier),被广泛宣传的是OSF(theOpenSoftwareFoundation)的DCE(DistributedComputingEnvironment),OMG(ObjectManagementGroup)的CORBA(CommonObjectRequestBrokerArchitecture),和微软的COM/DCOM/COM+。现在中间件已经以服务器平台的面目出现,如BEA的Tuxedo[2,3],IBM的CICS(CustomerInformationControlSystem)TransactionServer等。
1中间件种类和优点
中间件,掩藏了分布式系统[4~6]的程序员所必须处理的异构性,完全掩藏了硬件和网络的异构性,大部分中间件还掩藏了OS或编程语言或二者全部的异构性,有些中间件,如CORBA,都不必关心是谁实现和提供的,连同种中间件标准的不同供应商实现的不同都掩藏了。这些都使得复杂并且困难的分布式系统的异构性完全消失,对程序员透明,最终通过使用中间件,开发人员及用户等都不必再关心诸如位置、并发性复制、故障和机动性等。
1.1中间件种类
已经开发出来的中间件具有如下几类:
(1)分布式表(DT,DistributedTuples)应用最广泛的是分布式关系数据库,其SQL允许程序员操纵这些表的集合。分布式关系数据库还提供了多重事务处理。事务进程监视器(TPM,TransactionProcessingMonitors),为开发和运用分布式应用提供工具和环境。
(2)面向消息的中间件(MOM,Message-OrientedMiddleware),通过消息队列提供程序间数据交换,从此可于网络上建立分布式的应用程序。如OS的Mailbox。
(3)远程过程调用(RPC,RemoteProcedureCall),使网络上的应用成为分布式的。不过,RPC通常是同步的,只有使用多线程才可以实现并行机制,而且,其处理异常的能力有限。
(4)分布式目标中间件(DO,DistributedObject/ORB,ObjectRequestBrokers/SOA,service-orientedarchitecture/SRB,ServiceRequestBrokers),使得异构网络上包含应用的目标成为分布式的和共享的。如CORBA(CommonObjectRequestBrokerArchitecture),由OLE(ObjectLinkingandEmbedding)和COM(ComponentObjectModel)发展而来的DCOM/COM+,基于XML和HTTP(HyperTextTransferProtocols)的SOAP(SimpleObjectAccessProtocol),JAVA的RMI(RemoteMethodInvocation)等。
各种类别和资源管理的关系,见表1。
中间件大体可分为几个范畴(1)面向数据的,如上DT;(2)面向消息的,如上MOM;(3)面向请求的,如TPM,RPC,DO/ORB;(4)面向服务的,如上SOA。但是,它们之间的界限并非很明显,有的甚至互相交叉。今天,我们正在面临诸如分布式软件,应用集成,多样性平台,多样化协议,多样化设备,Internet等等复杂困难,SOA技术为此提供了基本解决方案。中间件如BEA的Tuxedo(类似于SRB),和IBM的CICSTransactionServer,都具有面向服务的体系结构。
1.2中间件的优点
中间件提供了比OS和网络服务更有效的功能,基本优如下(1)在网络上应用和服务间交互时位置透明;(2)所提供的支持异构平台的同步,异步和对话消息等应用接口,全部透明,使应用独立于OS和网络服务及硬件,从而简化了分布式应用开发工作,使应用易于维护和管理,易于扩展,适应性增强,开发周期缩短但使用寿命延长;(3)使用数据依赖性路由机制,可以基于消息上下文和优先权调整其路由,从而维持事务处理的有效性和保证最佳效率及灵活性,在营业和技术环境中,缩短响应时间;(4)基于系统实时负载和吞吐量,通过复制分布式网络上的应用服务和动态平衡所有有效资源负载,使应用可以在不同的分布式的节点上,并行处理请求和多重事务,并且其事务队列,允许分布式应用一起异步工作,保证最高可靠性和吞吐量及应用的效率。①通过多层体系结构,优化异构环境下的事务处理,提高处理效率和改善资源管理;②通过强有力的基于标准的API,可以整合和充分利用已存在的资源;③持续提升计算平台和开发工具而不影响应用;④通过在多层次重复使用,减低开发成本,提高程序员生产力;⑤由于其可靠,安全,有效,准确,易维护,易管理,从而提升应用软件质量。
1.3使用中间件时面临的问题及其解决办法
中间件主要解决的是分布式应用的连接和异构问题,但中间件并非万能,如:(1)理论与实践有相当的差距,开发者必须依赖于中间件生产商;(2)大量不合理的中间件成为使用中间件的障碍,开发者必须慎重选择;(3)当中间件服务提升编程分布式应用级别时,应用开发者就面临很大困难;(4)解决这三个问题的关键是必须明白应用问题和使之成为分布式应用的中间件服务的价值,为此,开发者须清楚哪些功能是需要的,这有三类a.分布式系统服务,这包括通讯,程序交互,数据管理等服务,这类有RPC,MOM,ORB;b.使应用能够存取基于网络资源的服务,这类有TPM,RDBMS服务如SQL,ODBC,X/OpenCLI等;c.中间件管理服务,可持续监视应用和系统的功能,以保证分布式环境的最佳性能。
中间件在计费系统中的应用越来越广泛,比如对于前台客户服务端的应用,使用其独立于OS和网络服务及硬件的API,可以轻易使交互界面整齐一致,和扩展应用的功能。
2.1两层与多层体系结构的差异
在使用中间件过程中,Client/Server的两层体系结构在实际应用中已暴露出一些问题。由于在这种体系结构下,客户端程序直接访问系统资源,很容易造成网络上数据流量过大,甚至导致系统瘫痪,而且可维护性差、不易扩展。相比之下,多层体系结构有着明显的好处。进程和资源管理:通过对服务进程的管理,使得系统能够用尽量少的服务进程处理尽量多的请求,减少进程的启动/终止次数,控制服务进程的总数,使得服务器在设定的负载下高效地工作,而且,当请求服务的数量超过了服务器的处理速度时,中间件还可以把请求排队进行缓冲。对于数据库系统,任何服务进程访问数据库都要和数据库建立连接,通过长驻服务进程,保持和复用与数据库的连接,可以大大减少启动/终止与数据库连接的次数和时间。事务优先级:通过指定事务优先级,保证优先级高的事务能尽快得到响应。
2.2计费系统面临的问题
在计费系统中,无论是前台客户端的交互程序,还是后台的批处理程序,对数据库的访问都是极其频繁的,因而对数据库系统的吞吐量的要求极高,仅就前台而言,如果客户端直接(或通过存储过程即StoredProcedure)访问数据库,则不仅不利于安全控制,难以防止黑客的恶意攻击,同时,由于网络流量太大,容易形成网络瓶颈和数据库访问瓶颈,而且,数据库连接数会过多,从而影响数据库系统的响应速度,降低系统性能。
2.3解决途径
(1)使用中间件将系统分为三层(或多层),使事务逻辑和用户界面分离,以此优化系统结构。事务逻辑放在应用服务层,则软件的维护集中在应用服务层,而客户端用户界面则可以整齐一致,易于管理。而且由于是使用中间件的独立于OS和网络服务及硬件的API,增强了系统的可维护性和扩充能力。
(2)将客户端与系统资源(如数据库)隔离开来,由中间件负责进行鉴别管理,鉴定服务和授权服务,客户端无权限直接访问数据库,从而保证数据私有性。
(3)划分出事务级权限,通过中间件的安全机制控制其访问。虽然数据库的权限有DDL和DML,但都属于数据库表级的权限,而实际应用中往往以事务或角色为主,采用三层体系结构可更加灵活、有效地实现事务级权限控制。
(4)采用三层体系结构,通过应用服务器,避免了客户端与数据库直接连接。应用服务器与数据库服务器可方便地采用宽带网连接,也就解决了数据库访问瓶颈及网络瓶颈。
(5)通过增加应用服务器来分担部分应用服务工作,可直接提高系统性能和处理速度,而原来的应用服务器基本不受影响,而且可有效地解决客户访问服务层的瓶颈。
(6)利用中间件的路由机制、平衡负载功能,提高系统的整体性能和工作效率。除此之外,采用三层应用体系结构,原有性能较差的设备可以更好地加以利用,不仅可以充分利用原有系统资源,而且使整个系统性能得到提高。
3结语
中间件的应用越来越广泛,特别是在分布式异构平台和网络环境下,它使得极其复杂的分布式应用开发问题变得特别简单,不仅提高了应用软件的开发速度,而且,最大限度地保证了软件质量,提高了可靠性,由于独立于开发平台和硬件环境,从而保证了所开发软件的可重复使用,可移植性和可扩展性,大大降低了开发成本。电讯业发展迅速,对计费系统性能要求越来越高,功能要求越来越多,选择合适的中间件将对开发者有着重大影响。