阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

评估面向服务架构

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

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

关注

评论

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

最强阿里巴巴历年经典面试题汇总:C++研发岗

linux大本营

c++ Linux epoll 服务器开发

cornerstone 基础概念篇(二)

Lazy

大前端 脑科学 脑科学软件工程 脑影像

阿里内网流传的9w字图解网络(全彩版)GitHub现已下载量过百万

Java架构之路

Java 程序员 架构 面试 编程语言

在FL Studio中如何混音你的鼓组采样与旋律采样

奈奈的杂社

经验分享 知识分享

容器Pod语系修改

ilinux

Serverless:这真的是未来吗?(一)

Serverless Devs

运维 云原生 服务器 #Serverless

iOS 面试策略之系统框架-UIKit

iOSer

ios 面试 语言 & 开发 系统框架

css与less,sass的奇妙之旅

less SASS

Java岗面试攻略分享,阿里的offer真的不难拿

Java架构师迁哥

如何设计高效的HBase数据模型

Jowin

HBase

canvas从零到一,实际案例

Vue 海报 js ts canvas

Spark RDD详解

大数据技术指南

大数据 spark 5月日更

如何从Docker镜像提取Dockerfile?

运维研习社

Docker Dockerfile 5月日更

Webrtc 屏幕共享

融云 RongCloud

情场失意的我,幸获师兄捞了一把,助我拿到6个大厂offer,Java岗

Java架构师迁哥

Windows后渗透之权限维持

Thrash

DICOM图像中灰度理解

Lazy

脑科学 脑科学软件工程 脑影像

开源十问, 社区新人快速上手指南

DT极客

【LeetCode】整数转罗马数字Java题解

Albert

算法 LeetCode 5月日更

Kubernetes入门——Kubernetes日志采集与监控告警

百度开发者中心

百度 Kubernetes 云原生 kubernetes入门 技术课程

cornerstone 基础概念篇(一)

Lazy

cornerstone 脑科学 脑科学软件工程 脑影像

Flutter Tab

Geek_7e907c

Docker网络学习第五篇-基础网络模式

Lazy

Docker

阿里技术官最新总结12W字JAVA面试宝典,吊打面试官的硬核法宝!

Java架构之路

Java 程序员 架构 面试 编程语言

这份Github下载量高达76.9W次的《Java系列面试宝典》,足以吊打各个大厂面试官!

Java架构之路

Java 程序员 架构 面试 编程语言

ELK协议栈基本介绍

五分钟学大数据

大数据 5月日更

CRUD程序员勿进!全身心投入才能读懂腾讯大佬亲码的“Java微服务”学习笔记

Java架构师迁哥

Flutter

Geek_7e907c

中国信创生态系列报道|融云CEO韩迎:坚持双轮驱动,信创未来大有可为

融云 RongCloud

记一次java读取matlab数据方式

Lazy

Java 后端 matlab 脑科学软件工程

低代码行业涌出大量玩家,企业该如何做出选择?

优秀

低代码

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