多中继互联网大数据推送方法和系统与流程

文档序号:13227226阅读:257来源:国知局
技术领域本发明属互联网大数据推送技术,具体涉及多中继互联网大数据推送方法和系统。

背景技术:
一些应用领域通常需要将大量的数据从一个地方推送到遥远的另一个地方,比如将数千万个医学影像文件(通常每个文件大小在500KB——25MB,少数文件大到1GB——5GB)推送到异地作为容灾备份。国内有数万家医疗机构的医学影像数据远大于上述数量。我们的生活和工作逐渐迈入大数据时代,类似的应用需求越来越多。数据推送需要具备完全可靠、高效率、自动化三个基本特征:数据有极少数的丢失或损坏在绝大多数应用中是不允许的;数据推送慢就会推高应用成本,或者影响用户使用体验,影响工作效率;海量数据的推送显然不能用手工操作、并且必须最大限度地减少所有可能的故障,在故障出现时也要减少人工干预。如果采用数据专线连接推送,因为线路稳定性高、速度相对快,不但效率问题基本解决,出故障的机率也大大也降低,甚至可以不做特别处理,需自动化处理的工作也相对减少,但是数据专线连接成本高,不具备广泛应用到基层、到家庭、社区的条件。互联网的数据链路在不同的互联网接入运营商之间有瓶颈问题,数据推送的两端如果使用不同的互联网接入运营商的接入端,相互推送数据的速度相比使用同一家互联网接入运营商接入端的应用,速度要低很多。另外,目前互联网接入以ADSL(AsymmetricDigitalSubscriberLine,非对称数字用户线路)技术为主,其特点是不对称性,即下载远比上传快。数据推送目前可以实现的方法有很多。电子邮件是大家使用最早、最广泛的文件传递方法;FTP(文件传输协议)又是另一种国际认可的标准文件传输协议,通过FTP、SMTP、POP3、IMAP4进一步编程基本可实现数据大量的、自动化的传输,但用于处理上述问题,困难很多,有些甚至不能突破。电子邮件本身的设计不是用来传输大数据的。FTP由于建立该标准的时代不同,背景和环境不一样,用于大数据推送时,效率和安全性不够,其可靠性和实现自动化需要大量的程序来处理,开发量大。系统的复杂度通常与可靠性负相关,结构和程序越复杂,越容易降低可靠性。QQ离线文件发送、微信文件发送可发推送一个文件或有限的一批文件。某些视频网站提供数据推送支持,在办公室推送自己感兴趣的视频或音乐到家里的电话,晚上回家时可能已经下载完成,观看时不会因为网络问题经常等待下载。提供云盘服务的各服务商也都支持数据上传和下载。目前已实现并且大家常用的方式,面对上述需求时存在着一系列问题:服务商并不保证用户推送的数据一定会准确到达目的地,事实上我们经常需要重新手工发送已经发过但不成功的文件;每次手工操作推送的文件数量和大小有限制,远达不到海量数据推送的要求;没能有效地解决互联网接入运营商之间的瓶颈问题、ADSL非对称特点的应用问题。虽然公布号为CN104601668A的发明专利申请“基于状态管理的数据推送方法、装置和系统”,公布号为CN104408132A的发明专利申请“数据推送方法和系统”,公布号为CN104516989A的发明专利申请“增量数据推送系统和方法”,公布号为CN104378399A的发明专利申请“一种数据推送方法、平台服务器、客户端以及系统”等文件,以及一些已发表的论文都提到数据推送方法,但没有能解决上面所述的一系列问题。

