Osztott alkalmazások fejlesztési technológiái Áttekintés Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
Osztott technológiák (áttekintés)
Történelem - a kezdetek 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 Osztott technológiák (áttekintés)
2
Történelem - a következő lépés 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 Osztott technológiák (áttekintés)
3
Többrészes kliens/ szerver architektúra 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 Osztott technológiák (áttekintés)
4
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 Osztott technológiák (áttekintés)
5
A middleware koncepció 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
Applications MIDDLEWARE Network services
Local services
Operating system and hardware
Osztott technológiák (áttekintés)
6
A middleware-ek osztályozása 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. Osztott technológiák (áttekintés)
7
A middleware-ek osztályozása 2. A kommunikáció metafórája File-kezelés
Middleware-ek
Távoli eljáráshívás
RPC, DCE RPC, XML RPC, SOAP RDA
Adatbázis lekérdezés Üzenet küldés Távoli metódushívás
Socket
MOM CORBA, Java RMI, Microsoft DCOM Osztott technológiák (áttekintés)
8
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 Osztott technológiák (áttekintés)
9
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) Osztott technológiák (áttekintés)
10
RPC (Remote Procedure Call) (folyt.) 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
Osztott technológiák (áttekintés)
11
RPC (Remote Procedure Call) (folyt.) 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 Osztott technológiák (áttekintés)
12
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 Osztott technológiák (áttekintés)
13
Üzenet-orientált middleware (MOM) A metafóra az üzenetváltás
Osztott technológiák (áttekintés)
14
Osztott objektum modellek 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)
Osztott technológiák (áttekintés)
15
CORBA kommunikációs modell Kliens (objektum) Object
Szerver (objektum)
Reference
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 Osztott technológiák (áttekintés)
16
RMI kommunikációs modell Client
Server
Stubs
Skeletons Remote Reference Layer Transport Layer TCP/IP protokol verem
Osztott technológiák (áttekintés)
17
COM/DCOM kommunikációs modell Client Process Client Appl.
In-process Object LocalO bject
Local Server Process Local Object
COM
Local Server
LRPC
Proxy
Remote Machine Remote Server Process
COM
Remote Object Proxy
Stub Stub
RPC
Stub DCOM
DCOM Osztott technológiák (áttekintés)
Remote Object Remote Server
18
Osztott komponens modellek 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
Osztott technológiák (áttekintés)
19
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) Osztott technológiák (áttekintés)
20
A J2EE fejlesztési modell
21
Az EJB az üzleti logika Négyrészes alkalmazás modellje végrehajtásáért felelős komponens
Osztott technológiák (áttekintés)
Elvi Java architektúra
22
Forrás: J2EE and Microsoft .NET (An Oracle White Paper, April 2002) Osztott technológiák (áttekintés)
Elvi .NET architektúra
23
Forrás: J2EE and Microsoft .NET (An Oracle White Paper, April 2002) Osztott technológiák (áttekintés)
Java és .NET egymás mellett
Osztott technológiák (áttekintés)
24
Időtábla az egyes szabványokról RPC alapú szabványok 1987 Sun: Open Network Computing (ONC) for NFS 1989 Open Software Foundation (OSF) DCE RPC OMG: nyelv- és plattform független osztott alkalmazások igénye: a CORBA fejlesztésének kezdete 1990 Microsoft RPC (a DCE RPC alapján) 1991 DCE 1.0 Osztott technológiák (áttekintés)
25
Időtábla az egyes szabványokról (folyt.) 1996 Microsoft DCOM CORBA 2.0 (with IIOP) 1997 Sun JDK 1.1: megjelenik az RMI Microsoft COM+ 1999 Sun J2EE (RMI over IIOP) SOAP: a Web Services fejlesztésének kezdete 2000 Microsoft .NET Osztott technológiák (áttekintés)
26
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. Osztott technológiák (áttekintés)
27
28
Osztott technológiák (áttekintés)
29
Osztott technológiák (áttekintés)