SOA 和基础设施虚拟化技术之间是高度协作的关系。随着企业采用的服务不断增多,这些服务的大小和规模也不断增大,实现支持这些服务的基础设施虚拟化技术也日益重要。没有基础设施的虚拟化,企业的管理就会变得非常复杂,很难实现服务的灵活性优点。在本文中,Matt Haynos 将对网格计算和 SOA 以及基础设施虚拟化技术之间的相似和不同之处进行简要分析。
到目前为止仍然非常流行的一个概念是面向服务的架构(SOA)。eWeek最近的一个主题引用了 Merrill Lynch 开展的一项 CIO 调查,其中 87% 的参与者称 SOA 是企业软件中 "下一个伟大的东西(the next BIg thing)"。(就我个人来说,我认为 SOA 早已 非常伟大了。)
不用奇怪 CIO 为什么对 SOA 如此关注。业务的变化和压力变得日益激烈,而且已经扩展到了全球范围。现在出现了对新业务种类和操作模型的需求。在 IBM 2006 Global CEO Stud上,2/3 的业务领袖们表示会在最近两年内 "从根本上改变" 自己的公司形式。他们之所以需要如此迅速地进行改变是由于以下的原因:市场上的一流公司通常都占据着重要的位置,瓜分了市场的大部分份额,而机会变化的是如此迅速,可能稍纵即逝,因此面市的速度至关重要。
但是要做到这一点并非如此简单。至少对于 CIO 来说是如此。他们不得不应付各种架构、接口和技术,这些可能会限制他们提供技术基础设施的能力,而这种能力可以支持(甚至促进)他们对动态竞争市场的响应能力。
正是在这种背景之下,SOA 诞生了。SOA 使用了一种架构性的方法来将应用程序分解为各种必要的服务。然后可以设计这些服务,用它们来呈现或映射业务流程。有关 SOA 及其联合 IT 实践和业务策略的使命已经有了很多介绍,因此在这里我们就不再详细介绍了。但是 SOA 正在迅速成为企业可以对动态变化的市场有效进行响应并充分利用新业务商机的关键。
关于虚拟化
尽管虚拟化是目前一个热门的基础设施话题,但实际上它已经存在很长一段时间了。虚拟化在 IT 基础设施领域内是普遍存在的,例如,在微处理器、虚拟内存和服务器虚拟化领域,我们都可以看到虚拟化的影子。在 IT 基础设施领域内,尚未 进行虚拟化的地方并不多,我们将整个虚拟化集合称为基础设施虚拟化(infrastructure virtualization)。 图 1. IT 基础设施中虚拟化的例子和级别
新的思想是任务负载(或应用程序)虚拟化和信息虚拟化,它们具有特殊的优点,可以与 SOA 协作使用。这些领域都涵盖了网格计算的实质,可以体现出为什么网格可以包含到基础设施虚拟化这把大伞下面。这些领域也是 SOA 接口所参与和涉及的主要虚拟化领域。
高级协作和调整
在这一节中,我们将在一个较高的级别上定义 SOA 和基础设施虚拟化(尤其是任务负载和信息的虚拟化)之间的协作。这里非常有趣的一个地方是,很多公司都是因为一些类似的原因才在自己的应用程序架构中采用 SOA 并在整个基础设施上使用虚拟化技术的。很多原因和驱动力都非常相似。下面就让我们来看一下。
横向协作
第一种协作思想是横向协作(horizontal integration),它打破了纵向协作的限制,使整个企业朝一个更为全球化协作的企业发展。考虑一下公司内部(或公司之间,可能是小公司,甚至是中等或大型公司)的标准功能和实践情况。
在这些共同的(全球)业务流程之上,SOA 通过消除冗余服务打破了应用程序的纵向限制,并在每个业务单元中得以实现。当然,要理解和实现集成业务流程必须要有一些准则,但是一旦实现之后,即使只实现部分准则,SOA 就可以帮助我们将应用程序及其必要服务与全球业务策略和过程统一在一起。结果,通过开发自己特有的服务,并将其加入全球设计的业务流程(通常称为工作流 或复合应用程序),业务单元可以继续进行创新 。
基础设施虚拟化通过将计算或信息资源看作一个实体(而不关心这些资源的属主或位置)打破了基础设施的纵向限制。尽管一个公司可能有多个物理基础设施(例如数据中心),但是这些基础设施正在被当作一个逻辑基础设施进行管理。例如,我们在 IT 外购竞争中越来越多地看到了这种趋势,在这种竞争中,任务可以从一个数据中心迁移到另外一个数据中心。