tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi [2023/05/04 21:22] – knehez | tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi [2024/03/26 18:26] (current) – knehez | ||
---|---|---|---|
Line 1: | Line 1: | ||
===== Egyszerű Java-RMI példa ===== | ===== Egyszerű Java-RMI példa ===== | ||
- | Használjuk | + | Először is, készítsünk egy interakciós diagramot, ami bemutatja, hogyan kommunikál egymással |
+ | |||
+ | < | ||
+ | sequenceDiagram | ||
+ | participant C as Client | ||
+ | participant RS as RegisterService | ||
+ | participant RO as RObject | ||
+ | participant RMI as RMI Registry | ||
+ | |||
+ | RS->> | ||
+ | RMI-->> | ||
+ | C->> | ||
+ | RMI-->> | ||
+ | C->> | ||
+ | RO-->> | ||
+ | C->> | ||
+ | RO-->> | ||
+ | </ | ||
+ | |||
+ | Ez a diagram szemlélteti a folyamat lépéseit: a RegisterService regisztrálja az RObject-et az RMI Registry-ben, | ||
+ | |||
+ | Most pedig nézzük meg, hogyan néz ki ez a rendszer egy struktúra diagramon, ami bemutatja a komponensek és azok kapcsolatait: | ||
+ | |||
+ | < | ||
+ | graph TD | ||
+ | subgraph "RMI Registry" | ||
+ | RO[RObject Interface] | ||
+ | end | ||
+ | |||
+ | subgraph " | ||
+ | ROS[RObjectImpl] -- Implements --> RO | ||
+ | end | ||
+ | |||
+ | subgraph " | ||
+ | C[Client] -- Uses --> RO | ||
+ | end | ||
+ | |||
+ | RegisterService -- Registers --> RO | ||
+ | C -- Looks up --> RO | ||
+ | C -- Calls methods on --> ROS | ||
+ | </ | ||
+ | |||
+ | A struktúra diagram világosan ábrázolja a rendszer különböző részeit és azok közötti kapcsolatokat: | ||
+ | |||
+ | A Server Side rész tartalmazza az **RObjectImpl** implementációt, | ||
+ | A **Client** a távoli objektum (ROS) metódusait hívja meg, ami ábrázolja a két fő műveletet: egy primitív és egy érték szerinti paraméter átadást. | ||
+ | |||
+ | **Megvalósítás: | ||
+ | |||
+ | Telepítsük a gradle-t innen: https:// | ||
+ | A //bin// könyvtárat adjuk hozzá a // | ||
+ | |||
+ | A teljes forráskód elérhető itt: | ||
+ | < | ||
+ | git clone https:// | ||
+ | cd java_rmi | ||
+ | </ | ||
+ | |||
+ | Nyissunk két terminált, az egyikben: | ||
+ | |||
+ | < | ||
+ | gradle runRegisterService | ||
+ | </ | ||
+ | |||
+ | A másikban: | ||
+ | < | ||
+ | gradle run | ||
+ | </ | ||
+ | |||
+ | A program részletesen: | ||
1.) Definiáljuk az RObject interfészeket, | 1.) Definiáljuk az RObject interfészeket, | ||
- | <code java> | + | <sxh java> |
package org.ait; | package org.ait; | ||
import java.rmi.*; | import java.rmi.*; | ||
Line 16: | Line 85: | ||
void argumentByValue(Integer num) throws RemoteException; | void argumentByValue(Integer num) throws RemoteException; | ||
} | } | ||
- | </code> | + | </sxh> |
2.) Implementáljuk a távoli objektumok kódját | 2.) Implementáljuk a távoli objektumok kódját | ||
- | <code java> | + | <sxh java> |
package org.ait; | package org.ait; | ||
import java.rmi.RemoteException; | import java.rmi.RemoteException; | ||
Line 40: | Line 109: | ||
} | } | ||
} | } | ||
- | </code> | + | </sxh> |
- | 3.) Indítsuk el az RMI registry-t. Ez egy Java JDK komponens, elindítani a létrehozott projekt /bin könyvtárából kell. | + | 3.) Indítsuk el az RMI registry-t. Ez egy Java JDK komponens, elindítani a létrehozott projekt |
> rmiregistry.exe | > rmiregistry.exe | ||
Line 48: | Line 117: | ||
4.) Hozzuk létre egy példányát a távoli objektumnak és kössük hozzá a registry-hez | 4.) Hozzuk létre egy példányát a távoli objektumnak és kössük hozzá a registry-hez | ||
- | <code java> | + | <sxh java> |
package org.ait; | package org.ait; | ||
Line 67: | Line 136: | ||
} | } | ||
} | } | ||
- | </code> | + | </sxh> |
+ | |||
+ | Indítsuk el a RegisterService-t, | ||
5.) Használjuk a távoli objektumot | 5.) Használjuk a távoli objektumot | ||
- | <code java> | + | Indítsuk el az alábbi kódot. |
+ | |||
+ | <sxh java> | ||
package org.ait; | package org.ait; | ||
Line 94: | Line 167: | ||
} | } | ||
} | } | ||
- | </code> | + | </sxh> |
tanszek/oktatas/informacios_rendszerek_integralasa/java_rmi.1683235342.txt.gz · Last modified: 2023/05/04 21:22 by knehez