获取基于SaaS的交互式程序的交互强度的方法技术

技术编号:8532644 阅读:224 留言:0更新日期:2013-04-04 15:33
本发明专利技术提供一种获取基于SaaS的交互式程序的交互强度的方法,本发明专利技术的方法通过截获软件即服务系统SaaS平台中用于主入口程序创建子进程的核心系统调用、与端口相关的第一系统调用和用于读取数据的第二系统调用,从而获取SaaS系统中主入口程序创建的至少两个子进程的相关信息,并根据至少两个子进程的相关信息而最终获取各子进程的当前交互强度,以使SaaS系统能够根据各子进程的交互强度合理的分配资源,从而提高SaaS资源的利用率。

【技术实现步骤摘要】

本专利技术涉及计算机技术,尤其涉及一种获取基于SaaS的交互式程序的交互强度 的方法。
技术介绍
随着移动互联网用户数量的爆炸式增长,导致应用软件使用的需求量急剧增加, 但是由于用户的接入终端受到配置和计算能力的限制,因此一个终端无法承载所有的应用 软件、存储众多类型的资源,基于此,一种新的软件应用模式软件即服务(Software as a Service,简称SaaS)应运而生,SaaS是一种通过Internet提供软件的模式,由提供商将应 用软件统一部署在自己的服务器上,用户则可以根据自己的实际需求,通过各种不同的终 端访问互联网以向提供商定购所需的应用软件服务,而且用户无需对软件进行维护,服务 提供商会全权管理和维护软件。对于许多小型企业来说,SaaS是采用先进技术的最好途径, 它消除了企业购买、构建和维护基础设施和应用程序的需要。但是,在SaaS软件服务中,大部分程序都具有很强的人机交互特性,一个应用程 序很可能在一段时间内交互较强,一段时间内交互较弱,而在现有技术中并没有能够获知 SaaS系统中交互式程序的交互强度的方法。
技术实现思路
本专利技术的目的在于提供一种,以 获取基于SaaS的交互式程序的交互强度。本专利技术提供了一种,包括截获软件即服务系统SaaS中用于主入口程序创建子进程的核心系统调用;根据所述核心系统调用获取所述主入口程序生成的至少两个子进程以及所述至 少两个子进程对应的进程号、进程名、父进程号以及窗口号;根据所述至少两个子进程中各子进程是否发起与端口相关的第一系统调用,确定 各子进程的进程类型;根据所述至少两个子进程对应的进程号、进程名、父进程号、窗口号以及进程类 型,确定所述至少两个子进程之间的关系;若所述至少两个子进程中的一个子进程发起用于读取数据的第二系统调用,则确 定所述发起第二系统调用的子进程的当前交互强度,并根据所述至少两个子进程之间的关 系确定与所述发起第二系统调用的子进程有关系的各子进程的当前交互强度。采用上述本专利技术技术方案的有益效果是通过截获软件即服务系统SaaS平台中 的核心系统调用、第一系统调用和第二系统调用,从而获取SaaS系统中主入口程序创建的 至少两个子进程的相关信息,进而根据至少两个子进程的相关信息而最终获取各子进程的 当前交互强度。附图说明图1为本专利技术实施例一提供的一种获取基于SaaS的交互式程序的交互强度的方 法的流程示意图2为本专利技术实施例一中Switch算法执行图3为本专利技术实施例一中Back_T算法执行图。具体实施方式由于近年流行的虚拟化技术对SaaS也有很大影响,将应用软件运行在独有的虚 拟环境中,称为应用软件的虚拟化,软件虚拟化消除了运行环境共享带来的多种弊端,同时 得益于可迁移等特性,因此可以更加灵活地使用SaaS运营商的计算资源。而虚拟化是一个 广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化计算系统可 以更加充分合理地利用计算资源,满足日益多样的计算需求,使人们能够透明、高效、可定 制地使用计算资源,从而真正实现灵活构建、按需计算的理念。虚拟机是计算系统虚拟化的基础,将虚拟化技术与SaaS技术相结合,将软件作为 服务提供,并且通过虚拟化技术可以使得软件的显示和执行分离,并将不同平台和机器的 应用显示融合,通过分离可以在轻量级、移动客户端上访问应用,较Web-based (基于网页) 应用而言具有更好的用户交互体验。因此为了保证软件的服务质量,软件的用户体验,提高 资源的利用率以及并发处理用户请求的能力,需要具有一套良好的监控调度系统,跟踪系 统中的实时进程,并对系统中的突发事件做出及时、恰当的处理,例如,当一个交互式应用 程序交互较弱时,由于其不会占用计算资源,因此,可以释放其所占用的资源或降低其调度 优先级;而当一个交互式应用程序交互较强时,则可以为其分配计算资源并提高其调度优 先级。图1为本专利技术实施例一提供的一种获取基于SaaS的交互式程序的交互强度的方 法的流程示意图,如图1所示,所述方法可以包括如下步骤步骤101,截获软件即服务系统SaaS中用于主入口程序创建子进程的核心系统调 用;步骤102,根据所述核心系统调用获取所述主入口程序生成的至少两个子进程以 及所述至少两个子进程对应的进程号、进程名、父进程号以及窗口号;步骤103,根据所述至少两个子进程中各子进程是否发起与端口相关的第一系统 调用,确定各子进程的进程类型; 步骤104,根据所述至少两个子进程对应的进程号、进程名、父进程号、窗口号以及 进程类型,确定所述至少两个子进程之间的关系;步骤105,若所述至少两个子进程中的一个子进程发起用于读取数据的第二系统 调用,则确定所述发起第二系统调用的子进程的当前交互强度,并根据所述至少两个子进 程之间的关系确定与所述发起第二系统调用的子进程有关系的各子进程的当前交互强度。首先,需要说明的是系统调用的原理,例如,在Linux系统中,其系统调用一般通 Sint 80h实现,用系统调用号来区分入口函数。操作系统实现系统调用的基本过程是 应用程序调用库函数应用程序编程接口(ApplicationProgramming Interface,简称API), API将系统调用号存入通用扩展累加器(Extended accumulator register,简称EAX),然后通过中断调用使系统进入内核态;内核中的中断处理函数根据系统调用号,调用对应的内核函数(即系统调用);系统调用完成相应功能,并将返回值存入EAX,返回到中断处理函数; 中断处理函数返回到API中;API将EAX返回给应用程序,从而实现系统调用的全过程。另外,交互式程序可以是用户敲击键盘,移动鼠标的事件所产生的进程,同时观看视屏,音频也可以是认为是一种交互,这些信息都需要与计算机硬件交流。而在SaaS平台中用户通过虚拟网络计算机(Virtual NetworkComputing,简称VNC)与显示节点(对应于Iinux下真实进程Xvnc,处理用户桌面的显示,其中,第一显示节点对应于一个用户)通信,从用户发起交互到得到回显信息,中间参与的一系列进程都会发起read (linux下读操作系统调用)或 readv (linux下另一种读操作系统调用)系统调用,而与这些进程相关的子进程,大多都通过管道,消息队列或伪终端进行进程间通信,这些通信机制都有read或readv系统调用的参与,所以对read和readv系统调用的截获可以直接反应用户的交互情况。在本专利技术实施例中,执行主体可以是监控调度系统,其可以部署在SaaS平台中, 以获取SaaS平台上的各交互式程序的交互强度,从而为后续的资源分配以及优先级调度提供有效的依据。由于在SaaS平台中每个计算节点对应于一个Iinux虚拟机,也可以认为是一个真实的物理机,都有一个计算资源的统一分配入口,所有的计算资源请求都是通过主入口程序分配的。而Linux系统提供了一个很强大的用于跟踪目标进程的系统调用sys_ ptrace,父进程可以在用户态观察和控制其子进程的执行,并允许父进程检查和替换子进程的内核镜像(包括寄存器)的值。其基本原理是当使用了 Ptrace跟踪后,大多数发送给被跟踪的子进程的信号,都会被转发给父进程,本文档来自技高网...

