2010-04-12 16 views
7

Muszę oddzielić naszą aplikację od lekkiej aplikacji GUI i aplikacji logiki biznesowej. Nie będzie to konfiguracja klient/serwer jako taka, ponieważ komponent "serwer" będzie miał tylko jednego klienta.Java: Gniazda lub RMI?

Drugim ograniczeniem w aplikacji jest to, że ma tylko jeden punkt wejścia/wyjścia. Dlatego jeśli użyjemy RMI, będzie to zawsze tylko jedna funkcja. Wszystkie dane formularzy są już zawinięte w łańcuch i przechodzą przez jeden obszar transportu.

Czy powinienem użyć gniazdek Java, aby ulepszyć tę aplikację lub skorzystać z usługi RMI? Lub jakiejś innej technologii Java?

Zrobiłem poprzedni post, określając wymagania naszej aplikacji, jednak bez odpowiedzi. https://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp

Pozdrawiam.

+0

możliwy duplikat http://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp – paxdiablo

+0

Myślę, że sam odpowiedziałeś na to pytanie. Jeśli jest lekki i ma jednego użytkownika i czujesz się komfortowo z RMI, powinieneś po prostu iść z nim. –

+1

@paxdiablo * możliwe * duplikowanie? :) – oedo

Odpowiedz

6

osobiście, RMI wydaje się trochę przesadzony, jeśli masz tylko jedną metodę wywołania, a wszystkie twoje dane są już zawinięte w ciąg. Wyobrażam sobie, że prosty serwer gniazd wystarczałby dla twoich potrzeb. jednak RMI daje ci mnóstwo rzeczy za darmo, takich jak wielowątkowość, rozproszone gromadzenie śmieci, porządkowanie obiektów itp. Jednak jeśli masz tylko jednego klienta, wielowątkowość może nie być przydatna, a ponieważ robisz własne porządkowanie obiektów, to te korzyści mogą niczego nie zyskać.

tam dobra strona o możliwościach RMI jest tutaj: http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp

+0

To właśnie myślałem. Zachowaj to w prosty sposób lub użyj RMI, a później skorzystaj z jego innych funkcji. Nadal nie jestem pewien, ale chciałem tylko upewnić się, że nie ma innych frameworków/API, o których nie wiedziałem. Twoje zdrowie. – StillLearning

2

ponieważ twój protokół jest już bardzo prosty (po prostu przekazujesz ciąg) Sugeruję, żebyś po prostu używał gniazd. zaletą jest to, że na przykład nie będziesz związany z Javą na obu końcach - będzie można łatwo zmienić interfejs na inny język.

1

Można rozważyć owijania swój punkt wejścia serwera jako serwletu i robi post z klientem.

+0

tak, zajmuje się przygotowaniem i likwidacją. Jedyną wadą jest to, że potrzebujemy serwera WWW. –

2

Po wykonaniu aplikacji, które wykorzystywały surowe gniazda do komunikacji, która używała RMI, i która używała SOAP, jest najłatwiejsza (przez cienkie włosy) do korzystania z RMI, ale wtedy jesteś mocno zobowiązany do używania Javy do wszystkiego. Kluczem do tego, dlaczego RMI jest najłatwiejszy, jest to, że zapewnia wysyłanie całych wiadomości i zawiera podstawowy szkielet wyszukiwania, a mimo to nie ma złożoności SOAP (co jest dużo bardziej skomplikowane niż wszystko inne wymienione powyżej).

Powiązane problemy