简单性
SOA 和基础设施虚拟化的一个关键优点是降低了复杂性。在图 2 中我们可以形象地看到这一点。应用程序架构的 SOA 方法将整个紧密耦合的大块应用程序划分成一系列的服务,其中各个功能都被清晰地划分出来。复杂的相互依赖关系被消除了。另外,企业不同领域中的功能的冗余实现都有可能被标准化。SOA 承诺要降低企业应用程序架构中的复杂性,但是它也要遵守一定的准则。
图 2. SOA 和虚拟化:减少复杂性
这同样适用于基础设施的虚拟化。通过在物理资源和用户之间引入一个抽象层,SOA 和基础设施虚拟化都可以独立进行管理。如果资源失效,新物理资源就可以接管它的逻辑位置。如果出现了更好的资源,旧的资源就可以退休了。结果,不用让用户或应用程序依赖于任何给定的物理资源,就可以实现基础设施的灵活性。
基础设施对于服务和复合应用程序的需求
现在我们已经分别阐述了 SOA 和虚拟化对于应用程序和基础设施架构的相似性,下面让我们来看一下服务和复合应用程序对基础设施的具体需求。服务和复合应用程序具有特定的属性,可以让虚拟化技术成为 SOA 基础设施的坚实基础。
服务特性:
" 服务是移动的,可以从一台虚拟机移动到另外一台虚拟机上。
" 服务可能只存在一段短暂的时间。
" 服务需要根据需要来启动或停止。
" 服务需要对信息和数据进行存取,它具有特定的分支,因为服务是移动的。
" 服务具有典型的服务质量(QoS)需求,例如安全性和弹性。
复合应用程序的特性:
" 复合应用程序也可以是移动的。
" 复合应用程序可以作为一个作业交互式运行,也可以通过编程控制其运行。
" 复合应用程序可以进行调度,这非常重要,因为它们通常都呈现为具有相互依赖的任务的工作流。
" 复合应用程序可以进行划分,且有可能并行运行。