此模式是 "取代舊系統模式" 的一部分

返回來源

找出資料的原始來源並整合到其中

2022 年 7 月 7 日

Ian CartwrightRob HornJames Lewis

在許多組織中,一旦完成將新系統整合到主機的工作,例如,透過主機與該系統互動會變得比每次重複整合都容易得多。對於許多具有單體架構的舊系統來說,這是有道理的,將相同的系統整合到同一個單體中多次會造成浪費,而且可能會造成混淆。隨著時間推移,其他系統會開始進入舊系統以擷取這些資料,而最初整合的系統通常會被「遺忘」。

這通常會導致舊系統成為多個系統的單一整合點,因此也成為任何需要這些資料的業務流程的主要上游資料來源。重複此方法幾次,並加入我們經常看到的與舊資料表示的緊密結合,例如 侵入式關鍵聚合器 中所述,這會為舊系統取代帶來重大挑戰。

透過追溯資料來源和整合點到舊系統資產「之外」,我們通常可以「返回來源」進行舊系統取代工作。這讓我們可以及早減少對舊系統的依賴,並提供機會改善資料的品質和時效性,因為我們可以運用更現代的整合技術。

Revert to source - showing legacy and source systems

另外值得注意的是,越來越重要的是基於 GDPR 等業務和法律原因了解資料的真正來源。對於許多擁有龐大舊系統資產的組織來說,只有在發生故障或問題時,資料的真正來源才會變得更清楚。

運作方式

作為任何傳統替換工作的一部分,我們需要追蹤關鍵資料流的來源和匯入。根據我們選擇如何切分整體問題,我們可能不需要一次對所有系統和資料執行此操作;雖然對於了解待完成工作的整體規模,了解主要流程非常有用。

我們的目標是製作某種類型的資料流圖。實際使用的格式較不重要,重點在於此發現不只停留在傳統系統,而是深入探究以查看基礎整合點。在與客戶合作時,我們會看到許多架構圖,令人驚訝的是,他們似乎常常忽略傳統背後的事物。

有幾種技術可追蹤系統中的資料。廣義來說,我們可以將這些視為追蹤上游或下游路徑。雖然資料通常會流向和流出基礎來源系統,但我們發現組織傾向於僅從資料來源的角度思考。也許透過傳統系統的觀點來看,這是任何整合中最明顯的部分?發現資料從傳統系統流回來源系統的部分通常是最不了解且文件最少的整合部分,這並不少見。

對於上游,我們通常從業務流程開始,然後嘗試追蹤資料流入,然後再流回傳統系統。這可能具有挑戰性,特別是在較舊的系統中,有許多不同的整合技術組合。一種有用的技術是使用 CRC 卡,目標是為關鍵業務流程步驟建立資料流圖和順序圖。無論我們使用哪種技術,讓適當的人員參與都至關重要,理想情況下是最初處理傳統系統的人員,但更常見的是現在支援這些系統的人員。如果這些人員無法參與,而且對事物運作方式的知識已經遺失,那麼從來源開始並向下游處理可能更合適。

追蹤下游整合也可能非常有用,根據我們的經驗,這通常會被忽略,部分原因是如果 功能同等性 發揮作用,焦點往往只會放在現有的業務流程上。在追蹤下游時,我們從基礎整合點開始,然後嘗試追蹤到它支援的主要業務功能和流程。這與地質學家在河流的可能來源處引入染料,然後查看染料最終出現在哪些溪流和支流中非常相似。這種方法特別適用於對傳統整合和對應系統的知識不足的情況,並且在我們建立新的元件或業務流程時特別有用。在追蹤下游時,我們可能會發現此資料在哪裡發揮作用,而無需先知道它採取的確切路徑,在這裡您可能需要將其與原始來源資料進行比較,以驗證資料是否已在過程中遭到變更。

一旦我們了解資料流,我們就可以查看是否有可能攔截或在來源處建立資料副本,然後資料副本可以流向我們的新解決方案。因此,我們不是整合到傳統系統,而是建立一些新的整合,以允許我們的新元件回溯到來源。我們確實需要確保同時考量上游和下游流,但正如我們在以下範例中所見,這些流不必一起實作。

