一種數(shù)據(jù)處理方法和裝置制造方法
【專利摘要】本發(fā)明屬于信息處理領域,公開了一種數(shù)據(jù)處理方法,該方法包括:獲取依賴元數(shù)據(jù),其中,所述依賴元數(shù)據(jù)用于表示至少兩個組件之間數(shù)據(jù)上的依賴關系;獲得錯誤信息以及數(shù)據(jù)輸出,其中,所述錯誤信息用于描述在運行應用時發(fā)生的錯誤,所述數(shù)據(jù)輸出包括在運行所述應用時組件輸出的數(shù)據(jù),所述應用包括所述至少兩個組件;根據(jù)所述錯誤信息,分析與該錯誤信息相關的依賴元數(shù)據(jù)和數(shù)據(jù)輸出;提供分析結(jié)果,所述分析結(jié)果包括以下至少之一:發(fā)生錯誤的原因,錯誤修正方法的提示,導致錯誤發(fā)生的相關依賴元數(shù)據(jù)和導致錯誤發(fā)生的相關數(shù)據(jù)輸出。相應的,本發(fā)明還公開了一種數(shù)據(jù)處理裝置。通過本發(fā)明提供的技術方案可以輔助用戶快速準確的定位錯誤,并修改錯誤。
【專利說明】一種數(shù)據(jù)處理方法和裝置
【技術領域】
[0001] 本發(fā)明涉及信息處理領域,更具體地,涉及一種數(shù)據(jù)處理的方法和裝置。
【背景技術】
[0002] 隨著應用開發(fā)技術的不斷發(fā)展,越來越多的應用不再采用整體開發(fā)的方式,而是 分為多個組件進行開發(fā)。組成應用的多個組件之間存在數(shù)據(jù)依賴關系(datacbpendency) 以及時序約束(orderconstrain)。
[0003] 組成一個應用的多個組件可能是由不同開發(fā)者開發(fā)的,或者多個組件中存在能夠 重復使用的組件,也即存在通用組件。這些都可能會導致數(shù)據(jù)依賴關系和時序約束的錯誤, 從而使得整個應用無法運行。
[0004] 在應用運行中發(fā)生報錯時,無論是開發(fā)人員或者應用的使用者都難以確定造成錯 誤的原因,需要花費很大的力氣才能夠修正錯誤。因此,需要一種簡單易行的技術方案來提 示發(fā)生錯誤的原因或者修正錯誤的方法。
【發(fā)明內(nèi)容】
[0005] 基于現(xiàn)有技術中存在的上述問題,本發(fā)明實施例提供了一種數(shù)據(jù)處理方法和裝 置,以提供一種輔助修正由多個組件組成的應用發(fā)生的錯誤的技術方案。
[0006] 根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)處理方法,所述方法包括:獲取依賴元數(shù) 據(jù),其中,所述依賴元數(shù)據(jù)用于表示至少兩個組件之間數(shù)據(jù)上的依賴關系;獲得錯誤信息以 及數(shù)據(jù)輸出,其中,所述錯誤信息用于描述在運行應用時發(fā)生的錯誤,所述數(shù)據(jù)輸出包括在 運行所述應用時組件輸出的數(shù)據(jù),所述應用包括所述至少兩個組件;根據(jù)所述錯誤信息,分 析與該錯誤信息相關的依賴元數(shù)據(jù)和數(shù)據(jù)輸出;提供分析結(jié)果,所述分析結(jié)果包括以下至 少之一:發(fā)生錯誤的原因,錯誤修正方法的提示,導致錯誤發(fā)生的相關依賴元數(shù)據(jù)和導致錯 誤發(fā)生的相關數(shù)據(jù)輸出。
[0007] 根據(jù)本發(fā)明的另一個方面,提供了一種數(shù)據(jù)處理裝置,所述裝置包括:關系獲取 模塊,被配置為獲取依賴元數(shù)據(jù),其中,所述依賴元數(shù)據(jù)用于表示至少兩個組件之間數(shù)據(jù)上 的依賴關系;第一信息獲取模塊,被配置為獲得錯誤信息以及數(shù)據(jù)輸出,其中,所述錯誤信 息用于描述在運行應用時發(fā)生的錯誤,所述數(shù)據(jù)輸出包括在運行所述應用時組件輸出的數(shù) 據(jù),所述應用包括所述至少兩個組件;分析模塊,被配置為根據(jù)所述錯誤信息,分析與該錯 誤信息相關的依賴元數(shù)據(jù)和數(shù)據(jù)輸出;結(jié)果模塊,被配置為提供分析結(jié)果,所述分析結(jié)果包 括以下至少之一:發(fā)生錯誤的原因,錯誤修正方法的提示,導致錯誤發(fā)生的相關依賴元數(shù)據(jù) 和導致錯誤發(fā)生的相關數(shù)據(jù)輸出。
[0008] 本發(fā)明所提供的技術方案能夠輔助修正應用發(fā)生的錯誤。
【專利附圖】
【附圖說明】
[0009] 通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其 它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號 通常代表相同部件。
[0010] 圖1示出了根據(jù)本發(fā)明一實施例的云計算節(jié)點;
[0011] 圖2示出了根據(jù)本發(fā)明一實施例的云計算環(huán)境;
[0012] 圖3示出了根據(jù)本發(fā)明一實施例的抽象模型層;
[0013] 圖4示出了本發(fā)明實施例一種數(shù)據(jù)處理方法的流程示意圖;
[0014] 圖5示出了本發(fā)明實施例一種數(shù)據(jù)處理方法的流程示意圖;
[0015] 圖6示出了本發(fā)明實施例一種數(shù)據(jù)處理方法具體實現(xiàn)的示例的流程示意圖;
[0016] 圖7示出了本發(fā)明實施理一種數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0017] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應該理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施方 式所限制。相反,提供這些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整的傳達給本領域的技術人員。
[0018] 首先應當理解,盡管本公開包括關于云計算的詳細描述,但其中記載的技術方案 的實現(xiàn)卻不限于云計算環(huán)境,而是能夠結(jié)合現(xiàn)在已知或以后開發(fā)的任何其它類型的計算環(huán) 境而實現(xiàn)。
[0019] 云計算是一種服務交付模式,用于對共享的可配置計算資源池進行方便、按需的 網(wǎng)絡訪問??膳渲糜嬎阗Y源是能夠以最小的管理成本或與服務提供者進行最少的交互就能 快速部署和釋放的資源,例如可以是網(wǎng)絡、網(wǎng)絡帶寬、服務器、處理、內(nèi)存、存儲、應用、虛擬 機和服務。這種云模式可以包括至少五個特征、至少三個服務模型和至少四個部署模型。
[0020] 特征包括:
[0021] 按需自助式服務:云的消費者在無需與服務提供者進行人為交互的情況下能夠單 方面自動地按需部署諸如服務器時間和網(wǎng)絡存儲等的計算能力。
[0022] 廣泛的網(wǎng)絡接入:計算能力可以通過標準機制在網(wǎng)絡上獲取,這種標準機制促進 了通過不同種類的瘦客戶機平臺或厚客戶機平臺(例如移動電話、膝上型電腦、個人數(shù)字助 理PDA)對云的使用。
[0023] 資源池:提供者的計算資源被歸入資源池并通過多租戶(multi-tenant)模式服 務于多重消費者,其中按需將不同的實體資源和虛擬資源動態(tài)地分配和再分配。一般情況 下,消費者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上 指定位置(例如國家、州或數(shù)據(jù)中心),因此具有位置無關性。
[0024] 迅速彈性:能夠迅速、有彈性地(有時是自動地)部署計算能力,以實現(xiàn)快速擴展, 并且能迅速釋放來快速縮小。在消費者看來,用于部署的可用計算能力往往顯得是無限的, 并能在任意時候都能獲取任意數(shù)量的計算能力。
[0025] 可測量的服務:云系統(tǒng)通過利用適于服務類型(例如存儲、處理、帶寬和活躍用戶 帳號)的某種抽象程度的計量能力,自動地控制和優(yōu)化資源效用??梢员O(jiān)測、控制和報告資 源使用情況,為服務提供者和消費者雙方提供透明度。
[0026] 服務模型如下:
[0027] 軟件即服務(SaaS):向消費者提供的能力是使用提供者在云基礎架構(gòu)上運行的 應用??梢酝ㄟ^諸如網(wǎng)絡瀏覽器的瘦客戶機接口(例如基于網(wǎng)絡的電子郵件)從各種客戶機 設備訪問應用。除了有限的特定于用戶的應用配置設置外,消費者既不管理也不控制包括 網(wǎng)絡、服務器、操作系統(tǒng)、存儲、乃至單個應用能力等的底層云基礎架構(gòu)。
[0028] 平臺即服務(PaaS):向消費者提供的能力是在云基礎架構(gòu)上部署消費者創(chuàng)建或 獲得的應用,這些應用利用提供者支持的程序設計語言和工具創(chuàng)建。消費者既不管理也不 控制包括網(wǎng)絡、服務器、操作系統(tǒng)或存儲的底層云基礎架構(gòu),但對其部署的應用具有控制 權,對應用托管環(huán)境配置可能也具有控制權。
[0029] 基礎架構(gòu)即服務(IaaS):向消費者提供的能力是消費者能夠在其中部署并運行包 括操作系統(tǒng)和應用的任意軟件的處理、存儲、網(wǎng)絡和其他基礎計算資源。消費者既不管理也 不控制底層的云基礎架構(gòu),但是對操作系統(tǒng)、存儲和其部署的應用具有控制權,對選擇的網(wǎng) 絡組件(例如主機防火墻)可能具有有限的控制權。
[0030] 部署模型如下:
[0031] 私有云:云基礎架構(gòu)單獨為某個組織運行。云基礎架構(gòu)可以由該組織或第三方管 理并且可以存在于該組織內(nèi)部或外部。
[0032] 共同體云:云基礎架構(gòu)被若干組織共享并支持有共同利害關系(例如任務使命、安 全要求、政策和合規(guī)考慮)的特定共同體。共同體云可以由共同體內(nèi)的多個組織或第三方管 理并且可以存在于該共同體內(nèi)部或外部。
[0033] 公共云:云基礎架構(gòu)向公眾或大型產(chǎn)業(yè)群提供并由出售云服務的組織擁有。
[0034] 混合云:云基礎架構(gòu)由兩個或更多部署模型的云(私有云、共同體云或公共云)組 成,這些云依然是獨特的實體,但是通過使數(shù)據(jù)和應用能夠移植的標準化技術或私有技術 (例如用于云之間的負載平衡的云突發(fā)流量分擔技術)綁定在一起。
[0035] 云計算環(huán)境是面向服務的,特點集中在無狀態(tài)性、低耦合性、模塊性和語意的互操 作性。云計算的核心是包含互連節(jié)點網(wǎng)絡的基礎架構(gòu)。
[0036] 現(xiàn)在參考圖1,其中顯示了云計算節(jié)點的一個例子。圖1顯示的云計算節(jié)點10僅僅 是適合的云計算節(jié)點的一個示例,不應對本發(fā)明實施例的功能和使用范圍帶來任何限制。 總之,云計算節(jié)點10能夠被用來實現(xiàn)和/或執(zhí)行以上所述的任何功能。
[0037] 云計算節(jié)點10具有計算機系統(tǒng)/服務器12,其可與眾多其它通用或?qū)S糜嬎阆?統(tǒng)環(huán)境或配置一起操作。眾所周知,適于與計算機系統(tǒng)/服務器12 -起操作的計算系統(tǒng)、 環(huán)境和/或配置的例子包括但不限于:個人計算機系統(tǒng)、服務器計算機系統(tǒng)、瘦客戶機、厚 客戶機、手持或膝上設備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡個人電 腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任意系統(tǒng)的分布式云計算技術環(huán)境,等 等。
[0038] 計算機系統(tǒng)/服務器12可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如 程序模塊)的一般語境下描述。通常,程序模塊可以包括執(zhí)行特定的任務或者實現(xiàn)特定的抽 象數(shù)據(jù)類型的例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等。計算機系統(tǒng)/服務器12可以 在通過通信網(wǎng)絡鏈接的遠程處理設備執(zhí)行任務的分布式云計算環(huán)境中實施。在分布式云計 算環(huán)境中,程序模塊可以位于包括存儲設備的本地或遠程計算系統(tǒng)存儲介質(zhì)上。
[0039] 如圖1所示,云計算節(jié)點10中的計算機系統(tǒng)/服務器12以通用計算設備的形式 表現(xiàn)。計算機系統(tǒng)/服務器12的組件可以包括但不限于:一個或者多個處理器或者處理單 元16,系統(tǒng)存儲器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0040]總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉 例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標準體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC) 總線,增強型ISA總線、視頻電子標準協(xié)會(VESA)局域總線以及外圍組件互連(PCI)總線。
[0041]計算機系統(tǒng)/服務器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是 能夠被計算機系統(tǒng)/服務器12訪問的任意可獲得的介質(zhì),包括易失性和非易失性介質(zhì),可 移動的和不可移動的介質(zhì)。
[0042]系統(tǒng)存儲器28可以包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存 取存儲器(RAM)30和/或高速緩存存儲器32。計算機系統(tǒng)/服務器12可以進一步包括其 它可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34 可以用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動器")。盡管圖 1中未示出,可以提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動器,以及對 可移動非易失性光盤(例如⑶-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動器。在這些 情況下,每個驅(qū)動器可以通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28可以 包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,這些程序模塊被 配置以執(zhí)行本發(fā)明各實施例的功能。
[0043]具有一組(至少一個)程序模塊42的程序/實用工具40,可以存儲在存儲器28中, 這樣的程序模塊42包括但不限于操作系統(tǒng)、一個或者多個應用程序、其它程序模塊以及程 序數(shù)據(jù),這些示例中的每一個或某種組合中可能包括網(wǎng)絡環(huán)境的實現(xiàn)。程序模塊42通常執(zhí) 行本發(fā)明所描述的實施例中的功能和/或方法。
[0044]計算機系統(tǒng)/服務器12也可以與一個或多個外部設備14 (例如鍵盤、指向設備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務器12交互的設 備通信,和/或與使得該計算機系統(tǒng)/服務器12能與一個或多個其它計算設備進行通信的 任何設備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口 22 進行。并且,計算機系統(tǒng)/服務器12還可以通過網(wǎng)絡適配器20與一個或者多個網(wǎng)絡(例如 局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡,例如因特網(wǎng))通信。如圖所示,網(wǎng)絡適配器20 通過總線18與計算機系統(tǒng)/服務器12的其它模塊通信。應當明白,盡管圖中未示出,其它 硬件和/或軟件模塊可以與計算機系統(tǒng)/服務器12 -起操作,包括但不限于:微代碼、設備 驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器以及數(shù)據(jù)備份存儲系統(tǒng) 等。
[0045]現(xiàn)在參考圖2,其中顯示了示例性的云計算環(huán)境50。如圖所示,云計算環(huán)境50包 括云計算消費者使用的本地計算設備可以與其相通信的一個或者多個云計算節(jié)點10,本地 計算設備例如可以是個人數(shù)字助理(PDA)或移動電話54A,臺式電腦54B、筆記本電腦54C和 /或汽車計算機系統(tǒng)54N。云計算節(jié)點10之間可以相互通信??梢栽诎ǖ幌抻谌缟纤?述的私有云、共同體云、公共云或混合云或者它們的組合的一個或者多個網(wǎng)絡中將云計算 節(jié)點10進行物理或虛擬分組(圖中未顯示)。這樣,云的消費者無需在本地計算設備上維護 資源就能請求云計算環(huán)境50提供的基礎架構(gòu)即服務(IaaS)、平臺即服務(PaaS)和/或軟 件即服務(SaaS)。應當理解,圖2顯示的各類計算設備54A-N僅僅是示意性的,云計算節(jié)點 10以及云計算環(huán)境50可以與任意類型網(wǎng)絡上和/或網(wǎng)絡可尋址連接的任意類型的計算設 備(例如使用網(wǎng)絡瀏覽器)通信。
[0046] 現(xiàn)在參考圖3,其中顯示了云計算環(huán)境50 (圖2)提供的一組功能抽象層。首先應 當理解,圖3所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的實施例不限于此。如圖 3所示,提供下列層和對應功能:
[0047] 硬件和軟件層60包括硬件和軟件組件。硬件組件的例子包括:主機,例如 IBM?zSeries?系統(tǒng);基于Rise(精簡指令集計算機)體系結(jié)構(gòu)的服務器,例如 IBMpSeries?系統(tǒng);IBMxSeries?系統(tǒng);IBMB丨adeCenter?系統(tǒng);存儲設備;網(wǎng)絡和 網(wǎng)絡組件。軟件組件的例子包括:網(wǎng)絡應用服務器軟件,例如IBMWebSphere?應用服 務器軟件;數(shù)據(jù)庫軟件,例如IBMDB2?數(shù)據(jù)庫軟件。(IBM,zSeries,pSeries,xSeries,B IadeCenter,WebSphere以及DB2是國際商業(yè)機器公司在全世界各地的注冊商標)。
[0048] 虛擬層62提供一個抽象層,該層可以提供下列虛擬實體的例子:虛擬服務器、虛 擬存儲、虛擬網(wǎng)絡(包括虛擬私有網(wǎng)絡)、虛擬應用和操作系統(tǒng),以及虛擬客戶端。
[0049] 在一個示例中,管理層64可以提供下述功能:資源供應功能:提供用于在云計算 環(huán)境中執(zhí)行任務的計算資源和其它資源的動態(tài)獲取;計量和定價功能:在云計算環(huán)境內(nèi)對 資源的使用進行成本跟蹤,并為此提供帳單和發(fā)票。在一個例子中,該資源可以包括應用軟 件許可。安全功能:為云的消費者和任務提供身份認證,為數(shù)據(jù)和其它資源提供保護。用戶 門戶功能:為消費者和系統(tǒng)管理員提供對云計算環(huán)境的訪問。服務水平管理功能:提供云 計算資源的分配和管理,以滿足必需的服務水平。服務水平協(xié)議(SLA)計劃和履行功能:為 根據(jù)SLA預測的對云計算資源未來需求提供預先安排和供應。以及記錄功能:記錄應用運 行中各組件的數(shù)據(jù)的輸出、輸入和錯誤信息。
[0050] 工作負載層66提供云計算環(huán)境可能實現(xiàn)的功能的示例。在該層中,可提供的工作 負載或功能的示例包括:地圖繪制與導航;軟件開發(fā)及生命周期管理;虛擬教室的教學提 供;數(shù)據(jù)分析處理;交易處理。
[0051] 參照圖4,本發(fā)明一實施例提供了一種數(shù)據(jù)處理的方法。該方法包括:步驟410,獲 取依賴元數(shù)據(jù);步驟430,獲得錯誤信息以及數(shù)據(jù)輸出;步驟450,根據(jù)所述錯誤信息,分析 與該錯誤信息相關的依賴元數(shù)據(jù)和數(shù)據(jù)輸出;步驟470,提供分析結(jié)果。本實施例中,依賴 元數(shù)據(jù)用于表示至少兩個組件之間數(shù)據(jù)上的依賴關系;錯誤信息用于描述在運行應用時發(fā) 生的錯誤,該應用包括前述至少兩個組件;數(shù)據(jù)輸出包括在運行該應用時組件輸出的數(shù)據(jù); 分析結(jié)果包括以下至少之一:發(fā)生錯誤的原因,錯誤修正方法的提示,導致錯誤發(fā)生的相關 依賴元數(shù)據(jù)和導致錯誤發(fā)生的相關數(shù)據(jù)輸出。本領域技術人員可以理解,輸出的數(shù)據(jù)例如 可以包括被輸出的屬性的名稱和該屬性的值中的至少一個。本實施例適用于包括多個組件 的應用,其中該應用可以由該多個組件構(gòu)成,還可以包括其他部分。該應用可以是服務、中 間件或者具有特定功能的應用等,本發(fā)明并不進行限制。通過采用本實施例提供的技術方 案,可以根據(jù)錯誤信息、數(shù)據(jù)輸出以及依賴元數(shù)據(jù)來提供能夠幫助用戶修正錯誤的輔助信 息。例如,記錄的錯誤信息包括組件B的名稱(或者id,以下實施例中名稱均可以為id)為 xxl的屬性沒有讀取到數(shù)據(jù),為空指針異常。根據(jù)依賴元數(shù)據(jù),xxl的源應當為組件A的名 稱為yyl的屬性。根據(jù)記錄的組件A的數(shù)據(jù)輸出,發(fā)現(xiàn)名稱為yyl的屬性沒有輸出。此時可 以向用戶提供發(fā)生錯誤的原因為組件A的名稱為yyl的屬性沒有輸出導致組件B的名稱為 xxl的屬性無法獲取所需的輸入。這樣,用戶可以非常簡單的得到發(fā)生錯誤的原因,從而對 組件B進行修正。并且,通過采用本實施例提供的方法還可以發(fā)現(xiàn)在設計時無法發(fā)現(xiàn)的錯 誤。仍以上述示例為例進行說明,若組件A名稱為yyl的屬性僅在運行時才會有輸出,那么 在設計階段或者說非運行狀態(tài)時是無法發(fā)現(xiàn)該錯誤的,也就無法糾正該錯誤,而本實施例 提供的方案通過記錄運行中發(fā)生的錯誤信息以及數(shù)據(jù)輸出,不但可以發(fā)現(xiàn)設計階段就存在 的錯誤還可以發(fā)現(xiàn)僅在運行中才會體現(xiàn)出來的錯誤,從而輔助用戶修正存在的各種錯誤。
[0052] 本發(fā)明一實施例中,錯誤信息例如包括:讀取數(shù)據(jù)時發(fā)生的空指針異常。
[0053] 本發(fā)明一實施例中,步驟450例如包括以下至少之一:根據(jù)所述錯誤信息中的空 指針異常以及該空指針異常對應的依賴元數(shù)據(jù),確定該空指針異常對應的組件沒有輸出相 應的數(shù)據(jù);根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應的組件的數(shù)據(jù)輸出, 確定該空指針異常對應的依賴元數(shù)據(jù)有誤;根據(jù)所述錯誤信息中的空指針異常以及該空指 針異常對應的組件的數(shù)據(jù)輸出,確定該空指針異常對應的正確的依賴元數(shù)據(jù)。其中,根據(jù)所 述錯誤信息中的空指針異常以及該空指針異常對應的組件的數(shù)據(jù)輸出,確定該空指針異常 對應的正確的依賴元數(shù)據(jù)例如可以修復錯誤的依賴元數(shù)據(jù),將錯誤的依賴元數(shù)據(jù)自動改為 正確的依賴元數(shù)據(jù)。
[0054] 參照圖5,本發(fā)明一實施例中,提供了一種數(shù)據(jù)處理方法。該方法包括:步驟510, 獲取時序約束;步驟530,獲得數(shù)據(jù)輸入;步驟550,根據(jù)所述時序約束和所述數(shù)據(jù)輸入確定 所述時序約束中存在冗余的時序約束。本實施例中,時序約束用于表示該至少兩個組件的 執(zhí)行順序;數(shù)據(jù)輸入包括在運行所述應用時組件讀取的數(shù)據(jù)。其中,數(shù)據(jù)輸入特別是包括在 運行所述應用時組件讀取的其他組件輸出的數(shù)據(jù)。本領域技術人員可以理解,讀取的數(shù)據(jù) 例如可以包括需要讀取數(shù)據(jù)的屬性的名稱和該屬性讀取的值中的至少一個。通過本實施例 提供的技術方案,可以確定存在冗余的時序約束,從而輔助用戶調(diào)整時序約束或者刪除時 序約束。例如,用戶規(guī)定了組件C與組件D之間的時序約束,具體為組件D需要在組件C執(zhí) 行完畢后執(zhí)行。通過本實施例中對于運行時數(shù)據(jù)輸入的記錄發(fā)現(xiàn)組件D并不存在任何一個 數(shù)據(jù)輸入是讀取組件C的數(shù)據(jù)輸出,由此可以確定該時序約束為冗余的時序約束。據(jù)此,用 戶可以刪除或者調(diào)整冗余的時序約束。另一實施例中,如圖5所示的方法還可以包括向用 戶提示的步驟,即向用戶提示該冗余的時序約束。進一步的,可以根據(jù)冗余的時序約束是定 義在依賴元數(shù)據(jù)中還是由用戶在構(gòu)建應用時定義的,向用戶提供不同的提示。
[0055] 如圖4所示的實施例可以和如圖5所示的實施例結(jié)合。一結(jié)合的示例中,步驟410 到步驟470與步驟510到步驟550之間沒有特定的順序。
[0056] 另一結(jié)合的示例中,步驟530獲得的數(shù)據(jù)輸入可以是與步驟430中獲取的數(shù)據(jù)輸 出一同實現(xiàn)的,也即在運行應用時記錄錯誤信息以及組件的數(shù)據(jù)輸入和數(shù)據(jù)輸出。再一結(jié) 合的示例中,如圖5所示的實施例中向用戶提示冗余的時序約束的步驟可以和步驟470- 同實現(xiàn),也即同時向用戶提示錯誤信息以及冗余的時序約束。
[0057] 本發(fā)明一實施例中,步驟510例如可以包括:通過對獲取的依賴元數(shù)據(jù)進行分析 得到時序約束。如圖5所示的實施例還可以包括:向用戶提示存在冗余的時序約束以及造 成該冗余的時序約束的依賴元數(shù)據(jù)。由于該冗余的時序約束是定義在依賴元數(shù)據(jù)中的,因 此可以通過向用戶提示該冗余的時序約束以及相關的依賴元數(shù)據(jù)來輔助用戶刪除或者調(diào) 整該冗余的時序約束。
[0058] 本發(fā)明一實施例中,步驟510例如可以包括:通過解析應用實例的概述信息 (profile)得到時序約束。具體的,步驟510例如包括:從云平臺獲取應用實例的概述信息; 通過解析所述概述信息得到時序約束。在用戶構(gòu)建應用時,可以定義多個組件之間的時序 約束,該時序約束包含在應用實例的概述信息中。因此,可以通過解析從云平臺獲取的應用 實例來得到時序約束。本領域技術人員可以理解,結(jié)合其他實施例,從云平臺獲取應用實例 的概述信息可以在其他步驟中完成,例如在獲取依賴元數(shù)據(jù)的步驟中執(zhí)行從云平臺獲取應 用實例的概述信息,這樣步驟510只需要解析已經(jīng)獲得的應用實例的概述信息得到時序約 束即可。
[0059] 正如前面所述,本發(fā)明可以應用在云計算環(huán)境中也可以應用在其他計算環(huán)境中。 下面先以云計算環(huán)境中本實施例的應用為例進行說明。
[0060] 本發(fā)明一實施例中,步驟430例如包括:從云平臺獲取由云平臺記錄的錯誤信息 以及數(shù)據(jù)輸出。本實施例中,錯誤信息用于描述在云平臺運行該應用時發(fā)生的錯誤,數(shù)據(jù)輸 出包括在云平臺運行所述應用時組件輸出的數(shù)據(jù)。通過采用本實施例的技術方案,可以將 應用的運行放在云平臺端,并由云平臺記錄組件的數(shù)據(jù)輸出和錯誤信息,這樣可以降低對 于終端的計算能力的要求。此時,分析等步驟由終端完成,這樣可以降低云平臺的工作負 載,提平臺的性能。
[0061] 本發(fā)明一實施例中,步驟530例如包括:從云平臺獲取由云平臺記錄的數(shù)據(jù)輸入。 其中,數(shù)據(jù)輸入包括在云平臺運行所述應用時組件讀取的數(shù)據(jù)。本領域技術人員可以理解, 若實施時同時包括步驟530和步驟430,這兩個步驟可以是一同實現(xiàn)的,也即同時獲取錯誤 信息、數(shù)據(jù)輸出和數(shù)據(jù)輸入。相應的,云平臺也可以在運行應用時同時記錄上述錯誤信息、 數(shù)據(jù)輸入和數(shù)據(jù)輸出。
[0062] 本發(fā)明一實施例中,步驟410例如包括:從云平臺獲取應用實例的概述信息;根據(jù) 所述概述信息搜索本地環(huán)境得到至少部分的依賴元數(shù)據(jù)。更進一步的,可以通過登錄云平 臺來獲取應用實例的概述信息,以控制不同的用戶對于應用實例的獲取,并且可以方便用 戶構(gòu)建并尋找自己的應用實例。通過采用本實施例提供的方法,可以優(yōu)先對本地的環(huán)境進 行搜索來得到依賴元數(shù)據(jù),這樣可以減少終端與云平臺之間的通信,降低網(wǎng)絡的傳輸壓力。 本發(fā)明另一實施例中,若從本地環(huán)境找不到所述依賴元數(shù)據(jù),則從云平臺獲取所述依賴元 數(shù)據(jù)。在具體實施時,可以通過調(diào)用云平臺的API獲取所需的依賴元數(shù)據(jù)。
[0063] 本領域技術人員可以理解,當采用云計算環(huán)境實施本發(fā)明實施例時,云平臺運行 應用可以通過將應用部署在虛擬機中實現(xiàn)。
[0064] 下面通過圖6所示的示例舉例說明云計算環(huán)境中,本發(fā)明實施例的應用方式。
[0065] 步驟610,登錄云平臺獲取應用實例A的概述信息。應用實例A包括4個組件,組 件W、組件X、組件Y和組件Z。
[0066] 步驟620,解析應用實例A的概述信息,獲取時序約束。通過解析應用實例A的概 述信息,可以得到用戶定義的時序約束,組件Z在組件Y執(zhí)行完畢后執(zhí)行。
[0067] 步驟630,根據(jù)應用實例A的概述信息,在本地環(huán)境中搜索依賴元數(shù)據(jù)。
[0068] 步驟640,響應于未在本地環(huán)境中找到依賴元數(shù)據(jù),調(diào)用云平臺的API獲取依賴元 數(shù)據(jù)。其中,得到如下的依賴元數(shù)據(jù)。
[0069]
[0070]
【權利要求】
1. 一種數(shù)據(jù)處理方法,所述方法包括: 獲取依賴元數(shù)據(jù),其中,所述依賴元數(shù)據(jù)用于表示至少兩個組件之間數(shù)據(jù)上的依賴關 系; 獲得錯誤信息以及數(shù)據(jù)輸出,其中,所述錯誤信息用于描述在運行應用時發(fā)生的錯誤, 所述數(shù)據(jù)輸出包括在運行所述應用時組件輸出的數(shù)據(jù),所述應用包括所述至少兩個組件; 根據(jù)所述錯誤信息,分析與該錯誤信息相關的依賴元數(shù)據(jù)和數(shù)據(jù)輸出; 提供分析結(jié)果,所述分析結(jié)果包括以下至少之一:發(fā)生錯誤的原因,錯誤修正方法的提 示,導致錯誤發(fā)生的相關依賴元數(shù)據(jù)和導致錯誤發(fā)生的相關數(shù)據(jù)輸出。
2. 根據(jù)權利要求1所述的方法,其中,所述方法進一步包括: 獲取時序約束,其中,所述時序約束用于表示所述至少兩個組件的執(zhí)行順序; 獲得數(shù)據(jù)輸入,其中,所述數(shù)據(jù)輸入包括在運行所述應用時組件讀取的數(shù)據(jù); 根據(jù)所述時序約束和所述數(shù)據(jù)輸入確定所述時序約束中存在冗余的時序約束。
3. 根據(jù)權利要求2所述的方法,其中,所述獲取時序約束包括以下至少之一: 通過對獲取的依賴元數(shù)據(jù)進行分析得到時序約束; 通過解析應用實例的概述信息得到時序約束。
4. 根據(jù)權利要求2或3所述的方法,其中,所述方法進一步包括: 向用戶提示存在冗余的時序約束以及造成該冗余的時序約束的依賴元數(shù)據(jù)。
5. 根據(jù)權利要求1所述的方法,其中,所述獲得錯誤信息以及數(shù)據(jù)輸出包括以下步驟 之一: 從云平臺獲取由云平臺記錄的錯誤信息以及數(shù)據(jù)輸出,其中,所述錯誤信息用于描述 在云平臺運行所述應用時發(fā)生的錯誤,所述數(shù)據(jù)輸出包括在云平臺運行所述應用時組件輸 出的數(shù)據(jù); 運行所述應用并記錄用于描述在運行所述應用時發(fā)生的錯誤的錯誤信息以及在運行 所述應用時組件輸出的數(shù)據(jù)。
6. 根據(jù)權利要求1所述的方法,其中,所述獲取依賴元數(shù)據(jù)包括: 從云平臺獲取應用實例的概述信息; 根據(jù)所述概述信息搜索本地環(huán)境得到至少部分的依賴元數(shù)據(jù)。
7. 根據(jù)權利要求6所述的方法,其中,所述獲取依賴元數(shù)據(jù)進一步包括: 若從本地環(huán)境找不到所述依賴元數(shù)據(jù),則從云平臺獲取所述依賴元數(shù)據(jù)。
8. 根據(jù)權利要求1所述的方法,其中,所述根據(jù)所述錯誤信息,分析與該錯誤信息相關 的依賴元數(shù)據(jù)和數(shù)據(jù)輸出,包括以下至少之一: 根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應的依賴元數(shù)據(jù),確定該空指 針異常對應的組件沒有輸出相應的數(shù)據(jù); 根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應的組件的數(shù)據(jù)輸出,確定該 空指針異常對應的依賴元數(shù)據(jù)有誤; 根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應的組件的數(shù)據(jù)輸出,確定該 空指針異常對應的正確的依賴元數(shù)據(jù)。
9. 根據(jù)權利要求2或3所述的方法,其中,所述獲得數(shù)據(jù)輸入,包括以下之一: 從云平臺獲取由云平臺記錄的數(shù)據(jù)輸入,其中,所述數(shù)據(jù)輸入包括在云平臺運行所述 應用時組件讀取的數(shù)據(jù); 運行所述應用并記錄運行該應用時組件讀取的數(shù)據(jù)。
10. -種數(shù)據(jù)處理裝置,所述裝置包括: 關系獲取模塊,被配置為獲取依賴元數(shù)據(jù),其中,所述依賴元數(shù)據(jù)用于表示至少兩個組 件之間數(shù)據(jù)上的依賴關系; 第一信息獲取模塊,被配置為獲得錯誤信息以及數(shù)據(jù)輸出,其中,所述錯誤信息用于描 述在運行應用時發(fā)生的錯誤,所述數(shù)據(jù)輸出包括在運行所述應用時組件輸出的數(shù)據(jù),所述 應用包括所述至少兩個組件; 分析模塊,被配置為根據(jù)所述錯誤信息,分析與該錯誤信息相關的依賴元數(shù)據(jù)和數(shù)據(jù) 輸出; 結(jié)果模塊,被配置為提供分析結(jié)果,所述分析結(jié)果包括以下至少之一:發(fā)生錯誤的原 因,錯誤修正方法的提示,導致錯誤發(fā)生的相關依賴元數(shù)據(jù)和導致錯誤發(fā)生的相關數(shù)據(jù)輸 出。
11. 根據(jù)權利要求10所述的裝置,所述裝置進一步包括: 時序獲取模塊,被配置為獲取時序約束,其中,所述時序約束用于表示所述至少兩個組 件的執(zhí)行順序; 第二信息獲取模塊,被配置為獲得數(shù)據(jù)輸入,其中,所述數(shù)據(jù)輸入包括在運行所述應用 時組件讀取的數(shù)據(jù); 冗余確定模塊,被配置為根據(jù)所述時序約束和所述數(shù)據(jù)輸入確定所述時序約束中存在 冗余的時序約束。
12. 根據(jù)權利要求11所述的裝置,其中,所述時序獲取模塊包括以下至少之一: 第一時序子模塊,被配置為通過對獲取的依賴元數(shù)據(jù)進行分析得到時序約束; 第二時序子模塊,被配置為通過解析應用實例的概述信息得到時序約束。
13. 根據(jù)權利要求11或12所述的裝置,其中,所述裝置進一步包括:提示模塊,被配置 為向用戶提示存在冗余的時序約束以及造成該冗余的時序約束的依賴元數(shù)據(jù)。
14. 根據(jù)權利要求10所述的裝置,其中,所述第一信息獲取模塊包括以下之一: 云平臺獲取子模塊,被配置為從云平臺獲取由云平臺記錄的錯誤信息以及數(shù)據(jù)輸出, 其中,所述錯誤信息用于描述在云平臺運行所述應用時發(fā)生的錯誤,所述數(shù)據(jù)輸出包括在 云平臺運行所述應用時組件輸出的數(shù)據(jù); 第一運行記錄子模塊,被配置為運行所述應用并記錄用于描述在運行所述應用時發(fā)生 的錯誤的錯誤信息以及在運行所述應用時組件輸出的數(shù)據(jù)。
15. 根據(jù)權利要求10所述的裝置,其中,所述關系獲取模塊包括: 概述信息獲取子模塊,被配置為從云平臺獲取應用實例的概述信息; 搜索子模塊,被配置為根據(jù)所述概述信息搜索本地環(huán)境得到至少部分的依賴元數(shù)據(jù)。
16. 根據(jù)權利要求15所述的裝置,其中,所述關系獲取模塊進一步包括: 依賴元數(shù)據(jù)獲取子模塊,被配置為若從本地環(huán)境找不到所述依賴元數(shù)據(jù),則從云平臺 獲取所述依賴元數(shù)據(jù)。
17. 根據(jù)權利要求10所述的裝置,其中,所述分析模塊包括以下至少之一: 第一確定子模塊,被配置為根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應 的依賴元數(shù)據(jù),確定該空指針異常對應的組件沒有輸出相應的數(shù)據(jù); 第二確定子模塊,被配置為根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應 的組件的數(shù)據(jù)輸出,確定該空指針異常對應的依賴元數(shù)據(jù)有誤; 第三確定子模塊,被配置為根據(jù)所述錯誤信息中的空指針異常以及該空指針異常對應 的組件的數(shù)據(jù)輸出,確定該空指針異常對應的正確的依賴元數(shù)據(jù)。
18.根據(jù)權利要求11或12所述的裝置,其中,所述第二信息獲取模塊包括以下之一: 數(shù)據(jù)輸入獲取子模塊,被配置為從云平臺獲取由云平臺記錄的數(shù)據(jù)輸入,其中,所述數(shù) 據(jù)輸入包括在云平臺運行所述應用時組件讀取的數(shù)據(jù); 第二運行記錄子模塊,被配置為運行所述應用并記錄運行該應用時組件讀取的數(shù)據(jù)。
【文檔編號】G06F9/44GK104516730SQ201310454548
【公開日】2015年4月15日 申請日期:2013年9月29日 優(yōu)先權日:2013年9月29日
【發(fā)明者】黃剛, 王亮, 姜坦, 張煜, 蘭靈, 易立, 姚勇 申請人:國際商業(yè)機器公司