SOA面向服务架构的概念及应用

什么是SOA

SOA(Service-Oriented Architecture),即面向服务的架构。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。

SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。

阿里巴巴的Dubbo是SOA的典型实现。

基本特征

SOA的实施具有几个鲜明的基本特征:
粗粒度的服务接口分级
松散耦合
可重用的服务
服务接口设计管理
标准化的服务接口
支持各种消息模式
精确定义的服务契约

SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web S
ervices Description Language)是用于描述服务的标准语言。
SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。

松耦合系统

具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,另一点是,当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。与之相反,紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个应用程序进行某种形式的更改时,它们就显得非常脆弱。

Restful和SOA

现在很多互联网应用,如豆瓣,微博,亚马逊很多都采用轻量的restful。而企业内部的soa集成以soap方式为主。

SOA是为了促进灵活、敏捷应用开发而采取的一种架构,该架构通过在一般的工作流管理模型中常见组件来实现。

这些组件之间是一种松耦合的关系,意味着组件是通过发布/订购登记流程来定位的,而且使用了一种常见的对象访问机制来链接(一般是是SOAP),使用了某种定义语言(WSDL)来描述将用户和提供商连接在一起的特性和接口。

模型支持识别、安全和恢复流程的标准机制,在支持复杂的业务关键应用方面拥有丰富的功能。

RESTful模式是为了简化用户通过浏览器访问而设置的。尽管这种超文本标记语言(HTML)先看后点的浏览方式已经扩展为允许在程序元素之间,而不仅仅是与用户之间进行更为结构化的信息交换(扩展标记语言XML),其基本的接口是一样的;组件仍是以统一资源定位(URL)的方式表示,并采用与互联网兼容的域名解析系统(DNS)进行解码。

组件连接不仅仅是松散而已,如果用户本身在连接中的选择不是可视化的话这种关联根本就不存在。RESTful很容易开发和部署,它是轻量的,托管和维护的成本也很低廉,很适合典型的在线应用。

创建REST/SOA共生应用的典型方法是在SOA应用前端添加一个Web服务器,这会令SOA应用为互联网做好准备,并让它们可以为浏览器/瘦客户端所访问。虽然SOA组合应用灵活性很高时这很好,但是瘦客户端、移动及Web访问重要性的不断增强,促使某些架构师开始寻求在应用之中运用更多的RESTful概念。 

时间: 2024-09-03 14:47:40

SOA面向服务架构的概念及应用的相关文章

《走进SAP(第2版)》——2.6 面向服务架构

2.6 面向服务架构 走进SAP(第2版)网络服务面向服务架构(SOA)是一种封装各种服务或软件模块的系统架构,使用这种架构,业务流程能够灵活地组合与再利用.这些服务所映射的业务流程可以进行组合,然后映射到更复杂的业务流程.这种方法使软件开发更加经济与快捷.每项服务都可以通过互联网作为网络服务(Web service)进行使用.这样用户就不会觉察到应用程序的复杂性.SOA是建立在将网络服务作为模块的基础上的,这种软件开发方式能够整合各种应用程序并且能够共享功能和信息. 可重用性2.6.1 什么

从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训

[编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了解如何充分利用微服务 正如笔者在上文<微服务架构是敏捷软件架构>中提到的,笔者对微服务架构的第一反应,就是质疑它跟面向服务架构(SOA)有何区别.还有很多人将这两种架构联系在一起.詹姆斯·刘易斯和马丁·福勒在他们的权威博客中包含了一个侧边栏,进行微服务和 SOA 的对比.对此,怀疑派做出的回应是二

我的WCF之旅(7):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的继承

当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解.其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替.在开始本Blog之前,我先来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,只是主题的引子,在这里只是简单讨论而已 . OO和SO之间具有共同的部分,在运用的领域上存在交集,只有在基于他们交集层面上谈论谁是谁非才有意义,下面是我对SO和

认清面向服务架构SOA的真实面目

本文讲的是认清面向服务架构SOA的真实面目,[IT168 资讯]软件业从最初的面向过程.面向对象,到后来的面向组件.面向集成,直到现在的面向服务,走过了一条螺旋上升的曲线.其实,自从上世纪70年代提出"软件危机",诞生软件工程学科以来,为了彻底摆脱软件系统开发泥潭,一直也没有放弃努力. 在经典软件工程理论中,不管是瀑布方法还是原型方法,都是从需求分析做起,一步一步构建起形形色色的软件系统.但是,需求变更像一个挥之不去的阴影,时刻伴随着系统左右.每一个实际应用系统的开发者都饱尝了在系统进

面向服务架构(SOA)的原则

架构 分布式计算将网络上分布的软件资源看作是各种服务.面向服务架构是一种不错的解决方案.但这种架构不是什么新思想:CORBA和DCOM就很类似,但是,这些过去的面向服务架构都受到一些难题的困扰:首先,它们是紧密耦合的,这就意味着如分布计算连接的两端都必须遵循同样API的约束.打比方说,如果一个COM对象的代码有了更改,那么访问该对象的代码也必须作出相应更改.其二,这些面向服务架构受到厂商的约束.Microsoft控制DCOM自不必说,CORBA也只是一个伪装的标准化努力,事实上,实现一个CORB

面向服务架构(SOA)和企业服务总线(ESB)

学习和研究在企业中实施面向服务架构(SOA),简单回顾SOA和ESB,重点关注微软在SOA领域的相关指导和.NET社区的相关开源的解决方案,和大家一起来探讨如何在企业里实现SOA,期望有实施SOA经验的同学发表意见. 一.SOA的历史      1996年,Gartner最早提出SOA.2002年12月,Gartner提出SOA是"现代应用开发领域最重要的课题",SOA并不是一个新事物,IT组织已经成功建立并实施SOA应用软件很多年了,BEA.IBM.等厂商看到了它的价值,纷纷跟进.S

使用WCF实现SOA面向服务编程—— 架构设计

本文转载:http://kb.cnblogs.com/page/96479/   SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功 能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但 是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务

使用WCF实现SOA面向服务编程“.NET研究”—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统上海企业网站制作中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务变更来得到竞争优势的能力.对企业级架构设计师来说,创建一个业务灵活的架

“.NET技术”使用WCF实现SOA面向服务编程—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务变更来得到竞争优势的能力.对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个