什么是企业服务总线?它包含哪些技术组件?

我们每个人都会去医院,您描述下我们去医院的场景,然后引出这个挂号流程,通过挂号流程中的一个问题或者什么东西来吸引他的好奇心,这样呢?会比现在的预设场景好一些。我举个例子,人工智能怎么帮人看病。如果一上来就讲人工智能芯片、处理器什么的,我们看一分钟就觉得够够的了。一个比较好的方式是描述医院做脑CT的场景,医生分析一张张脑CT,那太慢了,最好是有一个能帮医生分析脑CT的人工智能,不会疲倦还能精准判断那我们就会好奇,它怎么做到的呢?然后就引出问题了,接下来一步步解决疑惑就好了

我们每个人一年当中或多或少都可能会有生病去医院看医生的场景。在医疗信息化高速发展的今天,我们可以借助于一些在线挂号APP来事先完成显示的挂号预约。相信你应该有这样的经历,但你是否有想过,全国有这么多家医院,每个医院内部都可能有自己的信息化系统,在线挂号APP是如何帮你准确而高效的找到目标医院和医生的呢?

要想回答这个问题,我们先来看一下挂号预约的整个业务流程,如下图所示。这里的移动医疗系统就是APP供应商所开发的系统,而医院信息系统则位于各个医院的内部。


如何实现这个场景呢?这里的核心需求在于使用合适的系统集成机制完成我们自己的移动医疗系统与医院信息系统之间的整合,而这个整合过程需要做到高扩展性和灵活性,因为医院系统的差异化对系统集成的影响非常大。我们可以进一步梳理所涉及到的技术难点,包含:

  1. 如何对数据进行有效的路由?因为用户需要选择目标医生进行挂号,而该医生可能位于某一家具体医院中,需要把用户请求正确的路由到该家医院的系统中;
  2. 如何完成异构系统之间的适配?因为各个医院系统的技术体系可能不尽相同,所以需要处理异构系统的数据交互问题;
  3. 如何根据特定医院做定制化扩展和过滤?由于不同的医院对于问诊排班流程的处理方式同样不尽相同,针对特定医院的特定需求,需要实现对数据的扩展和过滤;
  4. 如何实现系统集成组件与平台系统之间的解耦?从架构上讲,平台系统应该专注于处理平台级的业务流程,而系统集成组件则只需要处理与医院系统对接方面的逻辑,两者应该各司其职,独立发展

显然,通过硬编码的方式实现与外部多个医院系统之间的信息传递和交互就不合适了,我们需要引入更为合适的技术体系来对整个流程进行建模并实现。

企业服务总线就是用来处理这类场景的最佳技术方案。什么是企业服务总线?企业服务总线的英文为Enterprise Service Bus,也就是我们通常所说的ESB。本质上,它是一种系统集成组件,用于解决分布式环境下的异步协作问题,可以看作是对消息传递系统的扩展和延伸。服务总线是用于连接分布式异构后端和前端系统的一种中间层软件服务,能够隐藏复杂性,简化数据处理过程。对系统集成需求的剖析引出了服务总线的整体解决方案,如下所示:


在上图中,我们可以看到在企业服务总线中,所有的数据都被抽象成是一种消息,而上图也展示了其包含的三大核心组件,即路由器、转换器和端点,我们可以把这三个组件的功能与案例中的需求对应起来,如下图所示:


我们先来看路由器,路由器需要考虑的核心问题有三个,即:

  1. 一次路由单条/多条数据?
  2. 路由结果面向一个/多个目标?
  3. 路由是否有状态?

围绕上述三个问题所得出的答案,我们加以排列组合可以得到多种常见的路由器表现形式,如下表所示,其中有状态的路由器指的就是需要根据消息传递的上下文确定路由结果,通常涉及多个消息,具有较高的复杂性。

路由器

输出数据数

输入数据数

有无状态

内容路由器

1

1

接收表

1

0或n

分解器

1

n

聚合器

n

1

我们来看看表中这些路由器各自的特点。内容路由器(Content-based Router)是最简单的路由器,即通过消息的内容决定路由结果,这里的消息内容包括输入消息的消息头属性值、消息体类型以及各种对消息体内容的自定义的业务规则,通过内容路由器可以产生一对一的路由效果。

接收表(Recipient List Router)面向1对多的路由需求,当对同一消息进行路由时,特定场景下可能会满足多种路由条件从而产生多个路由结果,如下图所示。显然,结合前面的案例以及系统扩展性需求,接收表可以满足我们路由到不同医院的需求。


分解器(Splitter)往往和聚合器(Aggregator)一起使用,典型应用场景是消息包含多个元素,而每个元素处理方式不同,这时候我们可以把原始消息分解成多个消息,并通过一定聚合策略实现分解后消息的关联。下图所示的就是常见的一种聚合策略,也就是说根据消息头中所包含的“100”这个消息编号实现聚合。


可以看到分解器和聚合器的组合与大数据领域中的Map/Reduce算法有异曲同工之妙,对于数量较大的计算可以通过路由的策略并行执行,这也是解决类似问题的一种思路。

