ES2351093T3 - Procedimiento de gestión automático de asociaciones entre servicios en un entorno distribuido. - Google Patents

Procedimiento de gestión automático de asociaciones entre servicios en un entorno distribuido. Download PDF

Info

Publication number
ES2351093T3
ES2351093T3 ES06820254T ES06820254T ES2351093T3 ES 2351093 T3 ES2351093 T3 ES 2351093T3 ES 06820254 T ES06820254 T ES 06820254T ES 06820254 T ES06820254 T ES 06820254T ES 2351093 T3 ES2351093 T3 ES 2351093T3
Authority
ES
Spain
Prior art keywords
service
services
component
provider
components
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES06820254T
Other languages
English (en)
Inventor
Anne Gerodolle
Andre Bottaro
Vincent Olive
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Application granted granted Critical
Publication of ES2351093T3 publication Critical patent/ES2351093T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Procedimiento de gestión de asociaciones entre componentes solicitantes de servicios y componentes proveedores de servicios en un entorno distribuido, describiéndose dichos componentes, en una etapa de escritura, en un lenguaje de programación objeto, comprendiendo dicho procedimiento las siguientes etapas: - descubrimiento dinámico, por medio de al menos un protocolo de descubrimiento de servicios distribuido, de servicios solicitados, - anuncio, por medio de al menos un protocolo de descubrimiento de servicios distribuido, de servicios proporcionados, y - realización de una conexión entre al menos un componente solicitante de servicios y al menos un componente proveedor de servicios; caracterizado porque dicho procedimiento comprende las siguientes etapas: - en el transcurso de dicha etapa de escritura: - asociación de al menos un componente solicitante de servicios a un archivo declarativo en el que se declaran dichos servicios solicitados, - asociación de al menos un componente proveedor de servicios a un archivo declarativo en el que se declaran dichos servicios proporcionados, integrándose dichos componentes solicitante y proveedor de servicios en una plataforma local (A, B, C) que forma parte del entorno distribuido, - puesta en marcha de dicho componente solicitante de servicios, análisis del archivo declarativo al cual está asociado, identificación de servicios pedidos, y después realización de dicha etapa de descubrimiento dinámico, - puesta en marcha de dicho componente proveedor de servicios, análisis del archivo declarativo al que está asociado, identificación de servicios proporcionados, y después realización de dicha etapa de anuncio, - selección, entre tipos de comunicación disponibles, de un tipo de comunicación que es compatible con el componente solicitante de servicios y el componente proveedor de servicios, - realizándose dicha conexión entre el componente solicitante de servicios y el componente proveedor de servicios con ayuda de un tipo de comunicación compatible identificada.

Description

