中间件基本概念
第二层
第一层
19
1.2续
基于中间件的软件系统基本模型
20
中间件工作原理
服务器1 服务器2
……
1.2续
服务器n
服务器端
中间件
同/异构环境
客户机1
客户机2
……
客户机n
客户端
21
1.2续 *中间件的基本分类
•
⑴数据访问中间件(DAM)
•
• • •
⑵远程过程调用中间件(RPC)
⑶消息中间件(MOM)
⑷对象请求代理中间件(ORB)
•
•
30Biblioteka 2.1 续RPC调用模型
主程序 main(…) . . . 调用A . . . 退出
机器1 主程序
过程A代码 A(…) . . . 调用B . . . 退出
机器 2 子程序
过程B代码 B(…) . . . . . . . 退出
机器3 子程序
31
2.1 续 远程过程调用RPC概念
• RPC是从一台机器或一个进程调用另一台机器或另 一个进程的服务或方法。
32
2.1 续 IDL编译器结构
IDL规范 IDL编译器
头文件
头文件 存根 框架
客户
对象 实现
图2-4 IDL编译器结构
33
2.1 续 远程过程调用中间件工作机理
• ①用中间件中的IDL对调用顺序加以描述;
• ②利用IDL编译器对这种定义和描述进行编译,从 而生成支持客户机和服务器进行通信的管道; • ③在服务器端,被调用的远端过程需单独编写,并 被臵入服务器端框架,同时要在远程过程调用中间 件中进行注册,以备调用。 • ④启动本地客户端存根——〉存根捆绑远端过程名 和参数——〉利用网络传输到服务器端框架,从而 实现数据格式的转换和参数的传递 • ⑤采用调用/返回模式具体地完成远端过程调用。
2.应用开发(Application Development) 工具
• AD工具用来帮助开发内含“透明动用对方”成分的 应用软件,或改造原有的无透明动用能力的应用软 件。AD工具是中间件中的必备部分。
17
1.2续
合作方 A 合作方 B 合作对象透明设施 T1 下层设备透明设施 T2 平台 网络 平台 网络 平台 合作方 C
35
2.1 续
RPC的通信模型
Client
server 等待 接收调用信息; 抽取参数并分析; 调用所指的过程; 调 用 执行远程过程
Send(remote call pi(…)) (发送“请求服务”信息)
请求服务
等 待 回 复 Receive(ans) 接收回复信息 继续
返回执行结果 返回调用结果
2
RPC Routine wait receive transmit 3 8
RPC Routine
7
receive
transmit
37
2.1 续
通信协议
支持两种传输协议:TCP、UDP • TCP:连接、可靠、低效。保证要么把调用传递到 远程过程且接受应答,要么报告通信无法进行。 • UDP:无连接、不可靠、高效。使用UDP的远程过 程调用也许会丢失或重复。
中间件技术
1
教材与参考书目 • 教材:
《中间件技术原理与应用》 张云勇 清华大学出版社
• 参考书:
《COM原理与应用》 潘爱民 《CORBA原理及应用》 朱其亮 《精通EJB》 [美]Ed Roman 清华大学出版社 北京邮电大学出版社 电子工业出版社
2
第1章 中间件产生背景及分布式计算环境 主要内容
•
开放系统
•
•
互操作性
中间件
3
1.1开放系统与互操作性概述
计算模式的发展过程
• 基于主机的系统(分时共享、资源共享)
• 两层Client/Server系统
• 三层(n层)体系架构
表示层—— 用户层
业务逻辑层——应用层
数据层——数据库服务器
• 基于Web的三层(N层)体系结构
4
1.1续
开放系统基本组成
• 定义: • 在一个由异质实体构成的网络环境中,当应用在 网络的结点上运行时,它可以透明地动用网中其 他结点上的资源,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。
9
1.1续 互操作性
• 定义: • 在一个由异质实体构成的网络环境中,当应用在 网络的结点上运行时,它可以透明地动用网中其 他结点上的资源,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。 • 本质: • 从异质环境(异种体系结构、异种操作系统、异 种网络等)中获得资源的透明动用能力。
• 硬件 包括PC,工作站,大中型机,各式各样的
•
• 软件 • 网络
嵌入式设备,移动设备;
各类操作系统、应用软件; 各类网络结构、网络协议。 ⑵并发行 ⑹异质性 ⑽发展性 ⑶无全局状态 ⑺自主性 ⑾移动性 ⑷部分失败 ⑻联合型
开放系统面临的问题
⑴远程性 ⑸异步性 ⑼伸缩性
5
1.1续 开放系统特点
• ⑴开放的:提供可移植性和协同工作; • ⑵集成的:有助于对付异质性; • ⑶灵活的:有助于对付移动性;
• •
⑴面向计算资源的互操作性 ⑵面向信息资源的互操作性(如数据库)
10
现代应用系统的基本特征
• 分布
1.2中间件概述
• 任务已不只是在单机上运行,而是由网络中多台计算机上 的相关应用共同协作完成,需考虑网络传输、数据安全、 数据一致性、同步等诸多问题;
• 异构
• 计算机硬件、操作系统、网络协议、数据库系统以及开发 工具种类繁多,需考虑数据表示、调用接口、处理方式等 诸多问题;
• 远程过程调用是创建分布式应用的一种方法,来源 于Unix操作系统的处理思想,被普遍认为是创建 分布式应用的有效方法。 • 从程序员的角度,RPC采用常规的编程模式:程序 代码调用远端过程并将结果返回。当使用RPC时, 只需编写很少的网络程序代码,绝大部分代码由 IDL(Interface Define Language)生成。
28
第2章 五大类中间件的工作机理
主要内容
•
•
2.1 远程过程调用中间件(RPCM) 2.2 面向对象中间件(OOM) 2.3 消息中间件(MOM) 2.4 数据库访问中间件(DAM) 2.5 交易中间件 (DTPM)
•
• •
29
2.1远程过程调用中间件 RPC背景
•
在传统的编程概念中,过程是只能局限在本地运行 的一段代码,主程序和过程之间的运行关系是本地 调用关系——本地过程调用LPC。 LPC模式无法充分利用网络上其他主机的资源,也无 法提高代码在实体间的共享程度,使得主机资源大 量浪费。 RPC是对LPC的扩展。通过这种调用机制,程序员编 写客户方应用时,可根据需要透明地调用位于远端 服务器上的过程。
• ③同步性
• 当客户机发出请求时,服务器进程处于运行状态。 • ④复杂性
• 远程调用的实现环境可能要用系统级的任务来创建,但 一旦完成,对程序员就是透明的了。
40
2.1 续 远程过程调用的特点
• 缺点:⑴需要进行系统级的配臵;
• ⑵RPC 并不支持对象。
Send(ans) 发送回复信息
36
2.1 续
RPC执行过程
Client Process Local return Local call 10 1 Server Process call work return 5 6
OP4 Client-stub OP1 9
OP2 Server-stub OP3 4
中间件的层次结构
18
中间件基本框架
应用接口(API)层 中间件服务层 (通信,控制,计算,管理,输出,信息等) 应用平台层 (Unix、NetWare、NT、VAX、OPENVMS等) 传输协议层 (TCP/IP、IPX/SPX、NetBIOS、OSI等)
中间件的基本功能框架结构
1.2续
第四层
第三层
开放系统构造
• 用轮廓勾划; • 轮廓由AUSPICE七个成分组成; • 对轮廓的各成分标准化,即成开放系统。
7
1.1续
开放系统开放程度表
8
1.1续 互操作性
• 本质: • 从异质环境(异种体系结构、异种操作系统、异 种网络等)中获得资源的透明动用能力。
•
•
⑴面向计算资源的互操作性
⑵面向信息资源的互操作性(如数据库)
• ⑷模块化的:灵活性的基础; • ⑸可联合的 • ⑹可管理的 • ⑺安全的 • ⑻透明的:支撑软件和硬件的异质性; • ⑼满足服务质量需求
6
1.1续 开放系统必具特性
• • • • 可移植性(Portability) 可互操作性(Interoperability) 可伸缩性(Scalability) 易获得性(Availability)
25
1.2续
*中间件的优越性:
1.企业应用方面
•
• •
2.应用程序方面
•
缩短应用开发周期
减少项目开发风险
透明地同其他应用程 序交互
应用程序质量可维 护性
增加产品吸引力
•
与运行平台提供的网 络通信服务无关
具有良好的可靠性和 可用性 具有良好的可扩展性
26
•
•
•
1.2续
中间件发展面临的问题
•
⑴不同厂商的实现很难互操作
• 动态协作
• 参与协作的应用允许位臵透明性、迁移透明性、负载平衡 性等需求。
11
1.2续 应用1 服务器1
应用2
服务器2
应用3
服务器3
12