1 分布式计算概述_第1页
1 分布式计算概述_第2页
1 分布式计算概述_第3页
1 分布式计算概述_第4页
1 分布式计算概述_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一 . 分布式计算概述1 概述分布式系统 软件体系结构发展过程2 分布式计算技术。RPCCORBAXMLWEB服务J2EENET消息队列目录服务3 COMCOM历史COM结构COM特性11.1 分布式系统分布式操作系统 ( 松耦合硬件 紧耦合软件)单系统映像单一的全局的进程间通讯进程管理处处相同分布式文件系统相同的系统调用.(各机器上系统内核相同) Amoeba Mach 等等 同步, 事务, 进程管理 调度 处理器的分配. 分布式文件系统, 分布式共享存储器.分布式应用系统 网络操作系统 ( 松耦合硬件 松耦合软件) 高度自治21.2 软件体系结构发展过程1。无体系结构阶段 汇编语言 194

2、6 ENIAC机问世 机器语言 19551965 速度,价格,用途(科学、军事、商业) 汇编语言的移植 50年代中期FORTRAN,后期COBOL 60年代 ALGOL语言。 70年代以前仍以汇编语言为主2。萌芽阶段 结构化程序设计 1968年 “软件工程”的概念提出。开展了有关开发模型,方法以及工具支持等研究。瀑布模型,PASCAL, Ada语言,结构化的开发技术,费用估算,文档复审等 结构化程序设计强调数据结构、程序模块化为特征,采用自顶向下逐步求精的设计方法,由语句构成模块,模块的聚集和嵌套又构成层层调用的层次结构。33。初级阶段 面向对象程序设计Bjarne Stroustrup 19

3、80年“带类的C”,1983年取名为C,1987年开始标准化工作,1998年ISO C批准。 80年代初兴起。对象作为基本的元素,软件系统作为对象的集合。对象包括数据,也包括行为。面向对象的方法:1 识别对象和类,2 描述对象和类之间的关系,3 描述类的功能定义对象的行为。OO让用户、分析人员、设计人员更清楚地表述概念、交流。同时,大大提高了软件的易读性、可维护性、重用性。继承、封装、多态。 80年代中期,分布式计算开始萌芽,经典的C/S模型。4。高级阶段 组件(构件)技术 Component 90年代。软件目标:自适应性、互操作性、可扩展性、可重用性。 面向对象的软件重用是原代码的重用,组件

4、技术则实现了二进制级的重用组件可以单独开发、编译、测试。 分布式计算技术发展 42 主流的分布式计算技术及规范多层计算模型。中间件技术。ORB。CORBA、COM/DCOM Java。消息队列 。 软件总线。工作流(WFMC)。52.1 RPC第一个获得广泛认可的分布式计算技术是远程过程调用(Remote Process Call RPC)。使用RPC,客户应用程序可以调用在远程计算机上实现的C语言函数。对于远程过程调用的体系结构来说,ONCRPC(Open Network Computing RPC)和DCE(Open Groups Distributed Computing Environ

5、ment)是主流标准。在RPC机制下,为了实现跨进程甚至跨机器的通讯,它采用了一种称为列集(marshaling)的方法,数据传输之前,先进行列集,然后通过网络协议传到通讯的另一端,读取数据时,先对数据进行散集(unmarshaling),它是列集的相反过程。Sun公司于1985年发行了它的RPC软件包的第一个版本。使用Sun RPC最广泛流行的是NFS,即Sun的网络文件系统。在分布式计算领域,RPC更多地被用作其他高层的分布式计算技术的通讯基础,而不是单独地使用,但是,RPC所提出的一些概念,比如数据的列集与散集、认证与加密等,都被其他的技术所继承和发展。 62.2 CORBAOMG (O

6、bject Management Group)1991年1.0 1994年2.0 98年 3.0 ORB,OMG IDL,语言映射,存根与架构( stub &skeleton ),动态调用接口(Dynamic Invocation Interface),接口存储库(Interface Repository),实现存储库(Implementation Repository),对象适配器(ObjectAdapter) ,ORB 之间的互操作,(Interoperability Between ORB)。客户stub服务器 skeleton基本对象适配器 BOA GIOP IIOPDSIDIIORB