Procedimiento de gestión automático de asociaciones entre servicios en un entorno distribuido.
La presente invención se refiere a un procedimiento de gestión automático de asociaciones entre componentes solicitantes de servicios y componentes proveedores de servicios en un entorno distribuido.
La invención encuentra una aplicación particularmente ventajosa en el campo de las redes domésticas y de pequeñas redes empresariales o también de la red interna de un automóvil, un barco o un satélite.
Es posible en efecto a día de hoy instalar en el domicilio una red doméstica y equipos electrónicos que se conecten a esta red. Estos equipos van del ordenador clásico hasta equipos electrodomésticos (frigorífico, lavavajillas y así sucesivamente) pasando por agendas personales (PDA), teléfonos inteligentes ("smart phones"), equipos audiovisuales (televisión, magnetoscopio, lector de DVD y así sucesivamente). Sobre una pequeña red empresarial, estos equipos son por ejemplo una impresora, un escáner, un telefax, servidores de aplicaciones (mensajería, herramientas empresariales), un visor para presentaciones. Cualquiera que sea el tipo de red, también pueden instalarse sensores o accionadores conectados a esta red.
Por consiguiente, la invención propuesta está destinada a desplegarse sobre equipos electrónicos inteligentes a domicilio, en la empresa o en lugares en los que se utilizan redes locales. En todos los casos, existen tecnologías que permiten a los equipos que requieren servicios descubrir los equipos proveedores de estos servicios e interconectarse. Gracias a la invención, es posible desarrollar aplicaciones independientemente del conocimiento de la tecnología de descubrimiento y de interconexión seleccionada por los equipos.
El procedimiento propuesto por la invención se basa en la noción de Arquitectura Orientada a Servicios, la cual se obtiene de la Programación Orientada al Objeto y de la Programación por Componentes.
Esencialmente, la Arquitectura Orientada a Servicios resulta de la idea de que una aplicación puede considerarse como la composición de servicios. Los servicios son "contratos" que deben respetar los proveedores de servicios. Estos publican su identidad declarando los servicios que pueden ofrecer desde un directorio de servicios, o directamente desde una lista de clientes o solicitantes de servicios descubiertos dinámicamente, o por difusión sobre un canal multidifusión. Los solicitantes de servicios formulan peticiones desde el directorio de servicios, o directamente desde los proveedores de servicios descubiertos dinámicamente, por ejemplo por petición en multidifusión, para conocer y seleccionar el proveedor de servicios adecuado. Para el servicio, el solicitante se relaciona con el proveedor solicitado y puede solicitarle efectuar las acciones propuestas en el "contrato".
Estas arquitecturas se desarrollan normalmente en el paradigma de "Objeto". Los servicios son interfaces. Los proveedores de servicios son objetos obtenidos de clases que implementan estas interfaces. Cada solicitante de servicios puede relacionarse con un proveedor de servicios descubierto de acuerdo con uno de los métodos citados a continuación. Por tanto puede requerir los métodos declarados por la interfaz dirigida al objeto proveedor.
Los objetos proveedores y los objetos solicitantes pueden formar parte de entidades más importantes o estar ellos mismos compuestos por otros objetos más elementales. En esta memoria, los dos objetos solicitantes de servicios o proveedores de servicios se denominan "componentes". Se observará que un componente puede, si procede, ser a la vez demandante de un servicio y proveedor de un (otro) servicio.
La ventaja de las arquitecturas orientadas al servicio es que permiten un acoplamiento laxo entre las entidades que la componen. Estas sólo interaccionan por conocimiento de los servicios definidos de manera genérica. La implementación de estos servicios puede efectuarse, y por tanto proporcionarse, de muchas maneras. Una entidad puede sustituirse fácilmente por otra en este tipo de arquitectura con la única condición de que proporcione los mismos servicios.
Una arquitectura orientada al servicio puede ser distribuida o no. Si es distribuida, las entidades pueden repartirse sobre equipos diferentes. La conexión entre las entidades utiliza por tanto un protocolo de comunicación remota.
En el estado de la técnica se conoce con el nombre "Service Binder" un servicio para automatizar la gestión de las dependencias de los servicios sobre una plataforma Java de servicios no distribuida, denominada OSGi. Este sistema permite adaptar dinámicamente una aplicación a partir de informaciones proporcionadas por los componentes que la constituyen. Las aplicaciones construidas de esta manera pueden ensamblarse y adaptarse de manera dinámica.
Diseñado sobre un modelo de componentes
OSGi, el Service Binder automatiza el descubrimiento de servicios y la conexión entre componentes desplegados sobre la plataforma OSGi. A cada componente se le asocia un archivo descriptivo de servicios suministrados y solicitados que analiza el Service Binder. Este análisis permite la adaptación automática de cada componente a la evolución de la composición de la plataforma: salida o instalación de nuevos componentes, registro o supresión de servicios.
Es importante observar que este sistema está adaptado a la construcción de aplicaciones no distribuidas. Esto hace que la plataforma de servicios OSGi sea en si misma no distribuida.
Por otro lado, también se conocen tecnologías que pueden utilizarse en un entorno informático distribuido.
Se conoce así, por ejemplo, la tecnología propuesta en la solicitud WO 01/86419 a nombre de SUN MICROSYSTEMS. De acuerdo con el procedimiento de descubrimiento de servicios descrito por esta solicitante, un "cliente" emite una petición incluyendo criterios de búsqueda, después se comparan los criterios de búsqueda con los ofrecimientos de los servicios en el entorno distribuido y después el cliente recibe mensajes que indican los ofrecimientos de los servicios que obedecen a sus criterios de búsqueda. Las peticiones y los ofrecimientos de los servicios se expresan en un lenguaje de representación de datos adecuado, por ejemplo, el lenguaje XML ("eXtensible Markup Language"). Se observará, que para poder aplicar el descubrimiento de servicios remotos y su utilización de acuerdo con la solicitud WO 01/86419, es necesario que un desarrollador asociado al "cliente" escriba y envíe una serie de mensajes (que requiere métodos de una interfaz dedicada designada "API layer 102"). Por tanto, esta tecnología requiere obligatoriamente una intervención humana durante la ejecución.
El artículo de P. Grace, G.S. Blair y S. Samuel "A Reflective Framework for Discovery and Interaction in Heterogeneous Mobile Environments" (ACM Sigmobile Mobile Computing and Communications Review, vol. 9(1), páginas 2 a 14, enero de 2005) aborda el problema de la interoperabilidad entre los protocolos existentes y propone una plataforma denominada "ReMMoC" (iniciales de las palabras en inglés "Reflective Middleware to Support Mobile Client Operability").
Si la tecnología ReMMoC resuelve el problema de compatibilidad entre diferentes tecnologías de descubrimiento de servicio y entre diferentes tecnologías de comunicación remota, no trata el problema de la automatización de la gestión de dependencias de servicios, y la aplicación de ReMMoC para cualquier búsqueda de servicios requiere la intervención de un desarrollador.
Además, ReMMoC no presenta la posibilidad de no utilizar más que llamadas a métodos locales cuando una misma máquina proporciona los servicios, mientras que las llamadas a métodos locales en un lenguaje de programación son más rápidas que las llamadas a métodos remotos.
También se conoce la tecnología UPnP ("Universal Plug and Play")/SSDP, que se basa en una arquitectura distribuida de servicios dinámicos para periféricos de red (televisión, iluminación, direccionador ADSL, lector de DVD, persianas desplegables y así sucesivamente) y puntos de control (PDA, televisión, interruptor mural y así sucesivamente) conectados entre ellos por una red ad hoc. La tecnología UPnP/SSDP define sus protocolos de descubrimiento de servicio. Los protocolos de comunicación remota se toman de SOAP ("Simple Object Access Protocol"). De nuevo, no se proporciona ningún mecanismo para automatizar el descubrimiento de los servicios solicitados.
También se conocen los Servicios Web, cuya arquitectura aparece para permitir que las aplicaciones heterogéneas que se ejecutan dentro de diferentes empresas puedan inter-operar a través de los servicios ofrecidos por las aplicaciones. La heterogeneidad de las aplicaciones no sólo se considera a nivel de los lenguajes de implementación de las aplicaciones, sino también a nivel de los modelos de interacción definidos por los protocolos de comunicación.
La descripción de los servicios Web se realiza en un lenguaje denominado WSDL ("Web Service Description Language"). Este lenguaje, basado sobre una gramática XML, permite describir la interfaz del servicio, los tipos de datos empleados en los mensajes, el protocolo de transporte empleado en la comunicación y las informaciones que permiten localizar el servicio especificado. El directorio de servicios denominado UDDI ("Universal Description Discovery and Integration") admite la grabación de las descripciones de servicios (denominados tipo de servicios) y de proveedores de servicios de empresas. El protocolo de comunicación por defecto es SOAP.
En resumen, actualmente numerosas tecnologías permiten que los equipos electrónicos se interconecten sobre una red y se desconecten de la red sin perturbar el funcionamiento global: los protocolos de descubrimiento de servicios distribuidos como Jini (propuesto por la sociedad Sun Microsystems), UPnP, Web Services y así sucesivamente, permiten a los equipos anunciar sus servicios y descubrir los servicios suministrador sobre la red, particularmente en los que estos se necesitan. Estas tecnologías también facilitan medios para relacionar a los clientes y a los proveedores de servicios gracias a protocolos de conexión remota como SOAP utilizado por UPnP y Servicios Web, RMI utilizado por Jini y CORBA/IIOP utilizado por CORBA.
Estas tecnologías permiten relacionar un componente "proveedor de servicios" y un componente "solicitante de servicios" situados sobre nudos diferentes de red. No obstante, el programador debe escribir el código no funcional, es decir unido a una preocupación externa a las funcionalidades iniciales del software, de manera que:
- la programación de la búsqueda de un servicio tenga las propiedades buscadas por el solicitante del servicio,
- la espera de determinados tratamientos como la activación y el anuncio de servicios suministrados mientras que los servicios solicitados no estén disponibles, y
- la detección y el tratamiento de eventos de grabación, supresión y modificación de servicios.
El Service Binder descrito anteriormente trata precisamente estos aspectos, pero en el contexto no distribuido OSGi, ya que asume el ensamblaje y el desensamblaje de componentes en función de criterios descritos en un archivo de metadatos que obedece a una sintaxis XML: servicios suministrados y propiedades asociadas, servicios solicitados con sus criterios de aceptabilidad (filtros).
Se constata en resumen que hasta ahora ninguna solución técnica conocida permite la gestión automática de dependencias de servicios entre proveedores y solicitantes en un entorno distribuido.
La invención propone por tanto un procedimiento de gestión automático de asociaciones entre componentes solicitantes de servicios y componentes proveedores de servicios en el entorno distribuido, que comprende las siguientes etapas:
- descubrimiento dinámico, por medio de al menos un protocolo de descubrimiento de servicios distribuido, de servicios solicitados,
- anuncio, por medio de al menos un protocolo de descubrimiento de servicios distribuido, de servicios proporcionados, y
- realización de una conexión entre al menos un componente solicitante de servicios y al menos un componente proveedor de servicios.
Este procedimiento se caracteriza porque, integrándose cada componente en una plataforma local que forma parte del entorno distribuido,
- al menos uno de dichos componentes está asociado a un archivo declarativo en el cual se declaran dichos servicios solicitados y/o dichos servicios proporcionados y
- durante la puesta en marcha de dicho al menos un componente, está previsto un análisis de dicho archivo declarativo dentro de la plataforma en la cual está integrado este componente.
De esta manera, la invención aplica la gestión automática de asociaciones proveedores-solicitantes a partir de una declaración previa de dependencias de servicios de cada componente, es decir de servicios proporcionados y/o solicitados por cada componente de la aplicación. Esta declaración previa puede escribirse, por ejemplo, ventajosamente en una sintaxis simple, tal como la sintaxis XML. El descubrimiento del servicio puede, por ejemplo, proceder de una petición presentada por una aplicación "cliente", o de la recepción de un anuncio espontáneo emitido por un proveedor de servicios.
La invención se refiere por tanto, correlativamente, a un archivo declarativo en el cual se declaran los servicios solicitados y/o los servicios proporcionados por un componente asociado a dicho archivo, caracterizado porque es apto para analizarse por un objeto gestionado durante la puesta en marcha de este componente dentro de una plataforma que forma parte de un entorno distribuido.
De acuerdo con características particulares, el procedimiento de acuerdo con la invención puede comprender además, después del análisis de dicho archivo declarativo dentro de la plataforma y por al menos un servicio solicitado declarado en dicho archivo, una etapa de mantenimiento dinámico del conocimiento de los componentes proveedores disponibles y, si procede, una etapa de conexión de dicho componente considerado con un componente proveedor disponible para proporcionar dicho servicio
pedido.
Gracias a estas disposiciones, se garantiza de manera automática la obtención de un servicio pedido por un componente.
De acuerdo con otras características particulares, el procedimiento de acuerdo con la invención puede comprender además, después del análisis de dicho archivo declarativo dentro de la plataforma y por al menos un servicio suministrado declarado en dicho archivo, una etapa de anuncio de dicho servicio suministrado dentro del entorno distribuido.
Gracias a estas disposiciones, se garantiza de manera automática la puesta a disposición de un servicio suministrado por un componente.
De acuerdo aún con otras características particulares, el procedimiento de acuerdo con la invención puede comprender además una etapa de supresión de una conexión entre al menos un componente solicitante de un servicio y al menos un componente anteriormente proveedor de ese servicio, cuando este componente anteriormente proveedor de ese servicio ya no proporcione ese servicio.
Ventajosamente también pueden eliminarse uno o más relaciones que ya no son útiles.
Por otra parte, la invención permite ventajosamente al desarrollador elaborar su aplicación con independencia de las tecnologías de descubrimiento de servicio y de las tecnologías de comunicación presentes en la red durante la ejecución. La invención permite por tanto la utilización transparente de todos los protocolos de descubrimiento y todos los protocolos de comunicación existentes, sin que deba limitarse a un solo representante de estos protocolos.
En particular, la invención es compatible con cualquier tipo de protocolo de descubrimiento de servicios distribuidos. Por ejemplo, al menos un protocolo de descubrimiento de servicios distribuidos puede seleccionarse entre los protocolos SLP, Jini, UDDI, UPnP/SSDP, CORBA y WS-SD.
De acuerdo con un modo de realización, para al menos una pareja de solicitante de servicios/
proveedor de servicios, dicha conexión puede realizarse por medio de un protocolo de comunicación remota. Por ejemplo, dicho protocolo de comunicación remota puede seleccionarse entre los protocolos RMI, SOAP y CORBA/IIOP.
En ese modo de realización, algunos componentes que aplican el protocolo de comunicación remota y/o algunos componentes que aplican un protocolo de descubrimiento de servicio distribuido pueden instalarse ventajosamente por medio de una descarga automática en función de eventos predeterminados, tales como la creación de una conexión entre dos componentes o la instalación de un componente declarante de un servicio.
Por otro lado, de acuerdo con un modo de realización, para al menos una pareja solicitante de servicios/proveedor de servicios alojados en una misma plataforma, dicha conexión puede realizarse naturalmente por medio de una comunicación local.
Como se ha explicado anteriormente, la invención está destinada a aplicarse en entorno distribuido. Por este motivo se refiere, también, a una plataforma que forma parte de dicho entorno y que comprende:
- al menos un componente asociado a un archivo declarativo en el que se declaran los servicios solicitados y/o los servicios proporcionados por este componente y
- al menos un objeto de gestión adecuado para analizar dicho archivo declarativo durante la puesta en marcha de este componente en el interior de dicha plataforma.
La invención también se refiere a programas de ordenador.
Se refiere así, en primer lugar, a un programa de ordenador, denominado corazón, que comprende instrucciones del código de programa para interpretar, por un lado, archivos declarativos de servicios solicitados por un componente solicitante de servicios y archivos declarativos de servicios proporcionados por un componente proveedor de servicios en un entorno distribuido y, por otro lado, seleccionar entre los protocolos disponibles un protocolo de comunicación compatible con dicho componente solicitante de servicios y dicho componente proveedor de servicios, cuando un ordenador ejecuta dicho programa del corazón.
De esta manera, el programa corazón puede identificar que servicios pueden ser objeto de una asociación entre un solicitante y un proveedor de servicio. Ventajosamente, este programa no necesita conocer con detalle cuales son los protocolos de descubrimiento de servicio o los tipos de comunicación disponibles.
Por este motivo la invención se refiere, en segundo lugar, a un programa de ordenador, denominado de implementación, destinado a ser requerido por un programa corazón tal como se describe anteriormente de manera breve, que comprende instrucciones del código de programa para aplicar al menos un protocolo de descubrimiento de servicios distribuido y/o al menos un protocolo de comunicación remota, cuando un ordenador ejecuta dicho programa de implementación.
El hecho de prever así, por un lado, un programa corazón (instalado en todas las plataformas) y, por otro lado, programas de implementación (que sólo pueden instalarse en algunas de estas plataformas) presenta la ventaja de no imponerse a todos los nudos del sistema de gestión del programa de ordenador completo necesario para aplicar la invención. Sin embargo, es evidente que esta disposición de programas que poseen diferentes funcionalidades sólo se menciona en este documento a modo preferencial y en absoluto es indispensable para poder aplicar la invención.
La siguiente descripción, en relación con los dibujos adjuntos, de los modos de realización proporcionados como ejemplos no limitativos, hará que se comprenderá bien en qué consiste la invención y cómo puede realizarse.
La figura 1 es un esquema de funcionamiento de una aplicación sobre varias plataformas distribuidas.
La figura 2 es un esquema del corazón de la infraestructura adaptada a un solo protocolo de descubrimiento de servicios y a un solo protocolo de comunicación, de acuerdo con un primer modo de realización de la invención.
La figura 3 es un esquema relativo a la publicación de un servicio, de acuerdo con un primer modo de realización de la invención.
La figura 4 es un esquema relativo al descubrimiento de un servicio registrado, de acuerdo con un primer modo de realización de la invención.
La figura 5 es un esquema relativo a una llamada remota de los métodos de un proveedor de servicio, de acuerdo con un primer modo de realización de la invención.
La figura 6 es un esquema de los mecanismos aplicados en segundo modo de realización de la invención.
La figura 7 es un esquema de funcionamiento de una aplicación sobre varias plataformas distribuidas y varios equipos.
La figura 8 es un esquema del corazón de la infraestructura adaptada a múltiples tecnologías, de acuerdo con un segundo modo de realización de la invención.
La figura 9 es un esquema relativo a la publicación de un servicio, de acuerdo con un segundo modo de realización de la invención.
La figura 10 es un esquema relativo al descubrimiento de un servicio registrado, de acuerdo con un segundo servicio de realización de la invención.
La figura 11 es un esquema relativo a una llamada remota de los métodos de un proveedor de servicios, de acuerdo con un segundo modo de realización de la invención.
A continuación se describirá detalladamente un primer modo de aplicación de la invención que comprende un sólo protocolo de descubrimiento de servicio y un solo protocolo de comunicación remota de una plataforma de servicios de tipo OSGi. El entorno OSGi proporciona un ejemplo práctico de realización, pudiendo extenderse la invención en cualquier entorno de ejecución de componentes basados en un servicio equivalente al del "Service Binder".
En el caso particular de la plataforma OSGi, se utilizará la terminología denominada "bundle" (en lo sucesivo, "paquete") que define una unidad de despliegue o un elemento de programa desplegable en esta plataforma. La invención consiste en un conjunto de paquetes que pueden desplegarse total o parcialmente sobre cada uno de los nudos de una red de equipos electrónicos inteligentes tales como ordenadores.
La realización propuesta comprende un conjunto de clases y de interfaces genéricas que definen los procesos de base, como la exportación, la conexión, el descubrimiento de un entorno distribuido, a saber:
- noción de "fábrica a exportar": conjunto de clases y de interfaces útiles para la exportación. La función de dicha fábrica es fabricar para un objeto cualquiera una "referencia de exportación" que contenga todas las informaciones que permitan atender este objeto desde un nudo de red, por ejemplo una URL;
- noción de "fábrica de conexión": conjunto de clases y de interfaces útiles para la conexión. La función de dicha fábrica es fabricar, a partir de una "referencia de exportación", un objeto de conexión que permita invocar los métodos del objeto remoto;
- noción de "servicio de descubrimiento": conjunto de clases y de interfaces útiles para aplicar este concepto; la función de un servicio de descubrimiento es permitir a los servidores publicar las referencias del servicio en la red, y a los clientes descubrir los servicios así publicados.
Estas interfaces y clases pueden proporcionarse en un solo paquete, para un despliegue más rápido, o en varios paquetes separados, para un mantenimiento modular. La presencia de este paquete o de este conjunto de paquetes es necesaria en cada plataforma que utiliza la invención. Todas estas interfaces pueden incluirse en un único y mismo componente como el denominado "corazón de infraestructura distribuida" en la figura 2.
Los paquetes de implementación proporcionan:
- una implementación de la interfaz "servicio de descubrimiento" que aplica el protocolo SLP (Service Location Protocol) o cualquier otro protocolo seleccionado como protocolo de descubrimiento de servicios distribuidos para ampliar el descubrimiento de servicios a más plataformas;
- una implementación de la interfaz "fábrica de conexión" que utiliza un protocolo de comunicación remota, como RMI ("Remote Method Invocation"); y
- una implementación de la interfaz "fábrica a exportar" que utiliza dicho protocolo de comunicación remota.
Los mecanismos de Service Binder se recuperan y se extienden con mecanismos distribuidos. El ciclo de vida de los componentes se respeta. Cada componente descrito en el archivo descriptivo también se adjunta a un administrador automático de dependencias. Cada vez que el administrador de dependencias de un componente efectúa una operación de descubrimiento o de conexión de servicio, el mecanismo se extiende de la siguiente manera.
- La búsqueda de un tipo de servicio solicitado teniendo en cuenta las propiedades definidas por el componente se efectúa en primer lugar localmente en la plataforma. Si se encuentra un número suficiente de proveedores de este servicio, la búsqueda es concluyente y se interrumpe. Las conexiones a los componentes descubiertos son por tanto exclusivamente locales. Si el número de proveedores de servicio descubiertos en la plataforma no es suficiente y si la descripción de la dependencia menciona que eventualmente puede satisfacerse de manera remota, por ejemplo por medio de un valor booleano añadido en la sintaxis de la descripción, el administrador efectúa entonces su petición por el protocolo de descubrimiento mencionado anteriormente. Si las referencias descubiertas convienen, el administrador requiere a la fábrica de conexión para proporcionar un representante del objeto remoto proveedor del servicio, objeto de implementación de la interfaz del servicio, al componente solicitante. Se efectúa de esta manera una conexión "remota". La interfaz del objeto proporcionado en el caso de una conexión remota es similar en todos los aspectos a la del objeto que se proporcionarla si el proveedor fuera local. La diferencia es que el objeto proporcionado tramita las solicitudes como delegado, o "proxy" y retransmite las peticiones al objeto remoto.
- El registro de un servicio proporcionado se efectúa en primer lugar en la plataforma local. Si el archivo descriptivo del componente menciona que el servicio puede proponerse de manera remota, entonces el administrador requiere a la fábrica a exportar para construir una referencia de exportación, a continuación efectúa el registro de esta referencia de acuerdo con el protocolo de descubrimiento. La referencia de exportación del componente contiene información suficiente de un cliente para que la fábrica de conexión actual construya un "proxy" que permita el acceso a este componente remoto.
La escritura del código del corazón sólo necesita conocer las "interfaces de base" descritas anteriormente. En la figura 2, las interfaces de bases y el código del corazón se reúnen en el paquete "corazón de infraestructura distribuida". Para un funcionamiento en modo distribuido, el corazón necesita que en cada plataforma OSGi se instale el paquete de fábrica de conexión RMI para los servicios solicitados, el paquete de fábrica a exportar RMI para los servicios proporcionados y el paquete que permite el acceso al descubrimiento SLP (figura 2). En la figura 1, el corazón de la infraestructura no se representa en cada plataforma sino que cada paquete instalado utiliza los mecanismos ofrecidos por el corazón de la infraestructura.
El mecanismo distribuido del procedimiento de acuerdo con un primer modo de realización de la invención se describe ahora con referencia a las figuras 3, 4 y 5.
La figura 3 muestra tres plataformas en la misma red local: A, B, C. El usuario solicita la instalación de una aplicación. La instalación comprende la instalación del paquete b1 (t1) en la plataforma A. Uno de los componentes de este paquete registra, mediante el corazón de la infraestructura, un servicio S hacia el directorio de servicios asociados a la plataforma A (t2), después lo registra a los directorios remotos denominados DA (Directory Agent, entidad definida por SLP) (t3).
La figura 4 muestra la presencia del paquete b2 en la plataforma B, en la que uno de los componentes formula una petición de servicios. La petición es en primer lugar local (t4). En este ejemplo, o el servicio S deseado no está registrado en la plataforma B, o la descripción de b2 indica que b2 requiere la conexión de todos los proveedores de ese servicio. Por consiguiente, el paquete b2 se dirige a uno de los directorios remotos DA (t5). Como la referencia registrada por b1 conviene, el componente solicitante analiza entonces los parámetros RMI unidos a la referencia para requerir los métodos sobre el servicio remoto (t6) en la plataforma A como se ilustra en la figura 5.
La invención propuesta está destinada para instalarse en equipos electrónicos inteligentes a domicilio, en empresas o en el ámbito de redes locales. Estos equipos se suministran habitualmente con una arquitectura de componentes clásica. Los componentes de arquitectura y los componentes aplicativos pueden instalarse en remoto de acuerdo con las necesidades. Para un buen funcionamiento, los paquetes que describen las interfaces de base y el "corazón de la infraestructura distribuida" deben instalarse en cada plataforma que efectuará conexiones remotas o necesitará servicios remotos.
De manera habitual, el desarrollador define en primer lugar las interfaces de los servicios internos o externos a su aplicación. Estas interfaces en todos los modelos orientados al servicio se definen por:
- un nombre de interfaz,
- nombres de métodos, denominados también acciones o funciones, con sus argumentos de entrada y de retorno.
A continuación, se escribe el código de la aplicación utilizando esas interfaces. De manera habitual, una parte del código está unida a las tecnologías de descubrimiento y de conexión remota utilizadas. El ámbito de la invención, el desarrollador escribe el código de sus componentes de acuerdo con un modelo de programación convencional (en este documento OSGi). Sólo se añade un archivo descriptivo particular a cada componente para declarar los servicios a proporcionar de manera distribuida y los servicios solicitados. La invención permite generar automáticamente los objetos "proxy", intermediarios útiles en la adaptación del descubrimiento y de la comunicación de acuerdo con el modelo considerado. El código por tanto es genérico y se adapta automáticamente al descubrimiento y a la conexión de los servicios remotos.
El archivo descriptivo también es útil en la ejecución. De acuerdo con la invención, un objeto "administrador" analiza este archivo al arrancar el componente. Para cada servicio solicitado, activa un objeto que mantiene dinámicamente el conocimiento de los proveedores disponibles para la utilización de las tecnologías de descubrimiento disponibles, une o desune al componente solicitante con los proveedores. Cuando se proporcionan todos los servicios solicitados, el administrador anuncia entonces los servicios proporcionados por la tecnología de descubrimiento, utilizada para el anuncio o registro de servicios en ese caso. Las aplicaciones se componen de manera espontánea sin configuración explícita antes de la ejecución. Durante la ejecución, la modificación del entorno (comandos del usuario, llegada y salida de equipos, y así sucesivamente) tiene como consecuencia la aparición o la supresión de los servicios. Como cada componente reacciona dinámicamente a estos eventos, la aplicación se reconfigura automáticamente.
En particular, ventajosamente se podrá prever la supresión de una o más conexiones entre componentes solicitantes de un servicio y un componente anteriormente proveedor de ese servicio que ha hecho saber que ya no proporcionará este servicio a partir de un momento dado.
De manera general, el administrador instala sus equipos provistos de su plataforma de servicios. Puede instalar directamente o en remoto el "corazón de la infraestructura distribuida" y las unidades que implementan la fábrica a exportar, la fábrica de conexión y el acceso al servicio de descubrimiento remoto.
El usuario puede instalar componentes aplicativos en las plataformas donde se instala la invención, gracias, por ejemplo, a un catálogo disponible en internet, no siendo el despliegue una problemática dirigida por la invención. Sin configuración previa, los equipos publican los servicios proporcionados, descubren los servicios disponibles e interaccionan con objeto de ofrecer todas las funcionalidades de la aplicación deseada.
A continuación se describe con detalle un segundo modo de realización de la invención que combina todas las tecnologías posibles para el descubrimiento del servicio y la comunicación remota sobre una plataforma de servicios de tipo OSGi. Este segundo modo de realización abarca el primer modo de realización a una arquitectura orientada al servicio que utiliza todos los protocolos de descubrimiento de servicios y de comunicación remota disponibles (figura 6).
La realización propuesta comprende un conjunto de clases y de interfaces genéricas que definen los procesos de base, a saber:
- noción de "meta-fábrica a exportar": la función de dicha fábrica es mantener al día la lista de "fábricas a exportar" disponibles en la plataforma; la meta-fábrica puede requerir a todas las fábricas a exportar disponibles para crear y unir los parámetros útiles a las diferentes tecnologías de comunicación remota para cada registro de un servicio proporcionado;
- noción de "meta-fábrica de conexión": la función de dicha fábrica es mantener al día la lista de fábricas de conexiones disponibles en la plataforma; la meta- fábrica puede crear la conexión remota adecuada a partir del conocimiento de una referencia del objeto remoto y
- noción de "meta-servicio de descubrimiento": la función de esta entidad es mantener al día la lista de servicios de descubrimiento disponibles; permite a los proveedores de servicios publicar las eferencias del servicio en la red de acuerdo con cualquiera de las tecnologías de descubrimiento de servicios presentadas y a los clientes descubrir los servicios así publicados.
Estas interfaces y clases pueden proporcionarse en un solo paquete o en varios paquetes separados. La presencia de este paquete (o de este conjunto de paquetes) es necesaria en cada plataforma que utiliza la invención. Todas las interfaces pueden incluirse en un solo y mismo componente como el que se denomina "corazón de infraestructura distribuida" en la figura 8.
Los paquetes de implementación que aplican las nociones definidas anteriormente en los paquetes de base son por ejemplo:
- fábricas a exportar especializadas (RMI,
SOAP para los servicios UPnP, SOAP para los servicios Web, CORBA/IIOP) que implementan las interfaces de bases;
- fábricas de conexión especializadas (mismas tecnologías que las anteriores) que implementan las interfaces de base;
- paquetes que contienen componentes que implementan la noción del servicio de descubrimiento utilizando un protocolo de descubrimiento clásico (SLP, Jini, WS-SD, UDDI, UPnP/SSDP, Corba Traiding Service) o ad hoc, basado por ejemplo en una tecnología "Peer to Peer".
Para que un solicitante que funciona en una plataforma A pueda utilizar un proveedor que funciona en una plataforma B, basta con que esté desplegado sobre A al menos una "fábrica de conexión" compatible con una "fábrica a exportar" desplegada sobre B. Incluso, para que el solicitante pueda descubrir al proveedor, basta con que se despliegue en las dos plataformas un paquete que encapsule el mismo protocolo de descubrimiento. Si el cliente (resp. servidor) es un equipo que utiliza tecnologías convencionales, el servidor (resp. cliente) también debe utilizar las mismas tecnologías de descubrimiento, de exportación y de conexión.
Este segundo modo de realización de la invención propone interfaces y mecanismos genéricos para adaptar el procedimiento, de acuerdo con el primer modo de realización anteriormente descrito, en todas las tecnologías de descubrimiento de servicios y todas las tecnologías de comunicación remota.
Los mecanismos del procedimiento según el primer modo de realización se toman y se amplían para adaptarlos a tecnologías variadas. Cada componente desarrollado se describe en el archivo descriptivo y se adjunta un administrador automático de dependencias. Cada vez que el administrador de dependencias de un componente efectúa una operación de descubrimiento o de conexión del servicio, el mecanismo se amplia a todos los protocolos pertinentes presentes. El paquete "corazón" está constituido en si mismo por tres componentes:
- un componente que implementa el "meta-servicio de descubrimiento" que requiere localmente todos los componentes instalados que proporcionan un servicio de descubrimiento'',
- un componente que implementa la "meta-fábrica de conexión" que requiere localmente todos los componentes instalados proporcionando una fábrica de conexión, y
- un componente que implementa la "meta-fábrica a exportar" que requiere localmente todos los componentes instalados proporcionando una fábrica de exportación.
El código del paquete "corazón" utiliza estos tres componentes para aplicar los siguientes mecanismos distribuidos.
Como en el procedimiento según el primer modo de realización, la búsqueda de un tipo de servicio solicitado valorando las propiedades definidas por el componente se efectúa en primer lugar localmente en la plataforma. Si la descripción de la dependencia menciona que eventualmente puede satisfacerse de manera remota, por ejemplo, por un valor booleano añadido en la sintaxis de la descripción, el administrador efectúa entonces su petición sucesivamente al lado de cada servicio de descubrimiento disponible. Después de cada solicitud, si los proveedores de los servicios descubiertos convienen y pueden conectarse al componente solicitante, la búsqueda se declara concluyente y se interrumpe.
Un proveedor de servicios descubierto puede conectarse al componente solicitante con la siguiente condición: el proveedor descubierto debe registrarse al menos con una referencia de exportación compatible con una fábrica de conexión disponible sobre la pasarela, conocida por el corazón La fábrica de conexión compatible proporciona entonces un representante del objeto remoto proveedor del servicio, es decir, un objeto que implementa la interfaz del servicio, en el componente solicitante a partir de parámetros útiles inscritos en la referencia de exportación. La interfaz del objeto proporcionado es similar en todos los aspectos a la del objeto que se proporcionarla si el proveedor fuera local. La diferencia es que el objeto proporcionado tramita las solicitudes como delegado, o "proxy" y retransmite las peticiones al objeto remoto.
Como en el procedimiento según el primer modo de realización, el registro de un servicio suministrado se efectúa en primer lugar en la plataforma local. Si el archivo descriptivo del componente menciona que el servicio puede proponerse de manera remota, entonces el registro se efectúa sucesivamente al lado de cada servicio de descubrimiento disponible en la plataforma, conocido por el corazón. El componente se registra por tanto con las referencias de exportación construidas por cada fábrica a exportar disponible en la plataforma, conocida por el núcleo.
La escritura del código del corazón sólo necesita conocer las "interfaces de base" descritas anteriormente. En la figura 8, las interfaces de base y el código del corazón se reúnen en el paquete "corazón de infraestructura distribuida". Para un funcionamiento en modo distribuido, el corazón necesita que se instale en cada plataforma OSGi uno o más paquetes de fábrica de conexión para los servicios solicitados, uno o más paquetes de fábrica a exportar para los servicios proporcionados y uno o más paquetes proponiendo un servicio de descubrimiento (figura 7). En la figura 7, el corazón de la infraestructura solo se representa en cada plataforma pero cada paquete instalado utiliza los mecanismos ofrecidos por el corazón de la infraestructura.
Ahora se describe el mecanismo de reparto del procedimiento de acuerdo con el segundo modo de realización de la invención, en referencia a las figuras 9, 10 y 11.
La figura 9 muestra tres plataformas en la misma red local: A, B, C. El usuario solicita la instalación de una aplicación. La instalación comprende la instalación del paquete b1 (t1) en la plataforma A. Uno de estos componentes de este paquete registra, mediante el corazón de la infraestructura, un servicio S al lado del directorio de servicios asociados a la plataforma A (t2) después lo registra al lado de los directorios remotos según los servicios de descubrimiento disponibles (t3). El registro asocia la mención de las referencias de exportación según diferentes protocolos de comunicación (en este caso x e y).
La figura 10 muestra la presencia del paquete b2 en la plataforma B, en la que uno de los componentes formula una petición de servicios. La petición es en primer lugar local (14). Se considera el caso en el que el servicio deseado no se registre en la plataforma B y/o la descripción de b2 indique que b2 requiere la conexión de todos los proveedores de este servicio incluso a distancia. Por consiguiente, el corazón dirige sucesivamente la petición a cada servicio de descubrimiento; una petición se emite, por ejemplo, a un directorio externo en la figura 10 (15). Como la referencia registrada por b1 conviene, el componente solicitante analiza las referencias remotas. El paquete b2 conserva la referencia asociada al protocolo de comunicación adecuado x para requerir los métodos sobre el servicio remoto (t6) (figura 11).
El segundo modo de realización de la invención está destinado para instalarse sobre equipos electrónicos inteligentes a domicilio, en la empresa o en redes locales. Estos equipos se suministran habitualmente con una arquitectura clásica. Los componentes de arquitectura y los componentes aplicativos pueden instalarse en remoto según las necesidades. Para un buen funcionamiento, los paquetes que describen las interfaces de base y el "corazón de la infraestructura distribuida" deben instalarse en cada plataforma destinada para efectuar conexiones remotas o que necesitan servicios remotos. A continuación, cada plataforma puede albergar todos o parte de los paquetes de implementación disponibles, en función de las necesidades y de las capacidades de la plataforma: típicamente, se instalarán en un PC todos los paquetes de implementación disponibles, por lo que sólo podrá instalarse un subconjunto en un sistema embarcado de capacidad de memoria limitada.
De manera habitual, el desarrollador define en primer lugar las interfaces de los servicios internos o externos a su aplicación. Esta interfaces en todos los modelos orientados al servicio se definen por:
- un nombre de interfaz; y
- nombres de métodos, denominados también acciones o funciones, con sus argumentos de entrada y de retorno.
De manera usual, una parte del código depende de las tecnologías de descubrimiento y de las conexiones utilizadas. En el ámbito de la invención, el desarrollador escribe el código de sus componentes según un modelo de programación clásico. A cada componente se adjunta sólo un archivo descriptivo particular con objeto de declarar los servicios a proporcionar de manera distribuida y los servicios solicitados. La invención le permite generar automáticamente los objetos "proxy", intermediarios útiles a la adaptación del descubrimiento y de la comunicación según los modelos múltiples considerados (figura 6). El código es por tanto genérico y se adapta automáticamente a cualquier tecnología de descubrimiento y de conexión remota, siempre que se hayan desarrollado los adaptadores correspondientes.
El archivo descriptivo se utiliza en la ejecución. Un objeto "gestor" analiza ese archivo cuando se arranca el componente. Para cada servicio solicitado, activa un objeto que mantiene dinámicamente el conocimiento de los proveedores disponibles para la utilización de las tecnologías de descubrimiento disponibles, une el componente a los proveedores o los desune. Cuando se proporcionan todos los servicios solicitados, el administrador anuncia entonces los servicios proporcionados por todas las tecnologías de descubrimiento disponibles, utilizadas en este caso para el anuncio o el registro de los servicios. Las aplicaciones se componen de manera espontánea sin configuración explícita antes de la ejecución. Durante la ejecución, la modificación del entorno (comandos del usuario, llegada y salida de los equipos y así sucesivamente) tiene como consecuencia la aparición o la supresión de los servicios. Cada componente reacciona dinámicamente con estos eventos, la aplicación se reconfigura automáticamente.
En particular, ventajosamente se podrá prever la supresión de una o más conexiones entre componentes solicitantes de un servicio y un componente anteriormente proveedor de ese servicio que ha hecho saber que ya no proporcionará este servicio a partir de un momento dado.
Particularmente pueden construirse dos tipos de aplicación:
- las aplicaciones que funcionan según el primer modo de la realización para un solo protocolo de descubrimiento de servicios y un solo protocolo de comunicación; y
- las aplicaciones según el segundo modo de realización que aplican varios equipos heterogéneos tomando diferentes tecnologías de descubrimiento de servicios o de conexión remota; algunas de estas aplicaciones pueden haberse aplicado puntualmente de manera clásica; después de la descarga y puesta en marcha de los componentes sobre la pasarela, estos componentes se descubren, descubriendo los equipos preexistentes (es decir que funcionan por medio de un código puesto a punto independientemente de la invención y que utilizan mecanismos clásicos de descubrimiento y de comunicación remota) y se interconectan cualquiera que sean las tecnologías presentes con objeto de hacer posibles diferencias funcionales de aplicación.
Si otros componentes del modelo propuesto u otros equipos publican sus servicios en la red, las conexiones se modifican o se añaden dinámicamente. Si los componentes del modelo propuesto o equipos abandonan la red, las conexiones correspondientes se rompen o se modifican.
El usuario puede poseer previamente equipos que anuncian sus servicios según tecnologías convencionales diversas (Jini, UPnP, Servicios Web y así sucesivamente). El usuario no necesita conocer los detalles de estas tecnologías. También posee al menos un equipo electrónico tal como un ordenador en el que se instala la invención. El usuario puede instalar componentes aplicativos en las plataformas dónde se instala la invención, por ejemplo, gracias a un catálogo disponible en internet, no siendo el despliegue un problema dirigido por la invención. Sin configuración previa, los equipos publican los servicios proporcionados según las tecnologías por ellos conocidas, y gracias a la invención, los componentes descubren los servicios proporcionados, publican sus propios servicios utilizando las tecnologías disponibles e interaccionando para ofrecer todas las funcionalidades de la aplicación deseada.
Pueden considerarse numerosas utilizaciones de la invención:
- aplicaciones ofimáticas (impresora, escáner, fax y así sucesivamente): tanto en la oficina como en casa, numerosos equipos se diseñan para compartirse o estar compuestos por diversas aplicaciones; algunos de estos equipos se anuncian espontáneamente en la red según tecnologías clásicas (Jini, UPnP, servicios web, CORBA y así sucesivamente); la instalación de la invención en un ordenador permite el descubrimiento y el uso de estos equipos; el ordenador podrá proponer espontáneamente, es decir sin configuración previa, la impresión de documentos en una impresora UPnP o Jini y así sucesivamente; además, podrá componer los servicios ofrecidos incluso si los equipos proporcionados no son compatibles a priori; por ejemplo, el servicio ofrecido por un escáner CORBA podrá componerse con el servicio de impresión ofrecido por la impresora Jini para ofrecer un servicio de fotocopiadora;
- aplicaciones domóticas (calefacción, ventilación, aire acondicionado, luces decorativas, estores y así sucesivamente): la invención permite componer los servicios domóticos ofrecidos según diversas tecnologías; si los equipos domóticos se programan para descubrirse de acuerdo con protocolos conocidos, la invención permite descubrirlos y proponer servicios compuestos; un ejemplo de aplicación es la programación de la puesta en marcha de equipos de acuerdo con un horario; por ejemplo, una hora antes de que suene el despertador, los radiadores Web Services se ponen en marcha, y cuando suena el despertador, la cafetera UPnP se pone en marcha y la tostadora Jini puede comenzar a tostar rebanadas de pan;
- aplicaciones audiovisuales (telemando, división de contenido, restitución); otras aplicaciones pueden componerse en el campo audio-visual; los equipos correspondientes pueden ser servidores de contenido ("Media Server"), equipos de restitución ("Media Renderer") o equipos como el "Set-Top-Box" que conecta la televisión a la red de internet; los servidores de contenido multimedia y los servicios de restitución se distribuyen en la casa y pueden descubrirse y conectarse; un ordenador o un asistente personal equipado de la invención puede proponer una aplicación que descubra todos los equipos; la aplicación permite explorar los contenidos multimedia, transferir un contenido de un espacio de almacenaje a otro y visionar un elemento en un equipo de restitución con la televisión del salón o el ordenador de la habitación;
- servicios exteriores: actualmente, se ofrecen numerosos servicios en forma de servicios Web en internet; por lo tanto es posible, gracias a la invención, desarrollar aplicaciones que utilicen los servicios descubiertos y componerlos con servicios de redes locales; por ejemplo, puede identificarse un mal funcionamiento de la lavadora UPnP y notificarse a un servicio de vigilancia de equipos que advierta al usuario por un mensaje a su agenda personal, la cual puede contactar con los Servicios Web (páginas amarillas o servicio post venta del constructor) ofrecidos en internet con objeto de proponerle una lista de soluciones posibles para paliar el mal funcionamiento; la solución puede ser llamar al reparador más próximo o avisar directamente al servicio post venta que propondrá entonces los medios a aplicar.

