系统集成的技术演进

简介: 系统集成的各种技术方案介绍和对比

系统集成是一个历史悠久的话题,一般会存在两种类型的集成方式:

  • 数据集成
  • 产品集成


数据集成就是让各个系统间的数据能够互通,数据互通也存在两种方式:

  • 系统A将数据推送给系统B
  • 系统A查询系统B的数据

下面以一个案例来说明不同系统数据集成的技术演进方式。假设现在有三个系统:

  • 系统A:专注于审批业务
  • 系统B:专注于销售业务
  • 系统C:专注于财务业务

客户的业务场景如下:


从上面的业务场景可以看出三个系统需要通过协作完成一项客户业务链路的闭环,完成这样的业务链路闭环有三种解法:

  • 第一种方式是客户线下在各个系统间录入数据,从而把业务流程串联起来。例如客户在系统B录入的销售信息和工程信息,然后在在系统A中提交审批,当审批通过后在系统C中录入相关的工程财务成本数据,从而进入下面的财务的业务流程
  • 第二种方式是各个系统间的数据进行集成。例如系统B中录入执行单据后会将该数据推送到A系统从而自动提交审批,当审批通过后系统A会将通过信息推送到系统C,系统C查询系统B的工程数据后自动录入本系统,从而执行后续的财务链路
  • 第三种方式是各个系统进行产品集成。产品集成的前提是系统间已经进行了数据集成,例如开发一个系统D来承载系统A、B、C的界面,这样在一个系统D中就可以完成业务的链路闭环,不用在各个系统中进行跳转。


显然第一种方式用户体验非常差,第三种方式用户体验会很好但是会带来比较大的系统改造和复杂度,因此在这里我们只关注在第二种方式数据集成上。




针对上面的客户诉求,如果通过数据集成那么最简单的方式是各个系统之间进行点到点的对接,例如:

点对点的对接方式看起来比较简单但是也会存在一些问题。例如系统B在调用系统A的时候可能会存在调用失败,如何进行失败重试,如何记录调用过程以便进行问题排查以及手工重试,如何统计调用失败情况和调用耗时等。如果通过点对点的方式那么任何一个系统都需要自行完成这些链路的调用统计和失败策略,但是很显然这些功能在各个系统上都是大同小异的,如果有一个统一的系统来处理那么将大大简化系统间的调用。


经过改良后的系统间对接链路如下:

任何系统间的调用都通过连接平台进行转发,这样连接平台可以进行调用链路记录和问题排查以及失败重试等,从而简化了各个系统之间的对接流程。


如果系统B调用系统A只是从直接调用变成了通过连接平台来转发调用,那么还会存在下面的问题:系统B调用系统A的数据是需要符合系统A的接口规范,如果客户的审批系统使用了另一套产品那么系统B需要再次对接一套审批系统接口。对于M+N个系统点对点对接的时候是需要M*N个系统间适配的。

针对上面的问题,钉钉连接平台侧可以通过配置连接器来解决,在介绍解决方案之前先介绍一下连接器连接器是系统数据集成的一种实现方式,一般来说一个系统会对应一个或多个连接器连接器下可以创建触发器执行动作


所谓触发器是当某件事情发生的时候(这里的发生可以是用户的操作行为例如点击某个按钮,也可以是系统业务逻辑例如当收到邮件的时候,还可以是轮询每隔一段时间触发等等),能够通过触发器来触发相应的动作从而执行后续的行为。例如当用户在系统A的某个表单填入数据后点击提交,这时候可以通过触发器把表单提交的数据推送出去从而被系统B消费。


执行动作表示的是执行的业务行为,可以是接收外部系统的数据,也可以是提供数据给外部系统。

对于系统B调用系统A的链路来说,系统B的工作是在连接平台注册一个触发器,系统A的工作是在连接平台上注册一个执行动作:

对于系统B来说其工作为:

  • 推送数据
  • 在连接平台定义推送数据的模型MB

对于系统A来说其工作为:

  • 在连接平台定义接收数据模型MA
  • 接收数据

对于系统B来说只管往连接平台推送数据模型为MB的数据即可,不需要关心系统A(也可以是系统C、系统D等等)如何获取这份数据;对于系统A(也可以是系统C、系统D等等,只要订阅了模型MB的数据)来说只管接收从连接平台推送过来的数据模型为MA的数据即可,无需关心这份数据从哪里来。


