CORBA技术在动态交通分配系统中的应用
摘要:介绍了一个在分布式计算环境下可以实时运行的动态交通分配系统。该系统基于CORBA技术,可进行动态起迄点出行分布矩阵的估计和预测,还可以进行系统一致性控制。
关键词:动态交通分配 CORBA 并行计算
随着经济发展,交通拥挤、道路阻塞、交通事故和交通污染等问题越来越严重地困扰着世界各国的城市。应运而生的智能交通系统ITS(Intelligent Transportation Systems)通过使用先进的计算机技术、电子技术和通信技术以提高现有交通系统的效率,给人类带来了新的希望。根据美国智能交通协会ITS AMERICA(Intelligent Transportation Society of America)的定义,ITS的两个基本组成部分是先进交通信息系统ATISjavascript:window.open(this.src);" style="cursor:pointer;"/>(Advanced Traveler Information Systems)和先进交通管理系统ATMS(Advanced Traffic Management Systems)。ATIS使用视觉和听觉设备搜集相关交通信息,然后分析、传递和提供信息,从而在起点到终点的旅行过程中,向出行者提供实时帮助,使整个旅行过程舒适、方便、高效;ATMS将车辆作为管理系统的一部分,利用它感知并预测未来交通拥挤堵塞,并且给出交通管理最佳策略。
保证ITS(尤其是ATMS)运行的核心方法是动态交通分配DTA(Dynamic Traffic Assignment)。所谓动态交通分配,就是将实时交通流量在路网各路段上进行合理分配,为旅行者提供出发时间与方式选择,为车辆提供道路诱导系统,引导车辆行驶在最佳线路上,并提供诱导系统与交通控制系统的相互联系。
美国德克萨斯州奥斯汀大学于2001年开发出了一套实时DTA系统——DYNASMART-X。本文基于其研究成果,提出了一个CORBA分布式实时DTA系统的框架。
1 CORBA技术
从1989年成立起?熏对象管理组织OMG(Object Management Group)一直致力于使用面向对象技术,使基于对象的软件在分布异构环境中可重用、可移植、可互操作。公共对象请求代理体系结构CORBA(Common Object Request Broker Architecture)即是由OMG提出的应用软件体系结构和对象技术规范。其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。
CORBA技术是一个重大革新,它解决了系统集成中两大著名问题:(1)开发客户机/服务器应用的困难;(2)快速集成新老系统的问题。它被认为是新出现的分布式对象管理DOM(Distributed Object Management)技术的规范。DOM技术在基本的分布式计算服务上提供了一个更高层次的面向对象接口。最高层次的规范叫做对象管理体系结构OMA(Object Management Architecture),见图1。其中,ORB的作用是对其他部件间的请求进行传递;CORBA服务提供了一些基本的系统服务,如命名、持久性和事件通知等;CORBA设施包括用户界面、信息管理等设施;CORBA域对应于特定的应用域,如财政、制造和远程通信技术等。javascript:window.open(this.src);" style="cursor:pointer;"/>
集成应用对象的关键是使用接口定义语言IDL(Interface Definition Language)定义的标准规范。一旦所有应用和数据有了一个与IDL兼容的接口,通信就会独立于物理位置、平台类型、网络协议和程序语言。一个使用CORBA创建的信息系统仲裁这些软件对象间的控制和信息流。
广泛使用的CORBA2.0 ORB是在对象间建立客户机/服务器关系的中间件。使用一个ORB,一个客户机对象可以透明地调用一个服务器对象的一个方法,这个服务器对象可以在同一台机器上,也可以在一个网络上。ORB截听调用请求,并负责找到一个对象,执行这个请求,传递参数,调用方法并返回结果。此客户机不需要知道对象的位置、编程语言、操作系统或其他任何不属于对象接口的方面。注意到客户机/服务器作用只是协调两个对象之间的相互作用非常重要。
2 动态交通分配
DTA系统是一个复杂的系统,在保证对交通系统中周期性和非周期性的事件进行实时响应的同时,还需要对数以万计的路段、控制器和车辆的历史、当前及预测数据进行管理。DTA系统的实时运行要求系统同时满足两个条件:(1)系统响应避免系统故障;(2)系统响应及时,如果不能及时响应,系统也不致停止运行。计算环境和软件工具是保证一个复杂系统实时响应的两个主要因素。
2.1 实时运行机制
为了满足实时运行的要求,需要一个机制,使DTA系统实时接收测量值,并启动相应的算法单元,传递结果到相应的外部设备。图2给出了这种实时运行机制。在当前运行时段Ti的起点,DTA系统接收并评价刚刚过去的运行时段Ti-1的测量值。基于这些测量值,整个系统及其中的