SOA的一项关键特性就是使用松散耦合连接。传统上,应用程序与应用程序之间或者应用程序与服务之间的连接是紧耦合的,如用CORBA(公共对象请求代理体系结构)那样。此差异是很重要的。

  《 XML Schema: The W3C's Object-oriented Descriptions for XML》一书(O'Reilly公司2002年出版) 的作者 Eric Van der Vlist有下列比喻来描述这两类耦合之间的差异:在紧耦合系统中,你直接控制操作。例如,扳动墙上的开关接通电灯就是紧耦合系统,而利用电话订购书就是松耦合系统。只有当你访问控制打印机(该打印机将打印你订购的书籍)的按钮时,才可能是紧耦合。

  紧耦合系统通常比较快、也安全,传输误差的风险非常低。另一方面,松散耦合系统通常比较容易出错,但比较灵活。当你在电话上通话时对方职员可能会听错你要订购书的 ISBN编号、或者在输入时出错。如果你不记得ISBN编号,你还可以告诉对方职员,你要一本由一名有荷兰名字的人写的有关3W联盟的XML范式的新书,该书的出版社通常将动物的图片放在书的封面上,当你这样做时,你就得到了被理解的好机会。

  紧耦合往往会使部件的维护和重复使用变得非常困难,因为一个部件中的修改就自动意味着其他部件中的修改。同理,在应用程序不得不适应变化了的业务要求时,紧耦合就要做额外的工作,因为一个应用程序中的一次修改将迫使开发人员对其他相连接的应用程序进行修改。

  从一般意义上讲, Web Services 就是一类 SOA ,其接口都是基于标准化了的互联网协议。此外,除二进制数据附件, Web Services 消息必须用 XML 语言。通常讲, Web Service 只是一个用了 SOAP (简单对象访问协议)和 Web Services 描述语言的 SOA 。但是, SOA 不要求使用我们所理解的 Web Services ,有些类型的 Web Services 不用 SOA 也能部署。

理解SOA的松散耦合与紧密耦合相关推荐

  1. 武汉大学《GNSS、INS和激光雷达的紧密耦合预积分,用于城市环境中的车辆导航》

    摘要 定位和导航的需求不断增长.目前,全球导航卫星系统(GNSS)被认为是全球定位服务的重要手段.然而,由于严重的信号衰减.反射和阻塞,其在城市地区的应用受到了限制.惯性导航系统(INS)可以在短时间 ...

  2. 从高耦合到低耦合到底有多远?

    一切都是拥抱变化,反过来说,如果没有变化或者需求很稳定,那么一切就是过度设计.所以,一切都要看情况,回到了马克思主义的辩证学.呵呵. 无论书还是博客, 耦合这个词已被无数人说烂,任何一位程序员都会告诉 ...

  3. 【035期】面试官问:什么是耦合?解耦合的方法有哪几种?

    >>号外:关注"Java精选"公众号,回复"面试资料",免费领取资料!"Java精选面试题"小程序,3000+ 道面试题在线刷, ...

  4. 编程中遇见的“耦合”“耦合度”“低耦合”是什么意思

    怎么说呢,一个人要开发大型软件是很没效率的,所以就要有很多人共同开发,懂吧 那么很多人共同开发,你不能所有人都开发一个模块,一个功能,一个文件对吧,是不是要有个分工呢?比如说做一个程序,有人开发数据库 ...

  5. 直流耦合and交流耦合

    从示波器的应用来说: 交流耦合就是通过隔直电容耦合,去掉了直流分量 直流耦合就是直通,交流直流一起过,并不是去掉了交流分量. 比如:在3V的直流电平上叠加一个1Vpp的弦波,如果用直流耦合,看到的是以 ...

  6. 频率计的交流耦合和直流耦合的区别_示波器DC/AC耦合设置及影响

    点击上方"电磁兼容检测",马上关注 示波器DC/AC耦合设置及影响 摘要:介绍了示波器的DC/AC耦合设置及其影响. 耦合指把电信号从一条电路连接到另一条电路使用的方法.在这种情况 ...

  7. 通信内聚c语言例子,功能内聚、顺序内聚、数据耦合、控制耦合例子

    功能内聚.顺序内聚.数据耦合.控制耦合例子(C语言描述) 1.举出功能内聚.顺序内聚.数据耦合.控制耦合各一例(用C语言).(1)功能内聚 /* *功能内聚性例子 *根据出生年份得出年龄 */#inc ...

  8. 一张图来帮你理解 SOA(转发)

    分类专栏: 架构设计 SOA指南 SOA 曾经一度是技术领域中最难以理解的一个概念. SOA 似乎让很多人感到困惑 - 一般来讲这是由于人们认为它拥有几乎神奇的力量.事实上 SOA 只是一个很简单的概 ...

  9. java 耦合性_软件工程中的耦合性和解耦合性是什么意思?

    我也来通俗地讲一讲,说的不好请勿喷. 简单概括:耦合就是程序中的一部分跟其他部分之间的关系.解耦合就是把必要的耦合理顺,同时尽量减少不必要的耦合(这一句其实就是高内聚低耦合的通俗解释). 如何看待耦合 ...

最新文章

  1. 文档型数据库设计模式-如何存储树形数据
  2. Eclipse和MyEclipse使用技巧--解决MyEclipse中的js报错的小方法
  3. 【渝粤题库】陕西师范大学164111 Java及JSP动态网页编程与应用 作业 (高起专)
  4. linux系统IO操作
  5. 在windows上搭建redis集群(Redis-Sentinel)
  6. (191)FPGA上电后IO的默认状态(Vivado软件默认为0)
  7. 时间序列模型之——prophet
  8. C++ 字节流与二进制字符串相互转换(一个简单的明文加解密程序)
  9. E3 tree 1.6在Firefox下显示问题的修复
  10. python bottle session-使用beaker让bottle支持session
  11. 深度学习之神经网络核心原理与算法-caffekeras框架图片分类
  12. 最强面试题整理第二弹:Python 进阶面试题(附答案)
  13. Sailfish OS构建(1)
  14. iPython的安装过程
  15. Element 表格序号问题
  16. php strpos注意问题坑,php小白容易出现的 strpos 逻辑错误
  17. DEV gridview数据筛选
  18. linux下终端urvst,Linux中的静态库与动态库
  19. mfc中StretchBlt缩放图像失真问题【zozo】
  20. Google搜索规则——更准确的获取内容

热门文章

  1. 在html语言中br是什么意思啊,HTML中hr和br是什么意思?有哪些作用?
  2. Loki系统研究及实践
  3. ASP.NET AJAX---UpdateProgress控件小实例 (实现进度条设置显示图片时间)
  4. 豆瓣电影top25爬取
  5. Eggjs入门系列-基础全面讲解(中)
  6. 使Win32窗口透明的几种方法
  7. 使用Flask-QRcode生成动态二维码
  8. GC原理介绍、排查FGC及线上故障的步骤
  9. 入职国企计算机公司的感受
  10. Grafana 变量