SOA,面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

 

  狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。云计算的产业三级分层:云软件、云平台、云设备。

  SOA怎么跟云计算有关系呢?一句话:私有云和公有云通常需要依靠API来发挥其功能,这正是典型的Web服务,而Web服务的基础,就是SOA。这样看来,云计算的顺利落地跟SOA还是很大的关系的,并且之于云计算来讲,SOA像是无形的手一样。但是就目前在市场上,对于SOA之于云计算的重要性,不是那么的重视。尽管他们在默认地构建一个SOA,但是却既没有采取适当的步骤,也不了解SOA的各部分之间是如何互操作的。

  在一些云计算的服务商里面,它就是一大堆的云服务,这些服务构成了各种核心应用或者核心进程。这些服务可提供一些核心功能,包括存储和计算,可用于复合应用或者复合进程。显然这样的理解是不对的,这样不是真正意义上的SOA。

  大多数正在定义云计算应用的人更关心的似乎是云部署的速度而不是架构。事实上,很多人正在考虑用云计算来取代SOA。他们完全不了解SOA的价值,或者说,完全没有意识到架构和细致规划的重要性。

  可以通过以下几个方面来考虑:

  首先,设计SOA策略的概念架构。只有先为SOA策略奠定概念基础,才可以:1)确保自己了解SOA策略;2)打下一个简单的基础,便于向公司主管、开发人员及其他同事描述SOA策略;3)构建一个广义的分类方案(categorization scheme),以便了解各个产品在你的SOA策略基础架构中何处扮演角色、扮演怎样的角色、扮演多广泛的角色。

  其次,设计SOA策略的逻辑架构。在概念架构的基础上,接下来应当添加额外一层的细节,详细描述SOA策略基础架构的几个重要结构元素。你在设计逻辑架构过程中,会开始看到SOA策略将如何集成到贵企业的整个SOA平台;比方说,考虑SOA存储库(SOA repository)会如何为某些类型的SOA策略充当SOA存储库。

  再次,结合SOA平台战略。由于逻辑架构(或逻辑架构的雏形)已到位,可以根据你的SOA平台计划来确定相应的SOA策略功能,以解决SOA策略与SOA平台中的消息传送和管理功能如何集成之类的问题。相关的特定产品和这些产品扮演的角色会不一样,这要看每家企业逐步构建SOA平台及SOA策略基础架构的具体情况。

  通过以上的几个方面我之于SOA应该能够看到一个模型的出现,这样在与云计算相容的过程中会发现它的巨大意义。

  在激烈竞争且多变的市场环境下,企业的管理模式很难固化,应用传统的信息化软件,当企业要做出一些改动时需要面对巨大的挑战。未来的云时代,离开了SOA真的是不完整的