Tema 1: Introducción a las tecnologías de objetos distribuidos

Anuncio
Tema 1: Introducción a las tecnologías
de objetos distribuidos
Características de las aplicaciones distribuidas
n
Aplicación distribuida
n
n
n
Su funcionalidad está descompuesta en componentes que se
ejecutan potencialmente en distintas máquinas
Concepto opuesto al de aplicación monolítica
¿ Por qué se necesitan construir este tipo de
aplicaciones ?
n
n
n
n
Por la propia naturaleza distribuida de algunos proyectos
Para dar soporte al patrón Model-View en aplicaciones
empresariales (arquitecturas en 3 capas)
Por motivos de escalabilidad
Para integrar aplicaciones heterogéneas sobre plataformas
heterogéneas
Ejemplo 1: Una aplicación de gestión de red
Agente
Agente
Red UDC
Agente
Notificaciones de agentes a consola
Órdenes de consola a agentes
Agente
Consola
Ejemplo 2: Una aplicación bancaria en dos capas
Capa 1
Capa 2
Vista
Modelo
ap.
Aplicación
Intranet
Base de datos
Vista
Modelo
ap.
Vista
Modelo
ap.
Aplicación
Aplicación
Ejemplo 2: Una aplicación bancaria en dos capas - Modelo
AccountAccessor
+
+
+
+
+
Account
AccountAccessor()
findByIdentifer(identifier : String) : Account <<returns>>
update(account : Account) : void
add(account : Account) : void
removeByIdentifier(identifier : String) : void
- identifier : String
- balance : double
+
+
+
+
Account(identifier : String, balance : double)
getIdentifier() : String
getBalance() : double
setBalance(newBalance : double) : void
AccountOperations
+ transfer(sourceIdentifier : String, destinationIdentifier : String, amount : double)
Ejemplo 2: Una aplicación bancaria en dos capas - Problemas
n
Problemas de actualización del modelo
n
n
n
n
n
No optimiza las conexiones a la BD
n
n
Cambios de drivers de acceso a la BD
Cambios de esquemas
Cambio de tipo de BD
Cambios en la lógica del modelo
No es posible tener un pool de conexiones global
No optimiza los accesos a la red
n
Cada vez que el modelo lanza una consulta/actualización a
la BD, se envía un mensaje a la BD (quizás atravesando
varios routers)
Ejemplo 2: Una aplicación bancaria en tres capas
Capa 1
Vista
ap.
Vista
ap.
Capa 2
Capa 3
Modelo
Intranet
Base de datos
Vista
ap.
Ejemplo 3: Una aplicación Internet típica en dos capas
Capa 1
Navegador
Navegador
Navegador
Capa 2
Vista
Modelo
web
Internet
Servidor
aplicaciones
web
Base de datos
Ejemplo 3: Una aplicación Internet típica en dos capas - Problemas
n
Problema 1
n
n
n
Nuestra aplicación web tiene “éxito” (es decir, muchos
accesos)
La solución no es escalable
Problema 2
n
n
¿ Y si queremos tener otra vista, por ejemplo, una aplicación
de administración “stand-alone” ?
Problemas de actualización del modelo
Ejemplo 3: Una aplicación Internet típica en dos capas
Una primera solución al problema 1
Capa 1
Capa 2
Navegador
Vista
Modelo
web
Navegador
Navegador
Internet
Servidor
aplicaciones
web
Base de datos
Ejemplo 3: Una aplicación Internet típica en tres capas
Máxima escalabilidad (problema 1) y solución al problema 2
Capa 1
Navegador
Vista
web
Navegador
Capa 2
Capa 3
Modelo
Internet
Base de datos
Navegador
Vista
aplicación
admin.
Ejemplo 4: Heterogeneidad de plataformas
n
n
n
Las redes que unen las distintas máquinas pueden
usar diferentes tecnologías (Ethernet, ATM, FDDI,
etc.) y protocolos (ej.: TCP/IP, X.25, OSI, IPX/SPX,
etc.)
Las plataformas (máquina y sistema operativo) y los
lenguajes de programación también pueden ser
distintos
Razones
n
n
Aplicaciones “del pasado” que han de interoperar con otras
más recientes sobre distintas plataformas
Idoneidad de determinadas plataformas para resolver
determinados problemas
Tecnologías tradicionales para la construcción de aplicaciones distribuidas
n
Tecnologías
n
n
n
n
n
Sockets
Wrappers sobre sockets (ej.: ACE)
Sun RPC (Remote Procedure Call)
DCE (Distributed Computing Environment)
Problemas
n
n
Sockets y wrappers sobre sockets
n
Nuevos mensajes => nuevos formatos
n
Código difícil de escribir y extender
Todas
n
Los interfaces entre clientes y servidores no pueden hacer uso
de las características típicas de los lenguajes orientados a
objetos (encapsulación, herencia, polimorfismo, gestión de
excepciones, etc.).
n
Software más inflexible
Tecnologías de objetos distribuidos (1)
n
CORBA
n
n
n
Permite invocación de métodos de objetos remotos sin que
importe el lenguaje en el que estén escritos el llamador y el
llamado, ni las plataformas (s.o. y hw.) y redes de
comunicación intermedias
Grupo de estandarización: OMG (http://www.omg.org)
Java RMI
n
Modelo fuertemente acoplado con el lenguaje Java
n
n
Se ha estandarizado la interoperabilidad con CORBA (Java RMI
over IIOP)
DCOM/COM+/ActiveX
n
n
Solución propietaria de Microsoft para sus lenguajes y
sistemas operativos
Grupo de “estandarización”: Active Group
(http://www.activex.org)
Tecnologías de objetos distribuidos (y 2)
n
Las tecnologías de objetos distribuidos vienen
acompañadas de servicios
n
n
n
n
n
Nombres
Transacciones
Seguridad
Persistencia
Eventos
Tecnologías de componentes distribuidos (1)
n
Problemas con el uso directo de las tecnologías de
objetos distribuidos
n
Complejas de utilizar para construir aplicaciones
empresariales (transacciones, persistencia, seguridad,
replicación, etc.)
n
n
El programador necesita hacer uso de servicios complejos
Tecnologías de componentes distribuidos
n
n
Permiten construir aplicaciones empresariales sin que el
programador tenga que conocer el API de los servicios
necesarios
Se construyen sobre las tecnologías de objetos distribuidos
n
Ej.: un componente EJB es un objeto Java RMI (CORBA/Java)
que transparentemente al programador puede usar
transacciones, persistencia, seguridad, replicación, etc.
Tecnologías de componentes distribuidos (y 2)
n
Tecnologías (paralelas a las de objetos distribuidos)
n
n
n
Enterprise JavaBeans (forma parte de J2EE)
Los futuros componentes CORBA
Plataforma .NET
Conclusiones
n
Tecnologías de objetos distribuidos
n
n
Tecnologías de componentes distribuidos
n
n
n
Alternativa de más alto nivel que las tecnologías
tradicionales
Facilitan la construcción de aplicaciones empresariales en
tres capas.
Cada tecnología de componentes distribuidos se construye
sobre su homóloga de objetos distribuidos y sus servicios
disponibles
Ámbito de aplicación
n
n
Normalmente se utilizan sólo dentro de intranets
Cuando se precisa tener clientes en Internet, en general,
mejor construir una vista web
n
n
Los usuarios sólo necesitan un navegador (solución fácilmente
mantenible)
Uso de tecnologías de objetos/componentes distribuidos dentro
de la intranet (vista web accede a modelo)
Descargar