从我第一次听说SOA到现在有几年的时间了,其间和各种各样的人士有了各式各样的讨论,越来越发觉这不是个可以用定义来说得明白的概念,以前软件行业里还没有个词容易引起如此多的非议与争论,我有时觉得SOA很想禅宗里讲的,“说是一物即不中”。其中最难的,就是把这样一个抽象的概念说给没有技术背景的人去听,建立概念唯一的办法就是利用比喻。在我听说过的几十个关于SOA的比喻之中,有几个比喻得到更多人的认同。那些想把这个概念说给业务人员和管理者的技术人员,不要再冒险了,用这几个比喻试一下。

  乐高玩具—作为一种设计哲学的SOA

  这是最早的一个成功的比喻,传统的应用好比是普通的玩具,不可拆卸和拼接。基于SOA的应用都是由更小的服务组件组成的,如同乐高玩具的模块。用乐高玩具可以搭建各种不同的形状,好比可以实现不同的应用,乐高玩具的模块式基于标准的,而且可以重用。这个比喻的好处是很快给非技术人员建立一个头脑中的形象,在一个研讨会里面,组织者发了一些乐高玩具的模块,让客户们自己做出一些东西来。由此很快让听众明白,他们就是在做和软件开发类似的事情。

  也许有人会说,SOA那么复杂,用小孩玩具来比喻是否太浅显了,这时,进入深层次探讨的机会来了。看上去,乐高玩具这么简单,似乎没什么深究的。这背后隐含了一种设计哲学,设计乐高玩具的团队都是一群拥有博士的设计专家,他们必须解决的一个矛盾是,如何把标准,松耦合,模块的功能,力学等要素在设计和规划的时候统统解决,留给使用者的,只有玩乐的乐趣。一个有趣的事实是,乐高玩具这样一个看上去如此简单的东西一直没有模仿者。软件工程师都可以用十分钟说他知道SOA是怎样一会事了,就像所有人看到乐高玩具时一样。然而,当一个人用设计者而不会玩家的角度来理解乐高和SOA类似的设计哲学时就会发现,两者的服务对象其实正是不需要关心技术的人,而且,他们都是为技术买单的人。工程师的位置,到底是个玩家,还是设计者?作为玩家,工程师懂得似乎多了一点,做为设计者,他还有太多东西要学,就像要成为乐高玩具的设计者一样。

  电视与电脑—一个基于标准的结构

  修电视比修电脑难多了,虽然电脑比电视复杂多了。因为电脑有一个基于标准的结构,总线结构,即插即用的契约标准,这些IT界的流行语塑造了PC行业。SOA也拥有几个标准的参考结构,总线,松耦合这些理念和PC行业的基本理念完全相同。这个比喻的好处是,电脑是一个更为具体的例子。这个例子隐含了用比喻说技术的几个规则。第一,被比喻的事物之间一定要有同构,这是比喻的一个逻辑前提,就是说在基本结构上,两者的设计理念是近似的。第二,用于比喻的事物最好是人们喜闻乐见的,通俗的,第三,至少可以举出几点证明两者的相似之处。

  城市规划—SOA的实施需要一种循序渐进的模式

  技术总是跳跃的,应用系统永远是中庸的。应用在这个例子里面被比喻为普通的建筑物,而作为企业架构的SOA实施则被比喻成为一座城市。城市的演进必然是循序渐进的,这比喻了SOA的实施是一个旅程,比如,北京的交通总是难以解决拥堵的问题,几个环路的办法实际上等同于EAI的办法,结果是总线拥塞。如果把北京城区的许多大院打散成为更小的社区,类似于将应用的颗粒度变小,象旧金山那样,很多地方至少不会堵死.然而这个改造需要循序渐进的实施方式,想想为了奥运会北京的地铁花了多少时间来与地下的管道打交道就知道,企业应用架构的改造有多复杂。

  正面的例子的是丽江古城,这座规划于八百年前的城市,现在仍然生机勃勃,因此被称为“活的古城”。用一条河流分成不同水道流经整个古城,每家门前都有流水声,可以用水洗衣,做饭,所有的街道按照经络学说布置,所有的街区都成为在同一基础设施上的服务,最有意思的是,作为市场的四方街,采用了自动水冲洗设施。整个的地势东高西低,四方街是中间高,边缘低,因此每天人们用挡板把水累积高时,水就可以自动冲击街面了。这种设计,据说,阿姆斯特丹也有一个,只是不知道那一个更早。我们可以说,丽江古城的设计是面向服务的,水就是他们的公共服务。他们还通过一些规则来,规范水的使用,比如在以前,清晨的水在同一时间,所有人可以用来做饭,下午的某个时间,所有人都可以洗衣服。SOA里面讲的,服务契约,管控规则,基础设施优化都可以看到。