那数据是怎么从系统B到达系统A的?数据要想在各个系统之间流转,那么需要把推送的数据和接收的数据连接起来行程一个连接对,例如:

在连接的同时提供从模型MB到模型MA的转换映射即可。


上面的链路解决了系统B不需要关心系统A的接口数据模型的问题,但是其仍然没有解决M+N个系统间对接需要M*N次配置的问题,如果要解决这个问题那么需要定义一个统一的领域数据模型:

对于系统B来说其工作为:

  • 推送数据
  • 在连接平台定义推送数据的模型MB
  • 在连接平台配置模型转换MB->M

对于系统A来说其工作为:

  • 在连接平台定义接收数据模型MA
  • 在连接平台配置模型转换M->MA
  • 接收数据

对于连接平台来说其工作为:

  • 定义统一模型M,让各个应用方都Follow这个模型标准,从而实现互通


通过上面的方式对于M+N个系统之间的连接只需要M+N个触发器和执行动作即可,大大降低了对接的个数;但是如何定义这里的统一模型M是十分关键的,这需要具有相当深的领域基础来统一各个系统的通用的领域模型。一般来说在前期对应的统一模型M是会不停迭代修改的,但是随着接入的系统越来越多这个模型M会越来越趋于稳定,最终会变成对应领域的模型规范。


至此已经介绍了系统间进行数据集成几种演进方式,你们的业务系统中数据集成使用的是哪种方式呢?

相关文章
|
2月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
18天前
|
人工智能 数据挖掘 API
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
R2R 是一款先进的 AI 检索增强生成平台,支持多模态内容处理、混合搜索和知识图谱构建,适用于复杂数据处理和分析的生产环境。
110 3
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
|
5月前
|
消息中间件 弹性计算 Kubernetes
RabbitMQ与容器化技术的集成实践
【8月更文第28天】RabbitMQ 是一个开源消息代理和队列服务器,用于在分布式系统中存储、转发消息。随着微服务架构的普及,容器化技术(如 Docker 和 Kubernetes)成为了部署和管理应用程序的标准方式。本文将探讨如何使用 Docker 和 Kubernetes 在生产环境中部署和管理 RabbitMQ 服务,同时保证高可用性和弹性伸缩能力。
110 3
|
1月前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
104 7
|
2月前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
4月前
|
存储 中间件 API
ThinkPHP 集成 jwt 技术 token 验证
本文介绍了在ThinkPHP框架中集成JWT技术进行token验证的流程,包括安装JWT扩展、创建Token服务类、编写中间件进行Token校验、配置路由中间件以及测试Token验证的步骤和代码示例。
ThinkPHP 集成 jwt 技术 token 验证
|
4月前
|
搜索推荐 安全 物联网
智能家居技术的未来:集成化与个性化的融合
本文将深入探讨智能家居技术的发展趋势,特别是集成化和个性化如何成为未来智能家居系统设计的核心。文章将分析当前智能家居技术面临的挑战,并展示通过集成化提高系统效率、降低成本的方法。同时,讨论个性化服务在提升用户体验方面的重要性,以及如何通过数据驱动和人工智能技术实现这一目标。最后,文章将预测未来智能家居技术的发展方向,包括物联网设备的进一步整合、安全性的提升,以及智能家居技术在健康监测和环境可持续性方面的应用潜力。
140 1
|
5月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
56 3
|
5月前
|
消息中间件 运维 Cloud Native
核心系统转型问题之快速集成不同技术体系构建的应用系统如何解决
核心系统转型问题之快速集成不同技术体系构建的应用系统如何解决
|
5月前
|
人工智能 安全 搜索推荐
智能家居技术的未来:集成与创新
随着物联网技术的飞速发展,智能家居系统正在经历一场革命。本文将探讨未来智能家居技术的发展方向,包括更高层次的设备集成、用户交互体验的革新、数据安全的重要性以及人工智能在智能家居中的应用前景。通过分析当前的技术趋势和市场需求,我们预见到一个更加智能、互联和自动化的家庭环境即将到来。
105 1

热门文章

最新文章