企业级inforbus——网络分布异构问题的解决之道
一、产品概述
inforbus是遵循corba标准的分布对象中间件产品,是国家863科研成果与多年丰富行业经验相结合而产生的新一代对象中间件产品,是国防科技大学技术专家和中创中间件开发人员的智慧结晶。
二、体系结构
inforbus采用基于代理的分布计算行为模型和"软总线+软构件"的体系结构,如图:“图1 inforbus体系结构”所示。
图 1 inforbus体系结构
inforbus的软总线以分布对象技术为基础,不仅能够支持应用集成框架的建立,满足协同工作的需求,而且建立了多层次的软构件框架,更加便于应用领域框架及领域构件的开发。它也支持以构件形式实现集成平台的系统管理和公共服务,使系统具有良好的开放性和扩展性。基于corba标准的对分布对象的透明访问,允许应用对远程对象和本地对象使用相同的访问模式,从而屏蔽了操作系统平台和通信机制,使应用开发者更加关注于应用逻辑的开发。
inforbus基于代理的分布交互模型使其突破了传统的基于需求/服务交互模式的client/server模型,将交互角色从传统的“客户”和“服务器”两种固定角色的限制中解放出来,改变了“客户”和“服务器”之间不对等的交互关系,对服务器的开发和多层应用开发结构提供强有力的支持。
inforbus的组成包含括:对象请求代理(orb)、公用对象服务(common object service)、公共设施(common facility)、idl编译器。
三、产品特点
◆corba标准,国际同步
• 国家863计划重点项目,产学研相结合成果
• 遵循国际omg组织corba技术标准
• 跨平台、跨语言、彻底解决平台异构问题
• 支持各种通用corba标准、实时corba标准、minicorba标准
◆corba产品,特点鲜明
• 分布式计算和对象模型的完美结合
• 提供高稳定的系统应用
◆corba应用,案例广泛
• 在政府、金融、电信、航空等领域广泛应用
• 为国防、安全领域提供基础软件平台
四、典型案例
inforbus中间件采用成熟的分布对象技术,为金融、电信、企业应用集成、交通管理、军事等领域的应用问题提供凯时k66会员登录的解决方案,广泛地应用在强异构的分布计算环境中。
基于inforbus系列中间件产品的山东省高速公路信息管理系统采用开放的标准,智能化管理,很好地与山东交通信息化网络互联互通,并可实现与金融、电信系统的协调和衔接。
五、inforbus运行的平台
• win98/2000/xp;vc6.0/vc7.0
• sun solaris 2.6, 7 and 8; sun forte 6 update 2 c++ 5.3/gcc 2.95.3
• sun solaris intel; sun forte 6 update 2 c++ 5.3/gcc 2.95.3
• red linux 7.2/7.3/8.0; gcc 2.95.3
• hp-ux b.11.00; hp ac++ a.03.27
• aix version 4.3.x; aix visualage c++ 5.0
• sco unix 7.4;
• vxworks tornado 2.0
• windows ce 3.0
嵌入式inforbus——智能设备通信专家
一、产品概述
目前类似corba和j2ee的中间件虽然提高了分布式应用的灵活性、可扩展性、可维护性以及可重用性等特点,但是这些中间件产品的体系结构并不能够很好的满足实时任务的应用需求。因此omg组织针对corba进行了实时特性的扩展,提出了real-time corba规范。
多数的实时应用都运行在嵌入式设备上,众所周知,嵌入式设备是一个资源受限的计算环境。对于嵌入式设备来说,corba所占用的内存和cpu资源都显得过于庞大。因此,omg组织对传统corba的功能进行了裁减,并提出了minimumcorba规范。inforbus(emb)实现了omg组织的real-time corba规范和minimum corba规范,同时力争使用最小的系统开销,带来最佳的系统性能。
二、产品组成
inforbus(emb)的核心部件是orb,即所谓的“软总线”。它包括了确定和定位对象,进行连接管理和收发数据所必须的所有通讯设施。orb的基本任务是把请求从客户方传送到被激活的对象实现中。
下面是orb的基本结构框架:
图2 orb体系结构
当客户应用要将请求通过orb发给对象实现时,运行过程如下:
1.客户通过某种方式找到对象实现的对象引用(ior)。
2.如果该对象实现有相应的stub,则客户可以通过该stub向对象实现发送请求。否则,在接口池的协助下,客户可以使用动态调用接口来向对象实现发出请求。
3.当对象调用请求通过stub或动态调用接口到达orb核心以后,orb核心负责请求的传送,将其送给相应的对象适配器。
4.对象适配器接到请求后,判断一下所请求的对象实现是否有skeleton存在,如果有,则对象适配器通过skeleton调用执行对象实现中的操作,否则,对象适配器将通过dsi中的动态实现例程来调用对象实现中的操作。
5.对象实现的特定操作方法执行完成后,结果将按照对象请求传递和执行路径逆向返回给客户对象。
如上所述,客户方向服务方发送请求时首先要获得服务方的对象引用。获得对象引用的方式有三种:1.固定位置信息。2.通过文件传输。3.利用名字服务。
由于inforbus(emb)是专为嵌入式开发而设计的corba产品,所以受嵌入式平台的资源有限性的约束并没有实现自己的名字服务组件,但是能够使用遵循coss标准的其他名字服务的实现,例如inforbus的名字服务。
三、产品特点
inforbus(emb)在操作系统上使用共享库的形式,实现了微内核体系结构的orb。inforbus(emb)的orb被分为几个相对独立的组件,这些组件能够在编码时动态的进行加载。只有需要的组件才被加载到内存中。这保证了内存使用的低消耗。所以inforbus(emb)是专为嵌入式开发所设计的实时corba产品。
inforbus将系统中的线程分为通讯线程与处理线程,通讯线程负责读写网络,向缓冲队列中写请求,读应答;处理线程负责从缓冲队列中读请求,写应答。这两部分可以分别进行配置,服务方可以根据网络压力灵活配置通讯线程的数量,还可以预先启动一定数量的处理线程,这些线程同数据库服务器建立相应的连接,然后从缓冲队列中读取客户请求进行处理。这种方式避免了传统的每请求一进程方式中进程数和数据库连接数难以控制的问题,从而降低了资源消耗,提高了系统的稳定性。
inforbus(emb)具有良好的互操作特性,corba标准中定义了orb之间进行通信的的协议----giop协议,所以不同厂家之间的orb可以直接进行互操作。例如:a应用系统是基于iona orbix开发的,b应用系统是基于中创inforbus(emb)开发的,由于这两个产品都遵循corba标准,所以它们之间可以无缝结合,譬如a系统的客户方可以直接访问b系统中的服务方而不需桥接转换。inforbus(emb)能够对跨平台异构系统进行良好的支持。
inforbus(emb)支持目前绝大多数的主流嵌入式操作系统,并自动屏蔽这些系统间的数据表示差异。已支持的操作系统有:vxworks、windows xp、windows ce、solaris 7/8, linux, real-time linux, rtems and lynxos等,并且能够方便的移植到其他的嵌入式操作系统上。
inforbus(emb)支持同步通讯与异步通讯。当采用同步方式时,客户端发出请求,阻塞等待服务器返回应答;当采用异步方式时,客户端发出请求后可以继续运行,不必等待服务器应答。
inforbus(emb)支持对话通讯。基于inforbus的应用系统中,客户端与服务端都是作为一个个的对象插在orb总线上,二者的身份可以互换,没有严格的区分。任何对象都可以作为客户端发送请求,也可以作为服务方接收处理请求,因而可以支持复杂应用系统的构建。inforbus(emb)支持多种网络协议。
除了以太网协议外,inforbus(emb)还支持scalable coherent interface (sci) and the controller area network (can)。inforbus(emb)具备超时重发机制,在通讯线路质量较差的系统中,可以有效地屏蔽网络抖动。inforbus(emb)具备良好的实时特性,支持基于优先级的完全抢先调度。能够有效的防止优先级翻转。inforbus(emb)的安全服务组件支持国际流行的ssl协议。
四、操作系统
windows 95/98/nt/2000
ibm aix
hp-ux
sgi irix
sun solaris
dec osf/1
linux
vxworks
wince