一种支持跨域环境下的服务联邦构建方法

文档序号:28551914发布日期:2022-01-19 15:42阅读:118来源:国知局
一种支持跨域环境下的服务联邦构建方法

1.本发明涉及计算机技术领域,具体涉及一种支持跨域环境下的服务联邦构建方法。


背景技术:

2.在对安全性需求比较高的环境下,往往会进行网络隔离,比如局域网内部可以互相访问,而对外通过一个网关的公网地址进行访问,网关的公网例如互联网、或者异地组网的系统外网地址,其中,网关通常是ip固定,port(端口)可变,或者在使用时仅仅只开放网关的一个port,所有访问均通过网关固定的ip和port。此外,对于一些安全性要求更高的系统来说,异地之间也会采用专线传输,即点对点的传输方式,并且点对点传输的跨域网关上通常也只开放了单个ip和固定port。
3.在当前软件系统服务化的大背景下,服务治理,例如服务注册、寻址等,是服务访问的前提和关键。对于一个兼顾安全和服务治理的复杂软件系统,往往需要将不同域的相同服务组合到一起构成联邦,或者将某个域特有的服务发布到其他域供其他域进行访问,并且对于采用服务治理的软件系统,一个域内需要部署一套单独的服务目录,不同域之间能够相互访问,其中,域表示一个内部可互相访问而和外部交互必须通过网关的局域网,不同域之间的相互访问称为跨域。
4.当前互联网上的一些技术,例如全局流量管理gtm,可以实现服务线路实时切换、全球负载均衡,但是基本不设计跨域技术,不符合一个兼顾安全和服务治理的复杂软件系统的使用需求。而对于一些缺乏服务治理手段的软件系统来说,设置网关里内网和外网的映射也可以满足一些跨域需求,但是对于存在服务注册、寻址、实例增加/减少的情况来说,直接手工设置映射的方式并不适用。
5.因此,有必要提供一种支持跨域环境下的服务联邦构建方法,以满足复杂软件系统的跨域需求和服务治理需求。


技术实现要素:

