CN105122230A - 跟踪作为服务 - Google Patents
跟踪作为服务 Download PDFInfo
- Publication number
- CN105122230A CN105122230A CN201380075057.1A CN201380075057A CN105122230A CN 105122230 A CN105122230 A CN 105122230A CN 201380075057 A CN201380075057 A CN 201380075057A CN 105122230 A CN105122230 A CN 105122230A
- Authority
- CN
- China
- Prior art keywords
- data
- application
- tracking data
- distributor
- execution environment
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/0014—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
- G07F17/0021—Access to services on a time-basis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
仪表化执行环境可连接到一执行环境以随着应用运行提供经细化的应用的跟踪和日志。仪表化执行环境可被配置成可被配置和购买的单独服务。仪表化执行环境可与各种认证系统、管理用户界面和其它组件一起部署。仪表化执行环境可通过分发器来参与客户的系统,分发器可管理工作负载以向仪表化执行环境和其它工作器系统分发工作。市场可提供多个预先配置好的执行环境,所述执行环境可供选择、进一步配置,并被部署以针对特定数据收集目标。
Description
相关申请的交叉引用
本申请要求于2013年1月25日提交的题为“Tracingasaservice(跟踪作为服务)”的美国专利申请序列号13/751,026的优先权和权益,该申请的整体内容通过援引被明确地纳入于此。
背景
跟踪收集与应用如何在计算机系统内执行有关的信息。跟踪数据可包括任何类型的可解释该应用如何操作的数据,并且这样的数据可由开发者在应用的调试或优化期间分析。在许多情况中,跟踪数据可被用于调试应用以及理解和优化应用。跟踪数据还可在该应用的常规操作期间被管理员用来标识任何问题。
发明内容
仪表化执行环境可连接到一执行环境以随着应用运行提供经细化的应用的跟踪和日志。仪表化执行环境可被配置成可被配置和购买的单独服务。仪表化执行环境可与各种认证系统、管理用户界面和其它组件一起部署。仪表化执行环境可通过分发器来参与客户的系统,分发器可管理应用工作负载以向仪表化执行环境和其它工作器系统分发工作。市场可提供多个预先配置好的执行环境,所述执行环境可供选择、进一步配置,并被部署以针对特定数据收集目标。
负载平衡系统可将仪表化系统结合到一组被管理的设备内,并在各设备间分发工作负载以同时满足负载平和和数据收集。负载分发器可与若干被管理的设备进行通信并配置它们,某些设备可具有可为那些设备上运行的工作负载收集跟踪数据的仪器。认证可在被管理的设备和负载分发器之间执行,以验证被管理的设备能够接收工作负载并在执行前验证工作负载。工作负载分发器可增加或减少与在任何给定时间经历的工作负载相关的检测的量。
并行跟踪器可与应用的执行或轻度经检测版本并行地执行应用的细化的或经深度检测的分析。应用的两个版本都可操作在同一输入流上,但是深度经检测版本具有与轻度经检测版本的不同执行结果。该跟踪结果可被用于各种分析,包括优化和调试。
跟踪器可模糊跟踪数据,使得跟踪数据可被用在不安全环境中,即使原始跟踪数据可包含私有的、机密的、或其它敏感的信息。跟踪器可使用不可逆的或有损散列函数、查找表、或针对特定原始跟踪数据的其它机制来模糊、呈现经模糊的对传输、存储和分析可接受的跟踪数据。在参数到函数来回传递的情况中,跟踪数据可作为组或个体参数来被模糊。在某些情形中,经模糊的跟踪数据可被发送到远程服务器。
提供概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选集。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
在附图中:
图1是示出用于跟踪处理机密数据的应用的系统的实施例的图示。图2是示出用于分析敏感跟踪数据的网络环境的实施例的图示。
图3是示出安全环境和远程设备之间的交互的实施例的时间线图。
图4是示出并行跟踪系统的实施例的图示。
图5是示出具有并行跟踪的网络环境的实施例的图示。
图6是示出用于执行具有并行仪表化的方法的实施例的流程图示。
图7是示出用于组合结果的方法的实施例的流程图示。
图8是示出用工作负载分发器来进行跟踪的实施例的图示。
图9是示出具有工作负载分发器的网络环境的实施例的图示。
图10是示出用于带跟踪的负载平衡的方法的实施例的流程图示。
图11是示出作为服务的跟踪的实施例的图示。
图12是示出具有远程跟踪的网络环境的实施例的图示。
图13是用于配置仪表化系统的实施例的流程图示。
图14是示出用于部署仪表化系统的方法的实施例的流程图示。
详细描述
跟踪作为服务
仪表化执行环境可被部署为服务。在创建帐号后,用户可向用户自己的执行环境内的工作负载分发器添加仪表化执行环境。工作负载分发器可接收进入的工作负载流并将工作负载的某些或全部引导到仪表化执行环境。
仪表化执行环境可包括软件、硬件、以及能够在处理工作负载的同时捕捉各种信息的其它组件。仪表可收集可被存储并分析的各种跟踪数据。在某些情况中,跟踪数据可在收集后被分析,而在其它情况中,跟踪数据可实时地被分析。
用户可使用管理用户界面来配置仪表化执行环境供分发器使用。用户可能能够建立帐号、确定支付机制、并选择仪表化执行环境的各种特征。
管理活动还可包括创建各种认证密钥或可使交互系统彼此认证的其它机制。认证系统可被用来验证仪表化执行环境已经被允许接收分发器的输出,并且分发器被授权以向仪表化执行环境发送工作项目。
分发器可被添加到用户的执行环境以在应用中引入重定向点或决策点。在某些情况中,分发器可以是截取输入流并应用负载平衡和仪表检测逻辑两者以标识用以处理给定工作项目的执行环境的应用。在某些情况中,分发器可以是可被包括在库中的可执行代码,库可从应用内被调用。
可将检测作为服务提供给应用的开发者或管理者。检测可使用可能对于安装、配置或操作而言复杂的精细工具和分析来收集数据。用户可使用不同的支付方案为这样的服务付费,诸如部分基于可消耗多少处理、存储、或其它资源来付费。在某些情况中,支付可以是订购以供使用一段时间,诸如一个月的服务的固定费用支付。许多其他的支付方案可被部署。用工作负载分发器来跟踪
经负载平衡或经其它管理的计算环境可向仪表化和非仪表化的系统分发工作项目。工作平衡或分发可考虑应用的仪表检测目标来进行。在一个示例中,仪表检测可在系统上的负载可允许时执行,但是当负载因素增加时仪表检测可被减少或消除。
工作负载分发器可具有若干仪表检测目标,其定义收集数据的条件以及要收集的数据。目标可包括诸如采样率、开始或停止仪表检测的事件或条件、要收集的数据的数量或质量、以及要被应用的仪表化的具体参数或类型之类的项目。
工作负载分发器可将仪表检测目标发送到工作器系统,其中目标可使得工作器系统收集所描述的数据。在这样的情况中,分发器可能能够为仪表检测每个工作项目创建自定义的目标。
计算环境可具有多个工作器系统,其执行由分发器定义的工作项目。每个工作器系统可向分发器注册,注册可包括初始联系人和登记并建立各设备之间的认证机制。工作器系统的状态可被周期性地收集并用于确定执行给定工作项目的可能性。
并行跟踪
深度仪表化的跟踪器可与轻度仪表化的工作器并行操作以捕捉应用的详细测量和性能测量两者。在许多情况中,深度仪表检测可能不利地影响应用的性能,因此破坏可在同时收集的性能度量。随着检测变得更详细,性能度量通常可能变得更受影响。
跟踪系统可并行操作以在可仅捕捉性能度量的性能环境中进行跟踪,而另一个详细跟踪器可捕捉详细结果。在某些情况中,相同应用负载可被并行分析并且性能结果和详细结果可被聚集在一起以生成应用的完整的表示。
并行跟踪系统的体系结构可被部署在分布式计算环境中。在这样的环境中,多个设备或处理器可各自执行应用的某些工作。计算群集可以是分布式计算环境的一个示例,其中多个设备各自执行输入流的一部分。
单个设备可能能够执行并行跟踪。多处理器设备可具有可以以高性能方式处理应用工作负载的一些处理器而其它处理器使用详细工作器来执行应用。
并行跟踪的概念可被应用到单个系统或单处理器系统。在这样的系统中,分开的跟踪操作可顺序执行。例如,可使用性能水平仪表检测来执行应用工作负载的第一次运行,接着使用详细仪表检测系统来执行工作负载的第二次运行。在这样的实施例中,输入流可被捕捉用于以详细方式进行的后续执行。
分发器可标识输入流中的各个工作单元以发送到不同组件。工作单元可以是可以以相对独立的方式执行的任何计算工作负载对于每个程序或应用,工作单元可以不同。
在一些应用中,工作单元可以是可包括函数的输入参数的函数调用。对于函数语言(诸如Erlang、Haskell、Scala、F#)或对于以函数方式写的非函数语言,应用的各部分可能够被独立计算。在某些情况中,各工作单元可具有与其它工作单元的依赖性或其它交互。
工作单元可以是输入项目或对应用作出的请求。在应用编程接口的示例中,对接口的调用可被看成一个工作单元,其可由应用的实例来执行。这样的请求可以或者可以不依赖于其它请求,但是一般来说许多这样的系统可具有可独立于其它请求操作的请求。
在某些情况中,可由两个不同地仪表检测的系统执行的工作单元可返回不同结果。在一个简单示例中,工作单元可基于一天里的确切时间来执行函数。在这样的示例中,在性能水平仪表检测上执行的工作单元将返回与在可能慢得多的高度仪表化的系统上执行的同一工作单元不同的值。
当执行在两个不同系统上的工作单元返回不同值时,算法可被应用以确定返回值。在等待时间、响应时间、或其它与性能相关的因素可能不利地影响结果的系统中,来自性能水平仪表化系统的结果可被使用而从高度仪表化系统收集的结果可被丢弃。在某些情况中,来自性能水平仪表化系统的结果可被丢弃,以支持来自高度仪表化系统的结果。在又一些情况中,可使用平均或其它概要来聚集来自一个工作的单元的两次分开运行的应用结果。
模糊跟踪数据
跟踪器可模糊从应用收集的数据并将经模糊的数据发送到分析引擎。分析引擎可在经模糊的数据上执行全部的分析,使得分析引擎可不接触在跟踪器控制的数据中包含的任何秘密的、私人的、或其他形式的敏感数据。
跟踪器可在应用的执行期间收集数据。应用可处理可能是敏感的数据。当跟踪器遭遇应用数据时,这样的数据可在分析前被模糊。经模糊的数据可接着被分析以理解、分类、优化、或执行与该应用相关的其它功能。在某些情况中,分析可生成可涉及可被模糊的特定数据元素的推荐或其它结果。在这样的情况中,用于确定底层数据值的机制可通过逆模糊过程被提供。
模糊处理可包括散列函数,其可以是有损的或无损的。在其它实施例中,模糊处理可以是加密处理,其可以是或者可以不是密码上安全的。又一些实施例可采用维护在客户端设备上的查找表,其将有意义的数据值转换成用于分析的任意值。
多个值可被散列化或以其他方式被看成是跟踪器输出中的单个元素。例如,函数可用三个自变量来调用。在某些实施例中,这三个自变量可被组合成单个自变量并被散列化或以其他方式模糊成单个值。在其它实施例中,这三个自变量可各自被模糊并存储为三个分开的值。
贯穿本说明书和权利要求书,术语“剖析器”、“跟踪器”和“仪表检测”(instrumentation)”被可互换地使用。这些术语指代可在应用被执行时收集数据的任何机制。在经典定义中,“检测”可指代可向其插入可执行代码并藉此改变该可执行代码的存根(stub)、挂钩(hook)或其他数据收集机制,而“剖析器”或“跟踪器”可经典地指代不可改变可执行代码的数据收集机制。使用这些术语及其派生词中的任一者都可蕴含或暗示彼此。例如使用“跟踪器”的数据收集可使用“跟踪器”的经典意义中的非接触式数据收集以及用其中可执行代码可被改变的“仪表检测”的经典意义的数据收集来执行。相似地,通过“仪表检测”收集的数据可包括使用非接触式数据收集机制的数据收集。
此外,通过“剖析”、“跟踪”和“仪表检测”收集的数据可包括可收集的任何类型的数据,包括诸如处理时间、吞吐量、性能计数器之类的与性能相关的数据等等。收集到的数据可包括函数名称、所传递的参数、存储器对象名称和内容、所传递的消息、消息内容、注册表设置、注册表内容、差错标志、中断或与正被跟踪的应用有关的任何其他参数或其他可收集的数据。
贯穿本说明书和权利要求书,术语“执行环境”可用于指代用于执行应用的任何类型的支持软件。执行环境的一个示例是操作系统。在一些图示中,“执行环境”可被示为与操作系统分开。这可能是为了示出为应用提供各支持函数的虚拟机,诸如过程虚拟机。在其他实施例中,虚拟机可以是可包括其自己的内部操作系统并可模拟整个计算机系统的系统虚拟机。贯穿本说明书和权利要求书,术语“执行环境”包括操作系统和可具有或可不具有可容易标识的“虚拟机”或其他支持软件的其他系统。
贯穿本说明书,在对附图的整个描述中,相同的附图标记表示相同的元素。
当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在一起,或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接”或“直接耦合”时,不存在中间元素。
本主题可被体现为设备、系统、方法、和/或计算机程序产品。因此,本主题的部分或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本主题可以采用计算机可使用或计算机可读存储介质上的计算机程序产品的形式,介质中收录了供指令执行系统使用或结合指令执行系统一起使用的计算机可使用或计算机可读的程序代码。在本文档的上下文中,计算机可使用或计算机可读介质可以是可包含、储存、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置或设备一起使用的任何介质。
计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并随后存储在计算机存储器中。
当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可在各个实施例中按需进行组合或分布。
图1是示出用于处理敏感数据的应用的跟踪系统的实施例100的图示。实施例100是系统的简化的示例,其中跟踪可发生在安全环境内,随后跟踪数据可在非安全环境内被分析而不危及敏感数据的完整性。
实施例100示出了跟踪系统的示例,其在安全环境中收集数据并在将该数据发送到远程系统供分析前模糊该数据。远程系统可以是处在不安全的环境中,但是因为敏感数据被模糊,对那些数据的任何分析可被执行而不危及底层数据的安全性。
在一个示例中,安全环境102可具有可处理敏感数据的应用104。敏感数据可以是,例如,信用卡号码、社会保障号码、就业数据、医疗数据、机密军事数据、财务数据、或可从法律、商务、个人、或其它角度而言敏感的任何其它类型的数据。
跟踪器106可在应用104执行时监视应用104以收集性能和操作数据。跟踪器106可检查各函数、线程、过程、消息、数据对象、和为应用的部分或可被应用处理的其它信息。跟踪器106可执行各种程序元素的低级检查,其结果可被用来分析程序执行。这样的分析可以用于调试、审计、优化、或其它目的。
在许多情况中,跟踪器106可处理包含敏感数据的信息或与包含敏感数据的信息进行接触。在这一情况下,数据可在离开安全环境102前被模糊。在简单示例中,函数可接收数据对象,诸如原始信用卡号码。对该函数的跟踪可收集该信用卡号码作为传递到该函数的值。在另一个示例中,从一个线程传递到另一个线程的消息可包含未经过滤的财务信息、医疗记录对象、或其它敏感信息。在普通的跟踪操作期间,这样的敏感数据可被收集,但是可在将该敏感数据传递到安全环境以外之前将该数据模糊。
当敏感数据在安全环境102内被收集并被处理时,数据可被看成是安全的。在典型的安全环境102中,数据可在符合各种隐私和安全标准及规程的设施中被处理。这样的设施可维持物理安全性以及网络安全性,物理安全性限制对特定人员的访问,网络安全性约束对数据的访问。
模糊器108可模糊跟踪数据的一些或全部以创建经模糊的跟踪数据110。模糊器108可使用各种散列函数、加密算法、替换方案、或其它技术来保护敏感数据。在某些情况中,模糊器108可创建查找数据库112,查找数据库可包含跟踪数据的原始的和经模糊的值。
经模糊的跟踪数据110可被发送到安全环境102之外。经模糊的跟踪数据114可位于远程设备上或可能具有分析引擎116的其它系统上,分析引擎可对经模糊的跟踪数据114执行解析、优化、或其它分析。分析引擎116的结果可参考个体数据项目或可包含对保持模糊的数据元素的参考。
结果118可被传递回安全环境102中并由结果处理器120来施加操作。结果处理器120可从经模糊的数据值来确定原始数据值。在某些情况中,这样的操作可包括从查找数据库112中查找原始数据值。
在一个使用情形中,跟踪器106可分析可能例如处理银行帐户信息的应用104。跟踪器106可标识用于监视的函数,其中该函数接收银行帐户号码并返回余额。在此示例中,银行帐户号码和余额可被看成私人信息。
跟踪器106可检测到该函数已经被调用并可捕捉发送到该函数的数据以及由该函数返回的数据。在此情况中,银行帐户信息已经被传送到该函数并且余额并返回。该函数可被调用很多次,且该跟踪器106可在该函数每次被调用时进行捕捉。在监视应用104一段时间后,跟踪数据可包含银行帐户信息和余额信息。
在将跟踪数据发送到安全环境102以外之前,模糊器108可模糊跟踪数据以创建经模糊的跟踪数据110。一旦被模糊,数据可被远程系统分析以确定应用104的性能度量或调试信息。
分析可使用经模糊的值来处理每个数据对象。在一个示例中,调试分析可确定对函数的特定输入值导致函数的非预期行为。由于分析是在经模糊的数据上执行的,分析结果可被发送回安全环境102,在那里跟踪数据的初始值可被确定并对结果采取行动。
在这样的情形中,敏感数据可被保持在安全环境102内部,但分析可在不共享相同级别安全性的环境中执行。例如,跟踪分析器或程序优化器可分析可能是秘密的、安全的、私人的或以其他方式敏感的应用,但是结果可被发送并在相对开放的环境中分析。例如,经模糊的跟踪数据110可以以具有最小的或没有加密的明文被发送,并存储在不符合应用104的高安全标准的设施中。
分析引擎116可以是经模糊的跟踪数据114的自动化的、半自动化的、或手动分析。结果118可包含对经模糊的跟踪数据114的直接引用,例如,诸如标识导致错误条件的数据值。然而,由于分析仅能针对经模糊的跟踪数据114来执行,分析引擎116不可接触底层原始数据。
在某些情况中,远程系统可从多个用户收集数据,每个用户可生成经模糊的跟踪数据。来自每个用户的数据可被组合到包含来自许多源的跟踪数据的单个数据库。在这样的情况中,远程系统可仅存储经模糊的数据,而敏感数据被保持在安全环境102内。
模糊器108可使用若干不同机制来创建经模糊的跟踪数据110。在某些情况中,模糊机制可以是或可以不是有损的。
非有损系统的示例可以是可用密钥加密数据的加密系统。在这样的系统中,模糊器108可使用密钥加密数据项,且分析引擎116可处理经加密的数据对象。一旦结果118被返回安全环境102,结果处理器120可使用密钥解密结果118。这样的系统可能不使用查找数据库112来从经模糊的值重新创建原始值。
非有损系统的另一个示例可以是不可逆安全散列,诸如MD5、SHA或其它散列函数的使用。这样的函数可能没有或很少冲突,但是可能是特别难以从经模糊的值提取初始值。在这样的系统中,查找数据库112可被用来存储经散列的和原始值,使得结果118可被转换回原始的未散列的值。
有损系统的示例可对原始数据应用有损散列函数,诸如校验和或其它有损压缩技术。这样的系统的各示例可以是具有许多冲突的散列函数。这样的系统可创建经模糊的数据元素,其不能被反向到具有确定程度的单个值。
另一系统的一个示例,查找数据112可被用来向原始值分配随机或序列值。例如,每个新原始值的记录可被分配递增的索引并且索引可用作经模糊的值。因为,查找数据库112可能包含敏感数据,查找数据库112可在安全环境102内被存储并被保护。
在某些实施例中,不同类型的模糊可以被应用到不同跟踪数据。例如,高敏感数据元素可用加密来模糊,而低敏感数据元素可用更简单的散列函数来模糊。这样的实施例可对更敏感数据应用在计算上更昂贵的模糊,而对较不敏感的数据应用计算上较不昂贵的模糊。
某些跟踪数据可被以明文存储或可不被模糊。例如,某些实施例可以用明文存储函数名称而可模糊传递到和传递自函数的数据。一般而言,函数名称、参数名称、变量名称、或应用内的其它硬编码描述符可描述应用的操作但不描述可被处理的底层数据。
应用元素的明文描述符可从应用的源代码描述中提取。某些实施例可包括源代码分析器,其提取各种应用元素的描述符。在某些实施例中,这样的分析器可被构建到编译器中,其输出可包括调试或标记信息。
应用元素的明文描述符,诸如函数、变量、数据对象、方法、或其它元素可给予开发者和管理者有意义的关于它们的应用的执行的反馈,即使是在底层数据被模糊时。例如,分析引擎116可标识函数FOO已以特定方式作出行为并提供命名函数FOO的反馈。应用开发这可识别函数FOO并能采取行动。这样的分析可以使用经模糊的数据元素但连同程序元素的明文表示来以不安全的方式执行。
应用元素的明文描述符可包括函数名、变量名、数据对象名、记录标识符、栏标识符、注释、方法名、类名、库名、文件名、参数名、标记、控制流程图、和其它描述符。通常,这样的描述符可被程序员或开发者创建并可反映程序员的意图或逻辑。
在特定环境中,这样的描述符可反映机密信息。该机密信息可以是底层逻辑或程序流,其可与应用处理的数据的机密性质中分离。例如,处理保健记录的应用可具有用于分析保健记录的专用或商业秘密方法。保健记录本身可以是在HIPPA或其它法律或规章规定下机密的,应用的方法可以是机密信息的单独类别。
在这样的描述符反映应用逻辑的情况中,由于第三方可能被暴露给应用中的底层方法但不被暴露给应用处理的数据,第三方分析可在未披露协议、私有协议,或其它机密性规定下执行。
图2是示出具有将模糊的跟踪数据传送到远程设备供分析的计算机系统的实施例200的图示。实施例200示出可呈递实施例100以及其他实施例中描述的操作的硬件组件。
图2的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例200示出了可具有硬件平台204和各软件组件206的设备202。示出的设备202表示常规的计算设备,但是其它实施例可具有不同配置、架构、或组件。
在许多实施例中,设备202可以是服务器计算机。在一些实施例中,设备202仍然还可以是台式计算机、膝上型计算机、上网本计算机、平板或平板式计算机、无线手机、蜂窝电话、游戏控制台或任何其他类型的计算设备。
硬件平台204可以包括处理器208、随机存取存储器210、以及非易失性存储212。硬件平台204还可包括用户接口214和网络接口216。
随机存取存储器210可以是包含可由处理器208快速访问的数据对象和可执行代码的存储。在许多实施例中,随机存取存储器210可具有将存储器210连接到处理器208的高速总线。
非易失性存储212可以是在关闭设备202之后持久保持的存储。非易失性存储212可以是任何类型的存储设备,包括硬盘、固态存储器设备、磁带盒、光学存储、或其他类型的存储。非易失性存储212可以是只读、或能够读/写。在一些实施例中,非易失性存储212可以是基于云的网络存储或可通过网络连接访问的其他存储。
用户接口214可以是能够显示输出并且从用户接收输入的任何类型的硬件。在许多情况下,输出显示可以是图形显示监视器,但是输出设备可包括灯光和其他视觉输出、音频输出、动力致动器输出、以及其他输出设备。常规输入设备可包括键盘和定点设备,诸如鼠标、指示笔、跟踪球、或其他定点设备。其他输入设备可包括各种传感器,包括生物测定输入设备、音频和视频输入设备、以及其他传感器。
网络接口216可以是到另一计算机的任何类型的连接。在许多实施例中,网络接口216可以是有线以太网连接。其他实施例可包括基于各种通信协议的有线或无线连接。
客户端202可以包括可执行各种应用254的操作系统218。在某些实施例中,执行环境220可执行应用254。在任一情况中,操作系统218或执行环境220可通过管理由用于254消耗的资源并控制执行来管理应用254的执行。
由操作系统218或执行环境220管理的资源可以是存储器资源、网络资源、输入/输出资源、处理器资源、和其它资源。操作系统218或执行环境220可分配存储器、执行垃圾收集、安排处理器可用性、赋予存储资源优先级及分配存储资源、以及其它功能。在某些实施例中,该执行环境220可以被称作虚拟机。
跟踪器222和224可在操作系统218或执行环境220内操作。跟踪器222和224可监视应用254的执行并收集各种信息,包括执行数据、操作数据、调试数据、和其它类型的信息。在很多情况中,跟踪器222和224可被暴露给可由应用254处理的敏感数据。
原始跟踪数据226可以是跟踪器222或224收集的数据。原始跟踪数据226可包括由应用254处理的数据元素,以及对应用元素的引用,诸如函数名和其它描述符。
模糊器228可处理原始跟踪数据以创建经模糊的跟踪数据230。模糊器228可使用各种机制来模糊原始跟踪数据226的一些或全部。在某些情况中,仅特定元素可被模糊,而原始跟踪数据226中的其它元素可维持在明文格式。
在某些实施例中,源代码分析器252可创建一组源代码注释254。源代码注释254可被用来以有意义的函数名和其它信息来装饰原始跟踪数据226。
源代码注释254可以是注释、标记、标签、或可从源代码取得的其它信息。这样的信息可由编译器、调试工具、或其它源创建。在某些情况中,源代码注释254可由专用源代码分析器252创建。通信代理232可将经模糊的跟踪数据230发送到远程设备240用以处理。远程设备240可位于可由防火墙236以及其它安全措施保护的安全环境之外。通信代理232可将经模糊的跟踪数据230通过防火墙236和网络238发送到远程设备240。
远程设备240可在硬件平台242上操作。硬件平台242可类似于硬件平台204。在某些实例中,硬件平台242可以是虚拟机、云计算系统、计算群集、或某些其它执行环境。
通信代理246可从设备202接收经模糊的跟踪数据230并处理经模糊的跟踪数据230。分析器248可针对经模糊的跟踪数据244执行分析以生成各种分析结果,该结果可以是调试和执行信息、优化信息、或任何其它类型的分析结果。
经模糊的跟踪数据244可包含来自多个设备202的跟踪数据。在某些实施例中,来自两个或更多个设备的跟踪数据可被组合,以创建比可能仅从一个设备创建的跟踪数据更为复杂的跟踪数据集。
在某些实施例中,来自远程设备240的结果可被发送到设备202以用于进一步检查和使用。在这样的实施例中,查找数据库234可用经模糊的和原始数据元素填充。在从远程设备240接收到结果时,查找数据234可被用来从经模糊的结果转换到更有意义的结果。
图3是示出用于安装并监视可执行代码的方法的实施例300的流程图示。实施例300在左列示出了客户端设备302的操作在右列示出了远程设备304的操作。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。实施例300示出了安全位置中的设备302和可能在安全位置外的远程设备304之间的交互。跟踪数据在设备302上被收集、模糊、并被发送到远程设备304。远程设备304可仅处理经模糊的数据来创建特定结果,该结果被返回设备302并被去模糊。
在设备302上,应用可在框306中执行。当应用执行时,跟踪数据可在框308中收集。参数的一些或全部可使用散列、加密、查找表、随机化、或其它模糊技术来被模糊。
经模糊的数据可在框312中被发送到远程设备304,远程设备304可在框314中接收经模糊的数据。
远程设备304可在框316中对经模糊的跟踪数据执行分析以在框318中生成分析结果。分析结果可在框320中被发送到设备302,设备302可在框322中接收分析结果。
设备302可在框324中对数据去模糊以在框326中对分析结果动作。在框324中的去模糊可采用从计算自经模糊的数据的结果来确定原始、初始值的机制。
图4是示出并行跟踪系统的实施例400的图示。实施例400示出了具有分发器的系统的高级视图,分发器可将工作的各单元发送到不同系统,所述不同的系统包括用于性能测量以及细化的检测或剖析的系统。
实施例400可以是其中工作的各单元可在不同环境中执行的系统的示例,其可包括在没有检测下的执行、执行级检测、以及细化的检测。在许多情况中,增加检测的级别可导致性能下降。然而,更完整的有关应用的理解可将执行和细化检测结果两者组合。通过从两个不同环境收集跟踪数据,执行相关数据可不受细化跟踪的影响。
工作的单个单元可被两个不同系统分析。在这样的系统中,执行结果和细化跟踪结果可针对工作的那些单元被组合。这样的系统可用标识符对跟踪结果做标记,该标识符可以允许聚集器将结果匹配到工作的同一单元。
在其它实施例中,工作的单个单元可仅被分析一次。在这样的系统中,执行和细化分析的结果可被组合以给出整体图片,而不需要能够直接对比工作的各个单元。例如,在工作负载到每类分析的分发可具有统计上正态分布时,这样的图片可以是统计上显著的。
请求者42可向分发器406发送请求404。请求404可以是要由执行环境的群集处理的工作负载。在一个示例中,请求404可以是对应用编程接口的调用,其中应用编程接口可由计算群集来执行。在另一示例中,请求404可以是高性能计算系统内的工作负载。在又一个实施例中,请求404可以是计算机应用内的函数或方法调用。
分发器406可分析请求404以确定如何路由请求404。在实施例400的示例中,请求404可被路由到未检测系统410、经执行检测的系统412、或详细检测的系统414。其它实施例可具有能够执行请求404的更多或更少的系统。
分发器406可具有那个定义分发器406可如何执行其分发功能的配置408。配置408可具有其下细化的或执行跟踪可被执行的条件,以及定义何时无跟踪可执行的条件。
条件408可包含过滤器,其将检测限制为仅针对可用请求的子集。过滤器或目标可定义与输入流、采样频率相关的参数、或可定义检测如何发生及何时发生的其它参数。目标可定义检测粒度,诸如功能组件、函数、处理、存储器对象、或数据收集的细节的其它级别。作为与输入流相关的参数的示例,条件408可指示检测可在包含具有特定值或值的范围的特定变量的请求时执行。其它类型的配置定义的示例可为可能被检测的请求定义采样频率。
未检测系统410可用很少的或无跟踪或检测来处理请求404。在很多情况中,未检测410可包含可监视系统的状态或其它行为的最少检测。未检测系统410不能够生成可用从其它经检测系统收集的数据来分析的检测结果。
经执行检测的系统412可在收集性能相关度量时处理请求404。检测可被设计以具有对系统性能的最小影响,使得性能度量可被认为是精确的。
经细化检测的系统414可在收集细化操作信息时处理请求404。在许多情况中,这样的系统可跟踪函数调用、收集进程和函数之间传递的数据对象、收集作为执行期间的特定点的对象值、和其它数据。在许多情况中,经细化检测的系统414可能比执行系统412显著地慢。
在实施例400的示例中,三个系统被示为处理请求404。在某些实施例中,这样的设备可以是具有相同或不同软件组件的相同的硬件设备,而在其它实施例中,可使用具有不同硬件或软件组件的不同设备。这样不相同的系统可具有设计用于高性能、细化检测或其它功能的专用硬件或软件组件。
应用输出416可从执行请求404的各系统被接收。应用输出416可被返回到请求者402。
在两个系统执行相同请求的情况中,应用输出416可被比较以确定两个系统是否收集了相同输出。在某些实施例中,当两个并行设备收集相同输出时,输出可被看成是可靠的或实体化的。当来自两个系统的输出不相同时,输出值之一可被选择、值被平均、或采取其它动作。
结果组合器418可从经执行检测的系统412和经细化检测的系统414两者收集跟踪数据,并将结果存储在一组检测结果420中。在某些情况中,结果组合器418可将在两个或更多个不同跟踪数据间的特定执行运行或特征进行匹配。可在本说明书的稍后处找出这样的匹配的示例。
图5是示出其中不同执行系统可生成不同级别的跟踪数据的网络环境的实施例500的图示。实施例500示出可实现实施例400以及其他实施例中描述的操作的某些的硬件组件。
图5的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例500示出了处理通过外部网络504从请求者502接收到的请求系统的示例。分发器系统506可解析进入的请求流并导致各种执行系统520执行请求。对请求的应用输出或响应可被传回请求者502,而从执行系统520收集的任何跟踪数据可被存储并由分析系统552使用。
实施例500中所示的各种设备的每一个可具有硬件平台。相应的硬件平台可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
分发器系统506可接收并解析输入流,接着将工作的各单元引导到各种执行系统520。分发器系统506可操作在硬件平台508上并包含经由外部接口512接收工作请求的分发器510。分发器510可具有跟踪配置514和定义工作的各单元如何分发的分发配置516。
跟踪配置514可定义算法、条件、或可定义如何及合适收集检测数据的其它条件。跟踪配置514可包括粒度、采样率、采样大小、要收集的数据,和其它信息。跟踪配置514还可包括何时跟踪或不跟踪的特定条件。
这样的条件可评估请求中的数据元素,以及来自外部源的数据元素。例如,条件可导致详细跟踪在晚间在输入参数为“蓝”时发生。
分发配置516可定义用于分配其它工作单元的条件。分发配置516可定义负载平衡算法,例如,该算法将工作分配给轻度负载的设备而避免将工作发送给重度负载的工作。
本地网络518可将分发器系统506与各种执行系统520相连接。执行系统520可具有操作系统524或执行环境530可在其上运行的硬件平台522。应用534可在执行系统520上执行以响应于工作单元,并且各种跟踪器可在应用534处理该工作单元时收集数据。
在某些实施例中,应用534可直接在操作系统524上执行。在这样的实施例中,操作系统524可具有用于收集执行相关测量的轻量跟踪器526,以及可在应用执行期间收集经细化信息的详细跟踪器528。
在其它实施例中,应用534可在执行环境530中执行。执行环境530可以是虚拟机,诸如进程虚拟机,其管理执行并提供各种支持功能,诸如存储器分配、垃圾收集、进程管理、消息传递、或其它功能。这样的执行环境可具有跟踪器532。
可使用跟踪器配置536来配置各种跟踪器,跟踪器配置536可定义收集什么信息以及在什么情况下信息可被收集。在某些实施例中,跟踪器配置53可能是导致单个跟踪器表现为执行级跟踪器或详细跟踪器的足够信息。
跟踪数据538可以是本地地收集的跟踪器输出,其可被传递到分析系统552。
在某些实施例中,分发器540可位于执行系统520内。在这样的实施例中,系统520可执行应用534,应用534可部分通过将工作负载项分发到多个处理实例来执行。处理实例可以是经细化检测的实例,而另一个处理实例可以是执行跟踪实例在这样的情况中,实施例400的操作可在单个设备上执行。
分析系统552可从各种执行系统520收集跟踪数据538来收集集中式跟踪数据544中的结果。分析系统552可操作在硬件平台542上,硬件平台542可具有用于跟踪数据544的数据存储,以及组合器546、分析器548,和优化器550。
分析系统552可从执行和经细化跟踪器两者收集并聚集跟踪数据。组合器546可创建联合结果集。分析器548可执行结果的各种分析,诸如报告、提醒、或其它输出。优化器550可为应用534生成经优化的设置或其它优化。
图6是示出用于应用执行和并行检测的方法的实施例600的流程图示。实施例600在左手栏中示出分发器和组合器602的操作,在中央栏中示出执行环境604,并在右手栏中示出经细化检测的环境606。分发器和组合器602可表示分发器406和组合器408的操作,而执行环境604和详细执行环境606可分别表示实施例400的经执行检测的系统412和经细化检测的系统414的操作。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
在框608,应用可由分发器和组合器602启动,其可导致在框610应用在执行环境604中开始执行,且在框612应用在详细执行环境606中开始执行。
从框608到612的操作示出了其中应用可被配置来执行,接着工作负载项可被发送到应用供处理的实施例。在这样的实施例中,工作负载项可以是由应用消费的数据项。在其它实施例中,工作负载向可以是可被传递到各种环境的可执行命令。在这样的实施例中,从框608到612的操作可能不被执行。
在框614可接收输入流。在框616输入流可被解析以标识工作单元。工作单元可以是数据块,可执行代码,或可由执行环境处理的其它工作负载。
在框618分发器可分析工作单元以确定工作单元是否可使用详细检测或不使用详细检测来被处理。如果分发器在框618选择详细检测,工作负载可被传送到详细检测环境606以在框620执行。如果分发器在框618不选择详细检测,工作负载可被传送到执行环境604以在框622执行。
在某些情况中,分发器和组合器602可向执行环境604和详细执行环境606两者发送相同工作负载项。
分发器可为工作单元创建标识符。在某些情况中,工作单元可将标识符(诸如序列号或可被请求者使用的其它标识符)包括在请求内,以将应用结果与请求进行匹配。在某些情况中,时戳、标识代码、或其它标识符可被分发器创建,并被用来使来自从不同执行环境收集的两个或更多个跟踪数据的结果数据相关
当在执行环境604中执行期间,某些跟踪结果可被收集,其可在框624中被发送到分发器和组合器602并在框626接收。类似地,经细化检测的环境606可生成跟踪结果,其可在框628被发送并由分发器和组合器602在框630接收。
结果可在框632组合并在框634存储。该过程可返回至框614以处理另工作单元。
组合来自执行环境604和经细化检测环境606的跟踪数据的方法的示例可在实施例700中被示出。
图7是示出用于组合来自以不同粒度级运行的跟踪的结果的方法的实施例700的流程图示。实施例700示出了实施例600的框632或实施例400的结果组合器418的组合操作的一个示例。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
执行跟踪数据可在框702接收,且详细跟踪数据可在框704接收。在每组结果中,一个或多个标识符可被呈现。这样的标识符可在在框706标识。
标识符可以是可被用来使在应用或工作单元的两个不同的跟踪操作之间的数据进行相关的任何项。在某些情况中,每个工作单元可具有标识符,其可被用来在工作单元已经被两种类型的跟踪器在分开的运行中执行时匹配经细化和执行跟踪数据。
在另外的情况中,时戳、输入数据值、或其它信息可被用作标识符。
在框708中对每个标识符,执行结果可在框710中收集,而在框712中可以收集详细结果。两组结果可在框714组合并在框716存储。
在组合两组结果后,可在框718中在更大的数据集上执行分析。
图8是示出用工作负载分发器来进行跟踪的系统的实施例800的图示。实施例800示出了一般的过程,其中分发器可提供工作负载分发,并且还确定在执行期间跟踪如何和何时发生。
实施例800可表示受管理的计算环境,诸如群集计算系统或多个设备可被使用以递送应用的其它系统。尽管传统群集或负载平衡环境可被用作实施例800中的示例,相同的原理可被应用到任何计算系统,其中工作负载可被分割并分发到多个实例、线程、处理器、设备、或其它计算元素。
应用输入流802可被发送到分发器804,其可将工作项分割到各种未检测系统808和经检测系统812。应用输出816可被任一类型的系统生产,但经检测系统812可生成可被存储在结果数据库818中的跟踪数据。
工作器系统包括未检测系统808和经检测系统812。工作器系统可能能够处理工作单元,其可以是应用的任何元素。在某些实施例中,应用可在应用编程接口上接收请求项,接着将每个请求当做单个工作项来处理。在这样的实施例中,进入的请求可以是被各自地和独立地处理的数据项。
在某些实施例中,应用可能能够并行执行,每个工作项是可以与其它工作项交互或可以不与其它工作项交互的独立的计算元素。在这样的实施例中,进入的请求可以是可执行代码或可执行代码和要被可执行代码处理的数据对象的组合。
分发器804可使用配置806来定义如何跨工作器系统分配工作项。配置806可定义负载平衡算法和参数,以及数据收集配置。
数据收集配置可定义数据项如何以及何时可被工作器系统上的任何检测收集。在许多情况中,数据收集配置可定义指定对象,诸如要收集的数据项和用于收集数据项的条件。
分发器804可创建跟踪器配置820,其可在经检测系统812上配置检测以收集指定数据。某些实施例可为每个工作元素创建指定或定制的跟踪器配置820。这样的实施例可允许系统用跟踪器配置820从运行到运行改变检测,允许对数据收集的经细调的控制。
由于检测和负载平衡可被结合到分发器804中,检测可变成整个负载平衡中的因素。例如,当系统上的负载重并且可能几乎没有可用资源时,分发器804可能能够减少检测使得整个系统性能不受影响。类似地,在松弛期间且可能存在多余资源,分发器804可增加检测。
在可实现跟踪器配置820的系统中,每个工作器系统可通过为特定工作项更新跟踪器配置820来被配置为经检测或未检测系统。在某些这样的系统中,全部工作器系统可被一致地配置。
某些工作器系统可具备其它未检测系统可能不具备的附加的检测能力。例如,经检测系统812可具备不同的或附加的处理器、存储器、存储、网络连接性以及甚至可支持检测的附加的软件资源。在某些这样的系统中,各种工作器系统可能不一致。工作器管理器822可通过注册工作器系统、确定工作器系统的可用性和其它功能来管理各种工作器系统。在许多实施例中,工作器管理器822可部署双向认证机制,其可允许分发器804向工作器系统认证且反之亦然。
工作器管理器822可通过周期性地查询工作器系统或以其它规则来收集状态信息。状态信息可包括工作器系统的能力,其可包括硬件和软件能力以及配置,连同当前负载或工作器系统的容量。某些元素(诸如系统处理新请求的能力)可能实时改变,而其它元素(诸如硬件配置)可能是更静态的。
认证机制可帮助确定各设备假设相互通信。当工作器设备将其自身向分发器认证时,分发器可依靠该认证来确定工作器不是恶意设备。当分发器将其自身向工作器设备认证时,工作器设备可依靠该认证来确保分发器具有向工作器设备发送工作的许可或授权。还可为其它情形部署认证机制,包括检测即服务情形。
图9是示出工作负载分发器可在其中将工作单元发送给各工作器设备的网络环境的实施例900的图示。实施例900示出可实现实施例800以及其他实施例中描述的操作的某些的硬件和软件组件。
图9的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例900示出了其中多个工作器系统可执行由分发器设备确定的应用的各部分。分发器902可接收工作负载项的流、将进入的流划分成工作单元,确定哪个工作设备可处理每个工作单元、并使得那些工作单元被执行。
分发器902还可确定在给定工作单元上什么类型的检测可被执行。检测可包括各种类型的跟踪、数据收集、性能监视、或可被用于诊断、调试、管理性监视、优化或其它用途的其它数据。
检测可由分发器902配置。在某些情况中,分发器902可能能够将工作单元路由到可被预配置的工作器设备以执行指定类型的跟踪或检测。例如,仪表化系统932之一除了执行工作单元外,可被预配置以执行指定数据集收集。在这样的示例中,分发器902可确定何时将工作单元发送到经检测系统932以及何时将另一个工作单元发送到可能未配置有检测的工作器924。
在另一个示例中,分发器902可将配置文件或其它描述符发送到仪表化系统932,其中配置文件可包含要收集的指定项、要执行的测试、或其它数据收集活动。在这样的实施例中,经检测系统932上的检测或跟踪器可以是可配置的。在某些情况中,这样的系统可能能够执行工作单元而很少或没有检测,接着切换到针对下一个工作单元的高级检测,如在配置文件中所定义的。
实施例900中所示的各种设备的每一个可具有硬件平台。相应的硬件平台可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。分发器902可以具有硬件平台904,在硬件平台004上可操作各种软件组件。分发器906可接收来自负载接收器908的进入工作负载流并确定哪个工作器设备将执行该工作单元。分发器906可使用可定义负载平衡目标、算法、或用于管理服务质量或其它因素的其它定义的负载平衡配置910。分发器906可参考可能包括各种工作器设备的可用性和状态的工作器数据库912。
分发者906可跨多个设备(包括经检测系统932和一般工作器924)来平衡工作负载。工作负载平衡可并行使用多个设备以处理可能大于单个设备的容量的工作负载。例如,大的网络规模的应用可由许多设备处理,在某些情况中其规模可达数百台服务器计算机。分发器906的负载平衡方面可尝试分割工作负载并将工作负载分发到可用设备。
跟踪器配置914可定义一组仪表检测目标,其可包括要收集的数据、采样率、和许多其它因素。
在许多情况中,仪表检测目标可能与负载平衡目标关系紧张。一般而言,检测和数据收集可达到某计算成本,意味着随着检测增加,系统的性能下降。在高速、高吞吐量环境中,分发器906可针对处理进入的工作负载的处理容量来平衡仪表检测目标。在某些实例中,分发器906可在高负载期间回缩仪表检测目标,使得整体系统的服务度量的质量得到满足。在其它实例中,分发器906可允许服务度量的质量达不到,使得仪表检测目标可得到满足。由分发器906做出的决定可在各种配置文件中被定义。
跟踪器管理器918可管理检测以生成数据检测的总体目标。跟踪器管理器918可使得不同数据元素从各种工作单元或经检测系统932被收集,接着收集数据。在某些情况中,跟踪器管理器918可执行第一级别聚集、总结、或其它初始处理。
跟踪器管理器918可使用人为负载生成器916来创建或修改工作单元用于测试和数据收集。例如,人为负载生成器916可创建强调应用的指定部分的工作单元。当这样的工作单元被执行时,检测可为工作单元收集数据。这样的工作单元可生产应用结果,该结果可被仪表化系统932丢弃。
分发器902可包括工作器状态收集器920,工作器状态收集器920可与每个工作器设备进行通信以确定当前状态。该状态可指示设备是否可用以接受工作单元。在某些情况中,状态可包括静态的,诸如多余容量、当前工作负载、或其它性能度量。
工作器管理器956可通过将设备添加到受管理设备池中并从其移除来管理可用工作器设备。工作器管理器956可允许新设备连接、认证、并添加到受管理设备的池。管理者可使用工作器管理器956以监视个体设备、配置设备、并向池添加设备或从其移除设备。
在许多实施例中,工作器管理器956可向工作器设备发放认证密钥。认证密钥可以是公共/私有加密密钥系统的部分,其中私有密钥可被存储在设备上并并用来确保通信的安全,而公共密钥被发送到接收设备以解密通信。这的系统可以是用于在设备间认证系统的一个示例,而其它实施例可使用其它系统。
工作器924可操作在硬件平台926上以在执行环境928内执行应用930。应用930可以是预先安装的处理来自分发器906的工作项的一组可执行代码。在某些情况中,应用930可在执行环境928内执行,执行环境928可以是操作系统、虚拟机、框架、或其它支持软件组件。
工作器924可具有认证密钥954,其可被使用以认证与分发器902的通信。密钥954可以是任何类型的认证组件,诸如公共/私有加密密钥集或其它组件。
仪表化系统932可向工作器924那样类似地配置。硬件平台934可支持执行应用938的执行环境936。将检测的系统932可包括跟踪器940,其在执行期间可以是或可不是被分发器902可配置的。仪表化系统932还可包括密钥952用于向分发器902认证。
在某些实施例中,仪表化系统932可以是像工作器924相同的硬件和软件配置。其它实施例可在仪表化系统932和工作器924之间具有不同硬件或软件配置。
跟踪器940可收集检测或跟踪数据并将那些数据发送到分析系统942。
分析系统942可具有硬件平台944,数据收集器946可从各跟踪器收集跟踪数据948。分析器950可处理跟踪器用于分析、优化、总结或其它功能。
分发器902的示例和其它组件示出了可具有多个功能的设备。在不同的实施例中,各种所示组件的每一个可被部署在一分开的设备上或一组设备上。例如,工作器管理器956、工作器状态收集920、跟踪者管理器918,和其它功能可被部署在各设备上或各组设备上。
图10是示出用于配置工作器设备池并接着以负载平衡和检测平衡的方式操作工作器设备的方法的实施例1000的流程图。实施例1000可示出可在实施例800和900等等所示系统中实现的一个示例进程。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例1000在框1002示出了用于建立并管理工作器资源的池操作序列,接着在框1004示出了用于解析输入流并将工作单元分发到工作器资源的操作模式。在实施例900的示例中,工作器资源可以是各个设备,但是在其它实施例中工作器资源可以是任何用于处理工作单元的资源。在某些情况下,工作器资源可以是子设备资源,诸如处理器、调度器、线程、或其它对象。在其它情况下,工作器资源可以是多个设备一起行动,诸如群集、受管理服务、或其它资源组。
在框1002的管理模式中,各种执行环境可在框1006中被标识。执行环境可指用于处理工作单元的任何资源。在许多情况中,执行环境可以是设备、处理器、或其它计算工作器。
对于框1008中的每个执行环境,在框1010中尝试可被作出以与环境通信并认证。如果在框1012中认证不成功,则在框1014中将环境标记为不可用。
在框1012中成功认证之后,环境的配置和可用性可在框1016被测试。如果在框1018中配置和可用性不行,则在框1020中将环境标记为不可用。当环境在框1012中成功认证且配置和可用性在框1018中行,则在框1022执行环境可被标记为可用。
框1006-1022的过程可表示管理功能,其可在将工作分发给各执行环境前被执行。在某些情况中,框1006-1022的过程可与框1004的操作模式并行执行。在这样的情况中,管理模式的操作可以是各种执行环境的正在进行的及重复检查。
框1004的操作模式可通过在框1024接收跟踪器配置和负载平衡器配置来开始。
在框1026输入流可被接收。在框1028输入流可被解析以标识工作项。对于给定的工作项,可在框1030作出对标识要处理工作项的设备的确定。在某些情况中、跟踪器配置可在框1030被创建,其定义任何数据收集参数。一旦在框1030中作出确定,则在框1032中工作项可被发送到所选执行环境。该过程可返回至框1026以处理下一工作项。
图11是示出跟踪即服务的实施例1100的图示。实施例1100示出了系统的一个配置,其中远程服务1104可与顾客场所1102上的系统集成,其中远程访问1104可提供仪表化执行环境以处理工作负载并生成跟踪数据。
顾客场所1102可在用户的控制下执行应用。顾客场所1102可以是物理场所,诸如用户可访问的建筑物或商店。在某些情况中,顾客场所1102可包括在第三方场所拥有并位于第三方场所的但由用户控制的一个或多个计算机。这样的系统的示例可以是主存在云上的执行系统,在那里用户可购买计算资源。资源可被第三方拥有,但是用户可控制那些资源如何部署。
远程服务1104可接收工作项并使用经检测环境1114来执行那些工作项。仪表化环境1114可具有可在工作项执行时捕捉各种跟踪数据的硬件和软件组件。在某些情况中,仪表化环境可包括工具、测量算法、探测、和安装、管理、执行、或以其他方式部署不方便或成本高的其它组件。
在顾客场所1102内,应用输入流1106可以被传递到分发器1108。分发器系统1108可解析来自输入流的工作项并将工作项传递到各种执行环境1110。执行环境1110的输出可以是应用输出1112。
分发器1108可将某些或全部工作项传送到经检测环境1114(其可为远程访问1104的部分)。在一些情况中,可以使用经检测环境1114的多个实例。
负载生成器1128可创建可被注入输入流1106的测试负载。测试负载可以是可被经检测环境1114处理以练习应用的数据。在许多情况中,测试负载可以以比典型或随机输入流复杂得多的方式联系应用。这样的测试负载可执行单元测试或可被设计来练习各种极端情况和条件的其它测试。在某些情况中,测试负载可使应用经受可压迫系统性能的大负载。这样的测试负载可帮助标识性能瓶颈并测量在峰值负载时间期间整个吞吐量或响应时间。
远程访问1104可包括认证、授权、以及记账系统1116,其可管理远程服务1104的各种管理方面。管理用户接口可允许用户创建帐户、定义支付机制、并管理仪表化环境1114。
检测市场1122可以是网站或其它界面,用户通过它可浏览预先配置的经检测系统1124和预先配置的负载生成器1126。各种预先配置的系统的每一个可针对指定类型的数据收集来被定制。某些预先配置的系统可具备附加特征、算法、或在其它预先配置的系统上不可用的能力。如此,某些预先配置的系统可具备与其它预先配置的系统不同的成本结构。
用户可能能够选择预先配置的经检测系统1124和预先配置的负载生成器1126作为配置针对给定应用的测试制度的开始点。在某些实施例中,用户可选择预先配置的系统接着添加、移除、或编辑各种设置来获得特定目的。
在某些实施例中,用户可能能够将预先配置的仪表化系统保存在检测市场1122中供重新使用。在某些这样的实施例中,第三方可能能够将它们自己的仪表化系统上传以供在在检测市场1122中销售。
图12是示出其中远程服务可提供检测或跟踪的网络环境的实施例1200的图。实施例1200示出可实现实施例1100以及其他实施例中描述的操作的某些的硬件和软件组件。
图12的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
实施例1200中所示的各种设备的每一个可具有硬件平台。相应的硬件平台可类似于实施例100中的硬件平台100。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
实施例1200可示出环境,其中检测系统可从远程服务提供,接着添加到用户系统的计算流水线。检测系统可包括负载生成器以及数据收集器,其可根据用户的应用来操作以在执行期间收集关于应用的各种数据。
用户可通过管理用户界面与远程服务进行交互。用户可能能够执行各种管理认为,诸如建立帐户和支付方式,以及选择并配置可被集成到用户应用中去的测试组件。远程服务可包括检测市场,其中用户可浏览各种预先配置的负载生成器和预先配置的仪表化工作器。一旦选择,用户可能能够配置或定制组件,接着管理组件如何可被部署。
用户系统可包括工作负载分发器1202和在内部网络1210中连接的各种工作器1212。工作负载分发器1202可接收应用的工作单元,接着将工作单元分发到各种工作器1212。这样的系统的示例可以是群集工作环境。
在实施例1200的示例中,用户的系统被示为可对大应用的执行作出贡献的多个设备。在其它实施例中,各组件可被部署在单个设备上。
分发器1202可以在硬件平台1204上操作,硬件平台1204可包括分发器1206。分发器1206可以是可接收输入流、将输入流解析为工作单元、接着使得工作单元在各种工作器1212上执行的软件组件。
分发器1202可包括配置1207,其可包括负载平衡和检测目的两者。配置1207还可包括可被用来将工作单元的某些或全部分发到一个或多个经检测工作器1222的信息,工作器1222可执行工作负载并收集关于执行的数据。
认证系统1208可允许分发器1202建立与远程系统组件的受信的,且在某些情况中,安全的通信。
工作器1212可包括硬件平台1214和可执行各种工作项的执行环境1216。实施例1200中的工作器1212可通过内部网络1210连接到分发器1202。在许多系统中,内部网络1210内的连接可以被看成受信和安全的,因为防火墙1218和其它安全措施。如此,工作器1212可被部署而无需认证系统。
防火墙1218可在直接在用户的控制下的设备和可由第三方提供的设备或服务之间定义边界。在某些实施例中,各种检测组件可跨外部网络1220(可包括互联网)可用。在许多情况下,可使得各种远程服务对许多不同用户可用。
第三方可通过建立与用户系统内的分发器1206的连接来向用户提供负载生成和检测服务。
分发器1206可在应用中的期望检测的位置操作。在某些情况下,分发器1206可以是函数调用或可被插入应用的其它指令。这样的指令可被编程者添加到用户应用。
经检测工作器1222可执行应用的一部分,如分发器1206所定义的。仪表化工作器1222可具有执行环境1226可在其上执行来自分发器1206的工作单元的硬件平台1224。在执行工作单元时,跟踪器1228可收集数据,其可被分析器1230分析。现在在实施例1200中示出的可能是可收集并存储跟踪数据的单独的设备。
仪表化系统1222可包括可包括密钥1234的认证系统1232。密钥1234可能是任何类型的令牌、密钥、口令短语,或可被用来向分发器1202上的认证系统1208认证经检测工作器1222的其它项。在某些情况下,密钥1234可以是一组公共/私有加密密钥。
负载生成器1260可以是另一检测组件,其可被当做远程服务来配置和部署。负载生成器1260可生成可被待测试的应用执行的人为负载或其它输入。在某些情况下,负载生成器1260可创建单元测试或可练习应用的其它输入。在其它情况中,负载生成器1260可生成可练习应用的大负载,以确定性能瓶颈或其它对性能的限制。
负载生成器1260可以具有带负载生成器1264的硬件平台1262。配置1266可定义负载生成器1264如何操作,包括要生成的数据的类型,连同定时、频率、和其它操作方面。
认证系统1268可键负载生成器1260向分发器1202认证。认证系统1268可包括一个或多个密钥1270用于与分发器1202进行通信。
管理服务器1236可执行许多设置、配置、和管理操作来部署各种经检测工作器1222和负载生成器1260。管理服务器1236被示为操作在单个硬件平台1238上,尽管其它实施例可在不同平台上部署各种组件。
管理用户界面1240可以是网站、应用、或其它用户界面,通过该用户界面用户可执行许多管理任务。用户可建立帐户并使用认证和授权系统1242创建各种认证组件。密钥生成器1246和密钥数据库1244可分别被创建并存储可被部署到检测组件和用户系统的各种认证密钥。
记账系统1240和支付系统1250可以是远程服务可通过它收集钱以供操作的机制。记账系统1240可标识各检测组件的每个用途,而支付系统1250可将钱从用户传送到服务提供方以交换对系统的使用。
许多不同的支付方案可被部署以向用户开具远程服务的账单。例如,按月订购可为一个或多个仪表化系统支付。在另一个示例中,仪表化系统1222和负载生成器1260可基于处理器周期、按计算小时、按消费的存储、或其它基础来开账单。
检测市场1254可以是界面,用户通过它可浏览各种预先配置的经检测系统1256和预先配置的负载生成器1258。用户可能接着那个选择并在部署预先配置的组件前进一步配置该组件。
图13是示出用于配置检测系统的实施例1300的流程图示。实施例1300示出了用户与管理服务器交互以配置、部署、并管理检测系统的过程的一个示例。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。实施例1300示出了用户可通过建立并部署检测系统的方法。检测系统可以是仪表化工作器设备、负载生成器、或其它组件。
用户可在框1302开始会话,在框1304建立用户帐户,并在框1306建立支付方法。用户账户可允许用户在以后的时间登录并添加、移除、和编辑各种检测系统的操作。支付方法可以是通过它可对提供检测访问的第三方进行支付的机制。
用户可在框1308中浏览预先配置的检测系统。预先配置的系统可具有不同的能力。例如,一个仪表化执行环境可具备性能监视能力,而另一个仪表化执行环境可具备处理或调用跟踪的能力。在另一个示例中,一个负载生成器可被配置用于产生HTTP请求,而另一个负载生成器可被配置用于TCP/IP请求。
在框1310选择检验系统之后,要被收集的数据可在框1312被定义,且各种收集参数和逻辑在框1314被定义。在框1312和1314定义的配置变量可在框1316被存储以允许检测系统在框1318被部署。
要在框1312收集的数据可定义指定参数、参数的类型、或其它关于数据收集的信息。在负载生成器的情况中,框1312的参数可定义要被生产的负载,其可与由对应的经检测执行环境执行的数据收集协作。
在框1314中的收集参数和逻辑可定义条件,在此条件下数据可被收集。条件可以是事件、参数值、时间帧、采样率、或其它可定义数据何时可被收集的定义。在某些情况中,条件可被分发器解释以确定哪些工作单元被发送到仪表化执行环境。
在定义要被收集的数据以及数据何时及如何可被收集之后,在框1316配置可被存储。在某些情况中,经存储的配置可作为另一个预先配置的经检测系统被添加在检测市场中。这样的存储可被全体公众访问或可被限于仅可被创建配置的用户访问。
仪表化系统可在框1318被部署并与用户的系统进行接口。
如果在框1320有另一系统要被配置,该过程可以返回到框1308。一旦全部的系统被部署,用户可在框1322浏览并查看部署的系统。用户可在框1324选择系统,并且如果用户想要在框1326作出改变,该过程可返回框1312。
图14是示出用于部署仪表化系统的方法的实施例1400的流程图示。实施例1400示出了仪表化系统的部署的一个示例,诸如可在实施例1300的框1318中可执行的。
其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
实施例1400可示出可被执行以部署仪表化系统的过程的一个示例。仪表化系统可以是负载生成器、仪表化工作器、或其它组件。
在框1402用于仪表化系统的配置文件可被创建,且在框1404仪表化系统可被实例化。在某些实施例中,每个仪表化系统可以是虚拟机或可在数据中心环境内被实例化并管理的其它组件。
在框1406可创建用于认证密钥,且密钥可在框1408被发送到系统。在框1406和1408,任何协议或其它配置可被执行以连接到分发器或管理系统。
可在框1410作出尝试以连接到顾客的系统上的分发器。如果在框1412连接不成功,则分发器可通过在框1414标识检测点并在框1416将分发器添加到顾客系统而被安装并配置。在许多情况中,编程者可添加函数调用或对顾客的应用作出其它改变以添加分发器。分发器可在框1418被配置来与仪表化系统通信。该过程可继续至框1420。
在分发器在框1418被配置之后或在框1412存在成功连接,检测系统可作为可用系统在框1420被添加到分发器。在框1422处可建立认证机制,并且系统可在框1424处开始操作。
对本发明的上述描述是出于图示和描述的目的而呈现的。它不旨在穷举本主题或将本主题限于所公开的精确形式,并且鉴于上述教导其他修改和变型都是可能的。选择并描述实施例来最好地解释本发明的原理及其实践应用,由此使本领域的其他技术人员能够在各种实施例和各种适于所构想的特定用途的修改中最好地利用本发明。所附权利要求书旨在被解释为包括除受现有技术所限的范围以外的其他替换实施例。
Claims (28)
1.一种由计算机处理器执行的方法,所述方法包括:配置用于执行应用的仪表化环境,所述仪表化环境收集所述应用的跟踪数据并存储所述跟踪数据;
向远程系统发送第一状态,所述远程系统接收所述应用的输入流,所述第一状态指示处理工作项的可能性;
从所述远程系统接收第一工作项,所述第一工作项是针对所述应用的;
执行所述第一工作项以生成应用输出和跟踪数据并将所述跟踪数据存储在跟踪数据库中。
2.如权利要求1所述的方法,其特征在于,进一步包括:
发送所述应用输出。
3.如权利要求1所述的方法,其特征在于,进一步包括:
丢弃所述应用输出。
4.如权利要求1所述的方法,其特征在于,进一步包括:
从所述远程系统接收所述应用。
5.如权利要求1所述的方法,其特征在于,进一步包括:
从所述远程系统接收认证机制。
6.如权利要求5所述的方法,其特征在于,进一步包括:
从所述远程系统接收跟踪器配置。
7.如权利要求6所述的方法,其特征在于,进一步包括:
基于所述跟踪器配置生成所述跟踪数据。
8.如权利要求7所述的方法,其特征在于,所述跟踪器配置包括用于生成所述跟踪数据的条件。
9.如权利要求7所述的方法,其特征在于,所述跟踪器配置包括所述跟踪数据内包含的数据对象。
10.如权利要求5所述的方法,其特征在于,所述认证机制是从密钥分发器接收的认证密钥。
11.如权利要求10所述的方法,其特征在于,所述认证密钥在接收支付信息后被分发。
12.如权利要求11所述的方法,其特征在于,进一步包括:
至少部分基于执行所述第一工作项消费的处理器周期来针对所述跟踪数据开具账单。
13.如权利要求11所述的方法,其特征在于,进一步包括:
至少部分基于由所述跟踪数据消费的存储来针对所述跟踪数据开具账单。
14.如权利要求1所述的方法,其特征在于,进一步包括:
基于所述跟踪数据执行针对所述应用的优化。
15.如权利要求14所述的方法,其特征在于,进一步包括:
为所述优化开具账单。
16.如权利要求14所述的方法,其特征在于,进一步包括:
估计来自所述优化的性能改善。
17.如权利要求16所述的方法,其特征在于,进一步包括:
至少部分基于所述性能改善开具账单。
18.一种系统,包括:
处理器;
在所述处理器上可执行的仪表化执行环境;
仪器管理器,用于:
与远程系统通信并向所述远程系统发送状态指示符;
从所述远程系统接收工作负载;
在所述仪表化执行环境内执行所述工作负载以生成跟踪数据和应用结果;以及
存储所述跟踪数据。
19.如权利要求18所述的系统,其特征在于,所述远程系统通过广域网来被访问。
20.如权利要求19所述的系统,其特征在于,进一步包括:
包括所述跟踪数据的存储系统。
21.如权利要求20所述的系统,其特征在于,所述存储系统通过局域网来被访问。
22.如权利要求18所述的系统,其特征在于,进一步包括:向所述远程系统认证所述系统的认证机制。
23.权利要求22所述的系统,其特征在于,所述认证机制还向所述系统认证所述远程系统。
24.如权利要求18所述的系统,其特征在于,进一步包括:
建立用于执行所述工作负载的支付方法的记账系统。
25.如权利要求24所述的系统,其特征在于,所述记账系统在帐户为当前时允许所述执行所述工作负载。
26.如权利要求25所述的系统,其特征在于,所述记账系统在帐户不为当前时拒绝所述执行所述工作负载。
27.如权利要求18所述的系统,其特征在于,还包括从所述跟踪数据生成摘要的分析器。
28.如权利要求18所述的系统,其特征在于,还包括为所述应用生成经优化的设置的优化器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/751,026 | 2013-01-25 | ||
US13/751,026 US20140025572A1 (en) | 2013-01-25 | 2013-01-25 | Tracing as a Service |
PCT/US2013/042789 WO2014116295A1 (en) | 2013-01-25 | 2013-05-27 | Tracing as a service |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105122230A true CN105122230A (zh) | 2015-12-02 |
Family
ID=49947390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380075057.1A Pending CN105122230A (zh) | 2013-01-25 | 2013-05-27 | 跟踪作为服务 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140025572A1 (zh) |
EP (1) | EP2948859A4 (zh) |
CN (1) | CN105122230A (zh) |
BR (1) | BR112015017792A2 (zh) |
WO (1) | WO2014116295A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495598B2 (en) | 2012-05-01 | 2013-07-23 | Concurix Corporation | Control flow graph operating system configuration |
US9417935B2 (en) | 2012-05-01 | 2016-08-16 | Microsoft Technology Licensing, Llc | Many-core process scheduling to maximize cache usage |
US9047196B2 (en) | 2012-06-19 | 2015-06-02 | Concurix Corporation | Usage aware NUMA process scheduling |
US9575813B2 (en) | 2012-07-17 | 2017-02-21 | Microsoft Technology Licensing, Llc | Pattern matching process scheduler with upstream optimization |
US8793669B2 (en) | 2012-07-17 | 2014-07-29 | Concurix Corporation | Pattern extraction from executable code in message passing environments |
US9043788B2 (en) | 2012-08-10 | 2015-05-26 | Concurix Corporation | Experiment manager for manycore systems |
US9207969B2 (en) | 2013-01-25 | 2015-12-08 | Microsoft Technology Licensing, Llc | Parallel tracing for performance and detail |
US9021262B2 (en) | 2013-01-25 | 2015-04-28 | Concurix Corporation | Obfuscating trace data |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US9256969B2 (en) | 2013-02-01 | 2016-02-09 | Microsoft Technology Licensing, Llc | Transformation function insertion for dynamically displayed tracer data |
US9323863B2 (en) | 2013-02-01 | 2016-04-26 | Microsoft Technology Licensing, Llc | Highlighting of time series data on force directed graph |
US8843901B2 (en) | 2013-02-12 | 2014-09-23 | Concurix Corporation | Cost analysis for selecting trace objectives |
US9021447B2 (en) | 2013-02-12 | 2015-04-28 | Concurix Corporation | Application tracing by distributed objectives |
US20130283281A1 (en) | 2013-02-12 | 2013-10-24 | Concurix Corporation | Deploying Trace Objectives using Cost Analyses |
US8924941B2 (en) | 2013-02-12 | 2014-12-30 | Concurix Corporation | Optimization analysis using similar frequencies |
US8997063B2 (en) | 2013-02-12 | 2015-03-31 | Concurix Corporation | Periodicity optimization in an automated tracing system |
US9665474B2 (en) | 2013-03-15 | 2017-05-30 | Microsoft Technology Licensing, Llc | Relationships derived from trace data |
US9575874B2 (en) | 2013-04-20 | 2017-02-21 | Microsoft Technology Licensing, Llc | Error list and bug report analysis for configuring an application tracer |
US8990777B2 (en) | 2013-05-21 | 2015-03-24 | Concurix Corporation | Interactive graph for navigating and monitoring execution of application code |
US9734040B2 (en) | 2013-05-21 | 2017-08-15 | Microsoft Technology Licensing, Llc | Animated highlights in a graph representing an application |
US9176847B2 (en) * | 2013-05-22 | 2015-11-03 | International Business Machines Corporation | Managing diagnostic information |
US9280841B2 (en) | 2013-07-24 | 2016-03-08 | Microsoft Technology Licensing, Llc | Event chain visualization of performance data |
US9292415B2 (en) | 2013-09-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
CN105765528B (zh) | 2013-11-13 | 2019-09-24 | 微软技术许可有限责任公司 | 具有可配置原点定义的应用执行路径跟踪的方法、系统和介质 |
CN105765560B (zh) | 2013-11-13 | 2019-11-05 | 微软技术许可有限责任公司 | 基于多次跟踪执行的软件组件推荐 |
US9503447B2 (en) | 2014-01-30 | 2016-11-22 | Sap Se | Secure communication between processes in cloud |
US9703611B1 (en) | 2014-03-21 | 2017-07-11 | Amazon Technologies, Inc. | Isolating resources for utilization by tenants executing in multi-tenant software containers |
US10397343B1 (en) * | 2014-11-17 | 2019-08-27 | Amazon Technologies, Inc. | Distributed trace storage in a service-oriented system |
US9684540B2 (en) * | 2015-02-03 | 2017-06-20 | Dell Products L.P. | Dynamically controlled workload execution by an application |
US20160321036A1 (en) * | 2015-04-28 | 2016-11-03 | Box, Inc. | Dynamically monitoring code execution activity to identify and manage inactive code |
US10554701B1 (en) | 2018-04-09 | 2020-02-04 | Amazon Technologies, Inc. | Real-time call tracing in a service-oriented system |
US20210168014A1 (en) * | 2018-08-16 | 2021-06-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Management Model for Network Equipment Performance Measurements |
US11113385B2 (en) | 2018-12-21 | 2021-09-07 | Paypal, Inc. | Communicating trace information between security zones |
US10922210B2 (en) * | 2019-02-25 | 2021-02-16 | Microsoft Technology Licensing, Llc | Automatic software behavior identification using execution record |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6083281A (en) * | 1997-11-14 | 2000-07-04 | Nortel Networks Corporation | Process and apparatus for tracing software entities in a distributed system |
US20030149765A1 (en) * | 2000-03-30 | 2003-08-07 | Hubbard Edward A. | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US20070260849A1 (en) * | 2006-05-05 | 2007-11-08 | Chen Wen-Tzer T | Method and apparatus for executing instrumentation code using a target processor |
CN101222328A (zh) * | 2007-12-14 | 2008-07-16 | 西安西电捷通无线网络通信有限公司 | 一种实体双向鉴别方法 |
US7954094B2 (en) * | 2006-03-27 | 2011-05-31 | International Business Machines Corporation | Method for improving performance of executable code |
US20110258612A1 (en) * | 2010-04-20 | 2011-10-20 | Salesforce.Com | Methods and systems for debugging bytecode in an on-demand service environment |
US20120254900A1 (en) * | 2011-04-01 | 2012-10-04 | Ebay Inc. | Flow tracing though diverse logical and physical application and infrastructure layers/dependencies |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870606A (en) * | 1996-05-01 | 1999-02-09 | International Business Machines Corp. | Data triggered trace technique for debugging software programs |
US7185367B2 (en) * | 1999-05-11 | 2007-02-27 | Cylant, Inc. | Method and system for establishing normal software system behavior and departures from normal behavior |
US7870244B2 (en) * | 2002-06-25 | 2011-01-11 | International Business Machines Corporation | Monitoring performance of applications in a distributed environment |
US7685561B2 (en) * | 2005-02-28 | 2010-03-23 | Microsoft Corporation | Storage API for a common data platform |
US8832775B2 (en) * | 2011-06-17 | 2014-09-09 | Novell, Inc. | Techniques for workload spawning |
US9251039B2 (en) * | 2012-02-17 | 2016-02-02 | Microsoft Technology Licensing, Llc | Remote debugging as a service |
-
2013
- 2013-01-25 US US13/751,026 patent/US20140025572A1/en not_active Abandoned
- 2013-05-27 CN CN201380075057.1A patent/CN105122230A/zh active Pending
- 2013-05-27 BR BR112015017792A patent/BR112015017792A2/pt not_active Application Discontinuation
- 2013-05-27 EP EP13872318.4A patent/EP2948859A4/en not_active Withdrawn
- 2013-05-27 WO PCT/US2013/042789 patent/WO2014116295A1/en active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6083281A (en) * | 1997-11-14 | 2000-07-04 | Nortel Networks Corporation | Process and apparatus for tracing software entities in a distributed system |
US20030149765A1 (en) * | 2000-03-30 | 2003-08-07 | Hubbard Edward A. | Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures |
US7954094B2 (en) * | 2006-03-27 | 2011-05-31 | International Business Machines Corporation | Method for improving performance of executable code |
US20070260849A1 (en) * | 2006-05-05 | 2007-11-08 | Chen Wen-Tzer T | Method and apparatus for executing instrumentation code using a target processor |
CN101222328A (zh) * | 2007-12-14 | 2008-07-16 | 西安西电捷通无线网络通信有限公司 | 一种实体双向鉴别方法 |
US20100262832A1 (en) * | 2007-12-14 | 2010-10-14 | China Iwncomm Co., Ltd. | Entity bidirectional authentication method and system |
US20110258612A1 (en) * | 2010-04-20 | 2011-10-20 | Salesforce.Com | Methods and systems for debugging bytecode in an on-demand service environment |
US20120254900A1 (en) * | 2011-04-01 | 2012-10-04 | Ebay Inc. | Flow tracing though diverse logical and physical application and infrastructure layers/dependencies |
Non-Patent Citations (1)
Title |
---|
ANONYMOUS: "remote debugging in visual studio 2012 on windows 8", 《HTTP://HSBALLINA.WORDPRESS.COM/2012/11/20/REMOTE-DEBUGGING-IN-VISUAL-STUDIO-2012-ON-WINDOWS-8/》 * |
Also Published As
Publication number | Publication date |
---|---|
BR112015017792A2 (pt) | 2017-07-11 |
EP2948859A4 (en) | 2016-10-19 |
WO2014116295A1 (en) | 2014-07-31 |
US20140025572A1 (en) | 2014-01-23 |
EP2948859A1 (en) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105283849B (zh) | 针对性能和细节的并行跟踪 | |
CN105122230A (zh) | 跟踪作为服务 | |
CN105103147A (zh) | 用工作负载分发器来跟踪 | |
CN105283852A (zh) | 模糊跟踪数据 | |
CA2946224C (en) | Method and apparatus for automating the building of threat models for the public cloud | |
Noor et al. | Trust management of services in cloud environments: Obstacles and solutions | |
US20130085882A1 (en) | Offline Optimization of Computer Software | |
US10691822B1 (en) | Policy validation management | |
CN110458559B (zh) | 交易数据处理方法、装置、服务器和存储介质 | |
US20120159566A1 (en) | Access control framework | |
CN112017007A (zh) | 用户行为数据的处理方法及装置、计算机设备、存储介质 | |
CN109582560A (zh) | 测试文件编辑方法、装置、设备及计算机可读存储介质 | |
US20230376610A1 (en) | Non-Intrusive Method of Detecting Security Flaws of a Computer Program | |
CN117972704A (zh) | 一种区块链生态安全协同监管方法 | |
CN116955148A (zh) | 业务系统测试方法、装置、设备、存储介质及产品 | |
CN115617612A (zh) | 一种日志上报方法、装置、计算机设备和存储介质 | |
Yovera-Loayza et al. | Architectures for blockchain in the management of medical records: A comparison | |
CN105723357B (zh) | 共享模块环境中的因模块而异的跟踪 | |
CN116192400B (zh) | 一种支持hccm服务的移动中台系统 | |
Sianipar et al. | A verification mechanism for cloud brokerage system | |
CN118797686A (zh) | 风险评估模型生成方法和装置、电子设备以及程序产品 | |
Wasmeier et al. | Synergies and scaling of use case combinations in the field of asset logging and labeling | |
CN114840384A (zh) | U盾的测试方法、装置、存储介质及电子设备 | |
Sujitha et al. | Analysing cloud simulation results using big data analytics model | |
Reis | BPML Tool for GDPR Compliance Checking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20170516 Address after: Washington State Applicant after: Micro soft technique license Co., Ltd Address before: Washington State Applicant before: CONCURIX CORP. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151202 |