一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

将数据流转换为结构化数据的制作方法

2022-07-13 22:42:55 来源:中国专利 TAG:


1.本公开涉及识别数据流中的结构以将数据流转换为结构化数据。更具体地,本公开涉及对日志消息进行令牌化以及对令牌化的日志消息进行聚类以表示日志消息中的模式。


背景技术:

2.计算机系统可用于传输、接收和/或处理数据。例如,服务器计算机系统可用于接收和存储资源(例如,网站内容,诸如网页),并且向一个或多个客户端计算机系统提供内容。在从客户端计算机系统接收到对内容的请求时,服务器计算机系统可以检索所请求的内容,并且将内容传输到客户端计算机系统以满足请求。
3.计算机系统可被配置为监控操作并提供表示这些操作的数据作为对数据请求的响应。表示这些操作的数据可以是数据日志的形式。


技术实现要素:

4.本文档中描述的系统和方法被配置为接收包括由至少一个计算系统提供的数据条目(例如,日志消息)的数据流,并将该数据流转换为可由至少一个计算系统查询的结构化表示。该系统和方法被配置为从至少一个计算系统接收数据流(例如,字符序列)、解析该数据流以确定数据条目的内容,并将该数据流转换为包括描述数据条目的元数据的结构化数据。该系统和方法被配置为使用元数据根据至少一个度量对日志进行聚类、响应关于日志的查询、输出关于日志的数据,等等。
5.本文描述的主题的实现可以提供各种技术益处。通常,监控至少一个其他计算系统(或其自身)的行为的计算系统接收数据流(例如,日志数据),该数据流包括表示被监控的计算系统的操作的信息。通常,数据流主要包括提供有关计算系统的正常操作的信息的重复数据。数据流的相对较小部分可以包括指示计算系统的操作中的异常的数据。
6.然而,与其丢弃指示正常操作的大部分数据流,在数据流的其余部分的上下文中解释指示计算系统的异常操作的数据流的部分可能是有用的。结构化该数据流使得计算系统可以对数据流执行分析、响应关于数据流的查询等可能是有用的。此外,减小数据流的大小并存储有关数据流的信息以提供可管理的数据量以供系统操作者查看可能是有用的。例如,在数据流的大部分包括可能仅在不重要的方面不同的半冗余数据的情况下(例如,具有不同日期的常见日志消息),可能希望仅存储有关该半冗余数据的数据(诸如收到多少消息)而不是半冗余数据本身。
7.然而,可能难以确定如何将数据流压缩成更小的表示,因为每个数据条目可能是唯一的(例如,具有唯一的时间戳等)。简单地组合数据流的相同数据条目或相似数据条目并不简单,因为虽然数据条目可能包括相似的信息构建块(例如,具有相似的结构),但是构建块的值可能完全不同。例如,两条日志消息可以报告第一主机和第二主机无故障地响应服务请求。可能希望将其组合成指示服务正在正确响应的表示,但数据条目中不同的时间
戳和主机标识符可能会导致日志消息(表面上)看起来非常不同。也很难识别数据流的构建块是什么。
8.为了对数据流进行压缩,计算系统确定在数据流的压缩表示中应该保留哪些数据,以及可以丢弃哪些数据,使得压缩表示仍然表示计算系统的行为。例如,可以通过令牌化日志消息来保留日志消息的结构,而无需保存日志消息中内容的详细信息。在上面的示例中,可能希望显示服务无故障地响应两个请求,但可能没有必要保留与响应相关联的特定主机名。也可能没有必要保留与每条消息相关联的时间戳(一旦表示时间戳的数据被识别为是时间戳)。
9.为了克服上述问题并实现这些方案,例如,本文描述的系统被配置为将数据流(诸如由计算系统接收的日志数据)转换为包括数据流中标识的构建块(例如,令牌)的结构化数据。通过解析数据流并确定数据流的哪些部分是冗余或半冗余,识别结构化数据的构建块。该结构化数据包括使计算系统能够响应关于数据流的查询的元数据。例如,计算系统可以被配置为解析接收到的日志消息以生成表示每条日志消息的至少一个令牌。每个令牌都与描述该令牌的元数据相关联。
10.计算系统可以通过合并数据流的部分(例如,将数据流的日志消息聚类成数据集群)来减小数据流的大小。例如,由相似或相同的令牌组表示的日志消息可以聚类在一起。计算系统可以响应对包括特定令牌的日志消息的查询、显示日志消息的集群等。计算系统因此可以输出可以帮助操作者识别计算系统的异常的数据(例如,日志消息集群的列表)。例如,可以将数千甚至数百万条日志消息的记录压缩成数百或数十个表示计算系统的操作的集群。日志消息的集群表示移除了不提供对计算系统的操作的额外洞察的冗余数据,同时保留了可以指示计算系统的异常或其他感兴趣行为的数据。
11.在一方面,用于处理数据流以识别数据流的结构的过程包括接收数据流,该数据流包括至少一条日志消息,每条日志消息包括字符序列。该过程包括从数据存储中检索用于将日志消息字符编码为至少一个令牌的规则集。该过程包括在接收到至少一条日志消息时解析该至少一条日志消息。通常,解析包括根据该规则集中的至少一个规则生成多个令牌。在一些实现方式中,每个令牌表示至少一条日志消息的字符序列的对应部分。解析包括从多个令牌形成令牌序列。解析包括向令牌序列中的至少一个令牌分配至少一个属性值,该属性值描述属性值被分配到的对应令牌的字符序列的对应部分。该过程包括将令牌序列分配给集群。通常,将令牌序列分配给集群包括确定令牌序列与表征集群的模式匹配。聚类包括将令牌序列与集群合并。该过程包括输出集群的表示,其包括集群中包括的令牌序列。通常,集群指示数据流的至少一部分的结构。
12.在一些实现方式中,该过程包括确定由令牌序列中的令牌表示的字符序列的至少一部分包括具有预定类型的变量。该过程包括将属性值分配给指示变量的类型的令牌。
13.在一方面,该规则集包括包含节点和边的图。解析至少一条日志消息包括在节点中的根节点处在图中初始化位置,并且对于日志消息的连续字符,沿着节点和边的路径从根节点遍历该图直到到达端节点。端节点表示特定令牌。该过程包括将由节点和边的路径表示的每个字符编码为由端节点表示的特定令牌。
14.在一些实现方式中,该规则集包括包含至少一个条目的查找表。该至少一个条目包括特定字符序列和特定令牌之间的映射。解析该至少一条日志消息包括确定日志消息的
字符序列的至少一部分与查找表的条目的特定字符序列匹配,并且将该字符序列的至少所述部分编码为特定令牌。
15.在一些实现方式中,确定令牌序列与表征集群的模式匹配包括确定令牌序列和集群各自包括相同数量的令牌以及确定令牌序列和集群各自包括同样顺序的可合并属性值。
16.在一些实现方式中,将令牌序列分配给集群包括确定令牌序列包括位于令牌序列中特定位置的特定令牌,确定集群包括位于集群中特定位置的不可合并令牌,以及响应于该确定,将令牌序列分类到不同的集群中,而不管令牌序列中的剩余令牌。
17.在一方面,属性值表示由令牌表示的字符序列的类别,该类别包括键值、日期、索引、查询、错误代码、错误消息和变量值中的一者。
18.在一方面,该表示还包括从数据流生成的每个集群的列表,该列表包括集群的表示。在一些实现方式中,从数据流生成的每个集群的列表基于与每个集群相关联的计数值进行排序。
19.在一方面,输出集群的表示响应于从客户端装置接收到针对集群的表示的请求。例如,集群的表示的至少一个令牌被表示为代码字或代码符号,该代码字或代码符号是基于与至少一个令牌相关联的属性值来选择的。
20.在一些实现方式中,多个令牌中的令牌表示具有第一值的变量。该令牌被配置为与集群的表示具有第二值的变量的对应令牌合并,该第一值不同于该第二值。
21.在一方面,用于获得一个或多个计算装置的性能度量的计算系统包括解析模块和聚类模块。该解析模块被配置用于执行操作,该操作包括:接收数据流,该数据流包括至少一条日志消息,每条日志消息包括字符序列;以及从数据存储中检索用于将日志消息字符编码为至少一个令牌的规则集。在接收到至少一条日志消息时解析该至少一条日志消息,其中解析包括根据该规则集中的至少一个规则生成多个令牌。每个令牌表示至少一条日志消息的字符序列的对应部分,并且从多个令牌形成令牌序列。解析包括向令牌序列中的至少一个令牌分配至少一个属性值,该属性值描述属性值被分配到的对应令牌的字符序列的对应部分。聚类模块被配置为执行包括将令牌序列分配给集群的操作。将令牌序列分配给集群包括确定令牌序列与表征集群的模式匹配,以及将令牌序列与集群合并。计算系统被配置为输出集群的表示,该集群的表示包括集群中包括的令牌序列,该集群指示数据流的至少一部分的结构。
22.在一方面,一个或多个非暂时性计算机可读介质存储指令,该指令可由一个或多个处理器执行,该处理器被配置为执行用于处理数据流以识别数据流的结构的操作。该操作包括接收包括至少一条日志消息的数据流,每条日志消息包括字符序列。该操作包括从数据存储中检索用于将日志消息字符编码为至少一个令牌的规则集。该操作包括在接收到至少一条日志消息时解析该至少一条日志消息。通常,解析包括根据该规则集中的至少一个规则生成多个令牌。在一些实现方式中,每个令牌表示至少一条日志消息的字符序列的对应部分。解析包括从多个令牌形成令牌序列。解析包括向令牌序列中的至少一个令牌分配至少一个属性值,该属性值描述属性值被分配到的对应令牌的字符序列的对应部分。该操作包括将令牌序列分配给集群。通常,将令牌序列分配给集群包括确定令牌序列与表征集群的模式匹配。聚类包括将令牌序列与集群合并。该操作包括输出集群的表示,其包括集群中包括的令牌序列。通常,集群指示数据流的至少一部分的结构。
23.一个或多个实施方案的细节阐述于附图和以下描述中。通过说明书和附图以及权利要求,其它特征以及优势将为显而易见的。
附图说明
24.图1是用于将数据流转换为结构化数据的计算系统的示例计算环境的图。
25.图2示出了将日志消息转换为令牌序列的示例过程。
26.图3a示出了包括用于令牌化日志消息的图形结构的示例有限自动机。
27.图3b示出了包括用于令牌化日志消息的查找表的示例有限自动机。
28.图4示出了与令牌化的日志消息相关联的属性和属性值的示例。
29.图5示出了对两个令牌化的日志消息进行聚类并合并令牌化的日志消息的示例。
30.图6至图7示出了将数据流转换为结构化数据的示例过程。
31.图8示出了监控系统的输出的示例。
32.图9是示例计算系统的图。
具体实施方式
33.本公开描述了一种计算系统,其被配置为将(例如,ascii字符或类似字符的)数据流转换为包括属性和属性值的结构化数据。该计算系统被配置为接收与数据流中的其他数据条目离散的数据条目(例如,字符串)。例如,数据条目可以包括日志消息。该数据流通常包括内容相似但可能略有不同的多个数据条目。换言之,该数据条目通常包括相同的字符构建块,但可以与计算系统接收的其他数据条目不同(或者甚至是唯一的)。
34.该计算系统被配置为将数据流的数据条目转换为至少一个令牌。令牌(关于图1描述的)各自表示数据条目的一部分并且可以与元数据(诸如属性和属性值)相关联。令牌是每个数据条目的构建块。一旦数据条目被转换为至少一个令牌,它就被称为令牌化数据条目。
35.该计算系统被配置为将包括彼此相同的令牌的令牌化数据条目分组到数据条目的集群中。对数据条目进行聚类使得计算系统能够使用减少的数据量(例如,减少多达数量级的数据)来表示数据流。该计算系统可以显示数据流的最独特的数据条目,相对于不那么独特的更常见的数据条目,这对于系统操作者来说可能具有更高的重要性。因此,对数据流的数据进行结构化可以帮助监控系统(及其操作者)识别计算系统中的操作异常,因此使计算系统的操作者能够采取纠正措施来补救异常。
36.图1是用于将数据流的数据转换为结构化数据的示例计算环境100的图。计算环境100包括被配置为从计算系统114接收数据流的监控系统102。计算环境100包括客户端装置112,该客户端装置被配置为从监控系统102和/或计算系统114发送一个或多个数据请求。客户端装置112可以通过网络116(例如,互联网)访问监控系统102。监控系统102被配置为接收由计算系统114生成的数据流。监控系统102将数据流转换为结构化数据,包括元数据。由监控系统102生成的结构化数据可以由客户端装置112访问(例如,响应于用户查询)并通过客户端装置的用户界面(未示出)呈现给用户。随后更详细地描述了计算环境的每个部件。
37.数据流包括字符串,诸如ascii字符。数据流可以被配置为从计算系统114间歇地
(或在某些情况下,连续地)发送到监控系统102以供监控系统102摄取。监控系统102接收数据流、摄取数据流(例如,处理数据流的字符),并且对数据流执行令牌化和聚类操作,如随后描述的。数据流可以是连续的字符串,也可以被分割成数据条目或数据元素。数据流可以形成一个或多个数据条目118,每个数据条目由计算系统114依次发送到监控系统102。数据条目118各自被单独地和整体地生成(例如,不生成部分数据条目)。例如,每个数据条目118可以包括日志消息。日志消息由计算系统114整体生成,然后存储在数据条目的数据库中和/或发送到监控系统102进行处理。日志消息相对于图2详细描述,并且通常包括对计算系统114的操作的描述、关于计算系统114硬件或软件(或两者)的细节和/或描述日志消息本身的一个或多个其他属性(例如,计算系统114生成日志消息时的数据和时间)。数据条目118可以作为数据流被监控系统102接收,因此监控系统可以使用数据条目的部分(例如,时间戳或语法字符)来确定第一个数据条目何时完成以及第二个数据条目何时开始。
38.监控系统102通常包括至少一个计算系统,其被配置为监控计算机或计算机网络的计算操作。监控系统102可以监控生成描述该计算系统114的操作的数据流的计算系统(例如,计算系统114)的操作。例如,监控系统102可以被配置为监控计算系统114如何响应来自计算系统114的一个或多个服务的数据请求、计算系统114如何处理数据、在该处理期间发生什么错误,等等。通常,该操作可以包括由计算系统114执行的任何功能。在一些实现方式中,计算系统114包括监控系统102。例如,监控系统102可以包括安装在计算系统114上的软件套件。在一些实现方式中,监控系统102被配置为监控类似于计算系统114的多个计算系统的操作。在此类配置中,监控系统102可以通过主机名或其他标识符来识别数据流的特定源。监控系统102从计算系统114接收数据流、将数据流转换为结构化数据,并且响应关于计算系统114的操作行为的查询。
39.监控系统102包括解析模块104和聚类模块106。计算系统102的解析模块104被配置为扫描(例如,逐个字符地摄取)数据流的数据并生成将数据流的数据条目表示为令牌化数据元素的令牌。聚类模块106被配置为将令牌化数据元素彼此聚类(例如,合并)成组。聚类可以基于令牌化数据元素的令牌和与令牌化数据元素相关联的元数据(例如,属性类型和属性值)中的一者或两者。通常,当每个令牌序列中的令牌的序列完全匹配或符合至少一个合并规则时,聚类模块106将令牌序列合并在一起,随后将进行描述。
40.令牌包括数据流的一个单元,它是由监控系统102确定的数据流的构建块。当适用时,令牌与指示令牌的类型和/或令牌的值的元数据相关联。令牌可以包括单个字符(例如,数据流的标点符号)。令牌通常包括数据流中的一组连续字符。数据流的令牌可以彼此不同。数据流的数据条目(例如,日志消息)的令牌可以彼此相关联(例如,分组在一起)。令牌由解析模块104生成,如关于图2至图4详细描述的。通常,数据流的令牌的内容是基于数据流包括的内容。解析模块104包括用于从数据流解析令牌的逻辑。该逻辑可以是预定义的、根据接收到的数据流动态确定的或者两者的组合。
41.与每个令牌相关联的元数据包括由令牌表示的数据的描述。元数据指示令牌的类型,其可以与由监控系统102转换的特定数据流相关。例如,指示令牌类型的元数据可以指示令牌表示时间戳(例如,日期)、主机名(例如,响应客户端装置112的数据请求的特定计算系统114)、服务名称(例如,响应客户端装置的数据请求的服务)、错误消息类型、标点类型、用于数据流的格式化机制、标签标识、源名称,等等。
42.令牌的元数据的值称为令牌的属性。令牌的属性可以包括令牌类型和令牌值。例如,一些令牌可以表示结构化数据的键,而其他令牌可以表示键的值。例如,元数据可以指示令牌类型是时间戳,而值可以包括时间戳的值。并非每个令牌都包括值。在一些实现方式中,令牌的值不被监控系统102认为对于监控计算系统114的操作行为是有用的。在这种情况下,可以丢弃令牌中包括的数据的值。例如,数据流包括时间戳可能是相关的,这可能表明接收到新的日志消息。但是,时间戳中表示的实际时间对于监控目的可能不是必需的。监控系统102将包括时间戳的数据序列部分令牌化为可以与表示时间戳数据的其他令牌合并的令牌,而不考虑时间戳中数据的值。
43.替代地或除此之外,令牌可以包括数据流的语法,并且元数据可以指示令牌包括语法。在一些实现方式中,元数据包括指示包括在令牌中的语法的操作功能的数据。这对于确定数据流的两个数据条目是否可以合并,或者数据条目是否具有不同的结构并且不能合并可以是有用的。关于图2至图4详细描述了令牌化。
44.解析模块104被配置为将非结构化数据条目118(例如,日志消息)转换为令牌列表。在本公开中,这种转换可以称为数据条目的令牌化。为每个数据条目118生成的令牌表示数据条目的内容的结构。数据条目本身(和数据流)不是结构化数据,而通常是非结构化字符串。在这种上下文中,数据条目的内容的结构是指可以被转换为令牌的数据条目的构建块的顺序。
45.解析模块104被配置为将每个数据条目118的内容编码在令牌列表中,使得可以从令牌重构消息。通常,令牌顺序是基于数据条目118中字符的顺序确定的。换言之,表示数据条目118的令牌的顺序对应于数据流中字符的顺序,以保留数据条目的内容的结构。
46.解析模块104如下解析数据流。解析模块104摄取数据流。在一些实现方式中,解析模块104可以一次摄取数据流的一个字符。在一些实现方式中,解析模块104可以成批地摄取数据流的字符。解析模块104将确定性有限自动机应用于接收到的数据流以生成令牌。该自动机包括用于将数据流令牌化为令牌的解析规则集。例如,当接收到字符时,解析模块104可以基于接收到的先前字符来确定是否应该生成特定令牌。该自动机可以包括查找表、有向图、状态机等,并且将关于图2至图4更详细地描述。应用解析规则集的计算成本与包括的解析规则的数量无关。
47.通常,可以使用有限自动机针对数据流评估解析规则。在一些实现方式中,解析模块104然后将合并规则应用于生成的令牌以丰富令牌属性。例如,可以使用合并规则来检测单词令牌是键值序列中的键。通常,因为键是消息结构的指示符,所以键值在聚类阶段期间不应该成为变量。相反,键值应该被保留在令牌中。在另一个示例中,合并规则可用于防止令牌化消息的第一个令牌变为变量值(类似于键值示例)。在此示例中,当消息以单词开头时,单词的值包括有关消息含义的信息,因此单词的值被保留在令牌中。随着更多的数据流被摄取,可以在数据流中发现附加模式以应用该解析规则。该解析规则被一致地应用于数据流,使得发现的模式是确定性的。解析模块104可以将合并规则应用于令牌以更新令牌(例如,与一个或多个令牌相关联的布尔标志),以反映包括令牌的数据条目118的结构和令牌关于该结构的位置。
48.解析模块104生成的令牌可以由监控系统102作为令牌数据108存储在存储器中。在一些实现方式中,可以随时间为计算系统114生成令牌库,从而促进解析模块104对数据
流的解析和令牌的生成。例如,当解析模块104从计算系统114生成更多令牌时,可以更新(例如,增建)有限自动机。如随后描述的,有限自动机可以包括查找表、有向图等中的一者或两者。
49.监控系统102的聚类模块106被配置为基于每个数据条目的令牌来聚类数据流的数据条目118。聚类模块106的聚类将数据流的两个或更多个数据条目118组合成集群,并且还包括集群中数据条目118的数量的计数。
50.该集群包括由集群表示的每个数据条目118中的令牌、聚类属性和收集器。通常,为了聚类在一起,在解析模块104已经应用任何合并规则之后,数据条目118包括同样顺序的相同令牌类型。因此,该集群包括特定顺序的令牌序列和由集群表示的数据条目的数量的计数,这可以称为集群模式。聚类属性包括在与令牌相关联的元数据中表示的令牌的属性。这些聚类属性包括与数据流相关联的属性,它们不是从日志消息或令牌中提取的,而是由产生数据流的系统生成的。收集器分析聚类属性以确定是否应将数据条目添加到集群。例如,聚类属性可以包括服务标识符、包括在数据条目中的错误消息的严重性、主机名标识符,等等。聚类模块106可以根据由监控系统102建立并且可以取决于特定应用程序(例如,数据流包括什么)的不同标准来聚类数据条目。收集器从解析模块104接收令牌。通常,收集器接收表示数据条目118的令牌列表及其相关联的元数据。如果令牌列表与为集群指定的令牌列表匹配,则收集器分析相关联的元数据并确定是否应将数据条目添加到集群。收集器被配置为维护集群的计数器和集群的其他统计信息,跟踪集群中数据条目的分布,并且在一些示例中,维护包括在集群中的代表性数据条目的实际字符串的样本。图5中示出了集群的示例。
51.聚类模块106算法跟踪已经被处理的数据条目118的集群列表。当处理传入的令牌化数据条目时,聚类模块106首先检查现有集群以确定任何现有集群是否包括与令牌化数据条目匹配的令牌序列。如果是这种情况,则聚类模块106由集群的收集器处理令牌化数据条目,并在适当时将令牌化数据条目合并到集群中。否则,聚类模块106生成包括令牌化数据条目的新集群。
52.如果令牌化数据条目的聚类属性与集群的属性匹配,则将令牌化数据条目合并到集群中。这可以是限制性的或非限制性的,取决于监控系统102的目的。例如,监控系统102可以指定集群仅包括具有相同服务标识符的数据条目118。然而,监控系统102可以指定集群只需要包括相同的令牌列表,而不管元数据中指定的属性值。
53.当传入的令牌化数据条目中的令牌数量与集群模式中的令牌数量匹配时,聚类模块106将数据条目118添加到集群。聚类模块106可以基于集群的聚类属性(例如,产生数据流的主机系统的标识符)和集群模式中的令牌数量来划分集群。为了减少处理时间,聚类模块106可以在处理来自解析模块104的传入的令牌化数据条目118时仅检查匹配的集群候选。
54.通常,如前所述,集群的特征是令牌模式,其包括描述属于集群的日志的结构和内容的令牌序列。如果集群仅包含一个数据条目118,则令牌模式对应于令牌化数据条目118的令牌序列。当其他传入数据条目118被处理时,为了确定数据条目是否应该被包括在给定集群中,聚类模块106确定令牌模式是否可以与令牌化数据条目118令牌模式合并。具体地,聚类模块106比较令牌化数据条目的每个令牌是否可成对地合并到集群模式。如果所有令
牌对都是可合并的,则数据条目适合集群并且聚类模块106将数据条目添加到给定集群。
55.通常,如果令牌具有相同的属性类型,则认为两个令牌是可合并的。在一些实现方式中,聚类模块106可以包括防止过度合并的类型特定规则。例如,标点字符通常可以反映数据条目的内容的结构。为了确保只合并具有匹配结构的内容的数据条目,表示标点字符的令牌只有在它们编码了相同字符时才被认为是可合并的。其他此类规则也是可能的(例如,包括给定字符或字符序列的令牌只有在它们完全匹配时才被认为是可合并的)。
56.聚类模块106可以跟踪属于给定集群的数据条目的分布(例如,多样性),因为集群中的数据条目118不需要彼此完全匹配。将日志添加到集群包括通过将其每个令牌与传入的数据条目的匹配令牌合并来更新令牌模式,并更新集群的属性以反映属于集群的数据条目的多样性。例如,许多令牌包括布尔标志,该布尔标志当且仅当令牌是通配符时(即,如果它由具有不同值的令牌合并产生)为真。通配符令牌包括可以表示数据条目中不同的实际字符但表示跨不同数据条目的相同内容结构的令牌。例如,通配符令牌可以包括表示变量名称的令牌。通常,通配符令牌出现在不太可能表示许多数据条目的统一字符的令牌中,诸如时间戳、变量名称、数值等。通配符令牌可以忽略它正在令牌化的属性的值,而只跟踪令牌类型。例如,可以合并表示不同时间戳值的两个令牌,因为它们都表示时间戳,这是监控系统102感兴趣的信息。
57.聚类模块106生成集群并将集群存储为集群数据110。响应于接收到对集群数据110的请求,可以将集群数据110返回到客户端装置112。例如,客户端装置112可以请求对所有集群或包括特定聚类属性的集群的一部分的请求。作为响应,监控系统102可以返回那些集群。例如,监控系统102可以将集群数据110输出为排序的集群列表。例如,集群可以从最不频繁到最频繁进行排序。用户然后可以通过查看排序的集群来快速确定计算系统114的行为,因为指示异常行为的数据条目(例如,日志)被突出显示,而常规日志消息可以被淡化。通过报告集群数据110,可以将数千甚至数百万的数据条目118合并成数十或数百个集群。
58.在一些示例中,包括相同结构的数据条目可以被不同地令牌化并且包括彼此不同数量的令牌。为了确保此类数据条目被包括在相同的集群中,可以由聚类模块106应用附加规则,这使得可能将来自给定数据条目118的一个令牌与来自另一数据条目的多个令牌合并。例如,列表、可变长度查询串和错误消息等可以在前面描述的令牌化过程期间被合并规则检测并被标记为可变长度部分。当聚类模块106正在确定将数据条目合并到给定集群的合格性时,聚类逻辑能够在那些部分中将不同数量的令牌合并在一起。
59.如上所述,计算系统114通过网络116可通信地连接到客户端装置112和监控系统102。计算系统114可以包括但不限于例如一个或多个服务器计算机、终端装置等。计算系统114可以被配置为传输、接收和/或处理数据。例如,在一些情况下,计算系统114可以是被配置为接收和存储内容(例如,网站内容,诸如网页)并且使内容可用于一个或多个其他计算机系统(例如,客户端装置112)的网站服务器。在接收到请求(例如,来自客户端装置112)时,计算系统114可以检索所请求的内容并将该内容发送到请求计算机系统以满足该请求。在一些实现方式中,计算系统114存储指示计算系统已经执行动作(例如,响应此类请求)的日志。日志可以被存储为数据条目118。在一些情况下,计算系统114可以由与拥有、操作和/或维护计算系统102的各方不同的各方拥有、操作和/或维护。在一些实现方式中,计算系统
114和监控系统102可以被组合成常见硬件装置。
60.监控系统102还通过网络116可通信地连接到一个或多个客户端装置112。每个客户端装置112包括相应的用户界面(未示出)。用户可以与用户界面交互以查看由监控系统102生成的报告(例如,集群列表)。用户还可以与用户界面交互以将数据传输到其他装置(例如,传输到监控系统102和计算系统114)。用户可以与用户界面交互以发布命令(例如,向监控系统102和向计算系统114)。在一些实现方式中,用户可以将软件应用程序安装到客户端装置112上以便促进这些任务的执行。
61.监控系统102可以是客户端装置112的一部分。解析模块104和/或聚类模块106可以一者或两者都由客户端装置112执行。例如,解析模块104和/或聚类模块106的逻辑可以作为安装在客户端装置112上的应用程序来执行。解析模块104和聚类模块106中的一者或两者的逻辑可以在客户端装置112请求报告之前或在客户端装置112请求报告期间和/或之后执行。
62.客户端装置112可以是用户用来查看、处理、传输和接收数据的任何电子装置。客户端装置112的示例包括计算机(诸如台式计算机、笔记本计算机、服务器系统等)、移动计算装置(诸如蜂窝电话、智能手机、平板电脑、个人数据助理、具有联网能力的笔记本计算机)和能够从网络116传输和接收数据的其他计算装置。客户端装置112可以包括使用一个或多个操作系统(例如,microsoft windows、apple osx、linux、unix、android、apple ios等)和/或架构(例如,x86、powerpc、arm等)操作的装置。在一些实现方式中,客户端装置112不需要相对于环境100的其余部分位于本地,并且可以位于一个或多个远程物理位置。
63.网络116可以是可通过其转移和共享数据的任何通信网络。例如,网络116可以是局域网(lan)或广域网(wan),例如互联网。网络116可以使用各种网络接口来实现,例如无线网络接口(诸如wi-fi、蓝牙或红外线)或有线网络接口(诸如以太网或串行连接)。网络116还可以包括多于一个网络的组合,并且可以使用一个或多个网络接口来实现。
64.监控系统102和计算系统114各自被示为相应的单个部件。然而,实际上,每个都可以在一个或多个计算装置上实现。例如,监控系统102或计算系统114可以是连接到网络116的单个计算装置。在一些实现方式中,监控系统102或计算系统114可以包括连接到网络116的多个计算装置。例如,监控系统102可以包括若干计算装置,并且解析模块104和聚类模块106可以分布在这些计算装置中的一个或多个上。在一些实现方式中,监控系统102或计算系统114不需要位于环境100的其余部分的本地,并且监控系统102或计算系统114的部分可以位于一个或多个远程物理位置。
65.转到图2,示出了用于将日志消息202解析成令牌的示例过程200。日志消息202包括以下数据串:yyyy-mm-ddthh:mm:ss{“message”:“json formatted log”,“ddtags”:“env:my-env,user:my-user”,“ddsource”:“my-integration”,“hostname”:“my-hostname”,“service”:“my-service”}。这个给定的日志消息202包括若干不同部分,包括时间戳yyyy-mm-ddthh:mm:ss和由括号{message:

}表示的消息。此外,消息结构可以被分为若干子部分。该消息包括格式化语句“json form atted log、”标签定义语句“ddtags”:“env:my-env,user:my-user、”源定义“ddsource”:“my-integration、”主机标识符定义“hostname”:“my-hostname,”以及服务标识符“service”:“my-service。”解析模块104被配置为识别这些部分并将日志消息202令牌化为这些部分,这些部分表示日志消息的内容的
整体结构(例如,时间戳、消息:格式、标签、源、主机、服务)。所示的日志消息202的部分被令牌为具有标识那些部分的对应属性的令牌。
66.在一些实现方式中,解析模块104被配置为解析日志消息212的消息220而不是整条日志消息212。消息220的内容可以基于消息220的字符的语法以类似的方式被解析为令牌,诸如密钥令牌、互联网协议(ip)地址令牌、错误代码令牌等等。在这种情况下,监控系统102认为日志消息212是结构良好的对象,包括可直接访问的消息220和聚类属性216(而不是如图2所示被从日志消息212中解析)。因此,监控系统102不是解析出主机名、源等,而是仅基于消息220的内容对日志消息212进行聚类。
67.虽然所示的日志消息202包括用于说明目的的给定部分,但具有完全不同内容结构的其他日志消息也是可能的。此外,解析模块104不需要接收日志消息,但如果数据流具有内容结构,则可以解析任何数据流的内容结构。如上所述,这不需要数据流包括结构化数据。在一些实现方式中,数据流通常是非结构化的字符流,并且解析模块104推断如贯穿本公开所描述的内容结构。例如,解析模块104基于内容的结构确定哪些字符是日志消息202的一部分以及哪些字符包括在后续或先前的日志消息中。例如,解析模块104可以具有说明“}”字符表示日志消息的结束的规则,使得“}”之后的任何字符都不包括在特定日志消息中。
68.日志消息202可以由计算系统114响应于在计算系统114上发生的操作而生成。例如,日志消息可以描述计算系统114的服务如何响应来自客户端装置112的请求。解析模块104接收日志消息202的字符串并应用有限自动机206、208中的一个来生成令牌210,如图2的框204所示。自动机206、208的示例应用程序关于图3a、3b进行描述。
69.对于日志消息202,生成的令牌210包括日期令牌210a、源令牌210b、标签令牌210c、格式令牌210d和标点令牌210e、210f、210g、210h和210i。日期令牌210a包括数字字符和标点字符两者以包括yyyy-mm-ddthh:mm:ss。由于字符的顺序,解析模块104可以确定这些字符包括日期。例如,解析模块104可以确定四个数字的序列yyyy,后面跟着连接号,后面跟着两个数字字符mm等等,指示时间戳。在数据流中接收的下一个字符是空格,当空格跟随时间戳时,解析模块104可以知道将其单独令牌化为令牌210h。解析模块104然后可以确定括号“{”也应该被令牌化为令牌210i,因为括号指示日志消息的结构。“消息”一词被令牌化为令牌210j,因为它位于引号内。在解析令牌210b、210c、210d、210e、210f和210g时应用类似的逻辑。令牌210可以被存储为令牌数据108,如关于图1所描述的。
70.一旦解析模块104已经生成了令牌210,令牌的有序列表214就表示令牌化的日志消息212。令牌210的有序列表214以对应于作为日志消息202接收的数据流的字符顺序的顺序对令牌进行排序。令牌210可以各自与属性类型和/或属性值相关联。例如,令牌210a与日期216a属性相关联。表示字符“json formatted log”的令牌210d与消息格式216b属性相关联。表示字符“ddtags”的令牌210c与标签216c属性相关联。表示字符“ddsource”的令牌210b与属性源216d相关联。其他令牌也与适用的属性类型和值相关联。例如,令牌210e-i可以与标点属性相关联。在一些实现方式中,令牌可以与多于一个属性相关联。例如,表示日志消息202的括号{

}内的字符的每个令牌除了与其他属性相关联之外还与消息属性220相关联。聚类模块106使用属性216来确定是否应该将日志消息202聚类到现有集群中或者是否应该为日志消息202生成新集群。
71.转到图3a,示出了包括有向图206的有限自动机。解析模块104可以使用该有向图来确定应该如何令牌化日志消息202。尽管日志消息202的字符可以一个一个地处理,但是有向图206为了说明的目的而示出了字符组以简化表示。
72.当接收到新字符时,解析模块104在图206的节点306处开始。一旦接收到四个连续的数字字符,该图就位于节点308。一旦接收到####-##-##t##:##:##的字符串,解析模块104前进通过节点310并确定应该将已经接收到的字符令牌化为日期令牌312。该字符被分组为具有日期属性类型302的令牌312。在一些实现方式中,也可以保存令牌的特定值304。
73.其他类似的基于语法的规则也是可能的。例如,如果数据流可以包括用于ip令牌的格式为“###.###.###.###”的字符串,或“##.#”,具有可变数量的数字,用于数字令牌。这些类型可以被识别并以类似于日期312令牌的方式被分配令牌类型。在另一个示例中,可以存在用于匹配uri语法(定义见rfc3986)的令牌化规则。用于识别这些格式并使用分配的令牌类型从这些格式中生成令牌的其他规则是可能的。
74.解析模块104返回到图206的开始306。日志消息202的字符的进一步摄取导致图206的不同路径向下到不同的令牌。例如,如果到达了到多个标签属性316的路径,则解析模块104可以将字符“ddtags”令牌化为标签属性类型302并且将字符env:my-env和user:my-user令牌化为标签属性类型的相应属性值304。在一些实现方式中,字符env:my-env和user:my-user分别各自与另一个属性类型相关联,诸如env和user,以完成令牌318。类似地,可以将字符“ddsource”令牌化为源属性320,并将字符my-integration令牌化为源属性类型的属性值322。字符my-integration可以与不同于其他源属性值的源属性值304相关联。当监控系统102正在对集群数据110进行分区、响应查询或甚至将日志消息202聚类成集群时,如果需要,可以考虑源和标签的值304。这样,令牌210的属性定义了日志消息202的内容的结构。
75.在一些实现方式中,图206可以随着更多日志消息被令牌化而被更新。可以创建新路径来处理新的字符序列。图206被配置为使得数据流的任何可能的字符序列对应于图206中的路径。
76.转到图3b,可以用于日志消息202的令牌化的查找表208的示例。在一些实现方式中,查找表可替代图206使用。查找表208可以包括解析规则300的列表。列表300的每个规则与属性类型302和属性值304(如适用)相关联。
77.当解析模块104接收到与列表300的规则匹配的字符序列时,字符被转换为具有表208中所示的属性类型和值的令牌。例如,当接收到包括####-##-##t##:##:##的字符序列时,生成令牌324来表示这些字符,并且属性类型日期与令牌324相关联。这里,字符#包括任何数字字符。在另一示例中,当接收到包括“ddtags”:“n:n,m:m”的字符时,解析模块104生成具有属性302标签和值304n:n和m:m的令牌ddtags326。在此示例中,n:n表示第一标签类型和标签值,并且m:m表示不同的第二标签类型和标签值。在又一示例中,当接收到字符序列“ddsource”时,解析模块104确定后续字符“*:*”为源类型和源值。解析模块104生成具有源的类型302和my-integration的值304的令牌ddsource328。这里,*表示后面的任意数量的字母数字字符,直到接收到标点字符为止。与图206类似,随着新字符序列被添加到数据流(例如,为计算系统114定义新日志消息),可以用新的令牌化规则更新表208。因此,解析模块104可以从表208或图206或表和图的组合生成令牌210。
78.转到图4,示出了令牌化日志消息212的示例。令牌化日志消息212是从图2至图3b的日志消息202被令牌化的。令牌化日志消息212包括令牌的令牌序列214。令牌序列214的令牌与指定令牌的类型和/或值的属性216相关联。
79.一旦解析模块104已经令牌化该日志消息202,解析模块104进一步确定与令牌序列214相关联的元数据216应该是什么。通常,元数据216与日志消息212相关联(例如,由日志消息的源生成),但不同于日志消息。在一些实现方式中,解析模块104可以存储给定令牌400的值402。一旦令牌化日志消息212被包括在集群中,这些值可用于将令牌化日志消息212与其他日志消息分开。例如,监控系统102可以接收对集群的日志消息的查询,该日志消息包括给定标签(例如,env或user)、给定源(例如,my integration)、给定主机(例如,my host)或给定服务(例如,my service)。如果查询了这些值中的任何一个,则监控系统102可以返回包括这些值的集群、令牌化日志消息212的数量等。
80.转到图5,示出了对两个令牌化日志消息500、502进行聚类的示例。令牌化日志消息500、502中的每一个包括相似的令牌列表。例如,令牌化日志消息500、502都包括日期令牌508、json格式令牌510、env标签令牌512、user标签令牌514、my integration源令牌516、my host主机令牌518和my service服务令牌520。在此示例中,这些令牌中的一些的值在令牌化日志消息500和令牌化日志消息502之间变化。例如,令牌化日志消息500包括标签值xx-env和xx-user,它们不同于令牌化日志消息502的标签值yy-env和yy-user。因此,消息500、502在内容上不同,即使它们共享相同的内容结构。
81.在标签值(和源值)对监控系统102不重要的情况下,令牌化的日志消息500、502可以被合并到相同的集群中。在令牌化日志消息500、502的标签值和源值被认为是重要区别的情况下,消息500、502不会被合并,因为这些令牌512、514、516的值不同(即使内容结构是相同的)。该规则可以选择性地应用于特定令牌类型。例如,标点令牌通常仅在令牌的值完全匹配时才在消息500、502之间合并,因为标点可以指示日志消息的内容的结构。在另一个示例中,表示变量值(诸如时间戳)的令牌可以被合并而不管值如何,因为此类令牌的值不指示日志消息202的内容的结构。
82.为了合并消息500、502,聚类模块106执行令牌化日志消息500和令牌化日志消息502的令牌列表的逐对比较。例如,每条消息500、502首先包括日期令牌508。因为这些令牌匹配(并且没有给出日期值必须相等的指示),所以聚类模块106进行到每个列表中的第二个令牌(json格式令牌510)。这些也匹配,因此聚类模块106进行到每个列表中的第三个令牌(等等),直到没有属性剩余。如果每次比较显示令牌匹配,则将消息500、502合并到集群504中,该集群包括令牌508、510、512、514、516、518、520的令牌列表。在此示例中,每个令牌的数量和类型与要合并的消息500、502完全匹配。
83.在一些实现方式中,消息500、502的令牌的数量和/或类型不需要针对要合并到集群中的消息完全匹配。可以定义附加规则,使得可以合并两条或更多条消息,即使它们的令牌列表不完全匹配。例如,可以忽略一些令牌,可以合并一些令牌,一些合并规则可以只要求消息中包括一组令牌中的一个,等等。
84.令牌化日志消息集群504可以与计数值522相关联。计数值522表示集群中包括的消息的数量。在图5的示例中,因为两个令牌化日志消息500、502被合并,所以计数是二。当集群被显示给用户(例如,通过客户端装置112)时,集群504和计数522可以作为集群的排序
列表及其计数的一部分一起显示。
85.在一些实现方式中,合并规则可以应用于令牌化消息500、502。可以将合并规则应用于令牌列表以减少列表中的令牌数量。合并规则可以在解析过程期间由解析模块104应用,或者在聚类过程期间由聚类模块106应用。合并规则可以包括用于每个计算系统114的特别规则。当监控系统102检测到为每个令牌化日志消息(或其他数据条目118)生成的令牌列表中的模式时,监控系统102可以生成合并规则,或者可以在监控系统102摄取数据流之前定义合并规则(例如,由用户、通过导入规则集等)。
86.通常,当监控系统102从计算系统114接收到数据流时,不断地生成集群是可能的。在一些实现方式中,监控系统102成批地生成集群(例如,周期性地或者当已经接收到特定量的数据时)。在一些实现方式中,计算系统114将数据条目118作为数据流周期性地发送到监控系统102,并且监控系统102在接收时立即摄取数据流。在另一个示例中,响应于接收到对数据报告的请求等,可以针对与用户查询中指定的特定时间段相对应的数据或通过一些其他方式执行聚类。
87.在一些实现方式中,集群可以包括关于集群中表示的数据条目118的附加数据,以向客户端装置112提供关于计算系统114的行为的附加细节。集群可以存储与由令牌表示的数据的值相关的数据。例如,集群可以包括跟踪集群中日志消息的时间戳值范围的数据。在另一个示例中,集群可以包括指示集群最常见的http状态的数据,或者集群的日志消息报告的请求持续时间的分布。其他统计信息可以与集群一起被存储,诸如每个集群中各种令牌的最大值和最小值。在另一个示例中,监控系统102可以被配置为包括集群列表的统计信息,诸如集群列表中令牌的频率或其他统计数据。
88.转到图8,示出了监控系统102的聚类过程的输出800的示例。响应于客户端装置对计算系统114的操作的总结的请求,监控系统102可以将输出800发送到客户端装置112。
89.在示例输出800中,集群802按计数从最低(集群802a)计数到最高(集群802f)计数排序。可以使用组织该集群、排序该集群等的其他方式。然而,从最低计数到最高计数排序首先显示最独特的集群,并且可能是计算系统114的操作中的任何异常的来源。
90.集群802a包括特定用户(用户a)、特定服务(服务123)和特定错误代码(错误4556af3b)的日志消息。有两条日志消息包括此内容结构。在监控系统102的监控过程期间,针对不同服务(服务124)但针对相同用户和针对相同错误代码值的类似集群802b发生了51次。用户可以推断与用户a相关联的多个服务正在发生特定错误。集群802c-802f在由集群表示的结构中逐渐常见,并且相关联的计数分别增加。通常,相对于其中令牌与特定值相关联的集群(例如,集群802c、802d和802e),具有更多数量的消息的集群(例如集群802f)包括更大比例的通配符令牌(例如,没有特定数据值的令牌)。
91.当在输出800中显示令牌时,监控系统102可以基于令牌的内容来可视化令牌。例如,表示特定值的令牌可以显示集群中令牌中的值。在另一个示例中,对于集群中表示令牌属性的许多不同值的通配符令牌,可以使用符号代替实际值(例如,*、#、“*”等)
92.图6示出了用于将数据流转换为指示计算系统(例如,图1的计算系统114)的操作的结构化数据的示例过程600。在一些实现方式中,过程600由图1的监控系统102执行。
93.监控系统102被配置为接收(602)用于将日志消息字符编码为至少一个令牌的规则集。如关于图2至图4所描述的,该规则集可以包括查找表(例如,表208)和/或图(例如,图
206)。规则集通常是确定性的并形成有限自动机。监控系统102被配置为接收(604)包括至少一条日志消息的数据流。通常,每条日志消息都包括数据流的字符序列。监控系统102被配置为在接收到至少一条日志消息时解析(606)该至少一条日志消息。解析操作是关于图7描述的。
94.监控系统102被配置为将令牌序列分配(608)给集群。通常,将令牌序列分配给集群包括确定令牌序列与表征集群的模式匹配,以及将令牌序列与集群合并。监控系统102被配置为输出(610)集群的表示,该集群的表示包括集群中包括的令牌序列。通常,集群指示数据流的至少一部分的结构。图8中示出了输出(例如,输出800)的示例。
95.图7示出了用于将字符序列解析为令牌的示例过程700。通常,监控系统102被配置为根据关于图7描述的规则集中的至少一个规则来生成多个令牌。通常,每个令牌表示至少一条日志消息的字符序列的对应部分。监控系统102被配置为从多个令牌形成令牌序列。监控系统102被配置为向令牌序列中的至少一个令牌分配至少一个属性值,该属性值描述属性值被分配到的对应令牌的字符序列的对应部分,如关于图2所描述的。
96.更具体地,监控系统102被配置为确定(702)规则集中的规则适用于日志消息的字符序列的一部分。监控系统102被配置为根据规则生成(704)令牌,该令牌表示日志消息的一部分。监控系统102被配置为将令牌排序(706)成表示日志消息的令牌序列。监控系统102被配置为确定(708)日志消息中是否剩余任何字符。通常,该确定包括确定新日志消息是否由字符流中的下一个字符表示。例如,新时间戳可以指示新日志消息。如果字符仍在日志消息中,则生成(706)另一个令牌,直到日志消息中没有字符。如果没有剩余字符,则监控系统102向表示日志消息的令牌序列中的至少一个令牌分配(708)描述相应令牌的字符的至少一个属性值。现在为日志消息生成令牌序列,并且该令牌序列准备好用于聚类,如关于图5和图7所描述的。
97.本说明书中描述的主题和操作的一些实现方式可在数字电子电路,或在计算机软件、固件或硬件(包括本说明书中公开的结构及其等效结构)或它们中的一个或多个的组合中实现。例如,在一些实现方式中,监控系统102、客户端装置112和计算系统114可以使用数字电子电路,或以计算机软件、固件或硬件,或以它们中的一个或多个的组合来实现。在另一个示例中,过程600、700可以使用数字电子电路,或以计算机软件、固件或硬件,或以它们中的一个或多个的组合来实现。
98.本说明书中描述的一些实现方式(例如,解析模块104、聚类模块106等)可以被实现为数字电子电路、计算机软件、固件或硬件的一个或多个组或模块,或以它们中的一个或多个的组合来实现。尽管可以使用不同的模块,但每个模块不需要不同,并且可以在相同的数字电子电路、计算机软件、固件或硬件或其组合上实现多个模块。
99.本说明书中描述的一些实现方式可以被实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其编码在计算机存储介质上用于由数据处理设备执行或控制数据处理设备的操作。计算机存储介质可以是或可以被包括在计算机可读存储装置、计算机可读存储基板、随机或串行存取存储器阵列或装置、或它们中的一个或多个的组合。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理部件或介质(例如,多个cd、磁盘或其他存储装置)。
100.术语“数据处理设备”涵盖用于处理数据的所有种类的设备、装置和机器,包括例如可编程处理器、计算机、片上系统或前述的多个或组合。在一些实现方式中,解析模块104和/或聚类模块106包括如本文所述的数据处理设备。该设备可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该设备和执行环境可以实现各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
101.计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言。计算机程序可但不一定对应于文件系统中的文件。程序可存储在保存其它程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、在专用于所讨论程序的单一文件中或在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可被部署以在一台计算机上或在多台计算机(其位于一个地点或分布在多个地点且通过通信网络互连)上执行。
102.本说明书中描述的一些过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且设备可以被实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
103.适合于执行计算机程序的处理器包括,例如,通用和专用微处理器,以及任何种类的数字计算机的处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机包括用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器装置。计算机还可以包括或操作性地耦合到用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘)以从其接收数据或向其传输数据或两者。然而,计算机不需要具有此类装置。适用于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,例如包括半导体存储器装置(例如,eprom、eeprom、闪存装置等)、磁盘(例如、内部硬盘、可移动磁盘等)、磁光盘以及cd-rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
104.为了提供与用户的交互,操作可以在具有用于向用户显示信息的显示装置(例如,监视器或另一种类型的显示装置)和键盘以及用户可以通过其向计算机提供输入的指向装置(例如,鼠标、轨迹球、平板电脑、触敏屏或另一种类型的指向装置)的计算机上实现。其它类型的装置也可用来提供与用户的互动;举例来说,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以任何形式被接收,包括声音、语音或触觉输入。此外,计算机可通过将文档发送到用户使用的装置以及从所述装置接收文档而与用户互动;举例来说,通过响应于从网页浏览器接收的请求而将网页发送到用户客户端装置上的网页浏览器。
105.计算机系统可以包括单个计算装置,或在附近或通常彼此远离地操作并且通常通过通信网络进行交互的多个计算机。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如互联网)、包括卫星链路的网络和对等网络(例如,自组织对等网络)。客户端和服务器的关系可通过在相应计算机上运行且使相互具有客户端服务器关系
的计算机程序而产生。
106.图9示出了包括处理器910、存储器920、存储装置930和输入/输出装置940的示例计算机系统900。部件910、920、930和940中的每一个可以例如通过系统总线950互连。处理器910能够处理用于在系统900内执行的指令。在一些实现方式中,处理器910是单线程处理器、多线程处理器或另一类型的处理器。处理器910能够处理存储在存储器920中或在存储装置930上的指令。存储器920和存储装置930可以在系统900内存储信息。
107.输入/输出装置940为系统900提供输入/输出操作。在一些实现方式中,输入/输出装置940可以包括网络接口装置(例如以太网卡)、串行通信装置(例如rs-232端口)和/或无线接口装置(例如,802.11卡、3g无线调制解调器、4g无线调制解调器、5g无线调制解调器)等中的一者或多者。在一些实现方式中,输入/输出装置可以包括被配置为接收输入数据并将输出数据发送到其他输入/输出装置的驱动器装置,例如,键盘、打印机和显示装置960。在一些实现方式中,可以使用移动计算装置、移动通信装置和其他装置。
108.尽管本说明书包含许多细节,但这些不应被解释为对可能要求保护的范围的限制,而是对特定示例的特定特征的描述。本说明书中以单独实现方式为背景描述的某些特征还可以被组合。相反地,在单一实现方式的背景下描述的各个特征还可单独或以任何合适子组合的方式在多个实施方案中实现。
109.已经描述了大量的实施方案。然而,应当理解,在不脱离本文描述的数据处理系统的精神和范围的情况下,可以进行各种修改。因此,其它实施方案也在下述权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献