讲完路由器,我们再来看转换器(Transformer)。转换器解决服务总线中数据如何在异构系统之间进行适配的问题。服务总线常用于异构系统之间的交互和集成,通过转换可以消除异构系统之间由于数据格式所导致的依赖。最基本的转换思路就是通过一种自定义转换机制进行两种数据结构之间的映射,这些构成了数据结构转换器。另一方面,有时候我们也需要输入的数据结构进行内容上的扩充和过滤。

内容扩充器(Enricher)就是往消息中扩充新的数据,扩充的数据来源可以有很多,而扩充的对象可以是消息的消息头也可以是消息体,所以内容扩充器一般可以分成消息头扩充器和消息体扩充器。而内容过滤器(Filter)是内容扩充器的反向操作,目的是去除消息中的某一部分数据。

在案例中,使用内容过滤器就可以根据用户挂号请求中的目标医院信息来过滤那些不需要访问的医院系统,这是一种应用方式。再比如说,如果某家医院需要传入特定的安全标识符才能访问院内系统,那么通过扩充器也很容易在消息头中填充这种安全标识符而不需要修改消息体本身,效果如下所示:


关于企业服务总线,我们最后想要讨论的端点(Endpoint),而最常用的端点技术就是网关(Gateway)。当应用程序与系统集成组件进行交互时,从系统设计的角度讲我们希望应用程序中的业务代码和用于系统集成的非业务代码耦合度尽量低,也就是说应用程序应该封装对系统集成组件的访问接口,网关就是用来实现这方面的需求。网关中应该只包含业务领域层面的接口定义而不应该出现任何和系统集成技术相关的内容,如下图所示。


最后,让我们回到案例系统。通过综合应用企业服务总线中的各个核心组件,我们可以梳理移动医疗系统的实现效果图,如下图所示:


在上图中,我们综合应用了网关、内容扩充器、接收表、数据结构转换器等组件完成系统集成建模。网关用于剥离移动医疗系统后台服务与集成服务之间的耦合,内容扩充器和数据结构转换器可以通过数据转换实现针对医院异构系统的集成和定制化需求,而接收表则根据消息头中携带的目标医院信息自动路由到目标医院所在的医院服务,最后目标医院服务的返回结果将通过网关转回到移动医疗系统,从而实现系统集成的闭环。

至于如何实现服务总线,业界也提供了多种第三方工具,我们可以借助于Mule ESB、Apache Camel和Spring Integration等框架来实现上图中的整体流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/783502.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于put提交不了参数的解决办法

html中form表单只支持GET与POST请求,而DELETE、PUT等method并不支持, 如图所示 参数请求改成RequestBody,用json格式传参即可解决问题

AI直播手机APP震撼发布!3大场景直播,60秒一键开播!

无需繁琐准备,无需复杂操作,60 秒在抖音及其他平台一键开播,青否数字人AI直播APP正式发布! 3大AI直播类型,6大核心 AIGC 技术,让新手小白也能轻松搞定数字人在全平台直播,并且有效规避违规风险&…

数据跨境法案:美国篇上

近年来随着全球数字化的加速发展,数据已成为国家竞争力的重要基石。在这样的背景下,中国软件和技术出海的场景日益丰富。本系列邀请到在跨境数据方面的研究人员针对海外的数据跨境政策进行解读。 本期将针对美国对数据跨境流动的态度和政策进行阐释。过…

代码随想录算法训练营Day62|冗余连接、冗余连接II

冗余连接 108. 冗余连接 (kamacoder.com) 考虑使用并查集&#xff0c;逐次将s、t加入并查集中&#xff0c;当发现并查集中find(u)和find(v)相同时&#xff0c;输出u和v&#xff0c;表示删除的边即可。 #include <iostream> #include <vector> using namespace s…

游戏开黑语音-使用云服务器部署teamspeak服务(系统Ubuntu 20.04 LTS)

目录 前置物品服务器调整及部署1.重装系统2.换源3.下载teamspeak服务端并部署 连接服务器参考 前置物品 一台云服务器&#xff08;系统&#xff1a;Ubuntu 20.04 LTS) 服务器调整及部署 1.重装系统 在腾讯云官网的主机控制台内&#xff0c;选择重装系统 (由于之前为了快速和…

【收藏】欧盟CE、美国FDA法规及标准查询常用网站

01 CE法规&标准查询网站 医疗器械主管部门的网站 网址: https://www.camd-europe.eu/ 简介: CAMD的全称是Competent authorities for medical devices&#xff0c;翻译成中文叫做医疗器械监管机构&#xff0c;实际上它指的是欧盟成员国医疗器械监管机构的联盟&#xff…

江门数字化mes系统定制哪家好 珠海盈致mes系统服务商

对于江门数字化MES系统的定制服务&#xff0c;选择珠海盈致科技是一个不错的选择。珠海盈致科技是一家专业的智能制造解决方案提供商&#xff0c;具有丰富的数字化制造和MES系统定制经验。以下是选择珠海盈致科技的一些优势&#xff1a; 专业团队&#xff1a;珠海盈致科技拥有一…

