服务计算概论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论
§1. 面向服务计算概述
1.1 服务计算起因和概念
随着经济全球化和电子商务的普及,当代企业必须要面对不断变化的市场条件、激烈的竞争压力、新出台的法规以及新的竞争威胁,从而企业要获得竞争优势就要不断调整其业务模式和需求。因此,企业应用要能需要根据业务的需要变得更加灵活,能够对业务模式和业务需求的变化迅速做出反应,具有“随需而变”的敏捷性。这种敏捷性体现在新的业务可以通过组合现有的服务快速构造出来,业务的调整也可以通过调整服务之间的关系迅速改变。这种应用集成既包括企业内的各种应用系统之间的集成,也包括集团企业总部与下属企业、企业与上下游伙伴之间的业务协同。
但是,构建“随需而变”的应用。面对怎么样的环境呢?
随需应变的软件应用需要考虑三个因素:重用、标准化封装和松耦合组装。重用不仅可以被其它服务或使用者调用,而且可以与其它服务一起组合成新的服务;标准化封装通过提供统一的描述标准,消除软件对语言、平台和厂家的依赖;松耦合组装利用松耦合的组件构造灵活可变的企业应用。
但是,若实现企业应用的快速调整和构造,传统的分布式计算技术存在两大难题:一是应用程序客户端和服务端之间的紧密耦合问题,以微软的DCOM为例,客户端和服务器端都要求遵循同样的API,一旦一个COM对象代码有改变,那么访问该对象的客户端代码也需要相应的更改。二是不同应用程序之间的异构问题。由于企业应用严重依赖计算环境,从而使得同一企业不同应用之间,不同企业应用之间还不能有效地相互集成。总之,传统架构存在的最大缺陷就是对变化的适应性差,难以适应企业不断变化的业务需求。构造灵活可变的企业应用系统必须通过建立松耦合的计算环境来实现。计算环境包含一组计算机、软件平台、协议和相互连通的网络。在该计算环境中,计算机之间、软件平台之间可以通过网络按照协议实现数据交换和信息处理。
采用标准化的服务描述将企业应用进行封装,通过以编程方式实现的自描述接口,提供服务的核心功能,屏蔽了应用的实现细节,这样可以通过服务描述访问服务构造企业应用。形象地说就是将软件封装成类似于硬件模块带接口的构件,在接口匹配的情况下可以随时“插入”特定的软件应用完成相应的功能,使服务之间(企业内或跨企业)以松散耦合的形式互联、互操作完成特定的业务需求。基于服务概念的资源封装和抽象逐渐成为资源发布、共享和应用协同的重要技术基础。这样,剥离了客户端和服务器端之间的语言/平台依赖,消除了不同应用之间由于采用的不同系统、不同平台和不同语言所造成的异构。在接口描述不变的情况下,服务实现的任意变更都不会对应用产生影响。这样,一方面可以将遗留系统封装为服务进行重用,一方面可以直接调用企业外服务提供商提供的服务,从而可使开发者更快速、敏捷地根据企业业务的变化,构造企业应用。面向服务计算(SOC)是一种新的计算范式,它利用服务为基本构建块,支持异构环境下分布式应用的快速、低成本、便捷的组合。这种方法的基本思想是通过重用已有的网络服务而不是重新开发来构造企业应用。重用和组装是这个方法的核心,松散耦合是这个方法的本质。重用就是使应用系统具有较强的独立性,以便其作为一个“零部件”能随时被单独使用;组装就是高效而灵活地将跨组织、跨平台的应用无缝地进行组合来构造满足企业需求的应用。松散耦合的目标是使应用系统之间的依赖达到最小,任何应用系统的更改和错误对其他的应用系统没有影响。服务是自治的,与平台无关的计算实体。服务是可描述,可发布、可发现的、可以动态组装成分布式的、可交互的、可扩展的系统,服务可以包括从执行简单的请求到复杂的业务流程,该流程要求不同多种层的服务消费者和供应商之间点对点之间的关系。部署在一个系统中的任何一段代码和任何应用组件都可以重用,并且可以转化为网络服务。
实现这一思想的关键是面向服务架构,SOA是一种合乎逻辑的设计软件系统的方式,通过已发布的或可发现的接口将服务提供给终端用户或者分布在网络上的服务。一个结构良好、基于标准SOA通过以服务的形式提供独立的、可重用的应用功能和更加健壮的基础,可以赋予企业更加灵活的基础设施和处理环境。Web服务是当今最有前途的面向服务计算技术,Web服务利用互联网作为传输媒介、利用开放的基于因特网的标准,如简单对象访问协议SOAP 作为传输数据、Web服务描述语言WSDL用于服务定义、业务流程执行语言BPEL编排服务。Web 服务解决了以往分布式计算平台的两大难题:一个是平台之间的互操作问题;另一个是客户端和服务端之间的紧密耦合问题。它提供一个与操作系统无关、与程序设计语言无关、与机器类型无关、与运行环境无关的平台,实现网络上应用的共享。
服务技术是由作为一个整体的现代社会而形成的,特别是动态业务、医疗、教育和政府服务等关键领域,同时也将不断推动作为一个整体的社会的形成。通过封装和重用业务的核心功能、增强灵活性、提高技术迁移的适应性、改善操作效率,应用服务技术降低了复杂性和成本。由于这些原因,面向服务的范型可望得到迅速地应用,由于它解决昂贵的、难以解决的业务和技术问题,将比以往的任何应用技术更具有前途。
Services technologies are being shaped by, and increasingly will help shape, modern society as a whole, especially in vital areas such as dynamic business, health, education and government services. Applying services technologies leads to reduced complexity and costs, exposing and reusing core business functionality, increased flexibility, resilience to technology shifts and improving operational efficiency. For all these reasons, it is expected that the Service Oriented Computing paradigm will exhibit a steeper adoption curve, as it solves expensive and intractable business and technology problems, and will infiltrate more of the applications portfolio, than previous application technologies.
SOC包括服务基本原理、服务组合、服务管理和监控以及面向服务的工程。
§2.服务计算产生的背景
服务计算给软件体系架构以及软件开发方法带了革命性的变化,软件体系架构从早期集中式的整体软件体系结构逐步发展成为一种松散、灵活、易扩展的分布式软件架构模式,服务体现了面向服务的编程方法,这种方法改变了传统的重新开发的软件设计理念和方法,通过重用已有的网络服务构造应用的设计思想。不难看出,服务计算是软件体系架构和软件开发方法不断演化的产物,也是进一步提高和加快软件产业发展的必然结果。
2.1 软件体系架构的发展历程
软件体系架构是指构成软件系统的软件元素、软件元素外部可见的属性以及这些软件元素之间的关系。为便于说明问题,首先介绍软件系统的分层逻辑结构。一般而言,构造软件时都会遇到三类问题:⑴如何将软件功能以图形或字符人机界面的形式呈现给用户;⑵如何编写实际的应用逻辑实现软件功能;⑶如果利用已有资源如数据库、文件系统等完成对资源的管理和操作。基于以上分析,软件体系架构从逻辑上可以分为三层,即表示层、应用逻辑层和资源管理层
1.主机计算环境。其软件体系架构的特点是,软件的所有功能集中由主机完成,而分布的是仅仅具有输入输出功能的哑终端或多人分时使用一台计算机。其优点是其所有功能都在一致的系统环境下实现,因此可方便地对系统进行调试。其缺点是组成系统的表示层、应用逻辑层和资源管理层之间彼此紧密耦合、很难维护和扩展;各个主机之间的数据、功能很难共享和相互调用。
2.客户/服务器计算环境。通过局域网相互连接的计算设备构成客户/服务器计算环境,这种体系架构将表示层从集中式的服务器中剥离出来转移给客户端,客户和服务器通过网络协