1、长春工业大学软件学院中间件技术原理与应用刘 冰长春工业大学中间件技术原理与应用刘 冰长春工业大学软件学院课程目标 构造大型的分布式软件系统时将遇到 什么样的问题 解决这些问题的原理与技术:构件技术与中间件技术 相关的工业标准 如 COM、CORBA、J2EE等课程目标构造大型的分布式软件系统时将遇到 什么样的问题长春工业大学软件学院 1 1、操作系统、操作系统 2 2、计算机网络、计算机网络 3 3、数据库原理、数据库原理 4 4、软件工程、软件工程 5 5、Java/CJava/C相关课程1、操作系统相关课程长春工业大学软件学院开放系统互操作性中间件123远地过程调用及其增强分布式计算环境4
2、5第1章 中间件产生背景及分布式计算环境开放系统互操作性中间件1 2 3 远地过程调用及其增强分布式计算环长春工业大学软件学院什么是分布式软件 软件面临的问题软件正变得无处不在,同时软件所面临的挑战也正在日益加剧 复杂度高 开发周期长 可靠性保证难什么是分布式软件软件面临的问题长春工业大学软件学院什么是分布式软件 本课程关注分布式软件系统的开发支撑 随着网络与通信技术的发展,分布式软件的应用越来越广泛,分布式软件在计算机软件应用领域扮演者非常重要的角色。分布式软件一般比集中式软件规模大、复杂,是软件开发复杂性的集中体现。什么是分布式软件本课程关注分布式软件系统的开发支撑长春工业大学软件学院什么
3、是分布式软件 分布式软件 网络环境:一群通过网络互相连接的处理系统,每个处理节点由处理机硬件、操作系统及基本通信软件等组成。分布式软件:运行在网络环境中的软件系统。两种典型的应用途径 将分布式软件系统看做直接反映了现实世界中的分布性 用于改进某些应用的运行性能什么是分布式软件分布式软件长春工业大学软件学院计算模式的发展过程计算模式的发展过程基于主机的系统(分时共享、资源共享)基于主机的系统(分时共享、资源共享)两层两层Client/Server系统系统p客户端负担仍然比较重客户端负担仍然比较重p仍然需要客户端进行较复杂的数据处理仍然需要客户端进行较复杂的数据处理p客户端的可移植性不好客户端的可
4、移植性不好p处理复杂必然牵涉更多的移植性问题处理复杂必然牵涉更多的移植性问题p每个客户端上都要安装数据库驱动程序每个客户端上都要安装数据库驱动程序p系统的可维护性不好系统的可维护性不好p客户端包含过多的商业逻辑客户端包含过多的商业逻辑p商业逻辑与人机交互界面交织在一起商业逻辑与人机交互界面交织在一起p数据的安全性不好数据的安全性不好 1.1开放系统与互操作性概述计算模式的发展过程1.1 开放系统与互操作性概述长春工业大学软件学院计算模式的发展过程计算模式的发展过程 三层(三层(n层)体系架构层)体系架构p表示层表示层 用户层用户层p业务逻辑层业务逻辑层应用层应用层p数据层数据层数据库服务器数据
5、库服务器 基于基于Web的三层(的三层(N层)体系结构层)体系结构1.1开放系统与互操作性概述计算模式的发展过程1.1 开放系统与互操作性概述长春工业大学软件学院开放系统基本组成开放系统基本组成硬件硬件 包括包括PC,工作站,大中型机,各式各样的,工作站,大中型机,各式各样的 嵌入式设备,移动设备;嵌入式设备,移动设备;软件软件 各类操作系统、应用软件;各类操作系统、应用软件;网络网络 各类网络结构、网络协议。各类网络结构、网络协议。开放系统面临的问题开放系统面临的问题 远程性远程性 并发行并发行 无全局状态无全局状态 部分失败部分失败 异步性异步性 异质性异质性 自主性自主性 联合型联合型
6、伸缩性伸缩性 发展性发展性 移动性移动性1.1续开放系统基本组成1.1 续长春工业大学软件学院开放系统特点开放系统特点开放的:提供开放的:提供可移植性可移植性和和协同协同工作;工作;集成的:有助于对付集成的:有助于对付异质性异质性;灵活的:有助于对付灵活的:有助于对付移动性移动性;模块化的:模块化的:灵活性灵活性的基础;的基础;可联合的可联合的可管理的可管理的安全的安全的透明的:支撑软件和硬件的透明的:支撑软件和硬件的异质性异质性;满足服务满足服务质量需求质量需求1.1续开放系统特点1.1 续长春工业大学软件学院开放系统必具特性开放系统必具特性 可移植性可移植性(Portability)可互操
7、作性可互操作性(Interoperability)可伸缩性可伸缩性(Scalability)易获得性易获得性(Availability)1.1续开放系统必具特性1.1 续长春工业大学软件学院开放系统构造开放系统构造用轮廓勾划;用轮廓勾划;轮廓由轮廓由系统管理系统管理 用户界面用户界面 安全性安全性 编程服务编程服务 互操作服务互操作服务 通信服务通信服务 信息实体信息实体 七个成分组成;七个成分组成;对轮廓的各成分标准化,即成开放系统。对轮廓的各成分标准化,即成开放系统。1.1续开放系统构造1.1 续长春工业大学软件学院开放系统开放程度表 1.1续开放系统开放程度表 1.1 续长春工业大学软件
8、学院互操作性互操作性本质:本质:从异质环境(异种从异质环境(异种体系结构体系结构、异种、异种操作系统操作系统、异种、异种网络网络等等)中获得资源的)中获得资源的透明动用透明动用能力。能力。面向面向计算资源计算资源的互操作性的互操作性 面向面向信息资源信息资源的互操作性(如数据库)的互操作性(如数据库)定义定义:在一个由在一个由异质实体异质实体构成的网络环境中,当应用在网络的结构成的网络环境中,当应用在网络的结点上运行时,它可以点上运行时,它可以透明地透明地动用网中其他结点上的动用网中其他结点上的资源资源,并借助这些资源与本结点上的资源共同来完成某个或,并借助这些资源与本结点上的资源共同来完成某
9、个或某组任务。某组任务。1.1续互操作性1.1 续长春工业大学软件学院互操作性互操作性定义定义:在一个由在一个由异质实体异质实体构成的网络环境中,当应用在网络的结构成的网络环境中,当应用在网络的结点上运行时,它可以点上运行时,它可以透明地透明地动用网中其他结点上的动用网中其他结点上的资源资源,并借助这些资源与本结点上的资源共同来完成某个或,并借助这些资源与本结点上的资源共同来完成某个或某组任务。某组任务。本质:本质:从异质环境(异种从异质环境(异种体系结构体系结构、异种、异种操作系统操作系统、异种、异种网络网络等等)中获得资源的)中获得资源的透明动用透明动用能力。能力。面向面向计算资源计算资源
10、的互操作性的互操作性 面向面向信息资源信息资源的互操作性(如数据库)的互操作性(如数据库)1.1续互操作性1.1 续长春工业大学软件学院现代应用系统的基本特征现代应用系统的基本特征分布分布 任务已不只是在单机上运行,而是由任务已不只是在单机上运行,而是由网络中网络中多台计算机上的相关应用多台计算机上的相关应用共同协作共同协作完成,需考虑完成,需考虑网络传输网络传输、数据安全数据安全、数据一致性数据一致性、同步同步等等诸多问题;诸多问题;异构异构 计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑多,需考虑数据表示数
11、据表示、调用接口调用接口、处理方式处理方式等诸多问题;等诸多问题;动态协作动态协作 参与协作的应用允许参与协作的应用允许位置透明性位置透明性、迁移透明性迁移透明性、负载平衡性负载平衡性等需求。等需求。1.2 中间件概述现代应用系统的基本特征1.2 中间件概述长春工业大学软件学院1.2续应用应用1应用应用2应用应用3服务器服务器1服务器服务器2服务器服务器31.2 续应用1 应用2 应用3 服务器1 服务器2 服务器3长春工业大学软件学院1.2续应用应用1应用应用2应用应用3服务器服务器1服务器服务器2服务器服务器3中间件中间件1.2 续应用1 应用2 应用3 服务器1 服务器2 服务器3 中间
12、件长春工业大学软件学院应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统可协同工作利用中间件进行协同工作的系统1.2续应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统长春工业大学软件学院中间件定义中间件定义中间件中间件(Middleware)(Middleware)是一种是一种软件软件,处于,处于系统软件系统软件(操作系统和网络软件)与(操作系统和网络软件)与应用软件应用软件之间,它之间,它能使处于应用层中的各应用成分之间实现跨网能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是络的协同工作(也就是互操作互操作),这时允许各),这时允许各应用软件之下所涉及的应用
13、软件之下所涉及的“系统结构、操作系统系统结构、操作系统、通信协议、数据库和其它应用服务、通信协议、数据库和其它应用服务”各不相各不相同。同。1.2 续中间件定义1.2 续长春工业大学软件学院应用软件中间件网络协议操作系统硬件平台应用软件中间件网络协议操作系统硬件平台DBMS两者内含有进两者内含有进行协同工作的行协同工作的应用成分应用成分中间件定义1.2 续应用软件中间件网络协议操作系统硬件平台应用软件中间件网络协议长春工业大学软件学院中间件组成中间件组成1 1执行环境(执行环境(Execution EnvironmentExecution Environment)软件软件 如果一个网络的各个节
14、点上安装了如果一个网络的各个节点上安装了EEEE软件软件,各节点上的应用,各节点上的应用软件之间就可以实现软件之间就可以实现相互合作相互合作。EEEE软件使各节点的软件使各节点的下层设下层设备备对应用软件对应用软件透明化透明化了,了,EEEE软件是中间件中的软件是中间件中的主体部分主体部分。2 2应用开发应用开发(Application Development)(Application Development)工具工具ADAD工具用来帮助工具用来帮助开发内含开发内含“透明动用对方透明动用对方”成分的应用软件成分的应用软件,或,或改造原有的无透明动用能力的应用软件改造原有的无透明动用能力的应用软
15、件。ADAD工具是中工具是中间件中的间件中的必备部分必备部分。1.2 续中间件组成1.2 续长春工业大学软件学院合作方合作方 B 下层设备透明设施下层设备透明设施 T2 平台平台 网络网络 网络网络 平台平台 平台平台 合作方合作方 C 合作方合作方 A 合作对象透明设施合作对象透明设施 T1 中间件的层次结构1.2续中间件的层次结构1.2 续长春工业大学软件学院中间件基本框架中间件基本框架第四层第四层应用接口(应用接口(API)层)层中间件服务层中间件服务层(通信,控制,计算,管理,输出,信息等)应用平台层应用平台层(Unix、NetWare、NT、VAX、OPENVMS等)传输协议层传输协
16、议层(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三层第三层第二层第二层第一层第一层中间件的基本功能框架结构1.2续中间件基本框架第四层应用接口(A P I)层中间件服务层应用平台长春工业大学软件学院基于中间件的软件系统基本模型基于中间件的软件系统基本模型1.2续基于中间件的软件系统基本模型1.2 续长春工业大学软件学院中间件工作原理中间件工作原理中间件服务器1服务器2服务器n客户机1客户机2客户机n服务器端客户端同/异构环境1.2 续中间件工作原理中间件服务器1 服务器2 服务器n 客户机1 客户机2长春工业大学软件学院中间件的基本分类中间件的基本分类事务处理中间件事务处理中间
17、件(交易中间件,(交易中间件,TPMTPM)原子性原子性 A A 一致性一致性 C C隔离性隔离性 I I 耐久性耐久性 D D消息中间件消息中间件(MOMMOM)消息队列消息队列发布发布-预定预定分布式中间件分布式中间件1.2续中间件的基本分类1.2 续长春工业大学软件学院中间件的发展情况中间件的发展情况1.2续中间件的发展情况1.2 续长春工业大学软件学院中间件的主要厂商中间件的主要厂商第一梯队第一梯队OracleOracle(BEABEA)、)、IBMIBM、东方通科技,占、东方通科技,占70%70%以上份额;以上份额;第二梯队第二梯队SunSun、中软、中创、微软等;、中软、中创、微软
18、等;第三梯队第三梯队国内若干中小软件企业和系统集成企业。国内若干中小软件企业和系统集成企业。1.2 续中间件的主要厂商1.2 续长春工业大学软件学院中间件的作用中间件的作用它提供了它提供了通道通道的功能,可保证应用的功能,可保证应用系统数据系统数据的可靠传输;的可靠传输;它起着它起着桥梁桥梁的作用,达成的作用,达成异构应用资源异构应用资源之间的互联互通;之间的互联互通;它是分布式应用的集成它是分布式应用的集成开发框架开发框架,促成企业分布式应用的,促成企业分布式应用的有机集成有机集成;作为作为平台平台,它可有效实现分布应用的,它可有效实现分布应用的分阶段分阶段顺利部署;顺利部署;它起着它起着过
19、滤网过滤网的作用,可有力保护的作用,可有力保护关键信息关键信息的安全。的安全。1.2 续中间件的作用1.2 续长春工业大学软件学院中间件的优越性:中间件的优越性:1.1.企业应用方面企业应用方面缩短应用开发周期缩短应用开发周期减少项目开发风险减少项目开发风险应用程序质量可维护性应用程序质量可维护性增加产品吸引力增加产品吸引力2.2.应用程序方面应用程序方面透明地同其他应用程序交互透明地同其他应用程序交互与运行平台提供的网络通信与运行平台提供的网络通信服务无关服务无关具有良好的可靠性和可用性具有良好的可靠性和可用性具有良好的可扩展性具有良好的可扩展性1.2 续中间件的优越性:2.应用程序方面1.
20、2 续长春工业大学软件学院中间件发展面临的问题中间件发展面临的问题不同厂商的实现很难不同厂商的实现很难互操作互操作只提供了一部分只提供了一部分平台的实现平台的实现应用开发者要面临设计应用开发者要面临设计选择选择过分追求中间件功能的全面性过分追求中间件功能的全面性过分强调选择国外产品过分强调选择国外产品不能准确认识中间件的作用不能准确认识中间件的作用1.2续中间件发展面临的问题1.2 续长春工业大学软件学院中间件技术发展趋势中间件技术发展趋势 中间件的发展需要中间件的发展需要规范化规范化 应用需求导致技术应用需求导致技术格局多样化格局多样化 构件化和松散耦合构件化和松散耦合 底层底层的中间件持续
21、走稳的中间件持续走稳 高层高层的中间件成为市场新宠的中间件成为市场新宠 新技术与产品的推出速度放缓新技术与产品的推出速度放缓 实用化实用化是重要的发展趋势是重要的发展趋势1.2 续中间件技术发展趋势1.2 续长春工业大学软件学院RPCRPC背景背景在传统的编程概念中,在传统的编程概念中,过程过程是只能局限在是只能局限在本地运行本地运行的一段代的一段代码,码,主程序和过程之间主程序和过程之间的运行关系是的运行关系是本地调用本地调用关系关系本本地过程调用地过程调用LPCLPC。LPCLPC模式无法充分利用网络上其他主机的资源,也无法提高代模式无法充分利用网络上其他主机的资源,也无法提高代码在实体间
22、的码在实体间的共享共享程度,使得主机资源大量浪费。程度,使得主机资源大量浪费。RPCRPC是对是对LPCLPC的扩展。通过这种调用机制,程序员编写客户方的扩展。通过这种调用机制,程序员编写客户方应用时,可根据需要应用时,可根据需要透明地调用透明地调用位于远端服务器上的过程位于远端服务器上的过程。1.3远程过程调用及其增强R P C 背景1.3 远程过程调用及其增强长春工业大学软件学院main()main().调用调用A A.退出退出A()A().调用调用B B.退出退出B()B().退出退出主程序主程序过程过程A代码代码过程过程B代码代码机器机器1机器机器2机器机器3RPCRPC调用模型调用模
23、型主程序主程序子程序子程序子程序子程序1.3 续ma i n()A()B()主程序过程A 代码过程B 代码机器长春工业大学软件学院远程过程调用远程过程调用RPC概念概念RPC是从一台是从一台机器机器或一个或一个进程进程调用另一台机器或另一个进调用另一台机器或另一个进程的程的服务或方法。服务或方法。远程过程调用是创建远程过程调用是创建分布式应用分布式应用的一种方法,来源于的一种方法,来源于Unix操作系统操作系统的处理思想,被普遍认为是创建分布式应用的有的处理思想,被普遍认为是创建分布式应用的有效方法。效方法。从从程序员的角度程序员的角度,RPC采用常规的编程模式:采用常规的编程模式:程序代码调
24、程序代码调用远端过程并将结果返回。用远端过程并将结果返回。当使用当使用RPC时,只需编写很时,只需编写很少的网络程序代码,绝大部分代码由少的网络程序代码,绝大部分代码由IDL(Interface Define Language)生成。生成。1.3 续远程过程调用R P C 概念1.3 续长春工业大学软件学院IDL编译器结构编译器结构IDL规范规范IDL编译器编译器头头文件文件客户客户存根存根头头文件文件对象对象实现实现框架框架图2-4 IDL编译器结构1.3 续I D L 编译器结构I D L 规范I D L 编译器头文件客户存根头文件对长春工业大学软件学院远程过程调用远程过程调用中间件工作机
25、理中间件工作机理用中间件中的用中间件中的IDL对对调用顺序调用顺序加以加以描述描述;利用利用IDL编译器编译器对这种定义和描述进行编译,从而生成支对这种定义和描述进行编译,从而生成支持客户机和服务器进行持客户机和服务器进行通信的管道通信的管道;在在服务器端服务器端,被调用的远端过程需,被调用的远端过程需单独编写单独编写,并被置入,并被置入服服务器端框架务器端框架,同时要在远程过程调用中间件中进行,同时要在远程过程调用中间件中进行注册,注册,以备调用。以备调用。启动本地启动本地客户端存根客户端存根存根存根捆绑捆绑远端过程名和参数远端过程名和参数利用利用网络传输网络传输到服务器端框架,从而实现到服
26、务器端框架,从而实现数据格式的数据格式的转换转换和和参数的传递参数的传递采用采用调用调用/返回返回模式具体地完成远端过程调用。模式具体地完成远端过程调用。1.3 续远程过程调用中间件工作机理1.3 续长春工业大学软件学院RPC工作流程工作流程客户运行客户继续执行服务调用过程调用服务过程执行过程返回请求返回RPC调用RPC返回Network图2-5 RPC工作流程RPCRPC一般采用一般采用调用调用/返回返回模式,多用于应用程序之间的通信,采用模式,多用于应用程序之间的通信,采用同步方式同步方式。RPCRPC程序之间的同步通信一般采用程序之间的同步通信一般采用Request-Wait-Reply
27、Request-Wait-Reply方式,因此方式,因此RPCRPC更适应更适应小型小型简单简单而不需要采用异步通信方式的应用。而不需要采用异步通信方式的应用。1.3 续R P C 工作流程客户运行客户继续执行服务调用过程调用服务过过程长春工业大学软件学院ClientSend(remote call pi()(发送发送“请求服务请求服务”信息)信息)Receive(ans)接收回复信息接收回复信息server接收调用信息;接收调用信息;抽取参数并分析;抽取参数并分析;调用所指的过程调用所指的过程;执行远程过程执行远程过程返回执行结果返回执行结果Send(ans)发送回复信息发送回复信息等等待待
28、回回复复请求服务请求服务等待等待调用调用继续继续返回调用结果返回调用结果RPCRPC的通信模型的通信模型1.3 续C l i e n t S e n d(r e mo t e c a l l p i()R长春工业大学软件学院3 call work returnServer ProcessOP2 Server-stub OP3RPC Routinereceive transmit45678Local return Local callClient ProcessOP4 Client-stub OP1waitRPC Routinereceive transmit12910RPCRPC执行过程执行过
29、程1.3 续3 c a l l w o r k r e t u长春工业大学软件学院通信协议通信协议支持两种传输协议:支持两种传输协议:TCPTCP、UDPUDPTCPTCP:连接、可靠、连接、可靠、低效低效。保证要么把调用传递到远程。保证要么把调用传递到远程过程且过程且接受应答接受应答,要么报告通信,要么报告通信无法进行无法进行。UDPUDP:无连接、无连接、不可靠不可靠、高效。使用、高效。使用UDPUDP的远程过程调的远程过程调用也许会用也许会丢失或重复丢失或重复。1.3 续通信协议1.3 续长春工业大学软件学院RPCRPC的语义的语义LastLast-of-many:-of-many:被调
30、用的过程被调用的过程可能执行若干次可能执行若干次,但规定其,但规定其最后一次最后一次执行的结果作为执行的结果作为返回结果返回结果。At-mostAt-most-once:-once:若调用者收到了回复消息,则称被调用的若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(过程正确地完成了它的一次(仅仅一次仅仅一次)执行。)执行。At-leastAt-least-once:-once:远程调用过程至少执行一次,回复消息可远程调用过程至少执行一次,回复消息可能能返回一次或多次返回一次或多次。ExactlyExactly-once:-once:若服务器正常,则远程过程恰好执行一次若服务器正常
31、,则远程过程恰好执行一次,并返回一个调用结果。,并返回一个调用结果。1.3 续R P C 的语义1.3 续长春工业大学软件学院远程过程调用远程过程调用的特点的特点客户客户/服务器模式服务器模式客户端的应用调用一个位于远端服务器平台的进程或服务,客户端的应用调用一个位于远端服务器平台的进程或服务,RPC实际上是通过实际上是通过C/S方式方式实现的。实现的。数据封装性数据封装性远端过程调用负责远端过程调用负责捆绑参数捆绑参数,实现不同平台之间参数的传递,发,实现不同平台之间参数的传递,发送参数到远端过程。送参数到远端过程。同步性同步性当客户机发出请求时,服务器进程处于当客户机发出请求时,服务器进程
32、处于运行状态运行状态。复杂性复杂性远程调用的实现环境可能要用远程调用的实现环境可能要用系统级的任务系统级的任务来创建,但一旦完成来创建,但一旦完成,对程序员就是透明的了。,对程序员就是透明的了。1.3 续远程过程调用的特点1.3 续长春工业大学软件学院远程过程调用远程过程调用的特点的特点缺点:需要进行缺点:需要进行系统级的配置系统级的配置;RPC 并并不支持对象不支持对象。CORBA的IIOP MTS的DCOM Java的 sockets应用级协议的编码交换 EJB?RMI(Java Remote Method Protocol)优点:方便地实现优点:方便地实现不同平台不同平台之间的之间的数据
33、转换数据转换。XDR(eXternal Data Representation)1.3 续远程过程调用的特点1.3 续长春工业大学软件学院RMIRMI环境环境RMIRMI(远程(远程方法方法激活):在分布式程序中,其远程激活):在分布式程序中,其远程对象对象的方法的方法能够被运行在不同主机上的其他能够被运行在不同主机上的其他JavaJava虚拟机的虚拟机的方法方法调用。调用。相对于相对于过程调用级过程调用级的的RPCRPC,RMIRMI可以实现可以实现编程级对象编程级对象之间之间的方法调用。的方法调用。本地与远程方法调用本地与远程方法调用对象应用程序本地调用机器A对象对象对象机器B网络远程调用
34、1.3 续R MI 环境本地与远程方法调用对象应用程序本地调用机器A 对象对长春工业大学软件学院RMIRMI体系结构体系结构远程引用层远程引用层传输层传输层Java Virtual MachineClientStub远程引用层远程引用层传输层传输层Java Virtual MachineRemote ObjectSkeletonTCP1.3 续R MI 体系结构远程引用层传输层J a v a V i r t u a l Ma长春工业大学软件学院RMIRMI系统的目标系统的目标支持对存在于支持对存在于不同不同JavaJava虚拟机虚拟机上对象的无缝的远程调上对象的无缝的远程调用。用。支持服务器对
35、客户的支持服务器对客户的回调。回调。把把分布式对象模型分布式对象模型自然地集成到自然地集成到JavaJava语言里。语言里。把分布式对象模型和本地把分布式对象模型和本地JavaJava对象模型间的对象模型间的不同表面不同表面化。化。使编写可靠的分布式应用程序使编写可靠的分布式应用程序简单化简单化。保留保留JavaJava运行时环境提供的运行时环境提供的安全性安全性。1.3 续R MI 系统的目标1.3 续长春工业大学软件学院RMIRMI的体系结构的体系结构RMIRMI体系结构有三层组成体系结构有三层组成桩(也成为存根)/框架层(stub/skeleton)远程引用层(Remote Refere
36、nce)传输层(Transport)1.3 续R MI 的体系结构1.3 续长春工业大学软件学院RMIRMI中的序列化中的序列化对远程方法需要的参数和返回值,桩和框架负责把它们对远程方法需要的参数和返回值,桩和框架负责把它们转化为字节流(即序列化),从而可以在网络上传送转化为字节流(即序列化),从而可以在网络上传送并可在另外一段重建(即逆序列化)。并可在另外一段重建(即逆序列化)。java.io.Serializablejava.io.Serializable如需要是一个类被序列化,需要满足三个条件:如需要是一个类被序列化,需要满足三个条件:实现Serializable接口。保证类有一个公共的
37、、无参数的构造方法。保证类不包含对不可序列化对象的引用。1.3 续R MI 中的序列化1.3 续长春工业大学软件学院DCEDCE的体系结构的体系结构DCEDCE包含一些线程、包含一些线程、RPCRPC、若干服务及应用。、若干服务及应用。1.4 分布式计算环境DCED C E 的体系结构1.4 分布式计算环境D C E长春工业大学软件学院DCEDCE的应用的应用三个文件:界面定义文件、客户程序、服务器程序三个文件:界面定义文件、客户程序、服务器程序1.4 续D C E 的应用1.4 续长春工业大学软件学院DCEDCE服务服务-基本服务基本服务线程服务线程服务RPCRPC服务服务目录服务目录服务安
38、全服务安全服务1.4 续D C E 服务-基本服务1.4 续长春工业大学软件学院DCEDCE服务服务-扩展服务扩展服务分布式文件服务分布式文件服务时间服务时间服务1.4 续D C E 服务-扩展服务1.4 续长春工业大学软件学院DCEDCE问题问题RPCRPC设计不周,开发工具薄弱。设计不周,开发工具薄弱。性能差、使用系统少、使用困难。性能差、使用系统少、使用困难。19961996年年OSFOSF与与X/OpenX/Open合并,合并,19971997年推出年推出1.2.21.2.2已经太迟。已经太迟。DCEDCE出现较早,因为没有采用面向对象技术。出现较早,因为没有采用面向对象技术。1.4
39、续D C E 问题1.4 续长春工业大学软件学院Open Network ComputingOpen Network ComputingONCONC核心协议:核心协议:远程过程调用远程过程调用 RPCRPC外部数据表示外部数据表示 XDRXDR运输层接口运输层接口 TLITLI分布式服务分布式服务 NFSNFS网络信息服务网络信息服务 NISNIS锁定管理器锁定管理器 LMLM远程执行服务远程执行服务 REXREX网盘网盘 NETDISKNETDISK自动装入器自动装入器.1.5 SUN的ONCO p e n N e t w o r k C o mp u t i n g 1.5 S U N 的长春工业大学软件学院Thank you!T h a n k y o u !