Hack The Box-PermX

总体思路 CVE-2023-4220->敏感信息收集->符号链接攻击 信息收集&端口利用 nmap -sSVC permx.htbStarting Nmap 7.94SVN ( https://nmap.org ) at 2024-07-07 21:16 EDT Nmap scan report for permx.htb Host is up (0.24s latency). Not shown: 998 closed tcp po…

为什么要设计DTO类

为什么要使用DTO类&#xff0c;下面以新增员工接口为例来介绍。 新增员工 1.1 需求分析和设计 1.1.1 产品原型 一般在做需求分析时&#xff0c;往往都是对照着产品原型进行分析&#xff0c;因为产品原型比较直观&#xff0c;便于我们理解业务。 后台系统中可以管理员工信息…

供应RTL8366SC-CG瑞昱芯片

标17566722766题 长期供应各品牌原装芯片&#xff1a; RTL8366SC-CG RTL8382L-VB-CG RTL8218D-CG RTL8192EU-VP-CG RTL8821CU-CG RTL8811CU-CG RTL8723DU-CG RTL8723DS-CG RTL8711AM-VB1-CG RTL8111H-VB-CG RTL8111H-CG RTL8211F-CG RTL8211E-VB-CG RTL8733BS…

HW期间——溯源

01 前期准备 001溯源的概念 通过对受害资产与内网流量进行分析一定程度上还原攻击者的攻击路径与攻击手法根据已有的线索&#xff0c;攻击方式以及攻击特征等通过技术手段反查攻击者身份或是组织信息。 描述&#xff1a;完整还原攻击链条&#xff0c;溯源到黑客的虚拟身份&…

算法 - 动态规划

文章目录 介绍解题步骤题型背包问题01背包问题朴素算法&#xff08;递归实现&#xff09;备忘录算法(记忆化搜索)递推求解算法&#xff08;动态规划&#xff09; 连续子段和问题最大连续子序列和最大连续子序列和的最优方案 递推问题斐波那契数列II数塔II上楼II 最长不下降子序…

选项卡切换(排他法、轮转法、轮转法之事件委托)

选项卡需求&#xff1a; tabbar content 两部分的内容一一对应&#xff0c;我们点击某一个tab的时候&#xff0c;该tab的类名设置为on&#xff0c;其他的tab要清除on类名&#xff0c;对应的content的类名要设置为 active &#xff0c;其他的content清除active类名。 <!DOCTY…

vue通过后台返回的数字显示不同的文字内容,多个内容用、隔开

后台返回的数据 显示效果&#xff1a; html&#xff1a; <el-table-columnalign"center"label"使用过的小程序"width"124"v-if"activeTab 0"><template #default"scope"><divv-for"(item, index) in s…

众所周知沃尔玛1P是怎么运营?

​​沃尔玛的1P模式&#xff0c;即第一方供应商模式&#xff0c;是其独特的采购策略。在这种模式下&#xff0c;供应商先将商品卖给沃尔玛&#xff0c;由沃尔玛负责库存管理和销售。沃尔玛通过强大的采购和物流能力控制库存&#xff0c;确保商品品质&#xff0c;为客户提供更加…

【操作系统】进程管理——调度算法(个人笔记)

学习日期&#xff1a;2024.7.4 内容摘要&#xff1a;各种调度算法的思想、规则、优缺点介绍 为什么要有调度算法&#xff1f; 调度算法就好比一群人在银行办理业务&#xff0c;准备办理业务的人就是进程/作业&#xff0c;银行窗口的工作人员就是CPU&#xff0c;进程往往是比C…

旅游计划定制小程序网页模板源码

手机在线旅游定制服务&#xff0c;定制旅游出行app小程序模板。包含&#xff1a;定制介绍、定制表单填写、我的订单等。 旅游计划定制小程序网页模板源码

力扣爆刷第161天之TOP100五连刷71-75(搜索二叉树、二维矩阵、路径总和)

力扣爆刷第161天之TOP100五连刷71-75&#xff08;搜索二叉树、二维矩阵、路径总和&#xff09; 文章目录 力扣爆刷第161天之TOP100五连刷71-75&#xff08;搜索二叉树、二维矩阵、路径总和&#xff09;一、98. 验证二叉搜索树二、394. 字符串解码三、34. 在排序数组中查找元素的…

idea Git操作

1、代码拉取&#xff08;左上角&#xff09; 或 2、代码push&#xff08;左上角&#xff09; 3、切换分支&#xff08;右下角&#xff09; 4、分支管理 5、当前分支和某一个分支对比差异 6、当前分支某一个提交需要恢复成提交前状态&#xff08;revert&#xff09; 7、其他分…

信息技术课上的纪律秘诀:营造有序学习环境

信息技术课是学生们探索数字世界的乐园&#xff0c;但同时也是课堂纪律管理的挑战场。电脑、网络、游戏等元素可能分散学生的注意力&#xff0c;影响学习效果。本文将分享一些有效的策略&#xff0c;帮助教师在信息技术课上维持课堂纪律&#xff0c;确保教学活动顺利进行。 制…