最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论

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

写了这么多年后端,你知道事务脚本模式吗?

蜜糖的代码注释

Java 互联网 后端

git 使用总结

麦可

git 开发工具

微信朋友圈架构设计

刘洋

#架构实战营

Android Studio开发flutter快捷键及文本显示技巧。

坚果

flutter 1月月更

高效管理邮件的方式

NinetyH

工具软件 办公效率 邮件管理

模块六作业

novoer

「架构实战营」

模块一作业--

Leo

「架构实战营」

我的架构学习之始

浪飞

模块六

Only

架构师实战营 「架构实战营」

LabVIEW仪表盘识别(实战篇—6)

不脱发的程序猿

机器视觉 图像处理 LabVIEW 仪表盘识别

一起玩转LiteOS组件:TinyFrame

华为云开发者联盟

LiteOS 串口 LiteOS组件 TinyFrame

ChaosCraft:和女朋友一起来 Hackathon 表演绝活丨滑滑蛋团队访谈

PingCAP

Centos7下Nginx编译安装与脚本安装的记录

edd

音视频技术如何为元宇宙提供全真稳的全新体验之漫话腾讯云音视频 | 社区征文

liuzhen007

音视频 1月月更 新春征文

微信业务架构 & 学生管理系统架构

凌波微步

「架构实战营」

小程序电商业务微服务拆分及基础设施选型

swallowluo

架构实战营 #架构实战营 「架构实战营」

JavaScript 之 Proxy

编程三昧

JavaScript 前端 Proxy 1月月更

ReactNative进阶(三十六):ES8 中 async 与 await 使用方法详解

No Silver Bullet

Async React Native await 1月月更

华山论“件”:Kafka、RabbitMQ、RocketMQ技能大比拼

华为云开发者联盟

kafka RocketMQ RabbitMQ 华为云 消息中间件

获奖作品公布,快来看看有没有你!

InfoQ写作社区官方

新春征文 热门活动

IM单聊和群聊中的在线状态同步应该用“推”还是“拉”?

WorkPlus

CVE-2021-4034 Linux Polkit 权限提升漏洞挖掘思路解读

腾讯安全云鼎实验室

云原生 漏洞分析

[架构实战营]-架构实训一

邹玉麒

「架构实战营」

架构实战营5期模块1作业

lovles

「架构实战营」

WorkPlus赋能数字政府迈入发展新阶段

WorkPlus

复古冰雪传奇H5游戏详细图文架设教程

echeverra

游戏开发 游戏

架构训练营模块一作业

苍狼

什么时候该减少质量投入?

QualityFocus

质量管理 软件测试 测试思维

「架构实战营」模块一作业

hxb

「架构实战营」

华为云FusionInsight连续三次获得第一,加速释放数据要素价值

华为云开发者联盟

大数据 数据湖 云原生 FusionInsight 华为云

Linux之ps命令

入门小站

Linux

SOA概述_SOA_Boris Lublinsky_InfoQ精选文章