</p> 例子:提供访问以重新获得灵活性: G7 Y3 q% H5 i+ {1 v
一家主要金融服务公司把它集中的开发功能按照SOA式的模型分为不同的商务流程,让专业服务开发团队实现更短的服务交付周期。虽然最初的结果显示了更快的交付过程,但是,随着支持SOA应用程序的更多新服务开始应用,出现了客户技术支持需求量大幅度增长的问题。$ `8 e. L) D- y# ^: S
为了解决这个问题,这家公司恢复了对发布的集中控制,要求在11月之前提交所有的“最终服务,以便为计划在1月份完成的两个月的测试周期创建一个完整的SOA的总体环境。如果在一年的测试周期中出现任何错误,这个系统管理员会把这些候选的服务退回到以前的版本。这就意味着一个开发周期是一年,如果一切正确才能发布。这种做法按照任何定义都是不灵活的。
& i6 E7 O; E$ u& h. s9 E2 v# S x 通过使用一个SOV模型,这家公司现在能够把这个一年的周期分为若干部分。开发团队现在能够根据目标环境创建一个模型,并且根据需要针对这个环境进行虚拟服务和产品测试。他们还能够向其它附属团队提供一个托管的虚拟服务,这样,他们就能获得进行测试的早期的资产。因此,这家公司解散了它的控制委员会,采用每个季度发布一次的周期(这个发布周期是连续不断的和灵活的),并且建立和测试对用户的需求反应更明显的活动。/ v. | a0 ] ^+ _& ~" C
SOV应用实例2:复制一个完整的SOA环境
t, m5 J% n" @2 T3 I Y( Z* l5 ^ 在一个内部应用程序开发过程中,在虚拟机上运行的虚拟化硬件和虚拟测试平台是复制服务器环境的一种有效方法。它为对照现有的软件开发新的软件组件提供一个良好的开发和测试的基准线。这种做法可节省硬件和设置成本。然而,SOA应用程序通常需要与那些不在任何集中的团队控制之下的第三方系统进行互动。此外,它们需要连接到商业的“基础的”系统(大型计算机、ERP系统等)。每一个系统都是数十亿美元的设备,里面有大量的重要数据。在开发期间向这些系统发送测试数据是被禁止的,因为测试负担会引起关键系统发生故障或者出现不可预料的后果。而且,从系统开销和配置成本方面来说,通过硬件虚拟化复制这样庞大的系统都是不可能的。
4 E( c6 Q F; |$ L 通过面向服务的虚拟化(SOV)设置和维护一些互相依赖的组件的一个完整的测试环境为一个完整的SOA应用程序实例复制SOA应用程序的行为在维护和技术支持的成本方面不允许的,即使采用虚拟机复制某些功能也是如此。
2 U9 O; v/ c: E7 N4 U 这种SOV的做法虚拟化了正在测试之中的整个系统的模拟版本的行为。为了每一个团对访问相关的测试和开发过程,捕捉和模拟系统需要的大多数行为的能力将取代复制的需求。6 e3 j6 B% [3 v
SOV方法0 k6 m+ U' u7 j/ j
·通过把连接的服务模拟为虚拟的服务在服务环境中取代实时受限制的应用程序,无论这些服务是来自WSDL还是根据基础实施和整合层模拟的。% c- c3 E* i' D* v9 \8 l
·在这些组件能够用于这些活动的理想时候,要重新捕捉和重新模拟新的服务组件,提供比复制的SOA实例更新的目标服务的模型。这需要几个星期或者几个月的时间才能组装完成。8 R6 K1 n0 w( A& U
·在SOA应用程序中演练所有的系统以创建一个真实数据的丰富的测试平台。这些真实的数据将用来驱动这个虚拟服务的动态行为。6 \; D, r! v. u$ b/ m% t, h
·在脱离应用的服务的隔离环境中进行开发和测试(在测试和开发中采用SOV方法,并且修改时间不取代在应用期间实时安装的服务的集成测试)。
/ R' g& U! X" ? g 通过按照这个模型操作,企业能够节省数百万美元的硬件、软件和维护成本,在不影响当前运营的情况下加快产品的上市时间。* W( ?1 x2 q% P1 q9 e
例子:解决电子商务背后完整的数据图片; G1 \9 v: Q. y
一家全球的高科技厂商正在实施一个新的电子商务解决方案。这个电子商务解决方案需要连接到一个主要的CRM平台、一个ERP系统以及其它存货和物流系统。虽然使用选择的标准很容易测试这些基本的Web层的可升级性和兼容性,但是,没有它们背后的数据相互交流情况来进行测试,因为这些系统已经在使用并且在管理重要的订单。% ]( Y3 W- [" ~: D0 I
这家公司没有复制这些昂贵的系统,而是采用SOV流程捕捉数千个与它们交流的这些大型机和服务层之间进行的实时处理和相互作用(有正结果和负结果)。然后,这个丰富的数据集可驱动一些大型计算机的相关的虚拟服务,让这个团队及时地并且以低于预算的成本提供一个非常可靠的新系统。) L3 \" i: a/ D4 l5 c
下一步:从SOV向SOA集成过渡9 s, @) N! r( C# C% s- Z0 [
一旦SOV的所有的协作开发和测试工作全部完成,这个虚拟服务便进入了实际集成过程的后台。SOV不取代真正的集成测试、性能测试和实时SOA应用程序的功能验证等实际需求。如何这个企业不能恰当地让定义这个服务相互作用的元数据满足商业目标的需求,它就很难产生积极的结果。
8 {0 k2 x+ K1 A% a7 \3 N1 l% d 虚拟化服务预期的益处 b( |/ ~- C. i. U7 m' {8 Q( G# t, d
一个有效的SOV战略提供两方面的价值:6 V0 }6 \8 ^$ ?; U" F
1.灵活性:最大限度地在整个分布式SOA开发和测试团队中协作,让这些团队进行并行的开发并且采取把新产品和新功能更快推向市场的发布周期。1 C7 k6 E$ x K$ ^* y: ?
2.降低成本:通过软件许可证、配置、维护、数据管理、开发和测试效率等方式在每个SOA环境中节省数百万IT成本。越多地采取协作的开发方式,目标SOA应用程序就越有相互依赖性,虚拟服务能够提供的潜在的好处就越大。
0 y0 a. M+ k( ], g: N: p 确实,对于拥有分布式团队和资源的任何大型企业应用来说,不采取SOV的做法SOA就不能完全取得成功。 |