写点什么

SOA 概述

  • 2010-02-08
  • 本文字数:1314 字

    阅读完需:约 4 分钟

在最近一篇博文中 JP Morgenthal 解释了概括的 SOA 实施是:

标识、合并、编排并治理一组业务功能或能力。

Morgenthal 从解释 SOA 中的服务的确切含义开始:

很多东西都可以被称为服务,这是 SOA 问题产生的地方所在。我认为在 SOA 环境中使用的“服务”这个单词暗指了特定的含义,它过滤了大部分不适用的服务定义……SOA 是一个用于标识和描绘特定域内的业务功能边界的架构方法。域可以是一个组织单元,也可以是整个企业。不论是哪个域,如果在该域中有交互,那么该域中就很可能包含不止一个业务单元才完成这些交互……非常简单,SOA 就是用来标识域目标,后将产生的业务功能编排成流程从而实现业务目标。划定必要的业务功能边界并由他们实 现目标,SOA 还要合并这些业务功能以确保没有冗余,然

接着他解释了虽然很多媒体的噱头让很多人认为 SOA 非常复杂并且需要昂贵的软件和资源,而实际上它就是将功能分解使之与业务对齐:

……拿一个特定的域,看看我们如何将它切分成一组协同工作的服务。例如,“园林美化”服务和“护根”服务之间就有很好的协作,你同意吗?它 们是独立的服务,但是他们之间存在着我们称之为松耦合的关系。即它们为了完成某个任务而合作,而后各行其道。的确,对一个域进行分析并将它分解成一组服务的工作是一种策略技术,它需要执行者的经验,然而划定边界和并围绕这些边界开展治理工作却可以由现有的管理去完成。

在 SOA 中所有的服务都被实现成软件,但是在这种情况下更重要的是每一个服务都代表了一个真实的业务功能。软件实现只是将这些功能执行自动化的 一种方式:

……因为它是在软件中实现的,而不是通过其自身实现的。这是他们所代表的角色。这些服务让业务降低了复杂性,使得他们合在一起实现业务目标而且是以敏捷而灵活的方式完成的。此外,虽然他们不依赖于其他服务而提供业务价值,但是我们可以很容易地看到他们可以有效地协作……

Morgenthal 继续解释他对 SOA 的理解并分析了与 SOA 相关的两个典型话题——软件即服务(SaaS)和基于组件的软件开发。在他看来 SaaS 不算是真正的 SOA 服务,因为:

SaaS 满足了我们定义服务的一个准则——我们通过付费用去使用服务而并不想拥有服务。然而,大多数 SaaS 只是租用的软件。在租用后,你依然要负责将自己的数据集成到 SaaS 应用中,你还要负责配置表单和工作流。对我来说,SaaS 不具备服务的其他特点。

Morgenthal 认为,很多执行者在谈及 SOA 时,实际说的是基于组件的开发。在他看来,当人们使用 SOA 来描述构建软件系统的方法时确实是这样的。但是 ,但有人开始谈到平台服务或工具服务时:

……这些谈论明显地说明了谈论的话题已经降级到软件设计方法论而已经脱离了 SOA 的范畴……不存在“工具”服务这样的东西,它只是软件组件 ……软件提供的的业务服务可以不需要工具服务的存在而存在。结果方案也许不像设计的那么模块化,也许并没有服务提供者以及期望的敏捷和灵活度,但是,如果你决定不建立工具服务和而直接把业务逻辑实现在软件里面,对服务的消费者没什么坏影响。

Morgenthal 的博文很好地定义了 SOA 的基础,同时仍然提醒着我们,SOA 关注的是架构和业务及 IT 的对齐,而不是软件设设计方法论或提供商工具。


查看英文原文: SOA in a Nutshell

2010-02-08 09:032229
用户头像

发布了 184 篇内容, 共 86.4 次阅读, 收获喜欢 8 次。

关注

评论

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

历史技术栈体系即将崩溃,我们如何应对?

VoltDB

数据库 5G 边缘计算 VoltDB

夺命剪刀脚(死锁)

鲁米

方法论 死锁

makefile:带你了解一种常用于GNU gcc编译的工具语言

华为云开发者联盟

编译器 LiteOS makefile 语言 GNU

你的决定我做主——锚定效应

Justin

心理学 28天写作 游戏设计

如何通过XMind 实践OKR 工作法

博文视点Broadview

《她说》——我们自出版的第一本书

张凯峰

Superset 兼容ADB(AnalyticDB-MySQL)

data_y

Python MySQL Apache Superset

Redis工具收费后新的开源已出现

happlyfox

学习 工具软件 28天写作 3月日更

硬核干货丨借助多容器Pod,轻松扩展K8S中的应用

Rancher

“七大属性加持,三个全新升级组件”这个高性能利器有点厉害

华为云开发者联盟

数据库 数据湖 Clickhouse 华为云 集群

Everything is Serverless,从开源框架对比说起

华为云开发者联盟

云计算 开源 Serverless 云原生 无服务器

使用 Flink 前需要知道的 10 个『陷阱』

Apache Flink

flink

法大大完成D轮9亿元融资,腾讯领投

人称T客

PostgreSQL高校数据库课程改革系列活动

PostgreSQLChina

数据库 postgresql 开源 软件 开源社区

中国石油数字化转型提速 HashData助力梦想云建设

酷克数据HashData

对象存储与HashData多云战略

酷克数据HashData

有源晶振和无源晶振的区别

不脱发的程序猿

28天写作 电路设计 3月日更 晶振 元器件

Python yaml 使用的包

HoneyMoose

深入分析mysql为什么不推荐使用uuid或者雪花id作为主键

xcbeyond

MySQL MySQL优化 3月日更

第二届开发者社区【金码奖】,揭晓了!

京东科技开发者

开发者 开发者社区

LeetCode题解:64. 最小路径和,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Midway Serverless 发布 2.0,一体化让前端研发再次提效

Serverless Devs

Serverless 云原生 大前端

数据分析利器之Excel功能篇

小飞象@木木自由

马特量化交易机器人系统开发网格策略

薇電13242772558

火爆!GitHub 标星 144k 的前后端学习路线

沉默王二

学习 后端

Python 中级知识之装饰器,滚雪球学 Python

梦想橡皮擦

28天写作 3月日更

(28DW-S8-Day19) 以太坊是什么

mtfelix

28天写作

正则表达式.06 - 断言

insight

正则表达式 3月日更

醒一醒,讲到 ZooKeeper 的选举机制了

HelloGitHub

Java zookeeper ZooKeeper原理

问题剖析之消息队列的架构设计

Kylin

读书笔记 消息队列架构 3月日更

有道 Kubernetes 容器API监控系统设计和实践

有道技术团队

Kubernetes 容器 分布式

SOA概述_SOA_Boris Lublinsky_InfoQ精选文章