SOA警告:外包对SOA产生的影响

日期: 2010-09-12 作者:Michael Poulin翻译:李松 来源:TechTarget中国 英文

在《SOA警告:外包公司》中,我们介绍了在SOA项目中,外包公司目前呈现出来的一些趋势以及在选择外包公司的时候需要注意哪些问题。那么,这对SOA有什么影响呢?   影响就是:为了实现他们的规模经济,外包公司想要对他们所做的工作拥有全面的控制权,我并不是批评他们这种做法,但是,极有可能的是,他们的’控制’ 没有顾及你为你们公司所创建的SOA解决方案。为什么?因为SOA作为一个分布式、高灵活性的解决方案,它需要更多的初期工作;这项工作中某些部分不同于传统、软件开发,而是需要额外的培训、特殊的工具、以及架构师和管理部门的更多关注。比如说,SOA的实施需要很多预先的考量和设计,这种考虑需要采用服务/功……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

《SOA警告:外包公司》中,我们介绍了在SOA项目中,外包公司目前呈现出来的一些趋势以及在选择外包公司的时候需要注意哪些问题。那么,这对SOA有什么影响呢?

  影响就是:为了实现他们的规模经济,外包公司想要对他们所做的工作拥有全面的控制权,我并不是批评他们这种做法,但是,极有可能的是,他们的’控制’ 没有顾及你为你们公司所创建的SOA解决方案。为什么?因为SOA作为一个分布式、高灵活性的解决方案,它需要更多的初期工作;这项工作中某些部分不同于传统、软件开发,而是需要额外的培训、特殊的工具、以及架构师和管理部门的更多关注。比如说,SOA的实施需要很多预先的考量和设计,这种考虑需要采用服务/功能的方式而不是从对象的角度(但是,架构师的工作成本是很昂贵的);不是所有面向对象的开发实践都能应用到面向服务的开发/测试,开发人员要承受压力因而也会有抵制情绪。真正的SOA实现对传统的外包也是一项新鲜事物;在交付方看来它需要花费更多的精力,因而一般说来并不受欢迎。

  沿着这种新的关系发展下去,外包公司现在开始更经常地同客户公司建立起一个合作伙伴关系。这些外包公司希望能够完全外包客户的IT。外包公司的确承诺能够满足你的业务需求,但是需要按他们的方式来实现。作为一个独立的公司,外包公司最先看重的是他们的营业收入,这并没有错,但是,他们的营业收入并不是你最关心的。还记得Forrester在第一部分开头的结论 -公司的业务严重依赖于其实现的技术,也就是说,当外包你的IT时,你也外包了你的一部分业务。这样一来,迟早有一天,你的业务也会被全部被外包公司拿走。这是你在开始考虑外包你的项目时的初衷吗?

  因此,如何正确的实施SOA?这里有以下几点建议:

  准备/设计/组织你的SOA解决方案时,自己来,或者同一个可信赖的咨询公司一起。这个咨询公司应该负责为你的业务创建正确的方案。

  找到并雇用一个独立的测试/质量保证/验证确认公司,该公司要有多年的SOA系统测试经验,且使用诸如iTKO Lisa和Parasoft SOATest之类的工具(这些工具的设计对SOA有很深入的理解,并支持端对端的SOA服务测试)。

  找到一个外包公司,并将你的SOA解决方案写入你们的合同中,合同应对违背你的解决方案的情况予以严肃处罚。如果你的法律部门人士说合同并不是非常适合加入你的SOA解决方案,确保你能把你的SOA解决方案全部放在你的项目需求中。项目需求可能不会被外包公司所复核,但应该向外包公司解释,项目需求是合同必须要满足的一个条件。

  特别注意外包公司提供的开发技能。最便宜的外包公司并不一定最适合来开发你公司的未来(SOA解决方案)。并且,SOA解决方案并不强制要求采用哪种技术,因此技术厂商的建议不应该限定技术的采用——SOA是独立于技术实施的。如果外包公司声称所选定的技术对你的技术词汇有不同的解释,确保在实施中要采用你的语义,除非你确信技术厂商的提议更适合你。

  所有外包公司提交的工作结果,都必须经过你选定的测试工作的检验和确认,这一条应该作为条款的一部分写入与外包公司的合同中。

  在开发过程中,从对最终结果的影响这个角度,注意每一个变更请求(变更控制管理)

  当面临交付压力的时候,可以缩小功能的范围,但不要折衷地去采用一些非面向服务的实施。举例说来,当开发人员说他们要开发一个组件,然后再通过Web服务提供一个外部接口,你要阻止他们这样做!他们必须先定义服务,定义好接口,只有这完成之后,才能在服务的边界内开发这个组件。同时,开发团队一般来说会关注代码复用,但这并不是SOA所在意的 —— SOA关注的是功能复用,任何会造成内部代码之间的隐含依赖的事情都是不允许的。

   我希望你能取得SOA的成功,并喜欢你投入实用的SOA解决方案。

相关推荐