在美国和英国金融行业工作的企业级解决方案设计师Michael Poulin与市场研究公司Burton Group的分析师Anne Thomas和Rob Eamon讨论了SOA未来将在什么地方的问题,是在技术/IT部门还是在业务部门,还是在其它地方。Poulin说,他想提供有关这个争论的正反两方面的理由以便你做出自己的判断。
这个讨论是由Thomas最近发表的一篇文章引起的。她在2009年1月发表的这篇文章中解释了她的几乎是革命性的声明:“SOA死了,服务万岁!”。当时,许多设计师、经理和博客都做出了回应,因为这个声明最初被误解了。最后,这个讨论平息下来了,因为这个声明的上下文是非常清楚的:SOA作为一个词汇已经失去了光泽,但是,SOA作为一种实践对于所有向前发展的机构都是非常重要的。很明显的事情是SOA这个词汇在这个行业中一直是被混淆的,实施的细节实际上没有把握面向服务的概念。现实是,面向服务是塑造实际生活的非常强大的概念。
John Rymer曾引述了Thomas的观点。他解释说,SOA死于市场营销。当一个技术变得非常重要时,它在营销意义上就死了。现在是SOA“死亡”的时候了,因为每一个个人都在使用它,它已经不再是不容易识别的东西了。我认为,Thomas的结论不是以市场营销趋势为基础的。事实上,许多机构都开始削减IT部门的SOA项目投资,因为这些IT部门没有实现有关SOA能够提高经济效率的承诺。同时,我们还有许多SOA在其它机构中取得成功的例子。这个问题是:为什么IT部门的SOA项目失去了业务部门的信任以至于这种情况几乎成为一个行业趋势?
Eamon在对Thomas的文章发表的评论中说,IT已经发展到了这个阶段:孤立的单个“SOA计划”(我们称作SOA项目)已经显示了它们不能在“有机增长的SOA”中实现面向服务的解决方案的价值。也就是说,SOA必须在企业级当作有生产效率的东西对待,并且应该由业务推动。
Poulin说,我经常推广类似的SOA方法,把SOA解释为一种面向业务的以消费者为中心的结构模式。任何违反上述特征的方法都会导致SOA失败。这是在SOA领域出现许多失败的原因:使用Web服务集成IT深处的应用程序对于业务会产生非常深远的影响;组合现有的老式应用程序以满足直接的业务需求,不考虑未来的变化并且只会增加IT努力的成本;IT项目之间的分离不允许实施SOA解决方案的合适的投资和规划;最后,低水平的业务运营的面向处理的性质不断地与潜在的面向服务的技术解决方案发生冲突。
Thomas的回应有些令人感到意外。她说,考虑到业务人员(非IT人员)很少参与系统架构设计,争论SOA应该由业务部门推动是没有意义的。SOA是一种IT架构风格。IT人员负责设计这个IT系统架构。因此,SOA必须由IT部门推动。但是,IT部门应该以业务部门的要求作为SOA计划的基础。我的立场是非面向服务的业务实施(也就是业务操作流程)产生的业务需求将消灭IT部门中的SOA,无论IT部门做什么都没有关系。这种要求不需要面向服务的架构。
SOA要取得广泛的成功,业务部门必须深入地包含在面向服务的架构中,并且相应地影响系统架构设计。尽管SOA最初定义为“一种IT架构风格”,但是,我们现在已经理解面向服务的原则能够更有效地推动业务而不是IT部门。那个SOA必须是由业务部门推动的,然后与IT部门联系起来,如果一个机构要从面向服务的计划中获得最大的效率的话。
只有在上述情况下,IT才会得到面向服务的要求并且能够对面向服务的技术解决方案做出反应。Poulin说,按照我的观点,SOA(更准确地说是面向服务)正在从IT部门转向业务部门。我和Thomas的观点是接近的。Thomas说,SOA必须是由业务推动的,而不是由业务人员推动的。也就是说,SOA的目标应该集中在产生积极的业务成果。业务人员不理解SOA的必要性,因此,他们不能成为这项努力好的领导者。
Poulin说,这是这个讨论的重点。如果SOA在以处理为中心的低水平业务操作中有自己的“极限”并且锁定在IT部门,那就不能实施SOA。但是,我不清楚为什么会这样。在我的调查结果中,与IT部门有直接联系的业务人员不理解SOA的必要性,而上一层的业务人员实际上理解SOA的必要性。在业务领导层中,人们主要操作一些服务,他们出来什么、为什么和谁做这个业务的问题。比较低的业务层必须搞清楚如何实现这个业务任务。如果IT部门没有平等对待这些较低的业务层,不能真正地提供技术能力如何实现业务解决方案的创新的意见,面向服务的架构就没有机会更有效率和生存。
最后,谁将领导SOA的努力?Thomas说,我同意高级业务经理理解服务。但是,即使他们也不适合领导SOA的努力。如果IT部门要担负领导责任,我的工作是让SOA成为高级业务经理的需求,并且让IT部门完成这个任务。特别是如果考虑到理解服务的高级业务经理没有反对意见的话。
Thomas的结论是,通过采用面向服务的原则改善你的IT系统架构,这项努力必须由企业架构领导。如果我们使用在TOGAF 8/9中定义的企业架构,也就是企业架构=技术架构(在IT部门)+业务架构(在业务部门),我认为我们都会在这个问题上有一致的和可靠的意见。