miércoles, 29 de agosto de 2007

Jini
Jini es una API desarrollada por Sun Microsystems. El objetivo es convertir la red en un sistema flexible y fácil de administrar en el cual se puedan encontrar rápidamente los recursos disponibles tanto por clientes humanos como computacionales. Un sistema Jini consiste en un sistema distribuido basado en la idea de grupos federativo de usuarios y de recursos requeridos por otros usarios. Los recursos pueden ser implementados tanto por dispositivos hardware y software.
Las partes de un sistema Jini son:
Un conjunto de componentes que proporcionan una infraestructura de servicios federativos en un sistema distribuido.
Un modelo de programación que soporta y estimula la producción fiable de servicios distribuidos.
Los servicios que pueden ser parte de un sistema federativo Jini y los cuales ofrecen funcionalidad a cualquiera de los miembros de la federación.
Jini supone que la infraestructura de red sobre la que se monta tiene el ancho de banda y es lo suficientemente fiable para funcionar, por lo que no aporta mecanismo para mejorar estos dos puntos. También se asume que los dispositivos Jini tienen capacidad de procesamiento y memoria suficientes.
Servicios
El concepto de servicio es el más importante dentro de la arquitectura Jini. Un servicio es una entidad que puede ser usada por una persona, un programa u otro dispositivo. Un servicio puede ser de computación, de almacenamiento, un canal de comunicación con otro usuario, un filtro software, un dispositivo hardware, o cualquier usuario. La naturaleza dinámica de Jini permite que los servicios sean añadidos o eliminados en cualquier instante de una federación, de acuerdo con las necesidades, demandas o cambios en los requisitos del grupo de trabajo que utiliza la federación. Los servicios se comunican entre si utilizando el protocolo de servicio, el cual consiste en un conjunto de interfaces escritas en Java, que reposan sobre la tecnología de RMI.
Para saber los servicios disponibles se utiliza el servicio de búsqueda(lookup service). Este mapea las interfaces que indican la funcionalidad de un servicio con el conjunto de objetos que implementan dicho servicio. El servicio de búsqueda se organiza de forma jerárquica. Cuando se quiere añadir un servicio a la tabla se utiliza el protocolo discovery y el protocolo join. El primero se encarga de buscar el lookup service y el segundo de añadir el servicio.
Cuando se quiere utilizar el servicio se busca en la tabla de servicios(lookup service) si existe. En caso de encontrarlo el cliente se descarga el código de control de ese servicio, que puede ir desde una interfaz hasta la implementación completa del servicio.
Se incorporan también un mecanismo de transacciones, para agrupar varias operaciones en una sola y un mecanismos de eventos.