1 / 42

Sociedad de la Información I

Sociedad de la Información I. Middleware . Objetos distribuidos. Bases de datos. Índice. Concepto de middleware RPC Plataformas de objetos distribuidos Plataforma RMI Bases de datos. Concepto de middleware. Aplicación distribuida:

Download Presentation

Sociedad de la Información I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sociedad de la Información I Middleware. Objetos distribuidos. Bases de datos.

  2. Índice • Concepto de middleware • RPC • Plataformas de objetos distribuidos • Plataforma RMI • Bases de datos

  3. Concepto de middleware • Aplicación distribuida: • Aplicación compuesta de componentes SW que se ejecutan en sistemas informáticos interconectados por redes de comunicación • Problemas: • Software de diferentes fuentes/plataformas • Redes de comunicaciones heterogéneaas • Datos distribuidos y accesibles desde diferentes puntos

  4. El middleware • Middleware • Tecnologías que permiten la integración y distribución de datos y procesos • El middleware integra: • Los sistemas de comunicaciones • El modelo de datos • Los protocolos de aplicación (transacciones)

  5. Aplicación Aplicación Aplicación Aplicación Presentación Presentación Sesión Sesión Transporte Transporte Red Red Enlace Enlace Física Física Medios físicos Middleware / modelo OSI Aplicaciones Middleware Servicios de transporte de datos

  6. El modelo cliente/servidor • El Middleware proporciona a los componentes de una aplicación distribuida los medios para interaccionar como cliente/servidor petición Componente cliente Componente servidor Interfaz respuesta

  7. Interfaz de usuario Procesado de datos Servicio de datos Interfaz Interfaz El modelo en tres niveles • Las interacciones entre componentes de una aplicación distribuida se organizan según el modelo three-tier: presentation bussines logic data

  8. Tipos de middleware • Llamada a procedimiento remoto (RPC) • Plataformas de objetos distribuidos: • CORBA, DCOM, RMI • Plataformas de componentes distribuidos: • CCM/CORBA, COM/DCOM, Java Beans • Tecnologías para aplicaciones Web: • JavaScrip, CGI, ASP, JSP, ActiveX, Applets ... • Plataformas Web: J2EE, .NET • Otras: MOM...

  9. Middleware basado en RPC • El SW se compome de un programa principal (cliente) y procedimientos (servidores) • Los procedimientos pueden estar distribuidos de forma transparente al cliente • Cada procedimiento ofrece un interfaz • El middleware RPC permite la interacción cliente-servidor cuando el procedimiento es remoto • Estándar: OSF/DCE

  10. remoto local Proc. A Proc. A Prog. principal Prog. principal Proc. B Proc. B RPC middleware RPC

  11. Máquina del cliente Máquina del servidor stub del cliente Proc. A Prog. principal stub del servidor stub del cliente Proc. B bus del middleware RPC

  12. RPC: interfaces • Cada procedimiento remoto especifica un interfaz que contiene: • El nombre del interfaz • Los servicios ofrecidos (signatura) • Lenguaje de especificación de interfaces (IDL) • EL interfaz ha de ser conocido por el cliente • Los stubs se compilan a partir de la definición del interfaz (compilador IDL)

  13. RPC: comunicación entre stubs • Un ‘servidor de nombres’ asocia nombres con direcciones • Cuando un servidor ‘implementa’ un interfaz, se registra en el servidor de nombres • El stub del cliente pregunta al servidor de nombres por un interfaz • El servidor de nombres proporciona la dirección de un stub de servidor • Los stub de cliente y de servidor se conectan

  14. Servidor de nombres pregunta (interfaz A) dirección del stub servidor de A registra(interfaz A, dirección del stub) stub de interfaz A RPC stub de interfaz A Proc. A Prog. principal stub de interfaz B OK RPC: comunicación entre stubs

  15. Plataformas de objetos distribuidos Orientación a objetos: • Un sistema SW está compuesto de un conjunto de ‘objetos’ • Objeto: entidad compuesta de datos y operaciones (‘metodos’) sobre éstos • Los objetos pertenecen a una ‘clase’; cada objeto es una ‘instancia’ de su clase • Los objetos interactúan por medio de mensajes; el objeto emisor invoca un método del objeto receptor • Los objetos implementan interfaces; un interfaz define un conjunto de datos y métodos

  16. Orientación a objetos Ventana posicion: Coords color: Color_ventana C1;Cliente v1;Ventana mover(Coords) cerrar() ... e:=estado() salir() Cliente cerrar() nombre; Nombre tipo; Tipo_cliente estado(): Estado_cliente login() salir() ...

  17. Orientación a objetos • Propiedades de las clases: • Herencia: una clase (subclase) puede heredar todas las propiedades de otra clase (superclase) • Especialización: la subclase puede incorporar propiedades adicionales • Polimorfismo: las propiedades de una clase pueden adoptar diferentes formas en sus subclases • Ventajas: • Encapsulado de la información • Modularidad del SW • Escalabilidad de las aplicaciones • Reutilización de clases • Gestión de la complejidad

  18. Plataformas de objetos distribuidos • Fusión de dos paradigmas: • Orientación a objetos: las aplicaciones están compuestas de objetos • Cliente-servidor: los objetos actúan como clientes o como servidores • Características: • Los objetos ‘implementan’ interfaces • Los objetos (y los interfaces) pueden ser locales o remotos • El middleware resuelve la interacción con objetos remotos

  19. Plataformas de objetos distribuidos • Plataformas DOC (Distributed Object Computing) • CORBA (Common ORB Arquitecture) • OMG (Object Management Group) • DCOM (Distributed Component Object Model) • Microsoft • RMI (Remote Method Invocation) • Sun

  20. RMI • RMI: remote method invocation • Sun • Lo introduce en JDK 1.1 (1996) • Integra el modelo de objetos distribuidos en Java • Facilidad de licencia • Java: multiplatafoma “write once, run anywhere”

  21. JVM dependiente del SO Programa fuente en Java compi- lador Código Java intér- prete programa programa.class programa.java RMI: Java • Los objetos Java se ejecutan en una ‘máquina virtual’ (JVM)

  22. RMI: Java • Partes de la JVM: • Verificador: controla el acceso de los objetos a los recursos del SO • Intérprete del código Java • Librería de clases Java estándar • Métodos nativos: operaciones específicas de la plataforma (p. e. gráficos) • Recolector de basura: elimina los objetos sin referencias • Compilador JIT (just in time...): puede compilar el código Java en un código nativo

  23. JVM (máquina A) JVM (máquina B) objeto objeto interfaz local interfaz remoto objeto RMI middleware RMI: objetivo • RMI permite que los objetos Java puedan invocar métodos de objetos que se ejecutan en otra máquina virtual

  24. RMI: objetos remotos • Sus métodos pueden ser invocados desde otras máquinas virtuales • Implementan un interfaz que especializa el interfaz java.rmi.Remote • ejemplo:

  25. intrefaz remoto JVM (máquina A) JVM (máquina B) objeto objeto comp. RMI stub skeleton RMI middleware RMI: comunicación • El interfaz remoto (escrito en Java) se compila, generando un stub y un skeleton

  26. intrefaz remoto JVM (máquina A) JVM (máquina B) objeto objeto comp. RMI stub RMI middleware RMI: comunicación • En Java 2 se ha suprimido el skeleton

  27. JVM (máquina A) JVM (máquina B) objeto Naming RMI registry objeto stub RMI middleware RMI: registro de objetos • El ‘RMI Registry’ es un servidor de nombres de los objetos remotos

  28. RMI: transporte • Una vez obtenida la referencia, el stub intenta comunicarse con el skeleton (o con el objeto que implementa el interfaz remoto): • Abriendo un socket al puerto 1080 • Enviando una petición HTTP POST al puerto 1080

  29. RMI: serializaición, seguridad • La serialización convierte cualquier cosa en una cadena de caracteres • Los valores de retorno de los métodos pueden ser cualquier cosa • Movilidad de objetos: el retorno de un método remoto puede ser un objeto • Los objetos pueden ‘viajar’ de una JVM a otra • Seguridad: un ‘security manager’ protege el acceso a los objetos remotos.

  30. RMI: programación • Escribir el interfaz remoto • Escribir el objeto servidor (objeto que implementa el interfaz remoto) • Escribir el cliente (objeto que usa el interfaz remoto) • Escribir el programa servidor (programa que crea y registra el objeto remoto, y arranca el ‘security manager’)

  31. RMI: ejecución • Arranca el ‘RMI registry’ • Arranca el programa servidor: • crea el objeto remoto y lo registra • arranca el ‘security manager’ • Se crea el objeto cliente • obtiene una referencia al objeto remoto • invoca el método remoto

  32. RMI • Herramientas • Java 2 SDK v1.4 • 5 packages • Compilador de stubrmic • Registro de objetos remotos rmiregistry http://java.sun.com/j2se/1.4/docs/guide/rmi/index.html

  33. Bases de datos • BD: contiene los datos persistentes de la aplicación • BD relacional: • Compuesta de tablas • una tabla contiene todas las instancias de un dato • instancia de dato: fila de la tabla (registro) • los registros tienen campos (atributos del dato) • No son OO: • registro  objeto • tabla  clase • Cálculo relacional • Lenguaje estándar: SQL (structured query language)

  34. BD: desarrollo • Desarrollo de una BD relacional: • Modelado de los datos • Nombre, atributos, relaciones ( objetos sin métodos) • Diseño de la BD: • Definición de las tablas • Definición de claves • Reglas de integridad referencial • Implementación de la BD: • DBMS (DB management system), estándar o propietario • DDL (data definition language)

  35. * autor editorial libro nombre: CharString nombre CharString dirección: CharString escrito título: CharString edición: Natural fecha: Natural precio: Integer paginas: Integer ISBN: Integer * * autor_especializado * 1 clasificado * * tema * editorial_especializada nombre: CharString * 1 publicado BD: modelado • Ejemplo: BD de un sistema de gestión de una librería

  36. BD: diseño • Clave: un campo (o tupla) cuyo valor no se repite • ISBN • nombre • nombre • nombre • (ISBN,nombre)$id • (ISBN,nombre) $id • (ISBN,nombre) $id • (nombre,nombre) $id • (nombre,nombre) $id • Tablas: una por dato + una por relación (campos=atributos) • libros • autores • editoriales • temas • escrito • clasificados • publicados • autor_especializado • editoral_especializada

  37. BD:implementación

  38. BD:implementación

  39. escrito 54900321099 F.G.L. $286 ... ... ... libro Teoría de la... 2 2002 30 312 54900321099 autor ... ... ... ... ... ... F.G.L. ... BD: desarrollo • Clave ajena: campo que es clave en otra tabla (relaciones) • Reglas de integridad referencial: • Los valores de una clave ajena están restringidos • Eliminación/cambio de registros clave: restricción o propagación

  40. BD: implementación

  41. BD: SQL • Ejemplos de consultas: • SELECT libros.titulo FROM libros WHERE (libros.paginas>200) • SELECT libros.titulo FROM (libros INNER JOIN escrito) WHERE ((libros.ISBN=escrito.ISBN) AND (escrito.nombre_autor=‘F.G.L’)) • INSERT INTO editoriales VALUES (‘edicionesX’,‘www.edicionesX.com’) • UPDATE libros SET (libros.paginas=300) WHERE (libros.ISBN=346870349) • DELET libros.titulo FROM libros WHERE (libros.paginas<100)

  42. JDBC API • Java DataBase Connectivity • Define el acceso • de aplicaciones Java • a bases de datos relacionales locales o remotas • Desarrollado por Sun (1.2, 1997) como alternativa a ODBC (1992)

More Related