Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 中 间 件 技 术中 间 件 技 术. 2 第 1 章 中间件产生背景及分布式计算环境 主要内容 开放系统 互操作性 中间件.

Similar presentations


Presentation on theme: "1 中 间 件 技 术中 间 件 技 术. 2 第 1 章 中间件产生背景及分布式计算环境 主要内容 开放系统 互操作性 中间件."— Presentation transcript:

1 1 中 间 件 技 术中 间 件 技 术

2 2 第 1 章 中间件产生背景及分布式计算环境 主要内容 开放系统 互操作性 中间件

3 3 1.1 续 开放系统 可移植性 可互操作性 可伸缩性 易获得性 互操作性 在一个由异质实体构成的网络环境中,当应用在 网络的结点上运行时,它可以透明地动用网中其 他结点上的资源,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。

4 4 应用软件 中间件 网络协议 操作系统 硬件平台 应用软件 中间件 网络协议 操作系统 硬件平台 DBMS 两者内含有进 行协同工作的 应用成分 中间件定义 1.2 续

5 5 中间件定义 中间件 (Middleware) 是一种软件,处于系统 软件(操作系统和网络软件)与应用软件之 间,它能使处于应用层中的各应用成分之间 实现跨网络的协同工作(也就是互操作), 这时允许各应用软件之下所涉及的 “ 系统结 构、操作系统、通信协议、数据库和其它应 用服务 ” 各不相同。

6 6 1.2 续 中间件的层次结构

7 7 1.2 续 中间件工作原理 中间件 服务器 1 服务器 2 服务器 n 客户机 1 客户机 2 客户机 n …… 服务器端 客户端 同 / 异构环境

8 8 第 2 章 五大类中间件的工作机理 主要内容 2.1 远程过程调用中间件( RPCM ) 远程过程调用中间件( RPCM ) 2.2 面向对象中间件( OOM) 面向对象中间件( OOM) 2.3 消息中间件( MOM ) 2.4 数据库访问中间件( DAM ) 2.5 交易中间件 ( DTPM )

9 9 2.1 远程过程调用中间件 RPC 背景 在传统的编程概念中,过程是只能局限在本地运行 的一段代码,主程序和过程之间的运行关系是本地 调用关系 —— 本地过程调用 LPC 。 LPC 模式无法充分利用网络上其他主机的资源,也 无法提高代码在实体间的共享程度,使得主机资源 大量浪费。 RPC 是对 LPC 的扩展。通过这种调用机制,程序员 编写客户方应用时,可根据需要透明地调用位于远 端服务器上的过程。

10 10 main(…). 调用 A. 退出 A(…). 调用 B. 退出 B(…). 退出 主程序 过程 A 代码 过程 B 代码 机器 1 机器 2 机器 3 RPC 调用模型 2.1 续 主程序 子程序

11 11 远程过程调用 RPC 概念 RPC 是从一台机器或一个进程调用另一台机器或另 一个进程的服务或方法。 远程过程调用是创建分布式应用的一种方法,来源 于 Unix 操作系统的处理思想,被普遍认为是创建分 布式应用的有效方法。 从程序员的角度, RPC 采用常规的编程模式:程序 代码调用远端过程并将结果返回。当使用 RPC 时, 只需编写很少的网络程序代码,绝大部分代码由 IDL ( Interface Define Language )生成。 2.1 续

12 12 IDL 编译器结构 2.1 续 IDL 规范 IDL 编译器 头文件 客户 存根 头文件 对象 实现 框架 图 2-4 IDL 编译器结构

13 13 远程过程调用中间件工作机理 ①用中间件中的 IDL 对调用顺序加以描述; ②利用 IDL 编译器对这种定义和描述进行编译,从 而生成支持客户机和服务器进行通信的管道; ③在服务器端,被调用的远端过程需单独编写,并 被置入服务器端框架,同时要在远程过程调用中间 件中进行注册,以备调用。 ④启动本地客户端存根 —— 〉存根捆绑远端过程名 和参数 —— 〉利用网络传输到服务器端框架,从而 实现数据格式的转换和参数的传递 ⑤采用调用 / 返回模式具体地完成远端过程调用。 2.1 续

14 14 RPC 工作流程 2.1 续 客户运行 客户继续执行 服务调用 过程调用 服务过 程执行 过程返回 请求返回 RPC 调用 RPC 返回 Network 图 2-5 RPC 工作流程 RPC 一般采用调用 / 返回模式,多用于应用程序之间的通信,采用同步方式。 RPC 程序之间的同步通信一般采用 Request-Wait-Reply 方式,因此 RPC 更适应 小型简单而不需要采用异步通信方式的应用。

15 15 Client Send(remote call pi(…)) ( 发送 “ 请求服务 ” 信息) Receive(ans) 接收回复信息 server 接收调用信息; 抽取参数并分析; 调用所指的过程 ; 执行远程过程 返回执行结果 Send(ans) 发送回复信息 等待回复等待回复 请求服务 等待 调用 继续 返回调用结果 RPC 的通信模型 2.1 续

16 16 3 call work return Server Process OP2 Server-stub OP3 RPC Routine receive transmit 4 56 7 8 Local return Local call Client Process OP4 Client-stub OP1 wait RPC Routine receive transmit 1 2 9 10 RPC 执行过 程 2.1 续

17 17 通信协议 支持两种传输协议: TCP 、 UDP TCP :连接、可靠、低效。保证要么把调用传递 到远程过程且接受应答,要么报告通信无法进行。 UDP :无连接、不可靠、高效。使用 UDP 的远程 过程调用也许会丢失或重复。 2.1 续

