430 likes | 810 Views
Programa de Tercer Ciclo. Sistemas Ubicuos (Parte I) 2. Arquitecturas para sistemas ubicuos. Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea. Metodologías. Herramientas y plataformas. Aplicaciones. Seguridad e integridad.
E N D
Programa de Tercer Ciclo Sistemas Ubicuos(Parte I)2. Arquitecturas para sistemas ubicuos Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Metodologías Herramientas y plataformas Aplicaciones Seguridad e integridad Aspectos éticos y sociales Interfaces Entornos inteligentes Arquitecturas Infraestructuras Tecnologías de red y dispositivos Arquitecturas para sistemas ubicuos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para sistemas ubicuos • Infraestructura soporte • Modelo de entorno ubicuo • Arquitectura de un sistema ubicuo • Integración de servicios heterogéneos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
¿cómo se reparten las funciones? Arquitecturas Middleware Aplicación Aplicación Middleware ¿compatibilidad? Sistema operativo Hardware Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Reparto de funciones:SO vs Mw • Modificar el SO es laborioso y cuesta alcanzar versiones estables. • Trasladar la funcionalidad al Mw es más sencillo pero ofrece peor rendimiento. • Ejemplo: Gaia, Aura, Sistemas basados en Jini-Java. • Micronúcleos: sólo el soporte básico (cambio de contexto, interrupciones...) en el espacio del núcleo; el resto de funciones, como cliente-servidor en espacio de usuario. • Ejemplos: Plan 9 / Plan B. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Compatibilidad • Sistemas heterogéneos: • ¿cómo conseguir que las aplicaciones puedan migrar entre plataformas (Hw o SO) diferentes? • Soluciones: • Disponer de versiones de las aplicaciones para cada plataforma. • Utilizar una plataforma Mw común (ej: Java). • Utilizar emuladores para homogeneizar plataformas. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Compatibilidad: emulación • Emulación software • Se interceptan los traps de las llamadas al sistema del SO emulado y se interpretan en el SO anfitrión. • Ejemplo: Wine. • Emulación hardware • Se emula el entorno Hw completo. • Ejemplo: BOCHS • Virtualización • Emulación Hw de lo estrictamente necesario: • Llamadas al sistema • Acceso a los dispositivos • El resto de las IM se ejecutan nativamente • Requiere análisis del código • Ejemplos: VMware, VirtualPC, Win4Lin Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
SO clásico Micronúcleo Aplicaciones (espacio de usuario) Espacio de usuario Emulador System V Emulador POSIX Otro Emulador Sistema operativo (espacio del kernel) Micronúcleo Espacio del kernel Hw Compatibilidad: micronúcleos Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Aplicación emulada Aplicación emulada Aplicación emulada SO huesped SO huesped Emulador API Aplicación nativa Hw emulado Aplicación nativa Hw emulado Aplicación nativa SO anfitrión SO anfitrión SO anfitrión Hw Hw Hw Compatibilidad: emulación (cont) Emulación Software Emulación Hardware Virtualización Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Modelo de entorno para sistemas ubicuos Recursos o servicios Electrodomésticos, iluminación, proyector... Medio de acceso WiFi, Bluetooth, Infrarrojos, GPRS... Dispositivos de acceso Mando, PDA, teléfono... Servidores PC, dispositivos específicos... Infraestructura de comunicación Power line, ethernet... ¿Explícito o implícito? Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Modelo de entorno para sistemas ubicuos: ejemplo Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas Middleware para sistemas ubicuos Aplicación Aplicación Middleware Sistema operativo Hardware Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Gaia Active Spaces (Roman, 2002) Arquitecturas Middleware para sistemas ubicuos. Ejemplos. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas Middleware para sistemas ubicuos. Ejemplos. Aura (Garlan, 2002) Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas Middleware para sistemas ubicuos. Ejemplos. Network services Applications Other services JavaSpaces Lookup Jini Discovery/Join RMI Java Java Java Solaris Mac Solaris Solaris Windows PowerPC SPARC x86 Arquitectura Jini Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitectura de un sistema ubicuo • Los recursos son de naturaleza dinámica • Pueden estar disponibles o no. • Pueden estar en el radio de acción del usuario o no. • El usuario cambia de entorno y las aplicaciones descubren nuevos dispositivos. • La aplicación debe adaptarse en tiempo de ejecución (no se instalan drivers explícitamente). • Se requieren mecanismos de • Publicación o registro de recursos y servicios. • Descubrimiento de esos servicios por las aplicaciones. • Control de acceso, seguridad, privacidad... • Se requieren estándares (Jini, UPnP, Salutation) • Los recursos pueden ser heterogéneos Integración Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitectura de un sistema ubicuo • Aspectos básicos a considerar en un entorno con recursos no heterogéneos: • Cómo se gestiona el estado de los recursos • Grado de persistencia • Características de los dispositivos de acceso (determinan su funcionalidad) • Tamaño • Capacidad de cómputo y almacenamiento • Capacidad de comunicación • Consumo de energía • Características de los usuarios • Categorías, con diferentes derechos de acceso • Autenticación Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitectura de un sistema ubicuo Dos enfoques • Estructura del mecanismo de descubrimiento • Reparto de funciones entre los elementos del entorno Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para el descubrimiento de servicios(Dabrowski & Mills, 2002) • Componentes básicos: • Cliente: Service User (SU) • Servidor: Service Manager (SM) • Esquemas de comunicación: • Multicast • Unicast • Descripciones del servicio (SD): • Identificación • Tipo • Atributos • Interfaz del servicio • Interfaz de usuario Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
SU SM SU SM SU SM SU SM Arquitecturas para el descubrimiento de servicios:Arquitectura en dos partes • Un SM se da a conocer mediante multicast. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
SU SM SU SM SU SM SU SM Arquitecturas para el descubrimiento de servicios:Arquitectura en dos partes • Un SU descubre servicios mediante multicast. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
SU SM SU SM SU SM SU SM Arquitecturas para el descubrimiento de servicios:Arquitectura en dos partes • El SU obtiene el SD. • El SU accede al servicio. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para el descubrimiento de servicios:Arquitectura en tres partes • SCM: Service Cache Manager. Proporciona persistencia SU SM SU SM SU SM SU SM SCM SCM SCM SCM Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para el descubrimiento de servicios:Arquitectura en tres partes • Los servicios se registran en los SCMs. SU SM SU SM SU SM SU SM SCM SCM SCM SCM • Los SU descubren los servicios registrados. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Reparto de funciones • Dónde ubicar... • El SU • El SCM • La gestión de usuarios • Alternativas: • Utilizar servidores específicos o no • Centralizado vs distribuido • Replicación de servicios Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para sistemas ubicuos Ejemplo 1 • Un usuario utiliza su dispositivo de acceso que le autoidentifica para acceder a los servicios de un entorno ubicuo. • El dispositivo es de uso personal (tipo tab: quien posee el dispositivo está autorizado para usarlo). • El dispositivo descubre los servicios que ofrece el entorno. • El usuario puede operar con los dispositivos descubiertos de acuerdo a sus derechos de acceso sobre ellos, codificados en su dispositivo de acceso. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para sistemas ubicuos Ejemplo 2 • Un usuario utiliza un dispositivo de acceso para acceder a los servicios de un entorno ubicuo. • El dispositivo es de uso común (tipo pad). • Un servidor dedicado descubre los servicios que ofrece el entorno. • El servidor autentica al usuario. • El usuario puede operar con los dispositivos descubiertos de acuerdo a sus derechos de acceso sobre ellos, almacenados en el servidor. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para sistemas ubicuos(2 partes) • Dependiendo de dónde se ubique el SU y las funciones de gestión de usuario: • en el dispositivo de acceso: personal-server architecture (ejemplo 1) • en un servidor dedicado: dedicated-server architecture (ejemplo 2) Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Arquitecturas para sistemas ubicuos(3 partes) • Dependiendo de dónde se ubique el SCM, varias combinaciones (Salvador et al, 2005): Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de servicios • Dispositivos heterogéneos • Muchos protocolos • ¿Cómo integrarlos? • ¿Cómo ofrecer una interfaz común a las aplicaciones? Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de serviciosEnfoques • Soluciones ad-hoc • Pasarelas específicas entre protocolos. • Hay que integrar específicamente cada dispositivo. • Plataforma común • Todos los servicios se representan bajo una interfaz específica lo suficientemente general (p. ej., JINI). • Un marco estándar de especificación lo más universal posible • OSGi Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
LUS • Jini Service 1 • Jini Service 2 • UPnP Gateway 1 • UPNP Gateway 2 • X10 Gateway • EIB Gateway Jini Client Jini Client Jini Client Discovery / Registry Service invocation EIB Gateway Jini Service 1 Jini Service 2 UPnP Gateway 1 UPnP Gateway 2 X10 Gateway Gateway creation UPnP Gateway factory X10 Gateway factory EIB Gateway factory Other Gateway factories UPnP Control point UPnP commands Discovery / Registry EIB bus Power line UPnP resource 1 UPnP resource 2 X10 resource X10 resource EIB resource EIB resource Integración de serviciosJini como plataforma base Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de serviciosOSGi • Open Services Gateway Initiative (1999). • Orientado a entornos domésticos. • Arquitectura centralizada. • Proporciona soporte para instalar dinámicamente servicios Java (bundles) • La implementación de los bundles compete a los desarrolladores del sistema • Los desarrolladores de aplicaciones se limitan a especificar interfaces. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de serviciosOSGi: registro y descubrimiento Registro y descubrimiento de servicios en OSGi. Tomado de (Lee, 2003) Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de serviciosOSGi: un ejemplo Ejemplo “Hello World”, tomado de (Lee, 2003). • Definición de la interfaz, (b) implementación del servicio Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de serviciosOSGi: un ejemplo (cont) Ejemplo “Hello World”, tomado de (Lee, 2003). (c) Registro del servicio. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores
Integración de serviciosOSGi: un ejemplo (cont) Ejemplo “Hello World”, tomado de (Lee, 2003). (d) Descubrimiento e invocación. Konputagailuen Arkitektura eta Teknologia Saila Departamento de Arquitectura y Tecnología de Computadores