面向服务的体系结构SOA
internet环境下的企业交互
- 企业间可能存在大量的频繁的交互行为
- 供应链:供应商-制造商
- 客户关系管理:制造商-物流商-客户
- 服务:顾客,中介,服务提供者
- 业务上的交互体现为企业业务流程的交互/互操作软件系统之间的集成与互操作
- 互操作:能够在异构的,分布式的系统之间交换和使用信息的能力
异构系统的集成与互操作
- 技术平台(编程语言)不同
- 软件体系结构不同
- 数据格式不同
平凡变化的互操作与集成要求
- 业务流程是频繁变化的
- 应用系统集成要能够快速适应这种变化的需求
SOA要解决的问题
- 分布式企业间业务的协同
- 通过Internet连接在一起的异构企业应用软件系统的集成、交互与互操作
- 当业务过程发生变化时,软件系统能够快速响应
什么是面向服务的体系结构SOA
什么是SOA
SOA = service(服务) + architecture(体系结构)
SOA的核心要素
- 松耦合可编排
- 复用
- 标准化封装
目标:灵活可变的IT系统
标准化封装
互联网前所未有的开放性意味着各节点可能采用不同的组件、平台技术,构件模型和架构没有统一标准,从而呈现出巨大的异构性。
而SOA通过标准的、支持Internet、与操作系统无关的SOAP协议实现了连接互操作。
软件复用
耦合关系
- 传统软件核心:软件难以变化
- 网络连接
- 数据转换
- 业务逻辑
- 分布式对象技术:将连接逻辑进行分离
- SOA架构:业务逻辑,网络连接,数据转换等进行完全解耦和
SOA的基本构件和连接件
服务
- 从外特性上看: 一个服务被定义为显式的,独立于服务具体实现技术细节的接口
- 从内特性上看: 服务封装了可复用的业务功能(通常是大粒度的)
连接件
SOA中可用的基本构件是”服务”
- 通过接口,采用位置透明的、可互操作的协议进行调用,与客户端以“松散耦合”(loosely coupling)的方式绑定在一起。
- SOA中所有协议均是基于XML的文本文件
SOA的典型特征
分布式异构系统的集成与互操作
松散耦合
- 传统软件体系结构
- 通过函数调用的方式实现互操作
- 客户端需要了解被调用构件的位置和技术细节
- 缺陷:构件的维护和重复使用变得非常困难,因为一个构件中的修改就自动意味着其他构件中的修改
- SOA则实现了完全的松散耦合:
- 位置透明
- 与具体的实现细节无关(通过接口调用)
- 标准化的通讯协议(XML-based)
大数据量低频率访问
- 传统: 一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成(性能的影响)
- SOA: SOA采用大数据量的方式一次性进行数据交换
基于文本的消息传递
- 传统: 从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法来完成某些功能
- SOA: 由于基于文本的消息本身不包含任何处理逻辑和数据类型,因此服务间只传递文本,双方不存在兼容性问题
上下文无关
- 传统: 设计阶段就要考虑各构件之间如何进行交互,也就是说,一个构件的设计模型可能依赖于其他构件的设计模型
- SOA: 服务不需要了解它们将来可能被复用的环境,即独立于服务使用者的上下文
大粒度复用
- 传统:
- 被复用的软件体通常都是小粒度的
- 企业级应用环境下,这种小粒度软件体的复用效率过低
- SOA:
- 大粒度复用体,它更多的关注诸如业务过程/业务活动级别的复用,复用效率更高
- 采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的信息交换
SOA的实现
SOA只是一种概念和思想,需要借助具体的技术和方法来实现
web服务
Web Services的目标是消除语言差异、平台差异、协议差异和数据结构差异,成为不同构件模型和异构系统之间的集成技术
特点
- 封装性
- 松散耦合
- 使用标准协议规范
- 高度可集成性
- 易构建
逻辑角色
- 服务提供者
- 服务请求者
- 服务注册中心
角色的操作
- 发布操作
- 查找操作: 使服务请求者可以通过服务注册中心查找特定种类的服务
- 绑定操作: 使服务请求者能够真正使用服务提供者提供的服务
web服务的构件
- 服务
- 服务描述
web service协议
最简单的协议栈包括传输层的HTTP,基于XML的消息传递层的SOAP协议以及服务描述层的WSDL
- XML
- Services进行数据交换时所采用的标准,同时也是Web Services技术的全部规范和技术基础
- SOAP
- 一个定义描述消息内容的框架的信封
- 一组表示应用程序定义的数据类型实例的编码规则
- 表示远程过程调用和响应的约定
- WSDL
- 一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)
- UDDI
- 统一描述、发现与集成服务是一种目录服务,企业可以使用它对 Web services 进行注册和搜索
企业服务总线ESB
- 服务统一管理
- 为整个系统提供一个统一的、标准的、可靠的、可扩展的服务管理平台。
- 集成服务
- 提供基础的服务与定制的服务;支持集成服务模式;支持服务的分解,服务调度和路由,服务封装,服务组合。
- 公用服务
- 提供内置的各种公用服务。例如,认证服务,日志服务等。
- 服务协议转换
- 通过把不同的通信协议转换成标准的报文,屏蔽异构系统的底层技术差异。
- 服务监控
- 提供服务等级管理及流量管理。提供多角度的服务实时监控、报警与交易分析报表。
- 安全体系
- 提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91536 人正在系统学习中
来源:MickeyMiao_2000
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!