《北京大学java讲义__第九章_分布对象技术》由会员分享,可在线阅读,更多相关《北京大学java讲义__第九章_分布对象技术(57页珍藏版)》请在金锄头文库上搜索。
1、分布对象技术*1北京大学北京大学计算机系 代亚非第九章 分布对象技术n9.1 分布对象技术要解决的基本问题n9.2 分布对象技术概论n9.3 分布对象的核心概念n9.4 分布对象主流技术介绍n9.5 分布对象处理技术-发展趋势n9.6 分布对象主流技术开发过程29.1 分布对象技术要解决的基本问题n以下情况是不是分布式?n1、浏览n2、两个及其之间的通信n3、计算引擎3B机A机就是支持访问异地对象就是支持访问异地对象同一地址空间C+编译器完成连接 C+Main ProgramC+ Object分布对象技术要解决的问题9.1 分布对象技术要解决的基本问题4两层客户/服务器模型(胖客户)三层客户/
2、服务器模型(瘦客户) N层客户/服务器模型层的概念(TIERS):在客户/服务器意义 上将,一个层就代表一个具有定义好的 特定功能平台,一个平台就是就是一个 计算机软件和硬件的组合.应用程序对象应用程序对象应用程序对象9.1 分布对象技术要解决的基本问题分布式系统的客户/服务器模型59.1 分布对象技术要解决的基本问题 一个分布式系统的例子(原始的方法)电话订购 客户1电话订购 客户2电话订购 客户nWEB 服务器 1 WEB 服务器 2 中心订购 服务器WEB 服务器 m Internet.69.1 分布对象技术要解决的基本问题n使用多个服务器分割用户电话订购 客户1WEB服务器 1 Int
3、ernet电话订购 客户2中心订购 服务器1 WEB服务器 2 电话订购 客户1WEB服务器 1 电话订购 客户2中心订购 服务器1 WEB服务器 2 电话订购 客户1WEB服务器 1 电话订购 客户2中心订购 服务器1 WEB服务器 2 79.1 分布对象技术要解决的基本问题订购 服务器1订购 服务器2 订购 服务器nWEB 服务器 1 Internet.调度程序 考虑负载平衡的问题89.1 分布对象技术要解决的基本问题问题案例一:如何综合越来越多的数据 库资源,以适应不断发展的业务逻辑客户OracleSybaseInformix如何加入综合多个数据库的业务逻辑? 如何集成其它非数据库操作的
4、业务逻辑?如何处理“肥客户”应用问题?如何处理用户界面风格多样性?99.1 分布对象技术要解决的基本问题n问题案例二如何管理不断接入的新应用管理器N1N2Nk.109.1 分布对象技术要解决的基本问题汇编语言单机应用开发环境分布式应用开发环境Socket APIFortran语言OOP语言软构件技术RPC分布对象技术119.1 分布对象技术要解决的基本问题n我们都听到了哪些词汇?构件模型CORBA/IIOPJava/RMI分布对象ActiveX ControlsRPC COM/DCOM还有还有.EJB129.2 分布对象技术概论n分布计算是近二十年来影响计算机急速发展的最活 跃因素之一n经历了
5、两种不同的技术路线 1. 理想的技术路线(80年代学术界普遍追求的目标)试图在互连的计算机硬件上部署全新的分布式操 作系统 2. 现实的技术路线(90年代工业界普遍遵守的路线)在网络计算平台上部署分布计算环境提供开发工具和公共服务支持分布式应用资源共享和协同工作集中式客户/服务器139.2 分布对象技术概论n分布式系统比想象的要复杂: 1. 异构环境下的应用互操作的问题 2. 系统管理问题 3. 系统安全的问题 4. 传统的面向过程的技术在开发大型软件系统的局 限性n面向对象技术用于分布式(分布对象技术)标志第 二代分布式计算技术进入成熟和蓬勃发展时期.n分布式对象技术始于90年代初,已经发展
6、成为当 今分布异构环境下建立应用系统集成框架和标准 构件的核心技术149.2 分布对象技术概论面向的主要问题信息共享智能化的协同工作异构环境下的信 息互操作体系结构经典的客户/ 服务器模型面向对象的多 层客户服务器 模型自主的多agent模型关键技术的特点沿用传统的计算 概念和设施(如过 程调用和文件设 施)将面向对象技术 应用到分布计算面向agent的拟 人化交互环境成果能够提供丰富的分 布式系统服务,良好 的分布式系统管理 和典型的分布系统 应用已经成为建立 集成构架和软 构件标准的核 心技术概念验证系统 令人鼓舞,尚未 达到广泛应用 与协同工作的 成熟程度第一代 (80年代中90年代初)
7、第三代 (从现在开始)第二代 (90年代)159.2 分布对象技术概论n分布对象技术的核心概念有那些?1 分布对象的位置对客户透明2 可以被远程客户应用以方法调用的形式访问3 分布对象所使用的语言要对客户透明4. 分布对象运行的系统平台对客户透明5. 分布对象具有移动性(允许时间,空间,语言,操作平台的差异性)169.2 分布对象技术概论一个应用逻辑A机对象对象对象对象A机一个应用逻辑对象对象对象对象 D机C机B机JavaJavaVBC+VB179.2 分布对象技术概论 n分布式系统, 分布对象与软构件是什么关系? 1. 独立于特定程序设计语言和应用系统,可重用和自 包含的软件成分称为软构件.
8、 2. 分布对象是一种典型的软构件 3. 分布式系统是分散在两个或更多地方的计算机上 为了实现一个共同的目标而共同工作的软件实体 集合.n分布式应用系统中的成员: 1. 创建和维护分布对象的实体的应用称为服务器 2. 按照接口访问该对象的应用称为客户 3. 服务对象同时可以是其它服务对象的客户189.2 分布对象技术概论 n软构件模型的开发的目的是什么?重用,高层开发,通过工具进行自动化开发,简化开 发过程等.n软构件模型的开发的手段是什么? 软构件开发者:1.处理底层的实现细节以及与此相关的类.2.定义构件的基本的体系结构,构件界面的结构, 与 其它构件及容器相互作用的机制 软构件应用者:在
9、可视的开发环境将以存在的构件进行简单的组 装。199.2 分布对象技术概论n软构件模型的例子?nOMG的CORBA、Microsoft的COM/DCOM和SUN的 Java/EJB。20C+Main ProgramObject AObject AObject AAgent 1Agent 2网络计算环境A的代理对象适配器ORB9.3 分布对象技术-基本工作原理n什么是对象请求代理?n支持客户访问异地分布对象的核心机制称为对象 请求代理ORB(Object Request Broker)A机一个应用逻辑对象对象对象对象 D机C机B机一个应用逻辑A机对象对象对象对象219.3 分布对象技术-基本工作
10、原理客户应用逻辑分布对象 代理服务器对象请求分发器分布对象的实现对象请求适配器对象请求感知器网络传输访问ORB服务器构 造构架客户构造 构架相同的接口相同的接口229.3 分布对象技术-基本工作原理ORBORB客户客户客户客户O1O2OracleO3O4SybaseO5O6InformixO1R O2R O3R O4R O5R O6R虚拟 图书馆查询预约服务还书通知通知还/借处理如何管理客户应用预约预约23利用这些服务创建一个新的对象而不必知道对象在哪9.3 分布对象技术-基本工作原理n对象服务:支持分布式系统正常工作的各类基本的 系统级服务 1.名字管理 2.事件通告 3. 对象事务管理 4
11、. 对象生命周期249.3 分布对象技术-基本工作原理n通用功能:支持分布式系统高效开发和有效工作 的各类面向领域的常规服务和工具nGUIn数据库服务n电子邮件服务n系统管理服务n面象应用领域的领域构架259.3 分布对象技术-基本工作原理n应用对象:涉及各种应用软件,它在对象服务和 公共设施帮助下完成相应的应用逻辑nORB是一条软总线,把分布式系统中各类对象 和应用连接成相互作用的整体269.4 分布对象主流技术n分布对象技术的实质性进步:1. 使面向对象技术能够在异构的网络环境中 得以全面,彻底,方便的实施2. 有效地控制系统的开发,管理,维护的复杂性n分布对象的主流技术1. OMG的CO
12、RBA2. Microsoft的ActiveX/DCOM3. SUN的Java/RMI279.4 分布对象主流技术-CORBAnOMG是一个非盈利性国际组织,致力于使 CORBA成为“无所不在的中间件”n1989年成立,当时仅有8家成员,目前有900家成 员nOMG制定的分布对象计算标准规范,按照这些 规范设计的开发的分布式计算软件环境可以在 几乎所有的主流硬件平台和操作系统上运行nCORBA的通信协议是IIOP(Internet Inter- ORB Protocol).nCORBA结构集中围绕着两个主要元素:ORB和 IDL,CORBA的语言独立性和平台独立性主要 来源于这两个方面.COR
13、BA289.4 分布对象主流技术-CORBAnORB负责定位服务器对象nIDL是建立接口的基础299.4 分布对象主流技术-CORBAnIDL Stubs 、IDL Skeleton是由IDL 编译器编译 产生的,用于静态调用,有较好的性能和效率。n动态调用接口和动态Skeleton用于动态调用,使 得即使在编译时不知道可用的服务器和接口消息 ,也能完成客户与服务器的作用nCORBA中的说明语言,称作OMGIDL,用以描 述对象的 接口。它本身不是一个可编程语言,但 它为程序员提供了语言的独立性,他们不必知道 调用者所采用的语言。nIDL的词法,语法规则遵从C+的规定,但加入 了一些关键词支持
14、分布概念。用接口描述语言( Interface Description Language)编写的对象 接口,使得与语言无关的独立性成为可能。309.4 分布对象主流技术-CORBAnCORBA规范的特点: 1. 互操作性:CORBA在客户和服务器之间提供了 两层可操作性。一方面它将客户与服务器都抽象 为对象,所有功能都封装在对象内部,对外提供 简单的接口,可被其它对象以动态或静态方式调 用。另一方面,对象间的通信是通过ORB代理实 现,对象不必关心细节,由ORB定址发送请求。 是ORB对象间的“通信总线”。319.4 分布对象主流技术-CORBA3.跨平台性:由于CORBA规范中定义了IDL语
15、言这 一与平台无关的语言,并引入代理(ORB)概念, 因此CORBA应用具有较好的跨平台性。2. 提供了软总件机制:所谓软总线是指CORBA规范定义了 一组接口规范,任何应用程序,软件系统或工具只要具有与 该接口规范相符合的接口定义,就能方便地集成对CORBA 系统中,而这个接口规范是独立于任何实现语言和环境。32ORBCLIENTSTUBSSKELETONSSERVERORBIIOPMETHOD REQUESTOBJECT REFERENCESERVANT9.4 分布对象主流技术-CORBAnCORBA结构一次请求的过程CORBA结构一次请求的过程339.4 分布对象主流技术-COM/DCO
16、MnOLE对象链接和嵌入(Object Linking and Embedding)n从用户角度看OLE1. OLE文档:以文档为中心,OLE集成数据2. OLE自动化3. OLE控件:可以被嵌入应用程序中的自包含的, 可重用的组件.COM,DCOM,OLE和ActiveX349.4 分布对象主流技术-COM/DCOM359.4 分布对象主流技术-COM/DCOM36组件对象模型(COM)结构化存储跟踪器 (永久命名)拖放嵌入剪贴板一致数据 传输器 (UDT)就地激活 (可视编程)链接OLE自动化OLE控件为 将 来 而 建 造9.4 分布对象主流技术-COM/DCOM 从程序员的角度看OLEOLE文档属性事件379.4 分布对象主流技术-COM/DCOMn构件对象模型COM (Component Object Model ) 是一个用于在交互平台上开发客户/服 务器应用程序开放结构.nCOM是微软的构件