2012-09-25 196 views
1

在零售場景中,每個商店在每天結束時向日後交易系統報告其日常交易。今天,由日常事務和一些其他元信息組成的文件將通過FTP從商店傳輸到後端。我目前正在研究用其他方法取代FTP。 MSMQ已被建議作爲替代運輸機制。所以我的問題是,我們是否需要編寫一個自定義Windows服務,將日常事務文件粘貼到消息對象中,並在途中發送它,或者MSMQ中有任何out-box機制來處理這個問題?通過MSMQ發送文件

另外,既然我們想要傳輸的文件可以達到5-6 Mb的大型商店,我們應該排除MSMQ?在那種情況下,我們應該研究其他建議的技術嗎?

乾杯!

+0

你能把這些文件可靠地壓縮到4mb以下嗎? –

回答

2

您可以看看IBM Sterling Managed File Transfer和WebSphere MQ Managed File Transfer產品。

如果您需要消息傳遞和文件傳輸功能,那麼可以考慮WebSphere MQ MFT。另一方面,如果你的要求只是文件傳輸,那麼你可以看看Sterling MFT。

+0

任何想法IBM Sterling MFT的定價模式是什麼樣子?客戶現在主要運行基於Microsoft的系統。所以他們一定會在微軟的堆棧上尋找類似的東西 – flalar

+0

對不起,沒有足夠的知識來談論定價模式 – Shashi

3

對於像這樣的情況,NServiceBus對MSMQ提供了一個很好的抽象。您可以獲得MSMQ的可靠消息傳遞方面的知識,以及用於定義消息的非常好的編程模型。

MSMQ限制爲4MB的郵件大小,但是,有兩種方法,你可以在NServiceBus處理這個:

  1. NServiceBus有一個稱爲數據總線的概念,這需要較大的附件在並使用其他方法可靠地傳輸它們。這是由基礎設施處理的,就您的消息處理程序而言,數據就在那裏。
  2. 您可以將有效負載分解爲更小的原子消息並將其作爲普通消息發送。 NServiceBus基礎設施將確保它們都到達目的地並進行處理。我會推薦這種方法,除非將整個大型數據轉儲作爲一個原子事務進行處理是絕對關鍵的。

要注意的另外一件事是,你每晚做轉儲的事實可能是以前的系統的限制。使用NServiceBus可以更改系統,以便以更直接的方式發送這些信息,從而可以隨時獲得更多最新的數據,這對業務來說可能是一個巨大的勝利。

+0

我們已經有了一個分塊的方法,如建議的運氣好。讓我們保持在4MB以下,但不像聊天。 –

1

如果商店在不同的網絡上並通過互聯網進行通信,那麼MSMQ並不是真正的選擇。 NServiceBus提供了一個gateway的概念,它允許通過HTTP或HTTPS異步傳輸MSMQ消息。

1

通過郵件傳輸發送文件不是微不足道的。如果將整個文件放入單個消息中,您可以獲得所需的原子性,但是調整消息傳遞提供程序以在消息大小方面存在很大差異可能具有挑戰性。如果所有文件的大小大致相同,則每條消息一個文件就是最簡單的解決方案。

另一方面,您可以將文件拆分爲多個消息,但是必須按照正確的順序重新組合它們,包括檢測和重新發送缺失段的協議,完整性檢查接收到的文件文件發送等。您也可能想要檢查傳輸過程中兩端的文件是否未更改。考慮是否要移動時

隨着這些系統還需要系統有足夠的智能來管理正常和異常情況下發送和接收文件的配置,登錄轉讓等

所以發送兩個最佳選項要麼本地移動到消息傳遞並完全放棄文件,要麼使用企業管理的文件傳輸解決方案,該解決方案運行在您選擇的消息傳遞提供商之上。如果您希望通過強大的異常處理和報告來完成這項工作,那麼現成的MFT產品從長遠來看都不會像開發它自己一樣成本高。

+0

感謝您的回覆! 在Microsoft中心環境中推薦的任何MFT產品?我知道客戶已經投資了BizTalk,但不知道它在這個領域的能力...... – flalar

+1

完全披露:我的僱主是這種產品的供應商。也就是說,WebSphere MQ V7.5託管文件傳輸將是一個很好的候選人,並且在BizTalk環境中,我建議仔細查看WebSphere Message Broker V8。 WMB可以處理所有的文件I/O,它最近也與Visual Studio緊密集成,因此程序員可以根據需要選擇文件或消息並將它們直接集成到應用程序中。 WMB的新許可證允許您在購買完整許可證(即使是入門級軟件包)時無需額外費用即可將其置於所有開發人員桌面上。 –