论文部分内容阅读
[摘要]采用SOA的最佳做法不仅可以实现商业灵活性,而且可以降低企业成本,但是如果SOA不能虚拟化就不会有灵活性,进而本文引入了面向服务的虚拟化(SOV)的概念。虚拟服务不仅仅是对SOA测试有用,而是通过优化整个实践的开发和应用来提高价值。
[关键词]SOA 虚拟化 面向服务的虚拟化 灵活性
SOA(Service-Oriented Architecture,面向服务的体系结构),是一个组件模型,它可以把应用程序的不同功能单元(或Services)通过这些服务之间定义良好的接口和协议联系起来。它应该独立于实现服务的硬件平台、操作系统和编程语言。SOA可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA不涉及底层编程接口和通信模型,它SOA可以看作是B/S模型、XML/Web Service技术之后的自然延伸。SOA能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。
目前,多数主要企业在信息化实施中依赖多种分布式技术和新功能,SOA就是其中最重要的一种。虚拟化技术在IT预算中占的比例相当大,大约在80%以上。虚拟化的好处可以应用到商务活动中使用的关键企业软件,并且应用到这些应用程序的深入开发、技术支持和维护成本等方面。服务器虚拟化可直接减少硬件和配置成本。简言之,虚拟化能够提高这些系统的质量和上市的时间。但是,团队如何实施虚拟化以便提高不在一个集中的团队控制下的SOA功能和加快上市时间呢?这个扩展的机构必须要通过把共享的服务行为虚拟化才能把这两个战略联系起来,从而成倍增加SOA的价值。
SOA虚拟化有三种类型:
第一,硬件虚拟化包括在一个硬件设备中,以VM(虚拟机)的方式运行多个版本的操作系统。这种做法不但为在数据中心运行的内部应用程序提供了三方面的好处:更低的成本、更大的灵活性和以及更好的风险管理,并且为SOA系统提供了一个复制测试平台的有用途径。
第二,虚拟端点能够在与实际端点隔离开来的时候,允许SOA定义服务的虚拟位置。这对于SOA应用程序中固有的动态流程来说是一种很理想的做法。
第三,虚拟服务通过优化整个实践的开发和应用来提高价值,所以虚拟服务不仅仅是对SOA测试有用。这种类型的虚拟化服务又称为在数据中心外部发生的虚拟服务。
通常来讲,企业依靠实时的实施来验证和开发SOA,应用到的这些复杂的相互连接的环境能够通过硬件虚拟化技术进行复制,虚拟化需要扩展到实际的分布式软件组件中和在这些环境中运行的服务中。在硬件和数据中心的级别上实施虚拟化可直接节省数百万美元IT成本,而且这种节省运营成本的回报可以立即见效。
对大规模企业系统来说,SOA的投资回报是有严格限制的。这是因为,当我们把组件或者服务开发任务分配给多个团队的时候,往往会忘记这些团队仍需要实时访问这个应用程序的其它部分以完成自己的开发和测试目标。所有这些团队之间仍然需要高水平的依赖性和相互沟通以提供一个完整的工作流。
可以使用SOV(Service-Oriented Virtualization,面向服务的虚拟化)把这两种技术联系起来:模拟应用软件资产行为的策略以及合成制作企业SOA应用程序的组件。不利用SOV的优势,在整个企业范围内最大限度地实现SOA价值是很困难的。
SOV是一种IT策略,它要模拟组成一个SOA应用程序的软件资产的实际行为,进而使开发和测试团队摆脱对应用的服务及其基本实施层的依赖。SOV包括建模和模拟设计中的应用服务以及虚拟的服务。这些虚拟的服务将提供给扩展的SOA团队进行测试并且开发自己的服务和工作流,不用依靠这些服务的实例。当各个团队摆脱了对应用的服务和实施层的依赖的时候,提高的灵活性、更快的上市时间和减少的交付成本等扩展的SOA的好处就全部实现了。
SOV不仅影响完成的应用程序的质量,它在加快SOA生命周期的开发和治理过程中发挥着巨大作用。以前,企业系统的整个应用程序的开发、测试和发布是一个一个权威机构的领导下连续进行的过程。现在,应用程序是松散耦合式的一些服务的集合,运行时间作为灵活的工作流来使用,并由灵活的开发人员和合作伙伴组成的分布式的团队进行管理的。一个灵活的SOA应用程序基础设施能够非常灵活地满足不断变化的商业需求。
为了提供能够满足商业要求的服务,开发人员和QA(质量保证)团队必须要针对当前正在开发中的虚拟服务进行测试。如果企业要得到SOA的灵活性的好处,所有的团队必须在自己的生命周期并行开发和发布自己的服务,不要等待其他人。
SOA方法:
不要等待其它团队提供访问已经完成的服务进行测试,这个团队要制作他们作为虚拟服务所依靠的那些服务行为的模型。
(1)一个团队需要一个服务的副本进行对照测试和开发,并且该团队需要制作一个虚拟服务的模型。
(2)一个服务开发人员在开发的时候还能够以虚拟服务的方式发布一个自己服务的完整版本或者“未来的”版本。
(3)其它开发和QA团队将利用这个虚拟的服务测试自己的服务。
(4)这将节省开发和QA成本,并减少编写客户化测试客户端软件或“模拟服务”的时间。这些模拟服务不是附属服务的真正行为的实际模型。
(5)它允许在整个机构中进行高度并行的、灵活的开发和测试协作,以便用新的功能保证更快和更有预见性的上市时间。
SOV方法:
(1)把连接的服务模拟为虚拟的服务,并在服务环境中取代实时受限制的应用程序,无论这些服务是来自WSDL还是根据基础实施和整合层模拟的。
(2)在这些组件能够用于这些活动的时候,需要重新捕捉和重新模拟新的服务组件,提供比复制的SOA实例更新的目标服务的模型。这可能得需要几个星期甚至几个月的时间才能组装完成。
(3)在SOA应用程序中演练所有的系统,以创建一个具有丰富而又真实的数据的测试平台,这些数据将用来驱动该虚拟服务的动态行为。
(4)在脱离应用的服务的隔离环境中进行开发和测试,在测试和开发中采用SOV方法。
按照该模型进行操作,企业能够节省数百万美元的硬件、软件和维护成本,在不影响当前运营的情况下加快产品的上市时间。
从SOV向SOA集成过渡
一旦SOV的所有的协作开发和测试工作全部完成,这个虚拟服务便进入了实际集成过程的后台。SOV不取代真正的集成测试、性能测试和实时SOA应用程序的功能验证等实际需求。如果这个企业不能恰当地让定义这个服务相互作用的元数据满足商业目标的需求,它就很难产生积极的结果。
虚拟化服务预期收益
一个有效的SOV战略可以提供两方面的价值:
一是灵活性。最大限度地在整个分布式SOA开发和测试团队中协作,以使这些团队进行并行的开发,并且把新产品和新功能尽快推向市场,以缩短发布周期。
二是降低成本。通过软件许可证、配置、维护、数据管理、开发和测试效率等方式应用在每个SOA环境中,达到节省数百万IT成本的目的。越多地采取协作的开发方式,目标SOA应用程序就越有相互依赖性,虚拟服务能够提供的潜在的好处就越大。
的确,对于拥有分布式团队和资源的任何大型企业应用来说,不采取SOV的做法SOA就不能完全取得成功。
[关键词]SOA 虚拟化 面向服务的虚拟化 灵活性
SOA(Service-Oriented Architecture,面向服务的体系结构),是一个组件模型,它可以把应用程序的不同功能单元(或Services)通过这些服务之间定义良好的接口和协议联系起来。它应该独立于实现服务的硬件平台、操作系统和编程语言。SOA可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA不涉及底层编程接口和通信模型,它SOA可以看作是B/S模型、XML/Web Service技术之后的自然延伸。SOA能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。
目前,多数主要企业在信息化实施中依赖多种分布式技术和新功能,SOA就是其中最重要的一种。虚拟化技术在IT预算中占的比例相当大,大约在80%以上。虚拟化的好处可以应用到商务活动中使用的关键企业软件,并且应用到这些应用程序的深入开发、技术支持和维护成本等方面。服务器虚拟化可直接减少硬件和配置成本。简言之,虚拟化能够提高这些系统的质量和上市的时间。但是,团队如何实施虚拟化以便提高不在一个集中的团队控制下的SOA功能和加快上市时间呢?这个扩展的机构必须要通过把共享的服务行为虚拟化才能把这两个战略联系起来,从而成倍增加SOA的价值。
SOA虚拟化有三种类型:
第一,硬件虚拟化包括在一个硬件设备中,以VM(虚拟机)的方式运行多个版本的操作系统。这种做法不但为在数据中心运行的内部应用程序提供了三方面的好处:更低的成本、更大的灵活性和以及更好的风险管理,并且为SOA系统提供了一个复制测试平台的有用途径。
第二,虚拟端点能够在与实际端点隔离开来的时候,允许SOA定义服务的虚拟位置。这对于SOA应用程序中固有的动态流程来说是一种很理想的做法。
第三,虚拟服务通过优化整个实践的开发和应用来提高价值,所以虚拟服务不仅仅是对SOA测试有用。这种类型的虚拟化服务又称为在数据中心外部发生的虚拟服务。
通常来讲,企业依靠实时的实施来验证和开发SOA,应用到的这些复杂的相互连接的环境能够通过硬件虚拟化技术进行复制,虚拟化需要扩展到实际的分布式软件组件中和在这些环境中运行的服务中。在硬件和数据中心的级别上实施虚拟化可直接节省数百万美元IT成本,而且这种节省运营成本的回报可以立即见效。
对大规模企业系统来说,SOA的投资回报是有严格限制的。这是因为,当我们把组件或者服务开发任务分配给多个团队的时候,往往会忘记这些团队仍需要实时访问这个应用程序的其它部分以完成自己的开发和测试目标。所有这些团队之间仍然需要高水平的依赖性和相互沟通以提供一个完整的工作流。
可以使用SOV(Service-Oriented Virtualization,面向服务的虚拟化)把这两种技术联系起来:模拟应用软件资产行为的策略以及合成制作企业SOA应用程序的组件。不利用SOV的优势,在整个企业范围内最大限度地实现SOA价值是很困难的。
SOV是一种IT策略,它要模拟组成一个SOA应用程序的软件资产的实际行为,进而使开发和测试团队摆脱对应用的服务及其基本实施层的依赖。SOV包括建模和模拟设计中的应用服务以及虚拟的服务。这些虚拟的服务将提供给扩展的SOA团队进行测试并且开发自己的服务和工作流,不用依靠这些服务的实例。当各个团队摆脱了对应用的服务和实施层的依赖的时候,提高的灵活性、更快的上市时间和减少的交付成本等扩展的SOA的好处就全部实现了。
SOV不仅影响完成的应用程序的质量,它在加快SOA生命周期的开发和治理过程中发挥着巨大作用。以前,企业系统的整个应用程序的开发、测试和发布是一个一个权威机构的领导下连续进行的过程。现在,应用程序是松散耦合式的一些服务的集合,运行时间作为灵活的工作流来使用,并由灵活的开发人员和合作伙伴组成的分布式的团队进行管理的。一个灵活的SOA应用程序基础设施能够非常灵活地满足不断变化的商业需求。
为了提供能够满足商业要求的服务,开发人员和QA(质量保证)团队必须要针对当前正在开发中的虚拟服务进行测试。如果企业要得到SOA的灵活性的好处,所有的团队必须在自己的生命周期并行开发和发布自己的服务,不要等待其他人。
SOA方法:
不要等待其它团队提供访问已经完成的服务进行测试,这个团队要制作他们作为虚拟服务所依靠的那些服务行为的模型。
(1)一个团队需要一个服务的副本进行对照测试和开发,并且该团队需要制作一个虚拟服务的模型。
(2)一个服务开发人员在开发的时候还能够以虚拟服务的方式发布一个自己服务的完整版本或者“未来的”版本。
(3)其它开发和QA团队将利用这个虚拟的服务测试自己的服务。
(4)这将节省开发和QA成本,并减少编写客户化测试客户端软件或“模拟服务”的时间。这些模拟服务不是附属服务的真正行为的实际模型。
(5)它允许在整个机构中进行高度并行的、灵活的开发和测试协作,以便用新的功能保证更快和更有预见性的上市时间。
SOV方法:
(1)把连接的服务模拟为虚拟的服务,并在服务环境中取代实时受限制的应用程序,无论这些服务是来自WSDL还是根据基础实施和整合层模拟的。
(2)在这些组件能够用于这些活动的时候,需要重新捕捉和重新模拟新的服务组件,提供比复制的SOA实例更新的目标服务的模型。这可能得需要几个星期甚至几个月的时间才能组装完成。
(3)在SOA应用程序中演练所有的系统,以创建一个具有丰富而又真实的数据的测试平台,这些数据将用来驱动该虚拟服务的动态行为。
(4)在脱离应用的服务的隔离环境中进行开发和测试,在测试和开发中采用SOV方法。
按照该模型进行操作,企业能够节省数百万美元的硬件、软件和维护成本,在不影响当前运营的情况下加快产品的上市时间。
从SOV向SOA集成过渡
一旦SOV的所有的协作开发和测试工作全部完成,这个虚拟服务便进入了实际集成过程的后台。SOV不取代真正的集成测试、性能测试和实时SOA应用程序的功能验证等实际需求。如果这个企业不能恰当地让定义这个服务相互作用的元数据满足商业目标的需求,它就很难产生积极的结果。
虚拟化服务预期收益
一个有效的SOV战略可以提供两方面的价值:
一是灵活性。最大限度地在整个分布式SOA开发和测试团队中协作,以使这些团队进行并行的开发,并且把新产品和新功能尽快推向市场,以缩短发布周期。
二是降低成本。通过软件许可证、配置、维护、数据管理、开发和测试效率等方式应用在每个SOA环境中,达到节省数百万IT成本的目的。越多地采取协作的开发方式,目标SOA应用程序就越有相互依赖性,虚拟服务能够提供的潜在的好处就越大。
的确,对于拥有分布式团队和资源的任何大型企业应用来说,不采取SOV的做法SOA就不能完全取得成功。