欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

測量web應用程序的實際最終用戶性能和可用性的制作方法

文檔序號:6429079閱讀:208來源:國知局
專利名稱:測量web應用程序的實際最終用戶性能和可用性的制作方法
技術領域
本發(fā)明涉及測量web應用程序的實際最終用戶性能和可用性。
背景技術
Web應用程序是通過諸如因特網(wǎng)之類的網(wǎng)絡訪問以在客戶機計算機系統(tǒng)處執(zhí)行的應用程序。Web應用程序可具有各種形式,這些形式是用瀏覽器支持的語言編碼的Java小程序(諸如JavaScript、并且與諸如HTML(超文本標記語言)之類的瀏覽器呈現(xiàn)的標記語言結合)、或具有其他形式。Web瀏覽器可被用來從應用服務器取回web應用程序,并且在客戶機計算機系統(tǒng)處通過呈現(xiàn)所取回的web應用程序代碼來執(zhí)行web應用程序。由于web瀏覽器的廣泛可用性,Web應用程序正變得越來越常見。此外,web應用程序是有利的,因為它們可在應用服務器處維護和更新而不是在許多客戶機計算機處單獨地進行維護和更新。存在許多類型的web應用程序,包括媒體播放器、web郵件、在線零售銷售、在線拍賣、維基(wiki)、以及許多其他類型。術語“Web 2.0”通常與便于交互信息共享、互操作性、用戶中心的設計和萬維網(wǎng)(World Wide Web)上的協(xié)作的web應用程序相關聯(lián)。與其中用戶被限于被動查看提供給他們的信息的網(wǎng)站相反,Web 2.0網(wǎng)站允許其用戶作為對網(wǎng)站內(nèi)容的貢獻者來彼此交互。隨著越來越多的組織開始開發(fā)利用Web 2. 0技術來創(chuàng)建更豐富和更復雜的交互的web應用程序,有效地監(jiān)視web應用程序性能和可用性的能力正變得越來越重要。確定 web應用程序性能的常規(guī)方法通常涉及以規(guī)律的間隔執(zhí)行web應用程序內(nèi)容(“綜合性事務”)的測試傳輸,或基于服務器側操作來捕捉度量。然而,綜合性事務和捕捉服務器側度量兩者都不指示客戶機計算機系統(tǒng)處最終用戶體驗的質(zhì)量。簡單地測量頁面是否被準確地傳遞給客戶機且在可接受的響應時間內(nèi)并不準確地指示web應用程序是否是可用的、并且從客戶機處的最終用戶的觀點來看是否執(zhí)行良好。諸如AJAX (異步JavaScript和XML (可擴展標記語言))、由美國加利福尼亞州圣何塞市的Adobe Systems開發(fā)的Adobe Flash 以及由美國華盛頓州雷蒙德市微軟公司開發(fā)的Microsoft Silverlight 之類的技術可使用客戶側處理來控制web應用程序的復雜交互。然而,不能直接在服務器處監(jiān)視這種客戶機側處理,因而使用常規(guī)方法不能確定這種客戶機側處理的性能。

發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡化形式介紹在以下的具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。此處提供了用于監(jiān)視web應用程序性能的方法、系統(tǒng)和計算機程序產(chǎn)品。Web應用程序能夠在客戶機計算機系統(tǒng)處監(jiān)視,并且所捕捉到的關于客戶機處的web應用程序的性能信息能夠被提供給服務器。所提供的性能信息使客戶機側web應用程序性能能夠從最終用戶的觀點來分析。
在一個實現(xiàn)中,在應用服務器處接收對web應用程序的請求。生成與所請求的 web應用程序相對應的客戶機應用程序代碼。截取所生成的客戶機應用程序代碼。工具植入(instrumentation)代碼被插入到所截取的客戶機應用程序代碼中以生成經(jīng)工具植入 (instrumented)的客戶機應用程序代碼。工具植入代碼被配置成當在客戶機處呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼時被執(zhí)行以捕捉客戶機處的性能信息,并且被配置成從客戶機傳送所捕捉的性能信息。在另一實現(xiàn)中,應用服務器包括響應流水線、應用程序掃描模塊和工具植入插裝模塊。響應流水線被配置成生成包括響應于來自客戶機的對web應用程序的請求來提供給客戶機的客戶機應用程序代碼的數(shù)據(jù)流。應用程序掃描模塊被配置成在響應流水線中截取客戶機應用程序代碼。工具植入插裝模塊被配置成將工具植入代碼插入到所截取的客戶機應用程序代碼中以生成經(jīng)工具植入的客戶機應用程序代碼。工具植入代碼被配置成當在客戶機處呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼時被執(zhí)行以捕捉客戶機處的性能信息,并且被配置成從客戶機傳送所捕捉的性能信息。響應流水線可被以各種方式配置成生成經(jīng)工具植入的客戶機應用程序代碼,包括使用響應過濾器、HTTP (超文本傳輸協(xié)議)模塊、剖析器、或其他技術。在又一個實現(xiàn)中,客戶機可將對web應用程序的請求傳送給服務器??蛻魴C可響應于該請求從服務器接收經(jīng)工具植入的客戶機應用程序代碼。經(jīng)工具植入的客戶機應用程序代碼被配置成實現(xiàn)web應用程序,并且包括被插入到服務器處的經(jīng)工具植入的客戶機應用程序代碼中的工具植入代碼。工具植入代碼被配置成當在客戶機處呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼時被執(zhí)行以捕捉客戶機處的性能信息,并且被配置成從客戶機傳送所捕捉的性能信息。在再一實現(xiàn)中,管理服務器可包括性能數(shù)據(jù)接收模塊。性能數(shù)據(jù)接收模塊被配置成從客戶機處的經(jīng)工具植入的客戶機應用程序代碼接收所捕捉的性能信息。此處還描述了用于在客戶機計算機系統(tǒng)處監(jiān)視web應用程序性能和用于如此處所述的其他實施例的計算機程序產(chǎn)品。以下參考各個附圖,詳細描述了本發(fā)明的其他特點和優(yōu)點,以及本發(fā)明的各種實施例的結構和操作。值得注意的是,本發(fā)明不限于此處描述的具體實施例。這些實施例只是出于說明性的目的而呈現(xiàn)?;诖颂幩脑恚郊訉嵤├龑ο嚓P領域技術人員是顯而易見的。


