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

Méret: px
Mutatás kezdődik a ... oldaltól:

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

Átírás

1 Osztott alkalmazások fejlesztési technológiái Áttekintés Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

2 Történelem - a kezdetek 2 Mainframe-ek és terminálok Minden a központi gépen fut A terminál csak egy periféria Minden a központi gépen múlik

3 Történelem - a következő lépés 3 Klasszikus kliens/szerver architektúra Az adatok kezelése a szerver feladata Az alkalmazás logikájából adódó feladatok megoszlanak a kliens és a szerver között A felhasználói felület kezelése a kliens dolga

4 Többrészes kliens/ szerver architektúra 4 Multi-tier architecture Egy alkalmazás több részből állhat Tipikus: három rész Felhasználói interface Üzleti logika Adatbázis kezelés

5 A jelen: valódi osztott rendszer Többrészes (multi-tier) architectúra Objektum orientált, komponens alapú megközelítés (object-oriented, component based approach) További szolgáltatások directory services tranzakció monitor rugalmasság újrahasznosítható komponensek Egy komponens egyszerre lehet kliens és szerver internet - alapú alkalmazások 5

6 A middleware koncepció 6 Alap probléma: az alkalmazás komponensei közötti kommunikáció kezelése Szabványos, alkalmazás független szolgáltatások Lehetővé teszi az alkalmazás kommunikációját a hálózaton keresztül A hálózati és az alkalmazói program között helyezkedik el Network services Applications MIDDLEWARE Local services Operating system and hardware

7 A middleware-ek ek osztályozása 7 Egy szabvány nem elég, mert a különböző jellegű alkalmazások kommunikációs igénye eltérő A middleware-eket osztályozhatjuk abból a szempontból, hogy milyen más, ismert mechanizmus kiterjesztéseként tekintik a modulok közötti kommunikációt. (Milyen metaforát használnak.) A legalacsonyabb szintű middleware a socket mechanizmus.

8 A middleware-ek ek osztályozása 2. 8 A kommunikáció metafórája File-kezelés Távoli eljáráshívás Adatbázis lekérdezés Üzenet küldés Távoli metódushívás Middleware-ek Socket RPC, DCE RPC, XML RPC, SOAP RDA MOM CORBA, Java RMI, Microsoft DCOM

9 Socket programozás A metafora a file kezelés Valójában egy API a TCP/IP protokoll verem szolgáltatásaihoz Alkalmas nagyon speciális alkalmazásokhoz (Mindent megtehetek) (I can do everything) Nem alkalmas nagy, bonyolult rendszerek fejlesztésére (Mindent nekem kell megcsinálnom) (I must do everything) Nagyon sok más middleware implementációjának alapja 9

