软考分类精讲-软件架构设计(三)

软件架构风格—基于服务的架构(SOA)

服务是一种为了满足某项业务需求的操作、规则等的逻辑组合,它包含一系列有序活动的 交互,为实现用户目标提供支持
软考分类精讲-软件架构设计(三)

软件架构风格—基于服务的架构(SOA)
  • 服务构件粗粒度,传统构件细粒度居多
  • 服务构件的接口是标准的,主要是WSDL接口, 传统构件常以具体API形式出现
  • 服务构件的实现与语言无关,传统构件绑定各种 特定语言
  • 服务构件可以通过构件容器提供QoS的服务,传 统构件完全由程序代码直接控制

软考分类精讲-软件架构设计(三)

软件架构风格—SOA—关键技术

软考分类精讲-软件架构设计(三)

软件架构风格—SOA—关键技术—XML
  • 实现不同数据的集成
  • 使用于多种应用环境
  • 客户端数据处理与计算
  • 数据显示多样化
  • 局部数据更新
  • Web Service
  • 数据集成
  • 软件架构描述
  • 软件架构演化
  • RIA
  • XML数据库
    软考分类精讲-软件架构设计(三)
软件架构风格—SOA—关键技术—REST
  • HTTP+XML进行基于Web通信的技术
  • 简单性,缺少严格配置文件
  • 只支持几个操作(POST、GET、PUT、DELETE)
  • 强调信息本身,称为资源
  • 网络上的所有事物都被抽象为资源
  • 每个资源对应一个唯一的资源标识
  • 通过通用的连接器接口对资源进行操作
  • 对资源的各种操作不会改变资源标识
  • 所有的操作都是无状态的
软件架构风格—SOA—关键技术—WSDL

软考分类精讲-软件架构设计(三)

软件架构风格—SOA—关键技术—UDDI&DISCO
  • UDDI数据模型,一个用于描述企业和服务的XML Schema
  • UDDI API。一组用于查找或发布UDDI数据的方法,基于SOAP
  • UDDI注册服务。一种基础设施,对应着服务注册中心的角色
  • DISCO可以定义一个文档格式和询问算法,发现给定服务器上公开的服务
  • DISCO能够发现每个服务的功能(通过文档),以及如何与它进行交互(通 过WSDL)
  • 如果要使用DISCO发布一个已部署的服务,只需创建一个.disco文件
软件架构风格—SOA的实现方式—Web Service

软考分类精讲-软件架构设计(三)

软件架构风格—SOA的实现方式—ESB
  • 提供位置透明性的消息路由和寻址服务
  • 提供服务注册和命名的管理功能
  • 支持多种的消息传递范型
  • 支持多种可以广泛使用的传输协议
  • 支持多种数据格式及其相互转换
  • 提供日志和监控功能
    软考分类精讲-软件架构设计(三)
软件架构风格—SOA的实现方式—服务注册表
  • 服务注册:应用开发者(服务提供者)向注册表公布服务的功能
  • 服务位置:服务使用者(服务应用开发者),帮助他们查询注册 服务,寻找符合自身要求的服务
  • 服务绑定:服务使用者利用检索到的服务接口来编写代码,所编 写的代码将注册的服务绑定、调用注册的服务,以及与它们实现互动
架构语言描述(ADL)

AD是这样一种形式化语言,它在底层语义模型的支持下,为软件系统的 概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体 系结构的表示、分析、演化、设计过程等提供支持。

ADL的三个基本元素

  • 构件:计算或数据存储单元
  • 连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则
  • 架构配置:描述体系结构的构件与连接件的;连接图
架构语言描述(ADL)
  • Aesop:支持体系结构风格的应用;
  • MetaH:为设计者提供了关于实时电子监控软件系统的设计指导;
  • C2:支持基于消息传递风格的用户界面系统的描述;
  • Rapide支持体系结构设计的模拟并提供了分析模拟结果的工具;
  • SADL:提供了关于体系结构加细的形式化基础;
  • Unicon:支持异构的构件和连接类型并提供了关于体系结构的高层编译器;
  • Wright:支持体系结构构件之间交互的说明和分析。