一、讨论主题与观点

写一篇文章、发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论。

大家的讨论观点主要集成在:对于ESB的定义也有类观点,一类观点是把ESB定位于SOA架构之中的基础服务设施(书上都这么讲),还有一类观点就是ESB做为异构系统之间的集成和整合之间,其实ESB本身都能实现两种观点的功能,只是觉得在时下,应该更偏重于那一方面,两者的本质上最大的区别是,同一系统内部的功能是否需要经过ESB进行调用。

  ESB是SOA架构的基础服务设施的观点,我们可以用买下图来表示:

  这个图应该是最符合SOA架构和ESB的一些书籍之间的ESB架构图,我们可以简单的解释一上,即史是A系统调用A系统的服务,也必须经过ESB系统,那么有ESB系统的规划和建设就是一个必须早期考虑的问题,即我们必须先建立SOA的基础架构和ESB体系,并且在这个架构上面开发A系统、B系统、C系统,这是一种观点,那么在目前我们国内,政府、企业领导应答是很喜欢这样的结构的,统一规划、场面宏大,这里面就出现一个问题,整体系统被规划的非常完美,但是实际上这更好像一个用远也不能完全的梦(永远都没有完美的东西),实现成本就不可估量

  ESB最好是做为异构系统之间的集成整合之用,我们可以用买下图来表示:

  这个观点是我的观点为,即我认识这是一种比较现实和比较经济的观点,ESB用被做于异构系统之间的整合,他是支持异构系统的整合的基础设施,而不是基于统计规划下的基础服务设施,基于这个观点的原因是,企业内部各种各样的系统不可能全部推翻了,全部规划和重来,很多企业的供应商在某一领域也做的很专业,博众家之长并进行集成应该是一个比较现实和可取的做法,一个系统一个系统稳定有序的实现,应该是比全部重新规划具体更小的风险

二、聊天记录摘抄

金靓(123140395) 13:40:58 
大家好 
金靓(123140395) 13:41:34 
想做服务的统一调用 
也就是说所有的业务系统都走服务总线 
通过总线来进行业务服务的调用

简单的消息交换模式没问题 
请求/响应 
但是双向交换模式下如何实现呢 
何戈州<hotdefans@qq.com> 13:52:15 
双工吗? 
金靓(123140395) 13:52:23 
对的 
何戈州<hotdefans@qq.com> 13:52:36 
那也没问题

金靓(123140395) 13:52:57 
能否给点思路 
何戈州<hotdefans@qq.com> 13:53:05 
socket 问老魏 
金靓(123140395) 13:53:14 
基于WCF

魏琼东(47920381) 14:19:02 
@纳尼 双工模式貌似ESB实现不了吧。

纳尼(123140395) 14:19:27 
BIZTALK里也不能吗

纳尼(123140395) 14:19:48 
@魏琼东 貌似可以的

魏琼东(47920381) 14:21:06 
但是全双工的通论,让ESB通知应用这事难了点

纳尼(123140395) 14:21:23 
所以我有点郁闷 
纳尼(123140395) 14:21:41 
其实本来没去设计双向通信 
魏琼东(47920381) 14:21:46 
实现全双方都是socket吧 
魏琼东(47920381) 14:22:10 
除非用ESB回调某个系统的服务 
纳尼(123140395) 14:22:27 
对的 
魏琼东(47920381) 14:22:32 
即应用掉用===》ESB===》应用的服务 
魏琼东(47920381) 14:22:40 
那你说的是ESB的服务路由了

纳尼(123140395) 15:35:20 
虽然没有什么含量,而且是在H.O.T指导下才弄明白的,但还是应该分享一下给大家

纳尼(123140395) 15:36:06 
刚才我说的那个客户端需要调用服务实现双向通信,基于ESB 
纳尼(123140395) 15:36:52 
ESB提供双向接口服务

