中间件基本概念
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开放系统构造
• 用轮廓勾划; • 轮廓由AUSPICE七个成分组成; • 对轮廓的各成分标准化,即成开放系统。
7
1.1续
开放系统开放程度表
8
1.1续 互操作性
• 本质: • 从异质环境(异种体系结构、异种操作系统、异 种网络等)中获得资源的透明动用能力。
•
•
⑴面向计算资源的互操作性
⑵面向信息资源的互操作性(如数据库)
• ③同步性
• 当客户机发出请求时,服务器进程处于运行状态。 • ④复杂性
• 远程调用的实现环境可能要用系统级的任务来创建,但 一旦完成,对程序员就是透明的了。
40
2.1 续 远程过程调用的特点
• 缺点:⑴需要进行系统级的配臵;
• ⑵RPC 并不支持对象。
•
开放系统
•
•
互操作性
中间件
3
1.1开放系统与互操作性概述
计算模式的发展过程
• 基于主机的系统(分时共享、资源共享)
• 两层Client/Server系统
• 三层(n层)体系架构
表示层—— 用户层
业务逻辑层——应用层
数据层——数据库服务器
• 基于Web的三层(N层)体系结构
4
1.1续
开放系统基本组成
中间件的层次结构
18
中间件基本框架
应用接口(API)层 中间件服务层 (通信,控制,计算,管理,输出,信息等) 应用平台层 (Unix、NetWare、NT、VAX、OPENVMS等) 传输协议层 (TCP/IP、IPX/SPX、NetBIOS、OSI等)
中间件的基本功能框架结构
1.2续
第四层
第三层
15
1.2续
两者内含有进 行协同工作的 应用成分
应用软件 中间件 网络协议 操作系统 硬件平台
应用软件
DBMS
中间件 网络协议 操作系统 硬件平台
中间件定义
16
*中间件组成
1.执行环境(Execution Environment )软件
1.2续
• 如果一个网络的各个节点上安装了EE软件,各节点 上的应用软件之间就可以实现相互合作。EE软件使 各节点的下层设备对应用软件透明化了,EE软件是 中间件中的主体部分。
2
RPC Routine wait receive transmit 3 8
RPC Routine
7
receive
transmit
37
2.1 续
通信协议
支持两种传输协议:TCP、UDP • TCP:连接、可靠、低效。保证要么把调用传递到 远程过程且接受应答,要么报告通信无法进行。 • UDP:无连接、不可靠、高效。使用UDP的远程过 程调用也许会丢失或重复。
•
•
30
2.1 续
RPC调用模型
主程序 main(…) . . . 调用A . . . 退出
机器1 主程序
过程A代码 A(…) . . . 调用B . . . 退出
机器 2 子程序
过程B代码 B(…) . . . . . . . 退出
机器3 子程序
31
2.1 续 远程过程调用RPC概念
• RPC是从一台机器或一个进程调用另一台机器或另 一个进程的服务或方法。
34
2.1 续 RPC工作流程
客户运行 RPC调用
Network 服务调用 过程调用 服务过 程执行 过程返回 请求返回
百度文库
客户继续执行
RPC返回
图2-5 RPC工作流程
RPC一般采用调用/返回模式,多用于应用程序之间的通信,采用同步方式。 RPC程序之间的同步通信一般采用Request-Wait-Reply方式,因此RPC更适应小 型简单而不需要采用异步通信方式的应用。
• 动态协作
• 参与协作的应用允许位臵透明性、迁移透明性、负载平衡 性等需求。
11
1.2续 应用1 服务器1
应用2
服务器2
应用3
服务器3
12
1.2续 应用1 服务器1
应用2
中间件
服务器2
应用3
服务器3
13
1.2续
应用软件 中间件 网络软件 操作系统
可协同工作
应用软件 中间件 网络软件 操作系统
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
• ⑷模块化的:灵活性的基础; • ⑸可联合的 • ⑹可管理的 • ⑺安全的 • ⑻透明的:支撑软件和硬件的异质性; • ⑼满足服务质量需求
6
1.1续 开放系统必具特性
• • • • 可移植性(Portability) 可互操作性(Interoperability) 可伸缩性(Scalability) 易获得性(Availability)
• 远程过程调用是创建分布式应用的一种方法,来源 于Unix操作系统的处理思想,被普遍认为是创建 分布式应用的有效方法。 • 从程序员的角度,RPC采用常规的编程模式:程序 代码调用远端过程并将结果返回。当使用RPC时, 只需编写很少的网络程序代码,绝大部分代码由 IDL(Interface Define Language)生成。
•
•
⑵只提供了一部分平台的实现
⑶应用开发者要面临设计选择
• • •
①过分追求中间件功能的全面性 ②过分强调选择国外产品 ③不能准确认识中间件的作用
27
1.2续
*中间件技术发展趋势
•
⑴中间件的发展需要规范化
•
• • • • •
⑵应用需求导致技术格局多样化
⑶构件化和松散耦合 ⑷底层的中间件持续走稳 ⑸高层的中间件成为市场新宠 ⑹新技术与产品的推出速度放缓 ⑺实用化是重要的发展趋势
38
2.1 续
RPC的语义
•
Last-of-many:被调用的过程可能执行若干次,但 规定其最后一次执行的结果作为返回结果。 At-most-once:若调用者收到了回复消息,则称被 调用的过程正确地完成了它的一次(仅仅一次) 执行。 At-least-once:远程调用过程至少执行一次,回 复消息可能返回一次或多次。
• 定义: • 在一个由异质实体构成的网络环境中,当应用在 网络的结点上运行时,它可以透明地动用网中其 他结点上的资源,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。
9
1.1续 互操作性
• 定义: • 在一个由异质实体构成的网络环境中,当应用在 网络的结点上运行时,它可以透明地动用网中其 他结点上的资源,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。 • 本质: • 从异质环境(异种体系结构、异种操作系统、异 种网络等)中获得资源的透明动用能力。
• •
⑴面向计算资源的互操作性 ⑵面向信息资源的互操作性(如数据库)
10
现代应用系统的基本特征
• 分布
1.2中间件概述
• 任务已不只是在单机上运行,而是由网络中多台计算机上 的相关应用共同协作完成,需考虑网络传输、数据安全、 数据一致性、同步等诸多问题;
• 异构
• 计算机硬件、操作系统、网络协议、数据库系统以及开发 工具种类繁多,需考虑数据表示、调用接口、处理方式等 诸多问题;
第二层
第一层
19
1.2续
基于中间件的软件系统基本模型
20
中间件工作原理
服务器1 服务器2
……
1.2续
服务器n
服务器端
中间件
同/异构环境
客户机1
客户机2
……
客户机n
客户端
21
1.2续 *中间件的基本分类
•
⑴数据访问中间件(DAM)
•
• • •
⑵远程过程调用中间件(RPC)
⑶消息中间件(MOM)
⑷对象请求代理中间件(ORB)
利用中间件进行协同工作的系统
14
1.2续 *中间件定义
• 中间件(Middleware)是一种软件,处于系统 软件(操作系统和网络软件)与应用软件之 间,它能使处于应用层中的各应用成分之间 实现跨网络的协同工作(也就是互操作), 这时允许各应用软件之下所涉及的“系统结 构、操作系统、通信协议、数据库和其它应 用服务”各不相同。
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的扩展。通过这种调用机制,程序员编 写客户方应用时,可根据需要透明地调用位于远端 服务器上的过程。
中间件技术
1
教材与参考书目 • 教材:
《中间件技术原理与应用》 张云勇 清华大学出版社
• 参考书:
《COM原理与应用》 潘爱民 《CORBA原理及应用》 朱其亮 《精通EJB》 [美]Ed Roman 清华大学出版社 北京邮电大学出版社 电子工业出版社
2
第1章 中间件产生背景及分布式计算环境 主要内容
25
1.2续
*中间件的优越性:
1.企业应用方面
•
• •
2.应用程序方面
•
缩短应用开发周期
减少项目开发风险
透明地同其他应用程 序交互
应用程序质量可维 护性
增加产品吸引力
•
与运行平台提供的网 络通信服务无关
具有良好的可靠性和 可用性 具有良好的可扩展性
26
•
•
•
1.2续
中间件发展面临的问题
•
⑴不同厂商的实现很难互操作
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) 接收回复信息 继续
返回执行结果 返回调用结果
•
•
•
Exactly-once:若服务器正常,则远程过程恰好执 行一次,并返回一个调用结果。
39
2.1 续 远程过程调用的特点
• ①客户/服务器模式
• 客户端的应用调用一个位于远端服务器平台的进程或服 务,RPC实际上是通过C/S方式实现的。
• ②数据封装性
• 远端过程调用负责捆绑参数,实现不同平台之间参数的 传递,发送参数到远端过程。
⑸事务处理中间件(交易中间件,TPM)
22
1.2续
中间件的发展情况
23
1.2续
中间件的主要厂商
第一梯队
Oracle(BEA)、IBM、东方通科技,占70%以上份 额;
第二梯队
Sun、中软、中创、微软等;
第三梯队
国内若干中小软件企业和系统集成企业。
24
1.2续 *中间件的作用
• ⑴它提供了通道的功能,可保证应用系统数据的可 靠传输; • ⑵它起着桥梁的作用,达成异构应用资源之间的互 联互通; • ⑶它是分布式应用的集成开发框架,促成企业分布 式应用的有机集成; • ⑷作为平台,它可有效实现分布应用的分阶段顺利 部署; • ⑸它起着过滤网的作用,可有力保护关键信息的安 全。
• 硬件 包括PC,工作站,大中型机,各式各样的
•
• 软件 • 网络
嵌入式设备,移动设备;
各类操作系统、应用软件; 各类网络结构、网络协议。 ⑵并发行 ⑹异质性 ⑽发展性 ⑶无全局状态 ⑺自主性 ⑾移动性 ⑷部分失败 ⑻联合型
开放系统面临的问题
⑴远程性 ⑸异步性 ⑼伸缩性
5
1.1续 开放系统特点
• ⑴开放的:提供可移植性和协同工作; • ⑵集成的:有助于对付异质性; • ⑶灵活的:有助于对付移动性;
32
2.1 续 IDL编译器结构
IDL规范 IDL编译器
头文件
头文件 存根 框架
客户
对象 实现
图2-4 IDL编译器结构
33
2.1 续 远程过程调用中间件工作机理
• ①用中间件中的IDL对调用顺序加以描述;
• ②利用IDL编译器对这种定义和描述进行编译,从 而生成支持客户机和服务器进行通信的管道; • ③在服务器端,被调用的远端过程需单独编写,并 被臵入服务器端框架,同时要在远程过程调用中间 件中进行注册,以备调用。 • ④启动本地客户端存根——〉存根捆绑远端过程名 和参数——〉利用网络传输到服务器端框架,从而 实现数据格式的转换和参数的传递 • ⑤采用调用/返回模式具体地完成远端过程调用。