近期,越来越多的IT人士提及
SOA,那么,SOA到底是什么呢?一个概念?一种产品?一套方法论?一种新的技术?
全球著名的第三方评测机构GARTNER GROUP曾说:“系统采用SOA,变革将更加灵活”。SOA三个字母是英文Service Oriented Architecture 的首字母简称,翻译成中文,即为“以服务为核心的架构体系”或译为“面向服务的架构体系”。在SOA中,这个“S”即服务,是整个SOA的关键所在。那么,我们便从最基础处为SOA作出明确的定义:
服务。广义上讲,服务的涵义相当宽泛,我们在生活中碰到的任何非自己一方可完成的事件,都可称之为服务。比如,在报亭买份报纸,这个是报商对读报者的服务;在
银行新开一个帐户,便是银行对开户者的服务。在SOA中,我们对服务有一定的限制,那就是“一项可重复的业务动作”;我们将这个可重复的部分封装成IT架构中的一个服务单元;所以,SOA便可定义为:“一种支持将业务动作整合为服务工作流的IT架构”。读者们此时便可清晰的理解,SOA是一个纯粹意义上的IT架构,是一种具有技术可实现性的IT方式;而服务是和业务紧密相关的,具有可重复操作性,但不仅局限于IT的可供组合的单元。
正是由于SOA在概念上的对IT及业务的兼顾性,使得SOA从出生的第一天,就不仅是一个IT工具,而与生俱来的具有了对业务的灵活性和适应性。在图1中,我们展现出一个SOA架构的基本技术组成部分。
在SOA的基础架构中,最核心的部分是企业服务总线(Enterprise Service Bus)。它是SOA架构之所以灵活善用的灵魂所在,它就像一条信息高速公路,将整个系统中的各种信息穿接在一起,并采用多点直连各服务单元(也可为各细分应用或应用系统),将信息在整个系统内高速的传递。我们把SOA架构上需要连接进入企业总线进行信息交换的“服务”概括为7大类:门户服务,SOAP请求服务,B2B互动服务,流程服务,数据服务,现有应用服务以及新的服务逻辑。对每大类的具体定义相信各位同行均有共识,在此就不再赘述了。
那么,在理解了SOA的基础架构后,相信各位同仁就很容易理解SOA架构给IT系统带来了哪些变革性的好处。SOA系统将所有的应用模块或功能设计成一个个功能组件(Components )或服务(Service),服务模块之间和功能组件之间采用松耦合和更加容易定义的方式进行集成,从而改善了应用的柔性化和可重用性。见图二所示:
图 2
在开发方面,SOA也会有变繁为简,节约时间,提高劳动生产率的奇效。首先,在行业的主流SOA平台上做开发,对开发商的开发方式就做出了规范,均应使用国际标准的语言,国际标准协议以及被广泛认可的接口命令作为开发基础,这种方式本身就可有效的规避一些中小开发商在程序编写或者一些逻辑模型建立上的不规范性。其次,在可重用性比较高的或者变更概率比较大的IT环境中,SOA又具有快速更改,快速部署,快速产生效益的功用。下面我们看一个典型的运用SOA提高生产效率的例子:
中远集运(COSCON)是我国的一家大型物流集团,以远洋集装箱货轮运输为主业。中远集运拥有一支强大的IT开发队伍,以适应对不同国家海关的通关程序的开发需求。在国际海运中,货物进入对方国家海关都要经过或繁或简的手续,此手续即为通关手续,中远集运为每一种海关的通关系统制作自己系统的离岸子系统,而在使用SOA之前,各套离岸子系统由于先前没有良好的前瞻性规划,拓扑关系错综复杂,每次修改都有“牵一发而动全身”的风险,这样就造成两个严重后果:
第一,当货物进口国海关通关系统业务规则发生变化时,中远集运对某个离岸子系统的修改就需要花费数以月计的时间,如果对方的业务规则是突然性的变化,则有可能使中远集运的货轮在目的地国海关港外等候十几天或者几十天的时间,严重影响货运班次安排以及交货时间,造成的损失难以估量;
第二,由于各子系统之间关系太过复杂,往往一个微观的局部修改,就会对全局产生重大影响,并且错误难以查判。在使用SOA之后,整体系统的拓扑结构大大简化,并且对每次由于业务规则改变而进行的IT修改可以迅速完成,快速部署而且从原理上不会影响其他子系统的正常运行。这给中远集运带来的收益是无价的。使用SOA之后,通常的一个通关子系统修改由过去的一个月左右的时间缩短为3至5天,这不仅是IT的变革,更是业务的变革;这种变革不仅仅是一个IT架构的提升,更是对核心竞争力以及赢利能力的提升。这也恰如其分的体现出在SOA中,业务和IT的相互联系和相互作用的内在基因。
我们再举一个发生在政府管理方面的典型SOA应用:北京朝阳区城市网格管理。
北京朝阳区是北京城八区中最大的一个区,也是北京市人口最多、总面积最大、同时也是经济总量最大的城区;朝阳区发展迅速、商机汇集涉外资源雄厚。这里既有CBD商区、外交使馆区、还有正在兴建的望京新兴产业区和CBD电子城,同时作为奥运会主场馆所在地,朝阳区成为中国国际交流的窗口,享有“中国第一区”的美誉。
面对面积大、人群复杂且不断发展的城区环境,如何利用信息化的手段解决城市管理中的诸多问题?是摆在朝阳区信息化工作办公室面前的一道严峻命题。从切身需求出发,朝阳区希望,通过一个平台整合多项数字城市技术,建立完整的城市事件处理流程,并通过先进的无线设备实时采集和传输信息,最终建立精确、敏捷、高效、可视化、全方位覆盖的城市管理体系,实现一个动态的城市管理系统。因此,他们决定使用创新的SOA应用框架构建城市网格化管理平台。
下图(图三)为整体架构设计图:
整个系统包括软件系统、硬件系统、信息安全及服务系统、管理咨询服务四大部分内容,分为接入层、应用层、服务层、数据层和硬件层五个层次。
其通过IBM SOA工作流平台实现了城市网格化管理的端到端工作流程。城市网格化管理的工作流程主要包括七个环节,即信息采集、案卷建立、任务派遣、任务处理、处理反馈、核查结案和综合考评。具体程序是:每个社区由1名监督员负责,根据城市管理工作手册,对分管区域实行不间断巡视,当发现问题后立即用“无线通”系统发送图文声信息向监督中心报告情况;同时监督中心也可以通过朝阳热线系统获得来自社会公众和媒体的信息;监督中心得到这些信息后,进行甄别、立案,并将相关案卷批转到指挥中心;指挥中心根据问题归属,立即派遣相关的专业部门与公共服务企业到现场进行处理,如果市属部件发生问题,交由市级部门进行处理;专业人员处理完毕后,专业部门要向指挥中心报告处理结果;指挥中心将结果反馈给监督中心;监督中心即派监督员进行现场核查,并收取核查结果,通过对两方面信息核实一致后进行结案,至此一个完整的工作流程结束,在处理过程中,监督员可以通过“无线通”系统随时获知事件处理进展,公众也可以通过朝阳热线了解事件处理情况。整个处理过程将作为评价系统的重要基础数据。其中通过使用WebSphere Process Server核心工作流运行和管理平台,实现43种事件的处理流程;DB2 Content Manager内容管理平台,实现对70个部件信息的存储和管理。其中方案的技术优势在于:
通过Web Services接口实现了与呼叫中心、无线通系统的连接;
建立了一个开放的、基于BPEL标准的强大的工作流支撑平台,支持跨委办局、跨系统的业务流程;
支持多部门人员的协同,包括人员的权限控制,任务分发等,完成了9 类角色,包括城市管理监督员、社会公众、城市管理监督中心、城市管理委员会、各专业部门等的协同,全面提升朝阳区城市管理工作的效率、质量和水平;
基于成熟、开放的企业计算平台——J2EE平台为朝阳区政府构建了一个稳定的、可扩展的、高效的业务平台;
朝阳区城市网格建设同中远集运的共同特点就是SOA的主要特征:
1, 实现了一个平台多个应用;
2, 保持了IT系统对业务规则变化的高度适应性以及紧密联系;
3, 实现了信息资源的横向共享
4, 通过搭建基础综合平台实现了整体成本的节约以及整体效率的提高。
从中远集运和朝阳网格两个案例中已基本可以看到SOA成熟的商业化应用模式,那么,当前市场上SOA产品化的供应商整体格局如何呢?图四为业界知名第三方测评公司Winter Green Research公司对2006年对全球SOA市场的分析。从中我们可以看出,在SOA方面,IBM公司占据了领先的优势(46%的市场份额);BEA,微软分局二,三(分别为13%,10%)。
这也基本反应了当今市场的格局,当今市场的SOA产品和解决方案有三种主流标准和方式:第一种是以IBM为代表的J2EE架构,其优点在于开放的标准,良好的可拓展性,适合大型系统和项目的使用;第二种是以微软为代表的.NET架构,其优点在于快速便捷的部署性,价格低廉,但难以支撑大型系统的使用,相对适合对技术架构要求不高,预算有限的中小用户使用;第三种是以SAP为代表的ERP型SOA,适合已有ERP系统,或准备以ERP作为核心应用的用户使用。
我们在此以市场占有率最高的IBM的SOA为例,具体看一下产品化层面上实现SOA的具体方式。在IBM的SOA方法论中,总结了五个互有内在关联的要素作为SOA架构设计的切入点,这五个要素即为:人员,流程,信息,连接,重用;这看似简单的五个词精辟的勾划出了SOA的内在联系,这五个切入点既是IT的重点,也是业务的重点。在这五个切入点的思想下,IBM设计了SOA基础框架,如下图(图五)所示:
该图是经过IBM公司长期研究总结出的基础架构,该架构也广泛被运用J2EE架构的公司所使用。
其最上面一层是开发服务,基本上由各业务系统的开发商完成,在这个模块里往往是制式的或通用的应用;
第二层是业务创新及优化服务,这个部分通常是由用户及开发商基于具体的客户需求,优化而成,其优化规则可以使用相关的工具软件帮助实现;
再下面是SOA的核心所在,由连接性服务和六个模块构成一个有机的整体,连接性服务主要由企业信息总线实现应用层面的数据交换以完成该功能,主要实现产品有数据交换平台(软件方式)或信息交换机(硬件方式);交互服务主要是一个允许人员,流程进行整合的模块,是一个对外展示的窗口,多用门户类产品实现;流程服务主要是流程组合以及自动开启商业流程,多使用大型的工作流引擎实现;信息服务是联邦式的管理各种不同的信息及内容,主要使用数据库,信息集成工具实现;应用程序信息也就是通常说的访问服务,在现有的应用程序中,进行信息资产的交换,业界主要使用信息适配器实现,也有部分CSS架构用户使用交易中间件实现;业务应用程序主要提供一个可拓展的安全的三层架构中间件环境,业界有多种应用中间件可实现此功能;合作伙伴服务便是自有系统和其他合作伙伴核心业务系统的连接,可以使用合作伙伴网管等产品实现。
最下面是基础结构性管理服务,主要用于优化吞吐量,可用性和可靠性。
综上所述,各位同仁应该对SOA的概念,对开发方式及理念,发展趋势,在中国的一些成功应用有了初步的了解。最后,在本文结束前,我还想和大家分享一下关于SOA应用方面的几点心得:
1,聚焦真正的业务问题,而不是SOA架构本身。SOA的目的和功用是为了真正的适应业务的发展,解决业务的问题,而不是用一种新的IT架构去影响业务,更不能为了建设SOA而建SOA;(当然,为了研究SOA而建设SOA除外)
2,从小规模做起。除非你的企业或部门的IT开发实力已经具备可将整个企业架构IT化,否则我们建议您从一个小的环境或一个小的应用模型开始使用SOA,将一个小型的,明确界定出的系统进行服务单元化的改造,循序渐进,充分利用SOA架构的可成长性。
3,尽量将可创收的应用作为起点。当实施SOA时,不可避免的会遭到IT部门和业务部门或大或小的阻力,这主要是由于人的天性都是不愿意接受改变;那么,我们从一个可创收的应用作为起点就会使整个系统的推进容易很多,在进行SOA设计之后,一个可创收的系统的创收能力有所加强,会使一切对系统改变而带来重新学习和适应的怨言自动消失,您也可以更有信心实施整体的SOA。
4,先培养能力,后实施SOA。在实施SOA之前,对SOA的理解至关重要,建议任何企业和部门在决定实施SOA之前,都认真学习并理解SOA的相关知识,理念及成功的处理经验,这样在SOA化的过程中,才能将SOA的精髓有效的深入到业务之中。
5,将目光置于长远。SOA是一个系统化的过程,理论上便需要用一段时间去逐步完善对人员,流程及信息的整合。无论是从成本投资收益的角度看,还是从自己架构完整性角度看,都需有一个长远的规划。建议该规划可和本单位的业务规划同周期,这样也更好的以IT的方式适应业务的变化。
以上即为笔者对SOA浅薄的认识,还望各位同仁批评指正。
责编:
微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友