Claims (12)

1. Procedimiento de gestión de asociaciones entre componentes solicitantes de servicios y componentes proveedores de servicios en un entorno distribuido, describiéndose dichos componentes, en una etapa de escritura, en un lenguaje de programación objeto, comprendiendo dicho procedimiento las siguientes etapas:
- descubrimiento dinámico, por medio de al menos un protocolo de descubrimiento de servicios distribuido, de servicios solicitados,
- anuncio, por medio de al menos un protocolo de descubrimiento de servicios distribuido, de servicios proporcionados, y
- realización de una conexión entre al menos un componente solicitante de servicios y al menos un componente proveedor de servicios;
caracterizado porque dicho procedimiento comprende las siguientes etapas:
- en el transcurso de dicha etapa de escritura:
\bullet asociación de al menos un componente solicitante de servicios a un archivo declarativo en el que se declaran dichos servicios solicitados,
\bullet asociación de al menos un componente proveedor de servicios a un archivo declarativo en el que se declaran dichos servicios proporcionados, integrándose dichos componentes solicitante y proveedor de servicios en una plataforma local (A, B, C) que forma parte del entorno distribuido,
- puesta en marcha de dicho componente solicitante de servicios, análisis del archivo declarativo al cual está asociado, identificación de servicios pedidos, y después realización de dicha etapa de descubrimiento dinámico,
- puesta en marcha de dicho componente proveedor de servicios, análisis del archivo declarativo al que está asociado, identificación de servicios proporcionados, y después realización de dicha etapa de anuncio,
- selección, entre tipos de comunicación disponibles, de un tipo de comunicación que es compatible con el componente solicitante de servicios y el componente proveedor de servicios,
- realizándose dicha conexión entre el componente solicitante de servicios y el componente proveedor de servicios con ayuda de un tipo de comunicación compatible identificada.
2. Procedimiento de acuerdo con la reivindicación 1, caracterizado porque adicionalmente comprende una etapa de supresión de una conexión entre al menos un componente solicitante de un servicio y al menos un componente anteriormente proveedor de ese servicio, cuando ese componente anteriormente proveedor de ese servicio ya no proporciona ese servicio.
3. Procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 2, caracterizado porque, para al menos una pareja solicitante de servicios/proveedor de servicios, el tipo de comunicación utilizado es un protocolo de comunicación remota.
4. Procedimiento de acuerdo con la reivindicación 3, caracterizado porque dicho protocolo de comunicación remota se selecciona entre los protocolos RMI, SOAP y CORBA/IIOP.
5. Procedimiento de acuerdo con la reivindicación 3 o la reivindicación 4, caracterizado porque al menos un componente que aplica un protocolo de comunicación remota se instala por medio de una descarga automática en función de eventos predeterminados.
6. Procedimiento de acuerdo con una de las reivindicaciones 3 a 5, caracterizado porque al menos un componente que aplica un protocolo de descubrimiento de servicio distribuido se instala por medio de una descarga automática en función de eventos predeterminados.
7. Procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 2, caracterizado porque, para al menos una pareja solicitante de servicios/proveedor de servicios alojada en una misma plataforma (A, B, C), el tipo de comunicación es local.
8. Procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 7, caracterizado porque dicha declaración de servicios se efectúa en sintaxis XML.
9. Procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 8, caracterizado porque dicho al menos un protocolo de descubrimiento de servicios distribuido se selecciona entre los protocolos SLP, Jini, UDDI, UPnP/SSDP, CORBA y WS-SD.
10. Programa de ordenador, denominado de corazón, para aplicar un procedimiento que comprende todas las etapas de un procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 9.
11. Programa de ordenador, denominado de implementación, destinado a ser requerido por un programa de corazón de acuerdo con la reivindicación 10, que comprende instrucciones de código de programa para:
- implementar una interfaz adecuada para aplicar dicho protocolo de descubrimiento de servicios distribuido,
- implementar una interfaz adecuada para aplicar dicha conexión entre dichos componentes solicitante y proveedor de servicios,
cuando dicho programa de implementación es ejecutado por un ordenador.
12. Dispositivo de gestión de asociaciones entre componentes solicitantes de servicios y componentes proveedores de servicios en un entorno distribuido, estando escritos dichos componentes en un lenguaje de programación objeto, que comprende:
- medios de descubrimiento dinámico, por medio de al menos un protocolo de descubrimiento de servicios distribuidos, de servicios solicitados,
- medios de anuncio, por medio de al menos un protocolo de descubrimiento de servicios distribuidos, de servicios proporcionados, y
- medios de realización de una conexión entre al menos un componente solicitante de servicios y al menos un componente proveedor de servicios;
caracterizado porque el dispositivo de gestión, al igual que los componentes solicitantes y proveedores de servicios, está integrado en una plataforma local (A, B, C) que forma parte del entorno distribuido, habiéndose asociado previamente al menos un componente solicitante de servicios a un archivo declarativo en el que están declarados dichos servicios solicitados y habiéndose asociado previamente al menos un componente proveedor de servicios a un archivo declarativo en el que están declarados dichos servicios proporcionados, consistiendo el dispositivo de gestión en un objeto adecuado para:
- por un lado, poner en marcha dicho componente solicitante de servicios, analizar el archivo declarativo al que está asociado, identificar los servicios solicitados, realizar un descubrimiento dinámico,
- por otro lado, poner en marcha dicho componente proveedor de servicios, analizar el archivo declarativo al que está asociado, identificar los servicios proporcionados, y realizar un anuncio,
- seleccionar, entre tipos de comunicación disponibles, un tipo de comunicación que sea compatible con el componente solicitante de servicios y el componente proveedor de servicios,
- establecer la conexión entre el componente solicitante de servicios y el componente proveedor de servicios usando un tipo de comunicación compatible identificado.
ES06820254T 2005-10-11 2006-10-04 Procedimiento de gestión automático de asociaciones entre servicios en un entorno distribuido. Active ES2351093T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0553085 2005-10-11
FR0553085A FR2891972A1 (fr) 2005-10-11 2005-10-11 Procede de gestion automatique des associations entre services dans un environnement distribue

