Elosztott objektumok használata Tihanyi Sándor 1999. december.

Slides:



Advertisements
Hasonló előadás
A számítógépes hálózatok és az Internet
Advertisements

4. alkalom – Hálózat Kezelés
Windows Communication Foundation (WCF)
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Hálózati és Internet ismeretek
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Virtuális méréstechnika Hálózati kommunikáció 1 Mingesz Róbert V
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
Java komponens modellek
Többfelhasználós és internetes térkép kezelés, megjelenítés.
Objective-C Készítette: Zsivics Sanel NL5LWN. Tartalom bevezető történeti háttér rangsor elterjedtsége / népszerűsége alapok felépítése (.h,.m, xcode,
Amorf szén rétegek növesztésének modellezése, időfejlődésének molekuladinamikai szimulációja Kugler Sándor, Koháry Krisztián* BME Elméleti Fizika Tsz.
Adatbányászati technikák (VISZM185)
RMI = Remote Method Invocation
Bevezetés a Java programozásba
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
Hálózatkezelés, java.net Elek Tibor
C# tagfüggvények.
adminisztrációs feladatok
SPRING FRAMEWORK bemutatása
Számítógépes hálózatok világa Készítette: Orbán Judit ORJPAAI.ELTE.
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Önleíró adatok: XML INFO ÉRA, Békéscsaba
Delphi programozás 8. ELŐADÁS ADO ActiveX Data Objects.
Bevezetés az ebXML-be Forrás: An Introduction to ebXML ebXML and Web Services Practical Considerations In Implementing Web Services Romin IraniRomin Irani.
WEB MES (webes gyártásirányító rendszer)
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Objektumorientált adatbázisok és szabványok Ispány Márton.
Anyagadatbank c. tárgy gyakorlat Féléves tematika Adatbázis alapfogalmak, rendszerek Adatmodellek, adatbázis tervezés Adatbázis műveletek.
A CORBA Rudics Attila 541. Bevezetés Probléma: A nagy számítógépes hálózati rendszerek heterogenitása -különféle architektúrájú számítógépek -különféle.
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Budapest, június 28. Ontológia kezelő modul tervezése szöveges információt kezelő informatikai rendszer számára Förhécz András BME Méréstechnika.
LOGO Webszolgáltatások Készítette: Kovács Zoltán IV. PTM.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
APEX BMF, II. félév.
Hálózati alapismeretek
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
Java programozási nyelv Adatbekérés konzolról
Komponens-absztrakció. Objektum-orientált paradigma korlátai Feltételezés az interfészekről: 1. öröklés és aggregáció alkalmazható, 2. közös programozási.
Illés Zoltán ELTE Informatikai Kar
Java web programozás 11..
Az Internet alkalmazásai
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
Illés Zoltán ELTE Informatikai Kar
Java web programozás 7-8..
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
Gyurkó György. Az OO programozás és tervezés története 1960-as évek: SIMULA (véletlen folyamatokat szimuláló programok írása) az OO nyelvek őse 1970-es.
Java web programozás 5..
Java web programozás 6..
SQL Server 7 installálása. A szükséges hardver és szoftver Processzor Memória Háttértár OS Hálózat Kliensek.
Desktop virtualizáció Microsoft VDI használatával Háló Gyula.
A projekt célja O Egy 2 dimenziós rakpart készítése a TBA cég megbízásából. O Az Eclipse plug-in megengedi a felhasználónak, hogy különböző tárgyakat.
Bevezetés az informatikába 11. előadás Internet. Egyetlen nagy egységes elveken működő világhálózat hálózatok összekapcsolása nagy világhálóvá csomagkapcsolt.
WireShark - Forgalom elemzés
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Almási Béla - NAT 1 Network Address Translation -NAT.
Hálózatos programok készítése
MIB Dokumentáció.
Hálózatkezelés Java-ban
JBoss Wildfly Kalla Mór
Előadás másolata:

Elosztott objektumok használata Tihanyi Sándor december

Tihanyi Sándor2 Tartalom •CORBA szabvány •CORBA részei –komponensek •Objektumok elérése –Naming Service használata •CORBA termékek, példák

1999. decemberTihanyi Sándor3 Mi is az a CORBA? •Elosztott számítógépes alkalmazások –korábban csak UNIX világban •RPC, socket programozás (rugalmatlan, nehezen átlátható kód) –Új gondolat: általános keretrendszer •szabványos •objektum-orientált •rendszerfüggetlen •programozási nyelvtől független

1999. decemberTihanyi Sándor4 Történeti áttekintés •Object Management Group (OMG) –keretrendszer kidolgozása (1989-től) – •Object Management Architecture (OMA) –az OMG által szabványosított architektúra –legalacsonyabb szintje a CORBA •Common Object Request Broker Architechture (CORBA) –2.0-ás változat 1995-ben –3.0-s változat folyamatban

1999. decemberTihanyi Sándor5 Az általános keretrendszer –Szabványos: •Object Management Architecture az OMG-től –Objektum-orientált •CORBA-objektumok megfeleltethetők a nyelvi objektumoknak –Rendszerfüggetlen: •a szabvány megfogalmazza a megkívánt funkciókat –Programozási nyelvtől független: •az IDL (Interface Definition Language) biztosítja

1999. decemberTihanyi Sándor6 Object Management Architecture •CORBA-objektumok és alkalmazás- objektumok •Object Request Brokers (ORBs) •csatorna az objektumok eléréséhez •CORBAservices •szolgáltatások az objektumok kezeléséhez •CORBAfacilities •szolgáltatások az alkalmazásnak

1999. decemberTihanyi Sándor7 CORBA 2.0 ORB struktúra Dynamic Invocation Interface Client IDL Stub ORB Interface ORB Interface Static IDL Skeleton Dynamic Skeleton Interface Object Adapter Interface Repository Implem. Repository ClientObject Impl. ORB Core

1999. decemberTihanyi Sándor8 Object Adapter •CORBA 2.0-ban a Basic Object Adaptert (BOA) definiálták –alap funkcionalitás –nagy szabadságfok a gyártóknak • ez a hordozhatóságot és az együttműködés rovására megy •CORBA 3.0-ban: Portable Object Adapter –nem a BOA javítása, hanem teljesen új –még kidolgozás alatt

1999. decemberTihanyi Sándor9 CORBA komponensek •Kliens oldal (objektum felhasználó rész) •Szerver oldal (objektumot implementáló rész) –Más összefüggésben lehet kliens is •Bármelyik komponens bármilyen nyelven implementálható •Transzparens hálózati kommunikáció az ORB-n keresztül

1999. decemberTihanyi Sándor10 CORBA komponensek

1999. decemberTihanyi Sándor11 A rendszer működése •Kliens hozzáférése az objektumokhoz •proxyn keresztül •Proxy feladata •kérés továbbítása a szerver oldali objektum- implementáció felé •visszatérő érték visszaadása

1999. decemberTihanyi Sándor12 Távoli objektum használata 2. gép Szerver 1. gép KliensProxy Függvényhívás Visszatérő érték visszaadása Függvényhívás továbbítása Visszatérő érték visszaadása Valódi objektum

1999. decemberTihanyi Sándor13 Kapcsolat az ORB-k között Client Stub Object Skel Object Skel Client Stub ORB 1ORB 2 Inter-ORB protocols

1999. decemberTihanyi Sándor14 CORBA 2.0 Inter-ORB architektúra CORBA IDL General Inter-ORB Protocol (GIOP) Internet Inter- ORB Protocol (IIOP) TCP/IP felett mások OSI, IPX/SPX Enviroment Specific Inter- ORB Protocols (ESIOP) DCE/ESIOP DCE RPC TCP/IP felett DCE RCP OSI felett Internet... Transzport Átviteli és üzenet szintaktika Objektum kérés szemantikája CORBA 2.0-ban szerepelOpcionális

1999. decemberTihanyi Sándor15 Statikus hozzárendelés •A kliens az adott referencia alapján elkészíti a proxyt •A szerver oldalon is statikus az implementáció és az ORB kapcsolata Client Stub Object Skel ORB

1999. decemberTihanyi Sándor16 Dinamikus hozzárendelés •A felhasználó beilleszthet a kliens- programjába újabb elemeket ~ www-böngésző plugin –keresés pl. objektum böngésző segítségével •Szerver oldalon: –implementáció példányosítása igény szerint

1999. decemberTihanyi Sándor17 CORBAservices (5/1) •Lifecycle Service: –objektumok létrehozása, törlése, másolása, mozgatása •Relationship Service: –objektumok közti kapcsolatokat írja le –típusok, szerepek, a kapcsolat számossága, szemantikája •Persistent Object Service, Externalization Service: –interfész, protokoll definíció az objektumok elmentéséhez és visszaállításához

1999. decemberTihanyi Sándor18 CORBAservices (5/2) •Event Service: –az események megfelelő helyekre eljuttatása •Object Properties Service: –objektumokhoz tulajdonságok rendelhetők, ezek kezelése (Any típus) •Security Service: –Elosztott biztonsági szolgáltatások •Licensing Service: –licensz jogok kezelése

1999. decemberTihanyi Sándor19 CORBAservices (5/3) •Object Transaction Service: –műveletek csoportosítása, commit-rollback protokoll •Concurency Control Service: –több felhasználó esetén az adatbázisokban fellépő konkurencia kezelése •Object Query Service: –Objektumok, OO és relációs adatbázisok összekapcsolhatóak egyetlen adatbázisba, ezek lekérdezése

1999. decemberTihanyi Sándor20 CORBAservices (5/4) •Naming Service: –az objektumok azonosítása megnevezés alapján •relatív név az ún. Naming Context-hez képest •összetett név, a részek: –id: megnevezés –kind: fajta »pl.: object_code, c_source, executable,... »nem kell névkonvenció (pl. *.o = UNIX obj. file) –csak név  OR összerendelés –API szinten –bind, resolve,... –név konvertálás általános formátumra (pl. Space = %20)

1999. decemberTihanyi Sándor21 CORBAservices (5/5) •Trader Service : –az objektumok „tartalom” szerinti megkeresése –néven kívül más tulajdonságok is kereshetők •bármi  OR összerendelés –„yellow pages” –alkalmazási mód miatt nem API, hanem alkalmazás szinten implementált •Objektum böngésző

1999. decemberTihanyi Sándor22 CORBAfacilities –Vertical CORBAfacilities •üzleti szegmens specifikus alkalmazások támogatása •meglévő üzleti szabványok átültetése –egészségügy, pénzügy, telekommunikáció,... ~ elemzési minták –Horizontal CORBAfacilities •Általános funkciók –felhasználói interfész, menedzsment (info, rendszer, folyamat),... •első: Compound Document

1999. decemberTihanyi Sándor23 ORB megvalósítások •Kötelező részek a szabványból: –CORBA Core •CORBA objektum modell •CORBA architechtúra •OMG IDL szintaktika és szemantika értelmezése –CORBA Interoperability •Internet-Inter-ORB-Protocol (IIOP - TCP/IP felett)

1999. decemberTihanyi Sándor24 ORB megvalósítások –ORB komponensek közül: •Dynamic Invocation Interface (DII) •Dynamics Skeleton Interface (DSI) •Interface Repository (IR) •az ORB interfész •Basic Object Adapter –IDL fordító legalább egy nyelvre •C, C++, Smalltalk, Java, Ada, COBOL •lehet több nyelv támogatása

1999. decemberTihanyi Sándor25 További lehetőségek –ORB-k közötti kapcsolat •IIOP mellett mások (pl. DCE ESIOP) –CORBAservice-k •Főleg a Lifecycle, Events, Naming és a Persistent Object Service-t valósítják meg •Pl. Transaction and Concurrency csak speciális gyártók CORBA-jában –CORBAfacility-k •Pl. Compound Document Management and Display

1999. decemberTihanyi Sándor26 ORBacus for C++ and Java •Object-Oriented Concepts, Inc. • •IDL fordító •C++ és Java nyelvre •HTML és RTF formátumra dokumentáláshoz •Windows 95/98/NT, UNIX, Linux rendszerekre •Egy- és többszálas programozás támogatása •többféle konkurrencia modell használható •Interface Repository •segítségével könnyen lehet IDL fordítókat írni más nyelvekre

1999. decemberTihanyi Sándor27 ORBacus for C++ and Java •Megvalósított CORBAservice-ek: –Naming, Event, Property •Saját kommunikációs protokoll beillesztése –Open Communications Interface (OCI) –pluggable protocols: •IIOP (TCP/IP), SSLIOP, ATM, ISDN, multicast UDP/IP •Dinamikus programozás –Dynamic Invocation Interface (DII), Dynamic Skeleton Interface(DSI) –DynAny típus •a fordítási időben ismeretlen objektumok kezelésére

1999. decemberTihanyi Sándor28 ORBacus for C++ and Java •Kiegészítő elemek, alkalmazások az OOC-től: –SSL •biztonságos kommunikáció •egy OCI pluginként írták meg –Trader •objektum kereső •Trader Service applikáció megvalósítás –Names •adminisztrációs GUI •applikációs segédeszköz a Naming Service használatához

1999. decemberTihanyi Sándor29 Trader screenshot

1999. decemberTihanyi Sándor30 ORBacus konkurrencia modellek •Egyszálas –blokkoló –reaktiválódó •Többszálas –Thread-per-Client Server –Thread-per-Request Server –Thread Pool Server

1999. decemberTihanyi Sándor31 Az IDL nyelv •Interface Definition Language •Feladata: –objektum felületének szabványos leírása •nyelvfüggetlen módon •architektúra független módon –pl. byte-sorrend, ábrázolás –objektum azonosítható az IDL leírása alapján •ORB részére •Object Browser és debugger funkciókhoz

1999. decemberTihanyi Sándor32 Az IDL nyelv •Részei –modul •több interfész összefogása –interface  C++ class –attribute, readonly attribute •egyszerű típusok, struktúrák –metódusok •in, out, inout argumentumokkal •oneway metódusok: aszinkron módon hívható –exception •kivétel-típus

1999. decemberTihanyi Sándor33 Interfész specifikáció leképzése obj.IDLobj.cppobj.hobj_skel.hobj_skel.cppobj_impl.hobj_impl.cppServer.cppClient.cpp mi írjuk generálódik

1999. decemberTihanyi Sándor34 Példa alkalmazás: Hello World! •IDL file: //IDL interface Hello { void hello(); }; Ebből az idl fordító a következőket generálja: hello.h, hello.cpp, hello_skel.h,hello_skel.cpp

1999. decemberTihanyi Sándor35 Hello World: szerver oldal •Hello_impl.h, Hello_impl.cpp –a Hello_skel osztályból örököltetjük az objektumot –itt írjuk meg a tényleges funkciókat •Server.cpp –ORB és BOA objektumok példányosítása –Hello_impl objektum példányosítása –objektumreferencia kiíratása fájlba az ORB objektum segítségével –a BOA elindítása: a szerver működik és várja a kéréseket

1999. decemberTihanyi Sándor36 Hello World: kliens oldal •Client: –ORB objektum példányosítása –a szerver által fájlba kiírt objektum-referencia beolvasása, majd CORBA objektummá konvertálása –az előbb kapott CORBA objektumból a hello objektum elkészítése (a proxy objektum) –ezek után az objektum úgy használható, mint ha a sajátunk volna •pl. hello->hello(); hívás

1999. decemberTihanyi Sándor37 Hello World: osztályhierarchia CORBA_Object Hello Hello_skel Hello_impl CORBA_Object_skel Server Client

1999. decemberTihanyi Sándor38 Objektumok elérése •Objektum referencia •hostname, port number, object key •stringgé alakítható és vissza •Referencia felhasználása –referencia-string beolvasás fájlból •Hello World! példában is ez szerepelt •szükséges a fájl megosztása –URL-en keresztül •pl.

1999. decemberTihanyi Sándor39 Objektumok elérése –Applet paraméterként •referencia-string a HTML kódba •a paraméter feldolgozása –felhasználás mint a fájlból olvasáskor –Névszerverhez kapcsolódás •Általános ORB: –get_inet_object/3 függvénnyel –Initial Services beolvasása (parancssori megadás) •ORBacus specifikus: –iiop://hostname:port/object-name

1999. decemberTihanyi Sándor40 További objektumok elérése •Factory-mintával •Így csak a B-t kell elérni az előbbi módszerekkel //IDL interface A { }; interface B { A getA(); };

1999. decemberTihanyi Sándor41 Naming Service használata ORBacus-szal •Naming szerver funkció elindítása egy adott porton • nameserv -i -OAport > nameserv.ref • java com.ooc.CosNaming.Server -i Oaport 10000\ > nameserv.ref •NT Registry: service regisztrálás • ntnameservice -i • ntnameservice -u (leállítás)

1999. decemberTihanyi Sándor42 Naming Service használata ORBacus-szal •Kliens kapcsolódása a Naming szerverhez –A default NameContext beállítása •java MyClient -ORBservice NameService `cat\ nameserv.ref` •java MyClient -ORBconfig orb.cfg –az orb.cfg tartalmazza a beállításokat •Műveletek a Naming szerverrel •bind, bind_context, new_context, bind_new_context, unbind •resolve, list (iterator)

1999. decemberTihanyi Sándor43 Más lehetőségek a CORBA használatára •SUN: –Java IDL •JDK 1.2 része •Csak alapszintű CORBA: –jidl/idltojava –BOA, DII, DSI, Naming Service •tnameserv -ORBInitialPort=1050 •Más gyártók javasolják a csomagok lecserélését a sajátjukra a bővebb funkciók használata érdekében

1999. decemberTihanyi Sándor44 Más lehetőségek a CORBA használatára •IONA Technologies –Orbix (C++), OrbixWeb (JAVA) •GNU –MICO –ORBit •ORBit-perl, ORBit-C++, ORBit-Eiffel •GNU Ada CORBA Kit (GNACK) •Torb: Tcl/CORBA interfész

1999. decemberTihanyi Sándor45 Címjegyzék –Siegel, Jon: CORBA Fundamentals and Programming, 1996 –Orfall, Robert & Harkey, Dan: Client/Server Programming with JAVA and CORBA, 1998 –OMG:

1999. decemberTihanyi Sándor46 Termékek – – – – – –