写点什么

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

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

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

关注

评论

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

IDC最新数据:2023年浪潮信息存储跃居中国前二

财见

DoubleTake for Mac v2.7.0 全景图制作软件 激活版

iMac小白

DoubleTake下载 DoubleTake mac DoubleTake直装版

革新鞋服零售:数据驱动的智能商品管理 解锁库存优化与高效增长

第七在线

你会拆分产品待办项(PBI)吗?

敏捷开发

项目管理 敏捷开发 软件开发 产品管理 用户故事

元太科技携手生态圈伙伴合作开发新一代电子纸货架标签

财见

Tinderbox 9 for Mac v9.7.3 可视化个人笔记工具 激活版

iMac小白

Tinderbox 9下载 Tinderbox 9 mac Tinderbox 9破解

Topaz Photo AI for Mac v3.0.0 智能AI降噪软件 照片清晰度修复

iMac小白

Topaz Photo AI下载 Topaz Photo AI mac Topaz Photo AI破解

微信登陆、支付、事件监听等小程序接口调用分解

Geek_2305a8

如何使用Plotly和Dash进行数据可视化

华为云开发者联盟

Python 数据可视化 华为云 华为云开发者联盟 企业号2024年4月PK榜

更优性能与性价比,从自建 ELK 迁移到 SLS 开始

阿里巴巴云原生

阿里云 云原生 日志服务 sls

ON1 NoNoise AI 2024 for Mac v18.3.0.15302 AI图片降噪工具 激活版

iMac小白

运维数字化转型必备宝典,13位行业资深运维专家力荐之作

嘉为蓝鲸

数字化转型 数字化运维 IT 运维

爆火 AI 硬件遭差评,Ai Pin 上市即翻车;Grok 推出首个多模态模型丨 RTE 开发者日报 Vol.184

声网

静态代码分析的这些好处,我竟然都不知道?

禅道项目管理

程序员 软件开发 自动化测试 知识分享 静态代码分析

什么是WAAP,对提高网络安全具有哪些重要的意义

德迅云安全杨德俊

CADintosh X for Mac v8.8.6.736 CAD绘图软件直装版

iMac小白

CADintosh X 8 CADintosh X下载 CADintosh X直装版 CADintosh X mac CADintosh X 破解

企业网络日益突出的难题与SD-WAN解决方案

Ogcloud

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

Pixelmator Pro for Mac v3.5.8 图像编辑软件 直装激活版

iMac小白

Pixelmator Pro破解 Pixelmator Pro中文 Pixelmator Pro下载

ETL快速同步 用友u8数据方式

RestCloud

数据同步 用友 ETL

2024上海国际智能汽车电子展览会

AIOTE智博会

自动驾驶展 智能驾驶展 汽车电子展

AlDente Pro for Mac v1.26.1 电池优化工具 限制最大充电比例 激活版

iMac小白

AlDente Pro下载 AlDente Pro破解版 AlDente Pro mac

性能测试中唯一标识的JMH测试

FunTester

DR4019|IPQ4019-Based Industrial Board

wallyslilly

YashanDB亮相数据技术嘉年华,展自主创新力量

YashanDB

4K Video Downloader Plus Pro for Mac v1.5.2 4K视频下载器 激活版

iMac小白

4K Video Downloader Plus

海外云手机怎么解决tiktok运营难题?

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 海外原生IP

ODI(境外投资备案)作用、类别和申请流程详解

Ghost Buster Pro for Mac v3.2.2 内存清理工具 激活版

iMac小白

Ghost Buster Pro下载 Ghost Buster Pro mac Ghost Buster Pro破解

龙智DevSecOps解决方案:集成Jira/Confluence/HelixCore/SonarQube等知名工具的技术实践与协作场景演示

龙智—DevSecOps解决方案

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