CN117176582B - 一种数据传输管理方法、装置和系统 - Google Patents
一种数据传输管理方法、装置和系统 Download PDFInfo
- Publication number
- CN117176582B CN117176582B CN202311440648.6A CN202311440648A CN117176582B CN 117176582 B CN117176582 B CN 117176582B CN 202311440648 A CN202311440648 A CN 202311440648A CN 117176582 B CN117176582 B CN 117176582B
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- state
- data transmission
- scene
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 397
- 238000007726 management method Methods 0.000 title claims abstract description 125
- 238000000034 method Methods 0.000 claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 33
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 121
- 239000003795 chemical substances by application Substances 0.000 claims description 105
- 238000012545 processing Methods 0.000 claims description 51
- 238000012544 monitoring process Methods 0.000 claims description 48
- 238000001514 detection method Methods 0.000 claims description 40
- 238000012795 verification Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 description 33
- 238000010586 diagram Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 16
- 230000002159 abnormal effect Effects 0.000 description 14
- 230000001360 synchronised effect Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据传输管理方法、装置和系统,涉及数据传输技术领域。该方法包括:接收数据方的请求指令,其中,请求指令包括目标场景要素;在配置有多种场景传输策略的场景表中,查找与目标场景要素匹配的目标场景传输策略,其中,每一种场景传输策略对应一种场景,且每一种场景传输策略包括有多种场景要素和与数据传输相关的配置信息;根据目标场景传输策略包括的配置信息,在至少一个状态表中,为数据方配置匹配于请求指令的多个状态项;调度与状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项。该实施方式能够有效地处理复杂场景的数据传输,统一管理和调度不同场景的数据。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种数据传输管理方法、装置和系统。
背景技术
目前,针对数据传输一般采用数据的发布、订阅机制来完成。具体地,预先为不同场景配置不同的数据传输程序,并预先为数据配置好订阅方,在发布方发布数据后,订阅方基于其订阅的场景调用对应于该场景的数据传输程序获取到订阅的数据。随着跨平台数据交互所涉及的场景越来越复杂,涉及的订阅方越来越多,发布方和订阅方所涉及的场景越来越复杂,采用现有的不同场景采用不同的数据传输程序以及预先配置订阅方的方式,导致不同场景的数据不能统一管理和调度,并导致数据传输场景、发布方、订阅方可扩展性较差。
发明内容
有鉴于此,本发明实施例提供一种数据传输管理方法、装置和系统,能够有效地处理复杂场景的数据传输,统一管理和调度不同场景的数据,并能够动态扩展数据传输的场景、订阅方和发布方。
为实现上述目的,第一方面,本发明实施例提供了一种数据传输管理方法,包括:
接收与数据传输相关的数据方的请求指令,其中,所述请求指令包括至少一个目标场景要素;
在配置有多种场景传输策略的场景表中,查找与至少一个所述目标场景要素相匹配的目标场景传输策略,其中,每一种所述场景传输策略对应一种场景,且每一种所述场景传输策略包括有多种场景要素和与数据传输相关的配置信息;
根据所述目标场景传输策略包括的所述配置信息,在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项;
调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,并更新所述状态项。
可选地,所述接收与数据传输相关的数据方的请求指令的步骤和所述查找与至少一个所述目标场景要素相匹配的目标场景传输策略的步骤通过指令接收守护程序执行;
所述为所述数据方配置匹配于所述请求指令的多个状态项的步骤通过指令处理程序执行;
所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务通过服务调度守护程序执行。
可选地,所述数据传输管理方法,应用于包括有主节点和备用节点的数据总线,其中,
所述主节点和所述备用节点均设置有所述指令接收守护程序、所述指令处理程序和所述服务调度守护程序;
同步调用设置于所述主节点的所述指令接收守护程序和所述指令处理程序与设置于所述备用节点的所述指令接收守护程序和所述指令处理程序;
仅调用设置于所述主节点的所述服务调度守护程序。
可选地,上述数据传输管理方法,还包括:
在满足预设的节点切换条件的情况下,将所述备用节点切换成主节点,并将所述主节点切换成备用节点。
可选地,在所述接收与数据传输相关的数据方的请求指令之后,进一步包括:
对所述请求指令进行有效性检测,并将所述请求指令和对应的检测结果写入预设的指令流水表;
在有效性检测通过后,对所述数据方针对所述请求指令的权限进行校验,并将校验结果写入所述指令流水表;
在校验结果指示校验成功后,执行所述查找与至少一个所述目标场景要素相匹配的目标场景传输策略的步骤。
可选地,所述将所述请求指令和对应的检测结果写入预设的指令流水表,包括:
将所述请求指令和对应的检测结果写入预设的主指令流水表;
在所述主指令流水表写入成功后,将所述请求指令和对应的检测结果写入预设的备指令流水表;
在所述主指令流水表写入失败后,不在所述备指令流水表中写入,并进行告警提示。
可选地,所述将校验结果写入所述指令流水表,包括:
将所述校验结果写入预设的主指令流水表;
在所述主指令流水表写入成功后,将所述校验结果写入预设的备指令流水表;
在所述主指令流水表写入失败后,不在所述备指令流水表中写入,并进行告警提示。
可选地,上述数据传输管理方法,还包括:
将所述请求指令写入预设的指令流水表;
通过所述指令处理程序定时扫描所述指令流水表;
针对所述指令流水表中的状态标注为未处理的请求指令,执行所述为所述数据方配置匹配于所述请求指令的多个状态项的步骤。
可选地,所述在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项,包括:
针对所述数据方为数据订阅方,所述请求指令为订阅请求指令且所述目标场景传输策略包括的配置信息包括指示数据传输模式的发布订阅模式的情况,
将所述请求指令和所述目标场景传输策略包括的多种场景要素分别写入订阅表和发布表,并配置所述订阅表中的订阅状态项和数据传输状态项,以及所述发布表中的数据发布状态项,并将所述请求指令的处理结果更新到预设的指令流水表。
可选地,所述在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项,包括:
针对所述数据方为数据订阅方,所述请求指令为订阅请求指令且所述目标场景传输策略包括的配置信息包括指示数据传输模式的发布订阅模式的情况,
将所述请求指令和所述目标场景传输策略包括的多种场景要素分别写入订阅表和发布表,并配置所述订阅表中的订阅状态项和数据传输状态项,以及所述发布表中的数据发布状态项,并将所述请求指令的处理结果更新到预设的指令流水表;
针对所述目标场景传输策略包括指示数据传输模式的数据到达触发模式的情况,
将所述请求指令和所述目标场景传输策略包括的多种场景要素写入与所述数据方的类型相匹配的目标状态表,并配置所述目标状态表中的订阅状态项/发布状态项、数据传输状态项和代理状态项,并将所述请求指令的处理结果更新到预设的指令流水表。
可选地,所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,包括:
为需要代理的请求指令生成代理触发指令给代理发布监控程序;
通过所述代理发布监控程序为所述请求指令生成代理任务,并将所述代理任务写入预设的代理表。
可选地,所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,包括:
分别扫描至少一个所述状态表中的订阅表和发布表;
针对扫描出的发布表中标注已发布状态的第一发布记录且所述订阅表中与所述第一发布记录相匹配的第一订阅记录标注未传输状态,
发送传输指令给数据传输程序,以使所述数据传输程序将所述第一发布记录所对应的场景数据传输给所述第一订阅记录所对应的订阅方。
可选地,上述数据传输管理方法,还包括:
将所述传输指令发送给指令接收守护程序;
所述指令接收守护程序将所述传输指令写入指令流水表;
指令处理程序根据所述传输指令,更新所述订阅表和所述发布表中的传输状态。
可选地,所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,还包括:
扫描至少一个所述状态表中的发布表;
调度所述代理发布监控程序监控代理表和生成的数据文件;
针对扫描出的发布表中标注数据到达触发模式且处于未代理状态的第二发布记录,且监控到所述代理表中与所述第二发布记录相匹配的目标代理任务标注为未处理的情况,调度所述代理发布监控程序处理对应于所述第二发布记录的场景数据,并生成对应于所述第二发布记录的场景数据的数据文件,并发送代理数据更新指令给指令接收守护程序;
所述指令接收守护程序将所述代理数据更新指令更新到指令流水表;
指令处理程序处理所述代理数据更新指令,更新所述第二发布记录中的代理状态和发布状态。
可选地,上述数据传输管理方法,还包括:
在接收到查询指令后,对所述查询指令进行校验;
在校验出所述查询指令有效的情况下,根据所述查询指令查询所述状态表。
可选地,所述指令接收守护程序、所述指令处理程序及所述服务调度守护程序分别配置有用于控制程序开启或者关闭的程序开关;
在所述程序开关处于开启状态下,所述程序开关所对应的程序运行。
可选地,上述数据传输管理方法,还包括:
所述指令接收守护程序接收退订指令,将所述退订指令写入指令流水表;
所述指令处理程序基于所述场景表,查找订阅表中与所述退订指令包括的通配符或者数据组相匹配的订阅记录,并更新所述订阅记录的订阅状态。
可选地,上述数据传输管理方法,还包括:
为所述服务调度守护程序配置有调度表;
将所述服务调度守护程序针对用于代理数据发布的代理发布监控程序和用于传输数据的数据传输程序的调用情况写入所述调度表。
可选地,上述数据传输管理方法,还包括:
通过总线监控程序对所述数据总线进行监控。
可选地,通过总线监控程序对所述数据总线进行监控,包括:
总线监控程序进入while循环,并读取总线监控的配置信息,根据所述配置信息对所述数据总线的心跳情况及数据传输处理情况进行监控。
第二方面,本发明实施例提供一种数据传输管理装置,包括:
指令接收守护模块、指令处理模块及服务调度守护模块,其中,
所述指令接收守护模块,用于接收与数据传输相关的数据方的请求指令,其中,所述请求指令包括至少一个目标场景要素;在配置有多种场景传输策略的场景表中,查找与至少一个所述目标场景要素相匹配的目标场景传输策略,其中,每一种所述场景传输策略对应一种场景,且每一种所述场景传输策略包括有多种场景要素和与数据传输相关的配置信息;
所述指令处理模块,用于根据所述目标场景传输策略包括的所述配置信息,在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项;
所述服务调度守护模块,用于调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,并更新所述状态项。
第三方面,本发明实施例提供一种数据传输系统,包括:多个数据方及上述第二方面实施例提供的数据传输管理装置,其中,
所述数据传输管理装置,用于管理多个所述数据方之间的数据传输。
第四方面,本发明实施例提供一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例提供的方法。
第五方面,本发明实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面实施例提供的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过场景表管理多种场景的场景传输策略,在接收到与数据传输相关的数据方的请求指令的情况下,通过查找与请求指令包括的至少一个目标场景要素相匹配的目标场景传输策略,并根据目标场景传输策略包括的配置信息,在至少一个状态表中为数据方配置匹配于请求指令的多个状态项,通过调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项,实现通过场景表和状态表中的状态项管理和调度与场景数据传输相关的服务,能够有效地处理复杂场景的数据传输,统一管理和调度不同场景的数据,并能够动态扩展数据传输的场景、订阅方和发布方。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例可以应用于其中的示例性系统架构图;
图2是根据本发明实施例的一种数据传输管理方法的主要流程的示意图;
图3是根据本发明实施例的针对非查询指令,指令接收守护程序所执行方法的主要流程示意图;
图4是根据本发明实施例的针对查询指令,指令接收守护程序所执行方法的主要流程示意图;
图5是根据本发明实施例的指令处理程序的处理过程的主要流程示意图;
图6是根据本发明实施例的服务调度守护程序实现方案的主要流程示意图;
图7A是根据本发明实施例的对发布订阅模式下的发布表和订阅表的状态信息管理的表状态变化示意图;
图7B是根据本发明实施例的数据到达触发模式下的发布表和订阅表的状态信息管理的表状态变化示意图;
图7C是根据本发明实施例的对发布订阅模式下的发布表和订阅表的数据传输管理的时序流程示意图;
图7D是根据本发明实施例的对数据到达触发模式下的数据传输管理的时序流程示意图;
图7E是根据本发明实施例的对数据到达触发模式下的退订订阅的时序流程示意图;
图8是根据本发明实施例的对程序心跳监控的主要流程示意图;
图9是根据本发明实施例的各个程序所对应的程序开关管理的主要流程示意图;
图10是根据本发明实施例的通过总线监控程序对数据总线进行监控的主要流程示意图;
图11是根据本发明实施例的通过总线监控程序控制主节点与备节点的切换的主要流程示意图;
图12是根据本发明实施例的对主备节点的数据比对的主要流程示意图;
图13是根据本发明实施例的对主备节点的数据强制同步的主要流程示意图;
图14是根据本发明实施例的数据传输管理装置的主要模块的示意图;
图15是根据本发明实施例的数据传输管理系统的主要设备的示意图;
图16是适于用来实现本发明实施例的数据总线包括的节点的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本发明实施例的数据传输管理方法或数据传输管理装置的示例性系统架构100。
如图1所示,系统架构100可以包括多个业务平台101、102、103、…,网络104,数据总线105,数据库106及监控服务器107。网络104用以在多个业务平台101、102、103、…和数据总线105之间、数据总线105和数据库106之间、数据总线105和监控服务器107之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
多个业务平台101、102、103、…可以为位于同一数据域的各种业务平台和/或位于不同数据域的各种业务平台,另外,多个业务平台101、102、103、…可以搭载同一运行系统或者不同运行系统比如Linix、AIX、OS400、AS400、RS6000、X86等。每一个业务平台即可以为数据订阅方,也可以为数据发布方。
数据总线105包括有一个主节点1051及一个或多个备用节点1052,其中,主节点1051及一个或多个备用节点1052为多个业务平台101、102、103、…之间的数据传输提供管理和调度服务,比如主节点1051及一个或多个备用节点1052基于配置有多种场景传输策略的场景表,为多个业务平台101、102、103、…配置其不同场景的场景数据的场景传输策略、不同场景的数据传输的配置信息及不同场景的数据传输的状态项等的管理,并根据数据传输的配置信息,通过主节点1051为数据订阅方和数据传输方进行与数据传输相关的调度服务,比如监控状态表中与数据传输相关的状态,在监控到数据发布且数据未被数据订阅方获取到的情况下,发送传输指令给数据的传输程序,以达到为数据订阅方传输数据的目的。又比如,主节点1051还可以为数据发布方调用代理数据发布服务,通过代理发布服务为数据发布方代理发布数据。
其中,主节点1051对其所维护的各种状态表中状态的更新一般与备用节点1052对其所维护的各种状态表中状态的更新同步执行。
另外,通过数据总线105的设置,可以使数据订阅方所订阅的数据为同一数据域内其他平台的数据,也可以为不同数据域的平台的数据。而且通过数据总线105的设置,可以使数据发布方所发布的数据可以提供给同一数据域内的数据订阅方,也可以提供给不同数据域的数据订阅方。
另外,主节点1051及备用节点1052通过专门接收指令的指令接收守护程序、用于处理指令的指令处理程序、服务通过服务调度守护程序及代理发布监控程序的协调调度来实现对与数据传输相关的服务的调度。
数据库106可以包括有主数据库1061和备用数据库1062,其中,主数据库1061为主节点1051存储并提供各种状态表及场景表等,备用数据库1062为备用节点1052存储并提供各种备份状态表及备份场景表等。
监控服务器107监控主节点1051和备用节点1052的工作状态,以在监控到主节点1051或者备用节点1052是否存在异常,以及时发现主节点1051或者备用节点1052的异常。
需要说明的是,本发明实施例所提供的数据传输管理方法一般由数据总线105完成,相应地,数据传输管理装置的各个模块可设在数据总线105主节点1051和备用节点1052中。
应该理解,图1中的业务平台、网络、数据总线、数据库及监控服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的业务平台、网络、数据总线、数据库及监控服务器。
值得说明的是,本发明实施例所涉及的数据传输管理主要分为两方面。其中,一方面,通过调度服务实现数据传输;另一方面,通过管理、监控和更新与数据传输相关的状态表、指令流水表、配置信息等,来为不同场景协调调度服务,并对与数据传输相关的参数、程序等进行统一管理。
图2是根据本发明实施例的一种数据传输管理方法的主要流程示意图。如图2所示,该数据传输管理方法可包括如下步骤:
步骤S201:接收与数据传输相关的数据方的请求指令,其中,请求指令包括至少一个目标场景要素;
其中,数据方可以为数据订阅方,也可以为数据发布方。
其中,该步骤的请求指令一般是指数据订阅方发送的数据订阅请求指令或者数据发布方发送的数据发布请求指令。
其中,场景要素一般是指能够体现数据特征、数据传输方式等的信息,比如,场景要素可以包括有场景的关键要素(数据名称和数据域)、数据日期、数据批次号、数据传输程序、传输方式(直接发布订阅或者通过代理发布)、数据传输模板(比如数据格式、数据备份方式、格式转换方式等)、数据传输提供方、预检查、变更告警、触发类型、传输模式、数据描述、备份标志、有效期(天)、备用字段、可授权数据方等。
其中,本发明实施例数据发布方和数据订阅方是相对定义,针对某一场景数据,平台A为数据发布方,针对另外的场景数据,平台A为数据订阅方。
其中,数据发布方的数据发布是用户通过本发明实施例提供的数据总线的数据发布API,告知数据总线的某个场景数据已处于发布状态。数据发布仅告知场景数据的状态,不进行具体的数据传输。
本发明实施例所涉及的数据订阅是用户(即数据订阅方)通过数据总线的数据订阅API,订阅某类具体数据。数据订阅包括数据域、数据名称、数据日期、批次号、订阅方、订阅指令等信息。数据订阅仅告知数据总线用户需要使用哪种数据,由数据总线根据配置起调相应的数据传输程序,完成数据传输动作。
步骤S202:在配置有多种场景传输策略的场景表中,查找与至少一个目标场景要素相匹配的目标场景传输策略,其中,每一种场景传输策略对应一种场景,且每一种场景传输策略包括有多种场景要素和与数据传输相关的配置信息;
其中,场景传输策略是通过对不同场景的场景要素进行配置得到,即场景传输策略是由多种场景要素组合得到。
一般来说,场景与场景传输策略之间是一一对应关系,两种场景传输策略之间可以有相同的场景要素,但是必然存在差异化的场景要素。
步骤S203:根据目标场景传输策略包括的配置信息,在至少一个状态表中,为数据方配置匹配于请求指令的多个状态项;
其中,场景传输策略包括的配置信息即该场景传输策略中场景要素的配置。
状态项可以包括:数据名称、是否订阅、是否发布、是否代理、是否退订、初始状态、传输状态(未传输、正在传输、传输完毕、传输错误等)、格式状态(格式正确、格式错误)等用于记载其所管理的场景数据当前所处的状态。
步骤S204:调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项。
在图2所示的实施例中,通过场景表管理多种场景的场景传输策略,在接收到与数据传输相关的数据方的请求指令的情况下,通过查找与请求指令包括的至少一个目标场景要素相匹配的目标场景传输策略,并根据目标场景传输策略包括的配置信息,在至少一个状态表中为数据方配置匹配于请求指令的多个状态项,通过调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项,实现通过场景表和状态表中的状态项管理和调度与场景数据传输相关的服务,能够有效地处理复杂场景的数据传输,统一管理和调度不同场景的数据,并能够动态扩展数据传输的场景、订阅方和发布方。
另外,在配置有多种场景传输策略的场景表的基础上,可以对不同场景的场景数据传输服务及不同平台之间的数据传输采用统一的标准定义比如定义数据传输模式、数据传输提供方、数据传输程序、数据检查、数据备份等。
具体地,上述数据传输管理方法的具体实现方式可以为:上述步骤S201和步骤S202可通过指令接收守护程序执行;步骤S203可通过指令处理程序执行;上述步骤S204通过服务调度守护程序执行。通过指令接收守护程序、指令处理程序及服务调度守护程序维护不同场景的场景数据的数据传输的管理,一方面通过指令接收守护程序、指令处理程序及服务调度守护程序实现对不同场景的场景数据传输统一管理;另一方面通过指令接收守护程序、指令处理程序及服务调度守护程序对不同场景进行差异化管理的同时,方便后续针对程序的开发维护及运维管理。另外,通过指令接收守护程序接收所有的指令、通过指令处理程序对所有的指令进行处理,通过服务调度守护程序为不同场景的数据传输调度不同的数据传输程序或者代理发布监控程序等,以实现从指令接收、指令处理及程序调度三个维度统一管理不同场景的数据传输,方便后续对不同维度的程序的维护。
进一步地,上述数据传输管理方法可应用于包括有主节点和备用节点的数据总线,具体地,主节点和备用节点均设置有指令接收守护程序、指令处理程序和服务调度守护程序;
在实现上述数据传输管理方法的过程中,同步调用设置于主节点的指令接收守护程序和指令处理程序与设置于备用节点的指令接收守护程序和指令处理程序;仅调用设置于主节点的服务调度守护程序。通过包括有主节点和备用节点的数据总线管理数据传输,一方面可以保证数据传输的可靠性;另一方面可以针对不同平台之间数据传输采用统一的调用接口和统一寻址模式,灵活为异构平台配置和管理数据传输。仅调用设置于主节点的服务调度守护程序,可以避免场景数据传输相关的调用服务重复,避免场景数据重复进行数据传输。
其中,在满足预设的节点切换条件的情况下,将备用节点切换成主节点,并将主节点切换成备用节点。以进一步提高数据传输及数据传输管理的可靠性。
进一步地,在上述接收与数据传输相关的数据方的请求指令之后还可进一步包括:对请求指令进行有效性检测,并将请求指令和对应的检测结果写入预设的指令流水表;在有效性检测通过后,对数据方针对请求指令的权限进行校验,并将校验结果写入指令流水表;在校验结果指示校验成功后,执行查找与至少一个目标场景要素相匹配的目标场景传输策略的步骤。该有效性检测主要是为了检测请求指令的格式、数据方是否具有权限等进行检测,以保证数据方具有订阅场景数据、发布场景数据等权限。
其中,上述对请求指令进行有效性检测及对数据方针对请求指令的权限进行校验等过程一般通过指令接收守护程序执行。
指令接收守护程序一般将接收到的请求指令存储到指令流水表。
另外,除了上述数据方的请求指令,指令接收守护程序还可以接收其他指令比如服务调度守护程序生成的传输指令、代理触发指令、状态变更指令等,并将这些其他指令也统一存储到指令流水表中。即通过指令接收守护程序统一接收和管理几乎所有的针对数据总线的指令,并通过指令流水表存储这些指令,以方便对不同指令进行统一管理。
具体地,上述将请求指令和对应的检测结果写入预设的指令流水表的具体实施方式可包括:将请求指令和对应的检测结果写入预设的主指令流水表;在主指令流水表写入成功后,将请求指令和对应的检测结果写入预设的备指令流水表;在主指令流水表写入失败后,不在备指令流水表中写入,并进行告警提示。通过先写入主指令流水表,在主指令流水表写成功后,才写入备指令流水表,保证两个指令流水表统一的同时,以主节点的主指令流水表为指导,使存储的指令与实际数据传输服务相匹配。
可以理解地,除了上述请求指令之外,其他指令比如退订指令、状态变更指令等写入指令流水表的过程与上面类似,在此不再赘述。
具体地,上述将校验结果写入指令流水表的具体实施方式可包括:将校验结果写入预设的主指令流水表;在主指令流水表写入成功后,将校验结果写入预设的备指令流水表;在主指令流水表写入失败后,不在备指令流水表中写入,并进行告警提示。通过指令流水表维护校验结果,方便后续指令处理程序对指令处理过程,直接根据校验结果确定是否处理该指令,比如,如果校验结果指示校验未通过,则直接忽略该指令,而只处理校验通过的指令。
另外,针对通过上述指令接收守护程序执行上述将请求指令和对应的检测结果写入预设的指令流水表、将请求指令和对应的检测结果写入预设的指令流水表、对数据方针对请求指令的权限进行校验及将校验结果写入指令流水表等步骤,还可以为上述指令接收守护程序设置第一开关,以通过该第一开关控制指令接收守护程序执行或者不执行。比如,在第一开关处于开启状态,控制指令接收守护程序启动,以执行相关步骤,在第一开关处于关闭状态,控制指令接收守护程序关闭,不再执行相关步骤。通过第一开关方便对指令接收守护程序进行整体管理。
另外,为了能够实现从多个维度对数据传输所涉及的各个阶段进行管理,并保证管理的完整性和统一性。指令接收守护程序还可以针对不同类型的指令进行差异化的处理,比如针对查询指令和非查询指令进行不同的处理,下面详细说明上述数据传输管理方法中,以指令接收守护程序为基础,针对如传输指令、代理触发指令、上述的请求指令等非查询指令统一管理的过程,以及针对查询指令进行与非查询指令进行差异化管理的过程。
如图3所示,针对非查询指令,指令接收守护程序所执行的步骤可包括:
步骤S301:分析用于控制指令接收守护程序的第一开关当前所处的状态;在第一开关处于开启状态,执行步骤S302;在第一开关处于关闭状态,直接切断数据传输管理;
步骤S302:调用的用于管理非查询指令的第一线程调用ums接收函数接收非查询指令;
通过ums接收函数可以对指令或者数据的格式进行转换,以满足跨平台数据传输的需求。
另外,在整个过程中,指令接收守护程序所调用的用于管理非查询指令的第一线程可以定时发送心跳,以保证第一线程处于存活状态,并在第一线程出现异常后,能够及时发现和处理。
步骤S303:对非查询指令进行有效性检测,并将请求指令和对应的检测结果写入预设的主指令流水表;在写入成功的情况下,执行步骤S304;在写入失败的情况下,执行步骤S305;
该有效性检测可以为权限、指令格式等进行检测。
步骤S304:将非查询指令和对应的检测结果写入预设的备指令流水表;在写入成功且有效性检测未通过的情况下,执行步骤S306;在写入失败且有效性检测通过的情况下,执行步骤S307;在写入失败且有效性检测未通过的情况下,执行步骤S308;在写入成功且有效性检测通过的情况下,执行步骤S309;
步骤S305:发送写入主指令流水表失败的告警提示,并针对该非查询指令结束当前流程;
继续处理下一非查询指令。
步骤S306:返回指令有效性错误的提示信息给指令发起方,并针对该非查询指令结束当前流程;
继续处理下一非查询指令。
步骤S307:发送写入备用指令流水表失败的告警提示,并针对该非查询指令结束当前流程;
继续处理下一非查询指令。
步骤S308:发送写入备用指令流水表失败的告警提示,返回指令有效性错误的提示信息给指令发起方,并针对该非查询指令结束当前流程;
步骤S309:对非查询指令的权限进行校验,并将校验结果写入指令流水表;在校验通过的情况下,结束当前流程;在校验未通过的情况下,执行步骤S310;
在校验结果指示校验成功后,执行所述查找与至少一个所述目标场景要素相匹配的目标场景传输策略的步骤。
其中,将校验结果写入指令流水表的过程也是先将校验结果写入到主指令流水表,在写入主指令流水表成功后,才向备用指令流水表中写入该步骤的校验结果。不管是主指令流水表写入失败还是备用指令流水表写入失败均发送写入失败的告警信息,以及时对处理异常进行管理和维护。
步骤S310:返回没有权限的提示信息给指令发起方。
如图4所示,针对查询指令,指令接收守护程序所执行的步骤可包括:
步骤S401:分析用于控制指令接收守护程序的第一开关当前所处的状态;在第一开关处于开启状态,执行步骤S402;在第一开关处于关闭状态,直接切断查询指令的查询;
步骤S402:调用的用于管理查询指令的第二线程调用ums接收函数接收查询指令;
在整个过程中,指令接收守护程序所调用的用于管理查询指令的第二线程也会定时发送心跳,以及时发现第二线程异常。
步骤S403:对查询指令进行有效性检测,在有效性检测通过的情况下,执行步骤S404;在有效性检测未通过的情况下,执行步骤S405;
将查询指令写入到指令流水表中。
步骤S404:根据查询指令查询信息,为查询方提供查询到的结果,并结束当前流程;
步骤S405:发送指示指令错误的告警提示给查询方。
继续处理下一非查询指令。
综合图4所示的过程可知,上述数据传输管理方法可进一步包括:在接收到查询指令后,对查询指令进行校验;在校验出查询指令有效的情况下,根据查询指令查询状态表。
值得说明的是,图3所示的针对非查询指令的处理过程和图4所示的针对查询指令的处理过程是通过不同线程完成的,它们之间互不影响,可以同步执行。
在上述将请求指令写入预设的指令流水表的基础上,通过指令处理程序对数据传输管理进行第二个维度的管理的具体实现可包括:通过指令处理程序定时扫描指令流水表;针对指令流水表中的状态标注为未处理的请求指令,执行为数据方配置匹配于请求指令的多个状态项的步骤。使指令接收与指令处理过程完全解耦。
具体地,上述在至少一个状态表中,为数据方配置匹配于请求指令的多个状态项的具体实施方式可包括:针对数据方为数据订阅方,请求指令为订阅请求指令且目标场景传输策略包括的配置信息包括指示数据传输模式的发布订阅模式的情况,将请求指令和目标场景传输策略包括的多种场景要素分别写入订阅表和发布表,并配置订阅表中的订阅状态项和数据传输状态项,以及发布表中的数据发布状态项,并将请求指令的处理结果更新到预设的指令流水表。进一步地,针对目标场景传输策略包括指示数据传输模式的数据到达触发模式的情况,将请求指令和目标场景传输策略包括的多种场景要素写入与数据方的类型相匹配的目标状态表,并配置目标状态表中的订阅状态项/发布状态项、数据传输状态项和代理状态项,并将请求指令的处理结果更新到预设的指令流水表。
综上可知,本发明实施例提供的方案包括有发布订阅模式和数据到达触发模式两种数据传输模式。其中,发布订阅模式是指的订阅方所订阅的场景数据直接来源于发布方,该种模式一般需要订阅方指定发布方,该种模式一般针对属于同一数据域的订阅方和发布方;数据到达触发模式是指订阅方不能直接得到发布方的场景数据,而是通过代理才能得到场景数据,该模式下,订阅方可以不知道发布方,只需要向代理订阅数据即可。另外,数据到达触发模式也可以是针对发布方的,其可为发布方代理发布场景数据,使发布方是隐藏的。
值得说明的是,指令处理程序除了处理请求指令之外,还可以处理其他的指令。
另外,还可通过为指令处理程序设置第二开关,通过控制该第二开关的状态控制指令处理程序开启或者关闭。
具体地,如图5所示,指令处理程序的处理过程可包括如下步骤:
步骤S501:分析用于控制指令处理程序的第二开关的状态,在第二开关处于开启状态的情况下,执行步骤S502;在第二开关处于关闭状态的情况下,直接切断数据传输管理。
步骤S502:定时扫描指令流水表中未处理指令;
指令处理程序定时发送心跳,以能够及时发现指令处理程序是否发生异常。
步骤S503:分析未处理指令的指令类型;在指令类型为发布指令/订阅指令的情况下,执行步骤S504;在指令类型为订阅组或者通配符指令的情况下,执行步骤S506;在指令类型为更新状态指令的情况下,执行步骤S507;
其中,订阅组或者通配符指令使具有特征标记的指令,该指令可以针对相关的多个状态项或者信息进行处理。
步骤S504:将发布指令/订阅指令写入对应的发布表/订阅表;
步骤S505:更新指令流水表中指令状态为已处理,并结束当前流程;
步骤S506:展开订阅信息写入订阅表或者发布表,并执行步骤S505;
步骤S507:判断更新状态指令是否为强制指令,如果是,则执行步骤S508;否则,执行步骤S509;
步骤S508:更新订阅表/发布表中数据状态,并执行步骤S505;
步骤S509:判断更新前状态和更新后状态是否连续,如果是,则执行步骤S508;否则,不更新数据状态。
在前面已经提及除了请求指令(发布指令、订阅指令)之外,还可对其他指令进行处理。比如,针对退订指令,上述数据传输管理方法还可进一步包括:指令接收守护程序接收退订指令,将退订指令写入指令流水表;指令处理程序基于场景表,查找订阅表中与退订指令包括的通配符或者数据组相匹配的订阅记录,并更新订阅记录的订阅状态。
其中退订指令一般是对已经订阅的场景数据进行退订(即数据退订),该数据退订是用户通过数据总线的数据退订API,退订某类已订阅数据。数据退订包括数据域、数据名称、数据日期、批次号、订阅方、退订指令等信息。在涉及代理过程的情况下,数据退订仅告知用户需要退订某类已订阅数据,由数据总线通知相应的代理(下述的代理发布监控程序),由代理完成数据退订动作。
进一步地,上述调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理的具体实施方式可包括:针对需要代理发布监控程序代理发布的场景数据的数据传输(即数据到达触发模式),为需要代理的请求指令生成代理触发指令给代理发布监控程序;通过代理发布监控程序为请求指令生成代理任务,并将代理任务写入预设的代理表。
进一步地,针对需要代理发布监控程序代理发布的场景数据的数据传输(即数据到达触发模式),对包含至少一个目标场景要素的场景数据进行数据传输管理的具体实施方式可还进一步包括:扫描至少一个状态表中的发布表(值得说明的是,发布表中存放的发布方可以包括有数据域之外的发布方,代理发布监控程序可以为数据域之外的发布方代理发布,即通过发布表对所有发布方涉及代理的发布方和不涉及代理的发布方进行统一管理);调度代理发布监控程序监控代理表和生成的数据文件;针对扫描出的发布表中标注数据到达触发模式且处于未代理状态的第二发布记录,监控到代理表中与第二发布记录相匹配的目标代理任务标注为未处理的情况,调度代理发布监控程序处理对应于第二发布记录的场景数据,并生成对应于第二发布记录的场景数据的数据文件,并发送代理数据更新指令给指令接收守护程序;指令接收守护程序将代理数据更新指令更新到指令流水表;指令处理程序处理代理数据更新指令,更新第二发布记录中的代理状态和发布状态。
进一步地,上述调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理的具体实施方式可进一步包括:为需要代理的请求指令生成代理触发指令给代理发布监控程序;通过代理发布监控程序为请求指令生成代理任务,并将代理任务写入预设的代理表。
进一步地,上述调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理的具体实施方式可进一步包括:分别扫描至少一个状态表中的订阅表和发布表;针对扫描出的发布表中标注已发布状态的第一发布记录且订阅表中与第一发布记录相匹配的第一订阅记录标注未传输状态,发送传输指令给数据传输程序,以使数据传输程序将第一发布记录所对应的场景数据传输给第一订阅记录所对应的订阅方。
进一步地,上述数据传输管理方法还可进一步包括:为服务调度守护程序配置有调度表;将服务调度守护程序针对用于代理数据发布的代理发布监控程序和用于传输数据的数据传输程序的调用情况写入调度表。
另外,针对该服务调度守护程序可以配置第三开关,在第三开关为开启状态下,服务调度守护程序执行相关的步骤,在第三开关为关闭状态下,切断场景数据的数据传输管理。
具体地,如图6所示,通过服务调度守护程序实现的步骤可包括:
步骤S601:分析主节点上的服务调度守护程序所配置的第三开关的状态,在第三开关处于开启状态的情况下,通过多线程分别执行步骤S602、步骤S605、步骤S608、步骤S611及步骤S613;在第三开关处于关闭状态的情况下,直接切断数据传输管理;
步骤S602:扫描发布表中代理状态为未代理且需要代理的记录;
步骤S603:判断调度表中是否已有代理申请记录,如果是,直接结束当前流程;否则,执行步骤S604;
步骤S604:发送代理申请指令给代理发布监控程序,并在调度表中添加代理申请记录,并结束当前流程;
步骤S605:扫描发布表中代理状态为已代理且订阅表中对应的记录状态为已退订的记录;
步骤S606:判断调度表中是否已有代理取消记录,如果是,直接结束当前流程;否则,执行步骤S607;
步骤S607:发送代理取消指令给代理发布监控程序,并在调度表中添加代理取消记录,并结束当前流程;
步骤S608:匹配发布表与订阅表中的记录;
步骤S609:判断调度表中是否已有数据传输指令调用对应的数据传输程序的记录,如果是,则结束当前流程;否则,执行步骤S610;
步骤S610:发送数据传输指令给数据传输程序,并在调度表中添加调用数据传输程序的记录,并结束当前流程;
步骤S611:扫描调度表中状态为已申请的记录,查看对应该记录的发布表或者订阅表中的信息是否已改变,如果是,则结束当前流程;否则,执行步骤S612;
步骤S612:更新调度表记录,并结束当前流程;
步骤S613:扫描调度表中状态为已申请的记录,对应该记录的发布表或者订阅表中的信息长时间未变,发送告警信息。
综上可知,本发明实施例可通过订阅表和发布表维护针对发布订阅模式和数据到达触发模式进行数据传输管理的状态信息。为了能够清楚地说明本发明实施例针对发布订阅模式和数据到达触发模式这两种模式的涉及数据传输管理的各种状态数据的管理以及数据传输过程的管理。下面分别以发布表和订阅表的状态变化和数据传输管理的时序处理过程为例,说明上述两种模式。比如,针对发布订阅模式下的发布表和订阅表的状态信息管理可如图7A所示。如图7A所示,针对发布订阅模式下的发布表和订阅表的状态信息管理可包括如下步骤:
步骤S701A:针对订阅指令,在订阅表中维护状态信息为已订阅、尚未传输;
步骤S702A:针对发布指令,判断是否需要代理,如果否,则在发布表中维护状态信息为已发布、初始状态、未代理;
步骤S703A:在对应的数据已发布,服务调度守护程序发送内部控制指令给指令接受守护程序;
步骤S704A:指令处理程序将订阅表中对应的状态信息更新为已订阅、正在传输;
步骤S705A:数据传输程序传输完毕,通知数据总线;如果传输正确,则指令处理程序将订阅表中对应的状态信息更新为已订阅、传输完毕;如果传输错误,则指令处理程序将订阅表中对应的状态信息更新为已订阅、传输错误。
又比如,针对数据到达触发模式下的发布表和订阅表的状态信息管理可如图7B所示。如图7B所示,针对数据到达触发模式下的发布表和订阅表的状态信息管理可包括如下步骤:
步骤S701B:针对订阅指令,在订阅表中维护状态信息为已订阅、尚未传输;
步骤S702B:发布表中对应于该订阅指令的记录的状态为尚未发布、初始状态、未代理;
步骤S703B:服务调度守护程序发送内部控制指令(即代理触发指令)给代理发布监控程序,代理发布监控程序应答,如果代理失败,则执行步骤S704B;如果代理成功,则执行步骤S705B;
步骤S704B:发布表中对应于该订阅指令的记录的状态为尚未发布、初始状态、代理失败,并结束当前流程;
步骤S705B:发布表中对应于该订阅指令的记录的状态为尚未发布、初始状态、代理成功;
步骤S706B:代理发布监控程序监控到场景数据到达,检查数据格式正确性;如果检查数据格式错误,则执行步骤S707B;如果检查数据格式正确,则执行步骤S708B;
步骤S707B:发布表中对应于该订阅指令的记录的状态为尚未发布、格式错误、已代理,并结束当前流程;
步骤S708B:发布表中对应于该订阅指令的记录的状态为尚未发布、格式正确、已代理,执行步骤S709B;并在接收到代理取消请求的情况下,将发布表中对应于该订阅指令的记录的状态为尚未发布、格式正确、代理取消;
步骤S709B:服务调度守护程序触发数据传输程序,数据传输程序应答,并为数据订阅方传输该场景数据;
步骤S710B:在订阅表中维护状态信息为已订阅、正在传输;
步骤S711B:数据传输程序传输场景数据完毕后,通知数据总线,如果传输正确,则执行步骤S712B;如果传输错误,则执行步骤S714B;
步骤S712B:在订阅表中维护状态信息为已订阅、传输完毕;
步骤S713B:数据订阅方针对上述已订阅的场景数据发送退订指令,在订阅表中维护状态信息为已退订、传输完毕,并结束当前流程;
步骤S714B:在订阅表中维护状态信息为已订阅、传输错误。
针对发布订阅模式下的数据传输管理的时序处理过程可如图7C所示。如图7C所示,针对发布订阅模式下的数据传输管理的时序处理过程可包括如下步骤:
步骤S701C:指令接收守护程序分别接收订阅方发送的订阅请求指令,发布方发送的发布请求指令;
步骤S702C:指令接收守护程序分别对订阅请求指令和发布请求指令进行权限校验,并分别将订阅请求指令和发布请求指令写入指令流水表,返回订阅请求指令的处理结果给订阅方,返回发布请求指令的处理结果给发布方;
步骤S703C:指令处理程序从指令流水表获取订阅请求指令,并将订阅请求指令及相关状态如已订阅、尚未传输等写入订阅表;
步骤S704C:指令处理程序从指令流水表获取发布请求指令,并将发布请求指令及相关状态如已发布、初始状态等写入发布表;
步骤S705C:服务调度守护程序为订阅表中状态为已订阅尚未传输的记录,生成传输指令;
步骤S706C:服务调度守护程序将传输指令发送给数据传输程序;
步骤S707C:数据传输程序启动传输,并向指令接收守护程序发送传输状态变更的第一请求指令;
步骤S708C:指令接收守护程序对传输状态变更的第一请求指令进行权限校验,并将传输状态变更的第一请求指令写入指令流水表,并发送传输状态变更的第一应答指令给数据传输程序;
步骤S709C:指令处理程序从指令流水表获取传输状态变更的第一请求指令,将订阅表中对应记录更新状态为已订阅、正在传输;
步骤S710C:数据传输程序传输完毕,并向指令接收守护程序发送传输状态变更的第二请求指令;
步骤S711C:指令接收守护程序对传输状态变更的第二请求指令进行权限校验,并将传输状态变更的第二请求指令写入指令流水表,并发送传输状态变更的第二应答指令给数据传输程序;
步骤S712C:指令处理程序从指令流水表获取传输状态变更的第二请求指令,将订阅表中对应记录更新状态为已订阅、传输完毕。
针对数据到达触发模式下的发布表和订阅表的数据传输管理的时序过程可如图7D所示。如图7D所示,针对数据到达触发模式下的数据传输管理的时序过程可包括如下步骤:
步骤S701D:指令接收守护程序接收订阅方发送的订阅请求指令;
步骤S702D:指令接收守护程序对订阅请求指令进行权限校验,并将订阅请求指令写入指令流水表,并返回订阅请求指令的处理结果给订阅方;
步骤S703D:指令处理程序从指令流水表获取订阅请求指令,并将订阅请求指令及相关状态如已订阅、尚未传输等写入订阅表,其中,该订阅请求指令对应于发布表一条记录状态为初始状态、未代理;
步骤S704D:服务调度守护程序将发布表中代理类型为需要代理的记录,生成代理请求指令;
步骤S705D:服务调度守护程序代理将请求指令发送给数据传输程序;
步骤S706D:代理发布监控程序为代理请求指令生成代理任务,并生成代理状态第一变更指令给指令接收守护程序;
步骤S707D:代理发布监控程序将代理状态第一变更指令发送给指令接收守护程序,指令接收守护程序将代理状态第一变更指令写入指令流水表,并发送代理状态变更第一应答指令给代理发布监控程序;
步骤S708D:指令处理程序从指令流水表获取代理状态第一变更指令,将发布表中对应记录更新状态为已代理;
步骤S709D:代理发布监控程序监控到对应于代理任务的场景数据,为场景数据生成数据文件,并生成代理状态第二变更指令给指令接收守护程序;指令接收守护程序将代理状态第二变更指令写入指令流水表,并发送代理状态变更第二应答指令给代理发布监控程序;
步骤S710D:指令处理程序从指令流水表获取代理状态第二变更指令,将发布表中对应记录更新状态为已代理、格式正确、数据量;
步骤S711D:代理发布监控程序发送代理发布请求指令给指令接收守护程序;指令接收守护程序将代理发布请求指令写入指令流水表,并发送代理发布应答指令给代理发布监控程序;
步骤S712D:指令处理程序从指令流水表获取代理状态第二变更指令,将发布表中对应记录更新状态为已发布;
后续针对代理的场景数据的传输过程与上述发布订阅模式的步骤S705C至步骤S712C基本一致,即服务调度守护程序为订阅表和发布表匹配可以传输场景数据的记录,生成传输指令;服务调度守护程序将传输指令发送给数据传输程序;数据传输程序启动传输,并向指令接收守护程序发送传输状态变更的第一请求指令;指令接收守护程序对传输状态变更的第一请求指令进行权限校验,并将传输状态变更的第一请求指令写入指令流水表,并发送传输状态变更的第一应答指令给数据传输程序;指令处理程序从指令流水表获取传输状态变更的第一请求指令,将订阅表中对应记录更新状态为已订阅、正在传输;数据传输程序传输完毕,并向指令接收守护程序发送传输状态变更的第二请求指令;指令接收守护程序对传输状态变更的第二请求指令进行权限校验,并将传输状态变更的第二请求指令写入指令流水表,并发送传输状态变更的第二应答指令给数据传输程序;指令处理程序从指令流水表获取传输状态变更的第二请求指令,将订阅表中对应记录更新状态为已订阅、传输完毕。在此,针对代理的场景数据的传输过程不再在图7D上赘述。
进一步地,针对上述数据到达触发模式下的涉及数据退订的数据传输管理的时序过程可如图7E所示。如图7E所示,针对数据到达触发模式下的数据退订的时序过程可包括如下步骤:
步骤S701E:指令接收守护程序接收订阅方发送的退订请求指令;
步骤S702E:指令接收守护程序对退订请求指令进行权限校验,并将退订请求指令写入指令流水表,并返回订阅请求指令的处理结果给订阅方;
步骤S703E:指令处理程序从指令流水表获取退订请求指令,并将退订请求指令及相关状态如已退订等写入订阅表;
步骤S704E:服务调度守护程序为订阅表中状态为已退订的记录,生成退订指令;
步骤S705E:服务调度守护程序代理将退订指令发送给数据传输程序;
步骤S706E:代理发布监控程序取消对应于退订指令的代理任务,并生成代理状态第三变更指令,将代理状态第三变更指令发送给指令接收守护程序;
步骤S707E:指令接收守护程序将代理状态第三变更指令写入指令流水表,并发送代理状态变更第三应答指令给代理发布监控程序;
步骤S708E:指令处理程序从指令流水表获取代理状态第三变更指令,将发布表中对应记录更新状态为已取消代理。
值得说明的是,针对发布订阅模式,服务调度守护程序调用数据传输程序的触发条件必须是该数据已经被发布方发布和订阅方订阅。发布方发布某类数据和订阅方订阅数据没有先后顺序依赖,可以发布方先发布某类数据后,再由订阅方订阅该类数据,由数据总线根据触发条件起调相应的数据传输程序;也可以订阅方先订阅某类数据,数据总线检测该类数据发布情况,一旦数据发布方发布,则触发数据传输程序。值得说明的是,该数据传输程序可以为数据总线中的程序,也可以为数据订阅方的数据传输程序。
针对数据到达触发模式,服务调度守护程序调用数据传输程序的触发条件必须是该数据已经到达。数据总线检测到数据一旦到达,由代理程序进行该类数据的发布。数据总线检测到数据已发布且被订阅,则触发数据传输程序,传输数据至相应的订阅方。值得说明的是,该数据传输程序可以为数据总线中的程序,也可以为数据订阅方的数据传输程序。
进一步地,针对上述指令接收守护程序、指令处理程序及服务调度守护程序还可以通过心跳监控程序是否正常,以提高程序运行的可靠性。具体地,如图8所示,上述各个程序的心跳监控的具体实现可包括如下步骤:
步骤S801:心跳监控程序获取上述各个程序的心跳内容;
步骤S802:对获取到的心跳内容进行分析,如果分析的结果指示程序正常,则执行步骤S803;如果分析的结果指示程序异常,则执行步骤S804;
步骤S803:更新心跳信息表中程序的最后时间,并结束当前流程;
步骤S804:发出程序异常的告警提示信息。
通过上述心跳监控程序,实现对指令接收守护程序、所述指令处理程序及服务调度守护程序进行实时监控,以保证这些程序正常运行。
上面已经提及指令接收守护程序、指令处理程序及服务调度守护程序分别配置有用于控制程序开启或者关闭的程序开关;
在所述程序开关处于开启状态下,程序开关所对应的程序运行。
具体地,如图9所示,各个程序所对应的程序开关管理方式可包括如下步骤:
步骤S901:开关控制程序发送HTTP请求;
步骤S902:分析该HTTP请求,在分析出该HTTP请求更改程序开关的状态的情况下,执行步骤S903;在分析出该HTTP请求保持程序开关的状态的情况下,直接结束当前流程;
步骤S903:重新读取开关配置文件,并将开关配置文件加载到缓存中。
通过HTTP请求可以使用户能够方便地控制程序开启或停用或者暂停。
进一步地,上述数据传输管理方法还可进一步包括:通过总线监控程序对数据总线进行监控。通过对数据总线监控,以及时发现数据总线是否存在异常,以保证数据传输管理的可靠性。
具体地,该通过总线监控程序对数据总线进行监控的具体实施方式可包括:总线监控程序进入while循环,并读取总线监控的配置信息,根据配置信息对数据总线的心跳情况及数据传输处理情况进行监控。
如图10所示,通过总线监控程序对数据总线进行监控的具体实施方式可包括如下步骤:
步骤S1001:设置总线监控程序为运行状态;
该步骤可以通过运行JAVA可执行程序实现。
步骤S1002:总线监控程序进入while循环,读取总线监控配置,分别执行步骤S1003和步骤S1005;
步骤S1003:总线监控程序对各个程序进行心跳监控;
步骤S1004:计算心跳表中记录的各个程序的最后心跳时间与当前时间的时间间隔,如果时间间隔小于或等于3min,则执行步骤S1002;如果时间间隔大于3min,则执行步骤S1006;
该心跳监控过程可以通过查询数据库中正常运行守护程序心跳最后更新时间。若是停止状态,则直接跳过。进入下一轮心跳探测。
将最后更新时间与当前数据总线的最新时间做对比。若时间超过系统参数表配置的阈值,则该守护程序的心跳出现问题,记录错误日志,往集中监控处理中心发送告警信息。告警周期递增,至少2小时告警一次。
步骤S1005:总线监控程序对各个程序运行情况进行监控;如果各个程序重复处理同一指令或者调度的次数达到或者超过预设的次数阈值,则执行步骤S1006;如果各个程序重复处理同一指令或者调度的次数未达到预设的次数阈值,执行步骤S1002;
其中,数据总线默认是主节点服务调度守护程序在运行,备用节点服务调度守护程序空转,主节点和备用节点的指令接收守护程序和令处理程序均正常运行。当总线监控到连续出现三次订阅失败,则更改总开关配置,切换主备节点开关。并只允许主节点往备用节点切换一次。
步骤S1006:集中监控异常告警。
进一步地,如图11所示,通过总线监控程序控制主节点与备节点的切换的具体实现可包括如下步骤:
步骤S1101:设置总线监控程序为运行状态;
步骤S1102:总线监控程序进入while循环;
步骤S1103:总线监控程序读取数据总线的监控配置信息;
步骤S1104:总线监控程序判断数据总线是否为运行状态,如果是,则执行步骤S1105;否则,执行步骤S1102;
步骤S1105:总线监控程序每间隔60s读取参数配置,调用发布订阅函数;
步骤S1106:总线监控程序每间隔60s调用查询函数;
步骤S1107:总线监控程序查询订阅传输状态,如果订阅记录订阅不成功,执行步骤S1108;如果订阅成功且传输完毕,则执行步骤S1109;
步骤S1108:将订阅不成功次数进行加1操作,并执行步骤S1110;
步骤S1109:在本地记录日志信息,并对订阅不成功次数清零,并执行步骤S1102;
步骤S1110:判断订阅不成功次数是否超过配置的阈值,如果是,则执行步骤S1111;否则,执行步骤S1102;
步骤S1111:进行订阅异常告警,并对数据总线的开关配置文件加锁,更改开关配置运行节点,以将备用节点切换为主节点,将主节点切换成备用节点;
步骤S1112:发送HTTP请求更新主节点开关配置;
步骤S1113:判断更新主节点开关配置是否成功,如果是,则执行步骤S1114;否则,执行步骤S1117;
步骤S1114:发送HTTP请求更新备用节点开关配置;
步骤S1115:判断更新备用节点开关配置是否成功,如果是,则执行步骤S1116;否则,执行步骤S1117;
步骤S1116:确定集中监控记录切换成功,并结束当前流程;
步骤S1117:集中监控报警。
另外,若发布或订阅或是订阅查询时,出现主节点的ums系统(用于转换跨平台数据的系统)已关闭异常。则需告警“UMS系统已关闭”,告警一次。下次出现则记录错误日志。当ums恢复时,仅有发布成功,订阅成功,调用订阅查询成功后,则再发布恢复告警信息“总线发布订阅已恢复”。若出现数据库异常。则需要周期性告警。监控程序都只读取本节点上的数据库。
另外,若每次循环正常完成的情况,调用查询时候,该笔测试数据的订阅状态为已订阅、传输状态为传输完毕。则在本地记录日志信息“【总线监控】DTB运行正常:日期(yyyyMMddhhmmss),批次号(1000)” 。
若连续三次订阅都不成功,则在记录错误日志信息“企业数据总线运行异常:日期(yyyyMMddhhmmss),批次号(1000)”,
当总线监控到连续订阅失败三次。
若监控为自动切换开关,则对总开关配置文件进行加锁处理,修改数据总开关配置文件,运行节点RUN_NODE配置参数从主节点切换至备用节点。
发送同步HTTP请求给主节点,更新缓存的开关配置。若返回值STATUSCODE等于“刷新缓存成功”。同步请求发送失败,线程等待系统参数表配置REPLAY_INTERVAL_TIME秒,继续发送同步HTTP请求。当连续失败次数超过三次。监控程序记录错误日志,发送告警信息,记录操作日志。告警刷新主节点失败,进行下一步操作。
发送同步HTTP请求给备用节点,更新缓存中的开关配置。若返回值STATUSCODE等于“刷新缓存成功”。同步请求发送失败,线程等待系统参数表配置REPLAY_INTERVAL_TIME秒,继续发送同步HTTP请求。当连续失败次数超过三次。监控程序记录错误日志,发送告警信息。程序退出。
如果正常完成切换,则在集中监控中增加一条记录信息“数据总线已成功切换至备用节点:日期(yyyyMMddhhmmss)“。
开关正常切换后,总线监控程序继续监控。每隔一段PUBSUB_INTERAL_TIME时间调用发布订阅函数。间隔EXPLORE_QRY_WAITTIME调用DTB_QrySubStatus查询时候,该笔测试数据的订阅状态为已订阅、传输状态为传输完毕。
若出现异常,统计发布订阅出现的订阅不成功次数。当次数达到EXPLORE_EXCEPTION_NUM阈值。监控程序发送告警信息“总线监控(自动)开关已做过切换,总线监控连续订阅失败三次程序退出”。程序退出。
若监控到手工切换开关,则告警“总线监控(手工)连续订阅失败三次,请手工执行切换开关操作”,继续下一轮发布订阅探测,若再连续订阅失败三次,则记录错误日志“总线监控(手工):集中监控已告警过,程序进入下一轮发布订阅探测”。当手工切换开关告警后,订阅查询成功到传输成功。则告警“总线发布订阅已恢复”。
进一步地,为了保证数据传输管理的一致性,上述数据传输管理方法还可进一步包括:比对主备节点的订阅表和发布表中的数据。在比对时,置数据总线开关为“系统暂停”。若比对结果不一致,则告警,生成比对结果。值得说明的是,在比对过程不会修改开关配置的运行节点RUN_NODE,只会修改开关的运行状态DTBSTATUS【 1(运行)/9(暂停)】。其中,实现比对的比对程序可以通过命令行起调,支持定时触发和手工触发操作。定时触发可采用shell脚本定时任务来起调。
具体地,如图12所示,该比对过程的具体实施方式可包括如下步骤:
步骤S1201:查询主节点和备用节点的指令流水表;
步骤S1202:判断指令流水表中是否有未完成记录,如果是,则执行步骤S1203;否则,执行步骤S1205;
步骤S1203:进行查询次数加1操作;
步骤S1204:判断查询次数是否超过10次,如果是,则结束当前流程;否则,按照设定时间间隔执行步骤S1201;
步骤S1205:发送HTTP请求更新主节点开关配置为暂停;
步骤S1206:判断主节点开关配置为暂停是否成功,如果是,则执行步骤S1207;否则,执行步骤S1211;
步骤S1207:发送HTTP请求更新备用节点开关配置为暂停;
步骤S1208:判断备用节点开关配置为暂停是否成功,如果是,则执行步骤S1209;否则,执行步骤S1211;
步骤S1209:对主备节点的状态表中的数据进行比对,如果主备节点的状态表中的数据一致,则执行步骤S1210;如果主备节点的状态表中的数据不一致,则执行步骤S1212;
进行主备运行库比对,并过滤探测信息,加载至备库的临时表,使用SQL进行数据比对,比对结果写入比对结果日志表,比对明细写入比对结果明细表;
步骤S1210:通过配置主备节点的开关配置文件,使数据总线的主备节点运行,并结束当前流程;
步骤S1211:失败次数加1,判断失败累计次数是否大于3,如果是,则执行步骤S1212;否则,按照预设的时间间隔,执行步骤S1206;
步骤S1212:集中监控告警。
其中,比对结果写入比对结果日志表,比对明细写入比对结果明细表。如果不一致,则在集中监控中告警“告警:数据总线主备运行库不一致:日期(yyyyMMddHHmmss)”。
另外,比对完成后,设置数据总线的总开关为比对前开关初始状态。发送同步HTTP请求给主节点,更新缓存的开关配置,等待系统参数表配置的REPLAY_INTERVAL_TIME时间后,发送同步HTTP请求给备节点,更新缓存中的开关配置。
进一步地,为了进一步提升主节点和备用节点的数据传输管理的一致性,双活会同时往主备节点写入指令流水,写主成功就返回成功,备的指令流水就存在丢失情况。这样导致的备节点运行库中发布表,订阅表信息与主节点不一致。需把主节点指令流水表,订阅表,发布表数据强制同步到备节点。本发明实施例提供通过强制同步程序来同步主备节点的数据。其中,强制同步程序通过命令行方式起调,手工触发执行shell脚本操作。
具体地,以主节点对应的主数据库中发布表和备用节点对应的备用数据库中发布表为例子,如主节点对应的主数据库中发布表为表A,备用节点对应的备用数据库中发布表未表B。通过强制同步程序强制以主数据库a中的表A覆盖备用数据库b中的表B。如图13所示,该强制同步的过程可包括如下步骤:
步骤S1301:清空B表所在备用数据库b中的B表备份表和A表临时表;
步骤S1302:将B表数据备份至清空后的B表备份表;
步骤S1303:将A表所在主数据库a中的A表数据插入备用数据库b中的A表临时表,如果插入出现异常,则执行步骤S1304;如果插入正常,则执行步骤S1305;
步骤S1304:事件回滚,记录错误日志,并告警,结束当前流程;
步骤S1305:清空备用数据库b中的B表数据,将A表临时表中的数据插入值B表;如果插入出现异常,则执行步骤S1304;如果插入正常,则执行步骤S1306;
步骤S1306:判断A表与B表记录条数是否一致,如果一致,则执行步骤S1307;如果不一致,则执行步骤S1308;
步骤S1307:判断B表与A表临时表中数据是否一致,如果一致,则执行步骤S1309;如果不一致,则执行步骤S1308;
步骤S1308:打印错误信息,并清空备用数据库b中B表数据,从B表备份表中还原数据,并结束当前流程;
步骤S1309:确定同步成功。
综上可知,本发明实施例提供的方案,依靠数据传输场景定义的方法,使用统一的标准定义了不同平台之间数据传输模式,统一了调用接口和寻址模式,以发布订阅机制为核心,实现了异构平台之间灵活数据传输。
另外,本发明通过主备节点,使用户在使用数据总线提供的API或者内部指令API发送指令时,会随机发送给任意一个节点,在发送失败的情况下,会再尝试发送给另外一个节点。
通过主备节点设置,两个节点的指令接收功能双活,任意一个节点接收到指令(用户或内部指令)后,都会写入两个节点的指令流水库。每个节点上的指令处理程序仅处理各自的指令流水,更新各自的数据库信息。
另外,数据总线具有统一的总开关,开关具有三种状态:系统运行、系统暂停、系统关闭。当总开关状态为“系统运行”时,每个节点的指令接收和指令处理功能正常运行,主用节点的服务调度守护程序正常运行,备用节点的服务调度守护程序空转。当总开关状态为“系统暂停”时,每个节点暂停接收所有的用户指令和内部控制指令,每个节点的指令处理功能正常运行,主用节点的服务调度守护程序正常运行,备用节点的服务调度守护程序空转。当总开关状态为“系统关闭”时,每个节点的应用守护功能完美退出。
另外,本发明实施提供的数据总线还具有统一的主备开关,两个节点根据主备开关,设置服务调度守护程序运行状态。主用节点上的服务调度守护程序处于运行状态,备用节点上的服务调度守护程序处于空转。数据总线节点需要监控数据总线节点的运行情况,当发现主用节点运行出现异常时,能切换主备开关。主备节点自动切换功能仅允许从主用节点至备用节点切换一次,当出现自动切换后,需要在系统关闭状态时,对两台节点进行主备运行库同步。
图14是本发明实施例提供的一种数据传输管理装置的结构示意图。如图14所示,该数据传输管理装置1400应用于数据总线,可包括:指令接收守护模块1401、指令处理模块1402及服务调度守护模块1403,其中,
指令接收守护模块1401,用于接收与数据传输相关的数据方的请求指令,其中,请求指令包括至少一个目标场景要素;在配置有多种场景传输策略的场景表中,查找与至少一个目标场景要素相匹配的目标场景传输策略,其中,每一种场景传输策略对应一种场景,且每一种场景传输策略包括有多种场景要素和与数据传输相关的配置信息;
指令处理模块1402,用于根据目标场景传输策略包括的配置信息,在至少一个状态表中,为数据方配置匹配于请求指令的多个状态项;
服务调度守护模块1403,用于调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项。
在本发明实施例中,指令接收守护模块1401配置有指令接收守护程序,指令处理模块1402配置有指令处理程序,服务调度守护模块1403配置有服务调度守护程序。
在本发明实施例中,上述数据传输管理装置1400应用于包括有主节点和备用节点的数据总线,其中,指令接收守护模块1401、指令处理模块1402及服务调度守护模块1403均设置于主节点和备用节点。
在本发明实施例中,指令接收守护模块1401,进一步用于对所述请求指令进行有效性检测,并将所述请求指令和对应的检测结果写入预设的指令流水表;在有效性检测通过后,对数据方针对所述请求指令的权限进行校验,并将校验结果写入指令流水表;在校验结果指示校验成功后,执行查找与至少一个目标场景要素相匹配的目标场景传输策略的步骤。
在本发明实施例中,指令接收守护模块1401,进一步用于将请求指令和对应的检测结果写入预设的主指令流水表;在主指令流水表写入成功后,将请求指令和对应的检测结果写入预设的备指令流水表;在主指令流水表写入失败后,不在备指令流水表中写入,并进行告警提示。
在本发明实施例中,指令接收守护模块1401,进一步用于将校验结果写入预设的主指令流水表;在主指令流水表写入成功后,将校验结果写入预设的备指令流水表;在主指令流水表写入失败后,不在备指令流水表中写入,并进行告警提示。
在本发明实施例中,指令接收守护模块1401,进一步用于将请求指令写入预设的指令流水表;
指令处理模块1402,进一步用于定时扫描指令流水表;针对指令流水表中的状态标注为未处理的请求指令,执行为数据方配置匹配于所述请求指令的多个状态项。
在本发明实施例中,指令处理模块1402,进一步用于针对数据方为数据订阅方,请求指令为订阅请求指令且目标场景传输策略包括的配置信息包括指示数据传输模式的发布订阅模式的情况,将请求指令和目标场景传输策略包括的多种场景要素分别写入订阅表和发布表,并配置订阅表中的订阅状态项和数据传输状态项,以及发布表中的数据发布状态项,并将请求指令的处理结果更新到预设的指令流水表;针对目标场景传输策略包括指示数据传输模式的数据到达触发模式的情况,将请求指令和目标场景传输策略包括的多种场景要素写入与数据方的类型相匹配的目标状态表,并配置目标状态表中的订阅状态项/发布状态项、数据传输状态项和代理状态项,并将请求指令的处理结果更新到预设的指令流水表。
在本发明实施例中,服务调度守护模块1403,进一步用于为需要代理的请求指令生成代理触发指令给代理发布监控程序;通过代理发布监控程序为请求指令生成代理任务,并将代理任务写入预设的代理表。
在本发明实施例中,服务调度守护模块1403,进一步用于分别扫描至少一个状态表中的订阅表和发布表;针对扫描出的发布表中标注已发布状态的第一发布记录且订阅表中与第一发布记录相匹配的第一订阅记录标注未传输状态,发送传输指令给数据传输程序,以使数据传输程序将第一发布记录所对应的场景数据传输给第一订阅记录所对应的订阅方。
在本发明实施例中,服务调度守护模块1403,进一步用于将所述传输指令发送给指令接收守护模块1401;
指令接收守护模块1401,进一步用于将传输指令写入指令流水表;
指令处理模块1402,进一步用于根据传输指令,更新订阅表和发布表中的传输状态。
在本发明实施例中,如图14所示,上述数据传输管理装置1400还可进一步包括:代理发布监控模块1404,其中,
服务调度守护模块1403,进一步用于扫描至少一个状态表中的发布表,针对扫描出的发布表中标注数据到达触发模式且处于未代理状态的第二发布记录,并调度代理发布监控模块1404;
代理发布监控模块1404,用于在接受到调度后,监控代理表和生成的数据文件;在服务调度守护模块1403监控到代理表中与第二发布记录相匹配的目标代理任务标注为未处理的情况,处理对应于第二发布记录的场景数据,并生成对应于第二发布记录的场景数据的数据文件,并发送代理数据更新指令给指令接收守护程序;
指令接收守护模块1401,进一步用于将代理数据更新指令更新到指令流水表;
指令处理模块1402,进一步用于处理代理数据更新指令,更新第二发布记录中的代理状态和发布状态。
在本发明实施例中,指令接收守护模块1401,进一步用于在接收到查询指令后,对查询指令进行校验;在校验出查询指令有效的情况下,根据查询指令查询状态表。
在本发明实施例中,如图14所示,上述数据传输管理装置1400还可进一步包括:控制程序开关模块1405,其中,
控制程序开关模块1405,用于控制指令接收守护模块1401、指令处理模块1402及服务调度守护模块1403处于开启状态或者关闭状态。
在本发明实施例中,指令接收守护模块1401,进一步用于接收退订指令,将所述退订指令写入指令流水表;
指令处理模块1402,进一步用于基于场景表,查找订阅表中与退订指令包括的通配符或者数据组相匹配的订阅记录,并更新订阅记录的订阅状态。
在本发明实施例中,服务调度守护模块1403,进一步用于配置有调度表;针对用于代理数据发布的代理发布监控程序和用于传输数据的数据传输程序的调用情况写入调度表。
图15是本发明实施例提供的一种数据传输管理系统的结构示意图。如图15所示,该数据传输管理系统1500可包括:多个数据方1501及图14所示的数据传输管理装置1400,其中,
数据传输管理装置1400,用于管理多个数据方之间的数据传输。
如图15所示,上述数据传输管理系统1500可进一步包括:总线监控设备1502,其中,
总线监控设备1502,用于对数据总线进行监控。
在本发明实施例中,总线监控设备1502,进一步用于进入while循环,并读取总线监控的配置信息,根据配置信息对数据总线的心跳情况及数据传输处理情况进行监控。
下面参考图16,其示出了适于用来实现本发明实施例的数据总线的节点的计算机系统1600的结构示意图。图16示出的数据总线的节点仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图16所示,计算机系统1600包括中央处理单元(CPU)1601,其可以根据存储在只读存储器(ROM)1602中的程序或者从存储部分808加载到随机访问存储器(RAM)1603中的程序而执行各种适当的动作和处理。在RAM 1603中,还存储有系统1600操作所需的各种程序和数据。CPU 1601、ROM 1602以及RAM 1603通过总线1604彼此相连。输入/输出(I/O)接口1605也连接至总线1604。
以下部件连接至I/O接口1605:包括键盘、鼠标等的输入部分1606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1607;包括硬盘等的存储部分1608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1609。通信部分1609经由诸如因特网的网络执行通信处理。驱动器1610也根据需要连接至I/O接口1605。可拆卸介质1611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1610上,以便于从其上读出的计算机程序根据需要被安装入存储部分1608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1609从网络上被下载和安装,和/或从可拆卸介质1611被安装。在该计算机程序被中央处理单元(CPU)1601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括指令接收守护模块、指令处理模块及服务调度守护模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,指令接收守护模块还可以被描述为“接收与数据传输相关的数据方的请求指令的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收与数据传输相关的数据方的请求指令,其中,请求指令包括至少一个目标场景要素;在配置有多种场景传输策略的场景表中,查找与至少一个目标场景要素相匹配的目标场景传输策略,其中,每一种场景传输策略对应一种场景,且每一种场景传输策略包括有多种场景要素和与数据传输相关的配置信息;根据目标场景传输策略包括的配置信息,在至少一个状态表中,为数据方配置匹配于请求指令的多个状态项;调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项。
根据本发明实施例的技术方案,通过场景表管理多种场景的场景传输策略,在接收到与数据传输相关的数据方的请求指令的情况下,通过查找与请求指令包括的至少一个目标场景要素相匹配的目标场景传输策略,并根据目标场景传输策略包括的配置信息,在至少一个状态表中为数据方配置匹配于请求指令的多个状态项,通过调度与至少一个状态表中配置的多个状态项相匹配的服务,对包含至少一个目标场景要素的场景数据进行数据传输管理,并更新状态项,实现通过场景表和状态表中的状态项管理和调度与场景数据传输相关的服务,能够有效地处理复杂场景的数据传输,统一管理和调度不同场景的数据,并能够动态扩展数据传输的场景、订阅方和发布方。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (21)
1.一种数据传输管理方法,其特征在于,包括:
接收与数据传输相关的数据方的请求指令,其中,所述请求指令包括至少一个目标场景要素;
在配置有多种场景传输策略的场景表中,查找与至少一个所述目标场景要素相匹配的目标场景传输策略,其中,每一种所述场景传输策略对应一种场景,且每一种所述场景传输策略包括有多种场景要素和与数据传输相关的配置信息;
根据所述目标场景传输策略包括的所述配置信息,在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项;
调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,并更新所述状态项;
所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,包括:
为需要代理的请求指令生成代理触发指令给代理发布监控程序;
通过所述代理发布监控程序为所述请求指令生成代理任务,并将所述代理任务写入预设的代理表。
2.根据权利要求1所述的数据传输管理方法,其特征在于,
所述接收与数据传输相关的数据方的请求指令的步骤和所述查找与至少一个所述目标场景要素相匹配的目标场景传输策略的步骤通过指令接收守护程序执行;
所述为所述数据方配置匹配于所述请求指令的多个状态项的步骤通过指令处理程序执行;
所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务通过服务调度守护程序执行。
3.根据权利要求2所述的数据传输管理方法,其特征在于,应用于包括有主节点和备用节点的数据总线,其中,
所述主节点和所述备用节点均设置有所述指令接收守护程序、所述指令处理程序和所述服务调度守护程序;
同步调用设置于所述主节点的所述指令接收守护程序和所述指令处理程序与设置于所述备用节点的所述指令接收守护程序和所述指令处理程序;
仅调用设置于所述主节点的所述服务调度守护程序。
4.根据权利要求3所述的数据传输管理方法,其特征在于,还包括:
在满足预设的节点切换条件的情况下,将所述备用节点切换成主节点,并将所述主节点切换成备用节点。
5.根据权利要求1至4任一所述的数据传输管理方法,其特征在于,在所述接收与数据传输相关的数据方的请求指令之后,进一步包括:
对所述请求指令进行有效性检测,并将所述请求指令和对应的检测结果写入预设的指令流水表;
在有效性检测通过后,对所述数据方针对所述请求指令的权限进行校验,并将校验结果写入所述指令流水表;
在校验结果指示校验成功后,执行所述查找与至少一个所述目标场景要素相匹配的目标场景传输策略的步骤。
6.根据权利要求5所述的数据传输管理方法,其特征在于,
所述将所述请求指令和对应的检测结果写入预设的指令流水表,包括:
将所述请求指令和对应的检测结果写入预设的主指令流水表;
在所述主指令流水表写入成功后,将所述请求指令和对应的检测结果写入预设的备指令流水表;
在所述主指令流水表写入失败后,不在所述备指令流水表中写入,并进行告警提示;
和/或,
所述将校验结果写入所述指令流水表,包括:
将所述校验结果写入预设的主指令流水表;
在所述主指令流水表写入成功后,将所述校验结果写入预设的备指令流水表;
在所述主指令流水表写入失败后,不在所述备指令流水表中写入,并进行告警提示。
7.根据权利要求2所述的数据传输管理方法,其特征在于,还包括:
将所述请求指令写入预设的指令流水表;
通过所述指令处理程序定时扫描所述指令流水表;
针对所述指令流水表中的状态标注为未处理的请求指令,执行所述为所述数据方配置匹配于所述请求指令的多个状态项的步骤。
8.根据权利要求1至4及7任一所述的数据传输管理方法,其特征在于,所述在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项,包括:
针对所述数据方为数据订阅方,所述请求指令为订阅请求指令且所述目标场景传输策略包括的配置信息包括指示数据传输模式的发布订阅模式的情况,
将所述请求指令和所述目标场景传输策略包括的多种场景要素分别写入订阅表和发布表,并配置所述订阅表中的订阅状态项和数据传输状态项,以及所述发布表中的数据发布状态项,并将所述请求指令的处理结果更新到预设的指令流水表;
针对所述目标场景传输策略包括指示数据传输模式的数据到达触发模式的情况,
将所述请求指令和所述目标场景传输策略包括的多种场景要素写入与所述数据方的类型相匹配的目标状态表,并配置所述目标状态表中的订阅状态项/发布状态项、数据传输状态项和代理状态项,并将所述请求指令的处理结果更新到预设的指令流水表。
9.根据权利要求8所述的数据传输管理方法,其特征在于,所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,包括:
分别扫描至少一个所述状态表中的订阅表和发布表;
针对扫描出的发布表中标注已发布状态的第一发布记录且所述订阅表中与所述第一发布记录相匹配的第一订阅记录标注未传输状态,
发送传输指令给数据传输程序,以使所述数据传输程序将所述第一发布记录所对应的场景数据传输给所述第一订阅记录所对应的订阅方。
10.根据权利要求9所述的数据传输管理方法,其特征在于,还包括:
将所述传输指令发送给指令接收守护程序;
所述指令接收守护程序将所述传输指令写入指令流水表;
指令处理程序根据所述传输指令,更新所述订阅表和所述发布表中的传输状态。
11.根据权利要求1所述的数据传输管理方法,其特征在于,所述调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,还包括:
扫描至少一个所述状态表中的发布表;
调度所述代理发布监控程序监控代理表和生成的数据文件;
针对扫描出的发布表中标注数据到达触发模式且处于未代理状态的第二发布记录,且监控到所述代理表中与所述第二发布记录相匹配的目标代理任务标注为未处理的情况,调度所述代理发布监控程序处理对应于所述第二发布记录的场景数据,并生成对应于所述第二发布记录的场景数据的数据文件,并发送代理数据更新指令给指令接收守护程序;
所述指令接收守护程序将所述代理数据更新指令更新到指令流水表;
指令处理程序处理所述代理数据更新指令,更新所述第二发布记录中的代理状态和发布状态。
12.根据权利要求1所述的数据传输管理方法,其特征在于,还包括:
在接收到查询指令后,对所述查询指令进行校验;
在校验出所述查询指令有效的情况下,根据所述查询指令查询所述状态表。
13.根据权利要求2所述的数据传输管理方法,其特征在于,
所述指令接收守护程序、所述指令处理程序及所述服务调度守护程序分别配置有用于控制程序开启或者关闭的程序开关;
在所述程序开关处于开启状态下,所述程序开关所对应的程序运行。
14.根据权利要求2所述的数据传输管理方法,其特征在于,还包括:
所述指令接收守护程序接收退订指令,将所述退订指令写入指令流水表;
所述指令处理程序基于所述场景表,查找订阅表中与所述退订指令包括的通配符或者数据组相匹配的订阅记录,并更新所述订阅记录的订阅状态。
15.根据权利要求2所述的数据传输管理方法,其特征在于,还包括:
为所述服务调度守护程序配置有调度表;
将所述服务调度守护程序针对用于代理数据发布的代理发布监控程序和用于传输数据的数据传输程序的调用情况写入所述调度表。
16.根据权利要求3所述的数据传输管理方法,其特征在于,还包括:
通过总线监控程序对所述数据总线进行监控。
17.根据权利要求16所述的数据传输管理方法,其特征在于,通过总线监控程序对所述数据总线进行监控,包括:
总线监控程序进入while循环,并读取总线监控的配置信息,根据所述配置信息对所述数据总线的心跳情况及数据传输处理情况进行监控。
18.一种数据传输管理装置,其特征在于,包括:指令接收守护模块、指令处理模块及服务调度守护模块,其中,
所述指令接收守护模块,用于接收与数据传输相关的数据方的请求指令,其中,所述请求指令包括至少一个目标场景要素;在配置有多种场景传输策略的场景表中,查找与至少一个所述目标场景要素相匹配的目标场景传输策略,其中,每一种所述场景传输策略对应一种场景,且每一种所述场景传输策略包括有多种场景要素和与数据传输相关的配置信息;
所述指令处理模块,用于根据所述目标场景传输策略包括的所述配置信息,在至少一个状态表中,为所述数据方配置匹配于所述请求指令的多个状态项;
所述服务调度守护模块,用于调度与至少一个所述状态表中配置的多个所述状态项相匹配的服务,对包含至少一个所述目标场景要素的场景数据进行数据传输管理,并更新所述状态项;
所述服务调度守护模块,进一步用于为需要代理的请求指令生成代理触发指令给代理发布监控程序;通过所述代理发布监控程序为所述请求指令生成代理任务,并将所述代理任务写入预设的代理表。
19.一种数据传输系统,其特征在于,包括:多个数据方及权利要求18所述的数据传输管理装置,其中,
所述数据传输管理装置,用于管理多个所述数据方之间的数据传输。
20.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-17中任一所述的方法。
21.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-17中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311440648.6A CN117176582B (zh) | 2023-11-01 | 2023-11-01 | 一种数据传输管理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311440648.6A CN117176582B (zh) | 2023-11-01 | 2023-11-01 | 一种数据传输管理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117176582A CN117176582A (zh) | 2023-12-05 |
CN117176582B true CN117176582B (zh) | 2024-02-09 |
Family
ID=88943481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311440648.6A Active CN117176582B (zh) | 2023-11-01 | 2023-11-01 | 一种数据传输管理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117176582B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778344A (zh) * | 2016-12-16 | 2017-05-31 | 维沃移动通信有限公司 | 一种数据权限控制方法及终端 |
CN112597147A (zh) * | 2021-03-02 | 2021-04-02 | 北京轻松筹信息技术有限公司 | 一种生成场景配置策略的方法、场景配置方法及其装置 |
CN116151631A (zh) * | 2023-01-13 | 2023-05-23 | 天津车之家软件有限公司 | 一种业务决策处理系统、一种业务决策处理方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10546279B2 (en) * | 2016-06-27 | 2020-01-28 | International Business Machines Corporation | Scenario based logging |
-
2023
- 2023-11-01 CN CN202311440648.6A patent/CN117176582B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106778344A (zh) * | 2016-12-16 | 2017-05-31 | 维沃移动通信有限公司 | 一种数据权限控制方法及终端 |
CN112597147A (zh) * | 2021-03-02 | 2021-04-02 | 北京轻松筹信息技术有限公司 | 一种生成场景配置策略的方法、场景配置方法及其装置 |
CN116151631A (zh) * | 2023-01-13 | 2023-05-23 | 天津车之家软件有限公司 | 一种业务决策处理系统、一种业务决策处理方法和装置 |
Non-Patent Citations (2)
Title |
---|
证券交易复杂事件处理策略管理服务模块的设计与实现;黄秋波等;计算机应用与软件(第04期);全文 * |
黄秋波等.证券交易复杂事件处理策略管理服务模块的设计与实现.计算机应用与软件.2015,(第04期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117176582A (zh) | 2023-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106790694B (zh) | 分布式系统及分布式系统中目标对象的调度方法 | |
US10726045B2 (en) | Resource-efficient record processing in unified automation platforms for robotic process automation | |
CN107491343B (zh) | 一种基于云计算的跨集群资源调度系统 | |
CN112069265B (zh) | 配置数据的同步方法、业务数据系统、计算机系统和介质 | |
US7856498B2 (en) | Collaborative alert management and monitoring | |
US10698745B2 (en) | Adapter extension for inbound messages from robotic automation platforms to unified automation platform | |
US10642647B2 (en) | Concurrent queueing and control command feedback loop in unified automation platforms | |
US20070255763A1 (en) | Database replication method and system | |
CN110597914A (zh) | 数据传输系统、方法、装置及设备 | |
US8909662B2 (en) | Message based mobile object with native PIM integration | |
US8776020B2 (en) | Software configuration control wherein containers are associated with physical storage of software application versions in a software production landscape | |
CN112597249B (zh) | 一种业务数据的同步分发存储方法及系统 | |
CN109743399B (zh) | 一种体检中心多任务调度的内外网数据传输方法及系统 | |
KR101545626B1 (ko) | Dds-db 연동 시스템 | |
CN111240940B (zh) | 实时业务监控方法、装置、电子设备、存储介质 | |
CN111654534A (zh) | 一种私有云任务管理系统、方法及存储介质 | |
CN113419872B (zh) | 一种应用系统接口集成系统、集成方法、设备及存储介质 | |
CN117176582B (zh) | 一种数据传输管理方法、装置和系统 | |
CN112328406A (zh) | 一种基于tcc的微服务分布式事务系统以及业务处理方法 | |
CN115333942B (zh) | 事件重试方法及装置、存储介质及电子设备 | |
US10728323B2 (en) | Method and apparatus for operating infrastructure layer in cloud computing architecture | |
CN101364224A (zh) | 用于信息管理的系统和方法 | |
CN112564953B (zh) | 一种对局远端设备管理的方法和装置及设备 | |
CN116382947B (zh) | 一种面向高能同步辐射光源海量数据的传输系统和方法 | |
US11277473B1 (en) | Coordinating breaking changes in automatic data exchange |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |