打造先进的SOA应用
Dancing-on-SOA
程朝晖,普元软件副总裁
在开始阅读本文之前,我想先建议你能给自己做一个调查,已明确自己阅读此文的初衷,并能帮助你更好地与此文互动。大家都知道,通常到周末的时候如果你有机会带小孩出去吃饭,为了激励一下他,你就会问他/她:‘想要去哪里吃饭?’。他/她的答案一般只有两个,麦当劳或者肯德基。所以在开始表述本文之前也想请你能问下自己,当下你是需要SOA而看此文,还是想要SOA而看此文?需求往往可以分为两类:一类是目前遇到了问题,在客观上需要解决,所以这类需求通常称之为‘需要(Need)’;而另一类则是目前也没有特别的问题,只是主观上期望更好,所以这类需求通常称之为‘想要(Want)’。那么目前的你,是客观上需要SOA来解决你当前的问题呢?还是主观上想要SOA为你带来更好更好?所以在小朋友们想要去麦当劳的时候,其实并不是要解决饥饿的问题,而是想要去麦当劳获得更快了的体验。所以经常我的女儿到了麦当劳之后,吃两口就跑到玩的地方去玩了。所以需要SOA往往也是很客观的,是有了当前的问题,需要用SOA来解决;而想要SOA则是现在好像也没有太多的问题,但是听说SOA很灵活、效率很高、体验很好,希望把现状变得更好。那么你现在已经知道你阅读此文的初衷了吗J
SOA从应用开始!因为我们绝大多数的IT建设都是通过一个个的应用项目来实现,我们很难平白无故地把未来的业务都先设想好,而是更多地通过一个个解决实际业务问题的项目来建设我们的业务应用。不过我们以前也是从应用开始建设,显然老的方法和技术带给我们的应用在灵活性、可集成性、用户体验和更高效率上的一些问题,这些问题使得我们对于客户要求的满足不够,并可能直接反映到我们自身的市场竞争力。因此我们就需要在建设应用前就有一套更好的方法、规范和模式来解决这些问题。其中SOA的应用模式是落地SOA,获得SOA利益的关键所在。
先给大家看一下,我们所处的背景环境正在发生着哪些变化,这个趋势非常的重要。万事不能自己闷头就说SOA是好的,而要看看我们的业界客户,我们自己,我们的竞争对手他们在发生哪些变化。首先,我们正处在一个转向以客户为中心的时代。最近在新浪上发表了一篇文章,一个分析机构分析了我们中国信息化的500强,其中排名第一的是中国工商银行(ICBC),中国工商银行正在规划建设它的第四代IT系统,它又为什么要做第四代的IT系统建设呢?其实,现在的商业银行产品成千上万,工商银行将通过这个第四代系统在世界范围内第一个摆脱一人千面的困扰。它会在全国乃至全球的中国工商银行,要在业务处理层面实现同一个ICBC,就是One ICBC。这是我们客户发生的一些战略性的转变,我们也同时可以看到一些领先的银行正在规划其新一代的技术架构(2.0)。去年电信业也完成了重组,现在每家电信运营商都提供全业务的电信服务,所以他们也在规划和建设自己的新一代应用系统(NG-*)。同样我们的电子政务也在往这个方面发展,政府在促进更好的一个窗口、一个中心去服务于我们的企业和市民。为了更好地转向客户为中心的时代,就要求我们的业务能够围绕客户的需求,快速整合资源并体现企业自身的差异化优势。在IT的圈子里大家都会阅读Geoffrey A.Moore写的《跨越鸿沟》等系列书籍,作为企业发展过程中的重要参谋。最近他又出了一本书叫做《公司进化论》的书。该书提到的最重要的一个观点就是:“业务的核心就是创造差异,满足客户需求的偏好”。我们要去实现这一点的时候就会发现,要完整地满足一个客户的需求就要做很多很多的事,但同时外界的资源已经非常的丰富,银行的资源也能用,电信的资源也能耗,互联网上还有更多的资源,这个时候我们的策略就是快速低成本地整合外围资源,围绕着客户的偏好和自己的差异化竞争力上面。因此我们对于所依靠的基础就有了新的要求,‘服务’、‘SOA’的产生就是为了提供这样策略实现的基础。当然为了更好地理解‘服务’和‘SOA’的使命,我们自然会问:‘服务从哪里来?’‘服务又要到哪里去?’。答案很简单,服务一定来自于你的业务应用,并一定会回到你的业务应用中去。归纳下来,服务会来自四个方面:第一方面是你还没有该业务功能,那就需要构造新的业务服务;第二方面是在你的已有应用系统中这个业务功能已经存在,分装成标准的业务服务就行了;第三方面就是有了如上的两种服务,把它们用服务组装(Assembly)的方式构造出更粗粒度的新业务服务;第四方面就是通过流程编排(Ochestration)已有的服务来实现新的业务服务。服务从这四个方面而来,同样服务也必然回到应用当中去使用。中国工商银行和电信公司要建新一代(2.0)的技术体系,一定是在向以客户为中心的转变过程中,需要能够更好地整合资源,实现能力的融合,并快速推出符合客户偏好的差异化业务,而这恰恰正是SOA存在的必然性所在。
有句俗话叫:“现在的问题一定是现在的方法所造成的”,如今我们众多业务系统出现的信息孤岛、业务交付慢、灵活性差、定制化能力弱、管控能力不足、用户体验不良等现象都是与我们现在的技术和方法相关,也正是我们所采用的单系统架构所直接导致的。在Gartner对于系统架构演进的分析报告当中提到,单系统的体系架构正在走向终点,而面向开放和网络环境下的SOA体系架构正在成为主流。那么SOA到底是什么?我们可以看到最早的时候,我们理解的SOA就是Web Services。几年前大家都说支持SOA了,其实大家说的是支持Web Services了,解决了业务之间的互通问题。又过了一段时间,就是过去2-3年,大家都在讲我买了ESB、Repository,所以我也SOA了。可是经过这两个SOA的阶段之后,好像我们用SOA的效果并不是那么好。因此随着技术和应用的发展,我们对于SOA的理解会更加的本质,者才会看清SOA存在的意义是什么?SOA是从哪里来的?SOA又要到哪里去?
在上述的图中我们可以看到,SOA的本质一定在应用中,它需要从左侧的应用中来,也必定要回到左侧的应用中去体现价值。接着当我们的SOA服务日积月累达到几百个、几千个,我们的服务更多来自于已有服务的组装和编制时,甚至于我们的服务更多来自于合作伙伴、银行服务、电信服务、互联网服务的时候就需要把这些服务能很好的管起来,这个时候对于SOA的基础设施就显得尤为重要了。这样一个体系我们首先要把SOA应用建立起来,这是实际解决我们现在业务问题的应用,在建立这样应用的时候,我们需要有相应的应用模式、应用平台、定制环境,把我们的服务不断的构造、组合和编排出来。当然建设SOA的应用自然要遵循业界公认的标准化体系和一套方法规范。在05年筹备,06年7月份正式成立,并且在07年3月份发布第一个SOA国际标准的OSOA组织,担当了这套SOA标准体系建设的任务。这个组织是由17家全球领先的基础软件厂商共同推进成立,普元也成为了亚洲唯一核心成员。对于SOA的理解和应用也是一个不断深入的过程,我们将从理解和应用SOA就是ESB、Repository的阶段进入到SOA更为实质的阶段,即“打造SOA应用”的阶段。
回想2000年初的时候,在应用服务器上做应用是件非常困难的事情。大家回想一下,后来什么事情发生之后使得我们在应用服务器上做软件变得容易起来?才真的体现出应用服务器的价值。对,那是直到应用服务器上MVC应用模式成型,以SSH为代表的开源框架实现MVC应用模式时,才真正让应用服务器成为了主流。所以当前的SOA也遇到了同样的尴尬,大家为什么很难找到真正的SOA成功应用呢?为什么SOA的价值诉求还是更多停留在概念上,还停留在PPT上呢?答案很显然,正是缺乏SOA架构下的应用模式,所以SOA的价值很难显现出来。本文将介绍三种成功实施的典型SOA应用模式和一种即将到来的因公模式,从而帮助大家更好地应用SOA,获得SOA所诉求的价值。这四种应用模式是:即插即用的One应用、业务导向的客户定制、基于服务的业务交互和软件即服务(SaaS)。
即插即用的One应用,刚才提到的中国工商银行正在采纳这样的一种发展战略。我们当前的应用系统繁多、用户操作低效,每天要登录众多的系统,用户的体验差异。而每个系统都要学习操作,界面风格也都不一样。而现在的应用趋势则是走向以‘用户为中心’,用户并不希望去应付风格迥异几十个系统,而是能在同一个业务工作台上操作业务、审批代办。所以我们企业就需要建立一种‘One应用’的模式。企业里面整个部门是一个应用,整个管理是一个应用,整个业务是一个应用,甚至整个企业是一个应用。给到用户更加良好的体验和高效的操作。那如何去建立这样的‘One应用’呢?这就需要在我们的组织级建立统一的面向服务模型(Model),统一的集中工作台(View)给到用户一致的应用访问,统一的集中任务中心(Control)负责获取任务、调度任务、管理任务。与我们以往单系统的MVC有很大的不同,这是支持多业务的One应用模式。这样应用的好处是可以即插即用、迭代演进。例如OA应用中把会议室管理模块做好了插进去,用户再登录时就可以使用了。这种SOA的应用模式通过模块化、松耦合、可组装、可配置给我们带来了更好的用户体验和更为灵活高效的应用建设方式。
业务导向的客户定制,这是第二种SOA的应用模式。大家都知道,软件很难适应变化,一旦要改就要从需求开始,设计、开发、上线、部署等等,冗长的过程。因此我们希望我们的软件对于同样一个版本,对于不同的客户可以更加灵活的定制和个性化。我们会发现,在我们的应用系统中流程、规则、表单都会经常变,而调整的周期又太长。业务导向的客户定制,使得你在做业务设计的时候,流程设计的时候,你的业务人员跟IT人员就是在一起,大家有共同的语言、共同的理解。并且可以通过这样一种定制的手段、方法、工具来帮助我们实现客户化的工作,并可实现基于底层的服务快速编排。我们的某一个省的应用系统可能需要部署到不同地市。同类业务在不同的地市就会有不同的流程,类似电信业的‘服务开通’业务,在不同的地市就有不同的开通流程,我们就需要为不同地市的客户快速地定制,即时上线,从而达到软件的快速响应业务需求和持续优化。
基于服务的业务交付,这是第三种SOA的应用模式。目前的电信和银行业务都越来越走向融合的道路。电信更多需要把自身的各种能力(短信、彩信)互通和融合,也要把互联网上的SP/CP的服务互通和融合,并自身不断快速交付和支持SP/CP不断快速交付新的服务。当我在淘宝上购买Nikon D90,到下完单后支付时,就会用到银行提供的支付服务。很难想象在我要付钱时,一下子弹出个招商银行对私系统,我将无所适从。其实在淘宝上购物时,我最后需要的是银行提供的支付服务。可以看到我们企业的业务都在走向基于服务的交付模式,而不再仅仅是一种完整应用系统的交付方式。在这样的一种需求背景下,我们需要有相应的服务构造环境(SCE)和服务的运行环境(SEE)来实现这样的一种SOA应用模式。这种模式实现了企业的快速整合资源,这个资源可以来自于企业内部,也可能来自于企业的合作伙伴和上游供应商等。企业的差异化竞争优势就体现在是否能够快速地整合外围资源,应用于其核心业务,并通过核心业务来满足客户的偏好。我们看到这样一个SCE和SEE的环境,把我们企业里面已有的资源进行重新的组合,也可以把外界的资源进行组合和快速编制,形成一个增值的新业务服务。在这方面电信的SDP(Service Delivery Platform)这样一个应用领域已经走在了SOA应用的前面。相信其他的行业也会快速跟上。
软件即服务,这是第四种SOA的应用模式。随着应用的越来越广泛,我们希望企业的计算资源和应用资源,都能够更好地被集约化使用。在《福布斯》2月份的报导中提到过,企业计算环境正在进行下一场的技术大战,这场战争是什么呢?就是我们谁有能力在SOA的体系架构下,能够让客户更好的去定制个性化,实现软件即服务的模式和利用云计算的能力,谁就将在企业计算平台领域胜出。当然现在很多企业还没有走到这一步,我们需要去把握关注这样技术发展的潮流。
如上的SOA应用模式实则对于企业的计算架构提出了新的要求。当我们指望应用能够即插即用和迭代演进,当我们指望应用能够基于服务可交付和可消费,当我们指望应用能够灵活定制,当我们指望应用能够有更好的用户体验。这些对于应用的期望和需求就自然产生了对于企业计算架构的要求,这也正是Gartner在分析报告中指出的SOA所要承接的五个技术特征:模块化、松耦合、可共享和复用、分布式部署和Document风格的接口。这些先进的SOA技术架构和SOA应用模式都可以通过普元软件最新发布的两款平台EOS 6.0和BPS 6.0来帮助实现。
我们可以看得到,SOA已不再那么复杂,已不再那么遥远。2007年的1月苹果公司发布了他们第一款iPhone的时候,真正把手机用户的体验和效率推向了一个新的里程碑。同样我们可以看到,SOA通过三种先进的应用模式‘即插即用的One应用’、‘业务导向的客户定制’和‘基于服务的业务交付’,把企业应用的体验、效率、灵活性和可靠性推向了一个新的里程碑。我们期待将会看到更多‘One工商银行’的出现,我们会看到更多符合客户需要的定制应用的出现,我们会看到更多企业能够更易整合资源快速交付业务服务,我们会看到更多企业能够用好SOA,融入到社会计算的浪潮中。