好的我在哪裏工作,我們有相當多的系統在過去幾十年中編寫,我們維護。這些系統在多種操作系統(Linux,Solaris,Windows),多個數據庫(Oracle的幾個版本,sybase和mysql)以及多種語言(C,C++,JSP,PHP和主機)上是多種多樣的的其他)被使用。如何最好地集成多個系統?
即使將相同的數據輸入多個系統,每個系統都是相當自主的。
管理層最近決定,我們應該研究如何使所有系統愉快地彼此交談並共享數據。請注意,儘管我們可以對任何單個系統進行軟件更改,但對任何一個系統(或更多)的完全重寫都不是管理層可能會喜歡的事情。
這裏的幾位開發人員的第一個想法是直截了當的:如果系統A需要來自系統B的數據,它應該連接到系統B的數據庫並獲取它。同樣,如果它需要提供B數據,它應該將其插入到B的數據庫中。
由於所使用的數據庫(和版本)混亂,其他開發人員認爲我們應該有一個新的數據庫,將所有其他系統的表結合起來,以避免必須處理多個連接。通過這樣做,他們希望我們能夠合併一些表格並擺脫冗餘數據輸入。
這是關於我被引入我的意見整個混亂的時間。
使用數據庫作爲系統通信手段的整個想法對我來說很有趣。業務邏輯必須被放置到多個系統中(如果系統A想要向系統B添加數據,那麼在執行插入操作之前就可以更好地理解B的有關數據的規則),但有些系統很可能必須執行某種形式的數據庫輪詢才能找到對數據的任何更改,持續的維護都是頭痛的問題,因爲對數據庫模式的任何更改現在都會傳播多個系統。
我的第一個想法是花時間爲不同的系統編寫API /服務,這些系統一旦編寫就可以很容易地用來傳遞/檢索數據。許多其他開發人員認爲這比使用數據庫更加繁瑣和多得多。
那麼,讓這些系統相互對話最好的方法是什麼?