写点什么

评估面向服务架构

  • 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:471147
用户头像

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

关注

评论

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

CloudOps自动化运维套件助力企业更好上云、用云、管云

阿里云弹性计算

云计算 大数据 阿里云 物联网

瓴羊Quick BI:轻松实现数据可视化大屏

对不起该用户已成仙‖

揭秘Spring依赖注入和SpEL表达式

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

KW 新闻 | KaiwuDB 亮相数字中国并发布离散制造场景解决方案

KaiwuDB

数字中国 KaiwuDB 离散制造业解决方案

Java获取本机IP

Geek_7ubdnf

执行器-Query 执行详解

KaiwuDB

KaiwuDB Query执行

Navicat Premium将关系和实体添加到概念模型的方法

背包客

macos MySQL 数据库 Mac 软件 Navicat Premium

TCMalloc 技术细节详解

KaiwuDB

KaiwuDB TCMalloc

微服务高并发:授权与系统自适应功能的实现原理

互联网架构师小马

授权 系统自适应

集结开发者力量,6月17日华为开发者联创日·深圳站即将启航!

说山水

政务云建设提速,天翼云夯实智慧政务数字底座

天翼云开发者社区

云计算 大数据

低代码崛起:让程序员饭碗不保?人工智能或成“帮凶”

加入高科技仿生人

人工智能 低代码 数智化

AIGC时代,设计软件应该做什么?丨AIGC X 企业服务

ToB行业头条

程序员晋升指南!13年顶级架构设计经验的锦囊妙计与实践分享

互联网架构师小马

Java 架构

破防了!阿里用17个真实企业级项目阐述Java系统分析与架构设计

互联网架构师小马

Java 架构设计 系统分析

一文走进 SQL 编译-语义解析

KaiwuDB

KaiwuDB SQL编译

Sentinel熔断降级的规则及实现原理

互联网架构师小马

Java sentinel 熔断降级

正式启动|2023中国高校计算机大赛—大数据挑战赛火热报名中!

云智慧AIOps社区

大数据 AI 算法 运维 智能运维

人民日报:天翼云持续拓展云网基础设施覆盖广度和深度

天翼云开发者社区

云计算

当GaussDB遇上了毕昇编译器

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

【有奖调研】互联网新型社交,华为在找“元服务搭子”,快来集合!

HarmonyOS SDK

HMS Core

参与赢大奖!阿里云机器学习平台PAI助力开发者激发AIGC潜能

阿里云大数据AI技术

阿里云 AIGC

如何理解 REST 和 RPC 之间的差异?

Apifox

程序员 RPC Rest 协议 RPC调用

什么是低代码(Low-Code)?

优秀

低代码 低代码Low-Code 低代码是什么

低代码赛道拥挤 生态聚合成为破局关键

力软低代码开发平台

开发一次、运行多端:Weex与小程序容器的卓越优势解析

FinFish

Weex 跨端开发 小程序容器 跨端框架 跨端技术

源生创新 云享未来|GOTC全球开源技术峰会华为云云原生精彩时刻

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

在百度生态用达人营销赋能品牌生意增长 | 度星选白皮书

说山水

面试官:如何实现开关降级

互联网架构师小马

Java sentinel aop 开关降级

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