SOA和云计算:拥抱前行

全国信息技术标准化技术委员会SOA标准工作组基于近百家成员单位的信息化和标准化工作经验,在2011年组织工作组成员编撰了《中国SOA最佳应用及云计算融合实践》一书,近日将正式出版。值得关注的是,此书对比分析了SOA与云计算各自的特点,针对业界对于SOA和云计算关系的不同观点进行了分析,提出了工作组的观点,并重点介绍了“智慧城市:佛山智能卡云服务平台解决方案”、“电子政务:上海浦东软件园‘浦软汇智’IT服务云解决方案”两个SOA和云计算融合的案例。

    关于SOA和云计算的关系,自从云计算概念提出至今,始终是产业界、学术界和用户界关注的一个焦点问题。业界观点大致归为三种:1.SOA和云计算融合发展、2.云计算将取代SOA、3.SOA“包含”云计算。

    SOA工作组支持第一种观点。工作组专家认为,SOA是云计算的关键支撑技术、云计算是SOA的重要应用场景。云计算的两大支撑技术一是虚拟化、二是SOA。虚拟化是IaaS层应用的基石;SOA是云计算SaaS和PaaS层应用的主要开发方法。基于SOA的云计算更能发挥出其价值,未来SOA和云计算会进一步融合应用和发展。

    2011年出版的《云计算与SOA》的美国作者David S. Linthicum认为,“云计算与SOA合作时会带来巨大的价值,可以把云计算当作SOA向云平台中的资源的扩展;云计算提供了SOA可以按需使用的IT资源;SOA可被用作利用云计算的关键技术实现手段。”

    开源软件SOA软件厂商WSO2的首席执行官Sanjiva Weerawarana指出,云计算和SOA是互补的,云计算是在SOA环境中部署服务的一个好方法。他指出,SOA和云计算相互支持,但是,他们的思想基础不一样。云计算是一种部署体系结构,不是设计企业IT的体系结构方法,而SOA是这种方法。

    IBM在2012年2月召开的“SOA新进化论”会议上,分析了SOA和云计算、物联网、智慧城市的密切关系,强调SOA是当前新兴技术和热点应用中极为重要的支撑技术。

    用友软件的专家认为,SOA是一种根据业务流程(Business Process)来组织功能、并将功能封装成为可互操作的服务的软件架构。云计算是一个面向服务的基础设施,它采用了SOA的架构原则并且把这个原则应用在基础设施上。SOA是业务驱动的,而非仅仅技术驱动的。SOA的核心价值在于组织能力服务化,通过服务编排实现灵活的业务过程。SOA将为企业带来巨大的进步:SOA实现企业和企业之间的连接、业务和业务之间的连接;企业应用系统从面向功能,转变到面向流程;系统之间从紧密耦合,发展为松散耦合;从重新构造的IT系统,到IT可以根据变化来构造;从全面部署IT和业务系统模式,到灵活的增量部署模式;从企业应用孤岛,到过程、人员和信息的实质集成、高度协调。SOA解决业务需求到技术实现的分离,而云更多解决技术实现到IT基础设施单元的分离。SOA使业务系统灵活应对业务需求的变化,而云计算使软硬件环境灵活响应业务系统。作为一套架构理念和方法论,SOA帮助企业实现了IT服务的高内聚和低耦合;进入云时代之后,云计算可以借助于SOA的方法, 将本地原生应用, 私有云和公有云中的应用"粘合"起来,形成灵活的混合云方案。理想情况下,资源还可以在这三者之间迁移,从而应对不同时期的负载,或者进行故障恢复。

    东方通技术专家认为,云计算关注的是计算和服务模式,而SOA关注的是总体软件架构,但二者并非互相割裂,它们都关注基于IT技术的服务能力和水平,二者的底层支撑技术是互相补充,需要彼此融合,才能促进彼此发展和能力完善。

    金蝶中间件专家认为,云计算是SOA的进一步演化:SOA打破了软件系统间固有的边界,使得具备无边界信息整合能力的IT架构成为可能;云计算进一步打破软硬件间的边界,实现IT资源的动态分配、弹性调整、智能监控等;未来的云计算将包含支持SOA的IT基础设施,包括中间件等,实现云环境下的应用服务化、服务构件化、构件平台化、平台虚拟化、虚拟泛在化。

    大唐软件技术专家认为, SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论。云计算涵盖的范围很广泛,通常分为三个层次: IaaS、PaaS、SaaS。其中SaaS是按照使用者的需求提供软件应用服务的业务模式,SOA可发挥其在系统界面和接口标准化等方面的优势,为SaaS提供一个较好的技术平台。SOA在应用层面进行资源整合,云计算补充了底层硬件层面资源虚拟化和整合,两者的理念是相似的。已经有电信厂商提出了“SOA+云计算”模式,上层基于SOA进行应用和服务开发,底层基于云计算进行资源整合,包括数据库,服务器,存储,网络等。

    启明软件专家认为,SOA解决业务需求到技术实现的分离,使业务系统灵活应对业务需求的变化。而云计算更多解决技术实现到IT基础设施单元的分离,使软硬件环境灵活响应业务系统。SOA是构建企业IT应用的架构,而云计算是一种面向服务的基础设置的部署架构,它采用了SOA的架构原则,云计算是在SOA环境中部署服务的一个好方法。SOA和云计算思想基础不一样,但可以相互支持。通过SOA的ESB总线可以实现云计算中IaaS,PaaS和SaaS层之间的总线式集成,其次,对于云计算的PaaS它既是一个在线开发环境,也是一个在线执行环境,而不管是对于开发和执行,在SOA中的数据服务,业务服务,流程服务,展现服务等都可以作为PaaS层在线开发时的能力单元。而这些能力单元在线进行服务编排和组装时又可以借助SOA本身已有的流程引擎和规则引擎来完成。只是SOA中间件本身的很多能力都云化了,而不再是为单个应用提供服务。另一方面, 于SOA平台也需要IT硬件基础设施,这些基础设施可以直接使用云计算平台IaaS层的计算能力单元和存储能力单元,这些单元也可以服务的方式接入到ESB总线上,包括我们说的云存储,分布式计算等能力都可以集成到ESB总线。