面向服务的分布式体系结构_第1页
面向服务的分布式体系结构_第2页
面向服务的分布式体系结构_第3页
面向服务的分布式体系结构_第4页
面向服务的分布式体系结构_第5页
已阅读5页,还剩54页未读, 继续免费阅读

下载本文档

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

文档简介

1、Computer School, NUDT. Spring, 20131Computer School, NUDT. Spring, 20132 本章包括了两种主要面向服务的体系结构形式:表述性状态转移(Representational State Transfer,REST)和Web服务及其扩展。 讨论了面向消息的中间件和带有发布-订阅体系结构的企业总线基础设施。 描述了两个应用程序接口(OGCE和HUBzero),它们使用Web服务(portlet)和Web 2.0(gadget)技术。在分布式系统中,使用服务注册表和语义Web/网格来处理数据和元数据。 使用BPEL Web服务标准、Pe

2、gasus、Taverna、Kepler、Trident和Swift阐明通用工作流方法。 Courtesy of Geoffrey Fox, 2010Computer School, NUDT. Spring, 20134服务和面向服务的体系结构 SOA是关于如何设计一套使用服务的软件系统,使其通过已发布或可发现的接口使用新的或已有的应用。这些应用程序通常发布在网络上。 SOA还旨在使得服务的互操作性变得可扩展和有效。它提示支持这一目标的体系结构风格,如松耦合、发布的接口和标准的通信模型。 万维网联盟(World Wide Web Consortium,W3C)定义SOA为一种分布式系统体系结

3、构Computer School, NUDT. Spring, 20135 SOA具有以下典型属性: 逻辑视图:SOA是实际程序、数据库、商业流程等的抽象逻辑视图,定义了它所做的事情,通常执行企业级的操作。服务是依据提供商代理和请求者代理之间交换的消息来形式化定义。 消息方向:提供商和请求者的内部结构包括实现语言、进程结构和数据库结构。这些特征在SOA中都经过精心抽象化:使用SOA的架构,一个人不必也不需要知道实现服务的代理是如何构造的。可以将任何软件组件或应用程序“包装”在消息处理代码中,并使它完全符合形式化的服务定义。Computer School, NUDT. Spring, 20136

4、描述方向: 服务由机器可执行的元数据来描述。这个描述支持SOA的公开本质:描述中只包括那些公开可访问的并对于服务应用来说很重要的细节。服务语义应通过其描述直接或间接地文档化。l粒度: 服务倾向于使用较少数量的操作,使用大而复杂的消息。 l网络方向 :服务往往是在网络上沿着使用的方向,尽管这不是一个必需的要求。l平台中立性:消息按照平台中立性、标准化的格式通过接口发送。XML是满足这个约束条件的最显然格式。 REST提供一种复杂的标准驱动Web服务技术的替代方法,并在许多Web 2.0服务中应用。 Computer School, NUDT. Spring, 20137图5-1用户和服务器之间按

5、照HTTP规范的一个简单REST交互REST和系统的系统 REST是应用于分布式系统的软件体系结构风格,尤其是像万维网这样的分布式超媒体系统。 Computer School, NUDT. Spring, 20138REST体系结构风格基于以下四项原则:l通过URI的资源标识:REST的Web服务公开了一组资源,标识了与其客户端进行交互的目标。REST中信息的关键抽象是资源。l统一的受限接口:通过客户端/服务器可缓存的协议HTTP标准来完成与REST风格的Web服务进行交互。l自我描述的消息:REST消息包含足够的信息来描述如何处理消息。这使得中介机构不需要解析消息内容就可以对消息进行更多的操

6、作。l无状态的交互: REST的交互是“无状态的”,意味着消息的含义不依赖于会话状态。 Computer School, NUDT. Spring, 20139REST Architectural ElementsComputer School, NUDT. Spring, 201310创建S3水桶的REST请求-响应示例 REST RequestREST ResponsePUT /bucket-name HTTP/1.0Date: Wed, 15 Mar 201- 14:45:15 GMTAuthorization: AWS aws-access-key-id: header-signatu

