【IT168 专稿】 尽管笼罩在SOA外的一团迷雾还没有消散,更多企业还是开始尝试这一概念,并且针对SOA的显著优点及应用,提出更多根本性问题。与此同时,另一概念在SOA上方渐渐成形,那就是云计算。SOA与云计算,两者之间有着怎样的关系?它们是属于同一模式转变(paradigm shift)的两个部分?还是只有着不太紧密的联系?本文从不同角度分析和比较,以期回答这个问题。
用于探讨SOA和云计算,以及各自涵盖范围的术语常常根据需要来解释。下列定义试图对有关术语作一概述和归纳,从而明确技术、使用模式和部署场景的大体适用范围。
SOA——面向服务的架构,是一种架构方法,利用一组构建模块(名为服务)来创建软件系统。服务有别于组件之处在于,服务具有以下特点:独立存在,由接口定义,松散耦合,而且常常支持集成方面的多项技术。采用SOA要有一套方法,以便IT部门和业务部门共同开发这些服务。采用SOA还要有一套治理流程,以便对服务进行定义、更改、修改、组合、版本控制、重复使用及编制,从而支持不断变化的业务。
云计算——按Gartner的定义,云是这样一种计算:利用互联网技术,将与IT有关的大规模扩展功能作为服务提供给多个外部客户。
IBM对云计算的描述则是:这是一种新兴的计算模式,数据和服务驻留在大规模扩展的数据中心,可以从任何联网设备通过互联网随处访问。
·驱动因素角度
对SOA和云计算来说,削减成本、提高业务敏捷性是它们共同的驱动因素,但获得这些效益的方式却各有不同。对SOA来说,削减成本是一个中长期的驱动因素,因为只有服务的重复使用达到可以抵消服务构建成本的地步,才能实现成本节省。别指望第一个SOA项目就能节省成本。实际上,开始你的成本极有可能变得更高。
另一方面,如果基于云的基础架构得到合理利用,立即就能节省成本。尽管优化改组也是SOA和云计算的一个共同要求,但目标不一样:前者是业务功能,后者则用来提供业务功能的基础架构。表1概述了SOA和云计算驱动因素的相似和差异。
SOA的驱动因素 | 云计算的驱动因素 |
企业应用程序易于集成 | 加快配置软硬件基础架构的周转时间 |
通过最终重复使用服务来降低成本 | 降低拥有软硬件基础架构的成本 |
通过现有服务的编制,提高实施功能方面的业务敏捷性 | 提高扩展IT基础架构以满足业务增长方面的业务敏捷性 |
通过创建及使用企业服务,对业务功能进行优化改组 | 通过避免每个IT项目/计划配置过度,对基础架构进行优化改组 |
·利益相关者角度
SOA与云计算在一家企业中都有具体的利益相关者,包括CIO、服务交付团队,以及竭力实施服务、可能在云基础架构上托管运行服务的数据中心工作人员。
值得一提的是,这两类项目之所以会失败,主要与人有关,因为两者都需要落实可靠的流程和治理框架。尽管会出现技术方面的挑战,但通常最终能够加以克服。企业在使用IT方面的成熟程度,之前在采用与IT相关的变化方面表现出来的能力,这些都可以准确地衡量对这类项目的需求,并准确地预示这类项目的结果。
SOA的利益相关者 | 云计算的利益相关者 |
由业务部门发起,由CIO领导的IT部门实施,有时后者同时是发起者和实施者 | 由CIO领导的IT部门发起及实施 |
需要业务部门、IT部门和数据中心运营团队积极参与 | 需要IT部门和数据中心运营团队积极参与 |
常常遵循于企业的战略性项目和命令 | 目前更常常用来满足战术性、非常具体的要求 |
·资源配置和生命周期
服务的创建常常是为了满足战术性要求,随着使用及重复使用日益频繁,会演变成企业级服务。服务生命周期管理负责监管这个演变过程,也是为企业服务提供路线图和支持所必不可少的。另一方面,获得及使用云服务来得比较简单。云用户在生命周期方面的挑战主要局限于两次升级之间的兼容性,这再次常常可以通过服务提供商在服务级别协议(SLA)方面的保障来克服。
说到管理这两类资产,还是有一些区别的。不过两者能产生协同效应:一方可用于管理另一方,反之亦然,这好比某个进程在操作系统上运行,而操作系统本身可能是运行中进程实例的集合体。因而,像HTTP和XML这些技术以及Web服务标准的普及性促使它们被用作SOA的优先实施平台、用于管理云基础架构。
服务的配置 | 云计算基础架构的配置 |
由一个项目/计划发起,目的在于供其他项目/计划使用 | 常常为满足具体的项目/计划要求而发起。其他项目/计划可能会仿效 |
通过使用来自不同平台及技术或来自其他服务的组件,创建服务 | 可能通过Web服务,创建及管理基础架构 |
整个服务生命周期过程中都需要严格治理 | 没有生命周期这个概念。利用基于云的基础架构时,需要治理来进行监管 |
服务可以部署到基于云的平台上 | 云充分利用特定的软件包和硬件部署配置 |
·模式重点
为了满足内外部的需求,企业通常会关注SOA和云计算这两种模式。而这两种模式则互为对方带来商业机会。部署SOA服务时,安全问题常常被忽视;使用云计算时,安全问题又常常被夸大。企业不愿把关键系统迁移到云上是阻碍云得到采用的最大因素。为了让云得到大规模采用,整个行业的观念都需要转变。
SOA模式 | 云计算模式 |
主要用于公布企业内部以及合作伙伴的服务 | 可能用于通过云提供商现有的基础架构,扩大服务的应用范围 |
常常用于在企业内部提高效率、降低成本 | 可能还用于为服务交付和使用获得新的经营模式,比如SaaS |
由于安全问题只出现在企业内部,用于设计处理敏感信息的系统 | 由于基础架构在云客户之间共享,企业不敢将敏感的数据和系统部署在云上 |
SOA已经过了炒作阶段。它正成为实施企业应用的一种切实可行的方法,并从众多成功和失败的项目中吸取经验教训。另一方面,云计算还停留在炒作阶段。
在我看来,两者之间的协同效应对SOA更有好处,因为云计算实际上能扩大服务的应用范围,使其不仅仅停留在企业,还能带来新的商机。另外,由于客户群迅速庞大起来,许多以前担心的问题变得不那么重要,比如担心服务级别协议能否得到满足,在未知市场为所提供服务所作的基础架构前期投资能否收回成本等。