1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Client-Server Kommunikation - welchen Ansatz?

  • WorstCase
  • 14. Juli 2011 um 09:59
  • Unerledigt
  • WorstCase
    6
    WorstCase
    Mitglied
    Reaktionen
    18
    Punkte
    373
    Beiträge
    59
    • 14. Juli 2011 um 09:59
    • #1

    Hallo,

    ich würde gerne ein Client-Server System mit folgenden (typischen) Requirements programmieren:

    • Client called Methoden beim Server, der Sachen aus einer DB/externen Programm ausliest
    • Server called Client, wenn bestimmte Ereignisse registriert werden
    • Kommunikation soll sicher sein
    • Kommunikation muss zwischen unterschiedlichen Netzwerken möglich sein


    Ich hab jetzt einen kleinen Prototypen mit RMI gebastelt, der aber das Problem hat, das "Callbacks" nicht gut mit RMI und untschiedlichen Netwerken klappen. Außerdem weiß ich nicht, wie toll es zb mit Security und RMI aussieht.
    Dinge wie JAX-RPC würde ich übrigens gerne vermeiden, da das wegen meiner komplexen Datentypen in der KOmmunikation nach viel Aufwand aussieht. Oder täusche ich mich da?

    MfG

    das - ist - das - haus - vom - ni - ko - laus

  • mtoman
    13
    mtoman
    Mitglied
    Reaktionen
    47
    Punkte
    1.767
    Beiträge
    331
    • 14. Juli 2011 um 14:38
    • #2

    Ich würds vermutlich zuerst einfach mal mit plain TCP/IP + SSL versuchen (ist ja zb. in java recht leicht machbar). Was genau meinst du mit unterschiedlichen Netzwerken? Internet dazwischen und Firewalls etc. oder Ethernet + was anderes?

    Wenn du Java verwendest, kannst Objekte ja sowieso einfach serialisieren und den bytestream übertragen (wegen den erwähnten komplexen Datentypen)

  • JohnFoo
    20
    JohnFoo
    Mitglied
    Reaktionen
    61
    Punkte
    4.231
    Beiträge
    761
    • 14. Juli 2011 um 22:27
    • #3
    Zitat von WorstCase

    Dinge wie JAX-RPC würde ich übrigens gerne vermeiden, da das wegen meiner komplexen Datentypen in der KOmmunikation nach viel Aufwand aussieht. Oder täusche ich mich da?

    Verwende JAX-WS, für die Kommunikation zwischen Client und Server schreibst du dir vereinfachte Versionen deiner Objekte als DTOs, die alle Daten auf Basisdatentypen und Strings übersetzen, auf der Gegenseite machst du das Umgekehrte. Damit sparst du dir, unnötig XML-Adapter zu schreiben. Und hast die Freiheit, den Client in einer beliebigen Sprache zu implementieren.

    Eine Lösung von Grund auf mit Sockets und eigenem Protokoll zu schreiben klingt aufwändig, unflexibel und masochistisch - würde ich nur machen, wenn es gute Gründe gibt.

  • mtoman
    13
    mtoman
    Mitglied
    Reaktionen
    47
    Punkte
    1.767
    Beiträge
    331
    • 14. Juli 2011 um 22:29
    • #4

    Bin halt altmodisch und arbeite immer auf embedded systems. Bin froh wenn ich überhaupt Ethernet hab :winking_face:

  • WorstCase
    6
    WorstCase
    Mitglied
    Reaktionen
    18
    Punkte
    373
    Beiträge
    59
    • 15. Juli 2011 um 10:38
    • #5

    Danke erstmal für alle Beiträge.

    Zitat von JohnFoo

    Verwende JAX-WS, für die Kommunikation zwischen Client und Server schreibst du dir vereinfachte Versionen deiner Objekte als DTOs, die alle Daten auf Basisdatentypen und Strings übersetzen, auf der Gegenseite machst du das Umgekehrte. Damit sparst du dir, unnötig XML-Adapter zu schreiben. Und hast die Freiheit, den Client in einer beliebigen Sprache zu implementieren.

    Eine Lösung von Grund auf mit Sockets und eigenem Protokoll zu schreiben klingt aufwändig, unflexibel und masochistisch - würde ich nur machen, wenn es gute Gründe gibt.



    Die Entscheidung ist nun doch auf Rmoting und damit RMI gefallen. Callbacks des Servers sollen nun so gelöst werden, dass es ein zusätzliches RMI Interface geben wird, auf das der Client in bestimmten Abständen pollt, und das eben ein Serializable Object zurückgibt, falls sich was getan hat, und null sonst. So soll das Problem mit den Firewall umgangen werden.
    Für Security soll jetzt noch SSL integriert werden.

    das - ist - das - haus - vom - ni - ko - laus

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung