共享模塊環(huán)境中的因模塊而異的跟蹤的制作方法
【專利說明】共享模塊環(huán)境中的因模塊而異的跟蹤
[0001]相關申請的交叉引用
[0002]本專利申請要求于2013年9月4日提交的題為“Module Specific Tracing in aShared Module Environment (共享模塊環(huán)境中的因模塊而異的跟蹤)”的美國臨時專利申請序列號61/873,773、于2013年9月6 日提交的題為 “Tracing System for Applicat1nand Module Tracing(用于應用和模塊跟蹤的跟蹤系統(tǒng))”的美國臨時專利申請序列號61/874,929、以及于2013年9月6 日提交的題為 “Module Database with Tracing Opt1ns(帶跟蹤選項的模塊數(shù)據(jù)庫)”的美國臨時專利申請序列號61/873,773的優(yōu)先權和權益,全部申請均通過援引對其公開和教導的全部內容明確納入于此。
[0003]背景
[0004]應用跟蹤是一種理解和監(jiān)視應用的機制。跟蹤(tracing)是一種在應用執(zhí)行時收集數(shù)據(jù)的機制。在一些使用中,應用跟蹤可被用來監(jiān)視應用的持續(xù)執(zhí)行。在其它使用中,應用跟蹤可被開發(fā)者用來理解應用、標識任何問題、以及改善該應用。
[0005]在許多計算機語言和社區(qū)中,一些代碼可作為模塊、庫或某種其它可重用組件分發(fā)。這些模塊可作為源代碼、中間代碼、可執(zhí)行代碼、或某種其它形式被分發(fā),但是可均共享該模塊可在許多不同應用中由其它程序員重用的特征。
[0006]概述
[0007]—種因模塊而異的跟蹤機制可代表模塊開發(fā)者跟蹤模塊的使用。模塊可被多個應用開發(fā)者使用,且該跟蹤系統(tǒng)可收集并概述不同應用中的每個應用中的模塊的數(shù)據(jù)。該數(shù)據(jù)可包括使用數(shù)據(jù)以及性能數(shù)據(jù)。使用數(shù)據(jù)可包括每當該模塊可被調用和呼叫時的匿名化數(shù)據(jù),而性能數(shù)據(jù)可包括處理時間、存儲器消耗以及其它度量。因模塊而異的跟蹤可被應用開發(fā)者啟用和禁用。
[0008]跟蹤系統(tǒng)可跟蹤應用及其模塊,且可使得因模塊而異的數(shù)據(jù)通過各種界面可用。跟蹤系統(tǒng)可在應用執(zhí)行時收集跟蹤器數(shù)據(jù),且可將數(shù)據(jù)預處理到因應用而異的和因模塊而異的數(shù)據(jù)庫中。分析引擎可進一步分析和處理這些數(shù)據(jù)庫來創(chuàng)建對該數(shù)據(jù)的因應用而異的視圖和因模塊而異的視圖。因應用而異的視圖可旨在用于應用的開發(fā)者,而因模塊而異的視圖可具有所有人均可訪問的公開版本和可包含可對模塊開發(fā)者有用的附加細節(jié)的模塊開發(fā)者版本。
[0009]模塊性能的數(shù)據(jù)庫可通過向應用添加跟蹤組件、以及通過向模塊本身添加跟蹤組件來生成。模塊可以是可使得可用于跨多個應用重用的可重用代碼。當在應用級上執(zhí)行跟蹤時,從每個模塊收集的數(shù)據(jù)可被概述到因模塊而異的數(shù)據(jù)庫中。因模塊而異的數(shù)據(jù)庫可以是可幫助應用開發(fā)者選擇用于各任務的模塊的公開數(shù)據(jù)庫。因模塊而異的數(shù)據(jù)庫可包括使用和性能數(shù)據(jù),以及穩(wěn)定性和穩(wěn)健性度量、錯誤日志、以及類似模塊的分析。該數(shù)據(jù)庫可通過模塊描述頁面以及資源庫中的鏈接來訪問,以及通過網(wǎng)站或其它資源庫來訪問。
[0010]提供本概述以便以簡化的形式介紹以下在詳細描述中進一步描述的一些概念。本概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。
[0011]附圖簡述
[0012]在附圖中,
[0013]圖1是示出用于跟蹤應用和模塊的系統(tǒng)的實施例的圖示。
[0014]圖2是示出具有可收集和查看應用和模塊跟蹤數(shù)據(jù)的設備的網(wǎng)絡環(huán)境的實施例的圖示。
[0015]圖3是示出用于模塊跟蹤數(shù)據(jù)的輸出的用戶界面的示例實施例的圖示。
[0016]圖4是示出示例跟蹤覆蓋圖的實施例的圖示。
[0017]圖5是示出示例模塊拓撲圖的實施例的圖示。
[0018]圖6是示出用于創(chuàng)建應用的方法的實施例的流程圖示。
[0019]圖7是示出用于具有模塊跟蹤的應用執(zhí)行的方法的實施例的流程圖示。
[0020]圖8是示出用于具有應用跟蹤的應用執(zhí)行的方法的實施例的流程圖示。
[0021]圖9是示出用于預處理跟蹤器數(shù)據(jù)的方法的實施例的流程圖。
[0022]圖10是示出用于處理模塊跟蹤的方法的實施例的流程圖。
[0023]圖11是示出用于處理對模塊數(shù)據(jù)的請求的方法的實施例的流程圖。
[0024]詳細描述
[0025]因模塊而異的跟蹤系統(tǒng)
[0026]跟蹤系統(tǒng)可收集關于可被合并到多個應用的模塊的數(shù)據(jù)。所述模塊可以是可在開發(fā)者間分發(fā)的共享代碼集,且所述開發(fā)者可選擇要被合并到其應用中的各種模塊。
[0027]—些模塊可包含跟蹤機制,該跟蹤機制可跟蹤模塊的操作并存儲跟蹤器數(shù)據(jù)。跟蹤器數(shù)據(jù)可包括使用數(shù)據(jù),其可包括使用次數(shù)、使用時間戳、該模塊被使用的條件、以及其它使用數(shù)據(jù)。跟蹤器數(shù)據(jù)還可包括性能數(shù)據(jù),諸如執(zhí)行所花的時間量、計算資源量、存儲器資源、網(wǎng)絡資源、或在執(zhí)行期間消耗的其它資源。
[0028]因模塊而異的跟蹤系統(tǒng)可針對模塊開發(fā)者以及針對其它用戶鞏固原始數(shù)據(jù)。一些實施例可包括針對模塊開發(fā)者的數(shù)據(jù)的詳細視圖以及針對其它用戶的較不詳細的視圖。模塊開發(fā)者可使用跟蹤器數(shù)據(jù)來標識可能正不良地執(zhí)行或具有某種其它問題的模塊部分。其它用戶可檢查模塊跟蹤數(shù)據(jù)來確定該模塊的性能的大致概念并使用跟蹤數(shù)據(jù)作為比較和選擇一個模塊而不選擇另一個模塊的準則的一部分。
[0029]在一個使用場景中,模塊開發(fā)者可將跟蹤機制合并在模塊中。跟蹤機制可在模塊的界限內操作并僅跟蹤該模塊內的代碼。在許多情況中,跟蹤機制可能夠采集一些關于該模塊在其中執(zhí)行的環(huán)境的元數(shù)據(jù)。
[0030]跟蹤機制可在模塊在應用中執(zhí)行時采集跟蹤數(shù)據(jù)。跟蹤機制可將跟蹤數(shù)據(jù)傳送給數(shù)據(jù)庫以進行分析。在許多情況下,應用開發(fā)者可具有關閉跟蹤機制的選項或為跟蹤機制設置各種選項,盡管跟蹤機制可能已經(jīng)初始地被合并且由模塊開發(fā)者配置。
[0031]在該使用場景中,跟蹤機制可采集使用和性能數(shù)據(jù),模塊開發(fā)者可使用該數(shù)據(jù)來改善該模塊。這些跟蹤器數(shù)據(jù)可幫助模塊開發(fā)者理解該模塊的哪些部分比其它部分更頻繁地使用,這可以幫助模塊開發(fā)者排定優(yōu)先級,從而提升使用最多的部分。跟蹤器數(shù)據(jù)還可幫助標識比其它代碼更不可靠的代碼,且該數(shù)據(jù)可被用于生成對各個函數(shù)的穩(wěn)健性或脆弱性測量。
[0032]在另一使用場景中,應用開發(fā)者可訪問因模塊而異的數(shù)據(jù)來估計是否要在特定應用中使用該模塊。開發(fā)者可能已標識了可用于特定用途的若干模塊,并隨后可使用跟蹤器數(shù)據(jù)作為在各模塊間進行選擇的一個度量。應用開發(fā)者可通過查看性能和使用數(shù)據(jù)來調查模塊的可靠性和穩(wěn)健性。
[0033]用于應用和模塊跟蹤的跟蹤系統(tǒng)
[0034]跟蹤系統(tǒng)可使用類似但具有一些差異的技術和機制來提供針對應用和模塊的跟蹤。跟蹤系統(tǒng)可在應用執(zhí)行時采集跟蹤數(shù)據(jù),且該數(shù)據(jù)可與應用開發(fā)者、模塊開發(fā)者以及潛在模塊用戶的更廣泛受眾。在一些情況下,該更廣泛受眾可以是整個公眾。
[0035]這三種受眾中的每一個可對于跟蹤器數(shù)據(jù)具有不同用途和不同的安全顧慮。應用開發(fā)者可能將該應用視為商業(yè)秘密,且可能不希望某些跟蹤器信息在開發(fā)該應用的團隊之外共享。模塊開發(fā)者可能希望收集關于該模塊執(zhí)行得如何的數(shù)據(jù),但是可能不希望操作的某些細節(jié)被披露給一般公眾。整個公眾可包括可構造其自己的應用的開發(fā)者,且這些開發(fā)者可能希望查看因模塊而異的數(shù)據(jù)以確定該模塊是否適合其使用。
[0036]應用開發(fā)者可請求對其應用執(zhí)行跟蹤。這種跟蹤數(shù)據(jù)可包括可能是專有的跟蹤信息,諸如該應用所處理的數(shù)據(jù)元素的值、應用架構和功能、應用的源代碼、以及其它信息。因為應用開發(fā)者可能將此認為是秘密或專有的,所以這些信息可被處理并存儲在與被與模塊開發(fā)者和整個工作共享的數(shù)據(jù)分開的數(shù)據(jù)庫中。
[0037]針對每個模塊收集的數(shù)據(jù)可在該應用被執(zhí)行時收集。如此,因模塊而異的數(shù)據(jù)收集可以是可用數(shù)據(jù)的子集,因為因模塊而異的數(shù)據(jù)可與可能是應用開發(fā)團隊之外的另一方的模塊開發(fā)者共享。在一些情況下,模塊開發(fā)者可以是第三方,該第三方可創(chuàng)建并散布一模塊而不知道誰可能在其應用中使用該模塊。
[0038]因模塊而異的數(shù)據(jù)可作為執(zhí)行應用的一部分來收集,但是僅應用開發(fā)者可準許收集的那些數(shù)據(jù)子集可實際上被收集。在許多情況下,應用開發(fā)者可具有配置設置集合,其可啟用或禁用特定類型的數(shù)據(jù)被收集。在一些情況下,可完全不針對因模塊而異的跟蹤來收集某些數(shù)據(jù)元素。
[0039]在一些情況下,應用開發(fā)者可禁用或不安裝應用級跟蹤,但是可準許模塊開發(fā)者在模塊在該應用內執(zhí)行時收集跟蹤器數(shù)據(jù)。在這些情形中,應用可不帶跟蹤地執(zhí)行,但是當該模塊被執(zhí)行時,跟蹤可僅在該模塊內發(fā)生。這樣的因模塊而異的跟蹤可被處理并使得對模塊開發(fā)者(且在一些情況下對更廣泛受眾)可用。在這樣的情況下,因模塊而異的跟蹤可能比應用開發(fā)者已經(jīng)針對整個應用啟用跟蹤時在范圍上受限得多。
[0040]當應用開發(fā)者針對整個應用啟用跟蹤并且準許針對特定模塊的跟蹤時,應用開發(fā)者可能夠查看與每個模塊有關的完整數(shù)據(jù)集,其中該數(shù)據(jù)的子集按照因模塊而異的方式被傳送并處理。在這種情形下,應用開發(fā)者可以能夠訪問模塊開發(fā)者將能夠訪問的之外的特定模塊的數(shù)據(jù)的超集。
[0041 ]具有跟蹤選項的模塊數(shù)據(jù)庫
[0042]模塊數(shù)據(jù)庫可使用跟蹤數(shù)據(jù)來修飾對模塊的描述。模塊數(shù)據(jù)庫可列出可被合并到應用中的各模塊。修飾可包括性能和使用數(shù)據(jù),以及可能對于評估模塊并將模塊彼此比較有用的概述和其它數(shù)據(jù)。
[0043]模塊數(shù)據(jù)庫可通過分析在應用執(zhí)行模塊時采集的跟蹤器數(shù)據(jù)來被構造。跟蹤器可在執(zhí)行期間采集模塊的性能和使用數(shù)據(jù),且這些數(shù)據(jù)可被聚集、概述、并顯示給用戶供瀏ΙΙΛ-
見ο
[0044]跟蹤器數(shù)據(jù)可包括第三方對模塊的實際使用,以及該模塊被合并到各應用中的方式。應用開發(fā)者可選擇并使用一模塊但是可僅實施該模塊的功能的一子集。在許多情況下,模塊可具有許多不同功能、方法、對象或其它組件,而應用開發(fā)者可使用這些組件的一個小子集。
[0045]第三方使用可在該應用被最終用戶使用時采集。例如,應用可由在移動設備上運行的應用以及在數(shù)據(jù)中心中的服務器上執(zhí)行的后端組件一起構成。最終用戶可按許多不同方式實施該應用,一些方式可實施該模塊而一些方式可不實施該模塊。
[0046]使用數(shù)據(jù)可反映該模塊的各組件的流行度和有用度。當這些數(shù)據(jù)可被呈現(xiàn)給模塊開發(fā)者或其它應用開發(fā)者時,該數(shù)據(jù)可被布置成流行度得分或百分比。
[0047]使用數(shù)據(jù)可被隨時間跟蹤以確定哪些應用繼續(xù)使用該模塊而哪些模塊被包括以及從各應用移除。在許多情況下,應用開發(fā)者可選擇一模塊,在一短時間段內使用該模塊,隨后切換到另一模塊。在這種情形中,應用開發(fā)者可做出從一個模塊切換到另一模塊的有意識決定,從而指示該應用開發(fā)者對第二模塊而不是第一模塊的偏好。此偏好可能對可能正考慮使用第一模塊的另一應用開發(fā)者是有價值的。
[0048]針對模塊內的各函數(shù)或組件的性能數(shù)據(jù)可被用于開發(fā)每個函數(shù)的可靠性或穩(wěn)健性度量??煽啃曰蚍€(wěn)健性度量可以是一函數(shù)可能有多脆弱的指示器,且可能在選擇特定函數(shù)來合并到其應用中時對應用開發(fā)者有用??煽啃曰蚍€(wěn)健性度量可基于性能度量或其它因素。
[0049]模塊數(shù)據(jù)庫可包括該模塊的架構的圖形或其它指示器。在許多情況下,模塊可包括若干其它模塊,每個其它模塊可在應用執(zhí)行時被調用。這種復雜交互可能通過閱讀源代碼或從其它源并不顯而易見。該模塊的圖形表示可以給予應用開發(fā)者該模塊的復雜度和各種依賴關系的視覺指不。
[0050]模塊數(shù)據(jù)庫可累積或聚集關于模塊的依賴關系的各種度量來生成針對給定模塊的數(shù)據(jù)。模塊的各種使用