InfoQ于4月23日在北京组织了主题为“企业架构在互联网环境下的挑战”的Oracle技术沙龙。“云计算与SOA有什么区别?”这是Oracle讲师做完企业私有云PaaS解决方案的讲演后,提问环节中观众提出的第一个问题。回答这样的问题是颇具挑战性的,不同背景的人会有不同的理解,也不是一两句话能够解释清楚的。我个人的职业经历正好和SOA、云计算有很大的关系,因此希望和大家分享下我个人对这两者及企业软件领域的一些看法和理解。
过热(Hype)中的云计算
云计算起源于大型互联网企业,成本和指数级的业务增长压力使他们非常关注于IT资源的利用率和应用的可扩展性。云计算动态的、可伸缩的、基于互联网的IT服务交付模式很快产生共鸣,得到政府、企业和IT软硬件厂商等的一致认同。大家一致认为云计算将是继PC革命、互联网革命之后的第三次IT革命。
然而,在Gartner 2010 Hype Cycle(下图)上,云计算位于炒作期的顶峰,而SOA早在2009年就已经位于成熟期,更不在2010的图上。对于SOA来说,人们已经不再谈SOA是什么、能做什么、怎么落地,而是谈论SOA的最佳实践。对于经历过SOA潮流的人来说,应该会有非常深的体会。
图片来源:Gartner 2010 Hype Cycle (如果看不懂Hype Cycle这个图,请看这篇文章)
面向企业的云计算解决方案,特别面向企业的私有云PaaS产品和解决方案,仍处于创新(研发)和市场整固阶段,离进入主流应用阶段仍有相当的距离。Oracle的现有私有云PaaS解决方案本质上是对已有产品如Fusion中间件及Oracle数据库等的重新包装,宣传和抢占市场的意义更大一些。这一套东西同样也是构成Oracle SOA解决方案的根基。这就不难理解为什么人们听完讲演后会提出“Oracle的云计算和SOA有什么区别?”这样的问题。
如果想更深入理解SOA和云计算的区别和共同点的话,需要深入分析企业IT问题的根源,以及SOA和云计算所要去解决的问题和所能带来的价值。
企业IT架构面临的核心问题
企业软件和互联网有很多差异,本质的区别在于企业必须直面其“遗留系统(Legacy Apps)”,企业必须保证其核心应用系统的稳定,导致其核心应用系统的生命周期会很长。所以,企业面临的核心问题如何解决长期以来形成的“烟囱式(Silo)的企业计算环境”,如下图所示:
烟囱式的企业计算环境和IT建设存在如下问题:
- 不同的应用系统拥有不同的基础设施(硬件)和应用基础设施(中间件);
- 每个新应用都要建设一个新“烟囱”,建设周期长;
- 基于峰值规模设计,系统资源利用率低;
- 扩展困难;
- 没有统一的技术标准,运维成本高;
在云计算概念普及之前,企业已经在尝试解决这个问题,解决的思路是:
- 在基础设施层:虚拟化。利用虚拟化的基础设施提高物理资源的利用率和供给速度。
- 在应用基础设施层:SOA化。
- 在应用层:集中化。比如原来是一个地市分公司建设一套OA系统,后来是整个省公司只建设一套OA系统;原来结算在每个省公司进行,后来全部集中在集团处理。
我们来分析一下SOA化。SOA之前,企业应用集成的方式是EAI,但是由于EAI缺乏统一的标准,集成完后又产生了新的孤岛。我们来看看围绕SOA的一些关键字,就不难看出SOA与传统EAI的区别,这些关键字是SOAP、Web Service、服务、互操作、重用、ESB、服务编排、BPM、复合应用、业务敏捷等。因此SOA的目标是使IT基础架构更加灵活并且可重用,以最终实现业务敏捷性。
我们再看看围绕云计算的一些关键字,这些关键字是多租户、共享的资源池、弹性、动态伸缩、自服务、按需使用、基于Internet、快速供应、IT资源利用率等。企业利用云计算进一步地去解决它所面临的核心问题,但主要目标是提升IT资源的利用率、降低IT成本,促进企业IT建设从粗旷型方式到集约型方式的转变。云计算出现后,企业解决烟囱式问题的思路是:
- 在基础设施层:从虚拟化进一步扩展到IaaS。相比于虚拟化,IaaS增加了共享的资源池、自服务及统一的管理、监控和计量。
- 在应用基础设施层:基于SOA架构风格上逐步将应用迁移到PaaS平台上。从技术上讲,SOA的核心Building Block如ESB、BPM中间件是位于应用基础设施这层,因此SOA与PaaS之间的对比或许更加合理。下面会对这两者之间的关系进行分析。
- 在应用层:企业会考虑更多地直接使用一些SaaS应用。
PaaS就是云环境中的应用基础设施,也就是中间件,因此PaaS也可以说是中间件即服务,Middleware as a service。中间件的类型非常多,事务型中间件、消息中间件、远程过程/对象调用中间件、应用服务器、数据库服务器、ESB、BPM等等。在传统On-premise部署方式下用到的中间件在云部署下也是要用到的。Gartner把PaaS分成两类,APaaS(application platform as a service)和IPaaS(integration platform as a service)。APaaS主要为应用提供运行环境和数据存储,能够将On-premise下部署的简单三层架构的应用直接部署到APaaS;IPaaS主要用于集成和构建复合应用。
鉴于企业现有IT的复杂性及目前PaaS平台的能力,是不可能将所有On-premise方式部署的应用一次性部署到云端的,因此On-premise、私有云、公有云将在很长时间内共存。在这种情况下,SOA架构风格能够非常好的支持On-premise、私有云、公有云的共存,如下图所示:
企业IT架构的演进
本文并不想直接去回答云计算、PaaS和SOA的关系和区别。我想用下面的这面这张企业架构演进图来作为这篇文章的总结,希望以此来给大家的一些启发,使得大家等够更多地从技术演进的历史来理解新事物。
从图中我们可以清楚看到企业架构在大型机时代、客户机-服务器时代、互联网时代和云计算时代的演进过程,以及每次演进的业务驱动力和技术驱动力。
从大型机时代物理上的集中,到云计算时代云端的集中,似乎是一个轮回……
关于作者
阮志敏,企业级PaaS平台CloudTao创始人,长期专注于企业软件领域,同时深受互联网技术影响,曾在CORDYS中国,摩托罗拉和惠普中国任职。他的个人博客是:http://www.cloudtao.org/external/blog/taoofcloud;新浪微博是:http://weibo.com/taoofcloud。
相关推荐
根据提供的文件信息,这篇文档是关于“基于云计算与SOA框架的高校招生信息管理系统”的论文。文档内容涵盖了系统设计的理论基础、实现过程以及对实现结果的评估。下面将详细介绍文档中所包含的关键知识点: 1. 高校...
- **第9章:SOA与云计算**:详细分析SOA与云计算的相互作用,如何通过SOA增强云计算的能力,以及如何利用云计算的优势改进SOA的实施。 - **第11章:迈向云计算**:提供实际步骤和建议,帮助企业顺利完成向云计算的...
在高校数据交换平台的建设中,利用云计算的灵活性和SOA的模块化设计可以有效地解决传统数字化校园建设过程中数据共享与交换的难题。 针对高校数字化校园建设的需求,构建一个基于云计算与SOA的数据交换平台,主要...
总结来说,云计算和SOA(面向服务的架构)密切相关,SOA为云计算提供了一种服务导向的资源组织和交互方式,使得不同系统的服务可以无缝集成,共同构建出更强大、更具灵活性的云服务。随着技术的不断进步,云计算将...
IBM的WebSphere平台云方案通过WebSphere Virtual Enterprise(WVE)、IBM Workload Deployer(IWD)和WebSphere eXtreme Scale(WXS)三大组件,展现了其在SOA与云计算融合方面的创新实践。WVE负责平台云环境的运行...
基于SOA的云计算框架模型下,服务角色的构成与SOA框架类似,由服务提供者、消费者和服务中心组成。服务提供者相当于云平台中的系统,包含物理层、虚拟层、管理层和应用层。服务中心则是网络中特殊节点,存储服务接口...
基于研究软件系统架构的发展方向的目的,通过从各方面对云计算与SOA 这两种架构的分析,比较了两种 架构的架构模型、应用场景等特点,对两种架构在已有应用中的交叉与结合进行了总结,推翻了业界对于云计算即 ...
本次研究内容主要关注的是如何通过面向服务的架构(SOA)与云计算技术相结合,解决现有的流域模型集成系统在接口统一性、系统与模型间的集成难易度以及通用性和可扩展性方面的不足。在这个过程中,我们构建了一个...
#### SOA与云计算的融合 SOA和云计算的融合是一种优势互补的系统。SOA作为一个组件模型,将应用程序的不同功能单元(服务)通过定义良好的接口和契约连接起来,允许不同系统中的服务以一种统一和通用的方式进行交互...
3. 云计算基础架构:探讨云计算的硬件、业务和管理层的融合,对比分析云计算与SOA(面向服务的架构)和分布式计算的区别。 4. 云计算标准化:介绍国内外的云计算标准化组织和进程,解读《云计算综合标准化体系建设...
接下来,文章深入探讨了SOA与云计算的运行理念,指出SOA关注于解决企业的业务驱动力和整体架构问题,而云计算则更侧重于战术层面的应用。两者虽有不同,但在实际应用中具有密切的联系。云计算在校园中的应用主要体现...
基于SOA架构与云计算技术的ERP系统设计方案.doc
基于SOA架构与云计算技术的ERP系统设计方案.docx
本文旨在深入浅出地解析由David Linthicum所著书籍中的核心观点,帮助读者更好地理解云计算与SOA融合的价值所在。 #### 二、云计算定义及特点 ##### 1. 定义 云计算是一种基于互联网的计算方式,通过这种模式,...
### SAP云计算与IT应用创新 #### 一、云计算概述 云计算是一种通过互联网提供计算资源和服务的技术,它使得用户能够根据自身需求动态获取和使用计算资源,而无需了解或管理底层技术细节。云计算的核心优势在于其...