软考分类精讲-软件架构设计(三)
软件架构风格—基于服务的架构(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:支持体系结构构件之间交互的说明和分析。