2010-04-12 79 views
7

我需要將我們的應用程序分爲輕量級gui應用程序和業務邏輯應用程序。這不會是客戶端/服務器設置,因爲「服務器」組件只有一個客戶端。Java:套接字還是RMI?

應用程序中的另一個限制是它只有一個入口/出口點。因此,如果我們要使用RMI,它只會在一個函數上。所有表單數據已經包裝成一個字符串並通過一個傳輸區域。

我應該使用Java套接字來增強這個應用程序,還是使用RMI?還是其他一些Java技術?

我做了以前的文章概述了我們的應用程序的要求,但它沒有得到答覆。 https://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp

乾杯。

+0

可能的重複http://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp – paxdiablo 2010-04-12 08:31:26

+0

我想你自己已經回答了這個問題。如果它是輕量級和單一用戶,並且您對RMI感到滿意,那麼您應該繼續使用它。 – 2010-04-12 08:34:55

+1

@paxdiablo *可能*重複? :) – oedo 2010-04-12 08:35:35

回答

6

個人而言,如果你只有一個方法可以調用,並且你的所有數據已經​​被包裝在一個字符串中,RMI看起來有點矯枉過正。我想象一個簡單的套接字服務器就足夠滿足您的需求。然而,RMI會給你一些免費的東西,比如多線程,分佈式垃圾回收,對象編組等,但是如果你只有一個客戶端,那麼多線程可能沒有用,因爲你正在做自己的對象編組,這些好處可能不會帶來任何收益。

有關於RMI的能力,良好的頁面在這裏:http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp

+0

這就是我的想法。保持簡單,或使用RMI,以後再利用其他功能。我仍然不確定,但我只是想確保沒有其他框架/ API我不知道。乾杯。 – StillLearning 2010-04-13 05:55:21

2

因爲你的協議已經非常簡單了(你只需要傳遞一個字符串)我建議你只需要使用套接字。 的好處是,例如,你不會被束縛在Java的兩端 - 它可以很容易地將UI切換到另一種語言。

1

您可以考慮包裝你的服務器入口點作爲一個servlet和做來自客戶端的POST。

+0

是的,負責編組和解組。唯一的缺點是,我們需要Web服務器。 – 2015-05-29 07:19:28

2

在完成了使用原始套接字進行通信的應用程序之後,使用RMI的應用程序和使用SOAP的應用程序使用RMI最簡單(但通過簡單的方式),但是然後強烈地使用Java來處理所有事情。 RMI最簡單的關鍵在於它確保發送整個消息包含一個基本的發現框架,但它沒有SOAP的複雜性(比上面列出的其他所有內容複雜得多)。