写点什么

评估面向服务架构

  • 2007-10-21
  • 本文字数:1271 字

    阅读完需:约 4 分钟

Software Engineering Institute 发表了一篇新的论文,名为《 Evaluating a Service-Oriented Architecture 》。

在 SOA 生命周期的早期阶段进行的架构评估时,可以把这份报告作为一个基本的参考。SOA 的架构方式和设计考量,必须以组织的品质需求为依据来进行评估,从而有效地识别并权衡它们的风险和收益:

SOA 作为一种集成应用而暴露出服务的手段而兴起,给组织带来了很多新的挑战,会对组织的业务产生重大的风险。其中特别重要的一项风险是失于有效地应对品质需求,如性能、可用性(availability)、安全以及可修改性(modifiability)。由于 SOA 的风险和影响是分散并且渗透到各个应用中的,在软件生命周期中尽早实行架构评估非常关键。报告中提供了 SOA 的设计考量和代价权衡方面的技术信息,能帮助架构评估者及时、有效地识别并降低风险。报告对 SOA 进行了全局性的观察,勾勒出了各种主要的架构方式以及它们对品质各方面的影响。报告还组织了一整套问题,供架构评估者用来分析架构的能力是否满足品质需求,另外还提供了一个简略的评估示例。

论文以介绍 SOA 开篇,首先叙述了面向服务的各种原则及特征,并将 SOA 和 Web Service 定义为一种架构风格及多种可能的实现之一。介绍的最后讨论了 SOA 的推动力量。

报告的主要部分涵盖了 SOA 的架构方式和设计考量。架构方式分成通讯、集成、复合以及服务的绑定几个部分来讨论。按照作者的说法,服务的交互可以用三种不同方式来实现。三种 SOA 风格的区分因循了 Stefan Tilkov 在其博客上的提法: RPC 风格的 Web Services 、面向消息的 Web Services 和 REST 。集成及服务复合体可以直接由点对点的连接以及服务的复合来实现。另一种方式则是利用中介软件如 Enterprise Service Bus(ESB) BPEL 编制引擎。对架构方式的讨论还围绕了一个问题:服务应该通过一个服务注册表来动态绑定,还是在 proxy 代码或配置文件中定义服务端点来静态绑定。

架构的设计决策必须考虑品质需求或曰非功能性需求。典型的 SOA 设计决策包括以下主题:

  • 目标平台
  • 同步服务还是异步服务
  • 服务的粒度
  • 异常处理与故障恢复
  • 安全
  • XML 优化
  • 对注册表及服务的使用
  • 遗留系统集成
  • BPEL 与服务编制(orchestration)
  • 服务的版本化

论文中对以上每个主题都作了简要介绍,并从品质需求的角度进行了讨论。文中举例的评估问题有助于评估者判断在多种可能的设计中,哪一种最能有效地达到系统的需求。

报告以一个 SOA 架构评估的示例作结。该例子遵循 SEI 开发的 Architecture Tradeoff Analysis Method(ATAM)

SEI 的 Architecture Tradeoff Analysis Method®(ATAM®)是软件架构评估领域最先进的方法。一般情况下,采用 ATAM 方法的一项评估需要集合起一个受过训练的评估团队、架构师,以及各利益相关方的代表,共同花费 3 至 4 天来完成。ATAM 已获得证明的好处包括: - 澄清品质上的需求

  • 改善架构文档
  • 记录下架构决策的依据
  • 在生命周期的早期识别出风险
  • 增强利益相关方之间的联系

这份报告很好地总结了面向服务的环境中的架构方式以及设计决策,并展示了如何用 ATAM 来作为评估 SOA 的手段。

查看英文原文: Evaluating a Service-Oriented Architecture

2007-10-21 02:471049
用户头像

发布了 225 篇内容, 共 67.8 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

深入解读 IaaS、PaaS、SaaS

燕陈华

IaaS PaaS SaaS

在线修改主从复制选项

Simon

MySQL

笔记:《如何系统思考》之系统基模

wiflish

思维方式

CentOS 6 升级 OpenSSH 8.1p1

wong

centos openssh

自助设备系列——菜品的自助识别结算

孙苏勇

人工智能 产品 行业资讯 智能设备

(乱记)“怎样培养优秀孩子”

启润

死磕Java并发编程(9):无界线程安全队列ConcurrentLinkedQueue源码解析

Seven七哥

Java并发 jdk源码 队列

说说数据库主从同步延迟的一个解决方案

M1racle

数据库 主从同步

阅读有术:怎么记住书中的内容

子不语

学习 方法论 读书方式

嫌 OSS 查询太慢?看我们如何将速度提升 10 倍!

苏锐

大数据 性能优化 数据湖 OSS 对象存储

引入了绩效管理,团队反而一天不如一天了?(二)

Geek_6rptuk

团队管理 企业文化 绩效

实时数仓 | 你需要的是一款强大的 OLAP 引擎

程序员小陶

大数据 OLAP

0风险高收益的投资

Neco.W

学习 投资 自我提升

什么是实时数仓,与离线数仓的区别是什么?

程序员小陶

大数据 数据仓库 实时数仓

一个关于成长的经验公式

oldj

成长

为什么我们要工作

黄大路

思考 工作

MySQL 实现排名

黄大路

数据挖掘 MySQL 数据库 sql 数据分析

上下文切换的资源消耗

麻瓜镇

多线程 操作系统

TensorFlow On Flink 原理解析

Apache Flink

大数据 flink 流计算 实时计算

高仿瑞幸小程序 07 为你推荐模块

曾伟@喵先森

小程序 微信小程序 大前端

回“疫”录(14):跨越时空的相同选择

小天同学

疫情 回忆录 现实纪录 感恩

打造高颜值 iTerm2

辛晓亮

macos Mac 终端 terminal

Kylin 在互联网公司的实践合集

程序员小陶

大数据 kylin

谈谈控制感(1):控制感与职业方向选择

史方远

ONTAP 9 巡检模板

HU

01-Taro打造hello-world应用

页面仔小杨

小程序 微信小程序 taro

真特么是个好东西

非著名程序员

程序员 效率工具 写作

SpringBoot前后端分离项目,集成Spring Security(完整版)

读钓

Java spring Spring Boot spring security

Rust安装注意事项

邱张华

rust 镜像源 diesel

必要的革命:深层学习与可持续创新

山楂大卷

学习 好书推荐 创新 系统性思考 价值观

概念有时候很坑

伯薇

抽象 思考力 沟通 概念

评估面向服务架构_SOA_Hartmut Wilms_InfoQ精选文章