18 18 RPC 的语义 Last-of-many: 被调用的过程可能执行若干次,但 规定其最后一次执行的结果作为返回结果。 At-most-once: 若调用者收到了回复消息,则称被 调用的过程正确地完成了它的一次(仅仅一次) 执行。 At-least-once: 远程调用过程至少执行一次,回复 消息可能返回一次或多次。 Exactly-once: 若服务器正常,则远程过程恰好执 行一次,并返回一个调用结果。 2.1 续

19 19 远程过程调用的特点 ①客户 / 服务器模式 客户端的应用调用一个位于远端服务器平台的进程或服 务, RPC 实际上是通过 C/S 方式实现的。 ②数据封装性 远端过程调用负责捆绑参数,实现不同平台之间参数的 传递,发送参数到远端过程。 ③同步性 当客户机发出请求时,服务器进程处于运行状态。 ④复杂性 远程调用的实现环境可能要用系统级的任务来创建,但 一旦完成,对程序员就是透明的了。 2.1 续

20 20 远程过程调用的特点 缺点:⑴需要进行系统级的配置; ⑵ RPC 并不支持对象。 CORBA 的 IIOP MTS 的 DCOM Java 的 sockets—— 应用级协议的编码交换 EJB ? — 〉 RMI ( Java Remote Method Protocol ) 优点:方便地实现不同平台之间的数据转换。 XDR ( eXternal Data Representation ) 2.1 续

21 21 RMI 环境 RMI (远程方法激活):在分布式程序中,其远程 对象的方法能够被运行在不同主机上的其他 Java 虚 拟机的方法调用。 相对于过程调用级的 RPC , RMI 可以实现编程级对 象之间的方法调用。 本地与远程方法调用 对象 应用程序 本地调用 机器 A 对象 机器 B 网络 远程调用 2.1 续

22 22 RMI 体系结构 远程引用层 传输层 Java Virtual Machine Client Stub 远程引用层 传输层 Java Virtual Machine Remote Object Skeleton TCP 2.1 续

23 23 RMI 系统的目标 ⑴支持对存在于不同 Java 虚拟机上对象的无缝的远 程调用。 ⑵支持服务器对客户的回调。 ⑶把分布式对象模型自然地集成到 Java 语言里。 ⑷把分布式对象模型和本地 Java 对象模型间的不同 表面化。 ⑸使编写可靠的分布式应用程序简单化。 ⑹保留 Java 运行时环境提供的安全性。 2.1 续

24 24 软件开发面临的问题 : 软件的开发、修改和维护变得更加困难。 软件开发常常超期和超出预算。 由于没有代码重用,新软件的开发都是从零开始。 结构化的软件开发方式 一种自顶向下的开发方法,将整个系统分解成独立 的模块,然后逐一实现这些模块的功能。 缺点:完整的系统只能在开发完成后才能呈现全貌。 如果在开始编程时发现设计中存在缺陷,那么整个 设计将被重新构造。 2.2 面向对象中间件

25 25 2.2 续 面向对象的软件开发方式 以一种直观的方法分析和构造系统; 将整个系统抽象并模型化 两种开发方法的区别 结构化的方法:数据与功能是分离的; 面向对象方法:数据和相关的功能捆绑在一起。

26 26 2.2 续 开放式分布处理参考模型( ODP )起源 ISO 为了解决异种系统之间的互联和互通,提出了 OSI-RM 。 为使分布式系统能处理应用的分布,实现应用之间 的互通和互操作而开发的各种标准,如 OSF 的 DCE 、 OMG 的 CORBA 、 UI 的 ALTAS 和 DEC 的 NAS 。 从 1987 年起,在 ISO/IEC 和 ITU 的共同努力下,于 1995 年发布了开放式分布处理参考模型 RM-ODP 。 RM-ODP 不仅是一个一般标准,还是一个标准的标 准。

27 27 对象中间件(对象请求代理 ORB ) ORB 提供一种通信机制透明地在异构的通信环境 中传递对象请求,各对象可以位于本地或远程机 器,且对象之间的客户机 / 服务器的角色是可以互 换的。 ORB 可以看作和编程语言无关的面向对象的 RPC 应用,被视为从面向对象过渡到分布式计算的强 大推动力量。 两大标准: OMG 的 CORBA ; Microsoft 的 COM/DCOM 。 产品: Borland 公司的 Visibroker 、 IBM 公司的 ComponentBroker 和东方通科技公司的 TongBrokerdeng 。 2.2 续

28 28 2.2 续 ODP 通信模型相关概念 通道( Channel ):用于支持分布对象之间的透明交 互。 通道包括三部分:存根、绑定器和协议对象。 ①存根( Stub ):解决交互过程中的信息的封装和 解封装问题; ②绑定器( Binder ):维护计算对象之间的联系; ③协议对象( Protocol Object ):处理实际的通信。

29 29 2.2 续 端系统资源相关概念 结点( Node ):在管理上独立的物理机器; 核( Nucleus ):用来管理结点的机制; 对象包( Capsule ):对象的执行环境; 对象串( Cluster ):受共管和被共操作的对象集合。

30 30 客户基本 工程对象 客 户存 根客 户存 根 客 户 绑定器 客户协 议对象 客户方 服务器基本 工程对象 服务器 绑定器 服务器 存 根 服务器协 议对象 服务器方 截 - 转器 客户 - 服务器交互 2.2 续


Download ppt "1 中 间 件 技 术中 间 件 技 术. 2 第 1 章 中间件产生背景及分布式计算环境 主要内容 开放系统 互操作性 中间件."

Similar presentations


Ads by Google