非入侵式客户端运行时数据采集方法与系统技术方案

技术编号:12422166 阅读:135 留言:0更新日期:2015-12-02 17:35
本发明专利技术提供一种非入侵式客户端运行时数据采集方法与系统,配置需采集客户端运行数据类型,获得配置数据,根据配置数据采集客户端运行数据,将客户端运行数据采用统一且开放的协议封装,分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。整个过程中,无需对客户端业务逻辑代码进行修改,客户端业务逻辑代码和客户端运行数据采集代码相互独立,不存在相互耦合影响,代码不容易出错和泄露,客户端数据采集的可靠性和安全性大大提高。

【技术实现步骤摘要】

本专利技术涉及数据采集
,特别是涉及非入侵式客户端运行时数据采集方法与系统
技术介绍
客户端运行时的一些数据,包括用户使用哪些功能、使用频率、客户端运行效率以及运行时发生的异常等数据,对改进客户端的用户体验、提高互联网业务的运营效果都有重要意义,基本上每个客户端都有采集、统计并上报客户端运营数据的需求。但传统的数据采集方法实际上把数据采集代码与处理业务逻辑的代码写在一起,使得实际的业务代码与采集数据的代码紧密耦合,导致代码容易出错、容易泄漏数,存在可靠性和安全性低等问题。
技术实现思路
基于此,有必要针对现有客户端运行时数据采集方式存在可靠性和安全性低的问题,提供一种可靠性和安全性高的非入侵式客户端运行时数据采集方法与系统。—种非入侵式客户端运行时数据采集方法,包括步骤:配置需采集客户端运行数据类型,获得配置数据;根据所述配置数据采集客户端运行数据;将所述客户端运行数据采用统一且开放的协议封装;分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。一种非入侵式客户端运行时数据采集系统,包括:配置模块,用于配置需采集客户端运行数据类型,获得配置数据;采集模块,用于根据所述配置数据采集客户端运行数据;封装模块,用于将所述客户端运行数据采用统一且开放的协议封装;上传模块,用于分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。本专利技术非入侵式客户端运行时数据采集方法与系统,配置需采集客户端运行数据类型,获得配置数据,根据配置数据采集客户端运行数据,将客户端运行数据采用统一且开放的协议封装,分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。整个过程中,无需对客户端业务逻辑代码进行修改,客户端业务逻辑代码和客户端运行数据采集代码相互独立,不存在相互耦合影响,代码不容易出错和泄露,客户端数据采集的可靠性和安全性大大提高。【附图说明】图1为本专利技术非入侵式客户端运行时数据采集方法第一个实施例的流程示意图;图2为本专利技术非入侵式客户端运行时数据采集方法第二个实施例的流程示意图;图3为本专利技术非入侵式客户端运行时数据采集系统第一个实施例的结构示意图;图4为本专利技术非入侵式客户端运行时数据采集系统第二个实施例的结构示意图。【具体实施方式】如图1所示,一种非入侵式客户端运行时数据采集方法,包括步骤:SlOO:配置需采集客户端运行数据类型,获得配置数据。客户端在运行过程中会产生大量的数据,我们在对客户端运行数据进行采集之前需要明确当前需要采集哪些数据,这样一方面能够减少数据采集、处理量,另外一方面能够提高数据采集的准确性。具体来说,配置数据包括跟踪客户端的数据类、统计客户端运行性能数据类、客户端异常情况关注数据类以及客户端异常情况处理数据类。针对不同的客户端,我们可以在服务器进行统一的配置,以使后续操作中可以根据实际情况的需要,采集与服务器连接各种类型客户端的数据。S200:根据所述配置数据采集客户端运行数据。根据配置数据采集客户端运行数据,这个采集过程可以通过拦截方法调用实现。针对不同操作系统的客户端采用不同的拦截方法,具体来说,在其中一个实施例中,步骤S200包括步骤:步骤一:识别客户端类型,其中,所述客户端类型包括安卓系统客户端和1S系统客户端。客户端类型主要包括安卓系统客户端和1S系统客户端,例如安卓系统智能手机和苹果智能手机。步骤二:当客户端为安卓系统客户端时,利用JavaAgent技术修改所述配置数据指定的类,编译修改后的字节码,并对不同的数据采集需求植入不同的数据采集代码,更新配置数据。步骤三:当客户端为1S系统客户端时,利用Method Swizzling技术对所述配置数据添加代码更新配置数据。步骤四:根据更新后的配置数据采集客户端运行数据。对安卓系统客户端而言,利用JavaAgent技术修改配置数据指定的类,编译后的字节码,并可按下述原理对不同的数据采集需求植入不同的数据采集代码,更新配置数据;对于1S客户端而言,利用Method Swizzling技术,对可按下述原理添加代码更新配置数据,最后根据更新后的配置数据采集客户端运行数据。具体原理为:I)对于需要统计访问量的功能,直接在对应的统计方法中加入记录方法已被调用的代码即可,这里记录用户对客户端某个功能的使用情况。2)对于需要统计客户端运行性能的功能,如果只需要统计一类数据,直接在该类数据的开头植入获取系统时间的代码,然后在该类数据的结尾植入获取系统当前时间的代码并计算两个时间的时间差值;如果需要统计多类数据的执行时间,只需在第一类数据执行前和最后一类数据执行后分别获取系统时间并计算二者的差值即可。3)对于网络访问数据,自动采集并存储网络类型、网络速度数据和HTTP (Hypertext transfer protocol,超文本传送协议)响应状态码数据,具体做法:对1S客户端,利用NSURLProtocol替换NSURLConnect1n或者NSURLSess1n的默认实现,即可拦截HTTP相关的网络数据。S300:将所述客户端运行数据采用统一且开放的协议封装。在客户端运行时,由这些数据采集代码自动地采集数据并把搜集到的数据异步地传递给服务器,所有采集到的数据采用统一、开放的协议封装,方便供各类客户端使用。S400:分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。本专利技术非入侵式客户端运行时数据采集方法,配置需采集客户端运行数据类型,获得配置数据,根据配置数据采集客户端运行数据,将客户端运行数据采用统一且开放的协议封装,分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。整个过程中,无需对客户端业务逻辑代码进行修改,客户端业务逻辑代码和客户端运行数据采集代码相互独立,不存在相互耦合影响,代码不容易出错和泄露,客户端数据采集的可靠性和安全性大大提高。如图2所示,在其中一个实施例中,步骤S200之前还有步骤:S120:验证所述配置数据的有效性,当验证成功时,进入所述根据所述配置数据采集客户端运行数据的步骤,当验证失败时,读取预设默认配置数据。预设默认配置数据可以是基于历史经验数据或者专家数据预设存储的,当配置数据验证不成功时,丢弃步骤SlOO获得的配置数据,读取预设默认配置数据作为有效的配置数据进入下一步。对配置数据进行验证确保配置数据的合法、有效性,提高客户端运行时数据采集的准确性。在其中一个实施例中,所述根据所述配置数据采集客户端运行数据具体包括步骤:识别客户端类型,其中,所述客户端类型包括安卓系统客户端和1S系统客户端;当客户端为安卓系统客户端时,利用JavaAgent技术修改所述配置数据指定的类,编译修改后的字节码,并对不同的数据采集需求植入不同的数据采集代码,更新配置数据;当客户端为1S系统客户端时,利用Method Swizzling技术对所述配置数据添加代码更新配置数据;根据更新后的配置数据采集客户端运行数据。在其中一个实施例中,所述分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据具体包括步骤:分析所述客户端运行数据,并根据所述配置数据建立客户端全局默认的异常信息米集和处理类;当客户端运行发本文档来自技高网...

【技术保护点】
一种非入侵式客户端运行时数据采集方法,其特征在于,包括步骤:配置需采集客户端运行数据类型,获得配置数据;根据所述配置数据采集客户端运行数据;将所述客户端运行数据采用统一且开放的协议封装;分析所述客户端运行数据,当客户端运行发生异常时,采集并上传客户端异常数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:李志毅罗国鸿田标邓捷马幸晖
申请(专利权)人:世纪龙信息网络有限责任公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1