50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

WhaleDI自助建模实践与探索

鲸品堂

AI Codec 建模

千锋教育走访人才合作企业数式科技 深度了解企业人才需求

千锋IT教育

澜舟科技推出【熊猫小说家】小程序,用 AI 书写你的故事

澜舟孟子开源社区

人工智能 nlp AIGC

浅谈Python中的生成器

何极光

Python 生成器 10月月更

Go语言入门10—Map

良猿

Go golang 后端 Go web

如何让 SAP Spartacus 访问 navigation node 的上下文,暴露更多的字段

阿英

typescript angular SAP Spartacus 10月月更

面向复杂业务场景下的低代码平台组件设计与实践分享

Baidu AICLOUD

组件化 低代码开发平台 数据映射

云原生时代的应用端到端可观测体系如何构建?

嘉为蓝鲸

运维 监控 可观测性 告警

Sanitizers 系列之 address sanitizer 原理篇

网易云信

数据库 算法 系统

TOGAF认证考试开启“主线+支线+副本”模式!

涛哥 数字产品和业务架构

浅谈 Python 中的迭代器

何极光

Python 迭代器 10月月更

Spring Boot「18」使用 JDBC 连接数据库

Samson

Java spring 学习笔记 spring-boot 10月月更

精盾信息莅临千锋教育武汉校区招聘前端开发工程师

千锋IT教育

学C++的以后都能从事哪些岗位?

C++后台开发

c++ 后端开发 客户端开发 linux开发 C++开发

实时数据湖 Flink Hudi 实践探索

阿里云大数据AI技术

大数据 flink 企业号十月 PK 榜

开源代码安全 | 微软是如何应对开源代码安全问题的?

龙智—DevSecOps解决方案

开源 开源代码

DevOps下测试的生存之道

嘉为蓝鲸

DevOps 测试

千锋武汉分校前端学员走访英志软件,并开展现场面试

千锋IT教育

2022年最新数据库经典面试题及答案汇总(含PostgreSQL、Oracle、MySQL)

墨天轮

MySQL 数据库 oracle postgresql 面试题

使用Docker部署软件运行环境

源字节1号

软件开发 前端开发 后端开发 小程序开发

SSH的工作原理、加密方式以及配置多个ssh key

甜点cc

前端 学习笔记 加密 SSH 10月月更

uniapp 提示 打包时未添加 push模块

源字节1号

软件开发 前端开发 后端开发 小程序开发

一文浅析人工智能领域相关概念之间的关系

九章云极DataCanvas

人工智能 神经网络 机器学习

阿里云注册集群+Prometheus 解决多云容器集群运维痛点

阿里巴巴云原生

阿里云 云原生 Grafana Prometheus

滴滴Java后台3面题目:网络+内存溢出+各种锁+高性能+消息队列

小小怪下士

Java spring 面试 JVM

【FAQ】关于华为地图服务定位存在偏差的原因及解决办法

HarmonyOS SDK

地图

嘉为蓝鲸可观测性产品获Gartner Toolkit 推荐

嘉为蓝鲸

运维 监控 Gartner 可观测

重磅,无需特殊工具,直接访问网站!

八点半的Bruce.D

Zepoch已售出500+,Zebec Chain受到市场追捧

西柚子

敢承诺安全效果?IT人竟能如此省心

科技热闻

2022年汽车品牌智能网联竞争力指数(ICVCI)

易观分析

汽车 ICVCI 智能网联

SOA概述_SOA_Boris Lublinsky_InfoQ精选文章