一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于URI规则配置集成统一处理文件的系统和方法与流程

2023-01-17 12:33:59 来源:中国专利 TAG:

一种基于uri规则配置集成统一处理文件的系统和方法
技术领域
1.本发明属于计算机信息技术管理行业中的文件消息处理技术领域,具体涉及一种基于uri规则配置集成统一处理文件的系统和方法。


背景技术:

2.软件系统之间通常需要以文件方式进行信息数据交互或传递;文件消息处理通常是对单一文件进行解析获取内容,再根据解析内容做相应业务处理,耦合度高。完成文件解析处理常用的方式有如:io输入流方式、buffer缓冲方式读取,这两种方式都是基于io流方式进行处理。两者隶属于同一体系,核心处理机制因方式的不同存在差异,处理结果效率存在一定的差异。同时对于同一文件源平台如crm或者boss等报文数据结构的异构,取决于源文件的实现厂商,文件消费端系统只能遵循,通常文件消费端系统接入单源或多源文件亦是如此。
3.为满足文件类消息处理,被接入方需结合分析文件大小、文件名及后缀的业务含义、文件内容格式及数据含义,交互约定等进行处理。
4.为满足被接入方文件处理的业务要求,需依托文件源平台定义的标准,先对约定文件进行内容提取,再根据解析内容做相应业务处理,该实现方式的缺点是耦合度高、兼容性差、可重用低。完成文件解析处理常用的方式有io输入流方式、buffer缓冲方式读取等。两者隶属于同一体系,核心处理机制因方式的不同存在差异,处理结果效率存在一定的差异。完成文件内容对应业务处理需遵循源文件内容数据体格式约定的同时,结合自身业务需求进行业务处理,不易交叉对接和同源业务处理的提取。
5.而不同承建厂商、不同建设时间创建的软件系统,其文件消息表示形式、内容格式存在差异,会直接影响文件消息被接入方的处理方式。常见文件后缀为.cfg、.dat、.dif、.txt、excel等,文件内容格式有行、xml、json等;例如基于移动域系统,常需与各级crm、boss、经营分析系统、集中化管理平台等,进行计费、订购关系、指标数据等以文件进行消息数据交互场景,针对文件形式消息存在的差异,数据异构,各消费方系统处理方式众多且零散,技术栈不统一;即便有些场景中的多个文件消费端系统对接文件源为同一省份crm或boss,但针对同一源文件的解析方式和数据处理方式也存在差异较大、个性化处理多的情况。
6.因此,现有技术中存在以下技术问题:1、由于不同文件源系统承建来源不同厂商,进行交互的文件种类和内容存在多样化差异,且存在同一文件源提供方系统因存在区域承建差异,在关键属性相同的情况下其内容格式存在较大差异。对于被接入系统处理文件时,在一定程度上受限于以上差异。为保证完成文件消息对接方案,如接入多家不同源文件厂商或同系统在不同区域时,对被接入方系统处理文件而言极其不方便,存在文件形式不同处理方式同,可扩展性差,文件内容与业务处理耦合度高,复用度低,维护成本高。
7.2、随文件种类增多,处理文件内容方式增多,读取与业务处理耦合度过高,处理方
式相对单一、应用场景相对单一,效率低。
8.3、不同文件接入,由于文件内容差异较大,在实现上会花费更多精力的数据对象处理和数据验证上,无法保证文件消费端只关心应用本身的业务实现。


技术实现要素:

