本申请公开了一种调用外部系统服务的方法及装置,用以解决现有技术中本地系统提供服务的质量较低,本地系统和外部系统的负担较大的问题。该方法第一系统向用户提供弱依赖服务时,调用需要的每个第二系统的子服务,并当判断在第一设定时间长度内未获取到调用的所有子服务的服务结果时,将在该第一设定时间长度内获取到的服务结果进行处理并返回给用户。由于本申请实施例中第一系统在第一设定时间长度内未获取到调用的所有子服务的服务结果时,将在该第一设定时间长度内已经获取到的部分服务结果提供给用户,因此提高了提供服务的质量,也使用户不会再次请求该服务,也就无需再次调用各第二系统的子服务,降低了第一系统和各第二系统的负担。
【技术实现步骤摘要】
【专利摘要】本申请公开了一种调用外部系统服务的方法及装置,用以解决现有技术中本地系统提供服务的质量较低,本地系统和外部系统的负担较大的问题。该方法第一系统向用户提供弱依赖服务时,调用需要的每个第二系统的子服务,并当判断在第一设定时间长度内未获取到调用的所有子服务的服务结果时,将在该第一设定时间长度内获取到的服务结果进行处理并返回给用户。由于本申请实施例中第一系统在第一设定时间长度内未获取到调用的所有子服务的服务结果时,将在该第一设定时间长度内已经获取到的部分服务结果提供给用户,因此提高了提供服务的质量,也使用户不会再次请求该服务,也就无需再次调用各第二系统的子服务,降低了第一系统和各第二系统的负担。【专利说明】—种调用外部系统服务的方法及装置
本申请涉及通信
,尤其涉及一种调用外部系统服务的方法及装置。
技术介绍
目前,一个运行的系统或多或少的需要与其他的外部系统进行信息交互,也就是说,本地系统向用户提供某些服务时,需要依赖于外部系统向本地系统提供的相应子服务。而本地系统要依赖于外部系统的子服务才能提供的服务根据其对外部系统的依赖性,又可分为强依赖服务和弱依赖服务。强依赖服务是指,如果外部系统不能向本地系统提供相应的子服务,那么本地系统则不能向用户提供的服务。例如,本地系统为银联系统,外部系统为银行A的系统和银行B的系统,银联系统为用户提供在银行A和银行B之间转账的服务,那么该服务必须依赖于银行A的系统和银行B的系统分别提供相应的子服务才能进行,如果银行A的系统和银行B的系统中的任何一个不能提供相应的子服务,则银联系统就不能提供在银行A和银行B之间转账的服务。因此,银联系统提供的该在银行A和银行B之间转账的服务就是强依赖服务。弱依赖服务是指,如果外部系统不能向本地系统提供相应的子服务,那么本地系统实际仍然可以向用户提供部分服务的服务。例如,本地系统为机票查询系统,外部系统为航空公司A的系统、航空公司B的系统、航空公司C的系统,机票查询系统为用户提供查询机票的服务,那么该服务要依赖于航空公司A的系统、航空公司B的系统、航空公司C的系统提供相应的子服务,如果航空公司A的系统不能提供相应的子服务,则机票查询系统仍然可以从航空公司B的系统和航空公司C的系统中查询机票,只是查询的机票中不包括航空公司A的机票。因此,机票查询系统为用户提供的该查询机票的服务就是弱依赖服务。然而,在现有技术中,本地系统向用户提供服务时,并不区分用户请求的服务是强依赖服务还是弱依赖服务,如图1所示。图1为现有技术中本地系统向用户提供服务的过程,具体包括以下步骤:SlOl:本地系统接收用户发送的服务请求。S102:本地系统建立各个调用任务,在各个线程上分别执行各个调用任务,以调用相应外部系统的子服务。本地系统针对每个要调用的外部系统的子服务,建立一个调用任务,在一个线程上执行建立的调用任务,以调用外部系统的子服务。S103:判断是否在接收到该服务请求后的设定时间长度内获取到调用的所有子服务的服务结果,若是,则执行步骤S104,否则执行步骤S105。在实际应用中,用户向本地系统请求的服务通常都会对应一个预设的请求超时时间长度,该请求超时时间长度即为步骤S103中的设定时间长度。如果本地系统在接收到服务请求后的该设定时间长度内,获取到了调用的所有子服务的服务结果,则将获取到的服务结果处理后返回给用户,也即执行步骤S104。如果本地系统在接收到服务请求后的该设定时间长度内未获取到所有子服务的服务结果,则提供的该服务失败,也即执行步骤S105。S104:将服务结果进行处理后返回给该用户。S105:通知该用户本次请求的服务失败,不向该用户返回服务结果。当用户请求的服务是弱依赖服务时,如上例中的查询机票服务,如果航空公司A的系统出现故障,不能向本地系统提供相应的子服务,则在上述步骤S103中,本地系统势必会确定在设定时间长度内未获取到所有子服务的服务结果(未获取到航空公司A的系统的子服务的服务结果),因此执行步骤S105,通知该用户本次服务失败,不向该用户返回任何服务结果。而此时本地系统毕竟已经成功获取到了航空公司B的系统和航空公司C的系统的子服务的服务结果,现有技术中直接通知用户本次服务失败,这无疑降低了本地系统提供服务的质量。用户也很有可能会再次请求该服务,使本地系统再次调用各外部系统的子服务,这也增加了本地系统和各外部系统的负担。
技术实现思路
本申请实施例提供一种调用外部系统服务的方法及装置,用以解决现有技术中本地系统提供服务的质量较低,本地系统和外部系统的负担较大的问题。本申请实施例提供的一种调用外部系统服务的方法,包括:第一系统向用户提供弱依赖服务时,确定需要调用的每个第二系统的子服务并调用;以及判断是否在第一设定时间长度内获取到调用的所有子服务的服务结果;当判断结果为否时,将在所述第一设定时间长度内获取到的服务结果进行处理并返回给所述用户。本申请实施例提供的一种调用外部系统服务的装置,包括:调用模块,用于向用户提供弱依赖服务时,确定需要调用的每个第二系统的子服务并调用;判断模块,用于判断是否在第一设定时间长度内获取到调用的所有子服务的服务结果;处理模块,用于当所述判断模块的判断结果为否时,将在所述第一设定时间长度内获取到的服务结果进行处理并返回给所述用户。本申请实施例提供一种调用外部系统服务的方法及装置,该方法第一系统向用户提供弱依赖服务时,调用需要的每个第二系统的子服务,并判断是否在第一设定时间长度内获取到调用的所有子服务的服务结果,当判断结果为否时,将在该第一设定时间长度内获取到的服务结果进行处理并返回给用户。由于本申请实施例中第一系统在第一设定时间长度内未获取到调用的所有子服务的服务结果时,并非直接通知用户本次服务失败,而是将在该第一设定时间长度内已经获取到的部分服务结果提供给用户,因此提高了提供服务的质量,也使用户不会再次请求该服务,也就无需再次调用各第二系统的子服务,降低了第一系统和各第二系统的负担。【专利附图】【附图说明】图1为现有技术中本地系统向用户提供服务的过程;图2为本申请实施例提供的调用外部系统服务的过程;图3为本申请实施例提供的第一系统调用航空公司A系统、航空公司B系统和航空公司C系统的子服务的示意图;图4为本申请实施例提供的第一系统通过划分的两个线程池执行调用任务的示意图;图5为本申请实施例提供的第一系统通过划分的多个线程池执行调用任务的示意图;图6为本申请实施例提供的调用外部系统服务的详细过程;图7为本申请实施例提供的调用外部系统服务的装置结构示意图。【具体实施方式】由于现有技术中当本地系统在提供弱依赖服务时,如果在设定时间长度内未获取到调用的所有子服务的服务结果,则直接通知用户本次服务失败,这样就会使在该设定时间长度内已经获取到的服务结果变得毫无意义,浪费了网络资源去获取到这些服务结果,也降低了提供服务的质量,同时,用户也很有可能会再次请求该服务,使本地系统再次调用各外部系统的子服务,这也增加了本地系统和各外部系统的负担。本申请实施例中本地系统在设定时间长度内未获取到调用的所有子服务的服务结果时,将在该设定时间长度内已经获取到的服务结果提供给用户,可以提高本地系统提供服务的质本文档来自技高网...
【技术保护点】
一种调用外部系统服务的方法,其特征在于,包括:第一系统向用户提供弱依赖服务时,确定需要调用的每个第二系统的子服务并调用;以及判断是否在第一设定时间长度内获取到调用的所有子服务的服务结果;当判断结果为否时,将在所述第一设定时间长度内获取到的服务结果进行处理并返回给所述用户。
【技术特征摘要】
【专利技术属性】
技术研发人员:王冬,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。