写点什么

实体服务的模式反模式之争

  • 2007-06-19
  • 本文字数:1292 字

    阅读完需:约 4 分钟

一些人认为实体服务(Entity Services)或以业务为中心的实体是面向服务架构的基本要素。这一观点并没有得到所有人的认同。那么,实体服务是 SOA 模式,亦或反模式?上个月, Shy Cohen ,在文章“面向服务架构中服务的本体和分类”中定义实体服务如下:

“实体服务揭示并显露出系统中的业务实体。它们可以被认为是业务过程中以数据为中心的组件(名词),如:雇员、顾客、销售订单等。实体服务的例子包括,管理顾客信息的客户服务,或管理顾客所下订单的订单服务。”

Shy 还写道:

“实体服务有一个普遍的特点:在实体级别支持增、查、改、删(CRUD),同时为了解决问题领域、支持应用特性和用例的需要,添加了领域特定的操作。领域特定操作的一个例子是:客户服务暴露一个名为FindCustomerByLocation的方法,它可根据顾客的地址定位顾客的 ID。”

Thomas Erl(即将出版的“ SOA: Principles of Service Design ”的作者,同时他还是其它几本 SOA 书籍的作者),以类似的方式定义实体服务

几乎在每个企业中,都将会出现业务模型文档,它用来定义组织相关的业务实体。业务实体的例子包括顾客、雇员、发票和索赔等。实体服务模型表示一个以业务为中心的服务,它基于一个或多个业务实体的功能边界或上下文。由于对大多数父业务过程不可知,它被认为是一个高度可复用的服务。结果是,多个父业务过程可利用实体服务实现自动化。实体服务也被认为是以实体为中心的业务服务业务实体服务。右图展示了一个实体服务的例子。它的一些能力让人想起传统的 CRUD(增、读、改、删)方法。

看起来并不是每个人都同意此观点。John Evdemon,Shy 的同事(同样工作于微软),认为 CRUD 接口是 SOA 的反模式

“对 web 服务而言,CRUD 操作是错误的代理级别。CRUD 可能在服务内部或横跨几个服务实现,但它们不应该以这种方式暴露给消费者。这是服务将内部(私有)能力渗透到服务的公共接口的例子。”

同样,在谈及 CRUD 时, Steve Jones (“企业SOA 实施策略”的作者,该书由InfoQ 出版)总体上相当直率,并断定:“ CRUD 是垃圾”。最近, Nick Malik Jack Van Hoof Udi Dahan 同样在讨论实体服务的问题,而且他们的结论是(来自 Udi 的博客):

“实体服务属于应用架构领域。它们并不是服务的成员,服务是 SOA 分解的基本单元。 一个 SOA 服务既可以使用实体服务实现,也可不使用。如果是,那些实体服务就不能在 SOA 服务边界之外被访问。这样,它们就是 SOA 的实现细节。在这种情况下,我们可以就实体服务优于其它事物(如领域模型模式)的相对价值,进行非常有趣的讨论。”

或者正如 Nick Malik 总结的:

“那么,实体服务是反模式吗?从企业的视角来看,是的。从应用的视角来看,则不是。(两者之间并不冲突)。我认为,这依赖于你站在哪个角度来看。”

尽管如此,仍然还有服务粒度的观点 —— 即使在应用级别。如果服务的粒度太细,就几乎不违反“分布式计算的 8 个谬论”,并且如同 Peter Deutsch 当初定义这些谬论时所说的:

[当你做出错误假定的时候]“所有东西最后被证明是错误的,所有东西导致了麻烦及痛苦的学习经历。”

你有何高见?

查看英文原文 Entity Services - Pattern or Anti-pattern?

2007-06-19 03:45911
用户头像

发布了 255 篇内容, 共 57.5 次阅读, 收获喜欢 10 次。

关注

评论

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

天谋科技与腾讯云完成兼容性互认证

Apache IoTDB

报名倒计时 2 天!龙蜥社区系统安全 Meetup 演讲亮点一览

OpenAnolis小助手

操作系统 系统安全 浪潮信息 龙蜥meetup

业务转型,你的团队该如何应对?

凌晞

团队管理 数字化业务转型IT路线图

广东人仁康一项技术通过国家科技成果评价达到国际先进水平平

Geek_2d6073

天润融通,荣获2024中国AI应用层创新企业

天润融通

人工智能 天润融通

深入解读Prometheus Adapter:云原生监控的核心组件

快乐非自愿限量之名

微服务 云原生 容器化

低代码开发赋能教育数字化及典型场景

不在线第一只蜗牛

低代码 教育新创

数据驱动的未来:数据融合与平台化应用的探索

快乐非自愿限量之名

低代码 数据驱动 平台化

运营海外社媒平台的最佳工具:云手机

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 海外云手机推荐

6 大亮点!全新 Anolis OS 23.1 GA 版正式发布,满足多样化平台支持

OpenAnolis小助手

操作系统 国产操作系统 龙蜥操作系统 Anolis OS Anolis OS 23.1

被黑客入侵的 DMM 比特币为比特币购买获得 3.2 亿美元

区块链开发团队DappNetWork

小游戏应该如何创建一个元服务项目

FN0

鸿蒙卡片 元服务

惊了!字节大佬总结的这份《零基础学python神级笔记全彩版》真的太强了

没脾气

Python 程序员 自学编程 架构师 自学python

开发体育赛事直播平台源码:具备全面的体育数据资料库

软件开发-梦幻运营部

龙蜥社区 5 月度运营大事件回顾

OpenAnolis小助手

开源 操作系统 龙蜥社区 月报

SMC-R 透明加速 TCP 技术,在 Redis 场景下的应用实践 | 干货推荐

OpenAnolis小助手

操作系统 龙蜥社区 SMC-R 浪潮信息 TCP 技术

计算机英文教材太难啃?Higress 和通义千问帮你!

阿里巴巴云原生

阿里云 云原生 Higress

PingCAP 与沙利文联合发布《中国企业全球化运营白皮书》

先锋IT

案例研究|为什么 CDG 会选择从 DataDog 迁移至观测云?

观测云

可观测性

Netty FastThreadLocal实践

FunTester

低代码用得好,开发真的很顺手

伤感汤姆布利柏

iLogtail 2.0 重大升级,端上支持 SPL

阿里巴巴云原生

阿里云 云原生 日志服务 sls

SD-WAN实现企业出海网络加速

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

【YashanDB知识库】outline固化执行计划

YashanDB

yashandb 崖山数据库

一台桌面工作站的智慧之光,照见宁畅“全局智算”版图

脑极体

AI

Altair RapidMiner,将数据科学、深度学习等多种功能同时集成的一站式数据分析平台

Altair RapidMiner

机器学习 大模型 #人工智能 #数据分析

从仿真到生成式仿真,大模型助力工业智能化发展

Altair RapidMiner

#人工智能 仿真技术 制造业数字化 #大模型

ApsaraMQ Copilot for RocketMQ:消息数据集成链路的健康管家

阿里巴巴云原生

阿里云 RocketMQ 云原生

GitHub爆火标星127k!这份字节Python背记手册到底有什么魔力?

没脾气

Python 程序员 自学编程 python教程 python自学

Mint Blockchain 成立 Mint Eco Fund 发展基金,并启动 Season1 开发者活动 NFT Summer!

NFT Research

NFT Layer 2

实体服务的模式反模式之争_SOA_Arnon Rotem-Gal-Oz_InfoQ精选文章