專利名稱:分布式應(yīng)用程序的設(shè)計(jì)平臺(tái)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,更具體地,涉及分布式應(yīng)用程序的設(shè)計(jì)平臺(tái)。
背景技術(shù):
計(jì)算機(jī)已變得高度集成于工作、家庭、移動(dòng)設(shè)備以及許多其他地方中。計(jì)算機(jī)可快速且有效地處理大量信息。被設(shè)計(jì)成在計(jì)算機(jī)系統(tǒng)上運(yùn)行的軟件應(yīng)用允許用戶執(zhí)行包括商業(yè)應(yīng)用、學(xué)校作業(yè)、娛樂(lè)等等在內(nèi)的各種各樣的功能。軟件應(yīng)用通常被設(shè)計(jì)成執(zhí)行特定任務(wù),諸如用于草擬文檔的文字處理器應(yīng)用或者用于發(fā)送、接收和組織電子郵件的電子郵件程序。
在一些情況下,軟件應(yīng)用程序被設(shè)計(jì)成在分布式系統(tǒng)上使用。例如,復(fù)合應(yīng)用程序可包括復(fù)雜的相關(guān)組件集。這些組件具有與其他組件的關(guān)系,以及用于組件間通信的指定通信協(xié)議。部署和管理此類軟件應(yīng)用程序通常涉及實(shí)現(xiàn)許多不同的工具和開(kāi)發(fā)環(huán)境。發(fā)明內(nèi)容
本文描述的實(shí)施例涉及提供一種部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型并提供模型驅(qū)動(dòng)軟件編碼協(xié)助。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)實(shí)例化配置成顯示復(fù)合應(yīng)用程序組件以及組件間的關(guān)系的應(yīng)用程序設(shè)計(jì)界面。每個(gè)組件包括指定如何與組件進(jìn)行通信的信息。計(jì)算機(jī)系統(tǒng)訪問(wèn)包括應(yīng)用程序的組件和組件關(guān)系的應(yīng)用程序清單。計(jì)算機(jī)系統(tǒng)根據(jù)應(yīng)用程序清單在實(shí)例化的可視應(yīng)用程序設(shè)計(jì)界面內(nèi)顯示復(fù)合應(yīng)用程序的組件和組件關(guān)系。
在另一實(shí)施例中,計(jì)算機(jī)系統(tǒng)訪問(wèn)包括軟件組件和組件間的關(guān)系的應(yīng)用程序清單。該清單是用戶可編輯的。計(jì)算機(jī)系統(tǒng)接收指示多個(gè)不同組件的至少一個(gè)要被實(shí)現(xiàn)為復(fù)合應(yīng)用程序的一部分的用戶輸入。計(jì)算機(jī)系統(tǒng)基于應(yīng)用程序清單的組件和關(guān)系確定將被作為可選選項(xiàng)呈現(xiàn)給用戶的潛在實(shí)現(xiàn)選項(xiàng)。計(jì)算機(jī)系統(tǒng)也在清單內(nèi)顯示確定的潛在實(shí)現(xiàn)以供用戶選擇。
提供本發(fā)明內(nèi)容以便以簡(jiǎn)化的形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。
另外的特征和優(yōu)點(diǎn)將在以下的描述中闡述,并且部分可從該描述中顯而易見(jiàn),或者可以從此處的教示實(shí)踐中習(xí)得。本發(fā)明的各特征和優(yōu)點(diǎn)可以通過(guò)在所附的權(quán)利要求書(shū)中特別指出的手段和組合來(lái)實(shí)現(xiàn)和獲得。本發(fā)明的特征將從以下描述和所附權(quán)利要求書(shū)中變得完全顯而易見(jiàn),或者可通過(guò)如下所述對(duì)本發(fā)明的實(shí)踐而獲知。
為了進(jìn)一步闡明本發(fā)明的各實(shí)施例的以上和其他優(yōu)點(diǎn)和特征,將參考附圖來(lái)呈現(xiàn)本發(fā)明的各實(shí)施例的更具體的描述。可以理解,這些附圖只描繪本發(fā)明的典型實(shí)施例,因此將不被認(rèn)為是對(duì)其范圍的限制。本發(fā)明將通過(guò)使用附圖用附加特征和細(xì)節(jié)來(lái)描述和解釋,4附圖中圖1示出其中本發(fā)明的實(shí)施例可操作的計(jì)算機(jī)體系結(jié)構(gòu),包括提供部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型并提供模型驅(qū)動(dòng)軟件編碼協(xié)助。圖2示出用于提供部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型的示例方法的流程圖。圖3示出用于提供模型驅(qū)動(dòng)軟件編碼協(xié)助的示例方法的流程圖。圖4示出了本發(fā)明的一實(shí)施例,其中用戶輸入被應(yīng)用于組件代碼。
具體實(shí)施例方式本文描述的實(shí)施例涉及提供一種部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型并提供模型驅(qū)動(dòng)軟件編碼協(xié)助。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)實(shí)例化配置成顯示復(fù)合應(yīng)用程序組件以及組件間的關(guān)系的應(yīng)用程序設(shè)計(jì)界面。每個(gè)組件包括指定如何與組件進(jìn)行通信的信息。計(jì)算機(jī)系統(tǒng)訪問(wèn)包括應(yīng)用程序的組件和組件關(guān)系的應(yīng)用程序清單。計(jì)算機(jī)系統(tǒng)根據(jù)應(yīng)用程序清單在實(shí)例化的可視應(yīng)用程序設(shè)計(jì)界面內(nèi)顯示復(fù)合應(yīng)用程序的組件和組件關(guān)系。在另一實(shí)施例中,計(jì)算機(jī)系統(tǒng)訪問(wèn)包括軟件組件和組件間的關(guān)系的應(yīng)用程序清單。該清單是用戶可編輯的。計(jì)算機(jī)系統(tǒng)接收指示多個(gè)不同組件的至少一個(gè)要被實(shí)現(xiàn)為復(fù)合應(yīng)用程序的一部分的用戶輸入。計(jì)算機(jī)系統(tǒng)基于應(yīng)用程序清單的組件和關(guān)系確定將被作為可選選項(xiàng)呈現(xiàn)給用戶的潛在實(shí)現(xiàn)選項(xiàng)。計(jì)算機(jī)系統(tǒng)也在清單內(nèi)顯示確定的潛在實(shí)現(xiàn)以供用戶選擇。以下討論現(xiàn)涉及可以執(zhí)行的多種方法以及方法動(dòng)作。應(yīng)當(dāng)注意,雖然這些方法動(dòng)作可能是按一定次序討論的,或者是在流程圖中被描繪為是按照特定順序進(jìn)行的,然而并非必然需要特定的次序,除非特別聲明,或者是因?yàn)橐粋€(gè)動(dòng)作依賴于另一動(dòng)作在該動(dòng)作被執(zhí)行之前完成而需要的。本發(fā)明的各實(shí)施例可包括或利用專用或通用計(jì)算機(jī),該專用或通用計(jì)算機(jī)包括諸如例如一個(gè)或多個(gè)處理器和系統(tǒng)存儲(chǔ)器等計(jì)算機(jī)硬件,如以下更詳細(xì)討論的。本發(fā)明范圍內(nèi)的各實(shí)施例還包括用于攜帶或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理介質(zhì)和其他計(jì)算機(jī)可讀介質(zhì)。這些計(jì)算機(jī)可讀介質(zhì)可以是通用或?qū)S糜?jì)算機(jī)系統(tǒng)能夠訪問(wèn)的任何可用介質(zhì)。存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)存儲(chǔ)介質(zhì)。攜帶計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種完全不同類型的計(jì)算機(jī)可讀介質(zhì)計(jì)算機(jī)存儲(chǔ)介質(zhì)和傳輸介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤(pán)存儲(chǔ)、磁盤(pán)存儲(chǔ)或其他磁存儲(chǔ)設(shè)備、或可用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的任何其他介質(zhì)?!熬W(wǎng)絡(luò)”被定義為允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過(guò)網(wǎng)絡(luò)或另一個(gè)通信連接(硬連線、無(wú)線、或者硬連線或無(wú)線的組合)傳輸或提供給計(jì)算機(jī)時(shí),該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問(wèn)的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合也應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
此外,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動(dòng)傳輸?shù)接?jì)算機(jī)存儲(chǔ)介質(zhì)(或反之亦然)。例如,通過(guò)網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“mc”) 內(nèi)的RAM中,然后最終被傳輸?shù)接?jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失性的計(jì)算機(jī)存儲(chǔ)介質(zhì)。因而,應(yīng)當(dāng)理解,計(jì)算機(jī)存儲(chǔ)介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。計(jì)算機(jī)可執(zhí)行指令包括,例如使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語(yǔ)言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán)利要求書(shū)中定義的主題不必限于上述特征或動(dòng)作。相反,上述特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開(kāi)的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動(dòng)電話、PDA、尋呼機(jī)、路由器、交換機(jī)等等。本發(fā)明也可在其中通過(guò)網(wǎng)絡(luò)鏈接(或者通過(guò)硬連線數(shù)據(jù)鏈路、無(wú)線數(shù)據(jù)鏈路,或者通過(guò)硬連線和無(wú)線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)施。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。圖1示出了可在其中采用本發(fā)明的原理的計(jì)算機(jī)體系結(jié)構(gòu)100。計(jì)算機(jī)體系結(jié)構(gòu) 100包括應(yīng)用程序設(shè)計(jì)界面110。應(yīng)用程序設(shè)計(jì)界面可以是允許與軟件程序交互的任何類型的用戶界面。該界面可允許包括鍵盤(pán)、鼠標(biāo)、觸摸屏或其他輸入的各種不同的輸入方法。 應(yīng)用程序設(shè)計(jì)界面可被配置成允許用戶設(shè)計(jì)應(yīng)用程序,包括復(fù)合應(yīng)用程序115。如本文使用的復(fù)合應(yīng)用程序指由以多個(gè)不同組件關(guān)系118綁定在一起的多個(gè)不同組件117構(gòu)成的應(yīng)用程序。該復(fù)合應(yīng)用程序可被配置成在本地計(jì)算機(jī)系統(tǒng)以及分布式計(jì)算機(jī)系統(tǒng)上(包括在云上)運(yùn)行而無(wú)需代碼的任何變化。構(gòu)成給定復(fù)合應(yīng)用程序的組件和關(guān)系可被存儲(chǔ)在應(yīng)用程序清單116中。該清單可列出為應(yīng)用程序的部分的每個(gè)組件,以及每個(gè)組件如何與其他組件相關(guān)。例如,一些組件可具有對(duì)某些資源或?qū)ζ渌M件的依賴性。如顯示器120中所述,組件彼此可具有各種不同的關(guān)系。組件A(121A)可具有與組件B(121B)、C(121C)和D(121D)的關(guān)系,如由組件間的線條所示。類似地,組件C和D也具有關(guān)系。如上所述,關(guān)系可為依賴性、通信信道、或某個(gè)其他類型的關(guān)系。每個(gè)組件可具有與其他組件通信的指定方式。關(guān)系可指定組件如何通信以及如何與之通信。不同類型的關(guān)系可以不同方式顯示。例如,不同類型的線條、不同顏色、不同接頭以及其他可視項(xiàng)可被用于區(qū)分各種分類型的關(guān)系。應(yīng)該認(rèn)識(shí)到,盡管顯示器120正顯示四個(gè)組件和那些組件之間的一種類型的關(guān)系,但實(shí)質(zhì)上任何數(shù)量的組件和/或關(guān)系均可顯示在應(yīng)用程序設(shè)計(jì)界面的顯示器中顯示。用戶可與顯示器內(nèi)的復(fù)合應(yīng)用程序的組件直接交互。用戶可添加、移除或修改組件,以及添加、移除或修改組件關(guān)系。例如,用戶105可向應(yīng)用程序設(shè)計(jì)界面發(fā)送移除組件 A的編輯106。復(fù)合應(yīng)用程序115的清單116將被升級(jí)至不再包括組件A或其組件關(guān)系,且顯示器120將被升級(jí)至不再顯示組件A及其關(guān)系。以此方式,用戶可使用可視應(yīng)用程序設(shè)計(jì)界面改變并修改應(yīng)用程序。隨著做出改變,應(yīng)用程序清單動(dòng)態(tài)地升級(jí)至顯示用戶的改變。
在一些實(shí)施例中,應(yīng)用程序設(shè)計(jì)界面110可包括至設(shè)計(jì)成允許創(chuàng)作分布式應(yīng)用程序的集成開(kāi)發(fā)環(huán)境(IDE)擴(kuò)展集。此類擴(kuò)展可包括以下任意一個(gè)或多個(gè)可視化應(yīng)用程序、 以及應(yīng)用程序的組件和關(guān)系的可視建模、協(xié)調(diào)組件和應(yīng)用程序模型之間的變化的一組IDE 集成同步器、便于根據(jù)應(yīng)用程序模型中指定的配置對(duì)編程模型編碼并與IDE內(nèi)的部署系統(tǒng)集成以部署應(yīng)用程序的基于代碼編輯器的助手。
—些實(shí)施例可包括與分布式合成運(yùn)行時(shí)和分布式應(yīng)用程序部署經(jīng)驗(yàn)耦合的復(fù)合應(yīng)用程序的可視建模。而且,可提供基于應(yīng)用程序模型或由其驅(qū)動(dòng)的基于代碼的創(chuàng)作環(huán)境。 各實(shí)施例可進(jìn)一步提供通過(guò)與IDE文件系統(tǒng)提供者集成而提供的擴(kuò)展性,以便保持人工產(chǎn)物(artifact)同步并對(duì)文件做出的變化以及對(duì)應(yīng)用程序模型本身顯式做出的變化做出反應(yīng)。此外,各實(shí)施例可在應(yīng)用程序設(shè)計(jì)界面中呈現(xiàn)便于快速啟動(dòng)復(fù)合應(yīng)用程序的開(kāi)發(fā)的模式。
應(yīng)用程序設(shè)計(jì)界面可被配置成可視化復(fù)合應(yīng)用程序、其組件和關(guān)系。應(yīng)用程序設(shè)計(jì)界面提供應(yīng)用程序內(nèi)的組件的列表以及組件間關(guān)系兩者。在應(yīng)用程序設(shè)計(jì)界面內(nèi),每個(gè)組件可指定導(dǎo)入和導(dǎo)出,換句話說(shuō),用于與組件通信的通信標(biāo)準(zhǔn)或協(xié)議。可視設(shè)計(jì)界面允許導(dǎo)入和導(dǎo)出的連接二者,其建立組件間的關(guān)系,以及該連接的配置。該配置允許用戶精確控制組件關(guān)系的運(yùn)行時(shí)表現(xiàn),以及允許分布式運(yùn)行時(shí)適當(dāng)分配資源以符合配置的需要。
在一些情況下,組件關(guān)系的配置可能指定針對(duì)將經(jīng)由關(guān)系返回的數(shù)據(jù)的濾波器, 或可指定針對(duì)該鏈路上要求的性能級(jí)別的服務(wù)級(jí)別協(xié)定。該信息可被用于部署和運(yùn)行時(shí)以確保以將符合服務(wù)級(jí)別協(xié)定的方式來(lái)分配資源。該合成表示在設(shè)計(jì)時(shí)間以及用于監(jiān)視應(yīng)用程序的工具是有用的。
在一些實(shí)施例中,應(yīng)用程序設(shè)計(jì)界面110可通過(guò)向用戶呈現(xiàn)用于創(chuàng)建應(yīng)用程序的空白畫(huà)布來(lái)提供應(yīng)用程序的總控制。然而,在一些情況下,可向用戶提供模式以便他們能快速地使解決方案準(zhǔn)備并運(yùn)行以供測(cè)試以及進(jìn)一步迭代。設(shè)計(jì)界面可在工具欄中提供此類模式。通過(guò)將這些模式拖入畫(huà)布,應(yīng)用程序模型可用一組經(jīng)配置的組件和關(guān)系來(lái)預(yù)填充。這將允許用戶選擇應(yīng)用程序模式并創(chuàng)建所有針對(duì)該應(yīng)用程序的對(duì)應(yīng)人工產(chǎn)物。在一些情況下, 這可類似于其中用戶可選擇達(dá)成給定結(jié)果的某個(gè)模式的“以數(shù)字涂繪”的操作模型。
應(yīng)用程序設(shè)計(jì)界面可被配置成在系統(tǒng)內(nèi)提供基于代碼的人工產(chǎn)物的表示。設(shè)計(jì)界面可包括作為清單的直接投影操作的編輯器。該編輯器提供被序列化為清單文件的對(duì)象圖的投影。這允許應(yīng)用程序設(shè)計(jì)界面保持與代碼顯示同步。
在一些情況下,應(yīng)用程序界面可包括一組對(duì)IDE的擴(kuò)展,該擴(kuò)展跟蹤在整個(gè)文件系統(tǒng)中做出的變化并將那些變化反映到清單文件中。這些擴(kuò)展可構(gòu)成復(fù)合應(yīng)用程序中的清單和人工產(chǎn)物之間交互的單個(gè)點(diǎn)。另外,這些擴(kuò)展同樣可在其他方向操作,持續(xù)被通知清單內(nèi)的變化。這些擴(kuò)展隨后可用于對(duì)項(xiàng)目系統(tǒng)做出后續(xù)變化。例如,如果導(dǎo)入被配置在web 應(yīng)用程序上,則同步器可選擇并添加新的對(duì)于web應(yīng)用程序、注入代碼、或升級(jí)配置的匯編件引用以利用新的組件引用。
在一些情況下,本文可稱為“同步器”的擴(kuò)展是本身可擴(kuò)展的。這些擴(kuò)展通過(guò)該組件的文件系統(tǒng)內(nèi)的變化和應(yīng)用程序清單內(nèi)的變化之間發(fā)生的同步向作者提供組件控制。例如,針對(duì)簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP) web服務(wù)組件的同步器能在該SOAP web服務(wù)中的文件上操作、讀取通信規(guī)范、并向清單報(bào)告如何與web服務(wù)組件進(jìn)行通信。同樣地,每個(gè)組件和組件的清單可被保持實(shí)時(shí)更新。
在一些情況下,當(dāng)用戶已經(jīng)使用組件117的組合來(lái)創(chuàng)建復(fù)合應(yīng)用程序后,軟件代碼可被寫(xiě)入以實(shí)現(xiàn)組件(例如,從另一應(yīng)用程序調(diào)用工作流)。在這類情況下,應(yīng)用程序設(shè)計(jì)界面直接利用應(yīng)用程序模型以不但向用戶呈現(xiàn)可被使用的一組類型,而且引導(dǎo)用戶實(shí)現(xiàn)可被用于應(yīng)用程序的組件以及與該組件相關(guān)的那些組件。因此,例如,如果緩存組件被有線連接到web應(yīng)用程序,可提供代碼助手或提示以在復(fù)合應(yīng)用程序中正確實(shí)現(xiàn)高速緩存組件。
應(yīng)用程序設(shè)計(jì)界面還可為組件作者提供另一組擴(kuò)展以能定制某些人在使用其組件之際具有的開(kāi)發(fā)者體驗(yàn)(例如,緩存組件可具有與web服務(wù)不同的開(kāi)發(fā)者/用戶體驗(yàn))。 設(shè)計(jì)界面可提供用于鍵入代碼或做出組件選擇的上下文相關(guān)的選項(xiàng)。下面,分別針對(duì)圖2 和圖3的方法200和300,更詳細(xì)地解釋這些和其他概念。
考慮到以上描述的系統(tǒng)和體系結(jié)構(gòu),參考圖2和圖3的流程圖將更好地理解根據(jù)所公開(kāi)的主題實(shí)現(xiàn)的方法。為了解釋簡(jiǎn)明起見(jiàn),這些方法被示出和描述為一系列框。然而, 應(yīng)該理解和了解,所要求保護(hù)的主題不受框的次序的限制,因?yàn)橐恍┛蚩砂床煌拇涡蜻M(jìn)行和/或與此處所描繪和描述的其他框同時(shí)進(jìn)行。此外,并非全部所示的框都是實(shí)現(xiàn)下面所述的方法所必需的。
圖2示出用于提供部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型的方法200的流程圖?,F(xiàn)在將頻繁參照環(huán)境100的組件和數(shù)據(jù)來(lái)描述方法200。
方法200包括實(shí)例化配置成顯示復(fù)合應(yīng)用程序組件和組件間的一個(gè)或多個(gè)關(guān)系的應(yīng)用程序設(shè)計(jì)界面的動(dòng)作,其中每個(gè)組件包括指定如何與該組件進(jìn)行通信的信息(動(dòng)作 210)。例如,應(yīng)用程序設(shè)計(jì)界面110可在計(jì)算機(jī)系統(tǒng)上被實(shí)例化。界面的顯示器120可被配置成示出應(yīng)用程序組件(例如,組件A、B、C和D(121A-D))以及組件間的關(guān)系。每個(gè)應(yīng)用程序組件可包括指定如何與該組件進(jìn)行通信(即,組件的導(dǎo)入和導(dǎo)出)的信息(例如,元數(shù)據(jù))。
應(yīng)用程序設(shè)計(jì)界面可允許用戶編輯包括應(yīng)用程序定義、應(yīng)用程序清單以及復(fù)合模型的多個(gè)不同人工產(chǎn)物。應(yīng)用程序清單116可包括指示哪些組件117被包括在應(yīng)用程序中, 以及那些組件之間的相應(yīng)關(guān)系118的信息。用戶105可發(fā)送將被應(yīng)用于復(fù)合應(yīng)用程序115 和/或應(yīng)用程序的包括那些以上列出的各種人工產(chǎn)物的編輯106。經(jīng)編輯的人工產(chǎn)物可被發(fā)送至分布式運(yùn)行時(shí)以便它們將在執(zhí)行應(yīng)用程序期間使用。
在一些情況下,可編輯的應(yīng)用程序人工產(chǎn)物可允許用戶改變復(fù)合應(yīng)用程序的部署時(shí)和運(yùn)行時(shí)行為。以此方式,用戶可具有對(duì)如何部署并執(zhí)行復(fù)合應(yīng)用程序的大量控制。在一些情況下,復(fù)合應(yīng)用程序115可使用清單文件116來(lái)配置和部署。同樣,在部署和執(zhí)行應(yīng)用程序時(shí)遵循清單中的指令。在運(yùn)行時(shí),應(yīng)用程序組件可使用應(yīng)用程序清單中指示的關(guān)系彼此通信。
方法200包括訪問(wèn)包括應(yīng)用程序的組件和組件關(guān)系的應(yīng)用程序清單的動(dòng)作(動(dòng)作 220)。例如,應(yīng)用程序設(shè)計(jì)界面110可訪問(wèn)標(biāo)識(shí)復(fù)合應(yīng)用程序的對(duì)應(yīng)組件117和組件關(guān)系 118的應(yīng)用程序清單116。在一些情況下,選擇哪些組件被用于給定應(yīng)用程序后,用戶可添加額外部分的軟件代碼以更改組件或如何一起使用組件。
當(dāng)用戶正做出此類代碼變化或添加時(shí),應(yīng)用程序接口可在該用戶鍵入時(shí)提供文本提示。該文本提示可為上下文的且可基于應(yīng)用程序清單。因此,文本提示可包括清單特定項(xiàng)的上下文列表。并且,文本提示可基于應(yīng)用程序清單中的組件關(guān)系僅示出兩個(gè)組件間的有效連接或關(guān)系。在此類情況下,如果用戶正鍵入關(guān)于組件A(121A)的代碼,文本提示可包括組件信息和特定于組件A的關(guān)系。隨著對(duì)軟件代碼做出改變,且隨著做出改變而添加或從應(yīng)用程序中移除組件,應(yīng)用程序清單可被動(dòng)態(tài)更新以確保該清單保持最新。
方法200包括根據(jù)應(yīng)用程序清單在實(shí)例化的可視應(yīng)用程序設(shè)計(jì)界面中顯示復(fù)合應(yīng)用程序的組件和組件關(guān)系的動(dòng)作(動(dòng)作230)。例如,顯示器120可基于應(yīng)用程序清單 116在應(yīng)用程序設(shè)計(jì)界面中顯示復(fù)合應(yīng)用程序115的組件117和組件關(guān)系118。在一些情況下,應(yīng)用程序設(shè)計(jì)界面可被配置成呈現(xiàn)經(jīng)部署的應(yīng)用程序以顯示由應(yīng)用程序清單定義的復(fù)合應(yīng)用程序的運(yùn)行時(shí)畫(huà)面。運(yùn)行時(shí)畫(huà)面可指示如何在運(yùn)行時(shí)執(zhí)行應(yīng)用程序。
應(yīng)用程序設(shè)計(jì)界面也可被配置成提供允許用戶根據(jù)預(yù)定模式配置復(fù)合應(yīng)用程序的組件的一組規(guī)范應(yīng)用程序模式。例如,預(yù)定模式可包括N層模式。當(dāng)N層模式被應(yīng)用于復(fù)合應(yīng)用程序115時(shí),以分層模式形成應(yīng)用程序。分層可包括,例如,后端服務(wù)器、web訪問(wèn)和用戶界面。當(dāng)然,其他模式是可能的,且以上示例并不意圖限制以上示例。在一些情況下可將規(guī)范模式層疊在一起以根據(jù)多個(gè)不同模式配置應(yīng)用程序組件。在已經(jīng)應(yīng)用此規(guī)范模式后,可使用軟件代碼更改復(fù)合應(yīng)用程序。
現(xiàn)在轉(zhuǎn)向圖3,圖3示出用于提供模型驅(qū)動(dòng)軟件編碼助手的方法300的流程圖?,F(xiàn)在將頻繁參照環(huán)境400的組件和數(shù)據(jù)來(lái)描述方法300。
方法300包括訪問(wèn)包括軟件組件和組件間的一個(gè)或多個(gè)關(guān)系的應(yīng)用程序清單的動(dòng)作,其中該清單是用戶可編輯的(動(dòng)作310)。例如,可經(jīng)由應(yīng)用程序設(shè)計(jì)界面訪問(wèn)應(yīng)用程序清單440且可由用戶405編輯。清單包括對(duì)對(duì)應(yīng)于復(fù)合應(yīng)用程序的軟件組件和組件間的組件關(guān)系的標(biāo)識(shí)。
方法300包括接收指示多個(gè)組件的至少一個(gè)要被實(shí)現(xiàn)為復(fù)合應(yīng)用程序的一部分的用戶輸入的動(dòng)作(動(dòng)作320)。例如,用戶405可向應(yīng)用程序設(shè)計(jì)界面發(fā)送用戶輸入406。 該輸入指示一個(gè)或多個(gè)組件將彼此結(jié)合用于形成復(fù)合應(yīng)用程序。在一些情況下,應(yīng)用程序設(shè)計(jì)界面允許用戶選擇(或許從列表或其他分組中)哪些組件將被用于給定的復(fù)合應(yīng)用程序。當(dāng)用戶正選擇或更改已經(jīng)選擇的組件時(shí),潛在實(shí)現(xiàn)選項(xiàng)可被呈現(xiàn)給用戶。
方法300包括基于應(yīng)用程序清單的組件和關(guān)系確定將被作為可選選項(xiàng)呈現(xiàn)給用戶的潛在實(shí)現(xiàn)選項(xiàng)的動(dòng)作(動(dòng)作330)。例如,選項(xiàng)確定模塊445可訪問(wèn)應(yīng)用程序清單440 以確定哪些組件和相應(yīng)關(guān)系對(duì)給定應(yīng)用程序是可用的。在其中用戶正編輯可選組件的情況中,選項(xiàng)確定模塊可返回特定于該組件的選項(xiàng)446。
因此,在一個(gè)實(shí)例中,用戶405可能正編輯組件代碼430。用戶輸入406可被顯示在顯示器內(nèi),當(dāng)用戶鍵入文本時(shí),選項(xiàng)框435 (或其他呈現(xiàn)形式)可緊臨用戶輸入顯示。選項(xiàng)框可包括包含選項(xiàng)A(436A)、選項(xiàng)B(436B)、選項(xiàng)C(436C)以及子選項(xiàng)436C1和436C2的各種不同選項(xiàng)。當(dāng)然可提供許多更多(或更少)選項(xiàng)。在一些情況下,潛在實(shí)現(xiàn)選項(xiàng)可在用戶正鍵入信息時(shí)被動(dòng)態(tài)顯示。動(dòng)態(tài)顯示的潛在組件可基于哪個(gè)復(fù)合應(yīng)用程序(或應(yīng)用程序組件)當(dāng)前正被編輯而不同。至少在一些情況下,僅那些上下文相關(guān)的實(shí)現(xiàn)選項(xiàng)被顯示給用戶。這些選項(xiàng)可以是可選選項(xiàng)列表的形式或其他某種(或許為用戶定制的)形式。
方法300還包括顯示確定的潛在選項(xiàng)以供用戶選擇的動(dòng)作(動(dòng)作340)。例如,可向用戶顯示上下文相關(guān)選項(xiàng)436A-436C的每一個(gè)。該顯示可包括可選選項(xiàng)(其可包括組件名稱、功能名稱、屬性或其他數(shù)據(jù)),以及可用于確定如何更改應(yīng)用程序或應(yīng)用程序組件的其他息。
因此,提供了可提供部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。該應(yīng)用程序模型顯示并允許編輯復(fù)合應(yīng)用程序的組件和組件關(guān)系。并且, 提供了可提供模型驅(qū)動(dòng)軟件編碼協(xié)助的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品。此種協(xié)助是上下文特定的且在用戶正向應(yīng)用程序模型提供輸入時(shí)被動(dòng)態(tài)提供。
本發(fā)明可具體化為其他具體形式而不背離其精神或本質(zhì)特征。所描述的實(shí)施例在所有方面都應(yīng)被認(rèn)為僅是說(shuō)明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書(shū)而非前述描述指示。落入權(quán)利要求書(shū)的等效方案的含義和范圍內(nèi)的所有改變被權(quán)利要求書(shū)的范圍所涵蓋。
權(quán)利要求
1.一種在包括多個(gè)計(jì)算系統(tǒng)的計(jì)算機(jī)聯(lián)網(wǎng)環(huán)境中在包括至少一個(gè)處理器和存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)處提供部署和管理復(fù)合應(yīng)用程序的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括實(shí)例化配置成顯示復(fù)合應(yīng)用程序組件和所述組件間的一個(gè)或多個(gè)關(guān)系的應(yīng)用程序設(shè)計(jì)界面的動(dòng)作,其中每個(gè)組件包括指定如何與所述組件進(jìn)行通信的信息;訪問(wèn)包括所述應(yīng)用程序的組件和組件關(guān)系的應(yīng)用程序清單的動(dòng)作;以及根據(jù)所述應(yīng)用程序清單在所述實(shí)例化的可視應(yīng)用程序設(shè)計(jì)界面內(nèi)顯示所述復(fù)合應(yīng)用程序的組件和組件關(guān)系的動(dòng)作。
2.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用程序設(shè)計(jì)界面允許用戶編輯以下人工產(chǎn)物的至少一個(gè)應(yīng)用程序定義、應(yīng)用程序清單、以及復(fù)合模型。
3.如權(quán)利要求2所述的方法,其特征在于,所述經(jīng)編輯人工產(chǎn)物被發(fā)送至分布式運(yùn)行時(shí)用于執(zhí)行所述應(yīng)用程序。
4.如權(quán)利要求2所述的方法,其特征在于,所述人工產(chǎn)物允許用戶改變所述復(fù)合應(yīng)用程序的部署時(shí)和運(yùn)行時(shí)行為。
5.如權(quán)利要求4所述的方法,其特征在于,使用所述清單文件配置和部署所述復(fù)合應(yīng)用程序。
6.如權(quán)利要求4所述的方法,其特征在于,組件在運(yùn)行時(shí)使用所述應(yīng)用程序清單中指示的關(guān)系彼此通信。
7.如權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用程序設(shè)計(jì)界面呈現(xiàn)經(jīng)部署的應(yīng)用程序以顯示由所述應(yīng)用程序清單定義的復(fù)合應(yīng)用程序的運(yùn)行時(shí)畫(huà)面。
8.如權(quán)利要求1所述的方法,進(jìn)一步包括所述應(yīng)用程序設(shè)計(jì)界面提供允許用戶根據(jù)預(yù)定模式配置所述復(fù)合應(yīng)用程序的組件的一組規(guī)范應(yīng)用程序模式的動(dòng)作。
9.如權(quán)利要求8所述的方法,其特征在于,所述預(yù)定模式包括N層模式,由此一旦向所述復(fù)合應(yīng)用程序應(yīng)用所述N層模式,則以分層模式形成所述復(fù)合應(yīng)用程序。
10.如權(quán)利要求9所述的方法,其特征在于,所述復(fù)合應(yīng)用程序在已經(jīng)使用軟件代碼來(lái)應(yīng)用所述規(guī)范模式后是可更改的。
11.如權(quán)利要求8所述的方法,其特征在于,多個(gè)規(guī)范應(yīng)用程序模式被層疊在一起以配置所述復(fù)合應(yīng)用程序的所述組件。
12.一種用于實(shí)現(xiàn)一種方法的計(jì)算機(jī)程序產(chǎn)品,所述方法用于提供模型驅(qū)動(dòng)軟件編碼協(xié)助,所述計(jì)算機(jī)程序產(chǎn)品包括其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令在被計(jì)算系統(tǒng)的一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得所述計(jì)算系統(tǒng)執(zhí)行所述方法,所述方法包括訪問(wèn)包括軟件組件和所述組件間的一個(gè)或多個(gè)關(guān)系的應(yīng)用程序清單的動(dòng)作,其中所述清單是用戶可編輯的(動(dòng)作310);接收指示多個(gè)組件的至少一個(gè)要被實(shí)現(xiàn)為所述復(fù)合應(yīng)用程序的一部分的用戶輸入的動(dòng)作;基于所述應(yīng)用程序清單的組件和關(guān)系確定將被作為可選選項(xiàng)呈現(xiàn)給用戶的潛在實(shí)現(xiàn)選項(xiàng)的動(dòng)作;以及顯示確定的潛在選項(xiàng)以供用戶選擇的動(dòng)作。
13.如權(quán)利要求12所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述潛在實(shí)現(xiàn)選項(xiàng)可在用戶正鍵入信息時(shí)被動(dòng)態(tài)顯示。
14.如權(quán)利要求12所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述動(dòng)態(tài)顯示的潛在組件基于哪個(gè)復(fù)合應(yīng)用程序當(dāng)前正被編輯而不同。
15.一種計(jì)算機(jī)系統(tǒng),包括 一個(gè)或多個(gè)處理器;系統(tǒng)存儲(chǔ)器;其上存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令在由所述一個(gè)或多個(gè)處理器執(zhí)行時(shí)使得所述計(jì)算系統(tǒng)執(zhí)行一種用于提供部署和管理復(fù)合應(yīng)用程序的的方法,所述方法包括實(shí)例化配置成顯示復(fù)合應(yīng)用程序組件和所述組件間的一個(gè)或多個(gè)關(guān)系的應(yīng)用程序設(shè)計(jì)界面的動(dòng)作,其中每個(gè)組件包括指定如何與所述組件進(jìn)行通信的信息; 訪問(wèn)包括所述應(yīng)用程序的組件和組件關(guān)系的應(yīng)用程序清單的動(dòng)作; 所述應(yīng)用程序設(shè)計(jì)界面提供允許用戶根據(jù)預(yù)定模式配置所述復(fù)合應(yīng)用程序的組件的一組規(guī)范應(yīng)用程序模式的動(dòng)作,其中所述復(fù)合應(yīng)用程序在已經(jīng)使用軟件代碼來(lái)應(yīng)用所述規(guī)范模式后是可更改的;以及根據(jù)所述應(yīng)用程序清單在所述實(shí)例化的可視應(yīng)用程序設(shè)計(jì)界面內(nèi)顯示所述復(fù)合應(yīng)用程序的組件和組件關(guān)系的動(dòng)作。
全文摘要
本發(fā)明涉及分布式應(yīng)用程序的設(shè)計(jì)平臺(tái)。各實(shí)施例涉及提供一種部署和管理復(fù)合應(yīng)用程序的應(yīng)用程序模型并提供模型驅(qū)動(dòng)軟件編碼協(xié)助。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)實(shí)例化配置成顯示復(fù)合應(yīng)用程序組件以及組件間的關(guān)系的應(yīng)用程序設(shè)計(jì)界面。每個(gè)組件包括指定如何與組件進(jìn)行通信的信息。計(jì)算機(jī)系統(tǒng)訪問(wèn)包括應(yīng)用程序的組件和組件關(guān)系的應(yīng)用程序清單。計(jì)算機(jī)系統(tǒng)根據(jù)應(yīng)用程序清單在實(shí)例化的可視應(yīng)用程序設(shè)計(jì)界面內(nèi)顯示復(fù)合應(yīng)用程序的組件和組件關(guān)系。
文檔編號(hào)G06F9/44GK102541556SQ20111044778
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年12月28日 優(yōu)先權(quán)日2010年12月29日
發(fā)明者A·G·班達(dá)卡, A·M·德賈納特, D·舒克拉, M·R·溫克勒, P·B·薩萊亞, R·巴拉蘇布拉馬尼亞姆, S·M·丹頓 申請(qǐng)人:微軟公司