專利名稱:使用基于事件的遺留應(yīng)用進(jìn)行的集成系統(tǒng)組合建模的制作方法
技術(shù)領(lǐng)域:
本公開(kāi)涉及一種用于使用基于事件的遺留應(yīng)用來(lái)擴(kuò)展建模環(huán)境的工具。特別地, 本公開(kāi)涉及這樣的工具,其允許建模人員創(chuàng)建用于來(lái)自圖形用戶界面(GUI)應(yīng)用(GAP)的 建模環(huán)境工具箱的建模元素,以及生成用以控制和操縱由建模元素表示的GAP的GUI對(duì)象 的源代碼。
背景技術(shù):
集成系統(tǒng)由交換信息的組件組成,這樣的組件也被稱為互操作組件。集成系統(tǒng)的 組件可以包含基于事件的不同遺留應(yīng)用,例如圖形用戶界面(⑶I)應(yīng)用(GAP)。組織使用遺 留的GAP來(lái)協(xié)助業(yè)務(wù)運(yùn)營(yíng),以使業(yè)務(wù)處理自動(dòng)化,例如,增加信息交換的速度和有效性。組織發(fā)現(xiàn)將GAP重新建造到編程組件中是困難的,這是因?yàn)榇嗳醯倪z留架構(gòu)、不 良的文檔、巨大的編程努力、以及由此導(dǎo)致的這些項(xiàng)目的巨大成本。因?yàn)闃I(yè)務(wù)成功使用GAP 數(shù)十年,管理者不愿意批準(zhǔn)更改源代碼,因這可能破壞GAP和擾亂已經(jīng)良好建立的業(yè)務(wù)服 務(wù)。為了通過(guò)增加GAP與新組件(例如網(wǎng)絡(luò)服務(wù))的互操作性來(lái)改善業(yè)務(wù)處理,許多組織 探索如何在新的集成系統(tǒng)中包含遺留GAP。組織經(jīng)常依賴建模人員開(kāi)發(fā)新集成系統(tǒng)的模型。建模人員可以使用統(tǒng)一建模語(yǔ)言 (UML)圖形表示應(yīng)用(例如,ArgoUML 應(yīng)用),其提供了用來(lái)創(chuàng)建描述新集成系統(tǒng)的模型的 一套圖形符號(hào)技術(shù)。然而,建模人員發(fā)現(xiàn),對(duì)包含GAP的新集成系統(tǒng)進(jìn)行建模是困難的,因 為許多GAP是封閉的、整體的,并且沒(méi)有以已知的格式公開(kāi)任何編程接口或數(shù)據(jù)。盡管建模 人員渴望將GAP作為集成系統(tǒng)中的組件使用,但是建模人員發(fā)現(xiàn),捕獲GAP的功能和接口以 作為基于UML的模型的元素(例如,類和接口)是困難的。建模人員發(fā)現(xiàn),捕獲GUI對(duì)象的 屬性和GUI對(duì)象間的依賴關(guān)系是困難的,因?yàn)镚UI模型對(duì)于遺留應(yīng)用經(jīng)常是不可得的。當(dāng)前,建模人員使用手工的、費(fèi)勁的、易于出錯(cuò)的過(guò)程來(lái)研究GAP以及將GUI對(duì)象 轉(zhuǎn)換為UML元素,以作為這些GAP功能的抽象。建模人員發(fā)現(xiàn),在建模環(huán)境中使用GAP是困 難的,因?yàn)樵S多遺留GAP沒(méi)有公開(kāi)任何編程接口。建模人員發(fā)現(xiàn),捕獲GUI對(duì)象的屬性和 GUI對(duì)象間的依賴關(guān)系是困難的,因?yàn)镚UI模型對(duì)于遺留應(yīng)用經(jīng)常是不可得的。理論上,能夠從GAP的源代碼中提取GUI模型,然而,存在兩個(gè)根本的限制。第一, GAP的源代碼經(jīng)常可能是不可得的。例如,建模可能外包給外部組織,遺留應(yīng)用的源代碼可 能不對(duì)該組織共享。這樣,外部組織沒(méi)有能力從源代碼中導(dǎo)出精確的⑶I模型。第二,即使 外部組織具有或擁有對(duì)源代碼的訪問(wèn)權(quán),依然存在使從源代碼導(dǎo)出GUI模型的方法低效的 限制。例如,Microsoft Windows 應(yīng)用編程接口(API)調(diào)用CreatWindow,其用在大量的 GAP中,獲得包括字符串變量的若干參數(shù)變量,該字符串變量保有GUI對(duì)象的類型的值,這 個(gè)值常常是只有在運(yùn)行時(shí)才可知。另外,從GAP的源代碼導(dǎo)出模型依賴于了解創(chuàng)建和操縱GUI對(duì)象的API調(diào)用的精 確語(yǔ)義(例如,CreatWindow)、為用于創(chuàng)建GUI應(yīng)用的語(yǔ)言建立適當(dāng)?shù)慕馕銎骱头治銎饕?及開(kāi)發(fā)用于從集成開(kāi)發(fā)環(huán)境(IDE)GUI資源庫(kù)中提取GUI模型的IDE特定工具。元組的數(shù)量按照“API調(diào)用X編程語(yǔ)言XIDE”的成千上萬(wàn)的笛卡爾積來(lái)測(cè)量,這增加了識(shí)別與不同 GUI應(yīng)用的源代碼庫(kù)一起工作的方法的難度。UML模型中使用⑶I對(duì)象的一個(gè)根本限制是⑶I對(duì)象不是可以使用UML標(biāo)準(zhǔn)元素 來(lái)建模的編程對(duì)象。在相應(yīng)的GAP內(nèi)使用底層GUI框架創(chuàng)建GUI對(duì)象,GUI對(duì)象不是任何建 模環(huán)境的一部分。一些GUI對(duì)象要求用戶在GUI對(duì)象實(shí)例化之前執(zhí)行對(duì)GAP的多個(gè)動(dòng)作。 在未將這些動(dòng)作嵌入U(xiǎn)ML元素中的情況下,建模人員發(fā)現(xiàn)創(chuàng)建能夠轉(zhuǎn)變成使用這些⑶I對(duì) 象的源代碼的UML模型是困難的。GAP以很多不同的語(yǔ)言編寫(xiě)并運(yùn)行在很多不同的平臺(tái)。存在很多從GAP中提取數(shù) 據(jù)的平臺(tái)和語(yǔ)言特定的技術(shù)。然而,在用于不同建模平臺(tái)和語(yǔ)言的工具中實(shí)現(xiàn)這些特定技 術(shù)導(dǎo)致用于各個(gè)工具的多個(gè)源代碼版本、增加了維護(hù)工具的成本、難以維護(hù)和演進(jìn)不同的 代碼庫(kù)。最后,建模人員發(fā)現(xiàn)從包含描述GUI對(duì)象的元素的UML模型中生成源代碼是困難 的。表示⑶I對(duì)象的類應(yīng)包含訪問(wèn)和操縱這些⑶I對(duì)象的代碼,因?yàn)檫@些⑶I對(duì)象在GAP 進(jìn)程和底層⑶I框架(例如,MS-Windows 或Java SWT-標(biāo)準(zhǔn)部件工具包)的上下文中動(dòng) 態(tài)地創(chuàng)建。因?yàn)槟P蜎](méi)有反映GUI對(duì)象存在的上下文,建模人員發(fā)現(xiàn)維護(hù)和利用相應(yīng)的GAP 演進(jìn)這些模型是困難的。上述技術(shù)沒(méi)有一個(gè)是足夠一致的、非侵入性的和有效的。因此,需要解決上述問(wèn)題 和之前經(jīng)歷的其它問(wèn)題。
發(fā)明內(nèi)容
通過(guò)為GAP的GUI對(duì)象和GAP的功能定義建模元素,“基于事件的集成應(yīng)用組合建 模”(CINEMA)有效地且非侵入性地?cái)U(kuò)展了 UML建模環(huán)境。為了創(chuàng)建模型,CINEMA通過(guò)導(dǎo)航 GUI對(duì)象、選擇GUI對(duì)象、將GUI對(duì)象拖放到建模畫(huà)布上,允許用戶對(duì)包含遺留GAP的集成 系統(tǒng)進(jìn)行建模。由于CINEMA廣泛的適用性,CINEMA使用不依賴于語(yǔ)言的底層技術(shù),其對(duì)于 控制和操縱GAP的主要計(jì)算平臺(tái)是通用的。CINEMA從GUI結(jié)構(gòu)分離UML建模環(huán)境,并隱藏 CINEMA中模型和GAP之間的連接。CINEMA⑴便于用戶使用GAP創(chuàng)建集成系統(tǒng)模型,⑵在 用戶與GAP交互期間捕獲結(jié)構(gòu)和狀態(tài),以及(3)指定用在模型中并隨后部署在產(chǎn)生的集成 系統(tǒng)中的GUI對(duì)象的類型和名稱。CINEMA可以用于數(shù)據(jù)集成、GAP復(fù)用、協(xié)同計(jì)算和應(yīng)用向新平臺(tái)的移植。使用 CINEMA,建模人員花費(fèi)最少的開(kāi)發(fā)努力來(lái)建模集成系統(tǒng)。例如,CINEMA通過(guò)在集成系統(tǒng)中簡(jiǎn) 單地復(fù)用遺留應(yīng)用,提供了重寫(xiě)遺留應(yīng)用的有吸引力的替代方式。CINEMA提供有效和非侵 入性的方式,允許工程師使用現(xiàn)有的GAP來(lái)創(chuàng)建供CINEMA用來(lái)擴(kuò)展建模環(huán)境的組合模型。 CINEMA結(jié)合了輔助技術(shù)的非標(biāo)準(zhǔn)用途以用于訪問(wèn)和控制GAP。CINEMA擴(kuò)展了 UML建模環(huán) 境,允許建模人員使用GAP特性創(chuàng)建集成環(huán)境的模型。通過(guò)允許工程師使用現(xiàn)有的GAP創(chuàng) 建組合模型,CINEMA逆轉(zhuǎn)了從需求到應(yīng)用的標(biāo)準(zhǔn)建模方向(例如,GAP到需求)。CINEMA允許用戶(例如,建模人員)將GAP建模為編程對(duì)象、將這些GAP的⑶I對(duì) 象建模為這些編程對(duì)象的域,并通過(guò)調(diào)用對(duì)編程對(duì)象的方法執(zhí)行對(duì)這些編程對(duì)象的動(dòng)作。 不幸的是,集成系統(tǒng)和建模環(huán)境(IS/ΜΕ)不能象純粹的編程對(duì)象那樣訪問(wèn)和操縱GUI對(duì)象, 因?yàn)镚UI對(duì)象只能支持用戶級(jí)別的交互。輔助技術(shù)公開(kāi)了特殊的接口,其方法能夠被調(diào)用、
5其域值能夠被設(shè)置和獲取以控制GUI對(duì)象。為了以一致的方式訪問(wèn)和控制GAP,CINEMA結(jié)合了輔助技術(shù)的非標(biāo)準(zhǔn)用途。 CINEMA使用可視化機(jī)制,能夠使用戶通過(guò)對(duì)GAP執(zhí)行點(diǎn)擊和拖放操作創(chuàng)建包含GAP的GUI 對(duì)象的集成系統(tǒng)模型。CINEMA使用可訪問(wèn)性層和鉤子將事件監(jiān)聽(tīng)器注入GAP。為了創(chuàng)建擴(kuò) 展UML建模環(huán)境(例如,Eclipse 軟件-在Eclipse Public License (EPL) 1. 0開(kāi)源許可 下發(fā)布)的建模元素,事件監(jiān)聽(tīng)器響應(yīng)CINEMA記錄的事件。輔助技術(shù)對(duì)于殘障計(jì)算機(jī)用戶提供不同的幫助。由輔助技術(shù)提供的一些幫助包括 用于視覺(jué)受損用戶的屏幕閱讀器、用于喪失聽(tīng)力的用戶的視覺(jué)指示器或字幕、以及對(duì)行動(dòng) 不便用戶進(jìn)行彌補(bǔ)的軟件。大多數(shù)計(jì)算平臺(tái)包含輔助技術(shù),因?yàn)橐箅娮有畔⒓夹g(shù)產(chǎn)品和 服務(wù)滿足電子信息輔助標(biāo)準(zhǔn)。例如,Mircosoft Active Accessibility(MSAA )技術(shù)設(shè) 計(jì)用來(lái)改善輔助幫助與運(yùn)行在MS-Windows 上的應(yīng)用一起工作的方式,Sun Microsystem Accessibility技術(shù)幫助在Java虛擬機(jī)(JVM )上運(yùn)行軟件的殘疾人士。為了公開(kāi)關(guān)于用 戶接口元素的信息,輔助技術(shù)被并入計(jì)算平臺(tái)、庫(kù)和應(yīng)用中。輔助技術(shù)提供了許多復(fù)雜的服 務(wù),要求這些服務(wù)取得⑶I對(duì)象屬性、設(shè)置和獲取用于⑶I對(duì)象的值、以及產(chǎn)生和攔截不同 的事件。例如,盡管可以使用用于Windows 的MSAA ,但是使用一個(gè)不同的輔助技術(shù)也會(huì) 產(chǎn)生相似的結(jié)果。盡管不存在用于輔助應(yīng)用編程接口(API)調(diào)用的標(biāo)準(zhǔn),但是不同的技術(shù) 提供相似的API調(diào)用,這意味著達(dá)成用于輔助技術(shù)的通用編程標(biāo)準(zhǔn)將是緩慢的。輔助技術(shù) 利用了 GUI對(duì)象公開(kāi)了一個(gè)公知的接口,該接口輸出用于訪問(wèn)和操縱這些對(duì)象的屬性和行 為的方法。例如,實(shí)現(xiàn)IAccessible 接口的MS-Windows 的⑶I對(duì)象允許使用MSAA 的 API調(diào)用訪問(wèn)和操縱該GUI對(duì)象。輔助技術(shù)允許程序員編寫(xiě)代碼以如同標(biāo)準(zhǔn)編程對(duì)象一樣 訪問(wèn)和控制GUI對(duì)象。使用輔助技術(shù),程序員還能夠?yàn)镚UI對(duì)象產(chǎn)生的不同事件注冊(cè)回調(diào) 函數(shù),從而及時(shí)獲得關(guān)于GUI對(duì)象狀態(tài)的信息。例如,如果一個(gè)GUI對(duì)象接收了一個(gè)不正確 的輸入并且GAP顯示一個(gè)錯(cuò)誤消息對(duì)話框通知用戶這個(gè)錯(cuò)誤,則先前注冊(cè)的回調(diào)函數(shù)能夠 攔截通知產(chǎn)生錯(cuò)誤消息對(duì)話框的事件、讓該事件離開(kāi)、并發(fā)送一個(gè)“非法輸入”消息給控制 GAP的工具和/或編程指令。鉤子是用戶定義的庫(kù),包含回調(diào)函數(shù)(或簡(jiǎn)稱回調(diào)),其按照輔助技術(shù)指示的一定 規(guī)則編寫(xiě)。當(dāng)一個(gè)目標(biāo)GAP啟動(dòng)時(shí),可訪問(wèn)性層在該GAP的進(jìn)程空間中加載預(yù)定義的鉤子 庫(kù),并注冊(cè)響應(yīng)特定事件而被調(diào)用的回調(diào)函數(shù)的地址。因?yàn)殂^子在GAP的進(jìn)程空間里“生 存”,鉤子的回調(diào)函數(shù)能夠影響執(zhí)行這些GAP的每個(gè)方面。鉤子允許用戶擴(kuò)展GAP的功能, 特別是不用改變GAP源代碼的情況下將鉤子和GAP集成在一起。編寫(xiě)鉤子不需要任何關(guān)于 GAP源代碼的知識(shí)。鉤子庫(kù)可以是所有GAP通用的。鉤子被注入GAP、監(jiān)聽(tīng)該GAP生成的事 件、執(zhí)行從集成系統(tǒng)接收的指令。作為一個(gè)例子指令,鉤子可以禁用按鈕直到一定的事件發(fā) 生。鉤子庫(kù)允許程序員改變現(xiàn)有GAP的功能,而無(wú)需修改GAP的源代碼。通用鉤子的功能 包括接收對(duì)GUI對(duì)象執(zhí)行動(dòng)作的命令、報(bào)告發(fā)生在GAP內(nèi)的事件、響應(yīng)一定的命令和事件調(diào) 用預(yù)定義的函數(shù)。上面提到的一些概念可以在以下的美國(guó)專利申請(qǐng)中更加詳細(xì)說(shuō)明,包括序 列號(hào) 11/710,681,公開(kāi)號(hào) 2008/0209356,標(biāo)題是"Graphical Unit Interface Based Application to Web Services Conversion System",Mark Grechanik等人,申請(qǐng)日是2007 年 2 月 23 日;序列號(hào) 11/710,233,公開(kāi)號(hào) 2008/0209348,標(biāo)題是"Composing IntegratedSystems Using GUI-Based Applications and Web Services,,,Mark Grechanik 等人, 申請(qǐng)日是2007年2月23日;序列號(hào)11/710,680,公開(kāi)號(hào)2008/0209446,標(biāo)題是“Design Tool for Converting Legacy Applications to Web Services,,,Mark Grechanik 等人, 申請(qǐng)日是2007年2月23日;序列號(hào)11/888,970,公開(kāi)號(hào)2009/0037896,標(biāo)題是“Legacy Application Decommissioning Framework,,,Mark Grechanik 等人,申請(qǐng)日是 2007 年 8 月 2 日;序列號(hào) 11/824,373,公開(kāi)號(hào) 2009/0007066,標(biāo)題是“Refactoring Monolithic Applications into Dynamically Reconfigurable Applications,,,Mark Grechanik等人, 申請(qǐng)日是2007年6月29日,這些美國(guó)專利申請(qǐng)的每一篇的全部公開(kāi)內(nèi)容通過(guò)引用結(jié)合于 此。CINEMA允許建模人員創(chuàng)建集成系統(tǒng)的模型,其高度自動(dòng)化地利用遺留GAP。使用 CINEMA創(chuàng)建的模型可以表示這樣的集成系統(tǒng),該集成系統(tǒng)能夠在大型分布式企業(yè)環(huán)境中提 供功能,其協(xié)調(diào)位于不同計(jì)算機(jī)和運(yùn)行在不同平臺(tái)(例如,操作系統(tǒng)和系統(tǒng)配置)的不同 GAP。CINEMA提供非侵入性的方式來(lái)創(chuàng)建模型和生成控制GAP的源代碼。CINEMA允許建 模人員僅需具有為完成業(yè)務(wù)任務(wù)如何與GAP交互的基礎(chǔ)知識(shí),就能使用GUI對(duì)象創(chuàng)建模型。 CINEMA允許建模人員使用GUI對(duì)象創(chuàng)建模型而無(wú)需為模型編寫(xiě)代碼、關(guān)于組件源代碼的知 識(shí)、解析任何源代碼、也無(wú)需編寫(xiě)復(fù)雜的代碼改變程序可執(zhí)行文件。通過(guò)研讀附圖和詳細(xì)說(shuō)明,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),其它系統(tǒng)、方法、特征和優(yōu) 點(diǎn)將會(huì)是、或?qū)?huì)變得顯然。所有這樣的系統(tǒng)、方法、特征和優(yōu)點(diǎn)包含在說(shuō)明書(shū)中、在要求保 護(hù)的主題范圍內(nèi)、并由下面的權(quán)利要求所保護(hù)。
參照下面的附圖和說(shuō)明,系統(tǒng)可以被更好理解。附圖中的元素并不是必須按比例 的,而是重點(diǎn)放在解釋系統(tǒng)的原理。附圖中,相同的引用數(shù)字在所有的不同視圖中指示對(duì)應(yīng) 的部分。圖1說(shuō)明CINEMA系統(tǒng)配置的一個(gè)例子。圖 2 說(shuō)明 CINEMA 用戶界面(CINEMA UI)。圖3說(shuō)明CINEMA使用GAP的⑶I對(duì)象來(lái)創(chuàng)建新建模元素可以采用的邏輯流程。圖4顯示⑶I對(duì)象的生命周期的狀態(tài)圖。圖5說(shuō)明CINEMA根據(jù)模型生成用于GAP的⑶I對(duì)象的處理器可執(zhí)行模型指令可 以采用的邏輯流程。圖6說(shuō)明可以對(duì)GAP的⑶I對(duì)象安全執(zhí)行的操作,如同對(duì)編程對(duì)象執(zhí)行一樣。圖7顯示用CINEMA創(chuàng)建網(wǎng)絡(luò)服務(wù)所付出努力的測(cè)量例子。圖8顯示⑶I對(duì)象屬性集的例子。
具體實(shí)施例方式圖1說(shuō)明了被稱為“基于事件的集成應(yīng)用組合建模”(CINEMA) 102 (例如,建模工 具)的系統(tǒng)和工具的系統(tǒng)配置100,該系統(tǒng)和工具允許用戶建模和創(chuàng)建對(duì)GAP和其它編程組 件(例如,網(wǎng)絡(luò)服務(wù))進(jìn)行組合的集成系統(tǒng)。CINEMA系統(tǒng)配置100包含CINEMA系統(tǒng)102,其 包含耦合到處理器106的存儲(chǔ)器104,通過(guò)通信接口 108與CINEMA系統(tǒng)配置100的組件通信。CINEMA系統(tǒng)配置100進(jìn)一步包含用戶接口 110、GAP 112、用戶114 (例如,建模人員)、 集成系統(tǒng)(例如,116和118)以及組合集成系統(tǒng)172 (例如,組合GAPl 12和集成系統(tǒng)如116 和 118)。存儲(chǔ)器104存儲(chǔ)基于事件的組合建模(CINEMA)指令120,其由處理器106執(zhí)行時(shí), 使處理器通過(guò)用戶接口 110接收外部⑶I應(yīng)用(GAP) 112的⑶I對(duì)象124的圖形用戶界面 (⑶I)對(duì)象定義122。用戶114從外部GAP 112選擇⑶I對(duì)象124。⑶I對(duì)象定義112包含 ⑶I對(duì)象屬性集126。在一個(gè)實(shí)現(xiàn)中,CINEMA 102可以調(diào)用外部GAP 112。外部GAPl 12與CINEMA 102 分離。換句話說(shuō),外部GAP 112可以在沒(méi)有CINEMA 102運(yùn)行和/或沒(méi)有CINEMA 102調(diào)用 外部GAP 112的情況下運(yùn)行。在一個(gè)實(shí)現(xiàn)中,外部GAP 112運(yùn)行在一個(gè)單獨(dú)的進(jìn)程空間中, 并且不和CINEMA 102共享變量。在另一個(gè)實(shí)現(xiàn)中,當(dāng)CINEMA102調(diào)用外部GAP 112時(shí),外 部GAP 112運(yùn)行在CINEMA 102的進(jìn)程空間中。在又一個(gè)實(shí)現(xiàn)中,用戶114可以配置CINEMA 102與外部GAP 112 一起操作,以運(yùn)行在包含低度隔離、中度隔離和高度隔離模式的三個(gè)隔 離模式之一。在低度隔離模式下,當(dāng)CINEMA 102調(diào)用外部GAP 112時(shí),外部GAP 112運(yùn)行 在與CINEMA 102相同的進(jìn)程空間中。在中度隔離模式下,多個(gè)GAP 112運(yùn)行在一個(gè)進(jìn)程空 間中,而CINEMA 102運(yùn)行在單獨(dú)的進(jìn)程空間中。在高度隔離模式下,多個(gè)GAP 112中的每 一個(gè)運(yùn)行在單獨(dú)的進(jìn)程空間中,而CINEMA102運(yùn)行在另一單獨(dú)的進(jìn)程空間中。用戶114可 以基于可用于用戶114想要用于建模的特定GAP 112和/或CINEMA系統(tǒng)配置100的系統(tǒng) 計(jì)算資源,選擇隔離模式。CINEMA 102包含建模元素面板128,其包含現(xiàn)有的建模元素130和建模畫(huà)布132。 CINEMA 102允許用戶114通過(guò)為⑶I對(duì)象124生成建模元素類136來(lái)獲得新的建模元素 134,從而在建模元素面板128中根據(jù)⑶I對(duì)象定義122創(chuàng)建新的建模元素134。通過(guò)定義 由⑶I對(duì)象124執(zhí)行的動(dòng)作138、建模元素類型140、數(shù)據(jù)類型142和由⑶I對(duì)象124的方法 146執(zhí)行的函數(shù)144,CINEMA 102生成建模元素類136。在一個(gè)實(shí)現(xiàn)中,用戶114為用于新 的建模元素134的建模元素類136定義動(dòng)作138、元素類型140、數(shù)據(jù)類型142和函數(shù)144。 在一個(gè)實(shí)現(xiàn)中,通過(guò)將⑶I對(duì)象定義轉(zhuǎn)碼以獲得⑶I建模元素的建模元素表示,CINEMA 102 生成新的建模元素134。CINEMA 102生成模擬與GAP 112交互的人工驅(qū)動(dòng)過(guò)程的代碼,這被稱為轉(zhuǎn)碼。 CINEMA 102將⑶I對(duì)象屬性集126轉(zhuǎn)碼為經(jīng)轉(zhuǎn)碼的⑶I對(duì)象指令148 (例如,編程指令), 產(chǎn)生的集成系統(tǒng)和/或組合集成系統(tǒng)(例如,116,118與172)可以執(zhí)行該指令以控制和操 縱GAP 112的⑶I對(duì)象124。在一個(gè)實(shí)現(xiàn)中,基于事件的組合建模指令120使處理器將⑶I 對(duì)象屬性集126轉(zhuǎn)碼以獲得經(jīng)轉(zhuǎn)碼的GUI對(duì)象指令148,該指令被配置為定位、操縱和控制 ⑶I對(duì)象124。CINEMA 102還可以生成異常處理代碼,其處理在控制GAP 112時(shí)可以被拋出 的異常(例如,顯示消息框以通知用戶不正確格式的輸入)。基于事件的組合建模指令120 可以進(jìn)一步使處理器綁定150經(jīng)轉(zhuǎn)碼的⑶I對(duì)象指令148,以獲得處理器106可執(zhí)行模型指 令152,該指令使處理器106根據(jù)使用新的建模元素134創(chuàng)建的模型154來(lái)操縱GUI對(duì)象 124。簡(jiǎn)要參考圖8,⑶I對(duì)象屬性集126包括決定如何訪問(wèn)⑶I對(duì)象124的⑶I對(duì)象 訪問(wèn)方法802,以及捕獲如何導(dǎo)航到GAP 112中的⑶I對(duì)象124的⑶I對(duì)象導(dǎo)航信息804。⑶I對(duì)象屬性集126進(jìn)一步包括⑶I對(duì)象標(biāo)識(shí)符信息806 ;幾何信息808 ;訪問(wèn)權(quán)限810 ; 讀寫(xiě)約束812 ;輸入?yún)?shù)814 ;瞬態(tài)值816 ;和返回參數(shù)818。在一個(gè)實(shí)現(xiàn)中,CINEMA 102將 GUI對(duì)象屬性集126轉(zhuǎn)碼,以創(chuàng)建新的建模元素134并生成用于集成系統(tǒng)和/或組合集成系 統(tǒng)(例如,116、118與172)的編程指令(例如,經(jīng)轉(zhuǎn)碼的GUI對(duì)象指令148),用來(lái)控制和操 縱GAP 112和其它組件(例如,網(wǎng)絡(luò)服務(wù)和其它GAP),在下面詳細(xì)討論。回到圖1,⑶I對(duì)象屬性集126使用啟用輔助的接口 156 (例如,輔助API調(diào)用)為 CINEMA 102提供關(guān)于GAP 112和GUI對(duì)象124的結(jié)構(gòu)信息,CINEMA 102在用戶114與GAP 112、GUI對(duì)象124和GAP 112的GUI屏幕158序列交互(例如,用戶交互)時(shí)記錄這些信 息。在一個(gè)實(shí)現(xiàn)中,CINEMA 102使用輔助API調(diào)用156和GAP112中的鉤子160 (例如,事 件監(jiān)聽(tīng)器)接收⑶I對(duì)象屬性集126。鉤子160響應(yīng)CINEMA 102作為⑶I對(duì)象屬性集126 捕獲的事件。下面進(jìn)一步詳細(xì)討論,CINEMA可以使用GUI對(duì)象屬性集126、根據(jù)模型154產(chǎn) 生所選編程語(yǔ)言(例如,語(yǔ)言選擇162)的源代碼(例如,模型指令152),并編譯和執(zhí)行該源 代碼(例如,模型指令152)。CINEMA 102可以生成異常處理代碼164,其處理在使用模型 指令152控制GAP 112時(shí)可能拋出的異常(例如,顯示消息框以通知用戶不正確格式的輸 入)。表1顯示了在一個(gè)實(shí)現(xiàn)中,CINEMA 102如何創(chuàng)建用于GUI對(duì)象124的GUI對(duì)象類 (例如,新的建模元素134)。
權(quán)利要求
一種制造產(chǎn)品,包括計(jì)算機(jī)可讀介質(zhì);以及存儲(chǔ)在所述介質(zhì)上的指令,當(dāng)被處理器執(zhí)行時(shí),使所述處理器通過(guò)接收在建模工具外部的圖形用戶界面(GUI)應(yīng)用(GAP)中選擇的GUI對(duì)象的GUI對(duì)象定義;根據(jù)所述GUI對(duì)象定義生成與所述建模工具兼容的GUI建模元素;以及向建模元素面板添加所述GUI建模元素,來(lái)修改所述建模工具的所述建模元素面板。
2.如權(quán)利要求1所述的制造產(chǎn)品,其中接收包括 接收包括以下任意組合的GUI對(duì)象定義定位所述GAP中的所述GUI對(duì)象的幾何信息; 針對(duì)所述GAP中的所述GUI對(duì)象的訪問(wèn)約束;以及 針對(duì)所述GUI對(duì)象的輸入?yún)?shù)或輸出參數(shù)。
3.如權(quán)利要求1所述的制造產(chǎn)品,其中生成包括對(duì)所述GUI對(duì)象定義進(jìn)行轉(zhuǎn)碼,以獲得所述GUI建模元素的建模元素表示。
4.如權(quán)利要求1所述的制造產(chǎn)品,其中接收包括 接收包括以下任意組合的GUI對(duì)象定義用于對(duì)所述GUI對(duì)象執(zhí)行操作的GUI對(duì)象訪問(wèn)方法;以及 指定如何到達(dá)所述GAP中的所述GUI對(duì)象的GUI對(duì)象導(dǎo)航信息。
5.如權(quán)利要求4所述的制造產(chǎn)品,其中所述GUI對(duì)象導(dǎo)航信息包括用于從所述GAP的 選定狀態(tài)到達(dá)所述GUI對(duì)象的屏幕序列。
6.如權(quán)利要求1所述的制造產(chǎn)品,其中接收包括通過(guò)針對(duì)所述GAP的可訪問(wèn)性層和鉤子來(lái)接收所述GUI對(duì)象定義。
7.一種系統(tǒng),包括 處理器;以及耦合到所述處理器的存儲(chǔ)器,所述存儲(chǔ)器包括指令,當(dāng)被處理器執(zhí)行時(shí),使所述處理器 通過(guò)接收在建模工具外部的圖形用戶界面(GUI)應(yīng)用(GAP)中選擇的GUI對(duì)象的GUI對(duì)象 定義;根據(jù)所述GUI對(duì)象定義生成與所述建模工具兼容的GUI建模元素;以及 向建模元素面板添加所述GUI建模元素, 來(lái)修改所述建模工具的所述建模元素面板。
8.如權(quán)利要求7所述的系統(tǒng),其中所述GUI對(duì)象定義包括以下任意組合 定位所述GAP中的所述GUI對(duì)象的幾何信息;針對(duì)所述GAP中的所述GUI對(duì)象的訪問(wèn)約束;以及 針對(duì)所述GUI對(duì)象的輸入?yún)?shù)或輸出參數(shù)。
9.如權(quán)利要求7所述的系統(tǒng),其中使所述處理器生成所述GUI建模元素的指令對(duì)所述 GUI對(duì)象定義進(jìn)行轉(zhuǎn)碼,以獲得所述GUI建模元素的建模元素表示。
10.如權(quán)利要求7所述的系統(tǒng),其中所述GUI對(duì)象定義包括以下任意組合接收包括以下任意組合的GUI對(duì)象定義用于對(duì)所述GUI對(duì)象執(zhí)行操作的GUI對(duì)象訪問(wèn)方法;以及指定如何到達(dá)所述GAP中的所述GUI對(duì)象的GUI對(duì)象導(dǎo)航信息。
11.如權(quán)利要求10所述的系統(tǒng),其中所述GUI對(duì)象導(dǎo)航信息包括用于從所述GAP的選 定狀態(tài)到達(dá)所述GUI對(duì)象的屏幕序列。
12.如權(quán)利要求7所述的系統(tǒng),其中所述存儲(chǔ)器進(jìn)一步包括通過(guò)其接收所述GUI對(duì)象定義的、針對(duì)所述GAP的可訪問(wèn)性層和鉤子。
13.一種方法,包括接收在建模工具外部的圖形用戶界面(GUI)應(yīng)用(GAP)中選擇的GUI對(duì)象的GUI對(duì)象 定義;根據(jù)所述GUI對(duì)象定義生成與所述建模工具兼容的GUI建模元素;以及 向建模元素面板添加所述GUI建模元素。
14.如權(quán)利要求13所述的方法,其中接收包括 接收包括以下任意組合的GUI對(duì)象定義定位所述GAP中的所述GUI對(duì)象的幾何信息; 針對(duì)所述GAP中的所述GUI對(duì)象的訪問(wèn)約束;以及 針對(duì)所述GUI對(duì)象的輸入?yún)?shù)或輸出參數(shù)。
15.如權(quán)利要求13所述的方法,其中生成包括對(duì)所述GUI對(duì)象定義進(jìn)行轉(zhuǎn)碼,以獲得所述GUI建模元素的建模元素表示。
16.如權(quán)利要求13所述的方法,其中接收包括 接收包括以下任意組合的GUI對(duì)象定義用于對(duì)所述GUI對(duì)象執(zhí)行操作的GUI對(duì)象訪問(wèn)方法;以及 指定如何到達(dá)所述GAP中的所述GUI對(duì)象的GUI對(duì)象導(dǎo)航信息。
17.如權(quán)利要求16所述的方法,其中所述GUI對(duì)象導(dǎo)航信息包括用于從所述GAP的選 定狀態(tài)到達(dá)所述GUI對(duì)象的屏幕序列。
18.如權(quán)利要求13所述的方法,其中接收包括通過(guò)針對(duì)所述GAP的可訪問(wèn)性層和鉤子來(lái)接收所述GUI對(duì)象定義。
全文摘要
本發(fā)明涉及使用基于事件的遺留應(yīng)用進(jìn)行的集成系統(tǒng)組合建模。具體地,基于事件的集成應(yīng)用組合建模(CINEMA)工具提供了一種使用基于事件的遺留應(yīng)用(諸如,圖形用戶界面(GUI)應(yīng)用(GAP))來(lái)擴(kuò)展建模環(huán)境的方式。CINEMA允許建模人員通過(guò)創(chuàng)建表示GAP的GUI對(duì)象的建模元素來(lái)擴(kuò)展建模環(huán)境的工具箱。CINEMA生成允許集成系統(tǒng)控制和操縱GAP的GUI對(duì)象的源代碼,該GUI對(duì)象由用來(lái)創(chuàng)建集成系統(tǒng)模型的建模元素表示。
文檔編號(hào)G06F9/44GK101996078SQ20101028586
公開(kāi)日2011年3月30日 申請(qǐng)日期2010年7月19日 優(yōu)先權(quán)日2009年8月13日
發(fā)明者M·格雷查尼克, 傅忱, 謝晴 申請(qǐng)人:埃森哲環(huán)球服務(wù)有限公司