模糊跟蹤數(shù)據(jù)的制作方法
【專利說明】模糊跟蹤數(shù)據(jù)
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2013年1月25日提交的題為“Obfuscating Trace Data(模糊跟蹤數(shù)據(jù))”的美國專利申請序列號13/751,000的優(yōu)先權(quán)和權(quán)益,該申請的整體內(nèi)容通過援引被明確地納入于此。
[0003]背景
[0004]跟蹤收集與應(yīng)用如何在計算機系統(tǒng)內(nèi)執(zhí)行有關(guān)的信息。跟蹤數(shù)據(jù)可包括任何類型的可解釋該應(yīng)用如何操作的數(shù)據(jù),并且這樣的數(shù)據(jù)可由開發(fā)者在應(yīng)用的調(diào)試或優(yōu)化期間分析。在許多情況中,跟蹤數(shù)據(jù)可被用于調(diào)試應(yīng)用以及理解和優(yōu)化應(yīng)用。跟蹤數(shù)據(jù)還可在該應(yīng)用的常規(guī)操作期間被管理員用來標(biāo)識任何問題。
【發(fā)明內(nèi)容】
[0005]儀表化執(zhí)行環(huán)境可連接到一執(zhí)行環(huán)境以隨著應(yīng)用運行提供經(jīng)細化的應(yīng)用的跟蹤和日志。儀表化執(zhí)行環(huán)境可被配置成可被配置和購買的單獨服務(wù)。儀表化執(zhí)行環(huán)境可與各種認證系統(tǒng)、管理用戶界面和其它組件一起部署。儀表化執(zhí)行環(huán)境可通過分發(fā)器來參與客戶的系統(tǒng),分發(fā)器可管理應(yīng)用工作負載以向儀表化執(zhí)行環(huán)境和其它工作器系統(tǒng)分發(fā)工作。市場可提供多個預(yù)先配置好的執(zhí)行環(huán)境,所述執(zhí)行環(huán)境可供選擇、進一步配置,并被部署以針對特定數(shù)據(jù)收集目標(biāo)。
[0006]負載平衡系統(tǒng)可將儀表化系統(tǒng)結(jié)合到一組被管理的設(shè)備內(nèi),并在各設(shè)備間分發(fā)工作負載以同時滿足負載平和和數(shù)據(jù)收集。負載分發(fā)器可與若干被管理的設(shè)備進行通信并配置它們,某些設(shè)備可具有可為那些設(shè)備上運行的工作負載收集跟蹤數(shù)據(jù)的儀器。認證可在被管理的設(shè)備和負載分發(fā)器之間執(zhí)行,以驗證被管理的設(shè)備能夠接收工作負載并在執(zhí)行前驗證工作負載。工作負載分發(fā)器可增加或減少與在任何給定時間經(jīng)歷的工作負載相關(guān)的檢測的量。
[0007]并行跟蹤器可與應(yīng)用的執(zhí)行或輕度經(jīng)檢測版本并行地執(zhí)行應(yīng)用的細化的或經(jīng)深度檢測的分析。應(yīng)用的兩個版本都可操作在同一輸入流上,但是深度經(jīng)檢測版本具有與輕度經(jīng)檢測版本的不同執(zhí)行結(jié)果。該跟蹤結(jié)果可被用于各種分析,包括優(yōu)化和調(diào)試。
[0008]跟蹤器可模糊跟蹤數(shù)據(jù),使得跟蹤數(shù)據(jù)可被用在不安全環(huán)境中,即使原始跟蹤數(shù)據(jù)可包含私有的、機密的、或其它敏感的信息。跟蹤器可使用不可逆的或有損散列函數(shù)、查找表、或針對特定原始跟蹤數(shù)據(jù)的其它機制來模糊、呈現(xiàn)經(jīng)模糊的對傳輸、存儲和分析可接受的跟蹤數(shù)據(jù)。在參數(shù)到函數(shù)來回傳遞的情況中,跟蹤數(shù)據(jù)可作為組或個體參數(shù)來被模糊。在某些情形中,經(jīng)模糊的跟蹤數(shù)據(jù)可被發(fā)送到遠程服務(wù)器。
[0009]提供概述以便以簡化形式介紹將在以下詳細描述中進一步描述的一些概念的選集。本概述并不旨在標(biāo)識所要求保護主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。
[0010]附圖簡述
[0011]在附圖中
[0012]圖1是示出用于跟蹤處理機密數(shù)據(jù)的應(yīng)用的系統(tǒng)的實施例的圖示。
[0013]圖2是示出用于分析敏感跟蹤數(shù)據(jù)的網(wǎng)絡(luò)環(huán)境的實施例的圖示。
[0014]圖3是示出安全環(huán)境和遠程設(shè)備之間的交互的實施例的時間線圖。
[0015]圖4是示出并行跟蹤系統(tǒng)的實施例的圖示。
[0016]圖5是示出具有并行跟蹤的網(wǎng)絡(luò)環(huán)境的實施例的圖示。
[0017]圖6是示出用于執(zhí)行具有并行儀表化的方法的實施例的流程圖示。
[0018]圖7是示出用于組合結(jié)果的方法的實施例的流程圖示。
[0019]圖8是示出用工作負載分發(fā)器來進行跟蹤的實施例的圖示。
[0020]圖9是示出具有工作負載分發(fā)器的網(wǎng)絡(luò)環(huán)境的實施例的圖示。
[0021]圖10是示出用于帶跟蹤的負載平衡的方法的實施例的流程圖示。
[0022]圖11是示出作為服務(wù)的跟蹤的實施例的圖示。
[0023]圖12是示出具有遠程跟蹤的網(wǎng)絡(luò)環(huán)境的實施例的圖示。
[0024]圖13是用于配置儀表化系統(tǒng)的實施例的流程圖示。
[0025]圖14是示出用于部署儀表化系統(tǒng)的方法的實施例的流程圖示。
[0026]詳細描述
[0027]跟蹤作為服務(wù)
[0028]儀表化執(zhí)行環(huán)境可被部署為服務(wù)。在創(chuàng)建帳號后,用戶可向用戶自己的執(zhí)行環(huán)境內(nèi)的工作負載分發(fā)器添加儀表化執(zhí)行環(huán)境。工作負載分發(fā)器可接收進入的工作負載流并將工作負載的某些或全部引導(dǎo)到儀表化執(zhí)行環(huán)境。
[0029]儀表化執(zhí)行環(huán)境可包括軟件、硬件、以及能夠在處理工作負載的同時捕捉各種信息的其它組件。儀表可收集可被存儲并分析的各種跟蹤數(shù)據(jù)。在某些情況中,跟蹤數(shù)據(jù)可在收集后被分析,而在其它情況中,跟蹤數(shù)據(jù)可實時地被分析。
[0030]用戶可使用管理用戶界面來配置儀表化執(zhí)行環(huán)境供分發(fā)器使用。用戶可能能夠建立帳號、確定支付機制、并選擇儀表化執(zhí)行環(huán)境的各種特征。
[0031 ] 管理活動還可包括創(chuàng)建各種認證密鑰或可使交互系統(tǒng)彼此認證的其它機制。認證系統(tǒng)可被用來驗證儀表化執(zhí)行環(huán)境已經(jīng)被允許接收分發(fā)器的輸出,并且分發(fā)器被授權(quán)以向儀表化執(zhí)行環(huán)境發(fā)送工作項目。
[0032]分發(fā)器可被添加到用戶的執(zhí)行環(huán)境以在應(yīng)用中引入重定向點或決策點。在某些情況中,分發(fā)器可以是截取輸入流并應(yīng)用負載平衡和儀表檢測邏輯兩者以標(biāo)識用以處理給定工作項目的執(zhí)行環(huán)境的應(yīng)用。在某些情況中,分發(fā)器可以是可被包括在庫中的可執(zhí)行代碼,庫可從應(yīng)用內(nèi)被調(diào)用。
[0033]可將檢測作為服務(wù)提供給應(yīng)用的開發(fā)者或管理者。檢測可使用可能對于安裝、配置或操作而言復(fù)雜的精細工具和分析來收集數(shù)據(jù)。用戶可使用不同的支付方案為這樣的服務(wù)付費,諸如部分基于可消耗多少處理、存儲、或其它資源來付費。在某些情況中,支付可以是訂購以供使用一段時間,諸如一個月的服務(wù)的固定費用支付。許多其他的支付方案可被部署。
[0034]用工作負載分發(fā)器來跟蹤
[0035]經(jīng)負載平衡或經(jīng)其它管理的計算環(huán)境可向儀表化和非儀表化的系統(tǒng)分發(fā)工作項目。工作平衡或分發(fā)可考慮應(yīng)用的儀表檢測目標(biāo)來進行。在一個示例中,儀表檢測可在系統(tǒng)上的負載可允許時執(zhí)行,但是當(dāng)負載因素增加時儀表檢測可被減少或消除。
[0036]工作負載分發(fā)器可具有若干儀表檢測目標(biāo),其定義收集數(shù)據(jù)的條件以及要收集的數(shù)據(jù)。目標(biāo)可包括諸如采樣率、開始或停止儀表檢測的事件或條件、要收集的數(shù)據(jù)的數(shù)量或質(zhì)量、以及要被應(yīng)用的儀表化的具體參數(shù)或類型之類的項目。
[0037]工作負載分發(fā)器可將儀表檢測目標(biāo)發(fā)送到工作器系統(tǒng),其中目標(biāo)可使得工作器系統(tǒng)收集所描述的數(shù)據(jù)。在這樣的情況中,分發(fā)器可能能夠為儀表檢測每個工作項目創(chuàng)建自定義的目標(biāo)。
[0038]計算環(huán)境可具有多個工作器系統(tǒng),其執(zhí)行由分發(fā)器定義的工作項目。每個工作器系統(tǒng)可向分發(fā)器注冊,注冊可包括初始聯(lián)系人和登記并建立各設(shè)備之間的認證機制。工作器系統(tǒng)的狀態(tài)可被周期性地收集并用于確定執(zhí)行給定工作項目的可能性。
[0039]并行跟蹤
[0040]深度儀表化的跟蹤器可與輕度儀表化的工作器并行操作以捕捉應(yīng)用的詳細測量和性能測量兩者。在許多情況中,深度儀表檢測可能不利地影響應(yīng)用的性能,因此破壞可在同時收集的性能度量。隨著檢測變得更詳細,性能度量通??赡茏兊酶苡绊?。
[0041]跟蹤系統(tǒng)可并行操作以在可僅捕捉性能度量的性能環(huán)境中進行跟蹤,而另一個詳細跟蹤器可捕捉詳細結(jié)果。在某些情況中,相同應(yīng)用負載可被并行分析并且性能結(jié)果和詳細結(jié)果可被聚集在一起以生成應(yīng)用的完整的表示。
[0042]并行跟蹤系統(tǒng)的體系結(jié)構(gòu)可被部署在分布式計算環(huán)境中。在這樣的環(huán)境中,多個設(shè)備或處理器可各自執(zhí)行應(yīng)用的某些工作。計算群集可以是分布式計算環(huán)境的一個示例,其中多個設(shè)備各自執(zhí)行輸入流的一部分。
[0043]單個設(shè)備可能能夠執(zhí)行并行跟蹤。多處理器設(shè)備可具有可以以高性能方式處理應(yīng)用工作負載的一些處理器而其它處理器使用詳細工作器來執(zhí)行應(yīng)用。
[0044]并行跟蹤的概念可被應(yīng)用到單個系統(tǒng)或單處理器系統(tǒng)。在這樣的系統(tǒng)中,分開的跟蹤操作可順序執(zhí)行。例如,可使用性能水平儀表檢測來執(zhí)行應(yīng)用工作負載的第一次運行,接著使用詳細儀表檢測系統(tǒng)來執(zhí)行工作負載的第二次運行。在這樣的實施例中,輸入流可被捕捉用于以詳細方式進行的后續(xù)執(zhí)行。
[0045]分發(fā)器可標(biāo)識輸入流中的各個工作單元以發(fā)送到不同組件。工作單元可以是可以以相對獨立的方式執(zhí)行的任何計算工作負載對于每個程序或應(yīng)用,工作單元可以不同。
[0046]在一些應(yīng)用中,工作單元可以是可包括函數(shù)的輸入?yún)?shù)的函數(shù)調(diào)用。對于函數(shù)語言(諸如Erlang、Haskell、Scala、F#)或?qū)τ谝院瘮?shù)方式寫的非函數(shù)語言,應(yīng)用的各部分可能夠被獨立計算。在某些情況中,各工作單元可具有與其它工作單元的依賴性或其它交互。
[0047]工作單元可以是輸入項目或?qū)?yīng)用作出的請求。在應(yīng)用編程接口的示例中,對接口的調(diào)用可被看成一個工作單元,其可由應(yīng)用的實例來執(zhí)行。這樣的請求可以或者可以不依賴于其它請求,但是一般來說許多這樣的系統(tǒng)可具有可獨立于其它請求操作的請求。在某些情況中,可由兩個不同地儀表檢測的系統(tǒng)執(zhí)行的工作單元可返回不同結(jié)果。在一個簡單示例中,工作單元可基于一天里的確切時間來執(zhí)行函數(shù)。在這樣的示例中,在性能水平儀表檢測上執(zhí)行的工作單元將返回與在可能慢得多的高度儀表化的系統(tǒng)上執(zhí)行的同一工作單元不同的值。
[0048]當(dāng)執(zhí)行在兩個不同系統(tǒng)上的工作單元返回不同值時,算法可被應(yīng)用以確定返回值。在等待時間、響應(yīng)時間、或其它與性能相關(guān)的因素可能不利地影響結(jié)果的系統(tǒng)中,來自性能水平儀表化系統(tǒng)的結(jié)果可被使用而從高度儀表化系統(tǒng)收集的結(jié)果可被丟棄。在某些情況中,來自性能水平儀表化系統(tǒng)的結(jié)果可被丟棄,以支持來自高度儀表化系統(tǒng)的結(jié)果。在又一些情況中,可使用平均或其它概要來聚集來自一個工作的單元的兩次分開運行的應(yīng)用結(jié)果Ο
[0049]模糊跟蹤數(shù)據(jù)
[0050]跟蹤器可模糊從應(yīng)用收集的數(shù)據(jù)并將經(jīng)模糊的數(shù)據(jù)發(fā)送到分析引擎。分析引擎可在經(jīng)模糊的數(shù)據(jù)上執(zhí)行全部的分析,使得分析引擎可不接觸在跟蹤器控制的數(shù)據(jù)中包含的任何秘密的、私人的、或其他形式的敏感數(shù)據(jù)。
[0051]跟蹤器可在應(yīng)用的執(zhí)行期間收集數(shù)據(jù)。應(yīng)用可處理可能是敏感的數(shù)據(jù)。當(dāng)跟蹤器遭遇應(yīng)用數(shù)據(jù)時,這樣的數(shù)據(jù)可在分析前被模糊。經(jīng)模糊的數(shù)據(jù)可接著被分析以理解、分類、優(yōu)化、或執(zhí)行與該應(yīng)用相關(guān)的其它功能。在某些情況中,分析可生成可涉及可被模糊的特定數(shù)據(jù)元素的推薦或其它結(jié)果。在這樣的情況中,用于確定底層數(shù)據(jù)值的機制可通過逆模糊過程被提供。
[0052]模糊處理可包括散列函數(shù),其可以是有損的或無損的。在其它實施例中,模糊處理可以是加密處理,其可以是或者可以不是密碼上安全的。又一些實施例可采用維護在客戶端設(shè)備上的查找表,其將有意義的數(shù)據(jù)值轉(zhuǎn)換成用于分析的任意值。
[0053]多個值可被散列化或以其他方式被看成是跟蹤器輸出中的單個元素。例如,函數(shù)可用三個自變量來調(diào)用。在某些實施例中,這三個自變量可被組合成單個自變量并被散列化或以其他方式模糊成單個值。在其它實施例中,這三個自變量可各自被模糊并存儲為三個分開的值。
[0054]貫穿本說明書和權(quán)利要求書,術(shù)語“剖析器”、“跟蹤器”和“儀表檢測” (instrumentat1n) ”被可互換地使用。這些術(shù)語指代可在應(yīng)用被執(zhí)行時收集數(shù)據(jù)的任何機制。在經(jīng)典定義中,“檢測”可指代可向其插入可執(zhí)行代碼并藉此改變該可執(zhí)行代碼的存根(stub)、掛鉤(hook)或其他數(shù)據(jù)收集機制,而“剖析器”或“跟蹤器”可經(jīng)典地指代不可改變可執(zhí)行代碼的數(shù)據(jù)收集機制。使用這些術(shù)語及其派生詞中的任一者都可蘊含或暗示彼此。例如使用“跟蹤器”的數(shù)據(jù)收集可使用“跟蹤器”的經(jīng)典意義中的非接觸式數(shù)據(jù)收集以及用其中可執(zhí)行代碼可被改變的“儀表檢測”的經(jīng)典意義的數(shù)據(jù)收集來執(zhí)行。相似地,通過“儀表檢測”收集的數(shù)據(jù)可包括使用非接觸式數(shù)據(jù)收集機制的數(shù)據(jù)收集。
[0055]此外,通過“剖析”、“跟蹤”和“儀表檢測”收集的數(shù)據(jù)可包括可收集的任何類型的數(shù)據(jù),包括諸如處理時間、吞吐量、性能計數(shù)器之類的與性能相關(guān)的數(shù)據(jù)等等。收集到的數(shù)據(jù)可包括函數(shù)名稱、所傳遞的參數(shù)、存儲器對象名稱和內(nèi)容、所傳遞的消息、消息內(nèi)容、注冊表設(shè)置、注冊表內(nèi)容、差錯標(biāo)志、中斷或與正被跟蹤的應(yīng)用有關(guān)的任何其他參數(shù)或其他可收集的數(shù)據(jù)。
[0056]貫穿本說明書和權(quán)利要求書,術(shù)語“執(zhí)行環(huán)境”可用于指代用于執(zhí)行應(yīng)用的任何類型的支持軟件。執(zhí)行環(huán)境的一個示例是操作系統(tǒng)。在一些圖示中,“執(zhí)行環(huán)境”可被示為與操作系統(tǒng)分開。這可能是為了示出為應(yīng)用提供各支持函數(shù)的虛擬機,諸如過程虛擬機。在其他實施例中,虛擬機可以是可包括其自己的內(nèi)部操作系統(tǒng)并可模擬整個計算機系統(tǒng)的系統(tǒng)虛擬機。貫穿本說明書和權(quán)利要求書,術(shù)語“執(zhí)行環(huán)境”包括操作系統(tǒng)和可具有或可不具有可容易標(biāo)識的“虛擬機”或其他支持軟件的其他系統(tǒng)。
[0057]貫穿本說明書,在對附圖的整個描述中,相同的附圖標(biāo)記表示相同的元素。
[0058]當(dāng)元素被稱為