2011-05-13 147 views
0

我正在尋找.NET解決方案以下方案。期望任何已知的框架,解決方案或一些設計想法來設計這個組件。服務層設計問題

我們有一個WCF服務,可以通過回叫客戶端來更新他們的UI。一個簡單的例子:當讓我們說10個用戶連接到這個服務,並且1個用戶更新一個網格記錄並保存它時,服務會回撥一個電話來更新其他9個客戶端的UI。這項服務做了很多事情,因此這種與客戶的直接聯繫減緩了這種情況,隨着客戶數量的增長,我們預見到了一些問題。所以,我們正在考慮在客戶端和服務交談處添加另一層來監聽和廣播他們的消息/事件。

我正在尋找一種解決方案,其中像消息總線或消息代理或pub-sub模型框架或想法,其中客戶端和服務是分離的。這也可以用於分佈式環境設施。想知道WCF提供任何設施或一些已知的解決方案或設計想法會幫助或也想知道像ESB這樣的解決方案是過度的這種情況下,或者我們有什麼像ESB但重量輕的MS或MSMQ只是解決這種情況。

非常感謝, 瑪尼

+0

它可能有助於更詳細地描述客戶端(即WinForm,基於瀏覽器的應用程序,Java等)。推動消息總線/代理方案的要求是是否需要有保證的交付。如果客戶偶爾會錯過通知,那麼可以使用更輕量級的東西。這裏有一些好的想法(http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/)。 – 2011-05-13 17:34:45

+0

這是一個基於winforms的交易平臺。 – 2011-05-14 21:35:42

回答

0

這真的很難回答,因爲,與這樣多的問題,這一切都取決於很多的因素都沒有給出。

  1. 客戶數量。在10到500.000.000(併發)客戶端之間有許多級別和解決方案。瞭解併發客戶端的數量以及是否需要在重新聯機時發送未連接的客戶端信號也很重要。

  2. 技術。如果必須支持多個客戶端平臺,選擇將會有很大的不同。

  3. 建築。你提到了一個ESB。你描述的場景幾乎不是開發ESB的(主要)原因。所以如果沒有其他的理由來開發ESB,我會遠離那條路。另一方面,如果存在ESB,它可以很容易地根據給定的ESB解決您的問題。 (我可能在這裏是錯誤的,因爲我可能會認爲ESB與你想要的完全不同)

  4. 安全性。在多平臺環境中,安全可以成爲一種馴服的野獸,但同時也是至關重要的。所以安全要求可能是一個非常有影響力的因素。

  5. 可靠性。客戶錯過信息有多糟糕?根據答案,設計可能會非常不同。

  6. 耐用性。如果您需要通過加載備份來恢復系統,您希望消息傳遞系統做什麼?

  7. 表現。它應該多快?這裏有很多後果。一天發送的消息與10秒內發送的消息之間的差異是巨大的。

只要這些因素(和我遺漏了很多)都是未知的,幾乎不可能提供一個合適的解決方案。

你提到的所有技術都是有效的,但還有很多,有各種配置和組合可能。

+0

這是一個基於winforms的交易平臺。我們也在考慮可以在兩種服務之間使用相同的解決方案。我們有一個服務A1將消息發送給其他服務A的scnearios,我們正在考慮爲分佈式場景創建服務A2,A3,A4。所以,我們預計同樣的解決方案也適合這種情況。 – 2011-05-14 21:51:07

+0

我很抱歉,但這並沒有回答我的任何問題。 – 2011-05-15 05:40:53