中间件技术原理与应用初学者必看
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 可互操作性(Interoperability)
• 可伸缩性(Scalability) • 易获得性(Availability)
长春工业大学软件学院
开放系统构造
用轮廓勾划;
轮廓由
系统管理 用户界面 安全性 编程服务 通信服务 信息实体 A U S P C E
1.1续
互操作服务 I
七个成分组成;
对轮廓的各成分标准化,即成开放系统。 长春工业大学软件学院
客户端包含过多的商业逻辑 商业逻辑与人机交互界面交织在一起
数据的安全性不好
长春工业大学软件学院
1.1开放系统与互操作性概述
计算模式的发展过程
• 三层(n层)体系架构
表示层—— 用户层
业务逻辑层——应用层
数据层——数据库服务器
• 基于Web的三层(N层)体系结构
长春工业大学软件学院
1.1续
⑴不同厂商的实现很难互操作
⑵只提供了一部分平台的实现
⑶应用开发者要面临设计选择
①过分追求中间件功能的全面性
②过分强调选择国外产品
③不能准确认识中间件的作用
长春工业大学软件学院
中间件技术发展趋势
1.2 续
• ⑴中间件的发展需要规范化
• ⑵应用需求导致技术格局多样化
• ⑶构件化和松散耦合
• ⑷底层的中间件持续走稳
长春工业大学软件学院
1.2 续
中间件的优越性:
1.企业应用方面 2.应用程序方面
缩短应用开发周期
减少项目开发风险 应用程序质量可维护性 增加产品吸引力
透明地同其他应用程序交互
与运行平台提供的网络通信 服务无关 具有良好的可靠性和可用性
具有良好的可扩展性
长春工业大学软件学院
1.2续
中间件发展面临的问题
• 复杂度高 • 开发周期长
• 可靠性保证难
长春工业大学软件学院
什么是分布式软件
• 本课程关注分布式软件系统的开发 支撑
– 随着网络与通信技术的发展,分布式 软件的应用越来越广泛,分布式软件 在计算机软件应用领域扮演者非常重 要的角色。 – 分布式软件一般比集中式软件规模大 、复杂,是软件开发复杂性的集中体 现。 长春工业大学软件学院
长春工业大学软件学院
1.3 续
IDL编译器结构
IDL规范 IDL编译器
头文件
头文件 存根 框架
客户
对象 实现
图2-4 IDL编译器结构
长春工业大学软件学院
1.3 续
远程过程调用中间件工作机理
①用中间件中的IDL对调用顺序加以描述; ②利用IDL编译器对这种定义和描述进行编译,从而生成支 持客户机和服务器进行通信的管道; ③在服务器端,被调用的远端过程需单独编写,并被臵入服 务器端框架,同时要在远程过程调用中间件中进行注册, 以备调用。 ④启动本地客户端存根——〉存根捆绑远端过程名和参数— —〉利用网络传输到服务器端框架,从而实现数据格式的 转换和参数的传递 ⑤采用调用/返回模式具体地完成远端过程调用。
长春工业大学软件学院
RPC调用模型
主程序
main(…)
1.3 续
.
. . 调用A .
.
. 退出
过程A代码 A(…) . . . 调用B . . . 退出
机器 2 子程序
过程B代码 B(…) . . . . . . . 退出
长春工业大学软件学院 机器3 子程序
机器1 主程序
远程过程调用RPC概念
1.3 续
1.1续
开放系统特点
⑴开放的:提供可移植性和协同工作; ⑵集成的:有助于对付异质性; ⑶灵活的:有助于对付移动性; ⑷模块化的:灵活性的基础;
⑸可联合的
⑹可管理的 ⑺安全的 ⑻透明的:支撑软件和硬件的异质性; ⑼满足服务质量需求
长春工业大学软件学院
1.1续
开放系统必具特性
• 可移植性(Portability)
1.1开放系统与互操作性概述
计算模式的发展过程
• 基于主机的系统(分时共享、资源共享)
• 两层Client/Server系统
客户端负担仍然比较重
仍然需要客户端进行较复杂的数据处理
客户端的可移植性不好
处理复杂必然牵涉更多的移植性问题 每个客户端上都要安装数据库驱动程序
系统的可维护性不好
什么是分布式软件
• 分布式软件
– 网络环境:一群通过网络互相连接的处理 系统,每个处理节点由处理机硬件、操作 系统及基本通信软件等组成。 – 分布式软件:运行在网络环境中的软件系 统。 – 两种典型的应用途径
• 将分布式软件系统看做直接反映了现实世界 中的分布性 • 用于改进某些应用的运行性能
长春工业大学软件学院
长春工业大学软件学院
1.2Fra Baidu bibliotek续
应用软件 中间件
两者内含有进 行协同工作的 应用成分
应用软件
DBMS
中间件
网络协议
操作系统 硬件平台
网络协议
操作系统 硬件平台
中间件定义
长春工业大学软件学院
中间件组成
1.2 续
1.执行环境(Execution Environment)软件
如果一个网络的各个节点上安装了EE软件,各节点上的应用 软件之间就可以实现相互合作。EE软件使各节点的下层设 备对应用软件透明化了,EE软件是中间件中的主体部分。
• 1、操作系统
• 2、计算机网络
• 3、数据库原理
• 4、软件工程 • 5、Java/C
长春工业大学软件学院
第1章 中间件产生背景及分布式计算环境
1
开放系统
2
互操作性
3
中间件
4
远地过程调用及其增强
5
分布式计算环境
长春工业大学软件学院
什么是分布式软件
• 软件面临的问题
–软件正变得无处不在,同时软件 所面临的挑战也正在日益加剧
中间件技术 原理与应用
刘 冰 长春工业大学
liubingnet@gmail.com
长春工业大学软件学院
课程目标
• 构造大型的分布式软件系统时将遇 到 什么样的问题 • 解决这些问题的原理与技术:构件 技术与中间件技术 • 相关的工业标准
– 如 COM、CORBA、J2EE等
长春工业大学软件学院
相关课程
长春工业大学软件学院
RPC工作流程
客户运行
1.3 续
RPC调用
服务调用
Network
过程调用 服务过 程执行
过程返回 请求返回
客户继续执行
RPC返回
图2-5 RPC工作流程
RPC一般采用调用/返回模式,多用于应用程序之间的通信,采用同步方式。 RPC程序之间的同步通信一般采用Request-Wait-Reply方式,因此RPC更适应小 型简单而不需要采用异步通信方式的应用。
第一层
中间件的基本功能框架结构 长春工业大学软件学院
1.2续
基于中间件的软件系统基本模型
长春工业大学软件学院
中间件工作原理
服务器1
服务器2
1.2 续
……
服务器n
服务器端
中间件
同/异构环境
客户机1
客户机2
……
客户机n
客户端
长春工业大学软件学院
1.2续
中间件的基本分类
⑴事务处理中间件(交易中间件,TPM)
动态协作
参与协作的应用允许位臵透明性、迁移透明性、负载平衡性等需求。
长春工业大学软件学院
1.2续
应用1
服务器1
应用2
服务器2
应用3
服务器3
长春工业大学软件学院
1.2续
应用1
服务器1
应用2
中间件
服务器2
应用3
服务器3
长春工业大学软件学院
1.2续
应用软件 中间件 网络软件 操作系统
可协同工作
应用软件 中间件 网络软件 操作系统
国内若干中小软件企业和系统集成企业。
长春工业大学软件学院
1.2 续
中间件的作用
⑴它提供了通道的功能,可保证应用系统数据的可靠传输;
⑵它起着桥梁的作用,达成异构应用资源之间的互联互通;
⑶它是分布式应用的集成开发框架,促成企业分布式应用的 有机集成;
⑷作为平台,它可有效实现分布应用的分阶段顺利部署;
⑸它起着过滤网的作用,可有力保护关键信息的安全。
长春工业大学软件学院
1.3 续
RPC的通信模型
Client Send(remote call pi(…)) (发送“请求服务”信息) 请求服务
server
等待
接收调用信息; 抽取参数并分析; 调用所指的过程; 调用 执行远程过程
等 待 回 复 Receive(ans) 接收回复信息 继续
返回执行结果
1.1续
开放系统开放程度表
长春工业大学软件学院
互操作性
本质:
1.1续
从异质环境(异种体系结构、异种操作系统、异种网络等 )中获得资源的透明动用能力。
⑴面向计算资源的互操作性 ⑵面向信息资源的互操作性(如数据库)
定义:
在一个由异质实体构成的网络环境中,当应用在网络的结 点上运行时,它可以透明地动用网中其他结点上的资源 ,并借助这些资源与本结点上的资源共同来完成某个或 某组任务。
开放系统基本组成
硬件 软件 网络 包括PC,工作站,大中型机,各式各样的 嵌入式设备,移动设备; 各类操作系统、应用软件; 各类网络结构、网络协议。 ⑵并发行 ⑹异质性 ⑽发展性 ⑶无全局状态 ⑺自主性 ⑾移动性 ⑷部分失败 ⑻联合型
开放系统面临的问题
⑴远程性 ⑸异步性 ⑼伸缩性
长春工业大学软件学院
返回调用结果
Send(ans) 发送回复信息
长春工业大学软件学院
1.3 续
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 7 RPC Routine
长春工业大学软件学院
互操作性
定义:
1.1续
在一个由异质实体构成的网络环境中,当应用在网络的结 点上运行时,它可以透明地动用网中其他结点上的资源 ,并借助这些资源与本结点上的资源共同来完成某个或 某组任务。 本质: 从异质环境(异种体系结构、异种操作系统、异种网络等 )中获得资源的透明动用能力。
⑴面向计算资源的互操作性
RPC是从一台机器或一个进程调用另一台机器或另一个进 程的服务或方法。 远程过程调用是创建分布式应用的一种方法,来源于Unix 操作系统的处理思想,被普遍认为是创建分布式应用的有 效方法。 从程序员的角度,RPC采用常规的编程模式:程序代码调 用远端过程并将结果返回。当使用RPC时,只需编写很 少的网络程序代码,绝大部分代码由IDL(Interface Define Language)生成。
⑵面向信息资源的互操作性(如数据库)
长春工业大学软件学院
现代应用系统的基本特征
分布
1.2 中间件概述
任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用 共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等 诸多问题;
异构
计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁 多,需考虑数据表示、调用接口、处理方式等诸多问题;
• ⑸高层的中间件成为市场新宠 • ⑹新技术与产品的推出速度放缓 • ⑺实用化是重要的发展趋势
长春工业大学软件学院
1.3远程过程调用及其增强
RPC背景
在传统的编程概念中,过程是只能局限在本地运行的一段代 码,主程序和过程之间的运行关系是本地调用关系——本 地过程调用LPC。 LPC模式无法充分利用网络上其他主机的资源,也无法提高代 码在实体间的共享程度,使得主机资源大量浪费。 RPC是对LPC的扩展。通过这种调用机制,程序员编写客户方 应用时,可根据需要透明地调用位于远端服务器上的过程 。
原子性 A 一致性 C
隔离性 I
耐久性 D
⑵消息中间件(MOM)
消息队列
发布-预定
⑶分布式中间件
长春工业大学软件学院
1.2续
中间件的发展情况
长春工业大学软件学院
中间件的主要厂商
第一梯队
1.2 续
Oracle(BEA)、IBM、东方通科技,占70%以上份额;
第二梯队
Sun、中软、中创、微软等;
第三梯队
2.应用开发(Application Development) 工具 AD工具用来帮助开发内含“透明动用对方”成分的应用软件 ,或改造原有的无透明动用能力的应用软件。AD工具是中 间件中的必备部分。
长春工业大学软件学院
1.2续
合作方 A
合作方 B 合作对象透明设施 T1 下层设备透明设施 T2
合作方 C
平台
网络
平台
网络
平台
中间件的层次结构
长春工业大学软件学院
中间件基本框架
1.2续
应用接口(API)层 中间件服务层 (通信,控制,计算,管理,输出,信息等) 应用平台层 (Unix、NetWare、NT、VAX、OPENVMS等)
第四层
第三层 第二层
传输协议层 (TCP/IP、IPX/SPX、NetBIOS、OSI等)
利用中间件进行协同工作的系统
长春工业大学软件学院
中间件定义
1.2 续
中间件(Middleware)是一种软件,处于系统软件 (操作系统和网络软件)与应用软件之间,它 能使处于应用层中的各应用成分之间实现跨网 络的协同工作(也就是互操作),这时允许各 应用软件之下所涉及的“系统结构、操作系统 、通信协议、数据库和其它应用服务”各不相 同。