前言

通过上一篇《中间件的分类》的讲解,我们知道目前的中间件(集成中间件)主要分为四类:基于CORBA规范的中间件,基于J2EE规范的中间件,基于WebService规范的中间件和基于COM+规范的中间件。今天讲解的就是基于CORBA规范的中间件。

正题

要想了解基于CORBA的中间件,就得先了解CORBA是个什么东东,所以本篇先介绍CORBA的一些相关概念。

OMG——制定CORBA规范的组织

要想知道CORBA从哪里来,就得先知道OMG(Object Management Group ,对象管理组织),因为它就是负责制定和发布CORBA规范的组织,他的主要目标是促进分布式系统开发中面向对象技术理论与实践的发展。OMG现在有成员800 多个,包括IBM 、Sun、HP、西门子、爱立信等大型信息产品供应商;也包括像Oracle、BEA、Borland等知名软件开发商;同时还包括波音、花旗等最终用户和全球众多的高校与研究机构。

OMG所制定和发布的规范覆盖了从分析、设计到编码、部署、运行和管理的整个软件开发过程。这些规范是一种工业或行业标准。其中有我们熟悉的UML规范和今天要说到的CORBA规范。

CORBA规范

CORBA是一套面向分布式系统的中间件规范。

具体的讲,CORBA又包含一系列单独的规范,比如核心的ORB体系结构、接口定义语言IDL 、网络通信协议GIOP和IIOP 、可移植对象适配器POA 、CORBA组件模型CCM等。

OMA——CORBA基于的概念框架

OMA(ObjectManagement Architecture ,对象管理体系结构)描述了一个基于CORBA 的应用系统的基本结构与构成系统的构件的特性。

下面我们来看下OMA模型,它描述了一个基于CORBA的应用系统的基本结构。从图中我们可以直观地看到,软件系统有很多个构件(对象)构成,这些对象都挂接到了一个类似总线(ORB)的东西上;这些对象又被划分到不同的组中。图中方框加半圆的表示被封装成对象的非面向对象实现。

ORB——CORBA程序通信总线

在上面的OMA参考模型图中我们可以看到,ORB(Object Request Broker,对象请求代理)是OMA的核心基础设施,同时ORB也称为CORBA的程序通信总线。

既然ORB这么重要,那么它到底可以完成什么功能呢?

ORB负责完成查找请求的对象实现、让对象实现准备好接收请求、传递构成请求的数据等完成远程调用时底层通信任务所需的全部机制。

我们先来看一下ORB整体的一个体系结构。

这个ORB体系结构图可能不太理解,但是对于我们认识ORB是很有帮助的,通过该图我们可以知道ORB采用的是Stub/Skeleton结构来支持客户端与分布式对象的交互,那么ORB在这个交互过程中到底是怎么进行工作的呢,下面我们来看下ORB的一个简单的工作流程图:

关于CORBA,首先我们要知道它是一种规范,我们可以根据这种CORBA规范来开发中间件,开发前我们要知道它的几个相关的概念:OMG(对象管理组织),OMA(对象管理体系结构)和ORB(对象请求代理),除此之外,当然还要了解它的各种具体的规范,相比另外几种规范来讲,CORBA中间件的特点就是互操作性能较好,具体的表现要在实际的项目中去体会,下一篇我们会讲到基于J2EE规范的中间件,敬请期待……

