一种分布式、多层级应用系统标识信息的同步方法及系统
技术领域
本发明涉及分布式应用系统领域,具体涉及一种分布式、多层级应用系统标识信息的同步方法及系统。
背景技术
分布式应用系统是指支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。分布式系统中的每个系统高度自治,分布在物理上分散的各个地点,拥有独立的软硬件环境,能够独立运行;同时各系统之间通过网络实现互联互通,进行数据的交换和共享;因此,分布式系统中每个系统既独立工作,又相互协同。
分布式系统中多个系统通常是分阶段建立和实施,从一个系统开始建立,逐步增长为由跨地域、跨部门多个系统组成的大型系统。在新系统上线时,新系统需要将自身的标识信息如地址、名称等通知现有远程系统,同时也要获取现有远程系统的标识信息,才能实现系统之间的协同工作。
现有技术中,在新系统上线时,通常需要手工在新系统中加入现有远程系统的标识信息,现有远程系统也需要手工加入新系统的标识信息,如果现有远程系统比较多,手工加入工作量大,效率低,而且容易出错。另外,现有技术中系统之间是并列的,不存在层级关系,而实际使用中,分布式系统往往存在层级关系,如在公安行业的应用中存在公安部、省公安厅、地市公安局三个层次,在系统之间协同工作如发送公文选择接收系统时,需要将所有系统列表数据展现给用户,供用户选择,如果系统比较多,并列关系展现比较乱,不利用户查找和选择。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种分布式、多层级应用系统标识信息的同步方法及系统,解决现有技术中存在的手工添加系统标识信息工作量大、效率低、容易出错以及系统之间不存在层级关系,不利于查找和选择的问题。
为实现上述目的,本发明采用的技术方案为:
一种分布式、多层级应用系统标识信息的同步方法,包括以下步骤:
步骤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是添加了山东省公安厅和青岛市公安局的系统列表展现装置展现效果。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。