Java Remote Method Invocation (Java RMI) - Aufruf entfernter Methoden in Java, Verteilte Systeme

Поделиться
HTML-код
  • Опубликовано: 14 фев 2021
  • Hallo zusammen,
    herzlich Willkommen bei Model My Mind.
    In diesem Video möchte ich mit euch über das Thema Remote Method Invocation sprechen.
    Remote Method Invocation (Java RMI) ist eine API, die Mechanismen für die Programmierung von verteilten Anwendungen in Java bereitstellt. Damit kann ein Client Methoden eines Objektes aufrufen, das in einer anderen JVM ausgeführt wird, irgendwo auf einem entfernten Server. In der Java-Standardumgebung sind in der RMI-Klassenbibliothek alle notwendigen Methoden und Mechanismen für diesen Zweck implementiert. Wir werden den entfernten Methodenaufruf mit zwei unterschiedlichen Entwicklungsumgebungen simulieren. Wir werden ein sehr vereinfachtes Beispiel einer Client-Server-Architektur programmieren. Also bleibt dran.
    Lasst uns gerne auf Instagram vernetzen: / modelmymind
    Kaffeekasse: www.paypal.com/paypalme/mmmsde
    #java #javarmi #remotemethodinvocation #skeleton #stub #client #server #clientserver #programmieren #javaprogrammieren #javalernen #softwareentwickler #softwareentwicklung #programmierer #verteiltesysteme #verteilteanwendung #informatik

Комментарии • 14

  • @ModelMyMind
    @ModelMyMind  3 года назад +5

    Falls euch das Video gefallen hat, freue ich mich auf eure Unterstützung mit einem Abo meines Kanals.

  • @alifakih2142
    @alifakih2142 3 года назад +3

    Wieder einmal sehr professionell und einfach erklärt. Weiter so!

    • @ModelMyMind
      @ModelMyMind  3 года назад

      Vielen Dank für das tolle Feedback!

  • @esuatemusic456
    @esuatemusic456 3 года назад +1

    Sehr cool 👍

  • @alex-ek8vt
    @alex-ek8vt 3 года назад +1

    Top erklärt! Noch besser wäre es aber, wenn du noch einen kurzen Satz zur Serialisierung gesagt hättest, falls man das noch nicht weiß

    • @ModelMyMind
      @ModelMyMind  3 года назад +1

      Hi vielen Dank für das Feedback. Ich denke ebenfalls, dass man an der einen oder anderen Stelle mehr ins Detail gehen könnte. Freut mich, dass es gelungen ist in Kürze die Inhalte gut darzustellen.

  • @lukasschmahl147
    @lukasschmahl147 3 года назад +1

    Hey ModelMyMind, ich bin gerade zufällig auf dieses Video gestoßen auf der Suche nach einer Erklärung und muss sagen das war ein mega lehrreiches Video! Danke dafür. Ich habe allerdings noch eine Frage dazu. Wenn ich auf der Server Seite zum Beispiel eine Datenbank habe und mehrere Klassen wie z.B. User und Artikel oder sowas. Wie gebe ich diese Daten dann an meinen Server ohne das ich alle Methoden die es gibt in das Server Interface schreibe? Oder muss ich das machen?

    • @ModelMyMind
      @ModelMyMind  3 года назад

      Hey Lukas, vielen Dank für das Feedback. Wenn du auf der Server-Seite eine Datenbank anbinden möchtest, würde ich den Zugriff auf die Datenbank über ein Framework wie Hibernate (Stichwort Objektrelationales Mapping) durchführen. Hier würde ich auf händische Datenbank-Connections verzichten. Unabhängig von dieser technischen Lösung würde ich ein separates Interface für die DB-Zugriffe erstellen, das Methoden wie "leseArtikelMitID", "aktualisiereArtikel",..., enthält. Dein Anwendungskern/deine Geschäftslogik würde dann auf die Methoden des Interfaces zugreifen. Ggf liest du einen Artikel aus der DB, manipulierst diesen, und reichst sie weiter an dein RemoteInterface. Du stellst somit dein Artikel (ggf. manipuliert) für den Client zur Verfügung, der eine entsprechende Methode des RemoteInterfaces aufruft, z.B. getCooleArtikel(). Das RemoteInterface sollte nur die relevanten Methoden haben. Am besten keine direkten DB-Aufrufe (Single Responsibility Prinzip). Hoffe konnte dir weiterhelfen.
      Schöne Grüße

    • @lukasschmahl147
      @lukasschmahl147 3 года назад

      @@ModelMyMind Hey ModelMyMind, ja darüber habe ich auch schon gelesen. Ich mache zur Zeit eine Ausbildung als Anwendungsentwickler. Das Thema ORM hatten wir leider noch nicht und bei der Aufgabenstellung wurde auch explizit darauf hingewiesen keine entsprechenden Frameworks zu verwenden. Hibernate steht aber auf meiner privaten Agenda :D
      Genau ich habe jetzt aktuell ein Interface welches in meinem Fall einfach mal ArtikelDAO heißt und dieses wird in der Klasse ArtikeDAOImpl implementiert und kümmert sich um die Datenbank abfragen. Die Methode selectAll der Klasse ArtikeDAOImpl wirft eine Liste gefüllt mit Objekten der Klasse Artikel (DataModel Klasse) zurück.
      Verstehe ich es richtig das ich dann im Server Interface eine Methode definiere z.B. wieder selectAll und diese dann in meinem Remoteobjekt implementiere mittels artikeldaoimpl.selectAll?
      Dadurch weiß der Server nur das er eine Methode hat die selectAll heißt und als return eine Liste ausgibt aber nicht woher diese kommt. Das weiß allerdings die ArtikelImpl oder?
      Liebe Grüße
      Luke

    • @ModelMyMind
      @ModelMyMind  3 года назад

      @@lukasschmahl147 Ich wünsche dir viel Erfolg und vor allem Spaß bei deiner Ausbildung! Wie du es aktuell gemacht hast, hört sich es sehr gut an. Genau, das hast du richtig verstanden. Deine Implementierung des RemoteInterfaces könnte die Methoden des Interfaces ArtikelDao aufrufen, in dem du eine Instanz des ArtikelDaoImpl erzeugst (ArtikelDao artikelDao = new ArtikelDAOImpl();) . Durch das Interface hast du die Möglichkeit die konkrete Implementierung auszutauschen, ohne im wesentlichen den Code ändern zu müssen. Auch zu deiner zweiten Frage: Dem Remoteobjekt bleibt verborgen, wie die konkrete Implementierung ist. Dies weiß die ArtikelImpl.
      Ich mache aktuell eine Video-Reihe zu Design Patterns (Entwurfsmuster). Schau auch gerne dort rein.
      Schöne Grüße

  • @MUC-xh9pe
    @MUC-xh9pe 2 года назад

    Man kann den Code nicht sehen!

    • @ModelMyMind
      @ModelMyMind  2 года назад

      Hey, der Zoom ist nicht optimal, keine Frage: falls du das Video am Handy schaust, solltest du es im Querformat schauen.

  • @user-ns3ls9zh1d
    @user-ns3ls9zh1d Год назад

    Dieses Vorgehen ist nicht mehr aktuell.
    Jetzt braucht man Security Policy