9.为了解决现有技术存在的上述问题,本发明目的在于提供一种基于uri规则配置集成统一处理文件的系统和方法,使用uri(统一资源标识符)规则配置,通过自定义scheme来区分要处理文件源类型和方式标识,通过scheme后的片段标识为辅助资源提供文件内容的处理方式,最终形成处理文件uri配置方式的统一,不同类型的文件读取与文件内容处理通过灵活修改配置即可;通过生产者/消费者模式,先将需处理文件内容信息和规则信息存放到缓冲区,再通过消费者读取缓冲区的数据,根据配置灵活处理,达到内容读取和内容业务处理分离,同时可根据读取文件规模灵活选择缓冲区为队列或第三方订阅服务进行支撑。
10.可扩展性强,文件内容与业务处理耦合度低,复用度高,减少维护成本投入,节约文件数据处理时间,确保消费端只需关注关键业务。
11.本发明所采用的技术方案为:一种基于uri规则配置集成统一处理文件的系统,包括有控制器、处理触发器、配置管理模块、uri规则处理器、数据缓冲区和业务处理控制器;所述控制器用于传入发起文件处理的节点配置名;所述处理触发器用于初始化uri配置规则,并获取每个处理节点对应的uri配置集合;所述配置管理模块用于根据配置目录遍历文件信息,并为文件对象适配uri规则处理器;所述uri规则处理器用于将文件处理配置及文件指内容存放到缓冲区;所述数据缓冲区用于存储配置数据,并供数据缓存区消费者选择使用;所述业务处理控制器用于接收缓存区消费者在数据缓冲区获取的缓存区数据和uri配置。
12.进一步地,所述处理触发器还用于根据文件名匹配相应的文件处理配置。
13.所述处理触发器还用于拉起异步数据缓冲区异步消费者。
14.本发明还涉及一种使用上述基于uri规则配置集成统一处理文件的系统的基于uri规则配置集成统一处理文件的方法,包括有以下步骤:s01,启动控制器,传入发起文件处理节点配置名;s02,调用处理触发器,处理触发器初始化uri配置规则,开始处理文件对象;s03,处理触发器根据节点配置名,调用配置管理模块获取处理节点配置名对应的uri配置规则集合信息;s04,处理触发器根据获取到的配置中的文件对象目录,遍历相关文件对象;s05,处理触发器根据遍历文件名正则的配置获取当前文件的uri配置规则;s06,处理触发器根据uri配置规则中的uri自定义规则进行scheme匹配,从而适配uri规则处理器;
s07,uri规则处理器根据scheme后的辅助配置对文件按配置进行读取处理;s08,将文件数据存放到数据缓冲区中;s09,文件内容根据uri配置规则处理完成;s10,处理触发器拉起异步数据缓冲区异步消费者;s11,开始消费缓冲区数据;s12,数据缓冲区消费者获取缓冲区数据和配置,准备消费文件数据;s13,数据缓存区消费者通过工具配置将数据写入到业务处理控制器,由业务控制器处理数据相关具体业务。
15.进一步地,所述步骤s01中包括以下内容:所述节点配置名为待处理的一个文件夹目录下所有文件的唯一标识位,根据该文件夹下的具体文件的业务处理需求,在该节点下配置与该业务对应的uri规则处理器。
16.所述步骤s02中包括以下内容:所述uri规则配置中包括yaml格式配置,yaml格式配置根据配置关系设计成表格结构存放到关系型数据库中。
17.所述uri自定义规则的形式为:规则处理器://处理器名称规则处理器对应处理内容配置。
18.再进一步地,所述uri自定义规则的种类为:按行方式读取并进行分隔;按行方式读取不进行分隔;按行方式读取csv文件;读取excel文件,excel文件包括xls和xlxs。
19.读取内容为xml格式的文件;读取内容为json格式的文件。
20.再进一步地,所述按行方式读取并进行分隔和按行方式读取不进行分隔中,单次读取分别处理600条数据,起始行为10,结束行为1000,为行文件并将行数据按照一定规则进行分隔。
21.最后,所述数据缓冲区使用ehcache、queue缓存技术时,uri规则配置文件统一处理与应用系统采用jar集成方式;使用redis、es、kafka时采用jar集成方式、集群分布式方式和/或分布式方式。
22.本发明的有益效果为:一种基于uri规则配置集成统一处理文件的系统和方法,使用uri(统一资源标识符)规则配置,通过自定义scheme来区分要处理文件源类型和方式标识,通过scheme后的片段标识为辅助资源提供文件内容的处理方式,最终形成处理文件uri配置方式的统一,不同类型的文件读取与文件内容处理通过灵活修改配置即可。
23.通过生产者/消费者模式(生产者模式相当于数据的生产者,数据生产完成后触发数据消费),先将需处理文件内容信息和规则信息存放到缓冲区,再通过消费者读取缓冲区的数据,根据配置灵活处理,达到内容读取和内容业务处理分离,同时可根据读取文件规模灵活选择缓冲区为队列或第三方订阅服务进行支撑。
24.可扩展性强,文件内容与业务处理耦合度低(文件内容处理后先放到缓冲区,业务
处理是从缓冲区获取),复用度高,减少维护成本投入,节约文件数据处理时间,确保消费端只需关注关键业务。
25.本发明的基于uri规则配置集成统一处理文件的系统和基于uri规则配置集成统一处理文件方法,具有以下有益效果:1)、基于uri规则自定义配置,解决不同文件集成处理。
26.2)、通过配置处理能自动适配,完成多种不同文件数据的业务处理。
27.3)、应用缓存区存储文件数据,采用生产者消费者模式降低文件处理与应用系统耦合度,能灵活支撑新缓存区支撑技术同时保证处理技术先进性和兼容性。
28.4)、自动适配接入,实现上可复用,从而降低接入成本。
附图说明
29.图1是现有技术中进行文件处理的原理示意图;图2是现有技术中进行文件文件处理的流程示意图;图3是本发明基于uri规则配置集成统一处理文件的系统原理示意图;图4是本发明基于uri规则配置集成统一处理文件的方法的流程示意图;图5是本发明基于uri规则配置集成统一处理文件的方法中的uri常用形式示意图;图6是本发明基于uri规则配置集成统一处理文件的方法中的生产者与消费者示意图。
具体实施方式
30.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
31.如图1所示,为解决现有技术中普遍存在的问题,本发明提供一种基于uri规则配置集成统一处理文件的系统和方法,整体策划方案为:1:使用uri(统一资源标识符)配置规则,通过自定义scheme来区分要处理文件源类型和方式标识,通过scheme后的片段标识为辅助资源提供文件内容的处理方式,最终形成处理文件uri配置方式的统一。
32.2:通过文件处理适配模块将需处理文件按uri配置的信息进行读取,并将文件信息的名称、路径、对应配置等,及文件内容存放到处理缓冲区,缓冲区可是jvm队列,第三方订阅服务,来达到处理数据和处理进行分离,业务系统只关注自身对业务对象和现实。
33.3:通过文件内容处理消费适配,获取到处理消息的实例,调用实例按需进行批处理。
34.4:提供常用数据校验框架和数据校验处理,供业务侧选择性调用。
35.本发明首先提供一种基于uri规则配置集成统一处理文件的系统,由控制器、处理触发器、配置管理模块、uri规则处理器、数据缓冲区和业务处理控制器组成;控制器用于传入发起文件处理的节点配置名,可以同时传入一个和/或多个节点
配置名,节点配置名是一类的唯一标识,具体传入数量取决于调用者按需控制;处理触发器用于初始化uri配置规则,并获取每个处理节点对应的uri配置集合;传入一个节点配置时就是单个,传入多个时,经过初始化,唯一节点配置名有对应配置集;配置管理模块用于根据配置目录遍历文件信息,并为文件对象适配uri规则处理器;uri规则处理器用于将文件处理配置及文件指内容存放到缓冲区;数据缓冲区用于存储配置数据,并供数据缓存区消费者选择使用;业务处理控制器用于接收缓存区消费者在数据缓冲区获取的缓存区数据和uri配置,为考虑业务处理可能需要配置相关信息。
36.crm和boss是本发明中实施过程中的系统或平台的缩写,其中crm(customer relationship management)是客户关系管理平台,boss(business operation support system)是业务运营支撑系统;scheme 叫“方案名”或者“协议名”,在本发明中指的是uri格式中”:“//前的部分,具体如图5所示。
37.进一步地,处理触发器还用于根据文件名匹配相应的文件处理配置;处理触发器还用于拉起异步数据缓冲区异步消费者。
38.本发明还涉及一种使用上述基于uri配置规则集成统一处理文件的系统的基于uri规则配置集成统一处理文件的方法,按照以下步骤顺序操作:s01,启动控制器,传入发起文件处理的节点配置名;节点配置名为待处理的一个文件夹目录下所有文件的唯一标识位,根据该文件夹下的具体文件的业务处理需求,在该节点下配置与该业务对应的uri规则处理器。
39.s02,调用处理触发器,处理触发器初始化uri配置规则,开始处理文件对象;文件对象可以理解为存储在某个目录下的文件对象。每一类节点配置下都会有一个属性fileabsolutepath(文件绝对路径),文件绝对路径下存放的是需要处理的文件夹,或文件,统称为文件对象。(节点配置名为处理一类根据uri配置规则处理文件的唯一标识位)。
40.uri规则配置中包括yaml格式配置,yaml格式配置根据配置关系设计成表格结构存放到关系型数据库中。
41.本发明中的配置用于统一定义文件读取与文件内容处理的方式,yaml是配置的其中一种表现形式;也即本发明用于写配置文件的序列化语言是yaml,可以看作一个标记语言,类似于json。yaml语法类似于其它高级语言,适合用来表达或编辑数据结构、各种配置文件、文件大纲等。本技术当前是通过yaml方式完成文件配置;yaml格式配置如下(yaml为配置的描述形式之一,使用者需按该格式进行描述配置,该节点配置也可以根据配置关系设计成表格形式存放到关系型数据库中):file.read:
ꢀꢀ
readdirectoryrules:
ꢀꢀꢀꢀ
# rulenode为配置节点,用于标识应用与不同系统间文件交互的标识
ꢀꢀꢀꢀ‑ꢀ
rulenode: a
ꢀꢀꢀꢀꢀꢀ
# fileabsolutepath为本地要处理文件绝对路径
ꢀꢀꢀꢀꢀꢀ
fileabsolutepath: '/iic-ftp/iic/download2/100'
ꢀꢀꢀꢀꢀꢀ
# filehandlemode为文件处理模式,有遍历处理和异步处理filehandlemode: one_by_one# buffertype为缓存类型,包括queue、redis、es、kafka、es、关系型数据库等
ꢀꢀ
buffertype:queue
ꢀꢀꢀꢀꢀꢀ
# readfilerules为文件读取规则(按实际需要配置该节点子集集合)
ꢀꢀꢀꢀꢀꢀ
readfilerules:
ꢀꢀꢀꢀꢀꢀꢀꢀ
# matchfilename为同一类型文件名的正则配置
ꢀꢀꢀꢀꢀꢀꢀꢀ‑ꢀ
matchfilename: m_f10001_[0-9]{6}_[0-9]{2}.txt
ꢀꢀꢀꢀꢀꢀꢀꢀ
# filereaduri为uri规则配置,line://为自定义scheme来区分要处理文件源类型和方式标识,scheme后的片段标识为辅助资源提供文件内容的处理方式,其中handlebean为固定参数(必配)。
[0042]
heanbean具体有几处取决于有多少种文件类型需要通过要发明的统一配置的方式进行读取和处理。本发明中表达文件类型的配置见s02部分,其中matchfilename和filereaduri结合起来表示需处理文件的一种类型。本发明中更多的是说明了一组配置的方式和意义,实际使用时配置可为多组,其中配置行中有
”‑“
符号的标识,表示该配置名同级的配置可根据实际需要配置多组。
[0043]
本发明以行文件作为配置进行说明,其中line代表行文件,handlebean为应用处理文件内容bean名,splitsign为行文件分隔符号(选配),默认为不对文件内容行进行分隔,如该配置存在则会按配置规则进行分隔,splitnum为行文件分隔数(选配),当splitsign配置后splitnum必配;newlinesign为换行标识(选配),默认支撑\r、\n、\r\n三种换行符,batchsize为自定义批处理数据条数(选配),默认500。
[0044]
filereaduri: 'line://handlebean=efficiencyassessprocesshandlersplitsign=€€$&splitnum=6&newlinesign=\r&batchsize=600'上述filereaduri配置的值为本技术的uri自定义规则。
[0045]
s03,处理触发器根据节点配置名,调用配置管理模块获取处理节点配置名对应的uri配置规则集合信息;s04,处理触发器根据获取到的uri配置中的文件对象目录,遍历相关文件对象;s05,处理触发器根据遍历文件名正则的配置获取当前文件的uri配置规则;s06,处理触发器根据uri配置中的uri自定义规则进行scheme匹配,从而适配uri规则处理器;uri自定义规则的形式如下:规则处理器://处理器名称规则处理器对应处理内容配置。
[0046]
uri自定义规则的种类有如下几种:1、按行方式读取并进行分隔;其中单行数据6个属性间的分隔符€€(splitsign=€€$&splitnum=6),行的换行为\r(newlinesign=\r,默认为\r、\r\n、\n),单次批量处理600条数据(默认为500),起始行为10(startnum=10,默认从起始行开始),结束行为1000(endnum=1000,默认读完整个文件)为行文件并将行数据按照一定规则进行分隔,处理器实例为efficiencyassessprocesshandler
line://handlebean=efficiencyassessprocesshandlersplitsign=€€$&splitnum=6&newlinesign=\r&batchsize=600&startnum=10&endnum=10002、按行方式读取不进行分隔;行的换行为\r(newlinesign=\r,默认为\r、\r\n、\n),单次批量处理600条数据(默认为500),起始行为10(startnum=10,默认从起始行开始),结束行为1000(endnum=1000,默认读完整个文件)为行文件并将行数据按照一定规则(具体规则指的是文件的内容是按何字符进行分隔组成的数据,对文件读取的起始行是第10行,结束行为1000,单次处理数据600条或600行)进行分隔,处理器实例为lineassessprocesshandlerline://handlebean=lineassessprocesshandlernewlinesign=\r&batchsize=600&startnum=10&endnum=10003、自定义规则器还包括:按行方式读取csv文件;读取excel文件,excel文件包括xls和xlxs。
[0047]
读取内容为xml格式的文件;读取内容为json格式的文件excel://等;excel://为自定义uri自定义规则的一种形式,具体配置excel://handlebean=xlshandler&startnum=2;自定义规则器的种类可按实际需要进行增加,遵循uri规则即可。
[0048]
s07,uri规则处理器根据uri自定义规则进scheme后的辅助配置对文件按uri配置规则进行读取处理;s08,将文件数据存放到数据缓冲区中;s09,文件内容根据uri配置规则处理完成;s10,处理触发器拉起异步数据缓冲区异步消费者;s11,开始消费缓冲区数据;(该场景是在buffertype配置为queue和ehcache时,uri规则配置统一处理提供jar的方式供应用系统引入使用,为了避免集群或分布式系统出现数据处理异常。buffertype配置不是queue和ehcache时,uri规则配置统一处理与应用系统支撑以jar形式引用使用,也可选择为独立部署的方式运行)s12,数据缓冲区消费者获取缓冲区数据和uri配置,准备消费文件数据;s13,数据缓存去消费者通过工具配置将数据写入到业务处理控制器,由业务控制器处理数据相关具体业务。
[0049]
最后,数据缓冲区使用ehcache、queue缓存技术时,uri规则配置文件统一处理与应用系统采用jar集成方式;使用redis、es、kafka时采用jar集成方式、集群分布式方式和/或分布式方式。
[0050]
本发明基于uri规则配置集成统一处理文件的系统和方法,关键技术点在于:1、使用uri(统一资源标识符)规则配置,通过自定义scheme来区分要处理文件源类型和方式标识,通过scheme后的片段标识为辅助资源提供文件内容的处理方式,最终形成处理文件uri配置方式的统一,不同类型的文件读取与文件内容处理通过灵活修改配置即可。
[0051]“scheme后的片段标识”指的是uri统一资源标识符://后的内容,具体为上述操作步骤s02中的filereaduri配置(即uri规则配置)说明中的值:“line://handlebean=efficiencyassessprocesshandlersplitsign=€€$&splitnum=6&newlinesign=\r&batchsize=600”;其中“handlebean=efficiencyassessprocesshandlersplitsign=€€$&splitnum=6&newlinesign=\r&batchsize=600”即为scheme后的片段标识。
[0052]
如:line://handlebean=efficiencyassessprocesshandler&splitsign=€€$&splitnum=6&newlinesign=\r&batchsize=600其中line:为自定义scheme,scheme后的片段标识是scheme对应的辅助资源为提供文件内容的处理方式2、通过生产者/消费者模式(生产者模式相当于数据的生产者,数据生产完成后触发数据消费),先将需处理文件内容信息和规则信息存放到缓冲区,再通过消费者读取缓冲区的数据,根据配置灵活处理,达到内容读取和内容业务处理分离,同时可根据读取文件规模灵活选择缓冲区为队列或第三方订阅服务进行支撑。
[0053]
本发明的基于uri规则配置集成统一处理文件的系统和基于uri规则配置集成统一处理文件方法,具有以下优点:1)、基于uri规则自定义配置,解决不同文件集成处理。
[0054]
2)、通过配置处理能自动适配,完成多种不同文件数据的业务处理。
[0055]
3)、应用缓存区存储文件数据,采用生产者消费者模式降低文件处理与应用系统耦合度,能灵活支撑新缓存区支撑技术同时保证处理技术先进性和兼容性。
[0056]
4)、自动适配接入,实现上可复用,从而降低接入成本。
[0057]
本发明不局限于上述可选实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是落入本发明权利要求界定范围内的技术方案,均落在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献