软件体系结构-06-面向服务的体系结构SOA

面向服务的体系结构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

  1. 服务统一管理
    • 为整个系统提供一个统一的、标准的、可靠的、可扩展的服务管理平台。
  2. 集成服务
    • 提供基础的服务与定制的服务;支持集成服务模式;支持服务的分解,服务调度和路由,服务封装,服务组合。
  3. 公用服务
    • 提供内置的各种公用服务。例如,认证服务,日志服务等。
  4. 服务协议转换
    • 通过把不同的通信协议转换成标准的报文,屏蔽异构系统的底层技术差异。
  5. 服务监控
    • 提供服务等级管理及流量管理。提供多角度的服务实时监控、报警与交易分析报表。
  6. 安全体系
    • 提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系、功能和行为。在软件体系结构的设计过程中,可以使用多种复用技术来提高开发效率和软件质量。 一种常见的软件体系结构复用技术是使用框架。框架是一个可重用的软件结构,它提供了一个通用的解决方案,可以用于开发特定类型的应用程序。框架通常包含了一些基本的组件和模块,开发人员可以在此基础上进行扩展和定制,以满足具体的需求。 另一种常见的软件体系结构复用技术是使用设计模式。设计模式是一种被广泛接受的解决特定问题的方法。它提供了一套经过验证的解决方案,可以在不同的软件系统中重复使用。常见的设计模式包括单例模式、工厂模式、观察者模式等。 此外,还有其他一些软件体系结构复用技术,如组件化和面向服务架构(SOA)。组件化将软件系统划分为独立的组件,每个组件都具有特定的功能和接口,可以在不同的系统中重复使用。而SOA则是一种基于服务的架构,将软件系统划分为一系列相互独立的服务,这些服务可以通过网络进行通信和交互。 总结起来,软件体系结构复用可以通过使用框架、设计模式、组件化和面向服务架构等技术来实现。这些技术可以提高软件开发的效率和质量,同时也可以促进软件系统的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值