纳尼(123140395) 15:37:54 
其实我想做的ESB,要实现服务的统一调用 
纳尼(123140395) 15:38:09 
所有的客户端都通过ESB来调用业务服务

纳尼(123140395) 15:38:39 
这样的话,势必需要ESB对客户端公开的接口都要相对稳定 
纳尼(123140395) 15:38:47 
自己要做

纳尼(123140395) 15:39:24 
也就是说A->ESB->B->ESB->A

纳尼(123140395) 15:38:39 
这样的话,势必需要ESB对客户端公开的接口都要相对稳定 
纳尼(123140395) 15:38:47 
自己要做

纳尼(123140395) 15:39:24 
也就是说A->ESB->B->ESB->A 
过错  <wang2650@sohu.com> 15:39:36 
java 不怕麻烦用mule 哈哈 
魏琼东(47920381) 15:39:37 
这个做法算是ESB的滥用吧 
纳尼(123140395) 15:39:51 
基于WCF下实现,也就是ESB公开一个回到契约 
魏琼东(47920381) 15:40:21 
WCF本身在TCP通信下本身就回回调 
魏琼东(47920381) 15:40:28 
但是是要选择TCP通信的前提 
纳尼(123140395) 15:40:28 
@魏琼东 您指的是统一调用吗?

纳尼(123140395) 15:43:12  
ME TOO 
魏琼东(47920381) 15:43:18  
这说明在找抽 
纳尼(123140395) 15:43:30  
我也这么觉得 
魏琼东(47920381) 15:43:34  
是在搞为了ESB搞ESB 
魏琼东(47920381) 15:43:42  
是没有需求搞有ESB 
魏琼东(47920381) 15:43:47  
真正企业有很多不同的系统 
魏琼东(47920381) 15:43:53  
比如PB开发的,VB开发的 
魏琼东(47920381) 15:43:56  
JAVA开发的的 
魏琼东(47920381) 15:44:00  
.NET开发的 
魏琼东(47920381) 15:44:04  
数据库跑在ORACLE上的 
魏琼东(47920381) 15:44:08  
SQLServer上的 
冯永博(309805629) 15:44:10  
sharepoint 搞么 
魏琼东(47920381) 15:44:11  
还有MYSQL的 
纳尼(123140395) 15:44:12  
是的 
魏琼东(47920381) 15:44:28  
那么在这种情况下ESB就是解决问题的存在的先决条件之一 
魏琼东(47920381) 15:44:39  
ESB是因为大家做接口做郁闷了,才上的。 
魏琼东(47920381) 15:44:42  
不是一开始就上的。 
纳尼(123140395) 15:44:54  
是的 
魏琼东(47920381) 15:45:01  
ESB的设计更多的是解决不修改各个系统而实现与系统的对接 
纳尼(123140395) 15:45:14  
但是ESB更多的是更好的管理服务 
魏琼东(47920381) 15:45:18  
不是了你把所有服务都通过ESB,所有系统都修改一通 
纳尼(123140395) 15:45:27  
您说的是系统的集成 
魏琼东(47920381) 15:45:29  
那不是没事找抽嘛 
纳尼(123140395) 15:45:58  
您说的正在做,只不过是其他人 
魏琼东(47920381) 15:46:04  
ESB的做用不就是做这事的嘛 
魏琼东(47920381) 15:46:21  
当然,ESB也可以是SOA的基础设施 
魏琼东(47920381) 15:46:26  
所有的服务都经由 
魏琼东(47920381) 15:46:28  
ESB 
魏琼东(47920381) 15:46:31  
这个也没错 
纳尼(123140395) 15:46:38  
是的 
纳尼(123140395) 15:46:53  
一个完整得SOA平台 
魏琼东(47920381) 15:47:06  
是啊 
纳尼(123140395) 15:47:12  
服务的管理需要禁得其考研 
魏琼东(47920381) 15:47:16  
@纳尼 把你的ESB Show一下 
纳尼(123140395) 15:47:32  
如果不走ESB,那么服务很难管好 
魏琼东(47920381) 15:47:35  
“需要禁得其考研“,这个好 
纳尼(123140395) 15:47:38  
对不起,我刚刚开始 
纳尼(123140395) 15:47:47  
 
