速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

Apache Doris 全新分区策略 Auto Partition 应用场景与功能详解

SelectDB

数据库 数据仓库 OLAP Doris 分区策略

专业IT需求管理:2024年10大工具全指南

爱吃小舅的鱼

需求管理 软件需求管理 需求管理工具

H20 首发!上 Neolink.AI 免费尝鲜

MatrixOrigin

gpu 算力

蓝易云 - 外贸服务器配置怎么选

百度搜索:蓝易云

云计算 运维 服务器 云服务器 高防服务器

蓝易云 - 如何有效防止服务器被攻击?

百度搜索:蓝易云

云计算 运维 服务器 DDoS 高防服务器

基于51单片机设计的热敏电阻测温系统

DS小龙哥

8月月更

望繁信科技荣获第六届“中国创翼”创业创新大赛二等奖,将代表上海市参加全国总决赛

望繁信科技

流程挖掘 流程智能 上海望繁信科技 现代企业服务 业务流程管理优化

网安科班精选!爱荷华大学教授的网络安全零基础入门教程!

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 网络攻防 网安

掌握这种思维,让你每句话直击要害,颠覆你的职场表现

轶天下事

蓝易云 - Logstash同步MySQL数据到ElasticSearch

百度搜索:蓝易云

MySQL 云计算 elasticsearch 运维 Logstash

NGINX Gateway Fabric 如何实现复杂的路由规则

NGINX开源社区

JavaScript 开源 HTTP 经验分享 API

简化流程:京东商品详情API的快速集成指南

代码忍者

mac篮球游戏:NBA 2K23 Arcade Edition for Mac

你的猪会飞吗

mac单机游戏 mnac软件

国内差旅报销系统排名:2024年最主流7大选择

易成研发中心

项目管理 报销管理系统

工单触发器如何助力企业提升效率?天润融通案例解析

天润融通

人工智能 天润融通

【第2期】2024 搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读.md

极限实验室

elasticsearch Meetup easysearch 极限科技 搜索客社区

macos 10.15系统:macOS Catalina for mac 正式版

你的猪会飞吗

mac软件下载 mac破解软件下载

《Linux/UNIX系统编程手册》PDF

程序员李木子

在项目中到底应不应该用jwt?

左诗右码

Go

redis设置用户名和密码

智慧源点

【每日涨知识】CPU中有没有对数指令?如何用程序去计算?

极客罗杰

69 个Spring mvc 全部注解:真实业务使用案例说明(必须收藏)

肖哥弹架构

spring springmvc springboot 注解

【功能详解】TimechoDB 与 Ignition 成功集成!

Apache IoTDB

智能化库存管理:1688商品详情API的革新应用

代码忍者

探索 Amazon Q Developer 那些有趣的功能

亚马逊云科技 (Amazon Web Services)

从0到1学会Jetty内存马注入

我再BUG界嘎嘎乱杀

黑客 网络安全 jetty 网安 内存马

从 ClickHouse 到 Apache Doris:快成物流的数智化货运应用实践

SelectDB

数据库 数据仓库 Doris 大数据 开源 实时分析

lastTab—Chrome 拓展开发实践

FunTester

蓝易云 - 在ubuntu20.04上安装arm-linux-gcc 4.4.3

百度搜索:蓝易云

云计算 Linux ubuntu 运维 GCC

蓝易云 - linux压缩webfile文件夹 webfile.tar.gz和webfile.tar的区别

百度搜索:蓝易云

云计算 Linux 运维 云服务器 压缩

贝壳的面经!怎么好像有点简单?

王中阳Go

Go 面经

SOA概述_SOA_Boris Lublinsky_InfoQ精选文章