ES2219393T3 - Metodos y aparatos para el transporte eficiente de datos de aplicaciones interactivas entre un cliente y un servidor utilizando lenguaje de marcas. - Google Patents
Metodos y aparatos para el transporte eficiente de datos de aplicaciones interactivas entre un cliente y un servidor utilizando lenguaje de marcas.Info
- Publication number
- ES2219393T3 ES2219393T3 ES00961609T ES00961609T ES2219393T3 ES 2219393 T3 ES2219393 T3 ES 2219393T3 ES 00961609 T ES00961609 T ES 00961609T ES 00961609 T ES00961609 T ES 00961609T ES 2219393 T3 ES2219393 T3 ES 2219393T3
- Authority
- ES
- Spain
- Prior art keywords
- application
- server
- client
- component
- independent
- 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
- G06F8/00—Arrangements for software engineering
-
- 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/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Multi Processors (AREA)
- Digital Computer Display Output (AREA)
Abstract
Un método para transferir datos entre un cliente (110) y un servidor (130), que comprende las etapas de: ejecutar, mediante un nodo de servidor (130), un programa (132) de aplicación que afecta a un componente (136) de aplicación correspondiente a un elemento de interfaz gráfica de usuario; proporcionar un proceso (114) de cliente independiente de aplicación, cuyo proceso (114) de cliente independiente de aplicación afecta a una presentación visual de uno o más elementos de interfaz gráfica de usuario en el cliente (110) asociada con el programa (132) de aplicación; proporcionar un proceso (134) de servidor independiente de aplicación, cuyo proceso (134) de servidor independiente de aplicación transfiere datos (310) al proceso (114) de cliente independiente de aplicación, siendo los datos transferidos (310) representativos de un cambio a uno de los componentes (136) de aplicación afectado por el programa (132) de aplicación; y actualizar, mediante el proceso (114) de cliente independiente de aplicación, uno de los elementos de interfaz gráfica de usuario en el cliente (110) en respuesta a los datos transferidos (310).
Description
Métodos y aparatos para el transporte eficiente
de datos de aplicaciones interactivas entre un cliente y un servidor
utilizando lenguaje de marcas.
El presente invento se refiere a redes
cliente-servidor y, en particular, a métodos y
aparatos para ejecutar a distancia una aplicación y presentar
visualmente la salida de la aplicación.
Las redes contemporáneas de ordenadores
consisten en un número de sistemas de ordenadores, llamados nodos,
que comunican con otros sistemas de ordenadores por medio de
vínculos de comunicación. Típicamente, algunos de los nodos son
nodos de cliente y otros nodos son nodos de servidor. Un nodo de
cliente formula y descarga preguntas a un nodo de servidor. Un
usuario del nodo de cliente introduce las preguntas a través de una
interfaz de usuario que trabaja en el nodo de cliente. El nodo de
servidor evalúa las preguntas y entrega respuestas al nodo de
cliente para su presentación visual en la interfaz de usuario de
cliente.
Usualmente, los nodos de servidor albergan una
variedad de programas o procesos de aplicaciones a los que se puede
acceder y que se pueden ejecutar por nodos de cliente. Cuando un
nodo de cliente lanza un programa de aplicación, la ejecución de ese
programa de aplicación puede ocurrir bien en el nodo de cliente o
bien en el nodo de servidor, dependiendo del modelo de ordenador
seguido por la red de ordenadores.
En un modelo de ordenador basado en cliente, el
programa de aplicación se empaqueta y se envía al nodo de cliente, o
se pre-instala en este nodo, permitiendo que el nodo
de cliente ejecute la aplicación usando los recursos del nodo de
cliente. Este concepto tiene varios inconvenientes. En primer lugar,
el nodo de cliente debe tener memoria, espacio de disco y potencia
de proceso suficientes para ejecutar de un modo efectivo la
aplicación. Un problema concomitante que se plantea usando este
modelo estriba en que el número de aplicaciones que es capaz de
ejecutar un cliente determinado es limitado, debido a las
restricciones de recursos del cliente. Además, las aplicaciones
construidas de este modo son complicadas de desarrollar y mantener,
y típicamente requieren la modificación o la "introducción de
puertas" para todos los tipos de sistemas informáticos soportados
por cliente. Más aún, esta técnica exacerba la carga administrativa
sobre un administrador de red.
En un modelo de ordenador basado en servidor, el
nodo de servidor ejecuta el programa de la aplicación, y solamente
la información de control para la interfaz de usuario de cliente se
transmite a través de la red de ordenadores al nodo de cliente para
presentación visual. Usando este concepto, los eventos de interfaz
de usuario deben enviarse entre el cliente y el servidor para que la
aplicación de servidor procese los eventos. Esto resulta en demoras
observadas de respuesta de interfaz de usuario. Adicionalmente, el
programa de aplicación se debe escribir específicamente, o cambiar,
para soportar la interfaz de usuario en el nodo de cliente. Esto
aumenta la complejidad de la aplicación, e impide que esta técnica
sea útil con aplicaciones de almacén.
Un refinamiento del modelo basado en servidor
consiste en suplantar el activador de dispositivo al que comunica
la aplicación, con el fin de enviar actualizaciones de pantalla y de
dispositivo en una y otra dirección entre el cliente y el servidor.
Este concepto evita la necesidad de que tengan que reescribirse las
aplicaciones. Sin embargo, este concepto requiere el envío de
información de dispositivo entre el cliente y el servidor con el fin
de mantener la presentación visual de cliente, introduciendo de
nuevo un tiempo de espera observado en la interfaz. Además, se
aumentan los requisitos de tratamiento del lado del cliente, con el
fin de satisfacer la información de dispositivo resultante requerida
para comunicación con cada cliente conectado.
Un refinamiento adicional reciente del modelo
basado en servidor consiste en desplegar la parte de interfaz de
usuario de la aplicación como un documento de lenguaje "Hyper Text
Markup Language" (en adelante HTML). Sin embargo, al usar este
concepto, la información enviada desde la aplicación del servidor al
cliente empieza a "envejecer" inmediatamente. En otras
palabras, la información puede cambiar en el servidor, pero al
cliente no se le notificaría ni actualizaría automáticamente.
Además, con este concepto la interactividad requiere conmutar
contexto entre páginas aún para realizar tareas sencillas.
El presente invento evita estas deficiencias.
El presente invento, según se ha reivindicado,
proporciona un mecanismo mediante el cual la parte de interfaz de
usuario de la aplicación se puede descargar al usuario de ordenador,
bien en la misma máquina en la que se esté ejecutando la aplicación
, o bien en otra máquina distante de la máquina que ejecuta la
aplicación. El invento separa la interfaz de usuario de la
aplicación subyacente permitiendo que la parte interactiva de
usuario de la aplicación sea extremadamente sencilla. El invento
permite también que la parte interactiva de usuario se despliegue en
un intervalo amplio de entornos de hardware de cliente sin que ello
lleve consigo toda la lógica requerida para llevar a cabo la
funcionalidad de una aplicación particular. Estas características
aportan al usuario el efecto de interactuar directamente con la
totalidad de la aplicación, aún cuando la parte principal de la
aplicación esté ejecutándose potencialmente en algún otro
lugar.
De ese modo, el presente invento soluciona muchos
de los problemas enfrentados por conceptos tradicionales
anteriormente indicados. La interfaz de usuario, incluso la lógica
de manipulación de eventos y de reproducción de pantalla, permanecen
en el cliente, reduciendo así drásticamente el tráfico de red y el
tiempo de espera. Toda la interfaz de usuario y la forma en que la
interfaz conecta a los componentes de la aplicación en el servidor
se envían como una pura descripción de datos al cliente (en vez de
un código). Esta descripción se "interpreta" por parte del
cliente para reproducir la interfaz gráfica de usuario (en adelante
GUI) y conectar a la aplicación (a través de la transferencia de
estado) que se ejecuta en el mismo espacio de proceso (misma
máquina) o bien en el servidor (máquina distante).
Debido a que el servidor puede comunicar con un
cliente de aplicación particular simplemente con una descripción de
datos, no es necesario instalar un código adicional en la máquina
del cliente. Un proceso de cliente independiente de aplicación (en
adelante AICP) lee la descripción y presenta esta descripción al
usuario como una interfaz típica de usuario de cliente. Por tanto,
el AICP puede comunicar con un número ilimitado de aplicaciones de
servidor con una nueva descripción de datos de archivo para cada
programa (que se pueden acumular automáticamente en submemoria según
sea requerido o especificado por el cliente). Usando este concepto,
no se requiere una administración específica de aplicación para
ejecutar una aplicación de ACIP desplegado.
Con el AICP, no se requiere tratamiento del lado
servidor para entregar la parte de interfaz de usuario ni para
manipular la parte de eventos de la GUI de la aplicación. Sin
embargo, el servidor sí coordina la información de estado que está
pasando a y desde el cliente y envía esa información automáticamente
a los componentes apropiados de aplicación que estén implicados
(cambios de datos iniciados tanto desde cliente como desde
servidor).
Utilizando el AICP, el promotor puede
concentrarse principalmente en la parte de lógica funcional o
comercial de la aplicación, y dejar que el AICP manipule todo lo
concerniente a reproducción de interfaz de usuario, manipulación de
eventos, y conexión de los controles de interfaz de usuario con los
componentes de aplicaciones subyacentes. Una componente de
constructor permite al promotor establecer la disposición general de
las ventanas de interfaz de usuario, así como crear una relación
entre el control visual y el componente de servidor de aplicación
subyacente con el que está asociado. Con el AICP no es necesario
enviar al cliente un código específico de aplicación. Sólo es
necesario enviar controles de interfaz de usuario, si se requiere.
Aún cuando no hay código en el cliente, la experiencia de usuario
con la aplicación de cliente es similar a los clientes codificados
manualmente que se encuentran en el modo basado en cliente. En una
realización, el AICP está introducido en un entorno de explorador
HTML que permite el despliegue del sitio de web dentro de una página
HTML sin la limitación asociada con el HTML.
Los anteriores y otros objetos, características y
ventajas del invento resultarán aparentes a partir de la siguiente
descripción más particular de las realizaciones del invento, según
se ilustra en los dibujos adjuntos.
La Figura 1 es un diagrama de bloques de una
realización del sistema del invento;
La Figura 2 es un diagrama de bloques de una
realización de la configuración de memoria de un servidor construida
de acuerdo con el invento;
La Figura 3 es un diagrama operativo de bloques
que muestra una realización de las comunicaciones entre un nodo de
servidor y un nodo de cliente construidas de acuerdo con el
invento;
La Figura 4 es un diagrama de bloques de una
realización de la configuración de memoria de un cliente construida
de acuerdo con el invento;
La Figura 5 es un diagrama de flujo de una
realización del funcionamiento del servidor construido de acuerdo
con el invento; y
La Figura 6 es un diagrama de flujo de una
realización del funcionamiento del nodo de cliente construido de
acuerdo con el invento.
Aunque el método y aparato del presente invento
se describen en el contexto de un proceso de servidor de web y de
explorador de web que comunica sobre la Internet, los expertos en la
técnica reconocerán que el presente invento se puede llevar también
a la práctica sobre cualquier otro tipo de red (por ejemplo,
teléfono, cable, red de área local o LAN, red de área extensa o WAN,
sin hilos, fibra), dentro del mismo sistema físico de ordenador, o
con partes del invento (por ejemplo, el proceso de cliente
independiente de aplicación) funcionando en un dispositivo de
Internet o en una caja de receptor de TV por cable. Para las
personas que no estén familiarizadas con la red Internet, la red
mundial (www), los servidores de web, y los exploradores de web, se
presenta en esta memoria una breve visión de conjunto de estos
conceptos.
Con referencia a la Figura 1, un usuario que
desee acceder a información y ejecutar aplicaciones en la Internet
120 dispone típicamente de una estación de trabajo 110 de ordenador
que ejecuta un programa de aplicación conocido como un explorador de
web 112. Como un elemento enchufable al explorador de web 112 se ha
provisto en una realización un proceso de cliente independiente de
aplicación (AICP) 114, de acuerdo con el presente invento. El
usuario interactúa con el explorador de web 112 y con el AICP 114 a
través de una interfaz 116 de usuario que en una realización incluye
un dispositivo de entrada de datos (por ejemplo un teclado) y un
dispositivo de presentación visual (por ejemplo, un monitor de
ordenador). Bajo el control del explorador 112 de web, la estación
de trabajo 110 de usuario envía una solicitud 122 de página de web
sobre la Internet 120. Los datos de página de web pueden ser en la
forma de texto, gráficos y otras modalidades de información. Cada
sistema 130 de ordenador de servidor de web en la Internet 120 tiene
una dirección conocida (una URL) que el usuario debe suministrar al
explorador 112 de web con el fin de conectar al servidor apropiado
130 de web. Debido a que el servidor 130 de web puede contener más
de una página de web, el usuario especificará también en la
dirección qué página particular 124 de web desea ver en el servidor
130 de web. El sistema 130 de ordenador de servidor de web ejecuta
un programa 132 de aplicación de servidor de web, solicitudes de
monitores, y solicitudes de servicios para las que tiene
responsabilidad. Cuando una solicitud especifica servidor 130 de
web, el programa 132 de aplicación de servidor de web generalmente
tiene acceso a una página 124 de web correspondiente a la solicitud
específica 122 de página de web, y transmite la página 124 de web a
la estación de trabajo 110 de usuario. La solicitud 122 de página de
web incluye también, en una realización, una solicitud para ejecutar
un programa de aplicación en el sistema 130 de ordenador de servidor
de web. Un proceso de servidor independiente de aplicación (AISP)
134 recibe información contenida en esta solicitud y responde
ejecutando el programa de aplicación deseado y accediendo a
componentes 136 de aplicación que sean necesarios para el AICP
114.
En general, una página de web contiene los datos
visuales primarios presentados en la interfaz 116 de usuario de la
estación de trabajo 110 de usuario. Cuando el servidor 130 de web
recibe una solicitud 122 de página de web, construye una página de
web en HTML y la transmite a través de la Internet 120 al explorador
solicitante 112 de web. El explorador 112 de web interpreta el HTML
y entrega como salida la página 124 de web al monitor de la estación
de trabajo 110 de usuario. La página 124 de web presentada en la
pantalla del usuario puede contener texto, gráficos, y vínculos (que
son direcciones de otras páginas de web). Estas otras páginas de web
(es decir, las representadas por vínculos) pueden estar en el mismo
servidor o en servidores diferentes. El usuario puede ir a estas
otras páginas haciendo "clic" en estos vínculos usando un ratón
u otro dispositivo indicador. Este sistema completo de páginas de
web que enlaza las otras páginas de web en otros servidores a través
de todo el mundo es conocido como el "Web a escala mundial"
(www, World Wide Web).
Con el presente invento, una interfaz interactiva
gráfica de usuario se introduce en la página de web o puede traerse
como un diálogo separado desde la página de web. En una realización,
el ACIP es un control ActiveX introducido en la página HTML
anteriormente mencionada. El control ActiveX interpreta datos XML
que se descargan subsiguientemente en un archivo de descripción (que
se describe más adelante) y entrega una interfaz gráfica de usuario.
Este control introducido es una realización del AICP.
Con referencia a la Figura 2, situados en la
memoria del sistema 130 de servidor se encuentran un sistema
operativo 410, una aplicación 132 de servidor de web, programas 420
de aplicación, componentes 136 de aplicación, un procesador 430 de
transacción, información de estado, información de objeto, y datos
(no mostrados), y uno o más ejemplos de un AISP 134.
Los programas 420 de aplicación son ejecutados
por la CPU (unidad central de tratamiento) del sistema 130 de
servidor bajo el control del sistema operativo 410. Los programas
420 de aplicación se pueden ejecutar usando como entrada datos de
programa, tales como los recibidos del AICP 114. Los programas de
aplicación pueden también entregar como salida sus resultados como
datos de programa en memoria.
El procesador 420 de transacción es un programa
que recibe información desde la aplicación 132 de servidor de web a
través de una interfaz de puerta común (no mostrada), interpreta la
información para determinar si se requiere un ejemplo específico de
un AISP 134, y lanza el ejemplo AISP 134 para tratamiento adicional
de la solicitud recibida del AICP 114.
Con referencia a la Figura 3, el presente invento
incluye el AICP 114 y el AISP 134. El AICP 114 entrega la interfaz
gráfica de usuario (GUI) que se presenta visualmente al usuario en
la interfaz 116 de usuario. El AICP 114 mantiene también una
relación entre los objetos de control presentados en la interfaz 116
de usuario y los componentes 136 de aplicación mantenidos en el
servidor 130 de web. El AISP 134 rastrea el estado de los
componentes 136 de aplicación junto con los objetos de control
presentados en la estación de trabajo 110 de usuario que requieran
actualizaciones de estos componentes de aplicación. Siempre que el
estado cambia, bien en el cliente (estado de control) o bien en el
servidor (estado de componente), el AICP 114 y el AISP 134 toman
la acción adecuada basándose en la descripción de datos que define
la relación entre los controles de la GUI y los componentes 136 de
aplicación de servidor (a los que de aquí en adelante se hará
referencia como componentes de servidor) que ellos
representan.
representan.
Refiriéndose también a la Figura 4, la relación
446 entre los objetos 624 de control presentados en la interfaz 116
de usuario de la estación de trabajo 110 de usuario y los
componentes 136 de servidor mantenidos en el servidor 130 de web
incluye datos que describen una relación explícita entre sus
respectivas interfaces de objeto. A estos datos de aquí en adelante
se hará referencia como una conexión. Los AICP y AISP contienen
lógica que puede interpretar conexiones que relacionan un control
visual con un componente de aplicación.
Por ejemplo, un control de barra de
desplazamiento es representativo de un tipo de objeto de control que
se puede presentar en la interfaz 116 de usuario de la estación de
trabajo 110 de usuario. El control de barra de desplazamiento se
puede asociar con el valor de un componente de aplicación, tal como
la temperatura de un proceso industrial. Cuando la aplicación de
servidor detecta un cambio de temperatura, el estado de los
componentes 136 de aplicación cambia, y estos cambios 330 de estado
se envían al cliente. La barra de desplazamiento es
subsiguientemente reextraida por el AICP para reflejar el nuevo
valor. Análogamente, si una barra de desplazamiento está conectada a
un componente 136 de aplicación que controla a un termostato,
entonces, cuando el usuario interactúa con la barra de
desplazamiento en la interfaz 116 de usuario, el cambio de estado se
transmite al programa 132 de aplicación de servidor de web, que
cambiará el estado del componente adecuado 136 de aplicación que
subsiguientemente ajusta el
termostato.
termostato.
Aunque éste es un ejemplo sencillo, las
conexiones pueden formar relaciones (por ejemplo, relaciones 446 de
datos en la Figura 2) entre tipos de objeto muy complejos como
componentes compuestos (componentes que contienen referencias de
componente). Los controles pueden estar ligados (conectados) a
componentes complejos o a un compuesto de controles (al que
comúnmente se hace referencia como un diálogo). Cuanto más compleja
sea la relación 446 (Figura 2), más prolija será la información de
conexión. Sin embargo, la información de conexión se puede
empaquetar como una entidad designada, a la que se pueda hacer
referencia en otro contexto para que sea posible reusar la
conexión.
Entre el AICP 114 y el AISP 134 existe una
conexión física. Esta conexión física puede basarse en red (siendo
el servidor y el cliente nodos diferentes en una red) o bien basarse
en memoria (estando el servidor y el cliente en el mismo sistema de
ordenador). Esto significa que los objetos de control se pueden
conectar a componentes de servidor donde ambos existan en la misma o
en diferentes máquinas físicas (así como en el mismo proceso en la
misma máquina o en procesos diferentes en máquinas diferentes).
La información de conexión se puede definir en un
archivo de descripción en una variedad de formatos, tales como el
formato XML que se ha mencionado anteriormente. Los datos de XML
incluyen también la descripción de disposición general de la GUI (es
decir, los datos 448 de interfaz de usuario de la Figura 2). Siempre
que un objeto 624 de control está asociado con un componente 136 de
servidor dentro de una disposición general de GUI (una ventana de
diálogo), la descripción de conexión está incluida (en contexto) con
la información de disposición general. Esta es la información que
usa el AICP 114 para ejecutar la aplicación y presentar los
resultados al usuario. Una vez que un diálogo está ejecutándose a
través del AICP 114, los cambios de estado que se producen en los
objetos de control (estados de control) o en los componentes de
servidor (estado 442 de componente, Figura 2) se empaquetan y envían
entre el AICP 114 y el AISP 134. Es ésta una conexión de dos vías, y
es asíncrona para minimizar el tiempo de espera interactivo.
El archivo de descripción puede estar en un
formato XML, que es un formato conveniente para el despliegue de
datos sobre una red y se parece a una estructura de archivo
atribuida, por ejemplo como se muestra en el Apéndice. También se
dispone de un número de otros formatos adecuados de base de datos,
tales como archivo plano, SQL, OODB, etc. El formato XML consta de
nombre, tipo, y pares de valores, que permiten tanto al AICP 114
como al AISP 134 recorrer e interpretar la información en el mismo
formato de archivo durante el tiempo de ejecución. El archivo XML
que es interpretado por el cliente y los AISP en el tiempo de
ejecución pueden ser idénticos. Los datos contenidos en el archivo
XML serán interpretados de modo diferente por el AICP 114 y por el
AISP 134 de acuerdo con las diferentes funciones que necesitan
realizarse en cada lado de la conexión. Aunque el archivo de
descripción se describe en la presente memoria como estando situado
en los mismos sistemas de ordenador que los AICP 114 y AISP 134, los
expertos en la técnica reconocerán que el archivo de descripción
puede estar
situado en cualquier lugar de red que sea accesible por los AICP y
AISP.
Refiriéndose a las Figuras 2 y 4, el AISP realiza
las siguientes funciones: envía la corriente de datos XML al AICP
114, lee el archivo 310 de descripción (Figura 3) (que se puede
transmitir como una corriente de datos XML), responde a las
solicitudes del AICP 114 de fijarse a los componentes 136 de
servidor, mantiene una conexión plena de estado, y localiza el
contexto en el servidor 130 de web. Nótese que pueden existir
múltiples AISP en la memoria del servidor de web en cualquier
instante determinado.
En uso, y refiriéndose a la Figura 5, un promotor
primero diseña (etapa 710) la disposición general de la interfaz 116
de usuario que se presentará por último en la estación de trabajo
110 de usuario, y al hacerlo así establece las relaciones entre los
objetos 624 de control (Figura 4) y los componentes 136 de servidor.
Una vez que se ha formulado esta información, se guarda (etapa 712)
en un archivo 310 de descripción. Cuando el AICP 114 transmite una
solicitud para ejecutar un programa 420 de aplicación en el servidor
130 de web, el procesador 430 de transacción (Figura 2) recibe
(etapa 714) la solicitud, ejemplifica (etapa 718) un AISP 134
asociado con el programa 420 de aplicación si no está ya cargado en
la memoria un ejemplo, y lanza (etapa 720) el programa 420 de
aplicación. Una vez que el AICP 114 recibe el archivo 310 de
descripción, transmite una solicitud de conexión al AISP 134. El
AISP 134 recibe (etapa 722) la solicitud de conexión y carga (etapa
724) en la memoria del servidor el archivo 310 de descripción
asociado con el programa solicitado 420 de aplicación.
El archivo 310 de descripción asociado con el
programa solicitado 420 de aplicación se carga con el fin de
conectar el AICP 114 con los componentes apropiados 136 de servidor.
El archivo 310 de descripción contiene información suficiente con
respecto a las relaciones entre objetos 624 de control (Figura 4) y
componentes 136 de servidor para permitir que el AISP 134 administre
los componentes de servidor y que el AICP 114 gestione los objetos
de control.
Después de cargar el archivo 310 de descripción,
el AISP 134 forma (etapa 726) un objeto 452 de administrador para
cada componente 136 de servidor que probablemente estará implicado
en esa conexión de cliente/servidor. Además, se crea un objeto único
de administrador (etapa 728) para cada control que podría ser
ejemplificado asimismo en el cliente (referido como objeto Meta
454). El objeto Meta 454 almacena datos tales como información de
miembro, información de diálogo, información de conexión,
información de conexión objeto a objeto, y una referencia a un
componente de administrador de cliente con el fin de conectar de un
modo efectivo objetos 624 de control a componentes 136 de
servidor.
La información de miembro incluye las
propiedades, funciones, y eventos disponibles en la interfaz de un
objeto de control. Esta información se utiliza para manifestar a un
manipulador 450 de conexión cómo comunicar con objetos de control
particulares (así como con componentes de servidor) implicados en la
conexión durante el tiempo de ejecución. La información de diálogo
es la información de la disposición general de la GUI que se usa
por el AICP 114 para entregar la interfaz 116 de usuario en la
estación de trabajo 110 de usuario. La información de diálogo
especifica también el tipo de objeto 624 de control o de componente
136 de servidor que estará implicado en la conexión. La información
de conexión describe el modo en que un objeto particular 624 de
control está asociado con un componente particular 136 de servidor.
La información de conexión de objeto a objeto proporciona una
descripción de conexión que habilita una conexión de cliente a
componente de servidor y una conexión de componente de servidor a
componente de servidor. Esto permite a los componentes de servidor
comunicarse entre sí sin conocer detalles específicos de los objetos
a los que están conectados.
El componente de administrador de cliente
proporciona una interfaz estándar que permite al AISP 134
comunicarse con la aplicación 420 de extremo posterior. El
administrador de cliente es una interfaz de componente que debe
implementarse por el programa 420 de aplicación de servidor con el
fin de poner en los valores iniciales el comportamiento del AICP
114. La interfaz de componente de administrador de cliente, en una
realización, incluye 4 funciones: cliente puede conectar (), cliente
puede desconectar (), cliente conectado (), y cliente desconectado
(). A estas funciones se les llama siempre que un nuevo AICP desea
conectar o desconectar un programa 420 de aplicación en el servidor
130 de web.
Cuando se crea un diálogo en el AICP 114, se
notifica al AISP 134 que debe crear una fijación física al ejemplo
relevante del componente 136 de servidor en el servidor 130. Con el
fin de establecer esta fijación física, el AISP 134 representa
(etapa 732) los controles de objeto en la interfaz 116 de usuario a
los componentes 136 de servidor. La descripción de diálogo del
componente 136 de servidor puede encontrarse en el objeto Meta 454.
En este punto, el AISP 134 obtiene el nombre del diálogo que se va
a crear en el AICP 114 y recibe acceso a un ejemplo de componente
136 de servidor. Un manipulador 450 de conexión se ejemplifica para
cada control que requiere conexión a un parte del ejemplo de
componente de servidor. El manipulador 450 de conexión pone en los
valores iniciales y mantiene la conexión entre el objeto 624 de
control y el componente 136 de servidor. Solamente se crearán en
este punto los manipuladores 450 de conexión que estén marcados como
"ejecutar en el servidor". Si estuviesen marcados como
"ejecutar en el cliente", entonces el AICP 114 ya habría
creado uno. El manipulador 450 de conexión se asigna a un
identificador 618 (Figura 4), que es idéntico al provisto para el
objeto 624 de control del AICP 114. Este identificador 618 se usa
para sincronizar los mensajes de información que van y vienen entre
el AICP 114 y el AISP 134.
Análogamente al objeto de diálogo descrito en la
sección del AICP, el servidor forma (etapa 730) un objeto proxy
(filtro) 456 del lado de cliente que arbitra los mensajes enviados
entre el lado cliente de la conexión de servidor y el AICP 114. El
manipulador 450 de conexión comunica con este objeto proxy 456 como
si fuera el propio objeto 624 de control. El objeto proxy 456
transmite un valor para el objeto 624 de control al AICP 114, que a
su vez modifica el objeto 624 de control en la interfaz 116 de
usuario. De esta manera, el objeto proxy 456 puede transmitir
información de estado inicial al AICP 114 (etapa 734) así como
actualizar el AICP 114 con cambios 330 de estado de un componente
particular 136 de servidor en el servidor 130 (etapa 738).
Similarmente, cuando cambia el estado 622 de control de un objeto
624 de control en el AICP 114, el estado modificado de control se
envía al AISP (usando el identificador 618 de control asignado a ese
objeto particular 624 de control) por medio del objeto proxy 456.
Una vez que el objeto proxy 456 ha recibido el estado modificado de
control, el objeto proxy 456 notifica al manipulador 450 de
conexión que ha cambiado el estado del objeto de control, a fin de
que se pueda incorporar el estado modificado al componente adecuado
136 de servidor.
Similarmente al AICP 114, el AISP 134 mantiene
(etapa 736) la conexión por la duración del diálogo. Cuando el
diálogo es cerrado por el usuario, o por medio de algún otro
dispositivo (por ejemplo, una notificación por un componente de
servidor para cerrar todos los diálogos conectados), el AISP 134
extrae y suprime cada uno de los manipuladores 450 de conexión
asociados con la conexión al diálogo. Además, se descartan también
los objetos proxy 456 usados para comunicar en nombre de los objetos
624 de control.
El AISP 134 usa un administrador de componentes
(no mostrado) para mantener una lista de componentes involucrada en
las conexiones del lado cliente. El administrador de componente
mantiene un rastreo de todos los diálogos que están unidos
activamente a componentes de servidor por la duración del diálogo.
Cada vez que se crea un diálogo en un AICP 114, se añade una
referencia a la lista mantenida por el administrador de componentes.
Esta referencia identifica todos los manipuladores de conexión del
lado servidor, que a su vez referencian los objetos proxy de control
implicados en una conexión. Cuando se cierra un diálogo, el AISP 134
se refiere a esta lista para buscar la información de conexión del
diálogo y elimina de la lista la referencia de diálogo.
Aunque el AICP 114 y el AISP 134 representan
papeles diferentes, gran parte de su respectivo código es idéntica.
La clave para hacer casi idénticos al AICP y al AISP está en
proporcionar una interfaz estándar de objeto que conecte los objetos
624 de control del AICP 114 y los componentes 136 de servidor del
AISP 134. La lógica de intérprete de los procesos independientes de
aplicación puede conectar cada lado respectivo (cliente o servidor)
exactamente de la misma manera (a través de una interfaz estándar de
objeto). El hecho de que el objeto de control sea visual es sólo un
efecto lateral de la implementación del objeto. Por tanto, el
presente invento se puede aplicar a una serie de implementaciones
que no requieren una presentación visual.
Con referencia de nuevo a la Figura 4, el AICP
114 puede residir en la memoria de la estación de trabajo 110 de
usuario. La memoria guarda también el sistema operativo 612
instalado en la estación de trabajo 110 de usuario y el programa 112
de aplicación de explorador de web dentro del que se lanza el AICP
114. El AICP 114 realiza las siguientes funciones: lee el archivo
310 de descripción de datos, entrega la interfaz 116 de usuario,
agrega controles conectados, mantiene una conexión de estado
completo, y rastrea el contexto en el cliente.
Refiriéndose también a la figura 6, el AICP 114
se instala primero en la estación de trabajo 110 de usuario. El
método más común de instalación es instalar manualmente el AICP 114
por medio del procedimiento de instalación del sistema (por ejemplo,
en el sistema operativo Microsoft Windows, usando la función
"Añadir/Eliminar programas"). Alternativamente, el AICP 114 se
puede instalar automáticamente por medio de un protocolo enchufable
basado en web.
Como no existe código en el cliente que
represente el programa 420 de aplicación, el AICP 114 soporta una
serie de conceptos en el establecimiento de la conexión inicial al
programa 420 de aplicación del lado servidor. La información
requerida por el AICP 114 para interactuar con el programa 420 de
aplicación incluye: el nombre del proceso de servidos a ejecutar, la
localización del archivo 310 de descripción en un servidor de red,
cualesquiera argumentos iniciales que deban comunicarse al programa
420 de aplicación cuando se conecte, y la versión actual del archivo
de descripción. Esta información puede contenerse en un archivo de
puesta en valores iniciales que se carga cuando se lanza el AICP
114.
Cuando se inicia el AICP 114, tendrá acceso
(etapa 810) al archivo de puesta en valores iniciales y, usando la
información contenida en el mismo, transmitirá una solicitud al
servidor 134 para ejecutar el programa deseado 420 de aplicación.
Como se ha descrito anteriormente, el procesador 430 de transacción
del servidor 130 envía un archivo 310 de descripción al ACIP 114,
que entonces compara el sello de versión del archivo de descripción
recibido con el contenido en la memoria local 610 de la estación de
trabajo 110 de usuario (obtenida de una transacción anterior o
durante la instalación del AICP 114). Entonces, el AICP 114 puede
determinar (etapa 812) qué versión del archivo 310 de descripción
debe cargar. Por defecto, el AICP 114 solamente descarga el archivo
310 de descripción del procesador 430 de transacción si el sello de
versión del archivo del servidor es posterior a un archivo guardado
en submemoria ya residente en el cliente. El archivo 310 de
descripción es peculiar a un programa 420 de
aplicación específica.
aplicación específica.
Una vez descargado (o cargado localmente
procedente de una submemoria de archivo), el archivo 310 de
descripción proporciona al AICP 114 la descripción de diálogo del
programa 420 de aplicación. El AICP 114 procede entonces a
interpretar (etapa 814) los datos de descripción de ese diálogo para
construir los objetos 624 de control que existan dentro del diálogo
y realizar la disposición general de los objetos 624 de control en
la interfaz 116 de usuario para su presentación al usuario.
Entretanto, el AICP 114 transmite una solicitud
(etapa 816) al AISP 134 de establecer una conexión lógica a los
componentes 136 de servidor. Tras conectar de forma satisfactoria a
los componentes 136 de servidor en el servidor 130, el AICP 114
recibe (etapa 818) y subsiguientemente puebla los objetos 624 de
control de diálogo con información 622 de estado de control
correspondiente al estado 442 de componente de servidor.
Los cambios de estado para un contexto visual
particular (por ejemplo, un diálogo) se envían al AICP 114 como un
paquete lógico por razones de optimización, aunque la estructura del
paquete de cambio de estado es idéntica con independencia de si se
ha producido un solo cambio de estado o una pluralidad de cambios de
estado. En este punto, los objetos 624 de control se conectan
activamente a los componentes 136 de servidor de tal manera que los
cambios de estado en cualquiera de los dos lados se reflejan en el
otro. Una vez que los objetos 624 de control reflejan el estado
actual 442 de componente de servidor, el diálogo se despliega (etapa
820) por medio de la interfaz
116 de usuario.
116 de usuario.
Los objetos 624 de control están asociados con
los componentes 136 de servidor mediante una propiedad de referencia
que se provee como parte de la descripción del objeto 624 de
control, que está incluida en la descripción total de disposición
general de diálogo. Esta referencia puede ser el nombre asignado a
la descripción de conexión y el tipo del componente asociado 136 de
servidor. Para cada uno de los objetos 624 de control que están
conectados a los componentes 136 de servidor se computa un
identificador único 618 de control. Este identificador 618 de
control se usa para coordinar cambios 330 de estado con el AISP 134
cuando se conecta al ejemplo apropiado de componente de servidor que
está asignado a ese objeto 624 de control. Es de hacer notar que
muchos objetos de control pueden estar ligados al mismo componente
136 de servidor.
Como el AICP 114 y el AISP 134 son procesos
ampliamente idénticos, algunas de las conexiones pueden residir en
el cliente. A veces, es útil ejemplificar la lógica de conexión que
vincula un objeto 624 de control de cliente a un componente 136 de
aplicación de servidor en cualquiera de los dos AICP 114 o AISP
134. La selección de dónde ejemplificar la lógica de conexión
depende del volumen de flujo de información que entra en cada lado
de la conexión. Por ejemplo, si la carga es más pesada en el lado
del cliente, entonces es mejor ejemplificar el manipulador de
conexión en el cliente. De este modo, la utilización del ancho de
banda se puede personalizar basándose en la clase de conexión y de
los componentes implicados de cliente y de servidor.
Durante todo el tiempo que un diálogo está
presentado en un AICP 114 particular, los manipuladores 450 de
conexión mantienen (etapa 822) una conexión de estado completo en
tiempo real a los componentes asociados 136 de servidor. El
manipulador 450 de conexión responde a cambios 330 de estado en el
objeto 624 de control de cliente, o bien en su componente asociado
136 de servidor. El manipulador 450 de conexión también es capaz de
transformar los datos basándose en un conjunto de reglas definidas
por el promotor. El manipulador 450 de conexión es capaz de mantener
estado en cada lado de la conexión mediante el mantenimiento (etapa
822) de referencias a los objetos 624 de control implicados en la
conexión.
El manipulador 450 de conexión mantiene también
una conexión de estado completo siempre que cambia un miembro de un
componente complejo. Esto sucede cuando a una propiedad (que es un
miembro de un componente complejo que puede guardar un valor de un
tipo particular o estar vacío) de un control complejo se le asigna
un valor nuevo (que él mismo puede ser un componente complejo o
simple). Cuando el manipulador 450 de conexión detecta un cambio de
propiedad, ejecuta la transformación de conexión apropiada. Además,
si un objeto 624 de control estuviese fijado a esa propiedad no
sería conectado al valor nuevo. El manipulador de conexión
involucrado eliminará la referencia al valor antiguo y creará una
referencia al valor recientemente asignado (de la propiedad). De
esta manera, los objetos 624 de control se actualizan (etapa 824)
con los cambios 330 de estado que se reciben del AISP 134, y los
cambios de estado que ocurren en un objeto 624 de control se
transmiten (etapa 826) al AISP 134 para actualizar los componentes
apropiados 136 de servidor.
Una aplicación de GUI implica varias relaciones
que describen el acceso del usuario a la aplicación subyacente, Por
ejemplo, un diálogo puede contener un pulsador (que es un ejemplo de
un objeto de control), que cuando se selecciona hará saltar otro
diálogo. Es importante que el AICP 114 y el AISP 134 mantengan
activamente este contexto con los componentes 136 de servidor. Un
diálogo de salto representa usualmente un miembro complejo de
propiedad de un componente complejo. Otro escenario de salto se
presenta cuando el diálogo de salto proporciona un argumento a una
función que es un miembro de un componente complejo. Estas
relaciones 446 de datos representan contexto de aplicación que es
rastreado por el AIP, eximiendo de ese modo al promotor de tener que
crearlas explícitamente y mantenerlas.
El AICP 114 crea un objeto de contenedor para
cada diálogo que se crea en la estación de trabajo 110 de usuario.
Este objeto de contenedor rastrea la duración del diálogo con
respecto al componente 136 de servidor. El objeto de contenedor
detecta cuándo el diálogo es cerrado por el usuario, y toma la
acción adecuada para cerrar los manipuladores 450 de conexión
asociados con los objetos 624 de control dentro del diálogo. El
objeto de contenedor coordina también el tratamiento de los mensajes
de cambio de estado que circulan entre el AICP 114 y el AISP 134.
Siempre que el objeto de contenedor recibe un cambio 330 de estado
del AISP 134, extrae el identificador 618 de control contenido en el
mensaje, localiza los objetos 624 de control asociados con ese
identificador 618 de control, y usa la interfaz de componente del
objeto 624 de control para efectuar el cambio de estado directamente
en el objeto 624 de control. Análogamente, cuando el objeto 624 de
control cambia de estado, el objeto de contenedor es notificado del
cambio, empaqueta el mensaje de cambio de estado, y lo envía al AISP
134.
El objeto de contenedor envía cambios de estado
al AISP 134 para las partes de la interfaz de objeto de control en
las que esté interesado el manipulador 450 de conexión. El
manipulador 450 de conexión está interesado en los miembros de
control designados en el archivo 310 de descripción que se usaron
para crear el manipulador 450 de conexión. El objeto de contenedor
que envuelve el diálogo crea también un contenedor de objeto para
cada objeto 624 de control ejemplificado dentro del diálogo, con el
fin de mantener su duración de estado completo.
Tanto el AICP 114 como el AISP 134 tienen objetos
de contenedor que administran el estado de los componentes a los que
están conectados. Estos contenedores rastrean el estado de los
objetos, así como el contexto de aplicación en el que residen estos
objetos. El contexto de aplicación se refiere a la manera en que los
objetos son referenciados por el AICP 114 y el AISP 134. Por
ejemplo, cuando se conecta un diálogo a un componente 136 de
servidor, el AICP 134 crea un contenedor para el diálogo, y el AISP
134 crea un contenedor para el componente 136 de servidor. Cuando el
usuario cierra el diálogo, el contenedor de cliente detecta esta
acción y lo notifica al contenedor de servidor. Cada contenedor
puede tomar entonces la acción apropiada basándose en el tipo de
operación. La naturaleza de los contenedores es jerárquica, en el
sentido de que cada contenedor puede mantener a otros contenedores
basado en la complejidad de los objetos implicados en una conexión
particular.
Hay dos tipos de contenedores de cliente: un
contenedor de diálogo y un contenedor de control. El contenedor de
diálogo administra la vida del diálogo, y el contenedor de control
administra el flujo de información de estado al control individual.
Estos contenedores permiten la fijación de los elementos de interfaz
de usuario a objetos del lado servidor, así como mantener la
integridad de estado durante la vida de la conexión.
El contenedor de diálogo es un objeto que se crea
para cada ventana presentada en la interfaz 116 de usuario. El
contenedor de diálogo se crea de acuerdo con la descripción XML
contenida en el archivo 310 de descripción. Dicho contenedor de
diálogo trata la descripción XML y crea la disposición general de
diálogo así como los objetos de control contenidos dentro de la
descripción. Adicionalmente, el contenedor de diálogo crea un
contenedor de control para cualesquiera controles que estén
conectados a datos en el servidor. Los controles que se crean
solamente para fines de presentación visual no necesitan un
contenedor de control (por ejemplo, una decoración de etiqueta o de
mapa de bits).
El contenedor de diálogo soporta varias
funciones, incluyendo: entregar la propia ventana, crear los
contenedores de control que se necesiten, notificar al AISP 134
cuándo se ha cerrado el diálogo y suprimir objetos subordinados de
contenedor de control, y cerrar diálogos secundarios que dependan
de diálogos primarios según sea apropiado.
El contenedor de control se crea para cada objeto
624 de control que está ligado a datos. Dicho contenedor computa y
guarda un identificador único 618 de control que se usa para
enviar mensajes al AISP 134 y para tener acceso a los componentes
apropiados 136 de servidor. Cuando el ASIP 134 transmite
inicialmente datos de estado al ACIP 114, el contenedor de control
ajusta el estado en el objeto 624 de control durante la puesta en
valores iniciales. El contenedor de control recibe también mensajes
de cambio de estado durante la vida de conexión del objeto 624 de
control y actualiza el objeto 624 de control de acuerdo con la
misma. Cuando cambia el estado del objeto 624 de control, el
contenedor de control detecta el cambio y envía un mensaje de cambio
de estado al elemento apropiado de servidor por medio del AISP 134
(usando el identificador 618 de control y un identificador del
ejemplo de AISP). Es de hacer notar que solamente el contenedor de
control trata los cambios de estado que están involucrados en una
descripción de conexión, y que la mayoría de los cambios de estado
en el objeto 624 de control no involucran la conexión, reduciendo
así el tráfico de red innecesario.
Además de los contenedores de control, hay dos
clases de contenedores de servidor: contenedores de componente y
contenedores de miembro. Durante todo el tiempo que está abierto el
diálogo de cliente, el contenedor de componente de servidor mantiene
una referencia al ejemplo de componente subyacente al que está
conectado el cliente. El contenedor de miembro administra el flujo
de información de estado en el miembro individual del componente
(similar a función y propiedad). Estos contenedores habilitan la
fijación de los elementos de interfaz de usuario a los objetos de
control del lado cliente, así como mantienen la integridad de estado
durante la vida de la conexión.
El AISP 134 crea un contenedor de componente para
cada componente 136 de servidor que está conectado a un diálogo de
cliente. El contenedor de componente añade una cuenta de referencia
al componente 136 de servidor para que no se pierda durante la vida
del diálogo de cliente distante. Para cada miembro del componente
136 de servidor que está implicado en una conexión a un objeto 624
de control, se crea un objeto de contenedor de miembro que será
responsable de mantener el estado del miembro durante la vida de la
conexión. Cuando se cierra el diálogo en el cliente, el contenedor
de componente destruye todos los contenedores de miembro secundario
que se usaron para mantener la conexión de diálogo en el
servidor.
Para cada miembro de un componente 136 de
servidor que está implicado en una conexión a un objeto 624 de
control se crea un contenedor de miembro. El contenedor de miembro
computa y almacena un identificador único de control que se usa para
enviar mensajes al AICP 114 con el fin de acceder al objeto correcto
624 de control. El contenedor de miembro envía también información
de estado inicial al objeto 624 de control durante la puesta en
valores iniciales del diálogo. Además, el contenedor de miembro
recibe un mensaje de cambio de datos del AICP 114 y actualiza al
miembro apropiado del componente 136 de servidor de acuerdo con el
mismo.
Siempre que cambia el estado de un miembro de
componente, el contenedor de miembro detecta el cambio y
subsiguientemente envía un mensaje, que contiene la información del
cambio de estado, al objeto apropiado 624 de control (usando el
identificador 618 de control y el identificador de ejemplo de
servidor). Nótese que el contenedor de miembro procesa solamente los
cambios de estado que están implicados en la descripción de
conexión, y que la mayor parte de los cambios de estado que se
producen en el servidor no están implicados en una conexión,
reduciendo así un tráfico de red innecesario.
Una de las posibilidades del invento AIP es su
capacidad de permitir que se añadan al mismo AISP múltiples AICP.
La primera vez que un cliente solicita una conexión a un servidor,
se ejemplificará un AISP asignado a la aplicación. A su vez, el
AISP ejemplifica el objeto de administrador de cliente para esa
aplicación. En cualquier momento, otro cliente puede solicitar
añadirse al mismo ejemplo de aplicación en el servidor. En lugar de
ejemplificar otro AISP par esa aplicación, se usará el mismo ejemplo
de AISP (así como el administrador de cliente para el que se ha
creado). Si entonces hay dos clientes teniendo acceso al mismo
ejemplo de componente de servidor en el servidor, podrán
interactuar y acceder al mismo estado. Esto permite el acceso
colaborador en tiempo real a estado compartido, lo que no
proporcionan fácilmente las formas tradicionales de despliegue de
cliente.
Con el despliegue de colaboración, una lista de
diálogos ejecutándose en un cliente particular se asocia con un
objeto de administrador de cliente que reside en el servidor. Dentro
del AISP reside una lista de administradores de cliente (que refleja
el número actual de clientes activos fijados a la misma aplicación
de servidor). Aún en el caso de que muchos clientes pueden ver la
misma información en el servidor, no siempre tienen que ver
exactamente los mismos componentes de la misma manera. El
administrador de cliente puede dirigir clientes diferentes que
tengan representaciones de diálogo diferentes de los mismos
componentes de servidor. Asimismo, basándose en la navegación de
usuario de cliente a través de sus propios ejemplos de diálogo, cada
usuario de cliente puede ver información drásticamente diferente en
cualquier instante determinado.
El presente invento se puede proveer como uno o
más programas legibles de ordenador introducidos en uno o más
artículos de fabricación. El artículo de fabricación puede ser un
disquete, un disco duro, un CD ROM, una tarjeta de memoria rápida,
un PROM, una memoria de acceso aleatorio (RAM), una memoria de sólo
lectura (ROM), o una cinta magnética. En general, los programas
legibles de ordenador se pueden implementar en cualquier lenguaje de
programación. Algunos ejemplos de lenguajes que se pueden usar
incluyen C, C++, o JAVA. Los programas de software se pueden
almacenar en uno o más artículos de fabricación como código de
objeto.
Aunque el invento se ha mostrado y descrito
particularmente con referencia a varas realizaciones ejemplares del
mismo, los expertos en la técnica entenderán que pueden hacerse
diversos cambios en forma y detalle en el mismo sin apartarse del
alcance del invento según se ha reivindicado.
Claims (38)
1. Un método para transferir datos entre un
cliente (110) y un servidor (130), que comprende las etapas de:
ejecutar, mediante un nodo de servidor (130), un
programa (132) de aplicación que afecta a un componente (136) de
aplicación correspondiente a un elemento de interfaz gráfica de
usuario;
proporcionar un proceso (114) de cliente
independiente de aplicación, cuyo proceso (114) de cliente
independiente de aplicación afecta a una presentación visual de uno
o más elementos de interfaz gráfica de usuario en el cliente (110)
asociada con el programa (132) de aplicación;
proporcionar un proceso (134) de servidor
independiente de aplicación, cuyo proceso (134) de servidor
independiente de aplicación transfiere datos (310) al proceso (114)
de cliente independiente de aplicación, siendo los datos
transferidos (310) representativos de un cambio a uno de los
componentes (136) de aplicación afectado por el programa (132) de
aplicación; y
actualizar, mediante el proceso (114) de cliente
independiente de aplicación, uno de los elementos de interfaz
gráfica de usuario en el cliente (110) en respuesta a los datos
transferidos (310).
2. El método de la reivindicación 1, que
comprende además transferir datos (330) desde el proceso (114) de
cliente independiente de aplicación al proceso (134) de servidor
independiente de aplicación, siendo los datos transferidos
representativos de un cambio de uno de los elementos de Interfaz
gráfica de usuario.
3. El método de la reivindicación 1, que
comprende además establecer un canal (120) de comunicación entre el
proceso (114) de cliente independiente de aplicación y el proceso
(134) de servidor independiente de aplicación.
4. El método de la reivindicación 3, en el que el
canal de comunicación (120) es asíncrono.
5. El método de la reivindicación 1, que
comprende además acceder, mediante el proceso (114) de cliente
independiente de aplicación, a un archivo (310) de descripción que
comprende (i) una descripción de la disposición general de los
elementos de interfaz gráfica de usuario y (ii) una descripción de
la conexión entre los elementos de interfaz gráfica de usuario y el
componente correspondiente (136) de aplicación.
6. El método de la reivindicación 5, en el que el
archivo (310) de descripción está en formato XML.
7. El método de la reivindicación 5, que
comprende además generar, mediante el proceso (114) de cliente
independiente de aplicación, un ejemplo de un objeto (624) de
control para cada elemento de interfaz gráfica de usuario, cuyo
ejemplo de objeto (624) de control representa el elemento de
interfaz gráfica de usuario.
8. El método de la reivindicación 7, en el que el
componente (136) de aplicación comprende uno o más miembros, siendo
cada miembro representativo de un atributo del componente (136) de
aplicación alterable por un usuario o presentable al usuario, cuyo
método comprende además generar, mediante el proceso (134) de
servidor independiente de aplicación, un ejemplo del código (452) de
administración, cuyo ejemplo (452) de código de administración
representa la correspondencia entre el objeto (624) de control y el
miembro de componente de aplicación.
9. El método de la reivindicación 8, que
comprende además generar un objeto de contenedor para cada
componente (136) de aplicación y objeto (624) de control.
10. El método de la reivindicación 9, que
comprende además:
vigilar el al menos uno de los miembros de
componente de aplicación y el al menos un objeto (624) de control;
y
transferir datos en respuesta a un cambio de
estado de los al menos un miembro asociado de componente de
aplicación y un objeto (624) de control.
11. El método de la reivindicación 9, que
comprende además:
generar un identificador único para el al menos
uno del miembro de componente de aplicación y del objeto (624) de
control; y
almacenar el identificador único en una capa
proxy (filtro).
12. Un sistema para transferir datos entre un
cliente (110) y un servidor (130), que comprende:
un nodo de servidor (130), que comprende:
un programa (132) de aplicación que consta de al
menos un componente (136) de aplicación, y
un proceso (134) de servidor independiente de
aplicación en comunicación con el programa (132) de aplicación, cuyo
proceso (134) de servidor independiente de aplicación detecta un
cambio de estado al componente (136) de aplicación, y
un nodo de cliente (110) que comprende:
un proceso (114) de cliente independiente de
aplicación en comunicación con el proceso (134) de servidor
independiente de aplicación, cuyo proceso (114) de cliente
independiente de aplicación actualiza un elemento de interfaz
gráfica de usuario en el nodo de cliente (110), correspondiendo el
elemento de interfaz gráfica de usuario al componente (136) de
aplicación en respuesta a la recepción de datos transferidos (310)
del proceso (134) de servidor independiente de aplicación, siendo
transferidos los datos en respuesta al cambio detectado de estado
del componente (136) de aplicación.
13. El sistema de la reivindicación 12, en el que
el proceso (114) de cliente independiente de aplicación detecta un
cambio de la interfaz gráfica de usuario y transfiere datos (330)
al proceso (134) de servidor independiente de aplicación en
respuesta al cambio detectado; y
en el que el proceso (134) de servidor
independiente de aplicación actualiza al componente (136) de
aplicación en respuesta a los datos transferidos recibidos
(330).
14. El sistema de la reivindicación 12, que
comprende además un canal (120) de comunicación que conecta el nodo
de servidor (130) al nodo de cliente (110), en el que el proceso
(114) de cliente independiente de aplicación y el proceso (134) de
servidor independiente de aplicación se comunican entre sí a través
del canal (120) de comunicación.
15. El sistema de la reivindicación 14, en el que
el canal (120) de comunicación es asíncrono.
16. El sistema de la reivindicación 12, que
comprende además un archivo (310) de descripción que comprende (i)
una descripción de la disposición general del elemento de interfaz
gráfica de usuario y (ii) una descripción de la conexión entre el
elemento de interfaz gráfica de usuario, y el componente
correspondiente (136) de aplicación.
17. El sistema de la reivindicación 16, en el que
el archivo (310) de descripción está en formato XML
18. El sistema de la reivindicación 12, en el que
el proceso (114) de cliente independiente de aplicación comprende
además un ejemplo de un objeto (624) de control para cada uno de los
uno o más elementos de interfaz gráfica de usuario, cuyo ejemplo de
objeto (624) de control representa al elemento de interfaz gráfica
de usuario.
19. El sistema de la reivindicación 18, en el que
el componente (136) de aplicación comprende uno o más miembros,
representando cada miembro un atributo del componente (136) de
aplicación alterable por un usuario o presentable al usuario; y en
el que el proceso (134) de servidor independiente de aplicación
comprende además un ejemplo de código (452) de administración que
representa la correspondencia entre el objeto (624) de control y el
miembro de componente de aplicación.
20. El sistema de la reivindicación 19, que
comprende además un objeto de contenedor para cada componente (136)
de aplicación y cada objeto (624) de control.
21. El sistema de la reivindicación 20, en el que
el objeto de contenedor está configurado además para vigilar el al
menos un miembro de componente de aplicación y del objeto (624) de
control asociados con dicho objeto de contenedor e inicia una
transferencia de datos en respuesta a un cambio de estado de los
asociados al menos un miembro de componente de aplicación y del
objeto (624) de control.
22. El sistema de la reivindicación 20, que
comprende además una capa proxy para generar un identificador único
para cada objeto (624) de control y almacenar el identificador único
en la capa proxy.
23. Un nodo de servidor (130) para transferir
datos, que comprende:
un programa (132) de aplicación que comprende al
menos un componente (136) de aplicación; y
un proceso (134) de servidor independiente de
aplicación en comunicación con el programa (132) de aplicación, cuyo
proceso (134) de servidor independiente de aplicación detecta un
cambio de estado al componente (136) de aplicación y transfiere
datos (310) en respuesta a un cambio detectado de estado del
componente (136) de aplicación, siendo los datos para uso por un
cliente (110) con el fin de actualizar un elemento de interfaz
gráfica de usuario en el nodo de cliente (110) correspondiendo el
elemento de interfaz gráfica de usuario al componente (136) de
aplicación.
24. El nodo de servidor de la reivindicación 23,
en el que el proceso (134) de servidor independiente de aplicación
está configurado además para actualizar al componente (136) de
aplicación en respuesta a datos transferidos (330), representando
dichos datos una detección de un cambio de estado de la interfaz
gráfica de usuario en el cliente (110).
25. El nodo de servidor de la reivindicación 23,
que comprende además un archivo (310) de descripción que comprende
(i) una descripción de la disposición general del elemento de
interfaz gráfica de usuario, y (ii) una descripción de la conexión
entre el elemento de interfaz gráfica de usuario y el
correspondiente componente (136) de aplicación.
26. El nodo de servidor de la reivindicación 25,
en el que el archivo (310) de descripción está en formato XML.
27. El nodo de servidor de la reivindicación 23,
en el que el componente (136) de aplicación comprende uno o más
miembros, siendo cada miembro representativo de un atributo del
componente de aplicación alterable por un usuario o presentable al
usuario; y en el que el proceso (134) de servidor independiente de
aplicación comprende además un ejemplo de código (452) de
administración, cuyo ejemplo de código (452) de administración
representa la correspondencia entre el miembro de componente de
aplicación y un objeto (624) de control situado en el cliente
(110).
28. El nodo de servidor de la reivindicación 27,
que comprende además un objeto de contenedor para cada componente
(136) de aplicación.
29. El nodo de servidor de la reivindicación 28,
en el que el objeto de contenedor está configurado además para
vigilar al miembro de componente de aplicación asociado con dicho
objeto de contenedor y para iniciar la transferencia de datos en
respuesta a un cambio de estado del miembro asociado de componente
de aplicación.
30. El nodo de servidor de la reivindicación 28,
que comprende además una capa proxy para generar un identificador
único para cada miembro de componente de aplicación y almacenar el
identificador único.
31. Un nodo de cliente (110) para presentar
visualmente la salida de datos de aplicación mediante una aplicación
(132) que se ejecuta en un servidor distante (130), cuyo nodo de
cliente comprende:
un proceso (114) de cliente independiente de
aplicación que actualiza a un elemento de interfaz gráfica de
usuario en el nodo de cliente (110), correspondiendo el elemento
de interfaz gráfica de usuario a un componente (136) de aplicación
de la aplicación (132) que se ejecuta en el servidor (130), en
respuesta a la recepción de datos (310) de estado transferidos que
representan un cambio de estado del componente (136) de
aplicación.
32. El nodo de cliente de la reivindicación 31,
en el que el proceso (114) de cliente independiente de aplicación
está configurado además para detectar un cambio de estado de la
interfaz gráfica de usuario y para transferir datos (330) al
servidor (130) en respuesta al cambio detectado.
33. El nodo de cliente de la reivindicación 31,
que comprende además un archivo (310) de descripción que comprende
(i) una descripción de la disposición general del elemento de
interfaz gráfica de usuario y (ii) una descripción de la conexión
entre el elemento de interfaz gráfica de usuario y el
correspondiente componente (136) de aplicación.
34. El nodo de cliente de la reivindicación 33,
en el que el archivo (310) de descripción está en formato XML.
35. El nodo de cliente de la reivindicación 31,
en el que el proceso (114) de cliente independiente de aplicación
comprende además un ejemplo de un objeto (624) de control para cada
elemento de interfaz gráfica de usuario, cuyo ejemplo de objeto
(624) de control representa el elemento gráfico de interfaz de
usuario.
36. El nodo de cliente de la reivindicación 35,
que comprende además un objeto de contenedor para cada objeto (624)
de control.
37. El nodo de cliente de la reivindicación 36,
en el que el objeto de contenedor está configurado además para
vigilar al objeto (624) de control asociado con dicho objeto de
contenedor y para iniciar la transferencia de datos en respuesta a
un cambio de estado del objeto (624) asociado de control.
38. El nodo de cliente de la reivindicación 36,
que comprende además una capa proxy para generar un identificador
único para el objeto (624) de control y para almacenar el
identificador único.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US391068 | 1999-09-07 | ||
US09/391,068 US6356933B2 (en) | 1999-09-07 | 1999-09-07 | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2219393T3 true ES2219393T3 (es) | 2004-12-01 |
Family
ID=23545092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES00961609T Expired - Lifetime ES2219393T3 (es) | 1999-09-07 | 2000-09-07 | Metodos y aparatos para el transporte eficiente de datos de aplicaciones interactivas entre un cliente y un servidor utilizando lenguaje de marcas. |
Country Status (11)
Country | Link |
---|---|
US (3) | US6356933B2 (es) |
EP (1) | EP1214667B1 (es) |
JP (1) | JP2003509739A (es) |
KR (1) | KR20020085873A (es) |
AU (1) | AU7353800A (es) |
CA (1) | CA2383849A1 (es) |
DE (1) | DE60008555T2 (es) |
ES (1) | ES2219393T3 (es) |
HK (1) | HK1046321A1 (es) |
IL (1) | IL148461A0 (es) |
WO (1) | WO2001018691A2 (es) |
Families Citing this family (181)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
JP4476390B2 (ja) * | 1998-09-04 | 2010-06-09 | 株式会社半導体エネルギー研究所 | 半導体装置の作製方法 |
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
US7966234B1 (en) | 1999-05-17 | 2011-06-21 | Jpmorgan Chase Bank. N.A. | Structured finance performance analytics system |
US6356933B2 (en) * | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6687745B1 (en) | 1999-09-14 | 2004-02-03 | Droplet, Inc | System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection |
US7529806B1 (en) * | 1999-11-04 | 2009-05-05 | Koninklijke Philips Electronics N.V. | Partitioning of MP3 content file for emulating streaming |
US20030200301A1 (en) * | 1999-11-10 | 2003-10-23 | Trzcinko Alan P. | Web-based network management system |
US6421673B1 (en) * | 1999-12-13 | 2002-07-16 | Novient, Inc. | Method for mapping applications and or attributes in a distributed network environment |
US7051015B1 (en) * | 2000-01-10 | 2006-05-23 | Wind River Systems, Inc. | System and method for implementing a flexible data-driven target object model |
US7702719B1 (en) * | 2000-02-08 | 2010-04-20 | International Business Machines Corporation | Methods and apparatus for reducing the number of server interactions in network-based applications using a dual-MVC approach |
US6640317B1 (en) * | 2000-04-20 | 2003-10-28 | International Business Machines Corporation | Mechanism for automated generic application damage detection and repair in strongly encapsulated application |
US6850979B1 (en) * | 2000-05-09 | 2005-02-01 | Sun Microsystems, Inc. | Message gates in a distributed computing environment |
US6757900B1 (en) * | 2000-05-18 | 2004-06-29 | Microsoft Corporation | State management of server-side control objects |
US7249095B2 (en) | 2000-06-07 | 2007-07-24 | The Chase Manhattan Bank, N.A. | System and method for executing deposit transactions over the internet |
WO2001098936A2 (en) * | 2000-06-22 | 2001-12-27 | Microsoft Corporation | Distributed computing services platform |
US7117239B1 (en) | 2000-07-28 | 2006-10-03 | Axeda Corporation | Reporting the state of an apparatus to a remote computer |
US20020059629A1 (en) * | 2000-08-21 | 2002-05-16 | Markel Steven O. | Detection and recognition of data receiver to facilitate proper transmission of enhanced data |
AU2001288453B2 (en) * | 2000-08-25 | 2006-05-18 | Opentv, Inc. | Personalized remote control |
US20020057286A1 (en) * | 2000-08-25 | 2002-05-16 | Markel Steven O. | Device independent video enhancement scripting language |
US7142934B2 (en) | 2000-09-01 | 2006-11-28 | Universal Electronics Inc. | Audio converter device and method for using the same |
AU2001292703A1 (en) * | 2000-09-15 | 2002-03-26 | Wonderware Corporation | A method and system for animating graphical user interface elements via manufacturing/process control portal server |
US7185014B1 (en) * | 2000-09-22 | 2007-02-27 | Axeda Corporation | Retrieving data from a server |
US8108543B2 (en) | 2000-09-22 | 2012-01-31 | Axeda Corporation | Retrieving data from a server |
US7392212B2 (en) * | 2000-09-28 | 2008-06-24 | Jpmorgan Chase Bank, N.A. | User-interactive financial vehicle performance prediction, trading and training system and methods |
AU2002232594A1 (en) * | 2000-10-30 | 2002-05-15 | Tririga, Inc. | Item specification object management system |
US7051084B1 (en) * | 2000-11-02 | 2006-05-23 | Citrix Systems, Inc. | Methods and apparatus for regenerating and transmitting a partial page |
US7346842B1 (en) * | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
US7313541B2 (en) * | 2000-11-03 | 2007-12-25 | Jpmorgan Chase Bank, N.A. | System and method for estimating conduit liquidity requirements in asset backed commercial paper |
US7133908B1 (en) * | 2000-11-24 | 2006-11-07 | Xerox Corporation | Metrics and status presentation system and method using persistent template-driven web objects |
US7194743B2 (en) * | 2000-12-12 | 2007-03-20 | Citrix Systems, Inc. | Methods and apparatus for communicating changes between a user interface and an executing application using property paths |
US7080120B2 (en) * | 2001-01-19 | 2006-07-18 | Digital Orchid, Inc. | System and method for collaborative processing of distributed applications |
US20020111995A1 (en) * | 2001-02-14 | 2002-08-15 | Mansour Peter M. | Platform-independent distributed user interface system architecture |
US7155681B2 (en) * | 2001-02-14 | 2006-12-26 | Sproqit Technologies, Inc. | Platform-independent distributed user interface server architecture |
US20020129096A1 (en) * | 2001-02-14 | 2002-09-12 | Mansour Peter M. | Platform-independent distributed user interface client architecture |
US20020194491A1 (en) * | 2001-04-02 | 2002-12-19 | Expand Networks Ltd. | Method and system for reducing traffic in a channel of communication while protecting user privacy |
US7587669B2 (en) | 2001-04-09 | 2009-09-08 | Aol Llc | Server-based browser system |
US7596526B2 (en) * | 2001-04-16 | 2009-09-29 | Jpmorgan Chase Bank, N.A. | System and method for managing a series of overnight financing trades |
JP2005502104A (ja) * | 2001-06-11 | 2005-01-20 | トータルイーケア・インコーポレイテッド | 計算インフラストラクチャに対する変更を管理するシステム |
JP4233775B2 (ja) * | 2001-07-06 | 2009-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ通信方法、データ通信システムおよびプログラム |
US7526572B2 (en) * | 2001-07-12 | 2009-04-28 | Research In Motion Limited | System and method for providing remote data access for a mobile communication device |
US7051119B2 (en) * | 2001-07-12 | 2006-05-23 | Yahoo! Inc. | Method and system for enabling a script on a first computer to communicate and exchange data with a script on a second computer over a network |
US20030023754A1 (en) * | 2001-07-27 | 2003-01-30 | Matthias Eichstadt | Method and system for adding real-time, interactive functionality to a web-page |
US20030041142A1 (en) * | 2001-08-27 | 2003-02-27 | Nec Usa, Inc. | Generic network monitoring tool |
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 |
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 |
JP4064652B2 (ja) * | 2001-10-12 | 2008-03-19 | 株式会社シンクプラス | プロキシサーバ付きブラウザおよび情報複写システム |
US7254601B2 (en) | 2001-12-20 | 2007-08-07 | Questra Corporation | Method and apparatus for managing intelligent assets in a distributed environment |
US7065746B2 (en) * | 2002-01-11 | 2006-06-20 | Stone Bond Technologies, L.P. | Integration integrity manager |
US7305397B2 (en) * | 2002-01-31 | 2007-12-04 | Tririga Llc | Caching data communications to reduce latency |
US20060075070A1 (en) * | 2002-04-02 | 2006-04-06 | Patrick Merissert-Coffinieres | Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture |
US7191217B2 (en) * | 2002-04-10 | 2007-03-13 | Nippon Telegraph And Telephone Corporation | Distributed server-based collaborative computing |
US7178149B2 (en) | 2002-04-17 | 2007-02-13 | Axeda Corporation | XML scripting of soap commands |
EP1363187A1 (en) * | 2002-05-15 | 2003-11-19 | Sony International (Europe) GmbH | Dispatching application steps in a client/server environment |
US8224723B2 (en) | 2002-05-31 | 2012-07-17 | Jpmorgan Chase Bank, N.A. | Account opening system, method and computer program product |
US7290215B2 (en) * | 2002-06-03 | 2007-10-30 | Microsoft Corporation | Dynamic wizard interface system and method |
US20030233457A1 (en) * | 2002-06-12 | 2003-12-18 | Henrik Basilier | Signaling framework for wireless networks |
US7454458B2 (en) * | 2002-06-24 | 2008-11-18 | Ntt Docomo, Inc. | Method and system for application load balancing |
US7797403B2 (en) * | 2002-07-12 | 2010-09-14 | Microsoft Corporation | Deployment of configuration information |
US20040015537A1 (en) * | 2002-07-15 | 2004-01-22 | Richard Doerksen | Handheld client framework system |
US7698434B2 (en) * | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
CN1757015B (zh) * | 2002-12-26 | 2010-11-10 | 捷讯研究有限公司 | 用于建立和执行平台-中性的普通服务客户应用程序的系统和方法 |
US20050044033A1 (en) * | 2003-01-10 | 2005-02-24 | Gelson Andrew F. | Like-kind exchange method |
US20040148247A1 (en) * | 2003-01-24 | 2004-07-29 | Lawrence Miller | Network-based systems, methods, and software for initiating or executing financial transactions |
US7966418B2 (en) | 2003-02-21 | 2011-06-21 | Axeda Corporation | Establishing a virtual tunnel between two computer programs |
KR100930353B1 (ko) * | 2003-03-06 | 2009-12-08 | 엘지전자 주식회사 | 디스크 플레이어의 접속요청 처리방법 |
US7634435B2 (en) * | 2003-05-13 | 2009-12-15 | Jp Morgan Chase Bank | Diversified fixed income product and method for creating and marketing same |
US7770184B2 (en) * | 2003-06-06 | 2010-08-03 | Jp Morgan Chase Bank | Integrated trading platform architecture |
US20040260806A1 (en) * | 2003-06-20 | 2004-12-23 | Eric Martin | System supporting communication between a web enabled application and another application |
EP1494116A1 (fr) * | 2003-07-01 | 2005-01-05 | Amadeus S.A.S. | Procédé et dispositif pour l'interfaçage graphique |
US20050015324A1 (en) * | 2003-07-15 | 2005-01-20 | Jacob Mathews | Systems and methods for trading financial instruments across different types of trading platforms |
US7970688B2 (en) * | 2003-07-29 | 2011-06-28 | Jp Morgan Chase Bank | Method for pricing a trade |
US7469302B2 (en) * | 2003-08-29 | 2008-12-23 | Yahoo! Inc. | System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems |
US20050060256A1 (en) * | 2003-09-12 | 2005-03-17 | Andrew Peterson | Foreign exchange trading interface |
US7593876B2 (en) * | 2003-10-15 | 2009-09-22 | Jp Morgan Chase Bank | System and method for processing partially unstructured data |
US7475125B2 (en) | 2003-11-24 | 2009-01-06 | Microsoft Corporation | Seamless discovery of workstation-installed remote applications from an extranet |
US7720906B2 (en) * | 2003-11-24 | 2010-05-18 | Microsoft Corporation | Web service for remote application discovery |
US7590713B2 (en) | 2003-11-24 | 2009-09-15 | Microsoft Corporation | Presenting a merged view of remote application shortcuts from multiple providers |
US20050125385A1 (en) * | 2003-12-08 | 2005-06-09 | Honeywell International, Inc. | Framework enabling access of data from disparate databases in a manufacturing plant |
US7634583B2 (en) * | 2003-12-18 | 2009-12-15 | Microsoft Corporation | Systems and methods that utilize persisted push/pull state to provide reliable message publishing |
US20050183021A1 (en) * | 2004-02-13 | 2005-08-18 | Allen Joel E. | Method for electronically packaging a user's personal computing environment on a computer or device, and mobilizing it for transfer over a network |
GB2411331A (en) * | 2004-02-19 | 2005-08-24 | Trigenix Ltd | Rendering user interface using actor attributes |
EP1569109A1 (en) | 2004-02-27 | 2005-08-31 | Research In Motion Limited | A system and method for mapping between message and data domains using a metadata defined mapping |
EP1738271A4 (en) * | 2004-03-15 | 2008-12-03 | Bungee Labs Inc | METHOD AND SYSTEM OF A DECLARANT COMPUTER PROGRAMMING LANGUAGE |
US7805523B2 (en) * | 2004-03-15 | 2010-09-28 | Mitchell David C | Method and apparatus for partial updating of client interfaces |
US20050222937A1 (en) * | 2004-03-31 | 2005-10-06 | Coad Edward J | Automated customer exchange |
US8423447B2 (en) * | 2004-03-31 | 2013-04-16 | Jp Morgan Chase Bank | System and method for allocating nominal and cash amounts to trades in a netted trade |
US20050223080A1 (en) * | 2004-04-05 | 2005-10-06 | Microsoft Corporation | Updatable user experience |
US20050251478A1 (en) * | 2004-05-04 | 2005-11-10 | Aura Yanavi | Investment and method for hedging operational risk associated with business events of another |
US7580867B2 (en) * | 2004-05-04 | 2009-08-25 | Paul Nykamp | Methods for interactively displaying product information and for collaborative product design |
US7890604B2 (en) | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
US9026578B2 (en) | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
US20050257196A1 (en) * | 2004-05-17 | 2005-11-17 | Gideon Hollander | System and method for developing new services from legacy computer applications |
US7627671B1 (en) * | 2004-05-22 | 2009-12-01 | ClearApp, Inc. | Monitoring and performance management of component-based applications |
US7693770B2 (en) | 2004-08-06 | 2010-04-06 | Jp Morgan Chase & Co. | Method and system for creating and marketing employee stock option mirror image warrants |
US7543032B2 (en) * | 2004-10-22 | 2009-06-02 | Canyonbridge, Inc. | Method and apparatus for associating messages with data elements |
US20090132428A1 (en) * | 2004-11-15 | 2009-05-21 | Stephen Jeffrey Wolf | Method for creating and marketing a modifiable debt product |
US7450128B2 (en) * | 2004-11-15 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Systems and methods of providing image copy and modify commands to a receiver with an associated display |
US7467389B2 (en) * | 2004-11-23 | 2008-12-16 | Sybase, Inc. | System and methodology providing service invocation for occasionally connected computing devices |
US7577749B1 (en) | 2004-12-03 | 2009-08-18 | Ux Ltd. | Emulation of persistent HTTP connections between network devices |
US7779410B2 (en) * | 2004-12-17 | 2010-08-17 | Sap Ag | Control interfaces for distributed system applications |
US20090164384A1 (en) * | 2005-02-09 | 2009-06-25 | Hellen Patrick J | Investment structure and method for reducing risk associated with withdrawals from an investment |
US8688569B1 (en) | 2005-03-23 | 2014-04-01 | Jpmorgan Chase Bank, N.A. | System and method for post closing and custody services |
CA2577244A1 (en) * | 2005-04-18 | 2006-10-26 | Research In Motion Limited | Method and system for controlling software version updates |
US20090187512A1 (en) * | 2005-05-31 | 2009-07-23 | Jp Morgan Chase Bank | Asset-backed investment instrument and related methods |
US7577879B2 (en) * | 2005-06-07 | 2009-08-18 | Microsoft Corporation | Patching a mobile computing device software error |
US7822682B2 (en) | 2005-06-08 | 2010-10-26 | Jpmorgan Chase Bank, N.A. | System and method for enhancing supply chain transactions |
US20110035306A1 (en) * | 2005-06-20 | 2011-02-10 | Jpmorgan Chase Bank, N.A. | System and method for buying and selling securities |
US7817849B2 (en) * | 2005-08-18 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for graphical data compression |
US7567928B1 (en) | 2005-09-12 | 2009-07-28 | Jpmorgan Chase Bank, N.A. | Total fair value swap |
US7818238B1 (en) | 2005-10-11 | 2010-10-19 | Jpmorgan Chase Bank, N.A. | Upside forward with early funding provision |
KR20070052645A (ko) * | 2005-11-17 | 2007-05-22 | 삼성전자주식회사 | 사용자 인터페이스를 관리하는 장치 및 방법 |
US8095565B2 (en) * | 2005-12-05 | 2012-01-10 | Microsoft Corporation | Metadata driven user interface |
US20070174454A1 (en) * | 2006-01-23 | 2007-07-26 | Mitchell David C | Method and apparatus for accessing Web services and URL resources for both primary and shared users over a reverse tunnel mechanism |
US8280794B1 (en) | 2006-02-03 | 2012-10-02 | Jpmorgan Chase Bank, National Association | Price earnings derivative financial product |
US8316293B2 (en) * | 2006-03-27 | 2012-11-20 | Research In Motion Limited | System and method for rendering presentation pages based on locality |
US7620578B1 (en) | 2006-05-01 | 2009-11-17 | Jpmorgan Chase Bank, N.A. | Volatility derivative financial product |
US7647268B1 (en) | 2006-05-04 | 2010-01-12 | Jpmorgan Chase Bank, N.A. | System and method for implementing a recurrent bidding process |
US9811868B1 (en) | 2006-08-29 | 2017-11-07 | Jpmorgan Chase Bank, N.A. | Systems and methods for integrating a deal process |
US8370479B2 (en) | 2006-10-03 | 2013-02-05 | Axeda Acquisition Corporation | System and method for dynamically grouping devices based on present device conditions |
US7987443B2 (en) * | 2006-10-30 | 2011-07-26 | Hewlett-Packard Development Company, L.P. | Declarative association of dialog fields |
US7827096B1 (en) | 2006-11-03 | 2010-11-02 | Jp Morgan Chase Bank, N.A. | Special maturity ASR recalculated timing |
US8065397B2 (en) | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US20080162488A1 (en) * | 2006-12-29 | 2008-07-03 | Karle Christopher J | Method, system and program product for updating browser page elements over a distributed network |
US8510371B2 (en) * | 2007-01-16 | 2013-08-13 | Gizmox Ltd. | Method and system for creating IT-oriented server-based web applications |
US7574682B2 (en) * | 2007-02-28 | 2009-08-11 | Freescale Semiconductor, Inc. | Yield analysis and improvement using electrical sensitivity extraction |
US8335813B2 (en) * | 2007-05-01 | 2012-12-18 | Illinois Institute Of Technology | Systems, methods, and protocols for process migration and group membership management |
US8478861B2 (en) | 2007-07-06 | 2013-07-02 | Axeda Acquisition Corp. | Managing distributed devices with limited connectivity |
US9009292B2 (en) * | 2007-07-30 | 2015-04-14 | Sybase, Inc. | Context-based data pre-fetching and notification for mobile applications |
US8204870B2 (en) * | 2007-08-03 | 2012-06-19 | Sybase, Inc. | Unwired enterprise platform |
US20090094313A1 (en) * | 2007-10-03 | 2009-04-09 | Jay Feng | System, method, and computer program product for sending interactive requests for information |
CN101918921B (zh) | 2008-01-27 | 2013-12-04 | 思杰系统有限公司 | 用于远程提供三维图形的方法和系统 |
US20100037240A1 (en) * | 2008-08-08 | 2010-02-11 | Microsoft Corporation | Non Intrusive Application Mechanism |
US8001213B2 (en) * | 2008-12-22 | 2011-08-16 | Nokia Corporation | Method, apparatus and computer program product for providing unrestricted content on a user terminal |
US8271005B2 (en) | 2009-01-12 | 2012-09-18 | Jlt Group, Inc. | Mobile communication device and system with limited data transfer |
US20100274858A1 (en) * | 2009-04-27 | 2010-10-28 | Nokia Corporation | Mid-service sharing |
US8738514B2 (en) | 2010-02-18 | 2014-05-27 | Jpmorgan Chase Bank, N.A. | System and method for providing borrow coverage services to short sell securities |
US20110208670A1 (en) * | 2010-02-19 | 2011-08-25 | Jpmorgan Chase Bank, N.A. | Execution Optimizer |
US8352354B2 (en) * | 2010-02-23 | 2013-01-08 | Jpmorgan Chase Bank, N.A. | System and method for optimizing order execution |
KR101680344B1 (ko) | 2010-05-06 | 2016-11-28 | 엘지전자 주식회사 | 이동 단말기 및 그 제어방법 |
US9699503B2 (en) | 2010-09-07 | 2017-07-04 | Opentv, Inc. | Smart playlist |
US10210160B2 (en) | 2010-09-07 | 2019-02-19 | Opentv, Inc. | Collecting data from different sources |
US8949871B2 (en) | 2010-09-08 | 2015-02-03 | Opentv, Inc. | Smart media selection based on viewer user presence |
CN106843715B (zh) * | 2010-10-05 | 2020-06-26 | 西里克斯系统公司 | 用于远程化的应用的触摸支持 |
US8793706B2 (en) | 2010-12-16 | 2014-07-29 | Microsoft Corporation | Metadata-based eventing supporting operations on data |
EP2518617A1 (en) * | 2011-04-27 | 2012-10-31 | Tieto Oyj | Dynamic user and device specific user interface generation based on process descriptions |
US9250854B2 (en) | 2011-08-25 | 2016-02-02 | Vmware, Inc. | User interface virtualization for remote devices |
US9304662B2 (en) * | 2011-08-25 | 2016-04-05 | Vmware, Inc. | User interface virtualization techniques |
US9280377B2 (en) | 2013-03-29 | 2016-03-08 | Citrix Systems, Inc. | Application with multiple operation modes |
US9215225B2 (en) | 2013-03-29 | 2015-12-15 | Citrix Systems, Inc. | Mobile device locking with context |
US20140040979A1 (en) | 2011-10-11 | 2014-02-06 | Citrix Systems, Inc. | Policy-Based Application Management |
US20140032733A1 (en) | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
US9286471B2 (en) * | 2011-10-11 | 2016-03-15 | Citrix Systems, Inc. | Rules based detection and correction of problems on mobile devices of enterprise users |
US8799994B2 (en) | 2011-10-11 | 2014-08-05 | Citrix Systems, Inc. | Policy-based application management |
US8996729B2 (en) | 2012-04-12 | 2015-03-31 | Nokia Corporation | Method and apparatus for synchronizing tasks performed by multiple devices |
WO2013097895A1 (en) | 2011-12-28 | 2013-07-04 | Nokia Corporation | Provision of an open instance of an application |
RU2600106C2 (ru) * | 2011-12-28 | 2016-10-20 | Нокиа Текнолоджиз Ой | Переключатель приложений |
US9542080B2 (en) | 2012-04-25 | 2017-01-10 | Vmware, Inc. | User interface virtualization of context menus |
KR20140012317A (ko) | 2012-07-19 | 2014-02-03 | 삼성전자주식회사 | 프로세스 전송 시스템, 프로세스 전송 서버의 프로세스 전송 방법, 및 클라이언트의 프로세스 처리 방법 |
US8613070B1 (en) | 2012-10-12 | 2013-12-17 | Citrix Systems, Inc. | Single sign-on access in an orchestration framework for connected devices |
US9516022B2 (en) | 2012-10-14 | 2016-12-06 | Getgo, Inc. | Automated meeting room |
US8910239B2 (en) | 2012-10-15 | 2014-12-09 | Citrix Systems, Inc. | Providing virtualized private network tunnels |
US20140109176A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Configuring and providing profiles that manage execution of mobile applications |
US20140109171A1 (en) | 2012-10-15 | 2014-04-17 | Citrix Systems, Inc. | Providing Virtualized Private Network tunnels |
US9971585B2 (en) | 2012-10-16 | 2018-05-15 | Citrix Systems, Inc. | Wrapping unmanaged applications on a mobile device |
US9606774B2 (en) | 2012-10-16 | 2017-03-28 | Citrix Systems, Inc. | Wrapping an application with field-programmable business logic |
US9170800B2 (en) | 2012-10-16 | 2015-10-27 | Citrix Systems, Inc. | Application wrapping for application management framework |
US20140108793A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Controlling mobile device access to secure data |
US9455886B2 (en) | 2013-03-29 | 2016-09-27 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US10284627B2 (en) | 2013-03-29 | 2019-05-07 | Citrix Systems, Inc. | Data management for an application with multiple operation modes |
US20140297840A1 (en) | 2013-03-29 | 2014-10-02 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US9369449B2 (en) | 2013-03-29 | 2016-06-14 | Citrix Systems, Inc. | Providing an enterprise application store |
US9985850B2 (en) | 2013-03-29 | 2018-05-29 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US8813179B1 (en) | 2013-03-29 | 2014-08-19 | Citrix Systems, Inc. | Providing mobile device management functionalities |
US9355223B2 (en) | 2013-03-29 | 2016-05-31 | Citrix Systems, Inc. | Providing a managed browser |
US9339159B2 (en) | 2014-06-13 | 2016-05-17 | Aerus Llc | Vacuum brush drive |
US10621276B2 (en) | 2013-10-24 | 2020-04-14 | Wmware, Inc. | User interface virtualization for web applications |
DK179745B1 (en) | 2017-05-12 | 2019-05-01 | Apple Inc. | SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT |
EP3806092B1 (en) * | 2017-05-12 | 2022-07-20 | Apple Inc. | Task delegation of a digital assistant |
US11438452B1 (en) | 2019-08-09 | 2022-09-06 | Apple Inc. | Propagating context information in a privacy preserving manner |
Family Cites Families (137)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57157362A (en) * | 1981-03-25 | 1982-09-28 | Hitachi Ltd | Method and apparatus of execution path career data pickup for architecture program |
US5481740A (en) * | 1986-04-14 | 1996-01-02 | National Instruments Corporation | Method and apparatus for providing autoprobe features in a graphical data flow diagram |
US5737622A (en) * | 1986-04-14 | 1998-04-07 | National Instruments Corporation | Method and apparatus for more efficient function synchronization in a data flow program |
US5291587A (en) * | 1986-04-14 | 1994-03-01 | National Instruments, Inc. | Graphical system for executing a process and for programming a computer to execute a process, including graphical variable inputs and variable outputs |
US5341477A (en) * | 1989-02-24 | 1994-08-23 | Digital Equipment Corporation | Broker for computer network server selection |
US5129084A (en) * | 1989-06-29 | 1992-07-07 | Digital Equipment Corporation | Object container transfer system and method in an object based computer operating system |
US5187790A (en) * | 1989-06-29 | 1993-02-16 | Digital Equipment Corporation | Server impersonation of client processes in an object based computer operating system |
US5297283A (en) * | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring system and method in an object based computer operating system |
US5057996A (en) | 1989-06-29 | 1991-10-15 | Digital Equipment Corporation | Waitable object creation system and method in an object based computer operating system |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
AU639802B2 (en) * | 1990-08-14 | 1993-08-05 | Oracle International Corporation | Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment |
EP0475581A3 (en) | 1990-08-30 | 1993-06-23 | Hewlett-Packard Company | Method and apparatus for window sharing between computer displays |
US5423041A (en) * | 1990-09-28 | 1995-06-06 | Texas Instruments Incorporated | Coupling rules to an object-oriented program |
US5291487A (en) * | 1991-01-24 | 1994-03-01 | Micom Communications Corp. | Apparatus for, and method of, packing and unpacking information in transmission lines |
JPH0546568A (ja) | 1991-08-08 | 1993-02-26 | Internatl Business Mach Corp <Ibm> | 分散アプリケーシヨン実行装置および方法 |
EP0546682A3 (en) * | 1991-12-12 | 1993-12-08 | Ibm | Parent class shadowing |
US5386558A (en) * | 1992-02-24 | 1995-01-31 | Adapsys, Inc. | Method and apparatus for executing control system functions in a computer system |
US5371891A (en) | 1992-04-09 | 1994-12-06 | Microsoft Corporation | Method for object construction in a compiler for an object-oriented programming language |
FR2690260B1 (fr) * | 1992-04-17 | 1997-01-03 | Bull Sa | Utilisation d'un protocole bidirectionnel de tres haut niveau pour la communication entre un systeme hypermedia et une pluralite d'editeurs. |
US5327562A (en) * | 1992-05-06 | 1994-07-05 | Microsoft Corporation | Method for implementing virtual function tables in a compiler for an object-oriented programming language |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5515536A (en) * | 1992-11-13 | 1996-05-07 | Microsoft Corporation | Method and system for invoking methods of an object through a dispatching interface |
EP0669020B1 (en) * | 1992-11-13 | 1997-04-02 | Microsoft Corporation | Methods for marshalling interface pointers for remote procedure calls |
US5887133A (en) * | 1997-01-15 | 1999-03-23 | Health Hero Network | System and method for modifying documents sent over a communications network |
US5315703A (en) | 1992-12-23 | 1994-05-24 | Taligent, Inc. | Object-oriented notification framework system |
US5437025A (en) * | 1993-01-26 | 1995-07-25 | International Business Machines Corporation | System and method for run time configuration of objects in an object oriented computing environment |
US5369766A (en) | 1993-03-25 | 1994-11-29 | Taligent, Inc. | Object-oriented loader system with support for different load formats |
US5325533A (en) * | 1993-06-28 | 1994-06-28 | Taligent, Inc. | Engineering system for modeling computer programs |
US5519867A (en) * | 1993-07-19 | 1996-05-21 | Taligent, Inc. | Object-oriented multitasking system |
US5485617A (en) * | 1993-12-13 | 1996-01-16 | Microsoft Corporation | Method and system for dynamically generating object connections |
US5499343A (en) * | 1993-12-17 | 1996-03-12 | Taligent, Inc. | Object-oriented networking system with dynamically configurable communication links |
US5694546A (en) * | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5517617A (en) * | 1994-06-29 | 1996-05-14 | Digital Equipment Corporation | Automatic assignment of addresses in a computer communications network |
JP3508258B2 (ja) | 1994-09-09 | 2004-03-22 | 株式会社デンソー | 内燃機関用点火装置 |
US5586312A (en) * | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5838906A (en) | 1994-10-17 | 1998-11-17 | The Regents Of The University Of California | Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document |
US5623656A (en) * | 1994-12-15 | 1997-04-22 | Lucent Technologies Inc. | Script-based data communication system and method utilizing state memory |
US5530852A (en) * | 1994-12-20 | 1996-06-25 | Sun Microsystems, Inc. | Method for extracting profiles and topics from a first file written in a first markup language and generating files in different markup languages containing the profiles and topics for use in accessing data described by the profiles and topics |
US5819093A (en) * | 1995-03-03 | 1998-10-06 | Sun Microsystems, Inc. | System and method for a distributed debugger for debugging distributed application programs |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5701451A (en) | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5737592A (en) * | 1995-06-19 | 1998-04-07 | International Business Machines Corporation | Accessing a relational database over the Internet using macro language files |
US5657390A (en) * | 1995-08-25 | 1997-08-12 | Netscape Communications Corporation | Secure socket layer application program apparatus and method |
US6249291B1 (en) * | 1995-09-22 | 2001-06-19 | Next Software, Inc. | Method and apparatus for managing internet transactions |
US5660639A (en) * | 1995-10-17 | 1997-08-26 | Ford Motor Company | Method and apparatus for plasma treating an article |
US5572643A (en) | 1995-10-19 | 1996-11-05 | Judson; David H. | Web browser with dynamic display of information objects during linking |
US6370552B1 (en) * | 1997-05-14 | 2002-04-09 | Citrix Systems, Inc. | Apparatus and method for displaying application output in an HTML document |
US6169540B1 (en) * | 1995-12-01 | 2001-01-02 | Immersion Corporation | Method and apparatus for designing force sensations in force feedback applications |
US6161126A (en) * | 1995-12-13 | 2000-12-12 | Immersion Corporation | Implementing force feedback over the World Wide Web and other computer networks |
IL116804A (en) | 1996-01-17 | 1998-12-06 | R N S Remote Networking Soluti | Application user interface redirector |
US5859971A (en) * | 1996-02-15 | 1999-01-12 | International Business Machines Corp. | Differencing client/server communication system for use with CGI forms |
US5838910A (en) | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server at an internet site |
US5754830A (en) * | 1996-04-01 | 1998-05-19 | Openconnect Systems, Incorporated | Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation |
US5933841A (en) * | 1996-05-17 | 1999-08-03 | Ameritech Corporation | Structured document browser |
US6434578B1 (en) * | 1996-06-26 | 2002-08-13 | Microsoft Corporation | Generating instruction sequences using independently executable pane renderers |
US6112242A (en) * | 1996-07-10 | 2000-08-29 | Uln Corporation | System and method for dynamic data interaction in a hypertext data processing system |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
JPH11514769A (ja) | 1996-08-08 | 1999-12-14 | アグラナット・システムス・インコーポレーテッド | 埋め込み形ウェブサーバ |
US5944791A (en) * | 1996-10-04 | 1999-08-31 | Contigo Software Llc | Collaborative web browser |
US6029182A (en) * | 1996-10-04 | 2000-02-22 | Canon Information Systems, Inc. | System for generating a custom formatted hypertext document by using a personal profile to retrieve hierarchical documents |
US5870545A (en) * | 1996-12-05 | 1999-02-09 | Hewlett-Packard Company | System and method for performing flexible workflow process compensation in a distributed workflow management system |
US5889942A (en) * | 1996-12-18 | 1999-03-30 | Orenshteyn; Alexander S. | Secured system for accessing application services from a remote station |
US5978842A (en) | 1997-01-14 | 1999-11-02 | Netmind Technologies, Inc. | Distributed-client change-detection tool with change-detection augmented by multiple clients |
US5983268A (en) * | 1997-01-14 | 1999-11-09 | Netmind Technologies, Inc. | Spreadsheet user-interface for an internet-document change-detection tool |
US6012087A (en) * | 1997-01-14 | 2000-01-04 | Netmind Technologies, Inc. | Unique-change detection of dynamic web pages using history tables of signatures |
US6101510A (en) * | 1997-01-29 | 2000-08-08 | Microsoft Corporation | Web browser control for incorporating web browser functionality into application programs |
US5978848A (en) | 1997-03-14 | 1999-11-02 | International Business Machines Corporation | Web browser method and system for backgrounding a link access during slow link access time periods |
US5796952A (en) * | 1997-03-21 | 1998-08-18 | Dot Com Development, Inc. | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
US6314456B1 (en) | 1997-04-02 | 2001-11-06 | Allegro Software Development Corporation | Serving data from a resource limited system |
US6262729B1 (en) | 1997-04-14 | 2001-07-17 | Apple Computer, Inc. | Method and apparatus for binding user interface objects to application objects |
JPH10301874A (ja) | 1997-04-22 | 1998-11-13 | Internatl Business Mach Corp <Ibm> | 遠隔操作方法、ネットワークを介して端末から遠隔操作されるサーバ及びhtmlファイルを格納する記憶媒体 |
US5946697A (en) * | 1997-04-22 | 1999-08-31 | Microsoft Corporation | Rapid transfer of HTML files |
US6230309B1 (en) * | 1997-04-25 | 2001-05-08 | Sterling Software, Inc | Method and system for assembling and utilizing components in component object systems |
US5937160A (en) * | 1997-05-01 | 1999-08-10 | Reedy Creek Technologies, Inc. | Systems, methods and computer program products for updating hypertext documents via electronic mail |
US5877757A (en) * | 1997-05-23 | 1999-03-02 | International Business Machines Corporation | Method and system for providing user help information in network applications |
US5983227A (en) | 1997-06-12 | 1999-11-09 | Yahoo, Inc. | Dynamic page generator |
US5978828A (en) | 1997-06-13 | 1999-11-02 | Intel Corporation | URL bookmark update notification of page content or location changes |
US6304895B1 (en) * | 1997-08-22 | 2001-10-16 | Apex Inc. | Method and system for intelligently controlling a remotely located computer |
US6192382B1 (en) * | 1997-09-24 | 2001-02-20 | Mediaone Group, Inc. | Method and system for web site construction using HTML fragment caching |
US6035332A (en) * | 1997-10-06 | 2000-03-07 | Ncr Corporation | Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants |
US6081830A (en) * | 1997-10-09 | 2000-06-27 | Gateway 2000, Inc. | Automatic linking to program-specific computer chat rooms |
US5946687A (en) * | 1997-10-10 | 1999-08-31 | Lucent Technologies Inc. | Geo-enabled personal information manager |
US5907681A (en) | 1997-10-20 | 1999-05-25 | International Business Machines Corporation | Intelligent method, apparatus and computer program product for automated refreshing of internet web pages |
US6311185B1 (en) | 1997-10-30 | 2001-10-30 | At&T Corp. | Method and apparatus for modifying an information page transmitted in a communications network |
US5999179A (en) * | 1997-11-17 | 1999-12-07 | Fujitsu Limited | Platform independent computer network management client |
US5999941A (en) * | 1997-11-25 | 1999-12-07 | Micron Electronics, Inc. | Database access using active server pages |
US6490584B2 (en) | 1997-11-26 | 2002-12-03 | International Business Machines Corporation | User-centered push methods and system |
US6601107B1 (en) * | 1998-02-02 | 2003-07-29 | Hughes Electronics Corporation | Adaptive fuzzy control of data acquisition and broadcasting |
US6275585B1 (en) * | 1998-04-28 | 2001-08-14 | Motorola, Inc. | Method for reprogramming a vehicle system or a user system in a vehicle |
US6094662A (en) * | 1998-04-30 | 2000-07-25 | Xerox Corporation | Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions |
US6108712A (en) * | 1998-05-05 | 2000-08-22 | International Business Machines Corp. | Client-server system with central application management and providing export agent capability for retrofitting existing hardware and applications into the system |
US6209029B1 (en) * | 1998-05-12 | 2001-03-27 | Silverstream Software, Inc. | Method and apparatus for accessing data sources in a three tier environment |
WO1999060504A1 (en) * | 1998-05-15 | 1999-11-25 | Unicast Communications Corporation | A technique for implementing browser-initiated network-distributed advertising and for interstitially displaying an advertisement |
US6397231B1 (en) * | 1998-08-31 | 2002-05-28 | Xerox Corporation | Virtual documents generated via combined documents or portions of documents retrieved from data repositories |
US6480865B1 (en) | 1998-10-05 | 2002-11-12 | International Business Machines Corporation | Facility for adding dynamism to an extensible markup language |
US6397253B1 (en) * | 1998-10-06 | 2002-05-28 | Bull Hn Information Systems Inc. | Method and system for providing high performance Web browser and server communications |
US6271858B1 (en) * | 1998-10-16 | 2001-08-07 | Microsoft Corporation | Incremental update for dynamic/animated textures on three-dimensional models |
US6313854B1 (en) | 1998-10-16 | 2001-11-06 | International Business Machines Corporation | Display mechanism for HTML frames |
US6134568A (en) * | 1998-10-30 | 2000-10-17 | Kinko's Ventures, Inc. | Previewing an assembled document |
US6393422B1 (en) * | 1998-11-13 | 2002-05-21 | International Business Machines Corporation | Navigation method for dynamically generated HTML pages |
US6249844B1 (en) * | 1998-11-13 | 2001-06-19 | International Business Machines Corporation | Identifying, processing and caching object fragments in a web environment |
US8418131B2 (en) * | 1998-11-25 | 2013-04-09 | Helmut Emmelmann | Interactive server side components |
US6305012B1 (en) | 1998-12-03 | 2001-10-16 | International Business Machines Corporation | Method and apparatus for dynamic selection of instructions for compiling using tags |
US6571245B2 (en) * | 1998-12-07 | 2003-05-27 | Magically, Inc. | Virtual desktop in a computer network |
US6360250B1 (en) * | 1998-12-28 | 2002-03-19 | Lucent Technologies Inc. | Apparatus and method for sharing information in simultaneously viewed documents on a communication system |
US6311187B1 (en) | 1998-12-29 | 2001-10-30 | Sun Microsystems, Inc. | Propogating updates efficiently in hierarchically structured data under a push model |
US6889379B1 (en) * | 1998-12-31 | 2005-05-03 | Microsoft Corporation | Transporting objects between a client and a server |
US6507856B1 (en) * | 1999-01-05 | 2003-01-14 | International Business Machines Corporation | Dynamic business process automation system using XML documents |
US6272493B1 (en) | 1999-01-21 | 2001-08-07 | Wired Solutions, Llc | System and method for facilitating a windows based content manifestation environment within a WWW browser |
US6870551B1 (en) * | 1999-01-28 | 2005-03-22 | International Business Machines Corporation | Method and apparatus for displaying full and selected dynamic data in a data processing system |
US6434738B1 (en) | 1999-04-22 | 2002-08-13 | David Arnow | System and method for testing computer software |
US6515681B1 (en) * | 1999-05-11 | 2003-02-04 | Prophet Financial Systems, Inc. | User interface for interacting with online message board |
GB9913165D0 (en) * | 1999-06-08 | 1999-08-04 | Secr Defence | Access control in a web environment |
US6691281B1 (en) * | 1999-06-15 | 2004-02-10 | Microsoft Corporation | Publishing/republishing data tables in HTML documents while maintaining formatting and functionality for restoring back the data tables |
US6742045B1 (en) * | 1999-07-02 | 2004-05-25 | Cisco Technology, Inc. | Handling packet fragments in a distributed network service environment |
US6557076B1 (en) * | 1999-07-22 | 2003-04-29 | International Business Machines Corporation | Method and apparatus for aggressively rendering data in a data processing system |
US6457103B1 (en) | 1999-07-22 | 2002-09-24 | International Business Machines Corporation | Method and apparatus for caching content in a data processing system with fragment granularity |
US6031747A (en) | 1999-08-02 | 2000-02-29 | Lockheed Martin Missiles & Space Company | Interleaved synchronous flyback converter with high efficiency over a wide operating load range |
US6496849B1 (en) | 1999-08-30 | 2002-12-17 | Zaplet, Inc. | Electronic media for communicating information among a group of participants |
US6356933B2 (en) * | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6701388B1 (en) * | 1999-09-28 | 2004-03-02 | Texas Instruments Incorporated | Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller |
US6587858B1 (en) * | 1999-09-30 | 2003-07-01 | Steven Paul Strazza | Systems and methods for the control of dynamic data and request criteria in a data repository |
US6920607B1 (en) * | 1999-12-15 | 2005-07-19 | Microsoft Corp. | Methods and systems for dynamically creating user interfaces |
AU2582401A (en) * | 1999-12-17 | 2001-06-25 | Dorado Network Systems Corporation | Purpose-based adaptive rendering |
US20020049788A1 (en) * | 2000-01-14 | 2002-04-25 | Lipkin Daniel S. | Method and apparatus for a web content platform |
US6912571B1 (en) * | 2000-02-22 | 2005-06-28 | Frank David Serena | Method of replacing content |
US7509404B2 (en) * | 2000-03-08 | 2009-03-24 | Oracle International Corporation | Methods and systems for partial page caching of dynamically generated content |
JP2001332630A (ja) * | 2000-05-19 | 2001-11-30 | Sharp Corp | 半導体装置の製造方法 |
DE60121484T2 (de) * | 2000-07-17 | 2007-09-27 | Hitachi, Ltd. | Steuerungsverfahren und Steuerungssystem für ein Kraftfahrzeug |
US7039658B2 (en) * | 2000-07-31 | 2006-05-02 | Starkey James A | Method and apparatus for generating web pages from templates |
US6684388B1 (en) * | 2000-08-22 | 2004-01-27 | International Business Machines Corporation | Method for generating platform independent, language specific computer code |
US6920609B1 (en) * | 2000-08-24 | 2005-07-19 | Yahoo! Inc. | Systems and methods for identifying and extracting data from HTML pages |
US6738804B1 (en) * | 2000-09-15 | 2004-05-18 | Yodlee.Com, Inc. | Method and apparatus for enabling sectored data refreshing of Web-site data during session |
US7051084B1 (en) * | 2000-11-02 | 2006-05-23 | Citrix Systems, Inc. | Methods and apparatus for regenerating and transmitting a partial page |
US7346842B1 (en) * | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
US20020099738A1 (en) * | 2000-11-22 | 2002-07-25 | Grant Hugh Alexander | Automated web access for back-end enterprise systems |
JP5013856B2 (ja) | 2006-12-27 | 2012-08-29 | 小林製薬株式会社 | カルニチン塩及びpH調整剤配合組成物 |
-
1999
- 1999-09-07 US US09/391,068 patent/US6356933B2/en not_active Expired - Lifetime
-
2000
- 2000-09-07 JP JP2001522434A patent/JP2003509739A/ja not_active Withdrawn
- 2000-09-07 DE DE60008555T patent/DE60008555T2/de not_active Expired - Lifetime
- 2000-09-07 KR KR1020027002964A patent/KR20020085873A/ko not_active Application Discontinuation
- 2000-09-07 EP EP00961609A patent/EP1214667B1/en not_active Expired - Lifetime
- 2000-09-07 CA CA002383849A patent/CA2383849A1/en not_active Abandoned
- 2000-09-07 IL IL14846100A patent/IL148461A0/xx unknown
- 2000-09-07 ES ES00961609T patent/ES2219393T3/es not_active Expired - Lifetime
- 2000-09-07 AU AU73538/00A patent/AU7353800A/en not_active Abandoned
- 2000-09-07 WO PCT/US2000/024492 patent/WO2001018691A2/en active IP Right Grant
-
2001
- 2001-11-02 US US10/004,199 patent/US6920480B2/en not_active Expired - Lifetime
-
2002
- 2002-10-16 HK HK02107520A patent/HK1046321A1/xx not_active IP Right Cessation
-
2005
- 2005-07-18 US US11/184,757 patent/US7596593B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE60008555T2 (de) | 2004-08-05 |
EP1214667B1 (en) | 2004-02-25 |
JP2003509739A (ja) | 2003-03-11 |
US7596593B2 (en) | 2009-09-29 |
US6356933B2 (en) | 2002-03-12 |
IL148461A0 (en) | 2002-09-12 |
WO2001018691A2 (en) | 2001-03-15 |
EP1214667A2 (en) | 2002-06-19 |
KR20020085873A (ko) | 2002-11-16 |
US6920480B2 (en) | 2005-07-19 |
US20020116455A1 (en) | 2002-08-22 |
AU7353800A (en) | 2001-04-10 |
US20010042094A1 (en) | 2001-11-15 |
HK1046321A1 (en) | 2003-01-03 |
US20050251551A1 (en) | 2005-11-10 |
CA2383849A1 (en) | 2001-03-15 |
DE60008555D1 (de) | 2004-04-01 |
WO2001018691A3 (en) | 2002-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2219393T3 (es) | Metodos y aparatos para el transporte eficiente de datos de aplicaciones interactivas entre un cliente y un servidor utilizando lenguaje de marcas. | |
US7756905B2 (en) | System and method for building mixed mode execution environment for component applications | |
CN100559365C (zh) | 规定异步Web服务的方法和设备及规定接收回调的逻辑的方法和设备 | |
CN101849228B (zh) | 用于创建面向IT的基于服务器的Web应用的方法和系统 | |
US6701368B1 (en) | Providing a stream of data to a browser to update properties on a page | |
US10545749B2 (en) | System for cloud computing using web components | |
AU2003266253B2 (en) | Method and computer system for handling incremental data in client-server communication | |
CN102227901B (zh) | 点滴式同步协议 | |
US20060259638A1 (en) | Rapid development in a distributed application environment | |
CN101836201A (zh) | 翻译声明性模型 | |
CN100583043C (zh) | 提供共享Web模块的系统和方法 | |
JP2007293860A (ja) | 既存のインテーグレイテッド・インターフェイス・バックグラウンド上への新しいユーザインターフェイスのマッピング | |
CN101211363B (zh) | 更新分布式网络上的浏览器页面元素的方法和系统 | |
US20160170815A1 (en) | Delegating a status visualization task to a source application by a target application | |
US7058939B2 (en) | Automatic link maintenance to ensure referential integrity constraints | |
Kang et al. | Modelling mobile agent applications in UML 2.0 activity diagrams | |
US7805715B2 (en) | Model publishing framework | |
Harth et al. | Specifying and executing user agent behaviour with condition-action rules | |
US20060075384A1 (en) | Method, system and program product for managing application forms | |
CN113778560A (zh) | 医院就诊流程定制开发及执行的方法与系统、设备与介质 | |
JP2002132562A (ja) | データベース更新システム | |
CN111176631A (zh) | 一种基于Unity的交互系统和交互方法 | |
Ren et al. | Incorporating Off-The-Shelf Components with Event-based Integration. | |
Kozlovics | A Model-Driven Approach to Web Applications | |
Burrell et al. | Distributed Doodling |