开始使用SOA的10个技巧

日期: 2008-04-20 来源:TechTarget中国

  你如果稍微深入地了解一下SOA,你就会发现面向服务的架构(SOA)是配得上外界对它的大肆宣传和毫不吝啬的表扬的。但是,如果你是刚刚开始接触SOA,那么,你首先要考虑一下自己公司的业务和基础设施能否处理好SOA复杂的架构?本文主要介绍了10个成功入门SOA的小技巧,可以使你在部署SOA的时候避免花一些不该花的钱,同时提高投资回报。


  随着面向服务架构(SOA)技术和实践在体现商业价值方面逐渐赢得了CIO和企业管理人员的关注和青睐,越来越多的IT经理们面临着第一次使用SOA这样一个诱惑。市场研究机构AMR Research所做的一项调查显示,就在去年,SOA的使用扩 大了一倍。分析公司Gartner认为,到2010年, 企业80%以上的大型新系统至少在部分设计上将使用SOA技术。


  SOA给企业提供了独特的优势—分布和动态的IT环境。咨询机构ZapThink 高级分析师和管理合作伙伴Ronald Schmelzer 说:“我们之所以采用SOA的,是因为它可以让事情发生改变,同时又不会引起崩溃性后果,我们正在尝试引进这种整体可变和灵活的做法。”


  但是,SOA可能还会给环境引入了很多的复杂性,并且它的部署也不像它一开始看起来那么简单,Randy Heffner,Gartner分析师兼企业架构研究部副总裁表示。


  Heffner 说:“有时候,那些听说过SOA并且在一个较高的层次上了解SOA是一个重要事情的人,他们开始琢磨自己已经具备部署SOA的条件了,所以他们会说计划在明年开始实施,并且随后就开始规划和准备,且慢,企业谈论的这种方式同我们的理解是不同的,这对于我们来说究竟意味着什么?这需要一段时间着手。”


  为了帮助那些初涉SOA的企业,使他们载部署SOA的时候少走弯路,Bseeline向Schmelzer和Heffner询问如何才能成功“接近”SOA的一些技巧,并归纳出下面这份清单。


  1 .请记住,SOA是一个架构。


  由于外界对SOA的炒作愈演愈烈,很多厂商在自己都队SOA理解模糊的情况下,盲目进入SOA领域。这往往带来不良影响,使人们忘记了SOA的主要特征—SOA是一个架构。其实,架构,就像SOA这样,是不依赖于任何特定的技术或方法的。


  “架构不是技术具体的,他们仅仅是设计方法,”Schmelzer说。“我们可以用各种各样的技巧和技术实现SOA,因为架构SOA是由设计原则构成的。就像我怎么做到抽象的、怎么做到松散耦合的、如何处理异构的、如何处理过程一样。”


  Schmelzer认为,在开始规划SOA项目之前,能够牢记这个原则的企业,它们部署的SOA必定是最成功的。


  2.不要混淆SOA和Web服务。


  这是第一个原则带来的一个必然结果。现在,很多企业似乎对SOA有这样的错误理解,那就是认为面向服务的架构都是与Web服务有关的。Schmelzer要纠正的是,SOA是分布在整个企业内的所有类型的服务。把SOA和Web服务搞混的企业漏掉了SOA的一个巨大优势:可扩展的、灵活的、整个企业范围的架构。


  “你可以不用Web服务就能够实现面向服务架构,更重要地是,把整个一大堆的Web服务放一起并不能成为一个面向服务的架构,”Schmelzer说。“这就像把一大堆件木材堆在一起把它称为一座房子一样。”


  3.功能第一而不是产品第一。


  Schmelzer 和Heffner都特别同意,毁掉你对SOA寄予的重大期望的最简单的方法之一你的设计阶段完全是与正常情况是相反的。
 
  “事实上,人们经常这样做,他们说:‘哦,我需要SOA,那么我就买EMC的解决方案吧’,或者说:‘哦,然后让我想一想要创建什么样的服务以及需要什么样的架构’”。 schmelzer说。“其实,正确的做法应该是你在创建服务之前,首先应该想想这些服务应该如何使用,因为你可以用200种不同方式创建一个服务。”


  Heffner对于Schmelzer的看法表示赞同,他说:“在设计你的SOA平台时,首先要确保功能第一,而不是产品第一。因为通过分析功能性,你就可以更好地将功能性体现在你现有产品的功能中,以及任何新的产品中。所以,设计SOA平台的时候,一定不能忘记这一点。”


  4.不要试图使一切应用都面向服务。


  并不是企业的每个应用都是适合于面向服务架构的,所以不要试图使每一个应用都面向服务,Schmelzer说。


  “如果你将SOA应用于一些不会发生变化的应用中,那么你所做的这些事情都是没有很好的理由,并且给处理过程带来了不需要的可变性以及低效,”Schmelzer说。


  举例来说,一个企业如果将电汇(wire transfer)过程转换成SOA架构的将是没有任何意义的,因为电汇过程是不会发生任何改变的,你也不会在该过程中引入可变性,Schmelzer说。在这种情况下,比较明智的做法是将电汇过程作为自己的服务。 schmelzer解释说,功能需要首先被分析是否适合SOA—在深入研究SOA项目之前,要紧密遵循上述第三点的另一个原因。


  Schmelzer说:“问问自己,这个过程将会发生改变吗?当它改变时,是否会花费很多金钱和精力?如果答案是肯定的,那么,这个过程是适合于面向服务的架构的。”


  5.增量SOA是一件好事。


  那些增量部署SOA的企业,要比选择复杂、笨重的SOA实施方法的企业能够获得更大的成功,后者期望得到很多长期回报,但很少有短期收益。


  “也许你想要使你的企业的所有适合面向服务的应用都面向服务,但是,这并不一定意味着你一次完成这些事情,”Schmelzer说,“其实,你确实不需要一次性部署完毕,因为增量实施SOA的一个大的优点是失败造成的损失特别低。”


  而从一些小的项目着手会更有意义。因为,这些短期项目比较容易创建微型业务案例场景,并且这些项目的成功可以给将来的项目打下一个良好和坚实的基础。


  Heffner说:“专注于你眼前的需求是为了更好的实现你打打算在短期内发布的基于SOA的解决方案。因为,如果你不能短期内提供应用,你也不会在将来顺利完工,因为你将得不到资金。”


  6.想想短期效益是如何为长远目标提供补给的。


  当然,当你部署这些规模较小的工程项目时,考虑它们是如何给你的长远SOA目标提供推进作用的,这点很重要。


  “把这些眼前的需求与你长期的SOA平台目标放在一起考虑,你就能平衡短期和长期的侧重点, ” Heffner说。“同时也试图在目前交付的项目中找到一些你可以做的并有能力支付的事情,因为很少有人具备充足的资金去随心所欲地购买基础设施和各种新的SOA平台产品。”


  7.从一开始就着手打造一个安全的体系结构。


  过渡到SOA的其中一个比较大的后果是,它可能会带来一些治理和安全问题。


  “如果你拥有一大堆的服务,任何人都可以创建任何服务并且任何人都可以调整它们,这意味着事情可能确实会变得=难以预测,” Schmelzer说。


  问题是,许多SOA架构师没有能够认真考虑安全问题并创建一个完整的安全机制,因为他们是增量部署SOA的,并且认为规模较小的工程项目是不需要安全机制的。


  “他们会说,‘我不需要治理策略,因为在这种环境下,我只打算用一个或两个服务,所以这个问题以后再考虑吧,’”Schmelzer说。“问题在于,这种解释只有在那些服务实际上没有被使用的情况下才适用。并且如果那是你不适用治理策略的原因的话,你为什么还要浪费那么多财力和精力去创建它们,如果不准备使用这些服务,你没有必要把它们摆建设的首位。”


  把安全和治理策略纳入SOA建设过程中的主要原因是可以避免混乱,Schmelzer说:“如果治理策略被运用得恰到好处,它会确保开发人员不会创建不相容的服务或多余服务,但更重要地是,治理策略还能确保开发人员不会把不应该合并在一起的服务合并在一起,或者引导让他们把服务放到某个生产环境中去,从而大大提高服务和基础设施的使用率。治理就像是警察,可以维护SOA的秩序。”


  8.预料到SOA发生了很大变化。


  Heffner提醒那些早期部署SOA的企业说,他们应该能预料到支持SOA的技术在未来几年内将会发生很大改变。这也是为什么增量部署SOA是很有好处的。


  ”当你实际去投资新产品、新技术时,首要地是,一定要具备这种思想:你的投资绝对是明智的,随着SOA技术、SOA供应商、供应商看问题的角度、相关技术和标准的成熟,在未来几年内,这些工程有可能需要重新建设和部署,”Heffner说。“至于SOA标准,则没有那么多变数可言。”


  9.促进供应商提供更好的投资模式。


  因为供应商的视点正在发生变化,企业对于能够帮助他们完成SOA目标的技术也能有积极的影响。Heffner鼓励企业要推动厂商调整其技术产品,使得企业的业务运作和SOA投资回报更有意义。


  Heffner说:“我将推动厂商使他们提供给你的投资模式与你的商业模式相匹配,这样你就能从SOA平台上获得更大的好处。你一定要大声地对供应商说‘从短期来看,我们要得到这么多的商业价值,如果这个投资模式不能达到这个要求的话,我将不会从你那里购买任何产品’。


  10.找到一个愿意成为你合作伙伴的供应商。


  同样,慎重选择帮助你完成SOA目标的厂商同样很重要,Heffner表示。在谈判过程中,让各个厂商互相竞争,从中挑选一个最适合你的厂商,并让他知道你的短期和长期目标是什么。并且同他解释说,你不会一次购买所有的产品。


  Heffner 说:“告诉他们‘我们会长期使用你的产品,但目前我们只想购买这么多。这是我们目前的预算。随着以后项目的扩展,我们肯定还会追加投资,这是我们扩展企业应用的时间以及我们的预算。’事先同供应商谈好这些问题,供应商就可以很清楚合作途径,然后他才能负责地向你交付产品。这是一个你在同供应商谈判过程中的创造性问题以及如何定位供应商机会的问题。”

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 购买应用集成工具可以采取平衡做法

    购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。