目前,关于面向服务的架构,即SOA,和有关如何“正确”构建SOA的争论无处不在。我个人认为这一点都不奇怪,因为现在每一种新兴的计算趋势都会带来不同的争论,并且每一家厂商都会借此机会大张旗鼓地宣传他们的技术和产品是最适合用户的,能够帮助用户充分利用每一种新兴技术和产品的优势。为了充分挖掘狂热IT趋势中的用户兴趣,厂商们都会积极地重新定位自身已有的产品组合。然而,糟糕的是,这种做法往往会造成认识上的混乱,甚至让用户对SOA丧失信心。因为厂商往往无法完全兑现他们所做的承诺,销售的所谓适合SOA架构的技术解决方案也许最终证明并不合适。

  想要对SOA建立正确的认识,首先必须认识到从概念上来讲SOA是一种分布式的架构。作为SOA的核心要素之一,服务的目的是要实现与另一项服务的远程通信,尤其是要实现数据互享。而SOA架构的目的则是要彻底变革IT系统的构建方式,由原来的建立专有的单一应用变为建立更为高级和整合的应用,这种应用的显著特点就是充分利用已有的、可以共享和重复使用的功能,也就是服务。

  在部署和使用可共享和重复使用的服务方面,分布式SOA架构是最为简单易行的途径。并且不论是从成本角度还是从技术角度,分布式SOA架构都对目前业界普遍认同的渐进式的部署提供了最好的支持,同时,使系统具备更强的部署灵活性、适应性和可维护性(例如,一个服务与整个应用来比,对服务的验证和升级要容易得多)。

  然而不幸的是,集中式的SOA架构方式还在被不断开发和鼓吹。这些厂商们会不遗余力地说服潜在用户,他们所提供的技术和产品自始至终都支持SOA架构,且从设计伊始便是为了方便用户建立SOA架构,而不管这些技术和产品原本是为JEE应用服务器而设计,还是为EAI系统而设计。

  换句话说,对分布式SOA架构持反对意见的厂商这样做,是由他们所拥有的软件架构的性质所决定的。一个EAI Hub,或是基于JEE的应用堆栈式架构,亦或其他解决方案,它们的消息请求都必须经过中央控制点,因此都不能被称为真正的分布式解决方案。因为在它们的架构中,如果要执行某项服务请求,都必须通过Hub或中央服务器来实现。集中式SOA架构会增加成本,限制资源的再利用,降低系统的灵活性,并且有可能导致成本高昂的系统瓶颈。最糟糕的结果是,它还有可能成为用户取消SOA计划的第一原因。如果SOA架构的灵活性不足以满足用户的各项需求,无疑会导致用户对SOA架构的彻底失望。

  如果我们来认真研究一下互联网,大家就可以明白什么是能够成功满足用户需求的分布式架构。互联网是迄今为止规模最大的分布式应用,SOA架构正应该具备互联网的这种分布式特性。当用户使用浏览器点击URL链接时,其请求并不是通过安装在服务器或Hub的中央控制程序来路由,而是由浏览器直接传递到请求页面所在的网络服务器。这种方法非常适合互联网,同样也非常适合企业的SOA架构。由于请求不需要通过Hub或中央服务器,因此互联网的每个端点可以自由更新而不致影响客户端,也不会影响其他站点,更不需要更新Hub或中央服务器。一个好的SOA架构就应该具备这种功能。

  还好,具备SOA分布式特性的基础架构解决方案确实存在。分布式SOA架构通过智能端点让具备某种服务功能的应用自动找寻其他服务,并与其实现相互通信。这些智能端点同时还具备极强的可获得性和高安全性能等企业级服务特性,从而能够确保其具备现有的企业关键应用所需要的各种性能。分布式SOA架构就是建立一个平台中立、高度灵活且基于标准的IT环境,从而能够更好地应对不断变化的技术和业务环境。因此,分布式SOA环境能够更好地满足基于SOA架构的应用程序对各项技术和成本的要求。而且,分布式SOA允许客户按照自己的计划渐进地部署服务,比如一次部署一两个服务,在未来根据具体的业务需要,为系统增加服务编排、注册/贮存、管理等各项高级功能。

  需要强调的是,我并不是说通过EAI系统、hub或JEE服务器建立的集中式SOA架构的方式都不好,都是错误的。在许多情况下,现有企业应用很多都是采用上述形式实现的。我所要说明的是一个好的SOA架构不应该局限于完成EAI系统或JEE应用服务器架构所能做的;实际上,一个好的SOA架构应该包容集中式的系统,并将它们融入到可重用的服务体系中,这才是分布式SOA架构的真谛。

  在当今的航空业,低成本航空运营商正在挑战资深航空运营商的业务。以航空运输业的发展为例,我们可以从中发现分布式的优点同样在航空业中得到了充分的体现。资深运营商都是依靠昂贵的Hub和星型模式,通过特定的专用运输Hub输送旅客。费用昂贵的大型飞机将旅客从小型机场运送到中央的Hub机场,在这里,旅客才能继续他们的旅程到达最终的目的地。在这种模式下,飞机运营成本更高,机场设施收费也会更高。随着低成本的航空运营商的兴起,他们的运输模式是分布式、点到点的模式(小型飞机往返于小型机场之间),为旅客节约了时间和成本而大受欢迎,这使得传统Hub模式的航线正在面临巨大的财务问题。

  SOA用户不需要更多相同的冗繁、昂贵的堆栈软件架构。他们所需要的是专门针对满足SOA发展趋势而设计的好软件,也就是如何使得已有(或新的)IT资产可以得到更好重用,如何令IT系统更加灵活,并能快速构建新应用。SOA的设计也需要更好的方法来实施和部署可重用的服务,并且做到能够随时随地且简易直接地使用这些服务。其实,用户更需要低成本的SOA解决方案,令他们可以从小规模SOA做起,并随着业务的增长逐步扩大规模,同时根据自身的需求增加服务质量和其他功能等;与此同时,使用点到点的通信方式,避免新增加昂贵的服务器和Hub。简而言之,SOA用户需要的SOA架构必须真正具备SOA架构的固有特性,也就是分布式的特性。

