專利名稱:元數據管理的制作方法
技術領域:
本發明涉及信息技術領域,更確切地說,涉及數據集成系統領域。
背景技術:
計算機應用程序的出現使得許多商業過程迅速得多,高效得多;不過,使用不同數據結構、通訊協議、語言和平臺的不同計算機應用程序的激增已經導致典型商業企業的信息技術基礎設施極其復雜。典型企業內的不同商業過程可以使用完全不同的計算機應用程序,每種計算機應用程序的開發和優化都是針對具體的商業過程,而不是針對整個企業。例如,商家可能有某個具體的計算機應用程序用于跟蹤應付帳款,完全不同的一個應用程序用于記錄與客戶的交往。事實上,即使同一商業過程也可能使用不止一個計算機應用程序,比如企業保留集中式的客戶交往數據庫,而員工們也保留他們自己的交往信息,比如在個人信息管理器中。
盡管專用計算機應用程序提供了定制解決方案的優點,但是此類激增導致效率低下,比如遍及企業的多次重復登錄和操作相同的數據,或者企業未能捕捉與一個過程相關聯的數據,而企業執行另一個過程時本來能夠受益于該數據。例如,假若應付帳款過程與供應鏈和定購過程分離,企業就可能從客戶接受和填寫定單,而其信用歷史本來可以使企業拒絕該定單。許多其他實例表明,企業會從對其橫跨多種計算機應用程序的全部數據的一致訪問中受益。
許多公司已經意識到并涉及了對跨越商業企業中不同應用程序的數據共享的需要。因此,企業應用程序集成即EAI,已經顯現為涉及全異源數據的基于消息的策略。隨著計算機應用程序復雜度和數量的增加,EAI努力遭遇了許多挑戰,其范圍從需要應對不同協議到需要涉及日益增大的數據容量和事務處理數目以及日益增加的更快捷數據集成的欲望。對EAI已經采取了多種方法,包括最小公分母方法、原子方法以及橋式方法。不過,EAI以各個應用程序之間通訊為基礎。作為明顯的缺點,隨著平臺和應用程序的線性增加,EAI解決方案的復雜度呈幾何增長。
盡管數據集成系統針對企業需求提供了有用的工具,不過典型情況下,這樣的系統部署為定制的解決方案。它們的開發周期長,并可能需要精心的技術培訓,以容納商業結構和信息需求中的變化。仍然存在著對數據集成系統工具的需要,以容許在變化的商業環境中使用、重用和修改功能。更確切地說,仍然存在著對更加靈活的元數據管理工具的需要,以便用于企業計算環境中的數據集成。
發明內容
本文提供的方法和系統用于管理和使用與企業計算環境中數據集成有關的元數據。集成的、不依賴平臺的元數據管理方法可以容許在全企業范圍內訪問數據集成服務和基礎數據,并便利數據集成環境中的工具和作業的再使用和再設計。提供的工具用于管理元數據,包括維護版本化的若干元數據模型,在設計周期中可以將它們分支和合并,以及跨越全企業動態地實施。不依賴平臺的方法可以便利各種各樣的用途,包括在多機種的硬件和軟件計算環境中的實施方案。
一方面,本文介紹的方法包括以第一模型固有的術語表示查詢;使用描述所述第一模型與第二模型之間一個或多個關系的映射信息,將所述查詢轉換為所述第二模型固有的術語;以及將所述查詢轉換為固有的數據源格式。另一方面,系統包括以第一模型固有的術語表示查詢的裝置;使用描述所述第一模型與第二模型之間一個或多個關系的映射信息,將所述查詢轉換為所述第二模型固有的術語的映射模型;以及將所述查詢轉換為固有的數據源格式的裝置,在所述格式中對所述數據源執行所述查詢。
所述映射信息可以被查詢。所述映射信息可能在轉換步驟期間可用。所述第一模型可以是視圖。所述第二模型可以是中心。數據源可以是數據庫。所述數據庫可以為一個或多個數據源存儲元數據。所述數據庫可以存儲表示企業元數據的持久模型。所述數據庫可以是關系數據庫和/或文件。所述方法可以在企業計算系統中執行,所述系統也可以在企業計算系統之內。所述方法可以在數據集成系統中執行,所述系統也可以在數據集成系統之內。所述第一模型固有的術語可以包括外部客戶固有的語法。所述第一模型可以是用戶界面的視圖。所述方法可以進一步包括在所述用戶界面中顯示查詢的結果,所述系統也可以包括用于顯示查詢結果的用戶界面。所述第一模型可以是用于服務的視圖。所述服務可以包括數據集成系統服務。所述服務可以包括遠程工具和/或實時集成服務。所述第一模型和所述第二模型至少其一可以是知識庫中存儲的元數據模型。所述方法可以進一步包括以轉換工具將所述查詢的結果轉換為所述第一模型,所述系統也可以包括對應的轉換工具。所述轉換工具可以存儲在知識庫中。
另一方面,本文介紹的方法可以包括向知識庫登記元數據模型;將第一存儲機制與元數據模型的一個或多個設計屬性相關聯;以及將第二存儲機制與元數據模型的一個或多個操作屬性相關聯,其中第二存儲機制為所述元數據模型的所述一個或多個操作屬性中的至少一個存儲時間戳。
在所述方法中,所述第一存儲機制可以是版本化的存儲機制,它存儲所述元數據模型的所述一個或多個設計屬性中的至少一個的一個或多個版本。所述方法可以進一步包括注解元數據模型的一個或多個設計屬性和一個或多個操作屬性,將它們與或者第一存儲機制或者第二存儲機制相關聯。所述方法可以進一步包括提供包結構,以定位第一存儲機制和第二存儲機制之間元數據模型的一個或多個設計屬性和一個或多個操作屬性。所述方法可以進一步包括提供與所述元數據模型相關聯的清單,以定位第一存儲機制和第二存儲機制之間元數據模型的一個或多個設計屬性和一個或多個操作屬性。所述方法可以進一步包括將操作屬性登記為第一模型和將設計屬性登記為第二模型。所述元數據模型可以跨越一個或多個操作屬性或一個或多個設計屬性查詢。所述方法可以進一步包括向所述元數據模型登記一個或多個映射,所述一個或多個映射描述所述元數據模型與一個或多個其他元數據模型的關系。
在另一方面,系統可以包括包含登記的元數據模型的知識庫;所述知識庫內的第一存儲機制,所述第一存儲機制與元數據模型的一個或多個設計屬性相關聯;以及所述知識庫內的第二存儲機制,所述第二存儲機制與元數據模型的一個或多個操作屬性相關聯,第二存儲機制用于為所述元數據模型的所述一個或多個操作屬性中的至少一個存儲時間戳。
所述第一存儲機制可以是版本化的存儲機制,它存儲所述元數據模型的所述一個或多個設計屬性中的至少一個的一個或多個版本。所述系統可以包括注解,將元數據模型的一個或多個設計屬性和元數據模型的一個或多個操作屬性與或者第一存儲機制或者第二存儲機制相關聯。所述系統可以包括包結構,以定位第一存儲機制和第二存儲機制之間元數據模型的一個或多個設計屬性和一個或多個操作屬性。所述系統可以包括與所述元數據模型相關聯的清單,以定位第一存儲機制和第二存儲機制之間元數據模型的一個或多個設計屬性和一個或多個操作屬性。操作屬性可以登記為第一模型,設計屬性登記為第二模型。所述元數據模型可以跨越一個或多個操作屬性或一個或多個設計屬性查詢。所述系統可以進一步包括向元數據模型登記的一個或多個映射,所述一個或多個映射描述所述元數據模型與一個或多個其他元數據模型的關系。
在另一方面,保持模型的方法包括登記第一模型;識別第二模型和所述第一模型的至少一個屬性到所述第二模型的映射;以及保持第一模型的所述至少一個屬性到所述第二模型的映射。
所述方法可以包括識別第一模型的未映射到第二模型的至少一個其他屬性;以及保持第一模型的所述至少一個其他屬性。第一模型可以包括多個類,第二模型也可以包括多個類。所述方法可以包括提供存儲機制,用于保持作為反身存儲機制的第一模型的所述至少一個屬性到第二模型的映射。所述方法可以進一步包括定義模式,用于表示關系數據庫中的元數據模型,并使用所述模式保持第一模型的所述至少一個屬性到第二模型的映射。所述方法可以進一步包括通過改變所述模式、改變關系數據庫中的一個或多個屬性以及/或者改變所述映射而修改第一模型。第一模型和第二模型可以是元數據模型。
在另一方面,作為保持模型的系統可以包括第一模型的至少一個屬性到第二模型的映射;以及登記所述第一模型的知識庫,所述知識庫被配置為保持第一模型的所述至少一個屬性到第二模型的映射。
第一模型的至少一個其他屬性未被映射到第二模型,所述知識庫被配置為保持第一模型的所述至少一個其他屬性。第一模型和/或第二模型每個都可以包括多個類。所述系統可以進一步包括存儲機制,保持第一模型的所述至少一個屬性到第二模型的映射,所述存儲機制包括反身存儲機制。所述系統可以進一步包括表示關系數據庫中元數據模型的模式,所述模式保持第一模型的所述至少一個屬性到第二模型的映射。通過改變所述模式、改變關系數據庫中的一個或多個屬性以及/或者改變所述映射而修改第一模型。第一模型和第二模型可以是元數據模型。
在另一方面,模型驅動的元數據轉換架構可以包括多個轉換引擎,使用一個或多個模型到模型的映射在一個或多個模型之間進行轉換;以及轉換登記處,用于動態地選擇所述多個轉換引擎之一。
轉換引擎可以包括編譯語言引擎、解釋語言引擎或解釋映射引擎中的一個或多個。模型到模型的映射可以在星型架構中的中心與一個或多個視圖之間。一個或多個模型到模型的映射可以是用戶可配置的。在已經部署了若干對應模型之后可以配置模型到模型的映射之一。在中心與多個相同視圖之間進行轉換的多個轉換引擎中可以重復模型到模型的映射之一。在中心與多個不同視圖之間進行轉換的多個轉換引擎中可以實現不同的模型到模型的映射。
在另一方面,在模型之間轉換元數據的方法包括接收在第一模型與第二模型之間轉換元數據的請求;檢索模型到模型的映射,其特征在于在所述第一模型與所述第二模型之間轉換;以及使用所述模型到模型的映射將元數據從所述第一模型轉換到所述第二模型。
模型到模型的映射可以包括用于由轉換引擎進行轉換的編譯語言、解釋語言或映射的一個或多個。模型到模型的映射可以在星型架構中的中心與視圖之間。所述方法可以進一步包括提供用戶界面,用于配置模型到模型的映射。所述方法可以進一步包括在登記處存儲模型到模型的映射以便動態訪問。所述方法可以進一步包括在已經部署了第一模型和第二模型至少其一之后配置模型到模型的映射。在中心與多個相同視圖之間進行轉換的多個轉換引擎可以并發地使用模型到模型的映射。所述方法可以進一步包括登記多個不同的模型到模型的映射,其中在中心與多個不同視圖之間進行轉換的多個轉換引擎并發地使用不同的模型到模型的映射。
在一方面,本文公開的管理元數據的方法包括將面向對象的元數據模型組織為包括操作屬性的操作模型和包括設計屬性的設計模型;在操作知識庫中存儲操作模型;以及在通用知識庫中存儲設計模型。
所述方法可以進一步包括對操作模型元數據的至少一項加注時間戳。通用知識庫可以支持設計模型的不止一種版本。所述方法可以進一步包括為用戶與模型的交互提供元數據環境。用戶環境可以包括編輯模型的工作空間。工作空間可以是用戶獨占的和/或共享的。元數據環境可以包括組空間。組空間可以支持元數據事例的版本化。元數據環境可以在用戶計算機上本地駐留,也可以駐留在用戶計算機可訪問的遠程服務器上。所述方法可以包括動態地比較通用知識庫中設計模型的一個或多個不同版本。通用知識庫可以支持設計模型版本的分支。所述方法可以包括協調設計模型的多個版本,以及/或者動態地協調設計模型的多個版本。所述方法可以包括通過面向消息的服務異步地調用元數據模型而在元數據服務中使用元數據模型,以及/或者通過應用程序接口同步地調用元數據模型而在元數據服務中使用元數據模型。所述方法可以包括并發地執行使用元數據模型的服務,以及/或者使用并行機制執行使用該模型的服務。
本文介紹的管理元數據的系統可以包括面向對象的元數據模型,包括具有一個或多個元數據模型操作屬性的操作模型和具有一個或多個元數據模型設計屬性的設計模型;存儲操作模型的操作知識庫;以及存儲設計模型的通用知識庫。
對操作模型元數據的至少一項可以加注時間戳。通用知識庫可以支持設計模型的不止一種版本。本系統可以包括用戶與模型交互的元數據環境。用戶環境可以包括編輯模型的工作空間。工作空間可以是用戶獨占的或共享的。元數據環境可以包括組空間。組空間可以支持元數據事例的版本化。元數據環境可以在用戶計算機上本地駐留,也可以駐留在遠程服務器上。通用知識庫可以支持動態比較設計模型的一個或多個不同版本。通用知識庫可以支持設計模型版本的分支。通用知識庫可以支持協調設計模型的多個版本。通用知識庫可以支持動態地協調設計模型的多個版本。所述系統可以包括通過面向消息的服務異步地調用元數據模型而使用元數據模型的元數據服務,以及/或者通過應用程序接口同步地調用元數據模型而使用元數據模型的元數據服務。所述元數據模型可以用于以并發或并行中至少一種方式執行的服務。
本文公開的協調元數據的方法可以包括將協調區屬性與元數據對象相關聯,協調區屬性識別以公共協調規則集為特征的協調區;根據所述公共協調規則集協調多個元數據對象的事例,以提供協調區內的元數據對象協調事例。
所述方法可以包括定義第二協調區,用于協調元數據對象協調事例與元數據對象的一個或多個附加事例。協調區可以包括多個元數據對象的事例。所述方法可以進一步包括將匹配類型與協調區屬性相關聯,匹配類型定義了對元數據對象事例的處理。所述方法可以進一步包括將標識與元數據對象的事例相關聯,該標識唯一地識別在協調區內元數據對象的事例。所述方法可以進一步包括為元數據對象提供協調譜系。該協調譜系可以描述通過一個或多個協調區的路徑、識別一個或多個數據源、識別一個或多個協調規則以及/或者包括元數據對象事例的歷史。
在另一方面,本文公開的協調元數據的系統可以包括以公共協調規則集為特征的協調區;多個元數據對象的事例,包括將所述多個元數據對象事例的每一個都與所述協調區相關聯的協調區屬性;以及協調引擎,對于多個元數據對象事例與之相關聯的協調區,根據公共協調規則集,通過協調所述多個元數據對象事例,在協調區內產生元數據對象的協調事例。
所述系統可以包括第二協調區,用于協調元數據對象協調事例與元數據對象的一個或多個附加事例。協調區可以包括多個元數據對象的事例。匹配類型可以定義對協調區內元數據對象事例的處理。與元數據對象的每個事例相關聯的標識可以唯一地識別在協調區內元數據對象的事例。為元數據對象可以提供協調譜系。該協調譜系可以描述通過一個或多個協調區的路徑、識別一個或多個數據源、識別一個或多個協調規則以及/或者包括元數據對象事例的歷史。
在另一方面,為數據集成系統提供并發元數據服務的方法可以包括將元數據服務分為對象流;識別一串對象,它們具有根據元數據對這些對象主要是內部的引用;在多個處理器的單一處理器上執行該串對象;識別該串對象之外的至少一個對象;以及在所述多處理器的另一處理器上執行所述至少一個對象。
這些對象可以包括至少一個元數據模型。這些處理器在物理上分開的硬件上。所述服務可以包括解決元數據沖突的協調過程。這些對象可以包括元數據導入。使用數據依賴性的圖可以識別主要是內部的引用。所述服務可以組織為用于并發的管道。所述管道至少可以包括識別對象階段、取出候選者階段、協調階段、合并階段和存儲階段。
在其他方面,計算機程序產品可以包括計算機可用介質,它包括計算機可讀程序代碼,其中在一臺或多臺計算機上執行所述計算機可讀程序代碼時使所述一臺或多臺計算機執行任何一個或多個以上方法。
本文所用的“國際商用機器”或“IBM”應當是指紐約Armook的國際商用機器公司。
本文所用的“數據源”或“數據目標”意在具有與這些術語一致的最廣泛的可能含義,應當包括數據庫、多個數據庫、知識庫信息管理器、隊列、消息服務、知識庫、數據設施、數據存儲設施、數據提供商、網站、服務器、計算機、計算機存儲設施、CD、DVD、移動存儲設施、中心存儲設施、硬盤、多路協作數據存儲設施、RAM、ROM、閃存、存儲卡、臨時存儲設施、永久存儲設施、磁帶、本機連接的計算設施、遠程連接的計算設施、無線設施、有線設施、移動設施、中心設施、網絡瀏覽器、客戶、便攜式電腦、個人數字助理(“PDA”)、電話、便攜式電話、移動電話、信息平臺、分析設施、處理設施、商務企業系統或處理數據所在的其他設施,或者為存儲數據或其他信息而提供的其他設施,以及以上任何系統中所用的、保持結構化或非結構化數據的任何文件或文件類型,或者任何流式的、消息化的、事件驅動的或另外來源的數據,以及上述的任何組合,除非另外指明了特定含義或者短語語境有另外的需要。存儲機制是任何物理的或邏輯的設備、資源或設施,有能力擔任數據源或數據目標,或者以其他方式以可檢索的形式存儲數據。
“Enterprise Java Bean(EJB)”應當包括用于J2EE平臺的服務器方組件架構。EJB支持分布式、事務處理式、安全便攜式Java應用程序的快速簡便開發。EJB支持允許并發消息消費的容器式架構,并且提供對分布式事務處理的支持,所以使用J2EE架構的數據庫更新、信息處理以及到企業系統的連接能夠在同一環境中進行。
“JMS”應當意味著Java Message Service,它是基于Java的J2EE企業架構中的企業消息服務。“JCA”應當意味著以下更具體介紹的J2EE平臺的J2EE Connector Architecture。應當承認,盡管EJB、JMS和JCA是現代分布式事務處理環境中常用的軟件工具,但是提供類似功能的任何平臺、系統或架構都可以用于本文介紹的數據集成系統。
本文所用的“實時”應當包括商業交易或商務的近似持續時間階段,并且應當包括在商業操作或商業處理期間發生的過程或服務,與脫機情況(比如晚間的批量處理操作)相反。根據商業處理的持續時間,實時可能包括幾秒、不到一秒、幾分、幾個小時或甚至幾天。
本文所用的“商業處理”、“商業邏輯”以及“商業交易”應當包括商家能夠執行的任何方法、服務、操作、過程或事務處理,包括但不限于銷售、營銷、實施、庫存管理、定價、產品設計、專業服務、財務服務、管理、金融、保險業、分析、訂合同、信息技術服務、數據存儲、數據挖掘、信息傳遞、選定貨運路線、調度、通訊、投資、事務處理、提議、促銷、廣告、出價、工程、制造、供應鏈管理、人力資源管理、數據處理、數據集成、工作流管理、軟件生產、硬件生產、新產品開發、研究、開發、策略功能、質量控制和保證、包裝、后勤、客戶關系管理、應付回扣和退貨、客戶支持、產品維護、電話營銷、協會交流、投資者關系等等,不一而足。
本文所用的“面向服務的架構(SOA)”應當包括形成商業企業基礎設施部分的服務。在SOA中,服務能夠變為應用程序開發和部署的構件,容許應用程序的快速開發和避免冗余代碼。每種服務都可以實施一組商業邏輯即能夠由周圍環境約束的商業規則,比如服務數據輸入的來源或服務數據輸出的目標。在以下說明中提供了SOA的多種事例。
本文使用的“元數據”應當包括對正在處理的數據產生上下文關系的數據、有關該數據的數據、關于相關信息上下文關系的信息、關于數據源的信息、關于數據位置的信息、關于數據意義的信息、關于數據壽命的信息、關于數據標題的信息、關于數據單位的信息、關于數據字段的信息以及/或者關于該數據上下文關系有關的任何其他信息的信息。
本文使用的“WSDL”即“Web服務描述語言”包括XML格式,所描述的網絡服務(往往是web服務)作為在一組端點上操作包含或者面向文檔或者面向過程的信息的消息。所述操作和消息被抽象地描述,然后綁定到具體的網絡協議和消息格式,以定義端點。有關的具體端點被組合為抽象端點(服務)。WSDL可擴充,因此無論使用何種消息格式或網絡協議進行通訊,都容許描述端點和它們的消息。
圖1是示意圖,商業企業具有多個商務過程,其中每一個都可能包括多個不同的計算機應用程序和數據源;圖2是示意圖,顯示了跨越商業企業的多個商務過程的數據集成;圖3是示意圖,顯示的架構用于為商業企業的多個數據源提供數據集成;圖4顯示了元數據管理系統的架構;圖5顯示了通過視圖模型和數據模型查詢數據庫的通訊;圖6顯示了為視圖模型轉換查詢結果而正被訪問的轉換引擎;圖7顯示了為外部服務轉換查詢結果而正被訪問的轉換引擎;圖8顯示了靜態模型的映射;圖9顯示了可擴充模型的映射;圖10顯示了模型映射的組合;圖11描繪的架構向外部元數據揭示多個內部服務;圖12描繪了映射模型驅動的元數據轉換;圖13顯示了與元數據環境的交互;圖14顯示了存儲多個元數據版本的通用知識庫;圖15描繪了客戶動態地比較版本化知識庫中的若干元數據版本;圖16A顯示了元數據協調的過程;圖16B描繪了跨越若干協調區的分段協調過程;
圖17描繪了版本化元數據對象的協調;圖18顯示了在元數據過程中使用并發的實例;圖19是從用戶界面6702到元數據數據庫6712的查詢過程中涉及實體的圖示;圖20顯示了從元數據模型擴充元數據數據庫過程中涉及的實體;圖21顯示了從工具訪問知識庫過程中涉及的實體;圖22顯示了工具訪問版本化和非版本化元數據模型過程中涉及的實體;圖23顯示了用戶界面訪問通用知識庫中多版本元數據過程中涉及的實體;圖24顯示了若干版本的元數據的協調過程中涉及的實體;圖25顯示了在協調過程中使用并發涉及的實體。
具體實施例方式
在以下全部討論中,相同的要素編號意指相同的要素,除非另外明確地指出。
本文公開的發明能夠采用的形式為完全硬件實施例、完全軟件實施例或者既含有硬件單元又含有軟件單元的實施例。在優選實施例中,本發明以軟件實施,其中包括但是不限于固件、駐留軟件、微代碼等。
不僅如此,本發明也能夠采用計算機程序產品的形式,從提供程序代碼的計算機可用即計算機可讀介質上可以訪問,程序代碼與計算機或任何指令執行系統有關或者由其使用。為了本說明書的目的,計算機可用即計算機可讀介質可以是能夠包含、存儲、交流、傳播或輸送與指令執行系統、裝置或設備有關或者由其使用的程序的任何裝置。
該介質可以是電子的、磁性的、光學的、電磁性的、紅外線的或半導體的系統(或裝置或設備),也可以是傳播介質。計算機可讀介質的實例包括半導體或固態存儲器、磁帶、可拆卸計算機磁盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、剛性磁盤和光盤。光盤的流行實例包括小型盤-只讀存儲器(CD-ROM)、小型盤-讀/寫(CD-R/W)和DVD。
用于存儲和/或執行程序代碼的數據處理系統將包括通過系統總線直接地或間接地連接到若干存儲器單元的至少一臺處理器。存儲器單元可以包括在實際執行程序代碼期間所采用的本機存儲器、海量存儲器和高速緩沖存儲器,后者提供至少存儲某種程序代碼的臨時存儲,以便減少在執行期間必須從海量存儲器檢索代碼的次數。
輸入/輸出即I/O設備(包括但是不限于鍵盤、顯示器、定點設備等)可以直接地連接到系統,也可以通過插入的I/O控制器連接到系統。
網絡適配器也可以連接到系統,以使得數據處理系統能夠變為通過插入的私有或公共網絡連接到其他數據處理系統或者遠程打印機或存儲設備。調制解調器、電纜調制解調器和以太網卡僅僅是網絡適配器的一些當前可用的類型。
圖1表示了便于商業企業多種數據集成的平臺100。該平臺包括多個商務過程,其中每一個都可以包括多個不同計算機應用程序和數據源。該平臺可以包括幾個數據源102,它們可以是比如以上介紹的那些數據源。這些數據源可以包括來自天南海北的種類繁多的數據類型。例如,數據源包括的系統可以來自若干提供商,比如Sybase、Microsoft、Informix、Oracle、Inlomover、EMC、Trillium、First Logic、Siebel、PeopleSoft、IBM、Apache或Netscape。數據源102包括的系統可以使用若干數據庫產品或標準,比如IMS、DB2、ADABAS、VSAM、MD系列、UDB、XML、復合平面文件或FTP文件。數據源102可以包括若干應用程序創建或使用的文件,比如MicrosoftOutlook、Microsoft Word、Microsoft Excel、Microsoft Access,以及標準格式的文件,比如ASCII、CSV、GIF、TIF、PNG、PDF等。數據源102可以出自多個位置,它們也可以位于中心。從數據源102提供的數據可以以多種形式出現,并且具有彼此可以兼容或不兼容的不同格式。
數據目標在本說明書的后面討論。一般來說,這些數據目標可以是以上指出的任何數據源102。典型情況下,這種名稱差異表示數據系統在數據集成過程中是提供數據還是接收數據。不過應當承認,這種區別并不力圖傳達數據源和數據目標之間在能力上的任何差異(除非另外特別指出),因為在常規數據集成系統中,數據源可以接收數據,數據目標也可以提供數據。
圖1中所展示的平臺也包括數據集成系統104。例如該據集成系統可以便于從數據源102收集數據,作為數據集成系統104接收查詢或檢索命令的結果。數據集成系統104可以向一個或多個數據源102發送命令,以使得數據源向數據集成系統104提供數據。由于收到的數據可以有多種格式,包括變化的元數據,數據集成系統可以重新配置收到的數據,以便后面在集成處理中能夠聯合。以下將更詳細地介紹數據集成系統104可以執行的功能。
平臺100也包括幾個檢索系統108。檢索系統108可以包括數據庫或處理平臺,用于進一步處理從數據集成系統104傳遞的數據。例如,數據集成系統104可以凈化、聯合、變換或以其他方式處理它從數據源102收到的數據,以使得檢索系統108能夠使用處理后的數據產生對商家有用的報告110。報告110可以用于報告數據聯合、回答復雜的查詢、回答簡單的查詢,或者形成對商家和用戶有用的其他報告,并且可以包括原始數據、表格、圖表、圖形,以及來自檢索系統108的數據的任何其他表達。
平臺100也可以包括數據庫即數據庫管理系統112。數據庫112可以用于暫時地、臨時地或者永久地或長期地存儲信息。例如,數據集成系統104可以從一個或多個數據源102收集數據,并且把數據變換為彼此兼容或彼此可兼容聯合的形式。一旦數據被變換,數據集成系統104就可以在數據庫112中以分解的形式、聯合的形式或其他形式存儲數據,以用于后來檢索。
圖2是示意圖,顯示了跨越商業企業的多個實體和商務過程的數據集成。在所展示的實施例中,數據集成系統104便利了用戶界面系統202和數據源102之間的信息流。數據集成系統104可以從界面系統202接收查詢,其中查詢需要提取并有可能變換在一個或多個數據源102中駐留的數據。界面系統202可以包括與數據集成系統104通訊的任何設備或程序,比如便攜式或臺式計算機上運行的網絡瀏覽器、蜂窩網電話、個人數字助理(“PDA”)、聯網的平臺及其附著的設備,或者有可能與數據集成系統104接口的任何其他設備或系統。
例如,用戶可以操作PDA通過WiFi或者Wireless AccessProtocol/Wireless Markup Language(“WAP/WML”)接口向數據集成系統104提出信息請求。數據集成系統104可以接收該請求并且產生任何所需要的查詢,從網站或其他數據源102比如FTP文件地點訪問信息。可以提取來自數據源102的數據并且將其轉換為與提出請求的接口系統202(在這個實例中是PDA)兼容的格式,然后與該接口系統202通訊,使用戶觀察和操作。在另一個實施例中,所述數據可能先前已經從數據源提取了并存儲在分開的數據庫112中,它可能是由數據集成系統104所使用的數據倉庫或其他數據設施。該數據可能已經以變換后狀態或以其原始狀態存儲在數據庫112中。例如,該數據可能已經以變換后狀態存儲,以使得來自許多數據源102的數據能夠在另一個變換過程中聯合。例如,來自PDA的查詢可以傳輸到數據集成系統104,數據集成系統104可以從數據庫112中提取信息。提取后,數據集成系統104可以先將數據轉換為PDA兼容的聯合格式,再傳輸到PDA。
圖3是示意圖,顯示的架構用于為商業企業的多個數據源102提供數據集成。數據集成系統104的實施例可以包括發現數據階段302,有可能在其他過程之間執行從數據源提取數據,以及分析源數據的列值和表結構。發現數據階段302也可產生有關目標數據的表結構、關系和關鍵字的建議。更完善的概述和審查功能可以包括數據范圍確認、計算準確性、如果-則評估的準確性等。發現數據階段302可以規格化數據,比如消除源數據中的冗余依存關系和其他異常。發現數據階段302可以提供附加的功能,比如在數據源102之內挖掘例外以便進一步的分析,或者啟動主機數據的直接概述。在IBM的WebsphereProfileStge產品中可以找到發現數據階段302的商業實施例的非限制性實例。
數據集成系統104也可以包括數據準備階段304,在此階段對數據進行準備、標準化、匹配或其他處理,以產生后來將變換的優質數據。數據準備階段304可以執行一般的數據質量函數,比如在數據內協調非一致性或檢查正確的匹配(包括一對一匹配,一對多匹配和消除重復)。數據準備階段304還可以提供特定的數據增強功能。例如,數據準備階段304可以確保地址符合萬國郵政標準以改進際間通信。數據準備階段304可以使位置數據符合多國的地理編碼標準,以便進行空間信息管理。數據準備階段可以修改地址或添加內容以確保地址信息適合在政府批準的美國地址校正下的美國郵政服務郵費率折扣。類似的分析和數據修改可以提供給加拿大和澳大利亞的郵政系統,它為地址恰當的郵件提供折扣率。在IBM的Websphere QualityStge產品中可以找到數據準備階段304的商業實施例的非限制性實例。
數據集成系統也可以包括數據變換階段308,以變換、豐富和傳遞變換后的數據。數據變換階段308可以執行過渡服務,比如數據的重新組織和重新格式化,以及執行基于系統用戶的商業規則和算法的計算。數據變換階段308也可以把目標數據組織為子集,即數據市場或立方,在一定的分析環境中更好地調協數據處理。數據變換階段308可以采用若干橋接器、譯碼器或其他接口(如以下一般討論的),以復蓋數據集成系統104所使用的多種數據源和數據目標的多種軟件和硬件架構。數據變換階段308可以包括圖形用戶界面、命令行界面或這些的某種組合,以跨越平臺100設計數據集成作業。在IBM的Websphere DataStge產品中可以找到數據變換階段308的商業實施例的非限制性實例。
使用并行執行系統310或者以串行或組合的方式,可以執行數據集成系統104的階段302、304、308,以最優化系統104的性能。
數據集成系統104也可以包括元數據管理系統312,以管理與數據源102相關聯的元數據。一般來說,元數據管理系統312可以跨越數據集成環境中的全部工具提供元數據的互換、集成、管理和分析。例如,元數據管理系統312可以提供全異的數據源中數據的公共的、普遍可訪問的視圖,比如IBM的Websphere ODBC MetaBroker、CAERwin、IBM Websphere ProfileStage、IBM Websphere DataStage、IBM Websphere QualityStage、IBM DB2Cube視圖和CognosImpromptu。元數據管理系統312也可以為數據譜系提供分析工具以及對數據結構變化的影響分析。元數據管理系統312可以進一步用于為數據集成系統104內的數據準備數據定義、算法和商業環境的商業數據詞匯,其詞匯可以發表以在整個企業中使用。在IBM的Websphere MetaStge產品中可以找到元數據管理系統312的商業實施例的非限制性實例。
除非上下文另有指定或需求,否則術語“映射”是指在視圖、模型或模型事例之間使元數據和元-元數據相關的設計時間的活動,而“變換”是指對應的運行時間的活動。也應當注意,以下說明涉及元數據管理系統,其中原子數據項實際上是被模型化數據源的元數據。同樣,元數據管理系統之內的元數據實際上是描述這種元數據的元數據,也稱為元-元數據。進一步把元-元數據抽象為元-元-元數據也是可能的和適當的。為了避免混淆,以下命名法一般遵循數據、元數據、元-元數據層次,其中數據表示一個或多個數據源/目標的基礎數據。不過應當承認,偶而元數據可以簡單地指的是數據(由元數據管理系統所管理的數據),元-元數據往往對應地指的只是元數據,即從元數據管理系統內模型的觀點來看的元數據。更一般地說,從上下文來看,用途應當清楚。不過,在用途模糊之處,應當以最廣泛的可能意義進行解釋。
圖4顯示了元數據管理系統5202的架構,例如它可以是以上介紹的任何元數據管理系統或元數據設施312。元數據管理系統5202可以包括多個外部用戶5204,比如工具或客戶,通過多個視圖5208、知識庫5210與中心5206通訊,知識庫5210包括至少一個模型5212,它包括涉及模型5212的操作元數據的至少一個操作類5214,和/或涉及模型5216的設計元數據的至少一個設計類5216。為了與知識庫5210中的模型5212的交互,可以提供元數據服務5218。
用戶5204可以是以上介紹的接口系統202的任何一種,或者任何其他客戶設備、工具或軟件接口的其他程序,用戶可以通過它們運行查詢或以其他方式探查在數據庫中的數據。用戶5204可以使用視圖5208運行查詢,視圖5208適應由用戶5204所采用的數據模型與由中心5260所采用的數據模型之間的通訊。例如,視圖5208可以包括字段、數據類型、數據分級結構、數據關系、時間信息、數據源信息或用戶5202顯示數據或使用數據的方式相關的任何其他信息,以及向外部用戶5204提供的視圖5208中的數據模型和由中心5260內部采用的數據模型之間任何適宜的映射。盡管圖4僅僅展示了兩幅視圖5208,應當承認可以使用任何數量的視圖5208,在相同類型的外部用戶5204不止一個時,所述視圖5208可以是相同的視圖5208,而在外部用戶5204不同時,視圖5208可以是不同的視圖5208,或者可以是符合元數據管理系統處理能力的這些視圖5208的任何數量與組合。
也應當承認,外部用戶5202可以使用用戶5202獨特的數據或元數據,在中心5260內沒有對應部分。例如,Erwin設計工具使用Erwin獨特的對象“坐標”,描述對象在圖形“畫布”中出現之處。中心5260可以設計為通過以對用戶5202透明的方式,支持對中心模型的擴展而應付特殊的情況。作為選擇,視圖5208除了連接中心5260之外,也可以提供到適宜外部數據的直接映射,或者轉而提供該直接映射。
中心5206通常可以使用由數據主題或其商業環境所定義的數據模型5212。因而通常期望數據的中心模型在單一應用程序內不會頻繁變化。在對中心模型進行改變之處,可能需要對一幅或多幅視圖5208進行對應的更新。中心5260可以使用在知識庫5210內存儲的一個或多個模型5212與基礎數據(如針對企業數據的元數據)交互。雖然針對知識庫5210的設計類5216使用中心是用途廣泛的一種有用架構,但是應當承認,操作類5214典型情況下不會需要這樣的中心5260。更一般地說,本文介紹的元數據管理系統5202可以設計為沒有任何中心5260。這種架構可用于例如在多種視圖的設計模型之間具有很少的或根本沒有公共性之處。在這種情況下,針對元數據管理系統5202中多種視圖之間的通訊可以采用其他技術,比如動態地產生非持久的邏輯中心作為中央連接器。無論在元數據管理系統5202中是否采用了中央中心5260,本文介紹的系統的其他原理都是可適用的。
使用面向對象的技術可以在比如Eclipse和Eclipse ModelingFramework(“EMF”)的平臺中存儲和處理模型5212。模型5212可以包括元數據和到數據源和/或目標中相關結構的映射,以及任何其他有用的更抽象的元數據模型。模型的這些方面可以包含在持久存儲在知識庫5210之內的知識庫對象中。
知識庫5210可以存儲一個或多個模型5212,它們含有操作類5214和設計類5216。模型可以包括元數據、元-元數據、或者數據的任何其他有用的描述或功能特征。例如,模型5212可以包含用于重量的數值,以比如盎司為單位。如果系統用戶希望以英鎊指定重量實現新的數據源或集成以英鎊指定重量的現有數據源,可以把這種信息包括在模型5212中,以使得針對這些完全不同數據源的對應元數據能夠在中心5206之內一致對待,并且通過可以對數據提供不同透視(或相同的透視)的一個或多個視圖5208呈現給外部用戶5204。更一般地說,模型5212可以包含元數據管理系統期望的集成和任何其他用途有益的基礎數據和元數據有關的任何信息。模型5210能夠有效地捕捉有關數據以及它如何變化的信息,以在全企業或在企業之間實現數據用途的一致對待和可擴充。
在知識庫5210中創建模型5212時,它可以被自動地劃分到設計和操作組件中,雖然它們是一并和/或統一查詢,但是可以獨立管理。使用面向對象的技術,可以為模型5212存儲操作類5214,并且在若干類之間繼承任何適合的屬性、方法等。確切地說,操作類5214可以包含外部過程的模型操作方面,即提供運行結果的持久存儲。操作類5214可以被標注時間戳,或以其他方式標注以便唯一引用。應當承認,雖然Eclipse平臺是建立和維護本文介紹模型的一種有用工具,但是任何面向對象工具或技術都可以同樣地采用。在以下說明中,術語“屬性”一般將是指面向對象描述或其他類似描述的多種特征,比如通用置標語言(“UML”)類模型的元素,包括類、子類、包、包結構、屬性、屬性、方法、關系、繼承等。因此操作類、包結構等可以是操作屬性,作為本文所用的術語。
設計類5216也可以從模型5212列示并繼承所有的屬性、方法等。這些設計類5216內的信息也可以包括版本信息,以使得可以或者順序地或者以分支或者以其組合方式保留多個對象事例。用戶根據企業計算系統的需求和設計目標可以操作、編輯、更新或以其他方式控制和管理這些版本化的元數據對象。使用版本控制或類似的技術,這些設計類5216的元數據對象可以共享或者向各個用戶或團隊輸出。通常當嘗試不同設計,或者當基礎數據有變化時可以采用不同的版本。應當承認,在運行時可執行的文件創建之前,多種設計可以協調,分支合并。也應當承認,盡管如以上介紹EMF對知識庫5210內的模型類可以是有用的平臺,但是也可以采用任何類似的模型框架,比如對象管理集團公司的Meta-Obiect Facility。
企業計算系統可以包括數據集成系統104。企業計算系統也可以包括計算機、大型機、便攜式設備、數據源和其他設備的任何組合,通過一個或多個局域網本地連接,以及/或者通過一個或多個廣域網或公共網遠程連接,例如使用因特網之上的虛擬私有網。企業計算系統內的設備可以互連為單一企業計算系統,以共享數據、資源、通訊和信息技術管理。典型情況下,企業計算系統內的資源由通用實體使用,比如商家、協會或者政府實體或大學。不過,在一定的商業模式下,企業計算系統的資源可以被許多不同的實體所擁有(或租賃)和使用,比如在應用程序服務提供商對遠程執行應用程序提供請求式訪問的情況下。企業計算系統也可以包括多種工具,它們通過各自的轉換引擎(在基于橋接器的系統中可以是橋接器)訪問公共的數據結構,本文稱知識庫信息管理器(“RIM”)(以下也指“中心”)。RIM可以包括以上介紹的任何數據源102。工具通常包括例如各種類型的數據庫管理系統和訪問RIM中存儲的共享數據的其他應用程序。這些工具、RIM和轉換引擎可以在單一計算機系統上處理和保留,也可以在例如由網絡互連的許多計算機系統上處理和保留,該網絡在不同的組成部分之間傳遞數據訪問請求、轉換的數據訪問請求以及響應。
在這些工具執行的時候,可以產生數據訪問請求以啟動數據訪問操作,即從RIM中檢索數據或在RIM中存儲數據。可以采用以下將介紹的原子數據模型和格式在RIM中存儲數據。典型情況下,這些工具將觀看以各種不同特征數據模型和格式在RIM中所存儲的數據,如以下的介紹,而且每個轉換引擎在收到數據訪問請求后,將根據需要在各自工具的特征模型和格式與RIM的原子模型格式之間轉換數據。例如,在從RIM中檢索數據項的檢索類型的訪問操作期間,轉換引擎將識別RIM中的一個或多個原子數據項,它們共同地包括響應該訪問請求將被檢索的數據項,并且轉換引擎將使得RIM能夠向轉換引擎之一提供這些原子數據項。轉換引擎又將把它從RIM收到的原子數據項匯總為該工具的特征模型和格式所需要的一個或多個數據項,即數據的“視圖”,并且把匯總后的數據項提供給發布該訪問請求的工具。在更新RIM中數據的數據存儲期間,轉換引擎可以以工具之一的特征模型和格式接收要存儲的數據。轉換引擎可以把該數據轉換為用于RIM的原子模型和格式,并且把轉換后的數據提供給RIM進行存儲。如果數據存儲訪問請求使數據能夠被更新,RIM就可以以來自轉換引擎的新供給的數據取代當前的數據。相反,如果數據存儲訪問請求提供了新數據,RIM就可以以轉換引擎所提供的原子格式向在RIM中的當前數據添加該數據。
元數據服務5218可以用于創建、編輯、刪除或以其他方式操作知識庫5210中的對象、類5214、5216和模型5212,或者查詢和探查其中包含的模型5212和任何其他數據。服務5218可以通過用戶界面、命令行界面、程序界面或其他界面呈現給用戶。服務5218可以提供若干功能,比如版本劃分、分支排列、合并及知識庫5210內支持的任何其他操作。以下更詳細地介紹了這些操作的某一些。元數據服務5218也可以包括例如數據分析服務,比如影響分析(針對一種模型類型事例的改變如何影響模型中的其他類型事例)、操作分析(通過事件元數據反映的可執行對象的歷史)、數據譜系(在數據倉庫或跨越企業計算系統中數據移動的歷史)、版本挖掘(探查元數據對象的版本歷史)、對象差異(探查元數據對象之間的差異)以及對象合并(根據指定的規則組合相同類的兩個對象)。元數據服務5218也可以包括為變換元數據輸入和輸出若干服務,例如當元數據進入知識庫5210和/或出來時。元數據服務5218可以使用例如J2EE平臺實現,并且通過面向服務的架構比如SOA提供給用戶。同樣,知識庫5210內的事務處理可以使用例如J2EE應用服務器內的粒媒容器管理。應當承認,服務5218也可以作為用戶界面中的一個或多個工具提供給終端用戶。
應當注意,盡管以上介紹的功能(例如版本劃分、分支排列、版本挖掘等)主要針對元數據對象即元數據不同事例之內和之間的細節,但是這種對元數據管理的一般方式可以容易地被抽象化,以針對元模型的管理,即元-元數據管理或管理元數據模型的模型。
因此,本文介紹了元模型化工具,它們為定義元模型之間的映射而提供、為元模型產生界面以及便利元數據模型的實現和變換。提供元模型化工具時可以通過提供圖形用戶界面,以提供對許多有關功能的訪問。例如,界面提供的工具可以定義、確認、測試和分析元模型和映射,以及輸出元數據模型。界面提供的工具也可以用于對元模型、元模型映射以及任何通過元模型化工具產生的元數據模型的事例進行文檔編輯。元模型化工具有可能有效地用于例如部署新版本的企業模型。圖表,比如IBM Rational XDE的服務可以支持圖表化、模型化和映射。
元模型化工具可以部署為例如面向服務中的若干服務。元模型化工具可以為元數據模型提供中心化管理的映射規范,具有與以上討論的元數據工具一致的同步、版本化、歷史跟蹤和其他適合的能力。因此,盡管映射模型可以表示中心與視圖(或其他模型)之間的對象變換,但是來自這種元模型化透視的映射模型也可以或轉而表示不同元數據模型之間的映射,最終可以模型本身之間的變換中,比如升級到更新版本的元數據模型時。例如,元模型化工具可以提供與模型定義分離并松散耦合的獨立的規范語言,以允許開發控制和實現的靈活性。元模型化工具可以有益地提供對開發環境內的映射規范的動態瀏覽,并且可以提供以多種詳細級別自動產生文檔的工具。利用集成套裝的元模型化工具,可以開發對應的測試框架,以產生測試元數據并動態地執行映射,以使得能夠獲得即刻的結果并且加入到現行開發中。
為了維持模型的操作屬性和設計屬性之間概念上的分離,知識庫5210可以邏輯地和/或物理地分成兩個或多個知識庫,比如用于持久存儲設計類5216及屬性的通用知識庫(未顯示)和用于持久存儲操作類5214及屬性的操作知識庫(未顯示)。因此,當知識庫5210登記模型5212時,操作類5214可以持續在操作知識庫中,而設計類5216可以持續在通用知識庫中。使用類內的注解定義它們的關聯,可以區分一個物理或邏輯知識庫內的操作類和設計類。應當承認,其他技術也已公知,并且可以用于將模型的類分為操作方面和設計方面,或者提供邏輯上或物理上分開的操作和設計知識庫。例如,公共/操作的分離可以隱式地設計在模型的類結構內,也可以使清單或其他列表或者編程設備伴隨該模型,并且列出每個類或屬性與其適宜知識庫的關聯。無論如何實現,這種方案都可以有益地允許針對模型5212的設計和操作要素的持續進行不同的處理。例如,設計類5216可以由若干團隊的程序員開發和修改,因而需要穩健的版本區分能力和協調性。相反,操作類5214可能針對不同作業需要唯一標識,比如通過使用時間戳或其他唯一標識符。從而為每組類都可以定義適宜的服務,同時維持用戶能夠查詢、變換或以其他方式操作的單一模型。
圖5顯示了通過一個或多個視圖或模型與(元數據的)數據庫的通訊。服務5302、用戶界面5303或任何其他界面可以與數據庫5312通訊,它可以是以上介紹的任何數據源102,以便向數據庫5312提交查詢。通訊可以通過元數據模型進行,比如知識庫5304提供的視圖5308和中心5310,知識庫5304是比如以上介紹的知識庫5210。這些元數據模型可以包括關于數據的任何信息,比如字段、字段名、字段屬性、數據類型、數據層次、數據關系、臨時信息、數據源信息或者與結構、位置或數據使用有關的任何其他信息,或者關于這種數據的元數據(即元-元數據)。
服務5302可以產生的查詢使用服務5302固有數據的視圖,即具有服務5302所定義的結構和格式。這種查詢可以由服務5302建立,無須關于數據庫5312中數據結構的任何信息。知識庫5304向發出請求的服務5302提供的視圖5308可以被映射到中心5310,它向多個不同的視圖提供模型,包括接收該查詢的視圖5308,用于元數據的一致表達。中心5310又可以被映射到數據庫5312內部所使用的結構。通過利用視圖5308、中心5310和數據庫5312之間的映射信息,該查詢可以有益地轉換為使用數據庫5312固有的數據模型或語法的查詢。這可以導致顯著的性能優勢,因為該查詢能夠受益于對數據庫5312的任何優化或調整。作為進一步的優點,可以獨立地查詢映射信息,以研究對具體查詢5302的可能最優化。
相反,當創建可執行文件時其他現有技術“壓平”了元數據模型,使得該查詢必須面對整個數據庫執行,查詢結果再使用呈現給服務5302的視圖5308分析。實際上,來自數據庫5312的全部潛在相關對象必然在中心5310中例示,并且被變換到視圖5308內,這樣它們才能夠在內存中處理,以執行查詢。這就使內存承擔了顯著的負擔,并且失去了設計到數據庫5312內的所有性能優勢。通過使用模型之間的映射信息,把查詢自身轉換為數據庫5312的固有語法,只有查詢結果需要被例示和變換,以便向外部服務5302呈現。
同樣,用戶界面5303可以通過知識庫5304所提供的許多模型與數據庫5312通訊。用戶可以使用在用戶界面5303中數據表達所對應的結構和格式的字段,在用戶界面5303中創建查詢。視圖5308可以接收該查詢并使用任何可得到的映射信息將其轉換成對中心5310的查詢,并且再使用任何可得到的映射信息將其轉換成對數據庫5312的查詢,以便以數據庫5312固有的語法顯示整個查詢。
應當承認,盡管單一視圖5308顯示為既用于用戶界面5303也用于服務5302,但是每個都可以有其自己的觀察數據的外部模型,這些模型可以由知識庫5304保存和提供。查詢可以面對數據庫5312執行,產生的結果可以通過中心5310和視圖5308以用戶界面5303容易可用的形式返回。更一般地說,盡管圖5描繪了兩層結構,與數據集成系統的星型架構一致,但是彼此為任何相對關系的任何數量的元數據模型都可以受益于本文介紹的訪問數據庫的技術,只要涉及多種模型中元數據之間關系的映射信息可得到。
圖6顯示了知識庫服務5304,包括轉換引擎,它提供視圖5308和中心5310之間的元數據轉換服務。轉換引擎可以提供若干查詢在由不同模型和數據庫5312所用的多種固有的元數據結構之間的轉換,比如以上介紹的那些,以及模型之間若干對象的變換。所述轉換引擎或多個轉換引擎可以配備為知識庫5304內的服務,如圖6中的一般描述,其中可以登記和/或存儲轉換引擎。知識庫服務5304可以訪問轉換引擎,將該查詢轉換為中心5310的格式。雖然未顯示,但是在中心5310和數據庫5312之間也可以提供類似的轉換。更一般地說,轉換引擎可以從外部模型以多種查詢語言或程序語言接收查詢,并且使用針對各自模型和數據庫5312的可用映射信息,將查詢轉換成針對數據庫5312最優化的結構中的查詢。因此查詢通常可以以視圖5308(或其他模型)固有的術語表達,并且以數據庫5312固有的術語呈現給數據庫5312。
雖然轉換引擎是一種概念上的轉換查詢方法,如以上介紹,但是應當承認,也可以設計出其他方法并用于本文介紹的系統。一般來說,這些方法將受益于分開存儲系統使用的元數據模型之間的映射信息,以及到數據庫5312的任何映射。通過以轉換引擎或者某種其他工具或服務在運行時可訪問的形式保留映射信息,元數據管理系統可以實現顯著的性能成就。
圖7顯示的知識庫服務為多個外部服務5302提供了轉換引擎。服務5302可以是例如數據變換階段308、數據準備階段304、RTI服務2704、用戶界面或者可能對數據庫5312中的元數據執行查詢的任何其他服務或外部客戶。服務5302可以以視圖5308固有的語法向視圖5308提出查詢。轉換引擎可以把查詢轉換為中心5310固有的語法,它又可以轉換為使用數據庫5312固有語法的查詢。通過訪問轉換引擎把查詢結果轉換回服務5302固有的語法,查詢結果可以返回到服務5302。以這種方式服務5302與數據庫5312可以使用它們自己的固有語法高效地通訊。應當承認,本文為描述若干查詢而使用的術語“語法”是指任何語法、結構、格式、程序語言和/或界面,只要它們有可能用于表示若干查詢,可以是外部的比如對若干服務或數據庫,也可以是內部的比如在若干元數據模型之間。
圖8至圖10描繪了元數據模型可以如何被映射到關系數據庫中的模式以進行持久存儲。一般來說,可以使用面向對象的關系管理工具描述元數據模型。當這樣的元數據模型登記到知識庫時,比如通用知識庫和操作知識庫,使用以下討論的多種技術可以將內存中的模型映射到關系數據庫中的模式。這種策略尤其應服從使用比如ApacheObject/Relational Bridge(“OJB”)工具的管理,以保持面對關系數據庫的Java工具。作為顯著的優點,這種方法允許真正的設計靈活性,同時利用已面世的商業關系數據庫的高性能。參考以下圖8至圖10將介紹許多特定映射,它們可以有益地用于存儲元數據模型。
圖8描繪了元數據模型和關系數據庫之間的對應。元數據模型5602可以包括多個面向對象的類5604,它們定義了模型5602的多種屬性,比如關于元數據的信息,包括字段、字段名、字段屬性、數據類型、數據層次、數據關系、臨時信息、數據源信息或者與結構、位置或數據使用有關的任何其他信息。關系數據庫5608可以包括多個表5610,表示了用于物理上存儲模型5602的關系模式。模型5602和數據庫5608之間的映射,如一般地由圖中的垂直箭頭所描述,可以是通過模型5602中若干類5604到數據庫5608中若干表5610的一對一的映射。以這種方式,類5602的各個方面在若干表5608之一中都具有對應的方面,使得模型5602的結構在數據庫5608中被完全復制。從而能夠保留模型5602和數據庫5608之間概念上線性的轉換。這樣的表達通常提供更高的性能,并且可以在執行時被直接編譯,或易于預編譯;不過,對模型5602的改變可能需要整個數據庫5608的重建以及針對編譯版本的對應改變。
圖9顯示了元數據模型到關系數據庫的另一種映射。元數據模型5702可以是例如以上介紹的元數據模型5602。模型5702和數據庫5704之間的映射,如一般地由圖中的垂直箭頭所描述,可以是從模型5702內若干類的屬性到數據庫5704內若干表5706中若干項中。表5706可以組織為使一定的用途最優化,比如通過在分開的物理表中組織版本數據或運行時的人為現象,無論由模型5702所使用的面向對象的結構如何。這種方法有利地允許在普通的表結構內完全表達任意模型的特征。這種方法可以提高可擴展性,因為對模型5702的任何改變將僅需要對數據庫5702中受到影響的任何項進行更新,比如一兩行的更新,而沒有另外影響在表5706中所存儲的描述。一般說來,這表示了在為持久性而使用數據庫5704的相對高性能與模型5702與其持久形式之間映射的相對可擴展性之間的設計折衷。
圖10顯示了以上圖8和圖9中介紹的模型映射的組合。元數據模型5802可以是例如以上介紹的元數據模型5602。模型5802和數據庫5808之間的映射,如一般地由圖中的垂直箭頭所描述,可以部分地是從模型5802內的若干類5804直接到數據庫5808內的表5810,后者具有對應的結構,如以上參考圖8的介紹。模型5802可以由用戶修改,比如向類5804增加屬性5806。對數據庫5808中存儲的模型可以進行對應的改變,比如通過在普通表5814中記錄描述項5812,如以上參考圖9的介紹。因此模型的靜態部分可以被映射到更持久、固定的模式,而模型的非靜態即用戶可配置部分可以被映射到可擴展性的描述模式。以這種方式,存儲模型5802的關系模式可以是混合式的,它有利地組合了模型的相對固定部分的性能與模型的用戶可配置部分的可擴展性。
每個登記的模型都可以是持久的。當登記第一模型比如視圖時,該模型可以被傳遞到連同第二模型比如中心的登記過程以及第一模型到第二模型的映射。在第一模型的屬性能夠被映射到第二模型時,除了映射自身以外,不需要附加的持久性機構。不過,在第一模型的屬性不能夠被映射到第二模型時,為了保持未映射的屬性可以提供某種機構。應當承認,任何具體模型都可以未映射、部分映射或全部映射到另一個模型。在屬性需要持久性的那些事例中,即它們未被映射到現有模型時,就可以采用以上參考圖8至圖10所介紹的用于可擴展模型的一切技術,以提供模型持久性的存儲機制。確切地說,最普通的表形式通過許多設計周期可以提供所期望的持久機構,同時通過為模型未映射的部分復制類結構,可以有利地部署運行時的模型。
應當進一步承認,以上介紹的普通結構可以為若干可擴展模型提供反身存儲機制。該存儲機制可以“理解”其環境,并可以尋找模型描述,為一切對象確定有關的類、屬性、映射等。這些反身能力可以用于提供更高級別的設計環境,其中模式比如以上介紹的普通表格式能夠以容納擴展的方式保持模型屬性。
圖11描繪了向外部元數據揭示多個內部服務的架構。在一定的事例中,元數據可以駐留在由本文介紹的元數據管理系統所管理的元數據模型之外,比如在若干分開的企業或若干企業應用程序之間共享數據的情況下。訪問這樣的外部元數據的架構可以包括具有第一視圖5904的外部元數據5902、中心5906以及通向多個內部服務5910的第二視圖5908。
元數據管理系統可以提供外部元數據5902的第一視圖5904,它又可以連接到中心5906,以便為外部元數據5902提供公共的內部模型。若干內部服務5910可以類似地通過它們自身的元數據視圖——第二視圖5908——被映射到中心5906。通過執行互連的模型5904、5906、5908,內部服務5910以內部服務5910固有的形式可以訪問外部元數據5902。內部服務5910又可以被部署在面向服務的架構中,以提供對外部元數據5902的訪問,作為元數據管理系統之內的、或者更廣義地遍及全企業的服務。
圖12描述映射模型驅動的元數據變換,使用解釋的映射在若干模型比如視圖和中心之間進行轉換。元數據管理系統6000可以包括中心6002、一個或多個轉換引擎6004以及一個或多個視圖6006、6008。轉換引擎6004可以包括映射模型6010,特征為中心6002和視圖6006、6008之間的一個或多個映射。當收到請求時,可以解釋這些模型,使用映射模型6010確定應當如何把對象的事例表示給請求者。模型6010可以以多種形式表示,包括作為模型(如數據結構,比如Java類或EMF對象或事例),它可以提供更高的設計靈活性,或者作為編譯后的代碼,它可以向轉換引擎6004提供更高的執行效率,或者作為解釋的代碼。更一般地說,單一模型至模型的映射即映射模型6010可以例示在任何數量的不同轉換引擎6004中。同時,不同的轉換引擎6004可以例示任何數量的不同映射模型6010,以任何數量的形式,范圍從抽象模型到編譯后的代碼。映射模型6010可以登記在轉換引擎6004的轉換登記處(未顯示),以提供公共訪問和一致性。
在現有系統中,視圖至中心的映射典型情況下產生為靜態映射,一旦被部署就不會改變。通過把視圖6006、6008和從視圖至中心的映射6010視為模型,當元數據事例從視圖移動至中心時可以直接地解釋映射,反之亦然。視圖可以在內部被表示為例如Java類、Java代碼或者基礎模型的某種解釋。同樣,映射也能夠以多種形式解釋,比如Java代碼、Jython(基于Java的腳本)等。當收到請求時,該請求可以被視圖模型、映射模型和中心模型所參數化。模型驅動的轉換引擎能夠接收以模型之一表示的對象,并返回以另一種模型表示的對象。
例如,中心可以是使用解釋的Java代碼所訪問的面向對象的構造。同樣,可以利用Java或某種其他的解釋程序語言解釋視圖6006、6008。轉換引擎6004可以使用中心6002和視圖6006、6008之間的元數據模型映射,在中心和視圖6006、6008之間移動若干請求和對象事例。可以通過用戶手工操作,或者響應在一個或多個元數據模型或對象中的變化而自動地(或手工地)動態地修改轉換引擎6004。
應當承認,無論是解釋的、編譯的或以其他方式執行的,解釋/執行模型的軟件或軟件引擎都可以是同步的或異步的。在異步環境中,對模型的訪問是通過消息服務或其他異步技術。在同步環境中,通過對引擎的應用程序編程接口或其他同步接口可以對引擎進行直接地調用。
圖13顯示了與元數據環境的交互。模型6102可以被表示為無版本的類6104(存儲在操作知識庫中)和版本化的類6106(存儲在通用知識庫中)。為了與模型交互,可以為用戶6110提供用戶元數據環境6108。在以下說明中使用的“環境”是指基礎模型數據和用于模型或元數據的其他上下文信息,一位或多位用戶6110觀察和變換它們時可以通過觀察、查詢和操作模型和模型數據的一切適當的圖形用戶界面、命令行界面或其他編程界面,包括存儲的模型和元數據事例,無論存儲在易失性或非易失性存儲器中還是在兩者中都有,并且包括其操作屬性和設計屬性,以上一切數據的一切版本概不例外。盡管普通術語“環境”(或“用戶環境”)試圖泛指一切模型上下文,一位或多位用戶通過它有可能與元數據交互,但是如以下介紹,有幾種環境是特別期望的。以下若干實例并不限制本文介紹的系統可能有效地采用的用戶環境的數量和多樣性。
例如,模型6102可以是以上介紹的任何視圖或中心,或者任何其他元數據模型。該模型可以包括若干操作類和屬性,以及若干設計屬性和類。如以上指出,根據各種模型類的目的,模型6102可以存儲在兩個不同的知識庫中。因此操作知識庫可以被配置為存儲使用模型所執行的作業的元數據結果,而通用知識庫可以被配置為支持協同和迭代的設計過程。應當承認,操作知識庫和通用知識庫可以被物理地和/或邏輯地分離,每個都部分地由其中存儲的模型類子集所定義,部分地由訪問每個所用的若干服務和方法所定義。
用戶6110可以以多種不同的模式與元數據環境6108交互,比如工作空間或組空間。工作空間也稱為沙盒,可以在無版本環境中向模型提供動態的編輯,其中例如元數據對若干設計屬性的變化或者保存為新模型,或者蓋寫到現有模型。工作空間可以在用戶計算機上本地地存在,或者在用戶可以與元數據交互的服務器上遠程地存在。典型情況下,把模型放在工作空間會對其他潛在用戶鎖住該模型。不過,工作空間也可以提供共享使用,以使得不止一個用戶可以編輯該工作空間并保存變化。組空間可以提供版本劃分,以使得可以對多個版本進行檢出(check out)、檢入(check in)、分支排列等。
更一般地說,組空間可以為以上討論的所有元數據版本劃分能力提供元數據環境。例如,版本化的元數據環境可以支持元數據的版本劃分,由各個用戶創建或編輯。因此,版本化的元數據環境的用戶可以檢出模型并將該模型檢入回去作為新的版本。因此,雖然工作空間可以允許協同編輯,然而組空間卻可以實現在版本控制下的元數據協同和/或順序編輯。
用戶界面也可以提供對事件空間的訪問,它是與以上介紹的操作屬性和/或操作知識庫相關聯的元數據環境6108。
用戶環境6108也可以是或包括聯合用戶環境,為跨越全企業的許多知識庫提供中心化的全局環境。聯合用戶環境可以提供不同知識庫的公共視圖,或者可以分開地表示每個知識庫。
用戶6110可以是例如通過圖形或命令行界面與元數據環境6108交互的用戶人員,或者訪問知識庫中元數據模型的程序或服務,比如以上介紹的發現數據階段302、數據準備階段304或數據變換階段308。
圖14描繪了通用知識庫6202,存儲著元數據6204的多個版本。元數據6204可以是例如以上討論的用于視圖和中心的元數據。元數據數據庫6206可以是以上介紹的任何數據源102。每個版本的元數據6204都可以提供不同的、但是相關的元數據版本,存儲在元數據數據庫6206中。元數據6204的若干版本可以由例如從事數據集成項目的開發團隊創建,并使用數據庫6206中存儲的若干事例和其他內容進行對比。
圖15描繪了通用知識庫,包含多個對象版本6304,它表現了元數據數據庫6306中存儲的元數據特征,全部如以上的一般介紹。客戶6308可以與對象版本6304交互,或者直接進行,或者在以上介紹的用戶環境之一中,并且可以執行以上一般介紹的一切設計操作。這可以包括比如元數據模型的動態比較、挖掘、編輯、測試以及任何其他適合的功能。客戶也可以使用通用知識庫6302和對象版本6304探查在元數據數據庫6306中的基礎數據。
圖16A描繪了使版本化的元數據對象的協調。通用知識庫6402和版本化的對象6404可以是以上介紹的通用知識庫6302和版本化的對象6304。版本的協調在設計周期的各個位置都可能是所期望的,并且在典型情況下是釋放可執行模型是所要求的。將若干版本化的對象6404協調為單一事例6408可以通過協調過程6406控制。有許多公知技術可以用于自動的、半自動的和手工的協調。一般來說,以本文介紹的系統可以使用任何這樣的技術。協調過程6406可以有利地保留為了協調單一事例6408的完全版本歷史和協調譜系,以允許對協調過程6406的修改,返回到任何先前未協調的狀態,或者探查源元數據和協調譜系。在協調期間比如合并中解決了元數據中的直接沖突時,可以恢復先前的屬性值,以用于分支和多種版本的替代協調。
圖16B描繪了跨越若干協調區的分段協調過程。為了為元數據的若干事例管理復雜的協調過程和保持準確的協調譜系,可以提供若干協調區。在討論圖16B的協調區之前,先指出元數據事例的某些有用屬性。
在企業中的每個元數據事例都可以具有相關聯的協調區屬性,它定義了該事例與協調區的關聯。協調區可以由協調過程的設計者選擇,以反映例如數據的組成機構分離,比如人力資源、會計、財務、存貨、制造、工資單、工程等。協調區可以是關于地理的,以適合數據和企業的任何粒度程度,比如國家、區域、州、鄉鎮、建筑、設施等。協調區可以是歷史上的或建筑上的以便于分開,例如傳統系統與新系統、雇員臺式電腦與主機、顧問與雇員。協調區可以反映將商家組織為若干部門或其他小組,比如消費產品、原始設備制造、產品、零售業務、電子商務業務等,或者更一般地分為制造和零售。同樣,可以為公司取得的或者從公司分離的新商業單元提供若干協調區。
對每個協調區,關于優先權、例外、聯合等都可以定義任何數量的協調規則。協調的技術眾所周知,并且根據協調規則,為了協調在協調區中的元數據事例,可以有效地采用所有這些技術。協調區可以進一步定義匹配類型,它定義了協調結果是如何在引用事例的模型中傳播,比如沒有匹配(刪除了副本)、視圖匹配(在視圖級別保持版本)、以及/或者額外視圖匹配(在中心級別保持版本)。
對象的每個事例也可以具有標識符,唯一地標識協調區內的對象。每一項都能夠根據各種上下文或層次描述,比如捕捉這些項的語義上下文。該項可以是對象、類、屬性、數據項、數據模型、元數據模型、模型、定義、標識、結構、語言、映射、關系、事例或者其他項或觀念,包括另一個語義標識符。語義標識符識別該項時可以根據該項的屬性、該項的物理位置、該項與一個或多個其他項的關系比如所在的層次等。在某些情況下,關系可以定義為沒有某種具體關系。關系可以基于語義。關系可以包含該項在關系層次中的位置。例如,該項可以基于該項與其他關聯項的關系而識別,并且可以直接地與另一項關聯、間接地與另一項關聯,以及/或者通過一個或多個其他項間接地與另一項關聯。關系可以被鏈接或遞推地定義,除靜態標識符之外,還允許動態標識符。例如,如果兩項之間的關系改變了,收編這兩項之一的另一項的語義標識符也會收編兩項之間的改變后的關系。
作為更具體的實例,項Jim可以被標識為Jim,居住在美國某州某城某路111號,電話號碼555-555-5555,社會保險號012-34-5678。作為替代,Jim可以根據他與其他人的關系標識。Jim可以被標識為Betty的兒子、Larry和Jeff的哥哥、Jessica的父親和Frank的外甥。
語義標識符可以是項的唯一標識符。在以上實例中,如果世界上僅有一個這樣的Jim,他是Betty的兒子、Larry和Jeff的哥哥、Jessica的父親和Frank的外甥,這個語義標識符可能是用于Jim的唯一標識符。針對項的唯一語義標識符所考慮的關系有可能少于該項與其他項的全部關系。要是世界上僅有一個這樣的Jim,他是Betty的兒子、Larry的哥哥和Jessica的父親,僅僅這些關系的存在將足以創建唯一語義標識符。Jim與Jeff和Frank的關系將不必考慮。創建基于保證唯一性的最少數量關系的語義標識符可以是有利的。例如,如果語義標識符存儲在數據庫112中或者由數據集成系統104處理,不太復雜的語義標識符將需要的空間更少而且允許處理得更快。
為某項創建唯一語義標識符所必須的關系數量可以隨上下文而變。例如,在上下文——上下文A之內通過項1與兩個附加項——項3和項4的關系,可以區別第一項——項1和第二項——項2。也就是說,在上下文A中,項1的唯一語義標識符可以是它直接地與項3和項4關聯,并且通過項3和項4與任何數量的其他項間接地關聯。在不同的上下文——上下文B中,項1可以通過它與項3(但是也許不是項4)的關系,以及它與另一項——項5的關系及與項6沒有關系被唯一地識別。因此,在本文介紹的數據集成方法和系統的實施例中,項的語義標識符,比如涉及數據集成作業或數據集成平臺的項,可以用該項的依賴于上下文的標識符所提供。在實施例中,這種依賴于上下文的標識符可以以原子格式存儲,比如在數據知識庫中。
上下文A和上下文B可以是兩個不同的輸入、映射、運行版本、模型、元代理模型、事例、工具、視圖、對象、類、項、關系、屬性或者上述所有的任何聯合。協調或比較設施可以比較在不同輸入、運行版本、模型、元代理模型、事例、工具和/或若干項中項標識的值和/或語義,并且根據該比較結果,判斷或幫助確定采取什么動作,或者制止什么動作。例如,協調引擎可以比較輸入事例A所使用的模型和元代理B所使用的模型。根據這種比較結果,可以決定元代理B能夠訪問輸入事例A的數據和元數據,無須變換或修改,并且該比較設施可以指揮元代理B繼續運行。在另一個實例中,可以將工具A與工具B進行比較,而且可以確定執行跨工具對象的合并,其中每種工具都能夠訪問其他工具的對象。在若干實施例中協調設施可以觸發轉換設施從而幫助跨工具對象的合并,比如創建橋、元代理、中心等,以轉換需要轉換的任何對象,比如基于不同語法而處理在每個各自工具中具體項標識的轉換,或者基于工具之間的其他差異的轉換,由比較結果所確定。
在若干實施例中存儲、保留、記錄、處理和/或解釋語義標識符所依照的語法,可以以字符串的結構或格式存儲、保留、記錄、處理和/或解釋。例如語法可以是列名::表名::數據庫名。這種語法可以關系到例如標識數據庫中表的列的語義標識符。以這種語法組成的字符串可以是年齡::雇員::雇員數據庫。這個字符串可以關系到例如標識在具體雇員數據庫中雇員年齡的語義標識符。在(以上實例)上下文A中,項1的語義標識符所對應的字符串可以是與項3的直接關系::與項4的直接關系。語義標識符和對應的字符串還可以包括項1和項5之間缺乏直接關系,比如出現在上述上下文B中的情況。
可以對語法字符串進行語法分析。可以截斷、修改語法和/或字符串,以及/或者可以重新排序語法和/或字符串的元素。轉換引擎可以執行截斷、修改和/或重新排序。當語義標識符的唯一性不需要語法和/或字符串中包括的全部關系時,截斷語法和/或字符串可能是有益的。假設在語法字符串的給定上下文中,所有的項都與項3直接有關;例如項3是數據庫,其中存儲了所有這些項。就可以截斷語法字符串,比如創建省略涉及項3關系的字符串,而仍然保持唯一的語義標識符。截斷語法和/或字符串可以減少存儲需求,提高處理效率。改變語法和/或字符串中的關系順序也可能是有益的,例如減少了數據集成過程的處理時間。如果首先處理的公共關系較少,為了識別該項系統將很有可能需要訪問和處理的與該項相關聯的關系也很少。例如,如果涉及項3的項非常少,涉及項4的項更少,而涉及項2的項很多,取決于上下文,一個語法字符串可以允許識別項9的時間短于另一個語法字符串。在一個上下文中唯一地標識某項有可能僅僅需要語法字符串的一定元素,而在另一個上下文中卻需要語法字符串的全部元素。
協調引擎可以使用元數據事例的標識以及定義協調規則的協調區和一切匹配類型規范,對元數據事例執行協調。協調操作可以采用語義標識符唯一地識別協調區內的事例,并且可以轉換或以其他方式修改另一個協調區中被協調事例的語義標識符的格式、語言和/或數據模型。協調操作可以包括往來于一個或多個數據工具、語言、格式和/或數據模型往來于至少一種其他數據工具、語言、格式和/或數據模型的協調或映射。例如,協調操作可以包括往來于或者若干已知數據集成工具之間的協調或映射,比如IBM的WebSphere DataStage 7、IBM的WebSphere QualityStage、Business Object工具、IBM-DB2 CubeViews、UML 1.1、UML 1.3、ERStudio、IBM的WebSphereProfileStage、PowerDesigner(具有對Packages和Extended Attributes的附加支持)和/或MicroStratege工具。協調引擎和/或協調操作可以選擇性地體現在元代理中。可以按照批量、實時和/或連續原理運行、執行和/或實施協調操作。可以作為服務,例如作為面向對象服務架構的一部分提供協調操作,或者使之可用。
對于語義標識符、數據庫112、包括一個或多個語義標識符的數據庫112、信息系統、包括一個或多個語義標識符的信息系統或其他項,協調操作一旦存在,它就能夠被協調往來于、映射到、鏈接到、用于或關聯到共享至少一項協調操作的一切其他語義標識符、數據庫112、包括一個或多個語義標識符的數據庫112、信息系統、包括一個或多個語義標識符的信息系統或其他項。在若干實施例中,比如使用原子數據知識庫作為轉換操作的中心,協調操作的映射能夠在若干其他行為之間,根據在原始語義上下文和轉換的語義上下文之間向后和向前執行的操作跟蹤協調。取決于上下文,數據項的適當標識符可以改變,比如通過改變或截斷語法和/或字符串以使存儲能夠更高效或處理能夠更快,或者通過改變語義上下文改變時形成唯一標識符所使用的關系。因此,動態標識符可以聯合可退回協調的益處以及在使用數據項的多種上下文中快速處理、高效率數據處理和有效操作的益處。
圖16B描繪了若干協調區。一般來說,元數據對象或項在其自己的數據星座內被唯一地標識,不過,協調過程也必須通過可以聯合來自不同數據源之對象的不同事例的協調過程管理標識。可以為來自許多數據源的元數據定義許多協調區6450-6458。例如,圖16B左側的協調區6450-6454可以是來自企業各種單元的源數據,比如公司的部門或分立數據庫。使用以上介紹的技術,為6450-6454這些數據源協調區在每一個中的每個元數據事例都可以定義協調區、規則、匹配類型和標識符。根據協調規則,協調引擎可以把來自兩個協調區(如協調區6450和6452)的數據協調到新的協調區6456內,其中每項都被唯一地標識,并且表示來自源協調區元數據事例的協調后版本。這種新的協調區6456又可以與一個或多個其他協調區(如協調6454)進行協調,以提供另一個協調區6458,表示企業內元數據事例的完全協調。與此同時,任何協調區在其自身和數據源之間都可以具有一個或多個協調區,以便在將其引入具體協調區之前,更精細地協調來自一個或多個數據源的元數據。因此,圖16B的模式可以以任何方式重復、變更和/或擴充,以完成一切任意的模式或流程的元數據事例協調。
作為具體實例,第一協調區6450可能表示人力資源的元數據,可以包括所有新雇員的起薪。第二協調區6452可能表示工資單數據,包括全體雇員周薪信息。用戶比如在公司會計部門中的某個人,可以把這些協調區協調到新協調區6456內以跟蹤工資信息。為了準確和一致,可以分析這個協調區6456內的元數據,并且可以進行修改直到獲得滿意的協調結果。另一個協調區6454可能表示公司財務數據庫的元數據。財務數據庫可以包括公司的全部財務數據,包括公司工資費用的元數據。這種數據可以表現為具有高質量的特點,并且可以被審計或在公司的其他領域內以其他方式使用。設計協調規則時可以遵從關于數據質量的一切信息,比如在的一種數據源表示由已知具有低質量保證標準外部承包商所準備的編制,而另一種數據源卻表示來自公司內受過良好培訓和監督雇員的數據項。來自這個協調區6454的元數據可以與來自另一個協調區6458中的另一個協調區6454的工資元數據進行協調,協調區6458包含的元數據表示公司內員工工資的完全集成的視圖。為了進一步擴展本實例,圖16B的所有協調區6450-6458可以特定到具體部門,并且可以與來自其他具體部門或來自具體收獲的集成協調區進一步集成。同樣,來自不同具體部門、地理位置、子公司、功能商務單位等的數據也可以使用以上介紹的分段協調順序地集成。
應當承認,從以上介紹的分段協調過程產生了許多顯著優點。一個優點是協調譜系的保存。在復雜的數據集成環境中,很有可能存在元數據的多個源,包括分層文件、平面文件、聯合數據源等。在這種環境中,跟蹤集成和協調的過程以及保持沿著該路徑反向協調步驟的能力可能都重要。由以上介紹的技術所提供的協調譜系允許完全地審計、檢查和修改協調譜系,并且為完全協調的模型中的每個元數據事例都提供了通向原始數據源的規定通路。
作為另一個優點,分段協調提供了集成模型中數據源的可見性。例如,分析師和管理人可以使用圖16B的完全協調區6458作為商業分析工具的元數據模型。在基于分析工具形成商業決策以前,檢驗數據資源及其質量可能是有益的,甚至是必須的。作為另一個實例,商業決策可能需要數據的具體視圖。對上門推銷活動來說,地址的街道名稱可能是關鍵的,而對郵遞活動而言郵政編碼可能是重要的。不同的數據源可以以不同的詳細程度和不同的準確程度攜帶相關信息。適當時可以檢查和修改協調過程,以便為設計推銷活動表示元數據在分析工具中所期望的最佳視圖。繼續這個實例,一種數據資源可以定義非常精細和很準確的地址,但不需經常更新,例如兩年一次或在收到信息時間歇地更新。另一種數據資源可以包含極其新近的信息(比如電話號列表),包括街道地址但是沒有郵政編碼。對集成的企業數據模型通過檢驗協調譜系,管理人可以認識到只有郵政編碼事例有可能過時,從而重新設計協調過程(或選擇性地,集成數據模型本身),以便合成來自街道地址的最新郵政編碼。
作為再一個優點,分段協調提供了從集成視圖向數據資源上行傳播協調和修改的能力。這可以根本改進來自企業內部原始數據源的元數據和數據的數據結構和質量。
以上的一般方法在高度異類的數據環境中可以具有具體的用途。例如,在復雜的具體環境中,許多分立組比如制造、會計、人力資源和工程,每個都可以保留單獨的數據倉庫,其中具有專門針對該組的寬陣列的數據庫。在這種環境中,可以有利地使用數據集成,以容許改進商業智能的方式集成單獨的數據庫。集成可以是組內縱向的,比如將若干數據庫集成為該組的綜合性元數據模型,集成也可以是橫向跨組的,比如將來自每個組的工資單集成為綜合性工資單元數據模型。完整的公司范圍數據集成可以包括組內集成的交替步驟和跨組集成。
圖17描繪了版本化元數據對象的協調。通用知識庫6502、版本化對象6504、協調過程6506和協調后的單一對象事例6508都可以如同參考以上附圖所介紹的。此外,每個對象版本6504和單一事例6508是指元數據數據庫6510中存儲的元數據。應當承認,在元數據數據庫6510中的元數據可以變化,或者是由于獨立于模型的變化(如公司希望跟蹤存貨的新的附加特征時,或在某種數據集成作業的影響下),或者是由于對元數據的改變(如為商業分析目的向模型加入了某個數字的五日移動平均值)。因此所期望的可能是按照元數據對象的版本劃分元數據數據庫6510或以其他方式保留對元數據改變的歷史。利用這種附加信息,用戶對元數據的各版本就具有向后和向前移動的完全靈活性。
圖18顯示了在元數據過程中使用并發的實例。在這個實例中,在協調過程6604中協調了多個元數據事例6602。在協調期間,大量的元數據可能需要被合并或蓋寫,以創建元數據模型的協調后版本。改進該過程可以通過將協調過程6604構建為若干獨立過程對象,它們可以流入各個處理器6606進行獨立的或管道式執行。獨立過程對象可以流入包含多個處理器6606的單一硬件設備6608,也可以流入不同的硬件設備6610、6608,也可以流入通過網絡可用的任何其他處理器或處理器組。
并發和并行處理的相關概念在本領域中眾所周知,所以這里不必詳細介紹。一般來說,并發和并行機制適應的情況是過程能夠分成主要是自引用對象組件的“程序塊”,也稱為子圖(指對象依賴關系的有向圖),能夠獨立地或在管道中處理。協調過程可以容易地被模型化為管道用于并發執行。例如,該過程可以包括向來自新元數據源的對象流分配標識的任務、從先前元數據源取來潛在沖突候選者的任務、進行協調的任務、將協調結果合并到元數據對象的輸出集的任務以及存儲合并后元數據對象的任務。其他元數據過程也可以適于并發,比如元數據的引入。
以下附圖介紹了與元數據管理相關聯的幾種方法。應當承認,這些過程可以由硬件、軟件或它們的某種組合實現。這些過程可以在一臺或多臺微處理器、微控制器、嵌入式微控制器、可編程數字信號處理器或其他可編程設備實現,連同存儲程序指令、程序數據和程序輸出或其他中間或最終結果的內部和/外部存儲器。應當進一步承認,這些過程可以作為計算機可執行代碼實現,使用結構化編程語言比如C、面向對象的編程語言比如C++或Java或者其他高級或低級的任何編程語言而創建,編譯或解釋后運行在硬件和軟件平臺的任何同類或異類組上,平臺包括計算機、網絡或者其組合。該過程也可以采用各種各樣的工具、平臺和架構,以實現可伸縮的企業元數據管理系統。盡管以上提供了軟件平臺的若干特定實例,但是也存在著其他平臺和技術并且可以有利地用于本文介紹的系統。
圖19是從用戶界面6702到元數據數據庫6712的查詢過程中涉及實體的圖示。查詢可以在用戶界面6702處開始,用戶在那里以用戶界面固有的語法準備查詢。該查詢可以被傳遞到元數據模型6704,比如視圖。轉換引擎6708或描述第一元數據模型6704比如視圖與第二元數據模型比如中心之間映射的映射信息的應用程序又可以轉換該查詢。中心6710可以使用附加的轉換或映射步驟將轉換后的查詢傳遞到數據庫6712,以將基于中心的查詢轉變為數據庫6712固有語法中的查詢。通過多種實體和任何適合的轉換可以將該結果傳遞給原始發布該查詢的用戶界面6702。
圖20顯示了從元數據模型擴充元數據數據庫過程中涉及的實體。用戶可以使用適當的編輯界面向視圖6802加入屬性等。轉換引擎可以更新,以便在視圖模型6802和中心6804之間轉換元數據。雖然星型模型的中心6804通常以一致的形式維護,但是中心6804也可以被更新,取決于對視圖6802變化的屬性和為此的原因。此外,轉換引擎也可以更新,用于該中心和數據庫6808之間的轉換。數據模型6804和/或轉換引擎也可以使用適合的數據庫專用命令向數據庫6808加入適合的行、列或表,以適應反映數據庫6808內的新視圖6802。如果對數據庫6808進行了改變,這些改變可以通過模型鏈被推回到視圖6802。
圖21顯示了從工具6902訪問知識庫6910過程中涉及的實體。工具6902可以是依據視圖6904而通訊的第三方工具。工具6902可以通過視圖6904請求映射后的元數據,由轉換引擎可以將其轉換為中心6908的形式。該中心可以通過另一個轉換引擎進一步轉換該請求,以對知識庫6910中的映射后數據進行物理訪問。因此該請求可以通過一連串的查詢變換到達知識庫。結果為一個或多個元數據對象,又可以通過許多轉換或變換引擎傳遞,如從知識庫6910移動到中心6908,到視圖6904,最后到提出請求的工具6902。因此在一方面存在著從外部工具訪問知識庫的方法,可以包括通過一個或多個模型將查詢變換到知識庫,并提供一個或多個對象,比如通過從知識庫6910到工具6902的一個或多個對象變換的映射后元數據。優選情況下,這種方法以知識庫固有的語法向知識庫6910呈現查詢,同時以工具6902固有的語法向外部工具6902呈現結果。
圖22顯示了工具訪問版本化和非版本化元數據模型過程中涉及的實體。工具7002可以與用戶環境7004通訊,它可以是例如以上所介紹的事件用戶環境、團隊用戶環境或工作用戶環境。用戶環境7004可以實施為Java空間或適合使用元數據工具的任何其他框架或平臺。根據用戶環境7004的類型和工具7002的屬性以及在用戶環境7004中所執行的操作,用戶環境可以與非版本化模型7008即操作知識庫中的操作類和屬性進行通訊,或可以與版本化模型7010即通用知識庫中的設計類和屬性進行通訊。在用戶環境中可見的元數據模型可以被編輯并且寫回到版本化模型7010,或者作為對現有版本的替換或者作為元數據模型的新版本。應當承認,如果版本化元數據7010已經被另一個工具或用戶檢出,可以防止工具7002檢出通用知識庫中的版本化元數據7010。
圖23顯示了用戶界面訪問通用知識庫中多版本元數據過程中涉及的實體。用戶界面7102可以向通用知識庫7104發布訪問元數據的一個或多個版本7108的請求,并且可以進一步查詢通用知識庫7104關于元數據的其他版本以及多種版本之間變化的屬性和按時間記錄。
圖24顯示了元數據版本的協調過程中涉及的實體。版本7202可以通過協調過程7212與另一版本7204協調。利用另外的協調過程7214、7218可以對兩個或多個其他版本7208、7210執行類似的協調。在每個協調之后或在所有的協調之后,可以把協調后版本合并為元數據新版本,以反映從先前版本的變化。這種協調可以在若干階段中執行,或者一次全部完成,可以對協調沖突、協調順序等選擇性地實行用戶控制。
圖25顯示了在協調過程中使用并發所涉及的實體。該協調過程可以是以上介紹的協調過程,只不過每個分立的協調都可以獨立地傳遞到多個處理器7304——它們可以在群集7302中也可以彼此物理遠離,并且以管道或并行方式執行,取決于每個協調階段之間依存關系的屬性。
盡管已經連同一定的優選實施例介紹了本發明,但是應當理解,本領域的普通技術人員會認可其他實施例,以及它們落在本公開的范圍之內。
權利要求
1.一種方法,包括向知識庫登記元數據模型;將第一存儲機制與所述元數據模型的一個或多個設計屬性相關聯;以及將第二存儲機制與所述元數據模型的一個或多個操作屬性相關聯,其中所述第二存儲機制為所述元數據模型的所述一個或多個操作屬性中的至少一個存儲時間戳。
2.根據權利要求1的方法,其中,所述第一存儲機制是版本化的存儲機制,它存儲所述元數據模型的所述一個或多個設計屬性中的至少一個的一個或多個版本。
3.根據權利要求1的方法,進一步包括注解所述元數據模型的所述一個或多個設計屬性和所述一個或多個操作屬性,以便將它們與或者所述第一存儲機制或者所述第二存儲機制相關聯。
4.根據權利要求1的方法,進一步包括提供包結構,以在所述第一存儲機制和所述第二存儲機制之間分配所述元數據模型的所述一個或多個設計屬性和所述一個或多個操作屬性。
5.根據權利要求1的方法,進一步包括提供與所述元數據模型相關聯的清單,以在所述第一存儲機制和所述第二存儲機制之間分配所述元數據模型的所述一個或多個設計屬性和所述一個或多個操作屬性。
6.根據權利要求1的方法,進一步包括將所述操作屬性登記為第一模型以及將所述設計屬性登記為第二模型。
7.根據權利要求1的方法,其中,所述元數據模型可以跨越所述一個或多個操作屬性和所述一個或多個設計屬性查詢。
8.根據權利要求1的方法,進一步包括向所述元數據模型登記一個或多個映射,所述一個或多個映射描述所述元數據模型與一個或多個其他元數據模型的關系。
9.一種系統,包括知識庫,包含登記的元數據模型;所述知識庫內的第一存儲機制,所述第一存儲機制與所述元數據模型的一個或多個設計屬性相關聯;以及所述知識庫內的第二存儲機制,所述第二存儲機制與所述元數據模型的一個或多個操作屬性相關聯,所述第二存儲機制用于為所述元數據模型的所述一個或多個操作屬性中的至少一個存儲時間戳。
10.根據權利要求9的系統,其中,所述第一存儲機制是版本化的存儲機制,它存儲所述元數據模型的所述一個或多個設計屬性中的至少一個的一個或多個版本。
11.根據權利要求9的系統,進一步包括若干注解,將所述元數據模型的所述一個或多個設計屬性和所述元數據模型的所述一個或多個操作屬性與或者所述第一存儲機制或者所述第二存儲機制相關聯。
12.根據權利要求9的系統,進一步包括包結構,以在所述第一存儲機制和所述第二存儲機制之間分配所述元數據模型的所述一個或多個設計屬性和所述一個或多個操作屬性。
13.根據權利要求9的系統,進一步包括與所述元數據模型相關聯的清單,以在所述第一存儲機制和所述第二存儲機制之間分配所述元數據模型的所述一個或多個設計屬性和所述一個或多個操作屬性。
14.根據權利要求9的系統,其中,所述操作屬性登記為第一模型,所述設計屬性登記為第二模型。
15.根據權利要求9的系統,其中,所述元數據模型可以跨越所述一個或多個操作屬性和所述一個或多個設計屬性查詢。
16.根據權利要求9的系統,進一步包括向所述元數據模型登記的一個或多個映射,所述一個或多個映射描述所述元數據模型與一個或多個其他元數據模型的關系。
17.一種包括計算機可用介質的計算機程序產品,所述計算機可用介質包括計算機可讀程序代碼,其中在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機執行下列操作向知識庫登記元數據模型;將第一存儲機制與所述元數據模型的一個或多個設計屬性相關聯;以及將第二存儲機制與所述元數據模型的一個或多個操作屬性相關聯,其中所述第二存儲機制為所述元數據模型的所述一個或多個操作屬性中的至少一個存儲時間戳。
18.一種管理元數據的方法,包括將面向對象的元數據模型組織為包括操作屬性的操作模型和包括設計屬性的設計模型;在操作知識庫中存儲所述操作模型;以及在通用知識庫中存儲所述設計模型。
19.根據權利要求18的方法,進一步包括對所述操作模型元數據的至少一項加注時間戳。
20.根據權利要求18的方法,其中,所述通用知識庫支持多于一種版本的所述設計模型。
21.根據權利要求18的方法,進一步包括為用戶與所述元數據模型的交互提供用戶環境。
22.根據權利要求21的方法,其中,所述用戶環境包括編輯所述模型的工作空間。
23.根據權利要求22的方法,其中,所述工作空間是用戶獨占的。
24.根據權利要求21的方法,其中,所述工作空間支持元數據事例的版本化。
25.根據權利要求18的方法,進一步包括動態地比較所述通用知識庫中的所述設計模型的一個或多個不同版本。
26.根據權利要求18的方法,其中,所述通用知識庫支持所述設計模型版本的分支。
27.根據權利要求18的方法,進一步包括協調所述設計模型的多個版本。
28.根據權利要求18的方法,進一步包括通過面向消息的服務異步地調用所述元數據模型而在元數據服務中使用所述元數據模型。
29.根據權利要求18的方法,進一步包括并發地執行使用所述元數據模型的服務。
30.一種管理元數據的系統,包括面向對象的元數據模型,包括具有所述元數據模型的一個或多個操作屬性的操作模型和具有所述元數據模型的一個或多個設計屬性的設計模型;存儲所述操作模型的操作知識庫;以及存儲所述設計模型的通用知識庫。
31.一種方法,包括以第一模型固有的術語表示查詢;使用描述所述第一模型與第二模型之間一個或多個關系的映射信息,將所述查詢轉換為所述第二模型固有的術語;以及將所述查詢轉換為固有的數據源格式。
32.根據權利要求31的方法,其中,所述映射信息可以被查詢。
33.根據權利要求31的方法,其中,所述第一模型是視圖,所述第二模型是中心。
34.根據權利要求31的方法,其中,所述方法在企業計算系統中執行。
35.根據權利要求31的方法,其中,所述方法在數據集成系統中執行。
36.一種包括計算機可用介質計算機程序產品,所述計算機可用介質包括計算機可讀程序代碼,其中在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機執行下列操作登記第一模型;識別第二模型和所述第一模型的至少一個屬性到所述第二模型的映射;以及保持所述第一模型的所述至少一個屬性到所述第二模型的所述映射。
37.根據權利要求36的計算機程序產品,進一步包括識別所述第一模型的未映射到所述第二模型的至少一個其他屬性;以及保持所述第一模型的所述至少一個其他屬性。
38.根據權利要求36的計算機程序產品,其中,所述第一模型包括多個類。
39.根據權利要求36的計算機程序產品,其中,所述第二模型包括多個類。
40.根據權利要求36的計算機程序產品,其中,在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機提供存儲機制,用于保持作為反身存儲機制的所述第一模型的所述至少一個屬性到所述第二模型的所述映射。
41.根據權利要求36的計算機程序產品,其中,在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機定義模式,用于表示關系數據庫中的元數據模型,并使用所述模式保持所述第一模型的所述至少一個屬性到所述第二模型的所述映射。
42.根據權利要求41的計算機程序產品,其中,在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機通過改變所述模式而修改所述第一模型。
43.根據權利要求41的計算機程序產品,其中,在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機通過改變所述關系數據庫中的一個或多個屬性而修改所述第一模型。
44.根據權利要求36的計算機程序產品,其中,在一臺或多臺計算機上執行所述計算機可讀程序代碼時,使所述一臺或多臺計算機通過改變所述映射而修改所述第一模型。
45.根據權利要求36的計算機程序產品,其中,所述第一模型和所述第二模型是元數據模型。
全文摘要
連同企業計算環境中的數據集成管理(5202)和使用元數據。集成的、依賴平臺的元數據管理(5202)方法允許全企業訪問數據集成服務(104)和基礎數據,并且便于數據集成環境中工具和作用的重新使用和重新設計。為管理元數據提供了若干工具(5204),包括維持版本化的元數據模型(5212),在設計周期中可以分支排列與合并,并跨越全企業動態實施。依賴平臺的方法便于變化的使用,包括在異類硬件和軟件計算環境中的實施。
文檔編號G06F17/00GK101040280SQ200580028882
公開日2007年9月19日 申請日期2005年8月31日 優先權日2004年8月31日
發明者穆哈梅梅·伯茲亞內, 布賴恩·德爾勒特, 戴維·M.·康特, 鮑里斯·克里洛夫, 奧克奇歐·G.·奧斯尼, 卡斯奧·D.·桑托斯, 查爾斯·K.·尚克, 馬克·R.·薩克, 張宏 申請人:國際商業機器公司