随着云计算的概念受到越来越多的人的推崇和论证,“云上的日子”看起来离我们越来越近了。几乎所有的IT厂商都不约而同了启动了各自的云计算战略。但是由于每个企业的战略出发点不同,企业推出的云计算概念也有所差别。
如果仅仅以自己的产品和业务为标准,片面地将云计算理解为SOA或SaaS,则不仅混淆了云计算概念,模糊了其产品形式, 还阻碍了云计算的推广和应用。那么, SOA、 SaaS等同于云计算么?它们有什么区别?我们应当如何正确理解这三者之间的关系呢?
解惑云计算、SOA与SaaS
云计算涵盖的范围很广泛,内容也很丰富。我们通常可以把云分为三个层次:硬件层的基础架构云(Infrastructure as a Service, IaaS)、平台云(Platform as a Service, PaaS)和软件应用云(Software as a Service, SaaS)。目前大家对于云计算概念的理解,主要有两个误区:一是片面地把SaaS视为云计算;二是以为运用了SOA架构就感觉好像实现了云计算,于是就把SOA和云计算等同起来。
实际上,SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论。从业务角度来看,一切以最大化“服务”的价值为出发点,SOA利用企业现有的各种软件体系,重新整合并构建起一套新的软件架构。这套软件架构能够随着业务的变化,随时灵活地结合现有服务,组成新软件,共同服务于整个企业的业务体系。简单的理解,我们可以把SOA看作是模块化的组件,每个模块都可以实现独立功能,而不同模块之间的结合则可以提供不同的服务,模块之间的接口遵循统一标准,可以实现低成本的重构和重组。在SOA的技术框架下,可以把杂乱无章的庞大系统整合成一个全面有序的系统,从而增加企业在业务发展过程中应用系统的灵活性,实现最大的IT资产利用率。
SOA技术其实在几年前就已经出现了,但是任何一种IT技术,真正要产生效应,都必须要以大大降低实际系统的使用、维护以及升级的成本为前提。更重要的是,一种技术的普及需要,都只有在这种技术不断成熟,并且形成相应的规模应用之后才能实现。
SaaS则是一种基于互联网技术的软件价值交付的新型业务模式。具体地讲,SaaS是按照使用者的需求提供软件应用服务的业务模式。SOA架构可发挥其在系统界面和接口标准化等方面的优势,为SaaS提供一个较好的技术平台,从服务管理和系统运维角度为SaaS提供有力的技术支撑,从而有助于灵活地构建起一个用户成本最低的SaaS方案。
由此看来,SOA与SaaS有着必然的联系:两者都面向服务。但两者也有着明显的区别:SaaS侧重于运营和交付,SOA侧重于平台架构。所以,SaaS是云计算的最终价值交付运营模式,SOA是实现云计算开放架构的基础理念之一,两者都包含了云计算的某些重要特征,但是他们都不能称之为云计算的全部。
互联网技术催生云计算、SaaS与SOA的汇合
云计算与SaaS、SOA三者本身的发展轨迹和侧重点不同,但是却又互相联系,互相影响。
我们可以从云计算的发展历史来看,云计算的模式就好比以前在大学或者政府的研究机构里面的大型计算机中心。计算机中心把计算机的计算和存储资源以租用时段的方式提供给内部各个科研单位,或者提供给外部用户。从过去的大型计算机时代到个人计算机、企业服务器的兴起,计算、存储资源开始分散于企业。但是如今,企业面对成千上百台服务器以及上千种不同的软件,运维成本越来越高。云计算可以把所有的计算资源虚拟化,进行动态管理,进而大大降低企业的IT运维成本,因此已是一个颇有影响的技术趋势。
另一方面,从可适应性计算、网格计算到云计算,除了硬件资源的集中使用外,企业更希望操作系统、数据库,以及软件、应用等都能通过集中调配的方式满足企业的各种需求。随着互联网技术的迅速发展与普及,SOA则能带来整个软件系统的互联成本、维护成本、升级成本的大幅降低,并成为支撑云计算的技术标准。
所有因素都帮助促成了从硬件层的基础架构云(IaaS)到平台云(PaaS)再到软件应用云(SaaS)不同层次的云计算。
SOA与SaaS合力, 推动云计算产业的成熟与发展
云计算实现了IT基础设施的社会共享;SOA有利于整合技术平台,统一技术标准,推动软件产业价值链中的各成员间的协调配合,充分利用硬件资源共享的有利条件,促使云上的软件系统日趋成熟;SaaS则通过软件交付模式上的创新,为云计算开辟出更大的市场空间,激励众多软件厂商开发出更多应用,从而使云计算产业联盟不断发展壮大。
总而言之,在云计算产业链向前推进的过程中,如果我们能善于发挥SOA和SaaS两者的特点与优势,将其效用结合起来,那必将有助于实现云计算产业的新一轮高速发展。