地址:中国深圳市高新区南区金蝶软件园B栋5楼邮编:518057电话:0755-26612299技术支持热线:0755-86072008,86072009传真:0755-86072300网址:开源社区:金蝶中间件有限公司业务咨询服务热线:4008-830-830实践SOA,让架构落地——金蝶ReadySOA解决方案CONTENT目录信息化发展面临的挑战信息化发展趋势:SOASOA基本概念理解SOA的技术体系SOA发展简史SOA技术本质SOA小结实践SOA,让架构落地建设SOA的困惑ReadySOA方法论法门何在:架构ReadySOA架构方法ReadySOA支撑平台基础设施服务企业服务总线开发服务管理服务交互服务流程服务信息服务业务应用服务伙伴服务接入服务关于金蝶中间件010202030304070808080810192020212325262626272728金蝶中间件Apusic系列产品遵循JCP(JavaCommunityProcess)及TheOpenGroup等国际标准组织制订的相关标准与规范。金蝶中间件Apusic系列产品及解决方案部分内容源自与北京大学信息科学技术学院的共同研究成果。作为20世纪末最伟大的技术进步,Internet的发展和普及为人们提供了一种全球范围的信息基础设施,形成了一个资源丰富的计算平台,而以分布计算为代表的软件技术的发展和变革,正在深刻地影响着人类社会生活和工作的方式。在开放、动态、多变的Internet环境下,实现灵活的、可信的、协同的信息资源共享和利用,已经成为信息化社会的重大需求。近年来,基于服务概念的资源封装和抽象逐渐成为资源发布、共享和应用协同的重要技术基础,由此产生了一种新的IT架构风格---SOA(Software-OrientedArchitecture)。SOA,即面向服务架构。软件架构(SoftwareArchitecture,或软件体系结构),描述了软件系统的蓝图,即,构成一个程序或系统的构件的结构,构件间的互连,以及管理构件的设计和演化的原则与指导。从技术上看,SOA代表了一种开放的、可扩展的、可联邦的、可组合的设计范型,是软件构件技术在分布计算环境的自然延伸。SOA的基础设施是已有中间件平台的演化和发展,保留了传统架构的成功特征。SOA基本概念理解简言之,SOA是一种遵循面向服务原则指导的软件体系结构。0102挑战一:不是没有系统,而是遗留系统太多挑战二:信息爆炸,数据异构,难以整合挑战三:业务跨Internet运作,技术异构,难以协同挑战四:业务变化快,僵化的IT基础设施难以迅速响应由于历史的技术水平以及资金投入等多方面的差异,组织信息化建设是不平衡的,大部分组织没有完善的IT架构体系,更没有规范的IT战略与规划,各个单位及部门应用的系统之间相互独立,系统的基础平台、技术架构、操作方式也不尽相同,使得系统维护困难,运营支撑能力下滑,整体IT战略价值难以有效的体现。如何利用好遗留系统,并使新开发和建立的系统不再出现新的信息孤岛,是我们必须面对和需要解决的问题。由于各个单位独立地进行应用系统部署,造成业务数据相互分散,导致信息之间缺乏关联性,数据语法和语义的一致性难以保证,数据的严重异构性最终导致信息整合困难重重。如何应对组织间跨Internet交换数据的异构性是目前信息集成面临的重大技术难题。随着Internet的飞速发展,Web成为大规模分布式业务构建的统一计算环境,组织业务协作的范围已经从组织内部的Intranet走向基于极端开放、动态的Internet的组织间的按需协同。问题在于,Internet前所未有的分布和开放的特性,意味着其软件的模型、互操作框架、通信协议等多个方面呈现出显著的多样性和差异性,这样的技术异构性无疑为跨Internet的组织间或部门间的业务协作和应用集成带来了巨大的技术挑战,并亟待解决。个性化、多样化是当今多元化社会用户的不断追求,但是现有的IT基础设施还缺乏足够的弹性以迅速适应新的业务需求。当网络计算环境由相对稳定封闭的Intranet演变为极端开放动态的Internet时,传统的中间件技术开始暴露出耦合紧密、复用粒度过小、环境依赖、缺乏灵活组合和编排能力低下等诸多的局限性,最终导致新业务难以收获预期的效益。于是,改善IT架构基础设施的业务敏捷性,缩短新产品、新服务的研发和上市时间,降低软件系统开发和维护的成本,就成了企业与政府信息化建设的当务之急。信息化发展面临的挑战实践SOA,让架构落地信息化发展趋势:SOA(服务消费者)(服务)(服务)(服务提供者)0304实践SOA,让架构落地SOA的技术体系SOA发展简史SOA的出现和流行,是软件技术(特别是分布计算技术)发展到一定阶段的自然产物。软件技术的发展,遵循着自身的规律,驱动软件技术不断向前发展的核心动因之一是复杂性控制。如上图所示,回顾软件技术的发展历史,构成软件系统的基本元素---软件实体经历了从语句、函数、过程、模块、抽象数据类型、对象、构件等多个阶段。在软件技术的发展过程中,软件实体的主要发展趋势是主体化,即内容的自包含性、结构的独立性和实体的适应性。20世纪80年代以来,面向对象的方法获得了巨大成功。当面向对象的方法应用于大规模工业化软件生产环境时,出现了基于构件的软件开发方法(ComponentBasedSoftwareDevelopment,CBSD),力求通过组装预先定制好的软件构件来构造应用系统,从而有效地支持软件复用,CBSD体现了“购买而不是从新构造”的哲学。在构件技术逐步成熟的基础上,由于人们对更大粒度软件复用和更灵活软件互操作所带来的业务敏捷性的高度关注,导致了SOA的出现。作为SOA中最为核心的概念,服务是软件构件在开放、动态、多变的Internet环境下的一种自然扩展和延伸,它作为应用开发基本单元,能够快速、便捷、低耗地开发和组装应用系统,并有效地解决在分布、异构的环境中数据、应用和系统集成的问题。简言之,SOA是伴随着Internet以及分布计算技术的飞速发展而兴起的,是软件构件技术的直接后继阶段,属于整个软件技术一脉相承的技术体系,仍然遵循着软件技术发展的内在规律并为之所驱动。SOA的理念最初由全球最具权威的IT研究与顾问咨询公司Gartner于1996年提出。进入21世纪之后,Internet风起云涌,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司业务打包成独立的、具有强大伸缩性的可跨越Internet访问的服务,人们提出了Web服务的概念,这是SOA实践的真正发端。Gartner认为,新兴软件技术的发展过程,一般要经历“启动阶段”、“被夸大的预期峰值”、“幻灭的低谷”、“启蒙的斜坡”和“生产力平原”等几个阶段。1996年,SOA首次被提出时,正值CORBA技术的蓬勃兴起阶段;而当1999年,CORBA进入幻灭的低谷阶段时,J2EE开始启动,并迅速在企业计算方面得到大规模的普及和流行;2002年,当人们发现J2EE也并非预期中的银弹时,Web服务终于走上了历史的舞台;2005年,SOA的概念炒作达到了顶峰;而在2006年,SOA走入低谷,这意味着人们开始对SOA进行更加理性的思考;进入2008年,SOA开始从Gartner的技术成熟度曲线中的“幻灭的低谷”走向“启蒙的斜坡”乃至“生产力平原”阶段,这意味着SOA已经走出了炒作,进入更加务实的落地阶段。回顾这些曾经各领风骚的分布计算技术,如右图所示,CORBA曾想凭借“软总线+软构件”的理念一统江湖,但其生不逢时,当时的技术和市场缺乏这种超前的需求,人们热衷的是方兴未艾的企业计算。接踵而来的J2EE吸取了CORBA的教训,以一种非常务实的姿态,将自己定位于企业计算,提出了著名的三(N)层结构的概念,并取得了极大成功,成为主流的分布计算技术;稍后,微软也推出了自己的分布式企业计算平台.Net。之后登场的Web服务则是当今最为流行的SOA架构实现技术,它是在企业完成了信息化建设之后,需要彼此通过Internet进行更深入协作的背景下产生的,它更加关注在应用层面上互操作问题的解决。需要指出的是,Web服务仅仅是开启了SOA实践的大门,在开放、动态、多变的Internet环境下,基于SOA架构理念,实现企业间高效、灵活、可信、协同的服务资源共享和利用,仍需要更多的相关技术、规范、标准以及最佳实践的支持。0506实践SOA,让架构落地一个中心两个基本点一个中心,即“以改善组织的业务敏捷性为中心”,这是SOA的初衷,是其终极价值追求,是实践SOA的一切行动的根本出发点。为什么要以“业务敏捷性”为中心?在当今社会的信息化建设过程中,组织最根本的痛点究竟在哪里呢?其实就在于易变的业务和难变的IT架构之间日益增长的矛盾。而业务的易变性,对企业而言,正是其试图通过业务差异化而谋求利益最大化的必然结果,是激烈的市场竞争的产物;对政府而言,则常常是政策和计划变动的结果。问题在于,组织常常发现,业务改变了,但是相应的IT基础设施却不能迅速地响应,导致新业务难以收获预期的效益。于是,改善IT架构基础设施的业务敏捷性,提高组织的工作效率,将组织的业务战略及时转变为可执行的业务流程,缩短新产品、新服务的研发和上市时间,降低生产运营成本,就成了组织的当务之急。因此,SOA将自身的价值追求定位于改善组织的业务敏捷性,“一个中心”是SOA价值的集中体现。为什么传统的IT基础架构难以及时跟进企业业务的频繁变动?根本原因就在于目前最重要的软件开发和集成技术:软件复用和软件互操作存在着严重的问题,它们是导致企业业务敏捷性达不到预期目标的真实原因,因而也就成了SOA实践的目标对象。软件复用是指重复使用“为了复用目的而设计的软件”的过程,它是解决“软件危机”的有效途径。软件构件技术则是软件复用的核心与关键。当前软件复用技术的问题在于:构件技术由面向对象技术发展而来,提供的是一种较为细粒度的可复用构件,而缺乏封装粒度的弹性,因此该类型构件对复杂业务的封装效果不好,可复用的仍是分散的业务片段,完整的业务复用则需要充分了解复杂的业务规则,从而导致业务人员在构件灵活组装时面临相当大的困难;其次,构件的运行支撑,严重依赖其被部署的受控环境,而不同的构件实现和运行支撑技术之间存在着相当大的异构性,异构技术实现的构件之间缺乏直接组装式复用的能力;第三,系统各个功能模块紧密耦合,彼此缺乏独立性,因而也严重制约了便捷复用的能力。软件互操作描述的是软件系统之间的交互行为,即不同的软件系统之间共享信息或依据所共享的信息而做出行为的能力。Internet的飞速发展以及分布计算的流行,使得互操作技术已成为(异构)软件系统间集成时必需的关键性技术。当前软件互操作技术的问题在于:曾经在Intranet领域取得巨大成功的传统中间件在Internet环境中已暴露出了严重局限性,Internet前所未有的开放性意味着各个节点可能采用不同的中间件技术,它们各行其道,对技术细节进行了过多的私有化约束,而构件模型和架构也没有统一的标准,从而导致中间件平台自身呈现出相当大的异构性,具体表现为构件的描述、发布、查找、调用、互操作协议及数据传输等方面的多样性和差异性。此外,基于传统中间件进行互操作的软件系统之间也存在着一些紧密耦合的关系,难以扩展、缺乏灵活性。这些不良技术约束的结果使跨Internet进行交互变得困难重重,举步维艰,从而最终导致了跨企业、跨部门之间的业务集成和重组难以灵活快速的进行。简言之,必须针对性地解决好软件复用技术和互操作技术存在的问题,才能有效地提高IT基础设施对应用系统的灵活支撑能力,实现改善业务敏捷性的根本目标。通过以上对两个基本点所存在问题的分析,可以发现,现有的IT基础设施难以应对业务变化的主要问题可以归结为传统分布计算和中间件技术在软件开发和集成方面存在着封装粒度过小、耦合紧密以及标准不统一的问题。针对该问题,SOA提出了