專利名稱:對計(jì)算機(jī)部件交互建模的模式的制作方法
技術(shù)領(lǐng)域:
本發(fā)明針對計(jì)算系統(tǒng)的改善及具體地針對用于對計(jì)算機(jī)系統(tǒng)或部件之間的交互建模的模式。
有許多稱之為應(yīng)用系統(tǒng)的不同計(jì)算機(jī)系統(tǒng)。其例子包括數(shù)據(jù)庫管理或事務(wù)處理系統(tǒng)。這類系統(tǒng)有時稱為“后端”系統(tǒng),因一定的用戶并不直接訪問這些系統(tǒng),而是通過特定的“前端”或用戶接口,它們又再與應(yīng)用程序通信以便實(shí)現(xiàn)用戶所請求的功能。后端系統(tǒng)通常通過通信接口提供對后端系統(tǒng)功能的訪問,通信接口允許對后端系統(tǒng)的遠(yuǎn)距和分布式使用。
由于后端系統(tǒng)是由不同公司或組所開發(fā)的,它們提供不同的訪問方法,例如,提供不同API集合去使用它們的服務(wù)。這對應(yīng)用開發(fā)者造成一個嚴(yán)重問題,他們被迫熟悉使用不同API以支持不同后端系統(tǒng),甚至支持同一系統(tǒng)的不同通信方法。此外,要提供通用工具或這類訪問的任何類型的自動化都是非常困難的,例如代碼生成所需要的定制的工具是無法重新使用的,并且不支持多目標(biāo)。不僅如此,這類工具所要求的特定運(yùn)行時間支持也不能重新使用。這個問題特別麻煩,因不同后端系統(tǒng)的功能的抽象訪問非常類似。
因此希望有高層接口的標(biāo)準(zhǔn)集合,這類系統(tǒng)可依附于上以便允許用通用模式對計(jì)算機(jī)系統(tǒng)或部件之間的這些交互作用建模。
根據(jù)本發(fā)明的一個方面,提供了一種改善的計(jì)算機(jī)系統(tǒng)和方法。
根據(jù)本發(fā)明的另一方面,提供了一種改善的計(jì)算機(jī)系統(tǒng)和方法,用于在后端系統(tǒng)的客戶和部件之間交互或通信。
根據(jù)本發(fā)明的又一個方面,提供了一種計(jì)算機(jī)系統(tǒng),包括一個用于在后端系統(tǒng)中的客戶和部件之間進(jìn)行交互的命令,該命令包括一個供后端系統(tǒng)變換用的輸入對象;一個或多個輸出對象,用于代表后端系統(tǒng)變換后的輸入對象;一個連接規(guī)范,用于識別客戶與其交互的后端系統(tǒng);一個交互規(guī)范,用于識別后端系統(tǒng)中客戶與其交互的部件;及一個通信對象,用于實(shí)現(xiàn)后端系統(tǒng)中客戶與部件之間的連接,其中根據(jù)交互規(guī)范和連接規(guī)范向后端系統(tǒng)的部件提供輸入對象和其中在由后端系統(tǒng)部件處理之后一個或多個輸出對象接收變換的輸入對象,其中命令由執(zhí)行方法驅(qū)動和其中在處理輸入對象中當(dāng)后端系統(tǒng)的部件未遇到任何異常時該命令送出一個成功事件信號,及其中在處理輸入對象中后端系統(tǒng)的部件遇到一個異常時該命令送出一個不成功事件信號。
根據(jù)本發(fā)明的又一個方面,提供了以上的計(jì)算機(jī)系統(tǒng),其中該命令是一個面向?qū)ο蟮念悺?br>
根據(jù)本發(fā)明的又一個方面,提供了以上的計(jì)算機(jī)系統(tǒng),其中輸入對象和一個或多個輸出對象中每一個是定義的Java框架中的記錄群(bean)。
根據(jù)本發(fā)明的又一個方面,提供了一個包括導(dǎo)航器的計(jì)算機(jī)系統(tǒng),該導(dǎo)航器用于形成后端系統(tǒng)的交互流,該導(dǎo)航器包括一個集合,其選擇性地包含子命令和子導(dǎo)航器,該集合中的子命令和子導(dǎo)航器中每一個的執(zhí)行方法由導(dǎo)航器的執(zhí)行方法中所推導(dǎo)得的導(dǎo)航器中內(nèi)部事件中的一個所觸發(fā),或由來自該集合的子命令和子導(dǎo)航器中另一個選擇的一個的成功事件所觸發(fā),該集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行由此而定義了后端系統(tǒng)的交互流,其中導(dǎo)航器由一個執(zhí)行方法驅(qū)動和其中當(dāng)該集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行沒有送出不成功事件信號時導(dǎo)航器送出一個成功事件信號及其中當(dāng)該集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行中任何一次執(zhí)行送出一個不成功事件信號時導(dǎo)航器送出一個不成功事件信號,及其中子命令具有與命令等同的特性,及其中子導(dǎo)航器具有與導(dǎo)航器等同的特征。
根據(jù)本發(fā)明的又一個方面,提供了一個包括命令類的面向?qū)ο笥?jì)算機(jī)環(huán)境,該命令類用于在后端系統(tǒng)中的客戶和部件之間進(jìn)行交互,該命令類包括一個輸入對象,用于供后端系統(tǒng)中選擇的一個系統(tǒng)變換;一個或多個輸出對象,代表由選擇的一個后端系統(tǒng)變換之后的輸入對象;一個連接規(guī)范,用于識別客戶與其交互的選擇的一個后端系統(tǒng);一個交互規(guī)范,用于識別客戶與其交互的選擇的一個后端系統(tǒng)中的選擇的一個部件;以及一個通信對象,用于實(shí)現(xiàn)客戶與選擇的一個后端系統(tǒng)中的選擇的一個部件之間的連接,其中根據(jù)交互規(guī)范和連接規(guī)范將輸入對象提供給選擇的一個后端系統(tǒng)的選擇的一個部件,及其中在由選擇的一個后端系統(tǒng)中的選擇的一個部件進(jìn)行處理后一個或多個輸出對象接收變換的輸入對象,其中命令類的一個實(shí)例由客戶所調(diào)用的執(zhí)行方法驅(qū)動,及其中在處理輸入對象中當(dāng)選擇的一個后端系統(tǒng)的選擇的一個部件未遇到任何異常時該命令的實(shí)例發(fā)出一個成功事件信號,及其中在處理輸入對象中當(dāng)選擇的一個后端系統(tǒng)的選擇的一個部件遇到一個異常時該命令發(fā)出一個不成功事件信號。
根據(jù)本發(fā)明又一個方面,提供了以上面向?qū)ο蟮挠?jì)算機(jī)環(huán)境,其中該環(huán)境是Java編程語言環(huán)境及其中輸入對象和一個或多個輸出對象中每一個是在Java框架中定義的記錄群及其中導(dǎo)航器如下所述地定義為一個類。
本發(fā)明的優(yōu)點(diǎn)包括通過提供一個支持利用不同通信與不同后端系統(tǒng)交互的通用運(yùn)行時間來提供問題的解決方法。
本發(fā)明還提供用實(shí)現(xiàn)以上描述的系統(tǒng)或過程的程序代碼編碼的媒體。
圖中顯示了本發(fā)明優(yōu)選實(shí)施例,其中
圖1是顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例的命令體系結(jié)構(gòu)的框圖。
圖2是顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例的導(dǎo)航器的體系結(jié)構(gòu)的框圖。
圖中通過例子闡述本發(fā)明優(yōu)選實(shí)施例。應(yīng)明確地理解,說明和圖只用于闡述目的,有助于理解,并非用于限定本發(fā)明。
參照圖1,以框圖形式闡述根據(jù)優(yōu)選實(shí)施例的命令的結(jié)構(gòu)。在優(yōu)選實(shí)施例中命令是面向?qū)ο缶幊陶Z言中定義的類。參照J(rèn)ava編程語言描述優(yōu)選實(shí)施例。熟悉技術(shù)的人知道其它支持面向?qū)ο蠼Y(jié)構(gòu)的編程語言也可用于實(shí)施本發(fā)明優(yōu)選實(shí)施例。
圖1中命令10是一個用于訪問后端系統(tǒng)的類。命令10具有方塊12(InProperty方塊集)中所示輸入特性和方塊14中所示輸出特性。輸入特性包含于輸入對象16中,類似地,輸出特性包含于輸出對象18中,或可選地包含于附加的輸出對象中,如圖1中由輸出對象20所代表的。命令10包括對象通信22。對象ConnectionSpec 24和InteractionSpec 26也包括于命令10中。命令10由方法執(zhí)行28所驅(qū)動,并根據(jù)方法執(zhí)行28的執(zhí)行結(jié)果是建立一個異常(送出信號unsuccessfulEvent32)或不建立(送出信號successfulEvent30)而送出信號successfulEvent30或unsuccessfulEvent32。
如圖1中所示,與后端系統(tǒng)的通信中涉及的元素為一個連接規(guī)范(圖1示為ConnectionSpec24),交互規(guī)范(圖1中示為InteractionSpec26),輸入和輸出記錄群(圖1中示為輸入對象16和輸出對象18、20)。在優(yōu)選實(shí)施例的任何這類命令10中總存在著這些元素并實(shí)施同一邏輯由通信將輸入轉(zhuǎn)換為輸出。以此方式,命令邏輯可由任何后端系統(tǒng)重用。
優(yōu)選實(shí)施例描述支持與不同后端系統(tǒng)的交互作用的運(yùn)行時間。優(yōu)選實(shí)施例的運(yùn)行時間提供一個對交互作用建模通用方法,仍足夠靈活以容納目標(biāo)系統(tǒng)和它們的通信的不同需求。這又允許建立先進(jìn)工具以使這種交互的構(gòu)成自動化。由于優(yōu)選實(shí)施例提供一種一致方法去訪問不同系統(tǒng),它可節(jié)省編程人員在建立為訪問不同后端而必需的工具中的精力。使用優(yōu)選實(shí)施例的通用模式的應(yīng)用程序和工具可容易地重新使用。
命令10是用于構(gòu)成與后端系統(tǒng)的通信(或交互)的基本構(gòu)成塊。換言之,命令10卷繞與一個系統(tǒng)的單個交互。在執(zhí)行中它接收其輸入數(shù)據(jù),通過連接器(圖1中的對象通信22)發(fā)送數(shù)據(jù)至后端系統(tǒng),并將由后端系統(tǒng)送回的數(shù)據(jù)設(shè)置為其輸出。在其描述層次上,命令10與許多計(jì)算機(jī)語言中的過程或子程序調(diào)用共享功能。
然而,命令10本身是隨于特別構(gòu)成模式之后的復(fù)合物。就是這一構(gòu)成模式使命令10的價值在于允許與后端系統(tǒng)通信。
命令10的輸入由輸入對象16所定義。這種輸入對象16的一個例子是Java群。群是一個Java語言結(jié)構(gòu),它等效于一個類,但能用可視編輯器編輯。命令10的輸出是輸出對象18。對于輸出而言,存在這種可能性,即可能有多個定義為候補(bǔ)輸出的輸出對象(圖1例中的輸出對象18,20)。再次,Java群可用作輸出對象。命令可顯示其接口中整個對象,或只顯示選擇的對象特性,如性質(zhì)12,14所闡述的。
輸入和輸出對象可具有不同形式。在優(yōu)選實(shí)施例中,可能區(qū)別兩種類型輸入和輸出對象。第一類輸入或輸出對象是RecordJava記錄群。這類群實(shí)施IByteBuffer接口,它是定義的Java框架的一部分。第二類輸入或輸出對象是后端系統(tǒng)的連接器專用(圖1中的通信22)的特性所定義的。連接器本身因此可考慮分為三類支持RecordJava記錄群的一類,對連接器專用的輸入和輸出對象及RecordJava記錄群兩者都支持的一類,以及只支持連接器專用輸入和輸出對象的一類。
ConnectionSpec 24和InteractionSpec 26定義命令10如何與后端系統(tǒng)通信。ConnectionSpec 24是具體連接器通信10的制造廠。
ConnectionSpec 24的特性定義了連接器與其連接的后端系統(tǒng)(例如,主機(jī)名和端口號可能是ConnectionSpec 24的性質(zhì))。ConnectionSpec24可看作用于定義與系統(tǒng)間通信有關(guān)的對話的一個對象。定義通信的另一個對象是InteractionSpec 26。此對象具有所有與交互有關(guān)的特性(例如,通過通信22調(diào)用的程序的名稱可能是InteractionSpec 26的一個特性)。InteractionSpec 26可看作用于定義會晤中具體交互的一個對象。
驅(qū)動命令執(zhí)行的方法是執(zhí)行(示如圖1中的箭頭28)。此方法包括以下步驟1.取得ConnectionSpec 24,從它分出一個通信。
2.將通信10與后端系統(tǒng)連接。
3.通過通信22發(fā)送輸入對象16的數(shù)據(jù)。
4.接收輸出對象18的數(shù)據(jù)(或可選地其它輸出對象的數(shù)據(jù),由輸出對象20所表示)。
5.如不發(fā)生異常發(fā)出一個executionSuccessful事件信號(圖1中的箭頭30),否則發(fā)出一個executionUnsuccessful事件信號(箭頭32)。不是由executionUnsuccessful事件信號接收者處理的異常被重新拋擲,及可由執(zhí)行方法的客戶捕獲。
將理解,命令10可用于建立與不同后端系統(tǒng)的交互。通信22的復(fù)雜性因此是變化的,取決于與其交互的后端系統(tǒng),復(fù)雜性的范圍可自實(shí)際上不復(fù)雜變化至很大的復(fù)雜性。通信22可以是一個簡單Java類或可以是一個RPC或來自IBM公共連接器框架的通信接口。
如上所述,命令10卷繞與一個后端系統(tǒng)的單個交互。根據(jù)優(yōu)選實(shí)施例,提供了另一個稱為導(dǎo)航器的類。導(dǎo)航器卷繞與一個后端系統(tǒng)的多個交互。
圖2是闡述導(dǎo)航器40結(jié)構(gòu)的框圖。導(dǎo)航器40是一個組合命令。導(dǎo)航器40以與命令類似的方式與外部對象接口。導(dǎo)航器40組合包含命令,及可能包含形成與后端系統(tǒng)的交互流的導(dǎo)航器。
圖2中顯示具有命令Cmd.1 42,Cmd.2 44,Cmd.3 46和Navi.1 48的導(dǎo)航器40。
執(zhí)行時導(dǎo)航器40取得其輸入(InProperties 50)并將它提供給組成它的命令和導(dǎo)航器。交互可以按圖2中的流程線路來執(zhí)行。在最后交互之后,個別命令42,44和46及導(dǎo)航器48的輸出可用作導(dǎo)航器的輸出(OutProperties 52)。如圖2所闡述,Cmd.1 42的執(zhí)行方法由導(dǎo)航器40執(zhí)行事件所啟動(箭頭54)。Cmd.2 44的執(zhí)行方法由來自Cmd.1 42的successfulEvent事件啟動,對其它命令和導(dǎo)航器40中的導(dǎo)航器也以此類推。
可選地通過導(dǎo)航器層次上的連接規(guī)范來定義導(dǎo)航器40如何與后端系統(tǒng)通信,而不是為組合中每個命令定義它。連接規(guī)范是導(dǎo)航器正使用的具體連接器通信(組合中由所有命令使用的通信)的制造廠。
導(dǎo)航器40在命令42、44或46或?qū)Ш狡?8中的一個中出現(xiàn)一個異常的情況下到達(dá)不成功執(zhí)行狀態(tài)。導(dǎo)航器40通過送出executionUnsuccessful事件信號(箭頭56)來顯示這點(diǎn)。不是由executionUnsuccessful事件信號接收者處理的異常被重新拋擲,及可由執(zhí)行方法的客戶捕獲。
如上所述,命令類定義一個運(yùn)動時間,后者允許以清楚的和很好定義的方式與后端系統(tǒng)交互。命令類可用于建立導(dǎo)航器類,后者允許與將要定義的后端系統(tǒng)或系統(tǒng)的交互流。
上述命令和導(dǎo)航器類適用于可視編程系統(tǒng)。由于此原因,在建立優(yōu)選實(shí)施例的類時使用Java群(為可視編程設(shè)計(jì)的類)是有利的??勺詧D2看出,可視編程環(huán)境能夠再現(xiàn)優(yōu)選實(shí)施例對象之間的關(guān)系,再現(xiàn)方式使得使用命令和導(dǎo)航器類的編程工作相對地簡單和有效。
雖然詳細(xì)地描述了本發(fā)明的優(yōu)選實(shí)施例,但熟悉技術(shù)的人知道,可在不背離本發(fā)明的實(shí)質(zhì)和所附權(quán)利要求書的范圍的情況下做出對它的變動。
權(quán)利要求
1.一個計(jì)算機(jī)系統(tǒng),包括一個用于在客戶與后端系統(tǒng)中部件之間進(jìn)行交互的命令,該命令包括一個輸入對象,用于供后端系統(tǒng)變換,一個或多個輸出對象,代表由后端系統(tǒng)變換后的輸入對象,一個連接規(guī)范,用于識別客戶將與其交互的后端系統(tǒng),一個交互規(guī)范,用于識別客戶將與其交互的后端系統(tǒng)中的部件,及一個通信對象,用于實(shí)現(xiàn)客戶與后端系統(tǒng)的部件之間的連接,其中根據(jù)交互規(guī)范和連接規(guī)范提供輸入對象給后端系統(tǒng)的部件及其中一個或多個輸出對象接收由后端系統(tǒng)的部件處理后的變換的輸入對象,其中命令由執(zhí)行方法驅(qū)動及其中在處理輸入對象中當(dāng)后端系統(tǒng)的部件不遇到任何異常時,該命令發(fā)出一個成功事件信號,及其中在處理輸入對象中當(dāng)后端系統(tǒng)的部件遇到一個異常時,該命令發(fā)出一個不成功事件信號。
2.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),其中該命令是一個面向?qū)ο蟮念悺?br>
3.權(quán)利要求2的計(jì)算機(jī)系統(tǒng),其中輸入對象和一個或多個輸出對象中的每一個都是定義的Java框架中的記錄群。
4.權(quán)利要求1的計(jì)算機(jī)系統(tǒng),還包括一個用于形成與后端系統(tǒng)的交互流的導(dǎo)航器,該導(dǎo)航器包括選擇性地包括子命令和子導(dǎo)航器的集合,其中集合中每個子命令和子導(dǎo)航器的執(zhí)行方法由自導(dǎo)航器的執(zhí)行方法中導(dǎo)得的導(dǎo)航器中一個內(nèi)部事件所啟動,或由來自子命令和子導(dǎo)航器的另一選擇的集合中的成功事件所啟動,集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行從而定義了與一個后端系統(tǒng)的交互流,其中導(dǎo)航器由執(zhí)行方法驅(qū)動及其中當(dāng)集合中子命令和子導(dǎo)航的連續(xù)執(zhí)行不發(fā)出任何不成功事件信號時,導(dǎo)航器發(fā)出一個成功事件信號,及其中當(dāng)集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行中的任何一次執(zhí)行發(fā)出一個不成功事件信號時,導(dǎo)航器發(fā)出一個不成功事件信號,及其中子命令具有與命令等同的特性,及其中子導(dǎo)航器具有與導(dǎo)航器等同的特性。
5.一種具有用于在客戶和后端系統(tǒng)中的部件進(jìn)行交互的命令類的面向?qū)ο蟮挠?jì)算機(jī)環(huán)境,該命令類包括一個輸入對象,供選擇的一個后端系統(tǒng)變換之用,一個或多個輸出對象,代表在選擇的一個后端系統(tǒng)進(jìn)行變換之后的輸入對象,一個連接規(guī)范,用于識別客戶將與其交互的選擇的一個后端系統(tǒng),一個交互規(guī)范,用于識別客戶將與其交互的選擇的一個后端系統(tǒng)的選擇的一個部件,及一個通信對象,用于實(shí)現(xiàn)客戶與選擇的一個后端系統(tǒng)的選擇的一個部件之間的連接,其中根據(jù)交互規(guī)范和連接規(guī)范提供輸入對象給選擇的一個后端系統(tǒng)的選擇的一個部件,及其中一個或多個輸出對象在選擇的一個后端系統(tǒng)的選擇的一個部件進(jìn)行處理后接收變換的輸入對象,其中命令類的一個事例由客戶所調(diào)用的執(zhí)行方法驅(qū)動,及其中在處理輸入對象中當(dāng)選擇的一個后端系統(tǒng)的選擇的一個部件不遇到任何異常時命令的事例發(fā)出一個成功事件信號,及其中在處理輸入對象中當(dāng)選擇的一個后端系統(tǒng)的選擇的一個部件遇到一個異常時該命令發(fā)出一個不成功事件信號。
6.權(quán)利要求5的面向?qū)ο笥?jì)算機(jī)環(huán)境,其中該環(huán)境為Java編程語言環(huán)境及其中輸入對象和一個或多個輸出對象中的每一個是定義的Java框架中的記錄群。
7.權(quán)利要求5的面向?qū)ο笥?jì)算機(jī)環(huán)境還包括一個用于形成一個與后端系統(tǒng)的交互流的導(dǎo)航器類,導(dǎo)航器包括選擇性地包括子命令和子導(dǎo)航器的集合,其中集合中每個子命令和子導(dǎo)航器的執(zhí)行事件由自導(dǎo)航器執(zhí)行方法中導(dǎo)得的導(dǎo)航器中內(nèi)部事件啟動,或由來自子命令和子導(dǎo)航器的另一個選擇集合中的成功事件啟動,集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行從而定義與一個或多個后端系統(tǒng)的交互流,其中導(dǎo)航器由執(zhí)行方法驅(qū)動及其中當(dāng)集合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行不發(fā)出任何不成功事件信號時,導(dǎo)航器發(fā)出一個成功事件信號,及其中當(dāng)組合中子命令和子導(dǎo)航器的連續(xù)執(zhí)行中任何一次執(zhí)行發(fā)出一個不成功事件信號時,該導(dǎo)航器發(fā)出一個不成功事件信號,及其中子命令具有與命令等同的特性,及其中子導(dǎo)航器具有與導(dǎo)航器等同的特性。
8.一種用于在客戶與后端系統(tǒng)中部件之間進(jìn)行交互的方法,包括以下步驟用執(zhí)行方法驅(qū)動一個命令及自命令接收事件,該命令發(fā)出客戶與后端系統(tǒng)間的交互作用的成功執(zhí)行信號或不成功執(zhí)行信號,執(zhí)行方法包括以下步驟自連接規(guī)范和交互規(guī)范中分出一個通信,連接規(guī)范是一個用于識別客戶將與其交互的后端系統(tǒng)的對象,交互規(guī)范是一個用于識別與交互有關(guān)的通信特性的對象,使用分出的通信連接客戶與后端系統(tǒng),通過分出的通信發(fā)送輸入對象的數(shù)據(jù),通過分出的通信接收一個或多個輸出對象的數(shù)據(jù),如不出現(xiàn)異常,則發(fā)出執(zhí)行成功事件信號,否則發(fā)出一個執(zhí)行不成功事件信號。
9.一個用于存儲在計(jì)算機(jī)中執(zhí)行權(quán)利要求8的過程所用指令的計(jì)算機(jī)可讀存儲器。
全文摘要
一個計(jì)算機(jī)系統(tǒng)和方法,包括允許在客戶與后端系統(tǒng)中的部件之間進(jìn)行交互的命令。命令具有一個供后端系統(tǒng)變換的輸入對象并定義一個或多個代表由后端系統(tǒng)變換后的輸入對象的輸出對象。命令包括一個用于識別客戶將與其交互的后端系統(tǒng)的連接規(guī)范,及一個用于識別客戶將與其交互的后端系統(tǒng)中的部件的交互規(guī)范。命令還包括一個用于在客戶與后端系統(tǒng)的部件之間實(shí)現(xiàn)連接的通信對象。根據(jù)交互規(guī)范和連接規(guī)范提供輸入對象給后端系統(tǒng)的部件。
文檔編號G06F9/44GK1249471SQ99118750
公開日2000年4月5日 申請日期1999年9月16日 優(yōu)先權(quán)日1998年9月24日
發(fā)明者皮奧切·普里亞爾斯吉, 薩斯卡·博邁斯特, 邁克爾·貝謝格 申請人:國際商業(yè)機(jī)器公司