【IT168 信息化】
SOA实施过程中的十大技巧
深入一点去分析,你会发现面向服务架构所能带来的诸多好处是值得付出的。但是,如果你只是刚刚开始这个过程,你能够确保你的业务以及IT基础结构足以处理好这其中的各种复杂性问题么?如下则是例举的关于SOA成功实现之前的十点技巧,可以尽量避免在实施过程中的过多错误,过高成本以及交付不足的各异难题。
为了展现更多的业务价值,面向服务架构的技术与实现已经赢取了来自CIO和执行团队足够多的关注,越来越多的IT管理层人员将面临着第一次SOA尝试的前景。根据AMR研究机构的学术研究报告可知,就在去年的时间里SOA的影响范围已经扩大了一倍以上。Gartner分析公司坚信,到2010年为止,SOA架构体系会深入到百分之八十以上新的大型系统中,或是部分的影响其构建设计。
SOA为企业提供了独特的优势,这集中体现在了分布式和自动化的IT环境。
“我们之所以愿意采用SOA其中之一的原因就在于SOA可以实现不用打破重组的前提下让事情发生改变。” 来自ZapThink分析机构的资深分析师以及董事会成员Ronald Schmelzer这样说道,“我们所做的就是要将这种灵活可变的方法引入到企业架构当中去。”
但是,Gartner分析公司专注于企业级架构的资深分析师以及副总裁Randy Heffner对此表示了疑惑,“SOA的实施将为整个环境带来很多我们所无法预计的复杂性问题,而这些并不会一如我们最初开始执行时所看到的那样简单”。
“对于这些听说过SOA的人而言,当然我理解的这一个群体应该是站在一个比较高的层次上去看待这个架构体系问题的,这一部分的人在开始之前肯定会有个一个非常重要的事要做,那就是仔细考虑是否已经准备好了一切从而去实施SOA。他们可能会说,‘是的,我们已经计划好了明年开始正式引入SOA,但是且慢,行业中对于SOA的讨论总是有着不同的方式,那对于我们而言具体的意义应该如何?’” Heffner说道,“毋庸置疑,这需要一段时间才能真正着手去实施SOA。”
为了能够更好的帮助企业中为SOA实施而焦虑不安的决策执行人员,我们特定对Schmelzer和Heffner进行了探讨,并总结出了如下的十条关键技巧从而能够给予SOA成功实现足够的帮助。
1. 切记,这是一个架构体系
随着SOA所引发的浪潮越演越烈,许多供应商也开始更多的与SOA关联到一起。但是进一步的市场营销手段或是其他的宣传反而带来了不良的影响,人们往往忽视了SOA的主要特征,而把一些技术甚至一些产品作为SOA的具体表现,归根结底,SOA是一个架构体系。事实则是如此,SOA作为架构体系的存在是不依赖于任何特定的技术或方法的。
“架构体系不是某种具体的技术,他们更多指的是一种设计理念。” Schmelzer如是说,“我们可以通过多种技巧和技术实现SOA,因为我们在遵从SOA设计原则的基础之上去实现了整个架构。比如说,如何处理抽象,如何处理松散耦合,如何处理异质性,以及如何处理流程。”
他相信,能够真正实现SOA的企业必须是在开始筹划他们的面向服务项目之前就深知这一原则的企业。
2. 不要将SOA与We把服务混为一谈
这必然应该放在首要的位置。根据SOA这些日子的发展看来,很多企业似乎有着一个不太准确的印象,那就是认为面向服务架构的所有内容仅仅只是关于Web服务的。Schmelzer指出,事实上,SOA所指的服务包括了企业内部所有类型的服务。有着这样错误认识的企业必定无法对SOA应用的优势有深刻理解:这是一个可伸缩的,灵活的企业级架构体系。
“诚然SOA和Web服务两者的发展密切关联,但是,你可以在没有使用Web服务的情况下成功的实施面向服务架构,反之,即便你将很多的Web服务整合在一起也并不能说这就是面向服务架构。”他如是说道。“这就好像是将一大推的木材堆积到了一起但你不能称其为房子。”
3. 功能优先而非产品优先
如果你想要寻找一个最简单的方法打破所有SOA成功实施的希望,那就是让你的设计水平向后发展。而在SOA架构体系中,过多的依赖产品必定会让你的SOA架构设计有所局限,而这正是Schmelzer和Heffner所共同认定的一点。
“人们在说,‘我需要SOA’,那么让我们购买EMC所提供的解决方案吧,然后我不用再弄清楚我需要建立什么样的服务,我不用再弄清楚这是一个什么样的架构。而这样的做法就是一种退步。” Schmelzer指出,“你必须要清楚,在建立你的服务之前考虑好这些服务将用来做什么,如何使用,而同时,你可以使用超过两百种不同的方法去建立起这个服务。”
Heffner也对Schmelzer的观点表示了赞同:“即便是在做SOA平台设计工作,也应该时刻明确一点,那就是以功能为重而不是产品为重。更好的理清楚什么样的功能是你所需要的,你才能更好的认识到从现有的产品中获得什么样的好处,而新的产品又能为你带来什么样的帮助。”
4. 不要用面向服务理念指导所有应用
Schmelzer还说道,一个企业中并不是所有的应用都是完全符合面向服务架构的,所以,千万不要试图将所有的应用都强套上面向服务的帽子。
“如果你针对一些不会发生变化的环节采用了SOA,那你只是为这些应用增加了不确定性,同时也对整个流程的效率带来了坏的影响,不会有任何好处。”他这样补充。
举例来说,一个企业不会想着要将SOA引入到电汇的流程中去,因为面向服务可能不会给这个流程带来有效的改变而仅仅只是徒增了可变性,Schmelzer指出这些都是毫无意义的。在这个情况下最好的办法则是让这项流程采用其自由的服务。Schmelzer解释了在将应用交付进SOA项目之前对功能就SOA适宜性的检查能够更好的让技术与应用结合起来。
“你需要准确的知道SOA应用带来的好处而不是盲目的追随这样一种理念。深入分析,明确SOA是否会在这些应用中带来改变?会体现在哪些方面?而整个过程对于成本和应用复杂性的问题会不会增加?这些都是需要事先明确的关键所在。” Schmelzer强调,“只有当你的结论都是肯定,你才可以放心的引入面向服务。”