Title: Comparativa Client/Servidor amb JAVA i CORBA
1Comparativa Client/Servidor amb JAVA i CORBA
Pilar Nieto Soler Núria Lleal Serra Antonio
Santiago Pérez
2Índex
- Introducció.
- Tecnologies no-CORBA.
- Sockets.
- Java Servlets.
- Java RMI.
- DCOM.
- CORBA.
- Què ofereix Java a CORBA?.
- Què ofereix CORBA a Java?.
- Java RMI vs CORBA vs DCOM.
- Bibliografia.
3Introducció (I)
- Laugment de la connectivitat canvia la forma de
desenvolupar aplicacions. - Augment de les aplicacions distribuïdes.
- Existeixen diversos nodes on es distribueix el
treball de lempresa. - Per què no fer que el sistema dinformació es
distribueixi a tots els nodes?
4Introducció (II)
- Avantatges de les aplicacions distribuïdes
- Cada localitat te la seva part de funcionalitat
dins el Sistema dInformació. - Cada localitat interacciona amb les altres per
tal daconseguir la funcionalitat general. - Millora en la eficiència del sistema, ja que cada
localitat conserva les dades que utilitza més
sovint. - La resta del sistema pot seguir funcionant encara
que falli alguna localitat.
5Introducció (III)
- Inconvenients de les aplicacions distibuïdes
- Més difícils de compendre, implentar, depurar i
mantenir. - Necesitat deines potents pels programadors que
explotin els avantatges i amaguin les
dificultats.
6Introducció (IV)
- Necessitat deines i suports, tant físics com
lògics - Hardware ordinadors, xarxes de connexió,
protocols nivell fisic i enllaç, etc. - Sistemes Operatius de xarxa Proporcionen entorn
dabstracció pels programadors amb els detalls de
la màquina. - Protocols estàndard dalt nivell.
- Models conceptuals Estableixen un marc lògic pel
desenvolupament daplicacions (Client/Servidor). - Tecnología Són la materialització del model
conceptual. - Llenguatges, entorns de desenvolupament i
execució.
7Aplicacions Client/Servidor distribuïdes (I)
- En els inicis
- Cost Hardware elevat.
- Un únic i gran equip gestionava tota lempresa.
- Utilització de terminals punts daccés al gran
Sistema d Informació. - Tot el codi i dades residia a lordinador
central. - Poca escalabilitat.
- Difícil de mantenir.
- Més terminals gt Més peticions al servidor.
8Aplicacions Client/Servidor distribuïdes (II)
- Evolució
- Hardware molt més barat ( terminals més potents,
desaprofitant les seves capacitats utilitzant-los
com a tals ). - Model conceptual Client/Servidor.
- Separa les funcionalitats.
- El servidor ofereix serveis que poden ser
utilitzar pels clients.
9Sistemes Distribuïts (I)
- Ofereixen la seva funcionalitat en forma
dobjectes. - Faciliten la modularitat i reutilització.
- No existeixen (explícitament) els clients i
servidors. - Els processos que composen laplicació poden
estar execuntant-se en màquines diferents. - Tots els processos són clients i servidors
cooperant per tal daconseguir la funcionalitat
total de laplicació.
10Sistemes Distribuïts (II)
- Desenvolupament daplicacions distribuïdes
- Tècniques no CORBA
- Sockets.
- Servlets.
- RMI.
- DCOM (Microsoft)
- CORBA.
11Tecnologies No-Corba(I)
- Què són?
- Objectiu
- Tipus
- Sockets
- Servlets
- RMI
- DCOM
- Amb RMI i DCOM entrem al món dels objectes
distribuïts.
12Tecnologies No-Corba(II)
- Què són?
- Tècniques de desenvolupament daplicacions
distribuïdes, que no estan basades en CORBA. - Objectiu
- Abstraure al programador de la naturalesa
distribuïda de les aplicacions.
13Tecnologies No-Corba(IV)
- Tipus
- Sockets
- Introducció
- Punt de comunicació, per el qual un procés pot
emetre o rebre informació. - És la tecnologia més antiga.
- Java ofereix una sèrie de classes per a sockets.
- Tipus
- Orientats a connexió (stream).
- No orientats a connexió (datagrama).
14Tecnologies No-Corba(III)
15Tecnologies No-Corba(V)
- Tipus
- Sockets
- Avantatges
- Comunicació ràpida.
- Estàndard de programació en internet.
- Programació relativament senzilla, en aplicacions
no molt complexes.
16Tecnologies No-Corba(VI)
- Tipus
- Sockets
- Inconvenients
- Nivell més baix de comunicació.
- Complexitat a la hora dimplementar certes
aplicacions (mail, ftp..). - Codi poc portable.
- No ofereixen una estandarització dels tipus El
programador sha dencarregar de
codificar/descodificar les dades transmeses
(marshaling).
17Tecnologies No-Corba(VII)
- Tipus
- Servlets
- Que són?
- Programes escrits en Java, que sexecuten en la
màquina virtual del servidor i sencarreguen
datendre peticions del client, tenint el
servidor com a encarregat. Així doncs, el
servidor també es pot beneficiar de totes les
avantatges que ofereix Java.
18Tecnologies No-Corba(VIII)
- Tipus
- Servlets
- Per què sorgeixen?
- Java Llenguatge de programació per a Internet.
El desenvolupament dun servidor completament en
java, permetria treure profit a aquesta
popularitat. - Problema
- Cada petició al servidor gt llançar una màquina
virtual gt lentitud. - Solució
- Un únic procès de sistema (una única màquina
virtual) i per a cada client, crear una nova
tasca Java (thread).Això és el que ofereix Java
Web server.
19Tecnologies No-Corba(IX)
20Tecnologies No-Corba(X)
- Tipus
- Servlets
- Avantatges
- El servei als clients és més ràpid.
- Framework (conjunt de classes especialitzades)
que facilita lescriptura dels servlets. - Possibilitat dutilitzar tota la tecnologia i
APIs disponibles per a Java. - Inconvenients
- Un programa mitjanament gran, es converteix en
totalment inmmanegable. - Progames difíclis de depurar.
21Tecnologies No-Corba(XI)
- Tipus
- RMI(Remoted Method Invocation)
- Què és?
- És el model de Java per desenvolupar aplicacions
amb objectes distribuïts. - Què permet?
- Permet a objectes Java, cridar a mètodes daltres
objectes que estan executant-se a altres
màquines, com si fossin crides a objectes
definits localment per laplicació. - El registre RMI és un servidor de noms, que
permet als clients obtenir referències als
objectes remots.
22Tecnologies No-Corba(XII)
- Tipus
- RMI(Remoted Method Invocation)
- Arquitectura 3 capes
- Stubs Skeletons. Aquest Stubs y Skeletons
permeten, que al moment de ser invocada la funció
remota, aquesta pugui ser simulada localment. - Referencia remota Empaqueta el mètode, arguments
i valor de retorn. - Transport connexió de la xarxa entre els
sistemes.
23Tecnologies No-Corba(XIII)
- Tipus
- RMI(Remoted Method Invocation)
24Tecnologies No-Corba(XIV)
- Tipus
- RMI(Remoted Method Invocation)
- Avantatges
- Desenvolupament daplicacions petites és ràpid i
senzill. - Lexposició dels objectes remots es fa a través
dinterfícies gt modularitat, extensibilitat,
reutilització. - La invocació de mètodes en objectes remots és
transparent al programador i independent de la
localització dels objectes. - El registre RMI és fàcilment configurable.
25Tecnologies No-Corba(XV)
- Tipus
- RMI(Remoted Method Invocation)
- Inconvenients
- Implementació 100 en Java gt difícil integració
en SW ja construït. - Pas dobjectes per valor gtsistema ineficient en
temps. - Rols de Client i servidor ben establerts des del
principi gtNo afavoreix una programació totalment
distribuïda.
26Tecnologies No-Corba(XVI)
- Tipus
- DCOM (Distributed Component Object Model)
- Introducció
- Versió CORBA de Microsoft.
- Interfícies
- Treballa entorn a interfícies especificades
utilitzant IDL (Interface Definition Languaje).
Aquest IDL és incompatible amb el de CORBA. - Aquestes interfícies són independents del
llenguatge utilitzat per implementar la seva
funcionalitat.
27Tecnologies No-Corba(XVII)
- Tipus
- DCOM (Distributed Component Object Model)
- Interfícies
- Les classes DCOM en Java sencarregaran
dimplementar aquestes interfícies. - Sha dincloure obligatoriamnet la interfície
IUnknown, que permet controlar el cicle de vida
de cada objecte DCOM.
28Tecnologies No-Corba(XVIII)
- Tipus
- DCOM (Distributed Component Object Model)
29Tecnologies No-Corba(XIX)
- Tipus
- DCOM (Distributed Component Object Model)
30Tecnologies No-Corba(XX)
- Tipus
- DCOM (Distributed Component Object Model)
- Avantatges
- Permet invocacions dinàmiques.
- Treballa entorn a les interfícies.
- Aconsegueix(teòricament) transparència
local/remota. - Ofereix un conjunt de tipus estàndard, així com
la tècnica del marshalling.
31Tecnologies No-Corba(XXI)
- Tipus
- DCOM (Distributed Component Object Model)
- Inconvenients
- Configuració difícil.
- No escalable.
- No es basa en un model dobjectes clàssic.
- Només suporta eines específiques de Microsoft.
32CORBA (I)
- CORBA
- Conceptes
- Tecnologia Client/servidor
- Avantatges
- Inconvenients
33CORBA(II)
- Conceptes
- CORBA(Common Object Request Broker Architecture)
estàndard que serveix per a crear sistemes
distribuïts (arquitectura de bus comú de gestió
de peticions dobjectes) - OMG Consorci, sense ànim de lucre, que vol
promoure la O.O en la E.S, i establir una
arquitectura comuna per al desenvolupament de
programes basats en Objectes Distribuïts.
34CORBA(III)
- Conceptes
- OMG ha definit CORBA
- Un model dobjectes.
- Com interaccionen els objectes.
- Una arquitectura del sistema que suporta la
interacció dobjectes. - Un llenguatge per a definir la interacció entre
objectes. - Serveis bàsics per a aplicacions distribuïdes.
35CORBA(IV)
- Conceptes
- Tots els components CORBA són objectes (amb una
interfície i identitat pròpia) - Cada objecte es pot implementar amb un llenguatge
de programació diferent i executar-se sobre
qualsevol plataforma i SO.
36CORBA(V)
- Conceptes
- Els dos elements clau de CORBA són
- ORB (Object Request Broker) és el responsable de
permetre als objectes realitzar de forma
transparent les invocacions i rebre les respostes
daltres objectes en un ambient distribuït. - IDL (Interface Definition Language) llenguatge
despecificació dinterfícies públiques,
independent de tot llenguatge de programació, i
no és cap objecte de programació.
37CORBA(VI)
- Tecnologia Client/Servidor
- Tots els serveis disponibles per als objectes
CORBA estan definits utilitzant lIDL, que
especifica els mètodes que els clients
necessiten, permeten que els objectes
simplementin en diferents llenguatges,
facilitant així la independència de CORBA.
38CORBA(VII)
- Tecnologia Client/Servidor
- Tant els clients com els servidors necessitaran
uns adaptadors que transformin - Client una invocació local a una petició a lORB
gt stub - Servidor una invocació de lORB a una invocació
a un objecte del servidorgt skeletons
39CORBA(VIII)
- Tecnologia Client/Servidor
- Tant els stubs com els skeletons utilitzaran
marshalling procés que transformarà dades a un
format estàndard per, posteriorment,
transmetre-les per la xarxa. - Només és necessari que hi hagi una versió de
CORBA per a la plataforma on es vulgui
implementar.
40CORBA(IX)
41CORBA(X)
- Avantatges CORBA
- Disponibilitat i versatilitat.
- Eficiència.
- Adaptació als llenguatges de programació.
- Inconvenients CORBA
- Complexitat.
42Què ofereix JAVA a CORBA?
- Traslladar les aplicacions a diferents
plataformes. - Programació per a Internet.
- Elimina la gestió de la configuració de la part
del client. - Un llenguatge OO relativament senzill.
- Programació Multithreading.
- Simplifica la recollecta de les deixalles.
43Què ofereix CORBA a JAVA?(I)
- Interfícies definides utilitzant IDL.
- Permet que les peticions es generin de forma
dinàmica. - Independència del llenguatge de programació.
- Transparència de localització i activació del
servidor.
44Què ofereix CORBA a JAVA?(II)
- Generació automàtica de codi stub i Skeleton.
- Independència del fabricant (a través dels ORBs)
i fer portable el codi. - Més velocitat.
-
45Què ofereix CORBA a JAVA?(III)
- En definitiva, Corba ens permet programar per tal
daconseguir funcionalitat, independència del
llenguatge, del host o de la plataforma Hardware
sobre la que estigui implementat.
46Java RMI vs CORBA vs DCOM(I)
- Neutralitat de larquitectura vs Transparència en
la comunicació - CORBA transparència en la comunicació,
transparència local/remota i independència de la
plataforma. - Java RMI proporciona una arquitectura neutral,
transparència en la comunicació però no
transparència local/remota. - DCOM proporciona només suport a plataformes
Windows.
47Java RMI vs CORBA vs DCOM(II)
- Independència del llenguatge
- CORBA i DCOM sutilitza en diferents llenguatges
- Java RMI només en Java.
- Pas per valor/referencia
- CORBA no suporta el pas dobjectes per valor.
- Java RMI i DCOM sí que ho suporten.
48Java RMI vs CORBA vs DCOM(III)
- Simplicitat en el desenvolupament daplicacions
- Las aplicacions distribuïdes es construeixen
fàcilmente amb DCOM i Java, degut a que
existeixen eines disponibles per al
desenvolupament de les aplicacions. - CORBA no té aquesta facilitat i així és difícil
construir aplicacions CORBA.
49Java RMI vs CORBA vs DCOM(IV)
- Recollecta de deixalles
- DCOM i els objectes Java tenen recollecció de
deixalles. - CORBA no ho té.
- ...
50Bibliografia
- http//java.sun.com
- http//www.corba.org
- http//www.omg.org/corba
- http//www.javaworld.com
- internet...