Lingo, 讓JMS來做RPC

          Posted on 2009-06-05 19:08 林光炎 閱讀(358) 評論(0)  編輯  收藏 所屬分類: J2EE
          Java programmer講到RPC(Romote Procedure Call), 多半會想到 RMI,
          用RMI, 可以讓我們很容易的呼叫遠端的 mothod.

          但是, RMI 有一些缺點, 其中每一個method都要 throw RemoteException, 不過最近我都用Spring framework, 他已經讓我們處理掉了這個麻煩...

          另外一個RMI的缺點, 也就市本篇文章的重點, 就是method的呼叫者與被呼叫者的關係太緊密了,
          也就是說, client必須指定我所要呼叫的server是在網路的哪一個位址...

          JMS,則提供了一個方式,讓client (producer)送出message, 但不指定誰來收這一個message,
          這種 loosely coupling 的方式, 讓我們的程式更有彈性, 但是用JMS來做RPC還是有一些麻煩的地方

          * procedure送出的是message而不是 呼叫method
          * 基本上 JMS是 asynchronous, 也就是說 proceudre送出message後, message還沒被處理, procedure就繼續執行下去.這與我們一般RMI 的用法不一樣.


          然而Lingo 幫我們解決了這兩個問題, 透過Lingo, 我們可以讓client直接呼叫server的method (而不是發送message, 在server這端 也不用去接受message), 但是並不指定是哪一個server幫我們處理這一個method call. 這對multiple server和load-balance很有幫助.

          Lingo的範例, 可以看下面這個網址, 相當簡單明瞭

          http://lingo.codehaus.org/Example

          附帶一提的是, lingo不但可以用 synchronous呼叫method, 另外也可以用synchronous呼叫method.

          好用吧.....

          參考資料 : http://lingo.codehaus.org/Home

          posts - 104, comments - 33, trackbacks - 0, articles - 0

          Copyright © 林光炎

          主站蜘蛛池模板: 宿迁市| 高要市| 西昌市| 衡水市| 嘉义市| 福海县| 兰西县| 大化| 翼城县| 田东县| 定安县| 沾益县| 汉沽区| 库伦旗| 五指山市| 阳东县| 铜陵市| 江都市| 武川县| 涿州市| 开远市| 松江区| 哈密市| 龙南县| 四子王旗| 施甸县| 兴城市| 南投县| 玉山县| 疏勒县| 永安市| 涪陵区| 平凉市| 通榆县| 东平县| 大渡口区| 禄丰县| 甘洛县| 长宁县| 海口市| 开平市|