七種老舊遺留系統的整合模式 -Bozho
企業整合非常棘手。現在,如果我們必須整合兩個(或多個)系統,我們知道:我們要麼使用API,要麼使用某些訊息佇列。不幸的是,世界上許多系統不支援API整合。正如我們所說的,還有許多沒有API的東西。因此,當您不可避免地需要與它們整合時,以下是與遺留系統(或以遺留方式構建的非遺留系統)整合的七個模式。
- FTP上的檔案:一個應用程式將檔案(XML,CSV等)上載到FTP(或其他共享資源),而另一個應用程式通過計劃的作業讀取它們,解析它們並有選擇地傳送響應-在同一FTP或通過電子郵件。在整合方面,共享這樣的檔案肯定不是理想的選擇–您無法獲得請求的實時狀態,而其他方面則很棘手–版本控制,高可用性,身份驗證,安全性,可追溯性(稽核線索)。
- 共享資料庫: 共享同一個資料庫的兩個應用程式聽起來像是災難的祕訣,但是在野外看到它並不罕見。如果幸運的話,一個應用程式將是隻讀的。但是,打破資料庫結構的更改和安全性問題是主要問題。您只能使用這種型別的整合,因為您將資料庫直接暴露給了通常不希望執行的其他應用程式。
- 每日完整轉儲 :一些組織不是共享活動資料庫,而是每天或每週對資料進行完整轉儲,並提供給另一方進行匯入。隨之而來的是明顯的資料隱私問題,因為除了下面提到的所有內容(版本控制,身份驗證等)之外,要對資料進行完整的轉儲(在某些情況下是在DVD或行動式HDD上)是不明智的。
- 搜尋 :當應用程式沒有API時,仍然可以通過使用者介面從應用程式中提取資料或將資料推送到其中。使用Web應用程式,因為它們“表達為” HTML和HTTP更容易。對於桌面應用程式,螢幕抓取已成為一種選擇。所謂的RPA軟體(機器人過程自動化)依賴於所有型別的抓取來整合遺留系統。它非常脆弱,需要複雜的(有時是昂貴的)工具才能正確使用。更不用說安全方面了,這要求以非雜湊形式將憑據儲存在某處,以使抓取工具能夠登入。
- 電子郵件 :當傳送或接收系統不支援其他形式的整合時,電子郵件將是最後的選擇。如果您可以通過連線郵箱來觸發某些操作,或者在傳送系統中發生某些事件後生成電子郵件,則可能只需要整合它們即可。顯然,電子郵件是一種非常糟糕的整合方式–它是非結構化的,可能由於多種原因而失敗,而不僅僅是軟體整合。如果您想獲得更多創造力,則可以附加結構化資料,但是如果兩端都可以支援相同格式,則可以擴充套件它們以支援適當的API。
- 介面卡 :您可以開發一個自定義模組,該模組可以訪問基礎資料庫,但可以公開適當的API。這是一個幾乎可以接受的解決方案,因為您可以擁有獨立於原始應用程式的正確編寫的(某種)微服務,而其他系統則不知道它們是否與舊版軟體整合在一起。但是,在某些情況下要正確設定它很棘手,因為您必須很好地瞭解資料庫的狀態空間。只讀很容易,寫起來更難甚至幾乎不可能。
- 紙:在某些情況下,一個組織列印一些資料,然後另一個組織(或部門)接收紙質文件(通過郵件或其他方式)並將其輸入到他們的系統中。那裡存在昂貴的專案,這些專案旨在刪除紙張元件並引入實際的整合,因為基於紙張的輸入容易出錯且執行緩慢。對於基於紙張的步驟,一些合法的情況是您需要額外的安全保護,而紙張痕跡再加上有效隔紙的事實可能會為您提供幫助。但是即使如此,它也不應該是唯一的傳輸層。
如果要構建系統,請始終提供API。某些其他系統遲早必須與它整合。建立緊密的系統並在需要時延遲整合問題是不可持續的。假設它總是需要的。
花式ESB可能能夠使用上述方法之一快速修補問題並整合“不可整合”,但是嚴重依賴ESB則表明存在過多的舊版或質量低下的系統。這應該作為某些系統需要更換的指示。這說起來容易做起來難,因為遷移通常令人頭疼,但是在替換某些系統的原因列表中(如果無法升級並且您有能力這樣做,請考慮一下缺少API) )。
但是簡單地擁有一個API也不會削減它。如果您不支援版本控制和向後相容的API,那麼您將處於更加脆弱的狀態,因為您將在進行過程中破壞現有的整合。
企業整合非常棘手。但是,與軟體中的許多其他事情一樣,最好在我們構建的應用程式中進行處理。如果我們正確地構建它們,事情會容易得多。否則,組織必須恢復到上面提到的傳統方法,並引入複雜性,脆弱性,安全性和隱私風險以及必須由日益不高興的人們所支援的低質量感覺。
相關文章
- 老舊系統重構技巧,輕鬆搞定遺留程式碼
- 老舊業務重構案例——IM系統如何設計
- 從300萬行到50萬行程式碼,遺留系統的微服務改造行程微服務
- 單例模式的七種寫法單例模式
- [實用指南] 如何使您的舊程式碼庫(遺留程式碼)符合MISRA C 2012編碼規範?
- [實用指南]如何使您的舊程式碼庫(遺留程式碼)符合MISRA C 2012編碼規範?
- 電腦版本太舊怎麼升級系統 電腦老系統換新系統方法介紹
- Java:單例模式的七種寫法Java單例模式
- Parasoft Jtest——如何征服遺留程式碼
- RxJava是遺留程式碼的解藥 - PawełMatyjasikRxJava
- AngularJS 遺留專案的升級改造之路(一)AngularJS
- 23種設計模式(七)-狀態設計模式設計模式
- Java設計模式——實現單例模式的七種方式[JZOF]Java設計模式單例
- 遺留程式碼處理技巧與案例演示
- Shopify如何使用Strangler Fig模式重構遺留程式碼中上帝式大物件?- Adrianna Chang模式物件
- ERP系統的三種遷移模式之對比模式
- VIM模式三種模式有什麼?linux系統學習模式Linux
- 單例模式的七種寫法,你都知道嗎?單例模式
- 19種分散式系統設計模式 - Nishant分散式設計模式
- 開發人員使用遺留程式碼庫指南
- 七人拼團系統開發即拼商城模式模式
- 新舊系統轉化策略
- 如何把遺留的Java應用託管在Service Fabric中Java
- 深度分析Linux下雙網路卡繫結七種模式 多網路卡的7種bond模式原理Linux模式
- 智慧平安小區管控系統開發解決方案,武漢老舊小區改造
- .net網站自動化部署-致兩年前的遺留的問題網站
- 建立多種安全聊天模式七朋元視界可信元宇宙社交體系模式元宇宙
- win10系統c盤留多少空間合適 win10系統盤留多大夠用Win10
- 邊緣計算的資料模式,與現有系統的整合和共存模式
- Linux 中獲取硬碟分割槽或檔案系統的 UUID 的七種方法Linux硬碟UI
- OA系統的協同管理與系統整合
- 讓老舊的照片煥發新生的工具:PhotosRevive for MacMac
- 別再用老舊架構了!單元化構建超強彈性和容錯系統!架構
- 智慧平安社群綜合管理系統開發,江西贛州老舊小區改造解決方案
- Linux作業系統登入留痕功能Linux作業系統
- 通義靈碼實戰系列:一個新專案如何快速啟動,如何維護遺留系統程式碼庫?
- 一文看懂合約各種型別的交易系統模式型別模式
- 短視訊系統原始碼,幾種常見的單例模式原始碼單例模式