第 24卷 第 2期
2004年 3月
长安大学学报(自然科学版)
Journal of Chang’an University(Natural Science Edition)
Vo1.24 No.2
M ar.2004
文章编号 :1671—8879(2004)02—0061-05
基于公共对象请求代理体系的智能交通系统
张建军 ,王保保。
(1.长安大学 研究生部,陕西 西安 710064;2.西安电子科技大学 计算机学院 ,陕西 西安 710071)
摘 要:探讨 了国内外智能交通的现状,从智能交通的应用程序的结构方面,引入 了中间件的技术,
重点放在基于分布式计算环境下的公共对象请求代理体 系(CORBA)的机制分析,给出了智能交通
系统应用 CORBA的优势。最后结合陕西省公安交通综合信息系统分析了应用系统的架构。
关键词 :交通工程;智能交通 系统;公共对象请求代理体系;分布式计算
中图分类号:U491;TP393 文献标识码 :A
ITS based on common object request broker architecture(CORBA)
ZHANG Jian—jun .WANG Bao—bao
(1.School of Postgraduate,Chang’an University,xi’an 710064,China;
2.School of Computer Science,Xidian University,Xi’an 710071。China)
Abstract:The status of application of ITS was discussed,and the technique of middle was prsent—
ed from the development of software application architechture,mainly,with foucus on the CORBA
architecture based on distributed computing environment.characteristics and related knowledge tO
obj ect mode1.The implementation of Shaanxi Police and Transportation Integrated Information
Management System was analyzed.
Key words:traffic engineering;ITS;CORBA;distributed computing
0 引 言
智能交通系统(ITS)是一个庞大复杂的系统,
与一般技术系统相 比,ITS建设过程中的系统整体
性要求更加严格。这种整体性体现在 ITS建设涉
及众多行业领域,是社会广泛参与的复杂的系统工
程 ,从而造成复杂的行业问协调问题。实施这些系
统和服务并非简单 ,集成系统会伴随很多困难 ,信息
需要从一个系统传递到另一个系统,而不是用多个
感应器和系统来完成 同一个任务。集成要求 ITS
中每个系统协调工作,提供给使用者和交通管理部
门最大效益。ITI Benefits中的研究文章“展望与经
,
收稿 日期 :2003—07—22
作者简介 :张建军(1958一),男 ,陕西户县人,长安大学高级工程师.
验”指出:集成交通系统的好处包括提高了交通安全
性(如事故量降低),减少了出行时间、延误、油耗和
尾气[1 。在确定系统框架结构方案中所采用的基础
技术是面向对象的系统结构分析技术 ,为完成 ITS
和各种类型的交通管理控制中心的整合 、以及不同
系统与传统的交通运输系统中的已有信息系统的有
效衔接,本文采用公共对象请求代理体系(Common
Object Request Broker Architecture,CORBA)规范
技术完成系统的整合。CORBA是在不 同平 台、不
同语言之间实现对象通信的模型,它为分布式应用
环境下对象资源共享、代码重用 、可移植和对象问相
互访问建立了通用标准,同样也为在大量硬件 、软件
维普资讯
62 长安大学学报(自然科学版) 2004血
之 间 实 现 互 操 作 提 供 了 良好 的解 决 方 案。与
DCOM 和 RIM 相 比 CORBA 体系结构 独立 于语
言、独立于工作平台等方面的特点,使得基于 COR—
BA开发 的应用系统在 网络实 现中具有更 大的优
势。除 了 CORBA 能 与 JAVA,c/c ,Delphi、
Visual Basic等紧密结合外,CORBA与 EJB(Enter—
prise Java Beans)的完美结合,使得异构的分布式应
用处理成为现实,可以使服务器端的应用具有动态
扩展性 ,使不同厂商的产品能运行在同一服务器下,
真正意义上实现“即插即用”。
1 CoRBA概述
OMG(Object Management Group)组织制定的
CORBA标准 目前己经成为分布对象计算技术的一
个重要标准。OMG组织定义了对象管理体系结构
(OMA)作为分布在异构环境 中的对象之间交互 的
参考模型。OMA 由 5个部分组成 :对象请求代理
(ORB)、对象服务、通用设施 、域接 口和应用接 口。
ORB实现客户和服务对象之间的通信交互,而其他
4个部分则是构架于 ORB之上适用于不同场合 的
部件 。CORBA标准就是针对对象请求代理系统制
定的规范。CORBA 3.0中的规范分为三大类 :Java
和 Internet集成、服务质量(Q0S)控制和 CORBA
组件体系。
图 1给出了 CORBA系统的体系结构图。
瓦] 厂雨而 ]
客
户
桩
ORB
客户
桩
接口仓库 l1 l I I I上下文对象
上下文对象
I堕墨三墨 I I壅墨垒壁 l
图 1 CORBA系统的体系结构图
CORBA分布式机制除传统 的多进程、同步和
异步通信方式等方法外,CORBA用如下手段增强
分布式(客户机/111~务器)计算 。
1.1 允许客户机与服务器间灵活变化的关系
传统的客户机/111~务器中,客户机和服务器之间
的关系是固定的,即客户机总是提 出一个执行任务
的请求,而服务器总是完成所请求的任务。CORBA
允许这 种固定关系,同时提供更灵 活 的关系。在
CORBA内一个对象既可 以作为客户提 出请求 ,同
时也可以作为一个请求 的服务器,客户与服务的关
系己经成为相对 的、可变化 的。这实际上是 COR—
BA 的面向对象方法的一个产物,对象的封装性使
得对象之间的请求关系更加灵活。
1.2 CORBA引入 了代理机 制
CORBA在传统的客户和服务之间加入了新的
一 层——代理,代理把来 自客户的抽象服务请求映
射到特定的服务实现上。代理的加入有以下优点 :
(1)客户和服务无须直接了解对方。客户只须
知道访问接 口,不需要知道服务具体的位置、运行环
境等无关信息,服务的定位由代理器完成,客户端无
须编写任何定位功能代码 。
(2)客户与服务的对应关系不再是单纯 的一对
一 关系。
加入代理后,由于代理屏蔽了服务的位置 ,因此
客户和服务的实体对应关系是多对多的,即一个服
务可响应多个客户的请求,一个客户也可以请求多
个服务体。在这种机制下,代理可以提供服务的负
载平衡,提高服务的可用率,从而提高了整个系统的
效率。
客户应用程序能在运行时定位新的对象并与之
交互 ,这使得应用程序的可扩展性更加良好。
由此可看出 CORBA在提高组件重用性、增强
分布计算功能方面具有的突出特点。
I 引人中间件作为事务代理 。
Ⅱ 客户程序与服务器程序完全分离。
Ⅲ 与面向对象的建模概念相结合。
lV 引入接 口定义语言描述服务对象功能。
2 对象管理体系结构
2.1 对象请求代理
在传统的基于客户机/111~务器模式的应用程序
开发过程中,项目开发人员遵循公开的标准或 自由
设计模块间的协议 ,这样的协议依赖于网络类型、实
现语言、应用方式等。引入 ORB后,客户只要遵循
服务对象的对外接 口标准向服务对象提出业务请
求,由ORB在分布式对象间建立客户一服务对象关
系。总结起来 ,ORB的作用包括 :
(1)接受客户发出的服务请求 ,完成请求在服务
对象端的映射。
(2)自动设定路由寻找服务对象。
(3)提交客户参数。
(4)携带服务对象计算结果返回客户端 。
ORB通过一系列接 口和接 口定义中说明的要
实现操作的类型,确定提供的服务和实现客户与服
服 务器 框架
对象适配器
维普资讯
第 2期 张建军,等:基于公共对象请求代理体 系的智能交通 系统 63
务对象通信的方式 。通过 IDL接 口定义、接口库或
适配器(Adapter)的协调 ,ORB可以向客户机和具
备服务功能的对象实现(Object Implementation)提
供服务 。作为 CORBA体系结构的核心,ORB可以
实现如下 3种类型的接 口:
(1)对于所有的 0RB实现具有相同的操作 。
(2)针对特定类型对象的操作。
(3)与对象实现类型有关的操作。
基于 ORB实现的不同类型接 口,一个客户端
请求可以同时访问多个由不 同 ORB实现通信管理
的对象引用。在实际应用中,只要遵循公共的 ORB
体系结构,程序设计可以选择 ORB的多种实现方
式,其中包括 :
(1)客户 和 实现 驻 留 (Client—Implementation
Resident)ORB。采用驻 留在客户和服务对象实现
程序的方式实现 ORB,在这种实现方式下,客户端
可以通过桩(Stub)程序,以位置透明的方式 向具体
的实现对象提出服务请求 ,实现客户与服务对象 的
通信 。
(2)基于服务(Server-based)ORB。客户对象
和实现对象均可以与一个或多个服务对象进行通
信 ,服务对象的功能是将请求从客户端发送到对象
实现,在这种方式中,ORB的作用是完成客户对象
与实现对象的通信,为对象之间的交互提供服务。
(3)基于系统 (System—based)ORB。在这种实
现方式中,ORB被操作系统认为是系统所提供的一
项基本服务,由于操作系统了解调用方与服务对象
的位置,因而可以充分地实现 ORB功能的优化。
(4)基于库(Library—based)ORB。如果认为对
象实现可 以共享 ,则可 以将实现功能放 入实现库
(Implementation Repository)中,从而创建基于库
的 0RB。
2.2 服务请求的实现方式
关于对象请求的实现方式,C0RBA规范 中定
义客户程序可以用动态调用接口(DII,Dynamic In—
vocation Interface)方式或通过 0MG IDL文件经编
译后在客户端生成的桩方式提出服务请求。这两种
实现方式的区别在于通过 OMG IDL桩文件方式实
现的调用请求 中,客户能够访 问的服务对象方法取
决于服务对象所支持的接 口;而动态调用接 口调用
方式则与服务对象的接 口无关。尽管实现调用请求
的方式有所区别,但客户发出的请求服务调用的语
义是相 同的,服务对象不去分析服务请 求提 出的
方式。
ORB通过 IDL客户桩 方式或 动态 调用接 口
(DII)方式定位服务对象的实现代码、传递服务对象
应用参数以及完成对请求传送方式的控制。服务对
象的实现(Object Implementation)通过对象适配器
提供对客户请求的服务。客户对服务器端方法的调
用方式见图 2。
图 2 客户 调用服 务请求 的买 现方 式
从以上对服务请求调用方式的分析可以看出,
服务对象接 口的定义在整个 CORBA系统服务功能
的实现中起着相当重要的作用。那么如何实现服务
对象的功能接 口呢?C0RBA规范中定义了 2种接
口实现方式 :第一种形式是利用 0MG IDL接 口定
义语言对接 口进行描述 ,IDL语言有详细的语法规
则,经过对所实现功能的系统分析 ,利用 IDL、依据
服务对象可能实现的服务以及服务 中需要的参数,
对接 口进行定义;另外一种方式是将接 口放入接 口
仓库(Interface Repository)中,在运行期间对接 口
库中的接 口进行访问。
2.3 接 口仓库
CORBA引入接 口仓库的目的在于使服务对象
能够提供持久的对象服务。将接 口信息存入接 口仓
库后 ,如果客户端应用提交动态调用请求(Dynamic
Invocation),ORB可以根据接 口仓库中的接 口信息
及分布环境下数据对象的描述 ,获取请求调用所需
的信息。接 口仓库作为 CORBA系统 的组成部分,
管理和提供到 OMG IDL映射接口定义的访问。接
口仓库中信息的重要作用是连接各个 ORB,当请求
将对象从一个 ORB传递给另一个 ORB时 ,接收端
ORB需要创建一个新对象来代表所传递的对象,这
就需要在接收端 ORB的接 口仓库 中匹配接 口信
息。通过从服务请求端 ORB的接 口仓库中获得接
口标识 ,就可 以在接收端的接 口仓 库 中匹配 到该
接 口。
接口仓库由一组接 口仓库对象组成,代表接 口
仓库中的接 口信息。接El仓库提供各种操作来完成
接 口的寻址 、管理等功能。在实现过程中,可以选择
对象永久存在还是引用时再创建等方式。
维普资讯
64 长安大学学报(自然科学版) 2004丘
在接口仓库的实现形式中,接口仓库中对象定
义的形式是公开的,库中对象定义的信息可以供客
户端和服务端使用。应用程序开发人员可以在如下
方面使用接口功能 :
(1)管理接 口定义的安装和部署。
(2)提供到高级语言编译环境的接口信息。
(3)提供终端用户环境的组件。
2.4 对象适配器
对象适配器是为服务对象端管理对象引用和实
现而引入的。CORBA规范中要求系统实现时必须
有一种对象适配器。对象适配器完成如下功能:
(1)生成并解释对象的引用,把客户端的对象
引用映射到服务对象的功能中。
(2)激活或撤消对象的实现。
(3)注册服务功能的实现。
(4)确保对象引用的安全性。
(5)完成对服务对象方法的调用 。
作为 CORBA设计 中常用的对象适配器——基
本对象适配器(BOA,Basic Object Adapter),在分
布式应用程序设计 中是必要的元素。ORB将服务
请求的参数及操作控制权传递给 BOA,由 BOA将
执行结 果 返 回给 ORB。BOA 用 服 务 对 象 骨 架
(Skeleton)将 ORB和对象实现 中的方法联 系在一
起,服务对象骨架中相应 的方法将对 BOA方法的
请求调用映射为服务对象中的方法。
2.5 ORB互操作体系结构
ORB的互操作性 (Inter 0perability)体现在
分布于网络 中的多个对象借助 Internet ORB间协
议(IIOP)和通用 ORB间协议(GIOP),达到不同厂
商 ORB之间操作的一致性。
具体来说 ,ORB互操作是指对于 2个独立开发
的 ORB,一个 ORB中的客户端应用可以调用在另
外一个 ORB中利用 OMG IDL定义的服务对象的
实现方法。实现互操作的基本条件有 :
(1)多厂商 ORB之间不需要预先知道对方的
实现细节。
(2)每个 ORB必须实现其规范中定义的全部
内容。
(3)保留每个 ORB独立服务的实现。
ORB间互操作能力的实现,极大地丰富了分布
式程序设计思想的内涵,使得构建基于整个互联 网
的分布式应用成为可能。
通过 在 CORBA 中 引 入 内 联 桥 接 (In—line
Bridging)和请求级桥接(Request—level Bridging),
使 ORB在不需要了解对方 ORB实现细节的情况
下,就可以实现 ORB间的互操作。
上面 2种 ORB间的桥接方式只是说明了 ORB
间相互 发送 请求 时 的虚 拟连接 方式。为 了实现
ORB间的通信 ,在 CORBA规范 中定义了 2种用于
在不同厂商 ORB间进行通信的协议,即通用 ORB
间互 操 作 协 议 (General Inter ORB Protocol,
G10P)和环境相关的 ORB间互操作协议 (Environ—
ment—Specific Inter一0RB Protocol,ES10P)。这 2
种协议屏蔽了操作系统类型、实现语言以及具体厂
商等因素。只要 ORB支持该协议,就能够在不同
的 ORB之间实现通信。
2.6 通用 ORB问互操作协议
CORBA中定义的一种面向连接的互操作协议
为通用 ORB间互操作协议。在 CORBA规范中,该
协议只是一个框架,给用户在具体实现过程 中留下
了充足的空间。GIOP规范包括如下内容:
(1)公共数据表示(Common Data Representa—
tion,CDR)的定义。该数据定义用于将 OMG IDL
数据类型映射为 ORB之间的桥接 (Bridge)可以理
解的二进制数据类型。
(2)GIOP消息。在 CORBA规范 中定义了用
于实现 ORB之间通信的 7种类型的消息 ,它们分别
是:请求 (Request)、响应 (Reply)、请求 取 消 (Re-
quest Cance1)、请求定位(Locate Request)、响应定
位(Locate Reply)、连接关闭(Close Connection)和
消息错误(Message Error)。通过定义这些消息 ,使
得除了能够在不同的 ORB间支持 CORBA规范中
定义的全部功能外 ,还能够支持对象实现的定位、对
象的动态激活和通信资源的动态管理。
(3)GIOP消息传递。GIOP消息传递用于规
范在网络 中传 递应用数据 和 GIOP消息 的方 式。
GIOP消息传递具有如下特点 :面向连接、保持字节
流的传输顺序、确保可靠传输 、与传输 内容的长度无
关、达到 TCP/IP协议规范的初始化性能等。GIOP
互操作协议规范了在网络中实现 ORB互操作的方
式。GIOP协议还有相对于具体的网络协议类型的
镜像 ,最典型的就是 GIOP在 TCP/IP协议 中的实
现:基于 Internet的 ORB间协议 (IIOP)。IIOP规
范继承了 GIOP规范的全部 内容 ,并且增加了如下
要素 :
① 打开 TCP/IP连接的方式。
② 利用连接实现 GIOP消息传递的方式。
可以这样理解 IIOP协议:在遵守 GIOP中关于
维普资讯
第 2期 张建军,等:基于公共对象请求代理体系的智能交通 系统 65
公共数据表示和消息格式定义的前提下,以 TCP/
IP协议 为 实 现蓝 本,具体 化 GIOP消 息 的传 递
方式。
3 基于 CoRBA的 ITS实现
下面的系统是作者在开发陕西省公安交通综合
信息管理系统时所采用的系统结构。系统结构采用
基于 CORBA的 3层 c/s计算模式 ,并应用面向对
象技术进行系统开发 ,其框架模型如图 3所示。不
同的交通管理与控制中心间的信息交换,是通过第
一 层的查询电脑进行服务的,再由第二层服务器向
第三层的数据库服务器进行存取,以达到信息交换
的目的。
c ORBA/ 黠 第三层 冒 匿 ‘
ODBC
Of
lnl。
、
匿 JDBc
9 A.
匣受 丌.o!N 卜
。
tl
RB
OP
Scoke!
图 3 系统模 型
上述 3层 C/S架构,是陕西省交通管理与控制
系统进一步发展成为 ITS架构 的基础。当然该架
构的发展趋势并不仅限于此,势必依据此雏形进行
系统架构的扩充与整合。为达到此 目的,可对应用
系统进行切割处理的方式 ,各子系统的建置和运作,
可应用图 4所示的切割示意图加以分割与整合的方
式来扩充应用系统架构(N—Tier)。这样各子系统的
运算可以在各 自的系统 中进行,并使用一种可 以相
互沟通的交换模式传输信息 ,可 以降低 3层环境中
的传输瓶颈问题,也是大型系统扩充的基本作法。
在上述的 N—Tier分割环境中,只要增加 1台应用服
I 渴 l 务 .一
I服务器I..—+I应用服务器I..
阿 ’
I 务器I.一 垄
图 4 应用系统 N—Tier分割示意图
务器,再配合应用子系统群组切割的观念与方式嘲,
就可以解决系统的扩充问题。
4 结 语
交通事故、交通堵塞 、环境污染等交通问题己经
成为全球性社会公害问题 ,解决这些问题的关键是
发展智能交通系统。本文主要是以陕西省公安交通
综合信息管理系统这一项 目为背景,结合 CORBA
技术对地区智能交通 系统进行设计 ,研究 了 COR—
BA技术在 ITS中的应 用,并且在 实践 中取 得 了
成功 。
参考文献:
[1] 贺国光.一种新型的 自学习智能式城市交通实时控制
系统[J].自动化学报,1998,21(4):427—430.
[2] 黄 卫 ,陈里得.智能运输 系统(ITS)概论 [M].北京
人民交通出版社 ,l998.
[3] 王震宇 。黄 卫 ,陆 毅.中国智能运输系统体系结构
发展研究[J].东南大学学报(自然科学版),2001,31
(3):85— 89.
[4] 徐中明.贺岩松.国外智能交通系统研 究动向[J].汽
车工业研究 ,2001,(1):34—38.
[5] 蔡肇鹏.不同交通控制中心间的信息交换标准的研究
[A].西安公路交通大学 .二十一世纪都市交通运输
系统的可持续发展[c].北京:人民交通出版社,1998.
597— 606.
[6] 周 密 ,贾惠波.CORBA与 Enterprise JavaBeans相
结合构建分布式对象系统[J].计算机应用,2001.21
(8):27— 31.
[7] Otte R.Parrick P.Roy M.李师贤 .等.CORBA教程
[M].北京:清华大学出版社,1999.
[8] Object Management Group.The Common object re—
quest broker:Architecture and specification[EB/
OL].http//www.omg.org.2003—10—20.
[9] Object Management Group.Description of new OMA
reference mode1.Draftl[EB/0L].http//www.omg.
org,2003—10—20.
[1O] OMG.CORBA Messaging.Joint Revised Submission
~EB/OL].http//www.omg.org,2003-10—20.
[11] Vinoski,S.New features for CORBA 3.O[J].Com—
munications of The ACM,1998.41(10):44—52.
[责任编辑 郭庆健]
维普资讯