ES2278066T3 - Ofrecimiento de servicios agregados en un entorno informatico distribuido. - Google Patents

Ofrecimiento de servicios agregados en un entorno informatico distribuido. Download PDF

Info

Publication number
ES2278066T3
ES2278066T3 ES02783324T ES02783324T ES2278066T3 ES 2278066 T3 ES2278066 T3 ES 2278066T3 ES 02783324 T ES02783324 T ES 02783324T ES 02783324 T ES02783324 T ES 02783324T ES 2278066 T3 ES2278066 T3 ES 2278066T3
Authority
ES
Spain
Prior art keywords
service
services
user
access
sub
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.)
Expired - Lifetime
Application number
ES02783324T
Other languages
English (en)
Inventor
James Fletcher
David Lindquist
Michael Wanderski
Ajamu Wesley
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of ES2278066T3 publication Critical patent/ES2278066T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

Un método para proporcionar un servicio agregado en una red informática (100, 120, 150), que comprende los pasos de: obtener (600) credenciales de un usuario que requiere el acceso a un servicio agregado; localizar, en un registro accesible por la red, un documento de descripción del servicio que especifique un interfaz de aprovisionamiento para el servicio agregado, comprendiendo el servicio agregado una agregación de una pluralidad de sub-servicios y especificando el interfaz de aprovisionamiento cómo invocar funciones de identidad del servicio agregado; analizar (620, 630) las credenciales obtenidas invocando una o más de las funciones de identidad, de acuerdo con la especificación de las mismas en el interfaz de aprovisionamiento, para determinar si el usuario está autenticado para acceder al servicio agregado; y permitir que el usuario acceda al servicio agregado solamente si el análisis determina que el usuario está autenticado para acceder al servicio agregado.

Description