7、ORB接口库实现库7ORB功能: (类比SCM) 确定服务器位置,转换不同数据格式。为异构环境中的客户和服务器提供互操作性。它屏蔽了以下内容: 1。对象位置 2。对象的实现 3。对象的状态(动态激活) 4。对象的通讯机制(TCP/IP,管道,共享内存,LPC等) 5。数据表示语言映射 (类比COM IDL) OMG为IDL到 C,C,SmallTalk、Ada、Cobol,Java语言映射制订了标准。存根与架构 (类比代理与存根)存根代表客户创建并发出请求,架构则把请求转交给CORBA实现。被静态地连接到客户和服务器上。动态调用 (类比晚绑定,自动化接口) 动态调用接口DII(Dynamic

8、Invocation Interface)动态架构接口DSI(Dynamic Skeleton Interface)。支持动态调用过程,不是在编译时刻,而是在运行时刻。由ORB直接提供。接口存储库(类比类型库): 负责对象的IDL接口定义的存储、分布和管理。 客户在运行时用来获得所有注册过的组件的接口描述,它们所支持的方法以及参数。(方法签名)。是运行时的分布式数据库,包含了IDL定义的机器可读版本。8对象适配器: 位于ORB的核心通讯服务之上,是ORB与对象实现之间的接口。代表服务器接受客户的服务器请求。它为实例化服务器对象,传递请求提供运行环境,它向实现存储库注册它所支持的类及其运行实例。

9、实现存储库:是一个运行存储库,提供有关服务器支持的类,实例化的对象及其标识等。同时存储ORB的附加信息(安全,审计、等)2.0.标准。不同的ORB之间如何协作、通讯GIOP:General Inter-ORB Protocal: 规定了ORB之间通讯的一组报文格式和公用数据表示(CDR)(二进制格式)IIOP:Internet Inter-ORB Protocal : 规定了GIOP消息如何在TCP/IP网络上交换。此部分内容参见基于CCORBA 高级编程 Michi Henning Steve Vinoski 著,清华大学出版社。92.3 XML 1969年IBM公司发明了第一种现代标记语言

10、“通用标记语言”GML(Generalized Markup Language),此后逐步发展成为标准通用标记语言SGML(Standard Generalized Markup Language)。1986年SGML被国际化标准组织(ISO)接受为国际性的数据存储和交换的标准。SGML 功能非常强大,扩展性几乎是无限的,但是也非常复杂。实际上,是过于复杂了。它要求对数据的每一个字节都要加以说明。 1996年,w3c开始设计一种新的扩展标记语言,使其能够把SGML 的灵活性和强大的功能与已经被广泛采用的HTML语言结合起来。这种语言后来被成为XML eXtensible Markup Lang

11、uage 可扩展的标记语言。XML 是一种简单的自我描述的标记语言。其功能远比在Web领域获得巨大成功的HTML语言要强大。1998年2月成为w3c的推荐标准,最新的标准是2000年10月发布的。10XML是一种界定文本数据的简便而标准的方法,XML的标记用来说明你所描述的概念,而属性则用来控制他们的结构。XML的数据描述机制意味着它将成为一种在Internet上共享信息的强大途径。XML能够在不同的用户和程序之间交换数据,而不论其硬件、软件平台如何。使用XML无须事先协调,它的自描述特性使得对于企业内部网和B2B应用的解决方案是一种有效的机制。起初XML的类型说明是用DTD( Documen

12、t Type Definition)文档进行的,DTD是最早出现的XML类型定义语言,它最大的优点就是简练。但是DTD 文档本身不是XML,需要另外一套语法,而且无法从原有类型定义新的类型,扩展性差。另外它不支持命名空间,随着基于XML的数据信息的联系变得日益普及深入,名称空间的重要性越来越大。DTD只能是一个过渡性质的工具。11W3C在1999年2月发布了(XML Schema Definition) XSD,目前最新的版本是2001年5月发布。XSD协议提供了一种使用XML语言来定义数据类型的方法.不同的操作系统和编程语言环境下,数据类型有很大的差异。比如整形数在Visual Basic环

13、境下和C环境下就不一样,在32位的操作系统和64位的操作系统不一样。为了能在异构的环境下顺利实现数据交换,必须使用独立于语言和环境的类型表达方式。而XSD正是这样一种工具。使用XSD可以定义任意复杂的数据类型,足以涵盖主流开发语言如C所能表达的数据类型,而且可以对现有的类型进行继承和扩展,更为重要的是它可以为所有的环境所理解,并在它和环境语言中建立类型映射。从根本上讲,XSD是一种特殊的XML,也是XML 的一种应用,就是将XML的DTD类型定义重新按照XML语言的规范来定义。与DTD相比,XSD唯一的缺点是篇幅较长,但是却带来了很多的优点。考虑到目前带宽的扩展以及类型定义文件使用的频率,这个

14、唯一的弱点也可忽略不计。XSD本身也是XML,应用程序可以以统一的方式来处理、解析它。XSD有命名空间,给企业应用在Internet 上发布提供了保障。使用XSD可以扩展定义新的类型。122.4 Web 服务 2000年5月,在Microsoft,IBM,Ariba等公司的推荐下,SOAP(Simple Object Access Protocol)成为万维网协会的工作草案。SOAP的最终目的是在应用程序之间实现通讯。它借助于XML的模式语言XSD来表达数据类型,使用XML文档来包装普通数据和远程调用(RPC), SOAP 明确地规定了对RPC的调用方式,RPC的请求和响应都用XML语言包装在

