CN108292257B - 用于注解客户端-服务器事务的系统和方法 - Google Patents

用于注解客户端-服务器事务的系统和方法 Download PDF

Info

Publication number
CN108292257B
CN108292257B CN201680071041.7A CN201680071041A CN108292257B CN 108292257 B CN108292257 B CN 108292257B CN 201680071041 A CN201680071041 A CN 201680071041A CN 108292257 B CN108292257 B CN 108292257B
Authority
CN
China
Prior art keywords
transactional data
computer
portions
user
action
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680071041.7A
Other languages
English (en)
Other versions
CN108292257A (zh
Inventor
M·D·莱因哈特
M·T·布沙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA Inc
Original Assignee
CA Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CA Inc filed Critical CA Inc
Publication of CN108292257A publication Critical patent/CN108292257A/zh
Application granted granted Critical
Publication of CN108292257B publication Critical patent/CN108292257B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • G06F11/3075Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved in order to maintain consistency among the monitored data, e.g. ensuring that the monitored data belong to the same timeframe, to the same system or component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了根据一个实施方案,一种利用计算机执行软件注解客户端‑服务器事务的方法,所述方法包括接收与所述计算机上的多个事件相关联的事务性数据流,并且将所述事务性数据流划分成多个部分,其中所述多个事件对应于由计算机的用户采取的一个或多个动作。所述方法还包括基于所述多个部分中的一部分与所述多个部分中的另一部分的相似性将所述多个部分分类成一个或多个组,并且从所述计算机接收包括关于所述多个事件的信息的非事务性数据。该方法还可包括基于非事务性数据,针对一个或多个组中的每个组,识别由用户采取的一个或多个动作中的可能的动作,并且基于该识别标记每个组。

Description

用于注解客户端-服务器事务的系统和方法
技术领域
本公开大体涉及客户端-服务器事务,并且更具体地涉及用于注解客户端-服务器事务的系统和方法。
背景技术
在客户端计算机与服务器之间的交换组成了客户端-服务器事务性数据。客户端-服务器事务性数据可被文件监视器用于确定由客户端计算机的用户所采取的基本动作。然而,在许多情况下,客户端-服务器事务性数据的格式对文件监视器来说是没有意义的。因此,负责监视用户与远程服务交互的文件监视器可能花费大量时间了解未知服务器使用的语法。
发明内容
根据一个实施方案,一种利用计算机执行软件的注解客户端-服务器事务的方法,该方法包括接收与计算机上的多个事件相关联的事务性数据流,并且将事务性数据流划分成多个部分,其中多个事件对应于由计算机用户采取的一个或多个动作。该方法还包括基于多个部分中的一部分与多个部分中的另一部分的相似性将多个部分分类成一个或多个组,并且从计算机接收包括关于多个事件的信息的非事务性数据。该方法还可包括基于非事务性数据,针对一个或多个组中的每个组,识别由用户采取的一个或多个动作中的可能的动作,并且基于该识别标记每个组。
某些实施方案可提供一个或多个技术优点。例如,本公开的实施方案可生成日志文件的人可读的描述,从而降低与客户端-服务器事务性数据的人工审查和分析相关联的成本。作为另一示例,本公开的实施方案可导致对客户端-服务器事务性数据的更高质量的或更准确的注解。根据以下附图、说明和权利要求,其他技术优点对于本领域技术人员来说将是显而易见的。此外,尽管上文枚举了具体的优点,但各种实施方案可包括全部、一些所枚举的优点或者不包括所枚举的优点。
附图说明
为了更全面地理解本公开及其优点,现参考下文结合附图的描述,其中:
图1是根据某些实施方案示出的用于注解客户端-服务器事务的系统的示例网络环境的示意图;
图2是根据图1的系统的一个实施方案示出的用于注解客户端-服务器事务的示例方法的流程图;
图3是根据某些实施方案、根据图2的方法示出的划分之前的事务性数据流的示意图;
图4是根据某些实施方案、可由图1的系统接收的示例非事务性数据(与悬停事件有关的显示器的内部表示)的示意图;
图5A至图5D是根据本公开的系统和方法示出的注解客户端-服务器事务的不同实施方案的流程图;并且
图6是可执行用于注解客户端-服务器事务的日志文件相关器的示例计算机系统的框图。
具体实施方式
确定和标记计算机的用户动作的能力对于监视用户与远程服务的交互可能至关重要。例如,可使用用户动作信息以检测影响远程服务的安全性的异常行为。然而,由于单个用户动作可能包括无法指示或者甚至提示特定用户动作的大量事务,因此可能难以通过查看客户端-服务器的事务性数据确定用户动作。这可能是由于用户动作会产生一个或多个任意动作。例如,涉及移除文件的事务可包括以下请求-响应对:用户通过单击(请求)选择文件,并且HTTP服务器更新网页以显示文件被选中(响应)。通过单独查看该事务,将难以确定该请求-响应对实际上与用户动作“移除文件”相关联。相反,由于事务是任意的,因此文件监视器可将该事务与任意数量的用户动作相关联。因此,需要可有意义地解释日志文件事务信息的系统,以检测对应的用户动作。
本公开的教导认识到将日志文件事务信息与用户的交互关联以确定对应的用户动作的益处。下文描述了用于提供这些和其他所需特征的注解客户端-服务器事务的系统和方法。
图1示出了与客户端-服务器事务相关联的网络100。网络100可包括各自可通信地彼此耦合的客户端计算机110、HTTP服务器120、代理服务器130和监视设备140。
通常,本公开的教导认识到使用日志文件相关器180将事务性数据与非事务性数据关联以注解客户端-服务器事务。监视设备140可接收事务性数据150(表示在客户端计算机110与HTTP服务器120之间的交换)和非事务性数据170(表示由事件收集器160收集的与事务性数据150有关的信息)。通过将事务性数据150与非事务性数据170关联执行监视设备140上的日志文件相关器180,以提示对日志文件事务的注解。注解日志文件可促进由客户端计算机110的用户采取的动作的识别。
网络100可指能够发送音频、视频、信号、数据、消息或前述的任何组合的任何互连系统。网络100可包括公共交换电话网络、公共或私人数据网络、局域网(LAN)、自组织网络、个域网(PAN)、城域网(MAN)、广域网(WAN)、本地的、局域的或全球通信或计算机网络(诸如因特网、企业内联网或任何其他合适的通信链路,包括其组合)的全部或一部分。这些网络中的一个或多个的一个或多个部分可以是有线或无线的。示例无线网络100可包括无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信(GSM)网络)或其他合适的无线网络或这些网络中的两个或更多个的组合。
客户端计算机110可以是包括硬件、软件或嵌入式逻辑组件或两个或更多个这种组件的组合,并且能够执行由客户端计算机110实现或支持的适当功能的电子设备。作为示例而不通过限制,客户端计算机110可包括计算机系统,诸如台式计算机、笔记本或膝上型计算机、上网本、平板电脑、电子书阅读器、GPS设备、照相机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、其他合适的电子设备或其任何合适的组合。本公开考虑任何合适的客户端计算机140。
客户端计算机110可通信地耦合到网络100的一个或多个组件(例如,HTTP服务器120、代理服务器130和监视设备140)。在一些实施方案中,客户端计算机110可包括网页浏览器,诸如MICROSOFT INTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可具有一个或多个附件、插件或其他扩展部件(例如,事件收集器160)。客户端计算机110的用户可输入统一资源定位符(URL)或其他地址,将网页浏览器指向特定服务器,并且网页浏览器可生成超文本传输协议(HTTP)请求(例如请求152)并将HTTP请求传送给HTTP服务器120。服务器可接受HTTP请求并响应于HTTP请求(例如响应154),将一个或多个文件传送给客户端计算机110。响应文件可包括一个或多个超文本标记语言(HTML)文件、可扩展标记语言(XML)文件、JavaScript对象标记(JSON)文件、层叠样式表(CSS)文件、图片、其他文件或任何其他可通过HTTP传输的合适的数据。客户端计算机110可基于来自服务器的响应文件呈现网页以呈现给用户。尽管本公开可具体地描述注解HTTP事务性数据,但本公开认识到注解安全超文本传输协议(HTTP/S)事务性数据或任何其他与任何合适的网络协议有关的事务性数据。
在一些实施方案中,客户端计算机110包括事件收集器160。事件收集器160可被配置为收集关于在客户端计算机110上发生的事件的非事务性数据160。在一些实施方案中,事件收集器160捕获关于在客户端方软件内发生的事件的非事务性信息(例如,非事务性数据170)。例如,事件收集器160可利用在客户端计算机110上运行的网页浏览器和/或应用程序捕获与用户的交互有关的信息。如本文所用,交互是指与由软件识别的软件应用程序的任何交互,并且可导致软件状态的改变或由软件生成输出。在一些实施方案中,事件收集器160可以是客户端方软件的扩展部件(例如,浏览器插件)。在其他实施方案中,事件收集器160可以是被引入客户端方软件的代码中的代码的一部分。
由事件收集器160捕获的非事务性数据170可存储在事件日志中(参见例如,下文参考图4示出并描述的事件日志)。事件日志可包括非事务性数据170,诸如用户事件的时间戳和关于用户事件的触发的数据。作为示例,事件的触发可包括单击鼠标、鼠标悬停、键盘输入和/或拖动、敲击或通过鼠标、手指或触笔捏。尽管本公开描述了具体的事件触发,但本公开考虑了与可触发事件的客户端计算机110的任何合适的用户交互。
非事务性数据170可包括在事件的时间与软件显示器的状态有关的信息。例如,关于在事件的时间显示器的信息可包括显示器的完整或部分屏幕截图、从屏幕截图处理的数据和/或由处理显示器的全部或部分内部表示形成的数据结构。例如,内部表示可以是诸如文档对象模型(“DOM”)的分层树和/或Qt建模语言。显示器的内部表示将在下文参考图4进一步详细描述。
非事务性数据170还可包括事件发生的显示器内的位置。本公开考虑“位置”可指可以从中近似推断出的任何信息,其中在显示器的坐标系统中事件可被理解为正在发生。例如,位置数据可被表示为对应于单击鼠标的位置的坐标对。作为另一个示例,位置数据可被表示为显示器的树形表示的节点的路径,该路径造成正在记录键盘的笔划的叶节点。作为另一个示例,位置数据可由用户敲击屏幕的用户界面中的子窗口表示。
由事件收集器160收集的非事务性数据170可通过网络发送以进一步处理。例如,客户端计算机110可通过代理服务器130将非事务性数据170发送到监视设备140。作为另一个示例,客户端计算机110可将非事务性数据170直接发送到监视设备140。在一些实施方案中,非事务性数据由通信界面监视设备140接收。尽管本公开描述了监视设备140接收非事务性数据170的特定方式,但本公开认识到监视设备140接收非事务性数据170的任何合适的方式。
在一些实施方案中,HTTP服务器120可以是网页服务器。HTTP服务器120可处理来自客户端计算机(例如,客户端计算机110)的请求152,并且向客户端计算机返回响应154。这种请求-响应交换在本文被称为单个事务。
在客户端计算机110与HTTP服务器120之间的一个或多个事务可包括客户端-服务器事务性数据(在本文也被称为“事务性数据”)150。事务性数据150可表示在客户端计算机110与HTTP服务器120之间的所有交换(事务)。在一些实施方案中,事务性数据150可以是单个请求-响应对(152和154)。在其他实施方案中,事务性数据150可包括多于一个请求-响应对(152和154)。下文将参考图3进一步详细描述客户端-服务器事务性数据150。
在一些实施方案中,代理服务器130可存在于网络环境100上。代理服务器130可充当在客户端计算机(例如,客户端计算机110)与网页服务器(例如,HTTP服务器120)之间的中介。在一些实施方案中,代理服务器130可记录客户端-服务器事务性数据150。
客户端-服务器事务性数据150可被记录为连续的事务流(例如,图3的事务性数据流305)。在一些实施方案中,代理服务器130可将事务性数据150保存到内部存储驱动器。在其他实施方案中,由代理服务器130记录的事务性数据可保存到外部存储驱动器,诸如监视设备140的存储或存储器。尽管本公开描述并示出了记录事务性数据的代理服务器,但本公开认识到任何合适的组件被配置为捕获在客户端计算机110与服务器120之间的事务性数据150。
在一些实施方案中,监视设备140可存在于网络环境100上。在一些实施方案中,监视设备140为计算机系统,诸如图6的计算机系统600。在一些实施方案中,监视设备140可被配置为存储客户端-服务器事务性数据150。监视设备140还可被配置为存储日志文件相关器180。根据本发明的实施方案,日志文件相关器180是促进客户端-服务器事务150的注解的数据处理程序。在一些实施方案中,监视设备140还可存储非事务性数据170。
在一些实施方案中,日志文件相关器180根据下文参考图2描述的方法200注解日志文件事务。参考图3示出并描述了事务性数据150及其划分。下文参考图4示出并描述了非事务性数据,特别是网站的内部表示。参考图5A至图5D示出并描述了根据本公开的某些实施方案的处理事务性和非事务性信息的各种流程。最后,参考图6示出并描述了计算机系统,诸如被配置为运行日志文件相关器的监视设备140。
图2是示出用于注解客户端-服务器事务的方法200的流程图。在一些实施方案中,图1的日志文件相关器180可执行图2的方法。图2的方法可表示存储在计算机可读介质上的算法,诸如控制器的存储器(例如,图6的存储器620。
现在返回到图2,方法200可从步骤205开始。在步骤210处,日志文件相关器180接收事务性数据。在一些实施方案中,事务性数据由监视设备140从代理服务器130接收。在一些实施方案中,事务性数据由监视设备140的通信接口接收。
如上所述,事务性数据可指在客户端计算机110与HTTP网络120之间的交换。事务性数据可接收为特定时间段内的单个HTTP流量的流。事务性数据可包括对应于在客户端计算机110与HTTP服务器120之间的事件的多个事务。这些事件可能与用户动作有关。如本文所用,用户动作可指客户端计算机的用户的目标,该目标对应于通过客户端软件伴随远程服务而发生的一个或多个事件。在一些实施方案中,用户动作可以是已知由云应用程序支持的动作。例如,用户动作可以是以下之一:发送电子邮件、接收电子邮件、上传、下载、发送文件、移动文件、删除文件、发送即时消息、接收即时消息、添加联系人等。尽管本公开描述了特定用户动作的类型,但本公开考虑了客户端计算机110的用户的任何合适的动作。在一些实施方案中,方法200可继续到步骤220。
在步骤220处,日志文件相关器180接收非事务性数据。在一些实施方案中,日志文件相关器180从客户端计算机110的事件收集器160接收非事务性数据。非事务性数据可包括用户事件的时间戳、关于用户事件的触发的数据、在用户事件的时间显示器的状态以及/或者在用户事件发生的显示器内的位置。在一些实施方案中,该方法继续到步骤230。
在步骤230处,日志文件相关器180将事务性数据划分成部分。如本文所用,术语“部分”可与词语“突发”互换使用。例如,参考图3,这些部分被称为事务的突发。在一些实施方案中,事务性数据的划分是确定性的。如本文所用,确定性划分是指即使当执行多于一次时也从单个事务性数据集产生相同部分的算法。在其他实施方案中,事务性数据的划分是随机的。如本文所用,随机划分是指当算法执行多于一次时可从单个事务性数据集产生不同部分的算法。事务性数据的划分可作为步骤的有限序列或迭代地作为优化或统计估计执行。在一些实施方案中,划分事务性数据是基于事务间隔到达时间(即从一次事务的开始或结束时间测量的按时间顺序发生的事务发生之间的时间);在事务时间与收集的事件数据之间的关系;事务的内容、长度和/或文本特征;和/或事件的内容、长度和/或文本特征。事务性数据150可被划分,使得每个事务属于单个部分或被分配指示属于一个或多个部分的概率的值。
通常,与单个用户动作有关的事务在或接近同一时间发生,随后是暂停或不作为时段。如本文所用,不作为时段还可指与非事务性数据170不相关联或不对应的时间段。因此,识别在时间上紧密发生的事务(部分/突发)可指示单个用户动作。
事务性数据可包括每个事务的时间戳。在一些实施方案中,日志文件相关器180基于每个事务的时间戳将事务性数据划分成事务的部分。例如,单个部分内的所有事务可在或接近同一时间发生。在一些实施方案中,事务性数据是基于不作为时段而被划分。例如,对应于第一部分的第一组事务可在第一时段内发生,该第一部分随后为不作为时段,而该不作为时段随后是在第二时段内发生的对应于第二部分的第二组事务。在一些实施方案中,方法200可继续到步骤240。
在步骤240处,日志文件相关器180将这些部分分类成一个或多个组。在一些实施方案中,基于一部分与另一部分的相似性将这些部分分类成组。由于类似部分对应于相同用户动作的可能性,这些组可基于相似性被分类。因此,在一些实施方案中,由日志文件相关器180创建的组的数量对应于与事务性数据流150相关联的用户动作的数量。在其他实施方案中,由日志文件相关器180创建的组的数量大于与事务性数据流150相关联的用户动作的数量。例如,在一些实施方案中,在事务性数据150不对应于非事务性数据(例如,在不作为时段期间记录的事务性数据150)的情况下,日志文件相关器180创建比用户动作更多的组。作为另一示例,在与单个用户动作相关联的流量为可区分的情况下(例如,与文件下载相关联的流量可从与文件夹下载相关联的流量区分开),日志文件相关器180可创建比用户动作更多的组。在其他实施方案中,日志文件相关器180可创建比用户动作更少的组。例如,当两个独立用户动作的流量几乎相同时(例如,用户动作“重命名”的流量可能与用户动作“移动”的流量几乎相同),可能会发生这种情况。
在一些实施方案中,部分可被分类,使得每个部分属于单个组。在其他实施方案中,可基于属于特定组的属性的概率对部分进行分类。例如,在一些实施方案中,部分可被分配指示属于一个或多个组的概率的值。属性的概率可通过任何合理的措施确定。
在一些实施方案中,将部分分类成一个或多个组是基于部分中所有事务的文本和/或结构相似性;部分中最独特事务的文本和/或结构相似性;高度相似的事务跨不同部分发生的顺序;和/或存在于来自不同部分的高度相似的事务中的差异的规律性。在一些实施方案中,关于部分本身的信息可以是用于将部分分类成组的相似性的有用度量(例如,部分中事务的数量)。
在一些实施方案中,确定一部分是否与另一部分相似包括测量一部分与另一部分的相似性。例如,在一些实施方案中是基于统计分析确定相似性。例如,在一些实施方案中,在一部分与另一部分之间计算余弦差。
在一些实施方案中是基于阈值确定相似性。例如,在一些实施方案中,在两个部分之间的余弦差与阈值进行比较。在一些实施方案中,如果余弦差小于或等于阈值,则确定两个部分相似。在其他实施方案中,如果余弦差大于阈值,则确定两个部分不相似。
在一些实施方案中,确定两个部分相似包括比较这些部分的事务。例如,第一部分可包括五个事务,而第二部分可包括四个事务。在这种情况下,系统可确定这两个部分相似,因为它们共享三个相似的事务。在其他实施方案中,两个部分的相似性可通过比较两个部分的非事务性数据170确定。尽管本公开描述了确定相似性的具体方式,但可以任何合适的方式确定相似性。
在一些实施方案中,每个组包括一个或多个部分。在其他实施方案中,一部分可包括其自己的组。例如,与任何其他部分不相似的部分可包括对应于特定用户动作的其自己的组。
不能被分类成两个或更多个部分的组的部分可被认为不相似。在一些实施方案中,一个或多个不相似部分可包括一个或多个组。这样的组可能被认为是“干扰的”,因为该组中没有任何部分是相似的。在一些实施方案中,“干扰”组可从进一步处理中排除。在其他实施方案中,可使用“干扰”组对所得到的注解建立置信度。在一些实施方案中,方法200继续到步骤250。
在步骤250处,日志文件相关器180基于非事务性数据识别对应于每个组的可能的用户动作。在一些实施方案中,基于非事务性数据识别可能的用户动作包括将非事务性数据与事务性数据关联。在一些其他实施方案中,识别可能的用户动作包括确定非事务性数据对应于事务性数据的概率。
例如,日志文件相关器180可基于关联的事务和事件的时间戳将事务性数据的第一部分与非事务性数据的第一部分关联。非事务性数据的第一部分可包括在单击鼠标的时间显示器的屏幕截图。屏幕截图可示出文本“下载”、“上传”、“移除”文件名列表(例如,“2015_quarterly_reports.docx”和“2016_quaterly_reports.docx”),并显示光标在确认提示中选择了“确定”。日志文件相关器180可推断在示出的屏幕截图(下载、上传或移除)中用户采取的可能的动作中的哪个动作。在一些实施方案中,该推断可基于从动作文本到光标的距离的测量。例如,日志文件相关器180可确定光标距离文本“下载”最近,并且距离文本“上传”或“移除”更远。在这种情况下,日志文件相关器180可确定与事务性数据的第一部分相关联的用户动作是“下载”。
以类似的方式,日志文件相关器180可识别每个组的可能的用户动作。例如,日志文件相关器180可通过测量在用户的显示器上的事件与显示器中示出的用户动作之间的距离检查组的所有非事务性数据。基于该信息,日志文件相关器180可确定显示器中示出的每个用户动作的概率。例如,日志文件相关器180可在与特定组有关的82%的屏幕截图中确定光标最接近动作文本“下载”。日志文件相关器还可在与该组相关的2%的屏幕截图中确定光标最接近动作文本“上传”,并且在与该组相关的16%的屏幕截图中确定光标最接近动作文本“重命名”。基于该信息,日志文件相关器180可识别出特定组与用户动作“下载”有关,因为其相关联的概率在该组中是最高的。尽管本公开记述了从非事务性数据推断用户动作的特定方式,但本公开认识到可以任何合适的方式从非事务性数据推断用户动作。
在一些实施方案中,日志文件相关器180可基于非事务性数据识别组的两个或更多个用户动作。例如,当这些用户动作中的每一个具有相同的概率时(例如,用户动作下载的概率为33%,用户动作上传的概率为33%,以及用户动作重命名的概率为33%),日志文件相关器180可识别组与用户动作“下载”、“上传”和“重命名”有关。在这种情况下,日志文件相关器180可确定用户动作对于组是未知的。在一些实施方案中,日志文件相关器180可响应于识别组的多于一个的用户动作而将组标记以进一步处理。为了响应被标记,可提醒文件监视器手动检查识别。
在一些实施方案中,识别可能的用户动作包括阈值分析。例如,当由用户采取特定用户动作的概率为80%时,日志文件相关器180可将特定用户动作选择为可能的用户动作。参考有关识别每个组的可能的用户动作的上述示例,日志文件相关器180可将“下载”识别为组的可能的用户动作,因为其关联的概率(82%)超过阈值(80%)。在一些其他实施方案中,如果与一个或多个可能的用户动作相关联的概率中没有一个超过阈值,则日志文件相关器180可确定用户动作是“未知的”。如果日志文件相关器180确定用户动作对于组是“未知的”,则日志文件相关器180可将该组标记以手动检查。在一些实施方案中,方法200可继续到步骤260。
在步骤260处,日志文件相关器180标记一个或多个组中的每个组。在一些实施方案中,每个组至少部分地基于步骤250中执行的识别进行标记。例如,日志文件相关器180可响应于识别出组可能对应于用户动作“上传文件”而标记组为“上传文件”。在一些实施方案中,组中的每个部分可基于对应的用户动作的识别标记。在一些实施方案中,方法200在步骤265中结束。
因此,通过将非事务性数据与事务性数据关联,日志文件相关器180可注解客户端-服务器事务。结果,人工监视事务性数据可能能够确定对应于事务部分的每个组的可能的用户动作。
在操作中,客户端计算机(例如,客户端计算机110)的用户使用访问网络(例如,HTTP网络120)的远程服务软件开始。当用户与软件交互时,可生成并记录事务性和非事务性数据。如上所述,代理服务器130可记录事务性数据并使其被存储在监视设备140上。在一些实施方案中,监视设备140的通信接口从代理服务器130处接收事务性数据150,并且监视设备140的处理器使事务性数据150被存储在内部存储中。
在一些实施方案中,日志文件相关器180被配置为将事务性数据划分成突发。图3示出了用于划分的事务性数据流305。如上所述,事务性数据305可包含与一个或多个用户动作相关联的多个请求-响应对。尽管本公开可将事务性数据描述为在浏览器与服务器之间的直接交换,但请求-响应对可同时在多个通信信道上操作。例如,图3示出了事务性数据通过三个信道340(例如,通信信道340a至340c)传送。
如图3所示,事务性数据流305涉及两个单独的用户动作:表示为“A”的“登录”动作和表示为“B”的“移除文件”动作。竖直虚线表示用户与网页的交互320。例如,交互320a可对应于用户单击网页上的“登录”按钮。作为另一示例,交互320b可对应于用户单击文件,并且交互320c可对应于用户单击网页上的“移除”按钮。
如前所述,单个用户动作可与对应于一个或多个事件的一个或多个事务相关联。如本文所用,事件是指任何用户与客户端计算机110的交互,其导致软件状态的改变或生成软件输出。如图3中所示,每个请求-响应对构成单个事务330并且包括请求(表示为黑盒子)和响应(表示为白盒子)。尽管一些用户动作可包括单个事务330,但一些用户动作包括多于一个事务(参见例如,登录动作“A”和移除动作“B”)。例如,如图3中所示,“移除文件”动作B包括可对应于以下事件的四个事务330g至330j:(1)文件的选择;(2)删除文件的指示;以及(3)删除文件的确认;以及(4)页面刷新。
事务性数据可被划分成对应于特定用户动作的部分。例如,在一些实施方案中,日志文件相关器180可操作以将事务性数据305划分成突发310(例如,突发310a和310b)。在一些实施方案中,事务性数据305是基于分配给特定事务330的时间戳而划分。
通常,用户按顺序执行动作,使得用户在采取其他动作之前与软件交互并等待来自HTTP服务器的响应。例如,用户可发送请求以读取网页,并等待HTTP服务器以在尝试登录之前检索网页。通常,单个用户交互会快速连续生成一系列事务,这些事务之间相隔几分之一秒;这些非常短的间隔与在用户交互之间的相对较长的间隔不同。因此,事务性数据305往往是突发性的-每个事务后可跟随短或长的间隔,其中短间隔可指示事务响应于单个用户交互,而长间隔可指示事务对应于新的用户动作。基于这些指示,日志文件相关器180可识别短和长的间隔并相应地划分事务性数据150。
日志文件相关器180可使用与事务性数据305相关联的时间戳以识别间隔。在一些实施方案中,日志文件相关器180将快速连续发生的所有事务聚类为单个突发。例如,如图3中所示,事务性数据305显示与“登录”动作A对应的时间上密切相关的多个事务330a至330f,随后是可识别的不作为时段350,随后是与“删除文件”动作B对应的在时间上密切相关的多个事务330g至330j。因此,事务330a至330f可聚类在第一突发310a中,并且事务330g至330j可聚类在第二突发310b中。因此,一个或多个事务330可被识别为有关的(例如,按时间)并且可聚类为单个突发310。如上所述,突发310可能指示或提示单个用户动作。例如,突发310a可能对应于用户动作A并且突发310b可能对应于用户5动作B。
在一些实施方案中,日志文件相关器180可将突发310分类成一个或多个组。可基于一个突发与另一个突发的相似性分类突发。在一些实施方案中,基于包含在每个突发中的非事务性数据的相似性,将突发分类成一个或多个组。在其他实施方案中,基于包含在每个突发中的事务性数据的相似性,将突发分类成一个或多个组。例如,第一突发可包括以下表1的事务性数据:
Figure BDA0001683926860000131
第二突发可包括以下表2的事务性数据:
Figure BDA0001683926860000132
Figure BDA0001683926860000141
日志文件相关器180可比较突发1和突发2的事务性数据,并且确定这些突发相似并属于同一组中。例如,日志文件相关器180可确定突发1和突发2相似,因此属于同一组中,因为它们共享五个相同的请求-响应对。
虽然本公开以人可读的格式描述并示出了事务性信息,但这不是事务性数据的典型格式。在大多数情况下,事务性数据对于人来说毫无意义。在一些情况下,事务性数据是完全难解的。
以图3作为另一个示例,日志文件相关器180可确定第一突发310a与第二突发310b不相似,因为事务330a至330f与事务330g至330j不足够相似。在这种情况下,日志文件相关器180可继续将第一突发310a和第二突发310b与事务性数据流305中的其他突发310进行比较。如上所述,本公开认识到可以任何合适的方式分类突发。在一些实施方案中,事务性数据305的每个突发310可处于包括一个或多个相似突发310的组中。在其他实施方案中,一个或多个突发310可包括其自己的组(例如,当突发310与事务性数据305中的任何其他突发310不相似时)。
在某些情况下,可能需要确定用户动作与组相关联。如上所述,由于响应-请求对可能不指示单个用户动作,因此可能难以确定什么用户动作与组相关联。因此,本公开认识到将非事务性数据与事务性数据关联以促进客户端-服务器事务性的注解的数据。
在一些实施方案中,日志文件相关器180可识别对应于每个组的可能的用户动作。例如,日志文件相关器180可识别包含上面的突发1和突发2的组可能对应于用户动作“发送电子邮件”。在一些实施方案中,识别用户动作是否对应于组是基于非事务性数据。
图4示出了与悬停事件相关的显示器的内部表示。如上所述,客户端计算机110的事件收集器160可捕获非事务性数据,诸如图6示出的内部表示。在一些实施方案中,事件收集器160捕获与显示器相关联的所有非事务性数据。在其他实施方案中,事件收集器160捕获仅与显示器的一部分相关联的非事务性数据。例如,事件收集器160可捕获与用户交互的网页的部分(直接层级的节点)和用户可能已经交互的部分相关联的非事务性数据(距离直接层级深度为1级的节点),并排除与网页剩余部分相关的非事务性数据。
如图4所示,事件收集器160捕获与用户交互的网页的节点(有阴影的节点)和用户可能已经交互的节点(用实线画出的白色节点)相关联的非事务性数据。例如,节点405可表示鼠标点击事件,而节点410可表示悬停事件。如图4所示,事件收集器160不捕获与其他节点(用虚线画出的白色节点)相关联的非事务性数据170。使用该模型,事件收集器160有可能收集与确定用户动作有关的信息,同时忽略与确定用户动作无关的信息。
如上所述,非事务性数据170可包括用户事件的时间戳、关于用户事件的触发的数据、在用户事件的时间显示器的状态以及/或者在用户事件发生的显示器内的位置。在一些实施方案中,事件收集器110可被配置为利用每个用户交互以抓取网页的全部或部分视觉。因为非事务性数据还包括事件的位置,所以日志文件相关器180可确定用户在特定时间在网页上正在与什么进行交互。
例如,在图4中,事件收集器160捕获与悬停事件410相关的非事务性数据170。事件日志可以以人可读的格式显示与该事件相关联的所有相关的非事务性数据170。例如,事件日志可能会显示:
Figure BDA0001683926860000151
使用来自事件日志的非事务性数据170,日志文件相关器180可识别事件。例如,这里日志文件相关器180可识别客户端计算机110的用户在13:01悬停在“子任务注释”节点上。
然后可使用该识别将该事件与特定事务关联。这种关联可基于与事件和事务相关联的时间戳。因此,日志文件相关器180可确定特定事务对应于特定事件。
例如,用户可能希望下载文件并点击网页上的“下载”按钮。尽管与该用户交互相关联的事务性数据可能不会详述“下载”,但该网页会。事件收集器160可捕获与该鼠标点击相关联的非事务性数据。例如,事件收集器160可捕获网页的视觉、鼠标点击的时间以及鼠标点击的位置)。然后日志文件相关器180可确定用户在页面上的特定位置点击,并且位于用户点击位置处的文本被标记为“下载”。结果,日志文件相关器180可确定与事件共享相同时间戳的事务应该与词语“下载”相关联。因此,非事务性数据170可与事务性数据150关联来为客户端-服务器事务流内的每个事物赋予含义。
日志文件相关器180被配置为在一些实施方案中识别组对应于特定用户动作。例如,日志文件相关器180可识别组1涉及用户动作“发送电子邮件”。在一些实施方案中,日志文件相关器180基于非事务性数据170识别组对应于特定用户动作。
如上所述,日志文件相关器180可通过将非事务性数据170与事务性数据150关联识别对应于每个事务的事件。然后日志文件相关器180可选择所识别的事件中的一个作为对应于该组的用户动作。例如,日志文件相关器180可基于事件在组内出现的次数选择已识别的事件。作为另一个示例,日志文件相关器180可基于阈值分析选择已识别的事件。
日志文件相关器180可被进一步配置为确定组内的特定事务涉及无意义的事件。例如,日志文件相关器180可确定出现在多个组中的事务不表示用户动作,并且应该从进一步处理中排除。在一些实施方案中,日志文件相关器180可被配置为忽略对应于无意义事件的事务。例如,日志文件相关器180可被配置为在选择所识别的事件中的一个时忽略无意义的事件。结果,该组识别的用户动作将不基于日志文件相关器180确定为无意义的事件。
如以上参考图2所述,日志文件相关器180还可接收更难以与事务数据关联的非事务性数据(例如,当非事务性数据包括多于一个可能的用户动作时)。同样地,本公开认识到日志文件相关器180可通过基于非事务性数据确定特定用户动作发生的概率或可能性识别由用户采取的可能的用户动作。
日志文件相关器180被配置为在一些实施方案中基于至少为该组识别的用户动作标记组。作为示例,日志文件相关器180可基于第一组中的事务可能涉及用户动作“发送电子邮件”的识别标记第一组“发送电子邮件”。在一些实施方案中,每个组可区别于其他组被标记。在一些实施方案中,两个或更多个组可共享同一标记。在一些实施方案中,一个组可被标记有多于一个的用户动作。在这种情况下,日志文件相关器180可标记该组以进行进一步的手动处理。
图5A至图5D示出了注释客户端-服务器事务的不同流。如参照图5A至图5D所用,术语“突发识别”、“突发聚类”和“动作标记”是指根据本公开的实施方案处理事务性和非事务性数据的不同阶段。如参考图5A至图5D所用的“突发识别”是指将事务数据划分为突发。如参考图5A至图5D所用的“突发聚类”是指将突发聚类成一个或多个组(每个组指示用户动作)。如参考图5A至图5D所用的“动作标记”是指基于组对应于特定用户动作识别的对组的标记。
图5A示出了依次发生的三个处理阶段。例如,在接收到事务性和非事务性信息时,日志文件相关器180启动突发识别阶段505,其中事务性数据中生成一个或多个突发。然后日志文件相关器180可启动突发聚类阶段510,其中一个或多个突发被分类成一个或多个组。接着日志文件相关器180可启动动作标记阶段515,其中基于与组相关联的用户动作标记一个或多个突发。
图5B和图5C示出了其中两个处理阶段同时发生并且一个处理阶段继而发生的处理流程。如本文所用,“同时”意味着处理阶段的结果彼此相关。图5B示出了突发识别505和突发聚类510阶段可同时发生,并且动作标记阶段515随后发生。图5C示出了在同时启动突发聚类510和动作标记515阶段之前发生的突发识别阶段。
最后,图5D示出了三个处理阶段可同时发生。同样地,系统可同时启动突发识别阶段505、突发聚类阶段510和动作标记阶段515。
图6示出了示例计算机系统600。如上所述,监视设备140可以是诸如计算机系统600的计算机系统。计算机系统600可以是以任何合适的物理形式的任何合适的计算系统。作为示例,而不通过限制,计算机系统600可以是虚拟机(VM)、嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、主机、计算机系统网格、服务器,应用服务器或其中两种或以上的组合。适当情况下,计算机系统600可包括一个或多个计算机系统600;单一或分散;跨越多个位置;跨越多台机器;或存在于云中,云可在一个或多个网络中包括一个或多个云组件。在适当的情况下,一个或多个计算机系统600可在没有明显的空间或时间限制的情况下执行本文描述或示出的一个或多个方法的一个或多个步骤。作为示例而不通过限制,一个或多个计算机系统600可实时或以批处理模式执行本文描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统600可在不同的时间或在不同的位置执行本文描述或示出的一个或多个方法的一个或多个步骤。
一个或多个计算机系统600可执行本文描述或示出的一个或多个方法的一个或多个步骤。在特定的实施方案中,一个或多个计算机系统600提供本文描述或示出的功能。在特定的实施方案中,在一个或多个计算机系统600上运行的软件执行本文描述或示出的一个或多个方法的一个或多个步骤,或者提供本文描述或示出的功能。特定实施方案包括一个或多个计算机系统600的一个或多个部分。在本文中,在适当的情况下,对计算机系统的参考可包含计算设备,反之亦然。此外,在适当的情况下,对计算机系统的参考可包含一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统600。本公开考虑了采取任何合适的物理形式的计算机系统600。作为示例而不通过限制,计算机系统600可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(例如,模块上计算机(COM)或模块上系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式自助终端、主机、计算机系统网格、移动电话、个人数字助理(PDA)、服务器、平板电脑系统或以上两种或多种的组合。适当情况下,计算机系统600可包括一个或多个计算机系统600;单一或分散;跨越多个位置;跨越多台机器;跨越多个数据中心;或存在于云中,云可在一个或多个网络中包括一个或多个云组件。在适当的情况下,一个或多个计算机系统600可在没有明显的空间或时间限制的情况下执行本文描述或示出的一个或多个方法的一个或多个步骤。作为示例而不通过限制,一个或多个计算机系统600可实时或以批处理模式执行本文描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统600可在不同的时间或在不同的位置执行本文描述或示出的一个或多个方法的一个或多个步骤。
诸如图6所示,在一些实施方案中,计算机系统600可包括处理器610、存储器620、存储630、输入/输出(I/O)接口640、通信接口650和总线660。尽管本公开描述和示出了具有特定布置下的特定数量的特定组件的特定计算机系统,但本公开考虑了在任何合适布置下的任何合适数量的任何合适组件的任何合适计算机系统。
在特定实施方案中,处理器610包括用于执行诸如构成计算机程序指令的硬件。例如,处理器610可执行日志文件相关器180以促进客户端-服务器事务150的注解。作为示例而不通过限制,为了执行指令,处理器610可以从内部寄存器、内部高速缓存、存储器620或存储630中检索(或读取)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部高速缓存,存储器620或存储630。在特定实施方案中,处理器610可包括用于数据、指令或地址的一个或多个内部高速缓存。在适当的情况下,本公开考虑了包括任何合适数量的任何合适内部高速缓存的处理器610。作为示例而不通过限制,处理器610可包括一个或多个指令高速缓存、一个或多个数据高速缓存以及一个或多个转译后备缓冲器(TLB)。指令高速缓存中的指令可以是存储器620或存储630中指令的副本,并且指令高速缓存可加速处理器610对那些指令的检索。数据高速缓存中的数据可以是存储器620中的或存储630中数据的副本,用于在处理器610处执行以进行操作的指令;先前在处理器610处执行的指令的结果,用于由在处理器610处执行的后续指令进行访问或用于写入存储器620或存储630;或其他合适的数据。数据高速缓存可通过处理器610加速读取或写入操作。TLB可加速处理器610的虚拟地址转换。在特定实施方案中,处理器610可包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了处理器610,该处理器包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器610可包括一个或多个算术逻辑单元(ALU);成为一个多核处理器;或者包括一个或多个处理器175。尽管本公开描述并且图示了特定处理器,但本公开考虑了任何合适的处理器。
存储器620可包括主存储器、用于存储处理器610执行的指令或处理器610进行操作的数据。作为示例而不通过限制,计算机系统600可将来自存储630或另一个源(诸如,另一个计算机系统600)的指令加载到存储器620中。然后处理器610可将来自存储器620的指令加载到内部寄存器或内部高速缓存中。为了执行指令,处理器610可从内部寄存器或内部高速缓存中检索指令并对它们进行解码。在执行指令期间或之后,处理器610可将一个或多个结果(可以是中间或最终结果)写入内部寄存器或内部高速缓存。然后处理器610可将这些结果中的一个或多个写入存储器620。在特定实施方案中,处理器610仅执行一个或多个内部寄存器或内部高速缓存中或存储器620(与存储630或其他位置相对)中的指令,并且仅操作一个或多个内部寄存器或内部高速缓存或存储器620(与存储630或其他位置相反)中的数据。一个或多个存储器总线(其中每个都可包括地址总线和数据总线)可将处理器610耦合到存储器620。总线660可包括一个或多个存储器总线,如下所述。在特定实施方案中,一个或多个存储器管理单元(MMU)存在于在处理器610与存储器620之间,并促进由处理器610请求的对存储器620的访问。在特定实施方案中,存储器620包括随机存取存储器(RAM)。该RAM可以是易失性存储器,在适当的情况下在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口的或多端口的RAM。本公开考虑了任何合适的RAM。在适当的情况下,存储器620可包括一个或多个存储器180。尽管本公开描述并示出了特定存储器,但本公开考虑了任何合适的存储器。
存储630可包括用于数据或指令的大量存储。作为示例而不通过限制,存储630可包括硬盘驱动器(HDD)、软盘驱动器、闪存存储器和光盘、磁光盘,磁带、通用串行总线(USB)驱动器或以上两个或更多个的组合。在适当的情况下,存储630可包括可移动或不可移动(或固定的)介质。在适当的情况下,存储630可以在计算机系统600的内部或外部。在特定实施方案中,存储630是非易失性固态存储器。在特定实施方案中,存储630包括只读存储器(ROM)。在适当的情况下,该ROM可以是编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改ROM(EAROM)或闪存存储器或以上两个或更多个的组合。本公开考虑了采取任何合适的物理形式的大量存储630。存储630可包括一个或多个存储控制单元,其在适当的情况下促进在处理器610与存储630之间的通信。在适当的情况下,存储630可包括一个或多个存储140。尽管本公开描述并示出了特定存储,但本公开考虑了任何合适的存储。
I/O接口640可包括提供在计算机系统600与一个或多个I/O设备之间通信的一个或多个接口的硬件、软件或两者均有。在适当的情况下,计算机系统600可包括这些I/O设备中的一个或多个。这些I/O设备中的一个或多个可实现在个人与计算机系统600之间的通信。作为示例而不通过限制,I/O设备可包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静止照相机、触控笔、平板电脑、触摸屏、轨迹球、摄像机、另一个合适的I/O设备或其中两个或更多个的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备以及用于I/O设备的任何合适的I/O接口185。在适当的情况下,I/O接口640可包括使处理器610能够驱动一个或多个这些I/O设备中的一个或多个设备或软件驱动器。在适当的情况下,I/O接口640可包括一个或多个I/O接口185。尽管本公开描述并示出了特定I/O接口,但本公开考虑了任何合适的I/O接口。
通信接口650可包括在计算机系统600与一个或多个其他计算机系统600或一个或多个网络(例如,网络100)之间提供用于通信(诸如,例如,基于分组的通信)的一个或多个接口的硬件、软件或两者均有。作为示例而不通过限制,通信接口650可包括用于与以太网或其他基于有线网络或无线NIC(WNIC)或无线适配器进行通信的网络接口控制器(NIC)或网络适配器,以与无线网络,诸如WI-FI网络,进行通信。本公开考虑了任何合适的网络以及用于网络的任何合适的通信接口650。作为示例而不通过限制,计算机系统600可与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或多个部分或者以上两个或更多个的组合通信。这些网络中的一个或多个的一个或多个部分可以是有线或无线的。作为示例,计算机系统600可与无线PAN(WPAN)(诸如,例如蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如,例如,全球移动通信(GSM)网络)或其他合适的无线网络或以上两个或更多个的组合通信。在适当的情况下,计算机系统600可包括用于任何这些网络的任何合适的通信接口650。在适当的情况下,通信接口650可包括一个或多个通信接口190。尽管本公开描述并示出了特定通信接口,但本公开考虑任何合适的通信接口。
总线660可包括计算机系统600中的硬件、软件或两者彼此耦合的组件。作为示例而不通过限制,总线660可包括加速图形端口(AGP)或其他图形总线、增强形工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准结构(ISA)总线、INFINIBAND互连、低脚位(LPC)总线、存储器总线、微通道体系结构(MCA)总线、外设部件互连(PCI)总线、串行(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线或其他合适的总线或以上两个或更多个总线的组合。在适当的情况下,总线660可包括一个或多个总线212。尽管本公开描述并示出了特定总线,但本公开考虑了任何合适的总线或互连。
计算机系统600的组件可被集成或分离。在一些实施方案中,计算机系统600的组件可各自被容纳在单个底盘内。计算机系统600的操作可由更多、更少或其他组件执行。另外,计算机系统600的操作可使用包括软件、硬件、其他逻辑或前述的任何合适组合的任何合适的逻辑执行。
在适当的情况下,在本文中,计算机可读非暂态存储介质可包括一个或多个基于半导体的或其他集成电路(IC)(诸如,例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合式硬盘(HHD)、光盘、光盘驱动器(ODDS)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSDs)、RAM驱动器、数据安全卡或驱动器,任何其它合适的计算机可读非暂态存储介质,或以上两个或更多个的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性,非易失性或易失性和非易失性的组合。
在本文中,“或”是包含性的而非排他性的,除非另外明确指出或另外通过上下文指出。因此,在本文中,“A或B”意指“A、B或两者均有”,除非另外明确指出或另外通过上下文指出。此外,“和”既指共同的也指各自的,除非另外明确指出或另外通过上下文指出。因此,在本文中,“A和B”意指“A和B、共同地或各自地”,除非另外明确指出或另外通过上下文指出。
本公开的范围涵盖本领域的普通技术人员将理解的对本文描述或示出的示例性实施方案的所有改变、替换、变化、更改和修改。本公开的范围不限于本文描述或示出的示例性实施方案。而且,尽管本公开在本文中将相应的实施方案描述和示出为包括特定的组件、元件、功能、操作或步骤,但是这些实施方案中的任何一个可包括本领域普通技术人员将会理解的在本文中的任何地方描述和示出的任何组件、元件、功能、操作或步骤的任何组合或排列。此外,在所附权利要求中对适于、被布置为、能够、被配置为、使得、可操作为或带有操作性地来执行特定功能的装置或系统或某个装置或系统的组件包括该装置、系统、组件,无论其或该特定功能是否被激活、打开或解锁,只要该设备、系统或组件被适配、布置、适于、配置、启用、可操作为或带有操作性地。

Claims (15)

1.一种用于注解客户端—服务器事务的系统,所述系统包括:
接口,所述接口被配置为接收非事务性数据和事务性数据流,其中:
所述非事务性数据包括与计算机上的多个事件相关联的信息,所述多个事件对应于由所述计算机的用户采取的一个或多个动作,其中所述非事务性数据包括在所述多个事件的时间所述计算机的显示器的屏幕截图,其中所述屏幕截图包括光标和动作文本;
所述事务性数据流包括在所述计算机与服务器之间的一个或多个事务并且与所述多个事件相关联;
处理器,所述处理器被配置为:
将所述事务性数据流划分成多个部分;
基于所述多个部分中的一部分与所述多个部分中的另一部分的相似性将所述多个部分分类成一个或多个组,以使得包含在所述一个或多个组中的所述多个部分中的每一部分对应于由所述计算机的所述用户采取的所述一个或多个动作的触发动作;
针对所述一个或多个组中的每个组,识别所述触发动作,其中所述触发动作是基于对所述计算机显示器的所述屏幕截图上的所述光标的位置相对于所述动作文本的位置的分析推断的;
至少部分地基于所述识别标记所述多个组中的每个组;
监视经标记的数据组;以及
基于对所述经标记的数据组的监视而检测在所述用户与所述服务器之间的异常行为。
2.根据权利要求1所述的系统,其中:
所述处理器还被配置为通过将所述非事务性数据与所述事务性数据关联识别每个组对应的所述一个或多个动作中的所述触发动作;并且
所述处理器还被配置为通过确定所述非事务性数据对应于所述事务性数据的概率识别由所述用户采取的可能的动作。
3.根据权利要求1所述的系统,其中:
所述处理器基于与所述一个或多个事务相关联的一个或多个时间戳划分所述事务性数据流;并且
所述处理器基于阈值确定所述多个部分中的一部分是否与所述多个部分中的另一部分相似。
4.根据权利要求1所述的系统,其中所述处理器还被配置为基于所述识别标记所述一个或多个事务中的每个事务。
5.根据权利要求1所述的系统,其中所述屏幕截图包括多个动作文本,并且所述触发动作是基于所述光标与所述多个动作文本中的每个动作文本的接近程度来推断的。
6.一种利用计算机执行软件注解客户端-服务器事务的方法,所述方法包括:
接收与所述计算机上的多个事件相关联的事务性数据流,其中所述多个事件对应于由计算机的用户采取的一个或多个动作;
将所述事务性数据流划分成多个部分;
基于所述多个部分中的一部分与所述多个部分中的另一部分的相似性将所述多个部分分类成一个或多个组,以使得包含在所述一个或多个组中的所述多个部分中的每一部分对应于由所述计算机的所述用户采取的所述一个或多个动作的触发动作;
从所述计算机接收非事务性数据,其中所述非事务性数据包括在所述多个事件的时间所述计算机的显示器的屏幕截图,其中所述屏幕截图包括光标和动作文本;
针对所述一个或多个组中的每个组,识别所述触发动作,其中所述触发动作是基于对所述计算机显示器的所述屏幕截图上的所述光标的位置相对于所述动作文本的位置的分析推断的;
基于所述识别标记每个组;
监视经标记的数据组;以及
基于对所述经标记的数据组的监视而检测在所述用户与服务器之间的异常行为。
7.根据权利要求6所述的方法,其中:
识别每个组对应的所述一个或多个动作中的所述触发动作包括将所述非事务性数据与所述事务性数据关联;并且
识别由所述用户采取的所述触发动作包括确定所述非事务性数据对应于所述事务性数据的概率。
8.根据权利要求6所述的方法,其中:
划分所述事务性数据流是基于与所述一个或多个事务相关联的一个或多个时间戳;并且
确定所述多个部分中的一部分是否与所述多个部分中的另一部分相似是基于阈值。
9.根据权利要求6所述的方法,其中从所述计算机上的事件收集器接收所述非事务性数据。
10.根据权利要求6所述的方法,其中所述屏幕截图包括多个动作文本,并且所述触发动作是基于所述光标与所述多个动作文本中的每个动作文本的接近程度来推断的。
11.一个或多个计算系统中的一个或多个计算机可读非暂态存储介质,当被执行以下操作时所述介质体现可操作的逻辑:
将事务性数据流划分成多个部分,其中所述事务性数据流与计算机上的多个事件相关联,其中所述多个事件对应于由所述计算机的用户采取的一个或多个动作;
基于所述多个部分中的一部分与所述多个部分中的另一部分的相似性将所述多个部分分类成一个或多个组,以使得包含在所述一个或多个组中的所述多个部分中的每一部分对应于由所述计算机的所述用户采取的所述一个或多个动作的触发动作;
从所述计算机接收非事务性数据,所述非事务性数据包括在所述多个事件的时间所述计算机的显示器的屏幕截图,且其中所述屏幕截图包括光标和动作文本;
针对所述一个或多个组中的每个组,识别所述触发动作,其中所述触发动作是基于对所述计算机显示器的所述屏幕截图上的所述光标的位置相对于所述动作文本的位置的分析推断的;
基于所述识别标记所述多个组中的每个组;
监视经标记的数据组;以及
基于对所述经标记的数据组的监视而检测在所述用户与服务器之间的异常行为。
12.根据权利要求11所述的介质,其中:
识别每个组对应的所述一个或多个动作中的所述触发动作包括将所述非事务性数据与所述事务性数据关联;并且
识别由所述用户采取的所述触发动作包括确定所述非事务性数据对应于所述事务性数据的概率。
13.根据权利要求11所述的介质,其中划分所述事务性数据流是基于与所述一个或多个事务相关联的一个或多个时间戳。
14.根据权利要求11所述的介质,其中确定所述多个部分中的一部分是否与所述多个部分中的另一部分相似是基于阈值。
15.根据权利要求11所述的介质,其中所述屏幕截图包括多个动作文本,并且所述触发动作是基于所述光标与所述多个动作文本中的每个动作文本的接近程度来推断的。
CN201680071041.7A 2015-10-22 2016-10-20 用于注解客户端-服务器事务的系统和方法 Active CN108292257B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562244994P 2015-10-22 2015-10-22
US62/244994 2015-10-22
US15/186053 2016-06-17
US15/186,053 US20170251072A1 (en) 2015-10-22 2016-06-17 System and method for annotating client-server transactions
PCT/US2016/057918 WO2017070349A1 (en) 2015-10-22 2016-10-20 System and method for annotating client-server transactions

Publications (2)

Publication Number Publication Date
CN108292257A CN108292257A (zh) 2018-07-17
CN108292257B true CN108292257B (zh) 2021-04-16

Family

ID=57286803

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680071041.7A Active CN108292257B (zh) 2015-10-22 2016-10-20 用于注解客户端-服务器事务的系统和方法

Country Status (5)

Country Link
US (1) US20170251072A1 (zh)
EP (1) EP3365788A1 (zh)
JP (1) JP6564532B2 (zh)
CN (1) CN108292257B (zh)
WO (1) WO2017070349A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030259B2 (en) * 2016-04-13 2021-06-08 Microsoft Technology Licensing, Llc Document searching visualized within a document
CN107368465B (zh) * 2016-05-13 2020-03-03 北京京东尚科信息技术有限公司 一种用于流式文档的截图类笔记处理的系统及方法
US10740407B2 (en) 2016-12-09 2020-08-11 Microsoft Technology Licensing, Llc Managing information about document-related activities
US10726074B2 (en) 2017-01-04 2020-07-28 Microsoft Technology Licensing, Llc Identifying among recent revisions to documents those that are relevant to a search query
US10628278B2 (en) * 2017-01-26 2020-04-21 International Business Machines Corporation Generation of end-user sessions from end-user events identified from computer system logs
KR102295805B1 (ko) 2019-04-02 2021-08-31 주식회사 마키나락스 학습 데이터 관리 방법
US11023896B2 (en) * 2019-06-20 2021-06-01 Coupang, Corp. Systems and methods for real-time processing of data streams
US11368359B2 (en) * 2020-10-09 2022-06-21 Silicon Laboratories Inc. Monitoring remote ZIGBEE® networks from the cloud

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database
US7941439B1 (en) * 2004-03-31 2011-05-10 Google Inc. Methods and systems for information capture
US20060212324A1 (en) * 2005-02-22 2006-09-21 Transparency Software, Inc. Graphical representation of organization actions
CN101421751A (zh) * 2006-02-21 2009-04-29 克瑞利斯有限责任公司 用于在通信网络中进行交易监控的方法和系统
CN101131747B (zh) * 2006-08-22 2012-02-01 国际商业机器公司 捕获和/或分析客户端的Web页面事件的方法、装置及系统
US7941707B2 (en) * 2007-10-19 2011-05-10 Oracle International Corporation Gathering information for use in diagnostic data dumping upon failure occurrence
JP4547638B2 (ja) * 2008-05-29 2010-09-22 ソニー株式会社 Webページ表示装置及びWebページ表示方法
US7953850B2 (en) * 2008-10-03 2011-05-31 Computer Associates Think, Inc. Monitoring related content requests
US8918739B2 (en) * 2009-08-24 2014-12-23 Kryon Systems Ltd. Display-independent recognition of graphical user interface control
CN101694650A (zh) * 2009-10-10 2010-04-14 宇龙计算机通信科技(深圳)有限公司 一种复制和粘贴数据的方法、装置和移动终端
US20110191676A1 (en) * 2010-01-29 2011-08-04 Microsoft Corporation Cross-Browser Interactivity Recording, Playback, and Editing
US9569326B2 (en) * 2010-04-15 2017-02-14 Ca, Inc. Rule organization for efficient transaction pattern matching
US8533743B2 (en) * 2010-06-30 2013-09-10 Openconnect Systems Incorporated System and method of analyzing business process events
US8650284B2 (en) * 2011-02-28 2014-02-11 Oracle International Corporation User activity monitoring
CN102508775A (zh) * 2011-10-31 2012-06-20 彭勇 一种交互式自动化测试系统
US9571591B2 (en) * 2011-12-28 2017-02-14 Dynatrace Llc Method and system for tracing end-to-end transaction which accounts for content update requests
US9330378B2 (en) * 2012-04-03 2016-05-03 International Business Machines Corporation Management and synchronization of related electronic communications
US8645212B2 (en) * 2012-04-30 2014-02-04 Bounce Exchange Llc Detection of exit behavior of an internet user
US9015666B2 (en) * 2012-07-11 2015-04-21 International Business Machines Corporation Updating product documentation using automated test scripts
US9049488B2 (en) * 2012-11-06 2015-06-02 Jamabi, Inc. Systems and methods for displaying and interacting with interaction opportunities associated with media content
CN103136360B (zh) * 2013-03-07 2016-09-07 北京宽连十方数字技术有限公司 一种互联网行为标注引擎及对应该引擎的行为标注方法
US9451017B2 (en) * 2013-07-24 2016-09-20 Dynatrace Llc Method and system for combining trace data describing multiple individual transaction executions with transaction processing infrastructure monitoring data
US20150058681A1 (en) * 2013-08-26 2015-02-26 Microsoft Corporation Monitoring, detection and analysis of data from different services
CN104516812A (zh) * 2013-09-27 2015-04-15 腾讯科技(深圳)有限公司 一种软件测试方法和装置
PL2924581T3 (pl) * 2014-03-24 2020-02-28 Pingdom Ab Sposób, serwer i agent do monitorowania wzorców interakcji użytkownika
CN104090762B (zh) * 2014-07-10 2017-04-19 福州瑞芯微电子股份有限公司 一种截图处理装置和方法

Also Published As

Publication number Publication date
CN108292257A (zh) 2018-07-17
WO2017070349A1 (en) 2017-04-27
EP3365788A1 (en) 2018-08-29
US20170251072A1 (en) 2017-08-31
JP6564532B2 (ja) 2019-08-21
JP2018536923A (ja) 2018-12-13

Similar Documents

Publication Publication Date Title
CN108292257B (zh) 用于注解客户端-服务器事务的系统和方法
AU2017202513B2 (en) Presenting images as search results
CA2901695C (en) Api version testing based on query schema
EP3161610B1 (en) Optimized browser rendering process
WO2018120720A1 (zh) 客户端程序的测试错误定位方法、电子装置及存储介质
US9292341B2 (en) RPC acceleration based on previously memorized flows
US10175954B2 (en) Method of processing big data, including arranging icons in a workflow GUI by a user, checking process availability and syntax, converting the workflow into execution code, monitoring the workflow, and displaying associated information
US8788516B1 (en) Generating and using social brains with complimentary semantic brains and indexes
US11657316B2 (en) Self-feeding deep learning method and system
US20130268810A1 (en) Detection of Dead Widgets in Software Applications
CN110990365A (zh) 一种数据同步方法、装置、服务器及存储介质
JP2019144872A (ja) 機械学習を行なう計算モデルを有するシステム、及び機械学習の方法
US11809271B1 (en) System and method for identifying anomalies in data logs using context-based analysis
US20190318223A1 (en) Methods and Systems for Data Analysis by Text Embeddings
WO2020234977A1 (ja) 情報処理装置、作成方法および作成プログラム
US10291639B1 (en) System and method for creating custom sequence detectors
US20230316098A1 (en) Machine learning techniques for extracting interpretability data and entity-value pairs
US9201971B1 (en) Generating and using socially-curated brains
US20140280558A1 (en) Generating and Using Social Brains
US8635225B1 (en) Representative document selection
US9934319B2 (en) Method of and system for determining creation time of a web resource
US8943074B2 (en) Generating and displaying an image tour in response to a user search query
US10296990B2 (en) Verifying compliance of a land parcel to an approved usage
US10255318B2 (en) Sampling a set of data
US20240062003A1 (en) Machine learning techniques for generating semantic table representations using a token-wise entity type classification mechanism

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200103

Address after: California, USA

Applicant after: CA,INC.

Address before: California, USA

Applicant before: Symantec Corporation

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant