魏 華
青海交通職業技術學院,青海西寧 810003
淺析金融報表系統的數據集成問題
魏 華
青海交通職業技術學院,青海西寧 810003
本文主要主要介紹了在金融報表系統中的數據集成模塊的設計及實現。其中數據集成模塊中,采用了XML作為統一數據格式,然后針對各種不同數據源提供不同的專用接口,從而將異構數據源進行集成。對各種當今的異構數據集成模式進行了分析探討。
金融報表;數據集成;系統設計
金融報表系統的一個重要目標是能夠集成已有系統的數據,這也是整合各個分散孤立系統所面臨的一個重要問題。本文在研究各種異構數據集成的基礎上,選擇基于XML的數據集成方案,下面對該方案的設計及實現進行詳細的說明。
在該系統中負責集成數據任務的是數據生成器模塊,它將從異構數據源中提取和生成統一數據格式的報表數據。為了能夠從不同數據源中進行獲取數據,數據生成器需要進行異構數據源的統一處理。集成異構數據源的方法一般有兩種。第一種是將原有的數據移植到新的數據管理系統中來,為了集成不同類型的數據,必須將一些非傳統的數據類型轉化成新的數據類型。第二種方法是利用中間件集成異構數據庫,中間件位于異構數據庫系統(數據層)和應用程序(應用層)之間,向下協調各數據庫系統,向上為訪問集成數據的應用提供統一數據模式和數據訪問的通用接口。各數據庫的應用仍然完成它們的任務,中間件系統則主要集中為異構數據源提供一個高層次檢索服務。顯然,中間件系統模式是實現異構數據集成較理想的解決方案[1]。
實現數據抽取的關鍵是從統一的XML數據中進行查詢和統計以得到需要的報表數據。數據生成器是在處理報表之前將來自不同數據源的數據統一轉換為一致的XML格式數據。當數據被轉換為統一的數據格式后,數據在各個模塊之間就可以方便地進行交換,這使得所有模塊對數據的處理都能夠以統一的方式進行。我們可以使用J2EE架構中數據表示和交換功能的EJB(Enterprise JavaBean,業務邏輯代碼)組建中持久化服務的一部分,XML文件可以容易地讀取到一個對象模型中。
數據生成器的架構分為3層,如圖1所示。