7、reHost: HTTP/1.1 200 OKx-amz-id-2: VjzdTviQorQtSjcgLshzCZSzN+7CnewvHA+6sNxR3VRcUPyO5fmSmo8bWnIS52qax-amz-request-id: 91A8CC60F9FC49E7Date: Wed, 15 Mar 2010 14:45:20 GMTLocation: /bucket-nameContent-Length: 0Connection: keep-aliveComputer School, NUDT. Spring, 201311服务和Web服务 图5-2一个在提供商、用户和UDDI注册表之间交互

8、的简单Web服务Computer School, NUDT. Spring, 201312 在SOA范式中,软件能力以基于消息的通信模型通过松耦合、可重用、粗粒度、可发现和自我包含的服务来传递和使用。 Web已经成为一种利用应用程序来连接远程客户端的媒介。 术语“Web服务”经常指那些自我包含的、自我描述的、模块化的应用程序,它们被设计来供网络上的其他软件程序使用或访问。一旦部署了一个Web服务,其他的应用和Web服务就可以发现并激活已经部署的服务 Web服务是SOA实现的最常见实例之一。W3C工作组将Web服务定义为一个软件系统,支持网络上机器到机器的互操作交互。 Computer Scho

9、ol, NUDT. Spring, 201313组成目前Web服务核心的技术有:l简单对象访问协议(SOAP)提供了一个标准的封装结构,用来在各种不同的互联网协议(如SMTP、HTTP和FTP)上传输XML文档。通过使用这样的标准消息格式,异构的中间件系统可以实现互操作。lWeb服务描述语言(WSDL)描述了接口,即Web服务支持的一系列标准格式的操作。它标准化了操作的输入和输出参数的表示以及服务的协议绑定,消息在线传输的方式。使用WSDL,不同的客户端可以自动理解如何与Web服务交互。l通用描述、发现和集成(UDDI)提供了一种通过搜索名称、标识符、类别或Web服务实现的规范来广告和发现We

10、b服务的全局注册表。Computer School, NUDT. Spring, 201314WS-I协议栈 Computer School, NUDT. Spring, 201315SOAP RequestSOAP Response SampleBucket1B9FVRAYCP1VJEXAMPLE=2010-03-15T14:40:00.165ZIuyz3d3P0aTou39dzbqaEXAMPLE=SampleBucket1B9FVRAYCP1VJEXAMPLE= 2010-03-15T14:40:00.165ZIuyz3d3P0aTou39dzbqaEXAMPLE=用来创建S3水桶的SO

11、AP请求-响应例子 Computer School, NUDT. Spring, 201316 SOAP消息包含应用程序使用的一个信封,里面封装了需要发送的消息。信封包括头和体模块。编码风格元素指的是XML模式的URI地址,用于对消息元素进行编码。 SOAP消息中的每个元素可以采用不同的编码方式,但是除非特别指定,整个消息的编码方式定义在根元素的XML模式中。头部是SOAP消息的可选部分,它包含了上面提到的辅助信息,在这个例子中没有包含头部。 SOAP请求-响应消息的体部分包含了会话的主要信息,它是由一个或多个XML模块来组成的。 Computer School, NUDT. Spring,

12、201317核心核心WS-WS-* *规范包括的规范包括的1010个领域个领域Computer School, NUDT. Spring, 201318企业多层体系结构 企业应用程序通常使用多层体系结构来封装和集成各种功能。 多层体系结构是一种客户端/服务器体系结构,其中表述、应用处理和数据管理是逻辑分离的过程。已知最简单的多层体系结构是两层,也就是客户端/服务器系统。传统的两层客户端/服务器模型需要集群化和灾难恢复来保证可靠性。虽然在企业中使用较少的节点会简化可管理性,但是改变管理仍然很困难,因为在修理、升级和部署新应用时,都需要服务器下线。而且在胖客户端环境下,新应用和增强的部署非常复杂和

