11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

服务监管人

  • 2008-12-16
  • 本文字数:810 字

    阅读完需:约 3 分钟

“让我们想象一个快乐 SOA 的美好世界,在这里企业所需的计算能力被分解到许多小型的应用当中,相互提供服务以支持有效的协作。一个晴朗的早晨某个消费者服务需要请求某个供应者服务的一些信息。” Martin Fowler 设置了一个任何多业务单元 SOA 基础设施都可能遇到问题的场景。

在理想化的世界里,消费服务的开发者只需要请求供应者服务开发相应的潜在服务,一切就搞定了。但生活不是一帆风顺的——症结在于供应服务的开发者还要做其它的事,通常这对于他们的客户和管理层来说,要比帮助这个消费者服务团队重要得多。

Martin 指出了该问题的一个真实世界解决案例,它已被其同事 Erik Dörnenburg 使用。

他们借鉴了开源的做法,将他们所有的服务都实现为内部的开源系统。这让消费服务开发者可以自己编写服务。

他建议每个人都能够增强服务并提交“补丁”,然后由服务监管人审阅和“应用”。他将服务监管者的角色比拟成开源项目的维护者,并且“尽管通过监管人的方式不能完全消除消费开发者需要等待供应服务开发者这一问题,但它极大地减轻了这一难题”。他认为监管人应用“补丁”要比自己开发服务改进要容易得多,而且这一流程伸缩性极佳,只要消费服务开发者随着时间发展赢得了监管人的信任即可。

服务监管者的责任对于这一方式的成功是至关重要的。Martin 提及的解决方案,类似于 Jim Webber 的 Geurilla SOA ,一个草根 SOA 实施方法。Tony Baer,在 SOA Insights 的播客中,警告了这一方式的潜在风险。

如果项目变得足够大,你从头开始创建一个新服务就为了能快点把新需求搞定,结果会如何?这正是大杂烩代码(你得到的是一堆相互缠绕的程序)产生的方式--尽管能更快的产出,但你最后真的就不会想要去维护那些垃圾了。

到底服务重用需要被制度化并由各自的功能团队来治理,还是应当在企业内部采取草根式的开源运动并由每个功能团队的服务监管人来充当牧师?请一定亲自查看Martin Fowlers 的原文并分享你的经验。

查看英文原文: Service Custodian

2008-12-16 23:28572
用户头像

发布了 133 篇内容, 共 31.0 次阅读, 收获喜欢 1 次。

关注

评论

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

详解CAN总线:CAN总线故障界定与管理

不脱发的程序猿

汽车电子 CAN总线 CAN总线故障界定 CAN错误故障诊断

c++11基础

雪芙花

c c++ 10月月更

“程”风破浪的开发者|OpenHarmony设备开发之路【01】-helloword

坚果

OpenHarmony 10月月更 程”风破浪的开发者

java多线程总结

Studying_swz

Java 10月月更

“程”风破浪的开发者|Web 1.0、Web 2.0 和 Web 3.0 之间的比较

海拥(haiyong.site)

Web3.0 “程”风破浪的开发者

Feign的两个调用处理器

周杰伦本人

10月月更

c++11面试宝典(final,delete,deault,explicit,lambda表达式)

雪芙花

c c++ 10月月更

长安链源码分析之网络模块 net-liquid(11)

RxJava的操作符

周杰伦本人

10月月更

Glibc-scratch_buffer的源码分析

桑榆

源码刨析 10月月更 C++

“程”风破浪的开发者|Web3.0是什么?带你解析Web3.0

向阳逐梦

Web3.0 程”风破浪的开发者 Web2.0

进制转换、原码、反码、补码及位运算详解

夏志121

Java 后端 进制转换 10月月更

Java基础(九)| ArrayList详解与应用

timerring

Java ArrayList 10月月更

面试官竟然问我订单ID是怎么生成的?难道不是MySQL自增主键?

一灯架构

Java 10月月更

feign client客户端的自动装配

周杰伦本人

10月月更

Vue组件入门(十一)$attrs

Augus

Vue 3 10月月更

长安链源码分析之网络模块 net-liquid(9)

【Java深入学习】一个关于“锁”的程序-中

Geek_65222d

10月月更

docker学习笔记(三)

Studying_swz

10月月更

“程”风破浪的开发者|国产数据库---达梦应用技巧及使用案例

向阳逐梦

数据库 学习方法 “程”风破浪的开发者

长安链源码分析之网络模块 net-liquid(8)

长安链源码分析之网络模块 net-liquid(10)

docker学习笔记(四)

Studying_swz

Docker 10月月更

【愚公系列】2022年10月 Go教学课程 034-接口和多态

愚公搬代码

10月月更

Excel 的基本概念以及 Excel 文件的创建

向阳逐梦

Python Excel 10月月更

“程”风破浪的开发者|Web3.0

六月的雨在InfoQ

Web3.0 10月月更 “程”风破浪的开发者 Web1.0 Web2.0

2022-10-20:以下go语言代码输出什么?A:7;B:7.0;C:0;D:编译错误。 package main import ( “fmt“ ) func main() { const

福大大架构师每日一题

golang 福大大 选择题

Web3.0 杂谈 -#007(54/100)

hackstoic

Web3.0

MySQL索引底层为什么用B+树?看完这篇文章,轻松应对面试

一灯架构

Java 10月月更

一篇文章讲清楚MySQL的聚簇/联合/覆盖索引、回表、索引下推

一灯架构

Java 10月月更

过去几个月,他们把数字化融进了中国经济的毛细血管

脑极体

服务监管人_SOA_Dilip Krishnan_InfoQ精选文章