Capítulo V Arquitectura para el descubrimiento de servicios
V.6 Descubrimiento del servidor Jabber
V.6.1 Consideraciones
Como se mencionó en el capítulo III, existen actualmente diferentes propuestas para el descubrimiento de servicios, cada una de ellas ha sido abordada por parte de diversos centros de investigación y empresas, y se han realizado diversas maneras de cómo abordar el diseño y búsqueda de servicios. En cada una de estas existen criterios que determinan las decisiones de diseño del protocolo tomando en consideración las necesidades que pretenda cubrir. Debido a esto, la selección de un protocolo adecuado es importante
Centralizado o punto a punto: Dada la infraestructura centralizada de la arquitectura propuesta consideramos que un protocolo centralizado puede cubrir estas expectativas. A diferencia de un modelo punto a punto, un modelo centralizado permite además la escalabilidad. SLP, Jini, DNS-DS pueden ser usados de manera centralizada.
Costos: Los costos involucrados en la selección de un protocolo pueden ser el uso y disponibilidad de una tecnología en particular, incluyendo el uso de licencias, o prerequisitos. Cada uno de los protocolos analizados en el capítulo III son libres de costos, a excepción de Jini el cual requiere de una licencia en el uso de la versión Enterprise Edition de Java, no así para la versión Standard Edition. Bluetooh por otro lado depende exclusivamente de esta tecnología, por lo que los costos involucrados para dar soporte a esto en una red se incrementan.
Código abierto: A pesar de que los protocolos mencionados en el capítulo III son libres de costo, no significa que sea código abierto o estandarizado. Actualmente UPnP y DNS-SD, están en estado de borrador en el IETF, mientras que SLP ha sido liberado. Por
otro lado, la documentación disponible para el uso e implementación del protocolo es importante.
Implementación disponible: UPnP descansa en la plataforma Windows XP, sin embargo existe soporte para Linux. Jini pertenece a Sun Microsystem y es un proyecto que descansa sobre la plataforma Java, pudiendo ejecutarse teóricamente en cualquier sistema operativo que ofrezca una maquina virtual Java. SLP tiene implementaciones en C y Java, tanto para Linux y Windows. SDP depende directamente de Bluetooth, mientras que el resto de los protocolos pueden utilizar la pila TCP/IP independientemente del medio.
Una importancia significativa para el uso de un protocolo de servicios es el grado de automatización que se puede alcanzar con este. Nosotros consideramos que SLP tiene una ventaja significativa sobre el resto de los protocolos. SLP permite la integración con DHCP, lo cual significa que un dispositivo puede realizar de manera automática una petición a un servidor DHCP y con ello obtener los parámetros de red necesarios para autoconfigurarse y adicionalmente obtener el servidor SLP al cual realizar las consultas. De manera similar, DNS-SD puede ofrecer un escenario similar, sin embargo SLP tiene ventaja significativa sobre este. Por un lado SLP es un estándar ya definido, mientras que DNS-SD aún no lo es y como se mencionó existen dos vertientes al respecto. Por otro lado SLP ofrece un mecanismo rico en la búsqueda de servicios basado en el tipo y atributos que se desean, mientras que DNS-SD no lo permite. Bajo estas premisas la arquitectura propuesta utiliza el protocolo SLP para descubrir el servidor Jabber y permitir la interacción de los agentes SALSA con éste.
V.7 Descripción del funcionamiento de la arquitectura
Una entidad sujeta a localización es representada por un agente SALSA, y la localización de esta es llevada a cabo por el sistema de localización de manera centralizada. De la misma manera, las políticas de acceso para el descubrimiento de servicios son definidas de manera centralizada, al igual que la definición del tipo de servicio que ofrecen. Un agente SALSA en su implementación cuenta con un cliente Jabber mediante el cual establece la comunicación con el servidor al cual está registrado, y con ello permite la comunicación con otros agentes. De esta manera, un agente SALSA cuenta con un Jabber- ID del tipo identificador@servidor_Jabber que lo identifica, y a su vez identifica al servicio.
La definición del tipo de servicio que el agente SALSA representa, para el caso de las personas, está dada por el rol que desempeñan. Por lo que una definición del tipo service:persona:doctor//id_persona@servidor_Jabber denota una persona sujeta a localización que tiene el rol de doctor, y un Jabber-ID del tipo id_persona@servidor_Jabber que lo representa. Cualquier agente SALSA que desee obtener información o interactuar con este servicio deberá comunicarse con este identificador a través del servidor Jabber.
La definición del tipo de servicio para artefactos, está dada de manera similar como service:artefacto:silla_de_rueda//id_artefacto@servidor_Jabber, el cual representa un artefacto sujeto a localización con un Jabber-ID del tipo id_artefactor@servidor_Jabber que lo representa. La definición del resto de los servicios tales como impresoras, copiadoras, scanners, etc., siguen el mismo formato, sólo que se omite el subtipo de servicio, por lo que
una definición del tipo service:impresora//id_impresosa@servidor_Jabber define una entidad del tipo impresora.
Mientras que los agentes SALSA que representan a artefactos o personas sujetos a localización, son concientes de las coordenadas (x,y) que representan su localización. Dichas coordenadas cambian regularmente con respecto al tiempo, y por consiguiente de espacios físicos. El resto de los agentes SALSA que representan servicios tales como impresoras, copiadoras, etc., mantienen coordenadas (x,y) de manera estática, las cuales fueron definidas al momento de su instalación. Si estos servicios cambian de lugar físico, las coordenadas (x,y) deben ser reajustadas de manera manual. Esto es así, debido principalmente a que el servidor de espacios físicos se pueden definir espacios a través de formas geométricas, las cuales pueden cambiarse sin afectar el comportamiento de los servicios. Una solución posible al problema de asignar manualmente las coordenadas (x,y) a artefactos estáticos, es colocarle un localizador al igual que aquellos que son de carácter móvil. Sin embargo, esto requiere de un costo adicional.
Todos los servicios además de la definición, tienen asociado un conjunto de atributos que distinguen un servicio de otro. Estos atributos cobran mayor fuerza al tratarse de personas, debido principalmente a que estos distinguen una persona de otra y la identidad del individuo está en juego.