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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation 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.
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.
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.
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.
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">
"48"; max length="48">
y una aplicación
<input type="input";name="QMName";
size=
"48"; max length="48">
"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.
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)
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)
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 |
-
1996
- 1996-05-24 GB GB9610898A patent/GB2313524A/en not_active Withdrawn
-
1997
- 1997-04-30 MY MYPI97001890A patent/MY123071A/en unknown
- 1997-05-19 HU HU9902190A patent/HUP9902190A3/hu unknown
- 1997-05-19 CZ CZ983811A patent/CZ381198A3/cs unknown
- 1997-05-19 WO PCT/GB1997/001384 patent/WO1997045798A1/en active IP Right Grant
- 1997-05-19 PL PL97329935A patent/PL329935A1/xx unknown
- 1997-05-19 US US09/180,986 patent/US6336135B1/en not_active Expired - Lifetime
- 1997-05-19 DE DE69731318T patent/DE69731318T2/de not_active Expired - Lifetime
- 1997-05-19 JP JP54180997A patent/JP3578221B2/ja not_active Expired - Fee Related
- 1997-05-19 EP EP97923216A patent/EP0978056B1/en not_active Expired - Lifetime
- 1997-05-19 ES ES97923216T patent/ES2227692T3/es not_active Expired - Lifetime
- 1997-05-19 CN CN97194785A patent/CN1117333C/zh not_active Expired - Lifetime
- 1997-05-19 KR KR1019980708764A patent/KR100275403B1/ko not_active IP Right Cessation
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) | メッセージ通信方法、システム及びプログラム |