10 RPC (Remote( Procedure Call) A metafora az eljárás hívás Klasszikus RPC UNIX és C alapú, de azóta számos implementáció Implementációja a socket mechanizmust használja Distributed Computing Environment (DCE) UNIX rendszerek közötti együttműködés biztosítása Többlet szolgáltatások (osztott filerendszer, security stb.) Nem terjedt el, de bizonyos elemei beépültek a CORBA-ba és a DCOM-ba (IDL, marshalling) 10

11 RPC (Remote( Procedure Call) ) (folyt.) 11 XML RPC A hagyományos RPC-vel ellentétben HTTP protokoll felett zajlik a kommunikáció. Az XMLRPC HTTP POST metódus segítségével XML-be kódolt kérést küld a szervernek XML formátumú adatokat küld át a hálózaton. A Userland cég vezette be

12 RPC (Remote( Procedure Call) ) (folyt.) 12 SOAP (Simple Object Access Protocol) UserLand, Developmentor és Microsoft együttműködés terméke, később az IBM is csatlakozott Jelenleg a W3C felügyeli ezt a szabványt Jóval összetettebb, mint az XML RPC Komplex adatstruktúrák támogatása az XML namespacek használata globálisan egyértelművé teszi az átvitt adatot RPC és üzenetalapú egyszerre

13 Távoli adatelérés (RDA) A metafóra az adatbázis lekérdezés A kliens kiad egy SQL hívást a kliens middlewarenek, amely átmegy a hálózaton keresztül a szerverig A szerver middleware-e meghívja az adatbázis szervert. Az végrehajtja a lekérdezést és visszaküldi az eredményt a szerver middleware-ének A szerver middleware átalakítja az eredményt hálózati üzenetté és elküldi a kliensnek a hálózaton keresztül A kliens middleware fogadja az üzenetet, átalakítja és átadja az eredményt a kliensnek 13

14 Üzenet-orientált middleware (MOM) 14 A metafóra az üzenetváltás

15 Osztott objektum modellek 15 A metafóra az objektum metódus hívás CORBA (Common Object Request Broker) Java RMI (Remote Method Invocation) Microsoft DCOM (Distributed Component Object Model)

16 CORBA kommunikációs modell 16 Kliens (objektum) Object Reference Szerver (objektum) Kliens oldali ORB Szerver oldali ORB GIOP (General( Inter-ORB Protocol) - specifikáció IIOP (Internet Inter-ORB Protocol) - implementáció TCP/IP protokol verem - működtető közeg

17 RMI kommunikációs modell 17 Client Server Stubs Skeletons Remote Reference Layer Transport Layer TCP/IP protokol verem

18 COM/DCOM kommunikációs modell 18 Client Process Client Appl. In-process Object LocalO bject Proxy COM Remote Object Proxy DCOM Stub Stub COM LRPC RPC Remote Machine Remote Server Process Stub Local Server Process DCOM Local Object Local Server Remote Object Remote Server

19 Osztott komponens modellek 19 A metafóra komponensek együttműködése Enterprise JavaBeans Kommunikációs közege a Java RMI Microsoft ActiveX Kommunikációs közege a DCOM

20 Fejlesztési platform szükségessége A nagyméretű rendszerek fejlesztéséhez a legmagasabb absztrakciós szintet biztosító komponens modellek szükségesek A fejlesztés során számos szabványosítható részproblémát kell megoldani A hatékony fejlesztéshez egy szabványos szolgáltatásokat biztosító keretrendszer (fejlesztési platform) szükséges Három elterjedt platform: J2EE (Java 2 Enterprise Edition) Microsoft.NET WebServices (lazán csatolt osztott rendszerekhez) 20

21 A J2EE fejlesztési modell Négyrészes alkalmazás modellje 21 Az EJB az üzleti logika végrehajtásáért felelős komponens

22 Elvi Java architektúra 22 Forrás: J2EE and Microsoft.NET (An( Oracle White Paper, April 2002)

23 Elvi.NET architektúra 23 Forrás: J2EE and Microsoft.NET (An( Oracle White Paper, April 2002)

24 Java és.net egymás mellett 24

25 Időtábla az egyes szabványokról 25 RPC alapú szabványok Sun: Open Network Computing (ONC) for NFS Open Software Foundation (OSF) DCE RPC OMG: nyelv- és plattform független osztott alkalmazások igénye: a CORBA fejlesztésének kezdete Microsoft RPC (a DCE RPC alapján) DCE 1.0

26 Időtábla az egyes szabványokról (folyt.) Microsoft DCOM CORBA 2.0 (with IIOP) Sun JDK 1.1: megjelenik az RMI Microsoft COM+ Sun J2EE (RMI over IIOP) SOAP: a Web Services fejlesztésének kezdete Microsoft.NET

27 Időtábla az egyes szabványokról (folyt.) Másik fontos megközelítés: üzenet alapú rendszerek Adat-orientált Dokumentum orientált IBM: MQSeries (1993) Microsoft: Microsoft Message Queuing Server (MSMQ) Sun: Java Messaging Services (JMS) Web Services: támogatja az RPC alapú és az üzenet alapú megoldásokat is. 27

28 28

29 29