第三章Corba应用程序开发过程.pptVIP

  • 27
  • 0
  • 约1.02万字
  • 约 43页
  • 2018-04-23 发布于河南
  • 举报
第三章Corba应用程序开发过程

第三章 Corba 应用程序开发过程 面向对象分析与设计 和传统的基本类似 语言的选择 面向对象风格 Java和C++成为事实标准 建模工具 UML ROSE 分布式系统的设计决策(1) 运行平台 集成遗留系统 性能和通用性的权衡 网络传输 编程模式 通信协议 通信介质 连接的持续性 分布式系统的设计决策(2) 通信方式 同步 延迟同步 单向 资源优化 请求数量的巨大 其他 安全、可靠、事务处理、并发控制 1 CORBA应用开发过程 CORBA规范并没有限制ORB的具体实现方法,所以不同厂商对ORB的具体实现方法可能差别很大,这就导致不同厂商提供的ORB上操作可能有很大的差异。但基本过程都是类似的。 1.1 开发环境 Inprise VisiBroker 4.5 + JDK 1.4 + UltraEdit(EditPlus) Inprise Visibroker 5 + JDK 1.4 ( + Jbuilder / SunOne Studio EE) 1.2 静态工作方式 设计一个静态方式的程序 1.4典型的CORBA应用实现过程 对象接口 对象接口实际上是分布式对象向外提供服务得规格说明 是客户程序与对象实现之间的一种合约,双方必须严格遵守对象接口定义中的约定,包括操作名字,参数表,返回表,异常表,上下文等 对象接口定义存放在一个或多个IDL文本文件中,指明每一对象对外提供的服务,以及客户程序如何使用这些服务或处理服务的返回结果 1.3 IDL语言 说明性语言,定义组件接口,不定义实现。 语法上可以看成C++的一个子集,规定组件的属性、所继承的父类、产生的异常、事件和各类数据类型。 编译器作用:将IDL映射到具体程序设计语言,产生桩代码和框架代码 调用请求经客户端桩传递给ORB,然后转发到服务端框架,最后到达真正要执行请求的对象实现实例 编写对象实现和服务程序 具体实现代码 可以使用多种程序设计语言 产品提供商提供IDL到语言的映射 实现代码必须继承或使用某些生成的接口和类 服务程序 利用POA激活伺服对象供客户程序使用 一般是一个循环执行的进程 不断监听客户请求并为之服务 编写客户程序 初始化ORB 获取ORB伪对象的引用 调用ORB内核所提供的操作 基础设施中的一个对象 本地的 统一观点 不依赖于对象适配器的操作 获取初始对象引用、创建策略对象、运行和终止进程等 获取分布式对象的引用,利用提供的服务 创建并部署应用程序 编译 客户代码和生成的IDL桩代码 对象实现、服务程序和框架代码 部署 工具和步骤一般和ORB产品有关 运行应用程序 启动服务程序 客户程序 其他步骤和产品有关 osagent 1.5 例子背景 银行账户管理 服务端管理大量银行顾客的账户,提供基本的开户、存款、取款、查询余额的功能。 1.5.1 对象认定 一个银行帐户的实体模型。 balance:表示当前的余额。 deposit:存款 withdraw:取款 getBalance:查询余额 1.5.2 定义对象接口 // 银行帐户管理系统的对象接口定义 module Bank { // 帐户 interface Account { // 存款 void deposit(in float amount); // 取款 boolean withdraw(in float amount); // 查询余额 float getBalance(); }; ? // 帐户管理员 interface AccountManager { // 查询指定名字的帐户,查无则新开帐户 Account open(in string name); }; }; 1.5.3 生成Stub与Skeleton IDL编译器作用是将IDL映射到具体程序设计语言,产生桩代码和框架代码 Visibroker for java提供的编译器idl2java将IDL映射到java语言,生成java语言的桩和框架语言 每个对象实例都有一个用于唯一标识自身的对象引用。客户程序利用对象引用指明调用的方向 表面上看,客户程序调用的是远程对象实现上的操作,实际被调用的代码是作为其代理的IDL桩 生成Stub与Skeleton prompt idl2java Bank.idl 1.5.4 生成7个文件 VisiBroker for Java的IDL编译器idl2java为每个接口自动生成7个文件: AccountOperations.java Account.java _AccountStub.java AccountPOA

文档评论(0)

1亿VIP精品文档

相关文档