Elosztott rendszerek

Hasonló dokumentumok
Osztott Objektumarchitektúrák

Osztott alkalmazások fejlesztési technológiái Áttekintés

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. Utolsó módosítás: Ficsor Lajos. javarmi / 1

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

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Komponens modellek. 3. Előadás (első fele)

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

A SZOFTVERTECHNOLÓGIA ALAPJAI

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

CORBA bevezetés. Paller Gábor Internet és mobil rendszerek menedzselése

Segédanyag: Java alkalmazások gyakorlat

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Segédanyag: Java alkalmazások gyakorlat

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Kommunikáció. 3. előadás

JNDI - alapok. Java Naming and Directory Interface

Java Remote Method Invocation API

S04-2 Elosztott alkalmazások készítése

R I Szer e i r alizáció.

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

A Java nyelv. V. rész Az objektumorientáltság magasabb fokú tulajdonságai: Perszisztencia, CORBA, RMI

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

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

Komponens alapú fejlesztés

Komponens alapú programozás Bevezetés

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Osztott rendszerek (Distributed

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Párhuzamos és Elosztott Rendszerek II

eseményvezérelt megoldások Vizuális programozás 5. előadás

CORBA. Mi a CORBA? A CORBA felépítése

SIP. Jelzés a telefóniában. Session Initiation Protocol

ios alkalmazásfejlesztés Koltai Róbert

Szoftvertechnológia alapjai Java előadások

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

WebSphere Adapters. 6. változat 2. alváltozat. WebSphere Adapter for SAP Software felhasználói kézikönyv 6. változat 2. kiadás

Szoftvertechnológia alapjai Java előadások

10. Gyakorlat: Alkalmazások publikálása Remote Desktop Szervízen keresztül

JAVA webes alkalmazások

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

VoIP (Voice over IP)

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Objektumorientált szoftvertervezés

Objektumorientált szoftvertervezés

CO C R O B R A B OMG, ORB, CORBA

Objektumorientált szoftvertervezés

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Adatbázis-kezelés ODBC driverrel

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Elosztott rendszerek

Bevezető. Servlet alapgondolatok

és az instanceof operátor

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Programozási nyelvek Java

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

SOPHOS simple + secure. A dobozba rejtett biztonság UTM 9. Kókai Gábor - Sophos Advanced Engineer Balogh Viktor - Sophos Architect SOPHOS

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Collections. Összetett adatstruktúrák

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

Széchenyi István Egyetem

ROS Remote Operations Service

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

webalkalmazások fejlesztése elosztott alapon

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

RPC Remote Procedure Call Távoli eljárás hívás

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Operációs rendszerek. A Windows NT felépítése

RMI = Remote Method Invocation. Java tutorial. Kliens-szerver forgato kő nyv. Elosztott objektumok rendszere forgato kő nyv.

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

11. Gyakorlat: Certificate Authority (CA), FTP site-ok

IBM DB2 Connect felhasználói kézikönyv

(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV

OOP és UML Áttekintés

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

A Java EE 5 plattform

Introduction. Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration. Dr. Balázs Simon BME, IIT

C# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Web-fejlesztés NGM_IN002_1

9. MPI

Ethernet/IP címzés - gyakorlat

Programozási nyelvek Java

Programozási nyelvek Java

Enabling Grids for E-sciencE. EGEE köztesréteg. Adat szolgáltatások a glite-ban. INFSO-RI

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

4. Gyakorlat: Csoportházirend beállítások

Csomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)

Programozási nyelvek Java

Kommunikációs middleware megoldások

Átírás:

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 csomópontonként Változó skálázhatóság Nyílt rendszerek 2

Távoli objektum hívása Objektumok egységbezárt adatok (állapot) és m"veletek interfész Elosztott objektumok proxy skeleton 3 Fordítási és futási idej" objektumok Obj. orientált nyelv objektumai fordítási idej" objektumok (osztályok) Nyelvfüggetlen objektumok futási idej" objektumok adapter objektumok (wrapper) Perzisztens és tranziens objektumok 4

Kliens csatlakozása Proxy betöltése, inicializálása Implicit binding csatlakozás hivatkozás feloldásakor Explicit binding bind eljárás explicit hívása szükséges Implementáció hálózati és szolg. azonosítás objektum azonosítás location service 5 Távoli metódusok hívása RPC szer" paraméterátadás és csomagolás +objektum hivatkozások nincs szükség csonkokra interfész leírás static invocation dynamic invocation 6

Java RMI Objektum és állapota egyetlen gépen Távoli interfészt megvalósító proxy Klónozás csak a szerveren, kliensben újra csatlakozás kell synchronized monitorok a proxykon (nincs elosztott szinkronizálás) serializable objektumok átadhatók paraméterként Client Proxies Remote Reference Layer Remote Transport Layer Server Skeletons Remote Reference Layer Remote Transport Layer 7 Java RMI implementáció proxy és skeleton generálás - rmic Remote reference layer különböz! protokollok (csak unicast implementált) Naming service binding Szerver Remote interface RemoteObject RemoteServer UnicastRemoteObject 8

Java RMI implementáció (folyt.) Csomagok java.rmi: Remote interface, MarshalledObject class java.rmi.registry: remote registry java.rmi.server: remote objects, stubs, skeletons (RMI API) java.rmi.activation: persistent object references java.rmi.dgc: remote garbage collector 9 Java RMI (pl.) import java.rmi.remote; import java.rmi.remoteexception; import java.util.date; Szerver public interface DateServer extends Remote{! public Date getdate() throws RemoteException; } import java.rmi.*; import java.rmi.server.*; import java.util.date; public class DateServerImpl extends UnicastRemoteObject implements DateServer{! public DateServerImpl() throws RemoteException{! }! public Date getdate(){!!! return new Date();! }!! public static void main(string[] args) throws Exception{!! DateServerImpl dateserver=new DateServerImpl();!! System.out.println("Registering to Name Server...");!! Naming.bind("Date-Server",dateServer);!! System.out.println("Registered.");! } } 10

Java RMI (pl., folyt.) import java.rmi.naming; import java.util.date; public class DateClient{! public static void main(string[] args) throws Exception{!! if(args.length!=1)!!! throw new IllegalArgumentException("Syntax: DateClient hostname");!! DateServer dateserver=(dateserver)naming.lookup("rmi://"+args[0]+"/date-server");!! Date when=dateserver.getdate();!! System.out.println(when);! } } Kliens javac DateServer.java javac DateServerImpl.java rmic DateServerImpl javac DateClient.java DateServerImpl_Stub.class rmiregistry java DateServerImpl java DateClient localhost 11 Üzenet orientált megoldások Aszinkron kommunikáció üzenetek tárolása a kézbesíthet!ségig (perzisztens kommunikáció) pufferek a kommunikációs megoldásban 12

Perzisztencia és szinkronitás Perzisztens kommunikáció 13 Perzisztencia és szinkronitás (folyt.) Tranziens kommunikáció 14

Perzisztencia és szinkronitás (folyt.) Kézbesítés és válasz 15 Üzenet orientált middleware Üzenet sorkezel! rendszerek perzisztens aszinkron kommunikáció hosszú (perces nagyságrend) továbbítási id!k várakozási sorok gyengén csatolt komunikáció 16

Üzenet orientált middleware (folyt.) Sorkezel! primitívek Primitive Meaning Put Get Poll Append a message to a specified queue Block until the specified queue is nonempty, and remove the first message Check a specified queue for messages, and remove the first. Never block. Notify Install a handler (callback) to be called when a message is put into the specified queue. 17 Üzenet sorkezel! Forrás várakozási sor Cél várakozási sor (címzés) Relay sorkezel! overlay network gatewayek 18

Üzenet közvetít! Egységesített eloszott rendszer kialakítása rugalmas skálázás eltér! formátumok alkalmazás szint" gatewayek üzenet bróker (alkalmazás a sorkezel! fölött) 19 IBM MQSeries Sorkezel!k Üzenet csatornák (szállítási réteg) Message Channel Agent átvitel kézi vagy hálózaton keresztüli indítás paraméterek egyeztetése 20

IBM MQSeries (folyt.) Csatorna jellemz!k Attribute Transport type FIFO delivery Message length Description Determines the transport protocol to be used Indicates that messages are to be delivered in the order they are sent Maximum length of a single message Setup retry count Specifies maximum number of retries to start up the remote MCA Delivery retries Maximum times MCA will try to put received message into queue 21 IBM MQSeries (folyt.) Üzenetátvitel Címzés sorkezel!, sor küld! sor routolási táblák cék sorkezel!, kimeneti sor egyedi sorkezel! nevek helyi aliasok 22

IBM MQSeries (folyt.) Message Queue Interface Primitive Description MQopen Open a (possibly remote) queue MQclose Close a queue MQput MQget Put a message into an opened queue Get a message from a (local) queue 23 CORBA Common object request broker architecture Specifikáció szabványos elosztott objektum rendszerek kialakítására OMG 24

CORBA (folyt.) Objektummodell remote object model CORBA IDL - szintaxis definíció nyelv függ! leképezési szabályok ORB 25 CORBA (folyt.) Dinamikus kérések általános invoke m"velet implementálás az objektumban interface repository IDL compiler -> interface repository id implementation repository (ORB függ!) 26

CORBA (folyt.) Szolgáltatások Service Collection Query Concurrency Transaction Event Notification Externalization Life cycle Licensing Naming Property Trading Persistence Relationship Security Time Description Facilities for grouping objects into lists, queue, sets, etc. Facilities for querying collections of objects in a declarative manner Facilities to allow concurrent access to shared objects Flat and nested transactions on method calls over multiple objects Facilities for asynchronous communication through events Advanced facilities for event-based asynchronous communication Facilities for marshaling and unmarshaling of objects Facilities for creation, deletion, copying, and moving of objects Facilities for attaching a license to an object Facilities for systemwide name of objects Facilities for associating (attribute, value) pairs with objects Facilities to publish and find the services on object has to offer Facilities for persistently storing objects Facilities for expressing relationships between objects Mechanisms for secure channels, authorization, and auditing Provides the current time within specified error margins 27 CORBA (folyt.) Kommunikációs eszközök hívási modellek Request type Failure semantics Description Synchronous At-most-once Caller blocks until a response is returned or an exception is raised One-way Best effort delivery Caller continues immediately without waiting for any response from the server Deferred synchronous At-most-once Caller continues immediately and can later block until response is delivered 28

CORBA (folyt.) Esemény szolgáltatás event channel, supplier, consumer push és pull model Értesítési szolgáltatás események sz"rése 29 CORBA (folyt.) Üzenetkezelés perzisztens kommunikáció aszinkron metódushívás callback model polling model 30

CORBA (folyt.) Folyamatok Kliensek kliens objektum és ORB közé helyezend! megoldások interceptor mechanizmus portable object adapter ORB független szerver oldali kód 31 DCOM Microsoft Windows COM-ból (component object model) n!tt ki Komponensek komponens tehnológia, összetett dokumentumok végrehajtható kód (linked library) 32

DCOM (folyt.) Objektum modell bináris interfészek (metódus pointerek) nyelvfüggetlen interface identifier objektum példányok osztály objektumok gyártó interfésszel 33 DCOM (folyt.) DCOM felépítése 34

DCOM (folyt.) Szolgáltatások CORBA Service DCOM/COM+ Service Windows 2000 Service Collection ActiveX Data Objects - Query None - Concurrency Thread concurrency - Transaction COM+ Automatic Transactions Distributed Transaction Coordinator Event COM+ Events - Notification COM+ Events - Externalization Marshaling utilities - Life cycle Class factories, JIT activation - Licensing Special class factories - Naming Monikers Active Directory Property None Active Directory Trading None Active Directory Persistence Structured storage Database access Relationship None Database access Security Authorization SSL, Kerberos Time None None 35 DCOM (folyt.) Kommunikáció eredetileg szinkron (legfeljebb egyszer) callback: connectable object cancel object: másik szálról megszakítható COM+ aszinkron hívások is (polling model) 36

DCOM (folyt.) Névszolgáltatás Monikerek nem perzisztens objektumok objektum visszaállítási információk Running Object Table Step Performer Description 1 Client Calls BindMoniker at moniker 2 Moniker 3 SCM Loads class object 4 Class object Looks up associated CLSID and instructs SCM to create object Creates object and returns interface pointer to moniker 5 Moniker Instructs object to load previously stored state 6 Object Loads its state from file 7 Moniker Returns interface pointer of object to client 37 DCOM (folyt.) Névszolgáltatás Active Directory Elosztott Windows rendszerek tartományok (domain), domain controller (LDAP) domain tree 38