刘光强 霍 娜/编译
有人认为,SOA是IT的救命稻草,应用它能帮助企业大规模降低成本、提高灵活性;也有人讲,经济衰退的趋势之下,SOA将死。有应用才有活力,企业落地实施SOA到底该从哪里开始?
我们对比海外和国内各一则SOA实施路径发现,SOA落地,欧美重整合集成,而我国更应从单应用或是相关应用群组入手。
海外案例
Synovus金融公司(以下简称Synovus)总部位于乔治亚州的哥伦布,提供包括银行业务、财务管理、保险、抵押贷款和租借等在内的综合财务服务,它在乔治亚州、阿拉巴马州、佛罗里达州、南卡罗来纳州和田纳西州拥有35家银行和440台ATM机。Synovus长期以来良好的发展使其近30年来在当地业内处于领先水平,由1972年只有一家银行、资产为1.47亿美元的公司,发展成为今天资产高达300亿美元、拥有多种财经业务的提供商。
在如此迅速的增长中,Synovus也面临着各方面的挑战。如何整合并管理多个关键任务的应用程序?作为其面向服务架构(SOA)实现的一部分,Synovus使用ActiveVOS——可视化编排系统来实现之。这样做的好处是通过复用体系架构与服务、可扩展平台降低了整合成本,产品推向市场的速度更快了,客户的满意度更高了。
不断成长 如何无缝整合
Synovus原有的网上银行系统已经很过时了,公司和客户都希望无论他们以何种方式接入网上银行系统都能有统一的客户界面。过去几年间,随着公司业务一步步发展,Synovus已经开发了很多套不同的系统,但不同的系统需要逐步整合。这也导致业务流程的效率越来越低,要满足新的业务需求变化也越来越困难。
重新评估形势之后,Synovus引进了一家新的银行系统厂商来合作,Synovus的创新解决方案团队要建立新网上银行系统,来应对网上银行客户门户面临的三方面挑战:一是要建立起SOA环境,并创建各种SOA所需要的服务;二是让厂商的支持切实可行,这需要他们在功能上做很多定制性的改造;三是要建立一套安全的客户认证系统。
在新系统中,Synovus开始使用一个新平台来加强实时展示的效果,这个需求对新网上银行系统来说尤为重要。另外,Synovus开发的网上银行还面临着自己特有的挑战——Synovus需要实现客户认证证书,并且在正式发布之后的6个月内开发一个欺诈检测系统,后者将在客户登录和添加额外认证信息的时候被用到。
另外,他们还需要让正在开发的系统和正在使用的各种遗留系统之间保持同步。简而言之,尽管Synovus对他们新的网上银行平台充满了信心,但是要把这个系统整合到现有的应用程序和安全系统之中,本身就是一件非常困难的事情。
Synovus最终采用的策略比他们最开始设想的结果要强大得多。他们不仅要实现SOA,更要真正理解和利用它。这个创新解决方案团队需要一个示范项目来向管理层证实,SOA的确有用,并且能够扩展公司的各种业务功能。
Synovus的创新解决方案团队是一个功能性的团队,跨越了公司的业务部门和IT部门。为了维持平衡,他们每个季度都会与业务部门和IT部门开会讨论工作分工与需求。
创新解决方案团队每个星期都会检查他们调度的生产线人员,他们做的工作是否成功和有效。这是使用VOS的另一个好处,因为它直接提供这些信息。如果实际工作中的情况和预想的有变化,那么这些变化就会先经过创新解决方案团队的处理,确保不会给项目带来严重后果之后才提交公司管理层发布实施。
最后的结果表明,他们是对的。网上银行的成功只是SOA实现的开头而已。现在,Synovus的SOA环境不仅整合了网上银行,还整合了手机银行、呼叫中心、分支机构平台、贷款跟踪系统(LOS)和一个新的名为SVP的支付系统(能够在不暴露个人财务数据的情况下进行安全便捷的支付)。整合SVP是一个复杂的工程,但最终达到了双赢的目的:客户的个人信息受到了欺诈检测系统的保护,而商家在使用这个系统时也比客户使用信用卡等手段支付的手续费更少。如果没有SOA,这一切都是不可能完成的。Synovus还会整合更多的功能、更多的系统和产品。Synovus的SOA环境不仅仅是为网上银行而建立的,它应该被作为整个公司的战略重点而实现。
尽可能地复用
Synovus是如何做到同时兼顾新系统的开发和整合原有应用呢?关键在于其使用的一个可视化编排系统——ActiveVOS。
从SOA的角度来看,企业所有的服务都放在一个库中,各个服务(网上银行、贷款、签账卡平台等)的客户通过WSDL(网络服务描述语言)来调用相应服务。WSDL连接的库中大约有Synovus提供的600个服务。例如,要整合SVP,Synovus需要17个服务,其中11个直接来源于这个库。客户可以经过Synovus的网关,使用.NET或者JWS(Java网络服务)等技术直接访问这些服务。Synovus的一些分支机构的服务器也能提供服务,还有的服务来自于第三方,通过Synovus的网关进行认证和转发。在网上银行项目中,Synovus在信用卡识别和认证系统中就用到了一些第三方服务,这一般需要用户有一个注册的过程。
网上银行项目开始于2006年8月27日,Synovus最初计划用9个月时间来完成这个项目。但是,就在第二天,公司CEO要求IT部门将项目工期压缩为7个月。很多公司实施第一个SOA项目都会很保守,不会将一个至关重要的项目拿来做SOA实现的试验品。但对于Synovus而言,这第一个SOA项目则是不容有失。他们需要网上银行来提升公司的竞争力,而且这是全公司应用范围最广的一个项目。
Synovus没有资金用来支持试验项目,研发投入的项目要求必须要很快在业务中见到效果。这个网上银行项目的资金70%来自于公司,另外30%则由IT部门自己负责。公司经过评估认为,这个项目在第一年的支出会略微超出预算,但从第二年起,由于使用同样的基础设施,每年都能够为公司节约一大笔钱。创新解决方案团队在7个月时间内完成了这个项目,并且几乎是马上就看到了效果,因为项目的整个体系结构和创建的服务都充分体现了复用。
Synovus成功的秘诀就在于尽可能地复用。首先,它们的体系结构建立在以两个不同数据中心为基础的SOA环境中。这个环境最终成为了他们的SOA服务局点。要实现一个新项目时,所有的基础设施都能在这里找到并复用。他们不再需要重建基础设施,需要的服务已经就位,需要的计算能力已经有了,防火墙、网关和可视化编排系统一应俱全,一切都已经准备好,可以在需要时启动。共享数据中心,不仅在成本上划算,而且也有利于更好地保护环境。
其次,实现了一个SOA项目之后,应用服务就可以复用了。通过使用可视化编排系统,Synovus已经实现了SOA的最终目的:应用程序复用。正是可视化编排系统的使用,使得Synovus比其他公司更快更容易地实现了这一点。
正是这两种复用,使Synovus得到了理想而又持久的结果。从项目竞争力来看,Synovus现在能够同时顺利完成多个项目,而在实现SOA之前,他们只能说可以在某些项目上取得成功,同时进行多个项目并且都取得成功是不敢奢求的。在网上银行项目之后,他们的每一个项目都复用了SOA环境和服务。
Synovus在可视化编排系统上的投资使得公司的资产回报率(ROA)得到了大幅提升:基于SOA的项目成本降低了65%左右。与不复用物理基础设施相比,现在的成本节约了30%到40%。如果基础设施和服务都使用了复用,那么成本就能节约60%到65%。尽管在第一个项目中,看到的成本节约相当有限,但ROA在以后的项目中将相当可观,在后面的项目中,人力和质量保证将成为成本的主要组成部分,而基础设施和服务所占的比例会很小。而且,人力和质量保证的成本绝对值也会比以前减少很多。
在手机银行项目中,Synovus使用的服务全部都来自网上银行项目。正是这第二个项目让SOA的好处得到了充分体现。不到800个小时的开发、部署和测试就为Synovus提供了一种全新的业务通道。开发成本几乎为零,部署和测试的时间也仅仅是为了确保项目万无一失。
在手机银行之后,Synovus又完成了两个其他项目,这两个项目都是2007年1月份开始做的,在两个月之后完成。一个项目是关于采购的,他们更换了合作的签账卡公司。由于复用了体系结构和服务,这个项目没有花费开发组太多时间。而另一个项目要复杂一些,需要创建16个新的服务,但由于基础设施可以复用也就不需要新的服务器了。由于环境是使用ActiveVOS构建的,在基础设施方面几乎没有成本,成本都集中在开发上。
面对SOA,海外和国内企业的困惑是同样存在的,不同的是各自信息技术和业务应用成熟度所决定的不同切入点,不同的探索路径。
国内案例
即插即用的One应用
老陈是某大型银行的业务主管,他每天通过银行的CRM系统、智能办公系统、财务系统、信贷系统等多个IT系统处理各种数据,做审批……老陈的烦恼是他每天都要到各个系统去查看、处理任务,如果忘了去某个恰好有重要任务的系统,那就是老陈失职了,但也有很多时候是他登录到一个系统后发现这里根本没有他的任务。
小雨是这家大型银行几千名信用卡中心工作人员之中的一个普通营业员,她在工作过程当中,会使用到日常处理业务操作的多个系统,她有时要在客户系统中新建一个联系单,有时要查询知识库,有时要查询费用积分、账务等。小雨要在不同界面之间不停切换,而这些系统因为是在不同的时期由不同开发团队开发的,所以应用起来操作风格差异很大,操作层次太深,需要不断地点击鼠标。
小张是这家大型银行的一个IT工程师,同时也是一名J2EE高手。小张在IT部门要做五套系统的维护工作,包括这些系统日常的日志处理、备份、系统的监控以及一些应用Bug的修订,甚至是增补一些小的功能。这些系统里运行的都是小张所熟悉的应用,尽管都是J2EE应用,但几乎每套系统都采用了不同的架构,技术规范差异也很大。小张整天忙于应付这些工作,经常加班,但他的领导对他的工作似乎并不满意。
就像这家银行的三位成员所感受到的那样,这家银行的应用系统繁多,应用系统之间的关系就像是蜘蛛网;这些系统的技术架构非常零散,维护起来复杂,而且这些应用系统因为是在不同时期做出来的,技术规范难统一;系统之间,包括系统内部的耦合性太强,很难分离相应的业务模块,不方便扩展和变更;在业务部门看来,这些系统在操作过程当中不断地频繁切换,操作的风格差异很大,培训的成本很高;很多的应用采用了一些流程去实现,流程会产生任务,这些任务因为在不同的应用里面,所以分散到不同系统里面,导致人们得像老陈那样,需要登录不同的系统使用系统提供的任务。而且,这种状况还在不断上演,新的应用需求仍然在不断被提出……
在这种背景下,这家大型银行开始考虑,许多应用还在建设中,怎样才能不再“重复昨天的故事”呢?
基于SOA架构及其运营平台,这家大型银行采用了普元软件的One应用解决方案,通过包括相应的集中工作平台、集中的任务中心和统一应用平台的企业应用中心,一方面系统使用者可以得到单一的操作入口、统一的权限控制、一致的操作风格和集中的任务处理等使用体验;另一方面,对系统的建设者来讲,跟以往IT建设的最大区别是,未来所有业务是通过构件化或者说是模块化的方式来实现,并且是基于一种统一的技术架构,统一的平台,统一的规范进行的。在这种IT建设过程中,业务功能是在以增量式的、即插即用的方式体现出来。在模块化的流程、服务之间实现松散的耦合、配置和组装,并实现系统的分布式部署和集约化管理。
具体是如何实现的呢?普元软件产品研发总监王克强介绍说,在从上至下,企业应用中心、任务执行、业务应用群、基础环境的体系结构下,企业应用中心实现权限和组织用户的管理,具体业务的内容部署在不一样的基础环境之上,每一个具体业务作为一个物理应用注册到企业应用中心集中的工作平台中。这样在业务应用群实现了一个个业务的松散的构件模块后,这些业务模块能以可插拔的方式注册到集中工作平台,注册之后经过一个功能菜单,用户就通过菜单方式执行该业务功能。以这样的模式执行下来,业务模块不断实现的时候,业务流程通过企业的流程平台推送到任务中心,而客户端的任务同样是通过企业应用中心实现集中处理。
为了打造One应用的体系架构,这家大型银行做了什么工作呢?他们需要在创建新应用的时候基于SOA的架构,即构件作为业务的基本单元,基于构件做开发、部署、管理和维护,同时构件的标准是基于SOA的规范实现的,以统一的技术规范实现基础构件与一些平台整合集成构件的封装。围绕统一的技术架构,构造SOA的应用平台,实现单一应用的不同构件的开发,这个平台提供相应的一系列平台化的特性,比如说一体化的开发,构件的容器,基础的构件库,应用框架,以及包括像流程、规则、报表业务化的套件以及构建服务管理监控的环境。
每一个业务应用产生的流程都会通过流程引擎,实现之后将产生的任务自动推送到集中的任务中心。自动推送可以通过多种方式实现,例如基于WebService,或者通过ESB(企业服务管理平台)基于消息的方式实现。当然这些任务消息也可以推送到像邮件系统、短信平台、即时消息等渠道平台。
在这种模式下,老陈每天通过集中用户中心的任务列表来处理和浏览不同的任务,这样他就不会遗漏工作,也不会因为登录耽误时间。而小雨可以把所有能够操作的业务内容都整合在一起,这样可以非常方便快捷地操作她所需要的信息,而且每一次的操作由原来的鼠标点击5次以上,简化为鼠标点击1次。对于小张来说,因为基于统一的业务平台业务模式的开发,在开发、更改和维护的过程当中,他的工作变得更加从容和省心。
链接
案例对比
网上银行是Synovus第一次尝试实现SOA,并且得到了很好的结果。创新解决方案团队用一个不容失败的项目取得了第一次实现SOA的圆满成功,尽管有人认为这很冒险。然而,由于在技术上的谨慎选择为实现带来了便利,Synovus可以说收获颇丰,CIO和CTO都清楚地认识到,尽管会有一个磨合期,但SOA使得整合多个系统更加方便,公司将持续受益。
Synovus公司有一个意料之外的发现,他们需要更多的文档管理员而不是开发人员。过去,他们在实现团队中配备一两名文档管理员就足够了,但现在开发的压力减小了,反而需要更多的文档管理员来调度和完善项目。Synovus很快认识到了这一点,于是他们开始使用ActiveVOS,这样能够进一步提高开发人员的效率。
Synovus真正理解和利用了SOA,并且得到了很好的回报。没有网上银行,他们每个月只能处理400万笔交易,而现在他们每个月能够处理2000万笔。
最后,Synovus认识到了QA(质量保证)的重要性。他们需要创建一整套QA体系,而不仅仅是每次都运行一系列雷同的测试案例。Synovus需要建立一套标准,对整个QA过程进行监管,确保建立的服务能够被很好地复用,而不是一次性产品。
而后面那家银行的应用其实只是我国企业探索应用SOA的一个小的案例。对比国内外企业应用SOA的情况,普元软件CEO沈惠中总结说,国外企业由于信息技术和应用的成熟度已经比较高,所以他们要做SOA,就是要做一个企业级的全面规划,而后将好多标准现成的应用快速地变成SOA的服务,完成不同应用系统的集成整合。但对中国的企业来说则不同,我们很难一步到位实现SOA,因为我们也已经有好多的系统在运行,但是我们的应用系统之间的接口并不是很清晰,边界也不是很明确。一方面我们短时期内做全面的IT规划的能力还有待加强,另一方面非技术化、业务化问题的影响也让我们不能一步到位地实现SOA,不能在飞机正在高速飞行的时候更换马达,风险太大。因此,首先我们在开始建设SOA的时候,不应从整个企业的IT规划开始,而是应该从单个应用或者一组相关的应用开始进行,并且我们要建设一个SOA的时候,不应该从零去建设,而应该在我们已经总结好的几十个、几百个构件与基础服务上快速建设和应用,这样可以大大地降低实施风险。