SOA技术起源及发展简史
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SOA技术起源及发展简史
SOA(Software-Oriented Architecture),即面向服务架构。软件架构(Software Architecture,或软件体系结构),描述了软件系统的蓝图,即,构成一个程序或系统的构件的结构,构件间的互连,以及管理构件的设计和演化的原则和指导。从技术上看,SOA代表了一种开放的、可扩展的、可联邦的、可组合的设计范型,是软件构件技术在分布计算环境的自然延伸。SOA的基础设施是已有中间件平台的演化和发展,保留了传统架构的成功特征。
简言之,SOA是一种遵循面向服务原则指导的软件体系结构。
SOA的技术体系和初衷
作为20世纪末最伟大的技术进步,Internet的发展和普及为人们提供了一种全球范围的信息基础设施,形成了一个资源丰富的计算平台,而以分布计算为代表的软件技术的发展和变革,正在深刻地影响着人类社会生活和工作的方式。以Internet为主干,各类局域网(有线网和无线网)为局部设施,再加上各种信息处理设备和嵌入设备作为终端,构成了人类社会的虚拟映像,成为人们学习、生活和工作的必备环境。进入21世纪后,Internet平台得到进一步的快速发展与广泛应用,各种信息资源(计算资源、数据资源、软件资源、服务资源)呈指数级增长。目前,三网合一和宽带接入等技术的发展,进一步促进了Internet 的增长,Internet产业正在成为全球最大的产业。在开放、动态的Internet环境下,实现灵活的、可信的、协同的信息资源共享和利用已经成为信息化社会的重大需求。近年来,基于服务概念的资源封装和抽象逐渐成为资源发布、共享和应用协同的重要技术基础,由此产生了一种新的IT架构组织模式---SOA。
下文从软件技术的角度阐释SOA出现并流行的原因:
图 1 软件技术发展
SOA的出现和流行,是软件技术(特别是分布计算技术)发展到一定阶段的自然产物。软件技术的发展,遵循着自身的规律,驱动软件技术不断向前发展的核心动因之一是复杂性控制。如图 1所示,回顾软件技术的发展历史,构成软件系统的基本元素---软件实体经历了从语句、函数、过程、模块、抽象数据类型、对象、构件等多个阶段。在软件技术的发展过程中,软件实体的主要发展趋势是主体化,即内容的自包含性、结构的独立性和实体的适应性。每一种新兴的软件技术的出现,都是为了应对当时最为紧要的某些复杂性控制问题,从而更好地去适应日益开放的开发与应用环境对软件的需求。
20世纪80年代以来,面向对象的方法获得了巨大成功。当面向对象的方法应用于大规模工业化软件生产环境时,出现了基于构件的软件开发方法(Component Based Software Development, CBSD),力求通过组装预先定制好的软件构件来构造应用系统,从而有效地支持软件复用,CBSD体现了“购买而不是从新构造”的哲学。在构件技术逐步成熟的基础上,由于人们对更大粒度软件复用和更灵活软件互操作所带来的业务敏捷性的高度关注,又导致了SOA的出现。作为SOA中最为核心的概念,服务是软件构件在开放、动态、多变的Internet环境下的一种自然扩展和延伸,它作为应用开发基本单元,能够快速、便捷、低耗地开发和组装应用系统,并有效地解决在分布、异构的环境中数据、应用和系统集成的问题。
简言之,SOA是伴随着Internet以及分布计算技术的飞速发展而兴起的,是软件构件技术的直接后继阶段,属于整个软件技术一脉相承的技术体系,仍然遵循着软件技术发展的内在规律并为之所驱动。
SOA发展简史
SOA的理念最初由全球最具权威的IT研究与顾问咨询公司Gartner于1996年提出,当时的定义是:“A service-oriented architecture is a style of multitier computing that helps organizations share logic and data among multiple applications and usage modes.”。但由于当时的技术水平和市场环境尚不具备真正实施SOA的条件,SOA并未引起人们的真正关注,因此在接下来相当长一段时间内归于沉寂。进入21世纪之后,Internet风起云涌,越来越多的企业将业务转移到互联网领域,带动了电子商务的蓬勃发展。为了能够将公司业务打包成独立的、具有强大伸缩性的可跨越Internet访问的服务,人们提出了Web服务的概念,这是SOA实践的真正发端。
2002年12月,Gartner指出SOA是“现代应用开发领域最重要的课题”。2005年,一些IT组织成功建立并实施SOA应用软件,不少IT厂商看到其价值,也纷纷推出自己的SOA解决方案和产品。Gartner当时预测:到2007年,SOA将成为全球公司的主流,到2008年,SOA将成为占有绝对优势的软件工程实践方法,SOA将结束传统软件体系结构长达40年的统治地位,将有60%的商业公司在进行商业IT建设时会转向SOA。IDC预测到 2007年,包括软件、服务和硬件在内的SOA市场将达到210亿美元,其中商业企业方面的市场将达到120亿美元。
Gartner认为,新兴软件技术的发展过程,一般要经历“启动阶段”、“被夸大的预期峰值”、“幻灭的低谷”、“启蒙的斜坡”和“生产力平原”等几个阶段。1996年,SOA首次被提出时,正值CORBA技术的启动阶段;而当1999年,CORBA 进入幻灭的低谷阶段时,J2EE开始启动,并迅速在企业计算方面得到大规模的普及和流行;2002年,当人们发现J2EE也并非预期中的银弹时,Web服务终于走上了历史的舞台;2005年,SOA的概念炒作达到了顶峰;而在2006年,SOA 走入低谷,这意味着人们开始对SOA进行更加理性的思考;进入2008年,SOA 开始从Gartner的技术成熟度曲线中的“幻灭的低谷”走向“启蒙的斜坡”乃至“生产力平原”阶段,这意味着SOA已经走出了炒作,进入更加务实的落地阶段。
回顾这些曾经各领风骚的分布计算技术,如图 2所示,CORBA曾想凭借“软总线+软构件”的理念一统江湖,但其生不逢时,当时的技术和市场缺乏这种超前的需求,人们热衷的是方兴未艾的企业计算。接踵而来的J2EE吸取了CORBA的教训,以一种非常务实的姿态,将自己定位于企业计算,提出了著名的三(N)层结构的概念,并取得了极大成功,成为主流的分布计算技术;稍后,微软也推出了自己的分布式企业计算平台.Net。之后登场的Web服务则是当今最为流行的SOA架构实现技术,它是在企业完成了信息化建设之后,需要彼此通过Internet 进行更深入协作的背景下产生的,它更加关注在应用层面上互操作问题的解决。需要指出的是,Web服务仅仅是开启了SOA实践的大门,在开放、动态、多变的Internet环境下,基于SOA架构理念,实现企业间高效、灵活、可信、协同的服务资源共享和利用,仍需要更多的相关技术、规范、标准以及最佳实践的支持。
图 2 分布计算技术的发展