掌桥专利:专业的专利平台
掌桥专利
首页

一种混合云的数据交互方法

文献发布时间:2023-06-19 10:58:46


一种混合云的数据交互方法

技术领域

本发明涉及计算机技术领域,特别是涉及一种混合云的数据交互方法。

背景技术

随着互联网技术的发展和应用软件的成熟,SaaS(Software-as-a-Service,软件即服务)化的软件应用模式,是软件科技发展的最新趋势,SaaS作为新兴的软件应用模式,是一种软件布局模型,其应用专为网络交付而设计,便于用户通过互联网托管、部署及接入,传统软件,尤其是专业领域的软件,在交付之前,就得经过调研、方案制定、产品研发、调试等相当繁琐的过程。而SaaS省去了这些环节,只要你有电脑和网络,直接登录即可使用,甚为快捷、方便。

SaaS服务通常是基于一套标准软件系统为成百上千的不同用户(又称租户)提供服务。这要求SaaS服务要能够支持不同租户之间数据和配置的隔离,从而保证每个租户数据的安全与隐私,以及用户对诸如界面、业务逻辑、数据结构等的个性化需求。

从已有的成熟领域的定制化系统转向SaaS服务的问题点在于已有系统内存在的业务数据,不同的定制化系统针对同一个业务的业务数据存在一定的差异化,而这些差异化的数据需要SaaS服务能够同时容纳接收,通过硬编码的方式实现各个系统的适配必然导致后期巨大的维护成本。现有技术中,处理方式大多是将收集到的定制化系统的数据按照所要求的格式封装成XML格式或者JSON格式的数据包上传到服务器,服务端根据已知的数据格式需要提前手工将数据字段定义好在关系型数据库中,最终将收到的数据存储到对应的表中,这种方法存在两种弊端,一种是随着定制化业务的增加,同一业务在数据库中的冗余字段越来越多,一种是无法实时提供新增的表格或者字段存储内容给到定制系统,导致需要硬编码的方式实现各个系统的适配,最终导致后期巨大的维护成本。

发明内容

本发明的目的是提供一种混合云的数据交互方法,通过在定制化的系统与SaaS服务之间提供通用的数据交互格式,SaaS服务根据该数据格式对数据进行解析,实现定制化数据结构动态实时接收并存储的能力,以解决上述现有技术存在的问题。

为实现上述目的,本发明提供了如下方案:

本发明提供一种混合云的数据交互方法,包括以下步骤:

S1,构建本地系统、本地数据库、公共组件、消息队列、监听者、数据协议规范、SaaS服务端和文档型数据库;

S2,在所述本地系统上部署所述公共组件获取所述本地数据库中的本地数据,然后将所述本地数据投递到消息队列中;

S3,所述监听者监听消息队列中的本地数据并获取,对所述本地数据根据定义好的数据协议规范进行封装,获得封装后的本地数据,其中所述数据协议规范包括:关联关系relation、表名table、外键关联的Key:foreignKey、需要填充的字段field;

S4,将所述封装后的本地数据发送到所述SaaS服务端;

S5,根据所述relation字段的描述信息判断所述SaaS服务端根据接收到的封装后的本地数据中是否有需要保存的信息,将需要保存的信息进行保存

S6,通过文档型数据库对数据进行存储,对于不存在的表格或者字段,则动态创建,对于已经存在的数据,则采取更新操作。

进一步地,所述S2中的消息队列具体可以使用开放公共组件的消息队列,如RabbitMQ,Kafka等消息中间件。

进一步地,所述S3中封装的本地数据格式使用JSON对象。

进一步地,所述S3中的数据协议规范还包括:协议版本version、租户Id:tenantId、时间戳Timestamp、表格主键Id:pk、动作:action、数据data。

进一步地,所述S5中的判断方法为:所述relation包括table和foreignKey,用所述table定位到数据所在的表,用所述foreignKey主要定位到表中对应的数据,定位到数据后,根据action字段的内容对数据进行增加、修改或者删除的操作。

进一步地,所述S5中的:relation字段的为关联关系,用于定义该数据与关联表之间的关系;

外键关联的主键字段foreignkey起到关联关系;

table信息为表名信息,用于定义把数据更新到对应的表名中,如果数据中不存在该表,则会自动创建一个新的表。

进一步地,所述S6中的文档型数据库为半结构化的。

本发明公开了以下技术效果:

