识别推送通信模式的制作方法

文档序号:7994205阅读:125来源:国知局
识别推送通信模式的制作方法
【专利摘要】一种用于识别推送通信模式的方法,包括从通信实体的响应缓冲器创建簇。检测满足第一标准的簇。在确定检测到的簇满足第二标准时,识别所述通信实体为具有推送通信模式。
【专利说明】识别推送通信模式

【背景技术】
[0001]用于验证应用程序性能的软件工具能够通过将生产工作负荷应用到应用程序平台或环境来仿真数百或者数千的并发用户。所述仿真使应用程序经受严格的现实用户负载同时从关键基础组件收集信息。这种应用程序性能工具将一致的、可测量的、并且可重复的负载应用到测试下的应用程序,然后使用结果数据来识别能够影响真实用户的可测量性问题。应用程序性能工具可包括虚拟用户生成器,其能够运行脚本以将负载应用到在测试下的应用程序。为了有用,这些代码文本移动应当精确地仿真生产中应用程序将经历的通信模式。

【专利附图】

【附图说明】
[0002]图1描绘了可实施多种实施例的环境。
[0003]图2描绘了根据一个例子的系统。
[0004]图3是框图,描绘了根据一个例子的存储器和处理资源。
[0005]图4是流程图,描绘了用于实施一个例子的步骤。

