本发明专利技术提供了一种系统接口调用信息的获取方法和装置,包括:对各层系统接口的调用请求分别进行拦截并分别生成拦截对象;将各拦截对象根据各层调用的先后顺序入栈;然后按后进先出的顺序将堆栈中的各拦截对象进行出栈处理并添加出栈时刻对应的结束时间戳;根据出栈后的各拦截对象获取相应各层系统接口的调用信息。本发明专利技术提供的系统接口调用信息的获取方法和装置,能统计出每个业务操作在服务器端的执行时间,同时又能做到对业务代码透明化,即做到精确统计的目的,又无需在业务代码里到处做程序调整。
【技术实现步骤摘要】
本专利技术涉及通信领域,尤其涉及一种系统接口调用信息的获取方法和装置。
技术介绍
随着计算机技术的发展,用户可以在计算机系统中安装各式各样的应用程序来满足其不同的使用需求,对于各种应用程序,获取其使用的频率,根据各个应用程序的使用频率来优化系统。目前大部分基于j2ee的程序都遵循MVCXmodel view controller模型-视图-控制器)架构,通过软件分层来实现,基于此架构搭建的应用系统,每一个动作都基本对应一个具体的业务操作,如创建订单是一个单独的动作,如何能统计出每个业务操作在服务器端的调用信息,目前尚没有很好的解决方案。
技术实现思路
在下文中给出关于本专利技术的简要概述,以便提供关于本专利技术的某些方面的基本理解。应当理解,这个概述并不是关于本专利技术的穷举性概述。它并不是意图确定本专利技术的关键或重要部分,也不是意图限定本专利技术的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。一方面,本专利技术提供一种系统接口调用信息的获取方法,包括:对各层系统接口的调用请求分别进行拦截并分别生成拦截对象;将各拦截对象根据各层调用的先后顺序入栈;然后按后进先出的顺序将堆栈中的各拦截对象进行出栈处理并添加出栈时刻对应的结束时间戳;根据出栈后的各拦截对象获取相应各层系统接口的调用信息。另一方面,本专利技术还提供了一种系统接口调用信息的获取装置,包括:拦截器,用于对各层系统接口的调用请求分别进行拦截并分别生成拦截对象;堆栈模块,用于将各拦截对象根据各层调用的先后顺序入栈;按后进先出的顺序将堆栈中的各拦截对象进行出栈处理并添加出栈时刻对应的结束时间戳;信息获取模块,用于根据出栈后的各拦截对象获取相应的调用信息。本专利技术提供的系统接口调用信息的获取方法和装置,通过拦截各层系统接口的调用请求并创建拦截对象,根据调用的先后顺序控制各拦截对象的入栈,并根据各拦截对象后进先出的顺序控制各拦截对象出栈,由此获取各层系统接口的调用信息。可见,该技术方案可精确获取所述调用信息,同时基于拦截技术和出入栈控制还可做到各层系统接口业务代码的透明化,即做到精确统计的目的,又无需在业务代码里到处做程序调整,实现方式简单。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中系统接口调用信息的获取方法流程图;图2至图6为本专利技术实施例中各拦截对象入栈和出栈示意图;图7为本专利技术实施例中系统接口调用信息的获取装置可选的模块结构图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。在本专利技术的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本专利技术无关的、本领域普通技术人员已知的部件和处理的表示和描述。基于本专利技术中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例一:如图1所示为本专利技术实施例中系统接口调用信息的获取方法流程图,本专利技术提供了一种系统接口调用信息的获取方法,包括步骤:Sll:对各层系统接口的调用请求分别进行拦截并分别生成拦截对象;S12:将各拦截对象根据各层调用的先后顺序入栈;S13:按后进先出的顺序将堆栈中的各拦截对象进行出栈处理并添加出栈时刻对应的结束时间戳;S14:根据出栈后的各拦截对象获取相应各层系统接口的调用信息。在系统操作中每一个动作对应一个具体的业务操作,例如创建订单等等,统计每个业务操作在服务器端的执行时间等信息需要相应的方法,本实施例提供了一种调用信息的获取方法。本实施例提供的调用信息获取方法通过对调用请求进行拦截并生成拦截对象的方法,不需要在系统的业务代码中进行修改,就可以获取到调用信息。首先,系统中不同层的接口会发出调用请求,首先对不同的系统接口的调用请求进行拦截并分别生成拦截对象,可选的,所述拦截对象包括相应系统接口的调用请求和调用开始时间戳,即获取对相应系统接口进行调用需要的调用请求和开始调用的时间。所述拦截并不是对所有的调用请求都进行拦截,可选的面对各层系统接口的调用请求,根据预设条件选择要拦截的指定业务操作或者剔除不需要拦截的地址。例如,统计用户访问某个链接的次数,需要拦截对所述链接的访问,对其他链接的访问则不需要拦截。对不同系统接口的调用请求进行拦截并生成拦截对象,即对调用请求打上标记,拦截对象可以在接下来的步骤中进行比较,从而根据这些拦截对象获取调用信息。然后将各拦截对象根据各层调用的先后顺序入栈,可选的,所述系统接口根据调用的先后顺序分为:WEB层,业务层,数据层;在业务系统中,对不同层进行调用,并且根据调用的顺序入栈。随后根据后进先出的顺序将堆栈中的各个拦截对象进行出栈处理,即对相应系统接口的调用请求和调用开始时间戳进行出栈处理,在出栈的同时添加对应的结束时间戳。出栈时添加结束时间戳,与之前拦截时生成的调用开始时间戳相对应,根据获得的时间戳获取系统接口的调用信息。最后根据出栈后的各拦截对象,所述拦截对象为对系统接口的调用请求,调用开始时间戳和调用结束时间戳,根据上述信息获取相应各层系统的调用信息。可选的,所述系统接口调用信息的获取方法还包括:采用异步的方式发送所述调用信息。所述异步为一种通讯方式,双方不需要共同的时钟,发送方可以在任何时候进行发送,在发送的信息中有提示接收方开始接收的信息,例如开始位,结束的时候有结束位。本专利技术中提到的提示接收方开始接收或结束接收消息的信号为,调用开始时间戳和调用结束时间戳。采用异步方式发送调用信息适用于突发性传输,具有灵活性,适用范围较广,并且传输效果比较理想,并且统计不影响整个系统的性能。为了清楚的描述本专利技术实施例,首先对本专利技术实施例涉及的相关技术术语做一些介绍:hornetq是一个支持集群和多种协议,可嵌入、高性能的异步消息系统。Struts2拦截器是在访问某个Act1n或Act1n的某个方法之前或之后实施拦截。Spring框架是一个轻量级控制反转和面向切面的容器框架。AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。下面不妨以本实施例系统接口调用信息的获取方法在hornetq系统中的应用,进一步说明本专利技术的技术方案。可选的,本专利技术所述的拦截器可为Struts2拦截器。业务系统通过统计,收集客户端程序,通过hornetq消息服务器将数据保存到监控平台的数据库中,用户通过监控中心统一查看调用堆栈信息。每个act1n基本对应一个具体的业务操作,本实施例对act1n的统计采用struts〗的拦截器技术进行实现的,在该拦截器中可以配置是否启用此统计功能,通过在该拦截器中设置一个标记位,所述标记位默认启本文档来自技高网...
【技术保护点】
一种系统接口调用信息的获取方法,其特征在于,包括:对各层系统接口的调用请求分别进行拦截并分别生成拦截对象;将各拦截对象根据各层调用的先后顺序入栈;按后进先出的顺序将堆栈中的各拦截对象进行出栈处理并添加出栈时刻对应的结束时间戳;根据出栈后的各拦截对象获取相应各层系统接口的调用信息。
【技术特征摘要】
【专利技术属性】
技术研发人员:佘敏,吉惠,冷合礼,王旭政,张涛,王森,赵晨,
申请(专利权)人:青岛海尔空调器有限总公司,海尔集团公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。