Java Server mit verschiedenen Kommunikationsmöglichkeiten

Status
Nicht offen für weitere Antworten.

mmp

Mitglied
Hallo,

Nachdem ich jetzt schon lange erfolglos gesucht habe, hab ich mich jetzt dazu entschlossen das problem hier zu posten.
Die Idee ist, dass mein Server verschiedene Möglichkeiten der Kommunication unterstützen soll. Zum Beispiel soll er sowohl über xml, jxta etc. kommunizieren können. Jetzt sitze ich hier und versuche dafür eine einfache und leicht erweiterbare lösung zu finden.

Eine möglichkeit wäre sicher für jedes Kommunikationsmöglichkeit einen eigenen Port zu reservieren, was ich allerdings etwas unschön finde.

Bin für jegliche Diskussion, Vorschläge dankbar

mfg mmp
 
T

tuxedo

Gast
Das Schlüsselwort "Interface" sagt dir was, oder etwa nicht?
 

mmp

Mitglied
:D naja, schon klar wie ich objekt kapselung und ersetzbarkeit erziele. Mir isses hier eher um architekturprobleme gegangen. Das im Grunde alles über Interfaces gezogen wird, ist ja wohl selbstverständlich.
Die Frage war ob es eine elegante Lösung gibt, wie ich es schaffe, dass der gesamte Server auf einen Port horcht, aber sowohl verschiedene Protokolle auf verschiedenen Transports unterstützt. (siehe Axis)

mfg mmp
 
T

tuxedo

Gast
Sorry, aber dann hattest du deine ursprüngliche Frage zu ungenau gestellt.

Wenn du nur einen Port offen haben willst und darüber verschiedene Kommunikationsarten fahren willst, dann frage ich mich zwangsläufig: Ist RMI eine Option? Wenn ja: Dann wird's aufwendiger. Da reicht es ja nicht das Protokoll zu wechseln.

Wenn es dir aber prinzipiell um eine Socket-Kommunikation geht, die verschiedene Protokolle unterstützt lautet meine Antwort wieder erstmal: Interfaces als Plugin-Konzept für Protokolle ;-)

Vielleicht kannst du näher erläutern was für Protokolle genutzt werden sollen und was für eine Kommunikationstechnik eingesetzt werden soll (Sockets, RMI, ...).


- Alex
 
T

tuxedo

Gast
Ah, ich glaub ich versteh worauf du hinaus willst. Du willst nicht das Protokoll hin und wieder mal austauschen, du willst einen Server haben den mehrere Protokolle über einen Port gleichzeitig kann... ?!

Wenn ich also richtig liege, dann kannst du die Protokolle doch nochmal in ein MasterProtokoll verpacken, damit der Server anhand der Header-Daten im MasterProtokoll weiß wie er die Daten auspacken muss (XML,...).

Das würde allerdings heißen dass deine Clients da mitspielen müssen.

Ansonsten weiß der Server ja nicht wie er die Daten jetzt behandeln soll.

Du könntest auch nen zweiten Port öffnen und den als SteuerPort nehmen: Die Clients teilen dem Server über diesen Port mit, welches Protokoll sie verwenden.

- Alex
 

mmp

Mitglied
Sehr gut, jetzt können wir diskutieren :). Sorry, dass ich mich im ersten Post etwas unbeholfen ausgedrückt habe. Prinzipiell hast du genau meine Probleme jetzt angesprochen. Prinzipiell sollte es möglich sein, egal welches Protokoll + Transport einzubauen -> Interfaces. Das Problem hierbei ist natürlich herauszufinden was jetzt der Client für eine Sprache spricht. Das mit dem Steuerungsport ist ansicht keine schlechte Idee. Kritisch/schwierig wird es dann wenn wir uns in einer eher Service orientierten Architektur befinden. Da sollte der "Client" ja nichts vom Server mitbekommen und daher fällt diese Möglichkeit auch leider mehr oder weniger weg.

