中间件-0技术概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对象实现
Static IDL skeleton 服务方代理
对象适配器OA
ORB内核
▪ 定位 ▪ 消息 ▪ 安全 ▪ 事件 ▪ 事务 ▪ 数据
基础服务
Web Service的概念
▪ 提供一个与操作系统无关、与程序设计语言无关、与机器类
型无关、与运行环境无关的平台,实现网络上应用的共享
▪ A Service is a piece of software that is not tightly coupled with
▪ 存在于服务器 ▪ 接收客户桩的请求 ▪ 和真正的远程对象进行交互 ▪ 传送服务器响应到客户 ▪ 负责
– 解包客户端输入的远程方法的参数 – 调用实际的远程对象的方法 – 将结果打包返回给调用者 – 传至远程引用层
RMI 系统体系结构
Client Virtual Machine Client
Stub
int i = 1;
Object o = new Object(); System.out.println("i = " + i + " ; o = " + o); // Step 1 (示 意图:3-1-1)
static void showMe(int pi, Object po){
System.out.println("pi = " + pi + " ; po = " + po); // Step 2 (示意图:3-2-2
过程A代码 A(…) . . . 调用B . . . 退出
过程B代码 B(…) . . . . . . . 退出
机器2
机器3
rmi
▪ 在分布式程序中,远程对象的方法能被运行在不同
主机上的其他java虚拟机的方法调用
▪ 类似于rpc
基本概念
▪ 远程对象:方法能被不同宿主机上的Java虚拟机调用的对象。 ▪ 远程接口:一个声明远程对象的方法的接口。
6. Stub talks to skeleton
7. Skeleton invokes remote object
method
“Fred”
Registry Virtual Machine
CORBA
客户
服务器
界面 仓库
动态 调用
IDL 存根
ORB 界面
静态 IDL 框架
ORB 核 心(GIOP/IIOP)
▪异构 计算机硬件、操作系统、网络协议、数据库系统
以及开发工具种类繁多,需考虑数据表示、调用接口、处理方 式等诸多问题;
▪动态协作 参与协作的应用允许位置透明性、迁移
透明性、负载平衡性等需求。
问题
▪ 分布异构环境中,通常存在:
– 多种硬件系统平台, – 各种各样的系统软件, – 多种风格各异的用户界面, – 不同的网络协议和网络体系结构连接。
Remote Object
1
Stub
Skeleton
Server
2
“Fred” Registry Virtual Machine
RMI 流程(2)
Client Virtual Machine Client
3. Client requSersvtseroVbijretucatlfrMomachRineegistry 4(a. nRdesgtiusbtrygeretstucrnresarteemd)oROteebmjreeocfttee rence
– 中间件是一类软件,而非一种软件; – 中间件不仅仅实现互连,还要实现应用之间的互操作; – 中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
现代应用系统的基本特征
▪分布 任务已不只是在单机上运行,而是由网络中多台计
算机上的相关应用共同协作完成,需考虑网络传输、数据安全、 数据一致性、同步等诸多问题;
Stub
3
4
Skeleton
Server
“Fred” Registry Virtual Machine
RMI 流程(3)
Client Virtual Machine
Server Virtual Machine
Client
5
Remote Object
7
6
Stub
Skeleton
Server
5. Client invokes stub method
动态 框架 调用
对象 适配
器
对象实 现仓库
所有 ORB 实现都一致的界面 可能有多个对象适配器 依赖 ORB 核心的界面 与每个对象对应的存根或框架
向上调用界面 向下调用界面
▪ 客户程序与对象实现之间的界面(interface)是对象的接口定义,
对象接口是服务双方共同订立的合约
▪ 对象实现可以采用多种方式实现:独立服务程序,一个程序
中间件中要解决的问题
▪ 互操作问题(通信) ▪ 提供一个基本的环境(基础服务)
▪ Stub,skeleton ▪ 注册
互操作问题
C语言中函数函数调用
f(int a2,int b2) {
int x,y,z; … return (z) } main() { int a1,b1,c; c=f(a1,b1); }
程序设计方法的发展
▪ 结构化程序设计 —— 以数据为中心
综
▪ 面向对象程序设计 —— 以对象为中心
合
使
▪ 组件程序设计 —— 以组件为中心
用
软件需求的变化
▪ 计算 ▪ 实用 ▪ 管理(MIS) ▪ 分布式系统
软件环境的变化
单任务 文字界面
单线程
多任务
图形界面
多线程
平台相关 单机(本地) 单一语言
▪ 远程服务器:创建远程对象的实例 ▪ 客户端:使用远程对象
Stub(存根/桩)
存在于客户端
远程对象的本地映象:调用远程对象时,实际调用的是桩对 象上的方法
负责
初始化并与远程对象所在的远程VM连接 将参数打包,传递到远程VM 等待方法调用的结果 解包返回值和异常 将值返回给调用者
框架
– COM组件、Java Applet
COM:组件
▪ COM对象的载体
– 包含多个COM对象
▪ 进程内组件
– DLL – Export Entrys
▪ 进程外组件
– IPC:RPC/LPC
中间件
▪ 中间件(Middleware)是一种软件,处于系统软件(操
作系统和网络软件)与应用软件之间,它能使应用 软件之间进行跨网络的协同工作(也就是互操作), 这时允许各应用软件之下所涉及的“系统结构、操 作系统、通信协议、数据库和其它应用服务”各不 相同
Client applications. Services are dynamically discoverable and composable entities
▪ Web服务的体系结构与Web应用的N层结构类似,区别在于
顶层的面向浏览器的Web Server被面向程序的(Web Service Client)的Web服务所取代。
概念:类、对象
▪ 类是定义,它封装了状态和操作 ▪ 对象是实例,它反映了具体的事物 ▪ 对象由类来定义 ▪ 一个对象可以与多个具有继承关系的类相联系
概念:组件
▪ 定义:可独立发布的二进制单元 ▪ 有的地方称作“package” ▪ 比喻:零件
▪ 容易混淆:
– 服务器(server)、对象
▪ 例如:
1.1
中间件的特性
▪ 易用性 ▪ 位置透明性:应用不必知道对方网络和应用的地址;不经重
新编译,就可把一个应用从一台机器上转移到另一台机器
▪ 消息传输的完整性:消息不应丢失或重复 ▪ 消息格式的完整性:消息格式不应被破坏 ▪ 语言透明性:使用中间件的程序应能与另一个用不同语言编
写的程序通信;如果用不同语言重写一个程序,其他程序应 不受影响
a2 10
b2 2 x
y z 30
10 a1 2 b1 30 c
Java中的调用
public class PassParameter{ static void showMe(int pi, Object po){ System.out.println("pi = " + pi + " ; po = " + po); // Step 2 (示意图:3-2-2) pi++; po = new Object(); System.out.println("pi = " + pi + " ; po = " + po); // Step 3 (示意图:3-2-3) } public static void main(String[] args){ int i = 1; Object o = new Object(); System.out.println("i = " + i + " ; o = " + o); // Step 1 (示意图:3-1-1) showMe(i, o); System.out.println("i = " + i + " ; o = " + o); // Step 4 (示意图:3-2-3) }
Server Virtual Machine
Remote Object
Skeleton
Server
“Fred” Registry Vi来自百度文库tual Machine
RMI 流程(1)
Client Virtual Machine
Server Virtual Machine
1. Server Creates Remote Object 2. SeCrvlienr tRegisters Remote Object
聚集或商业交易
部署在Web上的对象
▪ 对象界面描述: WSDL ▪ 对象访问: SOAP ▪ 对象界面发现: UDDI ▪ 对象实现: EJB, COM+,
CORBA以及任何可用于对象实 现的技术
UDDI WSDL SOAP
▪ 分布式计算是近年提出的一种新的计算方式。所谓分布式计
算就是在两个或多个软件互相共享信息,这些软件既可以在 同一台计算机上运行,也可以在通过网络连接起来的多台计 算机上运行。分布式计算比起其它算法具有以下几个优点: 1、稀有资源可以共享, 2、通过分布式计算可以在多台计算机上平衡计算负载, 3、可以把程序放在最适合运行它的计算机上, 其中,共享稀有资源和平衡负载是计算机分布式计算的核心 思想之一。
Web Service特点
▪ Web 服务是用标准的、规范的 XML 概念描述一些操作的接
口(利用标准化的 XML 消息传递机制可以通过网络访问这 些操作)
▪ 该接口隐藏了实现服务的细节,允许独立于实现服务所基于
的硬件或软件平台和编写服务所用的编程语言使用服务。
▪ Web 服务履行一项特定的任务或一组任务。 ▪ Web 服务可以单独或同其它 Web 服务一起用于实现复杂的
po = new Object(); System.out.println(“pi = ” + pi + “ ; po = ” + po); // Step 3 (示意图:3-2-3)
…… System.out.println("i = " + i + " ; o = " + o); // Step 4 (示意图:3-2-3)
跨平台 网络(分布式) 多种语言
发展路线
面向过程语言c
面向对象语言 java
rpc 分布式技术
Web service
中间件技术
rmi
组件
分布式技术
▪ 分布式就是把整个网络作为一台大型计算机,在不同的地方
做不同的工作
▪ 分布式软件系统(Distributed Software Systems)是支持分布式
Rpc的调用
▪ 从一个程序片调用另一个程序片的过程称为远程过
程调用,即RPC。
▪ RPC是一个Client/Server模型,调用程序片(本地
程序)称为rpc client,被调用程序片(远程程序) 称为rpc server。
主程序
main(…) . . .
调用A . . .
退机出器1
RPC调用模型
处理的软件系统,是在由通信网络互联的多处理机体系结构上 执行任务的系统。它包括分布式操作系统、分布式程序设计 语言及其编译(解释)系统、分布式文件系统和分布式数据库 系统等
▪ 分布式计算是一门计算机科学,它研究如何把一个需要非常
巨大的计算能力才能解决的问题分成许多小的部分,然后把 这些部分分配给许多计算机进行处理,最后把这些计算结果 综合起来得到最终的结果
库,被包装的非面向对象应用程序等
▪ 对象接口是对象结构与行为的外部可见的规格说明,用IDL描述 ▪ 对象实现提供对象内部的具体数据表示与可执行代码,同一接口
的实现可采用不同语言编写
▪ 所有接口均未规定组件的具体实现,为开发的实现活动留下自由
corba静态工作方式
客户
IDL stubs 客户方代理 ORB内核