專利名稱:組合應(yīng)用的自動化分析的制作方法
技術(shù)領(lǐng)域:
本公開總體上涉及分析組合應(yīng)用,并且更具體地涉及自動分析組合應(yīng)用符合規(guī)定組件之間的交互的一組規(guī)則的情況。
背景技術(shù):
多年來,計算機程序得以發(fā)展,從用匯編代碼編寫的簡單程序開始到以高級語言編寫的相對復(fù)雜的程序。計算機編程近來的發(fā)展包括以不同的編程語言編寫復(fù)雜計算機程序的不同部分。服務(wù)組件架構(gòu)(SCA)是由規(guī)定對符合面向服務(wù)架構(gòu)的應(yīng)用的要求的多個主要軟件販賣商提倡的提議。在SCA中,應(yīng)用被稱為“組合應(yīng)用(composite application)”,這是因為其由多個編程語言的許多不同的組件組成。國際商業(yè)機器公司(IBM)提供了已知為WebSphere的產(chǎn)品,其支持已知為服務(wù)組件架構(gòu)(SCA)應(yīng)用的組合應(yīng)用的開發(fā)。分析諸如SCA應(yīng)用的組合應(yīng)用的步驟目前通過將應(yīng)用導(dǎo)入WebSphere工具來實現(xiàn)。然后程序員手動檢查應(yīng)用的組件以找到接受的最佳和最差的實踐(best and worstpractices),并將其發(fā)現(xiàn)報告給客戶。由于人類特性(human nature),重要的細(xì)節(jié)可能被粉飾或徹底忽略,從而負(fù)面地影響提供給客戶的支持。由這個手動處理(process)產(chǎn)生的結(jié)果也很可能隨時間而不一致,并且隨著新規(guī)則被創(chuàng)建,早先的結(jié)果由于與這樣的工作相關(guān)聯(lián)的人工成本而不被重新創(chuàng)建。已知的用于軟件分析的工具允許進行以單個語言編寫的計算機程序的靜態(tài)分析,但是不支持分析具有以不同編程語言編寫的多個組件的組合應(yīng)用。在沒有自動化對組合應(yīng)用的分析的方法的情況下,當(dāng)前的手動處理會繼續(xù)易于出錯且低效。
發(fā)明內(nèi)容
一種應(yīng)用分析機構(gòu),分析組合應(yīng)用符合一組組件交互規(guī)則的情況,該組件交互規(guī)則定義以不同語言編寫的組件之間應(yīng)該滿足的一個或多個條件以及取決于對條件的分析而執(zhí)行的動作。當(dāng)定義了組件交互規(guī)則時,接收組合應(yīng)用。下面,構(gòu)建組合應(yīng)用的模型,其基于使用的編程語言將組合應(yīng)用的組件分為各個分類,并包括描述組件之間的交互的元數(shù)據(jù)。然后對組合應(yīng)用的模型運行該組組件交互規(guī)則。然后輸出該分析的結(jié)果。對組合應(yīng)用的自動分析去除了易于出現(xiàn)人為誤差的大部分處理,以提供一種用于分析組合應(yīng)用從而確保以不同編程語言編寫的組件之間的交互滿足組件交互規(guī)則的有效和一致的方法。上述和其它特征以及優(yōu)點從如在附圖中示出的以下更具體的描述中將是顯而易見的。
將結(jié)合附圖描述本公開,其中相同的參考標(biāo)號表不相同的部件,并且:圖1是包括應(yīng)用分析機構(gòu)的裝置的框圖,該應(yīng)用分析機構(gòu)自動分析組合應(yīng)用符合一組定義的組件交互規(guī)則的情況;
圖2是示出用于圖1的組合應(yīng)用的一種適合的實施方式的框圖;圖3是示出根據(jù)其編程語言而分組(group)的組件的應(yīng)用模型的框圖;圖4是圖1和3中的包括六個不同的編程語言的應(yīng)用模型的一個特定實施方式的框圖;圖5是示出一組組件交互規(guī)則的框圖;圖6是示出用于組件交互規(guī)則中的條件的一個特定實施方式的框圖;圖7是用于自動分析組合應(yīng)用符合一組組件交互規(guī)則的情況的方法的流程圖;圖8示出第一樣例組件交互規(guī)則;圖9示出第二樣例組件交互規(guī)則;圖10示出第三樣例組件交互規(guī)則;圖11示出對于樣例組合應(yīng)用、由應(yīng)用分析機構(gòu)輸出的樣例結(jié)果;以及圖12示出對于樣例組合應(yīng)用、由應(yīng)用分析機構(gòu)輸出的樣例結(jié)果。
具體實施例方式這里的權(quán)利要求和公開提供了一種應(yīng)用分析機構(gòu),其自動分析組合應(yīng)用符合一組組件交互規(guī)則的情況。所述規(guī)則定義了以不同編程語言編寫的組件之間的交互。接收組合應(yīng)用,并且產(chǎn)生該組合應(yīng)用的模型,該模型基于組件的編程語言將組件分為不同的分類(category),并提供描述這些分類之間的交互的元數(shù)據(jù)。然后對該模型運行所述規(guī)則,并且向用戶輸出分析的結(jié)果。所述結(jié)果可包括統(tǒng)計數(shù)據(jù)和警告。該結(jié)果是自動分析組合應(yīng)用符合組件交互規(guī)則的情況的工具。示例 I參照圖1,計算機系統(tǒng)100是包括應(yīng)用分析機構(gòu)的計算機系統(tǒng)的一個適合的實施方式。計算機系統(tǒng)100是IBM eSever系統(tǒng)i計算機系統(tǒng)。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解這里的公開同樣應(yīng)用到任何計算機系統(tǒng),而不管該計算機系統(tǒng)是復(fù)雜的多用戶計算裝置、單個用戶工作站還是嵌入的控制系統(tǒng)。如圖1所示,計算機系統(tǒng)100包括一個或多個處理器110、主存儲器120、大容量存儲器接口 130、顯示器接口 140和網(wǎng)絡(luò)接口 150。這些系統(tǒng)組件(component)通過使用系統(tǒng)總線160而相互連接。大容量存儲器接口 130被用于將諸如直接存取存儲設(shè)備155的大容量存儲設(shè)備連接到計算機系統(tǒng)100。一種特定類型的直接存取存儲設(shè)備155是可讀和可寫⑶-RW盤,其可以向⑶-RW195存儲數(shù)據(jù)以及從⑶-RW195讀取數(shù)據(jù)。主存儲器120優(yōu)選地包括數(shù)據(jù)121、操作系統(tǒng)122、組合應(yīng)用123以及應(yīng)用分析機構(gòu)124。數(shù)據(jù)121代表充當(dāng)向或從計算機系統(tǒng)100中的任何程序的輸入或輸出的任何數(shù)據(jù)。操作系統(tǒng)122是多任務(wù)操作系統(tǒng)。組合應(yīng)用123是包括以不同的編程語言編寫的多個組件的應(yīng)用。應(yīng)用分析機構(gòu)124包括模型產(chǎn)生機構(gòu)125、組件交互規(guī)則127以及規(guī)則分析機構(gòu)128。模型產(chǎn)生機構(gòu)125接收組合應(yīng)用123,并從組合應(yīng)用產(chǎn)生應(yīng)用模型126。應(yīng)用模型126優(yōu)選地根據(jù)編程語言將組件分組,并且包括描述組件之間的交互的最佳和最差實踐的元數(shù)據(jù)。組件交互規(guī)則127規(guī)定組件之間應(yīng)被滿足的一個或多個條件、以及如果所述條件未被滿足要進行的一個或多個動作。規(guī)則分析機構(gòu)128對應(yīng)用模型126運行組件交互規(guī)則127,并輸出結(jié)果129。結(jié)果129可以包括統(tǒng)計數(shù)據(jù)和警告,并且可輸出到用戶的顯示器或以某種電子形式存儲在存儲器中或物理介質(zhì)上。該結(jié)果是應(yīng)用分析機構(gòu)124,其自動地分析組合應(yīng)用符合組件交互規(guī)則的情況。計算機系統(tǒng)100采用公知的虛擬尋址機制,其允許計算機100的程序表現(xiàn)為如同其僅具有對較大的單個的存儲實體的存取,而不是對多個較小存儲實體(諸如主存儲器120和DASD設(shè)備155)的存取。因此,盡管示出數(shù)據(jù)121、操作系統(tǒng)122、組合應(yīng)用123和應(yīng)用分析機構(gòu)124駐留在主存儲器120中,但是本領(lǐng)域的技術(shù)人員會意識到這些事物不一定同時全部被包含在主存儲器120中。還應(yīng)注意的是,這里一般使用術(shù)語“存儲器”來指代計算機系統(tǒng)100的整個虛擬存儲器,并且可包括耦接到計算機系統(tǒng)100的其它計算機系統(tǒng)的虛擬存儲器。處理器110可以由一個或多個微處理器和/或集成電路構(gòu)造。處理器110執(zhí)行主存儲器120中存儲的程序指令。主存儲器120存儲處理器110可能存取的程序和數(shù)據(jù)。當(dāng)計算機系統(tǒng)100啟動時,處理器110最初執(zhí)行構(gòu)成操作系統(tǒng)122的程序指令。處理器110還執(zhí)行應(yīng)用分析機構(gòu)124。盡管示出計算機系統(tǒng)100僅包含單個的處理器和單個的系統(tǒng)總線,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解可以使用具有多個處理器和/或多個總線的計算機系統(tǒng)來實現(xiàn)應(yīng)用分析機構(gòu)。此外,所使用的接口優(yōu)選地每個都包括單個的、完全編程的微處理器,該微處理器被用于從處理器110承擔(dān)計算密集型的處理。然而,本領(lǐng)域的技術(shù)人員會理解這些功能也可使用I/o適配器執(zhí)行。顯示器接口 140被用于將一個或多個顯示器165直接連接到計算機系統(tǒng)100??梢允欠侵悄?即啞(dumb))終端或完全可編程的工作站的這些顯示器165被用來向系統(tǒng)管理員和用戶提供與計算機系統(tǒng)100通信的能力。然而請注意,盡管提供顯示器接口 140來支持與一個或多個顯示器165的通信,但是計算機系統(tǒng)100不一定需要顯示器165,因為可經(jīng)由網(wǎng)絡(luò)接口 150發(fā)生所有所需的與用戶和其它處理的交互。網(wǎng)絡(luò)接口 150被用于經(jīng)由網(wǎng)絡(luò)170將計算機系統(tǒng)100連接到其它計算機系統(tǒng)或工作站175。網(wǎng)絡(luò)接口 150寬泛地代表互連電子設(shè)備的任何適合的方法,而不管網(wǎng)絡(luò)170是否包括現(xiàn)今的模擬和/或數(shù)字技術(shù)或經(jīng)由未來的某種網(wǎng)絡(luò)機構(gòu)。網(wǎng)絡(luò)接口 150優(yōu)選地包括允許通信網(wǎng)絡(luò)170上的通信的硬件和軟件的組合。網(wǎng)絡(luò)接口 150中的軟件優(yōu)選地包括通訊管理器,其使用適合的網(wǎng)絡(luò)協(xié)議管理經(jīng)由網(wǎng)絡(luò)170與其它計算機系統(tǒng)175的通信。很多不同網(wǎng)絡(luò)協(xié)議可以用來實現(xiàn)網(wǎng)絡(luò)。這些協(xié)議是允許計算機跨越網(wǎng)絡(luò)通信的專門的計算機程序。TCP/IP (傳輸控制協(xié)議/因特網(wǎng)協(xié)議)是可被網(wǎng)絡(luò)接口 150中的通信管理器使用的適合的網(wǎng)絡(luò)協(xié)議的例子。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以采用完全的硬件實施例、完全的軟件實施例(包括固件、駐留軟件、微代碼等),或結(jié)合了硬件和軟件方面的實施例的形式,這里一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的方面可采用實現(xiàn)在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含實現(xiàn)于其上的計算機可讀程序代碼??梢圆捎靡粋€或多個計算機可讀介質(zhì)的任意組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意適合的組合。在本文獻(xiàn)的上下文中,計算機可讀存儲介質(zhì)可以是任何可以包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計算機可讀信號介質(zhì)可包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式的任何形式,包括——但不限于——電磁信號、光信號或上述的任意適合的組合。計算機可讀的信號介質(zhì)還可以是計算機可讀存儲介質(zhì)以外的任何計算機可讀介質(zhì),該計算機可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于 由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意適合的組合。可以以一種或多種程序設(shè)計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++等,還包括常規(guī)的處理式程序設(shè)計語言一諸如“C”語言或類似的程序設(shè)計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠(yuǎn)程計算機上執(zhí)行、或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計算機可以通過任意類型的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。這里參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了用于實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計算機程序指令存儲在能使得計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令的制造品(article of manufacture)0也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的處理,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的處理。參照圖2,用于組合應(yīng)用123的樣例實施方式包括以多個編程語言編寫的多個組件,在圖2中示出為語言I組件210A、語言2組件210B,……,語言N組件210N。由于組合應(yīng)用123包括不同編程語言的組件,已知的靜態(tài)分析工具不足以分析組合應(yīng)用123的組件之間的交互。
參照圖3,用于應(yīng)用模型126的樣例實施方式包括多個語言分類,其中每個組件根據(jù)該組件的編程語言置于一個分類中,并且其中每個分類包括描述這些組件類型之間交互的最佳和最差實踐的元數(shù)據(jù)。描述最佳實踐和最差實踐的交互的元數(shù)據(jù)可來自任何適合的源,但是優(yōu)選地來自服務(wù)組件定義語言(SCDL)。因此,應(yīng)用模型126優(yōu)選地包括多個語言分類,在圖3中示為語言1310A、語言2310B,……,語言N310N。每個語言分類包括以該語言編寫的對應(yīng)的組件,以及描述該分類中的組件和一個或多個不同的分類中的組件之間的交互的元數(shù)據(jù)。因此,語言1310A包括一個或多個對應(yīng)的組件320A和元數(shù)據(jù)330A ;語言2310B包括一個或多個對應(yīng)的組件320B和元數(shù)據(jù)330B等等,直到語言N310N,其包括一個或多個對應(yīng)的組件320N和元數(shù)據(jù)330N。應(yīng)用模型126的一個特定示例在圖4中示出作為應(yīng)用模型126A。在該特定的應(yīng)用模型中,有六個不同的分類,其每個對應(yīng)于不同的編程語言。圖4中示出的六個分類包括業(yè)務(wù)流程執(zhí)行語言(BPEL) 410 ;Java420 ;中介(mediation)流控制(Med Flow) 430 ;網(wǎng)絡(luò)服務(wù)定義語言(Web Services Description Language, WSDL) 440 ;可擴展標(biāo)記語言(XML)模式文檔(Schema Document, XSD) 450 ;以及監(jiān)視器模型460。應(yīng)用模型126A是包括所示所有六個分類的組合應(yīng)用的模型。圖4中示出的410、420、430、440、450和460六個分類的每個是圖3中示為310A、310B,……,310N語言的適當(dāng)示例。組合應(yīng)用中的每個組件將根據(jù)該組件的編程語言被分配給其中一個分類。此外,每個分類包括描述分類中的組件和一個或多個不同分類中的組件之間的交互的元數(shù)據(jù)。圖5示出用于圖1中所示的組件交互規(guī)則127的一種適合的實施方式。組件交互規(guī)則127優(yōu)選地包括多個規(guī)則,其每個規(guī)則規(guī)定條件和對應(yīng)的動作。因此,規(guī)則1510A包括條件520A和動作530A ;規(guī)則2510B包括條件520B和動作530B,等等;直到規(guī)則N510N,其包括條件520N和對應(yīng)的動作530N。用于每個規(guī)則的對應(yīng)動作可包括向分析的結(jié)果添加警告在圖6中示出用于諸如圖5中示出的條件520A的條件的一種適合實施方式。條件520A優(yōu)選地規(guī)定第一語言610、第二語言620以及語言630之間的某種交互。在一個特定的實施方式中,交互630是期望的交互(最佳實踐),以使得如果條件520A沒有被滿足,則向分析的結(jié)果添加警告從而指示組件之間的期望的交互不存在。在可選實施方式中,交互630是不期望的交互(最差實踐),以使得如果條件520被滿足,則向分析的結(jié)果添加警告從而指示組件之間的不期望的交互存在。圖5和圖6中示出的組件交互規(guī)則及其對應(yīng)的條件和動作的例子通過示例的方式示出,并且為非限定的。這里表達(dá)的公開和權(quán)利要求擴展到可以對與組合應(yīng)用對應(yīng)的應(yīng)用模型運行的任何適合的組件交互規(guī)則。參照圖7,方法700優(yōu)選地由應(yīng)用分析機構(gòu)124、當(dāng)由一個或多個處理器110執(zhí)行時執(zhí)行。首先,定義組件交互規(guī)則(步驟710)。在一個特定的實施方式中,由人類用戶(humanuser)定義組件交互規(guī)則。然而,組件交互規(guī)則還可以由軟件定義。例如,規(guī)則產(chǎn)生機構(gòu)可以分析被驗證過、強壯的組合應(yīng)用的組件之間的交互,并且可以自動產(chǎn)生一個或多個組件交互規(guī)則。組件交互規(guī)則明確地擴展到由人類用戶定義的規(guī)則和由計算機處理自動產(chǎn)生的規(guī)則的兩種規(guī)則。一旦在步驟710中定義了規(guī)則,接收組合應(yīng)用(步驟720 )。然后產(chǎn)生組合應(yīng)用的模型(步驟730)。如以上參照圖3和圖4所描述的,應(yīng)用模型優(yōu)選地包括多個分類,其每個分類對應(yīng)于不同的編程語言,其中每個組件根據(jù)該組件的編程語言而置于某分類中,并且其中元數(shù)據(jù)描述該分類中的組件和一個或多個不同分類中的組件之間的交互。然后選擇組件交互規(guī)則(步驟740)。對模型運行所選的組件交互規(guī)則(步驟750)。產(chǎn)生結(jié)果(步驟760)。當(dāng)有更多規(guī)則要處理時(步驟770=是),方法700循環(huán)回到步驟740并且繼續(xù),直到?jīng)]有更多的規(guī)則要處理(步驟770=否),在此時輸出結(jié)果(步驟780),并且方法700完成。請注意步驟760中產(chǎn)生的結(jié)果和/或步驟780中的輸出可包括對于組合應(yīng)用的統(tǒng)計數(shù)據(jù)以及警告。圖8-10示出適合的組件交互規(guī)則的特定示例。圖8-10中的組件交互規(guī)則810、910和1010是圖1和圖5中示出的組件交互規(guī)則127的特定示例。圖8中示出的組件交互規(guī)則810與遲綁定(late binding)有關(guān),這代表最佳實踐。第一行820規(guī)定S⑶L的編程構(gòu)造,而第二行830規(guī)定BPEL的業(yè)務(wù)流程。當(dāng)行840中的條件被滿足時,行850中布爾變量setEarlyBound被設(shè)置為真,且在行860中向結(jié)果添加沒有自動選擇(pick up) BPEL的新版本的警告。示例2圖9中示出適合的組件交互規(guī)則910的另一例子,其解決調(diào)用(invocation)的問題。第一行920是SCDL的Component (組件)語句,而第二行930是調(diào)用BPEL文件的Java語句。行940和950測試以觀察條件是否被滿足,如果滿足,則可向行960添加第一警告且向行970添加第二警告。該規(guī)則的邏輯規(guī)定如果Java文件調(diào)用BPEL組件,且BPEL組件應(yīng)在運行時與其異步地交互,如果發(fā)生錯誤,則后端系統(tǒng)會處于不一致的狀態(tài),而這將要求外部補救,因此向結(jié)果添加適當(dāng)?shù)木?。示?圖10中示出適合的組件交互規(guī)則1010的第三示例,其解決調(diào)用的風(fēng)格(style)。注意到該規(guī)則具有由相同的語言、即SCDL定義的兩個組件,但是符合兩個不同的模式,SPComponent (組件)和Import (導(dǎo)入),兩者均使用XML定義。行1020規(guī)定得到每個組件,并且如果在行1030中用于該組件的實施類型是Java,則在行1040選擇導(dǎo)入,并且在行1050中對于每個導(dǎo)入,如果在行1060中該導(dǎo)入不加入事務(wù)(transaction),則由于后端系統(tǒng)可能最終處于不一致的狀態(tài),因此在行1070添加警告。可在圖7的步驟760中產(chǎn)生且在步驟780中輸出的樣例結(jié)果被示出為用于樣例組合應(yīng)用的圖11和12中1100。所述結(jié)果包括如圖11中所示的與組合應(yīng)用有關(guān)的很多不同參數(shù)的說明書(specification)。該結(jié)果還可包括如圖12所示描述組合應(yīng)用特征的統(tǒng)計數(shù)據(jù)。圖12中所示的特定統(tǒng)計數(shù)據(jù)包括每個WSDL的平均操作數(shù);每個WSDL的平均故障數(shù);每個操作的平均故障數(shù);每個XSD的平均字段數(shù);每個XSD的平均業(yè)務(wù)對象(BO)數(shù);每個BO的平均字段數(shù);以及每BPEL的平均活動數(shù)。所述結(jié)果還可包括一個或多個警告,如圖12所示。當(dāng)組件交互規(guī)則中的條件規(guī)定向結(jié)果添加警告時,向結(jié)果添加各種警告。圖11和12中的結(jié)果優(yōu)選地被顯示給人類程序員,其可以使用所述統(tǒng)計數(shù)據(jù)和警告來確定組合應(yīng)用是否將如預(yù)期的操作。當(dāng)然,所述統(tǒng)計數(shù)據(jù)和警告也可由自動處理來使用,該自動處理可向組件推薦特定的變化以與組件交互規(guī)則一致。本公開和權(quán)利要求公開了一種自動分析包括以不同編程語言編寫的組件的組合應(yīng)用符合一組組件交互規(guī)則的情況的方式,該組組件交互規(guī)則定義以不同語言編寫的組件之間應(yīng)當(dāng)滿足的一個或多個條件、以及取決于對所述條件的分析而執(zhí)行的動作。產(chǎn)生了組合應(yīng)用的模型,并且對該模型運行所述規(guī)則。輸出結(jié)果,所述結(jié)果可包括對于組合應(yīng)用的統(tǒng)計數(shù)據(jù)和警告。對組合應(yīng)用的自動分析去除了易于出現(xiàn)人為誤差的大多數(shù)處理,以提供一種用于分析組合應(yīng)用從而確保以不同編程語言編寫的組件之間的交互滿足組件交互規(guī)則的一致的方法。本領(lǐng)域技術(shù)人員應(yīng)理解在權(quán)利要求的范圍內(nèi)諸多變型是可能的。因此盡管本公開如上被部分地示出和描述,本領(lǐng)域的技術(shù)人員應(yīng)理解在不偏離權(quán)利要求的主旨和范圍的情況下,這里可以對形式和細(xì)節(jié)進行這些或其它的改變。工業(yè)實用性本發(fā)明適用于對組合應(yīng)用符合規(guī)定組件之間交互的一組規(guī)則的情況的自動分析。
權(quán)利要求
1.一種裝置,包括: 至少一個處理器; 耦接至所述至少一個處理器的存儲器; 駐留在所述存儲器中的組合應(yīng)用,所述組合應(yīng)用包括以多個不同的編程語言編寫的多個組件; 駐留在所述存儲器中的多個組件交互規(guī)則,每個組件交互規(guī)則包括不同編程語言的組件之間的至少一個條件、以及取決于所述至少一個條件是否被滿足而執(zhí)行的至少一個動作;以及 駐留在所述存儲器中并且由所述至少一個處理器執(zhí)行的應(yīng)用分析機構(gòu),所述應(yīng)用分析機構(gòu)產(chǎn)生所述組合應(yīng)用的應(yīng)用模型、分析所述應(yīng)用模型符合多個組件交互規(guī)則的情況,以及輸出所述應(yīng)用模型符合多個組件交互規(guī)則的情況的分析結(jié)果。
2.根據(jù)權(quán)利要求1所述的裝置,其中所述至少一個動作包括向所述結(jié)果添加警告。
3.根據(jù)權(quán)利要求1所述的裝置,其中所述結(jié)果包括對于所述組合應(yīng)用的統(tǒng)計數(shù)據(jù)和至少一個警告。
4.根據(jù)權(quán)利要求1所述的裝置,其中所述應(yīng)用模型包括所述組合應(yīng)用中根據(jù)編程語言被分為多個分類的所述多個組件。
5.根據(jù)權(quán)利要求4所述的裝置,其中所述模型還包括描述所述多個分類中的第一分類中的組件和所述多個分類中的第二分類中的組件之間的交互的元數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的裝置,其中所述至少一個條件規(guī)定兩個編程語言和所述兩個編程語言之間的交互。
7.一種計算機實現(xiàn)的方法,用于分析包括以多個不同的編程語言編寫的多個組件的組合應(yīng)用,所述方法包括以下步驟: 提供至少一個處理器; 提供耦接至所述至少一個處理器的存儲器; 提供駐留在所述存儲器中的多個組件交互規(guī)則,每個組件交互規(guī)則包括不同編程語言的組件之間的至少一個條件、以及取決于所述至少一個條件是否被滿足而執(zhí)行的至少一個動作; 所述至少一個處理器執(zhí)行以下步驟: 接收所述組合應(yīng)用; 產(chǎn)生所述組合應(yīng)用的應(yīng)用模型; 分析所述應(yīng)用模型符合多個組件交互規(guī)則的情況;以及 輸出所述應(yīng)用模型符合多個組件交互規(guī)則的情況的分析結(jié)果。
8.根據(jù)權(quán)利要求7所述的方法,其中至少一個動作包括向所述結(jié)果添加警告。
9.根據(jù)權(quán)利要求7所述的方法,其中所述結(jié)果包括對于所述組合應(yīng)用的統(tǒng)計數(shù)據(jù)和至少一個警告。
10.根據(jù)權(quán)利要求7所述的方法,其中所述應(yīng)用模型包括所述組合應(yīng)用中根據(jù)編程語言被分為多個分類的所述多個組件。
11.根據(jù)權(quán)利要求10所述的方法,其中所述模型還包括描述所述多個分類中的第一分類中的組件和所述多個分類中的第二分類中的組件之間的交互的元數(shù)據(jù)。
12.根據(jù)權(quán)利要求7所述的方法,其中所述至少一個條件規(guī)定兩個編程語言和所述兩個編程語言之間的交互。
13.一種計算機實現(xiàn)的方法,用于分析包括以多個不同的編程語言編寫的多個組件的組合應(yīng)用,所述方法包括以下步驟: 提供至少一個處理器; 提供耦接至所述至少一個處理器的存儲器; 提供駐留在所述存儲器中的多個組件交互規(guī)則,每個組件交互規(guī)則包括不同編程語言的組件之間的至少一個條件、以及取決于所述至少一個條件是否被滿足而執(zhí)行的至少一個動作; 所述至少一個處理器執(zhí)行以下步驟: 接收所述組合應(yīng)用; 產(chǎn)生所述組合應(yīng)用的應(yīng)用模型,所述應(yīng)用模型包括所述組合應(yīng)用中根據(jù)編程語言被分為多個分類的所述多個組件,其中所述多個分類的每個分類包括描述不同分類中的組件之間的交互的元數(shù)據(jù); 分析所述應(yīng)用模型符合多個組件交互規(guī)則的情況;以及 輸出所述應(yīng)用模型符合多個組件交互規(guī)則的情況的分析結(jié)果,所述結(jié)果包括對于所述組合應(yīng)用的統(tǒng)計數(shù)據(jù)和至少一個警告。
14.一種制造品,其包括存儲在有形存儲介質(zhì)上的軟件,所述軟件包括: 應(yīng)用分析機構(gòu),產(chǎn)生包括以多個不同的編程語言編寫的多個組件的組合應(yīng)用的應(yīng)用模型,分析所述應(yīng)用模型符合多個組件交互規(guī)則的情況,每個組件交互規(guī)則包括至少一個不同編程語言的組件之間的條件以及取決于所述一個條件是否被滿足而執(zhí)行的至少一個動作,以及輸出所述應(yīng)用模型符合多個組件交互規(guī)則的情況的分析結(jié)果。
15.根據(jù)權(quán)利要求14所述的制造品,其中所述至少一個動作包括向所述結(jié)果添加警告。
16.根據(jù)權(quán)利要求14所述的制造品,其中所述結(jié)果包括對于所述組合應(yīng)用的統(tǒng)計數(shù)據(jù)和至少一個警告。
17.根據(jù)權(quán)利要求14所述的制造品,其中所述應(yīng)用模型包括所述組合應(yīng)用中根據(jù)編程語言被分為多個分類的所述多個組件。
18.根據(jù)權(quán)利要求17所述的制造品,其中所述模型還包括描述所述多個分類中的第一分類中的組件和所述多個分類中的第二分類中的組件之間的交互的元數(shù)據(jù)。
19.根據(jù)權(quán)利要求14所述的制造品,其中所述至少一個條件規(guī)定兩個編程語言和所述兩個編程語言之間的交互。
全文摘要
一種應(yīng)用分析機構(gòu),其分析組合應(yīng)用符合一組組件交互規(guī)則的情況,該規(guī)則定義以不同語言編寫的組件之間應(yīng)該滿足的一個或多個條件、以及取決于對條件的分析而執(zhí)行的動作。當(dāng)定義了組件交互規(guī)則時,接收組合應(yīng)用。下面,構(gòu)建組合應(yīng)用的模型,其基于使用的編程語言將組合應(yīng)用的組件分為各個分類,并包括描述組件之間的交互的元數(shù)據(jù)。然后對組合應(yīng)用的模型運行該組組件交互規(guī)則。然后輸出該分析的結(jié)果。對組合應(yīng)用的自動分析去除了易于出現(xiàn)人為誤差的大多數(shù)處理,從而提供用于分析組合應(yīng)用的有效和一致的方法。
文檔編號G06F11/36GK103154905SQ20118004897
公開日2013年6月12日 申請日期2011年9月1日 優(yōu)先權(quán)日2010年10月11日
發(fā)明者R.T.克勞森, E.N.赫尼斯 申請人:國際商業(yè)機器公司