Publications (1)

Publication Number Publication Date
ES2351093T3 true ES2351093T3 (es) 2011-01-31

Family

ID=36655018

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06820254T Active ES2351093T3 (es) 2005-10-11 2006-10-04 Procedimiento de gestión automático de asociaciones entre servicios en un entorno distribuido.

Country Status (7)

Country Link
US (1) US20080201723A1 (es)
EP (1) EP1943809B1 (es)
AT (1) ATE478510T1 (es)
DE (1) DE602006016316D1 (es)
ES (1) ES2351093T3 (es)
FR (1) FR2891972A1 (es)
WO (1) WO2007042713A1 (es)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US10721087B2 (en) * 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US20050216302A1 (en) 2004-03-16 2005-09-29 Icontrol Networks, Inc. Business method for premises management
US7747733B2 (en) 2004-10-25 2010-06-29 Electro Industries/Gauge Tech Power meter having multiple ethernet ports
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
US9432628B2 (en) * 2006-06-15 2016-08-30 Saturn Licensing Llc Information processing device, information processing method, and computer program
US8616976B2 (en) 2006-11-07 2013-12-31 Core Wireless Licensing S.A.R.L. Gaming via peer-to-peer networks
US7734717B2 (en) * 2006-12-05 2010-06-08 Nokia Corporation Software distribution via peer-to-peer networks
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
GB2450471A (en) * 2007-05-18 2008-12-31 Thales Holdings Uk Plc Managing nodes in a distributed system by registering and making available nodal information to nodes.
WO2008148096A1 (en) * 2007-05-25 2008-12-04 Exceptional Innovation, Llc Customizable remote control device
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
KR20080112914A (ko) 2007-06-22 2008-12-26 삼성전자주식회사 이벤트 메시지 수신 방법, 이벤트 메시지 전송 방법,피제어 장치 및 제어 포인트
WO2009020332A2 (en) * 2007-08-06 2009-02-12 Samsung Electronics Co, . Ltd. Method and apparatus for providing/receiving web-based service of plurality of service providers
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
EP2056196A1 (fr) * 2007-10-26 2009-05-06 France Telecom Procédé de réalisation et de traitement d'appel de procédure, système et produit programme d'ordinateur correspondant
US20090161579A1 (en) * 2007-12-20 2009-06-25 Mika Saaranen Method, system, and apparatus for implementing network capable input devices
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
CN102377796B (zh) * 2010-08-05 2015-06-10 中国人民解放军国防科学技术大学 基于OSGi的异构服务集成系统及方法
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
FR2966310A1 (fr) * 2010-10-14 2012-04-20 France Telecom Decouverte de services web dans un reseau local
US8914465B2 (en) * 2010-10-27 2014-12-16 Samsung Electronics Co., Ltd. Platform system with provider controlling mechanism and method of operation thereof
US10275840B2 (en) * 2011-10-04 2019-04-30 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US10771532B2 (en) 2011-10-04 2020-09-08 Electro Industries/Gauge Tech Intelligent electronic devices, systems and methods for communicating messages over a network
US10303860B2 (en) 2011-10-04 2019-05-28 Electro Industries/Gauge Tech Security through layers in an intelligent electronic device
US10862784B2 (en) 2011-10-04 2020-12-08 Electro Industries/Gauge Tech Systems and methods for processing meter information in a network of intelligent electronic devices
US11816465B2 (en) 2013-03-15 2023-11-14 Ei Electronics Llc Devices, systems and methods for tracking and upgrading firmware in intelligent electronic devices
US9111214B1 (en) 2014-01-30 2015-08-18 Vishal Sharma Virtual assistant system to remotely control external services and selectively share control
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US11734396B2 (en) 2014-06-17 2023-08-22 El Electronics Llc Security through layers in an intelligent electronic device
CN104202427A (zh) * 2014-09-24 2014-12-10 国家电网公司 一种分布式节点间的服务调用方法及系统
CN111414222A (zh) 2014-12-11 2020-07-14 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理系统
EP3357205B1 (en) 2015-09-28 2022-01-05 Microsoft Technology Licensing, LLC User assistant for unified messaging platform
US10353474B2 (en) 2015-09-28 2019-07-16 Microsoft Technology Licensing, Llc Unified virtual reality platform
US10958435B2 (en) 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
CN105721562B (zh) * 2016-01-28 2019-01-29 武汉大学 一种基于代理的异构服务调用方法与协同调用系统
US10430263B2 (en) 2016-02-01 2019-10-01 Electro Industries/Gauge Tech Devices, systems and methods for validating and upgrading firmware in intelligent electronic devices
US11734704B2 (en) 2018-02-17 2023-08-22 Ei Electronics Llc Devices, systems and methods for the collection of meter data in a common, globally accessible, group of servers, to provide simpler configuration, collection, viewing, and analysis of the meter data
US11686594B2 (en) 2018-02-17 2023-06-27 Ei Electronics Llc Devices, systems and methods for a cloud-based meter management system
US11754997B2 (en) 2018-02-17 2023-09-12 Ei Electronics Llc Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems
US11647095B1 (en) * 2018-10-02 2023-05-09 Intuit Inc. Method and system for orchestrating communications between application services through a unified connector platform
US11863589B2 (en) 2019-06-07 2024-01-02 Ei Electronics Llc Enterprise security in meters

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910068B2 (en) * 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6594700B1 (en) * 1999-06-14 2003-07-15 International Business Machines Corporation System and method for implementing a universal service broker interchange mechanism
US7191236B2 (en) * 2000-05-02 2007-03-13 Canon Kabushiki Kaisha Transparent telecommunications system and apparatus
US6643650B1 (en) * 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6862594B1 (en) * 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6970869B1 (en) * 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US7194689B2 (en) * 2000-08-22 2007-03-20 Microsoft Corporation Generic user control point tool for universal plug and play (UPnP) devices
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20020187750A1 (en) * 2001-06-12 2002-12-12 Majumdar Kalyan Sankar Method and apparatus for service management, delegation and personalization
US7299304B2 (en) * 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
US8561069B2 (en) * 2002-12-19 2013-10-15 Fujitsu Limited Task computing
US7631033B2 (en) * 2003-01-15 2009-12-08 Xerox Corporation Hosted method and system for automated proxy creation of device resident services
US7685288B2 (en) * 2003-06-30 2010-03-23 Microsoft Corporation Ad-hoc service discovery protocol
US20050097087A1 (en) * 2003-11-03 2005-05-05 Punaganti Venkata Murali K. System and method for providing a unified framework for service discovery
US7398327B2 (en) * 2003-11-25 2008-07-08 Robert Bosch Gmbh Apparatus, method and system for providing automated services to heterogenous devices across multiple platforms
EP1560094A1 (de) * 2004-01-27 2005-08-03 Siemens Aktiengesellschaft Bereitstellung von Diensten innerhalb eines Netzwerks mit gekoppelten Rechnern
US7653916B2 (en) * 2004-02-20 2010-01-26 Microsoft Corporation Uniform resource discovery
US7467384B2 (en) * 2004-02-20 2008-12-16 Microsoft Corporation Uniform resource discovery with multiple computers
US20050193106A1 (en) * 2004-03-01 2005-09-01 University Of Florida Service discovery and delivery for ad-hoc networks
US7933290B2 (en) * 2004-03-30 2011-04-26 Nokia Corporation System and method for comprehensive service translation
WO2005109908A2 (en) * 2004-04-30 2005-11-17 Vulcan Inc. Maintaining a graphical user interface state that is based on a selected piece of content

