分布式系统学习(七)——CORBA

中间件方案的两种编程抽象:分布式对象和组件
分布式对象中间件
允许使用面向对象的编程模型开发分布式系统,可由远程方法或者分布式事件调用对象通信。该类方案提供了中间件方案的规约,允许开发者只关注规约接口,同时支持扩展。基于分布式对象的中间件解决方案有Java RMI和CORBA。
分布式对象中间件的限制:

  • 隐式依赖:
  • 中间件不透明,编程复杂
  • 无部署支持

基于组件的中间件
由基于对象方法的中间件演化,克服了其限制。

分布式对象
对象分布式对象分布式对象的描述
对象引用远程对象引用分布式对象具有全局唯一的引用,可作为参数传递
接口远程接口提供在远程对象上可以调用方法的抽象规约,该规约使用接口定义语言(IDL)指定
动作分布式对象由方法调用初始化,可能会形成调用链;使用RMI远程调用
异常分布式异常由于系统的分布特性,会产生额外异常,如消息丢失或进程故障
垃圾回收分布式垃圾回收分布式垃圾回收算法

与对象不同,分布式对象的实例通过工厂(或称为模板)实例化。

CORBA

CORBA的RMI框架包含:

  • 对象模型
  • 接口定义语言:包括
  • 体系结构
  • 外部数据表示
  • 远程对象引用的标准格式

CORBA RMI

  • CORBA的对象模型
  • CORBA IDL:ANSI C++的子集
    • IDL模块
    • IDL接口
    • IDL方法
    • 调用语义: 至多一次
    • CORBA IDL异常
    • IDL 数据结构
    • 属性
    • 继承:IDL不允许从两个不同接口继承具有相同名称的方法或属性
    • IDL 类型标识符:IDL前缀、类型名、版本号
    • IDL 编译指令指令
  • CORBA语言映射
  • 异步RMI
    回调、轮询
CORBA的体系结构
  • ORB内核
  • 对象适配器
  • 可移植对象适配器
  • 骨架
  • 客户存根/代理
  • 实现仓库
  • 接口仓库
  • 动态调用接口
  • 动态骨架
  • 遗留代码
CORBA远程对象引用

互操作对象引用(IOR)
| 接口仓库标识符或类型 | IIOP | 主机域名 | 端口号 | 适配器名称 | 对象名 |

  • 暂态IOR
    服务器ORB内核接收到请求消息,该消息包括对象适配器名称和目标对象名称,暂态IOR仅持续到拥有这些对象的进程结束。
  • 持久IOR
    实现仓库接受请求,他从请求的IOR中抽取出对象适配器的名称。如果对象适配器名称在实现仓库的表中,它会根据表项中指定的主机地址去尝试激活CORBA对象。一旦CORBA对象被激活,实现仓库就将CORBA对象的详细地址返回给客户ORB,该地址作为RMI请求消息的目的地,请求消息中包含了对象适配器名称和对象名。
CORBA 服务
CORBA服务作用
名称服务支持CORBA命名,允许通过名称定位对象
交易服务通过属性定位对象,也是目录服务,底层数据库管理服务类型和相关属性到远程对象引用的映射
事件服务允许客户端使用普通的CORBA远程方法调用将通知发送给订阅者
通知服务允许定义表达感兴趣事件的过滤器,允许定义底层事件通道的可靠性和排序特性
安全服务支持各种安全机制,包括认证、访问控制、安全通信、审计和防止抵赖
事件服务支持创建平面和嵌套事务
并发控制服务使用锁来实施对CORBA对象访问的并发控制
持久状态服务为CORBA提供对象的持久存储,保存并恢复CORBA对象
生命周期服务定义创建、删除、拷贝、移动CORBA对象的约定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值