高级协作和调整
在这一节中,我们将在一个较高的级别上定义 SOA 和基础设施虚拟化(尤其是任务负载和信息的虚拟化)之间的协作。这里非常有趣的一个地方是,很多公司都是因为一些类似的原因才在自己的应用程序架构中采用 SOA 并在整个基础设施上使用虚拟化技术的。很多原因和驱动力都非常相似。下面就让我们来看一下。
横向协作
第一种协作思想是横向协作(horizontal integration),它打破了纵向协作的限制,使整个企业朝一个更为全球化协作的企业发展。考虑一下公司内部(或公司之间,可能是小公司,甚至是中等或大型公司)的标准功能和实践情况。
在这些共同的(全球)业务流程之上,SOA 通过消除冗余服务打破了应用程序的纵向限制,并在每个业务单元中得以实现。当然,要理解和实现集成业务流程必须要有一些准则,但是一旦实现之后,即使只实现部分准则,SOA 就可以帮助我们将应用程序及其必要服务与全球业务策略和过程统一在一起。结果,通过开发自己特有的服务,并将其加入全球设计的业务流程(通常称为工作流 或复合应用程序),业务单元可以继续进行创新 。
基础设施虚拟化通过将计算或信息资源看作一个实体(而不关心这些资源的属主或位置)打破了基础设施的纵向限制。尽管一个公司可能有多个物理基础设施(例如数据中心),但是这些基础设施正在被当作一个逻辑基础设施进行管理。例如,我们在 IT 外购竞争中越来越多地看到了这种趋势,在这种竞争中,任务可以从一个数据中心迁移到另外一个数据中心。
敏捷性
敏捷性(Agility) 是可以快速响应的能力。我们在前面的文章中已经介绍过敏捷性的问题。敏捷性可能是目前公司中最为重要的 IT 驱动力。SOA 可以通过快速部署新服务并将其提供给消费者和复合应用程序使用来提高公司的敏捷性。重用的概念在这里非常重要,它是 SOA 的一个基本元素。公司可能会错误地从头开始创建新服务,因此通过将应用程序分解成各种必要服务或通过将应用程序在服务上下文中进行封装,就可以快速重用现有实现了。
相同的概念同样适用于基础设施。此处的思想是快速部署基础设施资源,并使它们可快速用于支持新的业务需求和机会。虚拟化在资源和用户之间提供了一个绝缘层,因此可以删除它们之间的紧密绑定。这种松耦合关系让公司可以添加资源,使基础设施可以识别出这些资源并将它们快速提供给消费者使用。
启用灵活性
业务灵活性与敏捷性是紧密相关的。与大多数人一样,公司也喜欢让自己经营的东西一直保持可用状态。SOA 通过服务的概念来实现这种功能。替换带有定义良好的接口的服务可能非常容易,添加新服务也很容易。SOA 支持动态应用程序构建(或 mash-up)的概念,这样就可以用一些有趣或创新的方式来构建服务。企业服务总线(ESB)尤其有用,因为它们为服务到服务的通信提供了一个框架或交换场所。
存储虚拟化是基础设施虚拟化灵活性的一个很好的例子。例如,IBM? SAN Volume Controller 为存储提供了一个虚拟表示形式,允许公司在性能或技术改进或价格降低时替换底层的存储设备。这个过程可以快速实现,而不会影响应用程序或其他用户。