ES2227692T3 - Provision de enlaces de comunicaciones en una red de ordenadores. - Google Patents

Provision de enlaces de comunicaciones en una red de ordenadores.

Info

Publication number
ES2227692T3
ES2227692T3 ES97923216T ES97923216T ES2227692T3 ES 2227692 T3 ES2227692 T3 ES 2227692T3 ES 97923216 T ES97923216 T ES 97923216T ES 97923216 T ES97923216 T ES 97923216T ES 2227692 T3 ES2227692 T3 ES 2227692T3
Authority
ES
Spain
Prior art keywords
response
session
program
client
request
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
ES97923216T
Other languages
English (en)
Inventor
Peter David Niblett
Karen Louise Randell
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 ES2227692T3 publication Critical patent/ES2227692T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/08Protocols for interworking; Protocol conversion
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

Se facilita una entrada para enlazar entre diferentes modelos de comunicación. La entrada que se puede implementar en un programa de ordenador instalable en un sistema servidor facilita la interoperación entre programas de ordenador que requieren sesiones de comunicaciones síncronas y programas de ordenador basados en un modelo asíncrono de comunicación. La invención habilita a un cliente conectado síncronamente a visitar de nuevo las interacciones con un servidor y comunicar programas asíncronamente, para intercalar las interacciones con más de una aplicación, y asociar juntos los pares petición-respuesta de una aplicación de ejecución larga. En particular, la invención proporciona el aparato y los procedimientos que habilitan el enlace entre el servicio WWW de Internet y un sistema de mensajería de propósito general.

Description