魏琼东(47920381) 15:47:56  
现实之中就没有这样的需要 
纳尼(123140395) 15:47:58  
等我把这个做差不多了 
魏琼东(47920381) 15:48:06  
为了轮子造轮子 
纳尼(123140395) 15:48:06  
我会共享出来的 
纳尼(123140395) 15:48:17  
SOA是骗人的 
魏琼东(47920381) 15:48:22  
我定位做异构系统的集成之用 
魏琼东(47920381) 15:48:27  
也不是骗人的 
魏琼东(47920381) 15:48:44  
SOA架构是服务于合作伙伴的 
纳尼(123140395) 15:48:48  
那毕竟只是SOA的一部分 
魏琼东(47920381) 15:48:55  
内部一系统搞的那么复杂就有问题了 
纳尼(123140395) 15:49:29  
但是对于庞大的企业,业务很大 
纳尼(123140395) 15:49:39  
所有的业务都要是发布成服务的 
纳尼(123140395) 15:50:07  
如果随便的去调用服务,那么是很杂乱的 
纳尼(123140395) 15:50:19  
我也很赞同您说的 
纳尼(123140395) 15:50:36  
就是系统内的服务不走ESB 
纳尼(123140395) 15:50:48  
但是,什么又是系统内的呢 
纳尼(123140395) 15:51:01  
很多数据慢慢会被公有化 
....(879621940) 15:51:13  
请问一下,如果一套系统,包括HR,CMR,ERP,OA,BI等要实现数据共享,是不是也可以用SOA技术呢? 
纳尼(123140395) 15:51:41  
至少中石油正在做 
纳尼(123140395) 15:51:53  
@。。。 如上回答 
纳尼(123140395) 15:52:09  
包括国内的拥有 
纳尼(123140395) 15:52:12  
用友 
....(879621940) 15:52:26  
就是说都是使用SOA技术对吧? 
纳尼(123140395) 15:52:37  
他们的平台也是基于SOA的(2010年前,现在不知) 
纳尼(123140395) 15:52:50  
SOA更多是个理念 
魏琼东(47920381) 15:52:50  
你有一个假设已经错了 
纳尼(123140395) 15:52:55  
“骗人的” 
魏琼东(47920381) 15:53:03  
你假设企业内部系统是统一的 
纳尼(123140395) 15:53:06  
@魏琼东 您说 
魏琼东(47920381) 15:53:12  
纳尼(123140395)  15:49:29 
但是对于庞大的企业,业务很大 
所有的业务都要是发布成服务的 
如果随便的去调用服务,那么是很杂乱的 
我也很赞同您说的 
魏琼东(47920381) 15:53:30  
你的假设就是要早一部非常完美的东西 
魏琼东(47920381) 15:53:39  
比如说你的服务是完美的 
纳尼(123140395) 15:53:42  
对 
魏琼东(47920381) 15:53:59  
而事实是当系统庞大到这个份上就有一个问题 
魏琼东(47920381) 15:54:05  
这个东西永远都不成熟 
魏琼东(47920381) 15:54:07  
OK 
魏琼东(47920381) 15:54:09  
明白 
纳尼(123140395) 15:54:15  
SOA的理念不仅仅是关注现在,还要展望未来(说出这种话,有点恶心) 
魏琼东(47920381) 15:54:19  
那么更实现做的做法是什么 
纳尼(123140395) 15:54:43  
@魏琼东 BPM可能会解决您所说的 
魏琼东(47920381) 15:54:51  
更现实的做法是企业内部的系统都是由不同的供应商来供应和开发 
纳尼(123140395) 15:54:54  
快速应对需求的变化 
纳尼(123140395) 15:55:06  
赞同 
冯永博(309805629) 15:55:13  
这个应该没法避免,要信息化建设有个规划和统筹 
魏琼东(47920381) 15:55:15  
因为比始做HR的对HR业务一定是擅长的 
魏琼东(47920381) 15:55:28  
做PLM的也是擅长PLM的 
魏琼东(47920381) 15:55:41  
并且这样的成本也就会低很多 
魏琼东(47920381) 15:55:49  
就如同软件工程之中的敏捷方法一样 
魏琼东(47920381) 15:55:57  
拆成小的,一个一个人搞 
纳尼(123140395) 15:55:58  
非常赞同 
....(879621940) 15:55:59  
如果这些系统都是自己开发呢? 
魏琼东(47920381) 15:56:08  
一个搞坏也只是一个 
魏琼东(47920381) 15:56:16  
不是一个搞坏全搞完完了 
冯永博(309805629) 15:56:22  
自己开发的也不一样就用的好 
魏琼东(47920381) 15:56:26  
我为什么支持这些观点呢 
魏琼东(47920381) 15:56:34  
是因为我做10多年的医疗业务 
魏琼东(47920381) 15:56:38  
大家都走过一个过程 
魏琼东(47920381) 15:56:48  
前些年大家都追求一个医院全是一家的 
纳尼(123140395) 15:56:57  
嗯 
魏琼东(47920381) 15:56:59  
但是企业做的累,医院觉得都不专业 
魏琼东(47920381) 15:57:04  
所以现在慢慢的都是开放式的 
魏琼东(47920381) 15:57:10  
专业的各做各的

