Comparativa Client/Servidor amb JAVA i CORBA Pilar Nieto Soler Núria Lleal Serra Antonio Santiago Pérez
Índex Introducció. Tecnologies no-CORBA. 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.
Introducció (I) L’augment de la connectivitat canvia la forma de desenvolupar aplicacions. Augment de les aplicacions distribuïdes. Existeixen diversos nodes on es distribueix el treball de l’empresa. Per què no fer que el sistema d’informació es distribueixi a tots els nodes?
Introducció (II) Avantatges de les aplicacions distribuïdes: Cada localitat te la seva part de funcionalitat dins el Sistema d’Informació. Cada localitat interacciona amb les altres per tal d’aconseguir 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.
Introducció (III) Inconvenients de les aplicacions distibuïdes: Més difícils de compendre, implentar, depurar i mantenir. Necesitat d’eines potents pels programadors que explotin els avantatges i amaguin les dificultats.
Introducció (IV) Necessitat d’eines 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 d’abstracció pels programadors amb els detalls de la màquina. Protocols estàndard d’alt nivell. Models conceptuals: Estableixen un marc lògic pel desenvolupament d’aplicacions (Client/Servidor). Tecnología: Són la materialització del model conceptual. Llenguatges, entorns de desenvolupament i execució.
Aplicacions Client/Servidor distribuïdes (I) En els inicis: Cost Hardware elevat. Un únic i gran equip gestionava tota l’empresa. Utilització de terminals: punts d’accés al gran Sistema d’ Informació. Tot el codi i dades residia a l’ordinador central. Poca escalabilitat. Difícil de mantenir. Més terminals ==> Més peticions al servidor.
Aplicacions 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.
Sistemes Distribuïts (I) Ofereixen la seva funcionalitat en forma d’objectes. Faciliten la modularitat i reutilització. No existeixen (explícitament) els clients i servidors. Els processos que composen l’aplicació poden estar execuntant-se en màquines diferents. Tots els processos són clients i servidors cooperant per tal d’aconseguir la funcionalitat total de l’aplicació.
Sistemes Distribuïts (II) Desenvolupament d’aplicacions distribuïdes: Tècniques no CORBA: Sockets. Servlets. RMI. DCOM (Microsoft) CORBA.
Tecnologies No-Corba(I) Què són? Objectiu Tipus Sockets Servlets RMI DCOM Amb RMI i DCOM entrem al món dels objectes distribuïts.
Tecnologies No-Corba(II) Què són? Tècniques de desenvolupament d’aplicacions distribuïdes, que no estan basades en CORBA. Objectiu Abstraure al programador de la naturalesa distribuïda de les aplicacions.
Tecnologies 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).
Tecnologies No-Corba(III) Tipus Sockets
Tecnologies No-Corba(V) Tipus Sockets Avantatges: Comunicació ràpida. Estàndard de programació en internet. Programació relativament senzilla, en aplicacions no molt complexes.
Tecnologies No-Corba(VI) Tipus Sockets Inconvenients: Nivell més baix de comunicació. Complexitat a la hora d’implementar certes aplicacions (mail, ftp..). Codi poc portable. No ofereixen una estandarització dels tipus: El programador s’ha d’encarregar de codificar/descodificar les dades transmeses (marshaling).
Tecnologies No-Corba(VII) Tipus Servlets Que són? Programes escrits en Java, que s’executen en la màquina virtual del servidor i s’encarreguen d’atendre peticions del client, tenint el servidor com a encarregat. Així doncs, el servidor també es pot beneficiar de totes les avantatges que ofereix Java.
Tecnologies No-Corba(VIII) Tipus Servlets Per què sorgeixen? Java: Llenguatge de programació per a Internet. El desenvolupament d’un servidor completament en java, permetria treure profit a aquesta popularitat. Problema: Cada petició al servidor ==> llançar una màquina virtual ==> 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.
Tecnologies No-Corba(IX) Tipus Servlets
Tecnologies No-Corba(X) Tipus Servlets Avantatges: El servei als clients és més ràpid. Framework (conjunt de classes especialitzades) que facilita l’escriptura dels servlets. Possibilitat d’utilitzar tota la tecnologia i API’s disponibles per a Java. Inconvenients: Un programa mitjanament gran, es converteix en totalment inmmanegable. Progames difíclis de depurar.
Tecnologies 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 d’altres objectes que estan executant-se a altres màquines, com si fossin crides a objectes definits localment per l’aplicació. El registre RMI és un servidor de noms, que permet als clients obtenir referències als objectes remots.
Tecnologies 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.
Tecnologies No-Corba(XIII) Tipus RMI(Remoted Method Invocation)
Tecnologies No-Corba(XIV) Tipus RMI(Remoted Method Invocation) Avantatges: Desenvolupament d’aplicacions petites és ràpid i senzill. L’exposició dels objectes remots es fa a través d’interfícies ==> 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.
Tecnologies No-Corba(XV) Tipus RMI(Remoted Method Invocation) Inconvenients: Implementació 100% en Java ==> difícil integració en SW ja construït. Pas d’objectes per valor =>sistema ineficient en temps. Rols de Client i servidor ben establerts des del principi =>No afavoreix una programació totalment distribuïda.
Tecnologies 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.
Tecnologies No-Corba(XVII) Tipus DCOM (Distributed Component Object Model) Interfícies: Les classes DCOM en Java s’encarregaran d’implementar aquestes interfícies. S’ha d’incloure obligatoriamnet la interfície IUnknown, que permet controlar el cicle de vida de cada objecte DCOM.
Tecnologies No-Corba(XVIII) Tipus DCOM (Distributed Component Object Model)
Tecnologies No-Corba(XIX) Tipus DCOM (Distributed Component Object Model)
Tecnologies 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.
Tecnologies No-Corba(XXI) Tipus DCOM (Distributed Component Object Model) Inconvenients: Configuració difícil. No escalable. No es basa en un model d’objectes clàssic. Només suporta eines específiques de Microsoft.
CORBA (I) CORBA: Conceptes Tecnologia Client/servidor Avantatges Inconvenients
CORBA(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 d’objectes) 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.
CORBA(III) Conceptes OMG ha definit CORBA: Un model d’objectes. Com interaccionen els objectes. Una arquitectura del sistema que suporta la interacció d’objectes. Un llenguatge per a definir la interacció entre objectes. Serveis bàsics per a aplicacions distribuïdes.
CORBA(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.
CORBA(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 d’altres objectes en un ambient distribuït. IDL (Interface Definition Language): llenguatge d’especificació d’interfícies públiques, independent de tot llenguatge de programació, i no és cap objecte de programació.
CORBA(VI) Tecnologia Client/Servidor Tots els serveis disponibles per als objectes CORBA estan definits utilitzant l’IDL, que especifica els mètodes que els clients necessiten, permeten que els objectes s’implementin en diferents llenguatges, facilitant així la independència de CORBA.
CORBA(VII) Tecnologia Client/Servidor Tant els clients com els servidors necessitaran uns adaptadors que transformin: Client: una invocació local a una petició a l’ORB ==> stub Servidor: una invocació de l’ORB a una invocació a un objecte del servidor==> skeletons
CORBA(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.
CORBA(IX)
CORBA(X) Avantatges CORBA Inconvenients CORBA Disponibilitat i versatilitat. Eficiència. Adaptació als llenguatges de programació. Inconvenients CORBA Complexitat.
Què 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 recol·lecta de les deixalles.
Què 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.
Què ofereix CORBA a JAVA?(II) Generació automàtica de codi stub i Skeleton. Independència del fabricant (a través dels ORB’s) i fer portable el codi. Més velocitat.
Què ofereix CORBA a JAVA?(III) En definitiva, Corba ens permet programar per tal d’aconseguir funcionalitat, independència del llenguatge, del host o de la plataforma Hardware sobre la que estigui implementat.
Java RMI vs CORBA vs DCOM(I) Neutralitat de l’arquitectura 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.
Java RMI vs CORBA vs DCOM(II) Independència del llenguatge CORBA i DCOM s’utilitza en diferents llenguatges Java RMI només en Java. Pas per valor/referencia CORBA no suporta el pas d’objectes per valor. Java RMI i DCOM sí que ho suporten.
Java RMI vs CORBA vs DCOM(III) Simplicitat en el desenvolupament d’aplicacions 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.
Java RMI vs CORBA vs DCOM(IV) Recol·lecta de deixalles DCOM i els objectes Java tenen recol·lecció de deixalles. CORBA no ho té. ...
Bibliografia http://java.sun.com http://www.corba.org http://www.omg.org/corba http://www.javaworld.com internet...