APP下载

新一代软件架构SOA应用分析

2009-01-20欧阳艳阶

湖北工业职业技术学院学报 2009年5期
关键词:系统集成

梁 铭 欧阳艳阶

[摘要]本文阐释了SOA的内涵,从企业的角度描述了SOA的应用现状及存在的一些问题。对众多准备实施SOA的IT企业及需要采取SOA实施企业服务架构的大型企业具有一定的指导意义。

[关键词]软件架构;SOA;企业业务流;ESB;系统集成

[中图分类号]TP311.5[文献标识码]A[文章编号]1008-4738(2009)05-0092-03

SOA是1996年Gartner最早提出的一个概念,它的全称Service-Oriented Architectur,即面向服务架构。Gartner在2002年12月提出了“SOA是现代应用开发领域最重要的课题”,并预计“到2008年SOA将成为占有绝对优势的软件工程实践方法,主流企业现在就应该在理解和应用SOA开发技能方面进行投资”[1]。其实BEA、IBM、Microsoft等企业早就看到了它的价值,并已经成功建立并实施SOA应用软件很多年了。中国著名ERP制造商——金蝶中间件有限公司作为全球技术领先的企业基础架构软件公司,它是国内最早一批实施SOA的IT企业。基于SOA成功实施了银川市三农信息数据平台项目,金蝶的Apusic ESB集成中间件成功地作为银川三农信息数据平台的基础平台。

一、SOA的内涵

什么是SOA呢?其实对于任何一个IT厂商而言SOA没有一个完整的定义,只是有一些“松耦合”的标准。SOA就是面向服务的架构,是一种方法论,不是一种技术,也不是一个产品。它是一种思想,一种方法论[2]。要真正理解什么是SOA需从软件开发的技术发展史谈起。软件开发到目前为止共经历了五个阶段:机器语言,汇编语言,面向过程的开发,面向对象的组件开发,面向服务的架构(SOA)开发。

与前面四代的软件开发技术相比, SOA超越了软件开发语言本身,是一种面向服务的架构,与软件开发语言无关。

首先,SOA是一种开发思想,是一种“松耦合”的框架,它可以让软件超越开发语言。

其次,SOA的开发需要SOA体系的支撑,就像J2EE应用一样,离不开应用服务器。SOA也一样,也有一个类似J2EE服务器的东西支持着整个SOA体系架构——ESB(Enterprise Service Bus即企业服务总线)。通过这个总线,将多个系统连接起来。

最后,SOA是基于消息请求响应的一个系统,对请求类型有高度的兼容性。与一个Web应用容器相比,web应用容器只能处理HTTP请求,而SOA的ESB可以接受HTTP、FTP、WebService、JMS等请求。这就使得SOA架构具有高度的兼容性,可以将不同的平台集成到一起,从而相互协调工作。

我们可以从SOA提出的背景来进一步阐述SOA的内涵。SOA作为一种新的软件架构模式,其核心思想是解决IT系统的灵活性和降低IT系统的开发、运营成本。

IT系统必须具有灵活性,有能力接受企业业务进一步增长的挑战,但又不能影响原有业务的增长轨迹。而以前的软件架构难以解决的最大难题之一是技术层难以随着业务层需求的改变而灵活改变。即便改动技术层,这也将是一个代价高昂的过程,因为原有系统中各子系统、各模块之间是一种“紧耦合”结构。这种对原有系统的拆分和重构的工作量和成本是巨大的。这就需要在企业应用新的IT架构时有一种更加灵活的软件系统架构模式。

SOA革命性的思路是在传统的技术层和业务层之间增加一个服务层,服务层通过一套协议或规范把应用程序从底层技术层调出来进行封装,再根据业务需求灵活组合。

SOA的目标在于让IT变得更有弹性,以更快地响应业务单位的需求,实现实时企业(Real-Time Enterprise)[3]。面向服务架构(SOA)是让IT更加关注业务流程而非底层IT基础结构,从而获得具有竞争优势的更高级别的应用程序开发架构。

SOA对需要使用信息技术解决关键业务问题的企业(包括希望减少冗余架构、创建跨客户和员工系统的公共业务接口的企业;需要基于角色和工作流对用户提供个性化信息业务的企业;希望通过Internet实现跨区销售、升级销售和经由移动设备的访问来提升客户服务的组织)很有价值。同时对于IT企业也是一次重要革命。

