首页 >> 通信技术 >> 技术滚动 >> 正文
此SOA 非彼SOA
2007年11月7日 16:18    天极ChinaByte    评论()    
作 者:毛新生

    本文作者为IBMSOA设计中心主管、IBM高级技术主管毛新生

    《程序员》杂志邀请我写一篇短文探讨SOA的本质,也就是它究竟是什么。这个题目不好写,易起纷争,所以我预先说,这篇文章是用来分享我个人的理解,提供探讨用的材料,不是答案。

2007年中国通信业百个成功解决方案评选_通信世界网

    让我们开门见山。SOA的首要目的是让业务能够快速地响应或领导变化,即“业务敏捷性”(BusinessAgility)。而SOA自身,首先是设计原则和风格;其次它是来自实践、应用这些原则和风格的架构范式;再次,SOA是支持和实现这些原则和风格的技术、标准和产品;最后,它是保证企业各方有规可循、透过在“服务”的生命周期中相互协作来达成业务敏捷的管控策略(Governance)。

    既然SOA是IT正在发生的一个大的变化和范式转移,这对我们意味着什么呢?本文也将简单讨论。

    业务敏捷性

    “敏捷性”(Agility),包括几个重要因素:变化,变化的速度,和变化的质量。“业务敏捷性”让一个企(事)业能够适时、快速地响应变化,采取恰当、明智的应变措施。这是今天竞争激烈、变化越来越快的全球化商业环境所决定的,传统的企业观受到挑战,如何灵活快速适应变化甚至是创新求变,成为企(事)业生存和发展的头等大事。很多耳熟能详的名词和讨论都跟它有关,比如“随需应变”(OnDemand)、“实时企业”(RealtimeEnterprise)、“AdaptiveEnterprise”、“Liquity Computing”等等。

    业务敏捷性怎么跟SOA有这样密切的关系?我们需要讨论几个子问题来回答。首先,业务敏捷性要求什么?这里我们会谈到IT在其中充当什么角色。其次,为什么传统的IT不能解决问题,非要引入SOA?这里会谈到传统IT所缺,而SOA承诺提供的东西。最后,SOA如何实现它的承诺?我们会讨论SOA包括哪些主要的东西,还会谈到各种相关概念同SOA的关系,澄清一些常见的关于SOA的误解。

    业务敏捷性要求些什么

    业务敏捷性意味着快速决定和行动,这受很多因素的影响。比如掌握的信息不够、分析论证还不充分、组织条块分割和政治气候的改变等等,但其中最复杂难办的莫过于协调和优化依赖于一大群人和一大堆信息系统来完成的各种业务活动。如果这群人各自行动,而这些计算机系统相互隔离,不能协同工作,整体上就会处于一种混乱的状态,很难达成“业务敏捷性”。当业务面临挑战,如果能够通过调整人员的活动来应对,通常业务管理阶层能够果断决策,建立新计划,改变人员的职责,快速行动。但是,当这些变化需要信息系统来配合,业务管理阶层往往无能为力,无法快速行动,一方面信息系统是由IT部门负责的,另外一方面IT系统的相应改动所需要的时间、所花费的人力物力常常超出业务方的期望值,要么时机已逝,要么得不偿失。这往往造成我们经常观察到的业务与IT之间的冲突现象:业务方作为利润中心,总是抱怨IT每年都要花很多钱,投资回报不好,也不能帮助建立战略性的竞争优势。当企业面对变化,难以快速应变,更不要说帮助业务方创新来改变业务模式,主导竞争格局。而IT方作为成本中心,往往怨恨自己没有得到应有的重视,资金不够、加班加点,可是业务人员却不懂得如何珍惜和利用IT来的快速应变,甚至是创新求变,从而进一步主导市场。

    这里牵涉到业务和IT之间的关系,这需要从几个层面上来看。首先,业务活动是由业务人员和信息系统共同完成的,业务人员执行人工活动,比如拜访客户、输入订单和客户资料、做出商务决策等等,而信息系统执行各种自动化活动,包括商业逻辑、业务规则、管理业务数据,提供界面连接人员和信息系统。所以IT是业务的一个重要组成部分。其次,业务方决定人工活动和自动化活动的需求,管理人工活动,但是他们往往不具备必要的技术能力来建立、维护和运营那些支持自动化活动的信息系统,这些工作被委托给自己的IT部门,和(或)外包。所以我们说,IT要服务于企业战略,为业务建立竞争优势,帮助业务快速应变和创新求变。

    通过这些讨论我们了解到,业务敏捷性首先需要的是一个灵活的业务模式(BusinessModel),业务自身不灵活,想改变却心有余而力不足,IT再能干也是干着急。其次,需要IT的敏捷性,也就是说一个当业务改变的时候,那些自动化活动说变就变,随业务的变化而变化,花的时间少,花的人力物力也少。这种IT的灵活性,对IT的所有方面都提出了挑战,从架构、方法论、技术、产品,到过程、成熟度和管控。最后,还需要这对“冤家”之间的有效沟通与亲密合作。这很不容易,业务与IT来自两个不同的世界,看世界的方式不同,所使用的“语言”也不同。大多数时候,业务不愿意花足够的时间在IT 上,反过来,IT也不愿意花足够的时间去理解业务。他们把更多的心思放在技术上,有时候甚至为技术而技术,忘了IT是为业务和战略服务的。

    所以业务敏捷性在挑战业务和IT两者,他们还需要更好的协作和对齐(Business–ITalignment)。

    从传统的IT向支持业务敏捷性的IT 演进

    《程序员》杂志的编辑朋友,特别提醒我谈谈为什么传统的IT不能支持业务敏捷性。这个问题提得很好,要从几个方面来讨论。

    首先,传统的做法缺乏一个方法让业务和IT真正地“亲密接触”,有效地沟通、协作,让IT很好地服务业务,而IT和业务又很好地跟企业战略对齐。这里牵涉到一个重要的概念和实践,那就是企业架构(EnterpriseArchitecture)。互联网大百科(Wikipedia)的解释如下:

    EnterpriseArchitectureisthe practice of applying a comprehensive and rigorous method for describing a current and/or future structure and behavior for an organization's processes, information systems, personnel and organizational sub-units, so that they align with the organization's core goals and strategic direction.

    这段话的意思大致可以理解成这样:

    企业架构是这样一种实践,它采用周密的方法来描述一个企(事)业现在和/或未来的流程、信息系统、人员、组织,以使得它们跟这个企(事)业的核心目标和战略方向对齐。

    这个定义没有明确提到架构管控(ArchitectureGovernance),它也应该是企业架构实践的一部分。企业架构跟信息系统紧密相关,但它同时也跟业务的各种实践,如业务绩效管理(BusinessPerformanceManagement)紧密相关。企业架构包含的东西比较多,横跨业务和 IT,包括若干子架构:业务架构(Business Architecture),IT架构(Application Architecture、Information Architecture、、Integration Architecture、Security Architecture、Infrastructure Architecture、Operation Architecture)和架构管控(Architecture Governance)。业务架构描述业务世界,从业务领域、业务组件、业务对象,到业务服务、业务流程、业务规则等等。IT架构描述IT世界,从应用、数据、集成、安全、基础设施(包括服务器、存储、网络),到IT运营,全面覆盖,即概念性地讨论各种架构设计原则和目标,也清晰地描述和追踪各种架构的现状,同时还定义技术、产品和提供商的选择依据,要遵循的标准等等。架构管控定义了从角色、活动、职责,到协作、审批和监管的框架,保证有一个游戏规则来让这些东西真正地服务于企业的战略和目标。这种实践很有用,但还不大普遍。在SOA实践中,通常会考虑企业架构实践,通过建立企业自己的“竞争力中心”(Center of Excellence,CoE)来将企业中的各方组织在一起,有来自IT和各业务战线的高管组成的团队,他们看方向,做高层决策和把关,也有由架构师和业务经理等构成的团队,他们负责更细节的层面,确保业务驱动的技术战略和设计决策。

[1]  [2]  [3]  编 辑:张翀
关键字搜索:soa  
  [ 发 表 评 论 ]     用户昵称:   会员注册
 
 
  推 荐 新 闻
  技 术 动 态
  通 信 圈