9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

评估面向服务架构

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

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

关注

评论

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

CloudQuery v1.4.1 发布 | 开放「组织架构」模块 API

BinTools图尔兹

数据库 数据安全 OpenAPI 数据库管控

中易通科技禾禾实验室产品培育田

叶落便知秋

TensorFlow Recommenders: Quickstart

毛显新

深度学习 tensorflow 推荐系统 keras

大数据实战训练营Hbase作业

Clarke

WorkPlus高端制造业数字化解决方案—首发集团

BeeWorks

开源 企业 即时通讯 移动开发

互联网大厂一手资料,25大专题,500多页,背废你就能吊打面试官

Java架构师迁哥

泰国Ascend Money用开源软件加快应用交付

BeeWorks

阅读

剖根问底:Java 不能实现真正泛型的原因是什么?

沉默王二

java

以两种异步模型应用案例,深度解析Future接口

华为云开发者联盟

Java 模型 异步 FutureTask Future接口

WorkPlus高端制造业数字化解决方案—科达洁能

BeeWorks

开源 企业 解决方案 即时通讯

女巫面具系统模式开发

ALVIS

区块链去中心化钱包开发|开发去中心化钱包

Geek_23f0c3

钱包系统开发 去中心化交易所系统开发 去中心化钱包 去中心化交易所

Java程序员必备框架—Spring全家桶的前世今生详细梳理

北游学Java

Java spring

瞥一瞥AI,撩一撩算法

博文视点Broadview

来吧!一文写清前端面试难点及考点

前端依依

面试 大前端 经验总结

阿里云视频云发布实时高清VVC编码器Ali266,真正开启VVC商用之路

阿里云CloudImagine

阿里云 视频编码 视频处理 编码器 视频云

绿森林回收系统小程序开发

ALVIS

小白必看,通俗易懂的LockSupport

程序猿阿星

Java并发 线程协作 LockSupport 线程间通信

兰宝环保 | 新体系“行动计划”中化工制药行业VOCs废气治理要点

叶落便知秋

大厂面试真题——Netty/IO篇,你能答上来几道?

Java架构师迁哥

SpringBoot自动配置原理解析

程序员阿杜

spring Boot Starter

ElasticJob 3.0.0:打造面向互联网生态和海量任务的分布式调度解决方案

SphereEx

数据库 开源

数据对AI的重要性:采访首席数据官Rick McFarland - LexisNexis Legal & Professional

BeeWorks

阅读

详解Camtasia的PPT录制功能

淋雨

视频剪辑 Camtasia 录屏软件

Using side features: feature preprocessing

毛显新

自然语言处理 深度学习 tensorflow 推荐系统 keras

Erda 1.1 版本发布|3 大亮点特性最新解读

尔达Erda

开源 云原生 k8s PaaS SaaS

本夕生活小程序定制开发

ALVIS

INFRA-JOY微服务治理验证工程实践分享

徐敏

微服务 自动化测试 全链路压测 性能压测

3D地图与3D柱状图联合使用

ThingJS数字孪生引擎

大前端 地图 可视化 数字孪生

IDEA http client无法解析enviroment file

crazylle

IDEA http client Alibaba Cloud Toolkit

手把手体验远程开发,确实爽

程序员鱼皮

Java Python 软件 大前端 后端

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