写一篇文章、发现一次自以为有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论。java
你们的讨论观点主要集成在:对于ESB的定义也有类观点,一类观点是把ESB定位于SOA架构之中的基础服务设施(书上都这么讲),还有一类观点就是ESB作为异构系统之间的集成和整合之间,其实ESB自己都能实现两种观点的功能,只是以为在时下,应该更偏重于那一方面,二者的本质上最大的区别是,同一系统内部的功能是否须要通过ESB进行调用。数据库
ESB是SOA架构的基础服务设施的观点,咱们能够用买下图来表示:架构
这个图应该是最符合SOA架构和ESB的一些书籍之间的ESB架构图,咱们能够简单的解释一上,即史是A系统调用A系统的服务,也必须通过ESB系统,那么有ESB系统的规划和建设就是一个必须早期考虑的问题,即咱们必须先创建SOA的基础架构和ESB体系,而且在这个架构上面开发A系统、B系统、C系统,这是一种观点,那么在目前咱们国内,政府、企业领导应答是很喜欢这样的结构的,统一规划、场面宏大,这里面就出现一个问题,总体系统被规划的很是完美,可是实际上这更好像一个用远也不能彻底的梦(永远都没有完美的东西),实现成本就不可估量。socket
ESB最好是作为异构系统之间的集成整合之用,咱们能够用买下图来表示:spa
这个观点是个人观点为,即我认识这是一种比较现实和比较经济的观点,ESB用被作于异构系统之间的整合,他是支持异构系统的整合的基础设施,而不是基于统计规划下的基础服务设施,基于这个观点的缘由是,企业内部各类各样的系统不可能所有推翻了,所有规划和重来,不少企业的供应商在某一领域也作的很专业,博众家之长并进行集成应该是一个比较现实和可取的作法,一个系统一个系统稳定有序的实现,应该是比所有从新规划具体更小的风险。设计
金靓(123140395) 13:40:58
你们好
金靓(123140395) 13:41:34
想作服务的统一调用
也就是说全部的业务系统都走服务总线
经过总线来进行业务服务的调用3d
简单的消息交换模式没问题
请求/响应
可是双向交换模式下如何实现呢
何戈州<hotdefans@qq.com> 13:52:15
双工吗?
金靓(123140395) 13:52:23
对的
何戈州<hotdefans@qq.com> 13:52:36
那也没问题blog
金靓(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究竟是偏向那一个重点呢,欢迎各位博客园朋友讨论本话题。