SOA技术发轫之初

日期: 2010-01-12 来源:TechTarget中国 英文

    SOA(Software-Oriented Architecture),即面向服务架构。软件架构(Software Architecture,或软件体系结构),描述了软件系统的蓝图,即,构成一个程序或系统的构件的结构,构件间的互连,以及管理构件的设计和演化的原则和指导。从技术上看,SOA代表了一种开放的、可扩展的、可联邦的、可组合的设计范型,是软件构件技术在分布计算环境的自然延伸。SOA的基础设施是已有中间件平台的演化和发展,保留了传统架构的成功特征。

  简言之,SOA是一种遵循面向服务原则指导的软件体系结构。

  作为20世纪末最伟大的技术进步,Internet的发展和普及为人们提供了一种全球范围的信息基础设施,形成了一个资源丰富的计算平台,而以分布计算为代表的软件技术的发展和变革,正在深刻地影响着人类社会生活和工作的方式。以Internet为主干,各类局域网(有线网和无线网)为局部设施,再加上各种信息处理设备和嵌入设备作为终端,构成了人类社会的虚拟映像,成为人们学习、生活和工作的必备环境。进入21世纪后,Internet平台得到进一步的快速发展与广泛应用,各种信息资源(计算资源、数据资源、软件资源、服务资源)呈指数级增长。目前,三网合一和宽带接入等技术的发展,进一步促进了Internet的增长,Internet产业正在成为全球最大的产业。在开放、动态的Internet环境下,实现灵活的、可信的、协同的信息资源共享和利用已经成为信息化社会的重大需求。近年来,基于服务概念的资源封装和抽象逐渐成为资源发布、共享和应用协同的重要技术基础,由此产生了一种新的IT架构组织模式—SOA。

  下文从软件技术的角度阐释SOA出现并流行的原因:

图 1 软件技术发展

图 1 软件技术发展

  SOA的出现和流行,是软件技术(特别是分布计算技术)发展到一定阶段的自然产物。软件技术的发展,遵循着自身的规律,驱动软件技术不断向前发展的核心动因之一是复杂性控制。如图 1所示,回顾软件技术的发展历史,构成软件系统的基本元素—软件实体经历了从语句、函数、过程、模块、抽象数据类型、对象、构件等多个阶段。在软件技术的发展过程中,软件实体的主要发展趋势是主体化,即内容的自包含性、结构的独立性和实体的适应性。每一种新兴的软件技术的出现,都是为了应对当时最为紧要的某些复杂性控制问题,从而更好地去适应日益开放的开发与应用环境对软件的需求。

  20世纪80年代以来,面向对象的方法获得了巨大成功。当面向对象的方法应用于大规模工业化软件生产环境时,出现了基于构件的软件开发方法(Component Based Software Development, CBSD),力求通过组装预先定制好的软件构件来构造应用系统,从而有效地支持软件复用,CBSD体现了“购买而不是从新构造”的哲学。在构件技术逐步成熟的基础上,由于人们对更大粒度软件复用和更灵活软件互操作所带来的业务敏捷性的高度关注,又导致了SOA的出现。作为SOA中最为核心的概念,服务是软件构件在开放、动态、多变的Internet环境下的一种自然扩展和延伸,它作为应用开发基本单元,能够快速、便捷、低耗地开发和组装应用系统,并有效地解决在分布、异构的环境中数据、应用和系统集成的问题。

    简言之,SOA是伴随着Internet以及分布计算技术的飞速发展而兴起的,是软件构件技术的直接后继阶段,属于整个软件技术一脉相承的技术体系,仍然遵循着软件技术发展的内在规律并为之所驱动。

   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 分布计算技术的发展

图 2 分布计算技术的发展

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 购买应用集成工具可以采取平衡做法

    购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。