專利名稱:用于在分布式環(huán)境中監(jiān)視應(yīng)用性能的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)軟件,特別涉及分布式計(jì)算。
背景技術(shù):
商務(wù)關(guān)鍵應(yīng)用當(dāng)前使用太陽微系統(tǒng)Java 2企業(yè)版(J2EE)技術(shù)駐留在分布式服務(wù)器上。這樣的應(yīng)用包括直接向運(yùn)行瀏覽器客戶端的顧客提供關(guān)鍵商務(wù)操作的服務(wù)器。各種工具和技術(shù)可用來監(jiān)視該系統(tǒng)的各個(gè)組件包括數(shù)據(jù)庫、平臺(tái)和硬件的性能。然而,顧客所感受的性能不是這些底層組件的性能,而是應(yīng)用的性能。本發(fā)明人認(rèn)識(shí)到現(xiàn)有技術(shù)中的一個(gè)關(guān)鍵問題,即不能提供有關(guān)應(yīng)用性能的信息。
由于現(xiàn)有技術(shù)產(chǎn)品不能測量應(yīng)用性能,因此有關(guān)硬件和軟件選擇的決策可能是消息不靈通的。例如,如果應(yīng)用響應(yīng)慢,則可用于管理者的一個(gè)選項(xiàng)是購買或租賃在其上運(yùn)行應(yīng)用的附加服務(wù)器。該購買是昂貴的,并且新硬件的安裝將占用必要地從其他任務(wù)調(diào)離的信息技術(shù)部門人員。對應(yīng)用響應(yīng)慢的其他應(yīng)對措施包括改變各種硬件的配置。然而,可能需要試驗(yàn)各種硬件和軟件配置的眾多不同組合以便改善應(yīng)用性能。
發(fā)明內(nèi)容
本發(fā)明的一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在服務(wù)器上的應(yīng)用的性能的方法包括以下步驟提示用戶選擇用于監(jiān)視的信息,根據(jù)所選信息監(jiān)視應(yīng)用性能,并且使監(jiān)視性能信息可用于用戶。
本發(fā)明的一種方法包括以下步驟提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件,將參數(shù)的值或質(zhì)量與該閾值或條件進(jìn)行比較,并且在參數(shù)達(dá)到該閾值或條件的情況下向用戶提供通知。
本發(fā)明的一種方法包括以下步驟向用戶提供與在分布式計(jì)算環(huán)境中運(yùn)行于服務(wù)器上的應(yīng)用相關(guān)的性能信息,從用戶接收對更特定性能信息的請求,并且響應(yīng)該請求而提供更詳細(xì)的性能信息。
本發(fā)明的一種方法包括以下步驟從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,在所選服務(wù)器之間比較形式為CPU數(shù)據(jù)、服務(wù)器數(shù)據(jù)和Java數(shù)據(jù)中的一項(xiàng)或多項(xiàng)的運(yùn)行時(shí)環(huán)境數(shù)據(jù),并且向用戶顯示差別。
本發(fā)明的一種方法包括以下步驟從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,并且提供匹配和不同文件名的列表。該方法還可包括以下步驟從用戶接收文件選擇,進(jìn)行文件比較,并且將結(jié)果提供給用戶。
本發(fā)明的一種方法包括以下步驟接收請求字符串,并且將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆(collapsible)請求字符串。所接收的請求字符串可采取JSP、小服務(wù)程序和遠(yuǎn)程企業(yè)版Java組件(Enterprise Java Bean)調(diào)用的形式。本發(fā)明的一種方法可提示用戶創(chuàng)建用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的規(guī)則。
本發(fā)明的一種方法包括以下步驟在運(yùn)行至少一個(gè)應(yīng)用的系統(tǒng)中提供具有用于監(jiān)視和管理的各組件的管理應(yīng)用,并且實(shí)時(shí)地監(jiān)視并向用戶提供有關(guān)各組件的配置和各組件之間的關(guān)系的信息。
本發(fā)明的一種方法包括以下步驟向每個(gè)用戶分配角色,并且通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問。
本發(fā)明的一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在服務(wù)器上的應(yīng)用的性能的系統(tǒng)包括用于提示用戶選擇用于監(jiān)視的信息的計(jì)算機(jī)軟硬件;用于根據(jù)從用戶接收的所選信息監(jiān)視應(yīng)用性能的計(jì)算機(jī)軟硬件;以及用于使監(jiān)視性能信息可用于用戶的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件的計(jì)算機(jī)軟硬件;用于將所監(jiān)視的服務(wù)器或服務(wù)器組上的資源參數(shù)的值或質(zhì)量與該閾值或條件進(jìn)行比較的計(jì)算機(jī)軟硬件;以及用于在參數(shù)達(dá)到該閾值或條件的情況下向用戶提供通知的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于向用戶提供與在分布式計(jì)算環(huán)境中運(yùn)行于服務(wù)器上的一個(gè)或多個(gè)應(yīng)用相關(guān)的性能信息的計(jì)算機(jī)軟硬件;用于從用戶接收對更特定性能信息的請求的計(jì)算機(jī)軟硬件;以及用于響應(yīng)該請求而提供更詳細(xì)的性能信息的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于從用戶接收第一服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收第二服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器的計(jì)算機(jī)軟硬件;用于在所選服務(wù)器之間比較來自授權(quán)服務(wù)器和比較服務(wù)器的運(yùn)行時(shí)環(huán)境數(shù)據(jù)的計(jì)算機(jī)軟硬件,其中運(yùn)行時(shí)環(huán)境數(shù)據(jù)的形式為CPU數(shù)據(jù)、服務(wù)器數(shù)據(jù)和Java數(shù)據(jù)中的一項(xiàng)或多項(xiàng);以及用于向用戶顯示所選服務(wù)器之間該數(shù)據(jù)的差別的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于從用戶接收第一服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收第二服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器的計(jì)算機(jī)軟硬件;以及用于提供匹配和不同文件名的列表的計(jì)算機(jī)軟硬件。該系統(tǒng)還可包括用于從用戶接收授權(quán)服務(wù)器和比較服務(wù)器兩者上的文件選擇的計(jì)算機(jī)軟硬件;用于進(jìn)行文件比較的計(jì)算機(jī)軟硬件、以及用于將結(jié)果提供給用戶的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于接收請求字符串的計(jì)算機(jī)軟硬件;以及用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的計(jì)算機(jī)軟硬件。所接收的請求字符串可采取JSP、小服務(wù)程序和遠(yuǎn)程企業(yè)版Java組件調(diào)用的形式。本發(fā)明的一種系統(tǒng)可包括用于提示用戶創(chuàng)建用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的規(guī)則的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于在運(yùn)行至少一個(gè)應(yīng)用的系統(tǒng)中提供具有用于監(jiān)視和管理的各組件的管理應(yīng)用、以及用于實(shí)時(shí)地監(jiān)視并向用戶提供有關(guān)各組件的配置和各組件之間的關(guān)系的信息的計(jì)算機(jī)軟硬件。
本發(fā)明的一種系統(tǒng)包括用于向每個(gè)用戶分配角色的計(jì)算機(jī)軟硬件;以及用于通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問的計(jì)算機(jī)軟硬件。
本發(fā)明的一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟提示用戶選擇用于監(jiān)視的信息,根據(jù)所選信息監(jiān)視應(yīng)用性能,并且使監(jiān)視性能信息可用于用戶。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件,將所檢測的服務(wù)器或服務(wù)器組上的資源參數(shù)的值或質(zhì)量與該閾值或條件進(jìn)行比較,并且在參數(shù)達(dá)到該閾值或條件的情況下向用戶提供通知。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟向用戶提供與在分布式計(jì)算環(huán)境中運(yùn)行于服務(wù)器上的應(yīng)用相關(guān)的性能信息,從用戶接收對更特定性能信息的請求,并且響應(yīng)該請求而提供更詳細(xì)的性能信息。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟從用戶接收第一服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收第二服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,在所選服務(wù)器之間比較形式為CPU數(shù)據(jù)、服務(wù)器數(shù)據(jù)和Java數(shù)據(jù)中的一項(xiàng)或多項(xiàng)的運(yùn)行時(shí)環(huán)境數(shù)據(jù),并且向用戶顯示差別。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟從用戶接收第一服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收第二服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,并且提供第一和第二服務(wù)器之間匹配和不同文件名的列表。該程序還可包括在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟的多條指令從用戶接收在第一和第二服務(wù)器兩者上都找到的文件的選擇,進(jìn)行文件比較,并且將結(jié)果提供給用戶。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟接收請求字符串,并且將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串。所接收的請求字符串可采取JSP、小服務(wù)程序和遠(yuǎn)程企業(yè)版Java組件調(diào)用的形式。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟在運(yùn)行至少一個(gè)應(yīng)用的系統(tǒng)中提供具有用于監(jiān)視和管理的各組件的管理應(yīng)用,并且實(shí)時(shí)地監(jiān)視并向用戶提供有關(guān)各組件的配置和各組件之間的關(guān)系的信息。
本發(fā)明的一種計(jì)算機(jī)程序包括存儲(chǔ)在介質(zhì)上的多條指令,這些指令在處理器上執(zhí)行時(shí)使處理器執(zhí)行以下步驟向每個(gè)用戶分配角色,并且通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問。
圖1是根據(jù)本發(fā)明的方法的流程圖。
圖2A和2B是示出根據(jù)本發(fā)明的方法的流程圖。
圖3是根據(jù)本發(fā)明的方法的示意圖示。
圖4是示出根據(jù)本發(fā)明的方法的流程圖。
圖5是示出根據(jù)本發(fā)明的方法的流程圖。
圖6是示出本發(fā)明特征的示意圖。
圖7是示出本發(fā)明特征的示意圖。
圖8是示出示例性架構(gòu)的示意圖。
圖9是示出示例性架構(gòu)的特征的示意圖。
圖10是示出示例性架構(gòu)的特征的圖。
圖11是示出示例性架構(gòu)的特征的示意圖。
圖12是示出示例性架構(gòu)的特征的示意圖。
圖13是示出示例性架構(gòu)的流程圖。
具體實(shí)施例方式
本發(fā)明包括用于監(jiān)視和提供有關(guān)計(jì)算機(jī)系統(tǒng)特定方面的性能的信息的過程、以及用于實(shí)現(xiàn)這些目的的計(jì)算機(jī)程序和系統(tǒng)。該方法和系統(tǒng)將參考用于實(shí)現(xiàn)這些目的且用于本發(fā)明的系統(tǒng)中的計(jì)算機(jī)程序來描述。本發(fā)明的計(jì)算機(jī)程序特別有用于運(yùn)行在應(yīng)用服務(wù)器上的應(yīng)用。本發(fā)明的計(jì)算機(jī)程序包括向用戶提供各種信息和選項(xiàng)的用戶界面。安裝在應(yīng)用服務(wù)器上的探測器獲得與應(yīng)用和服務(wù)器的操作相關(guān)的信息,并且將該信息提供給其他程序元素以進(jìn)行分析并且報(bào)告給用戶。
監(jiān)視級別和調(diào)度表(schedule)在根據(jù)本發(fā)明的方法、系統(tǒng)和計(jì)算機(jī)程序中,提供了用于提供有關(guān)運(yùn)行在服務(wù)器上的應(yīng)用的操作的選定詳細(xì)級別的能力。提示用戶標(biāo)識(shí)用于監(jiān)視的信息,如圖1的105所示。最好,向用戶提供至少兩個(gè)關(guān)于監(jiān)視詳細(xì)級別的選項(xiàng)。術(shù)語監(jiān)視詳細(xì)級別是指有關(guān)應(yīng)用運(yùn)行而獲得的信息的數(shù)量和性質(zhì)。監(jiān)視詳細(xì)級別可以是指所獲得的數(shù)據(jù)或信息的數(shù)量。詳細(xì)級別也可以是指所獲得的信息的性質(zhì)。例如,某些類型的信息如服務(wù)器可用性信息處于較高的詳細(xì)級別。其他類型的信息如方法跟蹤信息處于較低的詳細(xì)級別。
可提示用戶選擇監(jiān)視級別。用戶可選擇要監(jiān)視的特定特征??蛇x地,可提供預(yù)選監(jiān)視級別。每個(gè)預(yù)選監(jiān)視級別與被監(jiān)視和報(bào)告的特定信息相關(guān)聯(lián)。當(dāng)如圖1的塊110所示從用戶接收到監(jiān)視級別或特定特征的選擇時(shí),本發(fā)明的程序如圖所示監(jiān)視應(yīng)用性能,并且使監(jiān)視性能信息可用于用戶。在圖1所示的一個(gè)例子中,可提供三個(gè)監(jiān)視級別。當(dāng)從用戶接收到請求時(shí),系統(tǒng)確定監(jiān)視級別,如判定塊115所示。在第1級即最高級由此是提供最少信息的級別,信息的性質(zhì)可以是請求級數(shù)據(jù)和服務(wù)器級數(shù)據(jù)。例如,相關(guān)信息可以是可用性管理、系統(tǒng)資源和分布式平臺(tái),以及基本請求數(shù)據(jù),如塊120所示??捎眯怨芾戆P(guān)于特定應(yīng)用是否運(yùn)行在特定服務(wù)器上的信息。系統(tǒng)資源表示諸如可用存儲(chǔ)器量和可用連接數(shù)的信息?;菊埱髷?shù)據(jù)表示正在進(jìn)行的請求數(shù)、已完成的請求數(shù)等。
在同一例子中,可向用戶提供第2級監(jiān)視的選擇。第2級監(jiān)視選擇通常包括通過第1級監(jiān)視提供的所有信息,以及附加信息,如塊125所示。附加信息可以是API級數(shù)據(jù),例如SQL數(shù)據(jù)、JMS數(shù)據(jù)和EJB調(diào)用數(shù)據(jù)。該數(shù)據(jù)可包括有關(guān)特定CPU的吞吐量的數(shù)據(jù)??商峁┰试S用戶提供請求的軟取消的功能性。不提供方法數(shù)據(jù)或SQL級數(shù)據(jù)。為了提供附加數(shù)據(jù),在對應(yīng)JVM上激活JVMPI。該級別涉及問題確定,并且可用于具有高事務(wù)量但偶爾不穩(wěn)定的服務(wù)器。事務(wù)的復(fù)雜度可以變化。由于在對應(yīng)JVM上激活了JVMPI,因此可向用戶提供動(dòng)態(tài)改變至更詳細(xì)監(jiān)視級別如下述第3級的選項(xiàng)。
在同一例子中,可向用戶提供第3級監(jiān)視的選擇。第3級監(jiān)視提供關(guān)于第2級監(jiān)視而提供的信息,加上方法級數(shù)據(jù)。第3級可包括高級問題確定和報(bào)告,其例如包括方法和SQL級數(shù)據(jù),如塊130所示。在對應(yīng)JVM上激活JVMPI。JVMPI函數(shù)調(diào)用是可能的,并且選擇方法進(jìn)入和退出事件。該級別典型地用于被選擇以進(jìn)行診斷、詳細(xì)工作量表征和剖析(profiling)的服務(wù)器。由于如上所述該級別需要激活JVMPI,因此有可能在該級別和激活了JVMPI的其他級別如上述示例性第2級之間動(dòng)態(tài)改變。在所有情況下,如上所述,并且如塊135所示,向用戶提供監(jiān)視信息。
在優(yōu)選實(shí)施例中,如塊140所示,提示用戶定義用于監(jiān)視的調(diào)度表。如塊145所示,從用戶接收調(diào)度表,并且如塊150所示,根據(jù)調(diào)度表進(jìn)行監(jiān)視。調(diào)度表至少定義開始時(shí)間、監(jiān)視級別和服務(wù)器或服務(wù)器組,其中開始時(shí)間最好采用日歷日期和時(shí)間定義。本發(fā)明的程序可允許用戶選擇用于監(jiān)視的各個(gè)數(shù)據(jù)項(xiàng)而非監(jiān)視級別。調(diào)度表可定義改變監(jiān)視級別的時(shí)間,其也可按照日歷日期和時(shí)間。調(diào)度表可被選擇成適當(dāng)?shù)匮h(huán),如每月、每星期或每天。在優(yōu)選實(shí)施例中,調(diào)度表包括一組調(diào)度表記錄,其中每一個(gè)是開始日期和時(shí)間以及監(jiān)視級別的組合。本發(fā)明的程序使監(jiān)視以第一調(diào)度表記錄開始,并且在當(dāng)前時(shí)間是另一個(gè)調(diào)度表記錄的開始時(shí)間和日期時(shí)改變監(jiān)視。該過程通過連續(xù)的調(diào)度表記錄而繼續(xù)。缺省監(jiān)視級別可被提供以在調(diào)度表中沒有指定監(jiān)視的時(shí)候使用。該程序可被提供可由用戶改變的缺省值。提示用戶對一個(gè)或多個(gè)服務(wù)器或服務(wù)器組應(yīng)用完全調(diào)度表??上蛴脩籼峁?fù)制現(xiàn)有調(diào)度表的選項(xiàng),并且提示其提供應(yīng)用該調(diào)度表的服務(wù)器和服務(wù)器組??上蛴脩籼峁┬薷恼{(diào)度表字段的選項(xiàng)。最好,如果通過刪除服務(wù)器或服務(wù)器組來修改調(diào)度表,則將提示用戶對那個(gè)服務(wù)器或服務(wù)器組應(yīng)用另一調(diào)度表。該程序可被配置成防止用戶從給定服務(wù)器中刪除所有調(diào)度表??蛇x地,當(dāng)從給定服務(wù)器或組中刪除所有調(diào)度表時(shí),受影響服務(wù)器或服務(wù)器組的監(jiān)視可返回到缺省監(jiān)視級別??上蛴脩籼峁﹦h除調(diào)度表的選項(xiàng),并且對于與被刪除調(diào)度表相對應(yīng)的時(shí)間和服務(wù)器或服務(wù)器組,可以缺省級別進(jìn)行監(jiān)視。
盡管可使用程序化監(jiān)視級別,其中預(yù)選擇了要監(jiān)視的項(xiàng)目,但是本發(fā)明的系統(tǒng)可允許具有適當(dāng)授權(quán)的用戶人工改變要監(jiān)視的項(xiàng)目。該人工改變最好將僅是臨時(shí)可用的,并且可限定于特定服務(wù)器或服務(wù)器組。
如果服務(wù)器被重啟,則系統(tǒng)沿著分級搜索路徑以確定適當(dāng)?shù)谋O(jiān)視級別。如果有可能聯(lián)系調(diào)度器,則詢問臨時(shí)覆蓋,然后是調(diào)度監(jiān)視級別,然后使用系統(tǒng)范圍的監(jiān)視級別。當(dāng)不能聯(lián)系調(diào)度器時(shí),則使用缺省監(jiān)視級別。
監(jiān)視陷阱和告警在根據(jù)本發(fā)明的方法、系統(tǒng)和計(jì)算機(jī)程序中,在進(jìn)行服務(wù)器監(jiān)視的時(shí)候,向用戶提供告警。當(dāng)選定服務(wù)器或服務(wù)器組上的被監(jiān)視資源的參數(shù)達(dá)到選定匹配條件或者該條件的閾值時(shí),提供告警。能夠向用戶提供通知或告警的軟件在此稱作軟件陷阱(software trap)。用戶可從本發(fā)明程序的菜單中選擇創(chuàng)建或修改軟件陷阱的選項(xiàng)。提示用戶作出多個(gè)選擇以便創(chuàng)建新軟件陷阱。這些選擇包括將在其上應(yīng)用陷阱的服務(wù)器或服務(wù)器組、要測量的資源以及條件。如圖2的例子所示,第一步驟可以是提示用戶選擇服務(wù)器或服務(wù)器組,如塊205所示。接收該選擇,如塊210所示。
所需信息根據(jù)陷阱類型而改變,并且提示用戶提供陷阱類型,如塊215所示。
對于第一類型的陷阱,如判定塊220和塊225所示,必須選擇資源和閾值形式的條件。資源可包括現(xiàn)象(occurrence)、CPU時(shí)間、駐留時(shí)間(resident time)、等待時(shí)間和SQL駐留時(shí)間。閾值將依賴于特定類型的資源。當(dāng)如230所示選擇資源時(shí),系統(tǒng)可向用戶提供用于閾值選擇的單位。陷阱可應(yīng)用于任何請求、特定請求名稱或特定方法名稱。然后,陷阱繼續(xù)監(jiān)視所選資源,如塊235所示。如果滿足了閾值,則系統(tǒng)評測是否觸發(fā)了告警條件,如塊236和237所示。如果否,則可記錄該事件,如塊238所示。如果滿足了告警條件,則如239所示,將告警通知給用戶并作記錄。
對于第二類型的軟件陷阱,如塊240和242所示,必須選擇資源和帶有命中數(shù)的條件。為了設(shè)置這種軟件陷阱,提示用戶指定資源和條件,如242所示。資源可以是例如HTTP請求參數(shù)或SQL語句。對于HTTP或SQL請求,條件是包含在HTTP/SPL請求中的指定字符串。該條件也可采取應(yīng)用于字符串的布爾型表達(dá)式的形式。當(dāng)用戶在244提供所請求的資源和條件時(shí),軟件陷阱執(zhí)行監(jiān)視,如圖2B的246所示。每當(dāng)請求或語句被識(shí)別為滿足條件時(shí),增加命中計(jì)數(shù)器,如圖2B的塊248、250和252所示。如果對足夠的命中進(jìn)行了計(jì)數(shù),則達(dá)到告警條件,并且通知告警并作記錄,如254所示。
第三類型的陷阱應(yīng)用于應(yīng)用服務(wù)器的資源消耗的條件。要求用戶選擇應(yīng)用服務(wù)器或組。提示用戶在多個(gè)資源和閾值中指定資源和閾值,如圖2B的塊260、262和264所示。資源可包括與應(yīng)用服務(wù)器可用性、數(shù)據(jù)庫連接池和JVM運(yùn)行時(shí)存儲(chǔ)器相關(guān)的信息。服務(wù)器可用性被測量為簡單的肯定或否定。對于數(shù)據(jù)庫連接池,可設(shè)置多個(gè)不同閾值,其包括分配給連接數(shù)的連接數(shù);等待連接的平均線程數(shù);客戶端等待被給予連接的平均時(shí)間;連接池超時(shí)數(shù);以及池使用平均百分比。對于JVM運(yùn)行時(shí)存儲(chǔ)器,資源可以是JVM運(yùn)行時(shí)的空閑存儲(chǔ)器量和JVM運(yùn)行時(shí)的已用存儲(chǔ)器量。提示用戶提供一個(gè)數(shù)目,并且指示該數(shù)目是最大值還是最小值。對于空閑存儲(chǔ)器和已用存儲(chǔ)器,可向用戶提供適合的單位,例如兆字節(jié)。還提示用戶選擇在創(chuàng)建告警消息之前滿足條件的次數(shù)。如266所示,監(jiān)視資源,并且如果滿足了告警條件,則如268和270所示,通知并記錄告警。
現(xiàn)在將描述確定在什么情形下向操作員通知由陷阱識(shí)別的數(shù)據(jù)的告警條件。在工作中,當(dāng)滿足了在軟件陷阱中設(shè)置的閾值條件時(shí),根據(jù)用戶所設(shè)置的條件,發(fā)送告警,或者增加計(jì)數(shù)器。如果增加了計(jì)數(shù)器,則對照閾值檢查新計(jì)數(shù)。告警操作可采取若干形式。告警最好被記錄以用于審核的目的,其包括陷阱條件、觸犯被監(jiān)視資源、觸犯值以及日期/時(shí)間戳。可產(chǎn)生觸犯請求、方法或線程的局部轉(zhuǎn)儲(chǔ),從而可進(jìn)行顯示訪問。可提供堆棧跟蹤和方法跟蹤。例如通過電子郵件或其他消息如SNMP告警,可通知一個(gè)或多個(gè)人。例如通過僅在閾值的第三次出現(xiàn)之后才發(fā)送電子郵件,可包括告警的升級。對多個(gè)條件采取的多個(gè)操作的其他例子可容易地被想象到。當(dāng)檢測到命中閾值時(shí),將計(jì)數(shù)器復(fù)位為零。如果指定了布爾型條件,則每次滿足了邊界時(shí)重新評測條件。如果指定了方法,則在檢測到該方法之后重新評測條件。
對陷阱/告警日志進(jìn)行維護(hù),從而識(shí)別通過日期/時(shí)間戳的條目,以及從告警獲得的其他信息。用戶可在運(yùn)行時(shí)監(jiān)視陷阱,以查看日志和計(jì)數(shù)器。用戶可被提供在活動(dòng)和不活動(dòng)狀態(tài)之間切換陷阱的能力。
應(yīng)用性能分析在本發(fā)明的方法、系統(tǒng)和計(jì)算機(jī)程序中,該程序提供獲得性能分析的能力。以較高級別提供信息,并且用戶具有請求和接收更詳細(xì)信息的選項(xiàng)。信息以稱作報(bào)告的格式來提供。一般而言,提示用戶選擇報(bào)告類型,如圖3的305所示,并且向用戶提供高級別報(bào)告或趨勢報(bào)告,如310所示。根據(jù)趨勢報(bào)告,向用戶提供選擇各種更詳細(xì)報(bào)告的選項(xiàng)。用戶被提供連續(xù)獲得更詳細(xì)報(bào)告的選項(xiàng)。用戶具有對照來自前一時(shí)間周期的基線數(shù)據(jù)比較報(bào)告中的性能數(shù)據(jù)的選項(xiàng)。報(bào)告包括從應(yīng)用角度的諸如服務(wù)器可用性、服務(wù)器資源、商務(wù)性能、應(yīng)用性能和數(shù)據(jù)庫性能的信息。
從由特定應(yīng)用服務(wù)器提供的應(yīng)用編程者接口(API)和服務(wù)(例如,Websphere中的PMI)和數(shù)據(jù)收集器在其上工作的用戶應(yīng)用,獲得數(shù)據(jù)。所獲得的數(shù)據(jù)將是工作數(shù)據(jù)集。可獲得作為選定類型報(bào)告的趨勢報(bào)告。報(bào)告存儲(chǔ)在服務(wù)器組級別上。最初,例如從API、服務(wù)器和用戶應(yīng)用獲得數(shù)據(jù)。用戶可以能夠確定要捕獲的應(yīng)用數(shù)據(jù)的數(shù)量。該數(shù)量可被表達(dá)為應(yīng)當(dāng)存儲(chǔ)的總請求樣本的百分比。提示用戶選擇從其提取請求樣本的應(yīng)用服務(wù)器,可提示用戶按照時(shí)間周期如分鐘來選擇用戶想要獲取數(shù)據(jù)快照的頻率。
冗余數(shù)據(jù)的使用應(yīng)當(dāng)受到限制。采樣率被定義為確定在性能歷史數(shù)據(jù)庫中要記錄多少數(shù)據(jù)。提示用戶設(shè)置采樣率,從而限制存儲(chǔ)在數(shù)據(jù)庫中所需的數(shù)據(jù)量。表1示出多個(gè)計(jì)量(metric)、每個(gè)計(jì)量的描述、以及從其獲取數(shù)據(jù)的資源。
可提供各種報(bào)告,包括示出趨勢的報(bào)告類型,以及有關(guān)單個(gè)數(shù)據(jù)點(diǎn)的分裂/分解報(bào)告類型。
在圖3所示的一個(gè)實(shí)施例中,提示用戶提供工作集的某些數(shù)據(jù),如305所示,然后提供這些數(shù)據(jù),如310所示。這些數(shù)據(jù)包括應(yīng)用服務(wù)器或組、分析類型、數(shù)據(jù)周期、數(shù)據(jù)間隔、聚集周期,即數(shù)據(jù)的編組方式、用于選擇數(shù)據(jù)點(diǎn)的過濾標(biāo)準(zhǔn)、分析類型如請求、方法、SQL、服務(wù)器可用性和應(yīng)用服務(wù)器分析、以及基線。然后,用戶可選擇一種分析,如315所示。
如果選擇了請求分析,如320所示,則提示用戶選擇計(jì)量。計(jì)量的例子是吞吐量、響應(yīng)時(shí)間以及CPU時(shí)間,如321所示。響應(yīng)該選擇,提供趨勢分析,其中帶有表示時(shí)間間隔和應(yīng)用服務(wù)器的標(biāo)簽,如322所示。用戶可通過請求類型或請求名稱,或者在報(bào)告應(yīng)用于服務(wù)器組的情況下通過服務(wù)器名稱來分裂(break down)請求趨勢報(bào)告。前述分裂可稱作分解(decomposition),如323所示。用戶還可分裂分解的任一部分。可選地,從趨勢報(bào)告,用戶可獲得有關(guān)任一數(shù)據(jù)點(diǎn)的詳細(xì)信息。該進(jìn)一步分裂可稱作詳細(xì)報(bào)告,如324所示。在詳細(xì)報(bào)告的一個(gè)記錄上,詳細(xì)報(bào)告還可進(jìn)一步分裂為如325所示的跟蹤報(bào)告。跟蹤報(bào)告提供方法進(jìn)入和退出信息,以及所選計(jì)量。因此,可以看到,用戶可深入到進(jìn)一步的詳細(xì)級別。
如果如330所示選擇了方法分析,則提示用戶選擇一個(gè)計(jì)量,其可以是吞吐量、響應(yīng)時(shí)間和CPU時(shí)間之一,如331所示。用戶被提供將報(bào)告限于諸如特定請求名稱、請求類型或方法名稱的項(xiàng)目。在從用戶接收到選擇之后,本發(fā)明的系統(tǒng)產(chǎn)生具有趨勢分析的報(bào)告,如332所示。根據(jù)趨勢報(bào)告,用戶可通過請求名稱或請求類型來選擇趨勢分析的分裂。所得到的報(bào)告將稱作方法分析的分解報(bào)告,如333所示。如果適用,在報(bào)告覆蓋服務(wù)器組的情況下,用戶可通過服務(wù)器來分解趨勢分析報(bào)告。用戶可選擇方法分析的分解報(bào)告的任何部分,以通過單獨(dú)記錄分裂到詳細(xì)信息并且進(jìn)行查看,或者用戶可選擇將趨勢報(bào)告中的單個(gè)數(shù)據(jù)點(diǎn)分裂成多個(gè)記錄。所得到的報(bào)告稱作如334所示的詳細(xì)報(bào)告。
如果如340所示用戶選擇SQL分析報(bào)告,則如341所示,提示用戶選擇吞吐量和響應(yīng)時(shí)間的計(jì)量之一。用戶可選擇特定請求名稱或請求類型、方法名稱、表名稱或SQL調(diào)用。作為響應(yīng),如342所示,系統(tǒng)提供趨勢分析。趨勢分析可通過請求名稱、請求類型、方法名稱和/或表名稱來分裂以提供分解報(bào)告,如343所示。該報(bào)告可包括作為總百分比的樣本數(shù)。用戶可分裂分解報(bào)告的任一部分以通過各個(gè)記錄獲得詳細(xì)信息,或者通過單個(gè)數(shù)據(jù)點(diǎn)來分裂趨勢報(bào)告以獲得各個(gè)記錄。具有各個(gè)記錄的報(bào)告稱作詳細(xì)報(bào)告,如344所示。
如果用戶選擇服務(wù)器可用性分析報(bào)告,如350所示,則提供趨勢分析,如351所示。沒有計(jì)量被選擇。在可用性趨勢報(bào)告中,系統(tǒng)可標(biāo)示一系列時(shí)間間隔上的組工作時(shí)間百分比。用戶可通過應(yīng)用服務(wù)器分裂組的趨勢報(bào)告,如352所示。
可選擇應(yīng)用服務(wù)器分析報(bào)告,如360所示??商崾居脩籼峁┮韵掠?jì)量之一池大小、同時(shí)等待者、平均等待時(shí)間、故障數(shù)、池使用百分比、物理連接數(shù)、JVM空閑存儲(chǔ)器以及JVM已用存儲(chǔ)器,如361所示。提供趨勢分析報(bào)告,如362所示。
可以任何適合方式來提供報(bào)告。趨勢報(bào)告可以是每個(gè)數(shù)據(jù)點(diǎn)的線圖,其中具有所有數(shù)據(jù)的表式視圖(tablature view)。可提供比較性基線顯示,其示出過去選定時(shí)間的相同數(shù)據(jù)。例如,基線數(shù)據(jù)可表示前一天相同時(shí)間的相同數(shù)據(jù)。對于分解報(bào)告,可按照類型提供條形圖或餅狀圖,其中具有所有數(shù)據(jù)的表式視圖。用戶最好能夠選擇分解報(bào)告的一部分以深入到詳細(xì)報(bào)告。可在詳細(xì)報(bào)告中提供基線數(shù)據(jù)以進(jìn)行比較。
軟件一致性檢查在本發(fā)明的方法、系統(tǒng)和程序中,可進(jìn)行各個(gè)服務(wù)器上應(yīng)用操作的比較。該比較在識(shí)別不同服務(wù)器中的可能配置問題方面是有價(jià)值的。
該比較的例子稱作n路區(qū)分(n-way diff)。對于每個(gè)服務(wù)器,本發(fā)明的程序獲得關(guān)于如何設(shè)置和安裝系統(tǒng)的運(yùn)行時(shí)環(huán)境數(shù)據(jù)。這些環(huán)境可以是系統(tǒng)、java和應(yīng)用服務(wù)器。對于系統(tǒng),環(huán)境信息可包括CPU速度、在線CPU數(shù)、離線CPU數(shù)、存儲(chǔ)器、操作系統(tǒng)版本以及物理盤空間。還可包括其他信息。對于Java,該信息可包括JDK版本、安裝目錄、Java策略、操作系統(tǒng)信息、類路徑以及庫路徑。對于應(yīng)用服務(wù)器,該信息可包括應(yīng)用服務(wù)器、啟動(dòng)目錄、監(jiān)聽端口、SSL監(jiān)聽端口、已登記小服務(wù)程序數(shù)、已登記EJB數(shù)、JDBC連接池?cái)?shù)以及EAR數(shù)。該程序可提示用戶選擇一個(gè)服務(wù)器作為授權(quán)服務(wù)器,如圖4的405所示,接收選擇,如410所示,然后提示用戶選擇用于比較的服務(wù)器,如415所示。一旦用戶選擇了用于比較的服務(wù)器,如420所示,則系統(tǒng)獲得并顯示比較結(jié)果,如425所示。比較結(jié)果可包括上述運(yùn)行時(shí)環(huán)境信息。比較結(jié)果可僅包含區(qū)別數(shù)據(jù),并且可以圖形方式表示。系統(tǒng)最好允許用戶從顯示結(jié)果深入到顯示每個(gè)應(yīng)用服務(wù)器的所有相關(guān)信息的詳細(xì)信息屏幕,如430、435所示。
在另一種比較中,可執(zhí)行二進(jìn)制文件與匹配文件名的比較。在頂級分析,提示用戶從組中選擇一個(gè)服務(wù)器作為授權(quán)服務(wù)器,如圖5的505所示。用戶提供選擇,如510所示,然后提示用戶選擇一個(gè)或多個(gè)服務(wù)器作為比較服務(wù)器,如515所示。一旦在520接收到比較服務(wù)器選擇,則如525所示,提示用戶選擇文件源。用戶可從被認(rèn)為是形成授權(quán)服務(wù)器的主文件列表的EAR文件夾或CLASSPATH的列表中選擇。如530所示,用戶提供選擇。如535所示,還提示用戶選擇用于組成主文件列表的文件類型之一。在540,接收文件類型。作為響應(yīng),系統(tǒng)開始根據(jù)從授權(quán)服務(wù)器選擇的源和文件類型準(zhǔn)備主文件列表。然后,系統(tǒng)在比較服務(wù)器中搜索列在主文件列表中的文件,如545所示。在550,對于每個(gè)比較,顯示結(jié)果。結(jié)果可分成已找到的文件和未找到的文件。對于已找到的類別,該列表包括匹配文件,即具有匹配文件名、大小和文件系統(tǒng)時(shí)間戳的所有文件;相同文件夾,即具有匹配文件名和大小而非時(shí)間戳的文件;以及不同文件夾,即僅具有匹配文件名的文件。對于未找到的文件,文件分成授權(quán)服務(wù)器而非比較服務(wù)器中的文件和比較服務(wù)器而非授權(quán)服務(wù)器中的所有文件。顯示這些文件列表。該顯示允許用戶容易地比較授權(quán)和比較服務(wù)器中的文件。
系統(tǒng)允許用戶從該顯示深入以獲得有關(guān)文件的附加信息。用戶可選擇一個(gè)比較服務(wù)器,并且從授權(quán)文件選擇一個(gè)文件,以進(jìn)行詳細(xì)比較,如555所示。系統(tǒng)將執(zhí)行文件比較,其結(jié)果為“相同”或“不同”。比較可使用校驗(yàn)和計(jì)算,如MD5算法。應(yīng)當(dāng)注意,在一個(gè)實(shí)施例中,對于JAR文件,在可運(yùn)行比較之前,需要進(jìn)一步的級別。首先,提取歸檔文件,然后執(zhí)行名稱匹配。然后,可運(yùn)行比較。作為這些比較的結(jié)果,在服務(wù)器之間比較文件的名稱和文件的內(nèi)容,如560所示。諸如變異版本和受損代碼的問題可被容易地識(shí)別。
請求改寫在本發(fā)明的方法、系統(tǒng)和程序中,可提供一種用于改寫或映射特定請求的方法、系統(tǒng)和程序。具體地說,在本發(fā)明的系統(tǒng)中接收三種不同類型的請求。這些請求是JSP、小服務(wù)程序和遠(yuǎn)程企業(yè)版Java組件調(diào)用。這些請求典型地采取字符串的形式,并且從另一個(gè)應(yīng)用如萬維網(wǎng)(web)服務(wù)器或另一個(gè)應(yīng)用服務(wù)器接收。在本發(fā)明的系統(tǒng)中采用這些請求,以用于兩個(gè)不同的目的。這些請求可用于標(biāo)識(shí)的目的。這些請求還可用來表示商務(wù)請求或應(yīng)用。一般而言,請求字符串的隱式雙重含義沒有問題。然而,存在該雙重含義可產(chǎn)生沖突的情形。例如,在門戶站點(diǎn)中,URL形式的請求字符串通常看上去完全相同,因此便于最終用戶記憶;然而,它們被使用底層數(shù)據(jù)對象如請求或會(huì)話對象的門戶引擎認(rèn)為是不同類型的請求。在問題確定期間,當(dāng)操作員或管理員看到由相同字符串表示的不同功能的請求而不進(jìn)行字符串之間的解析時(shí),他們將會(huì)困惑。另一方面,單個(gè)應(yīng)用可涉及多個(gè)不同請求字符串,并且在它們成功執(zhí)行之后,相對于一個(gè)應(yīng)用名稱或標(biāo)簽分析所得到的性能數(shù)據(jù)。這里又有一個(gè)問題是缺少讓系統(tǒng)識(shí)別一組請求字符串彼此相關(guān)的組機(jī)制。
為了克服前述問題,可提供其形式可為基于Java的邏輯的模塊以映射請求。如圖6所示,每個(gè)請求如請求600被映射成兩個(gè)單獨(dú)字符串可區(qū)別請求字符串605和可分拆請求字符串610。這些單獨(dú)字符串用于不同的目的。這些字符串可以是不同URL或標(biāo)簽字符串。映射或改寫操作最好發(fā)生于問題確定和性能管理功能可利用該操作的時(shí)間點(diǎn)。例如,性能管理功能將通過請求對可分拆請求字符串執(zhí)行分解。用于問題確定中的活動(dòng)請求搜索在可區(qū)別請求字符串上進(jìn)行。
安全性安全性最好通過提供向每個(gè)用戶分配用戶角色來維護(hù)。每個(gè)用戶角色被映射到本發(fā)明軟件的特定功能。訪問控制列表可具有產(chǎn)品功能和與之相關(guān)的用戶角色之間的映射。管理員可增加用戶角色,并且將這些角色映射到各功能。參照圖7的示意圖,管理員700具有對所有功能和配置的讀取和寫入訪問權(quán)以及對日志文件的訪問權(quán)。例如,軟件陷阱的創(chuàng)建、修改、激活、去激活和刪除以及監(jiān)視級別的改變僅可用于管理員。操作員705具有對大部分功能的顯示訪問權(quán),以及對特定功能配置的訪問權(quán)。用戶710具有對功能和報(bào)告的顯示訪問權(quán),但沒有對任何功能配置的訪問權(quán)。
架構(gòu)本發(fā)明的系統(tǒng)可具有下述架構(gòu)。該架構(gòu)的性質(zhì)是運(yùn)行在每個(gè)應(yīng)用服務(wù)器上的代理以及專用服務(wù)器上的其余組件,包括提供中央控制的內(nèi)核、用于從探測引擎接收數(shù)據(jù)的發(fā)布服務(wù)器、用于將數(shù)據(jù)從高速緩存移動(dòng)到數(shù)據(jù)庫的歸檔代理、數(shù)據(jù)庫、用于提供所有最終用戶應(yīng)用的可視化引擎和用于從應(yīng)用服務(wù)器(如Websphere)收集某些應(yīng)用服務(wù)器特定數(shù)據(jù)的應(yīng)用服務(wù)器代理。一種示例性架構(gòu)如圖8所示。如2510所示的應(yīng)用服務(wù)器代理安裝在應(yīng)用服務(wù)器上。探測和發(fā)布引擎2511是應(yīng)用服務(wù)器代理2510的主要組件。其余組件可安裝在專用服務(wù)器2520上。內(nèi)核2530提供中央控制。發(fā)布服務(wù)器2540從應(yīng)用服務(wù)器代理2510接收數(shù)據(jù),并且將數(shù)據(jù)移動(dòng)到歸檔代理2550。歸檔代理2550將數(shù)據(jù)移動(dòng)到數(shù)據(jù)庫2560??梢暬?570提供所有最終用戶應(yīng)用,并且與歷史信息數(shù)據(jù)庫通信并且與應(yīng)用服務(wù)器代理2510直接通信以請求和接收快照信息。
在一個(gè)實(shí)施例中,在上述方法中向用戶提供的數(shù)據(jù)的源可以是探測和發(fā)布引擎。探測和發(fā)布引擎獲得與特定線程有關(guān)的所有信息。在優(yōu)選實(shí)施例中,對于探測代理,可采用標(biāo)準(zhǔn)Java剖析接口(JVMPI)。
參照圖9,結(jié)合與之通信的java虛擬機(jī)2610、以及應(yīng)用服務(wù)器2615示出探測和發(fā)布引擎2511。探測和發(fā)布引擎2511最好具有五個(gè)組件探測控制器2512、命令代理2513、事件代理2514、事件處理程序(handler)2515以及發(fā)布引擎2516。探測控制器2512是控制其他組件的生命周期的控制器線程。事件代理2514對感興趣的JVMPI事件登記事件處理程序。當(dāng)發(fā)生該事件時(shí),則調(diào)用這些處理程序。這些處理程序收集相關(guān)信息,并且將它添加到事件隊(duì)列。然后,發(fā)布引擎2516從事件隊(duì)列獲得數(shù)據(jù)并且將其發(fā)送到發(fā)布服務(wù)器2540。這些代理可使用通過Java開發(fā)包1.2.2或以上版本提供的標(biāo)準(zhǔn)Java剖析接口來構(gòu)造。
在本實(shí)施例中,JVMPI庫通過JVM來裝載,并且與JVM、探測控制器、事件代理和命令代理通信。JNI功能可用來捕獲所有基于事件的數(shù)據(jù)、日期/事件戳、壁時(shí)鐘(wall clock)和CPU時(shí)鐘。由JVMPI庫、事件代理、命令代理、發(fā)布引擎和探測控制器登記的事件如表2所示表2
從JVMPI庫獲得的信息存儲(chǔ)在稱作事件隊(duì)列的隊(duì)列中,并且事件代理從隊(duì)列檢索記錄,并且將它們打包到數(shù)據(jù)包中,并且通過發(fā)布引擎將它們發(fā)送到發(fā)布服務(wù)器。由事件引擎從隊(duì)列收集的數(shù)據(jù)如表3所示。
表3
命令代理是向內(nèi)核登記的RMI服務(wù)。命令代理從可視化引擎和其他外部組件接收命令,并且使用JVMPI或JNI調(diào)用滿足它們。示例性命令列表以及將這些命令提供給JVMPI還是JNI如表4所示表4
探測控制器最好也是向內(nèi)核2530登記的RMI服務(wù),并且啟動(dòng)和停止其他探測組件獲得探測配置。探測器的新配置從內(nèi)核2530發(fā)送到探測控制器。當(dāng)接收到新配置時(shí),探測控制器將確定是否應(yīng)啟動(dòng)或停止探測器或者改變過濾。探測/發(fā)布引擎的邏輯圖如圖10所示。根據(jù)該邏輯圖,當(dāng)如2702所示裝載JVM時(shí),如2704所示通過JVMPI向內(nèi)核登記標(biāo)識(shí)線程啟動(dòng)、線程結(jié)束和JVM初始化完成的事件。當(dāng)如2706所示完成JVM的初始化時(shí),則如2708所示設(shè)置系統(tǒng)屬性并且創(chuàng)建用于啟動(dòng)探測器的線程。然后,線程如2710所示激活方法進(jìn)入和類裝載事件,并且如2712所示等待直到應(yīng)用服務(wù)器啟動(dòng)完畢為止。在2714,方法進(jìn)入啟動(dòng)JVM中的處理流程,其在2716檢查應(yīng)用服務(wù)器是否被啟動(dòng)。如果被啟動(dòng),則處理流程傳到InitProbe線程,其在2718禁止方法進(jìn)入和類裝載事件,并且在2720創(chuàng)建探測控制器線程。在2722,探測控制器線程從內(nèi)核查找探測配置。如果沒有找到探測配置,則流程結(jié)束,如2724和2726所示。如果找到配置,則處理流程進(jìn)入在2728判定在配置中是否激活探測。如果否,則處理流程結(jié)束。處理流程也可采用來自內(nèi)核的RMI調(diào)用的形式以新配置開始,如2730所示。如果探測被激活,則處理流程進(jìn)入啟動(dòng)事件代理和命令代理,激活類裝載事件和方法進(jìn)入事件,如2732所示。命令代理等待來自可視化引擎的命令,如2734和2736所示。方法進(jìn)入事件的激活啟動(dòng)JVM中的處理流程,如2750所示。獲得諸如CPU時(shí)鐘、壁時(shí)鐘、方法標(biāo)識(shí)、線程標(biāo)識(shí)和/或URL和SQL的數(shù)據(jù),如2750所示,并且將其傳到事件隊(duì)列2760。類裝載事件啟動(dòng)JVM中的處理流程,如2754所示。啟動(dòng)獲得類名、方法名和簽名的功能,如2756所示,并且將該信息傳到類哈希表2762。事件代理從事件隊(duì)列2760檢索記錄,如2780所示。事件代理將根據(jù)發(fā)布頻率進(jìn)行等待,如2782所示。
可視化引擎2750提供在本發(fā)明的方法和系統(tǒng)中使用的前端用戶界面組件。標(biāo)準(zhǔn)J2EE技術(shù)可用于實(shí)現(xiàn)可視化引擎2750。可視化引擎2750的前端框架處理諸如會(huì)話管理和安全性的內(nèi)務(wù)處理(housekeeping)。可視化引擎2750最好處理盡可能多的常用任務(wù)以便提供有益于開發(fā)前端應(yīng)用和商務(wù)邏輯組件的環(huán)境??梢暬?750位于數(shù)據(jù)庫之上,其響應(yīng)用戶請求而訪問數(shù)據(jù)庫。該架構(gòu)如圖28所示,并且被示出為基于瀏覽器,使用瀏覽器2810與可以是Apache萬維網(wǎng)服務(wù)器的萬維網(wǎng)服務(wù)器2815和在數(shù)據(jù)庫與萬維網(wǎng)服務(wù)器之間接口的應(yīng)用服務(wù)器2820如IBM Websphere進(jìn)行通信。小服務(wù)程序可用來處理請求和管理應(yīng)用流程。小服務(wù)程序也可用來通過執(zhí)行表單數(shù)據(jù)輸入驗(yàn)證以及將包含數(shù)據(jù)的java組件對象發(fā)送到JSP頁來控制前端行為。JSP頁可處理大部分前端表現(xiàn)邏輯。商務(wù)邏輯可使用企業(yè)版java組件來實(shí)現(xiàn)。通常,使用無狀態(tài)會(huì)話組件。
小服務(wù)程序如上所述可用于表單輸入數(shù)據(jù)驗(yàn)證,并且可用于應(yīng)用邏輯流程??商峁┧行》?wù)程序應(yīng)用必須從其擴(kuò)展的基本小服務(wù)程序?;拘》?wù)程序設(shè)置全局變量,處理認(rèn)證和授權(quán),并且必要時(shí)執(zhí)行到登錄和拒絕訪問頁的重定向。提供資源束(bundle)、日志消息和審核追蹤消息文件。JSP生成用來使網(wǎng)頁顯示在瀏覽器中的HTML代碼。小服務(wù)程序使用java組件對象將所需數(shù)據(jù)傳到JSP。
無狀態(tài)會(huì)話組件的頂層構(gòu)成API。存在處理對來自數(shù)據(jù)庫的數(shù)據(jù)的訪問的頂層之下的企業(yè)版java組件或java類層。來自數(shù)據(jù)庫的數(shù)據(jù)可以通過作為數(shù)據(jù)庫訪問數(shù)據(jù)訪問框架一部分的數(shù)據(jù)庫訪問層來獲得。
應(yīng)用活動(dòng)顯示功能提供如上所述的對數(shù)據(jù)的實(shí)時(shí)訪問,并且涉及可視化引擎與對應(yīng)發(fā)布服務(wù)器和探測器之間的直接通信。發(fā)布服務(wù)器接口和命令代理接口被提供用于該直接通信。這些接口的存根由內(nèi)核維護(hù),并且通過使用查詢代理幫手(helper)客戶端從內(nèi)核執(zhí)行查詢來由可視化引擎檢索。探測器正在其中運(yùn)行的每個(gè)服務(wù)器具有該探測器的唯一標(biāo)識(shí)。一旦獲得了探測器標(biāo)識(shí),就從內(nèi)核獲得命令代理的接口存根。然后,從探測器獲得由探測器使用的發(fā)布服務(wù)器的標(biāo)識(shí)。從內(nèi)核獲得發(fā)布服務(wù)器的對應(yīng)接口存根。然后,可從所選發(fā)布服務(wù)器直接獲得活動(dòng)請求和相關(guān)數(shù)據(jù)的列表。可從探測器直接獲得附加請求數(shù)據(jù)??梢暬媾c探測器的命令代理和發(fā)布服務(wù)器之間的通信是實(shí)時(shí)和同步的。
可視化引擎包括上述安全功能。由于J2EE規(guī)范安全特性不足以提供上述安全特性,因此開發(fā)了私有API。安全特性包括認(rèn)證和授權(quán)功能。通過包裝第三方認(rèn)證系統(tǒng)的私有Java API來執(zhí)行認(rèn)證。通過用戶或組維護(hù)訪問控制列表來執(zhí)行授權(quán)。用戶與特定組相關(guān)聯(lián),并且只能訪問那些組中的服務(wù)器數(shù)據(jù)。服務(wù)器均與一個(gè)或多個(gè)組相關(guān)聯(lián)。
現(xiàn)在將詳細(xì)描述內(nèi)核。內(nèi)核使各種服務(wù)能夠在網(wǎng)絡(luò)上相互發(fā)現(xiàn),并且提供讓服務(wù)以動(dòng)態(tài)、魯棒的方式交互的方式。當(dāng)使服務(wù)在線或離線時(shí),不需任何用戶干預(yù)。當(dāng)任何其他服務(wù)在線或離線時(shí),加入內(nèi)核的服務(wù)可動(dòng)態(tài)適應(yīng)。服務(wù)消費(fèi)者無需服務(wù)實(shí)現(xiàn)的先驗(yàn)知識(shí)。參照附圖,示出了內(nèi)核的兩個(gè)實(shí)例2530和2530’。內(nèi)核的架構(gòu)包括核心2531、租賃管理器(lease administrator)2532、RFS服務(wù)器2533、代碼庫服務(wù)器2534、登記數(shù)據(jù)庫2535、可用性服務(wù)器2536和配置服務(wù)器2537。內(nèi)核的兩個(gè)實(shí)例最好運(yùn)行在單獨(dú)服務(wù)器上以獲得增強(qiáng)可用性。
內(nèi)核核心2531處理來自服務(wù)的所有加入、續(xù)約、離開和查詢請求。服務(wù)是探測代理、可用性服務(wù)器2536和配置服務(wù)器2537。對于加入請求,服務(wù)將代理對象及其相關(guān)服務(wù)屬性傳給內(nèi)核。內(nèi)核通過將代理對象和服務(wù)屬性存儲(chǔ)在登記數(shù)據(jù)庫中來完成請求。當(dāng)客戶端需要特定類型的服務(wù)來完成任務(wù)時(shí),它通過傳遞搜索模板并且向內(nèi)核發(fā)出查詢請求來查找服務(wù)。根據(jù)搜索模板,內(nèi)核將對應(yīng)代理對象返回給客戶端。要求每個(gè)服務(wù)通過周期性地向內(nèi)核發(fā)出續(xù)約請求來續(xù)約其租賃。如果內(nèi)核在需要時(shí)沒有接收到續(xù)約請求,則內(nèi)核從登記數(shù)據(jù)庫刪除服務(wù)的代理對象和服務(wù)屬性。該續(xù)約要求避免將請求發(fā)送到不可用的服務(wù)。當(dāng)續(xù)約租賃時(shí),探測和發(fā)布服務(wù)器最好將應(yīng)用和系統(tǒng)信息如已完成請求的數(shù)量和CPU利用率捆綁在一起。這樣,租賃概念用來報(bào)告服務(wù)器的可用性和高級別統(tǒng)計(jì)信息。服務(wù)也可向內(nèi)核發(fā)出離開請求。
租賃管理器組件2532跟蹤登記數(shù)據(jù)庫中的記錄。如果任何登記期滿,或者接收到離開請求,則租賃管理器2532使對應(yīng)記錄被刪除,使得內(nèi)核將不把對應(yīng)代理對象傳給任何客戶端。RFS(存根請求)服務(wù)器2533在連接端口上監(jiān)聽。當(dāng)識(shí)別出連接時(shí),向服務(wù)或客戶端送出內(nèi)核的序列化存根對象以用于與內(nèi)核接口。代碼庫服務(wù)器2534類似于HTTP服務(wù)器,但是提供一種設(shè)施來讓服務(wù)客戶端下載其從內(nèi)核獲得的代理對象的類定義。登記數(shù)據(jù)庫2535提供代理對象和相關(guān)服務(wù)屬性的存儲(chǔ)器內(nèi)存儲(chǔ)。服務(wù)器可用性和統(tǒng)計(jì)信息駐留在登記數(shù)據(jù)庫2535中。
可用性服務(wù)器2536獲得快照并且存儲(chǔ)登記數(shù)據(jù)庫2535的歷史,以便幫助向可視化引擎2570提供服務(wù)器的可用性和統(tǒng)計(jì)數(shù)據(jù)。
配置服務(wù)器2537是存儲(chǔ)所有組件配置數(shù)據(jù)的集中地方。配置數(shù)據(jù)采取XML形式并且保存在數(shù)據(jù)庫中。用戶可通過可視化引擎來改變配置。當(dāng)完成此時(shí),配置服務(wù)器2537從內(nèi)核檢索適應(yīng)于舊配置的代理對象列表。配置服務(wù)器2537利用代理對象以廣播新配置。這用來響應(yīng)可視化引擎上的用戶命令更新探測配置。
稱作加入管理器的幫手工具請求內(nèi)核的存根對象,并且向內(nèi)核加入代理對象及其服務(wù)屬性。如果存根對象不可用,則該工具將繼續(xù)重試直到它成功為止。該工具還維護(hù)和續(xù)約租賃。查詢管理器工具可由客戶端用來查詢特定服務(wù)。
發(fā)布服務(wù)器2540管理從各個(gè)發(fā)布引擎接收的數(shù)據(jù)。多個(gè)發(fā)布服務(wù)器可以在單個(gè)安裝(installation)中提供。發(fā)布服務(wù)器提供可視化引擎的查詢能力。發(fā)布服務(wù)器還管理性能管理相關(guān)數(shù)據(jù)和系統(tǒng)資源相關(guān)數(shù)據(jù)的增量檢索。發(fā)布服務(wù)器架構(gòu)如圖13所示。
發(fā)布服務(wù)器2540可被實(shí)現(xiàn)為多線程進(jìn)程。每個(gè)線程連接到特定發(fā)布引擎,并且從其接收數(shù)據(jù)。它還可包含附加線程來處理啟動(dòng)、關(guān)閉和與內(nèi)核的通信。
參照圖13,發(fā)布服務(wù)器2540產(chǎn)生一個(gè)線程來加入內(nèi)核,并且定期續(xù)約其合約,如3002所示。發(fā)布服務(wù)器2540還產(chǎn)生一個(gè)線程來接受套接字連接,如3004所示。如判定塊3006所示,下一步驟依賴于是否從對應(yīng)發(fā)布引擎接收到查詢。如果接收到數(shù)據(jù)而非查詢,則建立持久性套接字連接,如3008所示。數(shù)據(jù)也與請求相關(guān)聯(lián)。然后,通過發(fā)布引擎從探測器獲得數(shù)據(jù),如3010所示。如果接收到服務(wù)器重啟信號,如3012和3014所示,則發(fā)布服務(wù)器在繼續(xù)之前復(fù)位被重啟服務(wù)器的累積數(shù)據(jù)。如果如3016和3018所示數(shù)據(jù)來自新探測器,則登記服務(wù)器使得將周期性地例如每五分鐘檢索服務(wù)器的性能管理相關(guān)數(shù)據(jù)和系統(tǒng)資源相關(guān)數(shù)據(jù)。然后,處理流程進(jìn)入處理從探測器接收的記錄如方法級記錄、類裝載記錄以及GC記錄,如3020所示。如果完成了請求或者在特定數(shù)量的時(shí)間內(nèi)沒有有關(guān)請求的活動(dòng),如3022所示,則從活動(dòng)請求列表中刪除該請求,如3024所示。然后,處理流程返回到從探測器接受更多數(shù)據(jù),如從3026起始的標(biāo)注所示。
如果確定數(shù)據(jù)是查詢,則可使用屬性來確定適當(dāng)?shù)男畔㈩愋汀2樵兛稍儐柛鞣N信息,如3030、3032和3034所示。然后,對結(jié)果進(jìn)行序列化,并且將其回送到發(fā)布引擎。發(fā)布服務(wù)器還接收由其客戶端發(fā)出的諸如對狀態(tài)的特定管理請求,如3036所示,并且停止服務(wù),如3038所示。這些任務(wù)可由管理員調(diào)用。當(dāng)提供了響應(yīng)查詢的信息時(shí),關(guān)閉連接,如3034所示,并且發(fā)布服務(wù)器變得可用于再次接受套接字連接。
應(yīng)當(dāng)理解,前述架構(gòu)代表一種具有用于執(zhí)行本發(fā)明方法的各步驟的裝置的系統(tǒng)??梢暬姘ㄓ糜谙蛴脩麸@示信息的裝置、用于提示用戶的裝置以及用于從用戶接收請求的裝置。探測引擎包括用于獲得有關(guān)分布式應(yīng)用的信息以及用于執(zhí)行分布式應(yīng)用的過濾監(jiān)視的裝置。應(yīng)當(dāng)理解,發(fā)布引擎、歸檔、數(shù)據(jù)庫和內(nèi)核的功能與可視化引擎和探測引擎協(xié)作以提供一種用于執(zhí)行本發(fā)明的各步驟的裝置。
自診斷在本發(fā)明的方法、系統(tǒng)和計(jì)算機(jī)程序中,可提供一種方法和系統(tǒng)用于進(jìn)行該架構(gòu)的內(nèi)部組件的分析,并且向操作員報(bào)告分析結(jié)果。在一個(gè)例子中,提供了內(nèi)核、數(shù)據(jù)收集器組件、發(fā)布服務(wù)器、以及歸檔代理的視圖。
內(nèi)核視圖表示本發(fā)明的軟件系統(tǒng)的內(nèi)核組件的所有運(yùn)行實(shí)例。對于每個(gè)實(shí)例,提供了每一個(gè)實(shí)例的內(nèi)核運(yùn)行時(shí)環(huán)境詳細(xì)信息和組件概覽。內(nèi)核運(yùn)行時(shí)環(huán)境詳細(xì)信息中的示例性值包括平臺(tái)、IP地址、各個(gè)端口號、代碼庫庫路徑、合約續(xù)約間隔、開始時(shí)間、安全策略所在文件、驅(qū)動(dòng)程序名稱、以及其對應(yīng)數(shù)據(jù)庫的URL。組件概覽可包括服務(wù)名稱、組件標(biāo)識(shí)、平臺(tái)、IP地址、監(jiān)聽端口號、第一次加入時(shí)間以及最后合約續(xù)約時(shí)間。組件概覽部分中的每個(gè)組件標(biāo)識(shí)可以是提供對應(yīng)視圖的鏈接。例如,如果用戶單擊組件標(biāo)識(shí)X上的鏈接,并且其服務(wù)名稱是數(shù)據(jù)收集器控制器,則向用戶提供數(shù)據(jù)收集器組件視圖。
數(shù)據(jù)收集器組件視圖顯示與所有正在正常運(yùn)行的數(shù)據(jù)收集器控制器有關(guān)的數(shù)據(jù)。在該視圖中可存在三個(gè)部分?jǐn)?shù)據(jù)收集器控制器運(yùn)行時(shí)環(huán)境詳細(xì)信息、數(shù)據(jù)收集器運(yùn)行時(shí)環(huán)境詳細(xì)信息、以及發(fā)布服務(wù)器關(guān)系。前兩個(gè)部分提供數(shù)據(jù)收集器控制器正在運(yùn)行的配置和環(huán)境。發(fā)布服務(wù)器關(guān)系部分顯示數(shù)據(jù)收集器正在連接的發(fā)布服務(wù)器的標(biāo)識(shí)。對于數(shù)據(jù)收集器控制器運(yùn)行時(shí)環(huán)境詳細(xì)信息,標(biāo)識(shí)包括組件標(biāo)識(shí)、管理服務(wù)器的標(biāo)識(shí)、應(yīng)用服務(wù)器的標(biāo)識(shí)、平臺(tái)的標(biāo)識(shí)、IP地址、端口號、開始時(shí)間、內(nèi)核代碼庫文件位置、所連接內(nèi)核、配置簡檔(profile)、內(nèi)核是否被配置以及安全策略文件。對于數(shù)據(jù)收集器運(yùn)行時(shí)環(huán)境詳細(xì)信息,該信息是該組件的標(biāo)識(shí)號、端口號、以及該組件是否被激活。
發(fā)布服務(wù)器視圖提供關(guān)于發(fā)布服務(wù)器組件的所有正在正常運(yùn)行實(shí)例的信息。對于每個(gè)實(shí)例,可存在四個(gè)部分發(fā)布服務(wù)器運(yùn)行時(shí)環(huán)境詳細(xì)信息,數(shù)據(jù)收集器關(guān)系,PMI代理關(guān)系,以及歸檔代理關(guān)系。
歸檔代理視圖顯示歸檔代理的所有正在正常運(yùn)行實(shí)例,并且對于歸檔代理的每個(gè)實(shí)例,存在兩個(gè)信息部分歸檔代理運(yùn)行時(shí)環(huán)境詳細(xì)信息和發(fā)布服務(wù)器關(guān)系。歸檔代理運(yùn)行時(shí)環(huán)境詳細(xì)信息列出歸檔代理的配置和環(huán)境。發(fā)布服務(wù)器關(guān)系信息標(biāo)識(shí)歸檔代理正在服務(wù)的發(fā)布服務(wù)器。
應(yīng)當(dāng)理解,前面提供了本發(fā)明系統(tǒng)的實(shí)時(shí)監(jiān)視,以便可監(jiān)視性能和確定問題。
本發(fā)明的系統(tǒng)可以通過在要監(jiān)視的服務(wù)器上安裝特定探測軟件并且在單獨(dú)服務(wù)器上安裝本發(fā)明的其余軟件來安裝。該配置提供本發(fā)明系統(tǒng)的相對簡單安裝。
本發(fā)明可采用方法和用于實(shí)施這些方法的設(shè)備的形式來實(shí)施。本發(fā)明也可采用包含在有形介質(zhì)如軟盤、CD-ROM、硬盤驅(qū)動(dòng)器或者任何其他可機(jī)讀存儲(chǔ)介質(zhì)中的程序代碼的形式來實(shí)施,其中,當(dāng)程序代碼被裝載到機(jī)器如計(jì)算機(jī)中并由其執(zhí)行時(shí),該機(jī)器變成用于實(shí)施本發(fā)明的設(shè)備。本發(fā)明也可采用例如不管是存儲(chǔ)在存儲(chǔ)介質(zhì)中、裝載到機(jī)器中和/或由其執(zhí)行、還是在某傳輸介質(zhì)上例如在電氣連線或電纜上、通過光纖或者通過電磁輻射來傳輸?shù)某绦虼a的形式來實(shí)施,其中,當(dāng)程序代碼被裝載到機(jī)器如計(jì)算機(jī)中并由其執(zhí)行時(shí),該機(jī)器變成用于實(shí)施本發(fā)明的設(shè)備。當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),程序代碼段與處理器結(jié)合以提供類似于特定邏輯電路而工作的獨(dú)特裝置。
雖然示例性實(shí)施例是關(guān)于使用Java技術(shù)特別是J2EE技術(shù)的企業(yè)應(yīng)用來描述的,但是本發(fā)明的方法也可采用其他技術(shù)來實(shí)現(xiàn)。例如,本發(fā)明的方法可采用其他平臺(tái)無關(guān)技術(shù)來實(shí)現(xiàn)。本發(fā)明的方法也可采用適用于分布式企業(yè)應(yīng)用的其他技術(shù)來實(shí)現(xiàn)。
雖然參照優(yōu)選實(shí)施例描述了本發(fā)明,但是本發(fā)明不應(yīng)被認(rèn)為是局限于優(yōu)選實(shí)施例。
權(quán)利要求
1.一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的方法,包括以下步驟從用戶接收用于監(jiān)視的選定信息,根據(jù)所選信息監(jiān)視應(yīng)用性能,并且根據(jù)所選信息使監(jiān)視性能信息可用于用戶。
2.如權(quán)利要求1所述的方法,其中提示用戶標(biāo)識(shí)要監(jiān)視的信息的范圍,并且其中根據(jù)所選范圍來監(jiān)視應(yīng)用服務(wù)器性能。
3.如權(quán)利要求2所述的方法,其中所述范圍包括第一監(jiān)視級別,其中所選信息包括請求級數(shù)據(jù)和服務(wù)器級數(shù)據(jù)。
4.如權(quán)利要求3所述的方法,其中所述范圍還包括第二監(jiān)視級別,其中所選信息還包括API級數(shù)據(jù)。
5.如權(quán)利要求4所述的方法,其中所述范圍包括第三監(jiān)視級別,其中所選信息還包括方法級數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其中提示用戶標(biāo)識(shí)用于信息監(jiān)視的調(diào)度表,并且其中根據(jù)所標(biāo)識(shí)的調(diào)度表來監(jiān)視應(yīng)用服務(wù)器性能。
7.一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的方法,包括以下步驟提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件,將參數(shù)的值或質(zhì)量與該閾值或條件進(jìn)行比較,并且如果該參數(shù)達(dá)到該閾值或條件,則記錄有關(guān)該參數(shù)的信息。
8.如權(quán)利要求7所述的方法,還包括以下步驟將該參數(shù)與用于通知用戶的標(biāo)準(zhǔn)進(jìn)行比較,并且如果滿足該標(biāo)準(zhǔn),則通知用戶。
9.如權(quán)利要求7所述的方法,其中閾值或條件是資源值。
10.如權(quán)利要求9所述的方法,其中資源是方法屬性。
11.如權(quán)利要求10所述的方法,其中資源是CPU時(shí)間。
12.如權(quán)利要求7所述的方法,其中閾值或條件是命中數(shù)。
13.如權(quán)利要求12所述的方法,其中資源是請求,并且條件是包含在該請求中的字符串。
14.如權(quán)利要求7所述的方法,其中資源與應(yīng)用服務(wù)器性能相關(guān),并且條件是CPU時(shí)間百分比。
15.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的方法,包括以下步驟向用戶提供性能信息,從用戶接收對更特定性能信息的請求,并且提供更詳細(xì)的性能信息。
16.如權(quán)利要求15所述的方法,還包括以下步驟向用戶提供請求分析、方法分析、SQL分析、服務(wù)器可用性分析以及應(yīng)用服務(wù)器分析的選擇,并且從用戶接收選擇。
17.如權(quán)利要求16所述的方法,還包括以下步驟根據(jù)所接收的選擇提供趨勢分析。
18.如權(quán)利要求17所述的方法,還包括以下步驟接收對有關(guān)趨勢分析一部分的分解報(bào)告的請求,并且提供分解報(bào)告。
19.如權(quán)利要求18所述的方法,還包括以下步驟接收對有關(guān)分解報(bào)告一部分的詳細(xì)報(bào)告的請求,并且提供詳細(xì)報(bào)告。
20.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的方法,包括以下步驟從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,比較運(yùn)行時(shí)環(huán)境數(shù)據(jù),并且顯示比較。
21.如權(quán)利要求20所述的方法,其中所述運(yùn)行時(shí)環(huán)境數(shù)據(jù)的形式為選定服務(wù)器之間的CPU數(shù)據(jù)、服務(wù)器數(shù)據(jù)和Java數(shù)據(jù)中的一項(xiàng)或多項(xiàng)。
22.如權(quán)利要求21所述的方法,其中所述CPU數(shù)據(jù)包括CPU速度、在線CPU數(shù)、離線CPU數(shù)、存儲(chǔ)器、操作系統(tǒng)版本以及物理盤空間中的一項(xiàng)或多項(xiàng)。
23.如權(quán)利要求21所述的方法,其中所述服務(wù)器數(shù)據(jù)包括應(yīng)用服務(wù)器、啟動(dòng)目錄、監(jiān)聽端口、SSL監(jiān)聽端口、已登記小服務(wù)程序數(shù)、已登記EJB數(shù)、JDBC連接池?cái)?shù)以及EAR數(shù)中的一項(xiàng)或多項(xiàng)。
24.如權(quán)利要求21所述的方法,其中所述Java數(shù)據(jù)包括JDK版本、安裝目錄、Java策略、操作系統(tǒng)信息、類路徑以及庫路徑中的一項(xiàng)或多項(xiàng)。
25.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的方法,包括以下步驟從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,并且提供匹配和不同文件名的列表。
26.如權(quán)利要求25所述的方法,還包括以下步驟比較文件大小。
27.如權(quán)利要求25所述的方法,還包括以下步驟比較文件時(shí)間戳。
28.如權(quán)利要求25所述的方法,還包括以下步驟從用戶接收文件選擇,進(jìn)行文件比較,并且將結(jié)果提供給用戶。
29.如權(quán)利要求28所述的方法,其中進(jìn)行文件比較的步驟還包括通過MD5校驗(yàn)和計(jì)算進(jìn)行文件比較。
30.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的方法,包括以下步驟向每個(gè)用戶分配角色,并且通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問。
31.如權(quán)利要求30所述的方法,其中所述分配的角色之一是管理員,所述管理員具有對每個(gè)功能的讀取/寫入訪問權(quán)。
32.如權(quán)利要求30所述的方法,其中所述分配的角色之一是用戶,所述用戶僅具有對每個(gè)功能的顯示訪問權(quán)。
33.一種用于處理請求的方法,包括以下步驟接收請求字符串,并且將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串。
34.如權(quán)利要求33所述的方法,其中所接收的請求字符串的形式為JSP、小服務(wù)程序和遠(yuǎn)程企業(yè)版Java組件調(diào)用之一。
35.如權(quán)利要求33所述的方法,還包括以下步驟提示用戶創(chuàng)建用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的規(guī)則,響應(yīng)提示步驟而接收規(guī)則,并且應(yīng)用所接收的規(guī)則。
36.一種用于在分布式環(huán)境中監(jiān)視應(yīng)用性能的方法,包括以下步驟在運(yùn)行至少一個(gè)應(yīng)用的系統(tǒng)中提供具有用于監(jiān)視和管理的各組件的管理應(yīng)用,并且實(shí)時(shí)地監(jiān)視并向用戶提供有關(guān)各組件的配置和各組件之間的關(guān)系的信息。
37.一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的系統(tǒng),包括用于根據(jù)從用戶接收的選定信息監(jiān)視應(yīng)用性能的裝置,以及用于根據(jù)所選信息使監(jiān)視性能信息可用于用戶的裝置。
38.如權(quán)利要求37所述的系統(tǒng),還包括用于提示用戶標(biāo)識(shí)要監(jiān)視的信息的范圍的裝置,以及用于根據(jù)所選范圍來監(jiān)視應(yīng)用服務(wù)器性能的裝置。
39.如權(quán)利要求38所述的系統(tǒng),其中所述范圍包括第一監(jiān)視級別,其中所選信息包括請求級數(shù)據(jù)和服務(wù)器級數(shù)據(jù)。
40.如權(quán)利要求39所述的系統(tǒng),其中所述范圍還包括第二監(jiān)視級別,其中所選信息還包括API級數(shù)據(jù)。
41.如權(quán)利要求40所述的系統(tǒng),其中所述范圍包括第三監(jiān)視級別,其中所選信息還包括方法級數(shù)據(jù)。
42.如權(quán)利要求37所述的系統(tǒng),還包括用于根據(jù)從用戶接收的所標(biāo)識(shí)調(diào)度表來監(jiān)視應(yīng)用服務(wù)器性能的裝置。
43.一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的系統(tǒng),包括用于提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件的裝置,用于將所選服務(wù)器或服務(wù)器組上參數(shù)的值或質(zhì)量與所選閾值或條件進(jìn)行比較的裝置,以及用于如果所選參數(shù)達(dá)到所選閾值或條件則記錄有關(guān)所選參數(shù)的信息的裝置。
44.如權(quán)利要求43所述的系統(tǒng),還包括用于將該參數(shù)與用于通知用戶的標(biāo)準(zhǔn)進(jìn)行比較的裝置,以及用于如果滿足該標(biāo)準(zhǔn)則通知用戶的裝置。
45.如權(quán)利要求43所述的系統(tǒng),其中閾值或條件是資源值。
46.如權(quán)利要求45所述的系統(tǒng),其中資源是方法屬性。
47.如權(quán)利要求46所述的系統(tǒng),其中資源是CPU時(shí)間。
48.如權(quán)利要求43所述的系統(tǒng),其中閾值或條件是命中數(shù)。
49.如權(quán)利要求48所述的系統(tǒng),其中資源是請求,并且條件是包含在該請求中的字符串。
50.如權(quán)利要求43所述的系統(tǒng),其中資源與應(yīng)用服務(wù)器性能相關(guān),并且條件是CPU時(shí)間百分比。
51.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的系統(tǒng),包括用于向用戶提供性能信息的裝置,以及用于響應(yīng)對更詳細(xì)性能信息的用戶請求而提供更詳細(xì)性能信息的裝置。
52.如權(quán)利要求51所述的系統(tǒng),還包括用于向用戶提供請求分析、方法分析、SQL分析、服務(wù)器可用性分析以及應(yīng)用服務(wù)器分析的選擇的裝置,以及用于從用戶接收選擇的裝置。
53.如權(quán)利要求52所述的系統(tǒng),還包括用于根據(jù)所接收的選擇提供趨勢分析的裝置。
54.如權(quán)利要求53所述的系統(tǒng),還包括用于接收對有關(guān)趨勢分析一部分的分解報(bào)告的請求的裝置,以及用于提供分解報(bào)告的裝置。
55.如權(quán)利要求53所述的系統(tǒng),還包括用于接收對有關(guān)分解報(bào)告一部分的詳細(xì)報(bào)告的請求的裝置,以及用于提供詳細(xì)報(bào)告的裝置。
56.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的系統(tǒng),包括用于從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器、并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器的裝置,用于比較運(yùn)行時(shí)環(huán)境數(shù)據(jù)的裝置,以及用于顯示比較的裝置。
57.如權(quán)利要求56所述的系統(tǒng),其中所述運(yùn)行時(shí)環(huán)境數(shù)據(jù)的形式為選定服務(wù)器之間的CPU數(shù)據(jù)、服務(wù)器數(shù)據(jù)和Java數(shù)據(jù)中的一項(xiàng)或多項(xiàng)。
58.如權(quán)利要求57所述的系統(tǒng),其中所述CPU數(shù)據(jù)包括CPU速度、在線CPU數(shù)、離線CPU數(shù)、存儲(chǔ)器、操作系統(tǒng)版本以及物理盤空間中的一項(xiàng)或多項(xiàng)。
59.如權(quán)利要求57所述的系統(tǒng),其中所述服務(wù)器數(shù)據(jù)包括應(yīng)用服務(wù)器、啟動(dòng)目錄、監(jiān)聽端口、SSL監(jiān)聽端口、已登記小服務(wù)程序數(shù)、已登記EJB數(shù)、JDBC連接池?cái)?shù)以及EAR數(shù)中的一項(xiàng)或多項(xiàng)。
60.如權(quán)利要求57所述的系統(tǒng),其中所述Java數(shù)據(jù)包括JDK版本、安裝目錄、Java策略、操作系統(tǒng)信息、類路徑以及庫路徑中的一項(xiàng)或多項(xiàng)。
61.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的系統(tǒng),包括用于執(zhí)行以下操作的裝置響應(yīng)所接收的作為授權(quán)服務(wù)器的第一服務(wù)器和作為比較服務(wù)器的第二服務(wù)器的標(biāo)識(shí),提供所述授權(quán)和比較服務(wù)器中匹配和不同文件名的列表。
62.如權(quán)利要求61所述的系統(tǒng),還包括用于比較文件大小的裝置。
63.如權(quán)利要求61所述的系統(tǒng),還包括用于比較文件時(shí)間戳的裝置。
64.如權(quán)利要求61所述的系統(tǒng),還包括用于對由用戶選擇的文件進(jìn)行比較、并且將結(jié)果提供給用戶的裝置。
65.如權(quán)利要求64所述的系統(tǒng),其中所述用于進(jìn)行比較的裝置包括用于通過MD5校驗(yàn)和計(jì)算進(jìn)行文件比較的裝置。
66.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的系統(tǒng),包括用于向每個(gè)用戶分配角色的裝置,以及用于通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問的裝置。
67.如權(quán)利要求66所述的系統(tǒng),其中所述分配的角色之一是管理員,所述管理員具有對每個(gè)功能的讀取/寫入訪問權(quán)。
68.如權(quán)利要求66所述的系統(tǒng),其中所述分配的角色之一是用戶,所述用戶僅具有對每個(gè)功能的顯示訪問權(quán)。
69.一種用于處理請求的系統(tǒng),包括用于接收請求字符串的裝置,以及用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的裝置。
70.如權(quán)利要求69所述的系統(tǒng),其中所接收的請求字符串的形式為JSP、小服務(wù)程序和遠(yuǎn)程企業(yè)版Java組件調(diào)用之一。
71.如權(quán)利要求69所述的系統(tǒng),還包括用于提示用戶創(chuàng)建用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的規(guī)則的裝置,以及用于應(yīng)用響應(yīng)提示用戶創(chuàng)建用于將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串的規(guī)則而接收的規(guī)則的裝置。
72.一種用于在分布式環(huán)境中監(jiān)視應(yīng)用性能的系統(tǒng),包括用于在運(yùn)行至少一個(gè)應(yīng)用的系統(tǒng)中提供具有用于監(jiān)視和管理的各組件的管理應(yīng)用的裝置,以及用于實(shí)時(shí)地監(jiān)視并向用戶提供有關(guān)各組件的配置和各組件之間的關(guān)系的信息的裝置。
73.一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟從用戶接收用于監(jiān)視的選定信息,根據(jù)所選信息監(jiān)視應(yīng)用性能,并且根據(jù)所選信息使監(jiān)視性能信息可用于用戶。
74.一種用于在分布式計(jì)算環(huán)境中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件,將參數(shù)的值或質(zhì)量與該閾值或條件進(jìn)行比較,并且如果該參數(shù)達(dá)到該閾值或條件,則記錄有關(guān)該參數(shù)的信息。
75.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟向用戶提供性能信息,從用戶接收對更特定性能信息的請求,并且提供更詳細(xì)的性能信息。
76.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟從用戶接收第一服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收第二服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,比較來自所述授權(quán)和比較服務(wù)器的運(yùn)行時(shí)環(huán)境數(shù)據(jù),并且顯示比較。
77.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟從用戶接收第一服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收第二服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,并且提供所述授權(quán)和比較服務(wù)器上匹配和不同文件名的列表。
78.一種用于在分布式計(jì)算機(jī)系統(tǒng)中監(jiān)視運(yùn)行在多個(gè)服務(wù)器上的應(yīng)用的性能的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟向每個(gè)用戶分配角色,并且通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問。
79.一種用于處理請求的計(jì)算機(jī)程序,所述程序包括存儲(chǔ)在介質(zhì)上的多條指令,所述指令在處理器上執(zhí)行時(shí)使該處理器執(zhí)行以下步驟接收請求字符串,并且將所接收的請求字符串映射成可區(qū)別請求字符串和可分拆請求字符串。
80.一種用于在分布式環(huán)境中監(jiān)視應(yīng)用性能的計(jì)算機(jī)程序,包括以下步驟在運(yùn)行至少一個(gè)應(yīng)用的系統(tǒng)中提供具有用于監(jiān)視和管理的各組件的管理應(yīng)用,并且實(shí)時(shí)地監(jiān)視并向用戶提供有關(guān)各組件的配置和各組件之間的關(guān)系的信息。
全文摘要
一種用于管理計(jì)算機(jī)系統(tǒng)和應(yīng)用的性能的方法,包括提示用戶選擇用于監(jiān)視的信息,監(jiān)視運(yùn)行在服務(wù)器上的應(yīng)用的性能,顯示數(shù)據(jù),并且提示用戶輸入性能調(diào)整。提示用戶選擇服務(wù)器或服務(wù)器組、資源和用于通知的閾值或條件,并且作為響應(yīng),系統(tǒng)將參數(shù)的值或質(zhì)量與該閾值或條件進(jìn)行比較,并且在該參數(shù)達(dá)到該閾值或條件的情況下向用戶提供通知。一種方法包括以下步驟向用戶提供性能信息,從用戶接收對更特定性能信息的請求,并且提供更詳細(xì)的性能信息。本發(fā)明的一種方法包括以下步驟從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,在所選服務(wù)器之間比較形式為CPU數(shù)據(jù)、服務(wù)器數(shù)據(jù)和Java數(shù)據(jù)中的一項(xiàng)或多項(xiàng)的運(yùn)行時(shí)環(huán)境數(shù)據(jù),并且向用戶顯示差別。本發(fā)明的一種方法包括以下步驟從用戶接收服務(wù)器的標(biāo)識(shí)作為授權(quán)服務(wù)器,并且接收另一服務(wù)器的標(biāo)識(shí)作為比較服務(wù)器,并且提供匹配和不同文件名的列表。該方法還可包括以下步驟從用戶接收文件選擇,進(jìn)行文件比較,并且將結(jié)果提供給用戶。本發(fā)明的一種方法包括以下步驟向每個(gè)用戶分配角色,并且通過訪問控制列表在功能訪問和每個(gè)用戶角色之間進(jìn)行映射,由此根據(jù)用戶所分配的角色限制功能訪問。
文檔編號G06F15/173GK1662901SQ03814877
公開日2005年8月31日 申請日期2003年6月25日 優(yōu)先權(quán)日2002年6月25日
發(fā)明者詹姆斯·C·鐘, 約瑟夫·L·常, 圖沙爾·M·帕特爾, 讓-雅克·海勒, 索志紅, 阿瑟·桑, 羅伯特·S·蘭姆, 雷蒙德·周, 亨利·唐, 耶羅梅·D·班克斯, 克里斯托弗·M·齊邵夫斯基 申請人:國際商業(yè)機(jī)器公司