1、分布计算环境 课程总结,主要内容,第一章 绪论 第二章 面向对象的分布计算环境 第三章 面向构件的分布计算环境 第四章 面向Web的分布计算环境 第五章 其他分布计算环境 第六章 代理技术,绪论,分布式系统 在 网 络 计 算 平台 上 开 发、 部 署、 管 理 和 维 护 以 资 源 共 享 和 协 同 工 作 为 主 要 应 用 目 标 的 分 布 式 应 用 系 统 分布计算 简单地说,分布式计算是两个或多个软件共享信息、协同工作。这些软件既可以在同一台计算机上运行,也可在通过网络连起来的几台不同机器上运行。 分布计算技术是构成分布式系统的基础,分布计算环境,分布计算环境: 分布计算环
2、境提供了网络环境下不同软、硬件平台资源共享和互操作的有效手段,使得分布式计算可以比较方便地得以实现,从而分布式系统可以比较方便地得以构造 方便分布式系统的构建:设计、实现、部署、维护 分布式计算环境本身实际上也是分布式系统,实现分布计算环境的技术路线,现实的技术路线(90年代工业界普遍遵守的路线) 在网络计算平台上部署分布计算环境 提供开发工具和公共服务 支持分布式应用 资源共享和协同工作,Distributed Computing Environment,分布计算环境的技术基础,分布式计算环境构造技术基础 分布在网络上的程序之间的互操作技术 目录技术、负载平衡技术、容错技术、事务管理技术、安
3、全技术 面向对象的分布计算环境 简化面向对象的分布式系统的设计与实现 面向构件的分布计算环境 简化基于构件的分布式系统的设计与实现 面向的分布计算环境,主要内容,第一章 绪论 第二章 面向对象的分布计算环境 第三章 面向构件的分布计算环境 第四章 面向Web的分布计算环境 第五章 其他分布计算环境 第六章 代理技术,面向对象的分布计算环境,分布式系统中的面向对象技术 分布对封装性、继承性和对象引用的影响 开放分布式处理ODP ODP是为了解决什么问题而提出来的? 主要内容:视点、透明性、功能 CORBA技术 OMA体系结构、IDL、ORB 面向对象的远程方法调用是如何实现的?,Open Dis
4、tributed Processing,ISO和ITU-T 的开放分布处理模型(ODP-RM) 为面向对象的分布式处理提供一个通用的体系结构框架,将开放式思想引入分布式处理,以解决异构系统间各种相关机制的一致性问题 ODP-RM能够协调和指导不同应用领域的ODP标准的开发。 即它是一种框架, 在其上可实现不同的”分布计算环境”。,ODP的主要内容,主要包含三部分: 视点:为清晰地描述复杂的系统,把对ODP系统的说明细化为五个视点(即从五个不同的角度来观察),以及用于表达这五个视点的语言。 透明性:开放式分布处理系统应该提供的八个透明性。 功能:定义开放式分布处理平台应该具有的功能。,ODP的视
5、点,ODP的分布透明性,ODP的分布透明性 访问透明性、位置透明性、重置透明性、持久透明性、迁移透明性、复制透明性、故障透明性、事务透明性,ODP的通用功能,RM-ODP定义了用来支持RM-ODP平台的4组24种通用功能。灵活地利用这些功能可以近于无缝地实现ODP系统的目标。 管理功能 协调功能 仓库功能 安全功能,CORBA,Common Object Request Broker Architecture: OMG组织制定的一个工业规范,是一个体系结构和一组规范 定义了一系列API、通信协议、组件/服务信息模型,使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平
6、台上。 目的:在分布式环境下实现应用的集成,使基于对象的软件成员,在分布的、异构的环境下可重用、可移植、可互操作。 方法:提供一个框架,如果符合这一框架,就可以在主要的硬件平台和操作系统上建立一个异质的分布式应用。,CORBA的OMA,对象管理体系结构OMA:描述了OMG规范所遵循的概念化的基础结构,CORBA的IDL,仅定义接口,不定义实现 分隔“对象作什麽 (WHAT)”与“如何做 (HOW)”,CORBA的ORB,对象请求代理ORB(Object Request Broker):定义异构环境下对象透明地发送请求和接收响应的基本机制。ORB 为客户隐藏: 对象位置 对象实现方式 对象执行状
7、态 对象通信机制 为什么在异构环境下能够透明地发送请求和接收响应?,存储允许ORB的定位和激活 对象实现的信息,如Server 支持的类、实例化对象、 这些对象的ID等运行时信息。,对象引用的生成、维护, 方法调用、对象的激活与终止、 对象定位等功能。 BOA:Basic Object Adapter POA:Portable Object Adapter,DII在Server方的对应。 DSI从进入的消息找出调用 的目标对象及相应的方法, 并提供运行时的连接机制。,允许动态地构造对象调用。 客户机可推迟到运行时选择 对象的实现接口和操作。,静态IDL存根在Server侧的对应。 由IDL编译
8、程序自动生成。,服务的静态接口。 由IDL编译程序自动生成。 在客户端,如同一本地调用, 是远程SERVER对象的代理。,访问某个对象实现所提供的服务 的程序。根据其接口了解其逻辑结 构,并通过调用掌握对象的行为,所定义的IDL接口的真正实现。 可用语言: C, C+, Java, Smalltalk, Ada ,是ORB最关键的部分, 负责请求的通信设施: 对象的定位 编组与解组 启动初始服务 屏蔽底层网络细节 提供接口库和其它的API,ORB的组成,对象的IDL 接口定义的存储、 分布和管理。客户对象可以在运行 时查阅接口仓库的内容,获得对象 实现的IDL接口信息,从而 向对象实现发出请求
9、。,当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以 像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上ORB会截取这个 调用(通过客户Stub完成),因为客户和服务器可能在不同的网络、不同的操作系统上 甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准的方式 (称Marshaling)通过网络传输到服务器方(有时在同一台机器上也如此),并通过将参 数Unmarshaling的过程,传到正确的对象上(这整个过程叫重定向,Redirecting),服务 器对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结
10、果返回给客户。,ORB内核提供的服务对象接口, 同时为客户方和对象实现方所见, 可直接为应用程序所使用。,CORBA服务,CORBA服务:系统级的对象框架。这些服务扩展了基本的CORBA体系结构。CORBA 服务代表了一组预先实现的,软件开发商通常需要的分布式对象,如: 命名服务 事务服务 OMG为每个服务定义了标准API。实现厂商提供支持这些API的具体产品,它们的实现方法可能不同,但接口是一致的。用户购买、部署需要的服务产品。在程序中使用时,首先获取服务中相应对象的IOR,然后调用它的操作即可。,基于CORBA的软件开发,主要内容,第一章 绪论 第二章 面向对象的分布计算环境 第三章 面向
11、构件的分布计算环境 第四章 面向Web的分布计算环境 第五章 其他分布计算环境 第六章 代理技术,面向构件的分布计算环境,软件构件结构 框架、构件、对象总线 构件模型 EJB和J2EE 各类EJB及其相应的生命周期函数 EJB容器 J2EE EJB3.0,软件构件结构,软件构件体系结构 框架 对问题的部分解决,是让用户集成构件的架构 构件(组件) 构件是软件的基本单元, 既足够小,以便于维护,又应足够大,以使之具有功能,可以被打包和使用。构件的集成构成软件应用。 与对象的区别? 对象总线 是一种机制,使得构件和框架能够调用分布式环境中的另一构件或框架的服务。,构件模型,构件模型:是为开发者定义
12、软件构件而建立的体系结构和API集,使开发者可通过软件构件的动态组合来建立应用系统构件模型构件容器当前主流的几种构件模型:CORBA、DCOM、EJB、SPRING,EJB,EJB:Java服务器端服务框架的规范,软件厂商根据它来实现EJB服务器。应用程序开发者可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。 EJB的三个关键构件 EJBHome接口 EJBObject接口 EJB实现类,EJB的调用,客户端利用JNDI查找EJB Home。 客户端利用EJB Home的create方法创建一个 session EJB。 本地EJB Home通知容器创建一个远程 EJB构件。
13、容器向客户端返回EJB Object stub。 客户端调用EJB Object上的方法,调用被转发到远程的EJB完成。,EJB 的分类,EJB的分类 实体bean 会话Bean 消息驱动BeanEJB的生命周期方法,Stateless bean的生命周期,Stateful bean的生命周期,BMP bean的生命周期状态,EJB 的容器,远程连接管理 生命周期管理 事务管理 容器管理的事务 Bean管理的事务 安全管理 声明性的授权 可编程的授权 资源管理,J2EE,Java EE,轻量级框架和EJB3.0,简化EJB EJB3.0规范中主要涉及两个方面的改变: 一套以标注为基础的EJB编
14、程模型 取消或最小化了很多(以前这些是必须实现)回调方法的实现 EJB只是一个加了适当标注的简单Java对象(POJO) 新的实体Bean持久化模型 降低了实体Bean及O/R映射模型的复杂性,控制反转与依赖注入,具体含义是:当某个角色(可能是一个Java实例,调用者)需要另一个角色(另一个Java实例,被调用者)的协助时,在 传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在轻量级容器里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由容器来完成,然后注入调用者,因此称为依赖注入。 颠覆了“使用一个对象之前,必须先创建它”这一编程理念。,依赖注入
15、,IoC Container,对于EJB3.0来说,依赖注入就是由容器负责查找被依赖的对象, 并注入到依赖bean中,而bean本身不再需要进行JNDI或者 context查询。此外,依赖注入发生在任何业务方法被调用之前, 而且支持setter方法注入和域注入两种方式。,主要内容,第一章 绪论 第二章 面向对象的分布计算环境 第三章 面向构件的分布计算环境 第四章 面向Web的分布计算环境 第五章 其他分布计算环境 第六章 代理技术,基于Web的分布计算技术,XML Web Service 语义Web 为解决什么问题而提出的? Web 2.0 特点 包含哪些主要技术,XML,由万维网联合组织(
16、W3C :World Wide Web Consortium)制定的最新页面描述语言标准。元语言。 用来对信息进行自我描述。 关注于怎样描述数据内容的组织和结构,以便数据在网络上进行交流和处理。 被标记的各个数据是保持其含义的,因此系统间交换数据的可能性极大提高。,XML(2),XML的NameSpase XML的文档类型:DTD、XML Schema XML的解析:SAX API、DOM API XML的显示:XSL XML的转换:XSLT,XML(3),XML的基础标准之间的相互关系,42,语义Web,每个资源有ID和清晰的定义,如软件,文件,人,地点 概念之间的关系有清晰的定义,如软件产
17、生文件,软件依赖于软件,文件的版本,文件具有主题,人所在地点,产生,依赖于,依赖于,是的版本,主题,作者,位于,Semantic Web - Layers,RDF的图模型,RDF的概念模型是图模型:可把RDF声明表示为有向、带标签的图。 椭圆节点表示用URI指代的主体和客体 方框节点表示文字类型的客体 有向弧标签则表示用URI指代的谓词,资源/主体,客体,谓词,Http:/ /book.html,Raymond Lau,创建者,45,RDF Schema,RDF只是定义了一种描述资源的框架,并没有定义可以使用哪些词汇对资源进行描述 RDF Schema(简称RDFS)实现对RDF的扩展,可用于
18、描述和定义于特定应用相关的类和属性,从而可创建自定义的词汇表 字典表述语言 RDFS的作用: 定义资源以及属性的类别; 定义属性所应用的资源类以及属性值的类型; 定义上述类别声明的语法; 申明一些由其它机构或组织定义的元数据标准的属性类。,46,What is Ontology .,An ontology is a formal, explicit specification of a shared conceptualization Gruber:共享概念模型的明确的规范说明 Conceptualization指通过抽象出客观世界中一些现象的相关概念而得到的模型Explicit指所使用的概念
19、及使用这些概念的约束都有明确的定义 Formal指Ontology是计算机可读的 Shared指Ontology中体现的是共同认可的知识,反映的是相关领域中公认的概念集,47,Web上的本体,在Web上,Ontology表现为分类法和一组推理规则 分类法定义类及类间的关系,对于Web来说,类、子类以及实体之间的关系是十分强大的工具 通过指定类的属性和允许子类继承属性就可以表达实体间的各种复杂关系。 推理规则提供更进一步的能力,它定义通过已有信息导出新信息的规则 根据推理规则和术语间关系,机器就可以执行一定的推导,或判定两个不同的术语实际上指代同一事物,或从术语间已有的关系推导出新的关系,或完成
20、更高级的推理任务。,Ontology语言栈,Web Service,有利于应用的集成 HTTP+XML, 最通用的访问方式 基于规范协议的访问接口, 可支持所有平台和应用 仅使用Web Service作为访问界面, 使得所有接入模块的编写变得容易 目标:在现有的各种异构平台的基础上,构筑一个通用的,与应用无关、语言无关的技术层,各种不同平台之上的应用依靠这各技术层来实施彼此的连接和集成; 能够在一个分布式的计算环境中动态地描述、发布、发现和调用,Web Service,什么是一个Web Service: 一个能够使用XML消息通过网络来访问的Interface, 这个Interface描述了一
21、组可访问的操作。 由SOAP+WSDL包装的Object 适应松散耦合的网络环境,可通过Web访问,手段是SOAP Message 服务的行为、输入/输出都可使用WSDL描述,Web Service体系结构,Web Service 体系结构,Service Provider,Service Broker,Service Requester,Find/UDDI /WSDL,Bind/Invoke,Publish/UDDI /WSDL,UDDI Registry,Web Service,Client Application,SOAP,SOAP协议,SOAP 信封 :“装”消息 请求和消息 数据的编
22、码规则 RPC调用规范 SOAP绑定SOAP是基于平台独立的选择简单的XML格式可以在任意平台采用任意技术可以使用开放源代码资源 可采用HTTP承载,方便在Internet范围内传送,WSDL,WSDL What:Web Service做什么 Where:Web Service位于哪里 How:怎样调用WSDL结构 types: 描述将会使用的数据类型 message: 定义传入传出的消息格式 portType: 定义了一个入口的类型(使用了怎样的request/response消息对):单请求、单响应、请求/响应、响应/请求 binding: 确定portType将会使用何种传输协议(SOA
23、P/HTTP-POST/) port: 定义了一个关联某个binding的服务入口 service: 一组port组成的Web Service,UDDI,UDDI:为加速Web Service的推广、加强Web Service的互操作能力而推出的一个计划 UDDI数据模型 White Page Yellow Page Green Page,Semantic Web服务,Web Services + Ontology 将本体的概念和相应技术引入Web服务技术中,同时,由于本体具有丰富的语义和广泛的关系,它将变革现有的Web服务,使之成为Semantic Web服务,使Web实现从自动化到智能化的
24、转变成为可能 Semantic Web服务: Web服务的属性、能力接口和效果均使用无歧义、机器可理解的方式进行编码。,Web2.0的定义,无统一定义 定义1:Web 2.0是一个作为平台的网络,跨越了所有连接的设备;Web 2.0的这些应用构成了这个平台的优势所在:发布软件成为一个持续更新的服务,并使更多的人更好的使用这种服务;获取并重组那些包括其他个人用户在内的各种来源的数据,并对其他人提供自己的数据与服务以便他们以同样的方式使用;通过一种共享网络架构的方式高效的创建网络,并提供比Web 1.0更丰富的用户体验” What is Web 2.0,Tim OReilly,2005年10月,互
25、联网作为平台,Web 2.0的典型应用和技术,BLOG 社会书签 维基百科Wiki 内容聚合RSS SNS Mash up Ajax,主要内容,第一章 绪论 第二章 面向对象的分布计算环境 第三章 面向构件的分布计算环境 第四章 面向Web的分布计算环境 第五章 其他分布计算环境 第六章 代理技术,其他分布计算技术,网格计算 云计算 P2P技术,什么是网格计算,是利用网络中一些闲置的处理能力来解决复杂问题的计算模式,适于大型科学计算和项目研究 ; 这种计算模式是利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算是由成千上万
26、个“节点”组成的“一张网格”, 所以这种计算方式叫网格计算; 网格是把整个网络整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享;,五层沙漏结构图,OGSA,OGSA的三大基本思想: 一切都是服务 将资源,信息。数据等统一起来,十分有利于灵活的一致的动态的共享机制的实现,使得分布式系统管理有标准的接口和行为 网格=网格服务,网格服务可以以不同的方式聚集起来满足虚拟组织的需要 统一的Web 服务架构 自然具备了原来Web Service的所有有利因素:服务描述和发现;从描述中自动产生客户和服务器端的代码;. 突破科技应用领域 同样可用于商业领域,
27、网格服务,网格服务=接口/行为+服务数据,云计算定义,云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。,云计算的基本原理,基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似 这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统 这意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的 类比:从古老的单台发电机模式转向了电厂集中供电的模式,云计算的三种服务模式(1),应用
28、软件对最终用户按需分配 e.g.,SAPIs for developing new Cloudapps e.g., Google App Web服务器, 网络,存储按需分配 e.g., Amazon EC2, S3,SaaS (Software as a Service, 软件即服务),PaaS (Platform as a Service, 平台即服务),IaaS (Infrastructure as a Service, 基础架构即服务),Each level provides a higher level of service abstraction & may use lower le
29、vel(s),云计算的三种服务模式(2),三种服务模式的构建架构,云计算的四种部署模式(1),混合云,公有云,社区云,私有云,企业独立拥有或独立承租的云系统在特定社区内共享的云系统,如:由某公司及其合作伙伴共同承建并分享使用的云系统面向公众开放租售的大规模云系统由以上三种云系统中的两种以上的云系统共同配合而提供IT能力的混合型云系统,云计算涉及的技术,虚拟化技术 云计算的基础容器技术 P云的核心执行引擎负载技术 保障平台各个模块、服务器负载均衡存储技术 云存储、分布式文件系统,什么是P2P?,对于P2P没有一个统一的定义 定义1:Peer-to-peer is a type of Intern
30、et network allowing a group of computer users with the same networking program to connect with each other for the purposes of directly accessing files from one anothers hard drives. 定义2: P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源
31、提供者(Server),又是资源获取者(Client)servent。 ,C/S模式和P2P模式,Client/Server模式,Peer to Peer 模式,P2P网络的拓扑结构,中心化拓扑 全分布式非结构化拓扑 全分布式结构化拓扑 半分布式拓扑,四种结构的比较,主要内容,第一章 绪论 第二章 中间件 第三章 面向对象的分布计算环境 第四章 面向构件的分布计算环境 第五章 面向Web的分布计算环境 第六章 其他分布计算环境 第七章 代理技术,基于人工智能的代理技术,代理:信息世界中的软件实体。具有一定程度的智能,其智能化的程度可以从简单的预定义规则到复杂的自学习人工智能推理机。 自治性 代
32、理性 智能性 移动性 代理语言 编程语言 通信语言 内容语言,多代理技术,多代理系统:支持代理之间的通信 协调 协作式多代理系统(CMAS) 自利益多代理系统(SMAS) 优点,移动代理技术,移动代理:一个能在异构网络中自主地从一台主机迁移到另一台主机并与其它代理或资源交互的程序。 移动代理迁移的内容 代码运行状态 远端执行 代码迁移 移动代理环境 移动代理的优点,代理平台,代理平台及实例 Grosshoper,移动代理的实现,Grosshoper中的代理要继承Grosshoper已经定义的类 如:Mobile agents: 继承de.ikv.grasshopper.agent.Mobile
33、Agent 的类的实例。 Move():该方法使得一个Agent可以迁移到一个新的Agency或者Place。 BeforeMove():当一个Agent迁移之前,该方法将被Agency自动调用; AfterMove():当一个Agent迁移到一个新的Agency/place时,该方法将被新的Agency自动调用 live(.): 每个Grasshoper 代理最基本的方法。它是唯一一个必须由Agent开发者重载的方法。一旦一个Agent 的live方法运行结束,该代理的执行线程就结束了,该代理就变成了一个普通的Java 对象。,主要内容,第一章 绪论 第二章 面向对象的分布计算环境 第三章 面向构件的分布计算环境 第四章 面向Web的分布计算环境 第五章 其他分布计算环境 第六章 代理技术,分布计算环境,分布计算环境提供了网络环境下不同软、硬件平台资源共享和互操作的有效手段,使得分布式计算可以比较方便地得以实现,从而分布式系统可以比较方便地得以构造 方便分布式系统的构建:设计、实现、部署、维护 分布式计算环境本身实际上也是分布式系统 分布式计算环境构造技术基础 分布在网络上的程序之间的互操作技术 目录技术、负载平衡技术、容错技术、事务管理技术、安全技术 ,