6.为解决上述现有技术中存在的部分或全部技术问题,本发明提供一种支持跨域环境下的服务联邦构建方法。
7.本发明的技术方案如下:
8.提供了一种支持跨域环境下的服务联邦构建方法,所述方法包括:
9.在各个域部署服务目录和服务联邦代理模块,在一个域中部署服务联邦模块,其中,域表示一个内部能够互相访问且外部交互通过网关的局域网;
10.配置网关映射以建立各个域的服务联邦代理模块和服务联邦模块的关联;
11.根据预设服务的联邦组建需求进行服务联邦规划;
12.利用服务联邦模块发送组建服务联邦通知至参与预设服务联邦组建的域的服务联邦代理模块;
13.在服务联邦代理模块接收通知后,利用服务联邦代理模块访问同一个域内的服务目录,若能够从服务目录获取预设服务的域内实例地址,利用服务联邦代理模块通知所在域的网关建立预设服务的域内实例地址与网关公网地址映射;
14.利用服务联邦代理模块将预设服务的域内实例地址与网关公网地址映射中的公网地址及所在域的域标识发送至服务联邦模块;
15.利用服务联邦模块对接收到的所有公网地址及域标识进行本地存储,并将所有公网地址及域标识发送至参与预设服务联邦组建的域的服务联邦代理模块;
16.利用服务联邦代理模块接收服务联邦模块发送的所有公网地址及域标识,判断公网地址是否为本域地址,若是,不对公网地址进行处理,若不是,建立预设网关内部地址与公网地址的映射,并将预设网关内部地址注册到本域的服务目录上,其中,本域表示当前服务联邦代理模块所处的域。
17.在一些可能的实现方式中,所述方法还包括:
18.对服务目录的地址访问规则进行配置,当访问服务目录获取服务地址时,服务目录以预先配置的地址访问规则返回服务地址。
19.在一些可能的实现方式中,所述地址访问规则包括:优先返回本域地址或随机返回地址。
20.在一些可能的实现方式中,所述地址访问规则包括:返回延时最小的服务实例地址。
21.在一些可能的实现方式中,所述方法还包括:
22.在服务联邦代理模块上存储预设服务的域内实例地址与网关公网地址映射;
23.利用服务联邦代理模块每间隔一个预设时间从本域的服务目录上获取预设服务的实例地址,并与存储的地址映射进行对比,若获取的实例地址相比于地址映射中的域内实例地址增加,则在已组建的预设服务的服务联邦中添加新增的服务实例地址,若获取的实例地址相比于地址映射中的域内实例地址减少,则利用服务联邦代理模块发送地址减少通知至服务联邦模块,利用服务联邦模块发送地址变更通知至对应域的服务联邦代理模块,利用对应域的服务联邦代理模块取消网关上的对应地址映射、以及注销服务目录上的对应网关内部地址,其中,对应域表示组建服务联邦中除当前服务联邦代理模块所在域外的其他域。
24.在一些可能的实现方式中,所述方法还包括:
25.在服务联邦代理模块上存储预设服务的域内实例地址与网关公网地址映射;
26.建立服务联邦代理模块与服务目录之间的长轮询,若服务联邦代理模块接收到的服务目录返回的长轮询结果中包括预设服务的实例地址增加内容,则在已组建的服务联邦中添加新增的服务实例地址,若服务联邦代理模块接收到的服务目录返回的长轮询结果中包括预设服务的实例地址减少内容,则利用服务联邦代理模块发送地址减少通知至服务联邦模块,利用服务联邦模块发送地址变更通知至对应域的服务联邦代理模块,利用对应域的服务联邦代理模块取消网关上的对应地址映射、以及注销服务目录上的对应网关内部地址,其中,对应域表示组建服务联邦中除当前服务联邦代理模块所在域外的其他域。
27.在一些可能的实现方式中,所述方法还包括:
28.利用服务联邦模块通知部分域的服务联邦代理模块建立网关公对公映射,其中,
部分域表示预先确定的两个域,且两个域中至少一个域部署有预设服务,其中,网关公对公映射表示两个域的网关公网地址之间的映射;
29.利用服务联邦代理模块将建立的网关公对公映射中的所在域的网关公网地址及域标识发送至服务联邦模块;
30.利用服务联邦模块将接收到的网关公网地址及域标识发送至预先确定的需要建立虚拟服务联邦的对应域的服务联邦代理模块;
31.利用服务联邦代理模块接收服务联邦模块发送的网关公网地址及域标识,在本域的网关上建立预设网关内部地址与接收到的网关公网地址的映射,并将预设网关内部地址注册到本域的服务目录上。
32.本发明技术方案的主要优点如下:
33.本发明的支持跨域环境下的服务联邦构建方法能够构建不同服务的服务联邦,能够将不同域的服务组合到一起构成联邦,以及将某个域特有的服务发布到其他域供其他域进行访问,满足复杂软件系统的跨域需求和服务治理需求。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为本发明一实施例的支持跨域环境下的服务联邦构建方法的流程图;
36.图2为利用本发明一实施例的支持跨域环境下的服务联邦构建方法所构建的一种服务联邦示意图;
37.图3为利用本发明一实施例的支持跨域环境下的服务联邦构建方法所构建的另一种服务联邦示意图。
具体实施方式
38.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.以下结合附图,详细说明本发明一实施例提供的技术方案。
40.参见图1,本发明一实施例提供了一种支持跨域环境下的服务联邦构建方法,该方法包括以下步骤:
41.步骤s11,在各个域部署服务目录和服务联邦代理模块,在一个域中部署服务联邦模块,其中,域表示一个内部能够互相访问且外部交互通过网关的局域网;
42.步骤s12,配置网关映射以建立各个域的服务联邦代理模块和服务联邦模块的关联;
43.步骤s13,根据预设服务的联邦组建需求进行服务联邦规划;
44.步骤s14,利用服务联邦模块发送组建服务联邦通知至参与预设服务联邦组建的
域的服务联邦代理模块;
45.步骤s15,在服务联邦代理模块接收通知后,利用服务联邦代理模块访问同一个域内的服务目录,若能够从服务目录获取预设服务的域内实例地址,利用服务联邦代理模块通知所在域的网关建立预设服务的域内实例地址与网关公网地址映射;
46.步骤s16,利用服务联邦代理模块将预设服务的域内实例地址与网关公网地址映射中的公网地址及所在域的域标识发送至服务联邦模块;
47.步骤s17,利用服务联邦模块对接收到的所有公网地址及域标识进行本地存储,并将所有公网地址及域标识发送至参与预设服务联邦组建的域的服务联邦代理模块;
48.步骤s18,利用服务联邦代理模块接收服务联邦模块发送的所有公网地址及域标识,判断公网地址是否为本域地址,若是,不对公网地址进行处理,若不是,建立预设网关内部地址与公网地址的映射,并将预设网关内部地址注册到本域的服务目录上,其中,本域表示当前服务联邦代理模块所处的域。
49.本发明一实施例提供的支持跨域环境下的服务联邦构建方法利用上述步骤能够构建不同服务的服务联邦,当某个域中的其他应用或服务要访问某个特定服务时,先到所在域的服务目录上进行寻址,由服务目录返回相应的服务实例地址或者相应的网关内部地址,通过获取的服务实例地址或者能够映射到服务实例地址的网关内部地址能够对特定服务发起访问,能够将不同域的服务组合到一起构成联邦,以及将某个域特有的服务发布到其他域供其他域进行访问,满足复杂软件系统的跨域需求和服务治理需求。
50.附图2为利用本发明一实施例的支持跨域环境下的服务联邦构建方法所构建的一种服务联邦示意图,以附图2为例,假设需要在域d1、域d2和域d3三个域上进行服务a的联邦组建,其中,域d1和域d3中均有部署服务a,域d2中未部署服务a。
51.以域d1为例,步骤s15中,在服务联邦代理模块接收组建服务联邦通知后,服务联邦代理模块能够从所在域的服务目录中查询到服务a的域内实例地址为ip11:192.168.1.10:9001,此时,服务联邦代理模块通知所在域的网关自动建立服务a的域内实例地址与网关公网地址映射,从ip01:10.10.1.11:9999/patha映射到ip11:192.168.1.10:9001;其中,patha为服务联邦代理模块自动生成并发送给网关;其中,对于采用固定ip,不固定端口的方式,也可以用不同的端口来映射不同的服务。
52.以域d1为例,步骤s16中,由服务联邦代理模块将服务a的域内实例地址与网关公网地址映射ip01-》ip11中的网关公网地址ip01及所在域的域标识d1发送至服务联邦模块;其中,附图2中,—》ip01表示访问ip01,网关将该访问映射到ip11,图中其他地址映射关系参照的地址—》ip01的映射关系,例如—》ip32表示访问ip32,网关将该访问映射到ip01。
53.以域d1为例,步骤s17中,服务联邦代理模块接收到服务联邦模块发送到的域标识d1和d3及对应的公网地址ip01和ip03后,检测到ip01为本域对外暴露地址,则不对公网地址ip01进行处理,服务联邦代理模块只在本域的网关上建立网关内部地址ip12和公网地址ip03的映射,并将网关内部地址ip12注册到本域的服务目录上。
54.进一步地,本发明一实施例中,该方法还可以包括:
55.步骤s19,对服务目录的地址访问规则进行配置,当访问服务目录获取服务地址时,服务目录以预先配置的地址访问规则返回服务地址。
56.由于当某个域中的其他应用或服务要访问某个特定服务时,先到所在域的服务目
录上进行寻址,由服务目录返回相应的服务实例地址或者相应的网关内部地址,而服务目录可以包含有服务对应的服务实例地址和服务对应的网关内部地址,为了便于进行服务访问,可以预先对服务目录的地址访问规则进行配置,地址访问规则例如可以包括:优先返回本域地址或随机返回地址。
57.并且,也可以参考全局流量管理gtm技术,利用服务联邦代理模块不定时对特定服务发起访问并记录访问延时,在此基础上,可以将服务目录的地址访问规则配置为返回延时最小的服务实例地址。
58.进一步地,在软件系统中,服务实例会由于扩缩容或者异常等导致增加或者减少,为了实现在服务实例增加或者减小后,所组建的服务联邦与服务实例变更后的情况保持相互对应,作为一种示例,本发明一实施例中,该方法还可以包括:
59.步骤s21,在服务联邦代理模块上存储预设服务的域内实例地址与网关公网地址映射;
60.步骤s22,利用服务联邦代理模块每间隔一个预设时间从本域的服务目录上获取预设服务的实例地址,并与存储的地址映射进行对比,若获取的实例地址相比于地址映射中的域内实例地址增加,则在已组建的预设服务的服务联邦中添加新增的服务实例地址,若获取的实例地址相比于地址映射中的域内实例地址减少,则利用服务联邦代理模块发送地址减少通知至服务联邦模块,利用服务联邦模块发送地址变更通知至对应域的服务联邦代理模块,利用对应域的服务联邦代理模块取消网关上的对应地址映射、以及注销服务目录上的对应网关内部地址,其中,对应域表示组建服务联邦中除当前服务联邦代理模块所在域外的其他域。
61.由于,在步骤s12中已经建立各个域的服务联邦代理模块和服务联邦模块的关联,为此,服务联邦模块与各个域的服务联邦代理模块能够相互访问,实现信息收发。
62.作为另一种示例,若服务目录自身具备服务实例变化探测能力,此时为了实现在服务实例增加或者减小后,所组建的服务联邦与服务实例变更后的情况保持相互对应,本发明一实施例中,该方法也可以包括:
63.步骤s31,在服务联邦代理模块上存储预设服务的域内实例地址与网关公网地址映射;
64.步骤s32,建立服务联邦代理模块与服务目录之间的长轮询,若服务联邦代理模块接收到的服务目录返回的长轮询结果中包括预设服务的实例地址增加内容,则在已组建的服务联邦中添加新增的服务实例地址,若服务联邦代理模块接收到的服务目录返回的长轮询结果中包括预设服务的实例地址减少内容,则利用服务联邦代理模块发送地址减少通知至服务联邦模块,利用服务联邦模块发送地址变更通知至对应域的服务联邦代理模块,利用对应域的服务联邦代理模块取消网关上的对应地址映射、以及注销服务目录上的对应网关内部地址,其中,对应域表示组建服务联邦中除当前服务联邦代理模块所在域外的其他域。
65.其中,服务联邦代理模块与服务目录之间的长轮询表示服务联邦代理模块访问服务目录,若预设服务的实例地址无变化,则服务目录经过设定时间后返回正常无变化结果给服务联邦代理模块,若预设服务的实例地址有变化,则服务目录立即返回相关变化结果给服务联邦代理模块;无论服务联邦代理模块接收到的结果如何,在接收到服务目录返回
的结果后,服务联邦代理模块立即向服务目录发起下一次长轮询访问。
66.通过在服务目录自身具备服务实例变化探测能力时,建立服务联邦代理模块与服务目录之间的长轮询,能够避免频繁建立访问连接,及时探测到相关结果,以及及时感知网络失联,例如网络断了,服务联邦代理模块一直接收不到服务目录返回的结果,此时可以判定为网络故障。
67.其中,在步骤s22和步骤s32中,在已组建的预设服务的服务联邦中添加新增的服务实例地址均可以按照步骤s11-步骤s18所示的服务联邦的构建方法来实现。
68.通常情况下,不同域之间通过外网可以自由联通,但是对于一些比较关键的应用领域,不同域之间还存在通过专线联通的情况,若专线出现问题,出现问题的专线所联通的两个域间无法实现交互,会造成服务联邦不可用的情况,为解决该问题,本发明一实施例中,该方法还可以包括:
69.步骤s41,利用服务联邦模块通知部分域的服务联邦代理模块建立网关公对公映射,其中,部分域表示预先确定的两个域,且两个域中至少一个域部署有预设服务,其中,网关公对公映射表示两个域的网关公网地址之间的映射;
70.步骤s42,利用服务联邦代理模块将建立的网关公对公映射中的所在域的网关公网地址及域标识发送至服务联邦模块;
71.步骤s43,利用服务联邦模块将接收到的网关公网地址及域标识发送至预先确定的需要建立虚拟服务联邦的对应域的服务联邦代理模块;
72.步骤s44,利用服务联邦代理模块接收服务联邦模块发送的网关公网地址及域标识,在本域的网关上建立预设网关内部地址与接收到的网关公网地址的映射,并将预设网关内部地址注册到本域的服务目录上。
73.本发明一实施例提供的支持跨域环境下的服务联邦构建方法在利用步骤s11-s18构建预设服务的服务联邦的基础上,再利用步骤s41-s44建立预设服务对应的虚拟服务联邦,在正常情况下,当某个域中的其他应用或服务要访问某个特定服务时,先到所在域的服务目录上进行寻址,由服务目录返回相应的服务实例地址或者相应的网关内部地址,通过获取的服务实例地址或者能够映射到服务实例地址的网关内部地址能够对特定服务发起访问;当某两个域之间的专线出现异常而不能进行直接访问时,通过建立的虚拟服务联邦,某两个域中一个域能够通过其他域实现对某两个域中另一个域进行访问,能够进一步提高服务联邦的稳定性。
74.以下通过具体示例对上述的步骤s41-步骤s44进行进一步说明。
75.附图3为利用本发明一实施例的支持跨域环境下的服务联邦构建方法所构建的另一种服务联邦示意图,以附图3为例,假设域d1、域d2和域d3三个域通过专线两两联通,域d2和域d3之间的专线连接不稳定,可能存在断线的情况,需要在域d1、域d2和域d3三个域上进行服务b的联邦组建,仅域d2有部署服务b,域d1和域d3中未部署服务b。
76.基于上述假设,针对服务b,需要建立虚拟服务联邦的对应域为域d3,并且在建立虚拟服务联邦之前,先利用步骤s11-步骤s18组建服务b的服务联邦,其中,pathb为服务b的服务联邦构建过程中服务联邦代理模块自动生成并发送给网关。
77.基于上述假设,在步骤s41中,服务联邦模块通知域d1的服务联邦代理模块建立网关公对公映射ip04—》ip02,其中ip04为域d1的网关公网地址,ip02为域d2的网关公网地
址;
78.在步骤s42中,域d1的服务联邦代理模块将网关公网地址ip04和域标识d1发送至服务联邦模块;
79.在步骤s43中,服务联邦模块将接收到的网关公网地址ip04和域标识d1发送至域d3的服务联邦代理模块;
80.在步骤s44中,域d3的服务联邦代理模块接收服务联邦模块发送的网关公网地址ip04和域标识d1,在本域的网关上建立网关内部地址ip34与接收到的网关公网地址ip04的映射ip34—》ip04,并将网关内部地址ip34注册到本域的服务目录上。
81.基于上述针对域d3构建的虚拟服务联邦,在正常情况下,域d3的应用或服务访问服务b通过地址ip33进行访问,若域d3和域d2之间的专线出现异常情况,此时可以通过地址ip34进行访问,访问时,域d3的网关将地址ip34映射到域d1的ip04上,域d1的网关又将地址ip04映射到域d2的地址ip02上,从而实现域d3对服务b的访问,在域d3看来其访问的是域d1上的服务b,此时即构成了服务b的虚拟服务联邦。
82.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,本文中“前”、“后”、“左”、“右”、“上”、“下”均以附图中表示的放置状态为参照。
83.最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1