15、SOAP文档中。SOAP规范推荐使用HTTP协议来传输数据。通讯双方只要能解析XML文档、支持HTTP协议即可以实现双方的数据交换、远程调用。当然,不使用SOAP,正像DCOM或CORBA现在做的那样,也可以顺利地甚至效率更高地实现RPC,但是使用SOAP 的意义在于其统一性。 13WSDL是一种基于XML的Web服务描述语言。WSDL文档是对一个Web服务的详细且准确的说明。任何客户得到此文档后就可以准确地调用服务。这里我们借用WSDL来描述远程对象的所提供的服务接口。对于接口描述的理解直接决定了客户能否识别并访问服务器。DCOM 和CORBA 都使用IDL来进行接口描述。虽然有多种语言支持

16、IDL,但是不幸的是DCOM和CORBA的IDL是不相同的。这也是阻碍他们之间的互操作的原因之一。但是WSDL是一个为众多厂商支持的标准。WSDL使用XML语言详细而准确无误地描述了接口所使用的数据类型,输入输出参数,实现此接口的端口,协议等。只要客户能解析XML文档,就可以理解用WSDL语言描述的远程对象的接口。 142.5 Java J2EE核心概念Java 虚拟机JDBC 数据库EJB 服务器方组件的标准。Java Servlet Web 应用服务器端对象JSP 动态Web页面JMS Java Message Services消息队列 Java APIJava Mail 基于Java电子

17、邮件JNDI Java Naming and Directory Interface 访问任何类型的目录。JAXP Java API for XML Parsing152.6 .NET.NET 框架是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。.NET 框架旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的;提供一个将软件部署和版本控制冲突最小化的代码执行环境;提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境;提供一个可

18、消除脚本环境或解释环境的性能问题的代码执行环境;使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。 .NET 框架具有两个主要组件:公共语言运行库和 .NET 框架类库。公共语言运行库是 .NET 框架的基础。我们可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET 框架的另一个主要组件

19、是类库,它是一个综合性的面向对象的可重用类型集合,我们可以使用它开发包含从传统的命令行或图形用户界面 (GUI) 应用程序到基于 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)在内的应用程序。Windows上的MSJAVA虚拟机.162.7 消息队列在Windows操作系统下,微软把试图把消息队列扩展到网络上,称为MSMQ(Microsoft Message Queue)。MSMQ由一个独立的服务器来管理。它提供了一个完整的通讯平台,使得具有一定权限的,能够访问服务器的客户可以访问平台上的队列,从而在网络上实现数据通讯。 MSMQ有一组基于COM的API,同

20、时有实现MSMQ的COM对象:MSMQ和Windows操作系统以及Windows平台下的DCOM有密切的联系。MSMQ对象模型包括九个对象。MSMQQueue MSMQMessage MSMQQueueInfo 等。微软对分布式消息队列的扩充由于受限于Windows操作系统,很多功能要通过DCOM来实现,因此在其它系统上扩展性和交互性受到很大约束。 其他的消息队列如 IBM MQSeries等.172.8 目录服务当对速度的要求很高时,当数据结构呈树状时等等。目录服务在速度,冗余和协议的标准化几个方面相比关系数据而言具有相当的优势。目录服务在处理搜索时速度非常快。它进行了相当的优化来处理网络的

21、快速查询。目录服务还可以复制,使用了两个或多个服务器时将了无痕迹地提供服务,客户不会有所觉察。目录服务提供了一个查询数据的标准方法和接受答案的标准方式,而且还有一套准确定义的标准的数据库属性,同时,通讯协议也是标准的,我们可以按照需要来匹配服务器和客户端。 1988年,国际标准化组织(ISO,International Standards Organization)和国际电信联盟(ITU, International Telecommunications Union)联合创建了目录信息格式标准和目录访问协议X.500。此标准定义在OSI协议栈上,规模庞大,复杂。由于OSI只是未能实现的网络标准,X.500也未能完全实现,但是它的某些关于目录命名的标准仍然在实践中有指导意义。1994年,密歇根大学开发了一个新的目录访问协议,它就是LDAP(Lightweight Directory Access Protocol,轻型目录访问协议),它建立在TCP/IP 之上,使用tcp或udp协议的389号端口。LDAP迅速地被广泛采用。 在目录服务的框架下,数据呈树状分布。(在关系数据库中,当然可以描述树状的结构,然而,它的存储效率低下,存储速度非常缓慢,对树状

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论