基于CORBA通信中间件设计
- 格式:doc
- 大小:24.50 KB
- 文档页数:5
CORBA(COMmon Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG(The Object Management Group)组织制订的一种标准的面向对象应用程序体系规范。
或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
CORBA(COMmon Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。
或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
OMG组织成立后不久就制订了OMA(Object Management Architecture,对象管理体系结构)参考模型,该模型描述了OMG规范所遵循的概念化的基础结构。
OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker)。
对象服务是为使用和实现对象而提供的基本服务集合;公共设施是向终端用户应用程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。
ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。
分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。
CORBA系统通常来说,CORBA把用其他语言开发的程序码和关于该程序码能力和如何调用该程序码的资讯包到一个套装(package)中,包成套装的物件则可以在网络上被其他程序(或CORBA物件)调用。
吉林大学硕士学位论文第一章 绪 论1.1 中间件分布对象技术是伴随网络发展起来的一种面向对象的技术。
以前的计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。
网络出现后,产生了Client/Server的计算服务模式,多个客户端可以共享数据库服务器和打印服务器。
随着网络的进一步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。
在这种情况下,中间件技术逐渐出现。
中间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。
同时中间件在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升。
中间件的思想其实并不复杂。
假设我们有n个应用,m个操作系统,为了使所有的应用在所有的操作系统上都能工作,就可能需要n*m个接口。
而且,每引入一个新的操作系统,就要重新改写n个应用的源代码;每开发一个新的应用,就要考虑实现m个不同的版本,以工作于m个操作系统上。
中间件使这一切变得简单。
开发应用程序时不必再关心底层操作系统的类型,而只需专心于应用的逻辑处理(当然,这只是一种理想状态)。
中间件的引入使原来的网状接口类型变成了沙漏状接口类型,如图1.1所示。
接口数目从n*m降到n+m。
当n和m都很小的情况下,这种差异并不明显,但随着n和m不断地增大(正如现实世界正在发生的那样),这种差异将极大地降低开发应用软件的困难,并增加系统整体运行的效率和性能。
因此,中间件的出现是分布式系统发展的产物,是软件构架演进的必然。
图1.1 中间件的加入减少了接口数目第 1 页绪论1.2 OMG组织对象管理组织英文名是Object Management Group,简称为OMG。
OMG 是以美国为主体的非盈利性国际组织,其目标是为在计算机网络上独立开发的应用软件建立一个相互之间互操作性的标准。
基于CORBA和XML的中间件设计与实现
张扬;诸笃辉;李俊
【期刊名称】《微计算机信息》
【年(卷),期】2007(023)033
【摘要】目前,中间件(Middleware)在解决异构平台的通信问题上应用越来越为广泛,但由于其功能繁琐,使用复杂,价格昂贵,很难适用于小型企业异构数据集成通信.针对此问题,提出了一种中间件框架实现--基于CORBA和xml的中间件.该中间件通过xml定义统一的访问请求格式.运用corba原理和JDBC来进行对远程异构数据库的访问操作.框架设计实现了该中间件可移植,性价比高,可扩展性,易操作性的特点,适合于小型企业应用.
【总页数】3页(P243-245)
【作者】张扬;诸笃辉;李俊
【作者单位】212013,江苏镇江江苏大学计算机科学与通信工程学院;212013,江苏镇江江苏大学计算机科学与通信工程学院;212013,江苏镇江江苏大学计算机科学与通信工程学院
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于OMG CORBA A/V流规范的多媒体通信中间件组管理的设计与实现 [J], 董露;唐伦;陈前斌
2.基于CORBA的中间件管理系统的设计与实现 [J], 曾嵘;杨树强;贾焰;张文
3.基于CORBA的二代证识别中间件的设计与实现 [J], 徐畅;王剑春
4.基于CORBA的二代证识别中间件的设计与实现 [J], 徐畅;王剑春
5.基于CORBA的XML映射中间件研究 [J], 丁文学;蔡瑞英
因版权原因,仅展示原文概要,查看原文内容请购买。
Java&CORBA编程实例Java IDL技术在Java平台上添加了CORBA(Common Object Request Broker Architecture)功能,提供了基于标准的互操作能力和连接性。
Java IDL技术使得分布式的Java Web应用能够通过使用工业标准的IDL和IIOP(Internet Inter-ORB Protocol)来透明地调用远程网络服务的操作。
运行时组件(Runtime Components)包括了一个用于分布式计算且使用IIOP通信的Java ORB.可移植对象适配器(Portable Object Adapter,POA)CORBA对象的负责分隔服务器端远程调用句柄(handler)到远程对象和它的服务者(servant)。
对象由远程调用所暴露,而服务者包含实际处理这些请求的方法。
每个对象都可以选择服务者为静态的(一次)或动态的(每个远程调用),在这两种情况下,都允许调用转移到另一台服务器。
在服务器端,POA形成了类似树状的结构,每个POA都负责一到多个服务的对象。
树的分支可以是独立活动的、或钝化的,服务者调用有不同的代码和不同的请求处理策略。
API规范* org.omg.CORBA 包- 提供了OMG CORBA APIs到Java 编程语言的映射* org.omg.CosNaming 包- 为Java IDL提供命名服务* org.omg.PortableServer 包- 为建立服务器端的可移植的、跨越多ORB的应用程序提供类和接口* org.omg.PortableInterceptor 包- 提供了注册ORB钩子的机制,此钩子通过ORB服务能截取正常的ORB执行流* org.omg.DynamicAny 包- 提供了使得任何值都能被动态解释(或遍历)和通过DynAny对象构造出来的类和接口* org.omg.CORBA.ORB - 为CORBA ORB功能的API分布式对象之间的关系有两方面:客户端和服务器。
一个基于CORBA的面向消息的中间件系统
张大勇;王刚;徐晓飞
【期刊名称】《计算机工程与应用》
【年(卷),期】2001(037)013
【摘要】该文设计并实现了一个基于CORBA的面向消息的中间件(MOM)系统,它提供了在分布对象间进行异步消息传递的机制,使用该系统可以简化"消息驱动的分布应用系统”的开发过程.
【总页数】3页(P139-140,144)
【作者】张大勇;王刚;徐晓飞
【作者单位】哈尔滨工业大学计算机科学与工程系;哈尔滨工业大学计算机科学与工程系;哈尔滨工业大学计算机科学与工程系
【正文语种】中文
【中图分类】TP31
【相关文献】
1.基于CORBA消息中间件的电力企业信息集成研究 [J], 刘波;朱传柏;张灿;王林青;丁晓伟;郭创新;曹一家
2.基于CORBA的消息中间件的设计与实现 [J], 潘慧芳;周兴社;杨志义
3.基于面向服务架构消息中间件的业务流程系统集成方法研究 [J], 甄甫;刘民;董明宇
4.基于CORBA和JAVA的消息中间件设计 [J], 扈健丽;白巧莲
5.基于CORBA的消息中间件的设计与实现 [J], 唐丽;赵强
因版权原因,仅展示原文概要,查看原文内容请购买。
基于CORBA的通信中间件设计
摘要:在现代大型软件项目中,往往涉及到多个子系统,且子系统间跨平台、跨语言,数据交互成为瓶颈。
基于corba的通信中间件可以实现安全、高效、无缝的衔接,简化数据互连,降低编程复杂度,避免通信断流,提高通信效率。
关键词:跨平台;跨语言;corba;通信中间件
中图分类号:tn975
在现代大型软件项目中,虽然各系统在设备选型时力争使用相同厂家、相同型号的硬件设备,但仍存在服务器与工作站,unix与windows这样异构平台间的数据互连问题。
为实现异构连接和分布式应用,我们设计了基于corba的通信中间件,实现安全、高效、无缝的衔接,代替传统应用程序的网络开发方式,提高了开发质量和效率,降低了开发成本,并实现了通信一级的透明故障切换。
1 corba技术简介
corba(the common object request broker architecture)通用对象请求代理结构是一个分布式的面向对象应用架构规范,它是由omg研究组在80年代末提出,在90年代逐步完善,形成现在被软件行业普遍认可的标准corba/iiop规范2.3。
在corba分布式应用中,关键是由两个特殊的对象管理组成:存根(stub)和框架(skeleton),如图1.1所示。
从图中我们可以看到,在corba客户端,存根充当某个对象的代理,是通过安装在客户机上的orb软件来发出访问请求的,而orb则通过运行在局域
网某处的智能代理来定位提供对象实现的服务器。
图1.1 corba工作原理
2 基于corba容错技术的研究
2.1 双服务器热备份框架
在以往的研究中,往往利用事件服务机制实现负载均衡的同时,也利用事件服务机制实现了容错,避免了从事件通道的单点故障。
但是它并不是服务本身的容错,只是利用了corba一种服务机制实现了corba的另一种服务,因此本论文提出了基于corba的容错设计——双服务器热备份框架。
该框架中所有的客户端都通过服务器才能获得相应服务器复本应用。
一旦服务器自身发生故障,可能导致整个分布式应用停止工作。
如果采用双服务器热备份框架,实现主服务器与备份服务器之间的同步,则可以解决容错技术的单点故障问题。
在双服务器热备份架构中,有两个对等的服务器:主服务器和备份服务器,主从服务器始终保持同步。
但是备份服务器对客户来说是透明的,或者说是客户并不需知道备份服务器的存在。
客户请求仍旧发送给主服务器,所有的决策仍由主服务器做出,同时备份服务器始终与主服务器保持同步,实际上就是主服务器的热备份。
一旦主服务器发生故障,备份服务器立刻启动成为主服务器。
一旦一方发现另一方超时不再有响应,则需要重新启动发生故障的服务器,并且将正常工作状态服务器的所有信息“倒”给发生故障的服务器。
主服务器通过心跳信号监测备份服务器是否工作,如
果超过timeout 时间间隔未接收到备份服务器的心跳信号,认为备份服务器发生故障,主服务器发出restart操作(出现某些软件故障),重新启动备份服务器,或者由于硬件故障,人为修复、启动备份服务器;若备份服务器超过timeout时间间隔未收到主服务器的心跳信号,则认为主服务器发生故障,备份服务器立即启动,担负服务器的任务,成为新的主服务器。
2.2 合成对象引用
在双服务器热备份框架容错技术的基础上,使用合成对象引用也显示出其独特的魅力。
应用程序在运行过程中,在进入corba环境之前,必须完成如下两个任务:一是被初始化到orb环境;二是获得orb对象的对象引用和其它一些重要的对象的对象引用如rootpoa或其它对象适配器的引用等。
为了完成上述任务,orb核心提供了相应的函数。
poa是在orb和servant之间的媒介,为创建corba对象和对象引用以及为将请求调度到相应的servant上提供服务。
poa提供灵活、可配置的服务对象的管理(包括对象的生命周期,激活和去活方式、引用的生成、服务的注册等等)、对象适配以及对象关键字的分配和生成等。
poa对象引用的接口是由type_id和n个tagged profile组成,type_id为对象类型,tagged profile为它所基于的tcp/ip等协议。
在双服务器热备份框架上合成poa引用可以使系统的容错能力得到很大改善。
合成引用的表示框图如图2.3所示:
图2.3 合成应用框图
将对象引用1和对象引用2合成为一个对象引用,客户端访问时只需面对合成的对象引用,而不必知道它最终访问的时主服务器还是备份服务器。
系统设置客户端访问时先默认访问主服务器,一旦主服务器实效,它会由corba的应用程序控制自动切换到备份服务器。
而对于客户端来说,它内部的切换客户并不关心,因此实现透明故障切换,使系统具有更好的容错性。
大型软件系统可通过合成对象引用来实现透明故障切换,实现容错技术。
对象引用包括主机名、端口号和key。
key又由poa路径、时间戳和id等一系列属性组成。
为了不影响系统,我们设计生成一个和系统中一摸一样的两台服务器的对象引用,分别为iorgen1和iorgen2。
执行iorgen1和iorgen2分别生成data1引用和data2引用,使用ob自带工具iormerge将引用1和引用2合成一个引用data。
这样用户在调用a方法时,通过对象引用中的主机名和端口号先默认找到主服务器,通过解析key找到rootpoa,由于我们在rootpoa 的基础上新建了一个poa,称为persistpoa,因此在找到rootpoa 后接着找到persistpoa,定位对象databackup_impl实现类中a方法,功能得以实现。
通过合成引用,客户端不必知道它访问的时哪台服务器,也不必知道哪台是否出现故障。
ob会自己达到透明故障切换,用户不会知
道,它访问的永远只有一个合成引用。
参考文献:
[1]王珍熙.可靠性·冗余及容错技术[m].航空工业出版社,1991.
[2]仲萃豪.中间件一构筑复杂分布式应用的关键技术.中科院软件所,2001-7.
[3]肖健.2005年中间件市场分析与预测.中国制造业信息化门户,2005-1-18.
[4]omg.corba系统结构、原理与规范[m].电子工业出版社,2003.
[5]r.otte,p.patrick,m.roy.corba教程—公共对象请求代理体系结构[m].清华大学出版社,1999.
作者单位:张雷,苏冉冉 / 北京卫星导航中心,北京 100094 赵玉珍 / 山西广播电视大学信息中心,太原 030027。