MX2007011027A - Sistema y metodo para producir y comunicar datos solicitados entre programas de aplicacion en red. - Google Patents

Sistema y metodo para producir y comunicar datos solicitados entre programas de aplicacion en red.

Info

Publication number
MX2007011027A
MX2007011027A MX2007011027A MX2007011027A MX2007011027A MX 2007011027 A MX2007011027 A MX 2007011027A MX 2007011027 A MX2007011027 A MX 2007011027A MX 2007011027 A MX2007011027 A MX 2007011027A MX 2007011027 A MX2007011027 A MX 2007011027A
Authority
MX
Mexico
Prior art keywords
event handler
computer
procedure
request
event
Prior art date
Application number
MX2007011027A
Other languages
English (en)
Inventor
Jorge Pereira
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2007011027A publication Critical patent/MX2007011027A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

Se entregan fragmentos de documento de un servidor web a una aplicacion de cliente desplegado por servidor. La invencion incluye una estructura de datos de una solicitud de datos que incluye un campo de espacio de nombre, un campo de controlador de evento, y un campo de parametro. Un primer procedimiento envia una estructura de datos llena a un segundo procedimiento. El segundo procedimiento ejecuta logica mantenida por el segundo procedimiento e identificada en la estructura de datos llena para generar datos de resultado. El segundo procedimiento envia los datos de resultado al primer procedimiento para presentar a un usuario de otro procesamiento por el primer procedimiento.

Description