Provisión de enlaces de comunicaciones en una red de ordenadores.
Campo de la invención
La presente invención se refiere al enlace entre sí de recursos de comunicaciones de datos y/o proceso de datos en una red y en particular a proporcionar enlaces entre diferentes entornos de comunicaciones.
Antecedentes
Una "red" de ordenadores puede ser cualquier número de ordenadores que son capaces de intercambiar información entre sí. Los ordenadores pueden estar dispuestos en cualquier configuración y pueden estar situados en la misma sala o en diferentes países, siempre que exista algún modo de conectarlos entre sí (por ejemplo mediante líneas telefónicas u otros sistemas de comunicación) de tal manera que puedan intercambiar información. Al igual que los ordenadores pueden ser conectados entre sí para formar redes, también se pueden conectar la redes entre sí mediante herramientas conocidas por puentes y pasarelas. Estas herramientas permiten a un ordenador de una red intercambiar información con un ordenador de otra red. Internet es una red de redes que no tiene un propietario único o controlador y que incluye redes grandes y pequeñas, públicas y privadas, y en la cual cualquier ordenador conectado dotado del software de Protocolo Internet, sujeto a controles de seguridad, es capaz de intercambiar información con cualquier otro ordenador que esté también conectado a Internet. Esta colección compuesta de redes que han acordado conectarse entre sí no descansa en un único medio de transmisión (por ejemplo, puede producirse comunicación bidireccional mediante enlaces por satélite, líneas troncales de fibra óptica, líneas telefónicas, cables de TV y enlaces por radio locales).
El servicio de Internet por la Red de Ámbito Mundial (World Wide Web, WWW) es una instalación de recuperación de información de área amplia que proporciona acceso a una enorme cantidad de información accesible en la red y que puede proporcionar comunicaciones a bajo costo entre ordenadores conectados a Internet, Se puede encontrar información sobre la red de ámbito mundial en "Spinning the web" ("Tejiendo la red") de Andrew Ford (International Thomson Publishing, Londres, 1995) y "The World Wide Web Unleashed" ("La Red de Ámbito Mundial Desatada") de John December y Neil Randall (SAMS Publishing, Indianápolis, 1994). El uso de la WWW está creciendo a una tasa explosiva debido a su combinación de flexibilidad, portabilidad y facilidad de uso, acopladas a capacidades de presentación multimedia interactivas. La WWW permite a cualquier ordenador conectado a Internet y que tenga el software y la configuración de hardware apropiados recuperar cualquier documento que haya sido hecho disponible en cualquier punto de Internet. Los documentos recuperables en la WWW incluyen documentos de "hipermedios", es decir, documentos que pueden ser documentos de texto u otras formas de medios tales como sonido e imágenes y que pueden tener enlaces ("hiperenlaces") a otros documentos. El formato de los documentos de texto en la WWW es un formato normalizado en HTLM (HyperText Markup Language, Lenguaje de Marcado de Hipertexto), de tal manera que un documento creado en un sistema operativo y una plataforma de hardware puede estar listo para un usuario sobre cualquier otra plataforma que tenga un Navegador de Red (véase a continuación). Se pueden guardar imágenes en archivos de gráficos separados, por ejemplo en formato normal GIF o JPEG, y hacer referencia a ellas en el texto HRML de tal modo que el usuario sea impulsado a recuperar los archivos de imagen especificados así como el texto HTML.
Los usuarios acceden a esta información utilizando un "navegador de red" o un "cliente de red" que es un software instalado en el ordenador del usuario y que tiene dispositivos para servir o recuperar documentos de un Servidor de Red a través de Internet. Los Navegadores de Red disponibles actualmente incluyen el WebExplorer de IBM Corporation y el Mosaic de MSCA. Tales navegadores incluyen directorios y herramientas de búsqueda y entienden el HTML y otros formatos normalizados WWW y pueden presentar o exponer archivos correctamente en estos formatos. La interfaz de usuario de estos Navegadores de Red es una interfaz gráfica de "apuntar y hacer clic" (es decir, se pueden seleccionar objetos moviendo un cursor a través de una presentación gráfica y apretar entonces un botón del ratón). La WWW está estructurada en páginas o archivos cada uno de los cuales tiene un Localizador de Recursos Universal (o URL). El URL indica tanto la máquina del servidor como el archivo o página concreta en esa máquina. El usuario puede especificar un URL particular o saltar de un URL a otros URL asociados por medio de "hiperenlaces", es decir, una palabra o símbolo en una página que se puede asociar con otro URL que sea seleccionable, por ejemplo, haciendo clic con el ratón en el emplazamiento correspondiente, para hacer que el Navegador recupere y presente la página en cuestión. En un único servidor puede haber muchas páginas residentes, y las páginas asociadas mediante hiperenlaces pueden estar situadas en diferentes servidores. Si el URL empieza por "http", esto indica que el archivo contiene hiperenlaces.
Cuando un usuario selecciona un URL para una página en un sistema de servidor de red usando su Navegador de Red, se envía una solicitud de disparo único al servidor relevante que realiza una acción específica en esa página. En muchos casos, el servidor responde a la solicitud recuperando la página solicitada de una base de datos de páginas guardadas y transmitiendo de vuelta la página HTML por Internet al cliente WWW para presentación al usuario. Esto se realiza dentro del objeto de una sesión de comunicación síncrona de extremo a extremo único. Esto es, el Navegador envía su solicitud y espera a continuación una respuesta antes de proceder a cualquier proceso adicional o a iniciar otras solicitudes. Se dice que el Navegador ha quedado "bloqueado" o "colgado" mientras espera la respuesta solicitada. En algunos casos, la solicitud del Navegador puede llevar al servidor que lanza una solicitud a generar el HTML, pero nuevamente la solicitud de disparo único del Navegador requiere una respuesta dentro del objeto de la presente sesión de comunicaciones síncrona puesto que el Navegador no proporciona sesiones de comunicación concurrentes y no se mantiene información sobre el estado de la aplicación entre solicitudes. Un fallo en acceder a una página solicitada por un Navegador puede ser señalizado de vuelta al usuario por medio de un mensaje de error presentado en la terminal del usuario, pero si el servidor es simplemente lento para responder, entonces el Navegador permanece colgado por un periodo indefinido. En la práctica, un usuario puede abandonar el intento de comunicación, si el retraso es inaceptable para ellos. No existe dispositivo dentro de los Navegadores de Red para reintentar automáticamente una solicitud.
Las empresas modernas requieren instalaciones de comunicaciones con otros departamentos de la misma empresa y con empresas asociadas tales como clientes y proveedores, que pueden estar en un país diferente. El servicio de Internet WWW puede proporcionar una respuesta parcial a una exigencia de este tipo, proporcionando un medio de comunicación efectivo en costo para las comunicaciones entre empresas, pero el modelo de comunicación de solicitud respuesta de disparo único del servicio de Internet WWW y la falta de disposición para solicitudes paralelas de un Navegador puede representar limitaciones severas si la información solicitada no se encuentra disponible al cabo de un periodo aceptable de tiempo. A menudo no es aceptable para un sistema remitente estar colgado indefinidamente y es inaceptable para el éxito de aplicaciones críticas de negocios depender de si una aplicación del servidor responde a una solicitud a tiempo. El servicio de Internet WWW no proporciona dispositivos para la entrega asegurada de mensajes, lo cual constituye un requisito en muchas aplicaciones críticas de negocios (es decir, la aplicación necesita saber que un mensaje que ha enviado no se perderá en su camino al destino objetivo, y que sólo se enviará una vez). También, las aplicaciones de negocios pueden implicar una conversación que implique muchos pares de solicitud-respuesta y la falta de cualquier información de contexto que se transporte ente las solicitudes del Navegador de Red significa que no hay disposición para relacionar entre sí solicitudes que forman parte de la misma aplicación de negocios.
Como modelo de comunicación alternativo al modelo de "solicitud y esperar respuesta" síncrono, dependiente del tiempo, se encuentra la mensajería asíncrona. Un programa que envía un mensaje a un programa receptor no necesita estar bloqueado esperando una respuesta del receptor y así puede continuar ejecutando, y el remitente y el receptor no están sincronizados (serializados) entre sí. La mensajería asíncrona entre programas usa típicamente colas de mensajes como dispositivos de almacenamiento intermedio en los cuales se colocan los mensajes cuando se envían desde un primer programa y desde los cuales se recuperan por un programa receptor cuando está listo. No existe una conexión lógica dedicada entre los programas. Después de colocar un mensaje en una cola, el programa remitente puede proceder a ejecutar otras tareas que pueden implicar enviar mensajes a otros programas de la red. Se conoce en la técnica como proporcionar sistemas de mensajería asíncrona que den soporte a la comunicación entre programas a través de redes heterogéneas, y que protegen los programas de aplicación (cada uno de los cuales está escrito para un entorno particular de sistema operativo) de las complejidades de la red y del trabajo de mantener y localizar las colas de mensajes.
Estos sistemas de mensajería son importantes para muchas empresas comerciales que necesitan lograr una interoperación efectiva entre sus diversos programas de aplicaciones de negocios, pero cuyos recursos de proceso de datos comprenden un rango de sistemas operativos y de entornos de hardware dispares.
El establecimiento de colas de mensajes y los productos de colas de mensajes disponibles comercialmente se describen en "Messaging and Queuing Using the MQI" ("Mensajes y Establecimiento de Colas usando MQI"), de B. Blakeley, H. Harris y R. Lewis, McGraw-Hill, 1994 y en las siguientes publicaciones disponibles en IBM Corporation "An Introduction to Messaging and Queuing" ("Una introducción a los mensajes y establecimiento de colas") (Número de Documento IBM GC33-0850-00) y ``MQSeries - "Message Queuing Interface Technical Reference" ("MQSeries - Referencia Técnica de Interfaz de Cola de Mensajes") (Número de Documento IBM SC33-0850-01). IBM y MQSeries son marcas registradas de IBM Corporation. Los productos de software de mensajes MQSeries de IBM proporcionan soporte transaccional de mensajes, sincronizando mensajes dentro de unidades lógicas de trabajo de acuerdo con un protocolo de mensajería que da entrega de mensajes asegurada y efectuada una única vez aun en el caso de fallos en el sistema o en las comunicaciones. Los productos MQSeries proporcionan entrega asegurada no borrando finalmente un mensaje de la memoria en un sistema remitente hasta que se ha confirmado como guardado con seguridad por un sistema receptor, y por el uso de dispositivos de recuperación sofisticados. Antes del compromiso de transferencia del mensaje a la confirmación de una almacenamiento con éxito, tanto el borrado del mensaje en el sistema remitente como la inserción en la memoria del sistema receptor se mantienen "en duda" y pueden ser retirados atómicamente en el caso de un fallo. Este protocolo de transmisión de mensajes y los conceptos transaccionales y dispositivos de recuperación asociados se describen en la solicitud de patente internacional WO 95/10805 y en la patente de los EEUU 5465328.
Se desea aportar los beneficios del procesamiento asíncrono (fuera de línea) a los recursos informáticos que están adaptados a la comunicación síncrona, tales como sistemas de cliente del Servicio de Internet WWW y generalmente permitir la interoperación entre recursos basados en un modelo asíncrono de comunicaciones y recursos basados en un modelo síncrono, preferiblemente sin exigir cambios importantes a los recursos síncronos existentes. También se desea facilitar el seguimiento del progreso de los mensajes asíncronos desde un sistema de cliente conectado en forma síncrona. La patente de los EEUU 5329619 muestra un agente prestador de servicio que permite el tratamiento tanto asíncrono como síncrono de solicitudes de servicio de clientes y servidores.
Adicionalmente al enlace de sus recursos informáticos a Internet, las empresas están encontrando también que las normas de Internet (el Protocolo de Internet, el uso de HTML, etc.) se desarrollan ventajosamente dentro de una "Intranet", es decir, dentro de una red de ordenadores dentro de una empresa concreta, cuya red se adhiere a las normas de Internet. Se dispone actualmente de software de navegador para su uso dentro de intranets.
Los requisitos anteriores constituyen ejemplos de la exigencia de muchos usuarios de recursos de proceso de datos de interoperatividad entre sus diferentes recursos, con independencia de si están adaptados a diferentes entornos o basados en diferentes modelos o arquitecturas de comunicación. Se exige cada vez más que programas de aplicación escritos para diferentes sistemas operativos o basados en diferentes modelos de comunicación o paradigmas, y ordenadores y otros sistemas de comunicación que usan protocolos de comunicación, formatos de datos, lenguajes o modos de comunicación diferentes operen entre sí sin solución de continuidad y sin conocimiento por parte del usuario final de las complejidades de la interacción. La presente invención sirve para solucionar ciertas incompatibilidades inherentes aparentes entre los recursos para los cuales se desea la interoperación, proporcionando un enlace entre los diferentes recursos.
Resumen de la invención
Según un primer aspecto de la invención, se proporciona un sistema de servidor de comunicaciones de datos para una red de comunicaciones en el que el sistema de servidor tiene dispositivos para dar soporte a la comunicación síncrona entre el sistema de servidor y un sistema de cliente de la red y en el que el sistema de servidor tiene también dispositivos para dar soporte a la comunicación síncrona con programas en el sistema de servidor o en otro sistema de la red, incluyendo dicho sistema de servidor: medios, que responden a una solicitud del sistema de cliente dentro de una sesión de comunicación síncrona entre el sistema de cliente y el sistema de servidor, para enviar una solicitud a un programa del sistema de servidor o de otro sistema de la red como una comunicación asíncrona, incluyendo la solicitud asíncrona un identificador de sesión asignado por el sistema de servidor; medios para iniciar un temporizador, en respuesta a dicha solicitud del sistema de cliente; medios, que responden a la recepción de una respuesta a una comunicación asíncrona para asociar dicha respuesta con dicha solicitud del sistema de cliente, usando el identificador de sesión, para permitir enviar una respuesta al sistema de cliente; medios, que responden a la respuesta del programa a la comunicación asíncrona, incluyendo la información sobre el estado de la sesión, que permiten la serialización de interacciones, para incluir información sobre el estado de la sesión dentro de dicha respuesta enviada al sistema de cliente; medios para generar una respuesta preliminar antes de la recepción de una respuesta a dicha comunicación asíncrona, incluyendo dicha respuesta preliminar el identificador de sesión; y medios para enviar dicha respuesta preliminar a dicho sistema de cliente dentro de dicha sesión de comunicación síncrona si expira un periodo de tiempo preestablecido antes de que se reciba una respuesta a dicha solicitud asíncrona por el sistema de servidor.
Así, un sistema de acuerdo con la presente invención tiene medios para enviar al menos una respuesta preliminar al cliente dentro de la sesión de comunicación síncrona, aun cuando no se haya recibido todavía una respuesta a la solicitud asíncrona.
Un segundo aspecto de la invención proporciona un método de comunicación interprograma, entre un programa de cliente y un programa de servidor u otro sistema de la red que use los dispositivos de un sistema de servidor como el anteriormente descrito.
De esta forma, el sistema y el método según la invención dan soporte a la serialización de interacciones entre un sistema de cliente y un programa de aplicación. Se puede desarrollar esto por medio de información sobre el estado de la sesión (tal como un número de secuencia que identifica la interacción dentro de la conversación presente), el cual es incluido en los mensajes desde el programa de aplicación que se pasan de vuelta al cliente. Una aplicación que requiere una entrada adicional del sistema de cliente indicará esto por medio de la información sobre el estado de la sesión en sus respuestas, siendo identificable esta información a uno o a ambos sistemas de servidor y de cliente. Por medio del identificador de sesión y de la información sobre el estado de la sesión es posible tanto identificar pares de solicitud-respuesta de una aplicación particular que pueden implicar varias interacciones de usuario sucesivas como asegurar el ordenamiento secuencial correcto de las comunicaciones dentro de una sesión.
La invención permite que un proceso en el sistema de cliente se comunique con el programa de comunicación en forma asíncrona aun cuando el proceso del cliente requiera una sesión síncrona dedicada para la comunicación entre programas. El programa del sistema de servidor o de otros sistemas de la red pueden ser un programa de aplicación adaptado a recibir y enviar mensajes asíncronos sin sesión de comunicación dedicada. También, las respuestas preliminares que se envían al sistema de cliente dentro de la sesión síncrona inicial proporcionan un medio para confirmar que el sistema de servidor ha recibido la solicitud. Si el sistema de servidor es parte de una red de servidores que proporcionan una entrega asegurada de los mensajes entre ellos pero el sistema de cliente conectado en forma síncrona no da soporte a la entrega asegurada para el salto de comunicación entre el cliente y el servidor conectado, entonces puede ser altamente deseable proporcionar un seguimiento sobre si una solicitud ha alcanzado con éxito el servidor- es decir, dar seguimiento a las comunicaciones a través del enlace no asegurado de la ruta de comunicaciones.
Las "respuestas preliminares" se envían preferiblemente sólo cuando no se dispone de una "respuesta plena" para enviar al sistema de cliente dentro de un periodo de tiempo preestablecido (por ejemplo, dentro de un periodo de tiempo como el definido por un administrador del sistema). Esto es, si no se ha recibido todavía una respuesta desde un programa de aplicación que se comunica en forma asíncrona cuando expira el período de tiempo preestablecido, de tal modo que el servidor no es capaz todavía de proporcionar la respuesta plena solicitada, entonces se desencadena un proceso en el sistema de servidor para enviar una respuesta preliminar al sistema de cliente. La respuesta preliminar incluye preferiblemente un identificador de sesión asignado por el sistema de servidor y único dentro del sistema de servidor.
La inclusión del identificador de sesión en las respuestas preliminares a un sistema de cliente permite al sistema de cliente (o a un usuario final que trabaje en el sistema de cliente) que no recibió una respuesta plena esperada desde un programa de aplicación u otro programa de comunicación de forma asíncrona antes del transcurso de un tiempo, entrar en contacto de nuevo con el servidor más tarde usando el identificador de sesión, y así determinar si se encuentra todavía disponible una respuesta asociada con dicho identificador de sesión. El cliente que ha recibido una respuesta preliminar puede ser capaz, de este modo, de acometer otras tareas de proceso y volver a visitar la interacción con el servidor en un momento posterior, usando el identificador de sesión. Esto evita el problema, que surge en caso contrario, de que un proceso de cliente conectado en forma síncrona debe permanecer bloqueado (por un periodo indeterminado de tiempo) a la espera de una respuesta o abandonar la aplicación si no se dispone de una respuesta con suficiente rapidez.
Según una realización preferida de la invención, las comunicaciones enviadas a un sistema de cliente en respuesta a la expiración del temporizador facilitan una decisión por parte de un proceso o usuario en el sistema de cliente respecto a si debería permanecer colgado en el sistema de cliente el proceso conectado en forma síncrona (es decir, manteniendo la sesión presente) o si se debería abandonar la sesión. Si se abandona la sesión, el proceso de cliente puede volver a visitar interacciones anteriores por medio del identificador de sesión: el identificador de sesión que se envió al sistema de cliente puede ser incluido en una solicitud subsiguiente enviada al sistema de servidor de manera tal que el servidor es capaz de identificar cualesquiera respuestas disponibles a solicitudes anteriores que tuvieran el mismo identificador de sesión. De esta forma, después de un periodo límite, un cliente que solicita sesiones de comunicación dedicadas está habilitado para decidir si mantiene su conexión síncrona con el servidor o cambia a la que es en efecto comunicación asíncrona con el servidor usando sesiones síncronas asociadas, o simplemente abandonar la comunicación definitivamente. El cliente es dotado de esta forma de opciones distintas de las de permanecer colgado indefinidamente o abandonar la aplicación.
Al igual que permitir a un cliente volver a visitar interacciones anteriores, proporcionar a un cliente un identificador de sesión para una interacción determinada facilita al cliente asociar entre si cierto número de pares de solicitud-respuesta de una conversación, aunque el proceso de comunicación en el sistema de cliente se base en un modelo de solicitud-respuesta de disparo único. También ayuda a solucionar el problema de posible fallo de enlace entre cliente y servidor mientras el cliente espera una respuesta. También permite a un proceso de cliente o usuario intercalar interacciones con varias aplicaciones diferentes proporcionando un medio de distinguir entre ellas, y permite a más de un usuario acceder a la misma aplicación al mismo tiempo. Se pueden guardar automáticamente los identificadores de sesión por el sistema de cliente al recibir una respuesta preliminar, para uso subsiguiente como se describió anteriormente.
Los términos "cliente" y "servidor" se usan en lo anterior meramente para distinguir entre los papeles cumplidos en una interacción particular, es decir, el cliente emite una solicitud y el servidor realiza una acción en respuesta a la solicitud. El término "cliente-servidor" se usa con frecuencia en el campo del proceso de datos para referirse a un entorno en el cual un cliente (por ejemplo, un puesto de trabajo) proporciona sólo funciones para la interacción del usuario final, mientras que un servidor (por ejemplo, un ordenador principal) proporciona memoria de datos y acceso y desarrolla un procesamiento complejo. La presente invención es aplicable a entornos "cliente-servidor" de ese tipo y también a entornos paritarios en los cuales no existe tal distinción entre las funciones prestadas por los sistemas que se comunican. La invención es particularmente valiosa en situaciones en las cuales un programa de ordenador en un primer sistema está adaptada específicamente a la comunicación síncrona y se desea que el programa se comunique con un programa de aplicación adaptada a la comunicación asíncrona entre programas que está corriendo en un sistema diferente, como en los casos en que se desea que un Navegador de Red interactúe con un programa de aplicación asíncrona vía un sistema de cola de mensajes.
Según una realización preferida de la invención, si el servidor recibe una respuesta a su solicitud asíncrona antes de que expire el periodo de tiempo preestablecido, entonces incluirá información de la respuesta recibida dentro de su respuesta al sistema de cliente que envía dentro de la sesión síncrona. Así, la naturaleza asíncrona de la comunicación con el programa de aplicación se puede hacer invisible al cliente si está disponible una respuesta del programa de aplicación de manera suficientemente rápida, enviándosele entonces al cliente una respuesta plena dentro de la sesión síncrona.
Una realización alternativa de la invención evita el bloqueo de un proceso de cliente devolviendo al sistema de cliente una confirmación preliminar de recepción de la solicitud del cliente sin esperar a que expire el temporizador. La confirmación de recepción incluye un identificador de sesión (por ejemplo, un número único de referencia) asignado por un proceso en el sistema de servidor. En este caso, el cliente puede proceder con otras tareas tan pronto como haya recibido su confirmación sin estar colgado esperando una respuesta plena o la expiración de un temporizador. Cuando se recibe subsiguientemente una respuesta del programa de aplicación, se coloca en la memoria del servidor y se mantiene hasta el momento en el que el cliente manda una comunicación posterior al servidor que hace referencia al identificador de sesión asignado. El servidor correlaciona el identificador de sesión de la respuesta guardada y la nueva solicitud y entonces envía la respuesta almacenada al cliente.
También está dentro del objeto de la presente invención, como se define en las reivindicaciones anexas, hacer el tipo de respuesta a una solicitud de un cliente dependiente de la naturaleza de la solicitud. Algunas solicitudes, tales como un pedido de mercancías, pueden requerir una confirmación inmediata de recibo con un número de pedido asignado que minimice el tiempo durante el cual el proceso del cliente está suspendido. Otras solicitudes, tales como una consulta sobre un saldo bancario, pueden no requerir una confirmación de recepción de la solicitud antes de proporcionar la información solicitada, puesto que tal información se requiere a menudo sólo si está rápidamente disponible; en tal ejemplo, es apropiado que el cliente espere una respuesta plena durante un cierto periodo. Esta determinación sobre enviar o no una confirmación inmediata se desarrolla preferiblemente proporcionando a un usuario final medios para indicar un deseo de confirmación, tal como disponiendo un campo opcional o parámetro dentro de un formato de solicitud, y medios para responder a entradas en este campo.
Los identificadores de sesión son asociados preferiblemente a solicitudes de un sistema de cliente por un proceso en el sistema de servidor, que inserta el identificador de sesión en la solicitud asíncrona que envía a un programa de aplicación. La solicitud del servidor asíncrono incluye por tanto información de la solicitud de cliente inicial y el identificador asignado. Cuando el sistema de servidor subsiguientemente recibe una respuesta del programa de aplicación cuya respuesta incluye este identificador de sesión, el servidor asocia esta respuesta con la solicitud del sistema de cliente y envía al sistema de cliente una respuesta que incluye el identificador de sesión. Obsérvese aquí que el servidor puede estar asignando un identificador de sesión a una interacción con un proceso de cliente que no da soporte por sí mismo a sesiones concurrentes múltiples. El intercambio de un identificador de sesión, y el uso de dispositivos de memoria del sistema de cliente para guardar los identificadores de sesión que se devuelven al mismo, permite que se usen estos identificadores para distinguir entre sesiones concurrentes. Se da capacidad al cliente para intercalar interacciones con una pluralidad de aplicaciones diferentes puesto que tiene un medio para distinguir entre ellas, y se da capacidad al servidor para asociar fácilmente respuestas a los mensajes asíncronos con las solicitudes respectivas. Tal disposición para procesamiento concurrente o paralelo de aplicaciones puede aumentar significativamente la eficiencia del negocio.
La invención faculta a recursos de comunicaciones que están diseñados para comunicaciones síncronas de un solo disparo para interactuar con recursos que utilizan la comunicación asíncrona.
Se incluyen preferiblemente identificadores de sesión tanto en las comunicaciones que se envían a un cliente después de la expiración de un temporizador como en las respuestas que se envían a un cliente desde una aplicación que está esperando interacción adicional con el cliente. Según una realización, existe una determinación en el sistema de servidor sobre incluir información de identificación de sesión en las respuestas, respondiendo preferentemente el proceso de determinación a la información sobre el estado de la sesión enviada desde un programa de aplicación que comunica y respondiendo ala expiración de un temporizador. Si no se espera aportación posterior del cliente (es decir, de un usuario final o proceso en el sistema de cliente), entonces el sistema de servidor suelta cualesquiera recursos específicos de sesión cuando pasa una respuesta al cliente y no se requiere identificador de sesión alguno.
Este proceso de determinación puede resultar deseable a la vista de los problemas potenciales asociados a las sesiones que se mantienen por un periodo de tiempo más largo de lo que es necesario. En primer lugar, mantener las sesiones usa recursos del sistema de servidor. En segundo lugar, devolver la información de identificador en la última de una secuencia de interacciones de solicitud-respuesta podría traer consigo que la información permaneciera en la memoria del sistema de cliente indefinidamente. Esto puede constituir un riesgo de seguridad además de usar recursos del cliente. Si se devuelve siempre la información de identificador al sistema de cliente, (es decir, el proceso de determinación al que se ha hecho referencia anteriormente no se lleva a la práctica), entonces los problemas antes mencionados se tratan borrando la información de estado del sistema de cliente después de un periodo de tiempo apropiado.
Una realización preferida de la invención proporciona un sistema de comunicaciones de datos en el cual el sistema de servidor tiene instalado en el mismo software de Servidor de Internet World Wide Web (Red de Ámbito Mundial) (WWW) y el sistema de cliente tiene instalado en el mismo software de Navegador WWW para presentar solicitudes a los sistemas de servidor conectados a Internet. El sistema de servidor tiene también dispositivos para dar soporte a una comunicación de mensajes asíncrona entre programas de aplicación. Cuando el programa servidor recibe solicitudes HTML de dicha terminal de cliente WWW (dentro de una sesión de comunicación síncrona) que requiere interacción con un programa de aplicación que está diseñado para comunicaciones asíncronas, un proceso en el sistema de servidor envía la solicitud al programa de aplicación como un mensaje enviado a la cola de entrada del programa de aplicación. Si el programa de aplicación no puede interpretar el HTML, entonces el proceso en el servidor convierte también la solicitud HTLM recibida en un formato de mensaje reconocible para el programa de aplicación y envía a continuación el mensaje convertido. Respondiendo a la recepción de un mensaje de respuesta del programa de aplicación antes de la expiración de un periodo de tiempo preestablecido, el proceso del sistema de servidor convierte de nuevo el mensaje de respuesta a HTML (si es necesario) y envía las páginas HTML creadas como respuesta al terminal del cliente. Desde la perspectiva del cliente WWW, si se dispone de la respuesta antes de que expire un periodo límite, entonces la respuesta está dentro de la sesión de comunicación síncrona original.
El sistema de servidor incluye medios para insertar información de identificador de sesión dentro de las páginas HTML que se incluyen en las respuestas enviadas a dicho sistema de cliente. El sistema de servidor preferiblemente incluye también medios, que responden a la información sobre el estado de la sesión incluida en la respuesta del programa de aplicación a la solicitud asíncrona, para incluir dentro de las páginas HTML uno o más formatos HTML para que los rellene un usuario final, teniendo estos formatos el identificador de sesión insertado en los mismos. También se puede insertar la información sobre el estado de la sesión dentro de las páginas HTML.
El servidor responde a la expiración del periodo de tiempo antes de recibir un mensaje de respuesta del programa de aplicación enviando una comunicación (es decir, una página de HTML) a la terminal del cliente WWW. Esta comunicación incluye un identificador de sesión y preferiblemente un identificador del estado de la sesión. La comunicación devuelta al cliente termina su sesión HTTP síncrona y el cliente WWW ya no está colgado más tiempo, aunque la "sesión" de comunicación a más largo plazo del cliente con la pasarela sigue existiendo lógicamente puesto que se retiene información que permite volver a visitar la interacción entre el cliente WWW y el programa de la pasarela. Un usuario final puede determinar si volver a entrar o no en el estado colgado por un periodo adicional y volver a iniciar una nueva sesión síncrona. La información del identificador y estado de la sesión se guarda en la memoria intermedia del sistema del cliente WWW, usando el dispositivo de los clientes WWW para memorizar páginas WWW. El cliente WWW puede usar esta información memorizada para volver a visitar la interacción anterior - a fin de comprobar en algún momento posterior si se encuentra disponible en el servidor un mensaje de respuesta del programa de aplicación. Incluyendo la información del identificador y del estado de la sesión en las solicitudes subsiguientes al servidor que estén asociadas con la sesión original, el cliente permite al servidor distinguir entre sesiones diferentes y entre solicitudes diferentes que forman parte de la misma aplicación.
La realización de la invención descrita anteriormente proporciona la conversión de un formato de mensaje HTML a otro no HTML, de acuerdo con técnicas conocidas. En los casos en que la aplicación a invocar sea capaz de interpretar el HTML, obviamente no se requiere tal conversión.
Así, la presente invención en una realización preferida proporciona un enlace entre el entorno síncrono de la WWW y el entorno asíncrono de los sistemas de mensajes. Esta invención es igualmente aplicable al uso de software de Navegador para la comunicación con los programas de aplicación por medio de un sistema de servidor de una intranet.
Descripción de realizaciones preferidas
A continuación se describirá la presente invención con más detalle, a título de ejemplo, haciendo referencia a los dibujos anexos, en los cuales:
la Figura 1 es una representación esquemática de la comunicación entre sistemas de cliente y de servidor a través de Internet;
la Figura 2 es una representación esquemática de la comunicación entre programas usando mensajería asíncrona y establecimiento de colas;
la Figura 3 muestra un sistema de pasarela en un sistema de servidor para interacción entre un Navegador de Red conectado en forma síncrona y un programa de aplicación adaptado para la comunicación asíncrona, de acuerdo con una realización de la presente invención;
la Figura 4 muestra la interoperación entre una pasarela, un Navegador y programas de aplicación, de acuerdo con una segunda realización de la invención; y
la Figura 5 es un diagrama de flujo que muestra las operaciones realizadas, principalmente por un programa de pasarela en un sistema de servidor, cuando se envía una solicitud desde un programa de Navegador de Red, de acuerdo con una realización de la invención.
La presente invención puede desarrollarse dentro de muchos sistemas de proceso de datos diferentes y de sistemas de comunicaciones en los cuales se requieren enlaces entre entornos diferentes. La invención no se limita a hardware de ordenadores específico o a sistemas operativos o a tipos específicos de enlaces de comunicaciones, y puede ser desarrollada en hardware o en software o como una combinación de componentes de hardware y de software.
Una realización preferida de la presente invención incluye un componente desarrollado en software de un sistema de servidor que proporciona un enlace entre un entorno de mensajería asíncrona y de establecimiento de colas y el entorno síncrono de la World Wide Web (Red de Ámbito Mundial).
Como se muestra en la Figura 1 y describió anteriormente, los usuarios finales de Internet están equipados con ordenadores 10 que tienen acceso a Internet y que tienen software 20 de Navegador de Red instalado en los mismos. Un sistema 30 de Servidor de Red comprende un sistema de ordenador (cuyo sistema puede correr, por ejemplo, sobre software de sistema operativo Windows NT o sobre software de sistema operativo UNIX, o puede ser un ordenador IBM PS/2 Modelo 80 en el que corre un software de sistema operativo OS/2, o un sistema de ordenador principal que da soporte a un sistema operativo MVS de IBM) unido a Internet y en el que corre un software 40 de Servidor de Red (tal como el Servidor de Conexión a Internet de IBM). OS/2, MVS y PS/2 son marcas registradas de IBM Corporation. El software de Servidor de Red da servicio a las solicitudes HTTP (Protocolo de Transferencia de Hipertexto) procedentes de los Navegadores de Red, las analiza como una solicitud de una página HTML estática o de un programa ejecutable y responde bien enviando una página HTML disponible (por ejemplo, mantenida en memoria de disco) al Navegador de Red o bien invocando a un sistema diferente para generar el HTML. Se invocan programas por un Servidor de Red por medio de la Interfaz de Pasarela Común, CGI 60, o de otra interfaz desarrollada por el Servidor de Red (la mayoría de los Servidores de Red dan soporte a dos interfaces, una de las cuales es la CGI).
La Figura 2 es una representación esquemática simplificada de la combinación entre programas usando mensajería asíncrona y establecimiento de colas bajo el control de una red de programas de gestión de colas, tales como los programas MQSeries de IBM. Un gestor de colas es el servicio del sistema que proporciona los dispositivos de establecimiento de colas de mensajes usados por las aplicaciones. Como se muestra en la Figura 2, un primer programa 100 de aplicación en el sistema 110 emite una orden de poner un mensaje bajo el control de un programa 120 local de gestión de colas y de un gestor 130 de colas comunicante, que corre en un sistema remoto 160, sobre una cola 140. Un programa 150 de aplicación en servicio toma subsiguientemente el mensaje de la cola 140 cuando está listo para procesar el mensaje. La aplicación de negocios puede ser, por ejemplo, una transferencia bancaria de fondos o una solicitud de reserva de plaza de una aerolínea. Las colas de mensajes son objetos denominados en los cuales se acumulan mensajes y desde los cuales se retiran posteriormente.
El mantenimiento de una cola particular es responsabilidad de un gestor de colas particular. Una cola de mensajes no es meramente un apilado: cuando se añaden mensajes a una cola se añaden al final, y cuando se retiran mensajes de una cola, normalmente se retiran del principio. La representación física de la cola de mensajes depende del entorno, pero puede ser una memoria intermedia o memorias tampón de la memoria principal, un archivo o archivos de un disco u otro dispositivo permanente de almacenamiento, o ambos. La gestión física de las colas de mensajes es enteramente la responsabilidad de un programa gestor de colas, y detalles de este tipo no son obvios para el programa de la aplicación. Las aplicaciones pueden ver una cola de mensajes simplemente como una "caja negra" en la cual se acumulan los mensajes. Las aplicaciones tienen acceso a las colas de mensajes usando llamadas API de establecimiento de colas de mensajes para comunicarse con el gestor de colas que está instalado en el mismo sistema que la aplicación (es decir, el gestor de colas local).
Los programas de aplicación se comunican acordando usar colas de mensajes denominadas particulares, enviando mensajes a las colas objetivo específicas de las que los programas de aplicación han acordado leer. Los emplazamientos de estas colas no tienen por que ser visibles a las aplicaciones que envían los mensajes: cada aplicación interactúa sólo con su gestor local de cola, y es la red de gestores de colas interconectados la que es responsable de desplazar los mensajes a las colas de destino. Cada gestor de colas mantiene tablas locales de enrutamiento para localizar a los otros gestores de colas de la red. De este modo, la aplicación que da soporte al software de establecimiento de cola de mensajes simplifica en gran medida el nivel de complejidad de los programas de aplicación que se requieren, eliminando la necesidad de que desarrollen sus propios controles complejos de comunicaciones.
La presente invención proporciona acceso a una red de este tipo de gestores de colas interconectados para usuarios que no tienen programas de gestión de colas instalados en su sistema local. La invención proporciona también un entorno para el desarrollo de aplicaciones WWW complejas, fiables, que pueden beneficiarse de los servicios de la aplicación existente que habilitan programas de software personalizado tales como los productos MQSeries de IBM.
Se dispone un componente de enlace que está realizado en el software para la instalación en un Servidor WWW, para emitir y recibir mensajes por cuenta de usuarios finales conectados en forma síncrona. Este componente de enlace, al que en lo sucesivo se denomina programa de pasarela, es invocado por las solicitudes de un Navegador de Red como se describió previamente. El programa de pasarela tiene interfaz con el Servidor WWW, por ejemplo mediante la CGI (Interfaz de Pasarela Común) normal. El programa de pasarela permite la gestión de usuarios concurrentes múltiples y de su estado, como se describirá a continuación, y gestiona las diferencias entre mensajes HTTP síncronos y asíncronos, proporcionando al Navegador de Red conectado en forma síncrona información sobre el progreso de los mensajes asíncronos que emite por cuenta del Navegador. El programa de pasarela gestiona también el enlace entre los sistemas de mensaje de entrega asegurada y las comunicaciones HTTP no aseguradas. Aunque puede ser necesaria una conversión de datos (tal como ASCII o EBCDIC), puesto que plataformas de arquitecturas y hardware diferentes tienen representaciones de datos y parámetros diferentes, tal conversión es conocida en la técnica y no es necesario desarrollarla por el programa de pasarela puesto que productos de software de mensajería conocidos realizan la conversión. Tampoco es necesario el programa de pasarela para proporcionar dispositivos amplios de seguridad, puesto que tales dispositivos están realizados en software de mensajería conocido y en los Servidores WWW (tales como los Servidores de Internet Seguros de IBM).
La Figura 3 muestra un programa 200 de pasarela que hace interfaz entre un programa 210 de cola de mensajes y un programa 220 de servidor de red instalado en un sistema 230 de ordenador. Se puede usar el programa de pasarela, como se muestra en este ejemplo, para hacer interfaz entre el servidor de red y un programa 240 de aplicación de cola de mensajes que puede correr sobre una máquina distinta del sistema 230 del servidor. En este caso, no se requiere software de aplicación en el sistema del servidor. El sistema en el que corre la aplicación de cola de mensajes puede ser conectado al sistema de servidor vía Internet, o vía otra red de comunicaciones. El programa de aplicación de este ejemplo es capaz de interpretar datos de formato HTML procedentes del Navegador de Red 250, y de generar en respuesta páginas HTML.
En la Figura 4 se muestra un uso similar del programa de pasarela en asociación con un componente 260 de aplicación de conversión de formato instalado en el sistema del Servidor de Red. El componente de conversión sirve para convertir entre las solicitudes y las respuestas HTML de los Navegadores de Red y la estructura de mensajes interna de un programa 270 de aplicación que no es capaz de interpretar HTML. Este componente 260 de conversión permite así que un programa de pasarela 200' según la invención sea usado con aplicaciones de cola de mensajes existentes. Un componente de servidor puede coordinar también solicitudes a diversas aplicaciones objetivo y una respuesta al Navegador de Red en una única unidad de trabajo. La conversión HTML es bien conocida en la técnica y por tanto no se describirá más aquí.
Se describirá a continuación el programa de pasarela y el flujo de comunicaciones entre un Navegador de Red y un programa de aplicación asíncrona, haciendo referencia a la Figura 5. Se definen una o más colas de entrada de la aplicación para cada programa de aplicación de cola de mensajes que se asocia con el programa de pasarela. Esta aplicación y sus colas de entrada pueden estar situadas en la máquina del Servidor de Red o en cualquier máquina conectada para comunicación con el servidor que use el soporte del software personalizado de colas de mensajes. La pasarela tiene una cola de respuestas situada en el servidor y gestionada por un programa local de gestión de colas, para los mensajes enviados desde los programas de aplicación.
Un usuario interactúa con el programa de pasarela vía un formato GET HTML a rellenar o una solicitud 300 POST que indica el nombre de la aplicación o el servicio de cola de mensajes que desea usar. En la realización preferida de la invención, el nombre incluye el nombre de la cola de aplicación, pero en una realización alternativas éste se deriva del programa de pasarela del nombre de la aplicación.
Una orden, a título de ejemplo, por la cual un usuario invoca una aplicación es como sigue:
<form method="post" action ="/m1g-bin/migcgi/ MQApp">
Especificar un sistema de cola de mensajes:
<input type="input";name="QMName"; size=
"48"; max length="48">
y una aplicación
<input type="input";name="QMName"; size=
"48"; max length="48">
<input type="submit";value="hacer clic aquí para iniciar la aplicación">
</form>
Se requiere a QName que especifique el destino del mensaje asíncrono generado, y normalmente se identifica con la propia aplicación. QMName es opcional. Si se especifica, se usa junto con QName para especificar el destino del mensaje. Si no se especifica, entonces se usa un nombre en blanco. Pueden ser aplicables las reglas normales de resolución de nombre de un sistema de mensajería. Se pueden incluir campos adicionales que contienen datos de formato de carácter específico de la aplicación en la solicitud de formato. Estos campos se pasan a la aplicación en el mensaje presentado por la pasarela.
La primera interacción que tiene un usuario con un programa de aplicación (el "punto de entrada" de la aplicación) procede típicamente de una página de red HTML estática. El usuario elimina la referencia de un URL particular o presenta 300 un formato HTML que interactúa con el programa de pasarela. La solicitud HTML inicial del Navegador no contiene un identificador de sesión insertado. Cuando un usuario pasa por primera vez a través de un punto de entrada de este tipo (es decir, se envía una solicitud HTML que no pertenece a una sesión ya existente) e inicia una aplicación, el programa de pasarela construye una sesión 340, identificada por un identificador de sesión que es único dentro de la pasarela, para representar la combinación de la aplicación solicitada por el usuario y el contenido de la solicitud. Se pueden generar los identificadores de sesión con suficiente aleatoriedad o usando identificaciones únicas de servidor para asegurarse de que cada una es única para el conjunto de la red, pero esto no es esencial. Los programas existentes de gestión de colas de mensajes (tales como el programa MQSeries de IBM) tienen dispositivos para generar identificadores únicos, y el programa de pasarela de la realización preferida hace uso de estos dispositivos.
La pasarela añade 350 la información de identificador de sesión a una tabla de sesión (realizada como entradas en una cola de mensajes que, por ejemplo, se mantiene en memoria compartida de proceso transversal de un sistema de servidor en el que corren programas de sistema operativo OS/2 o AIX, o se escribe en almacenamiento de disco) junto con información de identificación de sistema de cliente o usuario. OS/2 y AIX son marcas registradas de IBM Corporation. Esta tabla se usa subsiguientemente para asociar identificadores de sesión con solicitudes de usuario y respuestas de programa de aplicación, como se describe más adelante. No existe otra disposición para iniciar una aplicación que pasar a través de un punto de entrada de aplicación de esta manera. Una interacción de usuario no puede pertenecer más que a una sesión.
Habiendo asignado un identificador de sesión a la interacción del usuario, el programa de pasarela pone 360 entonces un mensaje en la cola de entrada del programa de aplicación definida, arranca 370 un temporizador e inicia 370 un proceso para recibir un mensaje de respuesta del programa de aplicación. La recepción de respuestas se describirá más adelante. El mensaje contiene información de estado en la forma de un número de secuencia que identifica la posición de esta interacción dentro de la comunicación general entre el proceso cliente solicitante y el programa de aplicación, e incluye una identificación de un sistema de usuario o de cliente así como los datos de entrada suministrados por el Navegador de la Red. Estos datos se presentan a la aplicación con el conjunto de caracteres y página de código apropiados (siendo realizada la conversión por un proceso en el sistema de servidor separado del propio programa de pasarela, como se observó anteriormente). El objetivo de un mensaje puede ser una aplicación de cola de mensajes de larga duración, o se puede usar su llegada para disparar el inicio de una aplicación de cola de mensajes. Como se explicó anteriormente, se puede realizar la invención para su uso con aplicaciones que sean "pensadas para la red" (esto es, que sean capaces de entender y generar páginas HTML) y con aplicaciones que requieren la conversión de HTML. La descripción siguiente de una realización de la invención se refiere al ejemplo de interacción con una aplicación "pensada para la red".
La aplicación de colas de mensajes debería responder al mensaje recibido enviando una página HTML a la cola de respuesta del programa de pasarela. Como se describió anteriormente, el programa de pasarela ya ha invocado un proceso para tomar estas respuestas de su cola cuando se reciban allí. Esto se realiza usando un dispositivo conocido del programa de cola de mensajes interoperante, por el cual una orden para obtener mensajes de una cola puede incluir opcionalmente una orden para esperar durante un periodo especificado si la respuesta no se encuentra inmediatamente disponible cuando la operación Get se intenta por primera vez. En los productos de gestión de colas MQSeries de IBM, este dispositivo puede invocar una acción en la orden Get Message API, "MQGET_Wait", como se describió en la publicación a la que se hizo referencia anteriormente "MQSeries - Referencia Técnica de Interfaz de Cola de Mensajes" (Número de Documento de IBM SC33-0850.01). Así, el programa de pasarela envía un mensaje y emite 370 una orden para recuperar el mensaje de respuesta, dejando al programa de gestión de cola controlar la operación real Get Message que recupera 429 la página HTML de la cola de respuestas y la pasa a la pasarela. El programa de pasarela entonces transmite 420 al Navegador la página HTML que contiene el identificador de la sesión presente como un campo oculto en el HTML.
Si el intervalo de espera de la operación Get Message expira antes de que se haya obtenido la respuesta por el programa de pasarela, entonces Get Message retorna y el programa de pasarela reacciona enviando 390, 400 un mensaje de respuesta preliminar al Navegador. Esta respuesta preliminar completa la sesión síncrona, pero puesto que incluye un identificador de sesión, la sesión puede ser "reiniciada" más tarde (estrictamente se inicia una nueva sesión, pero como esto trae consigo la interacción entre los mismos programas de Navegador y pasarela y hace referencias al mismo identificador, podemos verla como si se reiniciara la sesión original). Si la sesión síncrona entre el Navegador WWW y el programa servidor conectado por la pasarela se abandona de otro modo antes de que se reciba la respuesta, la pasarela cancela cualesquiera operaciones Get Message dudosas. Cualquier mensaje de respuesta que se coloque en la cola de respuestas del programa de pasarela después del tiempo límite u otro abandono de la sesión permanecerá allí hasta el momento en el que el Navegador WWW interactúe de nuevo con la pasarela en búsqueda del mensaje de respuesta correspondiente. Cuando se recibe una solicitud subsiguiente del Navegador WWW, el programa de pasarela invocará de nuevo la operación Get Message (con intervalo de espera).
No se requiere que todas las comunicaciones enviadas a un cliente dentro de la sesión incluyan el identificador de sesión, pero se incluye el identificador de sesión siempre que se espere una interacción posterior del cliente. Este es el caso generalmente cuando se envía 400 una comunicación después de un tiempo límite y antes de que se encuentre disponible la respuesta de la aplicación, o cuando se recibe una respuesta de la aplicación y la información de estado de la sesión incluida confirma la expectación de interacción posterior por parte del cliente. El programa de pasarela generalmente actualiza 420 su tabla de sesión con la información de estado de la sesión para la sesión en cuestión cuando se recibe una respuesta de un programa de aplicación. Sin embargo, si la aplicación no requiere más interacción del usuario o proceso en el sistema de cliente (según se identifica por la información del estado de la sesión, o por la falta de la misma, dentro de las respuestas del programa de aplicación), entonces el programa de pasarela suelta 420 cualesquiera recursos específicos de sesión cuando pasa la página al Navegador.
Cuando el programa de aplicación presente "espera" o requiere instrucción adicional del cliente (es decir, espera que el cliente interactúe bien con el programa de aplicación presente u otro programa de aplicación antes de que concluya la aplicación general), indica esto por medio de una bandera en sus respuestas al servidor. También incluye formatos HTML adicionales dentro de la página HTML que se envía al cliente, con el identificador de señal insertado en cada uno de los formatos HTML creados dinámicamente.
El Navegador de Red tiene dispositivos para memorizar 410 páginas y por tanto es capaz de guardar los identificadores de sesión insertados, y esto hace posible que un único usuario tenga más de una sesión abierta. Estas sesiones pueden ser anidadas o pueden solaparse entre sí. Cuando un formato que incluye un identificador de sesión es subsiguientemente llenado 300 en el Navegador, el identificador de sesión circulará de vuelta al programa de pasarela en el servidor de forma que el programa de pasarela pueda asociar 320, 330 el formato subsiguientemente recibido con la sesión correcta. Se usa el identificador de sesión para distinguir la solicitud de otras solicitudes de otros usuarios y otras solicitudes del mismo usuario pero para aplicaciones diferentes. Un proceso que es parte del programa de pasarela explora 320 la tabla de sesión en busca de una coincidencia entre una entrada de la tabla y el identificador de sesión y la información de estado de la sesión de una solicitud recibida. Si la sesión y la información de estado no corresponden a una interacción existente con una aplicación, entonces el programa de pasarela pone 360 la información de estado y los datos de entrada como un mensaje en la cola de entrada de la aplicación, tal como se describió anteriormente. Sin embargo, si comparando las informaciones de sesión y estado de una solicitud recibida con las entradas de la tabla de la sesión se encuentra una coincidencia, entonces se debe tratar de un reintento de una solicitud anterior, y por tanto puede que ya esté disponible una respuesta. No se debería enviar por tanto un nuevo mensaje a la aplicación, puesto que el gestor o gestores de colas correspondientes deben ser asegurados que sólo se les proporciona una vez la entrega del mensaje enviado anteriormente; el programa de pasarela invoca 370 la operación Get with Wait (Obtener con espera) para comprobar su cola de respuestas en cuanto al mensaje de respuesta esperado.
La asignación de un identificador de sesión a una interacción de usuario, que se devuelve luego al Navegador y se guarda allí, resuelve por tanto un número de problemas técnicos. En primer lugar, permite que más de un usuario acceda a la misma aplicación o servicio al mismo tiempo siendo capaz la pasarela de distinguir entre las respuestas que recibe. En segundo lugar, se asegura que se transmite una información de contexto suficiente entre las solicitudes sucesivas emitidas por cada usuario a cada aplicación de servidor para asociar entre sí una pluralidad de pares solicitud-respuesta de una conversación de larga duración de una aplicación. En tercer lugar, permite al usuario intercalar interacciones con varias aplicaciones diferentes proporcionando un mecanismo para distinguir entre las mismas. En cuarto lugar, proporciona la posibilidad de que un usuario abandone una aplicación en cualquier etapa, posiblemente sin dar notificación alguna al servidor o programa de pasarela, y resuelve la posibilidad de que falle un enlace entre el usuario y el servidor.
Además de contener el identificador de sesión, el HTML creado dinámicamente contendrá un número de secuencia que identifica la posición de la interacción dentro de la sesión presente. Éste es devuelto al programa de la pasarela por la siguiente solicitud del Navegador, y el programa de la pasarela lo comprobará 320 contra el valor esperado. Este mecanismo, mantener los datos y el contexto de estado de ejecución usando identificadores de sesión y números de secuencia, permite la realización de secuencias o solicitudes de cliente que dependen entre sí- se capacita a la aplicación servidora para distinguir entre una pluralidad de mensajes dentro de la misma sesión.
Se puede terminar una sesión de una de las maneras siguientes:
\bullet Una aplicación del servidor indica en su mensaje de respuesta que no se solicita entrada adicional del usuario, y la pasarela responde soltando 420 los recursos específicos de la sesión.
\bullet Se envía una página HTML que contiene un formato al usuario, pero no se llena ni se devuelve dentro de un periodo de tiempo definido por el administrador. La pasarela envía un mensaje de terminación a la aplicación de servicio que estaba esperando una respuesta del usuario (evitando el mantenimiento innecesario de la aplicación de servicio no concluida).
\bullet Un usuario elige abandonar la aplicación a través de un diálogo con el programa de pasarela, puesto que la aplicación de servicio no está respondiendo a los mensajes dentro de un tiempo aceptable. El programa de pasarela intenta recuperar el mensaje que envió. Si es incapaz de ello, envía un mensaje de cancelación al programa de la aplicación de servicio.
La terminación de sesión permite que el programa de la pasarela y las aplicaciones de servicio suelten cualesquiera recursos específicos de la sesión que hubieran podido serles asignados. Se rechazará un identificador de sesión (es decir, no disparará comunicaciones posteriores otras que una notificación de rechazo) si se envía al programa de pasarela, bien desde un usuario o desde la aplicación de servicio, después de que haya terminado la sesión. Obsérvese que la expiración del tiempo límite controlado por el servidor determina el periodo durante el cual el proceso de cliente debería ser suspendido, pero no termina automáticamente la sesión. Por esto, después de ese tiempo límite, el programa de pasarela mantiene la identificación de sesión y la información de estado.
Se conocen programas de gestión de colas de mensajes que tienen dispositivos para asegurarse que los mensajes del programa de pasarela serán entregados a la cola de entrada de la aplicación y que las respuestas se devuelven al programa de pasarela (véase más adelante). Sin embargo, los programas de gestión de colas de mensajes no pueden garantizar que los enlaces de comunicaciones estarán funcionando en un momento particular o que la propia aplicación procesará una solicitud del Navegador. El programa de gestión de colas tampoco puede proporcionar entrega asegurada a un Navegador de Red que conecta con una red de gestores de colas. Tal como se describió, el programa de pasarela reacciona a las solicitudes que llegan del Navegador de Red poniendo un mensaje en la cola de entrada de una aplicación de servidor. Cuando el mensaje se pone en la cola por primera vez, el programa de pasarela inicia 370 una cuenta descendente de temporizador y espera una respuesta de la aplicación de servidor. Si el temporizador expira antes de que se haya recibido cualquier respuesta del programa de aplicación, el programa de pasarela crea 390 una página de HTML para notificar 400 al usuario de la expiración.
Así, el programa de pasarela está configurado para enviar una respuesta por sí mismo al Navegador si no recibe una respuesta de la aplicación antes de que expire un periodo de tiempo definido por un administrador del sistema. El periodo de tiempo máximo de suspensión de un cliente a establecer dependerá de la aplicación en cuestión (10 segundos o 1 segundo pueden ser adecuados). El principal propósito de esta respuesta es proporcionar al usuario o proceso de comunicación en el sistema de cliente información que le permita una determinación sobre si mantener la sesión de comunicación presente para esperar una respuesta, o abandonar la sesión (pero mantener la información asociada con la sesión) y proceder a otras tareas. Esta respuesta al cliente puede ser simplemente un incitador para un usuario final (por ejemplo disparando un mensaje en pantalla relativo a la expiración del tiempo del temporizador) pero una respuesta desencadenada por el temporizador al Navegador según la realización preferida de la invención indica también si la solicitud ha sido recibida por la máquina objetivo y si la aplicación ha leído la solicitud o no. Son conocidos programas de gestión de colas de mensajes que proporcionan informes de Confirm On Arrival (Confirmación de Llegada) y de Confirm On Delivery (Confirmación de Entrega). El programa de pasarela según la realización preferida está adaptado a usar los dispositivos de informe disponibles para construir su notificación de la expiración del temporizador y para que la notificación pueda incluir toda la información disponible en el progreso de comunicación para esa sesión.
Está dentro del objeto de la presente invención desarrollar la respuesta preliminar como una confirmación inmediata de recibo por la pasarela de la solicitud del sistema de cliente. Esta confirmación terminará la presente sesión síncrona, pero incluirá el identificador de sesión y permitirá así al cliente volver a visitar la interacción en un momento posterior. Aunque en este caso no quedará suspendido el proceso de cliente para esperar una respuesta de un programa solicitado en forma asíncrona, permanece la posibilidad de retrasos entre la solicitud y la confirmación de recibo debida a problemas con los enlaces de comunicación o con los propios sistemas de comunicaciones. Aquí se puede usar un periodo límite de cliente para automatizar cuando se debería abandonar la solicitud de cliente si no se recibe confirmación alguna, pero para ciertas aplicaciones, la determinación de cuando abandonar una solicitud de cliente se puede dejar a decidir por los usuarios finales, como es familiar a los usuarios de software de Navegador de Red existente.
También está entro del objeto de la presente invención proporcionar un proceso dentro del programa de pasarela que responda a una solicitud recibida "tipo" de un sistema de cliente para determinar si se debería dar una respuesta preliminar inmediata o una suspensión establecida o un periodo de tiempo límite con la finalidad de proporcionar una respuesta plena dentro de dicho periodo, si se encuentra disponible. Según una realización particular de la invención, el programa de pasarela tiene un valor de tiempo límite configurable que usa por defecto. Este valor se mantiene en un archivo de configuración sobre el sistema de servidor en el cual está instalado el programa de pasarela y puede ser modificado subsiguientemente por un administrador de sistema. Se puede incluir un parámetro opcional en las solicitudes de formato HYML (similar a los parámetros QName y QMName) que supera este defecto. Usando ejemplos a los que antes se ha hecho referencia, si se diseña un formato para realizar un pedido de mercancía que requiere una respuesta rápida que confirme la recepción de la solicitud, entonces se debe codificar un valor pequeño de tiempo límite en el formato de solicitud; mientras que si se solicita información sobre un saldo bancario, entonces se debe codificar un valor más alto (quizá un valor correspondiente al mayor periodo de espera que cabe esperar que toleren los usuarios).
Los protocolos de transmisión de mensajes para proporcionar entrega asegurada de mensajes se describen en la solicitud internacional de patente WO 95/10805 y en la solicitud de patente del Reino Unido Número de Publicación GB 2311443. Aunque el soporte de red básico asegura típicamente la entrega fiable de paquetes entre máquinas, sobre un medio de comunicación no fiable no es capaz habitualmente de entrega asegurada. Para asegurar que los datos se envíen una vez y sólo una vez y que las comunicaciones se reiniciarán y recuperarán adecuadamente después de un fallo importante en la máquina o en la red, se requiere algo más que el soporte básico de red para la entrega de paquetes. En particular, ambos socios en un sistema de entrega asegurada deben recordar que datos se han transmitido con éxito y "endurecido". Endurecimiento es el proceso de escribir datos en un medio de memoria, tal como un disco, y asegurarse que son recuperables aunque hubiera un fallo de hardware. La provisión de recuperación de recursos en un sistema de cola de mensajes se describe en detalle entre las páginas 209 y 217 del libro "Messaging and Queing Using the MQI" (Mensajería y Establecimiento de Colas Usando el MQI), B. Blakeley, H. Harris y R. Lewis, McGraw-Hill, 1994.
Una aplicación de negocios puede implicar a varias aplicaciones de servicio cuyas actividades necesitan ser coordinadas en forma transaccional. Este problema se resuelve por el gestor de colas de mensajes dentro del sistema de servidor. El programa de pasarela envía un mensaje a un único programa de aplicación de establecimiento de colas de mensajes que lo descompone luego en solicitudes a las aplicaciones de servicio individuales si se requiere. Estos mensajes se pueden enviar y recombinar bajo control transaccional por el programa gestor de colas de mensajes. Se conocen el técnica programas de mensajería dotados de dispositivos que proporcionan un control transaccional de este tipo (por ejemplo, los programas MQSeries de IBM).
El diseño del programa de pasarela permite añadir aplicaciones extra de servicio para hacer frente a los aumentos de demanda- es decir, la solución según la realización preferida de la invención es escalable. Esto se logra incluyendo en el programa de pasarela el identificador de sesión en la parte descriptiva de cada uno de los mensajes asíncronos. (La parte descriptiva del mensaje comprende información que define las propiedades del mensaje y que se usa por el servicio de establecimiento de colas de mensajes para decidir como se debería procesar el mensaje. Los propios mensajes comprenden dos componentes distintos -una parte de datos de la aplicación y una parte de encabezamiento de mensaje que comprende la información de descripción del mensaje que es auxiliar de los datos de la aplicación). Esto permite que varios programas de la aplicación de servicio corran en paralelo contra una única cola de tareas. Si la aplicación necesita retener aplicación de contexto de sus propias interacciones sucesivas, puede recuperar los mensajes que coincidan con su identificador de sesión. Si no mantiene información de contexto, entonces contextos de la aplicación de servicio pueden recuperar y procesar el primer mensaje que encuentren.
La invención, según la realización preferida, facilita por tanto el enlace del servicio WWW de Internet con un sistema de mensajería con fines generales, sin requerir la modificación de los Navegadores de Red existentes, pero la invención no se limita a este desarrollo. Se puede desarrollar la invención para proporcionar un enlace entre dos sistemas de proceso de datos cualesquiera en los que un programa informático instalado en un sistema requiere comunicación síncrona mientras que un programa en el otro sistema requiere una forma de comunicación asíncrona. La invención, según el desarrollo preferido, asociada con un software de mensajería tal como los productos MQSeries de IBM, proporciona también un puente a las redes que no dan soporte al protocolo Internet (IP), puesto que MQSeries da soporte a los protocolos de comunicaciones TCP/IP, APPC y NetBIOS. Así, la invención facilita la comunicación entre aplicaciones sobre redes IP y no IP.
La realización preferida descrita anteriormente incluye un programa de pasarela instalable por separado en asociación con un programa de mensajería. Una realización alternativa desarrolla la pasarela como un componente interno de un programa de gestión de colas. El identificador de sesión y la tabla de estado de sesión se pueden desarrollar en forma deseable como una cola de mensajes bajo el control del gestor de colas. Los identificadores MessageID y CorelID ya desarrollados dentro de los gestores de colas de MQSeries se pueden usar como información de búsqueda adecuada cuando se examina la cola. Sin embargo, se debería tener en cuenta que la actualización de entradas que se mantiene en una cola gestionada por un gestor de colas requiere las etapas de eliminar las entradas de la cola, modificación y posterior recolocación en la cola, puesto que no existe disposición para la modificación de las entradas mientras permanecen en una cola controlada por un gestor de colas. La actualización de una entrada de una tabla mantenida en una memoria compartida puede traer consigo simplemente sobrescribir la entrada anterior. Mientras que existen ventajas en cuanto a usar los dispositivos del programa gestor de colas para la operación de "Wait for event" ("esperar un acontecimiento") (es decir, respuesta) o "timeout" ("tiempo límite"), esta función es proporcionada típicamente por sistemas operativos de trama múltiple, y un programa gestor de colas puede estar haciendo uso en la práctica del sistema operativo subyacente. Las realizaciones alternativas pueden usar el disparo del programa de pasarela siempre que se coloque por primera vez un nuevo mensaje de respuesta en la cola de respuestas, pero éste no es el desarrollo preferido puesto que el disparo no es deseable cuando no existe una sesión viva presente con el sistema de cliente. Realizaciones alternativas adicionales de la invención pueden desarrollar un examen periódico de la cola de respuestas para encontrar mensajes nuevos en vez de invocar una operación "Get with Wait" (Obtener con Espera).
En la realización preferida descrita anteriormente, se guardan automáticamente identificadores de sesión en la memoria intermedia de un Navegador de red (como campos insertados en las páginas HTML. Sin embargo, los identificadores de sesión podrían ser presentados alternativamente cuando se hace una solicitud subsiguiente asociada. En realizaciones en las cuales se presenta meramente al usuario una respuesta preliminar al sistema de cliente después de un tiempo límite sin almacenamiento automático o inclusión automática en solicitudes futuras, es el usuario final quien decide si la sesión presente debería ser mantenida o se debería finalizar la sesión guardando el identificador para reintentos subsiguientes de una solicitud. La realización del ejemplo descrito anteriormente tiene también la característica de que sólo se incluyen identificadores de sesión e información de estado de la sesión en alguna de las comunicaciones devueltas al Navegador, pero una alternativa que está claramente dentro del objeto de la invención, como se define en las reivindicaciones anexas, implica incluir al menos la información de identificador de sesión en todas las respuestas.
Una característica de la realización preferida descrita anteriormente es el mantenimiento de datos de estado por el programa de la pasarela; una realización alternativa de la invención deja todos los problemas de secuenciamiento para ser tratados por los programas de aplicación de forma que el programa de pasarela no se implica en el mantenimiento de la información de estado de la sesión.

Claims (11)

1. Un sistema de servidor de comunicaciones de datos para una red de comunicaciones, en el que el sistema de servidor tiene dispositivos para dar soporte a la comunicación síncrona entre el sistema de servidor y un sistema de cliente de la red y en el que el sistema de servidor tiene también dispositivos para dar soporte a la comunicación síncrona con programas en el sistema de servidor o en otro sistema de la red, incluyendo dicho sistema de servidor:
medios, que responden a una solicitud del sistema de cliente dentro de una sesión de comunicación síncrona entre el sistema de cliente y el sistema de servidor, para enviar una solicitud a un programa del sistema de servidor o de otro sistema de la red como una comunicación asíncrona, incluyendo la solicitud asíncrona un identificador de sesión asignado por el sistema de servidor;
medios para iniciar un temporizador, en respuesta a dicha solicitud del sistema de cliente;
medios, que responden a la recepción de una respuesta a dicha comunicación asíncrona para asociar dicha respuesta con dicha solicitud del sistema de cliente, usando el identificador de sesión, para permitir enviar una respuesta al sistema de cliente;
medios, que responden a la respuesta del programa a la comunicación asíncrona, incluyendo información sobre el estado de la sesión, que permiten la serialización de interacciones, para incluir la información sobre el estado de la sesión dentro de dicha respuesta enviada al sistema de cliente;
medios para generar una respuesta preliminar antes de la recepción de una respuesta a dicha comunicación asíncrona, incluyendo dicha respuesta preliminar el identificador de sesión; y
medios para enviar dicha respuesta preliminar a dicho sistema de cliente dentro de dicha sesión de comunicación síncrona si expira un periodo de tiempo preestablecido antes de que se reciba una respuesta a dicha solicitud asíncrona por el sistema de servidor.
2. Un sistema de comunicaciones de datos según la reivindicación 1, que incluye un proceso en el sistema de servidor para asignar el identificador de sesión a la solicitud del sistema de cliente e incluir el identificador de sesión en la solicitud asíncrona que envía a dicho programa, incluyendo dicho sistema de servidor medios, que responden a la recepción por parte de dicho programa de una respuesta a dicha solicitud asíncrona cuya respuesta incluye dicho identificador de sesión, para usar dicho identificador de sesión a fin de asociar la respuesta de dicho programa con la solicitud del sistema de cliente y para incluir dicho identificador de sesión en una respuesta, la cual se envía a dicho sistema de cliente.
3. Un sistema de comunicaciones de datos según la reivindicación 2, en el que dicho sistema de servidor tiene instalado en el mismo el software de Servidor Internet World Wide Web (Red de Ámbito Mundial)(WWW) para responder las solicitudes del software de Navegador WWW instalado en un sistema de cliente, incluyendo dicho sistema de servidor medios para insertar información de identificador de sesión dentro de las páginas HTML que se incluyen en las respuestas enviadas a un sistema de cliente.
4. Un sistema de comunicaciones de datos según la reivindicación 3, en el que dicho sistema de servidor incluye medios, que responden a la información de estado de la sesión incluida en dicha respuesta del programa a dicha solicitud asíncrona, para incluir dentro de dichas páginas HTML uno o más formatos HTML para rellenar por el usuario final, teniendo dichos formatos dicho identificador de sesión insertado en los mismos.
5. Un sistema de comunicaciones de datos según la reivindicación 3 o la reivindicación 4, en el que dicho sistema de servidor incluye medios, que responden a la información de estado de la sesión incluida en dicha respuesta del programa a dicha solicitud asíncrona, para insertar información sobre el estado de la sesión dentro de dichas páginas HTML enviadas al sistema de cliente.
6. Un sistema de comunicaciones de datos según la reivindicación 3 o la reivindicación 4, que incluye medios para convertir datos HTML de una solicitud de cliente a un formato interpretable por dicho programa, y para convertir la información incluida en una respuesta de dicho programa a HTML para su inclusión en dicha respuesta al sistema de cliente.
7. Un sistema de comunicaciones de datos según la reivindicación 1, en el que dicho sistema de servidor realiza informes de confirmación de llegada (COA) y/o de confirmación de entrega (COD) y responde a la recepción de un informe COA o COD antes de que expire dicho periodo de tiempo preestablecido para incluir dicho informe COA o COD en dicha comunicación enviada a dicho sistema de cliente a la expiración de dicho periodo de tiempo preestablecido.
8. Un sistema de comunicaciones de datos según la reivindicación 1, en el que dicho sistema de servidor incluye medios, que responden a una identificación del estado de la sesión incluida en dicha respuesta del programa a dicha solicitud asíncrona, para determinar si se incluye información de identificación de sesión dentro de dicha respuesta al sistema de cliente.
9. Un sistema de comunicaciones de datos según la reivindicación 1, en el que dichos medios para incluir información del estado de la sesión dentro de una respuesta al sistema de cliente incluyen medios para determinar si se incluye dicha información del estado de la sesión dependiendo del estado de la sesión.
10. Un sistema de comunicaciones de datos según la reivindicación 1, incluyendo medios, que responden a una solicitud de dicho sistema de cliente, para determinar si se debe enviar al cliente confirmación de recepción como una respuesta preliminar o se debe iniciar dicho temporizador.
11. Un método de comunicaciones de datos entre un primer programa informático en un primer sistema de una red de comunicaciones y un tercer programa informático accesible a través de un segundo programa informático en un segundo sistema de la red que incluye las etapas de:
enviar una primera solicitud desde el primer programa al segundo sistema dentro de una sesión de comunicación síncrona;
en respuesta a la recepción por dicho segundo sistema de la solicitud síncrona de dicho primer programa, enviar una solicitud al tercer programa como una comunicación asíncrona, incluyendo dicha solicitud asíncrona un identificador de sesión asignado por un segundo programa en el segundo sistema, e iniciar un temporizador;
a la recepción por dicho segundo sistema de una respuesta a dicha comunicación asíncrona, asociar dicha respuesta con dicha solicitud del primer programa usando dicho identificador de sesión, para permitir que se envíe una respuesta al primer programa, y en contestación a la respuesta a dicha comunicación asíncrona que incluye información del estado de la sesión que permite la serialización de interacciones, incluir la información del estado de la sesión dentro de la respuesta al primer programa;
generar una respuesta preliminar antes de la recepción de una respuesta a dicha comunicación asíncrona, incluyendo dicha respuesta preliminar el identificador de sesión; y
enviar dicha respuesta preliminar a dicho primer programa dentro de dicha sesión de comunicación síncrona si expira un periodo de tiempo preestablecido antes de que se reciba una respuesta a dicha solicitud síncrona por el segundo sistema.
ES97923216T 1996-05-24 1997-05-19 Provision de enlaces de comunicaciones en una red de ordenadores. Expired - Lifetime ES2227692T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9610898 1996-05-24
GB9610898A GB2313524A (en) 1996-05-24 1996-05-24 Providing communications links in a computer network

Publications (1)

Publication Number Publication Date
ES2227692T3 true ES2227692T3 (es) 2005-04-01

Family

ID=10794249

Family Applications (1)

Application Number Title Priority Date Filing Date
ES97923216T Expired - Lifetime ES2227692T3 (es) 1996-05-24 1997-05-19 Provision de enlaces de comunicaciones en una red de ordenadores.

Country Status (13)

Country Link
US (1) US6336135B1 (es)
EP (1) EP0978056B1 (es)
JP (1) JP3578221B2 (es)
KR (1) KR100275403B1 (es)
CN (1) CN1117333C (es)
CZ (1) CZ381198A3 (es)
DE (1) DE69731318T2 (es)
ES (1) ES2227692T3 (es)
GB (1) GB2313524A (es)
HU (1) HUP9902190A3 (es)
MY (1) MY123071A (es)
PL (1) PL329935A1 (es)
WO (1) WO1997045798A1 (es)

Families Citing this family (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6253061B1 (en) * 1997-09-19 2001-06-26 Richard J. Helferich Systems and methods for delivering information to a transmitting and receiving device
US6636733B1 (en) 1997-09-19 2003-10-21 Thompson Trust Wireless messaging method
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
JP2000036822A (ja) * 1998-07-16 2000-02-02 Nec Corp コンピュータネットワーク及びサーバ
US8060656B2 (en) * 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) * 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) * 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6434605B1 (en) * 1999-04-05 2002-08-13 Worldcom, Inc. Automatic detection and recovery for problems arising with interconnected queue managers
US6779107B1 (en) * 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6701367B1 (en) * 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US6766349B1 (en) 1999-09-24 2004-07-20 Sun Microsystems, Inc. Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching
AU2112301A (en) * 1999-09-24 2001-04-24 Sun Microsystems, Inc. Mechanism for enabling session information to be shared across multiple processes
US6895584B1 (en) 1999-09-24 2005-05-17 Sun Microsystems, Inc. Mechanism for evaluating requests prior to disposition in a multi-threaded environment
US6587827B1 (en) * 1999-10-22 2003-07-01 Hewlett-Packard Development Company, L.P. Order fulfillment processing system
US6871203B1 (en) * 1999-10-29 2005-03-22 International Business Machines Corporation Data processing system
US7107325B1 (en) * 1999-11-15 2006-09-12 Insweb Corporation System and method for optimizing and processing electronic pages in multiple languages
US20010034782A1 (en) * 2000-01-14 2001-10-25 Ian Kinkade Efficient web based proxy message method and apparatus for message queuing middleware resident on a server computer
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US8756342B1 (en) 2000-02-07 2014-06-17 Parallel Networks, Llc Method and apparatus for content synchronization
US7454457B1 (en) * 2000-02-07 2008-11-18 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
JP2001216262A (ja) * 2000-02-07 2001-08-10 Fujitsu Ltd サーバ
IL135150A0 (en) * 2000-03-17 2001-05-20 Avner Geller A method and a system for secured identification of user's identity
US20030070074A1 (en) * 2000-03-17 2003-04-10 Avner Geller Method and system for authentication
US20040105122A1 (en) * 2000-03-20 2004-06-03 Schaeffer Richard J. Printer control and document management system
KR100397495B1 (ko) * 2000-06-24 2003-09-13 엘지전자 주식회사 실시간처리 운영체제의 주제어부와 부제어부간의접속해제를 안정화하기 위한 제어방법
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
EP1334587A1 (en) * 2000-08-31 2003-08-13 Padcom Inc. Method and apparatus for routing data over multiple wireless networks
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US6810430B1 (en) * 2000-09-29 2004-10-26 Abb Automation Inc. Network communications coupler
US7830399B2 (en) * 2000-10-04 2010-11-09 Shutterfly, Inc. System and method for manipulating digital images
JP3803707B2 (ja) * 2000-12-28 2006-08-02 フューチャーシステムコンサルティング株式会社 フレームワークシステム
US6862628B2 (en) * 2001-01-05 2005-03-01 Microsoft Corporation Enhancing application performance in dynamic networks
US7689711B2 (en) * 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US9948644B2 (en) 2001-03-26 2018-04-17 Salesforce.Com, Inc. Routing messages between applications
US7788399B2 (en) 2001-03-26 2010-08-31 Salesforce.Com, Inc. System and method for mapping of services
US7516191B2 (en) * 2001-03-26 2009-04-07 Salesforce.Com, Inc. System and method for invocation of services
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
US7249195B2 (en) 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US20030037102A1 (en) * 2001-08-14 2003-02-20 Philippe Eckert Message broker
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7870492B2 (en) 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US20030101291A1 (en) * 2001-11-23 2003-05-29 Mussack Christopher Joseph Application programming interface for provision of DICOM services
DE10162986B4 (de) * 2001-12-20 2004-01-15 Siemens Ag Anbindung von Netzwerken mit unterschiedlichen Protokollen
US20030126109A1 (en) * 2002-01-02 2003-07-03 Tanya Couch Method and system for converting message data into relational table format
US6950959B2 (en) * 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
US7444410B1 (en) * 2002-02-15 2008-10-28 Oracle International Corporation Application platform execution environment
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7661129B2 (en) * 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7558196B2 (en) * 2002-04-08 2009-07-07 Alcatel-Lucent Usa Inc. Method and apparatus for system resource management in a communications system
CN100478943C (zh) * 2002-05-31 2009-04-15 国际商业机器公司 访问不同类型后端数据存储器的系统和方法
JP4225743B2 (ja) * 2002-07-04 2009-02-18 株式会社東芝 無線端末及び通信制御方法
CN100426812C (zh) * 2002-08-15 2008-10-15 中兴通讯股份有限公司 一种基于分组数据业务流程的仿真系统
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US8255454B2 (en) * 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7272660B1 (en) 2002-09-06 2007-09-18 Oracle International Corporation Architecture for general purpose near real-time business intelligence system and methods therefor
US7912899B2 (en) * 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US8165993B2 (en) * 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US7412481B2 (en) * 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US7401158B2 (en) * 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
JP3880513B2 (ja) 2002-12-16 2007-02-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバ
US7305554B2 (en) * 2002-12-16 2007-12-04 Alcatel Canada Inc. Dynamic acquisition of state during security system reconfiguration
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US7769881B2 (en) * 2003-01-24 2010-08-03 Hitachi, Ltd. Method and apparatus for peer-to peer access
US8359393B2 (en) 2003-02-13 2013-01-22 Transunion Interactive, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
WO2004072830A2 (en) * 2003-02-13 2004-08-26 Truelink, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
US7966418B2 (en) * 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
JP4305004B2 (ja) * 2003-02-28 2009-07-29 ソニー株式会社 情報処理装置、およびコンテンツ情報処理方法、並びにコンピュータ・プログラム
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
KR100925198B1 (ko) * 2003-03-17 2009-11-06 엘지전자 주식회사 대화형 디스크 플레이어간의 사용자 메시지 교환방법
JP2004295262A (ja) * 2003-03-25 2004-10-21 Toudai Tlo Ltd スクリプトの実行方法およびサーバ・クライアントシステム
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US7548989B2 (en) * 2003-07-01 2009-06-16 International Business Machines Corporation Method and system for maintaining consistency during multi-threaded processing of LDIF data
US8429249B2 (en) * 2003-07-11 2013-04-23 Ca, Inc. System and method for configuring servlet-based components as dynamic content components
US7349968B2 (en) * 2003-07-31 2008-03-25 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7380009B2 (en) * 2003-08-07 2008-05-27 Interantional Business Machines, Incorporated Method, system and program product for delayed disconnection of a client from a server
US7478122B2 (en) * 2003-08-18 2009-01-13 Hostopia.Com Inc. Web server system and method
GB2405228B8 (en) * 2003-08-19 2007-09-13 Ibm A method, apparatus and computer program for verifying the order of a queue of work items
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
US20050080903A1 (en) * 2003-09-30 2005-04-14 Moshe Valenci Method, system, and program for maintaining a link between two network entities
US20050080759A1 (en) * 2003-10-08 2005-04-14 International Business Machines Corporation Transparent interface to a messaging system from a database engine
US8453196B2 (en) 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
US7904882B2 (en) 2003-10-16 2011-03-08 Salesforce.Com, Inc. Managing virtual business instances within a computer network
US8229996B2 (en) * 2003-11-26 2012-07-24 Microsoft Corporation Asynchronous processing of task components in connection with rights management system and the like
US8775654B2 (en) * 2003-12-19 2014-07-08 Salesforce.Com, Inc. Apparatus and methods for mediating messages
US7650380B2 (en) * 2004-02-12 2010-01-19 International Business Machines Corporation System and method for messaging and collaborating in an intranet environment
CA2556862C (en) * 2004-02-27 2010-07-20 Research In Motion Limited System and method for communicating asynchronously with web services using message set definitions
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
US7739351B2 (en) 2004-03-23 2010-06-15 Salesforce.Com, Inc. Synchronous interface to asynchronous processes
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
US7437169B2 (en) * 2004-06-07 2008-10-14 Microsoft Corporation System and method for optimizing network communication in response to network conditions
US8280948B1 (en) * 2004-06-08 2012-10-02 Persony Inc. System and method for enabling online collaboration amongst a plurality of terminals using a web server
US20060015622A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Enabling asynchronous transaction interactions on Web browsers
US20060026214A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Switching from synchronous to asynchronous processing
US7725605B2 (en) 2004-08-06 2010-05-25 Salesforce.Com, Inc. Providing on-demand access to services in a wide area network
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US7657618B1 (en) * 2004-10-15 2010-02-02 F5 Networks, Inc. Management of multiple client requests
US20060093125A1 (en) * 2004-11-02 2006-05-04 Dezonno Anthony J Messaging presence for non-messaging devices
US20060106840A1 (en) * 2004-11-04 2006-05-18 International Business Machines Corporation System and method for tracking notifications in a publish subscribe system
US7681074B2 (en) * 2005-04-29 2010-03-16 Microsoft Corporation Transport high availability
US7693071B2 (en) * 2005-05-27 2010-04-06 Microsoft Corporation System and method for routing messages within a messaging system
US7660850B2 (en) * 2005-05-27 2010-02-09 Microsoft Corporation Supporting a serial and a parallel invitation protocol
US7882176B2 (en) * 2005-05-27 2011-02-01 Microsoft Corporation Establishing a multiparty session by sending invitations in parallel
JP4725955B2 (ja) * 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
EP1775911B1 (en) * 2005-10-13 2018-02-28 BlackBerry Limited System and method for providing asynchronous notifications using synchronous data
US8095599B2 (en) * 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US20070094336A1 (en) * 2005-10-24 2007-04-26 Microsoft Corporation Asynchronous server synchronously storing persistent data batches
US8077699B2 (en) * 2005-11-07 2011-12-13 Microsoft Corporation Independent message stores and message transport agents
US8223777B2 (en) * 2005-11-15 2012-07-17 Oracle International Corporation Gateway for achieving low latency and high availability in a real time event processing system
US7921165B2 (en) * 2005-11-30 2011-04-05 Microsoft Corporation Retaining mail for availability after relay
US8090838B2 (en) 2006-02-16 2012-01-03 Microsoft Corporation Shell operation flow change
US7933964B2 (en) * 2006-02-16 2011-04-26 Microsoft Corporation Shell sessions
US8751579B1 (en) * 2006-03-02 2014-06-10 Salesforce.Com, Inc. Method and system of maintaining a browser in a design application workflow
US20090133129A1 (en) * 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
CN101390084B (zh) * 2006-03-06 2012-04-11 Lg电子株式会社 域管理方法、域扩展方法和参考点控制器选择方法
US7805532B2 (en) * 2006-04-29 2010-09-28 724 Software Solutions, Inc. Platform for interoperability
WO2007130312A2 (en) * 2006-04-29 2007-11-15 724 Solutions Software Inc. Channel selection/translation based on user-preference
US8327024B2 (en) * 2006-04-29 2012-12-04 724 Solutions Software, Inc. System and method for SMS/IP interoperability
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
KR100862354B1 (ko) * 2007-04-10 2008-10-13 전자부품연구원 비동기 검색 환경을 지원하는 멀티미디어 검색 방법
US8626951B2 (en) * 2007-04-23 2014-01-07 4Dk Technologies, Inc. Interoperability of network applications in a communications environment
US8635069B2 (en) 2007-08-16 2014-01-21 Crimson Corporation Scripting support for data identifiers, voice recognition and speech in a telnet session
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US8560669B2 (en) * 2007-09-26 2013-10-15 Quantcast Corporation Tracking identifier synchronization
US8515903B2 (en) 2007-10-03 2013-08-20 Database Logic Inc. Collaboration of plural databases by interaction through universal index
US20090094229A1 (en) * 2007-10-03 2009-04-09 Mark Warne Ferrel Method and apparatus for exploiting 'trace' function to support database integration
US8214847B2 (en) * 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
US8200836B2 (en) * 2007-11-16 2012-06-12 Microsoft Corporation Durable exactly once message delivery at scale
US7792997B2 (en) 2007-12-31 2010-09-07 Accenture Global Services Gmbh Freight backbone messaging architecture
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US9143540B2 (en) * 2008-04-24 2015-09-22 Oracle International Corporation System and method for providing service correlation in a service access gateway environment
US7970814B2 (en) 2008-05-20 2011-06-28 Raytheon Company Method and apparatus for providing a synchronous interface for an asynchronous service
EP2304924A1 (en) 2008-05-20 2011-04-06 Raytheon Company System and method for maintaining stateful information
ES2575006T3 (es) 2008-05-20 2016-06-23 Raytheon Company Sistema y método para filtrar mensajes
EP2281387A4 (en) 2008-05-20 2013-03-20 Raytheon Co SYSTEM AND METHOD FOR COLLABORATIVE MESSAGE TRANSMISSION AND DATA DISTRIBUTION
US7752261B1 (en) 2008-06-27 2010-07-06 Quant cast Corporation System and method for multibeaconing
US8949344B2 (en) * 2008-09-15 2015-02-03 Microsoft Corporation Asynchronous queued messaging for web applications
US8156203B2 (en) 2008-09-15 2012-04-10 Microsoft Corporation Dye injected request generation
CN101686245B (zh) * 2008-09-28 2014-06-11 国际商业机器公司 用于隔离超文本传输协议会话的方法和系统
US8005923B2 (en) * 2009-02-23 2011-08-23 International Business Machines Corporation System and method of obfuscating queue management
US9536222B2 (en) * 2009-12-28 2017-01-03 Sap Se Progress information in a service-oriented architecture
US8739166B2 (en) * 2009-12-28 2014-05-27 Sap Ag Progress-driven progress information in a service-oriented architecture
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
EP2595058A4 (en) * 2010-07-13 2014-03-12 Fujitsu Ltd DEVICE, SYSTEM, PROGRAM, AND METHOD FOR PROCESSING MULTIPLE PATHS
US8453127B2 (en) * 2010-09-20 2013-05-28 Sap Ag Systems and methods providing a token synchronization gateway for a graph-based business process model
CN102158518B (zh) * 2010-12-03 2014-04-30 华为技术有限公司 一种cdn网络中的数据传输方法、网络节点及系统
US9602287B2 (en) * 2011-06-02 2017-03-21 Sap Se Method and system for signed stateless data transfer
US8694998B2 (en) 2011-08-29 2014-04-08 Microsoft Corporation Cancellable command application programming interface (API) framework
US20130191500A1 (en) * 2012-01-19 2013-07-25 Ebay Inc. Methods and systems for providing a synchronous interface over an asynchronous message bus
US9253011B2 (en) * 2012-09-27 2016-02-02 Intuit Inc. Session-server affinity for clients that lack session identifiers
CN104184635B (zh) * 2014-08-19 2018-02-13 烽火通信科技股份有限公司 家庭网关基于Android RIL实现一对多数据通讯的方法及装置
US10033797B1 (en) * 2014-08-20 2018-07-24 Ivanti, Inc. Terminal emulation over HTML
JP6447224B2 (ja) * 2015-02-20 2019-01-09 日本電気株式会社 通信装置、中継装置、通信方法及び通信プログラム
US9961112B2 (en) * 2015-04-20 2018-05-01 Bomgar Corporation Method and apparatus for enforcing realtime access controls for endpoints
US10320906B2 (en) 2016-04-29 2019-06-11 Netapp, Inc. Self-organizing storage system for asynchronous storage service
US11100278B2 (en) 2016-07-28 2021-08-24 Ivanti, Inc. Systems and methods for presentation of a terminal application screen
US10397185B1 (en) * 2016-12-23 2019-08-27 EMC IP Holding Company LLC Scalable cloud hosted metadata service
US10574521B2 (en) * 2017-06-19 2020-02-25 Cisco Technology, Inc. Method and apparatus to predict configuration viability and dynamically manage multi-dimensional system scale in MSDC switches
US11516154B2 (en) * 2017-07-13 2022-11-29 Apple Inc. Systems for managing messaging conversations
CN111143745A (zh) * 2019-12-27 2020-05-12 中冶建筑研究总院有限公司 基于html的数据同步和交互的方法和系统
US11271968B2 (en) 2020-03-04 2022-03-08 International Business Machines Corporation Zero round trip time transmission for anticipatory request messages
CN112487218B (zh) * 2020-11-27 2023-07-14 北京百度网讯科技有限公司 内容处理方法、系统、装置、计算设备和存储介质
CN112395359B (zh) * 2020-11-30 2023-03-31 武汉烽火众智数字技术有限责任公司 一种基于数据库数据同步来实现http代理的方法和系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530848A (en) * 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
EP0706685B1 (en) * 1993-06-28 1997-12-03 Dow Benelux N.V. An integrated plant environment system having a PROGRAM-TO-PROGRAM COMMUNICATION SERVER and method
CA2148459C (en) * 1993-10-08 2000-01-11 Paul Clarke Message transmission across a network
GB9406477D0 (en) 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
GB2288477A (en) * 1994-04-05 1995-10-18 Ibm Communications system for exchanging data between computers in a network.
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US5889957A (en) * 1995-06-07 1999-03-30 Tandem Computers Incorporated Method and apparatus for context sensitive pathsend
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US6216151B1 (en) * 1995-12-13 2001-04-10 Bea Systems, Inc. Saving connection time by obtaining result of request at later reconnection with server supplied associated key
US5754772A (en) * 1996-03-26 1998-05-19 Unisys Corporation Transaction service independent HTTP server-to-transaction gateway
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6108689A (en) * 1996-10-11 2000-08-22 International Business Machines Corporation Method and system for processing messages in a distributed computing environment
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US6068661A (en) * 1997-10-01 2000-05-30 Micron Electronics, Inc. Method of emulating synchronous communication
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6055564A (en) * 1998-03-11 2000-04-25 Hewlett Packard Company Admission control where priority indicator is used to discriminate between messages

