基於.Remoting的分布式訊息處理架構

來源:互聯網
上載者:User

        很多應用都是基於伺服器(SERVER)/用戶端(CLIENT),這樣可以很好地把功能分布到不同的電腦上去處理大大提高了系統的靈活性。這種方式的運行特點就是用戶端向伺服器發送訊息,伺服器處理後把結果返回給用戶端處理。在.Net平台下提了兩中方案WebService和Remoting。Remoting提供很強的對象遠端能力,在它基礎可以快整建立自己的訊息處架構方便實現分布式系統處理系統。

(圖1)
1 制定訊息介面和訊息處理介面
在確定功能之前必須把規範制定下來,這樣才能方便工作的開展。
明確訊息介面規則定下來,盡量簡單;當然不能直接用object太泛也不能表達目的。
訊息的規則:
public interface IMessage
  {
   string ID
   {
    get;
   }
   string Name
   {
    get;
    set;
   }
   object Body
   {
    get;
    set;
   }
 }
郵件規則已經明確了,還必須明確能夠處理訊息的規則。如果沒有這個規則就不能工作,因為沒有資訊可以把訊息和處理的類綁定在一起。
處理郵件規則:
public interface IDispense
  {
   void Accept(IMessage message,ServerContext context);
 }
2 制定訊息和業務處理關聯設定檔
這一項是起著橋樑的作用,它告訴訊息處理容器對不同的訊息應該執行那些功能。
可以描述那些訊息觸發那些功能:
<Message blltype="ClassName,Assembly" msgtype="ClassName,Assembly" single="bool"/>
也可以描述這個名稱空間的所有訊息觸發那些功能
<Message blltype="ClassName,Assembly" msgtype="Namespace.*,Assembly" single="bool"/>
single用於描述只執行個體一個對象處理,還是針對每個訊息單獨執行個體化。
3 制定訊息分配處理容器
訊息處理容器是主要用於管理和訊息分發作用,服務端接收訊息後發送到容器中處理,容器會根據訊息的類型進行處理髮觸發相應的功能。
4 類圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.