SOA技术起源及发展简史
- 格式:doc
- 大小:48.00 KB
- 文档页数:3
学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点关注微软在SOA领域的相关指导和.NET社区的相关开源的解决方案,和大家一起来探讨如何在企业里实现SOA,期望有实施SOA经验的同学发表意见。
一、SOA的历史1996年,Gartner最早提出SOA。
2002年12月,Gartner提出SOA是"现代应用开发领域最重要的课题",SOA并不是一个新事物,IT组织已经成功建立并实施SOA应用软件很多年了,BEA、IBM、等厂商看到了它的价值,纷纷跟进。
SOA 的目标在于让IT变得更有弹性,以更快地响应业务单位的需求,实现实时企业(Real-Time Enterprise,这是Gartner为SOA描述的愿景目标)。
而BEA的CIO Rhonda早在2001年6月就提出要将BEA的IT基础架构转变为SOA,并且从对整个企业架构的控制能力、提升开发效率、加快开发速度、降低在客户化和人员技能的投入等方面取得了不错的成绩。
SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范。
这个定义决定了SOA的广泛性。
SOA要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。
SOA要求开发者超越应用软件来思考,并考虑复用现有的服务,或者检查如何让服务被重复利用。
SOA鼓励使用可替代的技术和方法(例如消息机制),通过把服务联系在一起而非编写新代码来构架应用。
经过适当构架后,这种消息机制的应用允许公司仅通过调整原有服务模式而非被迫进行大规模新的应用代码的开发,使得在商业环境许可的时间内对变化的市场条件做出快速的响应。
SOA也不仅仅是一种开发的方法论--它还包含管理。
例如,应用SOA后,管理者可以方便的管理这些搭建在服务平台上的企业应用,而不是管理单一的应用模块。
其原理是,通过分析服务之间的相互调用,SOA使得公司管理人员方便的拿到什么时候、什么原因、哪些商业逻辑被执行的数据信息,这样就帮助了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。
soa到微服务架构的演进过程SOA(Service-Oriented Architecture,面向服务的架构)是一种软件架构风格,将应用程序的功能模块化为可重用的服务,并通过网络进行通信。
而微服务架构则是一种更加细粒度的架构风格,将应用程序拆分为一组小型、自治的服务,每个服务都可以独立部署、扩展和维护。
随着互联网的快速发展,传统的SOA架构在某些场景下已经无法满足需求。
SOA架构通常基于企业总线(Enterprise Service Bus,ESB)来实现服务间的通信和协调,这种中心化的架构存在单点故障和性能瓶颈的风险。
而微服务架构通过将应用程序拆分为小的、自治的服务,每个服务都可以独立部署和扩展,从而更好地满足了互联网应用的需求。
那么,从SOA到微服务架构的演进过程是怎样的呢?SOA架构的核心思想是将应用程序的功能模块化为可重用的服务,通过企业总线进行通信和协调。
在SOA架构中,服务是相对独立的,可以通过服务接口进行访问和调用。
这种架构风格可以提高系统的灵活性和可重用性,但由于服务间的通信是通过企业总线进行的,存在单点故障和性能瓶颈的风险。
随着互联网应用的快速发展,对系统的可扩展性和性能要求越来越高,SOA架构已经无法满足这些需求。
于是,微服务架构应运而生。
微服务架构将应用程序拆分为一组小型、自治的服务,每个服务都有自己的数据库和业务逻辑,并通过轻量级的通信机制进行通信。
每个服务都可以独立部署、扩展和维护,从而提高了系统的可扩展性和可维护性。
在从SOA到微服务架构的演进过程中,首先需要进行应用程序的拆分。
根据业务功能的不同,将应用程序拆分为一组小的、自治的服务。
每个服务都有自己的数据库和业务逻辑,可以独立部署和扩展。
接下来,需要设计服务之间的通信机制。
微服务架构通常使用轻量级的通信协议,如RESTful API或消息队列,来实现服务之间的通信。
这种通信机制比企业总线更加轻量级和灵活,可以提高系统的性能和可扩展性。
SOA技术简介2007-05-25 22:18SOA(service-oriented architecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。
SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
传统的Web(HTML/HTTP)技术有效的解决了人与信息系统的交互和沟通问题,极大的促进了B2C模式的发展。
WEB服务(XML/SOAP/WSDL)技术则是要有效的解决信息系统之间的交互和沟通问题,促进B2B/EAI/CB2C的发展。
SOA(面向服务的体系)则是采用面向服务的商业建模技术和WEB服务技术,实现系统之间的松耦合,实现系统之间的整合与协同。
WEB服务和SOA的本质思路在于使得信息系统个体在能够沟通的基础上形成协同工作。
对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。
一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。
这些服务的关键是他们的松耦合特性。
例如,服务的接口和实现相独立。
应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。
举例来说,一个服务可以用。
NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。
我们已经为面向服务的架构提供了一个高层次的框架,其中MDA和AM的元素帮助工具的使用者来创建和维护SOA。
但是,SOA中还缺少一些内容-那就是软件开发商和专业的服务组织必需提供的。
理想情况下,开发商必需提供面向服务的业务流程、工作流以及服务的协调工具和服务;另外,能够以一种敏捷的、平台无关的方式充分反映业务服务的建模工具也是必须的;技术专家必须配备可以从模型中自动生成代码,并在代码变化时更新模型的工具,最后,开发商必须提供支持SOA的软件,帮助面向服务的架构设计师以一种可信并且可伸缩的方式创建位于服务和底层技术之间的抽象层次。
soa半导体光放大器基本概念SOA(Semiconductor Optical Amplifier)即半导体光放大器,是一种基于半导体材料的光放大器,用于增强光信号的强度和能量。
本文将介绍SOA的基本概念及其相关参考内容。
一、SOA的基本概念1. SOA的结构和工作原理:SOA由3个主要部分组成,即输入端、活性波导和输出端。
其工作原理基于半导体材料的光电效应,通过对光信号的激发和放大来增强光信号的强度。
2. SOA的特点和优势:SOA具有高增益、大带宽、低噪声和快速响应等特点。
相比其他光放大器,SOA具有更快的调制速度和更广泛的可调节范围。
3. SOA的应用领域:SOA广泛应用于光通信、光传感、光网络以及光存储等领域。
其主要应用包括信号放大、波长转换、光分配和光开关等。
二、SOA的基本原理和性能1. SOA的放大原理:SOA通过输入光信号的激发和电子的注入来实现光信号的放大。
当输入光信号进入SOA时,激发了活性波导中的电子,这些激发态的电子会与输入光子发生非弹性散射,从而将其能量传递给其他光子并增强光信号的强度。
2. SOA的增益和损耗:SOA的增益是指输入光信号在SOA中被放大的程度,一般用dB表示。
SOA的增益与波长、功率和工作温度等因素密切相关。
损耗指SOA在信号传输过程中损失的能量,主要来自光吸收和散射机制。
3. SOA的噪声性能:SOA的噪声包括增益噪声和自发噪声。
增益噪声是指信号放大过程中引入的噪声,主要与激发态电子引起的自发发射有关。
自发噪声是指由于SOA中非线性机制引起的噪声,一般与输入光功率和波长有关。
4. SOA的非线性特性:SOA具有非线性特性,包括自相位调制、横向模式混频和自频移等。
这些非线性效应能够实现光信号的调制和处理,但也可能引入额外的失真和噪声。
三、SOA的研究和进展1. SOA的发展历史:SOA自上世纪80年代开始研究,经过几十年的发展,已经成为光通信和光网络中不可或缺的器件之一。
SOA技术起源及发展简史SOA(面向服务架构)是一种软件架构模式,它将应用程序划分为一系列可独立运行的服务,并通过这些服务之间的通信实现业务功能。
SOA 的概念起源于20世纪80年代的CORBA(公共对象请求代理体系)和OLE (对象链接和嵌入),但其真正发展起来是在21世纪初。
SOA最早的技术起源可以追溯到20世纪80年代,当时人们开始意识到将应用程序划分为独立的组件会带来很多好处,比如更好的可重用性、更高的灵活性和更好的可维护性。
CORBA和OLE是最早的两个实现SOA概念的技术,它们提供了一种标准的接口和通信协议,使得不同的应用程序可以通过网络进行通信和交互。
然而,由于当时的网络技术和硬件性能的限制,SOA并没有得到广泛应用。
随着互联网的普及和技术的进步,尤其是XML和Web服务的出现,SOA开始迎来发展的机遇。
XML(可扩展标记语言)是一种用于描述数据的标记语言,它可以将数据以纯文本的形式进行传输,具有良好的跨平台和可扩展性。
Web服务是一种基于XML开发的网络服务,它利用HTTP协议和SOAP协议进行通信,使得不同的应用程序可以通过Internet进行跨平台的通信和交互。
在2000年前后,业界开始将SOA与Web服务相结合,形成了现代化的SOA技术体系。
SOA架构基于服务的概念,将整个应用程序划分为一系列独立的服务,每个服务负责完成特定的业务功能。
这些服务通过标准的接口和协议进行通信,可以独立部署和升级,具有较好的可重用性和灵活性。
与此同时,SOA技术提供了一种服务发现和管理的机制,使得客户端应用程序可以动态地获取和使用服务。
SOA技术的发展还面临了一些挑战和问题。
首先,SOA涉及到很多复杂的技术和标准,比如XML、SOAP、WSDL等,增加了开发和维护的成本。
其次,由于SOA需要通过网络进行服务调用和通信,其性能和可靠性可能会受到网络延迟和传输错误的影响。
此外,SOA还需要一套完整的服务管理和治理机制,包括服务注册、发布、发现、版本控制等,以确保服务的安全性和稳定性。
SOA简介1、SOA的发展SOA是英文Service Oriented Architecture的缩写,称作面向服务架构。
1996年Gartner首次提出这个概念,认为它是“帮助组织在多个应用和部门间共享业务逻辑和数据的一种设计风格”,但SOA并未引起业界广泛关注。
当时企业用户更多关注的是建设独立业务应用系统。
随着IT应用的深入,这些不同时期、不同部门的孤立系统逐渐和业务发生了矛盾。
一方面,不同部门的业务是彼此关联的,相应的IT系统必须能够相互支撑;另一方面,业务是不断变化的,要求IT能够快速适应变化,也需要重用原有IT系统资源。
因此,不同IT系统的应用集成(Application Integration)成了用户重要的建设任务。
不同系统间使用什么样的接口、采用什么样的连接结构,是用户集成方案中必须考虑的一个重要问题。
经过早期“P2P点对点直连”方式造成的“紧耦合”混乱,到后来EAI的“Spoke-and-Hub 辐条和集线器方式”的“单点瓶颈”问题,人们开始寻找“松耦合”的解决方案。
P2P点对点直连的架构方式Spoke-and-Hub 辐条和集线器架构方式(1)接口协议、实现各异,接口实现技术紧耦合(1)传输、转换、路由中心统一处理,单点依赖(2)系统一旦很多就产生混乱(2)中心庞大复杂、单点瓶颈、难以扩展随着Web Service在2002年左右被业界普遍看作是实现系统间“松耦合”的最佳接口方式,Gartner提出的SOA设计风格得到了IT界追捧。
Gartner也重新将SOA解释为“面向接口的架构”,认为“整个应用建设可以被描述为接口、接口实现、接口调用的拓扑”。
经过多年的实践,SOA相关技术逐步发展并在解决用户实际问题中发挥作用,如何实现SOA的工程方法也不断涌现,IT用户也看到了实施SOA带来的价值回报,自2007年起,基于SOA方法和技术实施的应用集成项目也逐渐成为应用集成的主流。
2、SOA的理解虽然至今很难找到SOA的准确定义,但大家普遍接受的观点是,SOA是一种指导构建大型分布式系统的设计思想、或是一种范型(Paradigm)。
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 分布计算技术的发展。