为什么这么说呢?因为IT企业的现状是不同种类的操作系统,应用软件、系统软件和应用基础结构相互交织,一些现存的应用子系统如ERP、CRM、OA等被用来处理当前的业务流程(Business Processes),因此从头建立一个新的基础环境是不可能的。企业应该能对业务的变化做出快速的反应,利用对现有的应用程序和应用基础结构(Application InfraStructure)的投资来解决新的业务需求,为客户、商业伙伴和供应商提供新的互动渠道,并呈现一个可以支持有机业务(Organic Business)的构架。SOA凭借其“松耦合”的特性,使得企业可以按照模块化的方式来添加新服务或更新现有服务,以解决新的业务需要,提供选择,从而可以通过不同的渠道提供服务,并可以把企业现有的或已有的应用作为服务,从而保护了现有的IT基础建设投资。

SOA的优点主要体现在以下两个方面:

1.从企业用户角度来看。提高效率:将业务流程从"烟囱"状的、重复的流程向维护成本较低的高度利用、共享服务应用转变。高敏捷性:可以迅速适应和传送关键业务服务来满足市场需求,为客户、雇员和合作伙伴提供更高水准的服务。增强适应性:更高效地转入转出降低整个业务的复杂性和难度,从而节约了时间和资金。

2.从IT企业的角度来看。低复杂性:基于标准的兼容性,与点到点的集成相比降低了复杂性。 高可重用性:通过重用以前开发和部署的共享服务,实现了更有效的应用程序、项目开发和交付。 遗留集成:用作可重用服务的遗留应用程序降低了维护和集成的成本。 如今的服务驱动型企业都在体验着开发的高效率,服务的高可靠性和服务的高质量,以最大限度获得业务机会所带来的这些好处。

二、SOA应用及现状

IDC报告预测到2011年,全球有关SOA计划的软件支出将达到140亿美元,受SOA推动的专业服务业务也会增加到408亿美元。EBIZQ的调查发现,SOA正在大企业中获得增长的动力。46%的大企业已经采用了SOA。还有18%的大企业计划在6个月之内采用SOA。大约有18%的大企业计划在一年之内应用SOA。8%的大企业预计在一年之后应用SOA。还有10%的大企业还没有SOA的计划。根据Wintergreen Research最新调查数据显示,IBM作为全球SOA的领导者在SOA市场份额已达64%,比去年提高了11个百分点。迄今为止,IBM在全球已经拥有6 550多家SOA客户和5 000多家SOA业务合作伙伴。

现有的SOA应用标准是WEB Services, WEB Services是SOA目前最好的服务高端方式,XML是目前格式化数据在二维平面的最好表达方式。正是由于近些年来WEB Services和XML这些标准的推出和实施,才使得SOA在企业级的应用得到推广。

SOA发展重点是业务流程管理(BPM)与重复利用的结合。Evans Data公司SOA分析师Joe McKendrick认为“服务的再利用是SOA的最终目标”。 业务流程管理将成为SOA实施的驱动者,那么业务流程管理该怎么实施呢?这就需要建立一个专门的“流程架构”,一般来讲,“流程架构”包括识别用户界面与合作者界面,实现商业目标的关键流程以及通过BPM 和SOA优化程序的整体聚焦。一个流程架构应该从最重要的10到15个商业关键流程着手,以避免流程滞后。

但是我们也应看到,目前国内SOA的应用和预期还是存在差距,造成这种差距的主要原因有多方面的。主要体现在以下两点:

1.认识差距

这种认识上的差距一方面来自IT企业对SOA的应用要么持怀疑态度,要么担心技术本身不完善而无法实施;另一方面有些来自国内大型企业及政府机构还没真正认识到SOA对企业业务的灵活性适应度有多大,对企业核心竞争力的影响有多大。目前,国内的许多政府机构和大型企业基本解决了对SOA的价值及重要性的认知问题,开始从概念认知、局部业务尝试到准备大规模应用阶段。但是,如何基于国内的SOA需求环境让SOA真正落实,如何在各行业构建满足SOA特征的应用成为目前我国软件企业与服务供应商面临的一大难题。 只有SOA的应用模式被深刻理解,SOA应用推广工作之路才会顺畅。