SOA概念的三个比喻相关推荐

  1. 张旭豪:外卖概念的三点进化

    这条音频,说的是"饿了么"创始人张旭豪对2016年外卖领域新趋势的分析和看法.张旭豪是外卖 O2O 平台"饿了么"的创始人.CEO.应"得到" ...

  2. SOA Presentation - SOA概念介绍

    前几天正好给实习生做了一次SOA概念的培训,现在按照大纲把部分内容简要的摘出来.大体是一个关于SOA概念的介绍,可能会让人感觉到比较"虚",但事实上,SOA如果不谈到具体的实现技术 ...

  3. 联邦学习的基本概念、三种框架和应用场景

    联邦学习的基本概念.三种框架和应用场景 前言 本文主要总结记录了联邦学习的基本概念.三种基本框架及其应用场景,下篇将从威胁模型和攻防现状入手介绍联邦学习的安全隐私现状- 一.提出背景 需求: 人工智能 ...

  4. 蛋白质结构预测---残基接触的基础知识---接触概念(三)

    蛋白质结构预测---蛋白质残基的基础知识---接触概念(三) 一.接触(contact)的概念 二.蛋白质的接触矩阵 三.蛋白质的接触矩阵的意义 四.小结 承接上文接下来我会用一条PDBID为1F88 ...

  5. JavaSE(二十)——面向对象的概念及三个基本特征

    文章目录 1. 面向对象的概念 2. 面向对象的三个基本特征 2.1 封装 2.2 继承 2.3 多态 1. 面向对象的概念 面向对象是一种符合人类思维习惯的编程思想.现实生活中存在各种形态不同的事物 ...

  6. 集群服务器分布式iis_集群,分布式,微服务,SOA概念

    概念: 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方.而集群指的是将几台服务器集中在一起,实现同一业务. 分布 ...

  7. (王道408考研数据结构)第一章绪论-第一节:数据结构的基本概念、三要素、逻辑结构和物理结构

    文章目录 一:基本概念和基本术语 (1)数据 (2)数据元素和数据项 (3)数据对象 (4)数据结构 二:数据结构三要素 (1)逻辑结构 A:集合 B:线性结构 C:树形结构 D:图形结构 (2)物理 ...

  8. python语言中最基本的概念_Python 学习之路-基本的概念(三)

    Python中一些经常用到的概念: 1.在Python中是没有常量的概念,换句话说在Python各种所有量都是可以更改的,规定将项定义为常量的量都定义为大写,eg:CONSTOF = "th ...

  9. 通信基础概念(三)相关与正交

    相关与正交       \;\;\,\quad 简单地说,一般而言,相关指的是有联系,对信号而言,相关就是相似,正交就是不相似.       \;\;\,\quad 事实上,相关(correlatio ...

  10. 海思HI3518E视频处理基础概念《三》----- 视频处理子系统VPSS

    目录 视频处理子系统VPSS 1.概述 2. 基本概念 3.VPSS 上下文关系 视频处理子系统VPSS 1.概述 VPSS( Video Process Sub-System)支持对一幅输入图像进行 ...

最新文章

  1. 浏览器下载附件Content-Disposition
  2. ios键盘横屏_iOS横竖屏旋转及其基本适配方法 转
  3. ajax请求导致status为canceled的原因
  4. LeetCode 260. 只出现一次的数字 III(位运算)
  5. Angular和.NET Core Web API入门应用程序
  6. Java基础学习总结(89)——为什么单元测试应该我们开发人员来写
  7. clean,compile,build,install,package区别
  8. android日历便签,安卓手机上有日历与便签结合的app吗?
  9. 编译运行BSR/bench源码
  10. 连载丨《极简设计:苹果崛起之道》——硅谷伊甸园(二)
  11. 电子设备的节能分析与设计
  12. wordpress数据字典
  13. 史上最全的vue.js源码解析(一)
  14. Ruby在Windows下安装
  15. 苹果iPhone手机升级系统内存空间变小不够如何解决?
  16. matlab太阳系行星,Matlab动画模拟太阳系行星运动.doc
  17. docker里面什么emule比较好_emule 服务器优先
  18. 在Mac上修复问题硬盘是如何操作的
  19. 大学计算机李凤霞课本百度云,北京理工大学李凤霞老师个人资料
  20. 一份超详细的IBM公司JAVA基础面试题附答案以及解析(题库)

热门文章

  1. 【图像评价】基于matlab无参考图像质量评价NIQE【含Matlab源码 681期】
  2. autocoder自动代码生成器_Spring Boot 集成MyBatis Plus代码生成器
  3. matplotlib条形图
  4. java class getfields_JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
  5. 华为鸿蒙4月推送名单,华为鸿蒙系统定档4月,首批升级名单确定,3款机型优先体验...
  6. sql统计各科成绩大于平均分的人_SQL第三关:汇总分析
  7. python备份目录下文件夹_python---备份目录和文件
  8. win10必须禁用的服务_Win10系统中这3个无用的设置,奉劝你还是早点关闭吧
  9. Nginx防盗链、访问控制、解析php相关配置、Nginx代理
  10. Oracle数据库常用脚本