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


    一、讨论主题与观点

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

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

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

    image_thumb[9]

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

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

    image_thumb[12]

          这个观点是我的观点为,即我认识这是一种比较现实和比较经济的观点,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 
    X@8}U9MLE}EBUE273)]9PGF_thumb
    魏琼东(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到底是偏向那一个重点呢,欢迎各位博客园朋友讨论本话题。

  • 相关阅读:
    springboot(六):如何优雅的使用mybatis
    springboot(四):thymeleaf使用详解
    springboot(三):Spring boot中Redis的使用
    springboot(二):web综合开发
    Springboot(一):入门篇
    js判断对象的某个属性是否存在
    查看node.js全局安装的插件路径
    切片地图服务器
    element ui loading加载开启与关闭
    vue 引入 leaflet1.4.0
  • 原文地址:https://www.cnblogs.com/eastjade/p/3375626.html
Copyright © 2020-2023  润新知