2 Stimmen

Verteilte Java-Server-Client-Anwendung

Ich muss eine verteilte Anwendung entwerfen, die aus einem Server (entwickelt in Java) und einem oder mehreren entfernten GUI-Clients (Swing-Anwendung mit Windows) besteht.

Wie bereits erwähnt, handelt es sich bei den Clients um Swing-GUI-Anwendungen, die eine Verbindung zum Server herstellen können, um Daten zu empfangen und zu senden. Die Kommunikation ist bidirektional (Server <=> Clients). Die über das Netz gesendeten Daten bestehen hauptsächlich aus meinen Domänenlogikobjekten.

Zwei kurze Beispiele: Ein Client ruft den Server an, um Daten zum Auffüllen einer Tabelle in einem Fenster zu erhalten; der Server ruft den Client an, um Daten zum Aktualisieren eines bestimmten Widgets (wie einer Schaltfläche) zu senden.

Die Datenmenge, die zwischen Server und Clients übertragen wird, und die Häufigkeit der Netzanrufe sind nicht besonders hoch.

Welche Technologie schlagen Sie mir für die Server-Client-Kommunikation vor?

Mir schwebt eine Technologie vor, die für mich geeignet ist, aber ich würde gerne Ihre Meinung wissen.

Herzlichen Dank.

5voto

msp Punkte 3192

Die erste Technologie, die mir in den Sinn kam, war RMI - geeignet für die Kommunikation zwischen einem Java-Client und einem Java-Server. Aber Sie könnten Schwierigkeiten bekommen, wenn Sie die Client-Technologie auf - sagen wir - ein Webinterface umstellen wollen.

2voto

Eugene Ryzhikov Punkte 16656

Ich würde mich für RMI entscheiden, aber die gesamte Architektur mit dem Spring-Framework implementieren. Auf diese Weise ist sie unabhängig von der verwendeten Technologie und kann fast ohne Programmieraufwand auf andere Kommunikationswege (wie HTTP oder andere) umgestellt werden.

UPDATE: Und Spring erlaubt Ihnen, keinen RMI-spezifischen Code zu haben.

0voto

Tanmay Punkte 1527

Ich glaube, dass Steckdosen den Zweck erfüllen sollten. Sie sind flexibel und nicht besonders schwer zu programmieren/zu warten. Die meisten Programmieranfänger sollten auch in der Lage sein, sie zu warten. Sie sind außerdem schnell und passen sich an jede Art von Umgebung an.

Es sei denn, Ihr Server befindet sich außerhalb des Unternehmens oder Sie erwarten Probleme mit der Firewall. In diesem Fall sind Webdienste der richtige Weg, da die grundlegende Kommunikation über Port 80 erfolgt.

0voto

Nemi Punkte 3001

Ich würde mich msparers Vorschlag von RMI anschließen, allerdings würde ich nur EJB3 verwenden (das RMI als Kommunikationsprotokoll verwendet). EJB3 ist sehr einfach, und selbst wenn Sie die anderen Funktionen, die EJB bietet, nicht nutzen (z. B. Sicherheit), können Sie Container Managed Transactions (CMT) verwenden. Das macht die Entwicklung wirklich einfach.

Für die Kommunikation zwischen Server und Client würden Sie wahrscheinlich JMS verwenden wollen. Auch hier ist es mit EJB3 ziemlich einfach, dies mit Annotationen zu tun. Die Clients abonnieren den Nachrichtendienst und erhalten Aktualisierungsbenachrichtigungen vom Server.

Und ja, ich arbeite derzeit an einer Anwendung, die genau das tut. Leider verwenden wir EJB2.1. Dennoch bin ich der Meinung, dass EJBs hier wirklich glänzen. Die Verwendung von EJBs in einer Webanwendung ist häufig übertrieben, aber in einer verteilten Client/Server-Anwendung funktionieren sie sehr gut.

0voto

lexeme Punkte 2830

Sie können versuchen, mit ICE http://www.zeroc.com für den Aufbau einer Server-Client-Verbindung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X