【具体实施方式】
[0006]介绍:以下描述的多种实施例被展开以在通信实体序列中识别推送通信模式。通信实体是在客户端和服务器之间交换的请求/响应对。在一个例子中,客户端直接发送引导到服务器的网络地址的HTTP请求,并且所述服务器向所述客户端返回HTTP响应。
[0007]推送通信通常用于实时地向客户端通知服务器侧事件。电子邮件消息的到达和证券报价机的更新正是这类事件的两个例子。由于安全性关注,服务器不发起此种通知。而是,客户端通过向服务器上的已知地址发送请求来开启通信。服务器向客户端发送看起来具有无穷长度的应答。结果,所述客户端保持通信的开启。当需要时,所述服务器在所建立的连接上向客户端发送更新。这里称这些更新为“子消息”。如果所述服务器没有要报告的更新或者子消息,则其周期性地查验所述客户端以防止客户端超时并关闭所述连接。
[0008]已经证明,识别诸如HTTP的传输协议上的推送通信是复杂的。所有HTTP通信均都基于请求应答往返(通信实体)而不仅是HTTP推送。大型文件的HTTP通信实体可能看起来像推送通信。在客户端侧通过将字节捕获到套接字层缓冲器中来进行记录。随着时间的进行,所述客户端的套接字层缓冲器将通常区别于由所述服务器发送的套接字层缓冲器。其的发生是因为业务通常通过多个路由器并且经过不同协议而经历了网络延迟。推送消息内容的格式不是可预测的,而是由所述客户端和服务器确定的。而且,客户端可能在相对短的时间内访问包含推送的页面。
[0009]在一个示例实施方式中,通过从通信实体的响应缓冲器创建簇来完成对推送通信模式的识别。如果响应缓冲器的到达时间差落到预定阈值之内,则它们可能被聚合到同一簇中。这种簇技术遵照以下假定,即在客户端响应缓冲器中将接近准时地接收给定推送通信子消息的字节。在存在充分间隙的情况下,所述缓冲器被包括在分离的簇中并且可能属于不同子消息。检测到符合第一标准的簇。在一个例子中,该标准包括阈值大小使得低于该大小的簇被检测到。第一标准能够帮助确保每个检测到的簇包括单个子消息,或者在一些情况下相对较少的子消息。
[0010]在确定检测到的簇满足第二标准时,将所述通信实体识别为具有推送通信模式。可能选择该第二标准以要求所检测到的簇包括多个超出预定阈值的簇。可能选择所述标准以要求所检测到的簇构成大于所有所述实体的簇的预定义百分率。所述第二标准还可能要求所检测到的簇一起构成大于通信实体的响应长度的预定义百分率。
[0011]以下说明分为几个部分。标签“环境”的第一部分描述了网络环境的例子,其中可实施多个实施例。标签“组件”的第二部分描述了用于实施多个实施例的物理和逻辑组件的例子。标签“操作”的第三部分描述了用来实施多个实施例的步骤。
[0012]环境:图1描绘了环境10,其中可实施多个实施例。示出的环境10包括模式识别系统12、数据存储14、服务器设备16,以及客户端设备18。在下面参照图2和3所描绘的,模式识别系统12通常代表了配置为在通信实体序列中识别推送通信模式的硬件和程序设计的任意组合。数据存储14通常代表了配置存储供模式识别系统12使用的数据的任意设备或者设备的组合。这些数据可能包括记录的通信实体序列。
[0013]在图1的例子中,通信实体序列能代表在一个或多个服务器设备16与一个或多个客户端设备18之间在一段时间内记录的网络通信(诸如HTTP业务)。服务器设备16通常代表任意计算设备,其被配置为应答从客户端设备18接收的网络请求。给定的服务器设备16可能包括web服务器、应用服务器,或数据服务器。客户端设备18通常代表与浏览器或其他应用程序一起配置为传送这种请求以及接收并处理相应响应的任意计算设备。链路20通常表示经由电信链路、红外链路、射频链路、或任何其他提供电子通信的连接器或系统的电缆、无线、光纤、或远程连接中的一个或多个。链路20可能至少部分地包括内部网、因特网、或两者的组合。链路20还可能包括中间代理器、路由器、交换机、负载均衡器等等。
[0014]组件:图2-3描绘了用于实施多种实施例的物理和逻辑组件的例子。图2描绘了与数据存储14通信的模式识别系统12。如所示,数据存储14包含供系统12进行分析的通信实体序列。在图2的例子中,系统12包括过滤引擎22、簇引擎24、检测引擎26、和识别引擎28。过滤引擎22运行以根据明显不是推送通信的考虑而移除通信实体。引擎24-28分析每个剩余的通信实体以确定该实体是否具有推送通信模式。
[0015]过滤引擎22通常代表配置为过滤通信实体序列以根据标准移除通信实体的硬件和程序的任意组合。选择所述标准使得过滤排除了不可能为推送通信的通信实体。例如,所述标准可能使过滤引擎22检查每个通信实体的响应并且仅在确定了响应使用成块的传输编码时保留特定实体。过滤引擎22还可能要求所述响应的内容长度为零或者大于预定阈值。过滤引擎22可能通过仅检查通信实体的响应报头来有效地完成此。
[0016]然后,簇引擎、检测引擎和识别引擎24、26和28在保留的通信实体上操作——那些未被过滤引擎22移除的通信实体。簇引擎24通常代表配置为从给定通信实体的响应缓冲器创建簇的硬件和程序设计的任意组合。创建每个簇使得如果通信实体被识别为推送通信,其可能潜在地代表不同子消息。检测引擎26代表配置为检测那些簇中的哪些满足特定标准的硬件和程序设计的任意组合。识别引擎28代表配置为在确定所检测到的簇满足另一标准时将给定通信实体识别为具有推送通信模式的硬件和程序设计的任意组合。
[0017]对引擎24-28进行详细阐述,簇引擎24可以通过以下步骤来执行其功能:对每个响应缓冲器的到达时间进行检查,并且如果到达时间差落在预定阈值之内则将那些响应缓冲器聚合在同一簇内。例如,响应缓冲器可能为套接字层缓冲器,响应的内容被馈送到其中。两个缓冲器之间更接近的到达时间能够指示那些缓冲器的内容是同一子消息的一部分。因此,在另一缓冲器的到达时间与前述缓冲器的到达时间的区别大于所述预定阈值的情况下,该另外的缓冲器被聚合到不同簇中并且假定地包含不同子消息的内容。
[0018]检测引擎26可以通过对所述给定通信实体检查由簇引擎24创建的簇来执行其功能。根据所述检查,检测引擎26识别或者以其他方式检测那些内容长度低于预定阈值的簇。选择该阈值使得所检测到的簇的大小指示推送通信的单个子消息(或少量的小子消息)。
[0019]然后,识别引擎28能够通过以下步骤执行其功能:将由检测引擎26检测到的簇与其他标准进行比较。所述其他标准可被选择以确保有足够的信息来将所述通信实体分类为推送通信。选择所述标准以执行一个假设,即,在极大程度上,所述通信实体的簇具有指示它们每个代表子消息的特征。还可能选择所述标准以帮助防止将用于传输大型文件的通信实体误识别为推送通信。
[0020]因此,在给定实施方式中,识别引擎28可以仅在确定以下至少一个来将通信实体识别为具有推送通信模式:
?所检测到的簇包括多个超出预定阈值的簇;
?所检测到的簇相对于所有所创建的簇的百分比超出预定阈值,以及 ?包含在所检测到的簇中的响应长度的百分比仍超出另一预定阈值。
要求阈值数量的所检测到的簇有助于确保有足够的信息来用于将通信实体分类为推送通信。要求所有簇中要检测的簇占有高百分比遵照一个前提,即,通信实体的所有或几乎所有的簇具有表示不同子消息的特征。最后,要求所检测到的簇占据总响应长度的给定百分率则有助于排除用于传输大型文件的通信实体。
[0021 ] 识别引擎28还可以负责传输与所识别的通信实体相关的信息。例如,识别引擎28可能引起图形用户接口的更新,所述图形用户接口显示了被识别为具有推送通信模式的实体的细节。所述更新可能唤起或者以其他方式高亮所述通信实体细节的显示。所述高亮传达了所对应的实体已经被识别为具有推送通信模式。所述识别还可能经由电子邮件或其他网络通信传输指示了所识别的实体的数据。
[0022]在前述讨论中,引擎22-28被描述为硬件和程序设计的组合。这样的组件可能以多种形式实施。看图3,所述程序可能是存储在有形、非易失计算机可读媒体30上的处理器可执行指令,并且所述硬件可能包括有用于执行那些指令的处理资源32。例如,处理资源32可以包括一个或多个处理器。该多个处理器可能被集成在单个设备中或者跨越多个设备分布。媒体30可以说用于存储程序指令,当其被处理器资源32执行时实现图2中的系统12。媒体30可以如处理器资源32那样被集成在同一设备上,或者它可能是单独的但是能够被那个设备和处理器资源32访问。
[0023]在一个例子中,程序指令可以是安装包的一部分,当其被安装时能够由处理器资源32执行以实现系统12。在这种情况下,媒体30可以是诸如CD、DVD的可携带媒体,或闪存驱动器,或由服务器维护的存储器,所述安装包可以从其中被下载并安装。在另一例子中,所述程序指令可以是已经安装的一个或多个应用程序的一部分。这里,媒体30可以包括集成存储器,诸如硬盘驱动器、固态驱动器,等等。
[0024]在图3中,存储在媒体30中的可执行程序指令被表示为过滤模块34、簇模块36、检测模块38和识别模块40,当由处理资源34执行时,其实现模式识别系统12(图2)。过滤模块34表示当被执行时起过滤引擎22作用的程序指令。簇模块36表示当被执行时实现簇引擎24的程序指令。检测模块38表示当被执行时实现检测引擎26的程序指令。识别模块40表示当被执行时实现识别引擎28的程序指令。
[0025]运行:图4是被采用来实施用于识别推送通信的方法的步骤流程图。在图4的讨论中,可参照图1-3的图表以提供前后关联的例子。然而,具体实施不限于那些例子。在步骤42,从通信实体的响应缓冲器创建簇。参照图2,簇引擎24可以负责实施步骤42。例如,所述缓冲器可能是根据到达时间的比较而聚合到簇中的套接字层缓冲器。如果两个缓冲器的到达时间之差落到预定阈值之内,则它们被聚合到同一簇中。具有接近的到达时间的缓冲器可以包括同一子消息的内容。在到达时间中具有足够大间隙的簇可以包括来自不同子消息的内容。因此,步骤42可以包括创建多个簇,其中每个簇可能对应于推送通信的不同子消息。
[0026]对步骤42中创建的簇进行检查,满足第一标准的簇被检测(步骤44)。例如,步骤44可能由图2的检测引擎26实施。步骤44可以包括检测那些其长度小于预定阈值的簇。选择该阈值以使得所检测到的簇的大小指示单个子消息或者相对小量的子消息。
[0027]然后,在确定在步骤44中检测到的簇满足第二标准时,被考虑的通信实体被识别为具有推送通信模式(步骤46)。参照图2,步骤46可以由识别引擎28实施。步骤46可以包括仅在确定以下中的至少一个时将通信实体识别为具有推送通信模式:
?所检测到的簇包括多个超出预定阈值的簇;
?所检测到的簇相对于所有所创建的簇的百分比超出预定阈值,以及 ?包含在所检测到的簇中的响应长度的百分比仍超出另一预定阈值。
这里,选择所述标准以帮助确保有足够信息来将所述通信实体分类为推送通信,执行一个假设,即,在极大程度上,所述通信实体的簇的每个将代表子消息,并且帮助防止将用于传输大型文件的通信实体误识别为推送通信。
[0028]针对通信实体的选择列表重复步骤42-46。可以通过根据第三标准过滤通信实体序列以移除选择的实体来识别该列表。所保留下的实体构成所述列表。对序列中的每个通信实体,过滤可以包括检查响应报头并且仅在确定以下中的至少一个时保留该通信实体:
(a)所述传输编码是成块的,以及(b)内容长度为零或者大于预定阈值。
[0029]结论:图1-3描绘了多个实施例的体系结构、功能和运行。特别地,图2-3描绘了各种物理和逻辑组件。各种组件至少部分地被定义为程序或者程序设计。每个这种组件、其部分、或其各种组合可以整体地或部分地代表包括一个或多个可执行指令以实施任意一个或多个特殊逻辑功能的模块、段、或者代码的部分。每个组件或其各种组合可以代表实施一个或多个特殊逻辑功能的电路或若干互连电路。
[0030]实施例可以在任意计算机可读媒体中实现,所述计算机可读媒体用于或连接于指令执行系统,诸如基于计算机/处理器的系统或ASIC (特定用途集成电路)或能够从计算机可读媒体提取或获得逻辑并且执行包含其中的指令的其他系统。“计算机可读媒体”可以为任意个别媒体或独特的媒体,其可以包含、存储、或保存指令和数据集以用于或连接于指令执行系统。计算机可读媒体可以包括多个物理、非瞬态媒体中的任意一个或多个,诸如例如,电子的、磁性的、光学的、电磁的、或半导体媒体。计算机可读媒体更具体的例子包括,但是不限于,可携带磁性计算机磁盘,诸如软盘、硬盘驱动、固态驱动、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器、闪存驱动,和可携带压缩盘。
[0031]虽然图4的流程图示出了执行的特定顺序,然而执行的顺序可以与所描绘的不同。例如,两个或多个方框或箭头的执行顺序相对于所示顺序可以被打乱。同样,接连示出的两个或多个方框可以并发或者部分并发地执行。所有这些变化都在本发明范围内。
[0032]已经参照前述示例性实施例示出并且描述了本发明。然而,要理解的是,可能做出其他形式、细节和实施例而不背离以下权利要求定义的本发明的精神和范围。
【权利要求】
1.一种用于识别推送通信模式的方法,包括: 从通信实体的响应缓冲器创建簇; 检测满足第一标准的簇; 在确定检测到的簇满足第二标准时,将所述通信实体识别为具有推送通信模式。
2.如权利要求1所述的方法,包括过滤通信实体序列以根据第三标准移除通信实体,并且对于每个保留下的通信实体,执行所述创建、检测和识别。
3.如权利要求3所述的方法,其中对每个通信实体,过滤包括检查响应报头以及仅在确定以下至少一个时保留该通信实体: 传输编码是成块的;以及 内容长度为零或者大于预定阈值。
4.如权利要求1所述的方法,其中创建包括根据第一和第二响应缓冲器的到达时间的比较,将所述第一响应缓冲器与第二响应缓冲器聚合。
5.如权利要求1所述的方法,其中检测包括检测那些长度小于第一预定阈值的簇,以及识别包括在确定以下至少一个时将通信实体识别为具有推送通信模式: 所检测到的簇包括超出第二预定阈值的多个簇; 所检测到的簇相对于所有所创建的簇的百分比超出第三预定阈值;以及 包含在所检测到的簇中的响应长度的百分比超出第四预定阈值。
6.一种计算机可读媒体,具有存储在其上的指令,当其由处理资源执行时,实现一个系统,包括过滤引擎,簇引擎,检测引擎和识别引擎,其中所述过滤引擎被配置为过滤通信实体序列以根据第一标准移除通信实体,并且对于每个剩余的通信实体; 所述簇引擎被配置为从该通信实体的响应缓冲器创建簇; 所述检测引擎被配置为检测满足第二标准的簇;以及 所述识别引擎被配置为在确定所检测到的簇满足第三标准时,将所述通信实体识别为具有推送通信模式。
7.如权利要求6所述的媒体,其中所述过滤引擎被配置为通过对每个通信实体检查响应以及仅在确定以下至少一个时保留给定的通信实体来进行过滤: 所述响应使用成块的传输编码;以及 响应的内容长度为零或者大于预定阈值。
8.如权利要求6所述的媒体,其中所述簇引擎被配置为通过以下方式进行创建: 在确定第一和第二响应缓冲器的到达时间差落在预定阈值之内时,将第一响应缓冲器和第二响应缓冲器聚合到第一簇中;以及 在确定第二和第三缓冲器的到达时间差落在所述预定阈值之外时,将第三响应缓冲器聚合到第二簇中。
9.如权利要求6所述的媒体,其中所述识别引擎被配置为检测那些长度小于第一预定阈值的簇。
10.如权利要求9所述的媒体,其中所述识别引擎被配置为仅在确定以下至少一个时,将通信实体识别为具有推送通信模式: 所检测到的簇包括超出第二预定阈值的多个簇; 所检测到的簇相对于所有所创建的簇的百分比超出第三预定阈值;以及 包含在所检测到的簇中的响应长度的百分比超出第四预定阈值。
11.一种用于识别轮询通信模式的系统,所述系统包括与计算机可读媒体通信的处理资源,其中所述计算机可读媒体包含指令集,并且其中所述处理单元被设计为执行所述指令集以; 从通信实体的响应缓冲器创建簇; 检测满足第一标准的簇; 在确定检测到的簇满足第二标准时,将所述通信实体识别为具有推送通信模式。
12.如权利要求11所述的系统,其中所述处理单元被设计为执行所述指令集以过滤通信实体序列以根据第三标准移除通信实体,并且对于每个保留下的通信实体,执行所述创建、检测和识别。
13.如权利要求11所述的系统,其中所述处理资源被设计为执行所述指令以对每个通信实体,通过检查响应报头以及仅在确定以下至少一个时保留该通信实体来进行过滤: 传输编码是成块的;以及 内容长度为零或者大于预定阈值。
14.如权利要求11所述的系统,其中所述处理资源被设计为执行所述指令以通过根据第一和第二响应缓冲器的到达时间的比较,将所述第一响应缓冲器与第二响应缓冲器聚合来进行创建。
15.如权利要求11所述的系统,其中所述处理资源被设计为执行所述指令以通过检测那些长度小于第一预定阈值的簇来进行检测,以及执行所述指令以通过在确定以下至少一个时将通信实体识别为具有推送通信模式来进行识别: 所检测到的簇包括超出第二预定阈值的多个簇; 所检测到的簇相对于所有所创建的簇的百分比超出第三预定阈值;以及 包含在所检测到的簇中的响应长度的百分比超出第四预定阈值。
【文档编号】H04L29/06GK104137501SQ201280068228
【公开日】2014年11月5日 申请日期:2012年1月26日 优先权日:2012年1月26日
【发明者】O·艾丽娅萨夫, A·克斯纳, M·泽默, O·克雷特, M·E·克劳斯 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1