• 沒有找到結果。

資料同步化流程

在文檔中 中 華 大 學 (頁 59-64)

第四章 自動化企業資料一致性整合機制

4.2 資料同步化流程

此架構本身提供基本訊息傳送服務,而為了達成資料整合機制,其需求包含 四個部分。第一,要能確保訊息送達到目的地。第二,要能支援轉換訊息格式。

第三,要能分析出欲同步化之資料庫。第四、更新資料庫資資料並且要能解決衝 突 例外 產生。為了達成上述四點要求,資料同步作業提供四層機制,以確保資

料一致性,分別為傳輸層 、轉換層 、對映

層 和更新層

( )

(Transporting Layer) (Transforming Layer) (Mapping Layer) (Updating Layer),如表 4.1 說明。這四層機制主要是

Schema Matching Process

Schema Matching Process

Database Database Database

Change Detecting Process

Transporting Transforming

Mapping Updating

Data Synchronization Process

此架構在所有資料庫間用來控制基本訊息傳送之流程,主要目的是為了確保資料 同步化的正確性,而每層服務都需要下一層支援,以下分別詳細說明四層機制。

表4.1 同步作業流程各層說明

目的 說明

Layer

Transporting 訊息傳遞 提供基本訊息傳送並確保 訊息送達到目的地

T 資料轉換

轉換物件訊息格式 ransforming 提供將來自資料庫之訊號

Mapping 對映分析

提供解讀訊息物件並分析 出欲同步化之資料庫並能 處理分析時出現問題 Updating 資料更新

能處理更新失敗時情況 提供將資料庫資料更新並

4.2.1 傳輸層

傳輸層此層機制主要是提供基本訊息傳送(Message Delivery)服務,能確保訊 息送達(Delivery Guarantee)之機制,並且能夠處理傳送或是訊息在處理是所遇到 失敗的情形,在訊息傳送過程中,傳送者傳送訊息給接收者,而接收者一定要對 傳送者回應,如果沒有回應,傳送者就不斷傳送訊息,直到接收者回應。所以在 這傳輸層裡採用一些訊息傳遞(Message delivery)方法[Tai00],其中包括了:訊息 呈現(Representation)方式、訊息傳送對象(Subscription)、訊息傳遞(Synchronicity) 方式、訊息保證送達(Delivery Guarantee)、訊息管理(Ordering)方式、訊息區分 (Filtering)方式及失敗偵測(Failure Detection)方式等,說明如表 4.2 所示。

表4.2 訊息傳遞方法

方法 說明

訊息呈現方式

用物件方式呈現。傳送訊息過程中,為了確保訊息確實的被接 收到,需要將訊息儲存起來;以整合系統而言,資料同步化過 程也是需要將所做過的動作留下來成為記錄檔,以利整合人員 查閱分析使用

訊息保證送達

方(Sender)傳送訊息後,發送方處理下一個任務 整合系統在接收來自資料庫的異動訊息或是傳送給資料庫更 新訊息時,發送

時,要確實的知道接收方(Receiver)是否有收到,當接收方收到 發送方所送來之訊息後,要回覆訊息給發送方,才會確定訊息 傳送成功

訊息傳送對象

n list 就是異動對映資訊,也就是說資料庫異動所產 透過 利用subscription 方式,因為整合的對象是資料庫,所以 subscriptio

生的異動訊息,其實也就是其它資料庫所感興趣之訊息,

資料整合機制分析後,變成更新訊息給其它的資料庫更新所使 用

訊息溝通方式 中使用的是非同步的訊息,當代理人在傳送訊息後,並不 有同步(Synchronous)與非同步(Asynchronous)訊息溝通方式。本 研究

需要等待對方將其訊息處理完成才能繼續下一個工作

依類型(type)區分,因本研究裡訊息物件有分成同步訊息和定義 訊息區分方式 訊息