Die Schachtelung um ein weiteres Protokoll wird auf Grund des bereits fixierten Protokolls leider nicht möglich sein. Ich hätte da noch an eine Art des PreParse gedacht. Also, dass der Server soweit den Request zerlegt, bis er weiß welches Protokoll das ganze ist, wobei mir das auch sehr schwierig erscheint.
Der Overhead beim erst Aufbau der Verbindung ist eher zu vernachlässigen, da ja dann davon ausgegangen werden kann, dass ein Client im Grunde immer nur über ein Protokoll kommuniziert.

Mir fehlt leider zur Zeit, wie schon gesagt, eine gute architektonische Struktur die eben leicht erweiterbar ist.

mfg mmp
 
T

tuxedo

Gast
Naja, so wie du es formulierst bleibt dir ja nur eine Möglichkeit: Dynamisches erkennen des eingehenden Protokolls.
Ob es dafür schon was fertiges gibt: Gute Frage. Und auch kommt es drauf an was für Protokolle da unterstützt werden sollen. Es gibt sicher auch "primitive Protokolle" die keinen großartigen Header haben und somit von mal zu mal anders aussehen (Beispielsweise so ein simpler Paketaufbau wie: irgendeineId + Paketlänge + Rohdaten, alles ohne extra Header).

Wenn du die Clients auch unter deinen Fittichen hast, dann könntest du, statt den Steuerport zu realisieren, einfach vor dem eigentlichen Übertragungsbeginn eine Protokoll-ID senden, so dass der Server wieder weiß wie er reagieren muss. Wobei der Client da ja schon wieder in gewisser Weie Kenntnis vom server haben muss.

Wenn der Client gänzlich unverändert bleiben muss, dann bleibt ja eigentlich nur noch das "erahnen" des Protokolls.

Aber vielleicht ist das alles auch überflüssig weil es schon was fertiges gibt. Wie dem auch sei: Mir ist nix in der Art bekannt.

