Comparativa Client/Servidor amb JAVA i CORBA

Slides:



Advertisements
Presentaciones similares
TFG – Àrea Enginyeria del programari
Advertisements

Aplicacions de compartició de fitxers a Internet: p2p
Servei de generació de còpies autèntiques
SISTEMES SCADA - Nèstor Sorlí Martínez de Oraà
Disseny i desenvolupament d’un framework MVC en PHP
Sistema de gestió APPCC
Ciència, tècnica i societat
Projecte Fi de Carrera Disseny i desenvolupament d’un esquema criptogràfic per gestionar de forma segura els historials mèdics dels pacients a través d’una.
Treball Fi de Carrera – J2EE
L’ordinador i els Sistemes Operatius(S.O)
Carlos Herrero Joan Torras
TFC Intranet Escolar Desenvolupament d’una aplicació Java2 EE
INTERNET i Correu Electrònic
i el que no es pot avaluar
PLACA BASE POL FABRÓ TAPIA 4tB.
Disseny de la interfície d’un smartwatch i l’aplicació mòbil
Mètriques de productivitat de programari per a la gestió de projectes
CRAI: Unitat de Procés Tècnic
Implantació del protocol Inserqual en la fase d’acollida
Servei de generació de còpies autèntiques
Un exemple de Màquina Virtual: el programa VMware
uoc-domo CONTROL DOMÒTIC AMB ARDUINO UOC-DOMO
TFC – JEE SUPORT I SEGUIMENT TFC ANNAPURNA
TERMOREGULACIÓ HORÀRIA INDIVIDUAL DELS ESPAIS DEL CENTRE
Control de Retirada de Vehicles
GESTIÓ PER PROCESSOS.
TFC - Antoni Romanos Arasa
Juan Antonio Elena Castiñeira Grau d’Enginyeria Informàtica  
Barcelona, 2 de desembre de 2.002
SISTEMA GESTOR D’EMPRESA D’EXCAVACIONS
MAPES MENTALS TONI BUZAN
Internet HISTORIA INTERNET I SOCIETAT. INTERNET I LA SEVA EVOLUCIÓ.
INSTITUT GUILLEM DE BERGUEDÀ
XARXES INFORMÀTIQUES Conjunt d’ordinadors i altres dispositius connectats entre sí, per tal de compartir recursos (maquinari i programari) i informació.
TREBALL DE FINAL DE CARRERA
Situacions Simuladores Preferencials (SSP)
La gestió per processos
DISC DUR Dispositiu encarregat d’emmagatzemar informació de forma permanent al nostre ordinador.
Adam Hospital Gasch Ignasi Mateos Salvador Toni Solé Cortada
Model de gestió assistencial: innovació i integració. Montse Cervera
Memòria RAM Neus Blasco Amor 4rtB.
Formació per a responsables del programa Biblioteca escolar: PUNTEDU
El màrqueting i els seus elements
Framework MVC en PHP Autor: Josep Humet Alsius
Gestió de les emocions PEX. SPR Curs U B.
Jonathan Ceballos Rodriguez ( ) Zenón Perisé Alía ( )
Disseny de la persistència Serialització
Projecte final de carrera Què és?
TEMA 2 XARXES LOCALS David Bermúdez 4tC Vanesa Elvira 4tB
Miquel Pratsevall Héctor del Corral
Llorenç Seguí capllonch 11 de juny de 2018
Aprenentatge de matemàtiques a partir de la creació de videojocs.
XARXES PRIVADES VIRTUALS ( VPNs )
ANTECEDENTS Time-Sheets eina pròpia UPC en productiu
INTERNET XARXA: Quan un conjunt d’ordinadors estan connectats entre si per comunicar-se i compartir informació. TIPUS DE XARXES: LAN: Xarxa d’àrea local,
Threads en Java David Gañán Jiménez.
GRUP DE TREBALL: ATENCIÓ DE CASOS
Xavi Fabregat 4tA Karim Atsailali 4tA
Dipòsit Digital de la Universitat de Barcelona
Projecte Fi de Carrera - J2EE Alumne: Daniel Clemente Marcè
APPLICATION SERVERS Seminari de CASO Q Josep Sanjuàs Cuxart
Barcelona, 23 de novembre de 2.009
PROTOCOLS DE XARXA Regles i especificacions tècniques que han de seguir els dispositius connectats a la xarxa per poder comunicar-se El protocol més utilitzat.
Anàlisi d’un lloc web implementant actualització del contingut
Nova eina de descoberta
Projecte: Videojocs.cat
Màster d’Aplicacions Multimèdia
Grabeplast sales management
Presentació assignatura
Jornada Tècnica per a Coordinadors d’informàtica CEE
Transcripción de la presentación:

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...