Java RMI Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. javarmi / 1
|
|
- Elek Orbán
- 7 évvel ezelőtt
- Látták:
Átírás
1 Java RMI Áttekintés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: javarmi / 1
2 A Java RMI RPC - egy távoli eljárás hívása helyi hívásnak tűnik RMI - hasonló mechanizmust biztosít, de objektum orientált módon: egy távoli objektum metódusának hívása helyi objektum használatának tűnik A Java nyelvnek nincs speciális IDL-je, ehelyett minden remote interface a java.rmi.remote interface-t terjeszti ki Java RMI (Áttekintés) javarmi / 2
3 A Java RMI architekt ktúrája Alkalmazás Client Server Stubs Skeletons Remote Reference Layer Transport Layer Java RMI (Áttekintés) javarmi / 3
4 Az RMI architekt ktúra elemei Stubs A kliens hivatkozása a távoli objektumra valójában hivatkozás a helyi csonkra. A csonk meghívja a Remote Reference Layer-t átalakítja (marshals) az argumentumokat értesíti a Remote Reference Layer-t hogy a hívás továbbítható visszaalakítja (unmarshals) a visszatérési értéket vagy a kivételt értesíti a Remote Reference Layer-t, hogy a hívás befejeződött. Java RMI (Áttekintés) javarmi / 4
5 Az RMI architekt ktúra elemei (folyt.) Skeleton Tartalmaz egy metódust, amely továbbítja a hívásokat az aktuális távoli objektumok implementációjának: visszaalakítja (unmarshals) az argumentumokat meghívja az aktuális távoli objektum implementációját átalakítja (marshals) a visszatérési értéket vagy a kivételt Java RMI (Áttekintés) javarmi / 5
6 Az RMI architekt ktúra elemei (folyt.) Remote reference layer A specifikus távoli hivatkozás protokoll végrehajtásáért felelős. Minden távoli objektum saját távoli hivatkozás osztályt választ, amely a kéréseit végrehajtja. Számos hívási protokoll választható ebben a rétegben. Például: unicast point-to-point invocation invocation to replicated object groups support for a specific replication strategy support for a persistent reference to the remote object (enabling activation of the remote objectum) reconnection strategies Java RMI (Áttekintés) javarmi / 6
7 Az RMI architekt ktúra elemei (folyt.) Transport layer A távoli címtartománnyal való kapcsolat létrehozása A kapcsolat menedzselése A kapcsolat "élő" voltának figyelése A bejövő hívások figyelése Az címtartományhoz tartozó távoli objektumok táblázatának karbantartása Kapcsolat létrehozása egy bejövő híváshoz A távoli hívás céljának megfelelő elosztó (dispatcher) megkeresése és a kapcsolat átadása a dispatcher-nek. Java RMI (Áttekintés) javarmi / 7
8 Az RMI egyéb b jellemzői Fonál használat az RMI-ben A szerver külön szálban, vagy azonos szálban is futhat Szemétgyűjtő mechanizmus a távoli objektumokra is Dinamikus osztálybetöltés Remote objektumok és interface-eik osztályára Stub és skeleton osztályokra Egyéb, az RMI által használt osztályokra (paraméterek, visszatérési értékek) Java RMI (Áttekintés) javarmi / 8
9 9 RMI kliens és s szerver fejlesztése se 7 Kliens implementálása (.java) Kliens indítása 1 Remote interface definiálása uses User 2 Interface implementálása (.java) 3 javac 3a rmic 8 javac Kliens stub 4 Kliens alk. (.class) (.class) 5 : csak 1.4-ig! 6 User feladata Generált elem Program feladata Manuális tev. Szerver osztály (.class) Szerver skeleton (.class) Jelölés RMI registry indítása Szerver objektum aktivizálása Távoli objektum regisztrálása Java RMI (Áttekintés) javarmi / 9
10 A fejlesztés s lépéseil 1. A távoli interface definiálása A távoli objektum interface-ének definiálása Java interface-ként A java.rmi.remote interface-t kell kiterjesztenie Minden metódusának dobnia kell a java.rmi.remoteexception kivételt. Java RMI (Áttekintés) javarmi / 10
11 A fejlesztés s lépései l (folyt.) 2. A távoli interface implementálása Az előbbi interface-t kell implementálnia 1.5 előtti verziók esetén a java.rmi.unicastremoteobject osztály leszármazottja kell legyen Az 5. verziótól kezdve ez nem szükséges A szerver osztályt példányosítani kell egy main metódusban. Ez lehet ugyanabban az osztályban, vagy egy másikban. A szerver objektumot exportálni kell (leszármazott esetén nem kell.) Java RMI (Áttekintés) javarmi / 11
12 A fejlesztés s lépései l (folyt.) 3. A szerver osztály lefordítása 3a. A stub compiler futtatása (csak 5. előtti verziók esetén!) A neve rmic, paraméterei azonosak a javac-vel Generálja a kliens stub-ot és a szerver skeletont. Az 5. verziótól kezdve nem szükséges. Java RMI (Áttekintés) javarmi / 12
13 A fejlesztés s lépései l (folyt.) 4. RMI registry indítása rmiregistry parancs a szerver gépen Lehetővé teszi a távoli objektum név szerinti elérését Ez is távoli objektumként van implementálva Minden szerver processz használhat saját registry-t vagy egy közöset A registry kezdetben üres, a távoli objektumokat a szerver processz(ek)nek kell bejegyeznie Java RMI (Áttekintés) javarmi / 13
14 A fejlesztés s lépései l (folyt.) 5. Szerver processz indítása A szerver processz létrehozza a szerver objektum példányát vagy példányait 6. Távoli objektumok regisztrációja A szerver processz bejegyzi a távoli objektumokat a registry-be Ehhez a java.rmi.naming osztály metódusait használhatja A szerver ezzel kész fogadni a kliensek kapcsolódását Java RMI (Áttekintés) javarmi / 14
15 A fejlesztés s lépései l (folyt.) 7. Kliens kód megírása A távoli objektum megkereséséhez használnia kell a java.rmi.naming osztály metódusait A távoli objektum használata ezután ugyanolyan, mint a lokális objektumoké 8 Kliens kód lefordítása 9. Kliens indítása Java RMI (Áttekintés) javarmi / 15
16 RMI interface-ek ek és s osztályok RMI-vel kapcsolatos csomagok (több, mint 25 osztály és interface): java.rmi java.rmi.server java.rmi.dgc java.rmi.registry Három funkcionális kategória: RMI alapok RMI security RMI marshalling Java RMI (Áttekintés) javarmi / 16
17 RMI alap osztályok és interface-ek ek Object osztály (from java.lang) IOExcept ion oszt ály (from Java.io) Remote (from java.rmi) <<implements>> RemoteStub (f ro m j ava.r m i. se rv er) RemoteObject (from java.rmi.server) RemoteObject() equals() tostring() RemoteServer (from java.rmi.server) RemoteException (from java.rmi) RemoteException() getmessage() <<uses>> RemoteStub() setref() RemoteServer() getclienthost() getlog() setlog() UnicastRemoteObject (from ja va.rmi. serve r) Kliens osztály Szerver osztály Unicas tremoteobject() exportobject() clone() Java RMI (Áttekintés) javarmi / 17
18 RMI alap osztályok feladata Remote interface Nincs egyetlen metódusa sem. Csak jelző. Minden remote objektumnak implementálnia kell RemoteObject osztály A Java Object osztály szerepét tölti be a távoli objektumokra RemoteStub osztály A kliens objektum(ok) közvetlen ősosztálya Elrejti a szerver objektummal való kapcsolatot az őt használó objektumok elől. Java RMI (Áttekintés) javarmi / 18
19 RMI alap osztályok feladata (folyt.) RemoteServer osztály Szerver objektumok létrehozása és exportálása (elérhetővé tétele) A szerver implementációk közös bázisosztálya UnicastRemoteObject osztály A távoli szerver objektum implementációja, az alábbi tulajdonságokkal: Tranziens objektum összeköttetés alapú TCP protokollt használ a kommunikációra Az 1.5-nál régebbi verziók esetén a szerver osztály ősosztálya kell legyen Java RMI (Áttekintés) javarmi / 19
20 RMI alap osztályok feladata (folyt.) RemoteException osztály Az RMI által kiváltható valamennyi kivétel ősosztálya A remote interface valamennyi metódusánál specifikálni kell Java RMI (Áttekintés) javarmi / 20
21 RMI Naming szolgáltat ltatás Object osztály (from java.lang) Remote (from java.rmi) Registry (from java.rmi.registry) lookup() bind() unbind() rebind() LocateRegistry (from java.rmi.registry) getregistry() createregistry() Naming (from java.rmi.registry) lookup() bind() unbind() rebind() list() Java RMI (Áttekintés) javarmi / 21
22 A naming szolgáltat ltatás s használata Többnyire csak a Naming osztályt használjuk. Azonosítás URL formátumú: rmi://host:port/objektumnev Default port: 1099 A kliens a lookup metódust használja a távoli objektum referencia megszerzésére: Remote lookup(string name) A szerver a bind vagy rebind metódust használja a szerver objektum regisztrálására: void bind(string name, Remote obj) Java RMI (Áttekintés) javarmi / 22
23 Az RMI forgatókönyve Kliens oldal Szerver oldal Kliens System Naming System Szerver 1. setsecuritymanager 2. rebind 3. setsecuritymanager 4. lookup Proxy szerver download 5. metódus hívás metódus hívás Java RMI (Áttekintés) javarmi / 23
24 Az RMI forgatókönyve (folyt.) 1. A szerver engedélyezi az RMI Security Manager működését: létrehoz egy új RMISecurityManager objektumot és átadja a System objektumnak 2. A szerver regisztrálja magát a névszolgáltatónál 3. A kliens is engedélyezi az RMI Security Managert a saját rendszerében Java RMI (Áttekintés) javarmi / 24
25 Az RMI forgatókönyve (folyt.) 4. A kliens megkeresi a távoli objektumot Kiad egy lookup hívást a Naming objektumnak, és megadja a kivánt szerver URL nevét A metódus visszad egy referenciát a proxy szerverre Ha szükséges, a kliens oldali stub letöltődik 5. A kliens meghívja a távoli objektum metódusát A hívás a proxy szerver objektumhoz fut be A proxy szerver továbbítja a hívást a stub segítségével A hívás eredménye visszaérkezik szintén a stub segítségével Java RMI (Áttekintés) javarmi / 25
26 Egyszerű példa Ebben a példában a távoli objektum egy számlálóval rendelkezik. A számláló adott értékre beállítható, inkrementálható, lekérdezhető. Egy kliens ezt a távoli objektumot használva nullázza a számlálót, ezerszer inkrementálja, majd lekérdezi az értékét. A szerver helye a kliens program paramétere. Java RMI (Áttekintés) javarmi / 26
27 Példa: távoli t interface A távoli objektum interface-e: public interface CountRMI extends java.rmi.remote { public int sum() throws java.rmi.remoteexception; public void sum(int val) throws java.rmi.remoteexception; public int increment() throws java.rmi.remoteexception; } Java RMI (Áttekintés) javarmi / 27
28 Példa: kliens program import java.rmi.*; import java.rmi.registry.*; import java.rmi.server.*; public class CountRMIClient { public static void main(string args[]) { // Security manager beállítása System.setSecurityManager(new RMISecurityManager()); Java RMI (Áttekintés) javarmi / 28
29 Példa: kliens program (folyt.) // Referencia szerzese a tavoli objektumra try { CountRMI mycount = (CountRMI)Naming.lookup("rmi://" + args[0] + "/" + "mycountrmi"); // Megjegyzesek: // a fenti castolas szukseges es lehetseges // innentol kezdve a mycount ugyanugy // hasznalhato, mint egy helyi referencia // szamlalo nullazasa System.out.println("Setting Sum to 0"); mycount.sum(0); // Mint egy helyi hivas Java RMI (Áttekintés) javarmi / 29
30 Példa: kliens program (folyt.) // Incrementalas 1000-szer System.out.println("Incrementing"); for (int i = 0 ; i < 1000 ; i++ ) { mycount.increment(); } System.out.println("Sum = " + mycount.sum()); // Kivetel kezelese } catch(exception e) } {System.err.println("System Exception" + e);} System.exit(0); } Java RMI (Áttekintés) javarmi / 30
31 Szerver objektum implementáci ciója import java.rmi.*; import java.rmi.server.unicastremoteobject; public class CountRMIImpl //csak 1.5 előtt! extends UnicastRemoteObject implements CountRMI { // Adattag private int sum; Java RMI (Áttekintés) javarmi / 31
32 Szerver objektum impl. (folyt.) public CountRMIImpl() { } Java RMI (Áttekintés) javarmi / 32
33 Szerver objektum impl. (folyt.) // Tavolrol is elerheto metodusok public int sum() throws RemoteException { return sum; } public void sum(int val) throws RemoteException { sum = val; } } public int increment() throws RemoteException { sum++; return sum; } Java RMI (Áttekintés) javarmi / 33
34 Szerver objektum inicializálása import java.rmi.*; import java.rmi.registry.*; import java.rmi.server.*; public class CountRMIServer { public static void main(string args[]) { // Security manager letrehozasa es inditasa System.setSecurityManager(new RMISecurityManager()); Java RMI (Áttekintés) javarmi / 34
35 Szerver objektum inicializálása (folyt.) try { // CountRMIImpl peldany letrehozasa CountRMIImpl mycount = new CountRMIImpl(); // mycount exportalasa CountRMI stub = (CountRMI) UnicastRemoteObject.exportObject(myCount, 0); // Bejegyzés a registry-be Registry registry = LocateRegistry.getRegistry(); registry.bind("mycountrmi", mycount); Java RMI (Áttekintés) javarmi / 35
36 Szerver objektum inicializálása (folyt.) } System.out.println("CountRMI Server ready."); } } catch (Exception e) { System.out.println("Exception: " + e.getmessage()); } e.printstacktrace(); Java RMI (Áttekintés) javarmi / 36
37 A példap futtatása Lefordítjuk az összes modult (feltételezve, hogy a java file-ok katalógusában vagyunk) javac cp. CountRMI.java javac cp. CountRMIClient.java javac cp. CountRMIImpl.java javac cp. CountRMIServer.java (5. előtti verziónál: Futatjuk a stub compilert rmic CountRMIImpl) Elindítjuk az RMI registry-t rmiregistry Elindítjuk a szervert majd a klienst Java RMI (Áttekintés) javarmi / 37
38 Hivatkozások Csizmazia Balázs: Hálózati alkalmazások készítése (második kiadás), 6. fejezet Kiadó: Kalibán Bt., Budapest ISBN Sok szerző: JAVA 2 útikalauz programozóknak. (Hatodik kiadás) 21. Fejezet Kiadó: ELTE TTK Hallgatói Alapítvány Budapest, 2000 ISBN Java RMI (Áttekintés) javarmi / 38
39 Hivatkozások (folyt.) Robert Orfali, Dan Harkey: Client/Sserver Programming with JAVA and CORBA (Second Edition) Chapter 13. John Wiley & Sons, 1998 ISBN X java.sun.com: RMI tutorial Java RMI (Áttekintés) javarmi / 39
Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.
Java RMI Áttekintés Miskolci Egyetem Általános Informatikai Tanszék RMI /1 A Java RMI RPC - egy távoli eljárás hívása helyi hívásnak tÿnik RMI - hasonló mechanizmust biztosít, de objektum orientált módon:
R I Szer e i r alizáció.
Bevezetés Java RMI Párhuzamos és Elosztott rendszerek II. Dr. Mileff Péter A számítógép-hálózatok rohamos terjedésével a hálózattal összekapcsolt számítógépekbıl álló rendszerek egyre népszerőbbek: Erıforrás
Java Remote Method Invocation API
RMI Java Remote Method Invocation API RMI Java RMI API(Java Remote Method Invocation API): távoli (remote) objektumok metódusainak meghívását lehetővé tevő fejlesztői interfész (API) Kétfajta implementációja
Segédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy
Segédanyag: Java alkalmazások gyakorlat
Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java
CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék
CORBA Áttekintés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 10. 15. Mi a CORBA? osztott objektum modell szabvány, amely definiálja a komponensek közötti interface-eket definiál
Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja
Kommunikáció Folyamatok közötti kommunikáció Minden elosztott rendszer alapja Marshalling Alap primitívek Direkt, indirekt portok Blokkolás, nem blokkolás Pufferelés Megbízhatóság RPC Az RPC jellemzői
Párhuzamos és Elosztott Rendszerek II
Párhuzamos és Elosztott Rendszerek II JAVA RMI Készítette: Dr. Mileff Péter Miskolci Egyetem Általános Informatikai Tanszék 1. Bevezetés A számítógép-hálózatok rohamos terjedésével a hálózattal összekapcsolt
Elosztott rendszerek
Elosztott rendszerek NGM_IN005_1 Köztesréteg megoldások (middleware-ek) Middleware alapú elosztott rendszerek Magas átlátszósági fok Eltér! operációs rendszerek Modellfügg! kommunikációs mechanizmus Er!forráskezelés
DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1
DCOM Áttekintés Miskolci Egyetem Általános Informatikai Tanszék DCOM /1 Mi a DCOM? DCOM: Distributed Component Object Model A Microsoft osztott objektum modellje Bináris együttmÿködési szabvány és annak
RMI = Remote Method Invocation. Java tutorial. Kliens-szerver forgato kő nyv. Elosztott objektumok rendszere forgato kő nyv.
RMI = Remote Method Invocation í Meg tudjuk hıvni olyan objektumok meto dusait is, amelyek mas virtualis gepben futnak í Kommunikacio kulő nbő z gepeken futo Java programok kő ző tt Kliens-szerver alkalmazasok
Enterprise JavaBeans 1.4 platform (EJB 2.0)
Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans
Osztott alkalmazások fejlesztési technológiái Áttekintés
Osztott alkalmazások fejlesztési technológiái Áttekintés Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Történelem - a kezdetek 2 Mainframe-ek és terminálok Minden a központi gépen fut A
és az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
JNDI - alapok. Java Naming and Directory Interface
JNDI - alapok Java Naming and Directory Interface Naming Service Naming service: nevek hozzárendelése objektumokhoz, elérési lehetőség (objektumok/szolgáltatások lokalizálása), információk központosított
Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans
Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
A Java nyelv. V. rész Az objektumorientáltság magasabb fokú tulajdonságai: Perszisztencia, CORBA, RMI
A Java nyelv V. rész Az objektumorientáltság magasabb fokú tulajdonságai: Perszisztencia, CORBA, RMI A Java a jövő programozási nyelve. A jövőt azonban csak a jelenen keresztül, a múlt felhasználásával
OOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java
Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:
Abstract osztályok és interface-ek. 7-dik gyakorlat
Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,
Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.
Eseménykezelés előadás http://nik.uni-obuda.hu/sztf2 Szénási Sándor szenasi.sandor@nik.uni-obuda.hu Óbudai Egyetem,Neumann János Informatikai Kar Függvénymutatókkal Származtatással Interfészekkel Egyéb
Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
Java IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
Java IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
Komponens modellek. 3. Előadás (első fele)
Komponens modellek 3. Előadás (első fele) A komponens modellek feladata Támogassa a szoftverrendszerek felépítését különböző funkcionális, logikai komponensekből, amelyek a számítógépes hálózatban különböző
Java programozási nyelv 5. rész Osztályok III.
Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
Objektumorientált szoftvertervezés
Objektumorientált szoftvertervezés Elosztott OO, RMI, CORBA BME IIT, Goldschmidt Balázs Hálózati forgalom TCP/IP socket használatával bedrótozott protokoll alacsonyszintű adatkezelés lábbalhajtós small
Objektumorientált szoftvertervezés
Hálózati forgalom Objektumorientált szoftvertervezés Elosztott OO, RMI, CORBA TCP/IP socket használatával bedrótozott protokoll alacsonyszintű adatkezelés lábbalhajtós small footprint Keretrendszerrel
Programozási nyelvek II. JAVA EA+GY 1. gyakolat
Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről
Objektumorientált szoftvertervezés
Objektumorientált szoftvertervezés Elosztott OO, RMI, CORBA BME IIT, Goldschmidt Balázs Hálózati forgalom TCP/IP socket használatával bedrótozott protokoll alacsonyszintű adatkezelés lábbalhajtós small
A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -
Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék
Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma
Java és web programozás
Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val
Programozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
Serialization. RMI működése
RMI Az RMI (Remote Method Invocation), azaz távoli metódushívás egy olyan eszköz a Java nyelvben, mely lehetővé teszi más VM-ben (Virtual Machine virtuális gép) elhelyezkedő objektumok metódusainak meghívását.
Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
OOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
A Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Osztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
Bevezető. Servlet alapgondolatok
A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig
Java és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció
Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia
Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés
Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS
Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék
Osztott rendszerek (Distributed systems) Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 09. 18. osztottrendszerek / 1 Tartalom Miért kellenek osztott rendszerek Egy kis
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
Áttekintés. Tartalom. Mi is az a Bean?
A JavaBeans komponens modell Áttekintés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
A JavaBeans komponens modell Áttekintés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network
Bevezetés a Java programozási nyelvbe
Bevezetés a Java programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a Java programozási nyelvbe JAVABEV / 1 Egy kis történelem 1. 1990-es évek eleje: a SUN belső project-je
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error
Generics Egyszerűbb példák (java.util csomagból): public interface List { void add(e x); Iterator iterator(); public interface Iterator { E next(); boolean hasnext(); E - formális típusparaméter,
Kommunikáció. 3. előadás
Kommunikáció 3. előadás Kommunikáció A és B folyamatnak meg kell egyeznie a bitek jelentésében Szabályok protokollok ISO OSI Többrétegű protokollok előnyei Kapcsolat-orientált / kapcsolat nélküli Protokollrétegek
Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o
Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform
Osztott rendszerek (Distributed
Osztott rendszerek (Distributed systems) Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 09. 18. osztottrendszerek / 1 Tartalom Miért kellenek osztott rendszerek Egy kis
Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus
Tartalom. Történeti áttekintés. Történeti áttekintés 2011.03.23. Architektúra DCOM vs CORBA. Szoftvertechnológia
Tartalom D Szoftvertechnológia előadás Történeti áttekintés Architektúra D vs CORBA 2 Történeti áttekintés 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is
Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani
Mi a legabsztraktabb típus a JAVA-ban? Object Mikor preferált interface-ek használata a konkrét típusok helyett? Ha egy osztály több interfacet is használhasson, vagy ha fvek implementálását a az osztályra
Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
Java programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread
Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben
Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben Java GUI készítése, Oracle kapcsolódás JDBC-vel A jelen anyagban egy egyszerűsített megközelítéssel vizsgáljuk
Komponens alapú programozás Bevezetés
Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network Computing
Kivételkezelés a C++ nyelvben Bevezetés
Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:
Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;
PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function
JAVA PROGRAMOZÁS 2.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,
Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms
Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms Maarten van Steen 1 Kitlei Róbert 2 1 VU Amsterdam, Dept. Computer Science 2 ELTE Informatikai Kar 10. rész:
CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )
Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.
Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen
Osztott rendszerek Krizsán Zoltán 1 Ficsór Lajos 1 1 Általános Informatikai Tanszék Miskolci Egyetem Webalkalmazások fejlesztése tananyag Tartalom Bevezetés A múlt - történelem A jelen Denition Distributed
RMI. Az alapoktól a részletekig RMI, activation, class loader-ek, serialization
RMI Az alapoktól a részletekig RMI, activation, class loader-ek, serialization Tartalomjegyzék BEVEZETÉS... 1 Mi az az RMI?... 1 Mi kell a dokumentum használatához?... 1 A dokumentum felépítése, használata...
Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:
Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból
Szoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan
Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20
Hálózatkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés 2013 1 / 20 Tartalomjegyzék 1 Hálózati Alapismeretek 2 System.Net Namespace 3 Socket Kezelés 4 Példa Tóth Zsolt
Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész
3. előadás Protokollok Kommunikáció 2. rész RPC (Remote Procedure Call) távoli eljáráshívás RMI (Remote Method Invocation) távoli metódushívás MOM (Message-Oriented Middleware) üzenetorientált köztesréteg
Programozási nyelvek II.: JAVA
Programozási nyelvek II.: JAVA 13. gyakorlat 2017. december 11-15. 13. gyakorlat Programozási nyelvek II.: JAVA 1 / 32 Az 13. gyakorlat tematikája Generikus típusokés öröklődés Clone Comparator Névtelen
Java VII. Polimorfizmus a Java nyelvben
Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)
Szoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
BME MOGI Gépészeti informatika 8.
BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező
JAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
OOP: Java 8.Gy: Gyakorlás
OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét
Bevezetés a Java programozási nyelvbe
Bevezetés a Java programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a Java programozási nyelvbe JAVABEV / 1 Egy kis történelem 1. 1990-es évek eleje: a SUN belső project-je
CORBA. Mi a CORBA? A CORBA felépítése
Mi a CORBA? CORBA A programok által használt objektumok nem szükségképpen korlátozódnak az operációs rendszer által a programok számára kijelölt memóriaterületre - a program címzési tartományára. Általánosabb
Interfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
CORBA bevezetés. Paller Gábor 2004.10.08. Internet és mobil rendszerek menedzselése
CORBA bevezetés Paller Gábor 2004.10.08 CORBA Common Object Request Broker Architecture Az Object Management Group (OMG) felügyeli (ugyanaz, mint az UML-t) A specifikáció célja alkalmazások együttműködésének
S04-2 Elosztott alkalmazások készítése
S04-2 Elosztott alkalmazások készítése Tartalom 1. Többrétegű architektúra, elosztott szerveroldal 2. Kommunikációs eszközök: távolieljárás-hívás és üzenet alapú infrastruktúra (point-to-point és publish-subscribe
Objektumorientált programozás Java-ban
Objektumorientált programozás Java-ban Objektumorientált fejlesztés Klasszikus alapszakaszok: Elemzés (analízis) specifikáció, használati esetek (use case diagramok), domain analysis Tervezés (design)
A SZOFTVERTECHNOLÓGIA ALAPJAI
A SZOFTVERTECHNOLÓGIA ALAPJAI Objektumorientált tervezés 8.előadás PPKE-ITK Tartalom 8.1 Objektumok és objektumosztályok 8.2 Objektumorientált tervezési folyamat 8.2.1 Rendszerkörnyezet, használati esetek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később).
Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni: awt: heavy weight komponensek; swing: light weight komponensek (időben később). Mi hogyan használjuk? awt: eseménykezelés,
OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
Grafikus felhasználói felületek. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr.
Programozási Grafikus Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 2 Grafikus felhasználói felület Két csomag elemeiből lehet a felületet elkészíteni awt: heavy weight" komponensek swing:
Java VII. Polimorfizmus a Java nyelvben
Java VII. Polimorfizmus a Java nyelvben Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 19. Java VII. Polimorfizmuss JAVA7 / 1 A kötés (binding( binding) ) fogalma Kötés (binding)