一种分布式***数据传递的方法及装置
技术领域
本申请涉及计算机技术,特别涉及一种分布式***数据传递的方法及装置。
背景技术
电子商务***中存在海量的用户数据,对用户数据进行分析可以准确捕捉用户动态,从而能够对电子商务***进行有针对性地优化。
现有技术下,通常是通过电子商务***内的多个子***逐层将用户数据传递至分析***,从而完成用户数据采集工作。
例如,参阅图1所示,假设电子商务***内存在若干子***,分别称为A***,B***,C***,D***和E***;其中,
假设A***为登录***,用于记录用户登录上下文,如,用户ID,用户IP地址,用户MAC地址等等。
假设B***为产品展示***,用于记录用户产品选择上下文,如,用户选择的产品的ID,价格等等。
假设C***为支付***,用于记录用户产品支付上下文,如,用户支付单号,支付总额,支付手段,支付结果等等。
假设D***为监控***,用于记录物流监控上下文,如,产品发货单号,发货时间,到货时间等等。
假设E***为评价***,用于用户评价上下文,如,用户对产品质量,价格的具体评价等等。
基于上述各个子***,如图1所示,在采集用户数据时,当用户1登录电子商务***时,A***将用户1的登录上下文传送至B***,B***再将用户1的登录上下文和用户产品选择上下文传送至C***……以此类推,直至E***通过***间的层层传递采集用户1的全部上下文,包括登录上下文、用户产品选择上下文、用户支付上下文,物流监控上下文和用户评价上下文;接着,E***再将用户1的全部上下文传递给分析***。
采用这种方式可以一次性采集到完整的用户数据以便后续进行数据分析。然而,采用这种方式却存在以下缺陷:
1、由于用户数据需要经过各个子***传递,因此,当任意一子***出现运行故障时,分析***都采集不到完整的用户数据,从而耽误了后续的数据分析操作。
2、当任意一子***中需要添加新的功能模块以采集新的用户数据时,其他子***也需要进行相应改进,以识别新的功能模块采集到的新的用户数据,显然,这样会大幅度提高整个***的运维成本。
发明内容
本申请实施例提供一种分布式***数据传递的方法及装置。用以降低数据传递风险,以及降低***运维成本。
本申请实施例提供的具体技术方案如下:
一种分布式***数据传递的方法,包括:
服务器分别接收电子商务***中每一个子***发送的用户上下文;
服务器在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并;
服务器将合并后的用户上下文发往分析***。
较佳的,服务器在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并,包括:
服务器分别根据每一个用户标识信息,提取出本地对应接收的用户上下文;
服务器将对应同一用户标识信息接收的用户上下文进行内容整合。
较佳的,服务器将对应任意一用户标识信息接收的用户上下文进行内容整合,具体包括:
服务器从基于所述任意一用户标识信息接收的来自于不同子***的用户上下文中,提取出上下文相关的信息内容进行关联保存;
或/和
服务器根据所述分析***的分析需求,对基于所述任意一用户标识信息接收的来自于不同子***的用户上下文进行筛选。
较佳的,服务器在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并之后,在将合并后的用户上下文发往分析***之前,进一步包括:
服务器对合并后的用户上下文进行反查,对包含有指定标识的数据进行完善。
较佳的,进一步包括:
服务器确定对应任意一用户标识信息未收集到所有子***上报的用户上下文时,进行报警提示。
一种分布式***数据传递的装置,包括:
接收单元,用于分别接收电子商务***中每一个子***发送的用户上下文;
处理单元,用于在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并;
发送单元,用于将合并后的用户上下文发往分析***。
较佳的,在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并时,所述处理单元具体用于:
分别根据每一个用户标识信息,提取出本地对应接收的用户上下文;
将对应同一用户标识信息接收的用户上下文进行内容整合。
较佳的,在将对应任意一用户标识信息接收的用户上下文进行内容整合时,所述处理单元具体用于:
从基于所述任意一用户标识信息接收的来自于不同子***的用户上下文中,提取出上下文相关的信息内容进行关联保存;
或/和
根据所述分析***的分析需求,对基于所述任意一用户标识信息接收的来自于不同子***的用户上下文进行筛选。
较佳的,在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并之后,在将合并后的用户上下文发往分析***之前,所述处理单元进一步用于:
服务器对合并后的用户上下文进行反查,对包含有指定标识的数据进行完善。
较佳的,所述处理单元进一步用于:
服务器确定对应任意一用户标识信息未收集到所有子***上报的用户上下文时,进行报警提示。
本发明实施例中,电子商务***业务链上的各个子***分别将本地保存的用户上下文单独发送给统一的服务器,由服务器将具有相同用户标识的用户上下文合并后,发往分析***进行分析处理。这样,便采用分布式方式实现了用户上下文的采集和合并,解决了分布式***中的数据传输问题,同时,也降低了分布式***中各子***之间的依赖与耦合,从而大大降低了分布式***的运维成本;进一步地,当某一子***出现故障时,也不会对用户上下文的传递造成较大影响,有效保障的分布式***的运行可靠性。
附图说明
图1为现有技术下用户数据采集示意图;
图2为本发明实施例中用户数据采集示意图;
图3为本发明实施例中数据传输流程图;
图4为本发明实施例中服务器结构示意图。
具体实施方式
本申请实施例中,为了降低数据传递风险,以及降低***运维成本,经过优化改进,引入了能够统一采集上下文的服务器,通过该服务器分别从电子商务***中的各个子***内采集相应子***中的用户数据,再对采用的各个用户数据进行汇总,统一上报至分析***。
下面结合附图对本申请优选的实施方式进行详细说明。
参阅图2所示,本发明实施例中,需要设置一用于统一采集用户数据的服务器,该服务器中设置有与电子商务***内各个子***之间建立连接的接口,服务器可以通过每一个接口采用相应的通信协议与对应的子***建立通信连接,并接收子***传递的用户数据。
参阅图3所示,本发明实施例中,分布式***数据传递的具体流程如下:
步骤300:服务器分别接收电子商务***中每一个子***发送的用户上下文。
如图2所示,本发明实施例中,为了降低***中数据传递的风险以及降低运维成本,不再将数据通过各个子***层层传递至分析***,而是在每一个子***和服务器之间均建立通信接口,令每一个子***将本地产生的用户上下文实时地或定期地传递至统一的服务器。相应的,针对不同的子***,服务器需要采用不同或相同的通信协议与其进行报文交互。
例如:假设一个子***为登录***,用于记录用户登录上下文,如,用户ID,用户IP地址,用户MAC地址等等。那么,服务器与这一子***进行报文交互时,则采用Java消息服务(Java Message Service,JMS)通信协议。
又例如,假设另一个子***为支付***,用于记录用户产品支付上下文,如,用户支付单号,支付总额,支付手段,支付结果等等。那么,服务器与这一子******进行报文交互时,则采用网络服务(Web service)通信协议。
以此类推,服务器与其他子***之间也需要采用相应的通信协议,在此不再一一赘述。
为了实现上述架构,需要在服务器布置阶段完成各个通信接口的设置及调试。
步骤310:服务器在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并。
本发明实施例中,每个用户登录电子商务***后,都会拥有一个用户标识信息用以唯一标识此次操作,可选的,可以采用“用户账号+流水号”作为用户标识信息。从用户登录第一个子***开始,各个子***之间也进行着信息交互,如,用户1完成登录后,登录***便将用户1的用户登录上下文结合用户1的用户标识信息直接传递至服务器,接着,再将用户1的用户标识信息通知下一个子***,如,产品展示***,而当用户完成产品选择后,产品展示***会将用户1的用户产品选择上下文结合用户1的用户标识信息直接传递至服务器,接着,再将用户1的用户标识信息通知下一个子***,如,支付***。
以此类推,直到用户1完成在各个子***中的全部操作,此时,服务器也获得了用户1在各个子***中产生的用户上下文。那么,服务器便可以将根据用户1的用户标识信息,筛选出具有用户1的用户标识信息的所有用户上下文,并对这些用户上下文进行合并,从而获得用户1此次操作的完整用户上下文。
具体的,本发明实施例中,在执行步骤310时,服务器分别根据每一个用户标识信息,提取出本地对应接收的用户上下文,再将对应同一用户标识信息接收的用户上下文进行内容整合。
其中,所谓将对应任意一用户标识信息接收的用户上下文进行内容整合,具体可以包括以下操作中的任意一种或组合:
第一类操作:服务器从基于上述任意一用户标识信息接收的来自于不同子***的用户上下文中,提取出上下文相关的信息内容进行关联保存。
例如:用户X在产品选择***中选取了产品X,那么,产品X在支付***中产生的支付信息,在物流监控***中产生的物流信息,以及在评价***中产生的评价信息便为相关的内容信息,服务器,需要将这些信息进行统一关联保存。
第二种操作:服务器根据分析***的分析需求,对基于上述任意一用户标识信息接收的来自于不同子***的用户上下文进行筛选。
实际应用中,服务器对应某一用户标识信息收集了所有的用户上下文,但分析***进行用户动态分析时,可能只需要其中的某一部分用户上下文,为了降低***数据传输负荷,服务器可以先根据分析***的分析需求对收集的用户上下文进行筛选后,再进行传送。
进一步地,在执行步骤310后,在执行步骤320之间,服务器还可以对合并后的用户上下文进行反查,对包含有指定标识的数据进行完善。
例如:服务器收集的用户X的支付信息中未包含有具体数据,而是记录链接地址,则服务器需要根据该链接地址连接到相应页面获取具体的支付信息,以完善用户上下文。
其他数据的反查也为类似操作,在此不再赘述。
步骤320:服务器将合并后的用户上下文发往分析***。
此时,服务器便可以将获得的完整的用户上下文发往分析***,以便于分析***基于完整的用户上下文进行用户动态分析。
在上述实施例中,当服务器确定对应任意一用户标识信息未收集到所有子***上报的用户上下文(即可能部分子***出现故障)时,需要向后台管理***进行报警提示。
下面采用一个具体的应用场景对上述实施例作出进一步详细介绍。
参阅图2所示,假设电子商务***内存在若干子***,分别称为A***,B***,C***,D***和E***;其中,
假设A***为登录***,用于记录用户登录上下文,如,用户ID,用户IP地址,用户MAC地址等等。
假设B***为产品展示***,用于记录用户产品选择上下文,如,用户选择的产品的ID,价格等等。
假设C***为支付***,用于记录用户产品支付上下文,如,用户支付单号,支付总额,支付手段,支付结果等等。
假设D***为监控***,用于记录物流监控上下文,如,产品发货单号,发货时间,到货时间等等。
假设E***为评价***,用于用户评价上下文,如,用户对产品质量,价格的具体评价等等。
那么,当用户X使用电子商务***时,其数据传递过程如下:
首先,用户X登录A***,A***对应用户X的用户标识信息(假设该用户标识信息为用户X的“用户ID+流水号”,简称标识X),记录用户X的用户登录上下文,并结合标识X将该用户登录上下文通过接口A发送至服务器,以及基于标识X通知B***用户X即将接入;
其次,用户X接入B***进行产品选取,B***对应标识X记录用户X的用户产品选择上下文,并结合标识X将该用户产品选择上下文通过接口B发送至服务器,以及基于标识X通知C***用户X即将接入;
再次,用户X接入C***进行产品支付,C***对应标识X记录用户X的用户产品支付上下文,并结合标识X将该用户产品支付上下文通过接口C发送至服务器,以及基于标识X通知D***用户X即将接入;
再次,用户X接入D***进行物流监控,D***对应标识X记录用户X的物流监控上下文,并结合标识X将该物流监控上下文通过接口D发送至服务器,以及基于标识X通知E***用户X即将接入;
最后,用户X接入E***进行产品评价,D***对应标识X记录用户X的用户评价上下文,并结合标识X将该用户评价上下文通过接口E发送于服务器。
此时,服务器再将对应标识X接收的所有用户上下文进行结合,从而获得用户X此次操作的完整的用户上下文;当时,在此过程中,若有必要,还需对部分或部分用户上下文进行反查及补充,在此不再赘述。
在上述过程中,接口A、接口B、接口C、接口D和接口E可以是分别采用不同通信协议的通信接口,也可以是部分或全部重叠的接口,具体视应用环境而定,在此亦不再赘述。
任意一个子***在将本地的用户上下文发送至服务器后,出于业务需求,也有可能将本地用户上下文中的部分内容发送至下一个子***,如,A***将用户X的IP地址发送给B***,以便B***基于IP地址跟踪用户X的操作行为;那么,当上一个子***中涉及传递的部分内容的相关配置更新时,下一个子***中的相关配置也需要相应更新。这样,虽然子***的配置还是会相互影响,但相较现有技术,相关性已大大降低,运维成本也随之大幅度下降。
参阅图4所示,本发明实施例中,服务器包括接收单元40、处理单元41和发送单元42,其中,
接收单元40,用于分别接收电子商务***中每一个子***发送的用户上下文;
处理单元41,用于在获得的所有用户上下文中,将具有相同用户标识信息的用户上下文进行合并;
发送单元42,用于将合并后的用户上下文发往分析***。
处理单元41具体用于:
分别根据每一个用户标识信息,提取出本地对应接收的用户上下文;
将对应同一用户标识信息接收的用户上下文进行内容整合。
较佳的,处理单元41具体用于:
从基于任意一用户标识信息接收的来自于不同子***的用户上下文中,提取出上下文相关的信息内容进行关联保存;
或/和
根据分析***的分析需求,对基于任意一用户标识信息接收的来自于不同子***的用户上下文进行筛选。
处理单元41进一步用于:
服务器对合并后的用户上下文进行反查,对包含有指定标识的数据进行完善。
较佳的,处理单元41进一步用于:
服务器确定对应任意一用户标识信息未收集到所有子***上报的用户上下文时,进行报警提示。
综上所述,本发明实施例中,电子商务***业务链上的各个子***分别将本地保存的用户上下文单独发送给统一的服务器,由服务器将具有相同用户标识的用户上下文合并后,发往分析***进行分析处理。这样,便采用分布式方式实现了用户上下文的采集和合并,解决了分布式***中的数据传输问题,同时,也降低了分布式***中各子***之间的依赖与耦合,从而大大降低了分布式***的运维成本;进一步地,当某一子***出现故障时,也不会对用户上下文的传递造成较大影响,有效保障的分布式***的运行可靠性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。