第五章 物件導向式資料整合系統設計
5.1 資料整合系統設計
5.1.1 資料整合代理人類別
在第三章的資料整合架構中,有提到各個代理人所負責的工作與特性,為了 達到這個構想,我們將所有整合代理人每一個當成單一的一個物件(Object),類別 圖就記錄著和自身相關的整合資訊。在整合架構中,只會有一個訊息仲介代理人 負責接收與傳送整合相關之訊息,而每個資料庫各由資料庫駐守代理人負責監 控,資料庫端監控分成兩種,一為交易記錄檔,別一為資料庫定義,所以設計由 資料處理代理人和定義偵測代理人分別負責監控與偵測,再透過物件導向的特性 將各個不同整合代理人與仲介代理人串連起來了,就成了一個自動化整合代理人 的架構了,如圖5.2 所示。因代理人類別為本研究之重要部分,故接下來我們只 用表列方式列出有關Agent 類別部分之屬性(Attribute)和方法(Method)之說明,而 其他部分則不會列表說明。
Agent Ref _MessageQueue CheckDeliv ery Time
transf ormMessage() getRef _MessageQueue()
DB Updater
updateDB()
decodeSy nchroizationMessage()
DB Monitor
monitoringDB()
encodeSy nchronizationMessage() DB Transaction Agent
DBConnectionName DBConnectionUser DBConnectionPassword Ref _DBSA
Ref _DBMonitor Ref _DBUpdater
getRef _DBUpdater() getRef _DBMonitor() setDBconnectionName() setDBconnectionUser() setDBconnectionPassword()
*
1 *
1
DBDef inition Processor
createDBDef inition() maintainDBDef inition() deleteDBDef inition()
Schema Detector
detectDBSchema() encodeSchemaMessager() f indFieldDef inition() DB Schema Agent
Ref _DBTA Ref _DBDef inition Ref _SchemaDetector Ref _DBDef initionProcessor
getRef _DBDef initionProcessor() getRef _Schemadetector() getRef _DBDf inition() 1
1 1 1
1 *
* 1
DB Monitering Agent MonitorFrequency MonitorPath DBTy pe Ref _MBA
adjustFrequency () getRef _MBA()
AutoSchemaAnaly st
matchSchema() decodeSchemaMessage() generationFieldRelationship()
AutoSy nchronizer
encodeSy nchronizationMessage() decodeSy nchronizationMessage() processSy nchronizationMessage() Message Brokering Agent
Ref _AutoSchemaAnaly st Ref _AutoSy nchronizer Ref _AllFieldDef inition
SetInitial()
getRef AutoSchemaAnaly st() getRef AutoSy nchroizer() getRef _AllFieldDef inition() setRef _AllFieldDef inition() addDB()
deleteDB()
* 11
*
*
1
1 * 1
*
1 *
1 *
1
* 1
1 *
*
圖5.2 整合代理人類別圖
在整合代理人類別圖中,可以看出類別DBMA 和 MBA 繼承了他們的父類別 (super class)Agent,而 DBTA 和 DBSA 也同樣繼承了父類別 DBMA,繼承提供分 享其Agent 和 DBMA 屬性和方法;而 MBA、DBTA 和 DBSA 各分別包含了 Auto Schema Analyst、Auto Synchronizer、DB Updater、DB Monitor、DBDefinition Processor 和 Schema Detector。接下來分別介紹各個類別功能(參見表 5.1)並且詳細 說明屬性及方法的用法。
表5.1 整合代理人類別功能說明表
類別名稱 功能說明
Agent 為各個不同功能之整合代理人做為一個基礎型之類別,
依其工作內容來分類 Message-Brokering
Agent(MBA) 傳遞同步化整合資訊和自動化分析異動對映資訊 AutoSchemaAnalyst 負責分析資料庫定義、訊息物件解譯和建立各欄位間關
係
AutoSynchronizer 負責訊息物件的包裝、解譯和分析同步化對象 DB Monitering
Agent(DBMA)
負責資料庫端資料異動監控和資料庫定義偵測,為資料 處理和定義偵測代理人做一個基礎型之類別,未來加進 不同類型之資料庫,可以設計出不同之資料處理和定義 偵測代理人
DB Transaction
Agent(DBTA) 負責新新資料庫資料和監控與分析資料庫之異動 DB Updater 負責解譯同步訊息物件和更新資料庫之資料 DB Monitor 負責監控資料庫異動和同步訊息物件的包裝 DB Schema
Agent(DBSA) 負責偵測資料庫定義並分析維護資料庫定義之異動 DBDefinition
Processor 負責產生並維護資料庫定義物件
Schema Detector 負責偵測分析資料庫定義、產生定義訊息物件和查詢欄 位物件相關資訊
● Agent
主要為各個不同的功能之整合代理人做為一個基礎的Agent,主要是依代理人 所負責的工作劃分出來,設定為以後可擴充不同任務類型之整合代理人,其 屬性及方法的功能詳見表5.2。
表5.2 Agent 功能說明
Agent 名稱 功能
Ref_MessageQueue 記錄Message Queue 類別 Attribute
CheckDeliveryTime 記錄用來判斷傳送訊息時間 transformMessage( ) 傳送訊息物件
Method
getRef_MessageQueue( ) 取得鏈結到 Message Queue 類別
● MBA
繼承Agent 類別,是和 DBMA 傳遞整合資訊和分析異動對映資訊的主要部分,
在資料整合的管理介面中,可以新增或是刪除欲整合之資料庫;並且還包含 了AutoSchemaAnalyst 和 AutoSynchronizer 的類別,分別負責了同步資料整合 和自動化的資料庫定義分析。AutoSchemaAnalyst 務任有分析資料庫定義、定 義訊息物件解譯和建立各個欄位間之關係,而AutoSynchronizer 主要工作為同 步訊息物件的包裝、解譯和分析同步化對象。其屬性及方法的功能詳見表5.3、
表5.4 和表 5.5。
表5.3 Message Brokering Agent 功能說明
MBA 名稱 功能
Ref_AutoSchemaAnalyst 記錄AutoSchemaAnalyst 類別 Ref_AutoSynchronizer 記錄AutoSynchronizer 類別 Attribute
Ref_AllFieldDefinition 記錄所有FieldDefinition 類別 SetInitial( ) 設定整合系統初始資訊
addDB( ) 新增整合資料庫
deleteDB( ) 刪除整合資料庫
setRef_AllFieldDefinition( ) 設定 FieldDefinition 類別
getRef_AutoSchemaAnalyst( ) 取得鏈結到 AutoSchemaAnalyst 類別 getRef_AutoSynchroizer( ) 取得鏈結到AutoSynchroizer 類別 Method
getRef_AllFieldDefinition( ) 取得鏈結到 FieldDefinition 類別
表5.4 AutoSchemaAnalyst 功能說明 AutoSchema
Analyst 名稱 功能
matchSchema( ) 分析資料庫定義
decodeSchemaMessage( ) 解譯Schema Message 類別 Method
generationFieldrelationship( ) 建立 FieldDefinition 間之關係
表5.5 AutoSynchronizer 功能說明 Auto
Synchronizer 名稱 功能
encodeSynchronization( ) 產生 Synchronization Message 物件 decodeSynchronization( ) 解譯 Synchronization Message 類別 Method
processSynchronization( ) 分析出同步化對象
● DBMA
繼承Agent 類別,主要在處理資料庫端負責監控資料異動和資料庫定義的自動 化偵測,並且會根據異動記錄適性調整監控頻率。目前只針對關聯式資料庫,
未來可對每一種資料庫類型做一種,所以加入異質資料庫時,可以針對新的 資料庫再寫別一種監控的方式。其屬性及方法的功能詳見表5.6。
表5.6 DB Monitering Agent 功能說明 DB Monitering
Agent 名稱 功能
MonitorFrequency 記錄偵測頻率時間 MonitorPath 記錄監控之檔案路徑 Attribute
Ref_MBA 記錄Message Brokering Agent 類別 adjustFrequency( ) 設定調整偵測頻率
Method
getRef_MBA( ) 取得鏈結到Message Brokering Agent 類別
● DBTA
繼承DB Monitering Agent 類別,此類別包含了 DB Updater 和 DB Monitor 類 別,分別負責了更新資料庫資料和監控分析資料庫資料之異動,其屬性及方 法的功能詳見表5.7、表 5.8 和表 5.9。
表5.7 DB Transaction Agent 功能說明
DBTA 名稱 功能
DBConnectionName 記錄連結資料庫本身的名稱 DBConnectionUser 記錄連線所用的使用者名稱 DBconnectionPassword 記錄連線的密碼
Ref_DBSA 記錄DB Schema Agent 類別 Ref_DBMonitor 記錄DB Monitor 類別 Attribute
Ref_DBUpdater 記錄DB Updater 類別 setDBConnectionName( ) 設定資料庫連線名稱 setDBConnectionUser( ) 設定連線使用者名稱 setDBconnectionPassword ( ) 設定連線密碼
getRef_DBUpdater( ) 取得鏈結到DB Updater 類別 Method
getRef_DBMonitor( ) 取得鏈結到DB Monitor 類別
表5.8 DB Updater 功能說明
DB Updater 名稱 功能
updateDB( ) 更新資料庫資料 Method
decodeSynchroizationMessage( ) 解譯 Synchronization Message
表5.9 DB Monitor 功能說明
DB Monitor 名稱 功能
monitoringDB( ) 監控資料庫異動
Method encodeSynchronizationMessage( ) 產生 Synchronization Message 物件
● DBSA
繼承DB Monitering Agent 類別,此類別包含了 DBDefinition Processor 和 DBDefinition Detector 類別,分別負責了資料庫定義之偵測分析和維護,其屬 性及方法的功能詳見表5.10、表 5.11 和表 5.12。
表5.10 DB Schema Agent 功能說明
DBSA 名稱 功能
Ref_DBTA 記錄DB Transaction Agent 類別 Ref_DBDefinition 記錄DBDefinition 類別
Ref_SchemaDetector 記錄Schema Detector 類別 Attribute
Ref_DBDefinitionProcessor 記錄DBDefinition Processor 類別 getRef_DBTA( ) 取得鏈結到DB Transaction Agent
類別
getRef_DBDefinition( ) 取得鏈結到DBDefinition 類別 getRef_SchemaDetetor( ) 取得鏈結到Schema Detector 類別 Method
getRef_DBDefinitionProcessor( ) 取得鏈結到 DBDefinition Processor 類別
表5.11 DBDefinitionProcessor 功能說明 DBDefinition
Processor 名稱 功能
createDBDefinition( ) 產生DBDefinition 物件 maintainDBDefinition( ) 維護資料庫定義物件 Method
deleteDBDefinition( ) 刪除DBDefinition 物件
表5.12 SchemaDetector 功能說明 Schema
Detector 名稱 功能
detectDBSchema( ) 偵測分析資料庫定義 encodeSchemaMessage( ) 產生Schema Message 物件 Method
findFieldDefinition( ) 查詢FieldDefinition 物件