13、消耗时间,从而降低了可用性。 Computer School, NUDT. Spring, 201319一个三层的信息系统包含以下的层次:l表述层 向外部实体描述信息,并且允许它们通过提交操作和获得响应来与系统进行交互。l商业/应用逻辑层或中间件 通过表述层完成客户端请求的实际操作的程序。中间层也可以控制用户的认证、访问资源,以及完成一些客户端查询处理,这样可以减少数据库服务器的一些负载。l资源管理层也称为数据层,处理和实现信息系统的不同数据源。Computer School, NUDT. Spring, 201320Computer School, NUDT. Spring, 201321网

14、格服务和OGSA 开放网格服务体系结构(OGSA)旨在为基于网格的应用定义一个通用的、标准的和开放的体系结构。OGSA的意图在于:l便于在分布式的异构环境上使用和管理资源。l提供无缝的服务质量。l为了提供不同资源之间的互操作性,定义开放的发布接口。l采用工业标准的集成技术。l开发实现互操作性的标准。282283l在分布式的异构环境中集成、虚拟化和管理各种服务与资源。l提供松耦合的可交互服务,并且满足工业可接受的Web服务标准。Computer School, NUDT. Spring, 201322OGSA体系结构服务:l基础设施服务 指一系列的公共功能。l运行管理服务 与启动和管理任务这些问

