SOA是一种思想?一种软件产品?还是一种软件服务?尽管越来越流行的SOA已经充斥到几乎所有的IT经理脑中,但SOA究竟是什么?仍然让人迷茫。面向服务的IT架构到底在业务与IT两个世界中扮演了怎样的角色?你眼中的SOA到底是什么?
在今天,竞争激烈、变化越来越快的全球化商业环境中,传统企业观受到严重挑战,如何灵活快速适应变化、创新求变,成为企业生存和发展的头等大事。在业务敏捷性的实践中,SOA正成长为IT促进业务提高的转移范式,从设计原则、架构范式以及技术、标准和产品中实践着它面向服务架构的伟大使命。
业务敏捷性向业务与IT两个世界发起挑战
事实上,许多企业都无法实现“业务敏捷”。他们的工作人员各自行动,计算机系统又相互隔离,不能协同工作:一方面是由IT部门负责的信息系统,另外一方面则是调整IT系统所需要必要时间和成本。受这二者的制约,企业变化要么时机已逝,要么得不偿失。因此,业务方作为利润中心,总是抱怨IT每年都要花很多钱,不仅不能获得良好的投资回报,也不能帮助建立战略性的竞争优势。而IT方作为成本中心,往往怨恨自己没有得到应有的重视,资金不够、加班加点。这种现象的出现也就不足为奇。
到底应如何看待IT与业务之间的关系?
首先,业务活动是由业务人员和信息系统共同完成的,业务人员执行人工活动,比如拜访客户、输入订单和客户资料、做出商务决策等等,而信息系统执行各种自动化活动,包括商业逻辑、业务规则、管理业务数据,提供界面连接人员和信息系统。所以IT是业务的一个重要组成部分。
其次,业务方决定人工活动和自动化活动的需求,管理人工活动,但是他们往往不具备必要的技术能力来建立、维护和运营那些支持自动化活动的信息系统,这些工作被委托给自己的IT部门或者外包。所以IT要服务于企业战略,为业务建立竞争优势,帮助业务快速应变和创新求变。
可见,业务敏捷性首先需要的是一个灵活的业务模式(Business Model),业务自身不灵活,想改变却心有余而力不足,IT再能干也是干着急。其次,需要IT的敏捷性,也就是说一个当业务改变的时候,那些自动化活动说变就变,随业务的变化而变化,花的时间少,花的人力物力也少。这种IT的灵活性,对IT的所有方面都提出了挑战,从架构、方法论、技术、产品,到过程、成熟度和管控。最后,还需要IT与业务这对“冤家”之间的有效沟通与亲密合作。
这很不容易,业务与IT来自两个不同的世界,看世界的方式不同,所使用的“语言”也不同。大多数时候,业务不愿意花足够的时间在IT上,反过来,IT也不愿意花足够的时间去理解业务。他们把更多的心思放在技术上,有时候甚至为技术而技术,忘了IT是为业务和战略服务的。 因此,业务敏捷性同时向业务和IT两个世界发起挑战,沟通和协调成为必然。
SOA畅行业务与IT两个世界业务架构描述业务世界:从业务领域、业务组件、业务对象,到业务服务、业务流程、业务规则……IT架构描述IT世界:从应用、数据、集成、安全、基础设施(包括服务器、存储、网络),到IT运营,全面覆盖……两个“世界”共同服务于企业,而如何实现两个世界协作则成为企业战略目标实现的关键!
SOA正是沟通两个“世界”使命的承担者,它提出了架构管控的概念,从角色、活动、职责,到协作、审批和监管的框架,保证有一个游戏规则来让这些东西真正地服务于企业的战略和目标。
然而,大多数企业对自己的业务模型仍停留在自发状态,缺乏业务方面的严谨企业架构实践,更谈不上业务与IT的沟通,这直接带来两个问题:
一是业务优化、应变和创新缺乏形式化和数字化的基础,很容易靠感觉办事。这种“拍脑袋”应变策略,往往带来很多问题,有些时候,这些问题的原因被强加到IT的头上,而使IT承担了不应承担的责任。
二是业务和IT之间缺乏“可追溯性”(Tracability)。在将业务的需求映射到IT的时候,使用模糊的自然语言,容易造成翻译后的失真和变形。同时,细粒度的操作层次所定义的需求,受到变化的冲击大而快。这最终导致业务和IT在进行需求映射,尤其是在需求发生变化时,很难保证好的可追溯性,从而导致业务的需求无法准确地映射到IT,业务需求的变化很难被快速地定位到IT。
传统模式需要引入新的IT架构范式和抽象层次,从而为企业的业务活动和流程提供多系统相互协作的IT支持,SOA则恰好扮演了这个角色。