如果無法進行新的整合,我們可以使用 事件攔截 或類似方法,建立資料流程的副本,並將其路由至我們的元件,我們希望盡可能在最上游進行此操作,以減少對現有舊有行為的依賴性。

何時使用

「回復至來源」最適用於我們提取特定商業功能或流程的情況,而該功能或流程依賴於最終來自「隱藏在」舊有系統背後的整合點的資料。它最適用於資料大致上未經舊有系統變更而傳遞的情況,也就是在使用前幾乎沒有處理或豐富的過程。雖然在實際情況中這聽起來不太可能,但我們發現許多情況下舊有系統只是充當整合樞紐。在這些情況下,我們看到的資料主要變更為資料遺失和資料即時性降低。資料遺失是因為欄位和元素通常會被過濾掉,原因可能是舊有系統無法表示這些欄位和元素,或因為進行必要的變更成本太高且風險太大。即時性降低是因為許多舊有系統使用批次作業匯入資料,而且如 關鍵匯總器 中所討論的,「安全資料更新期間」通常是預先定義的,幾乎不可能變更。

我們可以將「回復至來源」與「平行執行」和「對帳」結合,以驗證資料在舊有系統中是否沒有發生其他變更。這是一種通用的健全方法,但在資料透過不同路徑傳送至不同終端點,但最終必須產生相同結果時特別有用。

使用「回復至來源」也可能是一個強而有力的商業案例,因為通常有更豐富、更即時的資料可用。來源系統通常會升級或變更多次,而這些變更實際上隱藏在舊有系統背後。我們看過多個範例,資料的改善實際上是這些升級的核心理由,但由於無法透過舊有路徑提供更頻繁、更豐富的更新,因此從未完全實現這些好處。

我們也可以在具有基礎整合點的資料雙向流動中使用此模式,不過在此需要更小心。最終傳送至來源系統的任何更新都必須先流經舊有系統,在此它們可能會觸發或更新其他流程。幸運的是,拆分上游和下游流程是完全可能的。因此,例如,流回來源系統的變更可以繼續透過舊有系統流動,而我們可以直接從來源取得更新。

務必注意來源系統中可能存在的任何跨功能需求和限制,我們不希望過載該系統或發現它不可靠或無法直接提供所需資料。

零售商店範例

對於某個零售客戶,我們能夠使用還原至來源來同時擷取新元件和改善現有的業務功能。該客戶擁有廣泛的商店和一個最近建立的線上購物網站。最初,新網站從舊系統中取得所有庫存資訊,而這些資料又來自倉庫庫存追蹤系統和商店本身。

這些整合是透過隔夜批次工作來完成的。對於倉庫來說,這運作良好,因為庫存每天只會離開倉庫一次,因此業務可以確定每天早上收到的批次更新將在約 18 小時內保持有效。對於商店來說,這會產生問題,因為庫存顯然可以在工作日中的任何時間離開商店。

考量到這個限制,網站只讓倉庫中的庫存可供銷售。網站的分析與隔天收到的商店庫存資料結合後,清楚顯示出因此而損失銷售:所需的庫存整天都在商店中,但舊式整合的批次性質使得無法利用這一點。

在這種情況下,建立了一個新的庫存元件,最初僅供網站使用,但目標是成為整個組織的新的記錄系統。此元件直接與店內收銀機系統整合,而這些系統完全有能力在銷售發生時提供近乎即時的更新。事實上,該業務已投資於一個高度可靠的網路,以連結其商店,以便支援電子支付,而該網路有大量的備用容量。倉庫庫存水準最初從舊式系統中提取,而較長期的目標是稍後也將其還原至來源。

最終結果是一個網站,可以安全地提供店內庫存,供店內預訂和線上銷售,同時還有一個新的庫存元件,提供更豐富且更及時的庫存變動資料。透過回歸新庫存元件的來源,組織也意識到他們可以取得更及時的銷售資料,而當時也僅透過批次處理更新到舊系統。產品線和價格等參考資料持續透過主機傳輸到店內系統,由於這些資料變動頻率低,因此完全可以接受。

重大修訂

2022 年 7 月 7 日:發布