不同系统之间数据的交互
????? 最近公司的項(xiàng)目要實(shí)現(xiàn)幾個(gè)子系統(tǒng)的數(shù)據(jù)同步,討論了幾種方式,現(xiàn)記錄如下.背景介紹:
???? 子系統(tǒng)????????????????????? 職責(zé)
??? MarketResearch???????實(shí)時(shí)更新基金產(chǎn)品價(jià)格數(shù)據(jù),為其它子系統(tǒng)提供數(shù)據(jù)服務(wù)
??? Order Managment System? customer下單管理系統(tǒng),管理各種交易訂單,需要MR和CRM數(shù)據(jù)
??? CRM?? 客戶關(guān)系管理
?
方案一:? 把所有需要公共交換的數(shù)據(jù)獨(dú)立出一個(gè)子系統(tǒng),所有其它的子系統(tǒng)通過一公共API訪問.由于CRM是外購其它的公司的產(chǎn)品,改動(dòng)風(fēng)險(xiǎn)太大,外加其它非技術(shù)因素,此方案被不否決.
?
方案二: 各系統(tǒng)提供單獨(dú)的API實(shí)現(xiàn)數(shù)據(jù)的交互. 但也有二種方式.?
1)消息機(jī)制 + pull 模式???數(shù)據(jù)源發(fā)出數(shù)據(jù)更新通知,其它數(shù)據(jù)接收者接到通知后自行調(diào)用數(shù)據(jù)源API獲取數(shù)據(jù)
2)push 模式??數(shù)據(jù)源直接調(diào)用其它數(shù)據(jù)獲取者API更新數(shù)據(jù)
由于各個(gè)子系統(tǒng)需要的數(shù)據(jù)不同, 因此需要一個(gè)統(tǒng)一方式描述數(shù)據(jù). XML自然是首選,即我們定義一個(gè)統(tǒng)一的XML格式來描述各種數(shù)據(jù),各個(gè)子系統(tǒng)只需要解析一個(gè)統(tǒng)一XML文件. 各個(gè)子系統(tǒng)也可以實(shí)現(xiàn)相對的松藕合.
插一點(diǎn)個(gè)人體會(huì):本質(zhì)上我們最終是定義了一個(gè)簡單的XML通迅協(xié)議,一直覺得協(xié)議通信應(yīng)該也算一種模式,而且在我目前所見的模式中也許是最"松"的藕合.
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/jjyjjyjjy/archive/2008/11/23/1339516.html
總結(jié)
以上是生活随笔為你收集整理的不同系统之间数据的交互的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用 CSS selector 改变悬停
- 下一篇: 浅谈继承