訊息管理方式 om)和權重法(Priority-Based),本研究採用權重法,因其 動 共分四種,先進先出法(FIFO)、先進後出法(FILO)、亂數法 (Rand

收到之訊息物件以時間上來說,先收到之訊息表示為最先異 之資料,故要最先處理

在一定時間內沒回應時(Timeout of ack/reply),就會被認為訊息 傳送失敗

傳送失敗偵測

4.2.2 轉換層

轉換層自動化整合架構要用統一之訊息格式,此架構將訊息轉換成物件型 態,這樣便記錄訊息之內容。本研究裡訊息的種類共分成兩種:定義訊息和同步 訊息。訊息所需要記錄之基本資料會有訊息建立的時間、傳送者、接收者和傳送 狀態等。以下分別對這兩種訊息內容格式作詳細對說明。

● 定義訊息

定義訊息是由定義偵測代理人所產生出來。在定義偵測代理人在發現資料庫 定義異動時,透過分析資料庫定義檔後,便將資料庫定義資訊轉換成資料庫定義 訊息物件後傳送給訊息仲介代理人,其格式如表4.3 所示。

表4.3 定義訊息格式說明

欄位 說明

CreateTime 記錄訊息建立時間

D 記錄訊息傳送 用來判斷接

eliveryState 狀態,到訊息 收方是否有確實接收 Ref_FieldDefinition 記錄欄位物件參照指標

ModificationType 異動類型

● 同步訊息

訊息指的是在同步化過程中所使用到之訊息,過程中,當資料庫有 異動時我們需要知道是異動的是哪個資料庫、資料表、欄位、原始欄位值和更新 後欄位值,所以透過資料處理代理人分析交易記錄檔得知相關資料庫異動資訊 後,將其資訊轉換成同步化訊息後,再傳送給訊息仲介代理人;訊息仲介代理人 在接收到同步化訊息後,分析也產生同步化訊息,並且傳送給資料處理代理人,

其格式如表4.4 所示。

表4.4 同步訊息格式說明 所謂同步

欄位 說明

CreateTime 記錄訊息建立時間

D 記錄訊息傳送 用來判斷接

eliveryState 狀態,到訊息 收方是否有確實接收 QueryKeyString 查詢條件式字串

UpdateValue 資料更新值

Ref_FieldDefinition 記錄欄位物件參照指標

4.2.3 對映層

對映層提供異動對映資訊進資料同步對映,資料同步作業才會知道需同步化 之對象,將更新訊息傳送到正確之資料處理代理人。當資料整合機制接收到某個 資料處理代理人所傳送之異動訊息後,訊息仲介代理人解讀異動訊息並參考異動 對映資訊後,分析比對出此異動訊息所要同步化之對象,可供訊息仲介代理人將 更新訊息傳送至欲即同步化之資料庫之負責的資料處理代理人,如果分析時發生 錯誤,找不到欄位名稱時,訊息仲介代理人便通知定義偵測代理人分析資料庫定 義。

在本研究中對映之規則是以相同之欄位名稱,即設定其有相關性。假設人事 部某位員工的姓名做修改,經由代理人監控發現將異動訊息傳送至訊息仲介代理 人分析比對,即找出異動對映資訊中記錄與此欄位相同的名稱,然後再經由相關 聯之欄位找出相對映之資料庫,再由資料庫找出駐守的資料處理代理人,將同步 訊息傳送給代理人,至於如何產生出異動對映資料,我們在本章第四節會有詳細 介紹。

4.2.4 更新層

資料處理代理人在接收到同步訊息後,將訊息物件解譯取得更新資料相關之 資訊,利用UPDATE 指令異動表格內的資料,SQL 語言中的 UPDATE 指令是用 來異動表格內的資料(參考本章第三節)。所以將取得的更新資訊,再透過物件關 係查詢出欄位名稱後,加上UPDATE 運算指令,產生出一段 SQL script 語句,再 透過連結資料庫之驅動程式(如 JDBC)連結資料庫,再下達更新指令,即可更新資 料庫之資料。

以上四層機制運作確保資料同步化流程運作無誤,基本上傳輸層為最底層一

個訊息傳送之機制,其任務為了確保訊息能被確實傳送到目的地。而轉換層目的 則是將來自資料庫之訊息轉換成訊息物件格式,以利整合機制傳達訊息。對映層 主要則是提供分析同步化對象之能力,以確保能正確的將訊息傳送到正確之同步 對象。最後更新層則是提供了在接收到同步訊息後,有更新資料庫資料之能力。

在最底層之傳輸層支援上一層提供訊息轉換能力之轉換層,轉換層亦支援上一層 提供分析同步化對象能力之對映層,而對映層也支援最上一層有著資料更新能力 之更新層,如此最底層支援到最上層,確保了同步化流程之資料一致性服務。

在文檔中 中 華 大 學 (頁 59-64)