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
Application number
ES00961609T
Other languages
English (en)
Inventor
David C. Mitchell
Ben Walters
Dale Mitchell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Application granted granted Critical
Publication of ES2219393T3 publication Critical patent/ES2219393T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

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.
Campo del invento
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.
Antecedentes del invento
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.
Sumario del invento
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.
Breve descripción de los dibujos
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.
Descripción detallada del 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.
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.
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.
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.
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.
1
2
3
4
5
6

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.
ES00961609T 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. Expired - Lifetime ES2219393T3 (es)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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調整剤配合組成物

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