JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » EJB / 其它Java EE 討論區 » JMS/MDB  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Lingo, 讓JMS來做RPC.
semap





發文: 10
積分: 0
於 2006-11-17 01:00 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
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


reply to postreply to post
==================================

我的Blogger

http://semapwang.wordpress.com/

==================================
» JWorld@TW »  EJB / 其它Java EE 討論區 » JMS/MDB

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8