專利名稱:基于元模型的工具中的實體變形的制作方法
技術領域:
本發明一般地涉及模型驅動的流程開發(model driven process development), 更具體來說,涉及用于基于元模型細化(refine)模型實體的系統和方法。
背景技術:
業務流程管理(Business Process Management,BPM)工具允許用戶可以基于通用 流程模型來對自己的業務流程進行建模、執行和監視。業務流程模型和標記法(Business Process Model and Notation(BPMN))是用于表示業務流程工作流的工業標準圖形標記 法。BPMN以流程圖類型的風格示出業務流程的端到端的流,并通常與面向用戶接口的BPMN 工具一起使用。BPMN工具的例子之一是SAP的NetWeaver BPM組件(NW BPM,也稱為“銀 河系(Galaxy) ”),其被設計用來幫助用戶提高業務流程的效率,減少復雜重復任務中的錯 誤,以及降低異常處理的費用。利用SAP BPM,用戶可以編排流程步驟、定義業務規則和異常 (exception)、使用BPMN對流程的流進行建模、有效地執行流程模型,以及通過個性化的用 戶接口或交互的形式來支持與運行的流程的交互。在這樣的模型驅動的開發中,元模型是描述如何構建模型的模型。在元模型中,可 以規定表達域(domain)實體以及定義它們之間的關系的類(class)。這些實體以及它們 的關系也包含關于建立在該元模型頂層的工具的信息,所述工具例如BPMN工具。然而,該 信息目前在建模基礎設施中沒有提供任何基于給定的元模型定義快速調整圖元(diagram element)的功能。
發明內容
大體上,本文檔討論使用元模型中的繼承層次結構(inheritance hierarchy)作 為如何基于元模型的定義細化模型實體的工具的手冊的系統和方法。該信息在建模基礎設 施中提供基于給定的元模型定義快速調整(如BPMN工具的)圖元的通用功能。在一個方面中,提出一種計算機實現的用于在基于元模型的業務流程模型和標記 (BPMN)工具中變形實體的方法。該方法通過至少一個計算機系統的至少一個處理器運行計 算機可讀程序代碼來執行。在另一方面中,該方法由一種包括存儲設備以及與該存儲設備 通信的BPMN工具計算機的系統來實現。該方法包括接收用于將實體從第一非抽象實體類型變形到第二非抽象實體類型 的命令;基于與該實體相關聯的元模型中的繼承層次結構,從建模基礎設施(MOIN)返回該 實體的所有非抽象子類型或兄弟。該方法還包括從該實體的非抽象子類型或兄弟中確定 第二非抽象實體類型,并將所選出的實體從第一非抽象實體類型變形到第二非抽象實體類 型。另一方面,提出一種用于在基于元模型的業務流程模型和標記(BPMN)工具中變 形實體的計算機程序產品。該產品包括可由至少一個處理器讀取并存儲由該至少一個處理 器執行的用于以下操作的指令的存儲介質,所述操作包括接收用于將實體從第一非抽象實體類型變形到第二非抽象實體類型的命令,以及基于與該實體相關聯的元模型中的繼承 層次結構返回該實體的所有非抽象子類型或兄弟。這些指令還包括從該實體的非抽象子類 型或兄弟中確定第二非抽象實體類型,以及將所選出的實體從第一非抽象實體類型變形到 第二非抽象實體類型。在附圖和下面的描述中闡述了一個或更多個實施例的細節。從所述描述和附圖以 及從權利要求中,其它的特征和優點將會很明顯。
現在將參考后面的附圖來詳細描述這些和其他方面以及其它方面。圖1示出將順序連接符Gequence Connector)變形到條件順序連接符 (Conditional Sequence Connector);圖2示出實體變形系統;圖3描述用戶接口,通過該用戶接口可以執行實體變形技術;圖4示出用于執行實體變形過程的子菜單;圖5是實體變形方法的流程圖;圖6示出元模型的一個例子。各個圖中相似的參考符號表示相似的元素。
具體實施例方式本申請描述了一種用于在基于元模型的工具中進行實體變形(morphing)的系統 和方法。具體來說,該系統在建模基礎設施中包括基于給定的元模型定義快速調整圖元的 功能。根據一些實現方案,功能模塊被配置為基于給定的元模型定義將模型的實體“變形”, 并可以作為通用命令顯露在BPMN工具使用的建模基礎設施(MOIN)中。MOIN使得能夠進行 模型驅動的開發,這意味著由用戶建模的內容(things)(如BPMN工件(artifacts))基于 給定的元模型以模型的形式存儲在MOIN中。在此使用的術語“變形”有若干含義,例如,改變到更具體的類型,或者改變成一個 兄弟(sibling)同時盡可能保持現有的屬性值、關系和身份。變形可以在繼承層次結構的 一個層次上進行,也可以在多個層次上進行。在更復雜的情況中,變形還可以意味著工具可 以在層次結構的同一層上進行兄弟到兄弟的變形。在示例實現方案中,變形與遷移命令(migrate command)相關聯, 如在SAP的Netweaver BPM中使用的MOIN中的用于遷移到子類型的命令 "MigrateToSubTypeCommand (遷移到子類型命令)”。這樣的命令有兩個參數1)要被遷移 的元素;以及幻該元素將被遷移到的子類型的類描述符(class descriptor)。在一些實 現方案中,應用編程接口(API)提供一組能夠用于基于元模型中的繼承層次結構來變形給 定元素的子類型。在執行時,遷移命令將給定的模型元素遷移到其非抽象子類型(或兄弟) 之一,并盡可能接管(take over)所有的屬性值和關系。一旦用戶或程序決定將模型元素變形到其非抽象子類型之一,如在圖1的 列子中所示的 Sequence Connector ( J幌序連接符)變形至Ij Conditional Sequence Connector (條件順序連接符),就可通過代碼來執行遷移命令。下面的開發者工作室(developer studio)的 bpem. ide (integrated development environment,集成開發環 境)插件中的代碼是可以被調用的遷移命令的一個例子。作為示例,該插件包含下面的使 用 “MigrateToSubTypeCommand”API 的代碼片段(snippet)<···>Command comm = new MigrateToSubTypeCommand (getConnection (),GlxIdeMessages. ConvertAbstract2BPMNType_0,seqConn,ConditionalSequenceConnector. CLASS_DESCRIPT0R);comm. execute ();RefObject element = ( (MigrateToSubTypeCommand) comm). getMigratedElement();if(element instanceof ConditionalSequenceConnector){csc= (ConditionalSequenceConnector) element ;<···>如圖2所示,其中示出實體變形系統100,插件110可以是為用戶產生工作空間116的BPMN工具114的流程編排器(process composer) 112的一部分。流程編排器112是 應用和計算機程序產品,并且可以在服務器計算機上運行并通過網絡為客戶端計算機提供 服務,而工作空間116則在一個或更多個客戶端計算機上運行。實體變形由MOIN 104中的實體變形引擎102來執行,并且在一些實現方案中該實 體變形引擎被實現為Java代碼。在這樣的實現方案中,Java代碼被配置成在ECLIPSE平 臺內運行。MOIN 104允許模型驅動的開發,意思是用戶建模的內容(如BPMN工件)根據給 定的元模型108以實體模型106的形式存儲在MOIN 104內。圖6中示出元模型的一個例子。除其它信息外,流程編排器112和工作空間116還可以提供描繪BPMN流程和實體 的圖形標記的用戶接口。圖3示出由流程編排器提供的BPMN工具的示例性用戶接口 150。 除一組功能控件和菜單外,該用戶接口還包括具有若干文件夾的文件夾樹152,用于指示模 型化的流程和可以用于觸發流程的消息觸發器。在用戶接口 150的圖形建模窗口 IM中可 以定義、建模和產生流程,使用BPMN的圖形標記和流程圖技術根據元模型來表達域實體及 它們的關系。用戶接口 150還可以包括特性定義區156,用戶可以在其中定義流程的特性、 實體以及關系。圖4表示用于執行實體變形過程的子菜單。圖5是實體變形方法200的流程圖。在步驟202,選擇要變形到新的子類型的模型 元素的子類型。該選擇可由用戶操作用戶接口并選擇要被變形的模型元素的圖形表示來進 行。基于該選擇,在步驟204,通過實體變形引擎來調用流程編排器中的變形代碼插件。該 調用可以基于由實體變形引擎處理以執行該變形代碼插件的用戶命令。在步驟206,變形代 碼插件創建變形命令對象,其實現變形命令對象的構造器。在一些實體變形過程實現方案中,首先通過構造器創建新命令 “MigrateToSubTypeCommand”。命令是用來在MOIN實體模型上操作的MOIN功能的包裝 器(wrapper)。構造器需要到MOIN的連接,該MOIN用來執行該命令,并其提供命令的人類可讀描述、要被遷移的元素以及子類型的類描述符。在步驟208,在命令對象被創建之 后,通過調用execute ()方法來執行該命令。例如,作為結果,可以在該命令對象上調用 "getMigratedElementO ”,并在步驟210接收可以被塑造成其新的子類型并進一步被使用 的被遷移的元素。在可替代的實現方案中,可以將MOIN配置為用于基于元模型為給定的模型元素 提供所有非抽象子類型。然后,該列表可以被顯現給終端用戶,即以圖形顯示可視地表示, 該終端用戶然后可以決定模型元素應當被變形到給定的子類型中的哪一個。該代碼在構造 “MigrateToSubTypeCommand” 命令之前執行。本說明書中描述的一些或全部功能操作可以用數字電子電路或計算機軟件、固 件,或硬件來實現,包括在本說明書中公開的結構以及它們的結構等同物,或它們的組合。 本發明的實施方式可以實現為一個或多個計算機程序產品,即一個或多個在計算機可讀存 儲介質(如機器可讀存儲設備、機器可讀存儲介質、存儲器設備或機器可讀的傳播信號)上 編碼的計算機程序指令模塊,用于由數據處理裝置執行或用于控制數據處理裝置的操作。術語“數據處理裝置”包括所有用于處理數據的裝置、設備及機器,例如包括可編 程處理器、計算機或多個處理器或計算機。除硬件外,該裝置還可以包括為所討論的計算機 程序創建執行環境的代碼,例如構成處理器固件、協議棧、數據庫管理系統、操作系統或它 們的組合的代碼。傳輸信號是人工產生的信號,例如由機器產生的電、光或電磁信號,產生 該信號是為對信息進行編碼以傳輸到合適的接收器裝置。計算機程序(也稱為程序、軟件、應用、軟件應用、腳本或代碼)可以任何形式的編 程語言(包括編譯的或解釋的語言)來書寫,并可以任何形式部署,包括作為獨立的程序或 作為模塊、組件、子程序或其它適合于在計算環境中使用的單元。計算機程序不必對應于文 件系統中的文件。程序可以存儲在保存其它程序或數據(如存儲在標記語言文檔中的一個 或多個腳本)的文件的一部分中、存儲在專用于所討論的程序的單個文件中,或存儲在多 重協調的文件中(如存儲一個或多個模塊、子程序或部分代碼的文件)。計算機程序可以部 署為在一臺計算機上執行或者在位于一個地點或分布在多個地點且通過通信網絡互聯的 多臺計算機上執行。在本說明書中描述的流程和邏輯流可由執行一個或多個計算機程序以通過對輸 入數據進行操作并產生輸出來執行功能的一個或多個可編程處理器來執行。這些流程和邏 輯流還可以由特定目的邏輯電路如FPGA(現場可編程門陣列)或ASIC(專用集成電路)來 實現,裝置也可以實現為這樣的特定目的邏輯電路。適于執行計算機程序的處理器例如包括通用的和專用的微處理器,以及任何種類 的數字計算機的一個或多個處理器。一般來說,處理器將從只讀存儲器或隨機存取存儲器 或兩者接收指令和數據。計算機的關鍵部件是用于執行指令的處理器以及一個或多個用于 存儲指令和數據的存儲器設備。一般來說計算機還將包括通信接口或可操作地耦合到通信 接口,以從一個或多個用于存儲數據的海量存儲設備(如磁盤、磁光盤或光盤)接收數據或 者向一個或多個用于存儲數據的海量存儲設備(如磁盤、磁光盤或光盤)傳輸數據,或者二 者兼有。此外,計算機還可以嵌入在另一設備中,僅舉幾例來說,如移動電話、個人數字 助理(PDA)、移動音頻播放器、全球定位系統(GPQ接收器等。適于具體化計算機程序指令和數據的信息載體包括所有形式的非易失性存儲器,例如包括半導體存儲器設備,如 EPROM、EEPROM和快閃存儲器設備;磁盤,如內部硬盤或可移動盤;磁光盤;以及⑶ROM和 DVD-ROM盤。處理器和存儲器可以用特定目的邏輯電路來補充或合并在特定目的邏輯電路 中。為了提供與用戶的交互,本發明的實施例可以在具有用于向用戶顯示信息的顯示 設備和用戶可以用來向計算機提供輸入的鍵盤和指示設備的計算機上實現,所述顯示設備 例如CRT (陰極射線管)或LCD (液晶顯示)監視器),所述指示設備例如鼠標或跟蹤球。其 它類型的設備也可以用來提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的 感覺反饋,如視覺反饋、聽覺反饋或觸覺反饋;來自用戶的輸入可以以任何形式來接收,包 括聲音輸入、語言輸入或觸覺輸入。本發明的實施例可以在包括后端組件(如數據服務器)或中間件組件(如應用服 務器)或前端組件(如具有用戶通過其可與本發明的實現交互的圖形用戶接口或網頁瀏覽 器的客戶端計算機)或任何這樣的后端、中間、前端組件的組合的計算系統中實現。這些系 統的組件可以通過任何形式或媒介的數字數據通信(如通信網絡)互聯。通信網絡的例子 包括局域網(“LAN”)和廣域網(“WAN”),如互聯網。計算系統可以包括客戶機和服務器。客戶機和服務器通常彼此遠離并且一般通過 通信網絡交互。客戶機和服務器的關系依靠運行在各個計算機上并且相互具有客戶機-服 務器關系的計算機程序而產生。在本說明書中為清楚起見在不同實施例的上下文中描述的一些特征也可以在單 一的實施例中組合地提供。相反,為簡潔起見在單一實施例的上下文中描述的各種特征也 可以多個實施例中單獨地或者以任何合適的子組合的形式提供。此外,盡管特征在以上被 描述為以一定的組合的形式動作或者最初要求保護成這樣,但在一些情況下要求保護的組 合中的一個或多個特征也可以從該組合中分離出來,并且要求保護的組合也可以指子組合 或子組合的變形。以上描述了本發明的特定實施例。其它實施例也落在后面權利要求的范圍內。例 如,權利要求中列舉的步驟也可以不同的順序執行而仍能獲得期望的結果。此外,本發明的 實施例不局限于關系數據庫體系結構;例如本發明可以被實現以為在關系模型以外的模型 上建立的數據庫(如導航數據庫或面向對象的數據庫)和包含具有復雜屬性結構(如面向 對象的編程對象或標記語言文檔)的記錄的數據庫提供索引(indexing)和歸檔方法和系 統。所描述的流程可以由專門執行存檔和檢索功能或嵌入在其它應用中的應用來實現。
權利要求
1.一種計算機實現的用于在基于元模型的業務流程模型和標記BPMN工具中變形實體 的方法,該方法通過至少一個計算機系統的至少一個處理器運行計算機可讀程序代碼來執 行,該方法包括接收用于將實體從第一非抽象實體類型變形到第二非抽象實體類型的命令;基于與該實體相關聯的元模型中的繼承層次結構,從建模基礎設施MOIN返回該實體 的所有非抽象子類型或兄弟;從該實體的非抽象子類型或兄弟中確定第二非抽象實體類型;以及將所選出的實體從第一非抽象實體類型變形到第二非抽象實體類型。
2.根據權利要求1所述的方法,其中,確定第二非抽象實體類型還包括調用流程編排器插件中的變形代碼,該變形代碼通過構造器創建變形命令對象,該構 造器從MOIN獲得到MOIN的連接、該變形命令的人類可讀描述、要遷移的元素,以及該元素 要被變形到的子類型的類描述符。
3.根據權利要求1所述的方法,還包括向用戶接口提供該命令的人類可讀描述。
4.根據權利要求2所述的方法,其中,所述命令包括用于用來對要被變形的實體操作 的MOIN功能的包裝器。
5.根據權利要求2所述的方法,其中,所述構造器還包括第二非抽象實體子類型的類 描述符。
6.根據權利要求2所述的方法,其中,所述變形代碼插件產生要被變形為第二非抽象 實體類型的實體的表示。
7.一種用于在基于元模型的業務流程模型和標記BPMN工具中變形實體的計算機程序 產品,該產品包括可由至少一個處理器讀取并存儲由該至少一個處理器執行的指令的存儲 介質,該指令被該至少一個處理器執行以進行以下操作接收用于將實體從第一非抽象實體類型變形到第二非抽象實體類型的命令;基于與該實體相關聯的元模型中的繼承層次結構,返回該實體的所有非抽象子類型或 兄弟;從該實體的非抽象子類型或兄弟中確定第二非抽象實體類型;以及將所選出的實體從第一非抽象實體類型變形到第二非抽象實體類型。
8.根據權利要求7所述的計算機程序產品,其中,用于確定第二非抽象實體類型的指 令還包括用于調用流程編排器插件中的變形代碼的指令,該變形代碼通過構造器創建變形命令 對象,該構造器從MOIN獲得到MOIN的連接、該變形命令的人類可讀描述、要遷移的元素,以 及該元素要被變形到的子類型的類描述符。
9.根據權利要求7所述的計算機程序產品,所述指令還包括用于向用戶接口提供該命 令的人類可讀描述的指令。
10.根據權利要求8所述的計算機程序產品,其中,所述命令包括用于用來對要被變形 的實體操作的MOIN功能的包裝器。
11.根據權利要求8所述的計算機程序產品,其中,所述構造器還包括第二非抽象實體 子類型的類描述符。
12.根據權利要求8所述的計算機程序產品,其中,所述變形代碼插件產生要被變形為 第二非抽象實體類型的實體的表示。
13.一種用于在基于元模型的業務流程模型和標記BPMN工具中變形實體的系統,該系 統包括存儲設備;以及與該存儲設備通信的BPMN工具計算機,該BPMN工具計算機包括用于實施以下方法的 軟件,該方法包括接收用于將實體從第一非抽象實體類型變形到第二非抽象實體類型的命令;基于與該實體相關聯的元模型中的繼承層次結構,將該實體的所有非抽象子類型或兄 弟從建模基礎設施MOIN返回該BPMN工具計算機;從該實體的非抽象子類型或兄弟中確定第二非抽象實體類型;以及將所選出的實體從第一非抽象實體類型變形到第二非抽象實體類型。
14.根據權利要求13所述的系統,其中,確定第二非抽象實體類型還包括調用流程編排器插件中的變形代碼,該變形代碼通過構造器創建變形命令對象,該構 造器從MOIN獲得到MOIN的連接、該變形命令的人類可讀描述、要遷移的元素,以及該元素 要被變形到的子類型的類描述符。
15.根據權利要求13所述的系統,所述方法還包括向用戶接口提供該命令的人類可讀描述。
16.根據權利要求14所述的系統,其中,所述命令包括用于用來對要被變形的實體操 作的MOIN功能的包裝器。
17.根據權利要求14所述的系統,其中,所述構造器還包括第二非抽象實體子類型的 類描述符。
18.根據權利要求14所述的系統,其中,所述變形代碼插件產生要被變形為第二非抽 象實體類型的實體的表示。
全文摘要
公開了一種用于在基于元模型的業務流程模型和標記(BPMN)工具中變形實體的系統和方法。接收用于將實體從第一非抽象實體類型變形到第二非抽象實體類型的命令。建模基礎設施(MOIN)基于與該實體相關聯的元模型中的繼承層次結構返回該實體的所有非抽象子類型或兄弟。從該實體的非抽象子類型或兄弟中確定第二非抽象實體類型,并且將所選出的實體從第一非抽象實體類型變形到第二非抽象實體類型。
文檔編號G06Q10/00GK102054217SQ20101053328
公開日2011年5月11日 申請日期2010年11月5日 優先權日2009年11月5日
發明者魯文·戴 申請人:Sap股份公司