分布式计算概述
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 XML
1 9 6 9 年 IBM 公 司 发 明 了 第 一 种 现 代 标 记 语 言 “ 通 用 标 记 语 言”GML(Generalized Markup Language),此后逐步发展成 为 标 准 通 用 标 记 语 言 SGML(Standard Generalized Markup Language)。1986年SGML被国际化标准组织(ISO)接受为国际 性的数据存储和交换的标准。SGML 功能非常强大,扩展性几乎 是无限的,但是也非常复杂。实际上,是过于复杂了。它要求对 数据的每一个字节都要加以说明。 1996 年, w3c 开始设计一种新的扩展标记语言,使其能够把 SGML 的灵活性和强大的功能与已经被广泛采用的 HTML语言结 合起来。这种语言后来被成为XML eXtensible Markup Language 可扩展的标记语言。XML 是一种简单的自我描述的标记语言。其 功能远比在Web领域获得巨大成功的HTML语言要强大。1998年 2月成为w3c的推荐标准,最新的标准是2000年10月发布的。
2.1 RPC
第一个获得广泛认可的分布式计算技术是远程过程调用(Remote Process Call RPC)。使用RPC,客户应用程序可以调用在远程计 算机上实现的 C 语言函数。对于远程过程调用的体系结构来说, ONCRPC(Open Network Computing RPC) 和 DCE(Open Group’s Distributed Computing Environment)是主流标准。 在RPC机制下,为了实现跨进程甚至跨机器的通讯,它采用了一种 称为列集(marshaling)的方法,数据传输之前,先进行列集, 然后通过网络协议传到通讯的另一端,读取数据时,先对数据进 行散集(unmarshaling),它是列集的相反过程。Sun公司于1985 年发行了它的RPC软件包的第一个版本。使用Sun RPC最广泛流行 的是NFS,即Sun的网络文件系统。在分布式计算领域,RPC更多地 被用作其他高层的分布式计算技术的通讯基础,而不是单独地使 用,但是,RPC所提出的一些概念,比如数据的列集与散集、认证 与加密等,都被其他的技术所继承和发展。
2.5 Java J2EE
核心概念Java 虚拟机 JDBC 数据库 EJB 服务器方组件的标准。 Java Servlet Web 应用服务器端对象 JSP 动态Web页面 JMS Java Message Services消息队列 Java API Java Mail 基于Java电子邮件 JNDI Java Naming and Directory Interface 访问任何类型的目录。 JAXP Java API for XML Parsing
4。高级阶段 组件(构件)技术 Component 90年代。软件目标:自适应性、互操作性、可扩展性、可重用性。 面向对象的软件重用是原代码的重用,组件技术则实现了二进制 级的重用组件可以单独开发、编译、测试。 分布式计算技术发展
2 主流的分布式计算技术及规范
多层计算模型。中间件技术。ORB。CORBA、 COM/DCOM Java。消息队列 。 软件总线。工作流 (WFMC)。
2.4 Web 服务
2000年5月,在Microsoft,IBM,Ariba等公司的推荐下, SOAP(Simple Object Access Protocol)成为万维网协会的工作草 案。SOAP的最终目的是在应用程序之间实现通讯。它借助于 XML的模式语言XSD来表达数据类型,使用XML文档来包装普通 数据和远程调用(RPC), SOAP 明确地规定了对RPC的调用 方式,RPC的请求和响应都用XML语言包装在SOAP文档中。 SOAP规范推荐使用HTTP协议来传输数据。通讯双方只要能解析 XML文档、支持HTTP协议即可以实现双方的数据交换、远程调 用。当然,不使用SOAP,正像DCOM或CORBA现在做的那样, 也可以顺利地甚至效率更高地实现RPC,但是使用SOAP 的意义 在于其统一性。
W3C在1999年2月发布了(XML Schema Definition) XSD,目前最 新的版本是2001年5月发布。XSD协议提供了一种使用 XML语言 来定义数据类型的方法.不同的操作系统和编程语言环境下,数据 类型有很大的差异。比如整形数在Visual Basic环境下和C++环 境下就不一样,在32位的操作系统和64位的操作系统不一样。为 了能在异构的环境下顺利实现数据交换,必须使用独立于语言和 环境的类型表达方式。而XSD正是这样一种工具。使用XSD可以 定义任意复杂的数据类型,足以涵盖主流开发语言如 C++所能 表达的数据类型,而且可以对现有的类型进行继承和扩展,更为 重要的是它可以为所有的环境所理解,并在它和环境语言中建立 类型映射。 从根本上讲,XSD是一种特殊的XML,也是XML 的一种应用,就 是将XML的DTD类型定义重新按照XML语言的规范来定义。与 DTD相比,XSD唯一的缺点是篇幅较长,但是却带来了很多的优 点。考虑到目前带宽的扩展以及类型定义文件使用的频率,这个 唯一的弱点也可忽略不计。XSD本身也是XML,应用程序可以以 统一的方式来处理、解析它。XSD有命名空间,给企业应用在 Internet 上发布提供了保障。使用XSD可以扩展定义新的类型。
1.2 软件体系结构发展过程
1。无体系结构阶段 汇编语言 1946 ENIAC机问世 机器语言 1955~1965 速度,价格,用途(科学、军事、商业) 汇编语言的移植 50年代中期FORTRAN,后期COBOL 60年代 ALGOL语言。 70年代以前仍以汇编语言为主 2。萌芽阶段 结构化程序设计 1968年 “软件工程”的概念提出。开展了有关开发模型,方法以及工具 支持等研究。瀑布模型,PASCAL, Ada语言,结构化的开发技术,费用 估算,文档复审等 结构化程序设计强调数据结构、程序模块化为特征,采用自顶向下 逐步求精的设计方法,由语句构成模块,模块的聚集和嵌套又构成层层 调用的层次结构。
一 . 分布式计算概述
百度文库
1 概述 1. 分布式系统 2. 软件体系结构发展过程 2 分布式计算技术。 1. RPC 2. CORBA 3. XML 4. WEB服务 5. J2EE 6. NET 7. 消息队列 8. 目录服务 3 COM 1. COM历史 2. COM结构 3. COM特性
1.1 分布式系统
WSDL是一种基于XML的Web服务描述语言。WSDL文档是对一 个Web服务的详细且准确的说明。任何客户得到此文档后就可以 准确地调用服务。这里我们借用WSDL来描述远程对象的所提供 的服务接口。对于接口描述的理解直接决定了客户能否识别并访 问服务器。DCOM 和CORBA 都使用IDL来进行接口描述。虽然 有多种语言支持IDL,但是不幸的是DCOM和CORBA的IDL是不 相同的。这也是阻碍他们之间的互操作的原因之一。但是WSDL 是一个为众多厂商支持的标准。WSDL使用XML语言详细而准确 无误地描述了接口所使用的数据类型,输入输出参数,实现此接 口的端口,协议等。只要客户能解析XML文档,就可以理解用 WSDL语言描述的远程对象的接口。
XML是一种界定文本数据的简便而标准的方法,XML的标记用来 说明你所描述的概念,而属性则用来控制他们的结构。XML的数 据描述机制意味着它将成为一种在Internet上共享信息的强大途径。 XML能够在不同的用户和程序之间交换数据,而不论其硬件、软 件平台如何。使用XML无须事先协调,它的自描述特性使得对于 企业内部网和B2B应用的解决方案是一种有效的机制。 起初XML的类型说明是用DTD( Document Type Definition)文 档进行的,DTD是最早出现的XML类型定义语言,它最大的优点 就是简练。但是DTD 文档本身不是XML,需要另外一套语法,而 且无法从原有类型定义新的类型,扩展性差。另外它不支持命名 空间,随着基于XML的数据信息的联系变得日益普及深入,名称 空间的重要性越来越大。DTD只能是一个过渡性质的工具。
客户 接口库 DII stub
服务器 DSI skeleton 实现库
基本对象适配器 BOA ORB GIOP IIOP ORB
ORB功能: (类比SCM) 确定服务器位置,转换不同数据格式。为异构环 境中的客户和服务器提供互操作性。它屏蔽了以下内容: 1。对象位置 2。对象的实现 3。对象的状态(动态激活) 4。对象的通讯机制(TCP/IP,管道,共享内存,LPC等) 5。数据表示 语言映射 (类比COM IDL) OMG为IDL到 C,C++,SmallTalk、Ada、Cobol,Java语言映射制订 了标准。 存根与架构 (类比代理与存根)存根代表客户创建并发出请求,架构则把 请求转交给CORBA实现。被静态地连接到客户和服务器上。 动态调用 (类比晚绑定,自动化接口) 动态调用接口DII(Dynamic Invocation Interface)动态架构接口DSI (Dynamic Skeleton Interface)。支持动态调用过程,不是在编译时刻, 而是在运行时刻。由ORB直接提供。 接口存储库(类比类型库): 负责对象的IDL接口定义的存储、分布和管理。 客户在运行时用来获得 所有注册过的组件的接口描述,它们所支持的方法以及参数。(方法签 名)。是运行时的分布式数据库,包含了IDL定义的机器可读版本。
3。初级阶段 面向对象程序设计 Bjarne Stroustrup 1980年“带类的C”,1983年取名为C++, 1987年开始标准化工作,1998年ISO C++批准。 80年代初兴起。对象作为基本的元素,软件系统作为对象的集合。 对象包括数据,也包括行为。面向对象的方法:1 识别对象和类, 2 描述对象和类之间的关系,3 描述类的功能定义对象的行为。 OO让用户、分析人员、设计人员更清楚地表述概念、交流。同 时,大大提高了软件的易读性、可维护性、重用性。继承、封装、 多态。 80年代中期,分布式计算开始萌芽,经典的C/S模型。
2.2 CORBA
OMG (Object Management Group) 1991年1.0 1994年2.0 98年 3.0 ORB,OMG IDL,语言映射,存根与架构( stub &skeleton ),动态调 用接口(Dynamic Invocation Interface),接口存储库(Interface Repository),实现存储库(Implementation Repository),对象适配器 (Object Adapter) ,ORB 之间的互操作,(Interoperability Between ORB)。
对象适配器: 位于ORB的核心通讯服务之上,是ORB与对象实现之间的接口。 代表服务器接受客户的服务器请求。它为实例化服务器对象,传 递请求提供运行环境,它向实现存储库注册它所支持的类及其运 行实例。 实现存储库: 是一个运行存储库,提供有关服务器支持的类,实例化的对象及其 标识等。同时存储ORB的附加信息(安全,审计、等)
2.0.标准。不同的ORB之间如何协作、通讯 GIOP:General Inter-ORB Protocal: 规定了ORB之间通讯的一组报文格式和公用数据表示(CDR) (二进制格式) IIOP:Internet Inter-ORB Protocal : 规定了GIOP消息如何在TCP/IP网络上交换。 此部分内容参见《基于C++CORBA 高级编程》 Michi Henning Steve Vinoski 著,清华大学出版社。
分布式操作系统 ( 松耦合硬件 紧耦合软件) 单系统映像 1. 单一的全局的进程间通讯 2. 进程管理处处相同 3. 分布式文件系统 4. 相同的系统调用.(各机器上系统内核相同) Amoeba Mach 等等 同步, 事务, 进程管理 调度 处理器的分配. 分布式文件系统, 分布 式共享存储器. 分布式应用系统 网络操作系统 ( 松耦合硬件 松耦合软件) 高度自治