15、题有关。l数据管理服务 用来移动数据到需要它的地方、维护复制的副本、运行查询和更新,以及转换数据到新的格式。l资源管理服务 为网格资源提供管理功能。l安全服务 便于一个(虚拟的)组织内有关安全的策略得以强制执行,支持安全的资源共享。l信息服务 提供关于网格及其构成资源信息的有效产生和访问。l自我管理服务 支持对于一系列服务(或者资源)的服务级实现,并且要尽可能的自动化。Computer School, NUDT. Spring, 201323OGSAOGSA体系结构体系结构 Computer School, NUDT. Spring, 201324WebWeb服务资源框架(服务资源框架(Web

16、 Services Resources FrameworkWeb Services Resources Framework,WSRFWSRF) Computer School, NUDT. Spring, 201325其他的面向服务的体系结构和系统其他的面向服务的体系结构和系统 美国国防部网络中心服务的全球信息网格美国国防部网络中心服务的全球信息网格(GiG(GiG) ) Computer School, NUDT. Spring, 201326CICCCICC中的服务中的服务化学信息网格化学信息网格 Computer School, NUDT. Spring, 2013275.2 面向消息的

17、中间件企业总线 引入一个封装器,使得服务所期望的不同风格(如SOAP、REST或Java RMI)消息彼此之间能够进行通信。术语“企业服务总线”(Enterprise Service Bus,ESB)指的是总线支持许多组件,通常采用不同的风格,能够方便地集成在一起。产生了图5-6所示的消息黑盒抽象。 人们不需要在源和目的之间开一个通道,而是把带有足够信息的消息注入总线,允许它正确的投递。 多个中介的使用允许总线扩展到多个客户端(服务)和大规模消息流量。 Computer School, NUDT. Spring, 201328Two Message Bus Implementations图5-

18、6 在服务之间或使用中介网络的两种消息总线实现Computer School, NUDT. Spring, 201329发布-订阅模型和通知 “发布-订阅”概念,对于消息总线,它描述了把源和目的连接起来的一个特殊模型。在这里消息的生产者(发布者)以某种方式对消息贴上标签通常的做法是与一个(受控的)词汇表中的一个或多个主题名词关联。然后消息的接收者(订阅者)会指定他们希望接收到相关消息的主题。或者也可以使用基于内容的发布系统,内容可以用某种格式(如SQL)来进行查询。 使用基于主题或内容的消息选择称为消息过滤。 Computer School, NUDT. Spring, 201330队列和消息

19、传递系统 在这个领域中,有几个有用的标准。 最有名的是Java消息服务,它在发布/订阅和排队系统中规定了一系列接口概括通信语义。 高级消息排队协议(AMQP)规定了通信的一套有线格式;和API不同,有线格式是跨平台的。 在Web服务里,WS-Eventing和WS-Notification是互相竞争的标准,但是它们哪一个也没有发展出强力的后续。 Computer School, NUDT. Spring, 201331Comparison of Messaging and Queuing SystemsComputer School, NUDT. Spring, 201332Computer

20、School, NUDT. Spring, 2013335.3 门户和科学网关 科学网关是支持交互的基于Web的科学、教育和协作的工具。网关提供以用户为中心的环境,通过用户界面与远端的计算资源进行交互,典型的用户界面构建方式是使用Web技术。网关是更为复杂的实体。科学网关也称为门户。 我们把网关软件分为“可立即使用的”方案,典型代表是HUBzero;以及“工具箱”方案,典型代表是开放网关计算环境(OGCE)项目。可立即使用的网关软件提供建造网关包括主机的端到端解决方案。工具箱网关软件提供解决特定问题的工具,可以集成到定制的软件栈里。 Computer School, NUDT. Spring,

21、 201334图5-8 科学应用的网关组件软件栈Computer School, NUDT. Spring, 201335科学协作的HUBzero平台 图5-9 HUBzero体系结构及其主要功能组件 一个开源的软件平台,用来创建科学协作、研究和教育的网站或“中心”Computer School, NUDT. Spring, 201336开放网关计算环境(OGCE) 提供了在几个协同网关中使用的开源网关软件。OGCE包括一些组件,为远程科学应用管理提供更为复杂的解决方案。OGCE包括以下的组件工具:lOGCE Gadget容器:一个用来集成用户接口组件的谷歌工具。lXRegistry:一个用来

22、存储其他在线服务和工作流信息的注册表服务。lXBaya:一个工作流编排器和演出引擎。lGFAC:一个工厂服务,它可以用来封装命令行驱动的科学应用,把它们组成网络可以访问的鲁棒服务。lOGCE消息服务:支持在多个协作服务之间的事件和通知。Computer School, NUDT. Spring, 2013375.4 发现、注册表、元数据和数据库 分布式应用需要发现满足需要的资源并管理它们。注册表是复杂的命名和目录服务,它通过分类和归并服务或关于服务的元数据信息,在设计和动态运行时便利了服务资源发现。为了存储在注册表中的元数据,注册项需要一套数据结构规范,为了存储属主、包含和归类服务的元数据,还

23、需要一套操作来存储、删除和查找数据。 注册表通常包含三类信息:l白页包含实体的名字和一般联系信息。l黄页包含条目提供的服务类型和位置的分类信息。l绿页包含如何调用所提供服务的详细信息(关于服务的技术数据)。Computer School, NUDT. Spring, 201338UDDI和服务注册表 UDDI(统一描述发现和集成)规范通过创建一个平台无关的开放框架定义了一种描述、发布和发现关于Web服务信息的方法。UDDI提供了名字服务和目录服务来通过名字或特定的属性查找服务描述。版本3.0成为OASIS的公共服务注册表标准。 UDDI规范集中在一批服务的定义,它们支持以下内容的描述和发现:商

24、业、组织和其他Web服务提供商;它们提供的Web服务;以及用来访问那些服务的技术接口。 注册表主要有两类:公共注册表,这是一个逻辑的集中式分布服务,彼此之间在一个约定的基础上复制数据;私有注册表,仅仅在单个的组织内部访问,或被一群有特定目的的商业伙伴所共享。 Computer School, NUDT. Spring, 201339图5-10 UDDI实体及其关系Computer School, NUDT. Spring, 201340数据库和订阅-发布 订阅-发布是在分布式应用之间实现异步交互的设计模式。 许多高级应用为了使它们的运行和信息相适应而要定期地查询数据库。这种周期性的数据轮询不仅

25、效率低和无法扩展,而且也在两端消耗了大量资源,尤其是数据库的调用间隔很短或者有多个消费者应用的情况下,它会大大增加网络通信的流量和CPU的使用。发布-订阅机制解决了这一问题,它已经在今天的应用实现中大量采用。在发布-订阅交互中,事件订阅者注册了某个事件类型,当事件发布者产生这样的事件时,订阅者就会从发布者处得到通知。Computer School, NUDT. Spring, 201341 在事件发布者和事件订阅者之间存在一个动态的多对多的关系,对于在任何时间可能变化的任何类型事件,可以有任何数量的发布者/订阅者。发布-订阅为数据库的静态本质增加了动态性。 发布-订阅系统可以分为基于主题的和基

26、于内容的。 数据库系统提供了基于消息传递的体系结构可以使用的许多特性,例如可靠的存储、事务和触发器。 Computer School, NUDT. Spring, 201342图图5-11 Oracle5-11 Oracle发布发布- -订阅模型订阅模型Computer School, NUDT. Spring, 201343元数据目录 元数据目录扮演一个重要的角色,它们为用户和应用在这种环境下提供了在大量站点之间发现和定位所需要的数据和服务的方式。 元数据是关于数据的信息。元数据很重要,因为它为了识别、定位和解释数据,给数据增加了上下文。 网格上的关键元数据包括数据源的名称和位置、在这些数据

27、源中数据的结构、数据项名称和描述以及用户信息(姓名、地址、概括和偏好)或者可用服务的基本列表和简单查找、没有丰富上下文的相关函数和位置。各种群组和社区使用元数据目录,从高能物理到生物医学、地球天文观测站和地理科学。 Computer School, NUDT. Spring, 201344语义Web和网格 网格力求在动态的大型分布式环境中为了服务和资源的自动化信息发现和集成而共享和访问元数据。 语义Web是关于自动化发现和集成的:给数据增加机器可处理的语义,这样计算机可以理解这些信息并代表终端用户处理它,从而基于为Web页面附加丰富元数据而使Web搜索和链接更加智能。 语义Web旨在提供一个环

28、境,在里面软件代理能够动态地发现、询问和互操作资源并代替人执行复杂的任务 Computer School, NUDT. Spring, 201345 为了达到这一目的,已经进行了很多工作来保证在公共数据模型资源描述框架(RDF)中Web资源的含义,RDF使用以公共语言(如OWL Web本体语言)表示的一致本体论,这样我们可以共享元数据,并且增加到背景知识中。 从这个基础上,我们应该可以查询、过滤、集成和聚集元数据,并应用规则和策略在它的上面推理出更多的元数据。 RDF是为语义Web开发的第一个语言,使用XML来表示Web上资源的信息(包括元数据)。RDF使用Web标识符(URI),并且从简单的

29、属性和属性值方面来描述资源。OWL是拓展了RDF模式的一个描述性本体语言。Computer School, NUDT. Spring, 201346Computer School, NUDT. Spring, 201347图5-13 语义网格体系结构Computer School, NUDT. Spring, 201348作业执行环境和监控 分布式作业执行环境常常包含两个组件:作业执行引擎和分布式数据管理系统。作业执行引擎主要处理作业调度、资源分配和诸如容错等其他问题。数据管理系统常常为作业访问分布式数据提供抽象。 为了处理互联网级别信息管理和处理的不断增长的需要,许多互联网服务公司为了特定需要建立了他们自己的分布式系统。大多数这些系统提供分布式运行引擎,支持集成的应用。 谷歌MapReduce和微软Dryad是这种系统的两个例子。Computer School, NUDT. Spring, 2013495.5 5.5 面向服务的体系结构中的工作流面向服务的体系结构中的工作流工作流的基本概念工作流的基本概念图5-14 服务网格之网格的概念图示Computer School, NUDT. Spring, 201350 工作流是“对服务之间交互进行编程”的方法。同称呼工作流描述了“为Web或网格编程”一样,我们也可以使用诸如“软件协调”、“服务编排”、“服务或过程协调

温馨提示

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

评论

0/150

提交评论