需求场景

由于产品业务发展,催生出了一个需求:线上平台与线下某些软件系统要实现数据对接和数据互传,并且不能影响软件系统的正常运行。其实很多互联网产品中都这样的需求,很多平台运营商吸引线下商家、客户入驻线上某些平台、
Sass服务等产品,帮助商家或客户拓展线上业务。在这个前提下,商家或客户实际以在线下开展业务多年,
有一套完整、成熟、稳健的线下业务流程、线下软件系统(ERP、CRM等)。可以说站在客户的业务角度出
发,现在业务发展已经演变为线下、线上双箭齐发的场景。由此衍生出数据对接、互通数据的需求。1.线上平台需要线下基础资料:在入驻线上系统初期,很多基础资料来自线下软件系统,例如:线下业务中的客户数据、商品数据、库存数据、价格数据等。2.线下软件需要线上订单数据:在完成线下基础资料的数据上传线上平台后,线上平台已经可以正常开展业务,由此产生的线上数据例如订单数据需要及时准确的下发传输给线下软件系统。

技术分析

开放API 方式:

通常线上平台都会伴随系统开发一个开放平台,提供一些基础的数据传输API、业务对接API等。
这是最常见的也是最容易实施和落地的。这些开放的API接口往往基于Http协议、WebService等,
常见的大厂向,微信、阿里、饿了么、美团 等等
这样的方案同时也存在几个致命的缺点:1.必须要求客户对接谁对接意味着谁来开发对接程序,很多客、商家是不具备开发能力的。2.数据下发被动、实时性低对线上数据的获取由线下对接程序根据需要调取线上API接口获取。数据的产生与数据的下发不同步现象明显,对实时性要求比较高的业务场景如订单,这种方案是不可取的。

免开发方式

客户是上帝,现在客户说了:什么平台,让我来开发对接。有没有搞错,我是用户,我要是能开发软件,
还用花钱买你们的软件服务吗!负责的平台都不应该把本来属于应该自己来解决的问题,推给客户。再者说,如果平台不能提供解决方案,
来解决这个普遍性的问题,还要什么发展,还能发展吗。言归正传,免开发对接方案严格意义上,也不是一点开发都不做。它的好处在于不用修改、二开线下软件,
而是通过部署一个运行在线下的对接程序来完成数据中继。自然,这个对接程序有平台运营商开发并
提供对接服务。我们分析一下,线上、线下各运行者一套软件系统,实现两个不想关的系统间数据对接,首先要思考
两个系统间的数据对接标准是什么,规范是什么。而数据对接的标准和规范应当从业务开展角度出发,
从实际需求出发。很多线上平台都有成熟的标准,而这些标准都是从一线业务场景中沉淀、总结出来的。
简单说,平台负责定义数据对接标准,具体说,平台提供商品表、订单表、客户表等数据结构定义、字段
类型定义、字段长度定义等。
除此之外,按照数据对接标准开发数据对接客户端程序,来完成线上、线下不同系统间的数据传输工作。

客户端技术特点:


客户端部署在线下,要求能够访问数据对接中间数据库。客户端中运行者若干定时任务,用来按固定频率
向线上传输数据。同时客户端也监听者线上平台的MQ异步消息,完成线上数据到线下中间库的数据下发。
这里提到来一个概念:“中间库”。
所谓中间库,就是部署在线下的数据对接用的数据库,客户端整个运行都围绕着中间数据库开展业务。
上传数据:
1.在中间库中根据业务编写不同的存储过程,来访问线下软件的业务库数据
2.数据对接中间程序运行着定时任务,负责调取存储过程中的线下数据,通过MQ、API等方式
抽送到线上平台
下发数据:
1.线上平台产生业务数据,将数据存放到MQ服务中的指定消息队列
2.数据对接客户端监听数据下发消息队列,获取消息中的数据后,写入到中间库、或者调用存储过程完成
数据写入到线下业务数据库中

 由此,可得出结论。数据对接客户端,对接数据依赖数据库编程(存储过程),消息服务MQ以及接口API。整个流程并不需要对客户的线下软件系统进行改造和二开。

免开发实时性方案思考

    综合开放API方案、数据对接客户端方案不难发现,都无法完美的实现数据对接绝对实时。于是笔者认为,要解决线下数据上传过程的数据监听问题,可能有些读者已经考虑到数据的触发器了。对于数据库的数据变动触发器能够及时的捕捉到,并且提供了数据编程的可能。那么剩下来的问题就是如何实现将触发器捕获的数据变动通知给数据对接客户端。如果能够实现此一步,那么对于线下软件产生的业务数据就能够在第一时间上传给线上平台了。通过与负责实施的同时沟通了解到,可以在触发器中向数据对接客户端发起Http 调用,将数据传送给数据对接客户端。目前向Oracle、SQLServer、Mysql 都可以做到。到此可以得出结论,只要业务需要,无论是对数据的上传还是下发,线上、线下两个系统间都可以通过技术手段实现数据实时传递。遗憾的是我们业务上允许上行数据的小幅度延迟,没有得到实际的将想法思路通过实际进行检验。我想理论方案可行,将我的想法思路分享给各位奋斗在一线开发的小伙伴们!

程序监听数据库变化

