一种分布式、多层级应用***标识信息的同步方法及***
技术领域
本发明涉及分布式应用***领域,具体涉及一种分布式、多层级应用***标识信息的同步方法及***。
背景技术
分布式应用***是指支持分布式处理的软件***,是在由通信网络互联的多处理机体系结构上执行任务的***。分布式***中的每个***高度自治,分布在物理上分散的各个地点,拥有独立的软硬件环境,能够独立运行;同时各***之间通过网络实现互联互通,进行数据的交换和共享;因此,分布式***中每个***既独立工作,又相互协同。
分布式***中多个***通常是分阶段建立和实施,从一个***开始建立,逐步增长为由跨地域、跨部门多个***组成的大型***。在新***上线时,新***需要将自身的标识信息如地址、名称等通知现有远程***,同时也要获取现有远程***的标识信息,才能实现***之间的协同工作。
现有技术中,在新***上线时,通常需要手工在新***中加入现有远程***的标识信息,现有远程***也需要手工加入新***的标识信息,如果现有远程***比较多,手工加入工作量大,效率低,而且容易出错。另外,现有技术中***之间是并列的,不存在层级关系,而实际使用中,分布式***往往存在层级关系,如在公安行业的应用中存在公安部、省公安厅、地市公安局三个层次,在***之间协同工作如发送公文选择接收***时,需要将所有***列表数据展现给用户,供用户选择,如果***比较多,并列关系展现比较乱,不利用户查找和选择。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种分布式、多层级应用***标识信息的同步方法及***,解决现有技术中存在的手工添加***标识信息工作量大、效率低、容易出错以及***之间不存在层级关系,不利于查找和选择的问题。
为实现上述目的,本发明采用的技术方案为:
一种分布式、多层级应用***标识信息的同步方法,包括以下步骤:
步骤1、新***上线时,通过***注册装置填写新***的本地***标识信息,并将新***的本地***标识信息保存在***信息存储设备;
步骤2、通过消息发送装置将新***的本地***标识信息广播发送;
步骤3、现有远程***通过消息接收装置接收新***发送的广播消息,从广播消息中提取新***的***标识信息并将该标识信息保存在***信息存储设备;
步骤4、现有远程***从***信息存储设备中读取现有远程***的***标识信息作为响应发送给新***;
步骤5、新***接收到现有远程***的响应信息,从响应信息中提取现有远程***的***标识信息并将该标识信息保存在***信息存储设备中。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步方法,步骤2中所述广播发送是消息中间件的发送机制。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步方法,获取***信息存储设备中的树形结构的数据,展现在树形视图中。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步方法,***标识信息包括***名称、***ID、上级***ID和消息中间件登录账号。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步方法,通过在***标识信息中设置***标志来区别本地***与远程***。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步方法,若***不存在上级***,所述上级***ID设置为空。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步方法,若新***以现有远程***的***ID作为本***的上级***ID,表示该现有远程***为新***的上级***。
基于上述分布式、多层级应用***标识信息的同步方法的一种分布式、多层级应用***标识信息的同步***,包括:
***注册装置:用于输入新***的标识信息,并存入***信息存储设备;
***信息存储设备:用于保存新***的***标识信息和现有远程***的***标识信息;
消息发送装置:用于将新***的本地***标识信息广播发送给现有远程***,和将现有远程***的***标识信息作为响应发送给新***;
消息接收装置:现有远程***通过该装置接收广播发送的新***的***标识信息,并将其保存在***信息存储设备;新***通过该装置接收现有远程***的响应消息并从响应消息提取现有远程***的***标识信息,并将其保存在***信息存储设备。
进一步,如上所述的一种分布式、多层级应用***标识信息的同步***,该***还包括:
***列表展现装置:用于获取***信息存储设备中的树形结构数据,将其展现在一个树形视图中,供应用***浏览和操作。
再进一步,如上所述的一种分布式、多层级应用***标识信息的同步***,***标识信息包括***名称、***ID、上级***ID和消息中间件登录账号。
本发明的效果在于:本发明提供的一种分布式、多层级应用***标识信息的同步方法及***,通过消息中间件的广播机制,将本地***的标识信息广播发送到现有远程***,现有远程***收到新***的标识信息后将其加入***信息存储设备;同时远程***将本身的标识信息作为响应信息发送给新***,该方法可以大幅度减少手工添加***标识信息的工作量,提高实施效率,减少错误,同时本发明还提供了树形分层的数据结构和展现视图,结构清晰,易于使用。
附图说明
图1为本发明新***和现有远程***进行信息交换的基本结构示意图;
图2为本发明一种分布式、多层级应用***标识信息的同步***的结构框图;
图3为本发明一种分布式、多层级应用***标识信息的同步方法的流程图;
图4为实施例1中追加第一个新***后的***列表展示图;
图5为实施例2中在实施例1基础上追加第二个新***后的***列表展示图;
图6为实施例2中追加第三个新***后的***列表展示图;
图7为实施例2中追加了五个***后的***列表展示图。
具体实施方式
本发明一种分布式、多层级应用***标识信息的同步方法及***,通过该方法及***可以大幅度减少手工添加***标识信息的工作量,提高分布式***实施效率,减少错误,同时提供了树形分层的数据结构和展现视图,结构清晰,易于使用。
下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。
图1示出了本发明新***和现有远程***进行信息交换的基本结构示意图,由图中可以看出,新上线的新***和现有远程***通过网络进行***标识信息的交换,从而将新***纳入整个分布式***环境中,新***成为分布式***的一个组成部分。
图2示出了本发明一种分布式、多层级应用***标识信息的同步***的结构框图,该***主要包括:
处理模块21,该处理模块包括:
***注册装置211:用于输入新***的标识信息,并存入***信息存储设备;
***发送装置212:用于将新***的本地***标识信息广播发送给现有远程***,和将现有远程***的***标识信息作为响应发送给新***;
***接收装置213:现有远程***通过该装置接收广播发送的新***的本地***标识信息,并将其保存在***信息存储设备;新***通过该装置接收现有远程***的响应消息并从响应消息提取现有远程***的***标识信息,并将其保存在***信息存储设备。
***信息存储设备22:用于保存新***的本地***标识信息和现有远程***的***标识信息;
***列表展现装置23:用于获取***信息存储设备中的树形结构数据,将其展现在一个树形视图中,供应用***浏览和操作。
本实施例中,***标识信息至少要包括***名称、***ID、上级***ID和消息中间件登录账号,实际应用中还可以根据需要增加其他信息...。
图3示出了基于上述分布式、多层级应用***标识信息的同步***的一种分布式、多层级应用***标识信息的同步方法的流程图,由图中可以看出,该方法主要包括以下步骤:
步骤S1:新***上线时,通过***注册装置填写新***的本地***标识信息,并将新***的本地***标识信息保存在***信息存储设备;
步骤S2:通过消息发送装置将新***的本地***标识信息广播发送;
广播发送是消息中间件的一种发送机制,广播发送的信息能够被消息中间件相应频道的所有用户接收;消息中间件一般有三种传递模型:点对点模型(PTP)、发布-订阅模型(Pub/Sub)和广播模型。点对点模型用于消息发送者和消息接收者之间点到点的通信,点对点信息能够被指定的接收者接收,如果没有明确说明,为点对点信息;发布-订阅信息能够被相应频道的某个在线用户接受;广播发送的信息能够被消息中间件相应频道的所有用户接收。本发明只涉及广播信息和用于发送响应的点对点信息。
采用消息中间件机制的***中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发。
步骤S3:现有远程***通过消息接收装置接收新***发送的广播消息,从广播消息中提取新***的本地***标识信息并将该标识信息保存在***信息存储设备;
步骤S4:现有远程***从***信息存储设备中读取现有远程***的***标识信息作为响应发送给新***;
步骤S5:新***接收到现有远程***的响应信息,从响应信息中提取现有远程***的***标识信息并将该标识信息保存在***信息存储设备中。
其中,不论对于新***还是现有远程***,***标识信息至少要包括***名称、***ID、上级***ID和消息中间件登录账号四个关键属性,并通过在***标识信息设置本地***标志区别本地***与现有远程***。如果***不存在上级***,所述上级***ID设置为空;如果新***以现有远程***的***ID作为本***的上级***ID,表示该现有远程***为该新***的上级***。
由于***标识信息中不仅包括了***ID,还包括了***的上级***ID,***信息存储表中的***信息能够采用层级关系通过树形视图展现给用户,所以,本发明的上述方法还包括:
步骤6、用于获取***信息存储设备中的树形结构数据,将其展现在一个树形视图中,供应用***浏览和操作。
下面通过具体的实施例对本发明进行进一步详细的说明。
本发明实施例中以关系数据库的数据库表作为***信息存储设备,表结构如下:
本发明中通过在***标识信息中设置本地***标志区别本地***与现有远程***,实施例中本地***标志IsLocal为1表示本地***,0表示为远程***。
本发明的实施例以公安行业某个分布式业务***通过***标识信息同步将分布在多个地域,物理上分布的***整合为逻辑上集中的分布式***的过程为例进行说明。
实施例1
在公安部部署***,此时没有远程***,公安部进行***标识信息管理的步骤如下:
步骤1、通过***注册装置填写公安部***的本地***标识信息,填写的标识信息如下:
***ID |
上级***ID |
***名称 |
消息中间件账号 |
000000 |
|
公安部 |
user000000 |
步骤2、将公安部***的本地***标识信息保存在***信息存储表中,此时***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
000000 |
|
公安部 |
user000000 |
1 |
步骤3、公安部***通过消息发送装置将上述标识信息广播发送;
由于公安部***是本实施例中第一个部署实施的***,没有远程***,广播消息没有接收者,处理过程完成。
执行上述步骤后,***列表展现装置的展现效果如图4所示。
实施例2
实施例2是在实施例1的公安部***的基础上,在省公安厅部署***进行***标识信息同步的步骤如下:
步骤1、通过***注册装置填写本省(以广东省为例)***的标识信息,填写的***标识信息如下:
***ID |
上级***ID |
***名称 |
消息中间件账号 |
330000 |
000000 |
广东省公安厅 |
user330000 |
此处上级***ID即ParentID为“000000”,表示以公安部***代号作为广东省公安厅的上级***代号。
步骤2、将上述***标识信息保存在广东省公安厅***的***信息存储表中,此时广东省公安厅***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
330000 |
000000 |
广东省公安厅 |
user330000 |
1 |
步骤3、广东省公安厅***通过消息发送装置将上述***标识信息广播发送;
步骤4、公安部***(现有远程***)接收到广东省公安厅发送的广播消息后,从广播消息中提取广东省公安厅的***标识信息并将标识信息保存在***信息存储表,此时公安部***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
000000 |
|
公安部 |
user000000 |
1 |
330000 |
000000 |
广东省公安厅 |
user330000 |
0 |
步骤5、公安部***从***信息存储设备中读取本地***的标识信息作为响应发送给广东省公安厅***;
步骤6、广东省公安厅***接收到公安部***发送的响应消息后,从响应消息中提取公安部***的标识信息并将该标识信息保存在***信息存储表,此时广东省公安厅***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
330000 |
000000 |
广东省公安厅 |
user330000 |
1 |
000000 |
|
公安部 |
user000000 |
0 |
执行上述步骤后,各个***的***列表展现装置展现效果如图5所示。
在实施例2的基础上,在地市公安局(广州市公安局)部署***进行***标识信息同步的步骤如下:
步骤1、通过***注册装置填写本地***(广州市公安局)的标识信息,填写的***标识信息设置如下:
***ID |
上级***ID |
***名称 |
消息中间件账号 |
330100 |
330000 |
广州市公安局 |
user330100 |
步骤2、将***标识信息保存在广州市公安局的***信息存储表中,此时广州市公安局***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
330100 |
330000 |
广州市公安局 |
user330100 |
1 |
此处ParentID为“330000”,表示以广东省公安厅***代号作为广州市公安局的上级***代号。
步骤3、广州市公安局***通过消息发送装置将上述标识信息广播发送;
步骤4、公安部***接收到广州市公安局发送的广播消息后,从广播消息中提取广州市公安局的***标识信息并将标识信息保存在***信息存储表(本发明中由于采用广播发送,所以消息中间件相应频道所有用户都能够接收广播信息,即消息中间件相应频道的所有远程***均能够接收广播信息,不仅仅其上级***能够接收),此时公安部***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
000000 |
|
公安部 |
user000000 |
1 |
330000 |
000000 |
广东省公安厅 |
user330000 |
0 |
330100 |
330000 |
广州市公安局 |
user330100 |
0 |
步骤5、公安部***从***信息存储设备中读取本地***的标识信息作为响应发送给广州市公安局***;
步骤6、广州市公安局***接收到公安部发送的响应消息后,从响应消息中提取公安部的***标识信息并将标识信息保存在***信息存储表,此时广州市公安局***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
330100 |
330000 |
广州市公安局 |
user330100 |
1 |
000000 |
|
公安部 |
user000000 |
0 |
步骤7、广东省公安厅***接收到广州市公安局发送的广播消息后,从广播消息中提取广州市公安局的***标识信息并将标识信息保存在***信息存储表,此时广东省公安厅***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
330000 |
000000 |
广东省公安厅 |
user330000 |
1 |
000000 |
|
公安部 |
user000000 |
0 |
330100 |
330000 |
广州市公安局 |
user330100 |
0 |
步骤8、广东省公安厅***从***信息存储表中读取本地***的标识信息作为响应发送给广州市公安局***;
步骤9、广州市公安局***接收到广东省公安厅发送的响应消息后,从响应消息中提取广东省公安厅的***标识信息并将标识信息保存在***信息存储表,此时广州市公安局***信息存储表的内容如下;
ID |
ParentID |
Name |
Usercode |
IsLocal |
330100 |
330000 |
广州市公安局 |
user330100 |
1 |
000000 |
|
公安部 |
user000000 |
0 |
330000 |
000000 |
广东省公安厅 |
user330000 |
0 |
执行上述步骤后,各个***的***列表展现装置展现效果如图6所示。
可以执行上述的操作过程继续添加各省公安厅、各地市公安局的***,图7是添加了山东省公安厅和青岛市公安局的***列表展现装置展现效果。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。