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

简介: 一、讨论主题与观点       写一篇文章、发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论。       大家的讨论观点主要集成在:对于ESB的定义也有类观点,一类观点是把ESB定位于SOA架构之中的基础服务设施(书上都这么讲),还有一类观点就是ESB做为异构系统之间的集成和整合之间,其实ESB本身都能实现两种观点的功能,只是觉得在时下,应该更偏重于那一方面,两者的本质上最大的区别是,同一系统内部的功能是否需要经过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到底是偏向那一个重点呢,欢迎各位博客园朋友讨论本话题。

目录
相关文章
|
2月前
|
监控 Java 持续交付
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
58 1
|
1月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
2月前
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
213 3
|
10天前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
36 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
6天前
|
容灾 网络协议 数据库
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
|
21天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
55 11
|
1月前
|
机器学习/深度学习 人工智能 API
【AI系统】昇腾异构计算架构 CANN
本文介绍了昇腾 AI 异构计算架构 CANN,涵盖硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供高性能神经网络计算所需的硬件基础和软件环境。通过多层级架构,CANN 实现了高效的 AI 应用开发与性能优化,支持多种主流 AI 框架,并提供丰富的开发工具和接口,助力开发者快速构建和优化神经网络模型。
44 1
|
2月前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
|
2月前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
2月前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
55 4
下一篇
开通oss服务