关于程序中如何监听数据库变化,我的另一篇博客
https://blog.csdn.net/yanghui555/article/details/115356763程序监听数据库变化的方法和实践,Oracle、Sqlserver、Mysql

免开发跨系统数据对接方案相关推荐

  1. 如何实现高质量的系统数据对接/API接口整合集成方案?

    我们建立一个数字化系统可能会有跟别的系统进行数据对接的需要,而别人的数字化系统也有可能需要跟我们的系统进行数据对接,也可能我们开发了不同的网站,网站小应用之间需要进行数据对接.那么数据对接应该如何操作 ...

  2. 住建部发布《全国建筑工人管理服务信息平台数据对接方案》

    今日,四川省住建厅发布了<关于进一步加强建筑工人实名制管理工作的通知>.重要信息如下: 01 今年10月,住房和城乡建设部发布<全国建筑工人管理服务信息平台数据对接方案>(V1 ...

  3. 钉钉考勤接口调用与OA系统数据对接

    钉钉考勤接口调用与OA系统数据对接 公司由原来的指纹打卡更换为钉钉打卡,需要钉钉和现有的OA考勤数据对接(合并钉钉打卡数据和OA上的请假,外出,出差数据) 1.查看钉钉接口文档 https://din ...

  4. 钉钉考勤接口调用与OA系统数据对接(多线程版)

    钉钉考勤接口调用与OA系统数据对接(多线程版) 公司由原来的指纹打卡更换为钉钉打卡,需要钉钉和现有的OA考勤数据对接(合并钉钉打卡数据和OA上的请假,外出,出差数据),因为人数增减单线程定时任务数据抓 ...

  5. 详解6G系统数据治理方案的设计要点和原则

    导读:今天的数字化社会中,数据非常重要.未来6G系统将会产生.收集和交换大量的数据.各种运营管理任务,比如配置.性能监控.故障管理,都需要用到这些数据.这些数据还将作为知识经验与其他系统和业务领域交流 ...

  6. JAVA实现两个系统数据对接

    前言 最近做了两个系统,现在有一个需求,需要做数据对接,这个有很多方法实现,我这里用的是接口对接.由于是第一次做这种功能,也踩了不少坑,所以在这里记录一下. 提示:以下是本篇文章正文内容,下面案例仅供 ...

  7. Day267.预约系统的性能瓶颈、营销活动无缝切换秒杀活动、预约系统数据迁移方案、高流量下预约系统搭建熔断机制、预约系统redis集群主从哨兵架构 -Redis的高并发预约抢购系统

    一.预约系统的性能瓶颈 1.预约系统应对热门爆品时的缺陷 用户进行预约会涉及到两个维度的数据变更一个是用户信息,一个是SKU信息,如图↓所示: 正常来说这么搞一点问题没有,即便涉及到写数据库,但是每个 ...

  8. APP开发实战10-APP数据同步方案

    3.3数据同步方案 3.3.1 文件的同步 通常图片都需要在APP端做缓存处理,所以从服务器端返回图片链接的时候,一定要同时返回图片最新修改的时间戳.APP根据本地存储图片的时间戳和从服务器获取的时间 ...

  9. 应用系统数据对接几种方案

    应用系统之间数据传输的几种方式 第一种方案:socket方式 Socket方式是最简单的交互方式.是典型才C/S交互模式.一台客户机,一台服务器. 服务器提供服务,通过IP地址和端口进行服务访问.而客 ...

最新文章

  1. 七牛云的存储对象的地区改变之后
  2. OculusQuest2 直接连电脑调试
  3. Leetcode每日一题:328.odd-even-linked-list(奇偶链表)
  4. [bzoj4592] [Shoi2015]脑洞治疗仪
  5. php 向文件夹中添加HTML文件,批量向html中插入内容
  6. python入门到熟练要多久_python_入门到熟练_day02
  7. 团队作业三——项目思考
  8. 计算机科学导论的学习
  9. SoapUI接口测试——添加新的API接口——new rest service from uri
  10. 简单学习Infopath
  11. android 项目交接文档,Android实用开发规范
  12. 什么是博客,它与网站有何不同? (说明)
  13. yjv是电缆还是电线_yjv电缆中的yjv是什么意思?yjv与yjv22电缆区别有哪些?
  14. 吃货在东京 -- 记那段吃不饱的日子 之一 牛头自助烤肉店
  15. 1142:单词的长度
  16. Java字符拼成图片
  17. java中四大层次结构
  18. Datename() 函数与DatePart()函数
  19. matlab中求矩阵A的特征向量,matlab层次分析法求特征值及特征向量.doc
  20. 安装程序无法继续,因为您的计算机上安装了更新的internet explorer

热门文章

  1. STM32学习+步科组态屏
  2. 2018计划:个人成长规划
  3. 计算机第一章学什么,第一章计算机基础知识学习课件.ppt
  4. 如何查看文件夹占用的空间大小 Windows
  5. 大学计算机入门基础知识论文,关于大学计算机基础论文范文2篇
  6. cocos2dx ttf字体 android,cocos2dx2.2.2中使用ttf字体
  7. python 网页樱花动态图_如何用Python实现动态图?
  8. 安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文 档
  9. SSH隧道与内网穿透
  10. 为什么Java中float类型的取值范围大于long类型