SOA和SaaS两者之间存在着怎样的联系?一个是服务基础架构(Service-Oriented Architecture),一个是软件即服务(Software as a Service)。至少,他们都是关于“服务”的。
我们可以这样简单定义SaaS:软件部署为托管服务,而且可以通过网络访问,可以客户按需定制,并且开发商实施简单。Internet的迅猛发展,软件作为一种服务形式提供给客户的需求逐渐增加。而SaaS 这个新的模式出现正是顺应了这个要求,它可以帮助软件开发商通过提供服务的形式赢得客户。
无庸置疑,SaaS的出现彻底颠覆了传统软件的运营模式。它不仅仅从价格上,交付模式上,实施风险上带来了明显改观,更是促进了软件与互联网的融合以及整个软件市场的发展。
伴随着SaaS的愈发火热,加之SOA的继续深入,市场上越来越多的人开始谈论SOA产品在SaaS方面的能力。诚然,越来越多的软件供应商将借助SaaS的方法,以需求为基础向消费者提供SOA产品。这是我们所期待看见的,但这也在某种程度上混淆了SOA和SaaS。
首先需要明确的一点则是:SOA是一个框架的方法,而SaaS是一种传递模型。
SaaS看作一个传递机制,这个传递机制指出单个实例/多个承租的应用软件程序。SOA是开发松散耦合的软件架构。因此,SOA包括了一切关于软件是如何被架构起来的东西,而SaaS是一切关于软件是如何被应用的。
可以这样说,两种技术是共生的,但是两者可以通过不同的方法来实现,也可以通过不同的方法一起工作。
SOA带给SaaS的既有松散的耦合,也有约定化的、能够治理的服务。从这方面而言,SOA的方法是对SaaS有好处的。而从另一方面而言,SOA和SaaS在重利用、成本控制、标准化方面相互提供参考,两者正在开始走向趋同。
单纯从定义和实现形式上来看, “SOA可以认为是SaaS在企业内部执行的一种形式”。而这一观点正式当前关于SOA和SaaS最为激烈的争论。
支持者认为“大多数企业将最终成为服务的消费者兼发行者,进而模糊了SOA与SaaS之间的界限”。
也有不少人认为,SOA不太可能也不具备作为企业内部SaaS运行的能力。“繁重的企业基础架构减少了SOA的有利部分,而SaaS则提供了更敏捷,低本高效的第三方服务选择。”
而对于其之后的发展也有着清醒的预计,“具有更大因经营规模扩大而得到的经济节约和价值建议的外部服务将取代内部执行的服务。随着企业逐渐了解由SOA驱动的服务供应理念,ITIL 与SaaS将面临一个问题: 作为服务的供应商,他们需要迅速、低廉并且可靠的提供执行包括服务管理、报告和表单功能在内的服务以增强竞争力。于是,企业将不太可能维持原有昂贵、个人化、单调的企业基础架构,而会转向外部有效的计算机处理平台。面对更远的未来,将来的企业最终会定制“商务即服务”(Baas)主张,从而实现构造整体价值链条而非单纯购买软件。”
归根结底,SOA不太可能也不具备作为企业内部SaaS运行的能力, 但它能够在很多方面为SaaS铺平道路;而无论内部基础架构有多么SOA化,都没有与市场驱动的SaaS相抗衡的灵敏度。