转载于:https://www.cnblogs.com/snake-hand/archive/2007/03/01/2452452.html

分布式SOA基础架构崭露头角相关推荐

  1. weblogic jms消息 删除_利用 Kafka 设置可靠的高性能分布式消息传递基础架构

    世界已经迈进"移动"时代,现在应用程序必须能够实时提供数据,这不仅包括数据库表中存储的重要最终结果,还包括用户使用应用程序时执行的所有操作.任何可用信息,例如,用户点击量.日志数据 ...

  2. 规划 SOA 参考架构

    这阵子参与编写一本SOA 专刊,因篇幅关系,部分内容无法纳入,在此将其以博客形式发表. SOA 参考架构 (Reference Architecture) 是一个框架,使各个项目都有一个遵从的依据,借 ...

  3. 构建基于分布式SOA架构的统一身份认证体系

    摘要:本文充分利用SOA架构松耦合的特点,通过规范统一网络接口实现业务系统整合,既提升系统安全性,又简化资源访问操作,具有重要的理论和现实意义. 统一身份认证旨在将分散在各个信息系统中的用户和权限资源 ...

  4. IBM SOA[ESB,BPM,Portal等]基础架构图解

    最近公司对众多的异构系统进行SOA化,产品选型为IBM的Websphere系列产品的WMB,BPM,Portal,LDAP等技术,根据具体的描述,连猜带蒙的画了个系统协作图,有不对的地方欢迎大家拍砖. ...

  5. 系统架构的演变过程(单体应用架构、垂直应用架构、分布式SOA架构、微服务架构)

    文章目录 系统架构演变 单体应用架构 垂直应用架构 分布式SOA架构 什么是SOA 微服务架构 分布式SOA架构和微服务架构对比 系统架构演变 随着互联网的发展,网站应用的规模不断扩大,常规的应用架构 ...

  6. b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释

    b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释 继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更 ...

  7. WCF分布式开发步步为赢(1):WCF分布式框架基础概念

     众所周知,系统间的低耦合一直是大型企业应用系统集成追寻的目标,SOA面向服务架构的出现为我们的如何利用现有企业系统资源进行企业ERP系统设计和实现提供了重要的参考原则.SOA如此炙手可热,各大厂商都 ...

  8. 1号店11.11:分布式搜索引擎的架构实践

    http://www.uml.org.cn/zjjs/201512011.asp "11.11"是一年一度的电商盛宴,为了准备这个一年内最大规模的促销,1号店各条战线都在紧张有序地 ...

  9. 我对分布式多中心架构的几点看法

    每天都在谈SOA和微服务,但你真的理解什么是服务吗? 服务的技术架构之争 服务应该去版本化,不管是微服务还是SOA 任何架构的调整只是拆了东墙补西墙,无法解决效率问题 先厘清服务治理与组织架构的关系, ...

最新文章

  1. cache性能分析实验 北邮_北邮人又获奖啦快来点赞!
  2. nextcloud icon_吉利ICON,我信任的好伙伴,感谢有你的陪伴
  3. Codeforces Round #593 (Div. 2) D. Alice and the Doll 暴力 + 二分
  4. c语言xc比较大小写,XCTestAPI文档.docx
  5. led灯bin值_这款指甲刀自带3倍镜和LED灯,颠覆剪指甲体验,100元也值
  6. 通用客户端表单验证函数修正版(zz)
  7. 走进 Growth Hacker 的世界
  8. Perl文件内容对比
  9. java怎么分组查询_JAVA8 分组统计
  10. 计算机辅导资料,计算机二级辅导资料
  11. 惠普HP LaserJet 1160 驱动
  12. 《金字塔原理》读书摘记
  13. Python爬虫实战之爬取链家广州房价_03存储
  14. html图片幻灯片效果,使用CSS3实现的超酷幻灯图片效果
  15. 基于php的心理测试,据说是韩国最受欢迎的心理测试~~
  16. 物联网开发笔记(48)- 使用Micropython开发ESP32开发板之控制OLED ssd1306屏幕
  17. 计算机基础_程序是怎样跑起来的_04_有棱有角的内存
  18. HTML table 标签边框问题(隐藏表格边框、单元格边框等)
  19. 使用JDBC连接MySQL数据库
  20. Opengl ES系列学习--莫比乌斯带

热门文章

  1. Android逆向笔记-通过ApkTool源码分析未能反编译APK的原因
  2. 计算机网络-VRRP
  3. Spring Boot笔记-通过反射获取Spring Boot中的Bean(反射调用Service)
  4. 创建失败_【阿里云主机】二级域名创建失败解决方法
  5. matlab 同一坐标系 散点图 t,matlab上机练习
  6. 旧式计算机英语,旧式的英文怎么说
  7. 视觉开发需要什么程度的数学_软件开发需要学好数学吗?
  8. java 动态单元格涂色_如何编写自定义DefaultTableCellRenderer来着色特定单元格并“保留”其他单元格的颜色,Java...
  9. C语言去掉字符串的换行符
  10. Linux系统编程20:基础IO之从内核代码深刻理解Linux是如何管理文件及文件描述符的本质是什么