Finde die Idee aber eigenbtlich ganz interessant. Für Protokolle die sich auch identifizieren lassen ist das mit sicherheit recht gut realisierbar. Um das ganze "erweiterbar" zu machen müsste man so eine Art "Regular Expression" für die Protokolle definieren und dann auf den eingehenden Datenstrom anwenden.

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
F Server für Java Applikationen Netzwerkprogrammierung 16
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
S Java Chat Server Netzwerkprogrammierung 8
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
M Socket Java Server: NullPointerException Netzwerkprogrammierung 4
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
X Mit Java eine Applikation auf einem anderen Windows Rechner (Windows Server 2008) starten Netzwerkprogrammierung 1
F Socket Java Server mit Android App, Antwort vom Server an App Netzwerkprogrammierung 5
F Java Server Scanner oder InputStream kann nicht gelsesen werden! Netzwerkprogrammierung 6
H Socket Java | Server sendet Nachricht nur wenn vorher eine JOptionPane-Nachricht ausgegeben wurde. Netzwerkprogrammierung 2
G Multiple Clients and one Server --> java.lang.NullPointerException Netzwerkprogrammierung 1
E Java Server übers Internet erreichen Netzwerkprogrammierung 4
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
C Kostenloser Java-Server? Netzwerkprogrammierung 25
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
P FTP Server mit Java, möglich ? Netzwerkprogrammierung 4
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
F Java SMTP Server Netzwerkprogrammierung 9
J HTTP Java Client / Server Internet - Webshare ?! Netzwerkprogrammierung 9
S Socket Java Server StreamCorruptedException Netzwerkprogrammierung 7
L C# WCF Server und Java Client? Netzwerkprogrammierung 2
N Socket Java server c# client problem Netzwerkprogrammierung 7
P Java Programm als Dienst auf Server Netzwerkprogrammierung 11
M client server in java Netzwerkprogrammierung 4
P Java Web Server Netzwerkprogrammierung 3
D Umwandlung von Java WebStart zu Java Server Pages Netzwerkprogrammierung 6
W Terminal-Server (Windows 2003) und Java Netzwerkprogrammierung 9
E java.net.SocketException: Unexpected end of file from server Netzwerkprogrammierung 2
H Mit Java ein JPG auf einem Server öffnen. Netzwerkprogrammierung 7
I Java Client - C Server Netzwerkprogrammierung 8
H Java.nio Server, Java.io Client Netzwerkprogrammierung 3
A Java-Programm auf einem Server laufen lassen Netzwerkprogrammierung 9
R Kommunikationsproblem zwischen JAVA-client und C-Server Netzwerkprogrammierung 5
E Java Server via Swing offline setzen Netzwerkprogrammierung 4
M Java XML-RPC Server - PHP XML-RPC Client ? Netzwerkprogrammierung 8
F Java Client-Server-Client Verbindung Netzwerkprogrammierung 9
J Server soll Zugriff auf Java Programm ermöglichen Netzwerkprogrammierung 3
R Java Applikation als Client ,Servlet als Server: Problem? Netzwerkprogrammierung 3
D Server Socket läuft nicht -> java.net.SocketException: Netzwerkprogrammierung 4
N eigener Java-Server => PHP einbauen Netzwerkprogrammierung 67
S Kommunikation Fortran <-> Java auf Client-Server-Archi Netzwerkprogrammierung 2
S MySQL, PHP, Perl Support in einem Java HTTP Server? Netzwerkprogrammierung 7
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
M JAX-WS unter Java 17 plötzlich nicht mehr möglich Netzwerkprogrammierung 5
K Java RMI bricht ab wenn Remote eine Methode ausgeführt werden soll Netzwerkprogrammierung 5
M HTTP Let's Encrypt und Java Trust-Store Netzwerkprogrammierung 6
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
D path-Variablen in eine URL hinzufügen mit Java 1.8 Netzwerkprogrammierung 2
x46 Java SSLContext erstellen mit SSL-Zertifikat Netzwerkprogrammierung 1
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
N Java socket Programmierung Filme verschicken Netzwerkprogrammierung 20
K Java Websocketserver Problem | Android to Pi Netzwerkprogrammierung 1
R Anfängerbeispiel: Suche Java-Anwendung die http-Anfragen in Tomcat liest Netzwerkprogrammierung 8
V Browsergame mit Java(WebSocketServer) als Backend? Netzwerkprogrammierung 5
platofan23 Socket Java Socket mit DynDns nicht erreichbar Netzwerkprogrammierung 6
S Fragen zu Java Webservice mit Axis2 Netzwerkprogrammierung 0
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
mor16Euro HTTP Php website mit Java aktualisiern Netzwerkprogrammierung 6
T HTTP JAVA Browser Konsolenanfrage(JavaScript) Netzwerkprogrammierung 7
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
L Remote Desktop per Java steuern Netzwerkprogrammierung 4
J Webserver mit Java schreiben? Netzwerkprogrammierung 4
D JAVA RMI Netzwerkprogrammierung 1
K HTTP Mit Java HTML Codeauslesen um damit zu arbeiten Netzwerkprogrammierung 7
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
J HTTP [Java 9] Neuer HTTP Client - Tutorial Netzwerkprogrammierung 3
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
T VPN-Verbindung über Java Netzwerkprogrammierung 4
M HTTP PATCH Request mit Java ausführen Netzwerkprogrammierung 2
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
L FTP Java Interpreter unterbindet SSL Handshake Netzwerkprogrammierung 2
C IFrame mit java auslesen Netzwerkprogrammierung 1
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
C Datensammlung mit Java RMI Netzwerkprogrammierung 0
K Java Jsoup : OnLoad Netzwerkprogrammierung 0
Carres HTTP Vorhandenen Session-ID Cookie von Firefox, Chrome oder IE in Java verwenden Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
Z HTTP HTML Element auslesen in Java Netzwerkprogrammierung 1
T Socket Java Programm hängt sich auf bei dem versuch von einem Socket scanner Daten zu erhalten. Netzwerkprogrammierung 1
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
P Chat in Java Netzwerkprogrammierung 3
C java.net.ConnectException: Operation timed out? Netzwerkprogrammierung 2
T curl request in java umwandeln Netzwerkprogrammierung 4
I Socket Kommunikation C / Java Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
L Java RMI Objekt konsistenz Netzwerkprogrammierung 1

Ähnliche Java Themen


Oben