SOA原理、实现和应用介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向服务的软件开发具有不同于构件的新特点: ➢开放性----遵循开放的标准 ➢自描述性----服务的调用者只需要服务的描述信息就可以完 全掌握服务的所用信息,包括调用方法 ➢实现无关性----服务的消费者无需知道服务的实现语言和 和实现平台 ➢封装的粒度大于构件
从软件开发方法的角度来看SOA技术的发展。
SOA是一种服务导向的组件模型。服务是指软件中的一 些处理过程或是服装成独立业务模块的程序逻辑单元,可以 通过标准协议通过网络来访问和调用,而且接口公开。服务 提供者开发出各种有用的服务,经过严格测试后把服务发布 到公共的服务注册表上,服务消费者通过查找服务注册表查 找到所需要的服务,然后就可以使用所需要的服务了。
2.1 SOA的特征
SOA是一种粗粒度、松耦合的软件架构,服务之间 通过简单、精确定义接口进行通讯,不涉及底层编程 接口和通讯模型。
这种模型具有以下的特征: 1)松散耦合 2)粗粒度服务 3)标准化的接口 4)无状态的服务
松散耦合和粗粒度
从软件开发和系统结构的角度来看,SOA是耦合度最低 的一种实现方法。
命令式软件开发方法
命令式编程是对 Von Neumann式 计算机执行顺序的 直接抽象。
过程只是对功能 的抽象,因此只能 片面地反映事物的 性质。
面向对象软件开发方法
面向对象的三个特点:
操作
消息
对象
1)继承性
2)封装性
对象
3)多态性
对象
面向对象软件开发方法
➢ 面向对象的复用机制是通过继承实现过的,所以难以 形成可复用的软件模块
3.1 CORBA组件实现方法
3.2 DCOM组件实现方法
3.2 远程方法调用(RMI)实现方法
即Java RMI(Java Remote Method Invocation) 是Java编程语言里,一种用于实现远程过程调用的应用 程序编程接口。它使客户机上运行的程序可以调用远程 服务器上的对象。远程方法调用特性使Java编程人员能 够在网络环境中分布操作。
4.2 Web服务的体系结构
安 全
服务协作 WS-CDL
服务组合 BPEL4WS,BPWL
发布和发现 UDDI
描述 WSDL
消息扩展
WS-Addressing、WS-Secபைடு நூலகம்rity
消息 SOAP
传输 HTTP、SMTP、FTP等
图--Web服务的技术体系结构
管 理
Web服务的规范
传输规范:Web服务可以利用多种网络协议实现XML 消息的传输。Web服务可以利用HTTP( GET/PUT/POST/DELETE)、FTP、SMTP、CORBA的 消IIP息和规Ja范va:的WJMebS服等务协之议间。的通信是通过传递SOAP协议 的XML消息实现的。 描述规范:用WSDL语言可以描述Web服务。描述包括 一系列操作的名称及其输入,输出参数、出错信息和接 口的绑定。
构件技术是可以产生可复用的软件模块的,但这只是说 当用构件技术“从零开始”进行开发时才是这样的,面向构 件技术无法复用已有的、用不同技术开发的软件模块,既不 能把已有的“遗留系统”进行“构件化”。
面向服务软件开发方法
面向服务的软件开发方法是构件技术在分布式环境下( 特别是在Internet环境下)的延伸和发展。
4.1 SOA的一种实现—Web Service
Web服务是构架早XML和Internet技术上的分布式 计算技术,其目的是利用已经管饭使用的Internet协议 在分布节点之间传递称为消息的XML文档。
Web服务是有URL标识的软件应用,其接口和绑定可 以通过XML来定义和描述并且可以被发现,与其他软件 通过基于Internet的协议以XML消息交换的方式直接交 互。
SOA框架组成部分
SOA结构有三部分组成:
1、服务提供者 2、服务注册中心 3、服务消费者
服务提供者
服务提供者
服务提供者是一个可以通过网络寻址的实体,它接收 和执行消费者的请求。把自己的服务注册到服务注册中 心,以便服务消费者能够发现和访问该服务。
它主要完成以下功能: 1)定义可提供的服务功能 2)设计并实现这些功能 3)用WSDL描述这些服务,并用UDDI在服务注册中心发 布WSDL文档
➢ 面向对象的封装是对事物的抽象,因封装的粒度小, 所以难以构成大的可复用的模块。
总之,面向对象封装粒度小,难以形成大的可复 用的模块。它的复用性主要体现在代码级,模块复用 性差。
面向构件软件开发方法
面向构件是对象技术的延伸和发展,构件和对象技术都 是对现实世界的抽象,都具有封装性,都已接口的方式被外 界访问。构件和对象具有以下区别: ➢抽象视角不同。
服务的请求者和提供者时间是松耦合的,即服务请求者 不必关心服务的具体实现细节,如程序实现语言,部署平 台等。
这样的松散耦合是通过“服务描述”实现的。 1)服务的接口是通过标准的方式进行描述。 2)服务的请求者通过消息的方式,而不是通过API和文件 格式请求服务。
标准化的接口和无状态服务
SOA通过服务接口的标准化描述,而接口是通过标准 的方式进行描述的,从而使得该服务可以提供给在任何 异构平台和任何用户接口使用。该接口隐藏了实现服务 的细节,允许独立于实现服务基于的硬件或软件平台和 编写服务所用的编程语言使用服务。
由于SOA在系统结构和软件开发中带来了很多的优势, 后来IBM、MS、le在内的全球著名IT公司加入了定义、 实现和推广SOA的行列。使得SOA得到了快速的发展。
SOA的概念 SOA是一种基体于系服结务构来,组也织是计一算种资软源件,开具发有模松型耦。合
和间接寻址能力的软件体系结构。
1.2 SOA与分布式体系结构
SOA作为一种体系结构,已经被各种分布式 系统开发所:
分布式系统经历了:
主机系统
“客户/服务器 ”两层结构
“客户/应用服 务器/资源服务 器”三层结构
www.hzdi yan.com www.sys mk120.com www.qcxgqt.com www.tcsac.com http://sj.39.net/dx
构件实现可复用性是通过构件的包容和聚合机制实现的。 实现了复用者和被复用者的松耦合。
➢粒度不同 构件的封装粒度一般大于对象的封装粒度。
对象
构
对象
件
的
接
口
构件
对象
面向构件的软件开发方法“局限性”:
现有的构件技术,都是和具体的OS平台相关的,这样构 件的生产者和构件的使用者就有严格的要求,即构件使用者 和构建的生产者是紧耦合的。
服务注册中心
服务注册中心 服务注册中心是包含可用服务的网络可寻址目录,它是
接受并存储服务描述的实体,供服务消费者查询服务只用 ,服务提供者将服务的描述信息发布到服务注册中心。服 务的信息包括与该服务交互的所有所有内容,如网络位置 、传输协议和消息格式等。
它主要完成以下功能: 1)增加、删除和修改已经发布的服务的服务信息。 2)按照用户的请求从注册表中查询服务数据。
三层分布式体系结构
JDBC/ ODBC HTML
Web浏览器软件
标准表示层
表示层 应用逻辑层
资源管理层
1、浏览器和应用服 务器是松耦合的。 2、应用服务器和资 源服务器是松耦合 的。 3、应用逻辑层可以 部署在服务器集群 上。 4、表示层和应用逻 辑层是紧耦合的, 使得同一个表示层 不能访问不同平台 的应用逻辑。
多层体系结构
一般信息系统的分层体系结构
信息系统
用户 表示层
应用逻辑层
资源管理层
UI
应用逻辑实现系统功能
利用数据库、文件系统 管理资源
主机分布式体系结构
1、系统组成耦合 紧密 2、客户功能单一 3、没有外部系统 的接口
两层分布式体系结构
1、客户、服务器之间 的耦合紧密n-1 2、服务器成为处理瓶 颈 3、更新代价高
四层分布式体系架构
克服了三层结构中:表示层和应用逻辑层紧耦合 把应用逻辑层封装成Web服务,这样表示层和应用
逻辑层就能实现松耦合。
1.3 SOA和软件开发
SOA是一种软件开发模型,本质上是一种组件模型。 软件开发模型经历了:
命令式软件 开发方法
面向对象的软 件开发方法
面向构件的软 件开发方法
面向服务的软 件开发方法
http://sj.39.net/dx/150427/461563 1.ht ml http://sj.39.net/dx/150427/461563 2.ht ml http://sj.39.net/dx/150427/461563 3.ht ml http://sj.39.net/dx/150427/461540 0.ht ml http://sj.39.net/dx/150427/461539 8.ht ml http://sj.39.net/dx/150427/461563 4.ht ml http://sj.39.net/dx/150427/461563 6.ht ml http://sj.39.net/dx/150427/461563 7.ht ml http://sj.39.net/dx/150427/461563 8.ht ml http://sj.39.net/dx/150427/461564 0.ht ml http://sj.39.net/dx/150427/461564 1.ht ml http://sj.39.net/dx/150427/461564 2.ht ml http://sj.39.net/dx/150427/461564 3.ht ml http://sj.39.net/dx/150428/461597 8.ht ml http://sj.39.net/dx/150428/461597 9.ht ml http://sj.39.net/dx/150428/461598 0.ht ml http://sj.39.net/dx/150428/461598 1.ht ml http://sj.39.net/dx/150428/461598 2.ht ml http://sj.39.net/dx/150428/461598 3.ht ml http://sj.39.net/dx/150428/461598 5.ht ml
对象是对客观世界的基本实体的抽象,强调现实世界和实 体的对应以及实体的建模。构件是对客观世界的实体或者实 体联合能提供的功能的和服务的建模。
➢可复用程度和复用机制不同
和对象相比,构件更强调可复用性。
面向对象实现可复用是通过继承实现的,但继承并不是实 现复用的一种很好的方法,因为继承使得子类对父类产生了 很强的依赖性。
服务消费者
服务消费者 服务消费者可以是:一个应用程序、需要一个服务的另
外一个服务或者一个软件模块。它从注册中心查询需要的 服务,并通过传输机制绑定服务,然后通过接口契约规定 的格式来执行服务。
它主要完成以下功能: 1)发现提供服务的WSDL文档,通常通过访问服务注册表来 实现。 2)在WSDL的基础上,通过SOAP协议来与要访问的服务通 信。
SOA原理、实现方法与应用
Service Oriented Architecture
主要内容
1
SOA的产生过程
2
SOA的基本原理
13
SOA的实现方法
4
SOA的一种实现—Web Service
15
SOA在MapGIS中的体现
1.1 SOA的定义
SOA的提出 SOA的概念最早是由Gartner于1996年提出的。
小
封装粒度
命令式软 件开发
面型对象 软件开发
面型构件 软件开发
大
面型服务 软件开发
大
耦合度
小
软件开发技术的发展是不断加大软件模块的封装粒度, 从而使得软件模块间的耦合度减少。SOA的产生是为了适应 分布式环境(特别是Internet环境)需求的又一种软件开发方 式。
2.1 SOA基本原理
SOA原理概述
Web服务的关键技术
从上面对Web服务的描述可以看出Web服务由三项 关键技术构成:
➢通信:Web服务需要一种能基于Internet协议(如 HTTP、SMTP和FTP等)互相传递XML消息的通信协 议规范。 ➢描述:Web服务的接口和绑定需要用一种基于XML 的语言来描述和定义。 ➢发现和发布:Web服务消费者可以通过中介发现 Web服务,而Web服务的元信息也需要发布到中介 上。
服务应该独立的、自包含的。在实现时它不需要从 一个请求到另一个请求的信息或状态。服务不依赖于其 他服务的上下文和状态。
3.1 SOA的实现技术
1 CORBA组件实现方 法
2 DCOM组件实现方法 13 远程方法调用(RMI)实现方法 4 Web Service组件实现方法 15 Jini组件实现方法
从软件开发方法的角度来看SOA技术的发展。
SOA是一种服务导向的组件模型。服务是指软件中的一 些处理过程或是服装成独立业务模块的程序逻辑单元,可以 通过标准协议通过网络来访问和调用,而且接口公开。服务 提供者开发出各种有用的服务,经过严格测试后把服务发布 到公共的服务注册表上,服务消费者通过查找服务注册表查 找到所需要的服务,然后就可以使用所需要的服务了。
2.1 SOA的特征
SOA是一种粗粒度、松耦合的软件架构,服务之间 通过简单、精确定义接口进行通讯,不涉及底层编程 接口和通讯模型。
这种模型具有以下的特征: 1)松散耦合 2)粗粒度服务 3)标准化的接口 4)无状态的服务
松散耦合和粗粒度
从软件开发和系统结构的角度来看,SOA是耦合度最低 的一种实现方法。
命令式软件开发方法
命令式编程是对 Von Neumann式 计算机执行顺序的 直接抽象。
过程只是对功能 的抽象,因此只能 片面地反映事物的 性质。
面向对象软件开发方法
面向对象的三个特点:
操作
消息
对象
1)继承性
2)封装性
对象
3)多态性
对象
面向对象软件开发方法
➢ 面向对象的复用机制是通过继承实现过的,所以难以 形成可复用的软件模块
3.1 CORBA组件实现方法
3.2 DCOM组件实现方法
3.2 远程方法调用(RMI)实现方法
即Java RMI(Java Remote Method Invocation) 是Java编程语言里,一种用于实现远程过程调用的应用 程序编程接口。它使客户机上运行的程序可以调用远程 服务器上的对象。远程方法调用特性使Java编程人员能 够在网络环境中分布操作。
4.2 Web服务的体系结构
安 全
服务协作 WS-CDL
服务组合 BPEL4WS,BPWL
发布和发现 UDDI
描述 WSDL
消息扩展
WS-Addressing、WS-Secபைடு நூலகம்rity
消息 SOAP
传输 HTTP、SMTP、FTP等
图--Web服务的技术体系结构
管 理
Web服务的规范
传输规范:Web服务可以利用多种网络协议实现XML 消息的传输。Web服务可以利用HTTP( GET/PUT/POST/DELETE)、FTP、SMTP、CORBA的 消IIP息和规Ja范va:的WJMebS服等务协之议间。的通信是通过传递SOAP协议 的XML消息实现的。 描述规范:用WSDL语言可以描述Web服务。描述包括 一系列操作的名称及其输入,输出参数、出错信息和接 口的绑定。
构件技术是可以产生可复用的软件模块的,但这只是说 当用构件技术“从零开始”进行开发时才是这样的,面向构 件技术无法复用已有的、用不同技术开发的软件模块,既不 能把已有的“遗留系统”进行“构件化”。
面向服务软件开发方法
面向服务的软件开发方法是构件技术在分布式环境下( 特别是在Internet环境下)的延伸和发展。
4.1 SOA的一种实现—Web Service
Web服务是构架早XML和Internet技术上的分布式 计算技术,其目的是利用已经管饭使用的Internet协议 在分布节点之间传递称为消息的XML文档。
Web服务是有URL标识的软件应用,其接口和绑定可 以通过XML来定义和描述并且可以被发现,与其他软件 通过基于Internet的协议以XML消息交换的方式直接交 互。
SOA框架组成部分
SOA结构有三部分组成:
1、服务提供者 2、服务注册中心 3、服务消费者
服务提供者
服务提供者
服务提供者是一个可以通过网络寻址的实体,它接收 和执行消费者的请求。把自己的服务注册到服务注册中 心,以便服务消费者能够发现和访问该服务。
它主要完成以下功能: 1)定义可提供的服务功能 2)设计并实现这些功能 3)用WSDL描述这些服务,并用UDDI在服务注册中心发 布WSDL文档
➢ 面向对象的封装是对事物的抽象,因封装的粒度小, 所以难以构成大的可复用的模块。
总之,面向对象封装粒度小,难以形成大的可复 用的模块。它的复用性主要体现在代码级,模块复用 性差。
面向构件软件开发方法
面向构件是对象技术的延伸和发展,构件和对象技术都 是对现实世界的抽象,都具有封装性,都已接口的方式被外 界访问。构件和对象具有以下区别: ➢抽象视角不同。
服务的请求者和提供者时间是松耦合的,即服务请求者 不必关心服务的具体实现细节,如程序实现语言,部署平 台等。
这样的松散耦合是通过“服务描述”实现的。 1)服务的接口是通过标准的方式进行描述。 2)服务的请求者通过消息的方式,而不是通过API和文件 格式请求服务。
标准化的接口和无状态服务
SOA通过服务接口的标准化描述,而接口是通过标准 的方式进行描述的,从而使得该服务可以提供给在任何 异构平台和任何用户接口使用。该接口隐藏了实现服务 的细节,允许独立于实现服务基于的硬件或软件平台和 编写服务所用的编程语言使用服务。
由于SOA在系统结构和软件开发中带来了很多的优势, 后来IBM、MS、le在内的全球著名IT公司加入了定义、 实现和推广SOA的行列。使得SOA得到了快速的发展。
SOA的概念 SOA是一种基体于系服结务构来,组也织是计一算种资软源件,开具发有模松型耦。合
和间接寻址能力的软件体系结构。
1.2 SOA与分布式体系结构
SOA作为一种体系结构,已经被各种分布式 系统开发所:
分布式系统经历了:
主机系统
“客户/服务器 ”两层结构
“客户/应用服 务器/资源服务 器”三层结构
www.hzdi yan.com www.sys mk120.com www.qcxgqt.com www.tcsac.com http://sj.39.net/dx
构件实现可复用性是通过构件的包容和聚合机制实现的。 实现了复用者和被复用者的松耦合。
➢粒度不同 构件的封装粒度一般大于对象的封装粒度。
对象
构
对象
件
的
接
口
构件
对象
面向构件的软件开发方法“局限性”:
现有的构件技术,都是和具体的OS平台相关的,这样构 件的生产者和构件的使用者就有严格的要求,即构件使用者 和构建的生产者是紧耦合的。
服务注册中心
服务注册中心 服务注册中心是包含可用服务的网络可寻址目录,它是
接受并存储服务描述的实体,供服务消费者查询服务只用 ,服务提供者将服务的描述信息发布到服务注册中心。服 务的信息包括与该服务交互的所有所有内容,如网络位置 、传输协议和消息格式等。
它主要完成以下功能: 1)增加、删除和修改已经发布的服务的服务信息。 2)按照用户的请求从注册表中查询服务数据。
三层分布式体系结构
JDBC/ ODBC HTML
Web浏览器软件
标准表示层
表示层 应用逻辑层
资源管理层
1、浏览器和应用服 务器是松耦合的。 2、应用服务器和资 源服务器是松耦合 的。 3、应用逻辑层可以 部署在服务器集群 上。 4、表示层和应用逻 辑层是紧耦合的, 使得同一个表示层 不能访问不同平台 的应用逻辑。
多层体系结构
一般信息系统的分层体系结构
信息系统
用户 表示层
应用逻辑层
资源管理层
UI
应用逻辑实现系统功能
利用数据库、文件系统 管理资源
主机分布式体系结构
1、系统组成耦合 紧密 2、客户功能单一 3、没有外部系统 的接口
两层分布式体系结构
1、客户、服务器之间 的耦合紧密n-1 2、服务器成为处理瓶 颈 3、更新代价高
四层分布式体系架构
克服了三层结构中:表示层和应用逻辑层紧耦合 把应用逻辑层封装成Web服务,这样表示层和应用
逻辑层就能实现松耦合。
1.3 SOA和软件开发
SOA是一种软件开发模型,本质上是一种组件模型。 软件开发模型经历了:
命令式软件 开发方法
面向对象的软 件开发方法
面向构件的软 件开发方法
面向服务的软 件开发方法
http://sj.39.net/dx/150427/461563 1.ht ml http://sj.39.net/dx/150427/461563 2.ht ml http://sj.39.net/dx/150427/461563 3.ht ml http://sj.39.net/dx/150427/461540 0.ht ml http://sj.39.net/dx/150427/461539 8.ht ml http://sj.39.net/dx/150427/461563 4.ht ml http://sj.39.net/dx/150427/461563 6.ht ml http://sj.39.net/dx/150427/461563 7.ht ml http://sj.39.net/dx/150427/461563 8.ht ml http://sj.39.net/dx/150427/461564 0.ht ml http://sj.39.net/dx/150427/461564 1.ht ml http://sj.39.net/dx/150427/461564 2.ht ml http://sj.39.net/dx/150427/461564 3.ht ml http://sj.39.net/dx/150428/461597 8.ht ml http://sj.39.net/dx/150428/461597 9.ht ml http://sj.39.net/dx/150428/461598 0.ht ml http://sj.39.net/dx/150428/461598 1.ht ml http://sj.39.net/dx/150428/461598 2.ht ml http://sj.39.net/dx/150428/461598 3.ht ml http://sj.39.net/dx/150428/461598 5.ht ml
对象是对客观世界的基本实体的抽象,强调现实世界和实 体的对应以及实体的建模。构件是对客观世界的实体或者实 体联合能提供的功能的和服务的建模。
➢可复用程度和复用机制不同
和对象相比,构件更强调可复用性。
面向对象实现可复用是通过继承实现的,但继承并不是实 现复用的一种很好的方法,因为继承使得子类对父类产生了 很强的依赖性。
服务消费者
服务消费者 服务消费者可以是:一个应用程序、需要一个服务的另
外一个服务或者一个软件模块。它从注册中心查询需要的 服务,并通过传输机制绑定服务,然后通过接口契约规定 的格式来执行服务。
它主要完成以下功能: 1)发现提供服务的WSDL文档,通常通过访问服务注册表来 实现。 2)在WSDL的基础上,通过SOAP协议来与要访问的服务通 信。
SOA原理、实现方法与应用
Service Oriented Architecture
主要内容
1
SOA的产生过程
2
SOA的基本原理
13
SOA的实现方法
4
SOA的一种实现—Web Service
15
SOA在MapGIS中的体现
1.1 SOA的定义
SOA的提出 SOA的概念最早是由Gartner于1996年提出的。
小
封装粒度
命令式软 件开发
面型对象 软件开发
面型构件 软件开发
大
面型服务 软件开发
大
耦合度
小
软件开发技术的发展是不断加大软件模块的封装粒度, 从而使得软件模块间的耦合度减少。SOA的产生是为了适应 分布式环境(特别是Internet环境)需求的又一种软件开发方 式。
2.1 SOA基本原理
SOA原理概述
Web服务的关键技术
从上面对Web服务的描述可以看出Web服务由三项 关键技术构成:
➢通信:Web服务需要一种能基于Internet协议(如 HTTP、SMTP和FTP等)互相传递XML消息的通信协 议规范。 ➢描述:Web服务的接口和绑定需要用一种基于XML 的语言来描述和定义。 ➢发现和发布:Web服务消费者可以通过中介发现 Web服务,而Web服务的元信息也需要发布到中介 上。
服务应该独立的、自包含的。在实现时它不需要从 一个请求到另一个请求的信息或状态。服务不依赖于其 他服务的上下文和状态。
3.1 SOA的实现技术
1 CORBA组件实现方 法
2 DCOM组件实现方法 13 远程方法调用(RMI)实现方法 4 Web Service组件实现方法 15 Jini组件实现方法