SOA初步印象

摘自《SOA & Web 2.0 —— 新商业语言》——孟岩

    具体地说,就是要理解SOA在整个组织中扮演什么角色。SOA不是一种产品,这里的关键词是架构。构建SOA像是建造一座房子。要有蓝图,要打地基,并且要由内而外地进行施工,以保证自己可以从一个房间进入另一个房间而不被墙或门挡住。我们把这些墙和门叫作非标准的特制应用。
    另外,如果SOA不是新生事物,为何还要关注它?事实上自巴别塔(Tower of Babel)①以来,人们一直在试图使用一种通用的语言进行交流。这种挑战有时可以轻松得像美国人试图捕捉英国女皇的英语神韵,有时又复杂得像CFO要将全球各地分公司每月一次的财务报表统一起来。只有现在的技术手段才能胜任——实现SOA,SOA能帮助消除团队之间、部门之间、公司之间的壁垒,确保组织内部报告的一致性。
    虽然SOA这个术语较新,但它的功能却不是新生的。SOA已经发展进化了多年的事实说明了它并不是一种短暂的潮流。而SOA真正的新意在于,我们还刚刚意识到,作为一种产业,要将机构的不同部分不费力地联接起来,最佳的途径是SOA。除非将来不再需要增加收入、扩大市场、商业流程流水化,否则SOA就一直会是机构成功背后的推动力。当然,SOA的名称可能会改变,但是致力于核心商业需求以及帮助机构实现真正商业价值的能力不会消失。


什么是SOA?面向服务架构(SOA)是一种业务驱动的IT架构方式,支持对业务进行整合,使其成为一种相互联系、可重用的业务任务或者服务。SOA有利于当今业务的创新,能够确保IT系统快速、便利、经济地适应并支持不断变化的业务需求。通过在不同的应用和信息源之间建立联系,SOA能够帮助客户提高业务流程的灵活性,增强企业底层的IT基础架构,并重用现有的IT投资。

面向服务架构是以一种服务为基础的—— 简单说来,一种服务就是一种业务任务,比如说核对申请新账户的潜在客户的信用等级。此处很有必要强调一下业务流程中的各个部分也是非常重要的。不要只考虑软件或者IT,还应该考虑一下企业应该如何在日常工作基础上开展工作,以及如何将业务流程分解为可重用的业务任务或组件。(回想一下本书曾讨论过的关于CBM的实例,看看人家是如何将业务分解成为可重用的任务的)。

面向服务同样关注于业务。它是公司评审构成公司的各种不同功能的一种方式。回想一下本书曾讨论过的将业务剖析成为一套由组件构成的流程。这些可重用的业务任务能够通过服务来实现。此处所说的服务指的是灵活的IT系统的构建模块,且能够支持业务流程。如果企业业务将其自身视为一组服务,并且这套服务的目标是取得某种特定成果,那么该企业的业务就能够以面向服务的方式,为市场提供高价值的产品和服务。这种评审业务的方式逐渐深入人心,而且作者相信,很快,这将成为市场竞争的赌注。

SOA是一种遵循面向服务原则的架构方式,使得更便利地获取软件资源成为现实。SOA为服务工作提供了技术支撑,这种服务不仅仅与软件或者硬件相关,同时还与业务任务相关。这是一种更灵活的软件应用类型的开发模式,这些应用能够促进软件组件之间的松耦合,以更新的、更有价值的跨机构的方式,重用现有的技术投资。SOA以互操作、业务灵活性以及创新性为标准,可以为企业创造更多的业务价值。

公司做出的大部分决策要确保:推动创新并提高灵活性,且对日新月异的市场压力做出迅速反应。SOA的出现,使得改变更加容易。而为了当前的紧急需求,使用缺乏远见的方式,死板地对IT系统进行整合,将使得改变的过程困难重重,且耗时巨大、耗资惊人。相反,SOA能够将IT分解成为便于组装、配置以及重配置的构建模块。我们将这些构建模块称为服务。因为这些服务构建在开放标准基础之上,所以它们能够很容易地与其他IT系统整合,不用担心与个别供应商专用系统的互联互通问题,同时还能促进重用。因为企业能够在启用服务的形式下,使用已经拥有的资源(也就是说,企业无需对现有的、可靠的应用和系统进行调整,因为这很有可能导致整个系统的崩溃),添加新的构建模块或服务,或者与其他模块或服务结合起来成为新的应用。

我们可以看到SOA是如何通过结合业务需求与IT功能(支撑所需业务需求的)来实现企业灵活性的。业务驱动了对IT的迫切需求;而SOA又使得IT环境能够对这样的需求做出迅速有效的反应。SOA正在帮助公司提高重用性和灵活性,从而降低(用于发展、整合和维护的)成本、增加收入,并能争取到足够的技术竞争优势。

我们应该注意,SOA是一种进化,而不是一种变革,这点是很重要的。尽管SOA带来的结果是具变革性的,但是它构建在许多一直在使用的技术之上,例如Web服务、事务技术、信息驱动原则、松耦合、组件、面向对象设计/开发、事件分配模型、EJB以及.NET。SOA的美妙之处在于,通过标准、明确的界面以及机构承诺,这些现有的技术在SOA中组织在一起,从而可以重用关键服务,而不用“重新创造轮子”了。但是,这些技术的简单集合并不能构成SOA。因为SOA不仅仅需要技术,更需要的是将技术和业务联结起来,完成共同的目标——使业务具有灵活性。



从定义上看,SOA是一种架构方法或方式。同时,SOA还是一种IT方法,能够帮助企业解决业务上的紧急问题和挑战,并迅速获得收益回报。实际上,企业获得立即见效的投资回报的机会是相当多的。例如,许多企业浑然不觉大量发生在不同部门与应用之间的流程是重复的—— 对于这些重复流程究竟耗费了多少成本当然也就一无所知。一旦企业发觉,冗余功能和重复工作导致了成本和利益的损失,就会开始发现:比起同时管理多个相互竞争或相互重叠的功能而言,集中服务的价值和优势就会逐渐凸现。合并业务中的一些“移动”部件能够简化业务流程,降低成本并获得更高的灵活性。