信息系統(tǒng)之間數(shù)據(jù)對接的方法和實(shí)例

信息系統(tǒng)A和信息系統(tǒng)B,假設(shè)B要訪問A的數(shù)據(jù)庫

問題:

◎?是否擔(dān)心數(shù)據(jù)丟失蒲拉,比如丟失率?1%肃拜?

◎?系統(tǒng)時效性要求是否很高,比如是:實(shí)時雌团、秒級、分鐘級還是小時級士聪?

◎?系統(tǒng)間網(wǎng)絡(luò)環(huán)境是否OK锦援,比如是:互聯(lián)網(wǎng)、同機(jī)房剥悟、同城專線灵寺?

◎?系統(tǒng)間有無安全通訊信道等問題需要保障?

初步建議:

◎?不暴露數(shù)據(jù)庫区岗,否則:人家統(tǒng)計你等待略板、人家鎖表你死機(jī)、人家改數(shù)你糾錯慈缔;

◎?約松耦合越好叮称,能批處理就不要實(shí)時處理,能用數(shù)據(jù)交換就不用接口調(diào)用藐鹤,能用異步接口就不用同步接口瓤檐;

◎?是不是WebService隨意,不過現(xiàn)在有不少輕量級方案娱节,主要還是看安全性和性能要求了



第一種方案

?Socket方式是最簡單的交互方式挠蛉。是典型才C/S交互模式。一臺客戶機(jī)肄满,一臺服務(wù)器谴古。服務(wù)器提供服務(wù),通過IP地址和端口進(jìn)行服務(wù)訪問稠歉。而客戶機(jī)通過連接服務(wù)器指定的端口進(jìn)行消息交互掰担。其中傳輸協(xié)議可以是TCP/UDP 協(xié)議。而服務(wù)器和約定了請求報文格式和響應(yīng)報文格式轧抗。


socket演示

目前我們常用的http調(diào)用恩敌,java遠(yuǎn)程調(diào)用,webservices 都是采用的這種方式横媚,只不過不同的就是傳輸協(xié)議以及報文格式纠炮。

這種方式的優(yōu)點(diǎn):

1 易于編程月趟,目前java提供了多種框架,屏蔽了底層通信細(xì)節(jié)以及數(shù)據(jù)傳輸轉(zhuǎn)換細(xì)節(jié)恢口。

2 容易控制權(quán)限孝宗。通過傳輸層協(xié)議https,加密傳輸?shù)臄?shù)據(jù)耕肩,使得安全性提高因妇。

3 通用性比較強(qiáng),無論客戶端是.net架構(gòu)猿诸,java婚被,python 都是可以的。尤其是webservice規(guī)范梳虽,?使得服務(wù)變得通用址芯。

這種方式的缺點(diǎn):

1 服務(wù)器和客戶端必須同時工作,當(dāng)服務(wù)器端不可用的時候窜觉,整個數(shù)據(jù)交互是不可進(jìn)行谷炸。

2 當(dāng)傳輸數(shù)據(jù)量比較大的時候,嚴(yán)重占用網(wǎng)絡(luò)帶寬禀挫,可能導(dǎo)致連接超時旬陡。使得在數(shù)據(jù)量交互的時候,服務(wù)變的很不可靠语婴。

第二種方案:ftp/文件共享服務(wù)器方式

對于大數(shù)據(jù)量的交互描孟,采用這種文件的交互方式最適合不過了。系統(tǒng)A和系統(tǒng)B約定文件服務(wù)器地址腻格,文件命名規(guī)則,文件內(nèi)容格式等內(nèi)容画拾,通過上傳文件到文件服務(wù)器進(jìn)行數(shù)據(jù)交互。

ftp/文件共享服務(wù)器的方式

最典型的應(yīng)用場景是批量處理數(shù)據(jù):例如系統(tǒng)A把今天12點(diǎn)之前把要處理的數(shù)據(jù)生成到一個文件菜职,系統(tǒng)B第二天凌晨1點(diǎn)進(jìn)行處理青抛,處理完成之后,把處理結(jié)果生成到一個文件酬核,系統(tǒng)A 12點(diǎn)在進(jìn)行結(jié)果處理蜜另。這種狀況經(jīng)常發(fā)生在A是事物處理型系統(tǒng),對響應(yīng)要求比較高嫡意,不適合做數(shù)據(jù)分析型的工作举瑰,而系統(tǒng)B是后臺系統(tǒng),對處理能力要求比較高蔬螟,適合做批量任務(wù)系統(tǒng)此迅。

這種方式的優(yōu)點(diǎn):

1 在數(shù)據(jù)量大的情況下,可以通過文件傳輸,不會超時耸序,不占用網(wǎng)絡(luò)帶寬忍些。

2 方案簡單,避免了網(wǎng)絡(luò)傳輸坎怪,網(wǎng)絡(luò)協(xié)議相關(guān)的概念罢坝。

這種方案的缺點(diǎn):

1 不太適合做實(shí)時類的業(yè)務(wù)

2 必須有共同的文件服務(wù)器,文件服務(wù)器這里面存在風(fēng)險搅窿。因?yàn)槲募赡鼙淮鄹泥夷穑瑒h除,或者存在泄密等男应。

3 必須約定文件數(shù)據(jù)的格式闹司,當(dāng)改變文件格式的時候,需要各個系統(tǒng)都同步做修改殉了。

第三種方案:數(shù)據(jù)庫共享數(shù)據(jù)方式