通过本发明使得SaaS服务系统可以接纳同系统业务中不同的数据格式,而且能够根据数据协议定义好数据与数据之间的关联关系。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种混合云的数据交互方法的流程示意图;

图2为一种混合云的数据交互方法的网络示意图;

图3为一种混合云的数据交互方法的储存结构示意图。

具体实施方式

现详细说明本发明的多种示例性实施方式,该详细说明不应认为是对本发明的限制,而应理解为是对本发明的某些方面、特性和实施方案的更详细的描述。

应理解本发明中所述的术语仅仅是为描述特别的实施方式,并非用于限制本发明。另外,对于本发明中的数值范围,应理解为还具体公开了该范围的上限和下限之间的每个中间值。在任何陈述值或陈述范围内的中间值以及任何其他陈述值或在所述范围内的中间值之间的每个较小的范围也包括在本发明内。这些较小范围的上限和下限可独立地包括或排除在范围内。

除非另有说明,否则本文使用的所有技术和科学术语具有本发明所属领域的常规技术人员通常理解的相同含义。虽然本发明仅描述了优选的方法和材料,但是在本发明的实施或测试中也可以使用与本文所述相似或等同的任何方法和材料。本说明书中提到的所有文献通过引用并入,用以公开和描述与所述文献相关的方法和/或材料。在与任何并入的文献冲突时,以本说明书的内容为准。

在不背离本发明的范围或精神的情况下,可对本发明说明书的具体实施方式做多种改进和变化,这对本领域技术人员而言是显而易见的。由本发明的说明书得到的其他实施方式对技术人员而言是显而易见得的。本申请说明书和实施例仅是示例性的。

关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。

本发明的技术方案包括一整套完整的协议格式规范,其包括:

协议需要包含version,tenantId,timestamp,table,pk,action,relation,foreignKey,field,data:

version:协议版本,用于规范协议版本的信息;

tenantId:租户Id,用于规范每个数据归属的租户Id;

Timestamp:时间戳;

table:表名,用于定义把数据更新到对应的表名中,如果数据中不存在该表,则会自动创建一个新的表;

pk:表格主键Id,用于规范定义数据的主键字段;

action:动作,用于规范该条数据操作的操作类型:1.add:新增,2.modify:修改,3.delete:删除;

relation:关联关系,用于定义该数据与关联表之间的关系;

foreignKey:外键关联的Key,起到关联关系;

field:需要填充的字段;

data:数据,用于存储到数据库中的数据,该数据可以支持同一个表名下多种数据格式的定义。

具体的数据储存方法为:

1.利用公共组件DataX进行业务数据的获取

系统部署公共组件DataX进行业务数据的批量抽取,然后将其消息投递到消息队列中,具体的实现可以使用开放公共组件的消息队列,如RabbitMQ,Kafka等消息中间件;

2.根据数据规范进行数据格式组装

系统部署一个监听者,监听消息中间件的消息,监听者从消息中间件获取数据后,根据上述披露的数据格式规范进行数据格式的封装,让数据本身具有描述性,系统交互数据的格式统一使用JSON对象;

3.将组装后的数据发送给接收方

将组装后的消息发送给SaaS服务端;

4.接收方根据协议规则进行数据的拆解

服务端根据发送过来的数据根据relation字段的描述信息,判断需要自动保存到的table信息,以及外键关联的主键字段foreignkey,根据这两个字段信息获取到对应的table信息,并根据foreignkey获取对应唯一数据,并将需要保存的field字段保存下来;

其中所述relation包括table和foreignKey,用所述table定位到数据所在的表,用所述foreignKey主要定位到表中对应的数据,定位到数据后,根据action字段的内容对数据进行增加、修改或者删除的操作;

5.将解析后的数据进行数据的存储

根据步骤4解析出来的数据,利用公共组件,使用半结构化的文档型数据库(MongoDB)进行数据的存储,对于不存在的表格或者字段,则动态创建,对于已经存在的数据,则采取更新操作。

利用本发明,系统可以根据自定义的relation信息进行任意位置的数据存储,并利用MongoDB对象性文档的特性可以达到根据不同的业务需要,进行不同字段的数据存储,达到动态的业务变化,图3表述了数据存储后的数据格式。

以上所述的实施例仅是对本发明的优选方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

相关技术
  • 一种混合云的数据交互方法
  • 一种混合云系统、混合云盘申请方法和数据存储方法
技术分类

06120112758820