Ofrecimiento de servicios agregados en un entorno informático distribuido.
Antecedentes de la invención Invenciones relacionadas
La presente invención está relacionada con la patente de Estados Unidos RSW920010189 (US-A-2003055868, número de serie 09/955.788), que se titula "Construcción de Servicios de Software Distribuido como Agregados a otros Servicios"; con la patente de Estados Unidos RSW920010190 (US-A-2003055878, número de serie 09/956.268), que se titula "Gestión Programática de Recursos de Software en un Entorno de un Entramado de Contenidos"; y con la patente de Estados Unidos RSW920010144 (US-A-2003055624, número de serie 09/956.276), que se titula "Integración Dinámica en Tiempo Real de Recursos de Software por medio de Servicios de un Entramado de Contenidos", todas las cuales están comúnmente cedidas a International Business Machines Corporation y que fueron presentadas el 19 de Septiembre de 2001. Estas patentes de Estados Unidos son denominadas en la presente memoria como "las invenciones relacionadas".
Campo de la invención
La presente invención está relacionada con software de ordenadores, y trata más en particular con técnicas para proporcionar servicios agregados en un entorno informático distribuido.
Descripción de la técnica relacionada
La popularidad de las redes informáticas distribuidas y de los ordenadores en red ha aumentado tremendamente en los años recientes, debido en gran parte al creciente negocio y el uso del consumidor de la red pública de Internet y del subconjunto de la misma conocido por "World Wide Web" ("Entramado Mundial de Redes", o simplemente "Web" o "Red"). Otros tipos de redes informáticas distribuidas, tales como las "intranets" (redes internas) corporativas y las "extranets" (intranets extendidas), están creciendo también en popularidad. Como los proveedores de soluciones se enfocan en la distribución mejorada de informática basada en la Web, muchas de las soluciones que se desarrollan son adaptables a otros entornos informáticos distribuidos. Así, las referencias de esta memoria a Internet y a la Web son para fines de ilustración y no de limitación.
Un área en la que se han hecho avances de informática distribuida es la denominada iniciativa de "servicios web". Esta iniciativa es denominada también comúnmente "arquitectura orientada al servicio" para la informática distribuida. Los servicios Web son una tecnología rápidamente emergente para la integración de aplicaciones distribuidas en Internet. En general, un "servicio Web" es un interfaz que describe una colección de operaciones accesibles a la red. Los servicios Web cumplen una tarea específica o un conjunto de tareas. Pueden trabajar con otro u otros más servicios Web de una manera interfuncional para llevar a cabo su parte de un complejo flujo de trabajo o de una transacción de negocios. Por ejemplo, completar una transacción compleja de una orden de compra puede requerir la interacción automatizada entre un servicio de compras (es decir, un software para compras) en el negocio que hace el pedido y un servicio que cumpla con el pedido en uno o más de sus socios de negocio.
Muchos expertos en la industria consideran que la iniciativa de servicios Web orientados al servicio será la próxima fase evolutiva de Internet. Con los servicios Web, el acceso de una red distribuida al software llegará a estar ampliamente disponible para el funcionamiento de programa a programa, sin requerir intervención humana.
Los servicios Web están generalmente estructurados utilizando un modelo en el cual una empresa que proporciona servicios accesibles a la red publica los servicios en un registro accesible a la red, y otras empresas que necesitan los servicios pueden hacer peticiones al registro para averiguar la disponibilidad de los servicios. Los participantes de este modelo informático son denominados comúnmente como (1) proveedores de servicios, (2) solicitantes de servicios, y (3) agentes de servicios. Estos participantes, y las operaciones fundamentales implicadas en el intercambio de mensajes entre ellos, están ilustrados en la figura 1. Los proveedores 100 de servicios son entidades que tienen servicios disponibles, y el registro en el cual se publican estos servicio 110 es mantenido por un agente 120 de servicios. Los solicitantes 150 de servicios son las entidades que necesitan servicios y los solicitan 140 del registro del agente de servicios. Cuando se encuentra un servicio deseado utilizando el registro, el solicitante del servicio se une 130 al proveedor del servicio localizado con el fin de utilizar el servicio. Estas operaciones están diseñadas para que ocurran de manera programática, sin intervención humana, de forma tal que un solicitante de un servicio puede buscar un servicio particular y hacer uso de tal servicio dinámicamente, en tiempo de ejecución. El modelo de servicios Web está disponible teóricamente para cualquier tipo de aplicación informática. Sin embargo, los servicios Web que están accesibles hoy día en los registros, están limitados a unos programas relativamente simples tales como programas de demostración "Hola, Mundo", programas que consultan la temperatura actual de un determinado código postal, programas que realizan cálculos de cambio de divisas, y similares.
El conjunto básico de normas sobre las cuales está siendo construido el trabajo de los servicios Web incluye el HTTP ("Protocolo de Transferencia de Hipertexto"), SOAP "Protocolo de Acceso a Objetos Sencillos") y/o el protocolo XML ("Lenguaje de Marcación Extensible"), el WSDL ("Lenguaje de Descripción de Servicios Web") y el UDDI ("Descripción, Descubrimiento e Integración Universales"). El HTTP es utilizado comúnmente para intercambiar mensajes sobre redes TCP/IP ("Protocolo de Control de la Transmisión/Protocolo de Internet"), tales como Internet. SOAP es un protocolo basado en XML utilizado para enviar mensajes para invocar métodos en un entorno distribuido. El protocolo XML es una especificación evolutiva del Consorcio del World Wide Web ("W3C") de un protocolo de transferencia de la capa de aplicaciones que permitirá los mensajes de aplicación a aplicación, y pueden converger con SOAP. WSDL es un formato XML para describir servicios de red distribuidos. UDDI es una técnica de registro basada en XML con la cual los negocios pueden listar sus servicios y con la cual los solicitantes de servicios pueden encontrar negocios que proporcionen servicios particulares. (Para más información sobre SOAP, se hace referencia a "Simple Object Access Protocol" o "Protocolo de Acceso a Objetos Sencillos" (SOAP) 1.1, Nota de W3C de 08 de Mayo de 2000", que está disponible en Internet en http://www.w3.org/TR/2000/NOTE-SOAP-20000508. Véase http://www.w3.org/2000/xp para más información sobre el protocolo XML y la creación de un estándar del Protocolo XML. La especificación WSDL se titula "Web Services Description Language" o "Lenguaje de Descripción de los Servicios Web" (WSDL) 1.1, Nota de W3C de 15 de Marzo de 2001", y pueden encontrarse en Internet en http://www.w3.org/TR/2001NOTE-wsdl-20010315. Para más información sobre UDDI se hace referencia a la especificación UDDI titulada "UDDI Version 2.0 API Specification, UDDI Open Draft Specification 8 June 2001" ("Especificación API de UDDI Versión 2.0, Borrador de Especificación Abierta de UDDI, de 8 de Junio de 2001") y que puede ser encontrada en Internet en http://www.uddi.org/ specification.html. HTTP está descrito en Request for Comments (Petición de Comentarios o "RFC") 2616 del Internet Engineering Task Force (Grupo de Trabajo de Ingeniería de Internet), titulada "Hypertext Transfer Protocol (Protocolo de Transferencia de Hipertexto - - - http/1.1" (Junio 1999).
La integración de aplicaciones utilizando estos estándares abiertos requiere varios pasos. El interfaz a un servicio Web debe ser descrito, incluyendo el nombre (o nombres) del método con el cual se invoca al servicio, los parámetros de entrada y salida del método y sus tipos de datos, y similares. Los documentos WSDL proporcionan esta información, y son transmitidos utilizando una operación de publicación UDDI a un registro implementado de acuerdo con la especificación UDDI. Una vez que se ha registrado el servicio en el registro UDDI, los solicitantes del servicio pueden emitir peticiones de búsqueda UDDI para localizar los servicios distribuidos. Un solicitante de servicio que localice un servicio de esta manera, emite entonces una petición de unión a UDDI, la cual une dinámicamente al solicitante con el servicio localizado utilizando la información del servicio del documento WSDL. (Estas operaciones UDDI han sido ilustradas, a alto nivel, en la figura 1). El protocolo SOAP/XML y los mensajes HTTP se utilizan comúnmente para transmitir los documentos WSDL y las peticiones UDDI. (En adelante, las referencias a SOAP deben ser interpretadas como referentes de forma equivalente a aspectos semánticamente similares del protocolo XML. Además, debe observarse que las referencias de esta memoria a "HTTP" pretenden referirse, en sentido genérico, a funciones similares a HTTP. Algunas operaciones UDDI, por ejemplo, requieren HTTPS en lugar de HTTP, donde HTTPS es una versión mejorada en seguridad de HTTP. Sin embargo, estas diferencias no son pertinentes para la presente invención, y por tanto no se hace distinción de aquí en adelante cuando se estudia el HTTP.
El objetivo de los servicios Web es proporcionar a los solicitantes de servicios un acceso transparente a los componentes del programa que pueden residir en uno o más lugares remotos, aún cuando esos componentes puedan ejecutarse en sistemas operativos diferentes y puedan ser escritos en lenguajes de programación diferentes a los del solicitante. Aunque se ha hecho una cantidad de trabajo significativa para definir los objetivos, la arquitectura y los estándares sobre los cuales se basarán los servicios Web, sigue habiendo mucho trabajo por hacer para conseguir que los servicios Web funcionen eficaz y eficientemente.
En particular, considérese que muchos servicios de aplicaciones que se proporcionan de una manera convencional requieren que los usuarios sean autenticados y autorizados antes de utilizar esos servicios. La autenticación en este contexto significa determinar que el usuario es en realidad quien pretende ser, y la autorización significa típicamente determinar cuáles son los privilegios de acceso de este usuario, o si este usuario tiene permitido el acceso a un servicio particular o a una función del mismo. El artículo de D. Ferguson "Technical and Product Architecture and Roadmap" (Arquitectura Técnica y de Producto y Mapa de Rutas), Servicios Web de IBM, [Online] Mayo de 2001, (2001-05), páginas 1-42, XP002272181 divulga tal técnica. En el entorno de los servicios Web, la intención es que un proveedor de servicios pueda ser localizado dinámicamente para realizar un servicio en particular. Si hay disponibles múltiples proveedores del servicio, podría seleccionarse uno en particular de estos proveedores de servicios basándose en criterios tales como el precio de utilizar este servicio del proveedor, las garantías de tiempo de respuesta de este servicio del proveedor y similares. Es posible que cada proveedor pudiera tener formatos diferentes para la información de autenticación y autorización, así como maneras exclusivas de acceder a las funciones de autenticación y autorización. No hay técnicas conocidas para los presentes inventores de federar o unir sistemas de identidades heterogéneas en el entorno de servicios Web, lo cual será un serio inhibidor para el uso de servicios Web agregados.
Sumario de la invención
La presente invención está definida en las reivindicaciones anexas y proporciona métodos, sistemas y productos de programas de ordenador para proporcionar servicios agregados en una red informática. En modos de realización preferidos, uno o más recursos de software proporcionan un servicio agregado, y esta técnica comprende: definir un interfaz de provisión del servicio agregado; especificar el interfaz de provisión en un documento de descripción del servicio; obtener credenciales de un usuario del servicio agregado, de acuerdo con el documento de descripción del servicio; analizar las credenciales obtenidas; y permitir al usuario efectuar el servicio agregado si así lo indica el análisis.
La técnica puede comprender además la definición de un interfaz de provisión de al menos uno de los uno o más recursos de software del servicio agregado, y para cada uno de los al menos un recurso de software, especificar el interfaz de provisión de un servicio realizado por el recurso de software en el documento de descripción del servicio o en otro o en otros más documentos de descripción del servicio. En este caso, además de obtener credenciales del usuario del servicio agregado, pueden obtenerse también credenciales para el al menos un recurso de software, de acuerdo con el documento de descripción del servicio o con el otro u otros más documentos de descripción del servicio. Entonces, el usuario tiene permiso, preferiblemente, para realizar los servicios seleccionados representados por los interfaces de provisión del al menos un recurso de software, si está indicado por el análisis de estas credenciales también.
En modos de realización preferidos, el análisis comprende al menos una de (1) la autenticación y (2) la autorización de las credenciales.
La información de la identidad puede ser por tanto retransmitida de forma programática entre los servicios distribuidos realizados por los recursos de software del servicio agregado. Preferiblemente, la retransmisión programática comprende el envío de un mensaje que especifica las credenciales en una cabecera del mensaje y una petición de servicio en el cuerpo del mensaje. El mensaje puede ser, por ejemplo, un mensaje SOAP ("Protocolo de Acceso de Objetos Sencillos").
Se utiliza preferiblemente un lenguaje de marcación para especificar el documento o documentos de descripción del servicio. El lenguaje de marcación es preferiblemente un Lenguaje de Descripción de Servicios Web ("WSDL").
La técnica puede comprender además el registro del documento de descripción del servicio en un registro, el cual puede ser un registro accesible en la red que utiliza mensajes estandarizados.
Se describirán ahora modos de realización preferidos de la presente invención, solamente a modo de ejemplo, con referencia a los dibujos siguientes, en los cuales las referencias numéricas similares indican el mismo elemento en todos ellos.
Breve descripción de los dibujos
La figura 1 proporciona un diagrama que ilustra los participantes y las operaciones fundamentales de una arquitectura orientada a servicios, de acuerdo con la técnica anterior;
La figura 2 es un diagrama de bloques que ilustra un "portlet" (fragmento de página de un portal Web) estructurado como un Proxy de servicio Web, de acuerdo con modos de realización preferidos de las invenciones relacionadas;
Las figuras 3A y 3B ilustran el contenido de documentos de muestra WSDL que especifican un interfaz de desarrollo y un sistema de interfaz, respectivamente, de acuerdo con modos de realización preferidos de las invenciones relacionadas;
La figura 4 proporciona una ilustración del enfoque de servicios Web apilados para la agregación de servicios, como se divulga en las invenciones relacionadas;
Las figuras 5A a 5E ilustran un fragmento de documento de muestra WSDL que describe un interfaz de servicio de aprovisionamiento, de acuerdo con modos de realización preferidos de la presente invención;
La figura 6 proporciona un diagrama de flujo que representa la lógica que puede utilizarse para implementar modos de realización preferidos de la presente invención; y
Las figuras 7A y 7B proporcionan un ejemplo de una envolvente SOAP que transporta una firma digital en su cabecera, de acuerdo con la técnica anterior.
Descripción de modos de realización preferidos
La promesa de los servicios Web es que aplicaciones dispares serán capaces de interactuar como nunca lo han hecho antes, ofreciendo una nueva especie de aplicaciones transparentes hiper-integradas a través de la hospitalidad y urbanidad de los sistemas empresariales. Los servicios Web harán que los recursos de software distribuido estén más ampliamente disponibles, y permitirán comercializar el software como un servicio. Los servicios de uno o más proveedores de servicios serán agregados dinámicamente para proporcionar a los usuarios la funcionalidad requerida para realizar la tarea o servicio que es de interés actual para cada usuario en particular. Para utilizar eficazmente estos servicios integrados dinámicamente, es necesario poder unir automática y dinámicamente los sistemas de identidad heterogénea que pueden utilizar. Esto debe ser hecho en tiempo real para que los usuarios (ya sean humanos o programáticos) pueden ser autenticados y autorizados, o "identificados", transparentemente, para utilizar los servicios. Además, es deseable proporcionar esta identificación transparente utilizando una sola firma, porque si se requiere que los usuarios se identifiquen repetidamente durante el curso de un servicio en particular (incluyendo los servicios que están comprendidos por múltiples sub-servicios) se origina la frustración del usuario y consume tiempo y es ineficaz. La presente invención proporciona una solución para estos requisitos, y suscita diversas tecnologías estándar abiertas en la industria al hacerlo, como será descrito.
Antes de estudiar detalles de los modos de realización, puede ser de ayuda revisar algo de información de antecedentes, incluyendo las tecnologías sobre las cuales se construyen los modos de realización de la invención. Las invenciones relacionadas definían técnicas para gestionar servicios Web y para proporcionar un punto de agregación en el que pueden agregarse los servicios para formar nuevos servicios que puedan ser desarrollados. Los modos de realización preferidos de las invenciones relacionadas están construidos sobre un entramado de contenidos tales como una plataforma de un portal, porque este tipo de entramado proporciona muchos servicios incluidos para la gestión de contenidos y alojamiento de servicios, tales como persistencia, personalización y transcodificación. Las técnicas divulgadas en las invenciones relacionadas extienden las plataformas para proporcionar la agregación, el despliegue, y la gestión de servicios Web. Se divulgó una herramienta de composición de modelos que puede ser utilizada para definir un servicio agregado; los recursos de software pueden entonces ser programáticamente integrados de acuerdo con esta definición de servicio agregado. Además, los servicios agregados pueden ser gestionados de una manera automatizada.
La presente invención define técnicas para proveer los servicios agregados que resultan del uso de las invenciones relacionadas. Estas técnicas pueden ser adaptadas también a los servicios agregados que están creados de otras maneras, sin desviarse del alcance de la presente invención. Además, debe indicarse que aunque las presentes discusiones están hechas en términos de proporcionar servicios "agregados", un servicio agregado es por sí mismo un servicio Web (comprendido por sub-servicios), y por tanto la presente invención puede ser utilizada ventajosamente con aquellos servicios Web que puedan ser considerados como servicios elementales (y son por tanto una degeneración del caso de agregación, donde el conjunto de "sub-servicios" agregados tiene un solo miembro).
Una plataforma de portal comercialmente disponible sobre el cual pueden implementarse modos de realización de la presente invención (así como de las invenciones relacionadas), es el Servidor de Portales WebSphere® ("WPS") de International Business Machines Corporation ("IBM"). ("WebSphere" es una marca registrada de IBM). Sin embargo, debe observarse que aunque las discusiones de las invenciones relacionadas y de la presente invención están hechas en términos de una plataforma de portal, los conceptos inventivos son aplicables a otros tipos de entramados de contenidos que proporcionan una funcionalidad análoga y son aplicables también a portales distintos al WPS, y por tanto las referencias a los portales y su paradigma de "portlet" son a modo de ilustración y no de limitación.
La integración dinámica en tiempo de ejecución de servicios Web, que se hace posible por las invenciones relacionadas, puede utilizar una herramienta de composición para agregar nuevos servicios Web. Utilizando esta herramienta de composición, un administrador de sistemas (o, equivalentemente, un componedor de servicios u otra persona) puede definir un nuevo servicio compuesto por otros servicios más minuciosos. Los servicios minuciosos a partir de los cuales se construyen otros servicios pueden residir local o remotamente, y las técnicas de las invenciones relacionadas permiten hacer referencia a esos servicios y utilizarlos de una manera transparente sin prestar atención a si son locales o remotos. Los servicios minuciosos pueden incluir cualquier forma de lógica de programación, incluyendo programas de texto, clases de Java®, clases COM, EJB ("Enterprise JavaBeans®" o "JavaBeans® empresarial"), procedimientos almacenados, IMS u otras transacciones de bases de datos, aplicaciones heredadas y similares. ("Java" y "Enterprise JavaBeans" son marcas registradas de Sun Microsystems, Inc.). Los servicios Web creados de esta manera pueden ser gestionados automáticamente por la plataforma del portal y pueden ser utilizados también para crear nuevos servicios Web de una manera recurrente, como se describió en las invenciones relacionadas.
Las invenciones relacionadas promueven los portlets como un interfaz de portal, y construyen también sobre el concepto de un interfaz remoto de portlet (donde este concepto se extiende para ser aplicado a portlets programáticos), para permitir el acceso a recursos de software. Los portlets que funcionan de esta manera pueden ser denominados "intermediarios de servicio Web" o "proxies de servicios Web". Esto es, las invenciones relacionadas permiten que un portlet actúe como un intermediario entre una aplicación o recurso de software que requiera un servicio particular y un recurso de software que proporcione ese servicio. El recurso de software que realiza una función particular puede estar estadísticamente unido a un proxy de servicios Web (por ejemplo, durante el desarrollo), o un proxy de servicios Web puede estar unido a un recurso de software que sea seleccionado dinámicamente (por ejemplo, basándose en criterios que son evaluados en tiempo de ejecución). En ambos casos, el proxy del portlet recibe mensajes de petición y los reenvía al recurso de software al cual está unido; una vez que el recurso de software ha completado la función solicitada, devuelve su respuesta al proxy del portlet que reenvía entonces la respuesta al solicitante.
Debe observarse que los recursos de software invocados para realizar un servicio agregado pueden ser diseñados para la interacción de programa a programa, pero pueden ser, alternativamente, visuales en naturaleza. Por ejemplo, pueden invocarse recursos visualmente orientados durante la ejecución de un servicio Web que funcione principalmente de programa a programa. El término "portlet programático" se utiliza aquí para referirse generalmente a proxies de portlets de acuerdo con las invenciones relacionadas y con la presente invención, implique o no el recurso de software subyacente un código visualmente orientado.
En la figura 2 se muestra un diagrama de bloques que ilustra un portlet estructurado como un proxy de servicios Web, de acuerdo con las invenciones relacionadas. Como se ilustra en el dibujo, el proxy 240 del portlet incluye un interfaz 210 de despliegue, un interfaz 220 del sistema, y un interfaz funcional 230. El proxy del portlet se comunica con una plataforma 200 del portal que utiliza estos interfaces, actuando como un intermediario entre la plataforma del portal y el recurso 250 de software que lleva a cabo la función de interés. Los detalles de cada interfaz funcional son específicos del servicio Web proporcionado por el recurso 250 de software, y no forman parte de las invenciones relacionadas. Sin embargo, las invenciones relacionadas hacen disponible el interfaz funcional del recurso 250 de software, como un interfaz 230 del proxy del portlet. (La exposición del interfaz funcional utilizando definiciones WSDL y servicios SOAP puede ser conseguida utilizando una herramienta comercialmente disponible, tal como el "IBM Web Services Toolkit" (Conjunto de herramientas de Servicio Web de IBM), o "WSTK", durante el proceso de despliegue, como se ha estudiado en las invenciones relacionadas).
El interfaz de despliegue y el interfaz del sistema están descritos con detalle en las invenciones relacionadas. Se ofrecerá ahora un breve resumen. De acuerdo con los modos de realización preferidos de las invenciones relacionadas, se define un interfaz de despliegue y un interfaz del sistema para cada portlet que sirve como proxy de servicio Web (aunque en modos de realización alternativos, pueden realizarse uno u otro de estos interfaces). Estos nuevos interfaces pueden ser denominados también como el tipo de puerto de despliegue y el tipo de puerto del sistema, respectivamente. Un portlet de acuerdo con las invenciones relacionadas define por tanto un tipo de proveedor de servicios que incluye los tipos de puertos necesarios para la integración de portales de los recursos de software y la interacción y gestión de servicios. ("Tipos de puerto" es un término utilizado en la técnica para significar la especificación de las operaciones de un portlet, y "tipo de proveedor de servicios" es un término utilizado para significar una colección de tipos de puertos).
El interfaz de despliegue permite utilizar un proxy de portlet (es decir, un servicio Web agregado que está representado por un proxy de portlet) en posteriores operaciones de composición de servicios Web, de una manera recurrente, de acuerdo con las invenciones relacionadas. Por ejemplo, el interfaz de despliegue de un portlet "A" proporciona información sobre el uso del portlet A al estar agregado el portlet A con otros portlets para formar un nuevo servicio "Z". Al definir un interfaz de despliegue para el servicio Web "Z", de acuerdo con las invenciones relacionadas, puede proporcionarse posteriormente información sobre el servicio Web Z al ser utilizado el servicio Z para componer otros servicios nuevos.
El interfaz del sistema es utilizado para la gestión en tiempo de ejecución de portlets, (es decir, de servicios web representados por proxies de portlets) por la plataforma del portal. El uso del interfaz del sistema permite a la plataforma del portal realizar funciones tales como registrar eventos, facturación, y otros tipos de operaciones administrativas pertenecientes a la ejecución del servicio Web. Se utiliza para este fin la comunicación bidireccional entre la plataforma del portal y el proxy del portlet.
Las figuras 3A y 3B ofrecen documentos de muestra WSDL que ilustran la especificación del interfaz de despliegue y la especificación del interfaz del sistema, respectivamente. De acuerdo con modos de realización preferidos de las invenciones relacionadas, los tipos de puertos de despliegue y de sistema están representados como documentos WSDL, que pueden ser registrados después en un registro. Como se ilustra en 310 del documento 300 de WSDL en la figura 3A, el ejemplo de interfaz de despliegue se denomina "Despliegue" e incluye operaciones tales como "obtenerNombredePresentación" y "obtenerIcono16x16dePresentación" (véase el elemento 330). Estas operaciones pueden ser utilizadas, por ejemplo, para recuperar un nombre descriptivo del servicio Web y para recuperar una imagen gráfica que representa el servicio Web para colocarla en una paleta de una herramienta de composición del servicio Web. De acuerdo con la especificación WSDL, los mensajes de entrada y de salida utilizados para comunicarse con un servicio están especificados en los elementos 320 de "<mensaje>", donde los parámetros utilizados para esos mensajes están definidos como elementos de "<parte>". Así, un elemento de mensaje está definido para cada mensaje de cada operación especificada para este tipo de puerto. (Se hace referencia a la especificación WSDL para obtener más información sobre los detalles de un documento WSDL).
El documento WSDL 350 de la figura 3B define el interfaz del sistema, que en el ejemplo es denominado "Sistema" (véase el elemento 360). En este ejemplo, se define un tipo de datos complejos denominado "Evento" (véase el elemento 370), que comprende 2 parámetros de cadenas y un parámetro de datos. Este tipo de datos puede ser utilizado, por ejemplo, cuando se intercambian datos de registro a grabar en un fichero auditor de registro. También se define una operación "registrarEvento" (véase el elemento 390), y en este ejemplo es una operación unidireccional invocada al utilizar un mensaje de "RecepciónRegistroEvento" (véase elemento 380) que tiene un parámetro del tipo Evento. Además, el ejemplo define una operación de "informarUtilización" que tiene dos mensajes "informarEntrada" e "informarSalida".
Los modos de realización preferidos de la presente invención pueden ampliar el interfaz de despliegue para que incluya información de aprovisionamiento relativa al servicio Web agregado. Alternativamente, puede definirse un interfaz de aprovisionamiento independiente para este fin, sin desviarse del alcance de la presente invención. En las figuras 5A a 5E se ilustra una especificación 500 de interfaz de aprovisionamiento de muestras. Al representar el tipo de puerto de aprovisionamiento o interfaz como un documento WSDL, como se divulga en esta memoria, la información de aprovisionamiento de un servicio Web puede ser registrada de manera programática en un registro, y la información sobre el interfaz de aprovisionamiento puede ser localizada y unida de manera programática en tiempo de ejecución.
Si el interfaz de aprovisionamiento se implementa como una extensión del interfaz de despliegue, la especificación del interfaz para un servicio Web en particular especifica, preferiblemente, sus operaciones en un elemento de aprovisionamiento TipodePuerto dentro de la definición de un interfaz de despliegue. Por ejemplo, la especificación 300 del interfaz de despliegue de la figura 3A puede ser ampliada para que incluya un elemento de despliegue TipodePuerto. Haciendo referencia brevemente ahora a las figuras 5A a 5E, las especificaciones del mensaje de muestra ilustradas en las figuras 5A a 5C pueden ser añadidas a otros mensajes definidos en una especificación de despliegue (que están ilustrados en el elemento 320 de la figura 3A) cuando se utiliza este enfoque, y puede especificarse un elemento TipodePuerto adicional, tal como el ilustrado en las figuras 5D y 5E, junto con el TipodePuerto 330 para operaciones de despliegue. Alternativamente, puede proporcionarse un documento WSDL independiente, específicamente para aprovisionamiento, donde este documento independiente tiene sus propios elemento de <tipos>, elemento de <esquemas> y similares. En esta alternativa, el elemento <definiciones> del documento WSDL puede estar comprendido por mensajes de aprovisionamiento y operaciones tales como las ilustradas en la especificación del interfaz de las figuras 5A a 5E.
De acuerdo con la especificación WSDL, los mensajes de entrada y de salida utilizados para comunicarse con un servicio Web están especificados en los elementos "<mensaje>", donde los parámetros utilizados por esos mensajes están definidos como elementos "<parte>". Así, un elemento de mensaje está definido por cada mensaje de cada operación especificada para este tipo de puerto. (Se hace referencia a la especificación WSDL para más información sobre los detalles de un documento WSDL).
Como se divulga en las invenciones relacionadas, se utiliza un gráfico directo para modelar las operaciones implicadas al ejecutar servicios Web agregados comprendidos por otros servicios Web (es decir, sub-servicios).
Las operaciones de portlets seleccionadas representan los nodos del gráfico, y los bordes del gráfico que enlazan los nodos representan transiciones potenciales desde una operación o proceso del servicio a otro. Estos enlaces del servicio pueden ser cualificados con una o más condiciones de transición, y también con información de correspondencia de los datos si fuera aplicable. Las condiciones especifican bajo qué condiciones debe invocarse el siguiente servicio enlazado. A menudo, estas condiciones serán determinadas utilizando los resultados de una invocación anterior del servicio. La correspondencia de datos se refiere a la capacidad de enlazar operaciones entre tipos de puertos de portlets y datos de transferencia desde una operación a otra. Por ejemplo, la información de correspondencia de datos puede indicar que los parámetros de salida de un servicio tienen una correspondencia con los parámetros de entrada de otro servicio.
Preferiblemente, se promueve el Lenguaje de Flujo de Servicios Web ("WSFL") para este soporte gráfico dirigido. En particular, las técnicas de almacenamiento persistente de WSFL y las técnicas de evaluación en tiempo de ejecución utilizando gráficos directos pueden ser añadidas a una pila de servicios Web para operar con los gráficos creados por un componedor de servicios. Para un estudio detallado de WSFL, se hace referencia a la especificación WSFL, que se titula "Web Services Flow Language (WSFL 1.0)", ("Lenguaje de Flujo de Servicios Web (WSFL 1.0)") del Profesor Dr. F. Leymann (Mayo 2001), disponible en Internet por IBM en la dirección: http://www-4.ibm.com/software/solutions/webservices/pdf/ WSFL.pdf.
Se hace referencia a la figura 4 para una ilustración del enfoque de la pila de servicios Web para la agregación de servicios, como se divulga en las invenciones relacionadas. La pila 400 de servicios Web utiliza preferiblemente el soporte 410 de flujo de servicios WSFL para definir y ejecutar servicios agregados, y se proporciona el descubrimiento 420 de servicios y la publicación 430 de servicios utilizando preferiblemente UDDI. La pila de servicios Web comprende también una capa 440 WSDL para dar soporte a los documentos de descripción de servicios. Se puede utilizar SOAP para proporcionar mensajería 450 basada en XML. Los protocolos tales como HTTP, el Protocolo de Transferencia de Ficheros ("FTP"), el correo electrónico, la cola de mensajes ("MQ") y similares, pueden ser utilizados para el soporte 460 de la red. Como se ha estudiado en las invenciones relacionadas, se utiliza WSDL para definir tipos de puertos de servicios Web y para definir cómo invocar operaciones de estos tipos de puertos, y se utiliza WSFL para agregar los servicios Web (y por tanto para agregar sus interfaces). En tiempo de ejecución, los servicios se encuentran dentro de un registro que utiliza el proceso de descubrimiento de servicios UDDI y están ligados a la utilización de la información de sus definiciones WSDL. El tiempo de ejecución de WSFL utiliza entonces estas definiciones (tipos de puerto) para agregar los servicios. (Debido a que las firmas de las operaciones no serán coincidentes típicamente una a una, puede utilizarse un mecanismo de "enlace de conexión" definido en la especificación WSFL, en un modelo proxy para hacer corresponder los interfaces de una manera sencilla como se describe en las invenciones relacionadas, proporcionando con ello una correspondencia entre los interfaces de funcionamiento. Las invenciones relacionadas divulgan la utilización de este mecanismo de enlace de conexión como la definición persistente de la integración de proxies de portlets para implementar los servicios Web).
Un desarrollador que crea el código fuente para un recurso de software a desplegar como servicio Web, especifica los métodos de autenticación, autorización y/o configuración a proporcionar por ese servicio. Los servicios pueden ser entonces agregados como se describe en las invenciones relacionadas, y pueden utilizarse las técnicas de la presente invención para proporcionar el servicio agregado. Por ejemplo, supóngase que el servicio agregado está diseñado para proporcionar servicios de correo electrónico a un usuario humano. Puede proporcionarse un sub-servicio para establecer una cuenta de correo electrónico del usuario. Típicamente, este sub-servicio de establecimiento de cuenta necesitará información de entrada tal como el nombre completo del usuario, un identificador del usuario del correo electrónico asociado con esta persona, una palabra de paso con la cual esta persona accederá a su cuenta de correo electrónico, y quizás información de configuración tal como cuánto almacenamiento debe asignarse para los mensajes de correo electrónico de este usuario. (La palabra de paso almacenada puede ser utilizada posteriormente, en combinación con el identificador del usuario, para autenticar a este usuario cuando accede a sus mensajes de correo electrónico utilizando otro sub-servicio del servicio agregado de correo electrónico). También podría proporcionarse información sobre los derechos de acceso como entrada al sub-servicio de establecimiento de la cuenta. Un usuario que es un administrador del sistema, por ejemplo, podría disponer de derechos adicionales de acceso para realizar operaciones tales como aumentar la asignación de espacio de almacenamiento de otro usuario, eliminar el correo electrónico de otro usuario, y temas similares. Los documentos WSDL pueden ser utilizados entonces para definir las operaciones proporcionadas por cada sub-servicio, y los mensajes y parámetros que se utilizan para invocar tales operaciones.
Como se ha estudiado en las invenciones relacionadas, la creación de un documento WSDL puede ser realizada por un usuario humano o bien utilizando operaciones programáticas, o una combinación de las mismas. (Por ejemplo, al usuario humano se le podría pedir que suministre información tal como el nombre del tipo de puerto, la localización de la información del espacio de nombres y similares, mientras que las operaciones programáticas generan elementos de <operación> y <mensaje> para métodos públicos del recurso de software. El WSTK de IBM es un ejemplo de producto comercialmente disponible que puede ser utilizado para generar programáticamente WSDL para una recurso de software existente. Véase el documento "The Web services (r)evolution: Part 4, Web Services Description Language (WSDL)", ("La (r)evolución de los servicios Web: Parte 4, Lenguaje de Descripción de los Servicios Web (WSDL)") de G. Glass (Feb. 2001), publicado por IBM en Internet en la dirección http://www-106.ibm.com/developerworks/webservices/library/ws-peer4, que presenta un ejemplo de la generación programática de un documento WSDL para un sencillo servicio sobre El Tiempo que tiene las operaciones de "obtenerTemperatura" y "FijarTemperatura").
Con el fin de unir los sistemas de identidad de los servicios que están integrados dinámicamente, de acuerdo con la presente invención, cada interfaz de aprovisionamiento del servicio se publica en un registro UDDI utilizando un documento WSDL. El interfaz de aprovisionamiento del servicio agregado puede ser creado entonces seleccionando manual o programáticamente entre los interfaces de los sub-servicios que comprenden la agregación, y puede crearse un documento WSDL para este nuevo interfaz de aprovisionamiento y ser publicado, de una manera recurrente.
Las operaciones unificadas de autenticación y autorización se hacen más difíciles por la naturaleza dinámica del descubrimiento e invocación de los servicios distribuidos. Las técnicas divulgadas en esta memoria abordan esta dificultad permitiendo que se proporcione un servicio agregado dentro del contexto del flujo de trabajo de los servicios Web, donde las operaciones están identificadas utilizando documentos WSDL y son invocadas utilizando mensajes SOAP dentro de la definición de un flujo de trabajo.
Los servicios agregados pueden restringir el acceso a sus operaciones al descubierto a aquellos usuarios que tienen credenciales suficientes, y demuestran con éxito estas credenciales utilizando una operación de autorización al descubierto. También puede ser ventajoso permitir la creación de perfiles de usuario que abarque servicios agregados, y que permita opcionalmente que estos perfiles de usuario puedan ser interrogados, cambiados y/o eliminados utilizando las correspondientes operaciones del servicio.
Se describirán ahora los mensajes y operaciones de muestra representados en las figuras 5A a 5E, y serán utilizados para ilustrar cómo permite la presente invención el aprovisionamiento de servicios agregados en un entorno informático distribuido. (Como será obvio para un experto en la técnica, los mensajes y operaciones, y los parámetros de los mismos, ilustrados en las figuras 5A a 5E se proporcionan solamente para fines ilustrativos. Un interfaz real de aprovisionamiento puede incluir otros mensajes y operaciones sin apartarse del alcance de la presente invención).
El mensaje 502 de "ResoluciónInternadePetición-deIdentificaciónAprovisionamiento" ilustra un mensaje de petición de entrada que puede ser utilizado para solicitar un servicio para ver de quién es un usuario autenticado particular o entidad. (En adelante, el término usuario puede ser interpretado como aplicable de forma equivalente a un usuario humano o a una entidad programática, tal como un servicio automatizado, a menos que está específicamente cualificado). La especificación 502 de mensaje declara que esta petición toma un parámetro denominado "TestigodeAutenticación", que es del tipo de cadena. Por ejemplo, supóngase que se ha autenticado un usuario humano para un servicio agregado, y que el servicio agregado contiene un testigo "X" de autenticación para ese usuario humano. Supóngase también que el servicio agregado desea determinar programáticamente cómo es conocido este usuario humano para un sub-servicio particular "ServicioABC". El servicio agregado necesita localizar un sistema de aprovisionamiento que tenga información sobre ese usuario. Los mensajes 502 y 504 pueden ser utilizados para proporcionar esta funcionalidad, donde el testigo "X" es traspasado a la operación de "ResolverIdentidaddeAprovisionamiento" del "ServicioABC" (preferiblemente utilizando un mensaje SOAP, como será descrito con referencia a las figuras 7A y 7B). Como se ilustra en la figura 5D, "ResolverIdentificación-deAprovisionamiento" 552 es una operación que tiene un mensaje de "ResoluciónInternadePeticióndeIdentificación-deAprovisionamiento" (véase el elemento 502 de la figura 5A) así como un mensaje de "ResoluciónExterna-deRespuesta-deIdentificación-deAprovisionamiento" (véase el elemento 504 de la figura 5A). El mensaje 504 de "ResoluciónExterna-deRespuesta-deIdentificación-deAprovisionamiento" se define como la devolución de un parámetro denominado "Identificador" (del tipo de cadena). Preferiblemente, el identificador devuelto es un identificador del sistema de aprovisionamiento remoto. Este identificador puede ser utilizado entonces como un parámetro de entrada para operaciones posteriores (véanse los mensajes 506, 510 y 526, por ejemplo, que se describen más adelante), para especificar el sistema de aprovisionamiento que gestiona el perfil del usuario o la información de configuración del servicio, como puede ser el caso.
Haciendo referencia ahora las figuras 7A y 7B, los modos de realización preferidos de la presente invención utilizan mensajes SOAP para la comunicación entre servicios Web. El ejemplo de mensaje 700 SOAP comprende una envolvente SOAP que lleva una firma digital en su cabecera, de acuerdo con la técnica anterior. Véase la figura 7A para la cabecera 710 y la firma digital 720. Esta firma digital puede ser utilizada para la autenticación del solicitante que remite la petición del servicio transportada en el cuerpo del mensaje SOAP. Véase la figura 7B para el cuerpo 730 del mensaje y la petición 740. En este mensaje 700 de muestra, el cuerpo del mensaje especifica un mensaje de "ObtenerÚltimoPrecioNegociado", para el cual el elemento hijo <m:símbolo> tiene un valor de "IBM". Puede suponerse que esto es una invocación de un servicio de oferta de stocks, y que este servicio requiere que el usuario sea autenticado; la firma digital del usuario ha sido suministrada por tanto en la cabecera del SOAP. (Se hace referencia al artículo "SOAP Security Extensions: Digital Signature, W3C NOTE 06 February 2001", ("Extensiones de seguridad de SOAP: Firma digital, Nota de W3C de 06 de Febrero de 2001"), que puede encontrarse en Internet en la dirección http://www.w3.org/TR/SOAP-dsig/ para una mayor información sobre la utilización de mensajes SOAP de esta manera).
El presente modo (o modos) de realización promueven esta técnica de firma digital para transportar información de autenticación perteneciente a usuarios de servicios Web agregados que se autentican, determinando la autorización de esos usuarios y/o configurando los servicios Web agregados.
Volviendo a la discusión de los mensajes de muestra del interfaz de aprovisionamiento de la figura 5A, el mensaje 506 de "ResolverInternamentePeticiónUsuario" ilustra un mensaje de petición de entrada que puede ser utilizado para determinar el conjunto de usuarios que están autorizados para acceder a un servicio en particular. En el ejemplo, se traspasa un testigo de autenticación al servicio requerido, y en este mensaje, sirve preferiblemente para autenticar el solicitante de la información (que es, la entidad programática o usuario humano que está solicitando la información de usuarios autorizados). El parámetro "provID" (proporcionar identidad) puede ser utilizado para proporcionar una dirección (tal como un Identificador de Recurso Uniforme, o "URI") de un sistema de aprovisionamiento auspiciado por un proveedor de servicios. La operación "ResolverUsuarios" (véase el elemento 554 de la figura 5D) de un servicio recibe el mensaje 506 de "ResolverInternamentePeticiónUsuarios", y responde con el mensaje 508 de "ResolverExternamenteRespuestaUsuarios". En el ejemplo, este mensaje 508 de salida se define como la devolución de una serie denominada "ConjuntodeUsuario". La sintaxis "SOAP-ENC" del elemento de parte del mensaje 508 es un prefijo de espacio de nombre, y se utiliza para cualificar la definición de la serie. (Esta serie de salida identifica presumiblemente los usuarios autorizados del servicio particular que auspicia esta operación 554 de "ResolverUsuarios", que estaba ligada a la utilización de UDDI y fue invocada utilizando un mensaje SOAP. Cuando se ejecuta la operación de "ResolverUsuarios", puede haberse solicitado de un sistema de aprovisionamiento que efectúe la determinación de los usuarios autorizados).
El mensaje 510 de "CrearInternamentePeticiónPerfilUsuario" muestra cómo podría ser diseñado el interfaz de un mensaje de petición de entrada que crea un perfil de usuario. Como en los otros ejemplo de mensajes, es beneficioso incluir un testigo de autenticación como uno de los parámetros de entrada traspasados al servicio remoto, de manera que el servicio remoto pueda autenticar al solicitante de la información y determinar si este solicitante está autorizado para utilizar el servicio 556 de "CrearPerfilUsuario" que expone el mensaje 510 de "CrearInternamentePeticiónPerfilUsuario". El parámetro "proporcionarIdentificador" puede ser utilizado para proporcionar una URI u otra dirección de un sistema de aprovisionamiento, como se ha estudiado anteriormente, donde el perfil de usuario ha de ser almacenado en este sistema de aprovisionamiento. El parámetro "IdentificaciónUsuario" identifica preferiblemente al usuario para el cual (en el caso de un usuario humano'') o para el cual (en el caso de un usuario programático) se crea el perfil. Puede proporcionarse un parámetro de "palabradepaso" para establecer la palabra de paso asociada con este usuario. (Pueden utilizarse credenciales distintas a la palabra de paso para este fin, si se desea). El nombre completo del usuario podría ser traspasado en un parámetro de "NombreCompleto", dependiendo de las necesidades del servicio subyacente. Finalmente, en este mensaje de muestra, se proporcionan los derechos de acceso del usuario como una serie. La operación 556 de "CrearPerfildeUsuario" recibe el mensaje 510 de "CrearInternamentePeticióPerfilUsuario" y responde con un mensaje 512 de "CrearExternamenteRespuestaPerfilUsuario". En el ejemplo, este mensaje 512 de salida devuelve un valor buleano que indica si la creación del perfil tuvo éxito o no.
El mensaje 514 de "SolicitarInternamenteSolicitud-PerfilUsuario" muestra un ejemplo de interfaz para un mensaje de petición de entrada que es utilizado para recuperar información de un perfil de usuario previamente almacenado. Los parámetros del mensaje incluyen un testigo de autenticación "TestigoAut" para autenticar el solicitante de la información, un identificador de aprovisionamiento "PropIdent" para identificar un sistema de aprovisionamiento en el que se almacena el perfil, y un identificador de usuario "IdentUsuario" para identificar el usuario para el cual se ha solicitado la información de perfil. Este mensaje 514 se proporciona como el interfaz de entrada para un servicio 558 de "PedirPerfilUsuario", y el mensaje 516 de "PedirExternamenteRespuestaPerfilUsuario" de este ejemplo devuelve la palabra de paso del usuario, el nombre completo y los derechos de acceso desde el perfil almacenado.
El mensaje 518 de "ActualizarInternamente-PeticiónPerrfilUsuario" es análogo al mensaje 510 de "CrearInternamentePeticiónPerfilUsuario", y utiliza los mismos parámetros en este ejemplo. La operación 560 de "ActualizarPerfilUsuario" recibe el mensaje 518 de "ActualziarInternamentePeticiónPerfilUsuario" y responde con un mensaje 520 de "ActualizarExternamenteRespuesta-PerfilUsuario" que es análogo a mensaje 512 de "CrearExternamenteRespuestaPerfilUsuario". En el ejemplo, este mensaje 512 de salida devuelve un valor buleano que indica si la creación del perfil tuvo éxito o no.
El mensaje 522 de "EliminarInternamentePeticiónPerfil-Usuario" y el mensaje 524 de "EliminarExternamenteRespuestaPerfil-Usuario" son proporcionados como el interfaz de entrada y salida de la operación 562 de "EliminarPerfilUsuario" (véase la figura 5E), y permiten la eliminación de un perfil de usuario de una manera similar a cómo puede ser creado o actualizado el perfil con la operación 556 de "CrearPerfilUsuario" y la operación 560 de "ActualizarPerfilUsuario".
Además de los mensajes de autenticación y autorización, tales como los que han sido descritos, también puede ser útil para definir mensajes y operaciones pertenecientes a la configuración de servicios Web agregados. Ejemplos de las operaciones 564 de "FijarParámetroConfig" y 566 de "ObtenerParámetroConfig" están ilustradas en la figura 5E.
El mensaje de entrada de muestra para la operación 564 de "FijarParámetroConfig" es el 526 de "FijarInternamentePeticiónParámetroConfig", y el mensaje de salida de muestra es el 528 de "FijarExternamenteRespuestaParámetroConfig". El mensaje 526 de entrada en el ejemplo tiene parámetros de entrada que incluyen el testigo de autenticación "TestigoAut" para el solicitante, el identificador de aprovisionamiento "PropIdent" para identificar el sistema de aprovisionamiento donde debe ser almacenado el valor del parámetro, el identificador de usuario "IdentUsuario" para identificar el usuario con el cual está asociado este parámetro y el nombre del parámetro de configuración "NombreParámetro" y el valor "ValorParámetro". El mensaje 528 de salida devuelve un valor Buleano "resultado" que indica si la operación "FijarParámetroConfig" tuvo éxito.
El mensaje de entrada de muestra para la operación 566 de "ObtenerParámetroConfig" es el 530 de "ObtenerInternamenteRespuesta-ParámetroConfig", y el mensaje de salida de muestra es el 532 de "ObtenerExternamenteRespuestaParámetro-Config". El mensaje 530 de entrada en el ejemplo tiene parámetros de entrada que son idénticos a los del mensaje 526 de "FijarInternamentePeticiónParámetroConfig", excepto que se omite el parámetro "ValorParámetro". El mensaje 532 de salida devuelve el valor del parámetro solicitado utilizando el parámetro "ValorParámetro".
Volviendo ahora a la figura 6, se representa la lógica que puede ser utilizada para ejecutar un servicio agregado y las operaciones de identidad y/o configuración de sus sub-servicios dentro del contexto de un flujo de trabajo de servicios Web, de acuerdo con modos de realización preferidos de la presente invención.
Puede disponerse una "entrada unificada al sistema" o una sola capacidad de firma para un servicio agregado, de acuerdo con la presente invención, por las que el interfaz de aprovisionamiento del servicio agregado puede ser utilizado para solicitar toda la información requerida de un usuario al principio de la ejecución del servicio agregado. (Como será obvio, puede suceder que alguna información necesite ser solicitada del usuario durante la ejecución, y por tanto la presente invención debe ser considerada como que permite hacer mínimas tales peticiones).
Las operaciones que están definidas secuencialmente dentro del flujo de trabajo de WSFL de un servicio agregado se ejecutan de acuerdo con la definición del flujo de trabajo. La información de entrada al sistema obtenida del usuario es preferiblemente "apilada" para su utilización por el sub-servicio al cual pertenecen elementos individuales de la información de entrada al sistema. El apilamiento de los módulos es conocido en la técnica por los que están familiarizados con sistemas de identidad y sistemas de autenticación que proporcionan una sola capacidad de firma. El apilamiento se refiere a la utilización de una palabra de paso "principal" como clave de encriptación, donde la información así encriptada comprende una o más palabras de paso "secundarias". Como en la presente invención se utiliza el proceso de apilamiento, las palabras de paso secundarias son las palabras de paso utilizadas para los sub-servicios, y la palabra de paso principal es aplicable al ámbito del servicio agregado y protege estas palabras de paso secundarias. Los sub-servicios son invocados en un orden específico, de acuerdo con la definición de WSFL, y las palabras de paso apiladas son sacadas de la pila después y presentadas al sub-servicio apropiado de autenticación o autorización.
Este proceso comienza en el bloque 600 de la figura 6, donde se obtiene el identificador del usuario y la palabra de paso (o tipo similar de entrada de autenticación). (Obsérvese que las presentes referencias a "palabras de paso" no significan limitar el tipo de credenciales que pueden ser admitidas. Las credenciales pueden ser proporcionadas de distintas maneras, incluyendo el texto como tal, las cadenas que han sido encriptadas, los tiques y los certificados públicos de seguridad de clave tales como los certificados X.509). Esta información de autenticación puede ser traspasada después como entrada a un servicio remoto, que generará un testigo de autenticación (bloque 610) al invocar su operación de autenticación.
Preferiblemente, el testigo de autenticación generado en el bloque 610 está generado como un fragmento XML, que puede ser incluido después en una cabecera de mensaje SOAP. De esta manera, las identidades de usuarios pueden ser retransmitidas cuando se accede a servicios Web. Se hace referencia al estudio del mensaje SOAP 700 de muestra de las figuras 7A y 7B, que ilustra cómo se incluye una firma digital en una cabecera SOAP utilizando la sintaxis XML. (Como se muestra en esas figuras, los testigos de firma digital utilizan un espacio de nombres cualificado, y están por tanto precedidas por las letras "ds"). Los sistemas de autenticación y los sistemas de políticas pueden estar ligados a operaciones de servicio que utilizan también la cabecera SOAP. Las descripciones WSDL modelan preferiblemente las operaciones como una combinación de la cabecera y del cuerpo SOAP. Es decir, todas las operaciones que requieren una prueba de identidad requieren, preferiblemente, intercambiar las credenciales del usuario. La técnica de Extensiones de Seguridad de SOAP utilizada en los presentes ejemplos es un ejemplo de cómo puede conseguirse esto. El Lenguaje de Marcas de Asociación de la Seguridad ("SAML"), el API del Servicio de Seguridad Genérica ("GSS") y la arquitectura de Interoperabilidad Segura Común ("CSI") proporciona también medios para el intercambio de seguridad de las credenciales de un principal. (Una versión de SAML está definida en el Borrador de OASIS que puede ser encontrado en la dirección de Internet http://www.oasis-open.org/committees/security/docs/ draft -sstc-saml-spec-00.PDF, de fecha 11 de Abril de 2001. El GSS-API está definido en RFC 2743, "Generic Security Service Aplication Program Interface, Version 2, Update 1" ("Interfaz de Programa de Aplicaciones del Servicio de Seguridad Genérica, Versión 2, Actualización 1''), de fecha Enero de 2000. CSI está definido en "Common Secure Interoperability V2 Specification" (Especificación V2 de Interoperabilidad Segura Común") disponible en Internet en http://www.omg.org/cgi-bin/doc?ptc/2001-03-02).
El testigo generado en el bloque 610, que utiliza la información de entrada obtenida en el bloque 600, se denomina en esta memoria testigo de autenticación "general" porque sirve preferiblemente como sustituto para este usuario, que puede ser utilizado posteriormente para identificar el usuario en varios sub-servicios del servicio agregado. (En otras palabras, este testigo no es, preferiblemente, específico de ningún sub-servicio u operación).
La prueba del bloque 620 comprueba si este usuario está (todavía) autenticado globalmente (es decir, para el servicio agregado). En modos de realización preferidos, una vez que el usuario es autenticado, sus credenciales están asociadas con las peticiones del resto del flujo (es decir, las llamadas de acuerdo con los servicios agregados). Sin embargo, la lógica de la figura 6 está diseñada para realizar la prueba en el bloque 620 más de una vez, por ejemplo para tener en cuenta a un usuario que podría salir del sistema durante la secuencia de operaciones especificadas en el modelo de flujo. Si la prueba tiene un resultado negativo, este usuario no tiene permitido continuar operando con el servicio agregado, y se devuelve preferiblemente un código de fallo (bloque 640), tras el cual el proceso de la figura 6 termina. Si la prueba tiene un resultado positivo, el proceso continúa en el bloque 630, el cual comprueba si el usuario está autenticado localmente (es decir, para el servicio siguiente a realizar, donde este servicio se determina de acuerdo con el modelo de flujo de WSFL). Si esta prueba tiene un resultado negativo, el control se transfiere al bloque 640; en caso contrario el control se transfiere al bloque 670.
En el bloque 625, se recupera la información apilada de identidad para la siguiente operación a realizar. Esta información recuperada se traspasa a este servicio de autenticación de la operación siguiente, el cual genera (o recupera) un testigo específico de la operación utilizando esta información de identidad.
En el bloque 660, se devuelve al que llama el testigo específico de la operación utilizando una cabecera SOAP (como se describe con referencia a las figuras 7A y 7B). (Obsérvese que mientras que los mensajes de respuesta de las figuras 5A a 5C no ilustran la devolución de testigos de autenticación, tales testigos pueden ser añadidos si se desea). El bloque 670 utiliza entonces el testigo recibido específico de la operación para determinar la autorización del usuario específica de la operación. (Los usuarios pueden tener varios papeles que determinan sus credenciales para una clase específica de operaciones. Una persona que fuera el director podría tener permitido observar los expedientes personales de sus empleados cuando está actuando en su papel de jefe, como ejemplo, mientras que podría no tener permitido utilizar esta misma operación para observar su propio expediente personal cuando actúa en su papel de empleado). La invocación de la autorización en el bloque 670 utiliza también, preferiblemente, una cabecera SOAP para pasar el testigo específico de la operación recibido en el bloque 660. Si el resultado de la operación de autorización indica que el usuario está autorizado para la operación siguiente a realizar en el servicio agregado, el proceso continúa en el bloque 680. (En otro caso podría generarse un error y/o el flujo podría continuar en una operación diferente. El proceso particular podría variar de una implementación a otra, y por tanto no ha sido ilustrado en la figura 6. Será obvio para un experto normal en la técnica cómo puede añadirse la lógica apropiada a la figura 6).
El bloque 680 invoca la siguiente operación secuencial. Esta invocación puede utilizar también una cabecera SOAP, si se requieren las credenciales del usuario, para pasar el testigo específico de la operación recibido en el bloque 660. (Si se recibe un testigo de autorización como resultado del proceso del bloque 670, puede traspasarse ese testigo además del o en lugar del testigo del bloque 650). Una vez terminada la operación, el bloque 690 comprueba si hay más operaciones en la secuencia. Si no las hay, el proceso de la figura 6 termina. En otro caso, el control vuelve al bloque 620 para determinar si el usuario está todavía autenticado para el servicio agregado (tras lo cual el bloque 630 determinará si el usuario está autenticado para este servicio siguiente, como se ha estudiado anteriormente).
Como ha sido demostrado, la presente invención proporciona técnicas ventajosas para el aprovisionamiento de servicios Web agregados. Las cabeceras SOAP se utilizan preferiblemente para retransmitir información de identidad. Las técnicas divulgadas permiten unir sistemas de identidad heterogéneos en el entorno de integración dinámica en tiempo de ejecución de los servicios Web. Se promueven los estándares abiertos. Obsérvese que aunque se ha hecho referencia a estándares particulares (tales como el WSFL y el SOAP) cuando se han descrito modos de realización preferidos, esto ha sido con fines de ilustración de los conceptos inventivos de la presente invención. Pueden utilizarse medios alternativos para proporcionar la funcionalidad análoga sin apartarse del alcance de la presente invención.
Como podrá apreciarse por un experto en la técnica, los modos de realización de la presente invención pueden ser ofrecidos como métodos, sistemas o productos de programas informáticos. Consecuentemente, la presente invención puede adoptar la forma de un modo de realización enteramente de hardware, de un modo de realización enteramente de software, o de un modo de realización que combina aspectos de software y hardware. Además, la presente invención puede adoptar la forma de un producto de programa de ordenador que se materializa en uno o más medios de almacenamiento utilizables por el ordenador (incluyendo, aunque no limitándose a ello, el almacenamiento en disco, el CD-ROM, el almacenamiento óptico y similares) que tienen incorporado el código de programas utilizables por el ordenador.
\newpage
La presente invención ha sido descrita con referencia a diagramas de flujo y/o diagramas de bloques de métodos, dispositivos (sistemas) y productos de programas de ordenador de acuerdo con modos de realización de la invención. Se comprenderá que cada flujo y/o bloque de los diagramas de flujo y/o de los diagramas de bloques y las combinaciones de flujos y/o bloques en los diagramas de flujo y/o en los diagramas de bloques, pueden ser implementados por instrucciones de programas de ordenador. Estas instrucciones de programas de ordenador pueden ser proporcionadas a un procesador de un ordenador de propósito general, un ordenador de propósito especial, un procesador incorporado u otros dispositivos de proceso de datos para producir una máquina, de forma tal que las instrucciones, que se ejecutan a través del procesador del ordenador o de otros dispositivos programables de proceso de datos, crean medios para implementar las funciones especificadas en el flujo o flujos del diagrama de flujo y/o en el bloque o bloques del diagrama de bloques.
Estas instrucciones de programa de ordenador pueden ser almacenadas también en una memoria legible por el ordenador que puede dirigirse a un ordenador u otros dispositivos programables de proceso de datos, para funcionar de una manera particular, de forma tal que las instrucciones almacenadas en la memoria legible por el ordenador produzcan un artículo de fabricación que incluya medios de instrucción que implementen la función especificada en el flujo o flujos del diagrama de flujo y/o en el bloque o bloques del diagrama de bloques.
Las instrucciones del programa de ordenador pueden ser cargadas también en un ordenador u otros dispositivos programables de proceso de datos, para originar una serie de pasos de funcionamiento a realizar en el ordenador o en otro dispositivo programable, para generar un proceso implementado en ordenador tal que las instrucciones que se ejecutan en el ordenador o en otros dispositivos programables, proporcionen los pasos para implementar las funciones especificadas en el flujo o flujos del diagrama de flujo y/o en el bloque o bloques del diagrama de bloques.
Aunque se han descrito modos de realización preferidos de la presente invención, a los expertos en la técnica se les pueden ocurrir variaciones y modificaciones adicionales a esos modos de realización, una vez que aprendan los conceptos inventivos básicos. Por tanto, se pretende que las reivindicaciones anexas se interpreten como que incluyen tanto el modo de realización preferido como todas las variaciones y modificaciones que caigan dentro del alcance de la invención.

Claims (18)

1. Un método para proporcionar un servicio agregado en una red informática (100, 120, 150), que comprende los pasos de:
obtener (600) credenciales de un usuario que requiere el acceso a un servicio agregado;
localizar, en un registro accesible por la red, un documento de descripción del servicio que especifique un interfaz de aprovisionamiento para el servicio agregado, comprendiendo el servicio agregado una agregación de una pluralidad de sub-servicios y especificando el interfaz de aprovisionamiento cómo invocar funciones de identidad del servicio agregado;
analizar (620, 630) las credenciales obtenidas invocando una o más de las funciones de identidad, de acuerdo con la especificación de las mismas en el interfaz de aprovisionamiento, para determinar si el usuario está autenticado para acceder al servicio agregado; y
permitir que el usuario acceda al servicio agregado solamente si el análisis determina que el usuario está autenticado para acceder al servicio agregado.
2. El método según la reivindicación 1, en el que la implementación de cada una de las funciones del servicio agregado es proporcionada por al menos uno de los sub-servicios.
3. El método según la reivindicación 1, en el que:
al menos uno de los sub-servicios tiene un interfaz de aprovisionamiento local, estando especificado el interfaz de aprovisionamiento local en un correspondiente documento de descripción del servicio y comprendiendo una especificación de cómo invocar una o más funciones de identidad del sub-servicio; y
controlar el acceso a cada uno de los sub-servicios que tiene el interfaz de aprovisionamiento local, comprendiendo además los pasos de:
determinar si el usuario está autenticado para acceder al sub-servicio invocando al menos una de las una o más funciones de identidad del sub-servicio, de acuerdo con la especificación de las mismas en el interfaz de aprovisionamiento local; y
permitir que el usuario acceda al sub-servicio solamente si el paso de determinación determina que el usuario está autenticado para acceder al sub-servicio.
4. El método según la reivindicación 3, en el que:
el paso de obtener credenciales del usuario obtiene también las credenciales del sub-servicio para al menos uno de los sub-servicios que tienen el interfaz de aprovisionamiento local; y
el paso de determinación utiliza las credenciales del sub-servicio obtenidas.
5. El método según la reivindicación 1, en el que
una o más operaciones de al menos uno de los sub-servicios tiene protegido el acceso;
el paso de obtención comprende además, para al menos una de las operaciones de acceso protegido, credenciales específicas de la operación; y además comprende el paso de:
controlar el acceso a cada una de al menos una de las operaciones de acceso protegido, que comprende además los pasos de:
analizar las credenciales específicas de la operación obtenidas, invocando una o más de las funciones de identidad, de acuerdo con la especificación de las mismas en el interfaz de aprovisionamiento, para determinar si el usuario puede acceder a la operación de acceso protegido; y
permitir que el usuario acceda a la operación de acceso protegido solamente si el paso de analizar las credenciales específicas de la operación obtenidas determina que el usuario puede acceder a la operación de acceso protegido.
6. El método según la reivindicación 1, en el que la información de identidad obtenida invocando una o más funciones de identidad es retransmitida programáticamente entre al menos dos de los sub-servicios del servicio agregado.
7. El método según la reivindicación 6, en el que la retransmisión programática comprende el envío de un mensaje que especifica las credenciales en una cabecera del mensaje y una petición de servicio en un cuerpo del mensaje.
8. El método según la reivindicación 7, en el que el mensaje es un mensaje SOAP ("Protocolo de Acceso a Objetos Sencillos").
9. El método según la reivindicación 1, en el que el documento de descripción del servicio está especificado en un lenguaje de marcación.
10. El método según la reivindicación 9, en el que el lenguaje de marcación es el Lenguaje de Descripción de Servicios Web ("WSDL").
11. El método según la reivindicación 1, en el que el registro accesible por la red es accedido utilizando mensajes estandarizados.
12. El método según la reivindicación 1, en el que una implementación de al menos uno de los sub-servicios está localizada dinámicamente en tiempo de ejecución.
13. El método según la reivindicación 6, en el que la información de identidad se obtiene inicialmente como resultado del paso de análisis.
14. El método según la reivindicación 6, en el que la información de identidad comprende un testigo de autenticación generado por una de las funciones de identidad invocadas.
15. El método según la reivindicación 1, en el que
al menos dos de los sub-servicios tiene asociado con él, cada uno de ellos, un sistema de identidad para el control de acceso a los mismos;
al menos dos de los sistemas de identidad asociados son heterogéneos, y
al menos una función seleccionada de las funciones de identidad del servicio agregado permite unir dinámicamente al menos dos de los sistemas de identidad heterogéneos.
16. El método según la reivindicación 15, en el que al menos una función de identidad seleccionada, al ser invocada, identifica el sistema de identidad que almacena información perteneciente a usuarios del sub-servicio con el cual está asociado ese sistema de identidad.
17. Un sistema para proporcionar un servicio agregado en una red informática, que comprende:
medios para obtener credenciales de un usuario que solicita acceso a un servicio agregado;
medios para localizar, en un registro accesible por la red, un documento de descripción del servicio que especifica un interfaz de aprovisionamiento para el servicio agregado, comprendiendo el servicio agregado una agregación de una pluralidad de sub-servicios y especificando el interfaz de aprovisionamiento cómo invocar las funciones de identidad del servicio agregado;
medios para analizar las credenciales obtenidas invocando una o más de las funciones de identidad, de acuerdo con la especificación de las mismas en el interfaz de aprovisionamiento, para determinar si el usuario está autenticado para acceder al servicio agregado; y
medios para permitir al usuario acceder al servicio agregado solamente si los medios para analizar determinan que el usuario está autenticado para acceder al servicio agregado.
18. Un producto de programa de ordenador para proporcionar uno o más recursos de software de un servicio agregado en una red informática, estando el producto de programa de ordenador incorporado en uno o más medios legibles por el ordenador y comprendiendo:
medios de código de programa legible por el ordenador para llevar a cabo todos los pasos del método, según cualquiera de las reivindicaciones 1 a 16.
ES02783324T 2002-01-15 2002-12-11 Ofrecimiento de servicios agregados en un entorno informatico distribuido. Expired - Lifetime ES2278066T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47811 1987-05-08
US10/047,811 US7603469B2 (en) 2002-01-15 2002-01-15 Provisioning aggregated services in a distributed computing environment

Publications (1)

Publication Number Publication Date
ES2278066T3 true ES2278066T3 (es) 2007-08-01

Family

ID=21951105

Family Applications (1)

Application Number Title Priority Date Filing Date
ES02783324T Expired - Lifetime ES2278066T3 (es) 2002-01-15 2002-12-11 Ofrecimiento de servicios agregados en un entorno informatico distribuido.

Country Status (11)

Country Link
US (1) US7603469B2 (es)
EP (1) EP1483671B1 (es)
JP (1) JP4594621B2 (es)
KR (1) KR100600959B1 (es)
CN (1) CN1291318C (es)
AT (1) ATE353453T1 (es)
AU (1) AU2002347391A1 (es)
DE (1) DE60218069T2 (es)
ES (1) ES2278066T3 (es)
IL (1) IL162438A0 (es)
WO (1) WO2003060710A2 (es)

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343428B2 (en) * 2001-09-19 2008-03-11 International Business Machines Corporation Dynamic, real-time integration of software resources through services of a content framework
US7035944B2 (en) * 2001-09-19 2006-04-25 International Business Machines Corporation Programmatic management of software resources in a content framework environment
US7747856B2 (en) * 2002-07-26 2010-06-29 Computer Associates Think, Inc. Session ticket authentication scheme
US7266582B2 (en) * 2002-08-09 2007-09-04 Sun Microsystems, Inc. Method and system for automating generation of web services from existing service components
US7512975B2 (en) * 2002-08-16 2009-03-31 Intel Corporation Hardware-assisted credential validation
US20040064528A1 (en) * 2002-09-30 2004-04-01 Microsoft Corporation Safe interoperability among web services
CA2405673C (en) * 2002-09-30 2009-10-06 Ibm Canada Limited-Ibm Canada Limitee Provisioning web services
US8356067B2 (en) * 2002-10-24 2013-01-15 Intel Corporation Servicing device aggregates
US7178163B2 (en) * 2002-11-12 2007-02-13 Microsoft Corporation Cross platform network authentication and authorization model
SE0300368D0 (sv) * 2003-02-11 2003-02-11 Ericsson Telefon Ab L M System for internet privacy
US20040225656A1 (en) * 2003-05-07 2004-11-11 Panacea Corporation Web services method and system
CA2776354A1 (en) * 2003-06-05 2005-02-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US7490127B2 (en) * 2003-06-13 2009-02-10 Microsoft Corporation Concurrent recipient resolution and certificate acquisition
US6959325B2 (en) * 2003-08-11 2005-10-25 Teamon Systems, Inc. System and method for generating configurations used for accessing electronic mailboxes
US7539974B2 (en) * 2003-10-24 2009-05-26 Microsoft Corporation Scalable synchronous and asynchronous processing of monitoring rules
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US7506307B2 (en) * 2003-10-24 2009-03-17 Microsoft Corporation Rules definition language
US7676560B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Using URI's to identify multiple instances with a common schema
US7765540B2 (en) * 2003-10-23 2010-07-27 Microsoft Corporation Use of attribution to describe management information
US7716357B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US7805713B2 (en) * 2003-10-27 2010-09-28 Hewlett-Packard Development Company, L.P. Transaction processing architecture
US7720906B2 (en) * 2003-11-24 2010-05-18 Microsoft Corporation Web service for remote application discovery
US7590713B2 (en) * 2003-11-24 2009-09-15 Microsoft Corporation Presenting a merged view of remote application shortcuts from multiple providers
US7475125B2 (en) * 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
WO2005060212A1 (en) * 2003-12-12 2005-06-30 International Business Machines Corporation Port type agnostic proxy support for web services intermediaries
US7464142B2 (en) 2003-12-12 2008-12-09 International Business Machines Corporation Port type agnostic proxy support for web services intermediates
US7676562B2 (en) * 2004-01-20 2010-03-09 Microsoft Corporation Computer system for accessing instrumentation information
DE102004004345A1 (de) * 2004-01-29 2005-08-18 Abb Research Ltd. System und Verfahren zur Kommunikation zwischen entfernten Objekten und lokalen Stellvertretern
WO2005081672A2 (en) * 2004-01-30 2005-09-09 International Business Machines Corporation Componentized automatic provisioning and management of computing environments for computing utilities
JP4873852B2 (ja) * 2004-02-26 2012-02-08 株式会社リコー 第一の通信装置、情報処理装置、情報処理プログラム、記録媒体
US8862570B1 (en) 2004-03-02 2014-10-14 Rockstar Consortium Us Lp Method and apparatus for open management of multi-media services
US7975270B2 (en) * 2004-03-10 2011-07-05 International Business Machines Corporation Facilitating allocation of resources in a heterogeneous computing environment
US7467399B2 (en) * 2004-03-31 2008-12-16 International Business Machines Corporation Context-sensitive confidentiality within federated environments
US7823192B1 (en) * 2004-04-01 2010-10-26 Sprint Communications Company L.P. Application-to-application security in enterprise security services
US20050228984A1 (en) * 2004-04-07 2005-10-13 Microsoft Corporation Web service gateway filtering
US8010783B1 (en) 2004-04-15 2011-08-30 Aol Inc. Service provider invocation
US9088561B2 (en) * 2004-05-19 2015-07-21 Ca, Inc. Method and system for authentication in a computer network
US20060041669A1 (en) * 2004-05-19 2006-02-23 Lucent Technologies, Inc. Securing web services
US8615601B2 (en) * 2004-05-21 2013-12-24 Oracle International Corporation Liquid computing
US7774485B2 (en) * 2004-05-21 2010-08-10 Bea Systems, Inc. Dynamic service composition and orchestration
US8566461B1 (en) 2004-06-09 2013-10-22 Digital River, Inc. Managed access to media services
US20050283352A1 (en) * 2004-06-18 2005-12-22 Dieter Roller Evaluation of process expressions on the basis of deployment information
ATE405083T1 (de) * 2004-06-29 2008-08-15 Sap Ag Rechnersystem und datenverarbeitungsverfahren zum gebrauch eines webdienstes
US7739695B2 (en) * 2004-07-19 2010-06-15 Sap Ag Computer implemented method and system for running a plurality of business processes
US7647319B2 (en) * 2004-09-06 2010-01-12 Canon Kabushiki Kaisha Information processing apparatus, information processing method, program, and storage medium
US20060069995A1 (en) * 2004-09-30 2006-03-30 British Telecommunications Public Limited Company Personalised process automation
US7483994B1 (en) 2004-11-01 2009-01-27 Ameriprise Financial, Inc. System and method for creating a standard envelope structure
US7613830B2 (en) * 2004-12-10 2009-11-03 Microsoft Corporation Reliably transferring queued application messages
US20060136242A1 (en) * 2004-12-21 2006-06-22 International Business Machines Corporation Documents between services exchange and visualization of negotiation
US7657924B2 (en) * 2005-04-06 2010-02-02 International Business Machines Corporation Method and system for implementing authorization policies for web services
US7983209B2 (en) * 2005-04-18 2011-07-19 Research In Motion Limited System and method for producing notification based web services
US8438633B1 (en) 2005-04-21 2013-05-07 Seven Networks, Inc. Flexible real-time inbox access
US20060248082A1 (en) * 2005-04-29 2006-11-02 Amit Raikar Method and an apparatus for securely communicating between a management server and a managed node associated with a dynamic provisioning system
US8464317B2 (en) * 2005-05-06 2013-06-11 International Business Machines Corporation Method and system for creating a protected object namespace from a WSDL resource description
US8566462B2 (en) * 2005-05-12 2013-10-22 Digital River, Inc. Methods of controlling access to network content referenced within structured documents
US20060294383A1 (en) * 2005-06-28 2006-12-28 Paula Austel Secure data communications in web services
US8250226B2 (en) * 2005-07-21 2012-08-21 Ca, Inc. Generating one or more clients for generating one or more synthetic transactions with one or more web service operations
CN100401259C (zh) * 2005-08-15 2008-07-09 中兴通讯股份有限公司 一种分布式服务系统的服务提供方法
CN100454833C (zh) * 2005-08-19 2009-01-21 华为技术有限公司 一种识别网管接口参数的方法
KR101285024B1 (ko) * 2005-10-18 2013-08-27 인터트러스트 테크놀로지즈 코포레이션 디지털 권리 관리를 위한 방법
US9626667B2 (en) * 2005-10-18 2017-04-18 Intertrust Technologies Corporation Digital rights management engine systems and methods
CN100444148C (zh) * 2005-12-08 2008-12-17 北京北方微电子基地设备工艺研究中心有限责任公司 基于Web服务的工厂主机与集群控制器系统的控制方法
US8230487B2 (en) * 2005-12-21 2012-07-24 International Business Machines Corporation Method and system for controlling access to a secondary system
JP5483884B2 (ja) * 2006-01-17 2014-05-07 キダロ (イスラエル) リミテッド 複数のコンピューティング環境のシームレスな統合
EP1818820A1 (en) * 2006-02-03 2007-08-15 Research In Motion Limited System and method for installing custom services on a component-based application platform
US20070220035A1 (en) * 2006-03-17 2007-09-20 Filip Misovski Generating user interface using metadata
US7698251B2 (en) * 2006-04-27 2010-04-13 International Business Machines Corporation Fault tolerant facility for the aggregation of data from multiple processing units
US9386327B2 (en) 2006-05-24 2016-07-05 Time Warner Cable Enterprises Llc Secondary content insertion apparatus and methods
US8280982B2 (en) 2006-05-24 2012-10-02 Time Warner Cable Inc. Personal content server apparatus and methods
US8024762B2 (en) 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
US9830145B2 (en) * 2006-08-14 2017-11-28 Federal Home Loan Mortgage Corporation (Freddie Mac) Systems and methods for infrastructure and middleware provisioning
US8520850B2 (en) 2006-10-20 2013-08-27 Time Warner Cable Enterprises Llc Downloadable security and protection methods and apparatus
US20080147835A1 (en) * 2006-12-19 2008-06-19 Sunil Chandra Partially decentralized composition of web services
US20080178010A1 (en) 2007-01-18 2008-07-24 Vaterlaus Robert K Cryptographic web service
US8621540B2 (en) 2007-01-24 2013-12-31 Time Warner Cable Enterprises Llc Apparatus and methods for provisioning in a download-enabled system
US8181206B2 (en) 2007-02-28 2012-05-15 Time Warner Cable Inc. Personal content server apparatus and methods
US8098248B2 (en) * 2007-04-02 2012-01-17 International Business Machines Corporation Method for semantic modeling of stream processing components to enable automatic application composition
US8863102B2 (en) * 2007-04-02 2014-10-14 International Business Machines Corporation Method and system for assembling information processing applications based on declarative semantic specifications
US8307372B2 (en) * 2007-04-02 2012-11-06 International Business Machines Corporation Method for declarative semantic expression of user intent to enable goal-driven information processing
US8370812B2 (en) * 2007-04-02 2013-02-05 International Business Machines Corporation Method and system for automatically assembling processing graphs in information processing systems
US8166465B2 (en) * 2007-04-02 2012-04-24 International Business Machines Corporation Method and system for composing stream processing applications according to a semantic description of a processing goal
US8656472B2 (en) 2007-04-20 2014-02-18 Microsoft Corporation Request-specific authentication for accessing web service resources
US8117233B2 (en) * 2007-05-14 2012-02-14 International Business Machines Corporation Method and system for message-oriented semantic web service composition based on artificial intelligence planning
US8528058B2 (en) 2007-05-31 2013-09-03 Microsoft Corporation Native use of web service protocols and claims in server authentication
CN101335622B (zh) * 2007-06-27 2012-08-29 日电(中国)有限公司 使用匿名柔性凭证的用于分布式授权的方法和装置
US7991877B2 (en) * 2007-10-05 2011-08-02 International Business Machines Corporation Rogue router hunter
CN101488843A (zh) * 2008-01-16 2009-07-22 北京航空航天大学 一种基于冗余机制的高可用服务组合实现方法
US9503691B2 (en) 2008-02-19 2016-11-22 Time Warner Cable Enterprises Llc Methods and apparatus for enhanced advertising and promotional delivery in a network
US8364788B2 (en) * 2008-03-13 2013-01-29 Hewlett-Packard Development Company, L.P. Processing client requests for common services according to one or more canonical forms
US8601253B2 (en) * 2008-04-24 2013-12-03 International Business Machines Corporation Dynamic provisioning in data processing environment
US8893242B2 (en) * 2008-04-29 2014-11-18 Ebay Inc. System and method for pool-based identity generation and use for service access
CN101304410A (zh) * 2008-06-05 2008-11-12 郭丰亮 分布式web的智能信息平台
US8782065B2 (en) * 2008-06-06 2014-07-15 Microsoft Corporation Interfacing an application to data sources via a web service interface
CN101616136B (zh) * 2008-06-26 2013-05-01 阿里巴巴集团控股有限公司 一种提供互联网服务的方法及服务集成平台系统
US9357247B2 (en) 2008-11-24 2016-05-31 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US11076189B2 (en) 2009-03-30 2021-07-27 Time Warner Cable Enterprises Llc Personal media channel apparatus and methods
US9215423B2 (en) 2009-03-30 2015-12-15 Time Warner Cable Enterprises Llc Recommendation engine apparatus and methods
US9602864B2 (en) 2009-06-08 2017-03-21 Time Warner Cable Enterprises Llc Media bridge apparatus and methods
US8555407B2 (en) * 2009-10-09 2013-10-08 Lockheed Martin Corporation On demand visibility services and smart directory
US8396055B2 (en) 2009-10-20 2013-03-12 Time Warner Cable Inc. Methods and apparatus for enabling media functionality in a content-based network
US10264029B2 (en) 2009-10-30 2019-04-16 Time Warner Cable Enterprises Llc Methods and apparatus for packetized content delivery over a content delivery network
US9519728B2 (en) 2009-12-04 2016-12-13 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and optimizing delivery of content in a network
US9342661B2 (en) 2010-03-02 2016-05-17 Time Warner Cable Enterprises Llc Apparatus and methods for rights-managed content and data delivery
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
CN102457555A (zh) * 2010-10-28 2012-05-16 中兴通讯股份有限公司 一种分布式存储的安全系统及方法
CN102546322A (zh) * 2010-12-31 2012-07-04 青岛海尔软件有限公司 数字家庭的Web服务系统
US20120239727A1 (en) * 2011-03-16 2012-09-20 Kddi Corporation Multimedia service network and method for providing the same
JP6047553B2 (ja) 2011-04-11 2016-12-21 インタートラスト テクノロジーズ コーポレイション 情報セキュリティのためのシステムと方法
CN103220259B (zh) * 2012-01-20 2016-06-08 华为技术有限公司 Oauth API的使用、调用方法、设备及系统
US9401904B1 (en) * 2012-03-15 2016-07-26 Motio, Inc. Security migration in a business intelligence environment
US9467723B2 (en) 2012-04-04 2016-10-11 Time Warner Cable Enterprises Llc Apparatus and methods for automated highlight reel creation in a content delivery network
US20140082645A1 (en) 2012-09-14 2014-03-20 Peter Stern Apparatus and methods for providing enhanced or interactive features
JP6066647B2 (ja) * 2012-09-27 2017-01-25 キヤノン株式会社 デバイス装置、その制御方法、およびそのプログラム
US9565472B2 (en) 2012-12-10 2017-02-07 Time Warner Cable Enterprises Llc Apparatus and methods for content transfer protection
GB2509723A (en) * 2013-01-10 2014-07-16 Ibm Invoking web services that are determined at the time of execution
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
CN103391294A (zh) * 2013-07-24 2013-11-13 佳都新太科技股份有限公司 一种基于服务描述的远程方法调用
CN103970214B (zh) * 2014-05-19 2018-05-04 浪潮电子信息产业股份有限公司 一种异构加速刀片式计算机系统架构
US9621940B2 (en) 2014-05-29 2017-04-11 Time Warner Cable Enterprises Llc Apparatus and methods for recording, accessing, and delivering packetized content
US11088807B2 (en) * 2014-05-30 2021-08-10 Apple Inc. Application-level acknowledgements
US10116676B2 (en) 2015-02-13 2018-10-30 Time Warner Cable Enterprises Llc Apparatus and methods for data collection, analysis and service modification based on online activity
US10574750B2 (en) * 2015-04-27 2020-02-25 Microsoft Technology Licensing, Llc Aggregation and federation of distributed service entities and associations
US9225711B1 (en) * 2015-05-14 2015-12-29 Fmr Llc Transferring an authenticated session between security contexts
US10404758B2 (en) 2016-02-26 2019-09-03 Time Warner Cable Enterprises Llc Apparatus and methods for centralized message exchange in a user premises device
US10657478B2 (en) 2016-09-11 2020-05-19 Bank Of America Corporation Aggregated entity resource tool
US10831509B2 (en) 2017-02-23 2020-11-10 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US11947978B2 (en) 2017-02-23 2024-04-02 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
CN108037978A (zh) * 2017-12-22 2018-05-15 天津津航计算技术研究所 一种基于虚拟化技术的计算资源管理方法
US10984078B2 (en) * 2018-07-16 2021-04-20 Vmware, Inc. Systems and methods for improved authentication
US11196837B2 (en) 2019-03-29 2021-12-07 Intel Corporation Technologies for multi-tier prefetching in a context-aware edge gateway
US11388054B2 (en) 2019-04-30 2022-07-12 Intel Corporation Modular I/O configurations for edge computing using disaggregated chiplets
US11245538B2 (en) 2019-09-28 2022-02-08 Intel Corporation Methods and apparatus to aggregate telemetry data in an edge environment
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US142760A (en) * 1873-09-16 Improvement in alloys to resemble silver
US7976A (en) * 1851-03-11 Action
US59526A (en) * 1866-11-06 Improvement in carriages
US184070A (en) * 1876-11-07 Improvement in gage-cocks
US34771A (en) * 1862-03-25 parmenter
US111848A (en) * 1871-02-14 jackson
US4667882A (en) 1981-10-15 1987-05-26 West Point Pepperell, Inc. Device for applying foam to textiles
DE3582232D1 (de) 1984-12-28 1991-04-25 Mackie Donald E Geraet zum spielen eines spiels.
US5715453A (en) * 1996-05-31 1998-02-03 International Business Machines Corporation Web server mechanism for processing function calls for dynamic data queries in a web page
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
JP3410324B2 (ja) 1997-04-30 2003-05-26 日本電信電話株式会社 オーダエントリ情報変換装置およびオーダエントリシステム
US5884317A (en) * 1997-08-20 1999-03-16 Bea Systems, Inc. Service interface repository
US6546488B2 (en) 1997-09-22 2003-04-08 Hughes Electronics Corporation Broadcast delivery of information to a personal computer for local storage and access
AU3106099A (en) 1998-03-27 1999-10-18 Infoimage Incorporated Methods and apparatus for network applications using object tools
US6564251B2 (en) * 1998-12-03 2003-05-13 Microsoft Corporation Scalable computing system for presenting customized aggregation of information
US6738964B1 (en) * 1999-03-11 2004-05-18 Texas Instruments Incorporated Graphical development system and method
US6792605B1 (en) 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
US6560633B1 (en) * 1999-06-10 2003-05-06 Bow Street Software, Inc. Method for creating network services by transforming an XML runtime model in response to an iterative input process
US6516349B1 (en) * 1999-09-07 2003-02-04 Sun Microsystems, Inc. System for updating a set of instantiated content providers based on changes in content provider directory without interruption of a network information services
US6839680B1 (en) * 1999-09-30 2005-01-04 Fujitsu Limited Internet profiling
US7441232B2 (en) 1999-11-08 2008-10-21 British Telecommunications Public Limited Company Task management
US6851088B1 (en) * 1999-12-07 2005-02-01 International Business Machines Corporation Conditional highlighting of given cells in a dynamic HTML table
EP1117220A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Method and system for protocol conversion
JP3711866B2 (ja) 2000-04-10 2005-11-02 日本電気株式会社 プラグアンドプレイ機能を有するフレームワークおよびその再構成方法
US6857008B1 (en) * 2000-04-19 2005-02-15 Cisco Technology, Inc. Arrangement for accessing an IP-based messaging server by telephone for management of stored messages
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
EP1285354B1 (en) 2000-05-09 2004-03-03 Sun Microsystems, Inc. Method and apparatus for proximity discovery of services
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
AU2001281253A1 (en) * 2000-08-11 2002-02-25 Manugistics, Inc. System and method for integrating disparate networks for use in electronic communication and commerce
FR2813471B1 (fr) * 2000-08-31 2002-12-20 Schneider Automation Systeme de communication d'un equipement d'automatisme base sur le protocole soap
US7728838B2 (en) * 2000-09-15 2010-06-01 Invensys Systems, Inc. Method and system for animating graphical user interface elements via a manufacturing/process control portal server
US20020065946A1 (en) * 2000-10-17 2002-05-30 Shankar Narayan Synchronized computing with internet widgets
US6681221B1 (en) * 2000-10-18 2004-01-20 Docent, Inc. Method and system for achieving directed acyclic graph (DAG) representations of data in XML
US6829630B1 (en) * 2000-11-24 2004-12-07 Xerox Corporation Mechanisms for web-object event/state-driven communication between networked devices
US20020111848A1 (en) 2001-02-12 2002-08-15 White Craig R. Aggregation of services on network portals
US7283811B2 (en) 2001-02-23 2007-10-16 Lucent Technologies Inc. System and method for aggregation of user applications for limited-resource devices
US7236939B2 (en) 2001-03-31 2007-06-26 Hewlett-Packard Development Company, L.P. Peer-to-peer inter-enterprise collaborative process management method and system
US20020158899A1 (en) * 2001-04-30 2002-10-31 Robert Raymond Portal system and method for managing resources in a networked computing environment
US20020198973A1 (en) * 2001-04-30 2002-12-26 Besaw Lawrence M. System for dynamic customer filtering of management information presented through a web-based portal
US20030005090A1 (en) * 2001-06-30 2003-01-02 Sullivan Robert R. System and method for integrating network services
US7017162B2 (en) * 2001-07-10 2006-03-21 Microsoft Corporation Application program interface for network software platform
US6920461B2 (en) * 2001-07-10 2005-07-19 Microsoft Corp. Application program interface for network software platform

Also Published As

Publication number Publication date
DE60218069T2 (de) 2007-08-09
AU2002347391A1 (en) 2003-07-30
DE60218069D1 (de) 2007-03-22
EP1483671A2 (en) 2004-12-08
WO2003060710A3 (en) 2004-05-06
CN1608248A (zh) 2005-04-20
JP2005515540A (ja) 2005-05-26
EP1483671B1 (en) 2007-02-07
IL162438A0 (en) 2005-11-20
ATE353453T1 (de) 2007-02-15
KR100600959B1 (ko) 2006-07-13
US7603469B2 (en) 2009-10-13
JP4594621B2 (ja) 2010-12-08
US20030135628A1 (en) 2003-07-17
CN1291318C (zh) 2006-12-20
KR20040068106A (ko) 2004-07-30
WO2003060710A2 (en) 2003-07-24
AU2002347391A8 (en) 2003-07-30

Similar Documents

Publication Publication Date Title
ES2278066T3 (es) Ofrecimiento de servicios agregados en un entorno informatico distribuido.
US7346923B2 (en) Federated identity management within a distributed portal server
US8484699B2 (en) Context-sensitive confidentiality within federated environments
US8135668B2 (en) Service composition environment
US20030163513A1 (en) Providing role-based views from business web portals
Hirsch et al. Mobile web services: architecture and implementation
JP2013538380A (ja) 第三者のセキュア・サービスを集約するワークフローのためのセキュリティ・モデルのための方法、システム、およびコンピュータ・プログラム
US20060074703A1 (en) Providing and managing business processes
González et al. A service-oriented integration platform to support a joined-up e-government approach: The uruguayan experience
Jayakumar et al. Suitable QoS parameters survey for standard web services & web applications to understand their cloud deployability
Bhandari et al. Generalized framework for secure web service composition
Pennington Introduction to web services
Fujita Dynamic Collaboration of Businesses using Web Services
Fernandez et al. Web services security
Chen Research and implementation on enterprise application integration platform
Opincaru Service oriented security architecture applied to spatial data infrastructures
Fensel et al. Web services
Hillenbrand et al. Web services and peer-to-peer
Tzima et al. Web Services Technology: An Overview
Pather A framework for promoting interoperability in a global electronic market-space
Cunningham et al. Network-centric architecture to enable secure communications and discovery
Uttamsingh Dynamic Intelligent Business Process Management (BPM)“A Web Services & AI Perspective”
Hasmy Security issues in web services: a review approach with process and applications of multi–part multi-signature document
Pettenati et al. An overlay infrastructural approach for a web-wide trustworthy identity and profile management
Kim Mini-SOA/ESB design guidelines and simulation for wireless sensor networks