一、讨论主题与观点

写一篇文章、发现一次自觉得有意思的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到底是偏向那一个重点呢,欢迎各位博客园朋友讨论本话题。

最新文章

  1. 使用Ring Buffer构建高性能的文件写入程序
  2. 去除Jsp页面空白行
  3. 动易CMS之标签管理
  4. eclipse下tomcat添加部署Module,Web名称与项目名称不一致的解决方法
  5. 【浅析】IMU代码
  6. 理解并使用.NET 4.5中的HttpClient
  7. juery 选择器 选择多个元素
  8. poj2406 周期
  9. 【转】 Android中退出程序的提示框
  10. unistd.h
  11. R和Python,对抗or融合?
  12. 最小化安装centos5.5
  13. zookeeper&amp;acticemq&amp;redis&amp;tomcat安装
  14. Linux eject 命令
  15. PAT甲1115 Counting Nodes in a BST【dfs】
  16. C语言中可变形参简单实例
  17. fastjson集合转字符串
  18. android快速启动动画
  19. Spring MVC可参数化的视图控制器
  20. jvm问题定位:cpu持续25%

热门文章

  1. MySql大数据量恢复
  2. sql语句操作
  3. map的使用
  4. 基础01 dos命令
  5. ffmpeg-20160508-git-bin-v2
  6. Java中hashCode()方法以及HashMap()中hash()方法
  7. 20151130test-&gt;20160530
  8. ssh自动登陆
  9. sql 查询表的所有详细信息
  10. 6. ZigZag Conversion