系統(tǒng)A和系統(tǒng)B通過連接同一個數(shù)據(jù)庫服務(wù)器的同一張表進(jìn)行數(shù)據(jù)交換开仰。當(dāng)系統(tǒng)A請求系統(tǒng)B處理數(shù)據(jù)的時候,系統(tǒng)A Insert一條數(shù)據(jù)薪铜,系統(tǒng)B select 系統(tǒng)A插入的數(shù)據(jù)進(jìn)行處理。


數(shù)據(jù)庫共享數(shù)據(jù)

這種方式的優(yōu)點(diǎn):

1 相比文件方式傳輸來說恩溅,因?yàn)槭褂玫耐粋€數(shù)據(jù)庫隔箍,交互更加簡單。

2由于數(shù)據(jù)庫提供相當(dāng)做的操作脚乡,比如更新蜒滩,回滾等。交互方式比較靈活,而且通過數(shù)據(jù)庫的事務(wù)機(jī)制奶稠,可以做成可靠性的數(shù)據(jù)交換俯艰。

這種方式的缺點(diǎn):

1 當(dāng)連接B的系統(tǒng)越來越多的時候,由于數(shù)據(jù)庫的連接池是有限的锌订,導(dǎo)致每個系統(tǒng)分配到的連接不會很多竹握,當(dāng)系統(tǒng)越來越多的時候,可能導(dǎo)致無可用的數(shù)據(jù)庫連接

2 一般情況辆飘,來自兩個不同公司的系統(tǒng)啦辐,不太會開放自己的數(shù)據(jù)庫給對方連接,因?yàn)檫@樣會有安全性影響

第四種方案:message方式

Java消息服務(wù)(Java Message Service)是message數(shù)據(jù)傳輸?shù)牡湫偷膶?shí)現(xiàn)方式蜈项。系統(tǒng)A和系統(tǒng)B通過一個消息服務(wù)器進(jìn)行數(shù)據(jù)交換芹关。系統(tǒng)A發(fā)送消息到消息服務(wù)器,如果系統(tǒng)B訂閱系統(tǒng)A發(fā)送過來的消息紧卒,消息服務(wù)器會消息推送給B侥衬。雙方約定消息格式即可。目前市場上有很多開源的jms消息中間件,比如 ?ActiveMQ, OpenJMS 轴总。


message方式

這種方式的優(yōu)點(diǎn):

1 由于jms定義了規(guī)范直颅,有很多的開源的消息中間件可以選擇,而且比較通用肘习。接入起來相對也比較簡單

2 通過消息方式比較靈活际乘,可以采取同步,異步漂佩,可靠性的消息處理脖含,消息中間件也可以獨(dú)立出來部署。

這種方式的缺點(diǎn):

1 學(xué)習(xí)jms相關(guān)的基礎(chǔ)知識投蝉,消息中間件的具體配置养葵,以及實(shí)現(xiàn)的細(xì)節(jié)對于開發(fā)人員來說還是有一點(diǎn)學(xué)習(xí)成本的

2 在大數(shù)據(jù)量的情況下,消息可能會產(chǎn)生積壓瘩缆,導(dǎo)致消息延遲关拒,消息丟失,甚至消息中間件崩潰庸娱。

下面具體來分析一個場景着绊,來看看系統(tǒng)之間數(shù)據(jù)傳輸?shù)膽?yīng)用 ?場景 目前業(yè)務(wù)人員需要導(dǎo)入一個大文件到系統(tǒng)A,

系統(tǒng)A保存文件信息熟尉,而文件里面的明細(xì)信息需要導(dǎo)入到系統(tǒng)B進(jìn)行分析归露,當(dāng)系統(tǒng)B分析完成之后,

需要把分析結(jié)果通知系統(tǒng)A斤儿。



轉(zhuǎn)自:http://blog.csdn.net/yanmh007/article/details/78590409

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剧包,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子往果,更是在濱河造成了極大的恐慌疆液,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陕贮,死亡現(xiàn)場離奇詭異堕油,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)飘蚯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門馍迄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人局骤,你說我怎么就攤上這事攀圈。” “怎么了峦甩?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵赘来,是天一觀的道長现喳。 經(jīng)常有香客問我,道長犬辰,這世上最難降的妖魔是什么嗦篱? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮幌缝,結(jié)果婚禮上灸促,老公的妹妹穿的比我還像新娘。我一直安慰自己涵卵,他們只是感情好浴栽,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著轿偎,像睡著了一般典鸡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坏晦,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天萝玷,我揣著相機(jī)與錄音,去河邊找鬼昆婿。 笑死球碉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仓蛆。 我是一名探鬼主播汁尺,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼多律!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搂蜓,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狼荞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后帮碰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體相味,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年殉挽,在試婚紗的時候發(fā)現(xiàn)自己被綠了丰涉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡斯碌,死狀恐怖一死,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情傻唾,我是刑警寧澤投慈,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布承耿,位于F島的核電站,受9級特大地震影響伪煤,放射性物質(zhì)發(fā)生泄漏加袋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一抱既、第九天 我趴在偏房一處隱蔽的房頂上張望职烧。 院中可真熱鬧,春花似錦防泵、人聲如沸蚀之。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恬总。三九已至,卻和暖如春肚邢,著一層夾襖步出監(jiān)牢的瞬間壹堰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工骡湖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贱纠,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓响蕴,卻偏偏與公主長得像谆焊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子浦夷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359