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