具体实施方式
本申请的实施例提出一种新的提供渠道组合的集成能力的方法,以由集成能力请求指定取值的维度为主维度,通过获取每个渠道所有维度的能力值,维护主维度的各种可能取值与主维度为该取值时渠道组合的集成能力值的对应关系,以便在收到集成能力请求后,可以根据维护的对应关系,找到由该请求确定的主维度指定取值所对应的渠道组合集成能力值,用于对该请求的响应,避免了为每个集成能力请求进行所有渠道的能力值查询,从而降低因查询导致的资源消耗,并提高对集成能力请求的响应速度,以解决现有技术中存在的问题。
本申请实施例应用场景的一种网络结构如图1所示,渠道接入系统分别连接多个服务使用方和多个服务提供方。其中,每个服务提供方向渠道接入系统开放一个到多个渠道,每个渠道的服务范围采用若干个维度的能力值来描述。服务使用方向渠道接入系统发起渠道服务的查询或服务请求,由渠道接入系统直接进行响应,或者由渠道接入系统在调用服务提供方后根据调用结果进行响应。
本申请的实施例中,一个渠道是服务提供方支持的一种服务方式,如银行支持的信用卡支付方式和借记卡支付方式、App(应用程序)服务端向不同厂商、不同型号的终端开放的业务接口等。通常而言,同一服务提供方的不同渠道至少有一个维度的能力值是不同的。
本申请的实施例应用于渠道接入系统,渠道接入系统可以运行在任何具有计算和存储功能的设备上,例如可以是手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器、虚拟机等物理设备或逻辑设备;也可以由两个或两个以上分担不同职责的物理或逻辑设备、相互协同来实现本申请实施例中的各项功能。
本申请的实施例中,提供渠道组合的集成能力的方法的流程如图2所示。
步骤210,获取渠道组合中各个渠道所有维度的能力值。
渠道组合由两个或者两个以上的渠道组成,这些渠道可以来自同一个服务提供方,也可以来自不同的服务提供方。组成渠道组合的各个渠道都具有相同的一个到多个维度。在一些应用场景中,如果渠道组合中的渠道来自不同的服务提供方,可以将服务提供方作为一个维度来描述渠道的服务。
根据实际应用场景的具体实现,渠道接入系统可以采用不同的方式向渠道组合中每个渠道的服务提供方获取该渠道每个维度的能力值,本申请的实施例不做限定。
例如,渠道接入系统可以以预定周期查询渠道组合中各个渠道的所有维度的能力值;通常服务提供方会向渠道接入系统开放渠道接口,供渠道接入系统进行渠道信息查询和渠道服务调用,渠道接入系统可以以预定周期通过各个渠道对应的渠道接口查询该渠道所有维度的能力值。
再如,可以在渠道接入系统维护当前每个渠道的所有维度的能力值,当某个渠道有维度的能力值发生变化时,由该渠道的服务提供方将发生变化的维度的能力值告知渠道接入系统,渠道接入系统更新该渠道的该维度能力值。
步骤220,以主维度在其集成能力值范围内的取值为索引,将每个其他维度在主维度为该取值时的集成能力值作为渠道组合对应于该取值的集成能力值。
如前所述,组成渠道组合的各个渠道都具有相同的一个到多个维度,换言之各个渠道的服务都可以用这些维度来描述,采用这些维度同样可以描述渠道组合提供的服务。因此,渠道组合的集成能力可以表示为渠道组合在每个维度的集成能力值。对每个维度,渠道组合的集成能力值包括该维度在每个渠道的能力值的可能取值,换言之,渠道组合在某个维度的集成能力值是组成渠道组合的每个渠道在该维度的能力值中的最优值(对能力值为可以按照优劣排序的维度,如服务耗时维度的集成能力值为最短的一个时间值、交易额度维度的集成能力值为最高的一个额度值)、或者是组成渠道组合的每个渠道在该维度的能力值的并集(对能力值为并列项的维度,如支付方式支持的卡类型、服务时间等)。
服务使用方要查询渠道组合的集成能力时,向渠道接入系统发起集成能力请求。集成能力请求中通常会指定要查询的渠道组合(当渠道接入系统支持对两个到多个渠道组合的查询时),并指定该渠道组合的一个维度的维度值或者可以由集成能力请求本身指定一个维度的维度值(如集成能力请求发生的时间),用来请求该渠道组合在该维度为指定取值时的集成能力值。
本申请的实施例中,将由集成能力请求确定指定取值的维度作为主维度,并以主维度的所有可能取值(即主维度在其集成能力值范围内的取值)为索引,生成与主维度的各个取值对应的渠道组合的集成能力值,即当主维度为该取值时,渠道组合的其他维度的集成能力值。
渠道接入系统在获取到各个渠道所有维度的能力值之后,即可生成以主维度为索引的渠道组合的集成能力值。例如,对周期性查询各个渠道能力值的实现,可以周期性的计算以主维度为索引的渠道组合的集成能力值,或者在本周期查询的渠道能力值有变化时,更新以主维度为索引的渠道组合的集成能力值;再如,对服务提供方主动通知渠道接入系统能力值变化的实现中,渠道接入系统可以在收到发生变化的能力值后,按照新的能力值更新以主维度为索引的渠道组合的集成能力值。
需要说明的是,如果不同的服务使用方对某个渠道组合的集成能力请求可能指定不同维度的维度值,则渠道接入系统可以分别以这些维度中的一个作为主维度,生成若干个索引及其对应的渠道组合的集成能力值。
步骤230,根据接收的集成能力请求确定主维度的指定取值,以对应于该指定取值的渠道组合的集成能力值对该请求进行响应。
通过步骤210和220,相当于在渠道接入系统上维护了一个以当前各个渠道的所有维度的能力值为数据基础,以主维度为查询项的渠道组合集成能力值。
在收到来自服务使用方的集成能力请求后,渠道接入系统从集成能力请求中提取主维度的指定取值或者根据集成能力请求本身确定主维度的指定取值,查找主维度的指定取值所在的索引项,即可得到对应于该指定取值的渠道组合的集成能力值,并采用所得的集成能力值对接收的集成能力请求进行响应。
需要说明的是,生成以主维度为索引的渠道组合的集成能力值的具体方式可以根据实际应用场景中主维度的取值特点来确定,本申请的实施例不做限定。
例如,对主维度的集成能力值范围为离散值集合的情形(如主维度为卡种,所有可能取值包括信用卡和借记卡),可以将主维度的每个取值作为一个索引项,将每个其他维度在主维度为该取值时的集成能力值作为该索引项对应的渠道组合的集成能力值。在收到服务使用方的集成能力请求后,渠道接入系统由请求确定主维度的指定取值,以指定取值对应的渠道组合的集成能力值来响应该请求。
再如,对主维度的集成能力值范围包括连续区间的情形(如主维度为时间内,所有可能取值为一个到多个连续的时间区间),可以将主维度的集成能力值范围划分为若干个值域,每个其他维度在主维度为该值域内的任一取值时的均具有唯一的集成能力值(即当主维度在某个值域内的取值发生变化时,每个其他维度的集成能力值都不会发生变化);然后以每个值域为一个索引项,将每个其他维度在该值域内的集成能力值作为该值域对应的渠道组合的集成能力值。在收到服务使用方的集成能力请求后,渠道接入系统查找由集成能力请求确定的主维度指定取值所在的值域,以该值域对应的渠道组合的集成能力值,对接收的集成能力请求进行响应。
此外,还可以采用现有技术中提供的各种编程工具来生成以主维度为索引的渠道组合的集成能力值,本申请的实施例同样不做限定。如JavaScript的决策过滤器,具体而言,以主维度的集成能力值范围包括连续区间的情形为例,在将主维度的集成能力值范围划分为若干个值域后,分别以主维度的取值在每个值域内为过滤条件,建立输出为每个其他维度在该值域内的集成能力值的若干个决策过滤器;这样,在收到服务使用方的集成能力请求后,渠道接入系统确定主维度的指定取值,将指定取值应用于各个决策过滤器,以命中的一个决策过滤器的输出对接收的集成能力请求进行响应。
此外,可以根据集成能力请求命中决策过滤器的可能性,将若干个决策过滤器分为不同的优先级来对集成能力请求进行过滤,接收的集成能力请求将优先通过命中可能性高的决策过滤器。这样可以进一步加快对集成能力请求的响应速度。
可见,本申请的实施例中,以可由集成能力请求确定指定取值的维度为主维度,通过获取渠道组合中每个渠道所有维度的能力值,维护以主维度为索引的渠道组合在主维度为各种可能取值时的集成能力值,从而能够在收到集成能力请求后,可以根据主维度的指定取值,以对应于指定取值的渠道组合集成能力值进行响应,避免了为每个集成能力请求进行所有渠道的能力值查询,减少了维度能力值的查询次数,降低了因查询导致的资源消耗,提高了对集成能力请求的响应速度。
在本申请的一个应用示例中,第三方支付平台的金融系统(一种渠道接入系统)与各个银行的支付业务系统(一种服务提供方)连接,并与每个银行的支付业务系统分别建立两个以上逻辑上的直连渠道,每个渠道用来实现一种具体的支付方式。
本应用示例中,每个渠道采用如下维度来对支付方式进行描述:服务时间、处理时长、卡种、和最高额度。其中,服务时间是每天中可以采用该渠道进行支付的时间段;处理时长是该渠道从收到支付请求到完成支付操作所需的时间长度;卡种是该渠道支持的银行卡类型;最高额度是该渠道单次支付可接受的最大金额。
第三方支付平台的业务系统(一种服务使用方)在用户指定希望进行支付的银行后,向金融系统发起集成能力请求,请求属于用户指定银行的所有渠道(一种渠道组合)当前的集成能力。针对业务系统的请求,金融系统分别以每个银行的所有渠道作为一个渠道组合,并以服务时间(由集成能力请求到达的时间作为指定取值的维度)作为主维度。
金融系统以预定周期向某个银行的支付业务系统查询该银行所有渠道的所有维度的能力值,以该银行的所有渠道作为一个渠道组合,计算服务时间维度的集成能力值范围(即服务时间维度在所有渠道的能力值的并集)。根据其他维度在各个渠道的能力值,将服务时间维度的集成能力值范围划分为一个到多个值域,使得当服务时间维度的值等于某个值域内任意一个时间点时,处理时长、卡种、和最高额度维度的集成能力值都不会因服务时间维度取值不同而变化。金融系统计算与服务时间维度的每个值域对应的渠道组合的集成能力值,即处理时长、卡种、和最高额度维度在服务时间维度取值在该值域内时,这三个维度在所有渠道的能力值的并集。
假设某个银行向金融系统开放了两个渠道:A渠道和B渠道,在某个周期,金融系统从该银行获取到两个渠道的所有维度的能力值如表1所示:
渠道 |
服务时间 |
处理时长 |
卡种 |
最高额度 |
A渠道 |
1点到20点 |
实时 |
借记卡 |
5000 |
B渠道 |
4点到22点 |
5分钟 |
信用卡 |
10000 |
表1
根据表1,可以将服务时间维度的取值范围1点到22点划分为三个值域,以每个值域作为一个索引项,其对应的该银行渠道组合的集成能力值如表2所示:
主维度值域 |
渠道组合的集成能力值 |
[1点,4点) |
处理时长:实时;卡种:借记卡;最高额度:5000 |
[4点,20点] |
处理时长:实时;卡种:借记卡和信用卡;最高额度:10000 |
(20点,22点] |
处理时长:5分钟;卡种:信用卡;最高额度:10000 |
表2
将表2中的每个索引项与集成能力值的对应关系分别以一个决策过滤器来实现,决策过滤器以服务时间维度的值域为过滤条件,以对应于该值域的银行渠道组合的集成能力值为输出。依据表2将生成三个决策过滤器,其中一个对应于该银行在A渠道和B渠道服务时间的重叠时间段,另外两个对应于该银行在A渠道和B渠道服务时间的两个非重叠时间段内。
请参见图3,由于第三方支付平台的业务高峰通常在A渠道和B渠道服务时间的重叠时间段内,集成能力请求更有可能命中对应于重叠时间段的决策过滤器。因此,将三个决策过滤器分为两层来对集成能力请求进行过滤,第一层决策过滤器为对应于A渠道和B渠道服务时间的重叠时间段的决策过滤器,第二层决策过滤器为两个对应于A渠道和B渠道服务时间的非重叠时间段的决策过滤器。
当第三方支付平台收到业务系统对该银行渠道组合的集成能力请求时,将接收的集成能力请求首先通过第一层决策过滤器,如果该集成能力请求的接收时间在A渠道和B渠道服务时间的重叠时间段,则命中第一层决策过滤器,得到该银行渠道组合的集成能力值;否则将该集成能力请求通过第二层决策过滤器,根据其命中两个决策过滤器中的哪一个,来得到该银行渠道组合的集成能力值。
第三方支付平台将该银行渠道组合的集成能力值在对集成能力请求的响应中,返回给发送给集成能力请求的业务系统。
与上述流程实现对应,本申请的实施例还提供了一种提供渠道组合的集成能力的装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的CPU、内存以及非易失性存储器之外,提供渠道组合的集成能力的装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
图5所示为本申请实施例提供的一种提供渠道组合的集成能力的装置,所述渠道组合包括至少两个渠道,所述装置包括能力值获取单元、集成能力值索引单元和能力请求响应单元,其中:能力值获取单元用于获取渠道组合中各个渠道所有维度的能力值;集成能力值索引单元用于以主维度在其集成能力值范围内的取值为索引,将每个其他维度在主维度为所述取值时的集成能力值作为渠道组合对应于所述取值的集成能力值;所述主维度为由集成能力请求指定取值的维度;所述每个维度的集成能力值包括所述维度在渠道组合中各个渠道的能力值的可能取值;能力请求响应单元用于根据接收的集成能力请求确定主维度的指定取值,以对应于指定取值的渠道组合的集成能力值对所述请求进行响应。
可选的,所述能力值获取单元具体用于:以预定周期查询渠道组合中各个渠道的所有维度的能力值。
一种实现方式中,所述集成能力值索引单元包括值域划分模块和值域索引模块,其中:值域划分模块用于将主维度的集成能力值范围划分为若干个值域,每个其他维度在主维度为所述值域内的任一取值时的均具有唯一的集成能力值;值域索引模块用于以每个值域为一个索引项,将每个其他维度在所述值域内的集成能力值作为所述值域对应的渠道组合的集成能力值。
上述实现方式中,所述值域索引模块可以具体用于:分别以主维度的取值在每个值域内为过滤条件,建立输出为每个其他维度在所述值域内的集成能力值的若干个决策过滤器;所述能力请求响应单元具体用于:根据接收的集成能力请求确定主维度的指定取值,将指定取值应用于各个决策过滤器,以命中的决策过滤器的输出对所述集成能力请求进行响应。
可选的,所述主维度包括:服务时间;所述其他维度包括:处理时长、卡种、和/或最高额度。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。