【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能给我的公司带来什么好处呢?这将依赖于你的企业的年龄和复杂度、企业文化、优先次序和企业的系统结构。
第4步:有效地管理你的数据
因为SOA有助于推动企业数据的无缝共享,而企业数据是服务的动力源泉,所以SOA的成功与否与企业数据息息相关。换句话说,数据质量不够好的话就有可能对企业业务造成伤害。“在面向服务的架构中,你想要最大限度地共享和重用资源,比如客户资料,”市场研究机构Forrester Research高级分析师James Kobielus说。“企业往往会做错的一件事就是他们没有将自己的客户数据集成到一个核心企业知识库里。”
要创建一个客户数据集成(Customer Data Integration,CDI)仓库,企业在尝试部署SOA之前,往往需要投资于购买主数据管理(Master Data Management,MDM)工具。虽然很多公司选择从他们的CRM供应商那里购买MDM工具,但Kobielus建议在部署MDM之前,应综合考虑各个厂商的产品,选择一个最适合自己的厂商。几乎所有的数据清洗(Data-Cleaning厂商已经实现了Web服务标准,因此,不论软件的品牌是什么,易集成性都很高。
第5步:自己创建还是购买SOA
在培训和规划阶段,仔细考虑你的SOA倡议的具体细节是很重要的。随着具备SOA技术的厂商逐渐增多,你的选择也相应地增加了。在过去,如果一个公司想要把SOA准则运用于自己的业务中,它需要自己做很多工作。但是,随着现在越来越多的供应商可以提供一套完整的SOA架构,它是一个可以帮助你构建SOA的预构建(Prebuild)工具 。
为了制定适合你的公司的最好方法,SOA 团队必须考虑你的公司所具备的业务优势,并同可能的SOA供应商讨论各个候选方案的优势和劣势。预构建工具在SOA部署过程中可以起到润滑剂的作用,并可以减轻IT团队的很多压力。甲骨文、IBM 和SAP是一领域的领头羊,他们都有具备这些功能的工具集。对于那些过去利用花钱购买套装应用来创建IT系统的公司来说,建SOA工具毫无疑问对他们来说很有吸引力。
另一方面,如果一个公司采用更加先进的SOA可能意味着会带来更多的收入,那么,这些公司就希望利用管理工具帮助他们创建自己的基础设施。“在投标如此密集的市场领域,有时候几毫秒的时间就能影响到生意的成败,所以,自己建设SOA也是很有意义的”,Aberdeen Group高级研究分析师Ian Michiels说。在Forrester公布的市场调查报告《The Forrester Wave:单独SOA和Web服务管理解决方案,2007年第四季度》中,Progress Software 、AmberPoint、IBM的解决方案被列为最高效的解决方案,但是,仔细调查多个供应商从中选择一个最适合你企业的厂商仍然很重要。
第6步:循序渐进
“婴儿学步”应该是成功部署SOA这个“游戏”最合适的代名词。正如我们在第3步中讨论的那样,首先从一个小项目着手部署是很重要的。企业在应用集成过程中所面临挑战的困难度可以更加清楚地显示部署SOA带来的好处。这种交叉作用的程度各个公司可能会有所差异。
对小项目仔细测量对于SOA在更广泛的范围内取得成功是非常重要的。在项目开始之前和结束之后进行标准检查对于未来SOA部署的成功也是必须的。Dortch发现,在一流的SOA用户中,60%的用户会部署SOA性能分析和报告软件,40%的用户会为SOA应用和服务建立服务质量指标。
在以业务为中心的地方放上度量手段,就能看到性能是否提高以及员工使用的服务数目的是否增加。Dortch解释说,虽然有很多公司忽略了这个明显步骤,但是,建立一个精确的性能测试却是一个显而易见的好办法。“你正在做任何一个称职的IT系统自丛诞生以来一直在干的事情:复制和调整。”
第7步:保持跟踪
对于任何业务项目,为了能从投资中获得最大的价值,时刻对它保持关注很重要。对于SOA项目来说,持续跟踪尤为重要。在企业范围内,一个完整的SOA集成可能需要几年的时间,而这带来的好处甚至可能需要更长的时间才能完全释放出来。你需要保持你任命的SOA团队时刻处于待命状态并准备迎接可能出现的挑战。Dortch建议为这个团队创建一个基于成功部署的激励结构。如果你向行政人员证明SOA正在给企业带来他们所关心的商业利益,他们也会对SOA项目保持关注。“告诉他们你在做什么,并让他们负责协调一些工作。这是一个不能跳过得步骤。” Dortch说。
SOA供应商业会根据最新出现的标准继续配置他们的产品,并开发新的并且不同的创建SOA的方法。在这个瞬息万变的领域里,企业应该时刻关注业界出现的新兴技术以保持竞争力并跟上时代发展的步伐。“SOA的未来是非常光明的,”Stockford说。“这给供应商和使用者都带来了巨大的机遇,利用SOA的集成创新技术创造竞争优势。”