2010-11-19 29 views
2

我正在爲嵌入式設備開發一些應用程序;它們應該與使用C#2.0嵌入的Windows CE 5.0和XP兼容。 應用程序應交換通常表示事件的小消息。 我使用TCP套接字和作爲調度程序的獨立服務器(使用pub/sub模式)實現了第一個原型。它工作,但我想知道如果使用MSMQ將是一個更好的解決方案。持久的消息會在幾種情況下幫助我,但通常所有事件都應該由目標應用程序立即使用。 我想知道這兩種解決方案的優缺點,以幫助我做出決定。嵌入式系統:插座與MSMQ

謝謝

回答

3

好,消息隊列是偉大的,它保證了交付事務性隊列。這有助於使您的系統適應崩潰和意外的重新啓動。但是,如果您可以從這樣的災難中重新啓動應用程序,並且能夠在再次開始接收消息之前恢復狀態,那麼這通常只會奏效。

這是一個不平凡的要求。如果你不能滿足它,任何有狀態的消息往往會使機器再次失敗。消息中幾乎總是顯式的狀態,即使它們的內容不是有狀態的,僅僅依靠它們的接收順序並改變程序狀態。這一直是中間件的禍害,假設網絡是可以被抽象出來的實現細節的軟件在實踐中並不適用。

我以爲this answer在SO表達這個問題特別好。

2

我傾向於抽象出一個接口並基於接口實現它們,並將決定作爲一個配置項目。讓用戶根據潛在變化的需求選擇協議。