服务寻址访问方法、装置、系统、设备及介质
技术领域
本公开一般涉及互联网技术领域,尤其涉及一种服务寻址访问方法、装置、系统、设备及介质。
背景技术
零信任安全架构对业务的防护,主要通过对来自企业内外部的所有访问进行信任评估和动态访问控制,对所有访问企业资源的请求,进行认证、授权和加密,其中认证包括对用户和使用设备的全面验证,且对每一次访问请求进行不限于终端环境、用户操作风险、网络风险、外部威胁等因素的实时风险评估,根据评估结果进行动态访问控制。
在接收到来自企业内外部的所有访问时,需要对分布式存储在多台服务器上的企业资源进行访问,而部署的服务器多为无域名服务器,在访问过程中服务寻址只能通过互联网协议地址(英文全称Internet Protocol Address,英文缩写IP Address)进行轮询查找来实现业务的网络访问。但这种寻址方式网络延迟高,性能差。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种服务寻址访问方法、装置、系统、设备及介质,来降低在没有部署域名服务器的企业网络中网络访问延迟时间,提高网络寻址访问的性能。
一方面,本申请实施例提供了一种网络寻址访问方法,该方法包括:
响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,该配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息;
根据IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,该寻址范围包括所述IP出口地址确定的待访问业务对应的连接地址;
针对连接地址执行基于待访问业务的网络访问。
一方面,本申请实施例提供了一种服务寻址访问装置,该装置包括:
业务订阅模块,用于响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,该配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息;根据IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,该寻址范围包括IP出口地址确定的待访问业务对应的连接地址;
网络访问模块,用于针对该连接地址执行基于待访问业务的网络访问。
一方面,本申请实施例提供了一种服务寻址访问系统,所述系统包括至少一个企业客户端和至少一个业务服务器,每个业务服务器上按照互联网协议IP地址部署多个待访问业务:
企业客户端,用于响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息;根据IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,寻址范围包括IP出口地址确定的待访问业务对应的连接地址;针对连接地址执行基于待访问业务的网络访问;
业务服务器,用于向访问客户端发送网络访问结果。
一方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时实现如本申请实施例描述的方法。
一方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本申请实施例描述的方法。
本申请提供了一种服务寻址访问方法、装置、系统、设备及介质,该方法响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息;根据IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,寻址范围包括IP出口地址确定的待访问业务对应的连接地址;针对连接地址执行网络访问。本申请实施例在建立本地缓存之后,按照本地缓存中存储的与待访问业务相关的连接地址,进行网络访问,其有效地缩短了寻址访问所需的网络延迟时间,减少了网络访问的重试次数。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例提供的服务寻址访问方法应用场景示意图;
图2示出了本申请实施例提供的服务寻址访问方法的示例性流程图;
图3示出了本申请实施例提供的又一服务寻址访问方法的示例性流程图;
图4示出了本申请实施例提供的又一服务寻址访问方法的示例性流程图;
图5示出了本申请实施例提供的业务订阅服务器的关系示意图;
图6示出了本申请实施例提供的在移动办公网络中应用服务寻址访问方法的示意图;
图7示出了本申请实施例提供的服务寻址访问方法的交互流程图;
图8示出了本申请实施例提供的又一服务寻址访问方法的交互流程图;
图9示出了本申请实施例提供的服务寻址访问装置的结构示意图;
图10示出了本申请实施例提供服务寻址访问系统的结构示意图;
图11示出了本申请实施例提供的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,图1示出了本申请实施例提供服务寻址访问方法的应用场景示意图。
在如图1所示的应用场景中,包括一个或多个终端设备101和部署在不同行政区域的一个或多个服务器103,以及用于连接终端设备101和服务器103的公用网络102。
终端设备101上预先安装有用于执行业务访问的应用程序,包括但不限于iOA客户端,iOA客户端用于验证使用终端设备的用户的可信身份,即对终端设备是否可信,应用是否可信进行验证,将未知的进程向服务器申请进程送检。访问的业务包括但不限于登录业务、票据申请业务、心跳业务等。业务访问应用程序也可以理解为客户端中的各个功能模块。终端设备101可以包括但不限于智能手机、平板电脑、智能眼镜等移动设备,台式电脑等电子设备。
公用网络102,用于支持终端设备在任何网络情况下访问企业资源。其可以包括但不限于访问代理,智能网关等设备。访问代理可以是虚拟网络设备,或者称为虚拟网卡。例如TUN/TAP虚拟网卡。通过iOA客户端鉴权后,负责将访问业务请求转发给智能网关;如果没有通过iOA客户端鉴权,则通过与访问代理直连的通信链路访问业务服务器或者中断连接。智能网关是部署在访问业务程序与企业资源之间的入口,其用于对每一个访问企业资源的网络访问请求进行验证、授权和转发。可选地,上述的公用网络可以包括无线网络或有线网络,通过无线网络或者有线网络使用标准通信技术和/或协议。网络通常为因特网,也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(MetropolitanArea Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
服务器103,用于对用户身份、设备硬件信息和设备安全状态、应用进程等及进行验证。服务器103上可以配置策略控制引擎、身份验证模块、设备可信模块、应用检测模块等。其中身份验证模块用于对用户身份进行验证,设备可信模块用于验证设备硬件信息和设备安全状态,应用检测模块,用于检测应用进程是否安全。对于应用进程安全的检测包括但不限于检测是否有漏洞、是否有病毒木马等。服务器103还可以定期地向威胁情报云查服务安置或者tav定期发起文件送检,在识别到恶意应用进程时,通知iOA客户端执行异步阻断操作。例如,在服务器103上部署iOA服务端,可以通过单一部署满足中型企事业单位或政府的业务部署需求,或者通过分布式级联部署方式满足大型企业集团或者多级垂直政府电子政务系统等。在服务器103上还可以部署多级业务(即业务节点)。例如,核心业务和基础业务部署在业务总控服务端(也可以称为总控服务节点),各个不同的业务部署在不同的业务节点上。业务总控节点可以定期地将各个业务节点之间的配置信息和数据进行同步。
服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
在上述多个终端和服务器可以搭建成云安全平台,融合并行处理、网格计算、未知病毒行为判断等技术和概念。通过网状的大量客户端对网络中的软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送给服务端进行自动分析和处理,然后将与分析结果对应的解决方案发送给客户端。
在客户端访问云服务器中分布式部署的多个业务时,通过对云计算系统安全、用户接入认证、信息传输安全等进行维护管理,实现对云平台上业务的安全访问。
在上述应用场景中,假设是针对中小型业务部署的企业办公网时,未部署域名服务器,可以将多个业务分布式部署在多个服务器103上,例如业务1,业务2,业务3,业务4,业务5分别按照其对应的互联网协议地址部署在服务器A,服务器B,服务器C上,其中服务器A上部署业务1,业务2,业务4,服务器B上业务3,业务4,服务器C上部署业务2,业务3,业务5。每个业务对应一个IP地址。
假设企业客户端接收到针对业务5的业务访问请求时,相关技术基于服务器的IP地址轮询方式来实现网络服务的寻址和访问。即其可能先访问服务器A,在服务器A中遍历所有业务之后,在访问服务器B,在服务器B中遍历所有业务之后,再访问服务器C,在服务器C中遍历所有业务,从而最终访问成功,可见基于服务器的IP地址轮询来访问业务5所花费的网络访问时延很长。由于不能通过域名解析识别到服务器,只能通过IP地址来寻找部署的业务,这导致网络时延高,重试访问的次数过多等问题。
基于上述问题,本申请提出了一种服务寻址访问方法,通过获取本地缓存中的服务器连接地址列表作为寻址范围,并在寻址范围执行网络访问,可以有效地降低网络时延和重试访问的次数,提高网络服务寻址的效率。
下面结合图2对本申请实施例提供的服务寻址访问方法进行描述,请参考图2,图2示出了本申请实施例提供的服务寻址访问方法的示例性流程图。该方法可以由服务寻址访问装置来实施,服务寻址访问装置被设置在包括但不限于设置在企业内网的终端设备中,例如企业客户端,如iOA客户端。
如图2所示,该方法包括:
步骤201,响应接收到的针对待访问业务的请求,获取所述企业客户端的互联网协议IP出口地址和待访问业务的配置信息,该配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息。
步骤202,根据该IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,该寻址范围包括IP出口地址确定的待访问业务对应的连接地址;
步骤203,针对连接地址执行网络访问。
在上述步骤中,不同网络环境中的企业客户端,接收到用户或其他第三方设备输入的业务请求。待访问业务请求是指企业客户端接收到用户或者其他第三方设备输入的针对待访问业务的操作请求。其包括但不限于登录业务请求,申请票据业务请求等。例如,点击客户端的登录业务模块,即客户端接收到登录业务的请求。
企业客户端响应该待访问业务请求,向与企业客户端建立初始连接的总控服务端请求企业客户端的互联网协议(英文全称Internet Protocol,英文缩写IP)出口地址。
在获取IP出口地址之后,再获取与待访问业务的配置信息,该配置信息可以是指预先配置的网络访问关系和业务部署信息。配置信息也可以称为业务服务配置。配置信息包括但不限于企业客户端的各IP段对应访问的业务服务器的IP地址列表或者域名列表,以及业务被部署在各个服务器中的信息。
例如,在为某小型企业配置业务时,每个业务功能对应的业务被分布式部署在多个服务器上;或者,某中小型企业有自己已经搭建的部分域名服务器,则可以将每个业务功能对应的业务分布式部署在其他服务器的同时,还能与已有的域名服务器兼容使用。
根据IP出口地址和配置信息在企业客户端对应的本地缓存中查找与待访问业务相关的数据结构,也可以称为本地数据结构。该数据结构用于存储与待访问业务相关的寻址信息和属性信息。例如,数据结构可以包括一个或多个的缓存项,例如二个,三个或三个以上的缓存项。每个缓存项用于存储一个与待访问业务相关的信息。例如,其中一个缓存项用于存储服务器连接地址列表。该服务器连接地址列表可以包括一个服务器连接地址或多个服务器连接地址。当包含多个服务器连接地址时,相邻的服务器连接地址之间可以通过分隔符号间隔,分隔符号包括但不限于分号。
服务器连接地址列表还可以根据访问类型进行划分,包括但不限于有效服务器连接地址列表、优先服务器连接地址列表、历史服务器连接地址列表。
其中,有效服务器连接地址列表包括与待访问业务建立订阅关系的后台服务所部署的服务器的连接地址。例如,针对登录业务可以访问服务器A,B,C,预先建立登录业务与服务器A,B,C之间的订阅关系,在有效服务器连接地址列表中包括按照预先设置的访问顺序对应的服务器A,服务器C,服务器B。这里的访问顺序可以根据访问结果进行动态调整,从而进一步缩短网络访问的延时。
其中,历史服务器连接地址列表包括与待访问业务建立订阅关系的后台服务中已经访问成功的服务器的连接地址。例如,针对登录业务可以访问服务器A,B,C,在针对有效服务器连接地址列表所包含的多个服务器逐个进行访问之后,假设访问成功的服务器A,C,访问失败的服务器B,则将访问成功的服务器A和C添加到历史服务器连接地址列表中。当按照历史服务器连接地址列表进行访问时,可以在整体寻址范围内进一步减少网络访问重试次数。
其中,优先服务器连接地址列表包括与待访问业务建立订阅关系的后台服务中优先访问的服务器的连接地址。例如,针对登录业务可以访问服务器A,B,C,在针对有效服务器连接地址列表所包含的多个服务器逐个进行访问之后,假设访问成功的服务器A,C,访问失败的服务器B,则统计访问成功的服务器A所耗费的网络访问延迟时间tA,访问成功的服务器C所耗费的网络访问延迟时间tC。根据网络访问延迟时间tA和tC进行排序后,将排序靠前的服务器的连接地址添加到优先服务器连接地址列表中。当按照优先服务器连接地址列表进行访问时,可以在整体寻址范围内进一步缩减网络访问延时。
下面以本地缓存中存储的数据结构采用map结构存储为例,map结构是一种字典数据结构,即用来存储不重复key的哈希结构。例如,在map结构中,
Key定义为:业务服务器唯一标识+业务服务器名称;其可以采用以下格式:"业务服务器唯一标识:业务服务器名称";
Value定义为:已经申请订阅业务服务器的iOA客户端的业务模块的集合,该集合中包括多个项目的信息,每个项目的信息如下所示:
客户端业务ID //STRING类型;
客户端业务名称 //STRING类型,中文名;
客户端业务访问策略 //INT类型,1表示默认策略;2表示优先连接历史服务器连接地址列表策略;3表示优先连接优先服务器连接地址列表策略;
优先服务器连接地址列表 //定义可优先连接的业务服务器地址列表,格式为“业务服务器IP或域名:Port”,多个连接地址以分号分割;
有效服务器连接地址列表 //服务所部署的业务服务器连接地址列表,格式为“业务服务器IP或域名:Port”,多个连接地址以分号分割;
历史服务器连接地址列表 //已经访问成功通的业务服务器连接地址列表,格式为“业务服务器IP或域名:Port”,以分号分割;
startTime //加入缓存内容的开始时间,类型为Unixepoch时间,表示从标准世界时1970年1月1日0时0分0秒起到现在的总秒数;
RefreshTime; //更新缓存内容的时间,类型为Unix epoch时间,表示从标准世界时1970年1月1日0时0分0秒起到现在的总秒数。
查找到本地缓存中的服务器连接地址列表之后,可以对服务器连接地址列表中的连接地址执行网络访问。网络访问是指根据访问参数和待访问的连接地址生成网络访问请求,并向连接地址对应的服务器发送网络访问请求,以及从连接地址对应的服务器接收访问结果。
本申请实施例提供的上述网络服务寻址访问方法,通过查找与待访问业务相关的本地缓存,得到寻址范围,并在寻址范围内服务器连接地址列表来实现对网络服务寻址,并在得到服务器连接地址列表之后对服务器连接地址列表中所包含的连接地址进行访问,从而减少网络访问的时延,降低重试次数。
在上述实施例基础上,当为某企业全新部署零信任网络时,可以将该企业的业务分布式部署在多个服务器中。如图3所示,图3示出了本申请实施例提供的又一服务寻址访问方法的示例性流程图。该方法可以由服务寻址访问装置来实施,服务寻址访问装置可以设置在包括但不限于终端设备,例如企业客户端。如图3所示,该方法包括:
步骤301,响应接收到的针对待访问业务的请求,获取获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息;
步骤302,根据该IP出口地址查找配置信息,得到该IP出口地址对应访问的服务器的IP地址,或者得到IP出口地址对应访问的服务器的IP地址和域名服务器的域名地址。
步骤303,根据IP地址或域名地址查找本地缓存,得到待访问业务对应的连接地址,该待访问业务对应的连接地址作为寻址范围
步骤304,针对连接地址执行网络访问。
在上述步骤中,企业客户端向总控服务端发送查询出口互联网协议地址查询请求,该IP出口地址查询请求用于请求查询自身的IP出口地址;企业客户端接收总控服务端返回的IP出口地址。该IP出口地址是总控服务端对IP出口地址查询请求的进行解析得到的。例如IP出口地址查询请求以报文形式发送,则总控服务端对IP出口地址查询请求的报文的报文头部进行解析,可以得到企业客户端的IP出口地址。
其中向总控服务端发送IP出口地址查询请求,可以通过企业客户端定期地向总控服务端发送IP出口地址查询请求;在总控服务端监听到IP路由表发生变化时,企业客户端向总控服务端发送IP出口地址查询请求,或者前两种方式的组合来发送IP出口地址查询请求。
总控服务端是被配置用于向企业客户端提供与企业客户端的IP出口地址所在的IP地址段对应的服务器IP地址列表或IP地址列表和已有的域名服务器列表,还可以向企业客户端提供与企业客户端请求访问的业务在各个服务器上的配置信息。当业务与服务器的部署关系发生变化时,总控服务器可向已发送过配置信息的企业客户端发送最新部署信息,对于企业客户端,地址都是通过总控服务端获取的,从而提高企业客户端访问安全性。
例如,企业客户端可以按照预先设定的周期向总控服务端拉取其配置信息。或者,当总控服务端识别到配置信息发生变化时,则总控服务端主动推送变化后的配置信息至企业客户端,以使得企业客户端获取最新的配置信息。通过对上述配置信息的更新处理,可以使得企业客户端获取得到的配置信息与总控服务端的配置信息同步,从而减少企业客户端重试访问的次数。
在企业客户端按照设定周期,向总控服务端发送IP出口地址查询请求,总控服务端接收到IP出口地址查询请求后,总控服务端启动所包含的IP地址查询服务,对IP出口地址查询请求进行解析,得到企业客户端的IP出口地址。例如,对HTTP Header格式的IP出口地址查询请求报文进行解析,可以仅对HTTP的报文头部进行解析得到企业客户端的IP出口地址。总控服务端将IP出口地址作为IP出口地址查询响应报文的主体内容发送给企业客户端。企业客户端接收IP出口地址,还可以缓存IP出口地址。
企业客户端可以利用NotifyRouteChange、NotifyAddrChange等API监听网络环境的变化,一旦监听到IP路由表发生改变,或者某个网卡被禁用,或者某个网卡的地址发生变化,可以触发企业客户端向总控服务端发送IP出口地址查询请求,从而使得企业客户端可以从总控服务端获取最新的IP出口地址。
在获取IP出口地址和配置信息之后,利用IP出口地址查找配置信息,在配置信息中包括企业客户端的业务功能与服务器上部署的业务之间的订阅关系,可以确定企业客户端的IP出口地址对应访问的服务器的IP地址列表或域名列表,然后再确定是否存在业务对应访问的业务的连接地址。
例如,如图5所示,某企业客户端的C1业务需要访问C1业务所在服务器包括业务服务器S2、业务服务器S4和业务服务器S5。某企业客户端的C3业务需要访问C3业务所在服务器包括业务服务器S1、业务服务器S3和业务服务器S4。
企业客户端的C1业务功能、企业客户端的C3业务功能分别向C1业务所在的服务器和C3业务所在的服务器发起订阅请求,根据订阅请求针对企业客户端的C1业务功能,建立企业客户端的C1业务功能与业务服务器S2、业务服务器S4、业务服务器S5之间的订阅关系,针对企业客户端的C3业务功能建立企业客户端的C3业务功能与业务服务器S1、业务服务器S3、业务服务器S4之间的订阅关系。
然后,针对企业客户端的C1业务功能,企业客户端对C1业务访问之后维护一个与企业客户端的C1业务功能相关的本地缓存结构,在该本地缓存结构中设置企业客户端的C1业务功能的业务访问策略,构建多个服务器地址列表。例如,有效服务器连接地址列表、历史服务器链接地址列表以及优先服务器连接地址列表。
假设针对企业客户端的C1业务功能设置采用默认策略,即当接收到C1业务功能的业务访问请求时,则按照默认策略遍历有效服务器连接地址列表。
在针对企业全新配置的业务时,各个业务被部署在多个不同服务器中,则根据IP出口地址查找配置信息,得到IP出口地址对应访问的服务器的IP地址。
在企业已经配置域名服务器,并针对业务全部或部分重新配置在多个服务器中,则根据IP出口地址查找配置信息,得到IP出口地址对应访问的服务器的IP地址和域名地址。
根据访问客户端的IP出口地址查找配置信息,得到IP出口地址对应访问的服务器的IP地址。例如配置信息中包含业务部署服务器与访问客户端的业务功能的订阅关系,假设登录服务功能对应的登录服务分布式部署在广州的服务器A,B,北京的服务器D,E中,则假设根据IP出口地址查找配置信息可以筛选得到广州的服务器A,B。即如果在配置信息中查找到待访问业务订阅的服务器的连接地址,则表示查询成功,如果在配置信息中未查找到待访问业务订阅的服务器的连接地址,则表示查询失败。
在查询结果表示查询成功时,可以将查询成功的连接地址添加到有效服务器连接地址列表中;在查询结果表示查询失败时,清空有效服务器连接地址列表。
在初次寻址的过程中,由于本地缓存中未存储有任何数据,则根据IP出口地址查询配置信息得到待访问业务订阅的多个服务器的连接地址之后,直接进行网络访问。在初次寻址之后,在本地缓存中会创建用于存储网络访问结果的数据结构。
当企业客户端接收到待访问业务的请求时,可以通过读取预先存储在本地缓存中的寻址范围,其有效地缩小了寻址范围,提升了网络服务寻址的效率。
在上述实施例基础上,针对不同的业务,可以单独地维护与业务相关的本地缓存的数据结构,以使得当iOA客户端接收到针对某业务的访问请求时,可以在本地缓存中查询与某业务相关的数据结构,然后按照预先设置的业务访问策略遍历预先构建的服务器连接地址列表,从而快速准确地查找到与业务相关的后台服务所在的服务器,从而降低网络访问时延,减少重试访问次数,提升了网络服务寻址的效率。
当寻址范围包括一个或多个服务器连接地址列表时,例如有效服务器连接地址列表,历史服务器连接地址列表和优先服务器连接地址列表,可以针对多个服务器连接地址列表定义访问策略,以进一步提升网络服务寻址的效率。
在上述实施例基础上,本申请实施例提供了又一服务寻址访问方法。如图4所示,该方法可以由服务寻址访问装置来实施,服务寻址访问装置可以设置在包括但不限于终端设备,例如企业客户端。如图4所示,该方法包括:
步骤401,响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,该配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息。
步骤402,根据IP出口地址和配置信息查找与待访问业务相关的本地缓存结构得到寻址范围,该寻址范围包括寻址范围包括IP出口地址确定的待访问业务对应的连接地址;
步骤403,根据预先设置的业务访问策略,针对连接地址执行网络访问。
上述步骤中,业务访问策略包括但不限于以下任意一种:默认策略;优先连接历史服务器连接地址列表策略;优先连接优先服务器连接地址列表策略。其中默认策略是指遍历有效服务器连接地址列表所包含的连接地址来执行网络访问。即按照有效服务器连接地址列表的访问顺序,对有效服务器连接地址列表所包含的连接地址逐个进行网络访问。
优先连接历史服务器连接地址列表策略是优先按照历史服务器连接地址列表的访问顺序,对所述历史服务器连接地址列表所包含的连接地址逐个进行网络访问,当所述历史服务器连接地址列表中某个连接地址进行网络访问失败时,则再按照所述有效服务器连接地址列表的访问顺序,对所述有效服务器连接地址列表所包含的连接地址逐个进行网络访问。
优先连接优先服务器连接地址列表策略是指优先按照所述优先服务器连接地址列表的访问顺序,对所述优先服务器连接地址列表所包含的连接地址逐个进行网络访问,当所述优先服务器连接地址列表中某个连接地址进行网络访问失败时,则再按照所述有效服务器连接地址列表的访问顺序,对所述有效服务器连接地址列表所包含的连接地址逐个进行网络访问。
本申请实施例通过设置多种访问策略来提升网络服务寻址的效率。本申请实施例还可以利用多个服务器连接地址列表来调整服务器访问的顺序,以更好地降低网络服务寻址和网络访问的延时。
步骤404,根据网络访问的结果或配置信息的解析结果更新本地缓存。
在上述步骤中,对各个服务器连接地址列表进行更新,可以根据网络访问结果来触发更新,或者根据配置信息的解析结果来触发更新。例如,遍历访问有效服务器连接地址列表所包含的每个连接地址;根据每个连接地址的访问结果对各个服务器连接地址列表进行更新。其中根据每个连接地址的访问结果,对各个服务器连接地址列表进行更新,包括但不限于下述方式中的一种或多种组合方式:
在连接地址的网络访问的结果为失败时,根据连接地址的访问失败的次数更新所述有效服务器连接地址列表;
在连接地址的网络访问的结果为成功时,将访问成功的连接地址更新到历史服务器连接地址列表;
根据访问成功的连接地址的网络访问延时更新有效服务器连接地址列表;
根据配置信息的解析结果,对有效服务器连接地址列表、历史服务器连接地址列表和优先服务器连接地址列表进行更新。
其中,在连接地址的网络访问的结果为失败时,根据连接地址的访问失败的次数更新所述有效服务器连接地址列表包括:
对每个服务器的连接地址进行访问结果统计,根据连接地址的访问结果为访问失败累计次数来更新有效服务器连接地址列表。
如果当前连接地址访问成功,则停止后续遍历连接地址的操作;如果当前连接地址访问失败,则访问当前连接地址的下一个连接地址;当前连接地址访问失败时,对当前连接地址的访问失败标识进行累计计数,例如通过计数器统计当前连接地址的访问失败的次数。若访问失败的次数达到阈值,则从有效服务器连接地址列表中删除该访问失败的当前连接地址。
其中,根据连接地址的网络访问延时更新有效服务器连接地址列表包括对每个服务器的连接地址的网络访问延时进行统计排序,根据连接地址对应的网络访问延迟的统计排序结果来更新有效服务器连接地址列表。在连接地址访问成功时,对连接地址对应的网络访问延时进行统计,然后将多个访问成功的连接地址对应的网络访问延时进行排序,例如按照从小到大的顺序进行排序。然后将排序结果中靠前的N个连接地址更新到优先服务器连接地址列表中。N为自然数,例如可以设置为3。
即统计有效服务器连接地址列表已成功访问的连接地址对应的网络访问延时;将网络访问延时排序结果中前N个连接地址更新至优先服务器连接地址列表中。
其中,根据访问成功的连接地址更新历史服务器连接地址列表还可包括:在连接地址访问成功时,将访问成功的连接地址添加到历史服务器连接地址列表中。
在描述的上述各个服务器连接地址列表的更新过程中,还可以包括根据配置信息的解析结果,对与待访问业务相关的服务端连接地址列表进行更新。例如,在接收到新的配置信息之后,iOA客户端解析新的配置信息得到新的配置信息所包含的所有总控服务端和节点服务端的新的服务器地址列表,然后根据新的服务器地址列表更新有效服务器连接地址列表、服务器历史连接地址列表和服务器优先连接地址列表。例如,从有效服务器连接地址列表、服务器历史连接地址列表和服务器优先连接地址列表中删除配置信息中不存在的服务器,从而避免在执行网络访问时连接到非管理员配置的服务器,提升业务访问的安全性。
本申请实施例中,通过多种更新方式对服务器连接地址列表进行更新来提高网络服务寻址的效率,并提升业务访问的安全性。
下面为了更清楚地描述本申请提出的网络服务寻址方法,以企业部署用于移动办公的零信任网络为例,结合图6-8进一步进行描述。
如图6所示,在不同办公环境中存在多个iOA客户端,访问代理proxy是虚拟网络设备,对iOA客户端鉴权后,负责将访问业务请求转发给智能网关;如果没有通过iOA客户端鉴权,则通过与访问代理直连的通信链路访问业务服务器或者中断连接。智能网关是部署在访问业务程序与企业资源之间的入口,其用于对每一个访问企业资源的网络访问请求进行验证、授权和转发。
假设不同办公环境中iOA客户端,在接收到业务访问请求时,启动网络服务寻址和访问。这里的业务访问请求可以是登录业务请求、申请票据请求或者代理访问请求等。可以预先在iOA客户端中设置公共模块,通过公共模块获取iOA客户端的IP出口地址,和业务访问请求对应的业务在服务器上配置信息。
如图7所示,在iOA客户端的业务功能初次接收到业务访问请求时,公共模块的服务订阅组件向iOA总控服务端发送IP出口地址查询请求报文,iOA总控服务端根据IP出口地址查询请求报文的报头进行解析得到,iOA客户端的IP出口地址。iOA总控服务端发送IP出口地址给iOA客户端的服务订阅组件。
iOA客户端接收iOA总控服务端返回的配置信息。该配置信息是企业管理员预先配置的IP出口地址所在IP地址段对应访问的服务器范围,以及服务器部署的业务的相关信息。例如,iOA客户端的IP出口地址对应服务器范围,可以是业务部署的多个服务器的IP地址列表或者多个服务器的IP地址列表和域名地址。其中每个业务在配置中对应一个IP地址。例如服务器的IP地址为10.0.30.00。在服务器上配置的业务1的IP地址为10.0.30.00:80,业务2的IP地址为10.0.30.00:90。在不同服务器上配置相同的业务,在同一个服务器上可以配置不同的业务,如图6所示,在业务服务器A部署服务1,其IP地址为IP地址1:20,IP地址为业务服务器A的地址,20为业务对应的端口号。假设业务对应访问的多个服务器分别部署在不同地理位置的区域,例如A,B,C,D服务器分别部署在广州、上海,北京。假设A部署在广州,B,C部署在上海,D部署在北京。根据iOA客户端的IP出口地址确定的访问范围为B,C,D,则可以得到业务对应访问的连接地址。
在完成寻址后,根据寻址结果执行初次访问的时候,需要对对应访问范围内的多个连接地址遍历访问。iOA客户端会接收与每个连接地址对应的服务器反馈的访问结果,根据访问结果可以在iOA客户端本地创建本地缓存结构,该本地缓存结构对下次业务访问请求,可以有效地降低网络访问的延迟,和网络访问的次数。对于iOA客户端访问业务时,iOA客户端并不知道待访问业务所在服务器的信息,iOA客户端在向总控服务端发送IP出口地址请求报文之后,获取自身的IP出口地址,和待访问业务对应的配置信息。
例如,通过iOA客户端中安装的服务寻址和访问插件(即公共模块)来执行网络服务寻址和网络访问。其中该服务寻址和访问插件可以包括服务订阅组件和网络访问组件,服务订阅组件用于向iOA总控服务端请求iOA客户端的IP出口地址;并根据IP出口地址查找配置信息中业务对应访问的连接地址。网络访问组件用于根据服务订阅组件查找到的连接地址执行网络访问。这里网络访问,根据具体网络访问所需的参数对连接地址对应的服务器进行访问。即将网络访问请求发送至访问代理,然后由访问代理将请求转发至智能网关,智能网关负责验证并转发请求至待访问业务对应的服务器。
在完成图7示意的网络访问过程之后,在iOA客户端的本地缓存中创建了本地缓存结构。当再次接收到上述业务访问请求时,可以按照图8示出方法流程继续执行寻址访问。
iOA客户端接收到业务访问请求时,向iOA总控服务端发送IP出口地址查询请求报文,然后接收iOA总控服务端返回的iOA客户端的IP出口地址。并根据IP出口地址在从iOA总控服务端返回的配置信息中查找IP出口地址对应访问的服务器连接地址。
如果查找到的服务器连接地址在本地缓存中,则添加查找到的服务器连接地址到有效服务器连接地址列表中。如果查找到的服务器连接地址没有在本地缓存中,则清空有效服务器连接地址列表。
在初次网络访问之后,在本地缓存中可以获取每个连接地址的网络访问结果,若网络访问结果表示访问失败,则该网络访问失败对应的连接地址的访问失败次数进行累计计数;若网络访问结果表示访问成功,则将网络访问成功对应的连接地址添加到历史服务器连接地址列表。
在本地缓存中还可以获取每个访问成功的连接地址对应的网络访问延迟,根据网络访问延迟从小到大的顺序对多个访问成功的连接地址进行排序,将多个访问成功的连接地址中网络访问延迟较小的前N个连接地址添加到优先服务器连接地址列表。
在完成初次网络访问之后,在本地缓存中创建的本地缓存结构可以包括:客户端业务ID、客户端业务名称、客户端业务访问策略、优先服务器连接地址列表、有效服务器连接地址列表、历史服务器连接地址列表、缓存内容开始时间和缓存内容更新时间等。
当再次接收到业务访问请求时,根据预先设置的客户端业务访问策略对本地缓存结构中构建的多个服务器连接地址列表进行寻址,然后根据寻址得到的连接地址进行网络访问,其可以有效地减少网络访问延迟时间和访问重试的次数,提高了网络寻址访问的效率。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
进一步请参考图9,图9示出了本申请实施例提供的服务寻址访问装置的结构示意图。该装置包括:
业务订阅模块701,用于响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息;根据IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,寻址范围包括IP出口地址确定的待访问业务对应的连接地址;
网络访问模块702,用于针对连接地址执行网络访问。
业务订阅模块701还用于:
根据IP出口地址查找配置信息,得到IP出口地址对应访问的服务器的IP地址;
根据IP地址查找本地缓存,得到待访问业务对应的连接地址,该待访问业务对应的连接地址作为寻址范围。
业务订阅模块701还用于:
根据IP出口地址查找配置信息,得到IP出口地址对应访问的服务器的IP地址和域名地址;
根据IP地址和域名地址查找本地缓存,得到待访问业务对应的连接地址,待访问业务对应的连接地址作为寻址范围。
业务订阅模块701还用于:
向企业总控服务端发送IP出口地址查询请求,该IP出口地址查询请求用于请求查询自身的出口IP地址;
从企业总控服务端接收IP出口地址,该IP出口地址是总控服务端对IP出口地址查询请求进行解析得到的。
业务订阅模块701还用于:
定期地向总控服务端拉取配置信息;
在配置信息发生变化时,接收总控服务端主动推送的发生变化后的配置信息。
网络访问模块702还用于:根据预先设置的业务访问策略,针对连接地址执行网络访问。
当寻址范围包括有效服务器连接地址列表、历史服务器连接地址列表和优先服务器连接地址列表,网络访问模块702还用于:
按照有效服务器连接地址列表的访问顺序,对有效服务器连接地址列表所包含的连接地址逐个进行网络访问;或者,
优先按照历史服务器连接地址列表的访问顺序,对历史服务器连接地址列表所包含的连接地址逐个进行网络访问,当历史服务器连接地址列表中某个连接地址进行网络访问失败时,则再按照有效服务器连接地址列表的访问顺序,对有效服务器连接地址列表所包含的连接地址逐个进行网络访问;或者,
优先按照优先服务器连接地址列表的访问顺序,对优先服务器连接地址列表所包含的连接地址逐个进行网络访问,当优先服务器连接地址列表中某个连接地址进行网络访问失败时,则再按照有效服务器连接地址列表的访问顺序,对有效服务器连接地址列表所包含的连接地址逐个进行网络访问。
业务订阅模块701还用于:根据网络访问的结果或所述配置信息的解析结果更新所述本地缓存。
当寻址范围包括有效服务器连接地址列表、历史服务器连接地址列表和优先服务器连接地址列表,业务订阅模块701还用于:
在连接地址的网络访问的结果为失败时,根据连接地址的访问失败的次数更新有效服务器连接地址列表;
在连接地址的网络访问的结果为成功时,将访问成功的连接地址更新到历史服务器连接地址列表;
根据访问成功的连接地址的网络访问延时更新所述有效服务器连接地址列表;
根据配置信息的解析结果,对有效服务器连接地址列表、历史服务器连接地址列表和优先服务器连接地址列表进行更新。
上述服务订阅组件和网络访问组件可以作为iOA客户端的一个公共模块,当接收到不同业务的请求时,可以为不同的业务功能提供准确快速的节点连接地址的查找功能,降低网络延迟时间。
在上述实施例基础上,本申请实施例还提供了一种服务寻址访问系统。如图10所示,该系统包括一个或多个企业客户端和一个或多个业务服务器,一个或多个业务服务器上按照IP地址分布式部署企业的业务(或称为资源),该系统还包括总控服务器,该总控服务器用于向企业客户端提供企业客户端的IP出口地址,还用于维护各个业务的部署信息,IP地址段对应访问服务器的地址列表等。
企业客户端801,用于响应接收到的针对待访问业务的请求,获取企业客户端的互联网协议IP出口地址和待访问业务的配置信息,该配置信息包括待访问业务按照互联网协议IP地址部署在至少一个业务服务器上的相关信息;根据IP出口地址和配置信息查找与待访问业务相关的本地缓存得到寻址范围,该寻址范围包括IP出口地址确定的待访问业务对应的连接地址;针对连接地址执行网络访问;
业务服务器802,用于向访问客户端发送网络访问结果。
其中,企业总控服务端803,其与企业客户端建立初始连接,用于向企业客户端提供企业客户端的IP出口地址和待访问业务的配置信息
其中,企业客户端还可以用于执行前述方法步骤的功能。
下面参考图11,图11示出了本申请实施例提供的终端设备或服务器的计算机系统的结构示意图。
如图11所示,计算机系统包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本公开的实施例,上文参考流程图图2描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括业务订阅模块和网络访问模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,业务订阅模块还可以被描述为“用于查找与待访问业务相关的本地缓存得到寻址范围的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本申请的服务寻址访问方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。