【IT168 技术文章】
面向服务架构的架构及其所支持的Web服务已经成为当今最热门的软件趋势。但同时,人们对它的理解也最不全面。
理论上,面向服务的架构(SOA)和它的名字一样不是那么复杂。Open Group给SOA做了一个简单的定义:“一个支持以服务为导向的架构风格。”---一种你可以创建业务流程的方式,SOA就像胶水一样,可以将你的应用紧紧“粘连”在一起。然而,在实践中,这一原则可以说是极其复杂并且使人感到很迷惑。部署一个SOA就像为一个几十年的老房子建造地下室一样让人感到很没有底气。你如何才能搭建一个基础去支持一些已建成的应用呢?你如何才将已经存在的应用“粘连”在一起呢?
尽管实施SOA的前景是如此的“恐怖”和“黯淡”,但是,现在投资与SOA服务和技术的公司比以往任何时候都要多。在其“2007---2008年SOA开支报告”中,市场研究机构AMR Research发现,企业投资与SOA的预算正在以惊人的速度增长:在接受调查的公司中,有53%的公司正在使用SOA,而在去年同期,这一比例仅仅为21%,增加了一倍多。另外,还有37%的公司正考虑准备部署第一个SOA,预计到2010部署完毕。
投资服务和技术以支持SOA的开销是非常昂贵的,但这种方法给企业的部分承诺是:这项支出将很快在企业中看到回报,提高企业的生产力、业务效率、客户满意度,并通过重用性减少成本。此外,从长远来看,企业投资于SOA可以避免昂贵的点到点的集成项目,如果采用传统架构,每次产品升级企业都要进行这样的集成,这使得企业的开支大大减少。
把SOA应用于企业流程而获得成功的企业在各个行业数不胜数。纽约健康及心理卫生署(New York City Department of Health and Mental Hygiene)在部署了SOA项目以后,其文件处理的效率提高了25倍;Parametric Technology是一家财富500强企业,主要向客户提供软件和服务,该公司在使用了甲骨文的Fusion中间件以后,业务效率大大提高,可以实时满足其各个商业领域客户的需求。不过,并非所有公司都如此成功:根据AMR Research的调查报告,2008年投资与SOA的费用将高达数百万美元,但“大多数被浪费了”。为了确保你的公司所实施的SOA是最好的,我将在下面介绍一个部署SOA的步骤,以便使你在部署过程中不会手忙脚乱不知所措。
第1步:尽职调查,做好你自己的功课
尽管SOA正在变得日益普及,但围绕“到底什么是SOA”仍然有一些混乱。市场分析机构Saddletree Research公司总裁和首席分析师Paul Stockford指出,人们对于SOA最常见的误解以及就是认为它是一种产品。“SOA不是你可以买到的一个现成产品,”Stockford说。相反,SOA指的是一系列的开发和集成应用的原则;而Web 服务正是实现这些原则的是一套标准。
由于在过去的几年里人们对SOA炒作和关注已经到了疯狂的地步,这使得很容易形成这样一种思维定式,认为SOA是企业的灵丹妙药---一个能立刻治愈所有服务的痛苦的架构。不过,现实总是不参杂任何感情色彩的。企业在掏钱部署SOA之前,需要了解SOA的基本原则是如何切实适用于特定的业务流程的。“个案研究是一个了解SOA如何才能给你的公司提供帮助的有效方式”,AMR Research分析师Ian Finley说。此外,你也可以借助杂志、商展和竞争对手来了解SOA。与软件供应商进行讨论是你可以利用的另一个潜在资源;Finley建议同多个不同的软件供应商进行沟通,因为有些供应商出于私利有可能会夸大自己的SOA技术。
第2步:成立一个团队
几乎所有的专家都一致认为,一个成功的 SOA项目中其中最关键的步骤是确保你公司的各个部门之间进行沟通。Nice Systems公司全球行销副总裁Eyal Danon称SOA为“IT和业务之间的桥梁”。 SOA或Web服务项目的技术天性要求它应该几乎完全由企业的技术部门(或外部顾问)承担,但是由于这些项目的核心部分是为了推动业务流程的,所以高层主管行政人员也应该参与进来,这是必不可少的。
为了做到这一点,其中一个最有效的方法是成立一个由高层主管行政人员和顶尖的IT员工组成的专门小组。市场研究机构Aberdeen Group公司高级分析师Michael Dortch说:“一流的公司总是将企业各个部门最合适的人才组成一个智囊团,听取他们的意见。要使SOA的建设取得成功并使企业更具竞争力,也需要多方面集思广益。”通过建立一个跨部门的团队致力于你的SOA项目,这样就可以确保来自企业各个部门的人都会关注并对SOA项目负责,直至成功。你可以为这个团队指定一个负责人来领导项目建设,这依赖于你的企业文化。
第3步:制定现实的目标
我们应该如何看待SOA呢?我们可以用《金发姑娘和三只小熊》打个比喻:计划太大或者计划太小都是不明智的;最好是恰恰能满足公司的需要。如果你确定要实施一个SOA,那么你一定要在脑中有一个清晰的目标。如果这些目标是没有被明确地定义,那么你就有可能花费了大量精力和金钱才掌握的技术以及建设的基础设施是你不需要的。但是,还有这样一个同样危险的陷阱:“一些公司常犯的一个错误是,他们试图把一切东西都设计得非常完美,” Finley说。“超大规模的SOA项目本身就是一个错误。”
部署SOA的一种有效方法是寻找一个单一业务部门,在那里创建一个基于Web服务的应用将能收到立竿见影的效果。将SOA项目分阶段部署能够使该项目更容易实施。在部署第一个SOA应用之前,你必须问自己:SOA能给我的公司带来什么好处呢?这将依赖于你的企业的年龄和复杂度、企业文化、优先次序和企业的系统结构。