技术实现要素:
本发明的目的在于克服现有技术的不足,为满足海量大数据的可靠、高效、自动化的推送需求,而且解决可普及性以及不同互联网接入运营商之间数据通道的瓶颈问题,提供一种多中继互联网大数据推送方法和系统。本发明多中继互联网大数据推送方法包括:程序化或手工操作接受大数据推送任务,对任务进行组织和预处理,对预处理的待推送数据进行管理,在任务管理协调下由数据推送线程将数据推送到下一个接收实例,最终到达推送目标地址后对数据进行一致性验证,确认推送成功,接收实例将收到的数据通过接口提交给数据应用者;根据应用中的推送需求和应用环境,一对一推送或是一对多推送,按接收目标实例是否常连接,推送实例互联网接入端与目标实例互联网接入端是否为同一家互联网接入运营商等条件判定选择通过0个或多个中继实例推送数据;所说的实例通过名称注册和登录来相互识别推送源、中继和目标实例的名称与IP地址;当自动化数据推送处理过程中出现一般性可暂时跳过的故障和出现不可恢复的异常故障时分别发出异常报告;每一个实例完全双向工作模式,可同时推送和接收。本发明还提供一种多中继互联网大数据推送系统,包括:数据推送模块,用于从系统的一个实例推送目标数据到另一个实例;数据接收模块,用于接收系统上一个实例推送过来的数据;任务管理模块,以推送数据的目标任务为中心,对围绕任务的相关处理模块进行统一调度,并管理任务记录和任务执行状态;数据预处理模块,用于对即将推送的数据进行核对,并生成任务描述数据,根据需要进行目标数据的压缩;数据缓冲存储管理模块,用于对预处理后的数据以及接收到的数据进行管理,磁盘存储空间不足时报警并启动相关处理程序;数据验证模块,用于接收完毕的数据与推送原始数据进行比对,验证结果决定进入任务完成或进入再次执行流程;接口管理模块,用于接受数据推送任务、把接收的数据提交给目标应用程序、发出中间处理过程中的信息和接受人工干预控制信息;名称注册服务模块,用于提供实例的名称注册、登记和地址查询;网络检测模块,用于检测计算机网卡工作状态、互联网连接状态以及实例之间网络连接状态,网络连接断开后自动恢复连接。本发明方法和系统中的关键动作——“数据推送”,不同于通常所说的数据上传、下载。推送是直接把内容给使用者,接收不需要确认。推送发出方具有主动地位,接收方是被动的;而上传数据后需要接收方主动进行下载操作。上述多中继互联网大数据推送方法和系统可以无限复制副本作为一个个实例运行于所有需要推送和接收大数据的电脑上,所有过程以自动化处理为主,目标数据和任务进行压缩编码推送,推送前后端进行高度可靠的一致性比较,在互联网上实现了完全可靠、高效率、自动化地推送大数据;通过一级或多级中继推送,避免互联网接入运营商间的数据通道瓶颈,在一对多的推送中有效利用了ADSL非对称性,也有别于目前以数据中心为核心的上传与下载模式,简化部署,降低成本,降低复杂性的同时获得性能和稳定性上的提高,同时网络资源利用率更高。本发明系统稳定运行之前,一直未找到大数据在普通宽带接入的互联网上稳定传输或推送数据的办法,邮件方式、FTP方式、各家云存储上传下载等方式都不能满足需求,在上述条件和方式下推送或传输数据达到10GB左右的就开始遇到困难。本发明人进行了一段时间的直接通过TCP/IP连接推送或传输数据的实验,遇到很多问题,比如互联接入运营商之间不能连接、数据通道瓶颈很小、网络常断线等。本发明系统稳定运行之后,在具体应用中已经完成自动化推送100万个256KB—5GB的医学影像类及相关的文件,数据到达目标后与推送源数据完全一致,能够正常使用。根据运行监测,有些推送实例运行的机器的互联网连接平均2-3分钟会短暂中断一次;但本发明系统依然能够长期、稳定、自动化地推送数据数据。本发明的有益效果:在互联网上实现了完全可靠、高效率、自动化地推送大数据;在简化部署,降低成本,降低复杂性的同时还提高了性能和稳定性,网络资源利用率也更高。附图说明图1是实施例的多中继互联网大数据推送方法的基本流程图;图2是实施例的多中继互联网大数据推送方法的任务管理流程图;图3是实施例的多中继互联网大数据推送方法的任务记录结构及流程图;图4是实施例的多中继互联网大数据推送方法的一对二推、带中继推送应用流程示意图;“实例”表示本发明系统的一个副本;图5是实施例的多中继互联网大数据推送方法的中继推送流程示意图;图6是实施例的多中继互联网大数据推送方法的数据验证流程示意图;图7是实施例的多中继互联网大数据推送系统的总体结构示意图;图8是实施例的多中继互联网大数据推送系统的接口管理模块内部单元结构示意图;图9是实施例的多中继互联网大数据推送系统的名称注册模块内部单元结构示意图;在一个实施例中,本发明系统部署于接入互联网的各个地方,相互之间根据使用者需要推送数据,因为互联网接入多以无固定IP为主,相互之间通过一个唯一的名称来识别。该名称使用前注册,后面介绍中称为实例名称或站点名称;图10是实施例的多中继互联网大数据推送系统的任务管理模块内部单元结构示意图;图11是实施例的多中继互联网大数据推送系统的数据缓冲存储管理模块内部单元结构示意图;图12是实施例的多中继互联网大数据推送系统的数据验证模块内部单元结构示意图;图13是实施例多中继互联网大数据推送系统的时序逻辑示意图。具体实施方式以下实施例结合附图1~13对本发明的实施技术方案进行进一步详细阐述。多中继互联网大数据推送方法包括:见图1,为多中继互联网大数据推送方法的基本流程图。步骤S101,接收推送任务,并把推送任务交给接口管理任务管理器;基本的任务单位是一个文件或一个目录;步骤S110,接口管理,任务数据和消息的出入口。接受从步骤S101进入的推送数据任务,收到的数据通过步骤S191提交,整个多中继互联网大数据推送方法处理流程中出现需要提醒或警告的消息通过这里从步骤S105输出,人工干预的控制消息同样从S105输入到这里,并提交到以下任务管理S130。在实施例中把待推送的数据放入指定的推送缓冲区目录,比如“D:\\SendingBuffer\\”目录。进一步地,可以把待推送的数据目录名称放到指定的文件中,比如:“D:\\SendingTask\\PacketTasks_IncludeAllSubDirs.txt”,这样指定目录下面所有的子目录都会被推送出去。在实施例中,推送的目标地址名称可以在待推送缓冲区目录中指定,比如:“D:\\SendingBuffer\\医学影像备份中心\\”,其中“医学影像备份中心”是一个目标地址名称,放在该目录下面的内容会被推送到“医学影像备份中心”这个实例运行的电脑上。步骤S120,实例地址名称管理,其中一个具有固定IP地址或固定域名指向的计算机上运行的实例接受注册、登录和查询,简称为名称注册服务实例;其他实例名称登录、IP地址更新和查询推送任务相关各方的地址名称和IP地址。在实施例中,推送和接收实例的安全性由名称注册服务实例来控制,即进行名称审核、登录密码验证。步骤S130,对推送和接收的任务进行管理,其中具体的管理流程如下:见图2,为实施例的多中继互联网大数据推送方法的任务管理流程图。步骤S210,接受推送任务,并把任务基本描述信息存入任务主体记录表,进入待推送任务队列。任务记录流程和结构见图3。步骤S220,取出等待队列中原始任务交给数据预处理过程,监测和管理预处理后过程,对预处理后已进一步标准化和细化的待推送任务数据进行登记并且更新状态。这一步骤生成任务记录文件,进一步参考S330;在实施例中任务状态包含:等待、准备好、推送进行、接收进行、接收完成、推送完成、挂起、中止、重试;在实施例中标准化和细化是对待推送任务中包含的文件数、文件大小、文件时间进行进行分析和记录,生成任务文件,推送过程根据任务文件执行合适的推送方法;步骤S230,把准备好的任务文件和推送任务数据交给数据推送处理过程,监测任务数据推送进展情况,并更新进度状态;步骤S240,监测数据接收过程,把收到的任务加入到任务主记录表,并更新数据接收状态;步骤S250,调用数据验证过程,对推送和接收的数据进行验证,验证成功进入完成流程或中继推送流程,验证失败重新再走数据推送流程;步骤S260,推送完成,推送实例处理任务完成后的状态以及工间数据处理,接收实例记录任务状态并通过接口管理S260:过程提交收到的数据。推送任务记录的结构和流程描述如下:见图3,为实施例方法的任务记录结构及流程图。步骤S320,从S101和S210接受推送任务,任务主要描述信息记录到主任务记录表中;从S240收到推送任务时也同样把任务主要描述信息写入主任务记录表。在实施例中,主任务描述信息包括:任务编号、推送者、接收者、当前位置、进度状态、重试状态、优先级、任务类型、任务大小、任务时间、任务数据原位置、缓冲数据位置、任务客户编号、任务相关编号。步骤S330,在S140和S220生成任务文件,记录一个任务的具体可操作的推送信息。在实施例中任务文件包括但不限于以下信息:描述任务主要信息的文件头以及待推送文件列表信息,其中包含:文件名称、大小和时间属性、子任务ID、工作状态、压缩代码、MD5编码。一个主任务一般包含多个子任务,也就是主任务是一个目录文件集,子任务是一个文件。MD5(MessageDigestAlgorithm,消息摘要算法第五版)用于数据一致性验证。在实施例中,压缩代码0表示未压缩,1表示标准化的ZIP压缩,其它压缩代码由推送和接收方应用程序定义。步骤S340,S160和S170执行过程中记录推送片段信息。在实施例中,S160每推送成功一个数据包,在片段记录文件中记录信息。每当推送中途网络异常断开或其他问题导致中断时,再次恢复先尝试从中断位置恢复推送,如果接收方认可的话,继续推送,否则从头开始。尽管处理方式不同,但这一过程与目前的“断点续传”技术有同样的效果。步骤S140,待推送数据预处理以及接收推送数据后对进行过压缩或其他编码的数据进行恢复。工作于推送角色的实例,在推送预处理过程同时提取待推送数据摘要信息补充到主任务记录表,生成任务文件,任务状态进入准备好状态,由任务管理过程S130调度进入下面的推送流程。步骤S150,对经过预处理后的待推送数据、任务文件、推送片段记录文件、接收到的数据以及程序执行过程产生的临时数据进行管理。其中的管理操作包括存储空间管理、过期数据清理、文件及数据存储、读取。例如在实施例中,一个实例运行的计算机的缓冲数据存储盘为100GB,ADSL宽带接入推送数据大约每天8GB-10GB,大量数据持续数月或更长的推送和中继产生临时数据很容易把缓冲数据存储盘存满,存储空间不足时每个环节都可能产生异常,包括计算机操作系统。步骤S150有效控制缓冲数据存储盘过度使用。步骤S160,由S130调度,从S150提取待推送的数据,通过TCP/IP通讯,从S120找到推送目标地址或中继地址IP,把任务文件和目标数据推送到下一个目标地址。在实施例中,每个推送的基本数据单元是4KB,如果剩余数据不足4KB时,按实际数据大小推送,但不小于48byte;如果剩余数据不足48byte,后面补“0”。进一步地,比较步骤S160处理过程会增加基本数据单元大小,每次尝试增加512Byte,增加3-5天后与增加前进行可比条件下的比较,如果增加后优于增加前,会把增加后的大小作为基本数据单元大小。按此原理找到最合适的基本数据单元大小,但是范围在2KB——32KB。步骤S165,验证被推送的源始数据与到达目的地后的数据的一致性,验证分为从小到大的逐级验证和总体验证,其中具体的介绍流程如下:图6是实施例的数据验证流程示意图。步骤S610,提取推送任务的摘要信息,包括任务文件数量、任务总大小、数据位置、文件名称列表、每个文件的大小、文件的MD5码;步骤S620,推送数据片段一致性验证,以及断点恢复后可继续性验证。每推送完成一个数据片段,即时验证其一致性;导常中断推送后再恢复推送时,检测双方已成功推送的数据片段,找到一致点恢复推送;步骤S630,推送文件一致性验证:推送完成一个文件,通过MD5码验证源始文件数据与到达目标地的文件数据的一致性;步骤S640,推送任务总体验证,每个文件子任务验证成功后,主任务确认验证成功;步骤S650,批量再次确认:每当推送完成一批任务后进行一次批量再次确认流程。基本过程是推送实例把需要确认的任务摘要生成一个XML格式的文件,推送到数据推送目标实例,目标实例收到后要求使用目标数据的应用程序来确认数据是否正常,然后把结果返回到推送实例。该流程像日常工作中的工作清单填表确认一样。S650验证流程进一步避免数据正确推送到目标地址后,由于数据应用者管理不当短期内造成的数据丢失或损坏。比如:目标数据应用者在转存数据过程中导致数据丢失,或者在没有备份的情况下误操作修改了原始数据。在实施例中,推送完成一批数据,在15分钟内没有接受新任务时,自动发起一次批量再次确认;每天晚上12点自动发起一次批量再次确认;批量再次确认成功后的生成报告,通过S105,以邮件、微信等形式通知指定的管理人员。如果缓冲存储磁盘空间较少时,完全推送成功后的任务相关临时数据即时被清除。步骤S170,与数据推送实例或上一个中继实例保持一个常连接,等待推送来的数据并接收数据。在实施例中,当一个推送任务的接收数据完成并通过验证后,将由任务管理S130进入下一步的流程。从逻辑流程上,中继推送从接收完成后再次推送到下一个目标实例,下面为这一过程:见图4,为实施例多中继互联网大数据推送方法的一对二推、带中继推送应用流程示意图。在实施例中:S410表示源数据被推送的执行实例,一个推送任务出现时,第一目标为实例3(S430),分别推送任务文件和目标数据;第二目标为实例5(S450),只推送任务文件,目标数据不重复推送;S420是一个中继流程,该流程接收数据后进行缓冲存储,其中一个任务文件和数据副本推送到第一个目标S430;当收到第二个推送任务文件时,因为目标数据已经在缓冲中,直接把任务文件和目标数据推送到下一个目标S440;S430是一个数据接收流程;S440是一个中继流程,类似S420,不同的是S440属于直接中继转推送。S450是一个数据接收流程,与S430相同。在实施例中,解决不同互联网接入运营商之间的数据通道瓶颈问题,下面为实施办法:见图5,为实施例的中继推送流程示意图。在实施例中:S530是一个中继实例处理流程;S531表示推送数据来自一家互联网接入运营商的接入线路,S532表示从另一家互联网接入运营商的接入线路推送数据。这样每个推送和接收的配对实例之间的互联网接入连接都是同一家接入运营商,推送速度和稳定性有实质性提升。在实施例中,多级中继推送中选择路径的方法是一级中继是一个固定的实例名称地址,推送者的推送目标地址是二级中继的实例名称,二级中继设置下一级转推送目标实例,以此类推,最终推送到目标位置。例如:源数据推送实例名称为张三,推送目标实例名称为李四。实际推送路线是实例名称=张三→实例名称=服务→实例名称=移动联通中继→实例名称=李四。其中一级中继作为一个固定实例名称,二级中继在名称注册中指定由另一个实例名中继推送。步骤S180,检测互联网连接状态,检测配对工作的实例是否可以找到,检测配对工作的实例的连接状态。步骤S191,把正常工作信息以及异常故障信息反馈给管理人员,并接受管理人员发送的管理代码。在实施例中,根据名称注册和审核时预留的手机号、微信号,微信关注实施例指定的公众服务号后,S191调用腾讯公司的微信消息推送接口,把数据推送进度信息发给管理人员。同样的方式,S191可以接受管理人员发来的控制信息并转送给任务管理流程。管理人员的身份通过名称注册时的信息来确认,防止系统被攻击。例如:“2016年1月11日星期一,今日您收到从XXX医院推送来的一批数据:总任务数:480条,总文件数:3680个,总大小:8.65GB,失败数量:0”。再如:“XXX:有一批推送数据给您,但您的站点未连接,可能是网络故障或计算机已关机,请检查。”在实施例中,控制代码:!11:提交摘要报告;!12:提交存储空间状况;!13:提交推送任务进度;!14:提交接收任务进度;!77=【客户编号】>【实例名称】:将客户指定的客户编号的任务转推送到指定的实例名称。客户编号由应用者生成,在实施例中可能重复,但对于一个推送实例来说,使用本发明系统推送数据时安排一个自己容易识别的号码,通常不重复。控制代码并没有特别的限制和含义,仅是一种约定。进一步地,控制消息包含多个参数,中间用符号“^”分隔,每一段的第一个符号表示段内的消息类型,符号“!”表示执行,“P”表示控制密码。真实运行实例中,控制消息都带有密码;只有控制密码正常才会进行相应的动作。基于上述方法的多中继互联网大数据推送系统,如图7所示,包括:接口管理模块710、网络检测714、名称注册服务模块718、任务管理模块722、数据预处理模块726、数据推送模块730、数据验证模块734、数据缓冲存储管理模块738、数据接收模块742。在实施例中,系统最少有三个副本,以下简称实例,运行于接入互联网的三台以上的计算机,一台计算机运行一个实例,其中一台计算机有固定IP或固定域名解析指向。实际应用中,有大数据推送需求的应用都可以安装一个实例,注册实例名称并登录后就可以推送或接收数据。这样在一个应用实施例中可以有不限数量的实例。上述各模块的作用如下:接口管理模块710接受数据推送任务、把接收的数据提交给目标应用程序、发出中间处理过程中消息和接受人工干预控制信息,其中包含以下单元:见图8,为实施例推送系统的接口管理模块内部单元结构示意图,其中:接口管理单元7101,用于管理接口管理模块中各个单元,接口形式可以有更多的变化,根据需求进行增加;Windows消息任务接收与提交单元7103,以windows消息机制sendmessage(windows发关消息基础函数)函数接受推送任务,以及收到数据后通过windows消息机制发出通知。消息代码为WM_COPYDATA=$004A,待推送的数据目录或文件参数,以及接收完成的数据目录、文件用PCopyDataStruct结构传递;WindowsAPI任务接收提交单元7105,通过API(应用程序编程接口)方式接收推送任务和提交接收完成后的数据。推送接口函数的参数包括目标实例名称,任务类型、推送目标数据目录或文件、是否包括子目录的选项;收到数据通知函数的参数包括任务类型、推送者、数据目录或文件;定点位置任务提取单元7107,定时自动检查指定待推送目录,如果发现存有数据,就提取并提交推送;管理已经提交但还未确认送达的数据;消息推送与消息控制单元7109,整个系统处理流程中出现需要提醒或警告的消息通过发送管理,同时接收人工干预的控制消息,解析后提交到任务管理模块;在实施例中,管理类型的消息推送以邮件、微信等形式发出。比如:推送完成一批数据、远方推送数据已发出、数据已到达、中继转推送数据量等信息报告相关实例管理人;必要的实例未开机运行、数据推送和处理过程中出现无法自动恢复的故障等发出警告类消息给相关实例管理人在名称注册时登记的手机号、微信号和电子邮件地址;在实施例中,单元7109增加通讯模块,能够接收手机短信,实例人工干预控制消息以手机短信方式发出。名称注册服务模块718,提供实例的名称注册、登记和地址查询;系统主要优势在于ADSL宽带互联网接入端之间推送大数据,ADSL宽带大多数没有固定IP地址,因此该模块不仅管理实例名称,还要对实例的IP地址进行动态更新。该模块中包括以下单元:见图9,为实施例多中继互联网大数据推送系统的名称注册模块内部单元结构示意图。名称注册单元7181,登记实例名称、设置密码、检测名称是否重复;实例是本系统的一个运行副本,与我们习惯中一个系统的用户相近但不完全相同,是一种特殊类型的用户;进一步地,实施例中增加用户管理系统时,登记的实例名称还可以关联用户名,相互绑定,有相关联消息时可以通知关联用户;用户也可以管理关联实例名称;名称审核单元7183,是一个可选单元,负责审核登记的实例是否正常和是否允许加入;名称应用单元7185,有三个功能:更新变化后的IP地址,实例开始运行时通过登记的实例名称和登录密码登录验证,查找推送目标实例名称和地址。推送和接收实例的安全性由此控制,即推送数据必须到达真实的目标实例,而不被截取。任务管理模块722以推送数据的目标任务为中心,对围绕任务的相关处理模块的进行统一调度,并管理任务记录和任务执行状态;其中包括以下单元:见图10,为实施例多中继互联网大数据推送系统的任务管理模块内部单元结构示意图。任务记录表管理单元7221,管理推送的主任务记录,主任务记录表示一个推送任务的基本描述信息,比如数据位置、形式、大小、任务进展状态等。在实施例中,主记录表采用关系型数据库进行管理,数据库类型不限,例如可以是微软公司的ACCESS、SQLServer等,但由于本发明的主要优势在于广泛的互联网接入端之间的数据推送,实例部署极其简单,直接拷贝或下载解压就可以运行,登录后就可以进入工作状态,因此采用数据库管理主任务记录时,优先选择ACCESS一类安装过程不需要手工干预的数据库;进一步地,为了提高通用性和降低安装难度,单元7221提供主任务记录表管理能力,包括增加、删除、查询、提取、移动主任务记录的功能;线程管理单元7223,根据任务的执行进展状态,调度各个模块中的执行线程,协调并发执行的线程间的逻辑和数据流程,完成推送任务。比如有大量的等待任务,数据预处理模块中的数据预处理线程进行预处理,有准备好的待推送数据时启动数据推送模块中的数据推送线程,数据接收模块中网络连接和等待接收推送数据线程处于监听状态,数据准备和接收完成后调用数据验证线程,多线程协同、并发工作,以提高效率。任务状态管理单元7225,管理推送任务执行过程的工作状态。根据根据进度设置推送任务状态,如等待状态、准备好推送状态、推送进行状态、接收进行状态、接收完成状态;进一步,根据当前状态,以及当前事务的返回结果,确定下一个状态值,如在等待状态,第一次数据预处理失败了,可能是文件正在被占用,经过三次尝试成功了,那么下一个状态是重试状态;如果已经尝试十次也不成功,下一个状态是故障中止状态;任务状态在不同的实施例中可能不一样,不仅限于本实施例中出现的状态描述;事务管理单元7227,管理正常工作过程中的总结性工作报告的生成、推送过程和相关过程中出现的一般性消息、警告类消息、故障类消息的生成,以及管理人员人工干预消息的执行调度。数据预处理模块726,待推送数据预处理以及接收推送数据后对进行过压缩或其他编码的数据进行恢复,提取并生成待推送数据的摘要信息,生成主任务记录描述数据,生成任务文件;本模块中包含一个数据预处理线程,上述处理在线程内执行,可与其他线程并行执行;数据推送模块730,包含一个数据推送处理线程,从预处理准备好的缓冲区中提取待推送数据,通过TCP/IP协议,连接下一个本发明系统的实例,并用TCP/IP协议向其推送数据。模块730记录推送数据包摘要、断点恢复推送的功能;数据验证模块734,提供数据片段或叫数据包、单个文件、一个目录内所有文件和一批任务的数据验证功能,其中包括以下单元:见图12,为实施例多中继互联网大数据推送系统的数据验证模块结构示意图。数据摘要信息提取单元7341,提供搜索目录文件、获取任务文件数量、总大小、文件列表,计算文件MD5码、CRC32码;数据验证单元7343,提供数据片段、文件和文件集的基于基本文件属性、MD5码和CRC32的一致性比对;断点恢复验证单元7345,推送实例数据推送位置记录与数据接收记录的一致性验证,以及一个文件的已接收部分正确性验证;批量验证单元7347,提供批量任务再次确认功能:把一批任务的任务信息摘要生成一个XML格式的批量验证申请表文件,推送到推送目标实例,目标实例收到后按批量验证列表要求记录,分别逐一向目标数据的使用者核实数据是否正确可用,结果填入申请表,然后把结果返回到推送实例,收到验证后的申请表,读取验证记录,解读并转相应处理模块。数据缓冲存储管理模块738,对预处理后的数据、接收到的数据以及工作过程数据进行管理,提供缓冲磁盘管理、缓冲存储的数据管理、缓冲数据访问和相关的事务处理,其中包括以下单元:见图11,为实施例多中继互联网大数据推送系统的数据缓冲存储管理模块内部单元结构示意图。缓冲存储磁盘管理单元7381,监测磁盘存储空间的状态,清理过期数据,存储空间较少、很少时启动相关处理程序;存取访问管理单元7383,组织待推送数据、任务文件、中间缓冲存储文件的存储结构,提供目录创建、文件读写、推送片段信息记录功能。共享访问单元7385,可选性处理单元,对超大文件,比如500MB以上的文件,提供创建写入过程中,同时由另一个线程读取再次中继推送的能力。数据接收模块742,接收本系统上一个实例推送过来的数据,其中包含一个线程以及TCP/IP网络连接管理;工作于中继模式时,从流程上可选地经过数据验证后再次推送到下一个实例,从模块结构上,后续处理交由任务管理模块决策。网络检测模块714,用于检测计算机网卡工作状态、互联网连接状态以及实例之间网络连接状态,网络连接断开后条件具备时自动恢复连接。实施例的基本执行过程为:(一)下载系统的一个自解压包,大小约2.0MB,自解压,自动运行;(二)注册实例名称,相当于用户名,为了便于理解也称为站点名称,登录系统;(三)选择其中一种增加任务的方式,比如在任务菜单中选增加推送任务操作,并选择一个数据目录,选择包含子目录选项,类型为数据包,点击开始推送;(四)数据推送到第一中继实例,这是一个已经安装好并且正常运行的系统实例,也可称为服务站点,尽管所有实例是一样的,但该服务站点有要求具有独立IP地址,可靠的网络条件;目前租用四台国内云服务器和一台国外的云服务器承当该角色;(五)第一中继实例完成一个任务接收后,查找目标实例或二级中继实例是否活动,如果活动则推送已接收完成的任务数据到下一级实例,否则以邮件或微信方式通知下级实例管理人开机接收;(六)二级中继如果存在的话,执行同第五步一样的处理;(七)目标实例接收完成任务数据后,验证数据的一致性,发通知给数据使用者或使用数据的应用程序;(八)数据推送方完成一批任务后进行推送任务再次确认流程,得到数据应用者确认成功后,清除缓冲临时数据和工作数据;(九)所有过程中出现故障时有限次尝试自动恢复。见图13,为本实施例提供的多中继互联网大数据推送系统的时序逻辑示意图,用以进一步说明实例工作原理和流程。800表示任务入口;810表示系统实例的推送工作角色;812表示系统实例的具有固定IP地址的主中继角色,通常该中继作为大量的推送应用实例的“中心”,各应用实例通过该中继找到目标实例的存在和地址;814表示系统实例的跨网中继工作角色,运行本发明实例的计算机有两个或以上的网卡,分别连接不同接入点的网络;816为系统实例的数据接收工作角色,是一个推送流程的数据推送目的地,但流程还未结束;821表示任务组织和数据预处理流程,任务组织包含生成主任务记录表、任务文件、任务描述提交到下一个中继,数据预处理流程见前面所述;822为数据缓冲存储管理流程;823为数据推送流程;824为数据接收流程;825为数据恢复与数据验证流程,数据恢复包含对压缩或进行过重新编码的数据恢复到起始状态;826为数据最后送达流程,见S110和S191;828为尝试修复推送的处理流程,从推送目标返回推送失败消息时启动尝试修复推送流程,复核推送前后端的数据,查找差异点;829为推送完成后续处理流程,包含消息通知推送人、接收人,删除不再使用的临时数据;830表示修复推送执行过程,相当于重新推送流程,但是已推送成功的数据不再重复推送,实际上推送流程已包含这一功能。一个工作流程包含2-4个实例,分别是810、812、814、816,其中多数情况下814可以省略,实际包含三个实例。从时序逻辑示意图上容易理解工作原理,这里补充阐述的流程是:数据到达目的地后,根据数据验证流程确认成功或失败,将任务文件逆向推送返回推送方;若数据验证成功,推送主任务结束,但流程并未结束,即任务文件还要返回到推送方。以上所述仅为本发明的一个实施例,仅用于解释本发明,并不能以此限制本发明,凡在本发明的思想和方法范围内,所做的任何修改、改进,均应包含在本发明保护的范围之内。本发明中的模块和单元,数量既可以单个的形式存在,也可以多个的形式存在,本发明并不对此进行限定。本发明中的步骤标号和模块、单元标号不代表流程的先后顺序。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1