專(zhuān)利名稱(chēng):用于開(kāi)發(fā)以數(shù)據(jù)庫(kù)為中心的企業(yè)業(yè)務(wù)應(yīng)用的可配置、可擴(kuò)展的gui的高效計(jì)算系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及開(kāi)發(fā)用于業(yè)務(wù)應(yīng)用的圖形用戶(hù)界面(GUI)。更具體地,本發(fā)明涉及用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的可擴(kuò)展以及可配置的圖形用戶(hù)界面的高效計(jì)算系統(tǒng)和方法。
背景技術(shù):
近年來(lái),導(dǎo)致企業(yè)內(nèi)部以及企業(yè)之間的連通性增強(qiáng)的因特網(wǎng)的出現(xiàn),以及技術(shù)平臺(tái)的快速發(fā)展促成了業(yè)務(wù)動(dòng)態(tài)的顯著增加。增加的動(dòng)態(tài)開(kāi)啟了需要在日漸減少的時(shí)間窗口內(nèi)處理的新的機(jī)會(huì)的同時(shí),對(duì)業(yè)務(wù)提出了新的要求。傳統(tǒng)的業(yè)務(wù)應(yīng)用的⑶I在其實(shí)現(xiàn)中通常以硬編碼操作上下文(operating context)結(jié)束。結(jié)果,適應(yīng)其操作環(huán)境內(nèi)的變化將導(dǎo)致開(kāi)啟應(yīng)用實(shí)施的⑶I。該適應(yīng)過(guò)程導(dǎo)致不可接受的反應(yīng)。應(yīng)該可以配置用于期望的操作環(huán)境的業(yè)務(wù)應(yīng)用的GUI。新的機(jī)會(huì)可能對(duì)業(yè)務(wù)應(yīng)用的GUI提出不可想象的需求;應(yīng)可以快速地?cái)U(kuò)展現(xiàn)存的GUI的實(shí)現(xiàn),而不破壞與期望的擴(kuò)展無(wú)關(guān)的部分。還應(yīng)可以支持具有不同程度的等待時(shí)間,即應(yīng)用設(shè)計(jì)時(shí)間、應(yīng)用安裝時(shí)間和應(yīng)用運(yùn)行時(shí)間的這樣的適應(yīng)。而且,大企業(yè)在引入這些適應(yīng)時(shí)可能需要通過(guò)角色與責(zé)任的結(jié)構(gòu)推行一些紀(jì)律。涉及開(kāi)發(fā)用于業(yè)務(wù)應(yīng)用產(chǎn)品線的圖形用戶(hù)界面(⑶I)的一些發(fā)明如下由Ramanathan等提交的US707^10公開(kāi)了用于建模以及產(chǎn)生軟件應(yīng)用的圖形用戶(hù)界面的用戶(hù)窗口的方法,其包括步驟(a)為軟件工具提供至少一個(gè)窗口類(lèi)型(wintype) 和相關(guān)的窗口規(guī)范作為軟件工具的輸入;(b)標(biāo)識(shí)用于該至少一個(gè)窗口類(lèi)型內(nèi)的各分組框和表的控制;(c)創(chuàng)建用于該至少一個(gè)窗口類(lèi)型的各分組框和表的窗口類(lèi)(winclass) ; (d) 提供窗口屬性和窗口類(lèi)的控制之間的映射;(e)標(biāo)識(shí)通過(guò)與窗口按鈕的交互而可用的其它參數(shù);和(f)實(shí)例化各GUI窗口作為窗口類(lèi)型的實(shí)例,該窗口類(lèi)型包括窗口類(lèi)型所期望的實(shí)參到形參。由Ramanathan等人提交的US7369975公開(kāi)了用于建模且產(chǎn)生軟件應(yīng)用的圖形用戶(hù)界面的用戶(hù)窗口的系統(tǒng)和軟件工具,包括建模組件,所述建模組件用于創(chuàng)建窗口類(lèi)型的模型以及其實(shí)例;轉(zhuǎn)換組件,所述轉(zhuǎn)換組件用于將模型信息轉(zhuǎn)換成ASCII碼;庫(kù)組件, 所述庫(kù)組件用于存儲(chǔ)可重用代碼;和窗口產(chǎn)生組件,所述窗口產(chǎn)生組件用于產(chǎn)生圖形用戶(hù)界面窗口 ;其特征在于,所述圖形用戶(hù)界面以批處理過(guò)程產(chǎn)生,其中窗口共享的特定字段 (field)由取自或繼承自窗口類(lèi)型的合適的應(yīng)用代碼自動(dòng)占據(jù)。已經(jīng)提出用于⑶I的模型驅(qū)動(dòng)開(kāi)發(fā)的大量的其它技術(shù)(Shauerhuber,A., Schwinger, W. ,Retschitzegger, W. , ffimmer, Μ. , and Kappelet, G. 2008, A survey on Web Modeling Approaches for Ubiquitous Web Applications (MTS^NiSffl WN^IIM^ ^WiIS) ;International Journal of Web Information Systems ( H N^ff, Vol. 4,pp. 234-30 ,但極少數(shù)具有在大企業(yè)業(yè)務(wù)應(yīng)用中使用所需的成熟度。
AndroMDA (AndroMDA,開(kāi)源 MDA 產(chǎn)生器,http //galaxy, andromda. org/)提出 UML 簡(jiǎn)要(用于 GUI 建模的 AndroMDA BPM4Struts Cartridge UML 簡(jiǎn)要,http//galaxy, andromda. org/docs-3. 2/andromda-bpm4struts-cartridge/prof ile. html),關(guān)于以 GUI 信息注釋活動(dòng)對(duì)話框以便指示請(qǐng)求活動(dòng)的屏幕,在消息元素中使用的工具等。代碼產(chǎn)生器將這些模型翻譯成框架代碼,該框架代碼需要由開(kāi)發(fā)人員強(qiáng)化。該使用TileS(Apache Tiles, —^hJfiJllllg. 111 , http://tiles. apache, org/framework/index. html) JfePB^M 戶(hù)寫(xiě)的代碼和生成代碼的方法對(duì)于大型應(yīng)用開(kāi)發(fā)來(lái)說(shuō)是不實(shí)用的。進(jìn)一步,該規(guī)范語(yǔ)言太過(guò)稀少以致無(wú)法描述現(xiàn)有的業(yè)務(wù)應(yīng)用屏幕的復(fù)雜性。WebML (網(wǎng)絡(luò)建模語(yǔ)言,http //www. webml. org/)是一種網(wǎng)絡(luò)應(yīng)用建模語(yǔ)言,該語(yǔ)言通過(guò)在網(wǎng)絡(luò)應(yīng)用的實(shí)體關(guān)系模型上定義視圖來(lái)指定網(wǎng)絡(luò)應(yīng)用的組成和導(dǎo)航 (navigation)。該超文本模型然后以顯示模型增大。所有的三種模型都用于代碼產(chǎn)生。該方法對(duì)于數(shù)據(jù)密集型的小到中型網(wǎng)絡(luò)應(yīng)用很好用,其中,搜索、創(chuàng)建、修改和刪除(CRUD)屏幕的獨(dú)立生成具有很好的產(chǎn)品優(yōu)勢(shì)。該技術(shù)對(duì)于大型企業(yè)的應(yīng)用來(lái)說(shuō)很有限,原因是這些應(yīng)用的屏幕比CRUD更加復(fù)雜。這些方法大多集中于使用高層次的抽象且需要由開(kāi)發(fā)者填充細(xì)節(jié)的GUI的功能規(guī)范。更具體地,現(xiàn)有技術(shù)的缺點(diǎn)在于對(duì)于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的不同的企業(yè)來(lái)說(shuō)創(chuàng)建新的GUI的計(jì)算消耗以及計(jì)算時(shí)間太高,即使是相同的業(yè)務(wù)領(lǐng)域?,F(xiàn)有技術(shù)的又外一個(gè)缺點(diǎn)是,為不同的企業(yè)的業(yè)務(wù)應(yīng)用創(chuàng)建GUI帶來(lái)的維護(hù)和升級(jí)問(wèn)題,即便所述不同的企業(yè)由于其需求和規(guī)范的顯著重疊而屬于相同的業(yè)務(wù)領(lǐng)域。無(wú)視這些重疊意味著重復(fù)工作,且導(dǎo)致規(guī)范的冗余。因此,根據(jù)以上提及的現(xiàn)有技術(shù),顯然需要開(kāi)發(fā)用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的可擴(kuò)展和可配置的圖形用戶(hù)界面(GUI)的方案,其中這樣的方案應(yīng)該包括模型驅(qū)動(dòng)技術(shù)的使用。在如下參照附圖的本發(fā)明的描述中將解釋本發(fā)明的其它特征和優(yōu)點(diǎn)。
發(fā)明內(nèi)容
發(fā)明目的本發(fā)明的主要目的是提供用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可擴(kuò)展和可配置的圖形用戶(hù)界面(GUI)的高效計(jì)算系統(tǒng)和方法,該GUI用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線。本發(fā)明的另一顯著目的是提供⑶I的通用性以及可變性的建模,從而產(chǎn)生用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的單個(gè)的GUI。本發(fā)明的又一目的是創(chuàng)建具有預(yù)先定義的變型的集合的用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的共用GUI、自預(yù)先定義的集合選擇合適的變型以及將共用的GUI與選擇的變型組合成用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的專(zhuān)用GUI。本發(fā)明的又一目的是減少生成用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的新⑶I 的成本以及時(shí)間,且通過(guò)使用模型驅(qū)動(dòng)技術(shù)能實(shí)現(xiàn)有效維護(hù)以及平穩(wěn)發(fā)展。本發(fā)明的又一目的是實(shí)現(xiàn)基于模型的方案,以解決以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的GUI的結(jié)構(gòu)和行為方面的可擴(kuò)展性以及可配置性。本發(fā)明的又一目的是通過(guò)使用可變字段實(shí)現(xiàn)顯示層內(nèi)的運(yùn)行時(shí)間的變型,該可變字段能夠自配置數(shù)據(jù)庫(kù)檢查配置數(shù)據(jù),且確定是否顯現(xiàn)它。本發(fā)明系統(tǒng)的用戶(hù)定制實(shí)現(xiàn)又一目的或者通過(guò)變型或者在代碼產(chǎn)生過(guò)程期間產(chǎn)生,所述變型使用模型轉(zhuǎn)換應(yīng)用到模型層本身的可變點(diǎn)。發(fā)明方案在描述本發(fā)明方法和系統(tǒng)的實(shí)現(xiàn)之前,應(yīng)理解本發(fā)明不限于具體的方法以及描述的系統(tǒng),因?yàn)檫@些可以變化。還應(yīng)理解,說(shuō)明書(shū)中使用的術(shù)語(yǔ)僅用于描述具體形式或?qū)嵤┓绞降哪康模也挥糜谙拗票景l(fā)明的范圍,本發(fā)明的范圍僅由所附的權(quán)利要求限制。本發(fā)明提供一種用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可擴(kuò)展以及可配置的圖形用戶(hù)界面 (GUI)的高效計(jì)算系統(tǒng),該圖形用戶(hù)界面用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線,且本發(fā)明還提供一種用于測(cè)試開(kāi)發(fā)的GUI的至少一個(gè)部署框架。一種用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可配置、可擴(kuò)展的⑶I的高效計(jì)算系統(tǒng),該⑶I用于以數(shù)據(jù)庫(kù)為中心的企業(yè)業(yè)務(wù)應(yīng)用產(chǎn)品線,所述系統(tǒng)包括至少一個(gè)服務(wù)器;網(wǎng)絡(luò);禾口主系統(tǒng),所述主系統(tǒng)與所述網(wǎng)絡(luò)以及所述至少一個(gè)服務(wù)器通信,所述主系統(tǒng)具有處理器,所述處理器配置成執(zhí)行用于如下的程序化指令a)定義企業(yè)應(yīng)用的業(yè)務(wù)過(guò)程的終端用戶(hù)視圖為顯示層上的一個(gè)或多個(gè)屏幕的形式,其中,所述屏幕借助于根據(jù)元模型限定的導(dǎo)航鏈接而互相連接;b)根據(jù)所述元模型對(duì)所述顯示層的一個(gè)或多個(gè)屏幕建模;c)指定屏幕的通過(guò)事件句柄的定義捕獲的行為規(guī)范,其中,所述事件句柄能夠調(diào)用服務(wù)、觸發(fā)導(dǎo)航或執(zhí)行由開(kāi)發(fā)者指定的代碼;d)根據(jù)元模型定義顯示層上的共同結(jié)構(gòu)元素以及可變結(jié)構(gòu)元素;e)通過(guò)定義可變點(diǎn)獲得屏幕的結(jié)構(gòu)變型,該可變點(diǎn)在期望位置的一個(gè)或多個(gè)屏幕上被建模;f)通過(guò)引入環(huán)境特定結(jié)構(gòu)元素來(lái)對(duì)各可變點(diǎn)定義結(jié)構(gòu)變型;g)通過(guò)增加新的事件句柄或通過(guò)覆蓋現(xiàn)存的事件句柄來(lái)定義屏幕的行為變型;h)通過(guò)在共同模型的任意位置引入環(huán)境特定結(jié)構(gòu)元素,來(lái)指定屏幕的結(jié)構(gòu)擴(kuò)展;i)通過(guò)在共同模型的任意位置引入環(huán)境特定事件句柄,來(lái)指定屏幕的行為擴(kuò)展;j)將以上提及的所有結(jié)構(gòu)和行為變型以及其擴(kuò)展連接到特征模型;k)通過(guò)配置用于產(chǎn)品線的、在代碼產(chǎn)生中使用的特征模型,獲得業(yè)務(wù)應(yīng)用產(chǎn)品線的一個(gè)或多個(gè)GUI成員,以產(chǎn)生用于終端用戶(hù)配置的特定實(shí)現(xiàn)或產(chǎn)生用于終端用戶(hù)配置的元數(shù)據(jù)驅(qū)動(dòng)的可配置運(yùn)行時(shí)間的實(shí)現(xiàn)。1)通過(guò)在顯示模型上執(zhí)行合適的代碼產(chǎn)生器,以將GUI模型方案重定位到選擇的顯示層平臺(tái)上。本發(fā)明實(shí)現(xiàn)基于模型的方案,以解決以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的GUI的結(jié)構(gòu)和行為方面的可擴(kuò)展性以及可配置性,且它還支持使用可變字段實(shí)現(xiàn)顯示層內(nèi)的運(yùn)行時(shí)間的變型,該可變字段能夠自配置數(shù)據(jù)庫(kù)檢查配置數(shù)據(jù),且確定是否呈現(xiàn)它。
前述發(fā)明內(nèi)容以及如下的優(yōu)選實(shí)施方式的詳細(xì)描述,當(dāng)結(jié)合附圖閱讀時(shí),會(huì)更好地理解。為說(shuō)明本發(fā)明,附圖中示出本發(fā)明的示例結(jié)構(gòu);然而,本發(fā)明不限于公開(kāi)的具體方法和系統(tǒng)。附圖中圖1示出根據(jù)本發(fā)明的各實(shí)施方式的可擴(kuò)展以及可配置的圖形用戶(hù)界面(GUI)的開(kāi)發(fā)過(guò)程的流程圖。圖2A-圖2C示出用于根據(jù)本發(fā)明的各實(shí)施方式的⑶I的MDD方法。圖3示出根據(jù)本發(fā)明的一實(shí)施方式的用于屏幕流程(screen flow)的元模型。圖4示出根據(jù)本發(fā)明的一實(shí)施方式的用于鐵路系統(tǒng)預(yù)定的屏幕流程模型。圖5描畫(huà)了根據(jù)本發(fā)明的各實(shí)施方式的⑶I模型的建模、代碼產(chǎn)生以及重定位。圖6示出根據(jù)本發(fā)明的一實(shí)施方式的用于定義組件庫(kù)的元模型。圖7示出根據(jù)本發(fā)明的一實(shí)施方式的隨同包含關(guān)聯(lián)關(guān)系的組件庫(kù)的結(jié)構(gòu)。圖8示出根據(jù)本發(fā)明的一實(shí)施方式的事件句柄層次。圖9示出根據(jù)本發(fā)明的一實(shí)施方式的事件句柄到組件類(lèi)型的映射。圖10示出根據(jù)本發(fā)明的一實(shí)施方式的窗口模型-示例。圖11示出根據(jù)本發(fā)明的一實(shí)施方式的用于將顯示層與業(yè)務(wù)邏輯層連接的元模型。圖12示出根據(jù)本發(fā)明的一實(shí)施方式的使用模型到文本轉(zhuǎn)換的代碼產(chǎn)生。圖13示出根據(jù)本發(fā)明的一實(shí)施方式的用于變型以及連接到特征模型的元模型。圖14示出根據(jù)本發(fā)明的一實(shí)施方式的用于結(jié)構(gòu)變型的元模型。圖15示出根據(jù)本發(fā)明的一實(shí)施方式的建模結(jié)構(gòu)變化。圖16示出根據(jù)本發(fā)明的一實(shí)施方式的用于行為變型的元模型。圖17示出根據(jù)本發(fā)明的一實(shí)施方式的用于窗口的擴(kuò)展性的元模型。圖18示出根據(jù)本發(fā)明的一實(shí)施方式的用于窗口流的擴(kuò)展性的元模型。
具體實(shí)施例方式現(xiàn)在將詳細(xì)討論示出本發(fā)明全部特征的本發(fā)明的一些實(shí)施方式。詞語(yǔ)“包括”、“具有”和“包含”以及其其它形式意欲在意思上等效,且具有開(kāi)放性, 即跟在這些詞語(yǔ)任一個(gè)之后的項(xiàng)不意味著這樣的項(xiàng)的詳盡列表,或限制于所列的項(xiàng)。還必須注意,這里以及所附權(quán)利要求中使用的單數(shù)形式“一”、“一個(gè)”以及“該”包括復(fù)數(shù)基準(zhǔn),除非上下文另外明確指示。盡管任何類(lèi)似于或等同于在此描述的方法和系統(tǒng)能夠被用于實(shí)踐或測(cè)試本發(fā)明的實(shí)施方式,當(dāng)前僅描述了優(yōu)選的方法及系統(tǒng)。公開(kāi)的實(shí)施方式僅是可以以各種形式表現(xiàn)的本發(fā)明的示例。^X變型存在以滿(mǎn)足可變點(diǎn)的不同可能性稱(chēng)為變型??勺凕c(diǎn)可變點(diǎn)描述最終的系統(tǒng)內(nèi)存在差異的地方??勺冃缘南嚓P(guān)性這是用作表示可能填充可變點(diǎn)的不同選擇的依據(jù)。相關(guān)性的規(guī)范包括類(lèi)似1/n,m/n等的基數(shù)選擇,及類(lèi)似強(qiáng)制變型、專(zhuān)用交互變型等的限制。可配置性和可擴(kuò)展性可配置性表示快速地自一個(gè)已知的環(huán)境切換到另一個(gè),且可擴(kuò)展性表示容易處理尚未見(jiàn)到的環(huán)境。
一種用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可配置、可擴(kuò)展的GUI的高效計(jì)算系統(tǒng),該GUI用于以數(shù)據(jù)庫(kù)為中心的企業(yè)業(yè)務(wù)應(yīng)用產(chǎn)品線,所述系統(tǒng)包括至少一個(gè)服務(wù)器;網(wǎng)絡(luò);禾口主系統(tǒng),所述主系統(tǒng)與網(wǎng)絡(luò)和至少一個(gè)服務(wù)器通信,所述主系統(tǒng)具有處理器,所述處理器配置成執(zhí)行程序化指令用于a)定義企業(yè)應(yīng)用的業(yè)務(wù)過(guò)程的終端用戶(hù)視圖為顯示層上的一個(gè)或多個(gè)屏幕的形式,其中,所述屏幕借助于根據(jù)元模型限定的導(dǎo)航鏈接而互相連接;b)根據(jù)所述元模型對(duì)所述顯示層的一個(gè)或多個(gè)屏幕建模;c)指定屏幕的通過(guò)事件句柄的定義捕獲的行為規(guī)范,其中,所述事件句柄能夠調(diào)用服務(wù)、觸發(fā)導(dǎo)航或執(zhí)行由開(kāi)發(fā)者指定的代碼;d)根據(jù)元模型定義顯示層上的共同結(jié)構(gòu)元素以及可變結(jié)構(gòu)元素;e)通過(guò)定義可變點(diǎn)獲得屏幕的結(jié)構(gòu)變型,該可變點(diǎn)在期望位置的一個(gè)或多個(gè)屏幕上被建模;f)通過(guò)引入環(huán)境特定結(jié)構(gòu)元素來(lái)對(duì)各可變點(diǎn)定義結(jié)構(gòu)變型;g)通過(guò)增加新的事件句柄或通過(guò)覆蓋現(xiàn)存的事件句柄來(lái)定義屏幕的行為變型;h)通過(guò)在共同模型的任意位置引入環(huán)境特定結(jié)構(gòu)元素,來(lái)指定對(duì)屏幕的結(jié)構(gòu)擴(kuò)展;i)通過(guò)在共同模型的任意位置引入環(huán)境特定事件句柄,來(lái)指定屏幕的行為擴(kuò)展;j)將以上提及的所有結(jié)構(gòu)和行為變型以及其擴(kuò)展連接到特征模型;k)通過(guò)配置用于產(chǎn)品線的、在代碼產(chǎn)生中使用的特征模型,獲得業(yè)務(wù)應(yīng)用產(chǎn)品線的一個(gè)或多個(gè)GUI成員,以產(chǎn)生用于終端用戶(hù)配置的指定實(shí)現(xiàn)或產(chǎn)生用于終端用戶(hù)配置的元數(shù)據(jù)驅(qū)動(dòng)的可配置運(yùn)行時(shí)間的實(shí)現(xiàn);以及1)通過(guò)執(zhí)行顯示模型的適當(dāng)代碼產(chǎn)生器,將GUI模型方案重定位到選擇的顯示層平臺(tái)上。來(lái)自相同業(yè)務(wù)領(lǐng)域例如銀行業(yè)的不同企業(yè),它們想要開(kāi)啟金融交易賬戶(hù)。它們可能根據(jù)開(kāi)始時(shí)提及的功能維度和非功能維度對(duì)GUI具有不同的需求,但它們?nèi)云谕谒鼈兊男枨笾杏忻黠@的重疊,且因此在規(guī)范(specification)中有明顯重疊。不了解此重疊將意味著重新工作,且導(dǎo)致規(guī)范冗余,以后這將產(chǎn)生維護(hù)和演變問(wèn)題。本發(fā)明提供⑶I的通用性和可變性的建模,從而產(chǎn)生用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的單個(gè)的圖形用戶(hù)界面(⑶I)。因此,本發(fā)明提供具有預(yù)先定義的變型的集合的用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的GUI、自預(yù)先定義的集合內(nèi)選擇的合適的變型、以及將共同的GUI與選擇的變型組合到用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的專(zhuān)用GUI。本發(fā)明提供用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可配置以及可擴(kuò)展的圖形用戶(hù)界面(GUI) 的高效計(jì)算系統(tǒng),該GUI用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線。我們的方法提出以顯示為中心的方法,以指定平行于業(yè)務(wù)或數(shù)據(jù)層開(kāi)發(fā)過(guò)程的 ⑶I。獨(dú)立開(kāi)發(fā)的顯示層能夠被測(cè)試且綁定到任何業(yè)務(wù)層-服務(wù)、業(yè)務(wù)過(guò)程或ER模型-而不需要任何編程。由于允許在顯示層的設(shè)計(jì)中的修改以及在開(kāi)發(fā)階段非常早地產(chǎn)生高保真原型,因此我們的方法更好。高效計(jì)算系統(tǒng)包括主系統(tǒng),該主系統(tǒng)具有圖形用戶(hù)界面,該圖形用戶(hù)界面用于實(shí)現(xiàn)用戶(hù)與系統(tǒng)實(shí)體的交互以及用戶(hù)對(duì)系統(tǒng)實(shí)體的控制;服務(wù)器,該服務(wù)器通過(guò)通信網(wǎng)絡(luò)連接到主系統(tǒng),用于存儲(chǔ)描述⑶I功能所需的文本規(guī)范(textual specification),其中該通信網(wǎng)絡(luò)可以選自局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、電信網(wǎng)的至少一個(gè),且至少一個(gè)其他服務(wù)器通過(guò)具有數(shù)據(jù)儲(chǔ)存庫(kù)的通信網(wǎng)絡(luò)連接到主系統(tǒng),該數(shù)據(jù)儲(chǔ)存庫(kù)用于存儲(chǔ) GUI開(kāi)發(fā)所具體需要的數(shù)據(jù),其中,所述主系統(tǒng)具有配置成執(zhí)行程序化指令的處理器,所述程序化指令用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)圖形用戶(hù)界面(GUI),該圖形用戶(hù)界面用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線。上述高效計(jì)算系統(tǒng)還包括至少一個(gè)部署框架(employment framework),該部署框架用于測(cè)試開(kāi)發(fā)的⑶I,其中,該部署框架包括至少一個(gè)主系統(tǒng),該主系統(tǒng)具有用于能使用戶(hù)與系統(tǒng)能夠交互的圖形用戶(hù)界面;至少一個(gè)網(wǎng)絡(luò)服務(wù)器,所述網(wǎng)絡(luò)服務(wù)器安裝在系統(tǒng)上,且用于保存開(kāi)發(fā)的GUI ;至少一個(gè)數(shù)據(jù)存儲(chǔ)服務(wù)器,該數(shù)據(jù)存儲(chǔ)服務(wù)器安裝在系統(tǒng)上,且用于存儲(chǔ)元數(shù)據(jù)的,且所有上述主系統(tǒng)、網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)存儲(chǔ)服務(wù)器通過(guò)通信網(wǎng)絡(luò)互相連接。圖1示出根據(jù)本發(fā)明的各實(shí)施方式的可擴(kuò)展且可配置的圖形用戶(hù)界面(GUI)的開(kāi)發(fā)過(guò)程100的流程圖。起始,分析客戶(hù)需求以確定與現(xiàn)存的應(yīng)用相比功能上的缺口(gap)。 基于分析,具有配置成執(zhí)行用于遵循如下三種方式的程序化指令的處理器的系統(tǒng)需要開(kāi)發(fā)新的⑶I,則包括新的開(kāi)發(fā)、擴(kuò)展或配置。如果選擇⑶I的全新開(kāi)發(fā),則系統(tǒng)進(jìn)行功能設(shè)計(jì)且如果需要?jiǎng)t限定可變點(diǎn)。接著,系統(tǒng)進(jìn)行功能開(kāi)發(fā)、配置、模型翻譯、測(cè)試以及最終的GUI的開(kāi)發(fā)。如果選擇擴(kuò)展,則系統(tǒng)查明它是純擴(kuò)展或是用于變型的擴(kuò)展。如果它是純擴(kuò)展,則弓丨向功能設(shè)計(jì),后續(xù)地,限定可變點(diǎn)以及隨后的功能開(kāi)發(fā)、配置、模型翻譯、測(cè)試和最后的GUI 開(kāi)發(fā)。如果它是變型用擴(kuò)展,則系統(tǒng)進(jìn)行變型設(shè)計(jì),變型開(kāi)發(fā)、配置、模型翻譯、測(cè)試和最終的應(yīng)用的開(kāi)發(fā)。如果選擇配置,則系統(tǒng)使用特征模型簡(jiǎn)單地配置應(yīng)用,且進(jìn)行模型翻譯、測(cè)試和GUI的開(kāi)發(fā)。還可用由終端用戶(hù)使用配置元數(shù)據(jù)配置部署的應(yīng)用。最終,客戶(hù)能夠在他們的系統(tǒng)中使用開(kāi)發(fā)的GUI。企業(yè)業(yè)務(wù)應(yīng)用的圖形用戶(hù)界面由許多互相連接的屏幕組成,以形成各種屏幕流程,該各種屏幕流程用作自動(dòng)化的業(yè)務(wù)過(guò)程的視圖。用戶(hù)通過(guò)逐個(gè)屏幕與系統(tǒng)交互,其中各屏幕通過(guò)對(duì)用戶(hù)呈現(xiàn)某些有意義的信息收集以及自用戶(hù)接收作為響應(yīng)的一些有意義的信息,或通過(guò)為用戶(hù)提供一組選擇且接收用戶(hù)的決定,或通過(guò)兩者結(jié)合來(lái)形成用戶(hù)交互過(guò)程中的任務(wù)。任何方案都能夠?qū)崿F(xiàn)顯示層和業(yè)務(wù)層之間的數(shù)據(jù)傳輸以及屏幕流程中的變化。開(kāi)發(fā)圖形用戶(hù)界面包括若干功能關(guān)注點(diǎn)和實(shí)現(xiàn)關(guān)注點(diǎn)的規(guī)范。功能關(guān)注點(diǎn)包括1、可視化表示形式關(guān)注點(diǎn),該可視化表示形式關(guān)注點(diǎn)指定各屏幕如何面對(duì)用戶(hù)以及各屏幕的內(nèi)容是什么。2、用戶(hù)交互關(guān)注點(diǎn),該用戶(hù)交互關(guān)注點(diǎn)指定屏幕的用戶(hù)交互能力或用戶(hù)能夠使用屏幕做什么。3、事件反應(yīng)關(guān)注點(diǎn),該事件反應(yīng)關(guān)注點(diǎn)捕獲響應(yīng)用戶(hù)操作的屏幕的行為。4、數(shù)據(jù)流關(guān)注點(diǎn),該數(shù)據(jù)流關(guān)注點(diǎn)指定數(shù)據(jù)流如何在屏幕內(nèi)且與業(yè)務(wù)層結(jié)合。
5、導(dǎo)航關(guān)注點(diǎn),該導(dǎo)航關(guān)注點(diǎn)指定屏幕的流。實(shí)現(xiàn)關(guān)注點(diǎn)是1、實(shí)現(xiàn)顯示層的技術(shù)。2、顯示層的結(jié)構(gòu)。3、實(shí)現(xiàn)中作出的設(shè)計(jì)選擇。4、實(shí)現(xiàn)中的美學(xué)選擇。圖2A-圖2C示出根據(jù)本發(fā)明的各實(shí)施方式的用于⑶I的MDD方法。關(guān)于⑶I開(kāi)發(fā)的模型驅(qū)動(dòng)方法(MDD)將允許功能關(guān)注點(diǎn)的規(guī)范作為平臺(tái)無(wú)關(guān)模型,使得能夠在代碼產(chǎn)生器中編碼顯示層的詳細(xì)實(shí)現(xiàn),該顯示層的詳細(xì)實(shí)現(xiàn)類(lèi)似待使用的技術(shù)、后續(xù)的結(jié)構(gòu)、與業(yè)務(wù)層交互的策略甚或屏幕的美學(xué)。通常企業(yè)業(yè)務(wù)應(yīng)用的出現(xiàn)用于自動(dòng)化一些企業(yè)業(yè)務(wù)過(guò)程。結(jié)果,企業(yè)應(yīng)用的顯示層顯示了待由業(yè)務(wù)過(guò)程的不同利益相關(guān)者執(zhí)行的任務(wù)流。顯示層以如此形成用戶(hù)交互的單元的屏幕的形式實(shí)現(xiàn)這些任務(wù)。許多這樣的屏幕通過(guò)導(dǎo)航鏈接互相連接,以便形成業(yè)務(wù)過(guò)程的用戶(hù)視圖。圖3示出根據(jù)本發(fā)明的一實(shí)施方式的用于屏幕流程的元模型,且圖4示出根據(jù)本發(fā)明的一實(shí)施方式的用于鐵路系統(tǒng)預(yù)定的屏幕流程模型。屏幕流程建模就這樣處理顯示層方面的控制流。屏幕建模的其它四個(gè)方面在其屏幕的模型中顯示它們自身。這四個(gè)關(guān)注點(diǎn)是-屏幕的可視化表示形式、屏幕的用戶(hù)交互能力、屏幕對(duì)用戶(hù)操作的反應(yīng)行為和屏幕之間以及屏幕與業(yè)務(wù)邏輯層之間的數(shù)據(jù)流。在這四個(gè)關(guān)注點(diǎn)中,前兩個(gè),即可視化表現(xiàn)形式以及用戶(hù)交互能力取決于實(shí)現(xiàn)屏幕的平臺(tái)。由具有預(yù)定義顯示以及用戶(hù)交互能力的顯示平臺(tái)提供的基本組建塊被稱(chēng)為組件(widget)。顯示層的事件反應(yīng)行為還取決于平臺(tái)的用戶(hù)交互能力,且因此取決于組件。使用事件句柄限定事件反應(yīng)關(guān)注點(diǎn),該事件句柄是對(duì)組件引發(fā)的事件的可執(zhí)行的反應(yīng)。通常通過(guò)組合這些組件來(lái)產(chǎn)生數(shù)據(jù)密集型業(yè)務(wù)應(yīng)用中的屏幕的內(nèi)容。通過(guò)將這些組件捆綁到業(yè)務(wù)層消息來(lái)實(shí)現(xiàn)數(shù)據(jù)流,通過(guò)連接屏幕的鏈接實(shí)現(xiàn)導(dǎo)航。為使用組件指定屏幕,定義組件類(lèi)型庫(kù),該組件類(lèi)型庫(kù)是一些用于特定實(shí)現(xiàn)技術(shù)平臺(tái)的組件類(lèi)型。組件類(lèi)型定義它們自身的顯示、用戶(hù)交互能力以及它們能夠引發(fā)的事件的集合。顯示能夠是文本框、 樹(shù)、網(wǎng)格等形式,而用戶(hù)交互能力可類(lèi)似于輸入值、自值的列表中選擇值以及使用鼠標(biāo)拖動(dòng)滑塊等。它們能夠引發(fā)的事件的集合與它們的用戶(hù)交互能力的每一個(gè)對(duì)應(yīng)。例如,點(diǎn)擊事件、節(jié)點(diǎn)展開(kāi)事件以及行-選擇事件等是對(duì)應(yīng)于組件上的點(diǎn)擊操作、節(jié)點(diǎn)展開(kāi)操作以及行選擇操作的事件。組件類(lèi)型支持的顯示、用戶(hù)交互能力以及事件因技術(shù)平臺(tái)不同而不同。然而,用于企業(yè)業(yè)務(wù)應(yīng)用的規(guī)范比平臺(tái)的組件類(lèi)型庫(kù)中提供的規(guī)范需要更高的抽象層次。好的示例是用于HTLM內(nèi)的網(wǎng)格的已過(guò)時(shí)的組件模型,該組件模型不支持類(lèi)似行選擇、列分類(lèi)等事件。因此,為實(shí)際可用,應(yīng)使用具有能夠被仿真在目標(biāo)平臺(tái)上的能力的組件類(lèi)型來(lái)定義組件類(lèi)型庫(kù),而非僅根據(jù)目標(biāo)平臺(tái)上可用的組件類(lèi)型。例如,數(shù)據(jù)分頁(yè)是所有以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用中的網(wǎng)格組件上可用的標(biāo)準(zhǔn)性能。因此,組件庫(kù)在之前提及的全部的三個(gè)方面(即顯示、用戶(hù)交互和引發(fā)的事件)在不同的平臺(tái)上是不同的。這在將模型驅(qū)動(dòng)技術(shù)應(yīng)用到用戶(hù)界面的開(kāi)發(fā)中呈現(xiàn)了最根本的問(wèn)題-規(guī)范必須參照實(shí)現(xiàn)技術(shù)平臺(tái)的具體組件庫(kù),且同時(shí)對(duì)不同的技術(shù)平臺(tái)規(guī)范必須可重定向。因?yàn)槿缦聝蓚€(gè)實(shí)用原因不嘗試用于GUI開(kāi)發(fā)的真正的平臺(tái)無(wú)關(guān)方案(i)真正的平臺(tái)無(wú)關(guān)⑶I規(guī)范將僅提供各目標(biāo)平臺(tái)共有的那些能力,且因此會(huì)防止⑶I開(kāi)發(fā)者最大程度開(kāi)發(fā)底層平臺(tái)的能力,用于傳送豐富的用戶(hù)界面,且(ii)此方法僅關(guān)注具有與許多技術(shù)中大約相同的用戶(hù)界面的以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用。通過(guò)使用對(duì)組件類(lèi)型庫(kù)中的各組件類(lèi)型合適的平臺(tái)指定代碼發(fā)生器能夠?qū)崿F(xiàn)可重定向性,即使技術(shù)上被限制于類(lèi)似能力的平臺(tái)。具有用于不同技術(shù)平臺(tái)的不同模板的基于模板的代碼將足以滿(mǎn)足需求,因?yàn)橛糜趯?shí)現(xiàn)GUI的大多數(shù)所述代碼用于顯示,且其通常一旦定義好將保持不變。屏幕的真正的平臺(tái)無(wú)關(guān)規(guī)范相當(dāng)于捕獲屏幕的意圖且將其翻譯成正確的內(nèi)容。然而,由于內(nèi)容取決于平臺(tái)以及為更好地使用顯示層所做的選擇,試圖自動(dòng)將意圖翻譯成內(nèi)容不得不手動(dòng)進(jìn)行(由GUI開(kāi)發(fā)者完成)。策略驅(qū)動(dòng)的自動(dòng)翻譯是可能的,但是由于GUI的美學(xué)無(wú)法完全用策略說(shuō)明,這樣的策略驅(qū)動(dòng)的方法具有接受性的問(wèn)題。除了翻譯的問(wèn)題之夕卜,捕獲屏幕的意圖本身也是一項(xiàng)很難執(zhí)行的任務(wù),因?yàn)闊o(wú)法期望普通的⑶I開(kāi)發(fā)者以很清晰的形式表達(dá)整個(gè)屏幕的意圖。軟件產(chǎn)品線是存在以滿(mǎn)足特定的工業(yè)或者市場(chǎng)部分的一族軟件系統(tǒng)。軟件產(chǎn)品線工程(SPLE)方法將產(chǎn)品視為一族相關(guān)的應(yīng)用而非單個(gè)應(yīng)用。每一個(gè)用戶(hù)專(zhuān)用的變型都是該族的一個(gè)成員,其大多數(shù)功能和其他成員共享。大多數(shù)通常發(fā)生的用戶(hù)定制可以作為產(chǎn)品中可以通過(guò)配置選擇的選項(xiàng)實(shí)現(xiàn)。特定用戶(hù)的非常特殊的用戶(hù)定制應(yīng)該增加到產(chǎn)品中作為擴(kuò)展。在規(guī)范驅(qū)動(dòng)的方法中,配置和擴(kuò)展相關(guān)的問(wèn)題被更好處理,其中代碼產(chǎn)生過(guò)程可以應(yīng)用配置和擴(kuò)展產(chǎn)生用戶(hù)專(zhuān)用的實(shí)現(xiàn)。不同于其他的架構(gòu)層次,圖形用戶(hù)界面的用戶(hù)定制能夠超越功能的用戶(hù)定制,因?yàn)槠聊坏拿缹W(xué)以及用戶(hù)交互模式與客戶(hù)的其他應(yīng)用的符合性同樣可以形成圖像。圖5描述了根據(jù)本發(fā)明的各實(shí)施方式的建模、代碼產(chǎn)生和GUI模型的重定向。建模兩個(gè)演示平臺(tái)Pl和P2首先使用組件庫(kù)或組件模型建模。為定義這樣的組件模型,定義通用的元-元模型,所謂的組件元元-模型,該通用的元-元模型能夠用于定義用于任何平臺(tái)的組件庫(kù)。為定義這樣的元元-模型,需要另一元模型,我們使用MOF模型用于該元模型,其中MOF模型用作任何模型的基本元模型。多層建模使用基于MOF的反射模型框架實(shí)現(xiàn),該框架指定層n使用層μ作為其元模型,層Μ使用層n_2作為其元模型,如此直至層0,層0定義為MOF模型。MOF可反過(guò)來(lái)由其自身定義作為其元模型。為定義主要通過(guò)數(shù)據(jù)綁定的與業(yè)務(wù)層的集成-即將組件連接到用于數(shù)據(jù)傳送的業(yè)務(wù)層消息,組件庫(kù)同樣為業(yè)務(wù)層模型定義一組附件。代碼產(chǎn)生對(duì)應(yīng)每一個(gè)組件庫(kù)模型,定義一組可以將庫(kù)中任何組件的實(shí)例翻譯成平臺(tái)特定代碼的代碼產(chǎn)生器。GUI模型被指定為此模型的一個(gè)實(shí)例,并且代碼產(chǎn)生器用于將其翻譯成平臺(tái)特定代碼。M0F2Text是一個(gè)用于為每個(gè)組件庫(kù)指定代碼產(chǎn)生模板的好的候選。其具有期望的關(guān)注點(diǎn)隔離的屬性和繼承機(jī)制,因此能夠通過(guò)很好地重用代碼來(lái)組織模板。重定向如果相同的⑶I模型必須重定向到平臺(tái)P2,則新的組件庫(kù)首先被定義用于P2。接著定義兩個(gè)組件庫(kù)之間的映射,該映射能夠用于驅(qū)動(dòng)用于Pl的GUI模型自動(dòng)轉(zhuǎn)換成用于P2的GUI模型。接著轉(zhuǎn)換后的模型能夠被給予P2特定的代碼產(chǎn)生器,以獲得實(shí)現(xiàn)產(chǎn)品(implementation artifact)。 QVT (Query/View/Transformation,查詢(xún)/視圖/轉(zhuǎn)換)提供用于指定兩個(gè)組件庫(kù)之間的映射所必需的語(yǔ)言,且任何QVT實(shí)現(xiàn)能夠使用映射進(jìn)行轉(zhuǎn)換。圖6示出根據(jù)本發(fā)明的一實(shí)施方式的用于定義組件庫(kù)的元模型。此元模型將核心 MOF模型擴(kuò)展以定義兩個(gè)元類(lèi),即組件類(lèi)型和事件句柄類(lèi)型。由于這兩個(gè)元類(lèi)是擴(kuò)展的,因此兩個(gè)Mclass (元類(lèi))都支持繼承。能夠使用組件屬性(WidgetProperty)定義組件類(lèi)型的屬性。一些組件是原始的(primitive),而一些是包含其它組件的復(fù)合組件。組件包含關(guān)聯(lián)(widget containment association)能夠被用于定義所有這樣的組件間的包含關(guān)系。 類(lèi)似地,各組件僅支持能夠使用組件事件句柄關(guān)聯(lián)(Widget-EventHandler Association) 定義的一些相關(guān)的事件句柄。圖7示出根據(jù)本發(fā)明一實(shí)施方式的同包含關(guān)聯(lián)一起的組件庫(kù)的組織。類(lèi)似于標(biāo)簽(Label)、強(qiáng)制性(Mandatory)、可見(jiàn)性(Visible)等的大多數(shù)組件屬性在抽象組件 (Abstractffidget)自身被定義,且由其子類(lèi)別繼承。組件_1和組件_2之間的包含關(guān)聯(lián)表示組件-1能夠包含組件2以及其子類(lèi)別。圖8示出根據(jù)本發(fā)明一實(shí)施方式的事件句柄層次。除類(lèi)似點(diǎn)擊事件句柄 (ClickEventsHandler)、失焦事件句柄(OnFocus-LostEventHandler)等的標(biāo)準(zhǔn)事件句柄夕卜,類(lèi)似于上滑事件句柄(OnSlideEventHandler)、加速事件句柄(OnRateEventHandler) 等的事件句柄能夠被定義。事件句柄還被組織為如圖8所示的繼承層次。圖9示出根據(jù)本發(fā)明一實(shí)施方式的事件句柄到組件類(lèi)型的映射。圖10示出根據(jù)本發(fā)明一實(shí)施方式的窗口模型-示例。通過(guò)使用如圖10中示例所示的包含關(guān)聯(lián)組合組件來(lái)產(chǎn)生屏幕。類(lèi)似于此的屏幕組合能夠被翻譯成代碼,且通過(guò)使用模型的深度優(yōu)先搜索而無(wú)需代碼產(chǎn)生器的復(fù)雜性。圖11示出根據(jù)本發(fā)明一實(shí)施方式的用于將顯示層連接到業(yè)務(wù)邏輯層的元模型。 目前描述的模型捕獲顯示、用戶(hù)交互、反應(yīng)行為和屏幕之間的控制流。這些模型需要連接到業(yè)務(wù)層操作以及業(yè)務(wù)層消息,以便調(diào)用伴隨數(shù)據(jù)交換的業(yè)務(wù)操作。圖12示出根據(jù)本發(fā)明一實(shí)施方式的使用模型到文本轉(zhuǎn)換的代碼產(chǎn)生器。能夠通過(guò)使用任何可用的模型到文本翻譯工具來(lái)實(shí)現(xiàn)自模型產(chǎn)生代碼。類(lèi)似架構(gòu)和設(shè)計(jì)選擇、技術(shù)平臺(tái)和美學(xué)的實(shí)現(xiàn)決策能夠在代碼產(chǎn)生器中被編碼。用于GUI的實(shí)現(xiàn)代碼通常具有曾經(jīng)用于定義工程(project)的大部分的靜態(tài)代碼。靜態(tài)部分的代碼大部分與一旦定義就比較固定的架構(gòu)和美學(xué)相關(guān)。此GUI實(shí)現(xiàn)的本質(zhì)需要使用基于模板的代碼產(chǎn)生器,該模板能夠?qū)㈧o態(tài)內(nèi)容表示為模板文本。MOF模型到文本翻譯器已經(jīng)被認(rèn)為是用于基于模板的代碼產(chǎn)生器的極好選擇。由于此工作中描述的⑶I模型遵循樹(shù)結(jié)構(gòu),能夠?qū)⒛P偷酱a翻譯實(shí)現(xiàn)為關(guān)于樹(shù)的第一深度遍歷,其中使用其對(duì)應(yīng)的代碼產(chǎn)生器翻譯各節(jié)點(diǎn)。這允許代碼產(chǎn)生器被寫(xiě)為具有極好本地關(guān)注點(diǎn)的組件特定模塊。訪問(wèn)者模式的實(shí)現(xiàn)能夠被用于遍歷樹(shù),且調(diào)用正確的代碼產(chǎn)生器模塊,而無(wú)需編碼代碼產(chǎn)生器中的遍歷邏輯樹(shù)。⑶I代碼產(chǎn)生通常包括產(chǎn)生多個(gè)用于相同組件的產(chǎn)品。例如,為從網(wǎng)格組件產(chǎn)生源網(wǎng)絡(luò)應(yīng)用代碼,要產(chǎn)生的代碼片段包括JSP(jave服務(wù)器網(wǎng)頁(yè))片段、動(dòng)作表格(源產(chǎn)品) 片段、動(dòng)作類(lèi)(源產(chǎn)品)片段、一些幫助類(lèi)、java腳本片段,并且有時(shí)候還包括CSS(層疊樣式表)片段。在這種情況下MOF模型到文本翻譯器是用于代碼產(chǎn)生的一個(gè)理想的選擇,因?yàn)槊恳粋€(gè)代碼產(chǎn)生器模塊能夠具有多個(gè)模板,每個(gè)模板為特定的對(duì)象產(chǎn)生代碼。這種極佳的本地關(guān)注點(diǎn)隔離很大程度的改善了代碼產(chǎn)生器的可定制性。圖1示出了代碼產(chǎn)生器的基本結(jié)構(gòu)。圖13示出根據(jù)本發(fā)明的一實(shí)施方式的用于變型且連接到特征模型的元模型。用于軟件產(chǎn)品線工程的模型驅(qū)動(dòng)方法依賴(lài)于(1)用于模擬問(wèn)題空間中可配置選項(xiàng)的機(jī)制以及用于從可用的選項(xiàng)中模擬特定配置以便派生產(chǎn)品的機(jī)制,( 模擬方案規(guī)范中的可變點(diǎn)和變型的機(jī)制,( 將問(wèn)題空間變型和方案變型連接以便問(wèn)題空間的配置可以通過(guò)包含正確的方案變型驅(qū)動(dòng)特定方案的產(chǎn)生的機(jī)制。特征模型中的每一個(gè)配置選項(xiàng)需要被連接到方案空間中的變型。如圖13所示,所謂環(huán)境(Situation)的元對(duì)象被引入來(lái)構(gòu)造該連接。圖14示出根據(jù)本發(fā)明的一實(shí)施方式的用于結(jié)構(gòu)化變型的元模型。屏幕內(nèi)的變型可以是結(jié)構(gòu)的,也可以是行為的。結(jié)構(gòu)變型或者引入新的組件到現(xiàn)有的屏幕,或者改變現(xiàn)有的組件的類(lèi)型。行為變型引入新的事件句柄或者覆蓋現(xiàn)有的事件句柄。相同屏幕可以顯示不同環(huán)境內(nèi)的結(jié)構(gòu)的變型。這些變型可以是預(yù)見(jiàn)的可變點(diǎn)的變化,也可以是非預(yù)見(jiàn)的內(nèi)容增加。前一種的示例是屏幕上的唯一 id字段,在印度版本的產(chǎn)品中該字段可以呈現(xiàn)為‘PAN號(hào)’的字段,在美國(guó)版本的產(chǎn)品該字段呈現(xiàn)為‘SSN號(hào)’的字段。 非預(yù)見(jiàn)變型的示例是客戶(hù)突然決定在某些特定的屏幕上捕獲用戶(hù)的周年日。由于對(duì)于屏幕的非預(yù)見(jiàn)的增加無(wú)法采用任何邏輯處理(這樣的邏輯無(wú)法事先存在,變化是不可預(yù)期的), 因此他們僅僅應(yīng)用于捕獲和顯示信息。對(duì)于屏幕的可預(yù)見(jiàn)的結(jié)構(gòu)變型,當(dāng)定義通用模型時(shí)必須在屏幕上預(yù)期的位置對(duì)可變點(diǎn)建模。當(dāng)變型定義后在之后的時(shí)間點(diǎn)上可以在屏幕上引入變型。圖14示出的元模型能夠用于定義可變點(diǎn)和變化。屏幕上的可變點(diǎn)由所謂的可變字段(Variable Field)的特殊組件指定??勺冏侄卧谄聊簧献鳛槲恢帽3终撸罂梢栽谄渲性黾迎h(huán)境特定的內(nèi)容。圖15示出以郵編作為可變點(diǎn)的注冊(cè)屏幕的模型。圖中也示出了屏幕的兩個(gè)變型, 其中用于‘印度’環(huán)境的變型提供PIN代碼字段,而用于‘美國(guó)’環(huán)境的變型提供ZIP代碼字段。如前所討論的,在應(yīng)用特征模型中的一些特定的選擇連接到這些環(huán)境,并且同樣翻譯方案中的選擇。圖16示出根據(jù)本發(fā)明的一實(shí)施方式的用于行為變型的元模型。我們用于捕獲GUI 的行為規(guī)范的方法是通過(guò)定義事件句柄。事件句柄能夠調(diào)用服務(wù)、觸發(fā)導(dǎo)航或者能夠執(zhí)行開(kāi)發(fā)者指定的代碼。行為中的變型可以通過(guò)新的事件句柄或者通過(guò)覆蓋已有的事件句柄來(lái)處理完成。與結(jié)構(gòu)變型類(lèi)似,事件句柄也被連接到環(huán)境,環(huán)境接著被連接到來(lái)自特征模型的選項(xiàng)。圖15顯示了用于定義行為變型的元模型。元對(duì)象事件句柄映射指定以事件句柄為變型的組件。該變型被關(guān)聯(lián)為事件句柄對(duì)象。如果相同的組件有兩個(gè)同一類(lèi)型(例如,兩個(gè)onClickHandlers)的事件句柄,然后將優(yōu)先考慮由選定的變型指定的句柄。通過(guò)使用方法,產(chǎn)品線的開(kāi)發(fā)人員將能夠?qū)︼@示層及其可變點(diǎn)建模。然后產(chǎn)品線經(jīng)理能夠使用特征模型推導(dǎo)出產(chǎn)品線規(guī)范的一致的配置,以獲得特定的產(chǎn)品或提供。變型可以體現(xiàn)在代碼生成的時(shí)間和運(yùn)行時(shí)的產(chǎn)品內(nèi)。通常其中一些變型在代碼生成時(shí)綁定,而有些帶入到生成的方案中以便在運(yùn)行時(shí)顯示。變型可以使用模型轉(zhuǎn)換或者在代碼產(chǎn)生過(guò)程中應(yīng)用到模型層次本身的可變點(diǎn)以產(chǎn)生用戶(hù)定制的實(shí)現(xiàn)。通過(guò)包括來(lái)自模型變換過(guò)程中的特征模型的信息,使用模型驅(qū)動(dòng)軟件開(kāi)發(fā)(MDSD)工具能夠制造非常簡(jiǎn)單的變型特定模型轉(zhuǎn)換。需要元數(shù)據(jù)驅(qū)動(dòng)的可配置的應(yīng)用結(jié)構(gòu)以實(shí)現(xiàn)在運(yùn)行時(shí)的變型??膳渲玫膽?yīng)用結(jié)構(gòu)需要在應(yīng)用實(shí)現(xiàn)的每一層引入元數(shù)據(jù)驅(qū)動(dòng)的配置性,因?yàn)榧夹g(shù)的限制和特性往往跨層不同。對(duì)于數(shù)據(jù)存儲(chǔ)和訪問(wèn)層的可配置性,可以考慮提到的可擴(kuò)展性模式。對(duì)于在應(yīng)用層的可配置性,能夠使用合適的策略模式的實(shí)現(xiàn)。對(duì)于顯示層,能夠產(chǎn)生具有所有可能的運(yùn)行時(shí)間變型的實(shí)現(xiàn)。在運(yùn)行時(shí),可變字段能夠從配置數(shù)據(jù)庫(kù)檢查配置數(shù)據(jù),并決定是否呈現(xiàn)本身。對(duì)于基于HTML的用戶(hù)界面,基于 CSS的布局必須以百分比寬度使用,以便在生成的布局中該字段的動(dòng)態(tài)隱藏不留空格。圖17示出了根據(jù)本發(fā)明的一實(shí)施方式的用于屏幕的窗口的可擴(kuò)展性的元模型。 在圖中示出了現(xiàn)有的元對(duì)象和元關(guān)聯(lián),只有擴(kuò)展窗口組件能夠指定變化,其中擴(kuò)展的窗口用于具體特征。窗口對(duì)于不同的特征能夠具有多個(gè)不同的擴(kuò)展。為擴(kuò)展窗口,能夠產(chǎn)生與現(xiàn)有的窗口具有“擴(kuò)展”關(guān)系的新的窗口組件。擴(kuò)展的窗口擁有基本窗口的所有改變。抽象窗口變化(AbstractWindowChange)代表變化對(duì)象,它可以是組件增加(WidgetAddition)、 服務(wù)增加(ServiceAddition)或事件句柄增加(EventHandlerAddition)。組件增加元對(duì)象指定要添加的組件,并指定使用‘之后(after)’關(guān)聯(lián)指定應(yīng)在父窗口中的何處添加。圖18示出根據(jù)本發(fā)明的一實(shí)施方式的用于屏幕的窗口流的可擴(kuò)展性的元模型。 在附圖中示出現(xiàn)有的元對(duì)象和元關(guān)聯(lián),且擴(kuò)展的窗口流能夠指定增加的窗口,其中增加的界面導(dǎo)航(UINavigation)需要將新增加的窗口與流中的其他窗口連接。擴(kuò)展的窗口流可以增加新的窗口組件實(shí)例,且指定新的界面導(dǎo)航實(shí)例以將其連接到在流中的現(xiàn)有的窗口。示例在如下給定的示例中描述本發(fā)明,如下給定的示例的提供僅用于說(shuō)明本發(fā)明,且因此不應(yīng)被解釋為限制本發(fā)明的范圍。不同的企業(yè),來(lái)自相同的業(yè)務(wù)領(lǐng)域例如銀行業(yè),他們希望建立金融交易帳戶(hù)。如開(kāi)始階段所提到,他們可能就在圖形用戶(hù)界面(GUIs)的功能維度和非功能維度上具有不同的要求,但仍期望在他們的要求和規(guī)范上具有顯著的重疊。不了解這種重疊,就意味著重做,導(dǎo)致規(guī)范的冗余,這將造成后續(xù)的維護(hù)和演進(jìn)問(wèn)題。本發(fā)明提供⑶I的通用性和可變性的建模,從而實(shí)現(xiàn)以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的單一的圖形用戶(hù)界面(GUI)。因此,本發(fā)明提供用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的⑶I的創(chuàng)建,包括預(yù)先定義的變型的集合,從預(yù)先定義的集合中選擇合適的變型,并將通用GUI與選定的變型組合成專(zhuān)用GUI,該專(zhuān)用GUI用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線。例如,考慮開(kāi)發(fā)具有用于不同的操作環(huán)境的核心銀行功能的GUI的方案。我們假設(shè)具有核心銀行功能(例如開(kāi)戶(hù),存款,提款,轉(zhuǎn)賬)的銀行業(yè)務(wù)GUI需要為不同的地理位置(例如美國(guó)和印度)、每個(gè)位置的不同地區(qū)(例如印度的農(nóng)村銀行、公共部門(mén)銀行和私人銀行等)開(kāi)發(fā)。雖然GUI對(duì)用戶(hù)來(lái)說(shuō)在功能內(nèi)容方面顯得相同,其內(nèi)部結(jié)構(gòu)和行為可以從一個(gè)操作系統(tǒng)環(huán)境到另外一個(gè)操作環(huán)境不同,即在美國(guó)的大型銀行,在印度的私人銀行,和印度的農(nóng)村銀行。本發(fā)明將這種差異視為可變性。下面列出了其中一些場(chǎng)景和可變性通常情況下,美國(guó)銀行使用社會(huì)安全號(hào)碼(SSN)作為用于客戶(hù)的主要標(biāo)識(shí),而在印度私人銀行使用永久賬號(hào)(PAN)作為類(lèi)似用途。另一方面,印度農(nóng)村銀行可能使用屬性的組合,例如客戶(hù)的名稱(chēng)和母親的名稱(chēng)作為主要標(biāo)識(shí)。對(duì)于印度的私人銀行和印度農(nóng)村銀行來(lái)說(shuō),顯示客戶(hù)的詳細(xì)信息的屏幕的布局可能不同,因?yàn)閷?duì)于農(nóng)村銀行需要顯示母親的名字,而在其他銀行中需要隱藏。所有這些導(dǎo)致美國(guó)銀行,印度銀行和印度農(nóng)村銀行在⑶模型內(nèi)的一些差異。本發(fā)明提出一種指定以上結(jié)構(gòu)和行為變型的方法,能夠指定包含幾個(gè)相關(guān)成員組成的GUI家族-每個(gè)GUI可以從GUI的家族規(guī)范派生。家族成員分享共同的核心,并以上面列出的預(yù)先定義的方式而各不相同。此外,成員還可以獨(dú)立發(fā)展用于其特定環(huán)境的需要, 例如,印度的私人銀行可能會(huì)決定在客戶(hù)已經(jīng)結(jié)婚的情況下捕獲客戶(hù)的結(jié)婚周年日作為附加信息。本發(fā)明所述的概念可擴(kuò)展性可指定這些擴(kuò)展作為一個(gè)新的變型。此外,在本發(fā)明中指定的方法可以通過(guò)配置過(guò)程選擇適當(dāng)?shù)募彝コ蓡T。例如,新的美國(guó)銀行可以配置為以 SSN號(hào)碼作為客戶(hù)的主要標(biāo)識(shí),并使用合適的配置以印度私人銀行中的結(jié)婚紀(jì)念日作為客戶(hù)細(xì)節(jié)的附加字段。同樣,本發(fā)明降低了用于創(chuàng)建新的用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的GUI 的成本以及時(shí)間,且通過(guò)使用模型驅(qū)動(dòng)技術(shù)能實(shí)現(xiàn)有效地維護(hù)和平滑演進(jìn)。已經(jīng)參照本發(fā)明的各實(shí)施方式呈現(xiàn)了前述描述。本發(fā)明所屬領(lǐng)域的技術(shù)人員將理解,描述的系統(tǒng)和操作的方法中的改動(dòng)以及變化能夠被實(shí)施而不脫離本發(fā)明的原則、精神和范圍。
權(quán)利要求
1.一種用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可配置、可擴(kuò)展GUI的高效計(jì)算系統(tǒng),該GUI用于以數(shù)據(jù)庫(kù)為中心的企業(yè)業(yè)務(wù)應(yīng)用產(chǎn)品線,所述系統(tǒng)包括至少一個(gè)服務(wù)器;網(wǎng)絡(luò);和主系統(tǒng),所述主系統(tǒng)與所述網(wǎng)絡(luò)以及所述至少一個(gè)服務(wù)器通信,所述主系統(tǒng)具有處理器,所述處理器配置成執(zhí)行用于如下的程序化指令a)定義企業(yè)應(yīng)用的業(yè)務(wù)過(guò)程的終端用戶(hù)視圖為顯示層上的一個(gè)或多個(gè)屏幕的形式,其中,所述屏幕借助于由元模型限定的導(dǎo)航鏈接而互相連接;b)根據(jù)所述元模型對(duì)所述顯示層的一個(gè)或多個(gè)屏幕建模;c)指定屏幕的通過(guò)事件句柄的定義捕獲的行為規(guī)范,其中,所述事件句柄能夠調(diào)用服務(wù)、觸發(fā)導(dǎo)航或執(zhí)行由開(kāi)發(fā)者指定的代碼;d)根據(jù)元模型定義顯示層上的共同結(jié)構(gòu)元素以及可變結(jié)構(gòu)元素;e)通過(guò)定義可變點(diǎn)獲得屏幕的結(jié)構(gòu)變型,該可變點(diǎn)在期望位置的一個(gè)或多個(gè)屏幕上被建模;f)通過(guò)引入環(huán)境特定結(jié)構(gòu)元素來(lái)對(duì)各可變點(diǎn)定義結(jié)構(gòu)變型;g)通過(guò)增加新的事件句柄或通過(guò)覆蓋現(xiàn)存的事件句柄來(lái)定義屏幕的行為變型;h)通過(guò)在共同模型的任意位置引入環(huán)境特定結(jié)構(gòu)元素,來(lái)指定屏幕的結(jié)構(gòu)擴(kuò)展;i)通過(guò)在共同模型的任意位置引入環(huán)境特定事件句柄,來(lái)指定屏幕的行為擴(kuò)展;j)將所有所述結(jié)構(gòu)變型和行為變型以及其擴(kuò)展連接到特征模型;k)通過(guò)配置用于產(chǎn)品線的、在代碼產(chǎn)生中使用的特征模型,獲得業(yè)務(wù)應(yīng)用產(chǎn)品線的一個(gè)或多個(gè)GUI成員,以產(chǎn)生用于終端用戶(hù)配置的特定實(shí)現(xiàn)或產(chǎn)生用于終端用戶(hù)配置的元數(shù)據(jù)驅(qū)動(dòng)的可配置運(yùn)行時(shí)間的實(shí)現(xiàn);和1)通過(guò)在顯示模型上執(zhí)行合適的代碼產(chǎn)生器,以將GUI模型方案重定位到選擇的顯示層平臺(tái)上。
2.如權(quán)利要求1所述的系統(tǒng),其中,通過(guò)將新的組件增加到現(xiàn)存的屏幕上能夠?qū)崿F(xiàn)所述屏幕的結(jié)構(gòu)變型。
3.如權(quán)利要求1所述的系統(tǒng),其中,模型捕獲顯示、用戶(hù)交互、反應(yīng)行為以及屏幕之間的控制流。
4.如權(quán)利要求1所述的系統(tǒng),其中,顯示層的事件反應(yīng)行為取決于組件,且事件反應(yīng)關(guān)注點(diǎn)使用事件句柄指定,該事件句柄是對(duì)組件引發(fā)的事件的可執(zhí)行反應(yīng)。
5.如權(quán)利要求1所述的系統(tǒng),其中,通過(guò)使用對(duì)組件類(lèi)型庫(kù)中的各組件類(lèi)型合適的平臺(tái)特定代碼產(chǎn)生器能夠?qū)崿F(xiàn)可重定向性。
6.如權(quán)利要求1所述的系統(tǒng),其中,通過(guò)使用包含關(guān)聯(lián)來(lái)組合組件而定義屏幕,該包含關(guān)聯(lián)定義組件之間的所有包含關(guān)系。
7.如權(quán)利要求1所述的系統(tǒng),其中,所述顯示層模型連接到用于業(yè)務(wù)層服務(wù)和消息的模型,以調(diào)用攜帶數(shù)據(jù)交換的業(yè)務(wù)操作。
8.如權(quán)利要求1所述的系統(tǒng),其中,通過(guò)使用模型到文本翻譯工具自模型中產(chǎn)生平臺(tái)特定實(shí)現(xiàn)。
9.如權(quán)利要求1所述的系統(tǒng),其中,能夠通過(guò)包含來(lái)自模型轉(zhuǎn)換過(guò)程的特征模型的信息,使用模型驅(qū)動(dòng)軟件開(kāi)發(fā)工具創(chuàng)建簡(jiǎn)單的變型特定模型翻譯。
10.如權(quán)利要求1所述的系統(tǒng),其中,能夠在代碼產(chǎn)生器中編碼GUI的實(shí)現(xiàn)決策,所述 GUI的實(shí)現(xiàn)決策包括結(jié)構(gòu)、設(shè)計(jì)、技術(shù)平臺(tái)以及美學(xué)中的選擇。
11.如權(quán)利要求1所述的系統(tǒng),其中,相同屏幕能夠顯示不同環(huán)境的結(jié)構(gòu)的變型,其中, 所述變型能夠是預(yù)見(jiàn)的可變點(diǎn)的變型,或能夠是非預(yù)見(jiàn)的內(nèi)容的擴(kuò)展。
12.如權(quán)利要求1所述的系統(tǒng),其中,所述事件句柄變型連接與特征模型的元素連接的環(huán)境。
13.如權(quán)利要求1所述的系統(tǒng),其中通過(guò)使用可變字段能夠?qū)崿F(xiàn)顯示層內(nèi)運(yùn)行時(shí)的變型,所述可變字段能夠檢查來(lái)自配置數(shù)據(jù)庫(kù)的配置數(shù)據(jù)以及確定是否顯現(xiàn)它。
14.如權(quán)利要求1所述的系統(tǒng),其中,所述系統(tǒng)的用戶(hù)定制實(shí)現(xiàn)或者通過(guò)變型或者在代碼產(chǎn)生過(guò)程期間產(chǎn)生,所述變型使用模型轉(zhuǎn)換應(yīng)用到模型層本身的可變點(diǎn)。
15.如權(quán)利要求1所述的系統(tǒng),還包括至少一個(gè)用于測(cè)試開(kāi)發(fā)的⑶I的部署框架,其中, 所述部署框架包括a)至少一個(gè)主系統(tǒng),所述主系統(tǒng)用于實(shí)現(xiàn)用戶(hù)與系統(tǒng)的交互作用;b)至少一個(gè)具有網(wǎng)絡(luò)服務(wù)器的服務(wù)器,所述網(wǎng)絡(luò)服務(wù)器安裝在主系統(tǒng)上,且用于保存開(kāi)發(fā)的⑶I ;c)至少一個(gè)具有數(shù)據(jù)存儲(chǔ)服務(wù)器的服務(wù)器,所述數(shù)據(jù)存儲(chǔ)服務(wù)器安裝在主系統(tǒng)上,且用于存儲(chǔ)元數(shù)據(jù);以及d)所有上述主系統(tǒng)、網(wǎng)絡(luò)服務(wù)器或數(shù)據(jù)存儲(chǔ)服務(wù)器通過(guò)通信網(wǎng)絡(luò)互相連接。
全文摘要
本發(fā)明提供一種用于使用模型驅(qū)動(dòng)技術(shù)開(kāi)發(fā)可擴(kuò)展且可配置的圖形用戶(hù)界面(GUI)的高效計(jì)算系統(tǒng)及方法,該GUI用于以數(shù)據(jù)庫(kù)為中心的企業(yè)業(yè)務(wù)應(yīng)用產(chǎn)品線,且本發(fā)明還降低了生成新的用于以數(shù)據(jù)庫(kù)為心的企業(yè)業(yè)務(wù)應(yīng)用產(chǎn)品線的GUI的成本和時(shí)間,且通過(guò)使用模型驅(qū)動(dòng)技術(shù)能實(shí)現(xiàn)有效地維護(hù)和平滑演進(jìn)。本發(fā)明提供GUI的通用性以及可變性的建模,這樣產(chǎn)生用于以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的單一的GUI。本發(fā)明能夠?qū)崿F(xiàn)基于模型的方案,以解決以數(shù)據(jù)庫(kù)為中心的業(yè)務(wù)應(yīng)用產(chǎn)品線的GUI的結(jié)果和行為方面的可擴(kuò)展性以及可配置性,且本發(fā)明還支持通過(guò)使用可變字段實(shí)現(xiàn)顯示層的運(yùn)行時(shí)的變型,該可變字段能夠自配置數(shù)據(jù)庫(kù)檢查配置數(shù)據(jù),且確定是否呈現(xiàn)它自己。
文檔編號(hào)G06F9/44GK102473095SQ201080029346
公開(kāi)日2012年5月23日 申請(qǐng)日期2010年8月31日 優(yōu)先權(quán)日2010年3月4日
發(fā)明者R·莫漢, V·庫(kù)爾卡尼 申請(qǐng)人:塔塔咨詢(xún)服務(wù)有限公司