ongweb及中间件技术培训.ppt_第1页
ongweb及中间件技术培训.ppt_第2页
ongweb及中间件技术培训.ppt_第3页
ongweb及中间件技术培训.ppt_第4页
ongweb及中间件技术培训.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Tongweb及中间件技术培训 Tongweb及中间件技术培训 一 中间件的定义顾名思义 中间件是处于应用软件和系统软件之间的一类软件 是独立于硬件或数据库厂商 处于其产品的中间 实现其互连 的一类软件 是客户方与服务方之间的连接件 是需要进行二次开发的中间产品 应该说 中间件技术是伴随网络而发展起来的一种面向对象的技术 以前的计算机系统多是单机系统 多个用户是通过联机终端来访问的 没有网络的概念 网络出现后 产生了Client Server的计算服务模式 多个客户端可以共享数据库服务器和打印服务器等等 随着网络的更进一步发展 许多软件需要在不同厂家的网络产品 硬件平台 网络协议异构环境下运行 应用的规模也从局域网发展到广域网 在这种情况下 Client Server模式的局限性也就暴露出来了 于是中间件应运而生 中间件是位于操作系统和应用软件之间的通用服务 它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性 使应用软件能够比较平滑地运行于不同平台上 同时中间件在负载平衡 连接管理和调度方面起了很大的作用 使企业级应用的性能得到大幅提升 满足了关键业务的需求 Tongweb及中间件技术培训 一 中间件的定义如今 市场上又推出了很多新的概念 例如三层结构 构件 Web服务 其中风头最劲的当属SOA 面向服务的架构 实际上 他们都不是一个产品 而是一种技术的实现方法 是开发一个软件的一种方法论 我们知道 最早软件开发方法就是编程 写代码的 其缺点在于无法复用 为此提出了构件化的软件开发方法 通过把编程中一些常用功能进行封装 并规范统一接口 供其它程序调用 例如我们开发一个新软件 可能要用到构件1 构件2 构件3 那么 我们只要对其进行本地组装 就可以得到我们想要的应用软件 在互联网得到普及重视之后 软件开发方法在构件化基础上又有新发展 核心思想是软件并不需要囊括构件 所需要的仅仅是构件的运行结果 例如编写一个通信传输软件 就可以到网上寻找构件 并提出服务请求 得到结果后返回 而不需要下载构件并打包 这就是现在所说的SOA 想要现实SOA 就要规范构件接口 同时还要规范构件所提交的服务结果 而实现这种方法的基础 如今看来只有中间件 Tongweb及中间件技术培训 一 中间件的定义那么 到底什么才是中间件 什么不是中间件 中间件应该具备两个关键特征 首先要为上层的应用层服务 这是一个基本条件 此外 又必须连接到操作系统的层面 并却保持运行工作状态 具备了这样两个特征才能称为中间件 现在很多人把开发工具也称为中间件是不合适的 因为开发工具开发出来的软件 并不依赖开发工具与底层操作系统连接 Tongweb及中间件技术培训 一 中间件的定义中间件是一种独立的软件系统或服务程序 分布式应用软件借助其在不同的技术之间共享资源 中间件就是位于操作系统和应用软件之间的一个软件层 它向各种应用软件提供服务 使不同的应用进程能在屏蔽掉平台差异的情况下 通过网络互相通信 Tongweb及中间件技术培训 一 中间件的定义 应用 应用 应用编程接口 API 中间件 平台接口 平台接口 操作系统 硬件平台 操作系统 硬件平台 Tongweb及中间件技术培训 二 中间件的分类中间件所包括的范围十分广泛 针对不同的应用需求涌现出多种各具特色的中间件产品 但至今中间件还没有一个比较精确的定义 因此 在不同的角度或不同的层次上 对中间件的分类也会有所不同 由于中间件需要屏蔽分布环境中异构的操作系统和网络协议 它必须能够提供分布环境下的通讯服务 我们将这种通讯服务称之为平台 基于目的和实现机制的不同 我们将平台分为以下主要几类 远程过程调用中间件 数据库中间件 消息中间件 基于对象请求代理的中间件 事务处理中间件 Tongweb及中间件技术培训 二 中间件的分类它们可向上提供不同形式的通讯服务 包括同步 排队 订阅发布 广播等等 在这些基本的通讯平台之上 可构筑各种框架 为应用程序提供不同领域内的服务 如事务处理监控器 分布数据访问 对象事务管理器OTM等 平台为上层应用屏蔽了异构平台的差异 而其上的框架又定义了相应领域内的应用的系统结构 标准的服务组件等 用户只需告诉框架所关心的事件 然后提供处理这些事件的代码 当事件发生时 框架则会调用用户的代码 用户代码不用调用框架 用户程序也不必关心框架结构 执行流程 对系统级API的调用等 所有这些由框架负责完成 因此 基于中间件开发的应用具有良好的可扩充性 易管理性 高可用性和可移植性 下面 针对几类主要的中间件分别加以简要的介绍 Tongweb及中间件技术培训 二 中间件的分类1 远程过程调用中间件远程过程调用是一种广泛使用的分布式应用程序处理方法 一个应用程序使用RPC来 远程 执行一个位于不同地址空间里的过程 并且从效果上看和执行本地调用相同 事实上 一个RPC应用分为两个部分 server和client server提供一个或多个远程过程 client向server发出远程调用 server和client可以位于同一台计算机 也可以位于不同的计算机 甚至运行在不同的操作系统之上 它们通过网络进行通讯 相应的stub和运行支持提供数据转换和通讯服务 从而屏蔽不同的操作系统和网络协议 在这里RPC通讯是同步的 采用线程可以进行异步调用 Tongweb及中间件技术培训 二 中间件的分类1 远程过程调用中间件在RPC模型中 client和server只要具备了相应的RPC接口 并且具有RPC运行支持 就可以完成相应的互操作 而不必限制于特定的server 因此 RPC为client server分布式计算提供了有力的支持 同时 远程过程调用RPC所提供的是基于过程的服务访问 client与server进行直接连接 没有中间机构来处理请求 因此也具有一定的局限性 比如 RPC通常需要一些网络细节以定位server 在client发出请求的同时 要求server必须是活动的等等 Tongweb及中间件技术培训 二 中间件的分类2 数据库中间件数据库中间件 支持对数据库存取的编程 可以使用存储过程 如 ODBC JDBC Tongweb及中间件技术培训 二 中间件的分类3 面向消息的中间件MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流 并基于数据通信来进行分布式系统的集成 通过提供消息传递和消息排队模型 它可在分布环境下扩展进程间的通信 并支持多通讯协议 语言 应用程序 硬件和软件平台 目前流行的MOM中间件产品有IBM的MQSeries BEA的MessageQ等 消息传递和排队技术有以下三个主要特点 通讯程序可在不同的时间运行 程序不在网络上直接相互通话 而是间接地将消息放入消息队列 因为程序间没有直接的联系 所以它们不必同时运行 消息放入适当的队列时 目标程序甚至根本不需要正在运行 即使目标程序在运行 也不意味着要立即处理该消息 Tongweb及中间件技术培训 二 中间件的分类3 面向消息的中间件对应用程序的结构没有约束 在复杂的应用场合中 通讯程序之间不仅可以是一对一的关系 还可以进行一对多和多对一方式 甚至是上述多种方式的组合 多种通讯方式的构造并没有增加应用程序的复杂性 程序与网络复杂性相隔离 程序将消息放入消息队列或从消息队列中取出消息来进行通讯 与此关联的全部活动 比如维护消息队列 维护程序和队列之间的关系 处理网络的重新启动和在网络中移动消息等是MOM的任务 程序不直接与其它程序通话 并且它们不涉及网络通讯的复杂性 Tongweb及中间件技术培训 二 中间件的分类4 基于对象请求代理的中间件随着对象技术与分布式计算技术的发展 两者相互结合形成了分布对象计算 并发展为当今软件技术的主流方向 1990年底 对象管理集团OMG首次推出对象管理结构OMA ObjectManagementArchitecture 对象请求代理 ObjectRequestBroker 是这个模型的核心组件 它的作用在于提供一个通信框架 透明地在异构的分布计算环境中传递对象请求 CORBA规范包括了ORB的所有标准接口 1991年推出的CORBA1 1定义了接口描述语言OMGIDL和支持Client Server对象在具体的ORB上进行互操作的API CORBA2 0规范描述的是不同厂商提供的ORB之间的互操作 对象请求代理 ORB 是对象总线 它在CORBA规范中处于核心地位 定义异构环境下对象透明地发送请求和接收响应的基本机制 是建立对象之间 Tongweb及中间件技术培训 二 中间件的分类4 基于对象请求代理的中间件client server关系的中间件 ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应 这些对象可以位于本地也可以位于远程机器 ORB拦截请求调用 并负责找到可以实现请求的对象 传送参数 调用相应的方法 返回结果等 client对象并不知道同server对象通讯 激活或存储server对象的机制 也不必知道server对象位于何处 它是用何种语言实现的 使用什么操作系统或其他不属于对象接口的系统成分 值得指出的是client和server角色只是用来协调对象之间的相互作用 根据相应的场合 ORB上的对象可以是client 也可以是server 甚至兼有两者 当对象发出一个请求时 它是处于client角色 当它在接收请求时 它就处于server角色 大部分的对象都是既扮演client角色又扮演server角色 另外由于ORB负责对象请求的传送和server的管理 client和server之间并不直接连接 因此 与RPC所支持的单纯的Client Server结构相比 ORB可以支持更加复杂的结构 Tongweb及中间件技术培训 二 中间件的分类5 事务处理监控中间件事务处理监控 Transactionprocessingmonitors 最早出现在大型机上 为其提供支持大规模事务处理的可靠运行环境 随着分布计算技术的发展 分布应用系统对大规模的事务处理提出了需求 比如商业活动中大量的关键事务处理 事务处理监控界于client和server之间 进行事务管理与协调 负载平衡 失败恢复等 以提高系统的整体性能 它可以被看作是事务处理应用程序的 操作系统 总体上来说 事务处理监控有以下功能 进程管理 包括启动server进程 为其分配任务 监控其执行并对负载进行平衡 事务管理 即保证在其监控下的事务处理的原子性 一致性 独立性和持久性 Tongweb及中间件技术培训 二 中间件的分类5 事务处理监控中间件通讯管理 为client和server之间提供了多种通讯机制 包括请求响应 会话 排队 订阅发布和广播等 事务处理监控能够为大量的client提供服务 比如飞机定票系统 如果server为每一个client都分配其所需要的资源的话 那server将不堪重负 如图2所示 但实际上 在同一时刻并不是所有的client都需要请求服务 而一旦某个client请求了服务 它希望得到快速的响应 事务处理监控在操作系统之上提供一组服务 对client请求进行管理并为其分配相应的服务进程 使server在有限的系统资源下能够高效地为大规模的客户提供服务 Tongweb及中间件技术培训 二 中间件的分类5 事务处理监控中间件 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台软件系统的复杂性不断增长 软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量 积累和固化知识财富 并尽可能地缩短软件产品的开发周期 于是集软件复用 分布式对象计算 企业级应用开发等技术为一体的 基于中间件的软件开发 CBSD ComponentBasedSortwareDevelopment 应运而生 这种技术以软件架构为组装蓝图 以可复用软件构件为组装模块 支持组装式软件的复用 大大提高了软件生产效率和软件质量 为此国风外对于这一技术的研究正在不断深入 同时大型的软件公司 例如sun microsoft 及软件组织机构 OMG 都推出了支持中间件技术的软件平台 当前支持服务器端中间件技术的平台考察当前主流的分布计算技术平台 主要有OMG的CORBA Sun的J2EE和MicrosoftDNA2000 它们都是支持服务器端中间件技术开发的平台 但都有其各自的特点 将分别阐述如下 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台1 OMG的CORBACORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范 CORBA分布计算技术 是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术 具有模型完整 先进 独立于系统平台和开发语言 被支持程度广泛的特点 已逐渐成为分布计算技术的标准 COBRA标准主要分为3个层次 对象请求代理 公共对象服务和公共设施 最底层是对象请求代理ORB 规定了分布对象的定义 接口 和语言映射 实现对象间的通讯和互操作 是分布对象系统中的 软总线 在ORB之上定义了很多公共服务 可以提供诸如并发服务 名字服务 事务 交易 服务 安全服务等各种各样的服务 最上层的公共设施则定义了组件框架 提供可直接为业务对象使用的服务 规定业务对象有效协作所需的协定规则 目前 CORBA兼容的分布计算产品层出不穷 其中有中间件厂商的ORB产品 如BEAM3 IBMComponentBroker 有分布对象厂商推出的产品 如IONAObix和OOCObacus等 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台CORBA规范的近期发展 增加了面向Internet的特性 服务质量控制和CORBA构件模型 CORBAComponentModel Internet集成特性包括了针对IIOP传输的防火墙 Firewall 和可内部操作的定义了URL命名格式的命名服务 NamingService 服务质量控制包括能够具有质量控制的异步消息服务 一组针对嵌入系统的CORBA定义 一组关于实时CORBA与容错CORBA的请求方案 CORBACCM CORBAComponentModel 技术 是在支持POA的CORBA规范 版本2 3以后 基础上 结合EJB当前规范的基础上发展起来的 CORBA构件模型 是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范 它主要包括如下三项内容 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台a 抽象构件模型 用以描述服务器端构件结构及构件间互操作的结构 b 构件容器结构 用以提供通用的构件运行和管理环境 并支持对安全 事务 持久状态等系统服务的集成 c 构件的配置和打包规范 CCM使用打包技术来管理构件的二进制 多语言版本的可执行代码和配置信息 并制定了构件包的具体内容和基于XML的文档内容标准 总之 CORBA的特点是大而全 互操作性和开放性非常好 CORBA的缺点是庞大而复杂 并且技术和标准的更新相对较慢 COBRA规范从1 0升级到2 0所花的时间非常短 而再往上的版本的发布就相对十分缓慢了 在具体的应用中使用不是很多 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台2 Sun的J2EE为了推动基于Java的服务器端应用开发 Sun于是在1999年底推出了Java2技术及相关的J2EE规范 J2EE的目标是 提供平台无关的 可移植的 支持并发访问和安全的 完全基于Java的开发服务器端中间件的标准 在J2EE中 Sun给出了完整的基于Java语言开发面向企业分布应用规范 其中 在分布式互操作协议上 J2EE同时支持RMI和IIOP 而在服务器端分布式应用的构造形式 则包括了JavaServlet JSP JavaServerPage EJB等多种形式 以支持不同的业务需求 而且Java应用程序具有 Writeonce runanywhere 的特性 使得J2EE技术在发布计算领域得到了快速发展 J2EE简化了构件可伸缩的 其于构件服务器端应用的复杂度 虽然DNA2000也一样 但最大的区别是DNA2000是一个产品 J2EE是一个规范 不同的厂家可以实现自己的符合J2EE规范的产品 J2EE规范 是众多厂家参与制定的 它不为Sun所独有 而且其支持跨平台的开发 目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台EJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分 自从J2EE推出之后 得到了广泛的发展 已经成为应用服务器端的标准技术 SunEJB技术是在JavaBean本地构件基础上 发展的面向服务器端分布应用构件技术 它基于Java语言 提供了基于Java二进制字节代码的重用方式 EJB给出了系统的服务器端分布构件规范 这包括了构件 构件容器的接口规范以及构件打包 构件配置等的标准规范内容 EJB技术的推出 使得用Java基于构件方法开发服务器端分布式应用成为可能 从企业应用多层结构的角度 EJB是业务逻辑层的中间件技术 与JavaBeans不同 它提供了事务处理的能力 自从三层结构提出以后 中间层 也就是业务逻辑层 是处理事务的核心 从数据存储层分离 取代了存储层的大部分地位 从分布式计算的角度 EJB像CORBA一样 提供了分布式技术的基础 提供了对象之间的通讯手段 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台从Internet技术应用的角度 EJB和Servlet JSP一起成为新一代应用服务器的技术标准 EJB中的Bean可以分为会话Bean和实体Bean 前者维护会话 后者处理事务 现在Servlet负责与客户端通信 访问EJB 并把结果通过JSP产生页面传回客户端 J2EE的优点是 服务器市场的主流还是大型机和UNIX平台 这意味着以Java开发构件 能够做到 Writeonce runanywhere 开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台3 MicrosoftDNA2000MicrosoftDNA2000 DistributedinterNetApplications 是Microsoft在推出Windows2000系列操作系统平台基础上 在扩展了分布计算模型 以及改造BackOffice系列服务器端分布计算产品后发布的新的分布计算体系结构和规范 在服务器端 DNA2000提供了ASP COM Cluster等的应用支持 目前 DNA2000在技术结构上有着巨大的优越性 一方面 由于Microsoft是操作系统平台厂商 因此DNA2000技术得到了底层操作系统平台的强大支持 另一方面 由于Microsoft的操作系统平台应用广泛 支持该系统平台的应用开发厂商数目众多 因此在实际应用中 DNA2000得到了众多应用开发商的采用和支持 DNA2000融合了当今最先进的分布计算理论和思想 如事务处理 可伸缩性 异步消息队列 集群等内容 DNA使得开发可以基于Microsoft平台的服务器构件应用 其中 如数据库事务服务 异步通讯服务和安全服务等 都由底层的分布对象系统提供 Tongweb及中间件技术培训 三 当前主要的中间件技术支持平台以Microsoft为首的DCOM COM COM 阵营 从DDE OLE到ActiveX等 提供了中间件开发的基础 如VC VB Delphi等都支持DCOM 包括OLEDB在内新的数据库存取技术 随着Windows2000的发布 Microsoft的DCOM COM COM 技术 在DNA2000分布计算结构基础上 展现了一个全新的分布构件应用模型 首先 DCOM COM COM 的构件仍然采用普通的COM ComponentObjectModel 模型 COM最初作为Microsoft桌面系统的构件技术 主要为本地的OLE应用服务 但是随着Microsoft服务器操作系统NT和DCOM的发布 COM通过底层的远程支持使得构件技术延伸到了分布应用领域 DCOM COM COM 更将其扩充为面向服务器端分布应用的业务逻辑中间件 通过COM 的相关服务设施 如负载均衡 内存数据库 对象池 构件管理与配置等等 DCOM COM COM 将COM DCOM MTS的功能有机地统一在一起 形成了一个概念 功能强的构件应用体系结构 而且 DNA2000是单一厂家提供的分布对象构件模型 开发者使用的是同一厂家提供的系列开发工具 这比组合多家开发工具更有吸引力 但是它的不足是依赖于Microsoft的操作系统平台 因而在其它开发系统平台 如Unix Linux 上不能发挥作用 Tongweb及中间件技术培训 四 当前主流的中间件技术的对比分析目前 针对上述的各种分布计算平台技术 都出现了相似且具有可比性的分布式构件 即CORBACCM CORBAComponentModel 技术 SUN的EJB EnterpriseJavaBean 技术和DNA2000中的COM DCOM COM 技术 对于以上三个分布计算平台 本文采用业界常用的做法从以下三个方面进行分析 集成性 集成性主要反映在基础平台对应用程序互操作能力的支持上 它要求分布在不同机器平台和操作系统上 采用不同的语言或者开发工具生成的各类商业应用必须能集成在一起 构成一个统一的企业计算框架 这一集成框架必须建立在网络的基础之上 并且具备对于遗留应用的集成能力 可用性 要求所采用的软件构件技术必须是成熟的技术 相应的产品也必须是成熟的产品 在至关重要的企业应用中能够稳定 安全 可靠地运行 另外 由于数据库在企业计算中扮演着重要角色 软件构件技术应能与数据库技术紧密集成 Tongweb及中间件技术培训 四 当前主流的中间件技术的对比分析可扩展性 集成框架必须是可扩展的 能够协调不同的设计模式和实现策略 可以根据企业计算的需求进行裁剪 并能迅速反应市场的变化和技术的发展趋势 通过保证当前应用的可重用性 最大程度地保护企业的投资 中间件技术 对象请求代理 ORB 详细说明 对象请求代理 ORB 详细说明 一 ORB结构ORB是一个中间件 middleware 它可以建立对象之间的client server关系 通过ORB 一个client可以透明的引用同一台机器上或网络上的一个server对象的方法 ORB解释该调用并负责查找一个实现该请求的对象 找到后 把参数传给该对象 调用它的方法 最后返回结果 client并不清楚该对象的位置 它的编程语言 它的操作系统以及其它不是对象接口的系统信息 ORB能实现分布环境中位于不同机器上的应用之间的互操作以及多对象系统之间的无缝连接 在传统的client server 应用中 开发者使用自己设计的标准或通用标准来定义设备之间的协议 协议定义与实现的语言 网络传输及其它因素有关 ORB简化了这一过程 它使用IDL来定义应用接口之间的协议 ORB允许程序员选择通用操作系统 运行环境和编程语言 更重要的是 它能集成现存元素 对象请求代理 ORB 详细说明 一 ORB结构 图1通过ORB传递请求通过ORB传递请求 对象请求代理 ORB 详细说明 一 ORB结构图1显示了一个client向对象实现发送一个请求 Client是一个想对对象进行操作的一个实体 对象实体是实现对象的代码和数据 ORB负责根据一个请求来定位一个对象 安排对象实现准备接受请求 与请求的数据通讯 Client的接口与对象的位置完全 实现对象的语言及其它不在对象接口反映出来的方面等无关 图2显示了单个ORB的结构 用斜条文的矩形框表示ORB的接口 箭头表示调用ORB或ORB使用接口把信息向上传递 对象请求代理 ORB 详细说明 一 ORB结构 图2ORB接口结构 对象请求代理 ORB 详细说明 一 ORB结构Clinet使用DynamicInvocationinterface 与目标对象的接口无关 或OMGIDLstub 与目标对象接口有关的stub 来发出请求 由于某种原因 Client也可以直接与ORB联系 对象实现使用OMGIDL生成的skeleton或动态skeleton以向上传送 up call 的方式接受请求 对象实现也可以调用ObjectAdapter和ORB 可以用两种方式来定义对象接口 一是用OMGInterfaceDefinitionLanguage OMGIDL 来定义接口 该语言根据可能对对象进行的操作和这些操作使用的参数来定义对象类型 第二种方法是 把接口 interface 放入InterfaceRepositoryservice中 该服务把接口中的元素描述成一个对象 任何能实现ORB的软件中 InterfaceDefinitionLanguage 可能根据文档的内容而改变 和InterfaceRepository具有相同的作用 一个client要使用ObjectReference完成请求 它必须知道对象的类型的及具体的操作 Client初始化请求有两种方法 一是通过调用目标对象的stubroutines 二是动态的创造请求 如图3所示 对象请求代理 ORB 详细说明 一 ORB结构 图3Client使用Stub或DynamicInvocationInterface 对象请求代理 ORB 详细说明 一 ORB结构不论使用Stub还是DynamicInvocationInterface来发出请求具有相同的语义 信息的接收者不能分辨出该请求是使用哪种方法来传递的 ORB确定适当的实现代码 传递参数 通过IDLskeleton或dynamicskeleton 如图Figure4所示 把控制传给ObjectImplementation 每一个接口和objectadapter使用不同的Skeletons 为了完成请求 objectimplementation可能通过ObjectAdapter使用来自ORB的服务 当完成请求后 控制和输出结果返回给client 图4ObjectImplementation接受请求 对象请求代理 ORB 详细说明 一 ORB结构ObjectImplementation选择使用何种ObjectAdapter 它是根据ObjectImplementation需要服务的种类来确定的 图5显示了clients和objectimplementations如何使用接口和实现信息 用OMGIDL或InterfaceRepository来定义接口 该定义用于产生clientStubs和objectimplementationSkeletons 图5Interface和ImplementationRepositories 对象请求代理 ORB 详细说明 一 ORB结构在安装时把objectimplementation信息放入ImplementationRepository中 以备请求使用 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件 CORBAORB结构 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件1 ObjectImplementation 对象实现 它定义了实现一个CORBAIDL接口的操作 它可以用各种语言来写 如C C Java Smalltalk和Ada 典型的ObjectImplementation结构 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件2 Client 客户 这是一个程序实体 它调用了某一个对象实现中操作 对调用这来讲 访问远程对象server应该是透明的 它应该和调用对象中的方法一样简单 如 obj op args Client只能根据对象的接口了解对象的逻辑结构 虽然 我们一般都把client看作是一个程序或一个进程 但是 知道一个client都是某一个对象有关的 例如 一个对象的实现可能是其他对象的client 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件 典型的Client结构 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件Client通过语言映射 languagemapping 来使用对象和ORB接口 当这种映射关系改变时 不需要改变Client Client不需要了解对象的实现方式 对象适配器及ORB 3 ObjectRequestBroker ORB ORB提供了一种机制 能实现client请求与目标对象实现之间的透明通信 它使得client请求就象一个本地过程调用一样 当一个client引用一个操作 ORB负责找到对象实现 如果需要则透明的激活它 然后把该请求递交给该对象 最后返回应答给调用者 实现时 可以把ORB不作为单个成分 但它只能由它的接口来定义 任何ORB实现方式提供的接口都是可以接受的 可以把接口中的操作分为三类 1 对于所有的ORB实现都一样的操作2 特定类型对象的操作3 与对象实现种特定类别有关的操作 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件不同的ORB有不同的实现方式 但都包括有 IDL编译器 仓库 repositories 各种ObjectAdapters 给client提供各种服务集 具有不同属性的对象实现等 现在有各种不同的ORB实现 一个client可以同时访问两个由不同ORB实现管理的对象引用 objectreferences 当这两个ORB需要一起工作时 它们能区分出各自的对象引用 Client不需要对此负责 ORBCore是ORB的一个组成部分 它提供对象的基本表示和与请求的通信 有四种不同类型的ORB 1 Client andImplementation residentORB2 Server basedORB3 System basedORB4 Library basedORB 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件ORBInterface 一个ORB是一个逻辑实体 logicalentity 它可以用各种方法实现 如一个或多个过程 或一个libraries集合 为了减轻编写程序的困难 CORBA规范定义了一个抽象的接口 该接口提供各种帮助函数 CORBAIDLstubsandskeletons 它相当于client server应用程序和ORB之间的 胶水 由CORBAIDL编译器自动实现CORBAIDL定义与目标编程语言之间的转换 使用编译器可以减少clientstub和serverskeletons之间的潜在矛盾 DynamicInvocationInterface DII 该接口允许client直接调用ORB所提供得最底层的请求机制 应用程序使用DII动态地把请求传给对象而不需要IDL接口 包括特定stub 与IDLstub 它只允许RPC模式的请求 不同 DII也允许clients使用无块的延迟同步调用 non blockingdeferredsynchronous 发送操作是独立的 和单向调用 send only 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件DynamicSkeletonInterface DSI 与client端的DII类似的 位于server端的接口 DSI允许ORB把请求发送给对象实现 该对象实现不包含编译时所需要的类型 发出请求的client不知道该实现是使用指定类型的IDLskeletons还是使用动态的skeletons ObjectAdapter 它帮助ORB把请求传给对象并激活该对象 更重要的是一个objectadapter总是与一个对象实现 objectimplementations 联系的 Objectadapter可以被定义来支持特定的对象实现类型 如OODBobjectadapters用于持续对象 persistence 而libraryobjectadapters用于非远程对象 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件典型的ObjectAdapter结构 对象请求代理 ORB 详细说明 三 ORB的系统集成 不同对象系统集成的方法 对象请求代理 ORB 详细说明 四 ORB的互操作性ORB的互操作性提供了种易于理解的 方便的途径来支持网络中的对象 这些对象由多样的 不同种类的 与CORBA兼容的 ORB管理 由于CORBA中的元素能以很多方式结合在一起以满足各种不同的需要 因此取得 interORBability 的方法很方便 1 支持互操作的元素能支持互操作的元素有 1 ORB互操作结构2 Inter ORB桥支持 bridgesupport 3 GeneralandInternetinter ORBProtocols GIOPsandIIOPs 而且 该结构还支持environment specificinter ORBprotocols ESIOP 它能优化特定领域如DCE 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件2 ORB互操作结构该结构引入了ORB域中immediateandmediatedbridging 直接桥接和间接桥接 这两个概念 IIOP是广域网桥接的基础 而inter ORB桥接既能用于直接桥接 也能用于 半桥接 使用半桥接能搭建用于间接桥接 使用这些桥接技术 ORB能互操作 而不需要知道彼此的实现细节 如 使用何种特殊的IPC或协议 如ESIOP 来实现CORBA规范 使用能用IIOP通讯的 半桥接 两个或多个ORB能相互桥接在一起 这种方法既能用于单机ORB 也能用于网络ORB如ESIOP IIOP也能用于实现ORB中的内部消息机制 3 Inter ORBBridgeSupport互操作结构明确指出ORB中不同域的作用 这些域包括对象引用域 objectreferencedomain 类型域 typedomain 安全域 safetydomain 如thescopeofaPrincipalidentifier 事物域 transactiondomain 等等 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件当两个ORB位于同一个域中 它们能直接通讯 多数情况下 这是一个很好的方法 但由于各个机构需要建造各自控制域 因此 这种方法不常使用 当需要的信息离开它的域时 就必须使用桥接来传递信息 桥接的作用是确保信息能完整的从一个ORB映射到另一个ORB inter ORB桥接支持也能提供与非CORBA系统 如Microsoft sComponentObjectModel COM 之间的互操作 4 GeneralInter ORBProtocol GIOP GeneralInter ORBProtocol GIOP 元件提供了一个标准传输语法 低层数据表示方法 和ORB之间通信的信息格式集 GIOP只能用在ORB与ORB之间 而且 只能在符合理想条件的面向连接传输协议中使用 它不需要使用更高一层的RPC机制 这个协议是简单的 尽可能简单 但不是简单化 可升级的 使用方便 它被设计为可移动的 高效能的表现 较少依靠其它的低层传输协议 当然 由于不同传输使用不同版本的GIOP 它们可能不能直接协作工作 但它能很容易的连接网络域 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件5 InternetInter ORBProtocol IIOP InternetInter ORBProtocol IIOP 元件指出如何通过TCP IP连接交换GIOP信息 IIOP为Internet提供了一个标准的协作工作协议 它使兼容的ORB能基于现在流行的协议和产品进行 outofthebox 方式的协作工作 它也能被用于两个半桥 half bridges 之间的协议 该协议能用于任何ORB与IP InternetProtocol 域之间的协作工作 除非ORB选择了特殊的协议 这时 它是TCP IP环境下基本的inter ORB协议 最普遍的传输层 IIOP与GIOP的关系就象特特殊语言与OMGIDL之间的关系 GIOP能被映射到不同层 它能指定协议 就象IDL不能见招完整的程序一样 GIOP本身也不能提供完整的协作工作 IIOP和不同传输层上的其它相似映射 实现抽象的GIOP定义 如图所示 对象请求代理 ORB 详细说明 三 ORB的系统集成 Inter ORBProtocol关系 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件6 Environment SpecificInter ORBProtocols ESIOPs 它为使用Environment SpecificInter ORBProtocols ESIOPs 的条件提出了解决方案 Suchprotocolswouldbeusedfor outofthebox interoperationatusersiteswhereaparticularnetworkingordistributingcomputinginfrastructureisalreadyingeneraluse Becauseoftheopportunitytoleverageandbuildonfacilitiesprovidedbythespecificenvironment ESIOPsmightsupportspecializedcapabilitiessuchasthoserelatingtosecurityandadministration WhileESIOPsmaybeoptimizedforparticularenvironments allESIOPspecificationswillbeexpectedtoconformtothegeneralORBinteroperabilityarchitectureconventionstoenableeasybridging Theinter ORBbridgesupportenablesbridgestobebuiltbetweenORBdomainsthatusetheIIOPandORBdomainsthatuseaparticularESIOP 对象请求代理 ORB 详细说明 三 ORB的系统集成7 Domain 域 域把一个系统中的元素按照某种特征分成几个部分 在本结构中 域是一个范围 一个对象的集合 对象是域的成员 这些成员有共同的特征 可以把域看作是一个对象 它本生也可能是其它域的一个成员 各种类型的域 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件CORBA中的域分为以下几个部分 Referencingdomain 对象引用范围Representationdomain 信息传输语法和协议范围Networkaddressingdomain 网络地址范围Networkconnectivitydomain 可能的网络信息范围Securitydomain 特殊安全策略Typedomain 特殊标识符范围Transactiondomain 特定事物服务范围有两种方式使用域 一是嵌入 一个域包括在另一个域中 二是联合 两个域联合起来使用 当两个域的边界上发生交互作用时 就需要使用一种映射机制 如桥接 在边界处传递相关元素 这里有两种方法 一是间接桥接 mediatedbridging 一是直接桥接 immediatebridging 对象请求代理 ORB 详细说明 三 ORB的系统集成 两种桥接技术 都用于两个域之间 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件7 1MediatedBridging使用间接桥接时 在每一个域的边界上 以一种协商的 通用的格式来传递与域有关的元素 可以从以下几个方面来观察间接桥接 1 公共格式的应用范围可能与两个ORB 域的私下约定不同 2 可能有多个公共格式 每一种格式对应一个应用目的 3 如果有多个可供选择的公共格式 选择方式可以分为两种 一是静态选择 两个ORB开发商之间 二是动态选择 每一个对象各自选择 4 这种方法随着嵌入式编译 与stub相比 或普通的库代码 如加密例程 的不同 它的格式不同7 2ImmediateBridging使用直接桥接时 在每一个域的边界上 相关的元素直接从一个域的内部格式转到另一个域的内部格式 可以从以下几个方面来观察间接桥接 对象请求代理 ORB 详细说明 二 ORB结构中的主要构件1 这种方法有被优化的可能性 这时交互不通过第三方 但它是以牺牲灵活性和通用性来取得的 2 一般只当需要在与边界传递纯管理 不交换技术 才使用这种方法 例如 当需要在两个相似ORB的安全管理域传递消息时 就不需要使用通用的间接标准 综上所述 当两个ORB 域使用私有机制时 就比较难于区分这两种方法 7 3Inter DomainFunctionality的位置从逻辑上讲 不论是间接桥接还是直接桥接 只要是域间桥 inter domainbridge 它在两个域中都有元素 但是 一方面 域可以跨越ORB边界 而ORB也可以跨越机器和系统边界 另一方面 一个机器或一个进程可能跨越多个ORB 对象请求代理 ORB 详细说

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论