合并在此并作為說明書的一部分的附圖與說明書一起示出了本發(fā)明,進一步用于解釋本發(fā)明的原理且使相關領域的技術人員能夠?qū)崿F(xiàn)并使用本發(fā)明。圖1示出了根據(jù)一示例實施例的數(shù)據(jù)通信系統(tǒng)的框圖。圖2示出了根據(jù)一實施例的圖1的數(shù)據(jù)通信系統(tǒng)的示例的框圖。圖3示出了根據(jù)本發(fā)明的一示例實施例的用于提供經(jīng)工具植入的web應用程序的流程圖。圖4示出了根據(jù)一示例實施例的圖2的數(shù)據(jù)通信系統(tǒng),其中響應于web應用程序程序請求來生成經(jīng)工具植入的web應用程序。
圖5示出根據(jù)一示例實施例的管理服務器的框圖。圖6示出了根據(jù)一示例實施例的應用程序工具植入模塊的框圖。圖7-9示出了根據(jù)各實施例的響應流水線的示例的框圖。圖10示出了根據(jù)一示例實施例的圖2的數(shù)據(jù)通信系統(tǒng),其中在客戶機處接收對應于所請求的web應用程序的經(jīng)工具植入的客戶機應用程序代碼。圖11示出了根據(jù)一示例實施例的用于在客戶機處處理經(jīng)工具植入的web應用程序的流程圖。圖12示出了根據(jù)一示例實施例的經(jīng)工具植入的客戶機應用程序代碼的框圖。圖13示出了根據(jù)一示例實施例的用于在管理服務器處處理所捕捉的性能信息的流程圖。圖14示出了可用于實現(xiàn)本發(fā)明的各實施例的示例計算機的框圖。通過以下結合附圖對本發(fā)明進行的詳細描述,本發(fā)明的特點和優(yōu)點將變得更加顯而易見,在附圖中,類似的附圖標記在整個說明書中標識對應的元素。在附圖中,相同的附圖標記一般指示相同的、功能上類似的和/或在結構上類似的元素。元素首次出現(xiàn)的附圖由對應的附圖標記中最左邊的數(shù)字來指示。
具體實施例方式I.介紹本說明書公開了結合本發(fā)明的特征的一個或多個實施例。所公開的實施例僅僅舉例說明本發(fā)明。本發(fā)明的范圍不限于所公開的實施例。本發(fā)明由所附權利要求書來定義。說明書中提到的“一個實施例”、“一實施例”、“一示例實施例”等指示所描述的實施例可包括特定特征、結構或特性,但每個實施例并不一定包括該特定特征、結構或特性。 此外,這些短語也不一定指相同的實施例。此外,當結合一實施例描述特定特征、結構或特性時,應當理解在本領域的技術人員的知識范圍內(nèi)結合其他實施例來影響這些特征、結構或特性,無論是否被顯式地描述。II.各示例實施例各實施例提供了用于從客戶機或最終用戶的角度來監(jiān)視web應用程序性能的技術。與基于服務器側的常規(guī)技術相比,這些實施例實現(xiàn)改進的web應用程序監(jiān)視。此外,各實施例可在不同的網(wǎng)絡條件下且用不同的客戶機計算機配置來實現(xiàn)web應用程序監(jiān)視。因特網(wǎng)上的網(wǎng)絡速度和質(zhì)量的差異可減慢或中斷最終用戶的web應用程序功能。 此外,服務器、高速緩存器、和/或客戶機組件可組合以提供web應用程序服務器,并且每一個都可影響web應用程序性能的質(zhì)量。當各種各樣的設備和瀏覽器在客戶機處被用來呈現(xiàn) web應用程序內(nèi)容時,更多性能變量變得顯而易見。設備類型,瀏覽器類型,網(wǎng)絡配置,以及其他服務器側、網(wǎng)絡和客戶機側屬性是不斷變化的。常規(guī)的服務器側度量可被用來確定用于將內(nèi)容發(fā)送給客戶機的時間量,但是每一個不同的客戶機設備或瀏覽器可改變客戶機如何感知性能和可用性。因而,為了獲得web應用程序的性能和可用性的真實圖畫,各實施例使web應用程序性能能夠從實際最終用戶的角度來監(jiān)視。各實施例可以各種方式實現(xiàn)客戶機側web應用程序監(jiān)視。例如,在一實施例中,工具植入(instrumentation)代碼(例如,一個或多個腳本)可被應用服務器添加到web應用程序頁面。例如,響應于web應用程序請求而通常被傳遞給客戶機的web應用程序數(shù)據(jù)流可基于將工具植入代碼添加給流的預定策略來修改。當在客戶機上執(zhí)行工具植入代碼時,工具植入代碼收集度量和數(shù)據(jù)。例如,當在客戶機處,諸如在客戶機瀏覽器中呈現(xiàn)web 應用程序頁面時,工具植入代碼可被配置成收集和計算web應用程序頁面性能/可用性度量。在收集頁面性能/可用性度量之后,工具植入代碼可調(diào)用服務側端點并將所收集的信息提交給服務側端點。由此,各實施例使工具植入代碼能夠在應用程序開發(fā)時間期間或在運行時期間在 web頁面級添加,諸如在web應用程序相關的通信量經(jīng)過應用服務器處的響應流水線(例如,HTTP流水線)時通過自動將工具植入代碼注入web應用程序的頁面中來添加。各實施例提供了各種優(yōu)點。例如,各實施例可使操作管理器能夠具有監(jiān)視很大程度上依賴web技術的應用程序的能力,這些web技術包括諸如AJAX (異步JavaScript和 XML(可擴展標記語言))、Adobe Flash 和Microsoft Silverlight 之類的 Web 2. 0 技術。工具植入代碼可被配置成捕捉從客戶機角度來看的性能信息,諸如頁面可用性和這些web技術的響應時間之類,并且諸如通過web服務端點使該數(shù)據(jù)以各種方式對監(jiān)視系統(tǒng)可用。各示例實施例在以下子節(jié)中進一步詳細描述。A.用于提供經(jīng)工具植入(instrumented)的web應用程序的示例系統(tǒng)和方法在各實施例中,當客戶機計算機系統(tǒng)請求web應用程序并且經(jīng)工具植入的web應用程序被傳遞給客戶機計算機系統(tǒng)時,提供具有工具植入代碼的web應用程序。響應于客戶機請求,可以各種方式將經(jīng)工具植入的web應用程序提供給客戶機計算機系統(tǒng)。例如,圖 1示出了根據(jù)一示例實施例的數(shù)據(jù)通信系統(tǒng)100的框圖。如圖1所示,系統(tǒng)100包括客戶機 102、應用服務器104和網(wǎng)絡116。系統(tǒng)100描述如下以示出向客戶機傳遞web應用程序,包括經(jīng)工具植入的web應用程序??蛻魴C102可以是任何類型的計算設備,包括臺式計算機(例如,個人計算機)、移動計算機或計算設備(例如,Palm 設備、RIMBlackberry 設備、個人數(shù)字助理(PDA)、膝上型計算機、筆記本計算機等)、智能電話、或其他類型的計算設備。應用服務器104可包括一個或多個服務器,該服務器可以是此處描述的或以其他方式使web應用程序能夠提供的已知的任何類型的計算設備??蛻魴C102和應用服務器104通過網(wǎng)絡116來通信地耦合。 網(wǎng)絡116可包括一個或多個通信鏈路和/或通信網(wǎng)絡,諸如PAN(個域網(wǎng))、LAN(局域網(wǎng))、 WAN(廣域網(wǎng))、或網(wǎng)絡的組合,諸如因特網(wǎng)。分別將客戶機102和應用服務器104耦合到網(wǎng)絡116的第一和第二通信鏈路122和124可包括任何數(shù)目的通信鏈路,包括有線和/或無線鏈路,諸如IEEE 802. 11無線LAN(WLAN)無線鏈路、微波存取全球互通(Wi-WAX)鏈路、蜂窩網(wǎng)絡鏈路、無線個域網(wǎng)(PAN)鏈路(例如,Bluetooth 鏈路)、以太網(wǎng)鏈路、USB鏈路等。系統(tǒng)100被配置成使諸如客戶機102之類的客戶機計算機系統(tǒng)能夠從應用服務器104取回web應用程序。例如,如圖1所示,客戶機102包括瀏覽器106??蛻魴C102處的用戶可與瀏覽器106交互以使瀏覽器106請求在瀏覽器106中加載和執(zhí)行web應用程序。瀏覽器106可以是任何類型的web瀏覽器,諸如由美國華盛頓州雷蒙德市的微軟公司開發(fā)的Internet Explorer ,由美國加利福尼亞州芒廷維尤市的Mozilla公司開發(fā)的 Mozilla Firefox ,或由加利福尼亞州芒廷維尤市的谷歌公司開發(fā)的Google Chrome。
7
例如,瀏覽器106可生成web應用程序請求110。Web應用程序請求110是對在瀏覽器106中執(zhí)行web應用程序的請求。web應用程序請求110從客戶機102在第一通信信號中通過第一通信鏈路122、網(wǎng)絡116和第二通信鏈路124傳送給應用服務器104。可以任何形式傳送第一通信信號。應用服務器104接收第一通信信號中的web應用程序請求110。 響應于web應用程序請求110,應用服務器104提供web應用程序。此外,web應用程序可由應用服務器104 “工具植入”以使web應用程序被配置成監(jiān)視客戶機102處的一個或多個性能方面。Web應用程序可由應用服務器104通過將工具植入代碼插入到被配置成監(jiān)視一個或多個性能方面的web應用程序來工具植入。例如,如圖1所示,應用服務器104可包括響應流水線108。響應流水線108可響應于web應用程序請求110來生成經(jīng)工具植入的客戶機應用程序代碼112。在第二通信信號中從應用服務器104傳送經(jīng)工具植入的客戶機應用程序代碼112。第二通信信號通過第二通信鏈路124、網(wǎng)絡116和第一通信鏈路122來傳送,并由客戶機102接收。可以任何形式傳送第二通信信號??蛻魴C102處的瀏覽器106接收經(jīng)工具植入的客戶機應用程序代碼 112,并且可加載經(jīng)工具植入的客戶機應用程序代碼112以供執(zhí)行。經(jīng)工具植入的客戶機應用程序代碼112是可由客戶機102處的瀏覽器106執(zhí)行 (例如,呈現(xiàn))的web應用程序。例如,經(jīng)工具植入的客戶機應用程序代碼112可具有調(diào)用一個或多個應用程序文件的頁面(例如,使用HTML代碼來編碼)的形式。經(jīng)工具植入的客戶機應用程序代碼112可包括對根據(jù)諸如HTML、AJAX (異步JavaScript和XML (可擴展標記語言))代碼、Adobe Flash 文件(例如,ActionScript代碼)、Microsoft Silverlight 文件(例如,XAML(可擴展應用程序標記語言)代碼)、媒體文件等的一個或多個瀏覽器支持的計算機語言來編程的應用程序文件的引用。此外,經(jīng)工具植入的客戶機應用程序代碼 112包括被配置成監(jiān)視web應用程序的一個或多個方面的性能的工具植入代碼。這些工具植入代碼可根據(jù)諸如HTML、JavaScript、AJAX, XAML、任何Microsoft . NET框架支持的編程語言等的一種或多種瀏覽器支持的計算機語言來編程。系統(tǒng)100可被進一步以各種方式配置成提供經(jīng)工具植入的web應用程序。例如,圖 2示出了根據(jù)一示例實施例的數(shù)據(jù)通信系統(tǒng)200的框圖。數(shù)據(jù)通信系統(tǒng)200是圖1的系統(tǒng) 100的示例。如圖2所示,數(shù)據(jù)通信系統(tǒng)200包括客戶機102、應用服務器104、網(wǎng)絡116和管理服務器208,并且應用服務器104包括響應流水線202。響應流水線202是圖1的響應流水線108的示例。在圖2的示例實施例中,響應流水線202包括客戶機應用程序代碼生成器204和應用程序工具植入(instrumenting)模塊206。如上所述,應用服務器104被配置成提供從諸如客戶機102之類的客戶機通過網(wǎng)絡116接收的web應用程序請求110。響應流水線202的客戶機應用程序代碼生成器204被配置成響應于請求110來生成客戶機應用程序代碼,并且應用程序工具植入模塊206被配置成截取并工具植入所生成的客戶機應用程序代碼。應用服務器104被配置成將經(jīng)工具植入的客戶機應用程序代碼傳送給客戶機 102以在瀏覽器106中呈現(xiàn)??纱嬖诠芾矸掌?08以配置應用程序工具植入模塊206,和 /或接收由在瀏覽器106中運行的經(jīng)工具植入的客戶機應用程序代碼生成的性能數(shù)據(jù)。在替代實施例中,系統(tǒng)100可被以其他方式配置成提供經(jīng)工具植入的web應用程序。例如,在另一實施例中,圖2的系統(tǒng)200可包括位于客戶機102和應用服務器104之間的代理服務器。代理服務器可包括應用程序工具植入模塊206,因而可在代理服務器處執(zhí)行web應用程序的工具植入。代理服務器可接收由客戶機應用程序代碼生成器204生成并從應用服務器104傳送的客戶機應用程序代碼。代理服務器中的應用程序工具植入模塊206 可截取并工具植入所生成的客戶機應用程序代碼。代理服務器可將經(jīng)工具植入的客戶機應用程序代碼傳送給客戶機102以在瀏覽器106中呈現(xiàn)。在另一實施例中,客戶機102可包括應用程序工具植入模塊206,因而可在客戶機102中執(zhí)行web應用程序的工具植入??蛻魴C102可接收由客戶機應用程序代碼生成器204生成并從應用服務器104傳送的客戶機應用程序代碼??蛻魴C102中的應用程序工具植入模塊206可截取并工具植入所生成的客戶機應用程序代碼。可在瀏覽器106中呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼。在這些實施例中,諸如IT(信息技術)操作者之類的用戶可引入應用程序工具植入,即使用戶與應用服務器104并不關聯(lián)。盡管出于說明的目的此處參考圖1和2的配置描述了各實施例,各實施例可以這些和其他替換方式來配置,如相關領域的技術人員根據(jù)此處的教義應當理解的。以下參考圖3進一步描述系統(tǒng)200。圖3示出了根據(jù)一示例實施例的用于提供經(jīng)工具植入的web應用程序的流程圖300。在一實施例中,系統(tǒng)200可根據(jù)流程圖300來操作。基于關于流程圖300的討論,其他結構和操作實施例對于相關領域技術人員將是顯而易見的。流程圖300和系統(tǒng)200描述如下。流程圖300開始于步驟302。在步驟302,從客戶機接收對web應用程序的請求。 例如,如圖2所示且如上所述,應用服務器104從客戶機102接收web應用程序請求110。 Web應用程序請求110包括對web應用程序的請求。例如,客戶機102處的用戶可與瀏覽器 106交互以導航到對應于所請求的web應用程序的web頁面??蛻魴C102處的用戶可選擇鏈接、圖像、或web頁面上的其他對象,可選擇書簽,或可以其他方式與瀏覽器106交互從而生成用以請求web應用程序的web應用程序請求110。在步驟304,截取在響應流水線中生成的客戶機應用程序代碼。圖2的響應流水線 202可包括執(zhí)行關于滿足web應用程序請求110的對應過程的多個階段。在一實施例中,響應流水線202中的客戶機應用程序代碼生成器204可被配置成生成對應于在請求110中所請求的web應用程序的客戶機應用程序代碼。例如,客戶機應用程序代碼生成器204可生成對應于所生成web頁面的諸如HTML代碼之類的瀏覽器可兼容代碼,并且可生成web頁面以調(diào)用對應于所需web應用程序功能的一個或多個文件。例如,web頁面可調(diào)用與諸如媒體播放器、web郵件工具、在線零售銷售網(wǎng)站、在線拍賣、維基(wiki)等的web應用程序功能相對應的 AJAX 代碼、XAML 代碼、Adobe Flash 文件、Microsoft Silverlight 文件等??蛻魴C應用程序代碼生成器204可被配置成響應于來自高速暫存存儲器、來自與可請求的不同web應用程序相對應的客戶機應用程序代碼模板(例如,用C#編程語言或其他編程語言編碼)庫、和/或任何其他方式的web應用程序請求來生成客戶機應用程序代碼, 如相關領域技術人員已知的。由客戶機應用程序代碼生成器204生成的客戶機應用程序代碼在數(shù)據(jù)流中經(jīng)過響應流水線202。所生成的客戶機應用程序代碼(以HTML格式)的示例描述如下。該示例客戶機應用程序代碼被配置成為客戶機102處的用戶用來調(diào)用媒體播放器(Microsoft Silverlight ) web應用程序的web頁面??稍跒g覽器106中呈現(xiàn)web頁面??蛻魴C應用程序代碼的該示例出于說明的目的而提供,并不旨在限制,且可以許多替換方式來配置
<body>
〈form name="form 1" method="post" action="Default.aspx" id="forml">
//<![CDATA[
Sys. Application.initialize(); Sys.Application.add_init(function() {
$create(Sys.UI.Silverlight.MediaPlayer, {"autoPlay',:true,"mediaSource":http://www. webinfocentral.com/VIDEO/JJ20 08/WMV/JJ2008_lG0.wmv ...
});
//]]> </form>
</body>客戶機應用程序代碼的以上示例被配置成調(diào)用媒體播放器以播放文件“http:// www.webinfocentral.com/VIDE0/JJ2008/WMV/JJ2008_100.wmv”,該文件是示例 Microsoft Windows Media 視頻格式文件。如由客戶機應用程序代碼的示例中的“...,, 所指示,可任選地存在與調(diào)用媒體播放器相關的其他參數(shù)。盡管客戶機應用程序代碼的該示例調(diào)用單個應用程序,但是所生成的客戶機應用程序代碼可調(diào)用多個應用程序。圖4示出了圖2的系統(tǒng)200,其中客戶機應用程序代碼生成器204生成對應于在請求110中所請求的web應用程序的客戶機應用程序代碼406。在一實施例中,應用程序工具植入模塊206可被配置成基于掃描策略來截取客戶機應用程序代碼406。在一實施例中,管理服務器208可根據(jù)掃描策略配置指示402來配置應用程序工具植入模塊404的掃描策略。例如,圖5示出了根據(jù)一示例實施例的管理服務器208的框圖。如圖5所示,管理服務器208包括掃描策略配置模塊502、監(jiān)視策略配置模塊504和性能數(shù)據(jù)接收模塊506。 在一實施例中,掃描策略配置模塊502可生成用于配置由應用程序工具植入模塊404使用的掃描策略的掃描策略配置指示402。例如,圖6示出了根據(jù)一示例實施例的應用程序工具植入模塊404的框圖。如圖6所示,應用程序工具植入模塊404包括應用程序掃描模塊 602和工具植入插裝模塊604。應用程序掃描模塊602接收掃描策略配置指示402,并且被配置成根據(jù)掃描策略配置指示402來掃描經(jīng)過響應流水線202的web應用程序(例如,客戶機應用程序代碼406)以確定是否工具植入客戶機應用程序代碼。例如,管理服務器208處的用戶(例如,操作管理員或系統(tǒng)管理員)可與用戶接口(例如,圖形用戶接口(GUI)、鍵盤、定點設備等)交互以輸入由應用服務器104提供的web應用程序的掃描策略。例如,可允許用戶以任何方式指定特定web應用程序(例如,功能或文件),包括通過要工具植入的文件擴展或類型(例如,Adobe Flash 文件、 Microsoft Silverlight 文件、其他媒體文件類型、.wmv (例如,視頻文件)擴展、.mp3擴展(例如,音頻文件)等)。指定的web應用程序可在掃描策略配置指示402時指示,掃描策略配置指示402被傳送給應用程序掃描模塊602。當應用程序工具植入模塊206接收客戶機應用程序代碼406時,應用程序掃描模塊602可根據(jù)由掃描策略配置指示402指示的掃描策略來掃描客戶機應用程序代碼406以確定是否要工具植入客戶機應用程序代碼406。例如,掃描策略配置指示402可配置應用程序掃描模塊602以截取調(diào)用 Microsoft Silverlight 以供工具植入的web應用程序。在這個實施例的示例中,應用程序掃描模塊602可被配置成對接收到的客戶機應用程序代碼掃描單詞“Silverlight”, 和/或可被以其他方式配置成檢測Microsoft Silverlight web應用程序功能。參考以上所示的示例客戶機應用程序代碼(其調(diào)用Microsoft Silverlight 作為媒體播放器), 如果該示例客戶機應用程序代碼由應用程序工具植入模塊206接收,則應用程序掃描模塊 602可在客戶機應用程序代碼中檢測單詞“Silverlight”,且因此截取客戶機應用程序代碼以供工具植入。如果應用程序掃描模塊602確定在掃描期間接收到的客戶機應用程序代碼不包括根據(jù)所配置的掃描策略來觸發(fā)工具植入的內(nèi)容,則允許接收到的客戶機應用程序代碼繼續(xù)在響應流水線202中處理以提供給客戶機102而不進行工具植入。在步驟306,工具植入代碼被插入到客戶機應用程序代碼中以生成經(jīng)工具植入的客戶機應用程序代碼。在一實施例中,如果應用程序掃描模塊602截取在流經(jīng)響應流水線 202的響應數(shù)據(jù)流中的客戶機應用程序代碼(步驟304)并確定要工具植入所截取的客戶機應用代碼,則工具植入插裝模塊604被配置成將工具植入代碼插入到所截取的客戶機應用程序代碼中,以生成經(jīng)工具植入的響應數(shù)據(jù)流。在一實施例中,工具植入插裝模塊604可被配置成分析所截取的客戶機應用程序代碼以確定要監(jiān)視的客戶機應用程序代碼的一個或多個功能。工具植入插裝模塊604可將所插入的工具植入代碼配置成監(jiān)視想要監(jiān)視的客戶機應用程序代碼的一個或多個功能。所插入的工具植入代碼被配置成監(jiān)視與所截取的客戶機應用程序代碼相關的性能方面。如圖4所示,應用程序工具植入模塊206可生成經(jīng)工具植入的客戶機應用程序代碼112,該經(jīng)工具植入的客戶機應用程序代碼是接收到的客戶機應用程序代碼406的經(jīng)工具植入版本。參考以上描述的所生成的客戶機應用程序代碼的示例,可插入工具植入代碼以監(jiān)視示例客戶機應用程序代碼的性能方面。例如,可被插入到以上描述的所生成的客戶機應用程序代碼的示例中的工具植入代碼的示例在下文中示出(為了易于說明至少部分地作為偽碼來提供)。〈script type="text/javascript">
Function makeCall (operationName ,counterName) {
"偽碼
call _webService (operationName ,counterName) // 例如 operationName =
StartPerfCounter 且 counterName= "Page Load" }
</script>該示例工具植入代碼是被配置成在通過調(diào)用具有“operationName”和 "counterName"參數(shù)的“makeCall”功能來調(diào)入時提供時間或性能計數(shù)器值的javascript 腳本。該腳本可被用于各種目的,諸如確定使用客戶機應用程序代碼的以上示例中的 Microsoft Silverlight 媒體播放器來播放所引用的媒體文件所花費的時間量。當被調(diào)用時,該腳本對遠程管理服務器(例如,管理服務器208)進行調(diào)入(“jebService”),從而提供“operationNameWoimterName”和性能計數(shù)器值。可在管理服務器處使用該性能信息以確定何時出現(xiàn)對應的功能。該工具植入代碼可被插入到所生成的客戶機應用程序代碼中,并且所生成的客戶機應用程序代碼可進一步由工具植入插裝模塊604修改以在瀏覽器調(diào)用客戶機應用程序代碼時的各個時間調(diào)用所插入的工具植入代碼。例如,包括以上所示的示例工具植入代碼的以上所示的示例客戶機應用程序代碼的示例工具植入形式在以下示出。經(jīng)工具植入的客戶機應用程序代碼的該示例出于說明的目的而提供,并不旨在限制,且可以各種替換方式來配置
〈header〉
〈script type="text/j avascript">
Function makeCall (operationName ,counterName) {
"偽碼
12call _webService (operationName ,counterName) // 例如 operationName =
StartPerfCounter 且 counterName= "Page Load" }
</script> </header>
<body>
〈script type="text/javascript">makeCall("StartPerfCounter", "Page Load")</script>
<form name="form 1" method="post" action="Default.aspx" id="forml"> //<![CDATA[
Sys.Application.initialize(); Sys.Application.add_init(function() {
$create(Sys.UI.Silverlight.MediaPlayer, {"autoPlay^true,''mediaSource'':http://www. webinfocentral.com/YIDEO/JJ20 08/WMV/JJ2008_100.wmv....{"mediaEndedM:OnClientMediaEnded,"mediaO
pened":OnClientMediaOpened} .... });
//]]>
</form>
〈scripttype="text/javascript">makeCall("EndPerfCounter","Page
Load")</script>
</body>如上所示,先前描述的javascript腳本被插入到示例客戶機應用程序代碼的標題部分中。此外,在四個代碼位置處修改示例客戶機應用程序代碼以使標題腳本在四個位置中的每一個位置處被調(diào)用。例如,示例客戶機應用程序代碼被配置成在由示例客戶機應用程序代碼所表示的頁面開始加載時調(diào)用標題部分,如所插入的代碼〈script type = " text/javascript “ >m akeCallC StartPerfCounter “,〃 Page Load")所指示的。接著,使媒體播放器在打開媒體文件(“.wmv”文件)時調(diào)用標題腳本,如由所插入的代碼“mediaOpened” =OnClientMediaOpened所指示的。接著,使媒體播放器在關閉媒體文件時調(diào)用標題腳本,如由所插入的代碼“mediaEnded” OnClientMediaEnded所指示的。此外,使媒體播放器在由示例客戶機應用程序代碼所表示的頁面完成加載時調(diào)用標題腳本,如由所插入的代碼〈script type =” text/javascript” >makeCal1(" EndPerfCounter” , ” Page Load” ) </script) 所指示的。以此方式,在該示例中,標題腳本可被用于針對由示例客戶機應用程序代碼所表示的頁面捕捉指示開始和結束加載時間以及加載持續(xù)時間(通過從結束加載時間或計數(shù)器值中減去開始加載時間或計算器值)的性能信息。此外,標題腳本可被用于針對媒體文件(“.wmv”文件)捕捉指示開始和結束媒體播放時間以及播放持續(xù)時間(通過從結束播放時間或計數(shù)器值中減去開始播放時間或計數(shù)器值)的性能信息。由此,工具植入插裝模塊604可被配置成將工具植入代碼插入到一個或多個位置中的所截取的客戶機應用程序代碼中以使一個或多個腳本/代碼部分能在經(jīng)工具植入的 web應用程序被呈現(xiàn)在瀏覽器中時調(diào)用。與經(jīng)工具植入的web應用程序相關的任何一個或多個性能方面可由任何數(shù)目的所插入的工具植入代碼部分來監(jiān)視。例如,可監(jiān)視網(wǎng)絡相關的方面,包括確定開始和結束加載時間以及用于加載經(jīng)工具植入的web應用程序的持續(xù)時間。可監(jiān)視瀏覽器相關的方面,包括媒體文件播放開始和結束時間以及用于播放所引用的媒體文件的持續(xù)時間等。此外,工具植入代碼可被配置成收集關于客戶機計算機系統(tǒng)和/ 或瀏覽器的信息,包括客戶機處的瀏覽器的類型、瀏覽器的版本、客戶機計算機類型、客戶機計算機位置、客戶機計算機語言、客戶機計算機操作系統(tǒng)類型/版本等。在一實施例中,應用程序工具植入模塊206可被配置成基于監(jiān)視策略來工具植入客戶機應用程序代碼406。在一實施例中,管理服務器208可根據(jù)監(jiān)視策略配置指示404 來配置應用程序工具植入模塊404的監(jiān)視策略。例如,如圖5和6所示,工具植入插裝模塊 604可被配置成根據(jù)由監(jiān)視策略配置模塊504生成的監(jiān)視策略配置指示404來修改所截取的客戶機應用程序代碼406。例如,管理服務器208處的用戶(例如,操作管理員或系統(tǒng)管理員)可與用戶接口 (例如,圖形用戶接口(GUI)、鍵盤、定點設備等)交互以輸入對所截取的web應用程序的監(jiān)視策略。例如,可允許用戶以任何方式指定要施加至特定web應用程序(例如,功能或文件) 的特定工具植入代碼,包括通過要工具植入的文件擴展或類型(例如,Adobe Flash 文件、Microsoft Silverlight 文件、其他媒體文件類型、.wmv (Windows Media 視頻) 擴展、.mp3擴展等)??稍诒O(jiān)視策略配置指示404中指示所指定的監(jiān)視策略,該指定的監(jiān)視策略被傳送給工具植入插裝模塊604。當應用程序工具植入模塊206接收所截取的客戶機應用程序代碼406時,工具植入插裝模塊602可根據(jù)通過監(jiān)視策略配置指示404提供的監(jiān)視策略來修改所截取的客戶機應用程序代碼406。在步驟308,提供經(jīng)工具植入的客戶機應用程序代碼以傳送給客戶機。例如,如圖 4所示,可將響應流水線202中生成的經(jīng)工具植入的客戶機應用程序代碼112從應用服務器 104傳送給客戶機102。在一實施例中,應用服務器104可包括諸如本文別處所述的用于通過通信鏈路傳送包括客戶機應用程序代碼112的信息的網(wǎng)絡接口。響應流水線202可輸出經(jīng)工具植入的客戶機應用程序代碼112以提供給網(wǎng)絡接口來傳送給客戶機102。B.示例響應流水線實施例
響應流水線202可被以各種方式配置成響應于web應用程序請求來生成經(jīng)工具植入的web應用程序。例如,在一實施例中,響應流水線202可以是WCF (Windows通信基礎) 流水線或被配置成處理web應用程序請求的HTTP (超文本傳輸協(xié)議)流水線,并且被修改以能夠工具植入web應用程序。圖7-9示出了根據(jù)各實施例的響應流水線202的示例的框圖,該響應流水線202被配置成響應于web應用程序請求來生成經(jīng)工具植入的web應用程序。圖7-9描述如下。圖7示出了根據(jù)一示例實施例的HTTP流水線702的框圖。HTTP流水線702是響應流水線202的示例,并且被配置成當客戶機應用程序代碼經(jīng)過HTTP流水線702時將工具植入代碼插入到客戶機應用程序代碼中。例如,參考圖4,應用服務器104可用作web服務器,并且web應用程序請求110可以是從瀏覽器106到web服務器的對ASP. NET頁面的請求。ASP. NET是由美國華盛頓州雷蒙德市的微軟公司開發(fā)的web應用程序框架。在這個示例中,應用服務器104的ASP. NET引擎可調(diào)用生成客戶機應用程序代碼406作為標記頁面的HTTP流水線的多個階段,該客戶機應用程序代碼406被返回給瀏覽器106以呈現(xiàn)以供顯示。在圖7的實施例中,HTTP流水線702被配置成生成客戶機應用程序代碼406作為標記頁面,并且將工具植入代碼插入到標記頁面中以生成經(jīng)工具植入的客戶機應用程序代碼 112。如圖7所示,HTTP流水線702包括多個階段和響應過濾器706,這些階段包括第一至第η個階段704a-704n。階段704a-704n各自可被配置成執(zhí)行針對生成客戶機應用程序代碼406的對應功能,諸如認證(例如,用于安全通信的認證瀏覽器106)、授權(確認對請求110的訪問)、生成對應于所請求的web應用程序的客戶機應用程序代碼406等。例如, 在一實施例中,客戶機應用程序代碼生成器204可以是第一至第η個階段704a-704n中的一個,諸如階段704a。此外,應用程序工具植入模塊206 (例如,圖6中的應用程序掃描模塊 602和工具植入插裝模塊604)可被包括在響應過濾器706中,該響應過濾器706是HTTP過響應過濾器706被配置成截取客戶機應用程序代碼406 (例如,圖3的步驟304), 并且將工具植入代碼插入到客戶機應用程序代碼406中以生成經(jīng)工具植入的客戶機應用程序代碼112(例如,圖3的步驟306)。在一實施例中,響應過濾器706的應用程序掃描模塊602可由開發(fā)者配置。開發(fā)者可生成包括在應用程序掃描模塊602中的自定義用戶控件。 自定義用戶控件被配置成檢測開發(fā)者想將工具植入代碼插入到其中的客戶機應用程序代碼頁面的特定類型。例如,自定義用戶控件可被配置成搜索預定準則,諸如特定文件類型、 文件擴展、和/或其他屬性,以檢測要工具植入的客戶機應用程序代碼頁面。每次客戶機應用程序代碼406經(jīng)過HTTP流水線702時,應用程序掃描模塊602掃描客戶機應用程序代碼 406。如果自定義用戶控件確定接收到的客戶機應用程序代碼406包括一個或多個預定準則,則應用程序掃描模塊602指示通過工具植入插裝模塊604來工具植入的客戶機應用程序代碼406??杀豁憫^濾器706的應用程序掃描模塊602使用的示例自定義用戶控件在下文
中示出。public partial class ScriptWebUserControll : System.Web.UI.UserControl {
protected void Page_Load(object sender, EventArgs e)
{ }
protected override void OnInit(EventArgs e) {
this.Page.Response.Filter = new PerfFilter(Response.Filter); base.Onlnit(e);
}
}如上所示,該自定義用戶控件調(diào)用PerfFilter (Response. Filter)函數(shù),該函數(shù)被配置成在客戶機應用程序代碼406中掃描指示客戶機應用程序代碼要工具植入的一個或多個特定屬性。該示例自定義用戶控件出于說明的目的而提供,并不旨在限制。自定義用戶控件可以任意數(shù)目的方式來配置,如相關領域技術人員根據(jù)此處的教義應當理解的。此外,修改代碼的示例在下文中示出,該修改代碼可被包括在響應過濾器706的工具植入插裝模塊604中,從而如果由以上所示的示例自定義用戶控件指示用于工具植入則修改客戶機應用程序代碼406以插入工具植入代碼。
public class PerfFilter MemoryStream {
private Stream originalStream;
public override void Write(byte[] buffer, int offset, int count) {
//基于配置策略將響應注入到流中
originalStream.Write(UTF8Encoding.UTF8.GetBytes(contentInBuffer), offset,
UTF 8Encoding.UTF 8 .GetByteCount(contentlnBuffer)); }
} 如上所示,該修改代碼調(diào)用可被配置成將工具植入代碼插入到客戶機應用程序代碼406中的originalStream. Write函數(shù)。該修改代碼可由示例自定義用戶控件的開發(fā)者生成以按需修改客戶機應用程序代碼406。該示例修改代碼出于說明的目的而提供,并不旨在限制。修改代碼可以任意數(shù)目的方式來配置,如相關領域技術人員根據(jù)此處的原理應當理解的。圖8示出了根據(jù)另一示例實施例的HTTP流水線802的框圖。HTTP流水線802是響應流水線202的示例,并且被配置成當客戶機應用程序代碼經(jīng)過HTTP流水線802時將工具植入代碼插入到客戶機應用程序代碼中。在圖8的實施例中,HTTP模塊被用于以與圖7 類似的方法而不是使用自定義用戶控件將工具植入代碼插入到客戶機應用程序代碼中,經(jīng)工具植入的代碼將基于配置聲明插入。由此,在圖8的實施例中,當客戶機應用程序代碼經(jīng)過HTTP流水線802時,工具植入代碼可被插入到所有客戶機應用程序代碼中,而不是將工具植入代碼插入到滿足預定過濾準則的客戶機應用程序代碼中。如圖8所示,HTTP流水線802包括第一至第nHTTP模塊804a_804n和HTTP處理器806。HTTP模塊和HTTP處理器被包括在諸如ASP. NET體系結構之類的體系結構中。每一個web應用程序請求可由多個HTTP模塊(例如,認證模塊、會話模塊等)處理且隨后由 HTTP處理器處理。在HTTP處理器已處理web應用程序請求之后,web應用程序請求通過 HTTP模塊流回。因而,可在HTTP處理器執(zhí)行之前和之后調(diào)用HTTP模塊。HTTP模塊可被開發(fā)者配置成使開發(fā)者能夠截取、參與、或修改每一個單獨的web應用程序請求。在一實施例中,應用程序工具植入模塊206 (例如,圖6中的應用程序掃描模塊602 和工具植入插裝模塊604)可被包括在HTTP模塊804中,諸如第η個HTTP模塊804η。例如,HTTP模塊804η可被配置成截取客戶機應用程序代碼406 (例如,圖3的步驟304),并且將工具植入代碼插入到客戶機應用程序代碼406中以生成經(jīng)工具植入的客戶機應用程序代碼112 (例如,圖3的步驟306)。例如,HTTP模塊804η可被配置成實現(xiàn)IHttpModule接口,該接口位于System. Web命名空間中。Microsoft . NET框架的IHttpModule接口向?qū)崿F(xiàn)類提供HTTP模塊初始化和處理事件。〈httpModules〉配置部分處理器在web應用程序內(nèi)配置HTTP模塊,并且可在計算機、站點、或應用程序級處聲明。為了注入工具植入代碼,HTTP模塊804η可使用 IHttpModule界面來生成。IHttpModule界面有具有以下簽名的兩種方法。void Init(HttpApplication);void DisposeO ;在這個實施例中,應用程序掃描模塊602可被配置成截取客戶機應用程序代碼 112的所有實例,并且工具植入插裝模塊604可被配置成插入對應的工具植入代碼。例如, 在用于所有web應用程序請求110的HTTP模塊804a初始化之后,可以在上文中參考圖7 的HTTP流水線702 (例如,由響應過濾器706修改)描述的類似方式修改客戶機應用程序代碼 406。在初始化實現(xiàn)中,可預訂事件 BeforeProcessRequest 禾口 AfterProcessRequest, 并且可修改客戶機應用程序代碼406以生成經(jīng)工具植入的客戶機應用程序代碼112以傳送給客戶機102。圖9示出了根據(jù)另一示例實施例的響應流水線902的框圖。響應流水線902是響應流水線202的一個示例,并且被配置成當客戶機應用程序代碼經(jīng)過響應流水線902時將工具植入代碼插入到客戶機應用程序代碼中。如圖9所示,響應流水線902包括剖析器 904。在圖9的實施例中,剖析器904被用于掃描客戶機應用程序代碼,并且將工具植入代碼插入到滿足掃描策略的客戶機應用程序代碼中。由此,在一實施例中,剖析器904可包括應用程序工具植入模塊206 (例如,圖6中的應用程序掃描模塊602和工具植入插裝模塊 604)。剖析器904可被配置成截取客戶機應用程序代碼406 (例如,圖3的步驟304),并且將工具植入代碼插入到客戶機應用程序代碼406中以生成經(jīng)工具植入的客戶機應用程序代碼112 (例如,圖3的步驟306)。例如,剖析器904可實現(xiàn)CRL(公共語言運行時)剖析器技術,諸如Microsoft Visual SUldio Intellitrace技術,以修改響應處理器(例如,使用ProcessRequest框架實現(xiàn))。該技術可在web應用程序級或頁面級應用,而不使用自定義用戶控件。相反,可使用一個或多個配置文件來描述關于要插入到客戶機應用程序代碼中的工具植入代碼的掃描策略。由此,在各實施例中,web應用程序可由響應流水線202以各種方式來工具植入, 包括掃描到特定web應用程序頁面來工具植入、工具植入所有web應用程序頁面、或工具植入滿足特定簡檔的web應用程序頁面。例如,如上所述,響應流水線202可使用HTTP過濾器(響應過濾器706),該HTTP過濾器工具植入特定web應用程序頁面(例如,包括自定義用戶控件的頁面)、工具植入所有所請求的web應用程序的HTTP模塊(例如,HTTP模塊 804η)、或諸如Microsoft Visual Studio Intellitrace之類的剖析器技術。在其他實施例中,響應流水線202可被以其他方式配置成工具植入所請求的web應用程序,諸如被配置為將工具植入代碼插入到所請求的web應用程序的WCF流水線、或被配置為用于其他類型的響應流水線和/或以其他方式配置。C.經(jīng)工具植入的web應用程序和與管理服務器交互的示例客戶機側呈現(xiàn)在各實施例中,web應用程序可被包括工具植入代碼的客戶機請求并由其接收??蓤?zhí)行工具植入代碼以監(jiān)視客戶機處的web應用程序的性能方面。圖10示出了根據(jù)一示例實施例的圖2的系統(tǒng)200,并示出了具有與在請求110中所請求的web應用程序相對應的接收到的經(jīng)工具植入的客戶機應用程序代碼112的客戶機102。圖10的系統(tǒng)200參考圖11 進一步描述如下,圖11示出了根據(jù)一示例實施例的用于顯示客戶機處的經(jīng)工具植入的web 應用程序的流程圖1100。在一實施例中,系統(tǒng)200可根據(jù)流程圖1100來操作?;陉P于流程圖1100的討論,其他結構和操作實施例對于相關領域技術人員將是顯而易見的。流程圖 1100和系統(tǒng)200描述如下。流程圖1100開始于步驟1102。在步驟1102中,將請求傳送給web應用程序的服務器。例如,如以上參考圖4所述,瀏覽器106可生成傳送給應用服務器104的web應用程序請求110。在步驟1104,響應于該請求,從服務器接收經(jīng)工具植入的客戶機應用程序代碼,經(jīng)工具植入的客戶機應用程序代碼包括被插入到服務器處的經(jīng)工具植入的客戶機應用程序代碼的工具植入代碼。例如,如以上參考圖4所述,響應于web應用程序請求110,從應用服務器104接收經(jīng)工具植入的客戶機應用程序代碼112。經(jīng)工具植入的客戶機應用程序代碼 112包括曾在應用服務器104處插入的工具植入代碼。在步驟1106,呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼。例如,如圖10所示,客戶機 102處的瀏覽器106可加載經(jīng)工具植入的客戶機應用程序代碼112以供呈現(xiàn)。瀏覽器106 可以如相關領域技術人員已知的方式呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼112。通過呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼112,在瀏覽器116中執(zhí)行所請求的web應用程序。例如,取決于經(jīng)工具植入的客戶機應用程序代碼112的特定配置,可在瀏覽器106中呈現(xiàn)媒體播放器、web郵件工具、在線零售銷售站點、在線拍賣、維基、和/或其他類型的web應用程序。在步驟1108,執(zhí)行步驟1106期間的工具植入代碼以捕捉性能信息。例如,除了被呈現(xiàn)的經(jīng)工具植入的客戶機應用程序代碼112的web應用程序之外,執(zhí)行在應用服務器114 處被插入到經(jīng)工具植入的客戶機應用程序代碼112的工具植入代碼。由此,可捕捉被配置成由工具植入代碼捕捉的性能信息。例如,圖12示出了根據(jù)一示例實施例的經(jīng)工具植入的客戶機應用程序代碼112的框圖。除了包括web應用程序功能之外,經(jīng)工具植入的客戶機應用程序代碼112可包括性能信息捕捉模塊1202、數(shù)據(jù)聚集模塊1204和服務器接口模塊1206。經(jīng)工具植入的客戶機應用程序代碼112的這些元件描述如下。性能信息捕捉模塊1202被配置成根據(jù)步驟1108來捕捉性能信息。與web應用程序和客戶機102相關聯(lián)的任何類型的性能信息可由性能信息捕捉模塊1202捕捉??刹蹲降年P于web應用程序的性能信息的示例包括web應用程序呈現(xiàn)時間和/或持續(xù)時間、web應用程序加載時間、web應用程序錯誤、和/或任何其他度量??刹蹲脚c應用程序的健康相關聯(lián)的性能信息,包括捕捉指示web應用程序的一個或多個動作是否是響應性的數(shù)據(jù)、和/或捕捉指示在應用程序的執(zhí)行期間的一個或多個錯誤和/或故障的錯誤信息??刹蹲降呐c客戶機102相關聯(lián)的性能信息的示例包括捕捉指示瀏覽器106的類型和/或版本的數(shù)據(jù)、捕捉指示客戶機的場所的數(shù)據(jù)、捕捉指示客戶機處的語言的數(shù)據(jù)、捕捉指示客戶機102處實現(xiàn)的操作系統(tǒng)的類型的數(shù)據(jù)等。例如,可由性能信息捕捉模塊1202計算的作為所捕捉性能信息的度量的一些示例包括在Microsoft Si lverl ight web應用程序示例中,計算使用Sys. Application. init()初始化的Microsoft Silverlight 框架的度量;在基于 AJAX 的 web應用程序示例中,計算AJAX腳本排隊加載時間的度量、和/或使用Sys. Application. notifyScriptLoaded 0來計算AJAX腳本加載時間的度量;使用其事件計算Sys. Application加載/卸載的度量;計算Sys. Component初始化的度量;以及計算Sys. Component. $create的度量。在另一示例中,性能信息捕捉模塊1202可捕捉由Error, create 為腳本創(chuàng)建的諸如 Sys. SCriptLoadFaiIedException 之類的 Sys. Exception 例夕卜。性能信息的這些示例出于說明的目的而提供,并不旨在限制。在各實施例中,性能信息捕捉模塊1202可被配置成捕捉與web應用程序、瀏覽器106、和/或客戶機102相關聯(lián)的任何類型的性能信息。如圖12所示,性能信息捕捉模塊1202生成所捕捉的性能信息1208。在步驟1110,聚集所捕捉的性能信息。步驟1110是可任選的。當存在時,圖12的數(shù)據(jù)聚集模塊1204可被配置成聚集所捕捉的性能信息。例如,瀏覽器106可多次(例如, 多次執(zhí)行步驟1106)加載并呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼112,并且每次經(jīng)工具植入的客戶機應用程序代碼112被加載并呈現(xiàn)時,對應的性能信息可由性能信息捕捉模塊 1202捕捉。在一實施例中,可存在數(shù)據(jù)聚集模塊1204以收集并聚集在每次呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼112期間所捕捉的性能信息??梢愿鞣N方式執(zhí)行由數(shù)據(jù)聚集模塊1204對所捕捉的性能信息的聚集。例如,在一實施例中,數(shù)據(jù)聚集模塊1204可通過將所捕捉的性能信息存儲在表、數(shù)組、或其他數(shù)據(jù)結構中來聚集所捕捉的性能信息。在另一實施例中,數(shù)據(jù)聚集模塊1204可通過對所捕捉的性能信息執(zhí)行操作來聚集所捕捉的性能信息,諸如對所捕捉的性能信息求和和/或?qū)λ蹲降男阅苄畔?zhí)行其他算術運算。在再一實施例中,數(shù)據(jù)聚集模塊1204可通過對所捕捉的性能信息執(zhí)行比較、對所捕捉的性能信息分類、和/或執(zhí)行用于組織所捕捉的性能信息的其他技術來聚集所捕捉的性能信息。如圖12所示,數(shù)據(jù)聚集模塊1204生成所聚集的性能信息 1210。在步驟1112,將所捕捉的性能信息傳送給服務器。例如,在一實施例中,經(jīng)工具植入的客戶機應用程序代碼112的服務器接口模塊1206被配置成將所捕捉的性能信息傳送給服務器。例如,如圖10所示,服務器接口模塊1206可被配置成將所捕捉的性能信息1002 傳送給管理服務器208。管理服務器208可以是與應用服務器104分開的服務器,或者可以是相同的服務器。管理服務器208可以是客戶機102本地的服務器(例如,“企業(yè)”服務器),或者可以是由客戶機102通過網(wǎng)絡116訪問的服務器(例如,“基于云的”服務器)。 客戶機102可包括用于通過通信鏈路傳送包括所捕捉的性能信息1002的信息的網(wǎng)絡接口, 諸如本文別處所述。如圖12所示,服務器接口模塊1206可接收所捕捉的性能信息1208和/或所聚集的性能信息1210(當存在時)。在每次呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼112期間,服務器接口模塊1206可被配置成將所捕捉的性能信息1208傳送給管理服務器208作為所捕捉的性能信息1002。在另一實施例中,服務器接口模塊1206可被配置成周期性地或非周期性地將所聚集的性能信息1002傳送給管理服務器208作為所捕捉的性能信息1002。例如, 在由瀏覽器106預定數(shù)目次地呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼112之后,服務器接口模塊1206可被配置成以預定時間間隔(例如,每天預定數(shù)目的次數(shù)、每天特定次數(shù)、在特定時間每天一次、每五天一次、每一個月一次等)或以其他方式將所聚集的性能信息1210 傳送給管理服務器208。D.示例管理服務器實施例在各實施例中,按照特定實現(xiàn)的需要,管理服務器208可被配置成以任何方式處理從經(jīng)工具植入的客戶機應用程序代碼112接收的所捕捉的性能信息1002。圖13示出了根據(jù)一示例實施例的用于在管理服務器處處理所捕捉的性能信息的流程圖1300。在一實施例中,管理服務器208可根據(jù)流程圖1300來操作?;陉P于流程圖1300的討論,其他結構和操作實施例對于相關領域技術人員將是顯而易見的。流程圖1300描述如下。流程圖1300開始于步驟1302。在步驟1302,從客戶機處的經(jīng)工具植入的客戶機應用程序代碼接收所捕捉的性能信息。例如,如圖10所示,由在瀏覽器106中運行的經(jīng)工具植入的客戶機應用程序代碼112生成的所捕捉的性能信息1002可由管理服務器208從客戶機102接收。例如,如圖5所示,管理服務器208可包括被配置成接收所捕捉的性能信息1002的性能數(shù)據(jù)接收模塊506。如以下進一步描述的,性能數(shù)據(jù)接收模塊506可包括用于接收所捕捉的性能信息1002的一個或多個接口。如上所述,所捕捉的性能信息1002可以或者可以不包括所聚集的性能信息。在步驟1304,處理接收到的所捕捉的性能信息。在各實施例中,按照特定實現(xiàn)的需要,管理服務器208可以任何方式處理所捕捉的性能信息1002。如果不聚集所捕捉的性能信息1002,管理服務器208可以與如上所述的用于數(shù)據(jù)聚集模塊1204的類似的方式和/
20或以任何其他方式聚集所捕捉的性能信息1002。例如,在所聚集的數(shù)據(jù)被呈現(xiàn)給諸如系統(tǒng)中心操作管理器(SCOM)管理組之類的一個或多個用戶之前,管理服務器208可生成在一段時間內(nèi)針對web應用程序請求的運行計數(shù)器的報告,諸如平均響應時間之類。通過提供所捕捉的性能信息1002,允許用戶確定web應用程序是否對客戶機計算機可用、用于提供web 應用程序的響應時間、以及從客戶機計算機處的最終用戶的觀點來看web應用程序執(zhí)行得如何好。管理服務器208的性能數(shù)據(jù)接收模塊506可包括用于從客戶機接收所捕捉的性能信息1002的一個或多個接口。例如,在以上所述的一些示例中,可從客戶機應用代碼調(diào)用 "makeCall (operationName, counterName),,功能以將時間或性能計數(shù)器值提供給管理服務器208??墒褂貌煌膐perationName和counterName參數(shù)以不同的方式來調(diào)用makeCall 功能,該makeCall功能可由性能數(shù)據(jù)接收模塊506的對應接口來處理。例如,可由性能數(shù)據(jù)接收模塊506實現(xiàn)以接收所捕捉的性能信息的示例界面代碼示出如下public interface ITxAxctualMonitoring { [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle 二 WebMessageBodyStyle. Wrapped)]
public int StartPerfCounter(Guid objectld, Guid instanceld, string counterName, int counterValue);
public int EndPerfCounter(Guid objectld, Guid instanceld, string counterName, int counterValue); [WebInvoke(ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle. Wrapped)]
public int mediaOpened (Guid objectld, Guid instanceld, string counterName, int counterValue);
public int mediaEnded (Guid objectld, Guid instanceld,
string counterName, int counterValue);
[OperationContract]
public int ReportException(Guid objectld, ExceptionData exception);
}以上示例接口代碼使用不同的operationName和counterName參數(shù)來提供與 makeCall函數(shù)的四個可能調(diào)用相對應的四個接口,并且包括對應于例外功能的附加接口。 客戶機102處的經(jīng)工具植入的客戶機應用程序代碼112可使用“StartPerfCounter”和 "Page Load”作為operationName和counterName參數(shù)來調(diào)用makeCall函數(shù)。在這種情況下,性能計算器值可從對應于開始web應用程序頁面加載的經(jīng)工具植入的客戶機應用程序代碼112接收?!皁bjecteld”和“instanceld”參數(shù)還可從經(jīng)工具植入的客戶機應用程序代碼112接收以向管理服務器208標識客戶機102。類似地,客戶機102處的經(jīng)工具植入的客戶機應用程序代碼112可使用 "EndPerfCounter"禾口 ‘‘Page Load,,作為 operationName 禾口 counterName 參數(shù)來調(diào)用 makeCall功能。在這種情況下,性能計算器值可從對應于結束web應用程序頁面加載的經(jīng)工具植入的客戶機應用程序代碼112接收??蛻魴C102處的經(jīng)工具植入的客戶機應用程序代碼 112 可使用"mediaOpened,,和"OnClientMediaOpened,,作為 operationName 和counterName參數(shù)來調(diào)用makeCall函數(shù)。在這種情況下,性能計算器值可從對應于開始.wmv媒體文件加載的經(jīng)工具植入的客戶機應用程序代碼112接收。客戶機102處的經(jīng)工具植入的客戶機應用程序代碼112可使用“mediaEnded,,和“OnClientMediaEnded,,作為 operationName和counterName參數(shù)來調(diào)用makeCall函數(shù)。在這種情況下,性能計算器值可從對應于結束.wmv媒體文件加載的經(jīng)工具植入的客戶機應用程序代碼112接收。以上所示的附加示例接口代碼使經(jīng)工具植入的客戶機應用程序代碼112能夠在客戶機102處加載或呈現(xiàn)接收到的web應用程序存在故障(例如,呈現(xiàn).wmv文件的故障等)時提供例外信肩、ο接口代碼的該示例出于說明的目的而提供,并不旨在限制。性能數(shù)據(jù)接收模塊506 的接口代碼可以任意數(shù)目的方式來配置,如相關領域技術人員根據(jù)此處的教義應當理解的。這個接口代碼可被配置成從經(jīng)工具植入的客戶機應用程序代碼112接收具有任意數(shù)目參數(shù)的任何類型和數(shù)量的所捕捉的性能信息。E.示例益處各實施例可提供一個或多個益處,如此處所述。這些益處的示例描述如下。開發(fā)者參與和協(xié)調(diào)Web 2. O應用程序本質(zhì)上包括web應用程序本身內(nèi)或來自其他源的動態(tài)內(nèi)容,因為web應用程序組合來自其他源的數(shù)據(jù)和內(nèi)容以創(chuàng)建信息的復雜混搭。在其中開發(fā)者不得不注入特定工具植入(因為開發(fā)者是知道web應用程序內(nèi)容的那個人)的方法中,每次web應用程序內(nèi)容改變時,開發(fā)者可不得不改變工具植入代碼和/或管理服務器,其可以不是不可行的。在一實施例中,使用試探法,可確定用于web應用程序的適當類型的工具植入,并且web應用程序在其通過響應流水線可相應地修改。這種試探法可確定什么類型的內(nèi)容和函數(shù)需要測量并注入對應的工具植入代碼而無需開發(fā)者介入。規(guī)模最后一英里或最終用戶監(jiān)視通常是其中收集所有用戶數(shù)據(jù)的捕捉全部努力,其使信息規(guī)模處理從服務器負荷和分析的觀點來看都是很難的。其他解決方案也可以捕捉原始形式的數(shù)據(jù),這也增加服務器負荷并需要聚集水平變得有意義。在各實施例中, 因為可控制監(jiān)視什么和何時監(jiān)視的配置,所以信息的智能采樣可被用來獲取各種各樣的數(shù)據(jù),以供性能和可用性監(jiān)視、同時減小服務器負荷并使復雜分析的需要最小化。例如,可執(zhí)行與來自一種類別的客戶機(例如,特定版本的Mozilla Firefox 瀏覽器)的一組采樣代表性客戶機相關聯(lián)的所捕捉的數(shù)據(jù)(例如,以免淹沒管理系統(tǒng))。聚集可在客戶機上執(zhí)行以使傳送給管理服務器的性能數(shù)據(jù)已經(jīng)聚集并準備好被消費。在一實施例中,web服務還可在使其對監(jiān)視/報告系統(tǒng)可用之前執(zhí)行附加聚集。與客戶機配置相關期望執(zhí)行對來自最終用戶體驗的數(shù)據(jù)的分析以使該數(shù)據(jù)按照設備類型、客戶機版本、位置、內(nèi)容等來群集。該信息在應用服務器上可用,但不必在管理服務器上是可用的。由此,解決方案通常涉及組合來自多個源的數(shù)據(jù)以使其有意義。監(jiān)視數(shù)據(jù)可提供性能和可用性度量,但可能需要訪問IIS日志以獲得客戶機瀏覽器類型和客戶機位置。由此,需要復雜的相關以產(chǎn)生可操作的數(shù)據(jù)。在各實施例中,所插入的工具植入代碼可包括捕捉關于客戶機瀏覽器、客戶機場所、和/或客戶機語言的數(shù)據(jù),該數(shù)據(jù)可與所捕捉的性能信息一起被遞送到管理服務器。由此,執(zhí)行群集數(shù)據(jù)組變得更容易。通過將所有所捕捉的數(shù)據(jù)提供給單個位置,可更快地執(zhí)行分析,并且可縮減性能和可用性的問題。動態(tài)補救:Web 2. O應用程序允許開發(fā)者通過設計適于由客戶機使用的設備或瀏覽器的內(nèi)容來個性化傳遞給客戶機的內(nèi)容。開發(fā)者還可基于網(wǎng)絡連接來調(diào)節(jié)內(nèi)容以考慮客戶機訪問更慢的連接上的數(shù)據(jù)。這通常用關于如何顯示內(nèi)容的硬編碼規(guī)則來實現(xiàn)并且涉及開發(fā)者添加適當?shù)墓ぞ咧踩胍詫崿F(xiàn)這一點。在各實施例中,通過添加適當?shù)墓ぞ咧踩氪a來確定在客戶機實際執(zhí)行web應用程序時的性能信息,可控制應用程序隨后如何基于這些值來執(zhí)行或請求新的內(nèi)容。例如,在當前執(zhí)行內(nèi)容的性能被確定為低時,可自動地插入工具植入代碼以停止加載內(nèi)容。此外,可插入工具植入代碼以改變在瀏覽器處查看的內(nèi)容,諸如在查看頁面上視頻的性能被認為是慢時使低保真廣告顯示。以此方式,后續(xù)請求不會繼續(xù)降低性能和可用性。III.示例計算設備實施例瀏覽器106、響應流水線108、響應流水線202、客戶機應用程序代碼生成器204、應用程序工具植入模塊206、掃描策略配置模塊502、監(jiān)視策略配置模塊504、性能數(shù)據(jù)接收模塊506、應用程序掃描模塊602、工具植入插裝模塊604、HTTP流水線702、第一至第η階段 704a-704n、響應過濾器706、HTTP流水線802、第一至第nHTTP模塊804a_804n、HTTP處理器806、響應流水線902和剖析器904可用硬件、軟件、固件、或其任何組合來實現(xiàn)。例如,瀏覽器106、響應流水線108、響應流水線202、客戶機應用程序代碼生成器204、應用程序工具植入模塊206、掃描策略配置模塊502、監(jiān)視策略配置模塊504、性能數(shù)據(jù)接收模塊506、應用程序掃描模塊602、工具植入插裝模塊604、HTTP流水線702、第一至第η階段704a-704n、 響應過濾器706、HTTP流水線802、第一至第nHTTP模塊804a_804n、HTTP處理器806、響應流水線902、和/或剖析器904可被實現(xiàn)為被配置在一個或多個處理器中執(zhí)行的計算機程序
24代碼。替換地,瀏覽器106、響應流水線108、響應流水線202、客戶機應用程序代碼生成器 204、應用程序工具植入模塊206、掃描策略配置模塊502、監(jiān)視策略配置模塊504、性能數(shù)據(jù)接收模塊506、應用程序掃描模塊602、工具植入插裝模塊604、HTTP流水線702、第一至第η 階段704a-704n、響應過濾器706、HTTP流水線802、第一至第nHTTP模塊804a_804n、HTTP 處理器806、響應流水線902,和/或剖析器904可被實現(xiàn)為硬件邏輯/電子電路。圖14描繪了其中可實現(xiàn)本發(fā)明的各實施例的計算機1400的示例實現(xiàn)。例如,客戶機102、應用服務器104、和/或管理服務器208各自可類似于計算機1400地實現(xiàn),包括計算機1400的一個或多個特征和/或替換的特征。計算機1400可以是以例如,常規(guī)個人計算機、移動計算機、或工作站的形式的通用計算設備,或者計算機1400可以是特殊用途的計算設備。此處提供的計算機1400的描述出于說明的目的而提供,并不旨在限制。本發(fā)明的各實施例也可在其它類型的計算機系統(tǒng)中實現(xiàn),如相關領域技術人員已知的。如圖14所示的,計算機1400包括處理單元1402、系統(tǒng)存儲器1404和將包括系統(tǒng)存儲器1404的各種系統(tǒng)組件耦合到處理單元1402的總線1406??偩€1406表示若干類型的總線結構中的任何一種的一個或多個,包括存儲器總線或存儲器控制器、外圍總線、 加速圖形端口,以及使用各種總線體系結構中的任何一種的處理器或局部總線。系統(tǒng)存儲器1404包括只讀存儲器(ROM) 1408和隨機存取存儲器(RAM) 1410?;据斎?輸出系統(tǒng) 1412 (BIOS)被存儲在 ROM 1408 中。計算機1400還具有一個或多個以下驅(qū)動器用于讀寫硬盤的硬盤驅(qū)動器1414、用于讀或?qū)懣梢苿哟疟P1418的磁盤驅(qū)動器1416、以及用于讀或?qū)懼T如⑶R0M、DVD ROM或其他光介質(zhì)之類的可移動光盤1422的光盤驅(qū)動器1420。硬盤驅(qū)動器1414、磁盤驅(qū)動器1416 和光盤驅(qū)動器1420分別通過硬盤驅(qū)動器接口 1424、磁盤驅(qū)動器接口 1426和光學驅(qū)動器接口 1428連接到總線1406。驅(qū)動器以及它們相關聯(lián)的計算機可讀介質(zhì)為計算機提供了計算機可讀指令、數(shù)據(jù)結構、程序模塊和其他數(shù)據(jù)的非易失存儲器。盡管描述了硬盤、可移動磁盤和可移動光盤,但是也可使用諸如閃存卡、數(shù)字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等的其他類型的計算機可讀介質(zhì)來存儲數(shù)據(jù)。多個程序模塊可被存儲在硬盤、磁盤、光盤、ROM、或RAM上。這些程序包括操作系統(tǒng)1430、一個或多個應用程序1432、其他程序模塊1434、以及程序數(shù)據(jù)1436。應用程序1432 或程序模塊1434可包括,例如,用于實現(xiàn)瀏覽器106、響應流水線108、響應流水線202、客戶機應用程序代碼生成器204、應用程序工具植入模塊206、掃描策略配置模塊502、監(jiān)視策略配置模塊504、性能數(shù)據(jù)接收模塊506、應用程序掃描模塊602、工具植入插裝模塊604、HTTP 流水線702、第一至第η階段704a-704n、響應過濾器706、HTTP流水線802、第一至第nHTTP 模塊804a-804n、HTTP處理器806、響應流水線902、剖析器904、流程圖300、流程圖1100、 和/或流程圖1300 (包括流程圖300、1100和1300的任何步驟)的計算機程序邏輯。用戶可通過諸如鍵盤1438和定點設備1440之類的輸入設備將命令和信息輸入到計算機1400中。其他輸入設備(未示出)可包括話筒、游戲桿、游戲手柄、圓盤式衛(wèi)星天線、 掃描儀等。這些及其他輸入設備通常通過耦合到總線1406的串行端口接口 1442連接到處理單元1402,但是也可通過諸如并行端口、游戲端口、或通用串行總線(USB)之類的其他接口來連接。顯示設備1444也通過諸如視頻適配器1446之類的接口連接到總線1406。除了監(jiān)視器之外,計算機1400可包括諸如揚聲器和打印機之類的其他外圍輸出設備(未示出)。計算機1400通過適配器或網(wǎng)絡接口 1450、調(diào)制解調(diào)器1452、或用于通過網(wǎng)絡建立通信的其他裝置連接到網(wǎng)絡1448 (例如,因特網(wǎng))。調(diào)制解調(diào)器1452 (可以是內(nèi)置的或外置的)通過串行端口接口 1442連接到總線1406。如此處所用的,術語“計算機程序介質(zhì),,和“計算機可讀介質(zhì),,被用來泛指諸如與硬盤驅(qū)動器1414相關聯(lián)的硬盤、可移動磁盤1418、可移動光盤1422,以及諸如閃存卡、數(shù)字視頻盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)等的其他介質(zhì)之類的介質(zhì)。如上所述,計算機程序和模塊(包括應用程序1432和其它程序模塊1434)可被存儲在硬盤、磁盤、光盤、ROM、或RAM上。這些計算機程序也可通過網(wǎng)絡接口 1450或串行端口接口 1442來接收。這些計算機程序在由應用程序執(zhí)行或加載時使計算機1400能夠?qū)崿F(xiàn)此處討論的本發(fā)明的各實施例的特征。因此,這些計算機程序表示計算機1400的控制器。本發(fā)明還涉及包括存儲在任何計算機可使用介質(zhì)上的軟件的計算機程序產(chǎn)品。這些軟件,當在一個或多個數(shù)據(jù)處理設備中執(zhí)行時,使數(shù)據(jù)處理設備如此處所述的那樣操作。 本發(fā)明的各實施例采用現(xiàn)在或?qū)硪阎娜魏斡嬎銠C可使用或計算機可讀介質(zhì)。計算機可讀介質(zhì)的示例包括,但不限于,諸如RAM、硬盤驅(qū)動器、軟盤、⑶ROM、DVD ROM、zip磁盤、磁帶、磁存儲設備、光存儲設備、MEM (存儲器)、基于納米技術的存儲設備等的存儲設備。VI.結論盡管上文描述了本發(fā)明的各種實施例,但是應該理解,它們只是作為示例來呈現(xiàn)的,而不作為限制。相關領域的技術人員將理解,在不偏離如所附權利要求書所定義的本發(fā)明的精神和范圍的情況下,可以在形式和細節(jié)方面進行各種修改。因此,本發(fā)明的寬度和范圍不應該受到上述示例性實施例中的任何一個的限制,而只應根據(jù)以下權利要求和它們的等效內(nèi)容來定義。
權利要求
1.一種在一個或多個服務器中的方法,包括在響應流水線中截取(304)客戶機應用程序代碼,所述客戶機應用程序代碼響應于來自客戶機的對web應用程序的請求生成;將工具植入代碼插入(306)到所截取的客戶機應用程序代碼中以生成經(jīng)工具植入的客戶機應用程序代碼,所述工具植入代碼被配置成當在所述客戶機處呈現(xiàn)所述經(jīng)工具植入的客戶機應用程序代碼時執(zhí)行以捕捉所述客戶機處的性能信息,并且被配置成從所述客戶機傳送所捕捉的性能信息;以及提供(308)經(jīng)工具植入的客戶機應用程序代碼以傳送給所述客戶機。
2.如權利要求1所述的方法,其特征在于,所述截取包括在所述響應流水線的響應過濾器處接收所述客戶機應用程序代碼,以及在所述響應過濾器處確定所述客戶機應用程序代碼滿足用于接收工具植入代碼的預定準則;以及其中所述插入包括使用所述響應過濾器將所述工具植入代碼插入到所述客戶機應用程序代碼中。
3.如權利要求1所述的方法,其特征在于,使用所述響應流水線中的多個HTTP(超文本傳輸協(xié)議)模塊和HTTP處理器來處理對所述web應用程序的請求,其中所述截取包括在所述多個HTTP模塊中的HTTP模塊處接收所述客戶機應用程序代碼;以及其中所述插入包括使用所述HTTP模塊將所述工具植入代碼插入到所述客戶機應用程序代碼中。
4.如權利要求1所述的方法,其特征在于,所述截取包括在所述響應流水線的剖析器處接收所述客戶機應用程序代碼,以及在所述剖析器處確定所述客戶機應用程序代碼滿足用于接收工具植入代碼的預定準則;以及其中所述插入包括使用所述剖析器將所述工具植入代碼插入到所述客戶機應用程序代碼中。
5.如權利要求1所述的方法,其特征在于,所述插入包括 修改所述客戶機應用程序代碼的頁面代碼。
6.如權利要求1所述的方法,其特征在于,還包括分析所述客戶機應用程序代碼以確定要監(jiān)視的所述客戶機應用程序代碼的一個或多個屬性;以及配置所述工具植入代碼以監(jiān)視所述客戶機應用程序代碼的所述一個或多個屬性。
7.如權利要求6所述的方法,其特征在于,還包括配置所述工具植入代碼以捕捉關于所述客戶機處的瀏覽器類型、所述客戶機的場所、 或客戶機語言中的至少一個的數(shù)據(jù)。
8.如權利要求1所述的方法,其特征在于,還包括從所述客戶機接收由所述經(jīng)工具植入的客戶機應用程序代碼捕捉的性能信息。
9.一種計算機程序產(chǎn)品,包括其上記錄有計算機程序邏輯的計算機可讀介質(zhì),包括 用于使處理器能夠執(zhí)行權利要求1-8中的任何一項的計算機程序邏輯裝置(1434)。
10.一種服務器,包括被配置成生成數(shù)據(jù)流從而響應于來自客戶機(102)的對web應用程序的請求(110)將客戶機應用程序代碼(406)提供給所述客戶機(102)的響應流水線(202);被配置成響應于所述響應流水線(202)來截取所述客戶機應用程序代碼(406)的應用程序掃描模塊(602);以及被配置成將工具植入代碼插入到所截取的客戶機應用程序代碼(604)中以生成經(jīng)工具植入的客戶機應用程序代碼(112)的工具植入插裝模塊(604),所述工具植入代碼被配置成當在所述客戶機(102)處呈現(xiàn)所述經(jīng)工具植入的客戶機應用程序代碼(112)時被執(zhí)行以捕捉所述客戶機(102)處的性能信息,并且被配置成從所述客戶機(102)傳送所捕捉的性能信息;所述響應流水線(202)被配置成提供所述經(jīng)工具植入的客戶機應用程序代碼(112)以傳送給所述客戶機(102)。
11.如權利要求10所述的服務器,其特征在于,所述應用程序掃描模塊和所述工具植入插裝模塊被包括在響應過濾器中,所述應用程序掃描模塊被配置成確定所述客戶機應用程序代碼是否滿足用于接收工具植入代碼的預定準則,并且所述工具植入插裝模塊被配置成如果所述客戶機應用程序代碼滿足所述預定準則則將所述工具植入代碼插入到所述客戶機應用程序代碼中。
12.如權利要求10所述的服務器,其特征在于,使用所述響應流水線中的多個HTTP(超文本傳輸協(xié)議)模塊和HTTP處理器來處理對web應用程序的所述請求,所述應用程序掃描模塊和所述工具植入插裝模塊被包括在所述多個HTTP模塊中的HTTP模塊中,并且所述工具植入插裝模塊被配置成將所述工具植入代碼插入到所述客戶機應用程序代碼中。
13.如權利要求10所述的服務器,其特征在于,所述應用程序掃描模塊和所述工具植入插裝模塊被包括在剖析器中。
14.如權利要求10所述的服務器,其特征在于,所述工具植入插裝模塊被配置成修改所述客戶機應用程序代碼的頁面代碼。
15.如權利要求10所述的服務器,其特征在于,還包括被配置成從所述經(jīng)工具植入的客戶機應用程序代碼接收所捕捉的性能信息的性能數(shù)據(jù)接收模塊;所述性能數(shù)據(jù)接收模塊被配置成采樣從一類客戶機接收的所捕捉性能信息以生成與一組客戶機相關聯(lián)的數(shù)據(jù)集,并分析與所述一組客戶機相關聯(lián)的所述數(shù)據(jù)集。
全文摘要
提供了用于監(jiān)視web應用程序性能的技術。在應用服務器處接收對web應用程序的請求。應用服務器處的響應流水線生成對應于所請求的web應用程序的客戶機應用程序代碼。在響應流水線中截取客戶機應用程序代碼。工具植入代碼被插入到所截取的客戶機應用程序代碼中以生成經(jīng)工具植入的客戶機應用程序代碼。工具植入代碼被配置成當在客戶機處呈現(xiàn)經(jīng)工具植入的客戶機應用程序代碼時執(zhí)行以捕捉客戶機處的性能信息,并且被配置成從客戶機傳送所捕捉的性能信息。
文檔編號G06F11/36GK102306120SQ201110206369
公開日2012年1月4日 申請日期2011年7月14日 優(yōu)先權日2010年7月21日
發(fā)明者A·科埃略, A·薩格維, D·薩維奇, I·萊特卡, J·S·林, R·蘇達卡爾, V·S·K·庫拉帕蒂 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
土默特右旗| 格尔木市| 大港区| 南城县| 阿拉善盟| 通江县| 大同县| 鞍山市| 万全县| 兴海县| 灵台县| 雷州市| 宁陵县| 洪泽县| 乃东县| 石渠县| 观塘区| 丹凤县| 渭源县| 舒兰市| 玉田县| 台山市| 贺兰县| 彭泽县| 台州市| 红原县| 昭觉县| 达日县| 定结县| 千阳县| 普定县| 邓州市| 黄石市| 正蓝旗| 尚义县| 那坡县| 孙吴县| 平湖市| 彭泽县| 北辰区| 巨鹿县|