Also Published As

Publication number Publication date
US20080201723A1 (en) 2008-08-21
EP1943809B1 (fr) 2010-08-18
WO2007042713A1 (fr) 2007-04-19
DE602006016316D1 (de) 2010-09-30
FR2891972A1 (fr) 2007-04-13
EP1943809A1 (fr) 2008-07-16
ATE478510T1 (de) 2010-09-15

Similar Documents

Publication Publication Date Title
ES2351093T3 (es) Procedimiento de gestión automático de asociaciones entre servicios en un entorno distribuido.
Arnold The Jini architecture: dynamic services in a flexible network
Im et al. IoT mashup as a service: cloud-based mashup service for the Internet of things
Lee et al. Enabling smart spaces with OSGi
Hall et al. Challenges in building service-oriented applications for OSGi
Hall et al. An OSGi implementation and experience report
US7516201B2 (en) Communication device and software for operating multimedia applications
TW406509B (en) A home audio/video network with updatable device control modules
Bardin et al. Towards an automatic integration of heterogeneous services and devices
Costa et al. Reconfigurable component-based middleware for networked embedded systems
KR20010073003A (ko) 브리징 다수의 홈 네트워크 소프트웨어 아키텍처
US20080256225A1 (en) Osgi-Based Dynamic Service Management Method for Context-Aware Systems
US20060095551A1 (en) Extensible service processor architecture
CN102375894B (zh) 一种管理不同类型文件系统的方法
Cheng et al. OSGi-based smart home architecture for heterogeneous network
Royon et al. Multiservice home gateways: business model, execution environment, management infrastructure
Bottaro et al. Home SOA- facing protocol heterogeneity in pervasive applications
Warriach et al. An interplatform service-oriented middleware for the smart home
US7584302B1 (en) Business integration component for containers
Nicholson et al. Dynamic fog computing platform for event-driven deployment and orchestration of distributed Internet of Things applications
Yang et al. A framework for service morphing and heterogeneous service discovery in smart environments
Saif Architectures for ubiquitous systems
Bottaro et al. Pervasive spontaneous composition
Yang Design and implement of the home networking service agent federation using open service gateway
Gorissen et al. H2O metacomputing–jini lookup and discovery