纳尼(123140395) 15:57:51 
我觉得BPM足够用了 
魏琼东(47920381) 15:57:57 
客户也觉得这样挺好 
冯永博(309805629) 15:58:05 
现在的趋势是越做越大 
纳尼(123140395) 15:58:14 
但是领导玩的都是趋势 
纳尼(123140395) 15:58:24 
政府上SOA 
魏琼东(47920381) 15:58:30 
@刺客 哥们,你的脑袋在想什么呢 
纳尼(123140395) 15:58:34 
移动、联通 
魏琼东(47920381) 15:58:44 
领导的事咱不想了 
纳尼(123140395) 15:58:45 
还有中石油 
魏琼东(47920381) 15:58:50 
反正 你做出ESB那样搞也行。 
纳尼(123140395) 15:59:13 
领导从别人那抄点想法,害苦我们啊 
冯永博(309805629) 15:59:19 
比如 SAP的ERP 集成的子系统是越来越多 
纳尼(123140395) 15:59:22 
我是这么想的 
过错  <wang2650@sohu.com> 15:59:31 
soa通常解决是服务发布的问题  esb通常解决的是异构通信的问题 
纳尼(123140395) 15:59:42 
最好是适应特定的场景 
过错  <wang2650@sohu.com> 16:00:53 
有的时候目的不同 但是会用同一样的东西 
过错  <wang2650@sohu.com> 16:02:04 
soa不过是esb的一部分罢了 
纳尼(123140395) 16:02:49 
@过错  呵呵

  那么在建设和使用ESB到底是偏向那一个重点呢,欢迎各位博客园朋友讨论本话题。

作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。

本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/p/3375626.html,如需转载请自行联系原作者

SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施...相关推荐

  1. 绑定服务调用本地服务中的方法

    如果想调用服务中的方法, 通过startService()是做不到的, 这时需要用bindService来解决. 下面的demo是在Activity中调用Service中的自定义方法---method ...

  2. SOA架构师注意的问题

    什么是SOA架构设计师的职责? 那什么是企业级SOA架构设计师的具体角色呢?什么是SOA架构设计师与设计和开发人员之间的差别呢?相信这些都是使大家最容易产生迷惑的问题.举个实际的例子来说,当构建一个基 ...

  3. 软件工程课程设计·SOA架构搭建SSM框架的网上商城系统

    软件工程课程设计·SOA架构搭建SSM框架的网上商城系统 项目简介 本系统利用SSM框架.Dubbo框架.Maven模块化开发等技术开发的一个网上商城项目,主要包括订单系统模块.购物车系统模块.搜索系 ...

  4. SOA架构与微服务架构到底是什么?以及对应的一些常用的框架简介

    架构是逻辑上的设计模式,而框架则是具体的实现.一个架构模式上,可能会使用到多个框架. 一.架构的演变 架构的演变是根据业务量的急速扩张对技术要求不断的加深而产生的.如果细粒度的划分可以有很多路线,我一 ...

  5. 单体应用、SOA架构、微服务架构的对比

    目录 前言: 单体架构 SOA架构 微服务架构 前言: 随着近年来云技术的发展,越来越多的用户选择使用云技术来代替传统的IT基础设施.在云技术发展的早期,业界的关注点集中在虚拟化.分布式.存储等laa ...

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

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

  7. 浅谈BPM和SOA架构下的电子政务系统

    摘  要:面对我国电子政务建设中存在的若干问题,为了实现政府由"管理型"向"服务型"转变,本文提出,未来的电子政务系统采用以服务驱动为核心的SOA技术架构将更能 ...

  8. 微服务架构中职能团队的划分

    传统单体架构将系统分成具有不同职责的层次,对应的项目管理也倾向于将大的团队分成不同的职能团队,主要包括:用户交互UI团队.后台业务逻辑处理团队与数据存取ORM团队.DBA团队等.每个团队只对自己分层的 ...

  9. μSOA 架构 - SOA 的有力替代和补充

    白杨 2019-03 baiy.cn Copyright (C) 2016 - 2019 Bai Yang, baiy.cn / baiyang.name, baiyang@gmail.com, Al ...

最新文章

  1. 哈佛大学(2020)《CS50 Python人工智能入门》课程资料下载
  2. 相机SDK采集的图像从堆栈读取并转为HALCON的格式继续目标识别
  3. checksum linux 命令_linux常用命令总结
  4. Java SpringMVC框架学习(二)httpServeltRequest和Model传值的区别
  5. 构成子网与构成超网的分析
  6. 数据在计算机中的存储
  7. WORD 粘贴代码 不检查语法
  8. mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值
  9. Apache Spark源码走读之4 -- DStream实时流数据处理
  10. Windows使用筛选器来处理异常
  11. c++求n的几次方_数理统计|笔记整理(E)——Ch7-C习题课
  12. Linux 命令(54)—— trap 命令(builtin)
  13. 时隔两年,PuTTY 喜提新版
  14. 初探VMware View 5.1
  15. GIS空间分析 栅格数据分析3 可达性分析
  16. 全球定位实景导航 iOS实用应用周排行
  17. 算法【打渔晒网问题】
  18. 街机游戏-FC游戏的hack修改rom
  19. Linux网卡模块,裁剪Linux并实现网卡模块的安装(附有命令移植的脚本)
  20. html实现数据的增删查改

热门文章

  1. 卡迈克尔数 Carmichael Numbers(挑战程序设计竞赛)
  2. bytebuffer获得byte[]的操作
  3. matlab 中@的用法
  4. 我国最早研究计算机的科学家,我国著名计算机科学家、西安交大教授郑守淇逝世,享年93岁...
  5. “FF新推荐”猥琐的弹窗如何关闭?
  6. Python+Matplotlib绘制曲线并实现鼠标跟随的放大镜
  7. 华为V8手机USB OTG Type-C接口数据线
  8. 支付宝支付接口的调用(支付宝支付的实现)
  9. Java 中的三角函数
  10. 鉴于近期的自然灾害,WorldRemit免收向菲律宾汇款的费用