圖1 數據生成器的三層架構圖
其中數據抽取層該層負責提供各種來自不同數據源的數據,如數據庫、已有的報表文件和其它文件數據。集成層該層完成將不同格式的數據與XML數據模型之間的轉換。它將數據先存儲到一個集成模式的存儲結構中,然后完成目標格式與原有格式之間的映射關系。此外,它還提供對數據的各種查詢操作。上層應用層該層主要是對集成層提供的接口進行封裝,以便于對數據的各種處理操作。它提供一個統一的數據視圖來查看數據。
數據抽取層處于系統的最低層,是系統的數據提供者,主要功能是提取和集成分布在多個異構數據源(數據庫,知識庫及構件庫)上的信息。這一層采用 Wrapper(包裝器)技術實現將一個從中介層得到的查詢,翻譯成能夠在經過封裝的數據源上執行的操作,將查詢結果抽取并打包到一個XML文檔,最后將該文檔返回給集成層。可以考慮使用Wrapper組件,即:
Wrapper組件由兩部分組成:Wrapper生成器和Wrapper實例(簡稱Wrapper)。Wrapper生成器用于為查詢某個確定的站點或站點集合,構建Wrapper的輸入是用一種Wrapper規范語言書寫的規格說明。規格說明必須能夠表達以下內容:數據源接口、數據模型、從用戶到數據源本地操作的查詢映射、數據源的查詢能力。通常為一個數據源生成一個有效的Wrapper所必須的信息是使用DTD來描述的。Wrapper生成器的輸出是一個可以執行的Wrapper實例,該Wrapper能夠接受由Wrapper規范語言定義的查詢。我們采用關系Wrapper能決定關系模型和DOM(Document Object Model,域對象模型)對象數據模型之間的映射。因此,可以采用DTD(Document Type Definition,文檔類型定義)來描述數據庫中關系表的數據模式。
集成層最重要的問題就是數據的轉換問題,將來自不同數據源的各種數據轉換成集成系統能進一步處理的統一格式。
專用接口主要完成XML數據模型與數據源的雙向轉換。它用XML描述集成數據,用XML文檔和格式文件DTD表示集成模式與數據源之間的映射。XML數據模型與數據庫的轉換主要體現在XML的DTD和數據庫數據模型的相互轉換。從DTD轉換到數據庫模型的原理如下:
1)從DTD生成一個關系模式,并在此基礎上建立關系數據庫;
2)對DTD中的每一個元素,產生關系數據庫的一個表和一個主鍵列;
3)對每一個有混合內容的元素,產生一個獨立的表,并通過父表的主鍵與父表相連;
4)對元素類型中的每一個單一值的屬性,按順序出現的子元素,產生一個單獨列,該列可以允許為NULL類型;
5)對有多個值的屬性和可以出現多次的子元素,需要創建一個單獨的表來存儲這些值,并通過父表的主鍵與父表相連;
6)對每一個包含元素或混合內容的子元素來說,通過父表的主鍵把父元素與子元素連接起來。
從數據庫模型到DTD的轉換相對容易一些,分為3步:對一個表,創建一個元素;對表中的每一列,創建一個屬性或只是一個子元素;根據表中的每一個主鍵/外鍵關系,創建該表元素的子元素。
同時相對于數據庫系統的意義,XML文檔與其他文本文件并沒有什么區別。在將它與結構化數據或非結構化數據進行轉換的時候,關鍵問題是如何將關系數據庫表達的結構與約束映射為XML。根據映射關系的建立方式不同,我們可以采用基于模板驅動的映射方法。這種映射的步驟比較簡單,只要給出模板,就可以快速地生成相應的XML文檔。總體來說,專用接口模塊就是將由各數據源的數據到一個XML數據模型的雙向轉換。
如何實現對各個數據源的集成存取,即如何將用戶對繼承視圖的存取轉換成對異構數據源的操作。在本系統中采用的是GAV方法。采用為集成模式中的每一個虛擬對象類創建一個能動態生成XML文檔的ASP文件,說明如何從信息源得到該虛擬對象類的對象,如何將源數據轉換成集成數據。當用戶要訪問集成數據時,系統按下列步驟進行查詢轉換[2]:
1)根據用戶提出的查詢條件,生成一棵查詢樹;
2)將諸如選擇、投影操作盡量推向葉節點(即數據源);
3)將對各數據源的操作追加到相應的ASP文件中;
4)調用ASP文件,生成來自多數據源的包含用戶所需數據的XML文檔;
5)選擇合適的XSL,應用于所生成的XML文檔提交給用戶。
為了能夠提供一個統一的數據視圖,需要設計一個公共模型,以便進行統一的處理。同時還需要在這個公共模型上定義一些基本的運算,使之能夠完成數據查詢、存取等具體功能。
本集成系統為用戶提供根據特定集成應用而設計的一個虛擬集成視圖。虛擬集成視圖是一個虛擬關系(或虛擬對象類)集合。采用XML作為集成系統的公共模型,用一個DTD描述集成層的一個虛擬對象類,一個元素對應虛擬對象類的一個屬性,所有虛擬對象類的DTD組成集成系統的集成模式。
根據不同用戶的不同需求,可定義不同的XSL樣式表,來屏蔽一些對象或對象的屬性,來改變對象的顯示形式,提供不同的用戶視圖。
本文主要介紹了在金融報表系統中的數據集成模塊的設計及實現。數據集成模塊中,采用了XML作為統一數據格式,然后針對各種不同數據源提供不同的專用接口,從而將異構數據源進行集成。異構數據集成模式具有以下特點:
1)在分布、異構環境下的異構數據集成方案和構架結構,基于術語標準化的一致性操作平臺。兼容不同數據庫結構和平臺;
2)靈活的資源共享方式,可以根據自身需要提出訪問請求;
3)實現模塊之間邏輯和技術的低耦合性;
4)適合Web應用,便于用戶通過Internet訪問;
5)一定的擴展性和可移植性。在數據源擴展時,只要配相應的數據接口和更新元數據即可,易于擴展。統一格式的數據可以通過企業域進行跨平臺交換,具有一定的可移植性。
[1]余彤鷹.復雜系統的層級原理與模型驅動軟件體系結構[EB/OL],2002,5.http∶//www.ee2 forum.Org.
[2]http∶//www.goxk.com/guanligongcheng/200807/30-303757.shtml.基于XML的異構數據集成模式研究,2008,7.
[3]范貴生,朱尚明.基于XML的遠程報表系統的開發模型及實現.現代計算機,2005,3:89-92.
TP39
A
1674-6708(2010)24-0227-02
魏華,講師,工作單位:青海交通職業技術學院計算機系