企业SOA有利用信息资源目录梳理业务活动和业务对象的应用模式,以及建立业务主题库的应用模式两类。前者主要用于梳理业务以支撑基于SOA的应用; 后者则主要是阐述如何建立业务领域的主题库,基于这种应用模式可以建立多层次、分布式应用系统的基础库[4]。

2.SOA本身存在的缺陷

一方面是管理缺陷。近来国外的一系列SOA实施案例表明,曾经备受肯定的SOA架构正暴露出其架构的固有缺陷。当基于SOA的服务管理达到一定深度时,目前的SOA管理策略在服务故障的追根溯源方面力不从心,由于SOA架构拥有太多处于移动状态的组件,所以,想要找到服务故障发生的根本原因并不是一件容易的事情,更何况与此同时SOA还是一个由多个相互关联的层组成的架构,这更增添了查错的难度。这就势必对整个SOA架构和管理理念都提出了严峻的挑战。目前大多数SOA管理工具都无法很好地处理这种问题。所以开发出更具可管理性的SOA管理工具对每个IT企业来讲是一个艰巨的任务。BPM工具必须具备锁定深层次服务管理问题的能力,同时也允许商业人士无需深入了解技术,就能规定流程将如何执行以及采用何种服务。

另一方面SOA安全性不可小视。SOA架构是一种开放式的架构。SOA使企业能够将自身业务打包提供给客户和合作伙伴使用,推动了电子商务的发展。同时,企业还承担了公开(或有限开放)所带来的一系列管理、安全和法律方面的风险。面向服务架构(SOA)也将安全的挑战带向了更高的层次。一个SOA架构设计是为了更灵活、更快捷的业务流程,但在没有恰当管理的情况下创建服务可能迅速地失去控制。

SOA取得成功的关键是安全第一。SOA安全装置代表公司SOA方案的一个重要因素。SOA安全装置是易于安装的硬件设备,可以通过扮演内部以及外部网关的角色简化、保护并加速公司XML和Web服务配置。它们是集SOA管理和安全功能于一身的单一装置。这种装置必须具有以下特性:(1) SOA安全装置能够阻止未经授权的访问和企图,破坏数据完整性或用户保密性的访问,对实际软件和系统的袭击或服务的拒绝。(2) 提供集中的Web服务管理和监控。一个装置能在加强SOA架构整体性的同时保证只有经过授权的用户才能访问存贮器。(3)降低开发成本。将重心从实施SOA服务向单纯开发运营能力转变,你就能降低开发成本。(4) 加速SOA部署。通过迅速地向经过授权的第三方公开安全服务,装置将促使业务部门能够迅速地发现新的机遇。(5)主动识别潜在威胁。SOA装置能够迅速地检查流入信息,即时验证和授权,在无效请求进入末端服务器之前将之拦在门外。(6)安全装置通过简化和管理访问服务器以及Web服务存储器请求支持SOA治理。

作为IT基础架构发展趋势,SOA不再是技术范畴的概念,而是一种商业战略。随着中国经济的持续增长,服务型经济的快速发展,构建以解决业务问题为中心的IT系统,弥合业务与IT之间的鸿沟,全面帮助企业充分利用现有IT资产、提高效率、降低成本、进而实现业务敏捷性与业务模式创新,以此逐渐成为企业发展的驱动力。IT对业务策略实施的全面支持将真正实现企业的业务灵活性、成就企业的核心竞争力。SOA则成为企业公认的创造业务灵活性的最重要方式之一。

[参考文献]

[1]孙亚婷. 2007管理创新信息化十大热点之八[R] .E-work ,2008:1.

[2]Eric Newcomer .Understanding SOA with Web Services[M].NJ :Addison-Wesley,2005:43.

[3]罗洪泽.SOA到底给企业带来了什么[EB/OL] .(2008-06-19) http://smallbizit.ctocio.com.cn/software/451/8180951_1.shtml.

[4]崔有智.企业应用SOA最常见的5种模式[EB/OL] .(2008-4-24) http://www.topoint.com.cn/html/article/2008/04/208319.html.

猜你喜欢

系统集成
加氢站与调压站能源供应系统集成技术及应用
试析汽车产业智能制造中的信息化系统集成
工业企业系统集成技术 系统集成技术与信息化集成系统(下)
“系统集成”式的改革
车牌识别与视频监控系统集成探讨
全舰计算环境体系结构和系统集成框架