【技术保护点】
一种获取基于SaaS的交互式程序的交互强度的方法,其特征在于,包括:截获软件即服务系统SaaS中用于主入口程序创建子进程的核心系统调用;根据所述核心系统调用获取所述主入口程序生成的至少两个子进程以及所述至少两个子进程对应的进程号、进程名、父进程号以及窗口号;根据所述至少两个子进程中各子进程是否发起与端口相关的第一系统调用,确定各子进程的进程类型;根据所述至少两个子进程对应的进程号、进程名、父进程号、窗口号以及进程类型,确定所述至少两个子进程之间的关系;若所述至少两个子进程中的一个子进程发起用于读取数据的第二系统调用,则确定所述发起第二系统调用的子进程的当前交互强度,并根据所述至少两个子进程之间的关系确定与所述发起第二系统调用的子进程有关系的各子进程的当前交互强度。

【技术特征摘要】
1.一种获取基于SaaS的交互式程序的交互强度的方法,其特征在于,包括 截获软件即服务系统SaaS中用于主入口程序创建子进程的核心系统调用; 根据所述核心系统调用获取所述主入口程序生成的至少两个子进程以及所述至少两个子进程对应的进程号、进程名、父进程号以及窗口号; 根据所述至少两个子进程中各子进程是否发起与端口相关的第一系统调用,确定各子进程的进程类型; 根据所述至少两个子进程对应的进程号、进程名、父进程号、窗口号以及进程类型,确定所述至少两个子进程之间的关系; 若所述至少两个子进程中的一个子进程发起用于读取数据的第二系统调用,则确定所述发起第二系统调用的子进程的当前交互强度,并根据所述至少两个子进程之间的关系确定与所述发起第二系统调用的子进程有关系的各子进程的当前交互强度。2.根据权利要求1所述的方法,其特征在于,所述截获软件即服务系统SaaS中用于主入口程序创建子进程的核心系统调用,具体包括 通过进程跟踪的系统调用Ptrace截获SaaS中用于主入口程序创建子进程的核心系统调用。3.根据权利要求1所述的方法,其特征在于,所述根据所述核心系统调用获取所述主入口程序生成的至少两个子进程以及所述至少两个子进程对应的进程号、进程名、父进程号以及窗口号,包括 若所述用于主入口程序创建子进程的核心系统调用为sys_f0rk或sysjfork,则将所述 sys_fork 或 sys_vfork 替换为 sys_clone ; 根据所述SyS_Clone获取所述主入口程序生成的至少两个子进程以及所述至少两个子进程对应的进程号、进程名、父进程号以及窗口号。4.根据权利要求1 3任一项所述的方法,其特征在于,所述根据所述至少两个子进程中各子进程是否发起与端口相关的第一系统调用,确定各子进程的进程类型,包括 若所述至少两个子进程中的一个子进程发起与端口相关的第一系统调用,且所述与端口相关的第一系统调用为分配端口的系统调用sys_bind,则根据所述sys_bind获取当前发起所述sys_bind的子进程的端口号,并确定所述子进程的类型为展现进程VspaCe_Process、进程名为 Xvnc ; 若所述至少两个子进程中的一个子进程发起与端口相关的第一系统调用,且所述与端口相关的第一系统调用为连接端口的系统调用sys_connect,则根据所述sys_connect获取当前发起所述syS_COnneCt的子进程的端口号,并确定所述子进程的类型为执行进程Vprocess_Process、进程名为 Xclient05.根据权利要求4所述的方法,其特征在于,还包括 若所述至少两个子进程中的一个子进程未发起与端口相关的第一系统调用,且所述未发起第一系统调用的子进程与另一个进程名为Xvnc的子进程具有相同的窗口号,则确定所述未发起第一系统调用的子进程为所述Xvnc子进程的辅助进程; 若所述辅助进程的进程名在预设的第一白名单内,则确定所述辅助进程的进程类型为第一展现辅助进程Vspace_Like_Process ; 若所述辅助进程的进程名不在预设的第一白名单内,则确定所述辅助进程的进程类型为第二展现辅助进程Vspace—Relate—Process。6.根据权利要求5所述的方法,其特征在于,还包括 若所述至少两个子进程中的一个子进程未发起与端口相关的第一系统调用,且所述未发起第一系统调用的子进程的父进程号与另一个进程名为Xclient的子进程的进程号相同,则确定所述未发起第一系统调用的子进程为所述Xclient子进程的辅助进程; 若所述辅助进程的进程名在预设的第二白名单内,则确定所述辅助进程的进程类型为第一执行辅助进程 Vprocess—Like—Process ; 若所述辅助进程的进程名不在预设的第二白名单内,则确定所述辅助进程的进程类型为第二执行辅助进程 Vprocess—Relate—Process。7.根据权利要求6所述的方法,其特征在于,所述根据所述至少两个子进程对应的进程号、进程名、父进程号、窗口号以及进程类型,确定所述至少两个子进程之间的关系,包括 若所述至少两个子进程中的两个子进程均为Vprocess—Process类型,且所述两个子进程分别对应的父进程号、进程名、端口号均相同,则确定所述两个Vprocess—Process类型的子进程为兄弟进程; 若所述至少两个子进程中的一...

【专利技术属性】
技术研发人员:胡春明柴琛林李建欣康俊彬
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1