SaaS与SOA相互依存 联手实现IT服务

软件服务(SaaS)最近受到了许多关注。软件服务的概念并不是新的,已经存在了一段时间了。软件服务还一直被称作其它的名字,如应用程序服务提供商、管理的服务提供商、随需应变的服务、云计算、公用计算等等。软件服务是指根据按照使用收费的模式在网络上提供应用程序。这种模式最初仅在小企业中流行,因为小企业不想在自己的IT部门投入大量的资金。慢慢地,这种模式进入了中型企业和大型企业和思科WebEx等公司提供的软件服务产品推动了软件服务有可能向大企业发展。软件服务的价值主张现在对于任何规模的企业都是非常清楚地的,软件服务已经成为所有企业IT战略的重要组件。

同样,SOA最近也越来越受到大量关注。而且SOA的基本概念也不是新的并且已经存在了很长时间。SOA基本上包括以无状态的功能的方式提供分布式系统的功能。这与CORBA和DCOM等其它分布式系统架构类似。使SOA比CORBA和DCOM更流行和更优越的东西是SOAP、WSDL、UDDI等Web服务标准。CORBA和DCOM也有类似的标准,但是,这些标准不够开放,导致了厂商或者技术锁定的问题。采用Web服务,所有的主要厂商都支持同一套标准,因此,各个系统之间的兼容性机会更高,从而提高了SOA投资回报的潜力。

软件服务部署是直接针对最终用户的产生收入的业务。而SOA部署通常是在IT环境内部创建的,这些服务是提供给其它应用程序的,而不是提供给最终用户的。思科WebEx部门主要设计师Vinay Singla说,我想通过这篇文章说明软件服务与SOA的密切关系。软件服务与SOA在性质上是非常互补的。事实上,它们没有对方就不能存在。

软件服务平台的关键组成部分是什么?每一个软件服务平台必须要有一些核心的东西。这些东西是:多租户、订购与配置、用户身份识别与授权、服务目录与价格、服务监视、订阅管理、使用测量、计费、开发票和支付。除了这些核心的组件之外,软件服务平台还需要支持通常的业务功能,如营销、客户线索跟踪、销售、客户支持、收入与金融管理、合作伙伴和解以及商务智能等。

现在,让我们看看一个SOA平台的关键的组件。一个典型的SOA平台部署包括服务的生产者和整个企业的消费者。服务生产者通过这个SOA平台发布服务,多个服务消费者消费这个服务。一个SOA平台的技术方面一直有许多重点,如服务总线、通讯协议(如SOA)、服务接口定义(如WSDL)、服务发现(如UDDI)等等。服务监视、管理和治理的重要性也很好理解。但是,这还不够。在一个典型的大企业,服务生产者和消费者应该是属于不同部门、机构、甚至大企业中下属部门的应用程序或者系统。在这种环境中,没有适当的服务管理,服务的生产和消费就不能随便地完成,因为这里存在着与服务生产者托管和发布一项服务有关的成本。为了获得这个成本,除了创建这个服务的成本之外还需要考虑拥有总成本。此外,还有公开地发布这些服务的安全的担心。这就需要服务目录管理、配置、身份识别、授权、使用测量和跨部门收费等。正如以前强调指出的那样,一个软件服务平台还有核心的要素。因此,随着一个企业SOA部署的成熟,它突然会需要一个软件服务平台的核心功能。

现在,让我们看看这个事情的不利方面。每一个软件服务平台都需要这种能力:在对核心平台做出最小的修改的情况下向这个服务目录增加新的服务产品和修改现有的服务产品。这些增加或者修改不应该导致为每一个服务创建一个全新的软件服务平台。相反,订购与配置、身份识别与授权、服务目录与价格、服务监视、订阅管理、使用测量、计费、开发票和支付等软件服务平台的全部基本功能都应该在多个服务中重复使用。这种重复使用使SOA平台成为必要的东西。而且,SOA平台的使用还有其它好处,如更灵活和即插即用架构。这些好处会降低整个拥有总成本。

包括软件服务架构在内的最复杂的架构都将从SOA能力方面得到好处这可能是很容易理解的。但是,一个SOA平台需要软件服务的能力不是那样容易理解。围绕SOA一直有许多言过其实的宣传,但是,多数大企业部署的SOA不是没有取得成功就是没有提供预期的投资回报,因为在这些部署中缺失了软件服务的成分。为了实现大规模SOA部署的全部好处,拥有一个软件服务式的服务管理功能是非常重要的。SOA和软件服务正是能够在这里实现“IT服务”的概念,帮助IT在自己的发展中迈出自然的下一步。