1. 程式人生 > >同步方式的訊息傳送和非同步方式的訊息傳送

同步方式的訊息傳送和非同步方式的訊息傳送

通訊有兩類不同的基本方式: 具有依時性的同步方式以及與時間無關的非同步方式。訊息傳送中介軟體有許多不同型別, 它們分別都能夠支援一類基本方式的訊息通訊, 有時可以支援兩類方式。

根據定義, 同步執行的特徵為: 在兩個通訊應用系統之間必須要進行同步, 兩個系統必須都在正常執行, 並且會中斷客戶端的執行流, 轉而執行呼叫。傳送程式和接收程式都必須一直做好相互通訊的準備。傳送程式首先向接收程式發起一個請求(傳送訊息)。傳送程式緊接著就會堵塞它自身的程序, 直到收到接收程式的響應。傳送程式在收到響應後會繼續向下進行處理。同步方式的請求/響應通訊如圖2.6所示。在2.4節中, 將討論同步通訊的一個具體例項——遠端過程呼叫。

  

當使用非同步訊息傳送時, 呼叫者在傳送訊息以後可以不用等待響應, 可以接著處理其他任務。對於非同步通訊, 一個應用程式(請求者或傳送者)將請求傳送給另一個應用程式, 然後可以繼續向下執行它自身的其他任務。傳送程式無須等待接收程式的執行和返回結果, 而是可以繼續處理其他請求。與同步方式不同, 非同步方式中兩個應用系統(傳送程式和接收程式)無須同時都在執行, 也無須同時都在處理通訊任務。

通常使用排隊機制來實現非同步訊息傳送。有兩種不同型別的排隊方式: 儲存/轉發、 釋出/訂閱, 在2.5節中將討論這兩類排隊方式。

在選擇通訊方式的型別時, 必須仔細斟酌鬆耦合介面和緊耦合介面的利弊, 以及非同步互動和同步互動的利弊。在下面的兩節中, 我們將更詳細地討論這些通訊方式。

相關推薦

no