基于CORBA规范的中间件——CORBA基本原理相关推荐

  1. 【中间件技术】第二部分 CORBA规范与中间件(4) 编写对象接口

    文章目录 4.1 概述 4.1.1 接口与实现的分离 4.1.2 接口定义语言 4.2 `OMG IDL` 的语法与语义 4.2.1 词法规则 4.2.2 模块的声明 4.2.3 类型的声明 1. 基 ...

  2. 【中间件技术】第二部分 CORBA规范与中间件(1) CORBA基本原理

    文章目录 2.1 对象管理体系结构 2.1.1 对象管理组织与其主要规范 2.1.2 对象管理体系结构 2.1.2.1 `OMA` 参考模型 1. 对象请求代理 2. 对象服务 3. 公共设施 4. ...

  3. 【中间件技术】第三部分 Java企业版规范与中间件(9) EJB高级特性

    文章目录 9.1 环境条目 9.1.1 开发EJB构件 1. 定义 `Remote` 接口 2. 定义 `Home` 接口 3. 定义 `Enterprise Bean` 类 4. 打包/布署EJB ...

  4. 【中间件技术】第三部分 Java企业版规范与中间件(7) EJB构件基础

    文章目录 7.1 EJB体系结构 7.1.1 EJB构件概述 1. EJB构件技术 2. EJB构件的特点 3. 在EJB应用中集成遗产系统 4. EJB构件与 `Java Bean` 的比较 7.1 ...

  5. skywalking(1) 基于opentracing规范的APM系统

    skywalking是: 基于opentracing规范的APM系统 skywalking解决了什么问题? skywalking解决微服务架构下,多服务直接复杂的调用关系 了解dapper,分布式链路 ...

  6. 基于JMS规范的ActiveMQ

    为什么80%的码农都做不了架构师?>>>    基于JMS规范的ActiveMQ JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台 ...

  7. 基于C99规范,最全C语言预处理知识总结

    基于C99规范,最全C语言预处理知识总结 00. 前言 1. 语法形式 2. 描述 3. 约束 4. 语义 01. 条件包含 01.1 关于`defined` 01.2 关于`#if/#elif/#e ...

  8. 基于AUTOSAR规范的电机控制器软件开发

    基于AUTOSAR规范的电机控制器软件开发 本系列文章主要介绍如何开发符合AUTOSAR规范的电机控制器软件的详细过程. 全系类分为基础篇和实战篇:基础篇内简要介绍最新的AUTOSAR规范,嵌入式软件 ...

  9. java corba实例,OpenORB开发CORBA的实例介绍

    目录: 概述 开发步骤 创建Java项目,配置Lib 创建IDL文件 创建服务单 创建客户端 测试本地调用 NamingService命名服务实现远程调用 [一].概述 本文主要是图文介绍 Eclip ...

最新文章

  1. Spark Scala语言学习系列之完成HelloWorld程序(三种方式)
  2. oracle第一次使用语句创建作业失败记
  3. 高通写号工具_高通推出桌面平台新ARM处理器并认为我们的电脑性能没必要那么高...
  4. domReady的理解
  5. java实现simhash算法
  6. python调用百度地图画轨迹图_利用python和百度地图API实现数据地图标注的方法
  7. springboot 程序发布到tomcat运行
  8. 贪吃蛇程序设计报告python_C某贪吃蛇程序设计报告.doc
  9. 超燃动态可视化条形图源码及效果图_40行不到的Python代码实现超燃动态排序图...
  10. 【RS-422与RS-485】RS-422与RS-485串行接口标准
  11. Ansible中的jinjia2模板
  12. 如何给 ReactJS 应用增加配置文件?
  13. Deepgreen/Greenplum 删除节点步骤
  14. jQuery之浏览器打印插件
  15. 裁员降薪经济寒冬下的企业舆情危机攻略
  16. 详解Xcode 6的视图调试
  17. 【gensim问题记录】EOFError: unexpected end of input; is count incorrect or file otherwise damaged?
  18. 为智能出行而生:极狐阿尔法S全新HI版高阶智驾体验
  19. JOISC 2016 回转寿司
  20. resharper激活

热门文章

  1. SQL中case的使用方法
  2. nginx 根据IP转发到指定的后端服务器
  3. SEO技术:外链建设操作要点
  4. 微信朋友圈 html 字体颜色,微信朋友圈怎么发文字,朋友圈字体颜色可以改吗?...
  5. 《卓有成效的管理者》——学习心得(八)
  6. 数据结构JAVA实现——树
  7. RPGMAKER游戏引擎基于JavaScript的插件制作(六)——重写方法(三):在场景(scenes)中创建精灵(Sprite)——复制式重写的实例教学
  8. windows无法格式化u盘_u盘无法格式化怎么办 DOS下u盘格式化方法【详解】
  9. Git 使用cherry-pick摘取提交
  10. SiamFC:Fully-Convolutional Siamese Networks for Object Tracking