Also Published As

Publication number Publication date
KR20000010691A (ko) 2000-02-25
US6336135B1 (en) 2002-01-01
DE69731318D1 (de) 2004-11-25
CZ381198A3 (cs) 1999-10-13
DE69731318T2 (de) 2006-03-09
CN1219257A (zh) 1999-06-09
HUP9902190A2 (hu) 1999-11-29
WO1997045798A1 (en) 1997-12-04
GB2313524A (en) 1997-11-26
CN1117333C (zh) 2003-08-06
PL329935A1 (en) 1999-04-26
KR100275403B1 (ko) 2000-12-15
MY123071A (en) 2006-05-31
EP0978056A1 (en) 2000-02-09
GB9610898D0 (en) 1996-07-31
EP0978056B1 (en) 2004-10-20
JP3578221B2 (ja) 2004-10-20
JPH11510632A (ja) 1999-09-14
HUP9902190A3 (en) 2000-03-28

Similar Documents

Publication Publication Date Title
ES2227692T3 (es) Provision de enlaces de comunicaciones en una red de ordenadores.
KR100243637B1 (ko) 고-가용성 컴퓨터 서버 시스템
KR100722355B1 (ko) 동적 관리자가 장치된 컴퓨터 시스템에 의한액티브티-베이스 협력 방법 및 장치
KR100722916B1 (ko) 통신 관리자가 장치된 컴퓨터 시스템에 의한액티브티-베이스 협력 방법 및 장치
US8024404B2 (en) Method and apparatus for designating endpoints in a collaborative computer system to facilitate maintaining data consistency
EP0950969B1 (en) Method and system for out-tasking conversions of message attachments
US7171478B2 (en) Session coupling
EP0833260A2 (en) Computer system with network interface
KR100354369B1 (ko) 정보 처리 방법, 정보 처리 장치, 정보 처리 프로그램을 격납하는 기억 매체
US8095599B2 (en) Mail-based web application and document delivery
US7379998B2 (en) System and method for multi-platform queue queries
US7934218B2 (en) Interprocess communication management using a socket layer
Vinoski RPC under fire
US6915341B2 (en) System for sending messages to all users in a web hosting environment
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
ES2396226T3 (es) Seguimiento de datos relativos a cursos de aprendizaje por ordenador
US8606947B2 (en) Heuristics processing
KR100282616B1 (ko) 웹과 응용을 위한 멀티프로토콜 게이트웨이의 구조 및 처리방법
JP2007334575A (ja) メッセージ通信方法、システム及びプログラム