一种数据通信方法及装置
文献发布时间:2023-06-19 10:38:35
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据通信方法及装置。
背景技术
企业发展到一定规模后,都会在不同的城市或同一城市的不同地区开设分支机构。分支机构各自运行独立的认证系统,同时考虑员工有跨分支机构办公的需求,因此要求分支机构间能够互相通信,实现数据同步,从而实现员工无论在哪个分支机构都能够接入网络,正常办公。
目前,当某个分支机构配置数据发生变化时,首先,需要通过各分支机构的数据库自身的同步机制实现变化配置数据的同步,然后,需要同时通知其他分支机构的认证服务器从本地数据库加载变化配置数据。
然而,该机制由于无法确定数据库同步何时完成,只能将通知消息延迟足够长的时间发送,以防由于数据库同步未完成而导致认证服务器加载不到数变化配置数据。且该机制依赖分支机构间网络质量,否则会导致通知消息丢弃而导致分支机构的认证服务器无法执行变化配置数据加载操作。
发明内容
本申请提供了一种数据通信方法及装置,用以解决现有技术中存在的通知消息无法送达各分支机构,从而影响认证业务的问题。
第一方面,本申请提供了一种1数据通信方法,应用于任一分支机构,其中,所述任一分支机构至少包括对应的配置服务器,认证服务器和数据库,所述方法包括:
第一分支机构的第一配置服务器在检测到第一策略配置的更新操作时,将更新后的第一策略配置存储至所述第一分支机构的第一数据库中,并将对应的第一通知消息存储至所述第一数据库中,以及通知所述第一分支机构的第一认证服务器从所述第一数据库中加载更新后的第一策略配置;
所述第一数据库向第二分支机构的第二数据库发送第一配置策略获取通知,以使得所述第二数据库从所述第一数据库本地同步更新后的第一配置策略和第一通知消息,其中,所述第二数据库在获取到更新后的第一配置策略和第一通知消息后,将第一通知消息发送给所述第二分支机构的第二认证服务器,以使得所述第二认证服务器基于第一通知消息从所述第二数据库加载更新后的第一配置策略。
可选地,将对应的第一通知消息存储至所述第一数据库中的步骤包括:
对第一通知消息进行序列化处理;
将序列化处理后的第一通知消息存储至所述第一数据库中。
可选地,所述方法还包括:
所述第一数据库在接收到其他数据库发送的第二配置策略获取通知时,从所述其他数据库获取更新后的第二配置策略和第二通知消息,并将第二通知消息发送给所述第一认证服务器,以使得所述第一认证服务器基于第二通知消息从所述第一数据库获取更新后的第二配置策略。
可选地,所述其他数据库中存储的第二通知消息为序列化处理过的消息;
所述从所述其他数据库获取更新后的第二配置策略和第二通知消息的步骤包括:
从所述其他数据库获取更新后的第二配置策略,并在确定获取到更新后的第二配置策略后,从所述其他数据库获取第二通消息;
所述将第二通知消息发送给第一认证服务器的步骤包括:
基于预设的周期判断是否有未处理的第二通知消息;
若判定存在未处理的第二通知消息,则对该第二通知消息进行反序列化处理,并将反序列化处理后的第二通知消息发送给第一认证服务器。
可选地所述方法还包括:
所述第一数据库在确定所述第一认证服务器从本地获取道更新后的第二配置策略后,将该第二通知消息标记为已处理状态。
第二方面,本申请提供了一种数据通信装置,应用于任一分支机构,其中,所述任一分支机构至少包括对应的配置服务器,认证服务器和数据库,所述装置包括:
存储单元,用于在检测到第一策略配置的更新操作时,将更新后的第一策略配置存储至所述第一分支机构的第一数据库中,并将对应的第一通知消息存储至所述第一数据库中,以及通知所述第一分支机构的第一认证服务器从所述第一数据库中加载更新后的第一策略配置;
发送单元,用于向第二分支机构的第二数据库发送第一配置策略获取通知,以使得所述第二数据库从所述第一数据库本地同步更新后的第一配置策略和第一通知消息,其中,所述第二数据库在获取到更新后的第一配置策略和第一通知消息后,将第一通知消息发送给所述第二分支机构的第二认证服务器,以使得所述第二认证服务器基于第一通知消息从所述第二数据库加载更新后的第一配置策略。
可选地,将对应的第一通知消息存储至所述第一数据库中时,所述存储单元具体用于:
对第一通知消息进行序列化处理;
将序列化处理后的第一通知消息存储至所述第一数据库中。
可选地,所述装置还包括:
执行单元,用于在接收到其他数据库发送的第二配置策略获取通知时,从所述其他数据库获取更新后的第二配置策略和第二通知消息,并通过所述第一配置服务器将第二通知消息发送给所述第一认证服务器,以使得所述第一认证服务器基于第二通知消息从所述第一数据库获取更新后的第二配置策略。
可选地,所述其他数据库中存储的第二通知消息为序列化处理过的消息;
所述从所述其他数据库获取更新后的第二配置策略和第二通知消息时,所述执行单元具体用于:
从所述其他数据库获取更新后的第二配置策略,并在确定获取到更新后的第二配置策略后,从所述其他数据库获取第二通消息;
所述通过所述第一配置服务器将第二通知消息发送给第一认证服务器时,所述执行单元具体用于:
所述第一配置服务器基于预设的周期判断所述第一数据库中是否有未处理的第二通知消息;
若判定存在未处理的第二通知消息,则获取该第二通知消息,并对该第二通知消息进行反序列化处理,以及将反序列化处理后的第二通知消息发送给第一认证服务器。
可选地,所述装置还包括:
标记单元,所述第一数据库在确定所述第一认证服务器从本地获取到更新后的第二配置策略后,所述标记单元将该第二通知消息标记为已处理状态。
第三方面,本申请实施例提供一种数据通信装置,该数据通信装置包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
综上可知,本申请实施例提供的数据通信方法,应用于任一分支机构,其中,所述任一分支机构至少包括对应的配置服务器,认证服务器和数据库,所述方法包括:第一分支机构的第一配置服务器在检测到第一策略配置的更新操作时,将更新后的第一策略配置存储至所述第一分支机构的第一数据库中,并将对应的第一通知消息存储至所述第一数据库中,以及通知所述第一分支机构的第一认证服务器从所述第一数据库中加载更新后的第一策略配置;所述第一数据库向第二分支机构的第二数据库发送第一配置策略获取通知,以使得所述第二数据库从所述第一数据库本地同步更新后的第一配置策略和第一通知消息,其中,所述第二数据库在获取到更新后的第一配置策略和第一通知消息后,将第一通知消息发送给所述第二分支机构的第二认证服务器,以使得所述第二认证服务器基于第一通知消息从所述第二数据库加载更新后的第一配置策略。
采用本申请实施例提供的数据通信方法,在检测到配置策略更新操作时,将通知消息与更新后的配置策略一并插入数据库中,通过数据库同步的方式同步通知消息,避免了由于分支机构间网络波动而导致通知消息丢失的问题,避免了由于通知消息发送过早而导致认证服务器获取不到更新后的配置策略的问题,提升了认证业务的可靠性,进一步地,不用维护通知消息发送规则,即在分支机构增加或减少时,无需调整通知消息通知范围,采用数据库同步通知消息即可实现企业组网中所有分支机构的通知消息的送达,简化了通知消息处理流程,提升了处理效率。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种数据通信方法的详细流程图;
图2为本申请实施例提供的一种企业组网的组网示意图;
图3为本申请实施例提供的一种数据通信时序示意图;
图4为本申请实施例提供的一种数据通信装置的结构示意图;
图5为本申请实施例提供的另一种数据通信装置的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
示例性的,参阅图1所示,为本申请实施例提供的一种数据通信方法的详细流程图,该方法应用于任一分支机构,其中,所述任一分支机构至少包括对应的配置服务器,认证服务器和数据库,该方法包括以下步骤:
步骤100:第一分支机构的第一配置服务器在检测到第一策略配置的更新操作时,将更新后的第一策略配置存储至上述第一分支机构的第一数据库中,并将对应的第一通知消息存储至上述第一数据库中,以及通知上述第一分支机构的第一认证服务器从所述第一数据库中加载更新后的第一策略配置。
实际应用中,当企业发展到一定规模后,会设置多个分支机构,各分支机构均设置有对应的配置服务器,认证服务器和数据库,其中,企业员工在登录系统时,需通过认证服务器的认证,用户认证信息可以维护在数据库中,用户可以基于配置服务器进行配置策略(如,用户认证信息,认证策略等)的增、删、改等更新操作。
需要说明的是,本申请实施例中,第一分支机构可以是系统中的任一分支机构。即本申请实施例提供的数据通信方法可以应用在任一分支机构中。
具体地,当一个分支机构(如,第一分支机构)的配置服务器(如,第一配置服务器)在检测到用户触发的配置策略(如,第一配置策略)更新操作时,首先,将更新后的第一配置策略存储至第一分支机构的数据库(如,第一数据库)中,同时,将用于告知其他分支机构此次配置策略更新事件的通知消息也存储至第一数据库中;接着,第一配置服务器向同属于上述第一分支机构的第一认证服务器发送通知,第一认证服务器从第一数据库中加载更新后的配置策略。执行完上述操作之后,第一认证服务器则可以基于该更新后的配置策略对用户登录该分支机构进行登录认证操作。
本申请实施例中,在将对应的第一通知消息存储至上述第一数据库中时,一种较佳的实现方式为,对第一通知消息进行序列化处理;将序列化处理后的第一通知消息存储至上述第一数据库中。
所谓序列化,指的是把对象转换为字节序列的过程称为对象的序列化。同理,所谓反序列化,指的是把字节序列恢复为对象的过程称为对象的反序列化。
也就是说,本申请实施例中,在将通知消息存储至对应的数据库之前,需要将通知消息转换为字节序列,并将字节序列存储至数据库中。
步骤110:上述第一数据库向第二分支机构的第二数据库发送第一配置策略获取通知,以使得上述第二数据库从上述第一数据库本地同步更新后的第一配置策略和第一通知消息,其中,上述第二数据库在获取到更新后的第一配置策略和第一通知消息后,将第一通知消息发送给上述第二分支机构的第二认证服务器,以使得上述第二认证服务器基于第一通知消息从上述第二数据库加载更新后的第一配置策略。
本申请实施例中,在执行完步骤100之后,各分支机构的数据库之间采用数据库自身同步机制进行数据同步操作,例如,第一数据库在检测到本地存储的数据发生变化时,向第二分支机构的第二数据库发送第一配置策略更新通知,具体地,该第二分支机构是组网中除第一分支机构之外的其他分支机构,具体地数据库自身同步机制为现有机制,本申请实施例中,在此不做具体限定。
本申请实施例中,各第二分支机构的数据库在获取到更新后的第一配置策略和第一通知消息后,将第一通知消息发送给与该数据库同属于统一分支机构的认证服务器,认证服务器在接收到该第一通知消息后,根据该第一通知消息从对应数据库中加载更新后的第一配置策略。
进一步地,上述第一数据库在接收到其他数据库发送的第二配置策略获取通知时,从上述其他数据库获取更新后的第二配置策略和第二通知消息,并通过上述第一配置服务器将第二通知消息发送给上述第一认证服务器,以使得上述第一认证服务器基于第二通知消息从上述第一数据库获取更新后的第二配置策略。
需要说明的是,若上述其他数据库中存储的第二通知消息为序列化处理过的消息,则上述从上述其他数据库获取更新后的第二配置策略和第二通知消息时,一种较佳的实现方式为:从上述其他数据库获取更新后的第二配置策略,并在确定获取到更新后的第二配置策略后,从上述其他数据库获取第二通消息。
也就是说,在确保更新的配置策略同步至一个数据库的动作完成之后,再同步对应的通知消息,以避免通知消息先同步至数据库,且触发认证服务器从该数据库中加载更新后的配置策略时,对应的配置策略而未完全同步至数据库中的问题的出现。
更进一步的,上述通过上述第一配置服务器将第二通知消息发送给第一认证服务器时,一种较佳的实现方式为:上述第一配置服务器基于预设的周期判断上述第一数据库中是否有未处理的第二通知消息;若判定存在未处理的第二通知消息,则获取该第二通知消息,并对该第二通知消息进行反序列化处理,以及将反序列化处理后的第二通知消息发送给第一认证服务器。
例如,配置服务器轮询对应数据库中是否存在未处理的通知消息,若存在,则获取该通知消息,并对该通知消息进行反序列化处理,以及将反序列化处理后的通知消息发送给对应的认证服务器,显然,该配置服务器,数据库和认证服务器均属于同一分支机构,认证服务器在接收到配置服务器发送的通知消息后,根据该通知消息从数据库中加载更新的配置策略,并使用更新后的配置策略进行用户认证操作。
进一步地,上述第一数据库在确定上述第一认证服务器从本地获取到更新后的第二配置策略后,将该第二通知消息标记为已处理状态。
也就是说,认证服务器在确定加载完更新后的配置策略之后,向数据库反馈加载完成的消息,数据库在确定认证服务器加载完成后,将对应通知消息标记为已处理,那么,在后续配置服务器轮巡时,即可忽略该已处理的通知消息。
下面结合具体应用场景对本申请实施例提供的企业组网的结构进行详细说明。示例性的,参阅图2和图3所示,其中,图2为本申请实施例提供的一种企业组网的组网示意图,该企业组网包括分支机构1,分支机构2和分支机构3,其中,分支机构1包括配置服务器1,认证服务器1和数据库1,分支机构2包括配置服务器2,认证服务器2和数据库2,分支机构3包括配置服务器3,认证服务器3和数据库3。那么,当配置服务器1检测到用户触发的配置策略更新操作时,将更新后的配置策略和通知消息存储至数据库1中,同时通知任务服务器1从数据库1中加载配置策略;数据库1检测到本地存储的数据发生改变时,与数据库2和数据库3发起数据同步机制,以使得数据库2和数据库3从数据库1中获取更新后的配置策略和通知消息,进一步地,配置服务器2会定期轮询数据库2中是否有新的通知消息未处理,同理,配置服务器3会定期轮询数据库3中是否有新的通知消息未处理,若存在,则配置服务器2从数据库2获取待处理的通知消息,并发送至认证服务器2,以使得认证服务器2从数据库2中加载更新后的配置策略,配置服务器3从数据库3获取待处理的通知消息,并发送至认证服务器3,以使得认证服务器3从数据库3中加载更新后的配置策略,更进一步的,数据库2在确定认证服务器2从本地加载成功更新后的配置策略之后,将该通知消息标记为已处理,在配置服务器2再次轮询时,即可忽略该已处理的通知消息,数据库3在确定认证服务器3从本地加载成功更新后的配置策略之后,将该通知消息标记为已处理,在配置服务器3再次轮询时,即可忽略该已处理的通知消息。
下面,结合具体应用场景对任意两个分支机构之间的数据通信时序进行详细说明,示例性的,参阅图3所示,为本申请实施例提供的一种数据通信时序示意图,具体包括:
步骤1、配置服务器1完成配置策略,并将配置策略和通知消息插入数据库1。
步骤2、配置服务器1通知认证服务器1加载配置策略。
步骤3、认证服务器1从数据库1加载配置策略。
步骤4、数据库1向认证服务器1返回配置策略。
步骤5、数据库1和数据库2触发数据同步机制。
需要说明的是,在执行完步骤1之后,在执行步骤2的同时,即可同步执行步骤5,而在执行完步骤5之后,即可开始执行步骤6,本申请实施例中,在此不做具体限定。
步骤6、配置服务器2从数据库2获取通知消息;
步骤7、配置服务器2将通知消息发送给认证服务器2。
步骤8、认证服务器2从数据库2加载配置策略。
步骤9、数据库2向认证服务器2返回配置策略。
步骤10、认证服务器2指示数据库2将该通知消息标记为已处理。
示例性的,参阅图4所示,为本申请实施例提供的一种数据通信装置的结构示意图,该数据通信应用于任一分支机构,其中,所述任一分支机构至少包括对应的配置服务器,认证服务器和数据库,所述装置包括:
存储单元40,用于在检测到第一策略配置的更新操作时,将更新后的第一策略配置存储至所述第一分支机构的第一数据库中,并将对应的第一通知消息存储至所述第一数据库中,以及通知所述第一分支机构的第一认证服务器从所述第一数据库中加载更新后的第一策略配置;
发送单元41,用于向第二分支机构的第二数据库发送第一配置策略获取通知,以使得所述第二数据库从所述第一数据库本地同步更新后的第一配置策略和第一通知消息,其中,所述第二数据库在获取到更新后的第一配置策略和第一通知消息后,将第一通知消息发送给所述第二分支机构的第二认证服务器,以使得所述第二认证服务器基于第一通知消息从所述第二数据库加载更新后的第一配置策略。
可选地,将对应的第一通知消息存储至所述第一数据库中时,所述存储单元40具体用于:
对第一通知消息进行序列化处理;
将序列化处理后的第一通知消息存储至所述第一数据库中。
可选地,所述装置还包括:
执行单元,用于在接收到其他数据库发送的第二配置策略获取通知时,从所述其他数据库获取更新后的第二配置策略和第二通知消息,并通过所述第一配置服务器将第二通知消息发送给所述第一认证服务器,以使得所述第一认证服务器基于第二通知消息从所述第一数据库获取更新后的第二配置策略。
可选地,所述其他数据库中存储的第二通知消息为序列化处理过的消息;
所述从所述其他数据库获取更新后的第二配置策略和第二通知消息时,所述执行单元具体用于:
从所述其他数据库获取更新后的第二配置策略,并在确定获取到更新后的第二配置策略后,从所述其他数据库获取第二通消息;
所述通过所述第一配置服务器将第二通知消息发送给第一认证服务器时,所述执行单元具体用于:
所述第一配置服务器基于预设的周期判断所述第一数据库中是否有未处理的第二通知消息;
若判定存在未处理的第二通知消息,则获取该第二通知消息,并对该第二通知消息进行反序列化处理,以及将反序列化处理后的第二通知消息发送给第一认证服务器。
可选地,所述装置还包括:
标记单元,所述第一数据库在确定所述第一认证服务器从本地获取到更新后的第二配置策略后,所述标记单元将该第二通知消息标记为已处理状态。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
进一步地,本申请实施例提供的数据通信装置,从硬件层面而言,所述数据通信装置的硬件架构示意图可以参见图5所示,所述数据通信装置可以包括:存储器50和处理器51,
存储器50用于存储程序指令;处理器51调用存储器50中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种数据通信设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
- 数据通信系统、数据发送装置、数据接收装置和数据通信方法、以及数据通信程序
- 数据处理装置、数据通信装置、通信系统、数据处理方法、数据通信方法以及程序