SISTEMA Y MÉTODO PARA PRODUCIR Y CQMUNK :AR DATOS SOLICITADOS ENTRE PROGRAMAS DE APLICACIÓN EN RED CAMPO TÉCNICO Las modalidades de la presente invención se refieren al campo de comunicaciones de computadora. En particular, las modalidades de esta invención se refieren a solicitudes para datos en la forma de un esquema que tiene un espacio de nombre, eventos dentro del espacio de nombre, y parámetros para los eventos.
ANTECEDENTES DE LA INVENCIÓN Algunas aplicaciones de correo a base de web, desplegadas por el servidor proporcionan a los usuarios acceso a sus buzones centralmente localizados. Estas aplicaciones también proporcionan la capacidad de enviar o recibir correo electrónico (e-mail), programar citas, y realizar otras tareas de manejo de información personal (PIM) desde una red tal como Internet. Algunas de estas aplicaciones se ejecutan en un navegador y están en compañía de otras aplicaciones PIM. Tales aplicaciones de red de cliente requieren una mayor cantidad de tráfico de cliente-servidor para ser capaz de ¡mplementar la funcionalidad PIM. Por ejemplo, cuando un usuario remueve una lista de correo electrónico en una bandeja para revisar nuevo correo electrónico, se envía una solicitud web al servidor para recuperar la nueva lista de correo electrónico en la bandeja Para algunas aplicaciones de cliente, el tráfico de cliente-servidor es una mezcla de extinciones de autorización y versión distribuida de web (WebDAV) al protocolo de transferencia del pretexto (HTTP) y otros varios esquemas (por ejemplo, pares de valor de nombre simple en solicitudes HTTP POST) El uso de múltiples protocolos para acceso de datos en estos sistemas anteriores complica la implementacion y contribuye al mantenimiento pobre Estos sistemas anteriores también utilizan esquema inconsistente e insuficiente para las solicitudes En formato de valor de nombre tal como se utiliza en algunos sistemas anteriores esta muy limitado y no soporta fácilmente datos fuertemente escritos o estructuras más complejas o disposiciones Además, debido a que el formato de valor de nombre requiere un alto de linea como el separador para pares de valor de nombre, todos los datos para un par de valor de nombre particular tienen que codificarse sin un freno de linea antes de transmisión y después de que se decodifican con el recibo Estos pasos extras en algunos sistemas existentes disminuyen la velocidad del procesamiento y aumentan la complejidad Incluso otro problema con algunas aplicaciones de cliente de web existentes es que el código lateral de servidor que proporciona varios tipos de funcionalidad a la aplicación de cliente es caótico y desorganizado Al llegar nuevos controles de solicitud al código lateral de servidor de sistema existente es difícil Por consiguiente, un sistema mejorado para comunicación de cliente-servidor se desea para dirigir una o más de éstas y otras desventajas BREVE DESCRIPCIÓN DE LA INVENCIÓN Las modalidades de la invención incluyen un protocolo y esquema para producir y comunicar datos solicitados entre programas de aplicación en red. En una modalidad, la invención además incluye una arquitectura y un grupo de interfases de programación de aplicación (APIs) disponible para desarrolladores de controladores de solicitud que producen los datos solicitados. Las APIs permiten a los desarrolladores crear controles de solicitud usuales En una modalidad de cliente-servidor de la invención, un cliente de acuerdo con la invención envía solicitudes de datos a un servidor de acuerdo con un esquema bien definido de la invención La solicitud identifica un espacio de nombre de controlador de solicitud, un controlador de evento dentro del espacio de nombre de controlador de solicitud, uno o más parámetros del controlador de evento La invención incluye una infraestructura de controladores de evento agrupados en espacios de nombre de controlador de solicitud en el servidor que entrega respuesta en el cliente en múltiples formatos como se solicito por cada cliente La infraestructura de servidor analiza la solicitud para identificar un controlador de evento particular en un espacio de nombre particular y ejecuta código de controlador asociado con el controlador de evento identificado como una función de los parámetros de solicitud. La invención es poderosa pero de peso ligero y clasificable. El uso de un esquema consistente para solicitudes de datos simplifica la interacción entre los programas de aplicación y contribuye a mantenimiento mejorado de los controladores de solicitud. El esquema de la invención soporta estructuras de datos complejas. La invención soporta la adición de controladores de solicitud sin cambios a la infraestructura para producir y entregar los datos solicitados. De acuerdo con un aspecto de la invención, el sistema incluye uno o más medios legibles por computadora para almacenar una pluralidad de controladores de evento cada una que tiene un espacio de nombre asociado con él. Cada uno de la pluralidad de controladores de evento además tiene uno o más parámetros asociados con este. Los medios legibles por computadora almacenan una estructura de datos que representa una solicitud formateada para datos. La estructura de datos incluye un campo de espacio de nombre que almacena un valor de espacio de nombre que representa el espacio de nombre, en campo de controlador de evento que almacena un valor de controlador de evento que corresponde a una de la pluralidad de controladores de evento. Uno de la pluralidad de controladores de evento está asociado con un espacio de nombre representado por el valor de espacio de nombre en el campo de espacio de nombre. La estructura de datos también incluye un campo de parámetro que almacena un valor de parámetro que corresponde a uno de los parámetros Uno de los parámetros está asociado con el controlador de evento representado por el valor de controlador de evento en el campo de controlador de evento El sistema también incluye un primer procesamiento desplegado por un segundo procesamiento El primer procesamiento se configura para ejecutar instrucciones ejecutables por computadora para recibir una solicitud de datos de un usuario de procedimiento, que identifica un valor de espacio de nombre asociado con la solicitud recibida, que selecciona un valor de controlador de evento como una función de la solicitud recibida y el valor de espacio con nombre identificado, y que determina un valor de parámetro como una función de la solicitud recibida y el valor de controlador de evento seleccionado El primer procedimiento además tiene la estructura de datos al almacenar el valor de espacio de nombre identificado en el campo de espacio de nombre, el valor de controlador de evento seleccionado en el campo de controlador de evento, y el valor de parámetro predeterminado en el campo de parámetro El primer procedimiento además transmite la estructura de datos llena al segundo procedimiento. Un segundo procedimiento se configura para ejecutar instrucciones ejecutables por computadora para recibir la estructura de datos llena del primer procedimiento, que selecciona, como una función de la estructura de datos recibida, un controlador de evento desde la pluralidad de controladores de evento almacenados en el medio legible por computadora, que ejecuta el controlador de evento seleccionado para generar datos de resultado; y transmitir los datos de resultado generados a primer procedimiento. De acuerdo con otro aspecto de la invención, un método ¡mplementado por computadora produce y entrega datos desde un procedimiento a otro procedimiento. El método implementado por computadora ¡ncluye recibir, por un primer procedimiento, una solicitud de datos de un usuario y que identifica un espacio de nombre asociado con la solicitud recibida. El método también incluye determinar, por el primer procedimiento, un controlador de evento asociado con el espacio de nombre identificado como una función de la solicitud recibida. El método además incluye llenar, por el primer procedimiento, un parámetro asociado con el controlador de evento determinado como una función de la solicitud recibida y que crea una solicitud formateada con el espacio de nombre identificado, el controlador de evento determinado, y el parámetro lleno. El método también ¡ncluye transmitir desde el primer procedimiento, la solicitud creada, formateada a un segundo procedimiento. El método también incluye recibir, por el primer procedimiento, la solicitud formateada del primer procedimiento y seleccionar, como una función de la solicitud recibida, formateada, un controlador de evento desde una pluralidad de controladores de evento almacenados en un área de memoria. El método implementado por computadora también incluye ejecutar, por el segundo procedimiento, el controlador de evento seleccionado para genera datos de resultados y transmitir los datos de resultado generados desde el segundo procedimiento hacia el primer procedimiento De acuerdo con incluso otro aspecto de la invención, uno o más medios legibles por computadora que tienen componentes ejecutables por computadora para producir y comunicar datos solicitados en un ambiente en red Los componentes incluye un componente de cliente desplegado por servidor para recibir una solicitud de datos de un usuario, que identifica un espacio de nombre asociado con la solicitud recibida, determinar un controlador de evento asociado con el espacio de nombre identificado como una función de la solicitud recibida, Llenar un parámetro asociado con el controlador de evento determinado como una función de la solicitud recibida; que hay una solicitud formateada, el espacio de nombre identificado, el controlador de evento determinado, el parámetro lleno, y transmitir la solicitud creada, formateada a un componente de servidor Los componentes también incluyen el componente de servidor para recibir la solicitud transmitida del componente de cliente desplegado por servidor, seleccionar, como una función de la solicitud recibida, un controlador de evento de una pluralidad de controladores de evento almacenados en un área de memoria; Ejecuta el controlador de evento seleccionado para generar los datos resultados, y transmitir los datos de resultado generados a un componente de cliente desplegado por servidor Alternativamente, la invención puede comprende varios otros métodos y aparataos Otra característica será evidente y en parte señalara aquí más adelante.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es un diagrama de bloque ilustrativo que ilustra un componente de servidor que se comunica con uno o más componentes de cliente a través de una red. La Figura 2 es un cuadro de flujo ilustrativo que ilustra la operación de los procedimientos de cliente y de servidor para comunicar datos solicitados. La Figura 3 es un diagrama de bloque ilustrativo que ilustra módulos en el componente de servidor. La Figura 4 es un diagrama de bloque ilustrativo que ilustra un grupo ilustrativo de clases de controlador de evento. La Figura 5 es un diagrama de bloque que ilustra un ejemplo de un ambiente de sistema de cómputo adecuado en el cual puede implementarse la invención. El apéndice A describe eventos y parámetros ilustrativos en un espacio de nombre de correo electrónico de la invención. Los caracteres de referencia correspondientes indican partes correspondientes a través de los dibujos.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN En una modalidad, la invención incluye una aplicación de servidor, o componente, procedimiento, o los datos de entrega similares para una aplicación de cliente desplegado por servidor, componente, procedimiento, o similares en respuesta a una solicitud de la aplicación de cliente para los datos, tal como se ilustra en la Figura 1 En un componente de servidor 102, el código o rutina para responder a las solicitudes da tos tal como solicitud de datos 103 se divide a unos controladores de evento (por ejemplo, una pluralidad de eventos de controladores 104) o similares. Los controladores de evento 104 se organizan lógicamente, en una modalidad, en espacios de nombre. En particular, la invención incluye construir una solicitud tal como la solicitud de datos 103 que contiene información sobre el espacio de nombre el controlador de evento a ejecutar, así como los parámetros para ese controlador La invención además incluye una infraestructura en el servidor 102 que permite a los desarrolladores implementar controladores de solicitud que entrenan respuesta a las solicitudes de datos Un ejemplo de la invención involucra una vista de calendario en una aplicación a manejo de información de personal distribuido. Una vista de calendario muestra una vista de citas para un día dado. El servidor 102 renueva esta vista en el calendario al consultar una base de datos para recuperar las citas en una escala de tiempo dada Las citas recuperadas se presentan en un cliente (por ejemplo, componente de cliente 108) en las posiciones derechas dependiendo del tiempo de inicio y duración de cada una de las citas. En los sistemas previos, tal operación de renovación se logró por el componente de cliente 108 que solicita los datos para regresarse en formato de lenguaje de marcación extensible (XML) mientras las extensiones de Autorización y Versión Distribuida de Web (WebDAV) al protocolo de transferencia de hipertexto (HTTP), que utilizan una transformación de definición de esquema extensible (XSD) para generar HTML para los datos XML, y que presentan el HTML al usuario Tales sistemas son complicados y difíciles de mantener Sin embrago, con la invención, se logra una renovación de calendario por el componente de cliente 108 que envía una solicitud formateada para datos (por ejemplo, solicitud de datos 103), y que recibe una corriente de código (por ejemplo, JavaScript) que define los datos de calendario Los datos de calendario se presentan parcialmente en el servidor 102 El componente de cliente 108 ejecuta el código y genera en la marcación HTML que utiliza el escrito La carga del componente de cliente 108 se reduce debido a que la mayoría de los datos de calendario de información de presentación de pre-calculan al servidor 102 En otro ejemplo de la invención, el servidor 102 renueva una vista de correo de una aplicación PIM al regresar HTML que se presento en el servidor 102 La invención no está limitada a regresar datos en cualquier formato particular Más que eso, la invención regresa datos en cualquier forma dictada por el componente de cliente 108 tal como HTML, XML, texto, una carga útil de JavaScript, o similares Haciendo referencia de nuevo a la Figura 1, un diagrama de bloque ilustrativo ilustra un componente de servidor, procedimiento, o similares tal como un componente de servidor 102 que se comunica a través de una red (por ejemplo, Internet) con una o más componentes de tiempo 108, procedimientos, o similares tal como el componente de cliente #1 a través del componente de cliente #N. El sistema de la Figura 1 ¡ncluye uno más medios legible por computadora tal como un área de memoria 106. El área de memoria 106 almacena una pluralidad de controladores de evento 104 cada uno que tiene un espacio de nombre asociado con el. Cada uno de la pluralidad de controladores de evento 104 además tiene uno o más parámetros asociados con él. Una estructura de datos que representa una solicitud de datos formateada 103 también se almacena en medios legibles por computadora. En la Figura 1, la solicitud de datos se muestra almacenado el componente de cliente 108 al componente de servidor 102. La estructura de datos que representan la solicitud de datos 103 incluye un campo de espacio del nombre que almacena el valor de espacio de nombre que representa el espacio de nombre. La estructura de datos además incluye un campo de controlador de evento que almacena un valor de controlador de evento que corresponde a una de la pluralidad de controladores de evento 104 almacenados en el área de memoria 106 que se asocia con el espacio en el nombre representado por el valor de espacio del nombre en el campo de espacio de nombre. La estructura de datos además incluye un campo de parámetro que almacena al menos un valor de parámetro que corresponde a un parámetro asociado con el controlador de evento representado por el valor de controlador de evento en el campo de controlador de evento En el ejemplo de la Figura 1, el componente de cliente 108 es un primer procedimiento, y el componente de servidor 102 es un segundo procedimiento El primer procedimiento es una aplicación de cliente distribuida o de otra forma se despliega por el segundo procedimiento para proporcionar alguna o toda la funcionalidad del componente de servidor 102 Por ejemplo, el primer procedimiento puede ser una aplicación de cliente desplegada por servidor tal como el cliente de manejo de información personal desplegado por servidor y el componente de servidor 102 puede ser un servidor de manejo de información personal Sin embargo, la invención no está limitada a una relación de cliente-servidor entre el primer procedimiento y el segundo procedimiento Por ejemplo, la relación entre el primer procedimiento y el segundo procedimiento puede ser par a par En una modalidad, el primer procedimiento se configura para ejecutar instrucciones ejecutables por computadora para solicitar datos del segundo procedimiento En particular, el primer procedimiento recibe una solicitud de datos de un usuario o procedimiento La solicitud puede incluir, por ejemplo, una solicitud para revisar el correo electrónico recientemente recibido, una solicitud para actualizar una presentación de calendario, o cualquier otra solicitud de datos El primer procedimiento identifica un valor de espacio de nombre asociado con la solicitud recibida y selecciona un valor de controlador de evento como una función de la solicitud recibida y el valor de espacio de nombre identificado. El controlador de evento seleccionado es particular para la solicitud específica del usuario y es una de la pluralidad de controladores de evento 104 asociados con el valor de espacio de nombre identificado. El controlador de evento seleccionado tiene uno o más parámetros. El primer procedimiento determina un valor de parámetro para uno o más de los parámetros del controlador de evento seleccionado. El valor de parámetro se determina al utilizar datos de la solicitud recibida. El valor de parámetro puede incluir datos de cualquier tipo o puede representarse en cualquier formato reconocido por el segundo procedimiento (por ejemplo, la imagen o marcación extensible). El primer procedimiento y una estructura de datos que representa la solicitud de datos 103 al almacenar el valor de espacio de nombre identificado en el campo de espacio de nombre, el valor de controlador de evento seleccionado en el campo de controlador de evento, y el valor de parámetro determinado en el campo de parámetro. El primer procedimiento transmite la estructura de datos llena (por ejemplo, solicitud de datos 103) al segundo procedimiento.
En una modalidad, la estructura de datos llena incluye una serie de pares de valor de nombre. Por ejemplo, el campo de espacio de nombre y un valor de espacio de nombre son un par de valor de nombre, el campo de controlador de evento-valor de controlador de evento son un par de valor de nombre, y el campo de parámetro y el valor de parámetro son un par de valor de nombre. En el segundo procedimiento se configura para ejecutar instrucciones ejecutables por computadora para generar y entregar los datos solicitados al ppmer procedimiento. En una modalidad, el segundo procedimiento recibe la estructura de datos llena (por ejemplo, solicitud de datos 103) del primer procedimiento y selecciona un controlador de evento de la pluralidad de controladores de evento 104 almacenado en el área de memoria 106. El controlador de evento seleccionado corresponde al controlador de evento especificado en la solicitud de datos recibidos 103. El segundo procedimiento ejecuta al controlador de ambiente seleccionado que utiliza los parámetros de la solicitud de datos 103 recibido del primer procedimiento para generar datos de resultados. El segundo procedimiento transmite los datos de resultado generados al primer procedimiento. En una modalidad, el segundo procedimiento selecciona el controlador de evento apropiado al consultar una base de datos de configuración cargada con información sobre los espacios de nombre disponibles, controladores de evento (por ejemplo, la pluralidad de controladores de evento 104), y parámetros. El segundo procedimiento incluye, por ejemplo, un componente de registro para construir la base de datos de configuración antes de recibir la solicitud de datos 103 del primer procedimiento. Por ejemplo, la pluralidad de controladores de evento 104 puede organizarse en la base de datos de configuración por espacio de nombre. La invención ¡ncluye medios para almacenar la pluralidad de controladores de evento 104, medios para ejecutar el primer procedimiento, y medio para ejecutar el segundo procedimiento. El hardware y software tal como una estructura de datos, una interfase de usuario, un programa de aplicación, una interfase de programación de aplicación (API), instrucciones ejecutables por computadora, firmware, y similares (tal como se ilustro en las Figuras) constituye medios para almacenar la pluralidad de controladores de evento 104, medios para ejecutar el primer procedimiento, y medios para ejecutar el segundo procedimiento. En una modalidad, la invención se implementa la utilizar solicitudes HTTP con el verbo COLOCAR u OBTENER. La solicitud incluye la siguiente información: un espacio de nombre (por ejemplo, indicado por el parámetro de fila de consulta URL 'ns'), un nombre de evento (por ejemplo, indicado en la fila de consulta de URL como el parámetro 'ev'), y uno o más parámetros de solicitud. Los parámetros son cualquiera de XML para solicitudes de COLOCAR o como pares de valor de nombre o solicitudes de OBTENER. Una solicitud de OBTENER ilustrativa (por ejemplo, solicitud de datos 103) de la invención es como sigue. URL:/correo/ev.owa?ns = nsVista de Calendario&ev = Renovar&d = 11142004T00:00:00Z En este ejemplo, el cliente (por ejemplo, componente de cliente 108) pide al servidor (por ejemplo, componente de servidor 102) ejecutar el controlador de "Renovar" en el espacio de nombre "Vista de Calendario". El componente de cliente 108 pasa a un parámetro de fecha de tipo nombrado "d" con el valor 11/14/2004 a las 12 am. El componente de servidor 102 regresa a la marcación o carga útil de JavaScript para esta vista, dependiendo de la implementación. Una solicitud de COLOCAR ILUSTRATIVA (por ejemplo, solicitud de datos 103) de la invención es como sigue. URL:/servidor de correo/ev.owa?ns = Envío de Mensaje&ev = Guardar Mensaje CUERPO: <params> <asunto>Probar Correo Electrónico </asunto> <para><artículo>usuarioA@páginaA.net</artículo><artículo>usu arioB@páginaA.net</artículo></para> <cuerpo>Probar algo</cuerpo> </params> En este ejemplo, el componente de cliente 108 pide al componente de servidor 102 ejecutar el controlador de evento 'Guardar Mensaje' en el espacio de nombre 'envío de mensaje'. Los parámetros de nombre son de un asunto (fila), para (disposición de filas) y cuerpo (fila). La respuesta de este evento es un resultado de HTTP que indica el sitio o error. En este caso, no es necesaria ninguna marcación regresada. Los parámetros pueden estar en la forma de XML o cualquier otro formato de lenguaje se puede entender para el servidor. Haciendo referencia después a la Figura 2, un cuadro de flujo ilustrativo ilustra la operación del cliente y produce adimentos de servidor para comunicar datos solicitados. El cuadro de flujo de la Figura 2 refleja un método implementado por computadora para producir y entregar datos de un procedimiento a otro procedimiento. El método incluye recibir, como primer procedimiento tal componente de cliente 108 en la Figura 1, una solicitud de datos de un usuario en 202 e identificar un espacio de nombre asociado con la solicitud recibida en 204. El método además incluye determinar un controlador de evento asociado con el espacio de nombre identificado como una Función de la solicitud recibida en 206 y llenar un parámetro asociado con el controlador de evento determinado como una función de la solicitud recibida en 208. El método también ¡ncluye crear una solicitud formateada (por ejemplo, solicitud de datos 103 en la Figura 1) con el espacio de nombre identificado como un controlador de evento determinado, y el parámetro lleno en 210. El método transmite, del primer procedimiento a un segundo procedimiento (por ejemplo, componente de servidor 102), la solicitud creada, formateada en 212. El método de la invención incluye recibir, por el segundo procedimiento, la solicitud formateada del primer procedimiento en 214. El método selecciona un espacio de nombre en 215 basándose en la solicitud recibida. El método también incluye seleccionar, por el segundo procedimiento como una función de la solicitud recibida, formateada, un controlador de evento de una pluralidad de controladores de evento (por ejemplo, pluralidad de controladores de evento 104 en la Figura 1) almacenados en uno o más medios legibles por computadora (por ejemplo, área de memoria 106 en la Figura 1) en 216. El método analiza y valida los parámetros en la solicitud recibida 217. El método además incluye ejecutar el controlador de evento seleccionado para generar datos de resultado 218 y transmitir, del segundo procedimiento al primer procedimiento, los datos de resultado generados al primer procedimiento en 220. El primer procedimiento recibe los datos de resultado y, en un ejemplo, presenta los datos al usuario. Un desarrollador u otro usuario pueden crear espacios de nombre de definidos por usuario, controladora de evento, y/o parámetros. El método de la invención además incluye recibir, por el primer procedimiento del usuario, un espacio de nombre definido por usuario, un controlador de evento definido por usuario asociado con el espacio de nombre definido por usuario, y/o un parámetro definido por usuario del controlador de evento definido por usuario. El primer procedimiento registra el espacio de nombre definido por usuario y recibido, el controlador de evento definido de usuario, y/o el parámetro definido por usuario, el segundo procedimiento. El segundo procedimiento registra el espacio de nombre definido por usuario y recibido, el controlador de evento definido por usuario, y el parámetro definido por usuario sin cambiar la infraestructura del segundo procedimiento. Es decir, el código que ¡mplementa el segundo procedimiento (por ejemplo, el componente de servidor) no cambia debido a su registro. La infraestructura del segundo procedimiento accesa a espacio de nombre registrado, definido por usuario, controlador de evento, o parámetro en la misma forma que el segundo procedimiento accede a otros espacios de nombres, controladores de evento, y valores de parámetro. En una modalidad, uno o más medios legibles por computadora tiene instrucciones ejecutables por computadora para realizar el método implementado por computadora ilustrado en la Figura 2. Haciendo referencia después a la Figura 3, un diagrama de bloque ilustrativo ilustra módulos en el componente de servidor. Los módulos se llaman dentro de una fila de solicitud 302 depositando componentes de servidor. En una modalidad, los controladores de evento son controladores HTTP que implementan interfase de controlador IHttp. La invención llama a un método de Solicitud de Procedimiento en esta ¡nterfase que permite a la clase de controlador regresar el código para procesar la solicitud. Una fábrica de controlador HTTP es una clase que implementa la interfase de Fábrica de Controlador IHttp. Tales objetos se utilizan para crear casos de los objetos de controlador HTTP utilizados para procesar las solicitudes. En el ejemplo de la Figura 3, una clase de fábrica de controlador HTTP llamada Fábrica de Controlador de evento 304 se muestra. La invención (por ejemplo, Aplicación HTTP 306) inicia un objeto (por ejemplo, caso Base de Controlador de Evento 308) de esta clase llama a un método de "Un Primer Controlador" IHttp que crea un caso de la clase de controlador HTTP apropiada (por ejemplo, subclases de Base de Controlador de Evento) basándose en un espacio de nombre de la solicitud. La Aplicación HTTP 306 y caso de Base de Controlador de evento 308 accede a un Contexto HTTP 314.
El objeto de Evento de Contexto 312 es una estructura de datos que contiene información sobre la solicitud (por ejemplo, el espacio de nombre, nombres de evento, y los parámetros de la solicitud). El registro de Controlador de Evento 310 es una clase que sirve como un depósito de información sobre los espacios de nombre de sus controladores de evento implementados por la aplicación, así como las estructuras de datos usuales soportadas y enumeraciones. La aplicación registra una clase de Base de Controlador de Evento que utiliza este depósito 310 en el inicio de aplicación. La invención reduce la clase (por ejemplo, al utilizar la reflexión) para determinar el espacio de nombre, eventos dentro del espacio de nombre, en parámetros de los eventos. Esta información se almacena y utiliza posteriormente durante el procesamiento de la solicitud y el análisis de los parámetros. Un flujo ilustrativo de ejecución de una solicitud de acuerdo con la invención se ilustra en la Figura 3. La invención recibe una solicitud de datos de acuerdo con la invención, crea un caso de clase de Fábrica de Controlador de Evento, y llama al Obtener Controlador en el caso creado. La implementación de Obtener Controlador de la Fábrica de Controlador de Evento revisa la firma de consulta para espacio de nombre y los nombres de adentro, y buscan el registro de controlador de evento 310 para la clase de controlador correspondiente al espacio de nombre y nombres de evento en la fila de consultas. Si la invención encuentra el controlador de evento solicitado, la ¡nvención crea un caso de ese controlador de evento.
También se crea el Contexto de evento 312. La invención llama la solicitud de Procedimiento en el controlador de evento. La solicitud de Procedimiento analiza los parámetros de la solicitud al utilizar una clase de analizador particular para la solicitud por sí misma (por ejemplo, si la solicitud es un verbo OBTENER o un verbo COLOCAR. La clase de análisis analiza los parámetros en la solicitud y utiliza el Registro de Controlador de Evento 310 para no hace ningún tipo de conversión ni asegurar que el esquema es correcto (por ejemplo, asegurar que todos los parámetros requeridos por este controlador se establecen). Los parámetros pueden almacenarse en una conexión en el contexto en este punto. La invención ejecuta el código de controlador de evento asociado con el controlador de evento (por ejemplo, ejecutar un método en la clase de controlador). Este código accede a los parámetros en el contexto, realiza el procesamiento, escribe la respuesta a la entidad que solicita en cualquier formato especificado por la entidad que solicita. Haciendo referencia después a la Figura 4, un diagrama de bloque ilustrativo ilustra un grupo de muestra de clases de controlador de evento que heredan de Base de controlador de evento 402. La base de Controlador de Evento 402 implementa una interfase de Controlador IHttp 404. El Controlador de Evento de Calendario 406, Controlador de Evento de Envío de Mensajes 408, y Controlador de Evento de vista de mensaje 410 heredan de base de Controlador de Evento 402. Los desarrolladores a otros usuarios pueden crear un controlador de evento de costumbre tal como se muestra en la Figura 4 al crear un espacio de nombre, identificar un evento en el espacio de nombre, y definir parámetros para el evento Un espacio de nombre definido por usuario, controlador de evento, y/o parámetro puede seleccionarse por usuario (por ejemplo, un nuevo controlador de evento dentro de un espacio de nombre existente) o creado por usuario (por ejemplo, un nuevo espacio de nombre) En una modalidad, un controlador de evento definido por usuario se implementa como una biblioteca de enlace dinámico. Los desarrolladores u otros usuarios pueden definir un esquema del espacio de nombre al utilizar atributos tal como se muestra más adelante [Espacio de Nombre de Evento ("espacio de nombre 1")] Controlador de Evento de Prueba de Clase Interna: Base de Controlador de Evento { [Evento ("Evento 1 ")] [Parámetro de Evento ("Param 1", tipo de (fila))] [Parámetro de Evento ("Param 2", tipo de (int))] Evento 1 vacío público () } Param 1 de f?la = (F?la)Contexto Obtener Valor Param ("Param 1"), int param 2 = (?nt)Contexto Obtener Valor de param ("Param 2"), Escritor. Escr?b?r("{0} + {1} = {2}", param 1, param 2, param 1 + param 2). } } En este ejemplo, el atributo de espacio de Nombre de Evento define el nombre del espacio de nombre sobre el cable, el atributo de evento define el nombre del evento en el cable, y el Atributo de Parámetro de evento define el nombre del parámetro, el tipo y si el parámetro es o no opcional. Para utilizar el controlador, el desarrollador de controlador escribe una clase que hereda de la base de Controlador de evento 402, escribe los eventos como métodos que no tienen ningún parámetro y regresan el vacío, defina el esquema que utilizan los atributos apropiados descritos anteriormente, y registra la clase con el componente de servidor. Las estructuras de datos de la invención permiten a los desarrolladores definir tipos complejos que pueden utilizarse como parámetros. Una estructura de datos ilustrativa se muestra más adelante. [Estructura de Evento ("r")] Artículo de Buen Recibo de Clase Interna { [Campo de Evento ("dn")] Nombre de Presentación de Fila Pública; [Campo de Evento ("em", verdadero, "oof@pageA.net")]//verdadero = campo opcional Correo Electrónico de Fila Pública; [Campo de Evento("t")] Tipo int público; Artículo bien recibido interno () Nombre de Presentación =""; Correo Electrónico =""; Tipo = 0; } La estructura de Datos ilustrativa anterior se codifica como se muestra más adelante. <r dn = "nombre de presentación" em = "dirección de correo electrónico" t = "1"/> Cuando el componente de servido de la invención recibe una solicitud que conforma una estructura de datos especifica, la invención crea un caso de la clase de estructura de datos especifica y la llena con los datos de la solicitud.
Ambiente Operativo Ilustrativo La Figura 5 muestra un ejemplo de un dispositivo de cómputo de propósito general en la forma de una computadora 130. En una modalidad de la invención, una computadora tal como la computadora 130 es adecuada para uso en las otras Figuras ilustradas y descritas aquí. La computadora 130 tiene uno o más procesadores unidades de procesamiento 132 y una memoria de sistema 134. En la modalidad ilustrada, un conductor común de sistema 136 acopla varios componentes de sistema que incluyen la memoria de sistema 134 a los procesadores 132 El conductor común 136 representa uno o más de cualquiera de varios tipos de estructuras de conductor común, que incluyen un conductor común de memoria o controlador de memoria, un conductor común periférico, un puerto de gráfico decelerado, y un procesador o conductor común local que utiliza cualquiera de una variedad de arquitectura de conductor común. A manera de ejemplo y no de limitación, tales arquitecturas incluyen Conductor Común de Arquitectura Estándar de Industria (ISA), conductor común de Arquitectura de Microcanal (MCA), conductor común de ISA mejorado (EISA), conductor común local de Asociación de Estándares electrónicos de Video (VESA), y conductor común de Interconexión de componente periférico (PCI) también conocido como conductor común de Mézanme La computadora 130 típicamente tiene al menos alguna forma de medios legibles por computadora Los medios legibles por computadora, que incluyen tanto medios volátiles como no volátiles, medios removibles y no removibles, puede ser cualquier medio que puede accederse por la computadora 130 A manera de ejemplo y no de limitación, los medios legibles por computadora comprenden medios de almacenamiento por computadora y medios de comunicación Los medios de almacenamiento por computadora incluyen medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método y tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos Por ejemplo, los medios de almacenamiento de computadora incluyen RAM ROM, EEPROM, y memoria flash y otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, cassettes magnéticos, cintas magnéticas, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por la computadora 130 Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte que incluye cualquier medio de entrega de información Aquellos expertos en la técnica están familiarizados con la señal de datos modulada, que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar la señal. Los medios mediante cables, tal como una red mediante cables o conexión mediante cables directa, y medios inalámbricos, tal como medios acústicos, RF, infrarrojos, y otros medios inalámbricos, son ejemplos de medios de comunicación. Las combinaciones de cualquiera de los anteriores también se incluyen dentro del alcance de medios legibles por computadora La memoria de sistema 134 incluye medios de almacenamiento por computadora en la forma de memoria removible y/o no removible, volátil y/o no volátil En la modalidad ilustrada, la memoria de sistema 134 incluye memoria solo de lectura (ROM) 138 y memoria de acceso aleatorio (RAM) 140 El sistema de entrada/salida básicos 142 (BIOS), que contiene las rutinas básicas que ayudan a transferir información dentro de elementos de la computadora 130, tal como durante el arranque, típicamente se almacena en ROM 138 La RAM 140 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o actualmente están siendo operados en la unidad de procesamiento 132 A manera de ejemplo, y no de limitación, la Figura 5 ilustra el sistema operativo 144, programas de aplicación 146, otros módulos de programa 148, y datos de programa 150 La computadora 130 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles Por ejemplo, la Figura 5 ilustra una unidad de disco duro 154 que lee de o escribe a medios magnéticos no removibles, no volátiles La Figura 5 también muestra una unidad de disco magnético 156 que lee de o escribe a un disco magnético removible, no volátil 158, y una unidad de disco óptico 160 que eleve o escribe a un disco óptico removible, no volátil 162 tal como un CD-ROM u otro medio óptico Otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles que pueden utilizarse en el ambiente operativo ilustrativo incluyen, pero no se limitan a, cassettes de cinta magnética, tarjetas de memoria flash, discos versátiles digitales, cinta de video digital, RAM de estado sólido, RAM de estado sólido, y similares. La unidad de disco duro 154, y unidad de disco magnético 156 y unidad de disco óptico 160 típicamente se conectan al conductor común de sistema 136 a través de una ¡nterfase de memoria no volátil, tal como interfase 166. Las unidades u otros dispositivos de almacenamiento masivo y sus medios de almacenamiento de computadora asociados discutidos anteriormente e ilustrados en la Figura 5, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 130. En la Figura 5, por ejemplo, la unidad de disco duro 154 se ¡lustra como almacenando el sistema operativo 170, programas de aplicación 172, otros módulos de programa 174, y datos de programa 176. Se debe notar que estos componentes pueden ser los mismo que o diferentes al sistema operativo 144, programas de aplicación 146, otros módulos de programa 148, y datos de programa 150. El sistema operativo 170, programas de aplicación 172, otros módulos de programa 174, y datos de programa 176 aquí se les proporcionan números diferentes para ilustrar que, en un mínimo, son copias diferentes. Un usuario puede ingresar comandos e información en la computadora 130 a través de dispositivos de entrada o dispositivo de selección de interfase de usuario tal como un teclado 180 y un dispositivo de señalamiento 182 (por ejemplo, un ratón, seguibola, pluma, o almohadillas sensibles al tacto). Otros dispositivos de entrada (no mostrados) pueden incluir micrófono, palanca de mandos, almohadillas de juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada se conectan a la unidad de procesamiento 132 a través de una interfase de entrada de usuario 184 que se acopla al conductor común de sistema 136, pero puede conectarse por otra interfase y estructura de conductor común, tal como un puerto paralelo, puerto de juegos, o un Conductor común en serie universal (USB). Un monitor 188 u otro tipo de dispositivo de presentación también se conecta al conductor común de sistema 136 a través de una interfase, tal como una interfase de video 190. Además del monitor 188, las computadoras frecuentemente incluyen otros dispositivos de salida periféricos (no mostrados) tal como una impresora y bocinas, que pueden conectarse a través de una interfase periférica de salida (no mostrada). La computadora 130 puede operar en un ambiente en red que utiliza conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 194. La computadora remota 194 puede ser una computadora personal, un servidor, un enrutador, un PC en red, un dispositivo par u otro nodo de red común, típicamente incluyen muchos o todos los elementos descritos anteriormente en relación a la computadora 130. Las conexiones lógicas ilustradas en la Figura 5 incluyen una red de área local (LAN) 196 y una red de área ancha (WAN) 198, pero también pueden incluir otras redes. La LAN 136 y/o WAN 138 pueden ser una red mediante cables, una red inalámbrica, o una combinación de las mismas, y así sucesivamente. Tales ambientes en red comúnmente están ubicados en oficinas, redes de computadora extendidas en empresa, intranets, y redes de computadora globales (por ejemplo, Internet) Cuando se utiliza en un ambiente en red de área local, la computadora 130 se conecta a la LAN 196 a través de una interfase de red o adaptador 186 Cuando se utiliza en un ambiente de red de área ancha, la computadora 130 típicamente incluye un modem 178 u otro medio para establecer comunicaciones a través de la WAN 198, tal como Internet El módem 178, que puede ser interno o externo, se conecta al conector común de sistema 136 a través de la interfase de entrada de usuario 184, u otro mecanismo apropiado En ambiente en red, los módulos de programa ilustrados en relación a la computadora 130, o porciones de la misma, pueden almacenarse de un dispositivo de almacenamiento de memoria remota (no mostrado) A manera de ejemplo, y no de limitación, la Figura 5 ilustra programas de aplicación remotos 192 como residentes en el dispositivo de memoria Las conexiones de red mostradas son ilustrativas y pueden utilizarse otros medios para establecer un enlace d comunicaciones entre las computadoras Generalmente, los procesadores de datos de la computadora 130 se programan por medio de instrucciones almacenadas en diferentes momentos en los varios medios de almacenamiento elegibles por computadora de la computadora Los programas y sistemas operativos típicamente se distribuyen, por ejemplo, en discos flexibles o CD-ROMs A partir de aquí, se instalan o cargan en la memoria secundaria de una computadora. En ejecución se cargan al menos parcialmente en la memoria electrónica primaria de la computadora La invención aquí descrita incluye estos y varios otros tipos de medios de almacenamiento elegibles por computadora cuando tales medios contienen instrucciones o programas para implementar los pasos descritos más adelante en conjunto con un micro procesador u otro procesador de datos. La invención también incluye la computadora por si misma cuando se programa de acuerdo con los métodos y técnicas aquí descritas. Para propósitos de ilustración, los programas y otros componentes de programa ejecutables, tal como sistema operativo, se ilustran aquí como bloques separados. Sin embargo, se reconoce que tales programas y componentes residen en varios momentos en diferentes componentes de almacenamiento de la computadora, y se ejecutan por el procesador(es) de datos de la computadora Aunque se describe en conexión con un ambiente de sistema de computo ilustrativo, que incluye la computadora 130, la invención es operacional con numerosos otros ambientes de sistema de computo de propósito general o propósitos especial o configuraciones. El ambiente de sistema de cómputo no pretende sugerir ninguna limitación al alcance de uso de funcionalidad de la invención. Además, el ambiente de sistema de cómputo no debe interpretarse como teniendo ninguna dependencia o requerimiento que se relaciona a ninguno o combinación de componente ilustrados en el ambiente operativo ilustrativo. Los ejemplos de los sistemas de computo bien conocidos, ambientes, y/o configuraciones que pueden ser adecuados para el uso con la invención, incluyen, pero no se limita a, computadoras personales, computadoras de servidor, dispositivos móviles o portátiles, sistemas de multiprocesador, sistemas a base de microprocesador, cajas de TV por cable, electrónica programable por el consumidor, teléfonos móviles, PCs de red, minicomputadoras, macrocomputadoras, ambientes de cómputo distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. La invención puede describirse en el contexto general de instrucciones ejecutables por computadora, tal como módulos de programa, ejecutados por una o más computadoras u otros dispositivos. Generalmente, los módulos de programa incluyen, pero no se limitan a, rutinas, programas, objetos, componentes, y estructuras de datos que realizan tareas particulares o implementan tipos de datos abstractos particulares. La invención también puede practicarse en ambientes de cómputo distribuidos en donde las tareas se realizan por dispositivos de procesamiento remotos que se enlazan a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden localizarse tanto en medios de almacenamiento de computadora locales como remotos que ¡ncluyen dispositivo de almacenamiento de memoria. Una interfase en el contexto de una arquitectura de software incluye un módulo de software, componente, porción de código, o de otra secuencia de inspecciones ejecutables por computadora. La ¡nterfase ¡ncluye, por ejemplo, un primer módulo que accede a un segundo módulo para realizar tareas de cómputo a beneficio del primer módulo. El primer y segundo módulo se incluyen, en un ejemplo, interfases de programación de aplicación (APIs) tal como se proporciona por los sistemas operativos, ¡nterfases de módulo de objeto de componente (COM) (por ejemplo, para comunicación de aplicación par a par) y las interfases de formato de intercambio de meta datos de lenguaje de marcación extensible (XMI) (por ejemplo, para comunicación entre servicios web). La interfase puede ser una implementación acoplada de forma justa, sincrónica tal como la edición de empresa de plataforma de Java 2 (J2EE), COM, o ejemplos de COM distribuido (DCOM). Alternativamente o además, la interfase puede ser una implementación acoplada de forma floja, sincrónica tal como en un servicio web (por ejemplo, que utiliza el protocolo de acceso de objeto simple). En general, la interfase incluye cualquier combinación de las siguientes características: acoplado de forma ajustada, acoplado de forma floja, sincrónico, asincrónico. Además, la interfase puede conformar un protocolo estándar, un protocolo de propiedad, o cualquier combinación de protocolos estándar y de propiedad. Las interfases aquí descritas todas pueden ser parte de una interfase individual o pueden implementarse como interfases separadas o cualquier combinación en ellas. Las interfases pueden ejecutarse local o remotamente para proporcionar funcionalidad. Además, las interfases pueden incluir funcionalidad adicional a menos a la ¡lustrada o descrita aquí. En operación, la computadora 130 ejecuta instrucciones ejecutables por computadora tal como aquellas ¡lustradas en la Figura 2 para producir y comunicar datos solicitados entre programas de aplicación en red. El apéndice A enlista espacios de alambre ilustrativos, controladores de evento, y parámetros de acuerdo con la invención. En el apéndice A, un tipo de controlador de Controlador de Evento de Recogedor de Fecha incluye eventos para un recogedor de fecha. El recogedor de fecha es un componente de interfase de usuario que permite a un usuario seleccionar fechas en varios contextos en la aplicación. El evento de Presentación de mes presenta el fragmento HTML que corresponde a un mes. Cuando el usuario da clic para navegar en Enero 2005, el componente de cliente de la invención envía el evento de Presentación de Mes al Servidor que toma los parámetros de entrada (por ejemplo, 'm' para el mes que es de fecha Enero 2005) y presenta el fragmento HPML para ese mes. El fragmento HTML presentado se envía de regreso al cliente. Un tipo de controlador de Controlador de evento de vista de lista de mensaje incluye eventos para la vista de lista de mensaje que muestra mensajes, por ejemplo, en una bandeja de entrada. El evento de Eliminación se hace funcionar cuando el usuario selecciona algunos mensajes para eliminación. El identificador de carpetas se representa por el atributo 'fld'. Las disposiciones de ¡dentificadores de mensaje para eliminar se representan por el atributo 'id'. El Controlador de Evento de Buen Recibo es el controlador de evento para el buen recibo. Un ejemplo de un evento en este tipo de controlador es 'resolver'. 'Resolver' toma los campos para, ce, y bec en un mensaje de correo electrónico como parámetros que son disposiciones de filas. El evento de resolver al inicio resuelve estás filas. Por ejemplo, si un usuario escribe "BobS", la solicitud de datos se envía al servidor con un artículo individual a la disposición que corresponde al parámetro 'para': "BobS". La respuesta es un fragmento HTML con "Bob Smith" en HTML con dirección de correo electrónico de Bob Smith y pueden ser otros datos unidos al mismo.
Una explicación detallada del método Obtener Carga Útil de Vista en el controlador de evento de vista de calendario se describe después. Los parámetros para este método incluyen atributos 'nvs, "fld, "días, 'vt, y 'dir.' Este controlador de evento se llama desde el cliente cuando la vista de calendario necesita renovarse. La vista de calendario presenta una franja de tiempo a la izquierda de la presentación con incrementos de media hora y cada día se presenta en una columna. Cuando la vista de calendario necesita renovarse, se elimina un evento de Obtener Carga Útil de Vista. Este evento carga los datos desde el extremo trasero (por ejemplo, una consulta en el calendario del usuario en el buzón), y presenta código (por ejemplo, JavaScript) que describe esos datos. El código presentado se denomina como una carga útil. La carga útil se envía al cliente que retira la vista al utilizar los datos de carga útil. Una carga útil ilustrativa incluye el tiempo de inicio/final de cada cita, el asunto, ubicación, estado libre/ocupado y así sucesivamente. También, las coordenadas de cada rectángulo se calculan en el servidor y se envían como parte de esta carga útil, para simplificar el escrito lateral de cliente. Los parámetros para el método Obtener Carga Útil de Vista incluyen los atributos 'nvs, "fld, "días, "vt,' y 'dir.' El atributo 'nvs' es el atributo de "ningún estado de vista" que, si es verdadero, indica que no existe la necesidad de persistir en el estado de vista. El estado de vista es un grupo de parámetros que define la vista. (Por ejemplo, el número de días vistos y el tipo de vista). El tipo de vista puede hacerse manual o diario. Si el parámetro 'nvs' es falso, se conserva el estado de vista para el siguiente momento en que se registra el usuario. Los atributos 'fld' es el atributo de "identificador de carpetas" que corresponde al identificador a la carpeta de calendario para ver. El atributo 'días' incluye disposiciones de fecha para ver. El atributo 'dir' corresponde a un "tipo de vista" de diariamente o semanalmente. El atributo 'vt' es la "dirección" opcionalmente especificada de flechas de navegación. Establecer este atributo significa que el usuario da clic en las fechas de navegación del servidor calcularía el siguiente grupo de fechas para ver basándose en el atributo 'días'. Por ejemplo, si el atributo 'días' es 2, 3, y 4 de Marzo y el atributo 'dir' se establece a +1, el servidor agregara 7 días a cada uno de estos (por ejemplo, las vistas de días múltiples avanzaron en incrementos de 7 días). Si el atributo 'días' es 2 de Marzo solamente (por ejemplo, una vista de día individual), dar clic en la flecha derecha navega al 3 de Marzo, así el servido solo agrega un día. Una solicitud ilustrativa para el método de Obtener Carga Útil de Vista se muestra más adelante. COLOCAR/correocliente/ev.owa?oeh = 1&ns = VistaCalendario&ev = Obtener Carga Útil de Vista HTTP/1.1 Cuerpo: <params><fld>LgAAAABjczgvWhhRQKW7OM2Ok4GDAQD4lf+jk6 V9Saz9 + rfNa9e8AAAABe dAAAB</fld><días><artículo>2004-12-15T00:00:00</artículo><artículo>2004-12-16T00:00: 00</artículo><artículo>2004-12- 17T00:00:00</artículo></días><vt>1</vt><nvs>K/nvs></params> Una porción de una respuesta ilustrativa a la solicitud anterior se muestra más adelante. A_cERow=1 ;a_sFTt1="Calendario:Diciembre 2004";a_iNRP = 1 ;a_rgCal = nueva disposición(nc("RgAAAABjctheWhhRQKW7OM2Ok4GDBwD4lf+jk6V9S az9 + rfNa9e8AAAAABedAAD4lf+jk6V9Saz9 + rfNa9e8AAAAADTfAAAI"," 12-15-2004 17:30:00 U","12-15-200418:00:00 U", "Junta de Estrategia", "Sala de Conferencia 1", 2,1, Bob Smith",0,1,0,0,""),nc("CajGsFAnk8AARgAAAABjczgthehRQKW7OM2Ok 4GDBwD4lf + Jk6V9Saz9 + rfNa9e8AAAAABedAAD4lf+Jk6V9Saz9 + rfNa9 eßAAAAACNqAAAJ", "12-15-2004 21:00:00 U","12-15-2004 21:30:00 U", "Fuera de la Oficina", "",2,0,"", 1 ,3, 1 ,0,"")nc ("RgAAAABjczgvWhhRQKW7OM2OK4GDBwD4lf+Jk6V9Saz9 + rfNa9e8A AAA ABedAAD4lf + Jk6V9Saz + rfNa9e8AAAAADth AAA I", "12- 16-2004 00:00:00 U", "Junta de desarrollo de cartera", "Sala de Conferencia 2",2,1,"Joe A ",1,1,0,0,""));a_rgDía = Nueva Disposición();var t;t = Nuevo Día de Calendario("15", "Miércoles", 15, 12,2004);av (t,0, 19, 1,1,0);av(t,0,24, 0.5,4,1); av(t,0.5,26,0.5, 1 l2);av(tl0,32,1 ,2,3); avt, 0,34,1, 2, 4);a_rgDía[0] = t;t = Nuevo Día de Calendario ("16","Jueves",16,12,2004);av(t,0,20,1,1,5)av(t,0,21,1,2,6);av(t,0,23, 1,2,7);av(t,0,25,1,1,8);av(t,0,28,0.5,6,10);av(t,0.5,28,0.5,4,9);a (t,0. 5,33,0.5,3,11);a_rgDía[1] = t;t = Nuevo Día de Calendario("17",Viernes".17,12,2004);av(t,0,20,28,0.5,4,13);av(t,0.50 ,20,0.5,2,12);av(t,0.5,23,0.5,3,14);av(t,0,25,0.5,1,15);av(t,28,0.5,2,1 7);av(t,0.5,29,0,5,3,18);avf(t,26,22,3);a_rgDía[2] = t;a_rgevt=Nueva Disposición (ne(2,0, 1 , 16,2,0)) El orden de ejecución o desempeño de los métodos ilustrados y aquí descritos no es esencial, a menos que se especifique de otra forma. Es decir, elementos de los métodos pueden realizarse en cualquier orden, a menos que se especifique de otra forma, y que los métodos pueden incluir más o menos elementos que aquellos aquí descritos. Por ejemplo, se contempla que ejecutado realizar un elemento particular antes, contemporáneamente, o después de otro elemento está dentro del alcance de la invención.
Cuando se introducen elementos de la presente invención o la modalidad (es) de la misma, los artículos "un", "uno", "el", y "dicho" pretenden significar que existen uno o más de los elementos. Los términos "que comprenden", "que incluye", y "que tiene" pretenden ser inclusivos y significa que pueden existir elementos adicionales a aquellos elementos enlistados. En vista de lo anterior, se observa que se logran varios objetos de la invención y se pierden otros resultados ventajosos. Mientras pueden hacerse varios cambios en las interpretaciones, productos, y métodos anteriores sin aparatarse del alcance de la invención, se pretende que todo el asunto contenido en la descripción anterior y mostrado en los dibujos acompañantes debe interpretarse como ilustrativo y no en un sentido limitante.
APÉNDICE A Los eventos ilustrativos y parámetros en el espacio de nombre de correo electrónico (por ejemplo, Correo. clientes) para un programa de aplicación de correo electrónico desplegado por servidor se muestran en los cuadros más adelante.
Cuadro A1 Controladores de Evento Ilustrativos y Parámetros para el Controlador de Evento de Recogedor de Fecha Cuadro A2 Controladores de Evento Ilustrativos y Parámetros para el Controlador de Evento de Vista de Lista de Mensaje Nombre de 'PersistirPaneldeLectura' Verbo 'Colocar' parámetro Nombre de 's', tipo parámetro 'Correro Chentes Común PosiciónPanelLectura', esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'Renovar' Verbo 'Obtener' controlador de evento Nombre de 'sld', tipo Correo Objetos lUnicoArtículold', parámetro esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sO', tipo 'Correo Objetos ClasificarOrden', parámetro esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sC, tipo 'Correo Chentes Controles Columnald parámetro esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'mL', tipo 'Sistema Boolean', esDisposición 'Fal so', parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sR\ tipo 'Sistema I n 132 J esDisposición 'Falso' . parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'BuscarSiguienteArtículo' Verbo 'Obtener' controlador de evento Nombre de 'sR', tipo 'Sistema I n 132 J esDisposición 'Falso' . parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'mL', tipo 'Sistema Boolean', esDisposición 'Fa so', parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sld', tipo 'Correo Objetos lUnicoArtículold', parámetro esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'mL', tipo 'Sistema Boolean', esDisposición 'Fal so', parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sR', tipo 'Sistema I n 132 J esDisposición 'Falso' parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sC, tipo 'Correo Chentes Controles Columnald , parámetro esDisposicion 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sO', tipo 'Correo Objetos ClasificarOrden', parámetro esDisposición 'Falso' esOpcional 'Falso', esEstructura 'Falso' Nombre de 'PpmeraPagina' Verbo 'Obtener' controlador de evento Nombre de 'sld', tipo 'Correo Objetos lUnicoArtículold', parámetro esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sR', tipo 'Sistema I n 132 J esDisposición 'Falso' parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sC, tipo 'Correo Chentes Controles Columnald parámetro esDisposicion 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sO', tipo 'Correo Objetos ClasificarOrden', parámetro esDisposicion 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de 'mL', tipo 'Sistema Boolean', esDisposición 'Fal so', parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'PáginaPrevia' Verbo 'Obtener' controlador de evento Nombre de 'sR', tipo 'Sistema I n 132 J esDisposición 'Falso' , parámetro esOpcional 'Falso', esEstructura 'Falso' Nombre de 'sld', tipo 'Correo Objetos lUnicoArtículold', parámetro esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Cuadro A3 Controladores de Evento Ilustrativos y Parámetros para el Controlador de Evento Bueno de Recibo Tipo de controlador 'Correo' Chentes ReciboBueno EventoControlador' Nombre de controlador 'Resolver' Verbo 'colocar' de evento Nombre de parámetro 'Bcc', tipo 'sistema Fila' esDisposición 'Verdadero', esOpcional 'Verdadero', esEstructura 'Falso' Nombre de parámetro 'Ce', tipo 'sistema Fila' esDisposición 'Verdadero', esOpcional 'Verdadero', esEstructura 'Falso Nombre de parámetro 'Para', tipo 'sistema Fila esDisposición 'Verdadero', esOpcional 'Verdadero', esEstructura 'Falso' Nombre de parámetro Recibos , tipo 'Correo clientes Común, InfoReciboAC , esDisposicion 'Verdadero', esO pcional 'Verdadero', esEstructura 'Verdadero' Nombre de controlador 'ResolverUnREcibo' Verbo 'Colocar' de evento Nombre de parámetro 'n', tipo 'sistema Fila', esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de controlador 'ObtenerProp Recibo' Vervo 'Colocar' de evento Nombre de parámetro 'id', tipo 'sjstema Fila', esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de parámetro 'rs', tipo Correo Chentes Común FuenteRecibo', esDisposicion Falso', esOpcional 'Falso', esEstructura 'Falso' Nombre de controlador 'GuardarEnMemopaCache' Verbo 'Obtener' de evento Nombre de controlador ?lim inarDeMemopaCache' Verbo 'Colocar' de evento Nombre de parámetro 'Em', tipo 'Sistema Fila', esDisposición 'Falso', esOpcional 'Falso', esEstructura 'Falso' Cuadro A4 Controladores de Evento Ilustrativos y Parámetros para el Controlador de Evento de Vista de Calendario

Claims (11)

REIVINDICACIONES
1.- Un sistema para comunicación que comprende: uno o más medios legibles por computadora para almacenar: una pluralidad de controladores de evento, cada uno teniendo un espacio de nombre asociado con él, cada uno de dicha pluralidad de controladores de evento además tiene uno o más parámetros asociados con él; y una estructura de datos que representa una solicitud formateada para datos, dicha estructura de datos incluye un campo de espacio de nombre que almacena valor o espacio de nombre que representa el espacio de nombre, un campo de controlador de evento que almacena un valor de controlador de evento que corresponde a una de la pluralidad de controladores de evento, dicho de uno de la pluralidad de controladores de evento se asocia con el espacio de nombre representado por el valor de espacio de nombre en el campo de espacio de nombre, y un campo de parámetro que almacena un valor de parámetro que corresponde a uno de los parámetros, dicho uno de los parámetros está asociado con el controlador de evento representado por el valor de controlador de evento en el campo de controlador de evento; y un primer procedimiento desplegado por un segundo procedimiento, dicho primer procedimiento se configura para ejecutar instrucciones ejecutables por computadora para: recibir una solicitud de datos de un usuario o procedimiento; identificar a un valor de espacio de nombre asociado con la solicitud recibida; seleccionar un valor de controlador de evento como una función de la solicitud recibida y el valor de espacio de nombre identificado; determinar un valor de parámetro como una función de la solicitud recibida y el valor de controlador de evento seleccionado; llenar la estructura de datos al almacenar el valor de espacio de nombre identificado en el campo de espacio de nombre, el valor de controlador de evento seleccionado en el campo de controlador de evento, y el valor de parámetro determinado en el campo de parámetro; y transmitir la estructura de datos llena al segundo procedimiento; y el segundo procedimiento configurado para ejecutar instrucciones ejecutables por computadora para: recibir la estructura de datos llena del primer procedimiento; seleccionar, como una función de la estructura de datos recibida, un controlador de evento de la pluralidad de controladores de evento almacenados en los medios legibles por computadora; ejecutar el controlador de evento seleccionado para generar datos de resultado; y transmitir los datos de resultado generados al primer procedimiento.
2.- El sistema de acuerdo con la reivindicación 1, en donde la solicitud formateada para datos comprende el campo de espacio de nombre y el valor de espacio de nombre como un par de nombre-valor, el campo de controlador de evento y el valor de controlador de evento como un par de nombre-valor, y el campo de parámetro y el valor de parámetro como un par de nombre-valor.
3.- El sistema de acuerdo con la reivindicación 1, en donde el medio legible por computadora y el primer procedimiento se asocian con un cliente de manejo de información personal desplegado por servidor.
4.- El sistema de acuerdo con la reivindicación 1, en donde los medios legibles por computadora y el segundo procedimiento se asocian con un servidor de manejo de información personal.
5.- El sistema de acuerdo con la reivindicación 1, en donde el valor de parámetro comprende datos formateados de acuerdo con un lenguaje de marcación extensible.
6.- El sistema de acuerdo con la reivindicación 1, en donde una aplicación de cliente distribuido ejecuta el primer procedimiento y una aplicación de servidor ejecuta el segundo procedimiento, y en donde la aplicación de cliente distribuida proporciona al menos una porción de la funcionalidad de la aplicación de servidor.
7.- El sistema de acuerdo con la reivindicación 1, en donde el segundo procedimiento además se configura para ejecutar instrucciones ejecutables por computadora para construir una base de datos de configuración con la pluralidad de controladores de evento almacenados en los medios legibles por computadora.
8.- El sistema de acuerdo con la reivindicación 1, que además comprende medios para almacenar la pluralidad de controladores de evento.
9.- El sistema de acuerdo con la reivindicación 1, que además comprende medios para ejecutar el primer procedimiento y medios para ejecutar el segundo procedimiento.
10.- El sistema de acuerdo con la reivindicación 1, en donde el segundo procedimiento además se configura para ejecutar instrucciones ejecutables por computadora para: validar el valor de parámetro; y convertir un valor de parámetro a un tipo de datos asociado con él.
11.- Un método implementado por computadora para producir y entregar datos de un procedimiento a otro procedimiento, dicho método implementado por computadora que comprende: recibir, por un primer procedimiento, una solicitud de datos de un usuario; identificar, por el primer procedimiento, un espacio de nombre asociado con la solicitud recibida; determinar, por el primer procedimiento, un controlador de evento asociado con el espacio de nombre identificado como una función de la solicitud recibida; llenar, por el primer procedimiento, un parámetro asociado con el controlador de evento determinado como una función de la solicitud recibida; crear, por el primer procedimiento, una solicitud formateada con el espacio de nombre identificado, el controlador de evento determinado, y el parámetro lleno, transmitir, del primer procedimiento, la solicitud creada, formateada a un segundo procedimiento, recibir, por un segundo procedimiento, la solicitud formateada del primer procedimiento, seleccionar, por el segundo procedimiento, como una función de la solicitud recibida como formateada, un controlador de evento de una pluralidad de controladores de eventos almacenados en un área de memoria, ejecutar, por el segundo procedimiento, el controlador de evento seleccionado para generar datos de resultado, y transmitir, desde el segundo procedimiento, los datos de resultado generados al primer procedimiento 12 - El método implementado por computadora de acuerdo con la reivindicación 11, que además comprende recibir, por el primer procedimiento, los datos de resultado transmitidos 13 - El método implementado por computadora de acuerdo con la reivindicación 11, que además comprende recibir, por el primer procedimiento del usuario, un espacio de nombre definido por usuario, un controlador de evento definido por usuario asociado con el espacio de nombre definido por usuario, y un parámetro definido por usuario del controlador de evento definido por usuario, y registrar, por el primer procedimiento con el segundo procedimiento, el espacio de nombre definido por usuario recibido, el controlador de evento definido por usuario, y el parámetro definido por usuario 14 - El método implementado por computadora de acuerdo con la reivindicación 13, en donde el segundo procedimiento registra el espacio de un nombre definido por usuario recibido, el controlador de evento definido por usuario, y el parámetro definido por usuario sin cambiar una infraestructura del segundo procedimiento. 15 - El método implementado por computadora de acuerdo con la reivindicación 11, en donde uno o más medios legibles por computadora tienen instrucciones ejecutables por computadora para realizar el método implementado por computadora de acuerdo con la reivindicación 11 16 - Uno o más medios legibles por computadora que tiene componentes ejecutables por computadora para producir y comunicar datos solicitados en un ambiente en red, dichos componentes comprenden un componente de puente desplegado por servidor para recibir una solicitud de datos de un usuario, identificar un espacio de nombre asociado con la solicitud recibida, determinar un controlador de evento asociado con el espacio de nombre identificado como una función de la solicitud recibida; llenar un parámetro asociado con el controlador de evento determinado como una función de la solicitud recibida, crear una solicitud formateada con el espacio de nombre identificado, el controlador de evento determinado, y el parámetro lleno; y transmitir la solicitud creada como formateada a un componente de servidor; y el componente de servidor para: recibir la solicitud transmitida de componente de cliente desplegado por servidor; seleccionar, como una función de la solicitud recibida, un controlador de evento de una pluralidad de controladores de evento almacenados en un área de memoria; ejecutar el controlador de eventos seleccionado para generar datos de resultado; y transmitir los datos de resultado generados al componente de cliente desplegado por servidor. 17.- El medio legible por computadora de acuerdo con la reivindicación 16, que además comprende un componente de registro para construir una base de datos de configuración con la pluralidad de controladores de evento almacenados en el área de memoria. 18.- El medio legible por computadora de acuerdo con la reivindicación 17, en donde el componente de servidor selecciona, como una función de la solicitud recibida, un controlador de evento de la base de datos de configuración. 19.- El medio legible por computadora de acuerdo con la reivindicación 16, en donde el componente de cliente desplegado por servidor comprende un cliente de manejo de información personal que se comunica a través de una red con el componente de servidor. 20.- El medio legible por computadora de acuerdo con la reivindicación 16, en donde el componente de servidor comprende un servidor de manejo de información personal.
MX2007011027A 2005-04-08 2006-03-09 Sistema y metodo para producir y comunicar datos solicitados entre programas de aplicacion en red. MX2007011027A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/102,039 US7418715B2 (en) 2005-04-08 2005-04-08 System and method for producing and communicating requested data among networked application programs
PCT/US2006/008275 WO2006110237A2 (en) 2005-04-08 2006-03-09 System and method for producing and communicating requested data among networked application programs

Publications (1)

Publication Number Publication Date
MX2007011027A true MX2007011027A (es) 2007-09-26

Family

ID=37084265

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007011027A MX2007011027A (es) 2005-04-08 2006-03-09 Sistema y metodo para producir y comunicar datos solicitados entre programas de aplicacion en red.

Country Status (11)

Country Link
US (1) US7418715B2 (es)
EP (1) EP1872281A4 (es)
JP (1) JP2008538428A (es)
KR (1) KR101219997B1 (es)
CN (1) CN101548256B (es)
BR (1) BRPI0608817A2 (es)
MX (1) MX2007011027A (es)
MY (1) MY144258A (es)
RU (1) RU2419864C2 (es)
TW (1) TWI388992B (es)
WO (1) WO2006110237A2 (es)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198473A1 (en) * 2006-02-03 2007-08-23 Simdesk Technologies, Inc. Computer system displaying personal information items in database as individual files
US20080025232A1 (en) * 2006-07-26 2008-01-31 International Business Machines Corporation Method and system for network connection
US20080228715A1 (en) * 2007-03-12 2008-09-18 Terabyte Media, Llc Apparatus and method for distributed information retrieval and processing
US7966287B2 (en) 2008-05-15 2011-06-21 International Business Machines Corporation Apparatus, system, and method for dynamic database driven document synchronization
US8726237B2 (en) * 2009-10-28 2014-05-13 Microsoft Corporation Event handling for unmanaged code
CN102622216A (zh) * 2011-01-30 2012-08-01 国际商业机器公司 一种用于应用的协同工作的方法和系统
TWI571747B (zh) * 2011-10-28 2017-02-21 Lxm公司 資料交換系統
US8984124B2 (en) * 2011-11-30 2015-03-17 Microsoft Technology Licensing, Llc System and method for adaptive data monitoring
JP5896712B2 (ja) * 2011-12-08 2016-03-30 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、及び、情報処理システム
JP5942634B2 (ja) * 2012-06-27 2016-06-29 富士通株式会社 秘匿化装置、秘匿化プログラムおよび秘匿化方法
US9141707B2 (en) * 2012-07-19 2015-09-22 Facebook, Inc. Context-based object retrieval in a social networking system
EP2991241A1 (en) * 2014-08-27 2016-03-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sudac, user equipment, base station and sudac system
KR101581776B1 (ko) * 2015-05-14 2015-12-31 주식회사 티맥스 소프트 웹 서버에서 파일 디스크립터를 분배하는 방법, 이를 사용한 웹 서버 및 컴퓨터 판독 가능한 기록 매체
US9940169B2 (en) * 2015-07-23 2018-04-10 Pearson Education, Inc. Real-time partitioned processing streaming
US11468053B2 (en) 2015-12-30 2022-10-11 Dropbox, Inc. Servicing queries of a hybrid event index
US11099912B1 (en) * 2016-06-29 2021-08-24 Amazon Technologies, Inc. Processing computationally intensive workloads
CN106406985B (zh) * 2016-09-21 2019-10-11 北京百度网讯科技有限公司 分布式计算框架和分布式计算方法
US11063946B2 (en) 2018-10-24 2021-07-13 Servicenow, Inc. Feedback framework
CN114296641B (zh) * 2021-12-14 2023-09-19 北京欧珀通信有限公司 增量文件传输方法、装置、电子设备及可读存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3489123B2 (ja) * 1992-04-15 2004-01-19 株式会社日立製作所 アプリケーション結合方法
US5634053A (en) 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US6023694A (en) 1996-01-02 2000-02-08 Timeline, Inc. Data retrieval method and apparatus with multiple source capability
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
JPH1196009A (ja) * 1997-09-22 1999-04-09 Toshiba Corp オブジェクトインターフェース変換方法及び記録媒体
US6366915B1 (en) 1998-11-04 2002-04-02 Micron Technology, Inc. Method and system for efficiently retrieving information from multiple databases
WO2000055725A1 (fr) * 1999-03-17 2000-09-21 Fujitsu Limited Systeme serveur et support d'enregistrement
US6539374B2 (en) 1999-06-03 2003-03-25 Microsoft Corporation Methods, apparatus and data structures for providing a uniform representation of various types of information
US7231433B1 (en) 2000-01-19 2007-06-12 Reynolds And Reynolds Holdings, Inc. Enterlink for providing a federated business to business system that interconnects applications of multiple companies
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
WO2001067309A2 (en) 2000-03-03 2001-09-13 Radiant Logic, Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US7207046B1 (en) * 2000-08-23 2007-04-17 Agilent Technologies, Inc. Method and system for providing string-over-socket scripting language access to distributed object model interfaces
US7127514B2 (en) 2000-12-28 2006-10-24 Microsoft Corporation Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
US20030163479A1 (en) 2001-05-14 2003-08-28 Mathews Michael B. Method and apparatus for implementing a data management system using a metadata specification
EP1298525A1 (en) * 2001-09-26 2003-04-02 Sap Ag Interaction between computers with different object-oriented run-time environments
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US7739223B2 (en) 2003-08-29 2010-06-15 Microsoft Corporation Mapping architecture for arbitrary data models
DE10351351B4 (de) * 2003-11-04 2007-03-22 Siemens Ag Verfahren und System zur dynamischen Generierung von User Interfaces

Also Published As

Publication number Publication date
KR101219997B1 (ko) 2013-01-08
MY144258A (en) 2011-08-29
TW200639652A (en) 2006-11-16
WO2006110237A2 (en) 2006-10-19
BRPI0608817A2 (pt) 2010-01-26
TWI388992B (zh) 2013-03-11
US7418715B2 (en) 2008-08-26
RU2007137005A (ru) 2009-04-10
US20060230026A1 (en) 2006-10-12
JP2008538428A (ja) 2008-10-23
WO2006110237A3 (en) 2009-04-23
EP1872281A4 (en) 2011-06-15
RU2419864C2 (ru) 2011-05-27
CN101548256B (zh) 2012-09-05
KR20070118076A (ko) 2007-12-13
EP1872281A2 (en) 2008-01-02
CN101548256A (zh) 2009-09-30

Similar Documents

Publication Publication Date Title
MX2007011027A (es) Sistema y metodo para producir y comunicar datos solicitados entre programas de aplicacion en red.
US7853590B2 (en) Remote read-write access to disparate data stores
US8171104B2 (en) Scheduling and searching meetings in a network environment
US7269664B2 (en) Network portal system and methods
US7603476B1 (en) Pseudo-synchronous messaging
US7194743B2 (en) Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US8595259B2 (en) Web data usage platform
US20070143412A1 (en) Providing meeting information from a meeting server to an email server to store in an email database
US20050234929A1 (en) Methods and systems for interfacing applications with a search engine
US20030009536A1 (en) Method and system for collaborative knowledge management
US20040215672A1 (en) Accessing data based on user identity
EP1627327A2 (en) Accessing data stored in multiple locations
US7685114B2 (en) Systems and methods for mapping text
EP1623558A1 (en) Accessing data in a computer network
US20060271384A1 (en) Reference data aggregate service population
US20020198908A1 (en) Method and apparatus for delivery of external data from a centralized repository in a network data processing system
US20050033776A1 (en) Method and system for displaying additional data fields in web based business applications
US20110138288A1 (en) Method, system, and computer program product for tagging of portlets in a portal infrastructure
US20060100994A1 (en) Distributing repository information
WO2003044683A1 (en) Processing and distributing data according to specified rules
WO2007077412A1 (en) Generating data messages

Legal Events

Date Code Title Description
FG Grant or registration