ES2421141T3 - Componente de captura basado en perfiles para controlar los eventos en aplicaciones - Google Patents
Componente de captura basado en perfiles para controlar los eventos en aplicaciones Download PDFInfo
- Publication number
- ES2421141T3 ES2421141T3 ES05712722T ES05712722T ES2421141T3 ES 2421141 T3 ES2421141 T3 ES 2421141T3 ES 05712722 T ES05712722 T ES 05712722T ES 05712722 T ES05712722 T ES 05712722T ES 2421141 T3 ES2421141 T3 ES 2421141T3
- Authority
- ES
- Spain
- Prior art keywords
- window
- application
- event
- capture
- destination
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 68
- 230000008859 change Effects 0.000 claims abstract description 15
- 238000013481 data capture Methods 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000004883 computer application Methods 0.000 claims 1
- 230000009471 action Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 230000000694 effects Effects 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3041—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
- G06F11/3079—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting the data filtering being achieved by reporting only the changes of the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Abstract
Un método informático para capturar datos de evento a partir de una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior, el método comprendiendo: la recepción de información de creación de ventana acerca de una ventana creada por la aplicación; la determinación (501) de si la aplicación es un ejemplo de una aplicación de destino al comparar la información de creación de ventana con un perfil de aplicación de destino asociado con la aplicación de destino; en respuesta a una determinación de que la aplicación es un ejemplo de la aplicación de destino, la determinación de si la ventana creada es un ejemplo de una ventana de destino al comparar (504) la información de creación de ventana con un perfil de ventana de destino asociado a la aplicación de destino; y en respuesta a una determinación de que la ventana creada es un ejemplo de la ventana de destino, la captura (508) de datos de evento a partir de la ventana creada al detectar un cambio de estado de un estado asociado con un elemento de la ventana; en el cual la captura de datos de evento también comprende el almacenamiento de información de ventana capturada en una estructura de datos asociada a un evento de acuerdo con un esquema de evento, y la indexación y el almacenamiento del evento.
Description
Componente de captura basado en perfiles para controlar los eventos en aplicaciones.
La invención se refiere en general a motores de búsqueda. Más concretamente, la invención se refiere a métodos y sistemas para la captura de información.
Los usuarios generan y acceden a un gran número de artículos, tales como correos electrónicos, páginas web, documentos de procesadores de texto, hojas de cálculo, mensajes de mensajería instantánea, documentos de presentación, archivos multimedia y similares, mediante un dispositivo cliente, tal como un ordenador personal, un asistente digital personal, un teléfono móvil o similar. Algunos de los artículos se almacenan en uno o más dispositivos de almacenamiento acoplados a, accesibles mediante, o asociados de otro modo con el dispositivo(s) cliente. Los usuarios a veces desean buscar artículos en el dispositivo(s) de almacenamiento.
Las aplicaciones de búsqueda convencionales de dispositivo cliente degradan significativamente el rendimiento del dispositivo cliente. Por ejemplo, ciertas aplicaciones de búsqueda convencionales de dispositivo cliente utilizan normalmente el procesamiento por lotes para indexar todos los artículos, lo que deriva en un rendimiento notablemente más lento del dispositivo cliente durante la indexación por lotes. Además, el procesamiento por lotes sólo se produce periódicamente. Por lo tanto, cuando un usuario realiza una búsqueda, los artículos a los que se ha accedido o que han sido creados más recientemente a veces no se incluyen en los resultados. Además, si la indexación por lotes se programa para un momento en el cual el dispositivo cliente no está encendido, puede que no tenga lugar durante un período prolongado de tiempo. En ese caso, el índice de artículos asociados con el dispositivo cliente puede quedar considerablemente obsoleto. Las aplicaciones de búsqueda convencionales de dispositivo cliente también pueden necesitar reconstruir el índice en cada indexación por lotes o construir nuevos índices parciales y llevar a cabo una operación de fusión que pueda usar muchos recursos del dispositivo cliente.
Las aplicaciones de búsqueda convencionales de dispositivo cliente también utilizan a veces una gran cantidad de recursos del sistema cuando están funcionando, lo que deriva en un rendimiento más lento del dispositivo cliente.
Además, las aplicaciones de búsqueda convencionales de dispositivo cliente generalmente requieren que el usuario proporcione a la aplicación de búsqueda de forma explícita una consulta de búsqueda para generar resultados, y pueden estar limitadas a examinar nombres de archivo o los contenidos de los archivos de una aplicación determinada. Spector Corporate Edition Network (Spector CNE) <http://www.spectorsoft.com/products/ spectorcne_windows/help/v40/webhelp/> es un producto de software informático de seguimiento y vigilancia diseñado para redes de Windows. Spector proporciona la capacidad de limitar a grabar sólo ciertas aplicaciones.
La solicitud de patente estadounidense US20031001854 revela un mecanismo para capturar las uno o más primitivas gráficas arrastradas a una interfaz de usuario por una aplicación en ejecución.
De acuerdo con un primer aspecto de la invención, se proporciona un método informático para capturar datos de evento desde una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior como se expone en la reivindicación 1.
De acuerdo con un segundo aspecto de la invención, se proporciona un sistema informático para capturar datos de evento desde una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior como se expone en la reivindicación 17.
Las características y ventajas descritas en la especificación no las incluyen todas y, en particular, muchas características y ventajas adicionales serán evidentes para un experto común en la técnica a la vista de los dibujos, especificación y reivindicaciones. Además, cabe señalar que el lenguaje utilizado en la especificación ha sido principalmente seleccionado para facilitar la lectura y con fines educativos, y no puede haber sido seleccionado para delinear o circunscribir el objeto de la invención.
La FIG. 1 es un diagrama que ilustra un entorno ilustrativo en el cual puede funcionar un modo de realización de la presente invención.
La FIG. 2 es un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar y procesar datos de evento asociados a un dispositivo cliente.
La FIG. 3 es un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar información de pulsaciones de teclas en un dispositivo cliente.
La FIG. 4 es un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar información de visualización en un dispositivo cliente.
La FIG. 5 es un diagrama de flujo de un modo de realización de un método de captura de visualización basado en perfiles.
Las figuras y la siguiente descripción se refieren a modos de realización preferidos de la presente invención a modo de ilustración solamente. Cabe señalar que a partir de la siguiente exposición, modos de realización alternativos de las estructuras y métodos revelados en este documento se reconocerán fácilmente como alternativas viables que se pueden emplear sin apartarse de los principios de la invención reivindicada.
Haciendo referencia ahora a los dibujos en los cuales números iguales indican elementos iguales en todas las diversas figuras, la FIG. 1 muestra un diagrama que ilustra un entorno ilustrativo en el cual puede funcionar un modo de realización de la presente invención. Mientras que el entorno mostrado en la FIG. 1 refleja un modo de realización de la arquitectura del motor de búsqueda del lado cliente, son posibles otros modos de realización del lado cliente o del lado servidor. El sistema 100 incluye múltiples dispositivos cliente 102a-n que se pueden comunicar con un dispositivo servidor 150 mediante una red 106, por ejemplo, internet. En otros modos de realización, pueden utilizarse en su lugar otras redes, como una red de área local ("LAN") intranet doméstica o similar. Además, en otros modos de realización, las funciones descritas con respecto a un cliente o un servidor en un entorno de red distribuido pueden tener lugar dentro de un solo dispositivo cliente sin un dispositivo servidor o una red. La implementación de estas técnicas así como adaptaciones similares entra dentro del alcance de esta invención.
Los dispositivos cliente 102a-n que se muestran en la FIG. 1 incluyen cada uno un medio legible por ordenador 108, por ejemplo, dispositivos de memoria, medios de almacenamiento y similares. En un modo de realización, un dispositivo cliente 102a incluye una memoria de acceso aleatorio (RAM) 108 acoplada a un procesador 110. El procesador 110 ejecuta instrucciones de programa ejecutables por ordenador almacenadas en la memoria 108. Tales procesadores pueden incluir un microprocesador, un circuito integrado de aplicación específica (ASIC, por sus siglas en inglés), máquinas de estado u otros procesadores y pueden ser cualquiera de un número de procesadores informáticos adecuados, tales como procesadores de Intel Corporation de Santa Clara, California, y Motorola Corporation, de Schaumburg, Illinois. Estos procesadores incluyen, o pueden estar en comunicación con, medios 108, por ejemplo medios legibles por ordenador, que almacenan instrucciones que, cuando son ejecutadas por el procesador, hacen que el procesador lleve a cabo los pasos descritos en este documento. Modos de realización de medios legibles por ordenador 108 incluyen, sin carácter limitativo, un dispositivo electrónico, óptico, magnético u otro dispositivo de almacenamiento o de transmisión capaz de proporcionar un procesador, tal como el procesador 110 de cliente 102a, con instrucciones legibles por ordenador. Otros ejemplos de medios adecuados incluyen, sin carácter limitativo, un disquete, CD-ROM, DVD, disco magnético, chip de memoria, ROM, RAM, un ASIC, un procesador configurado, todos los medios ópticos, todos los medios de cinta magnética u otros medios magnéticos,
o cualquier otro medio desde el cual un procesador informático pueda leer instrucciones. Además, otras formas diferentes de medios legibles por ordenador pueden transmitir o llevar instrucciones a un ordenador, incluyendo un router, red privada o pública u otro dispositivo o canal de transmisión, tanto por cable como inalámbrico. Las instrucciones pueden incluir un código de cualquier lenguaje de programación informática adecuado, incluyendo, por ejemplo, C, C++, C#, Visual Basic, Java, Python, Perl y JavaScript.
Los dispositivos cliente 102a-n pueden estar acoplados a una red 106, o de forma alternativa, pueden ser máquinas independientes. Los dispositivos cliente 102a-n pueden incluir también un número de dispositivos externos o internos tales como un ratón, un CD-ROM, un DVD, un teclado, un dispositivo de representación u otro dispositivo de entrada o de salida. Ejemplos de dispositivos cliente 102a-n son los ordenadores personales, asistentes digitales, asistentes digitales personales, teléfonos celulares, teléfonos móviles, teléfonos inteligentes, mensáfonos, tabletas digitales, ordenadores portátiles, dispositivos de internet y otros dispositivos basados en procesadores. En un modo de realización, los dispositivos cliente 102a-n pueden ser cualquier tipo de plataforma basada en procesadores que funcione en cualquier sistema operativo adecuado, tal como Microsoft®, Windows® o Linux, y que sea capaz de ejecutar uno o más programas de aplicación de cliente. Por ejemplo, el dispositivo cliente 102a puede incluir un ordenador personal que ejecute programas de aplicación de cliente, también conocidos como aplicaciones de cliente
120. Las aplicaciones de cliente 120 pueden estar dentro de la memoria 108 y pueden incluir, por ejemplo, una aplicación de procesamiento de textos, una aplicación de hoja de cálculo, una aplicación de correo electrónico, una aplicación de mensajería instantánea, una aplicación de presentaciones, una aplicación de navegador de Internet, una aplicación de calendario/organizador, una aplicación de reproducción de vídeo, una aplicación de reproducción de audio, una aplicación de visualización de imágenes, un programa de gestión de archivos, un shell de sistema operativo y otras aplicaciones capaces de ser ejecutadas por un dispositivo cliente. Las aplicaciones de cliente 120 también pueden incluir aplicaciones del lado cliente que interactúan con o acceden a otras aplicaciones de cliente o remotas (tales como, por ejemplo, un navegador web que se ejecuta en el dispositivo cliente 102a que interactúa con un servidor de correo electrónico remoto para acceder al correo electrónico).
El usuario 112a puede interactuar con las distintas aplicaciones de cliente 120 y artículos asociados con las aplicaciones de cliente 120 a través de diversos dispositivos de entrada y salida del dispositivo cliente 102a. Los artículos incluyen, por ejemplo, documentos de procesador de texto, hojas de cálculo, documentos de presentación, correos electrónicos, mensajes de mensajería instantánea, entradas de base de datos, entradas de calendario, entradas de citas, entradas de administrador de tareas, archivos de código fuente y otros contenidos de programas de aplicación de cliente, archivos, mensajes, elementos, páginas web de diversos formatos, tales como HTML, XML, XHTML, archivos de Formato de Documento Portátil (PDF) y archivos multimedia, tales como archivos de imágenes, archivos de audio y archivos de vídeo, o cualquier otro documento o elemento o grupo de documentos o elemento o información en formato electrónico adecuado para el acceso a almacenamiento en dispositivos cliente.
La interacción del usuario 112a con artículos, las aplicaciones de cliente 120 y el dispositivo cliente 102a crea datos de evento que pueden ser observados, registrados, analizados o utilizados de otra manera. Un evento puede ser cualquier hecho posible asociado con un artículo, aplicación de cliente 120 o dispositivo cliente 102a, tal como introducir texto en un artículo, visualizar un artículo en un dispositivo de representación, enviar un artículo, recibir un artículo, manipular un dispositivo de entrada, abrir un artículo, guardar un artículo, imprimir un artículo, cerrar un artículo, abrir un programa de aplicación de cliente, cerrar un programa de aplicación de cliente, tiempo de inactividad, carga de procesador, acceso a disco, uso de memoria, traer un programa de aplicación de cliente al primer plano, cambiar los detalles de visualización de la aplicación (por ejemplo, cambiar el tamaño o minimizar), interactuar con las ventanas asociadas con las aplicaciones de cliente y cualquier otro hecho adecuado asociado con un artículo, un programa de aplicación de cliente o el dispositivo cliente que sea. Además, los datos de evento pueden ser generados cuando el dispositivo cliente 102a interactúa con un artículo independiente del usuario 112a, tal como cuando se recibe un correo electrónico o se realiza una tarea programada.
En un modo de realización, la memoria 108 del dispositivo cliente 102a también puede contener un procesador de captura 124, una cola 126 y un motor de búsqueda 122. El dispositivo cliente 102a también puede contener o está en comunicación con un almacén de datos 140. El procesador de captura 124 puede capturar eventos y pasarlos a la cola 126. La cola 126 puede pasar los eventos capturados al motor de búsqueda 122 o el motor de búsqueda 122 puede recuperar nuevos eventos de la cola 126. En un modo de realización, la cola 126 notifica al motor de búsqueda 122 cuando un nuevo evento llega a la cola 126 y el motor de búsqueda 122 recupera el evento (o eventos) de la cola 126 cuando el motor de búsqueda 122 está listo para procesar el evento (o eventos). Cuando el motor de búsqueda recibe un evento, puede ser procesado y puede ser almacenado en el almacén de datos 140. El motor de búsqueda 122 puede recibir una consulta explícita del usuario 112a o generar una consulta implícita y puede recuperar información del almacén de datos 140 en respuesta a la consulta. En otro modo de realización, la cola se encuentra en el motor de búsqueda 122. En otro modo de realización más, el dispositivo cliente 102a no tiene cola y los eventos se pasan desde el procesador de captura 124 directamente al motor de búsqueda 122. De acuerdo con otros modos de realización, los datos de evento se transfieren mediante un protocolo de intercambio de información. El protocolo de intercambio de información puede incluir, por ejemplo, cualquier norma o convención adecuada que facilite el intercambio de datos, y puede incluir, una mecanismo de comunicación, tal como, por ejemplo, Lenguaje de Marcado Extensible -protocolo de Llamada a Procedimiento Remoto (XML/RPC), Protocolo de Transferencia de Hipertexto (HTTP), Protocolo Simple de Acceso a Objetos (SOAP), memoria compartida, sockets, llamada de procedimiento local o remoto o cualquier otro mecanismo de intercambio de información adecuado.
El procesador de captura 124 puede capturar un evento mediante la identificación y la extracción de datos de evento asociados con un evento. Ejemplos de eventos incluyen enviar o recibir un mensaje de mensajería instantánea, un usuario que está viendo una página web, guardar un documento de procesador de texto, imprimir un documento de hoja de cálculo, introducir texto para escribir o editar un correo electrónico, abrir una aplicación de presentaciones, cerrar una aplicación de mensajería instantánea, introducir una pulsación de tecla, mover el ratón, desplazar el cursor del ratón sobre un hipervínculo, hacer clic en botones de ventanas, seleccionar de los menús o similares. Un ejemplo de datos de evento capturados por el procesador de captura 124 para un evento que implica la visualización de una página web por un usuario incluye el URL de la página web, la fecha y hora en que el usuario vio la página Web y el contenido de la página web. Además, en un modo de realización, se pueden capturar datos de evento adicionales desde ubicaciones remotas que incluyen información relacionada con el evento o artículo. Por ejemplo, el artista y otra información relacionada, por ejemplo, el álbum, director, género y similar de una película o archivo de música al que ha accedido un usuario se puede recuperar de un servidor de base de datos de la red a través de la red 106.
En un modo de realización, el procesador de captura 124 puede incluir múltiples componentes de captura. Por ejemplo, el procesador de captura 124 puede incluir un componente de captura separado para cada aplicación de cliente con el fin de capturar eventos asociados con cada aplicación. El procesador de captura 124 también puede incluir un componente de captura separado para controlar y capturar entradas de pulsaciones de teclas del usuario y un componente de captura separado que puede controlar y capturar elementos, como texto, mostrados en un dispositivo de representación asociado al dispositivo cliente 102a. El componente de captura de pulsaciones de teclas y el componente de captura de visualización se pueden utilizar para capturar eventos cuando un componente de captura de la aplicación de cliente no está disponible para una aplicación de cliente o conjuntamente con un componente de captura de la aplicación de cliente. El componente de captura de pulsaciones de teclas también puede contener o acceder a una base de datos de pulsaciones de teclas. La base de datos de pulsaciones de teclas puede proporcionar correlación entre pulsaciones de teclas y acciones para aplicaciones. El componente de captura de pulsaciones de teclas y el componente de captura de visualización también pueden contener o tener acceso a un historial de eventos de teclado o de visualización anteriores.
En un modo de realización, el procesador de captura 124 puede incluir un componente de captura separado que controla la actividad de red en general con el fin de capturar datos de evento asociados con la actividad de red, tales como la recepción de un mensaje de mensajería instantánea. El procesador de captura 124 puede incluir un componente de captura separado que controla datos de rendimiento del dispositivo cliente en general, tales como carga del procesador, tiempo de inactividad, acceso a disco, las aplicaciones de cliente en uso y la cantidad de memoria disponible. Un componente de captura individual puede controlar múltiples aplicaciones de cliente y múltiples componentes de captura pueden controlar diferentes aspectos de una única aplicación de cliente.
En un modo de realización, el procesador de captura 124, a través de los componentes individuales de captura, puede controlar la actividad del dispositivo cliente y puede capturar los eventos por medio de un mecanismo de registro y definición de evento generalizado, tal como un esquema de evento. Cada componente de captura puede definir su propio esquema de evento o puede utilizar uno redefinido. Los esquemas de evento pueden variar dependiendo de la aplicación de cliente o la actividad que el componente de captura esté controlando. En general, el esquema de evento puede describir el formato para un evento, por ejemplo, al proporcionar campos para datos de evento asociados con el evento (tales como la hora del evento) y campos relacionados con cualquier artículo asociado (tales como el título) así como el contenido de cualquier artículo asociado (tal como el cuerpo del documento). Un esquema de evento puede describir el formato para cualquier dato de evento adecuado que se refiera a un evento. Por ejemplo, un esquema de evento para entrada de usuario, tal como palabras tecleadas o mostradas en un dispositivo de representación, puede incluir la aplicación que se utiliza para la entrada, el formato del texto, las palabras y otra entrada de elementos, y el tiempo de entrada. Un esquema de evento para un evento de correo electrónico recibido por un usuario puede incluir información de encabezado, tal como el contenido de los campos de asunto, destinatario, remitente, copia y hora de recepción, y el cuerpo de información. Un esquema de evento para una página web que está siendo vista en este momento por un usuario puede incluir el Localizador Uniforme de Recursos (URL) de la página web, la hora a la que está siendo vista y el contenido de la página web. Un esquema de evento de un documento de texto siendo guardado por un usuario puede incluir el título del documento, la hora guardada, la ubicación del documento, el formato del documento, el texto del documento y un cursor hasta la ubicación del documento.
En un modo de realización, el componente de captura de teclado puede que no utilice un esquema de evento. Más bien, en este modo de realización, el componente de captura de teclado puede convertir pulsaciones de teclas en una secuencia de palabras y después puede pasar la secuencia de palabras a otro componente, tal como el componente de captura de procesamiento de texto. El componente de captura de procesamiento de texto puede utilizar un esquema de evento para expresar la información enviada por el componente de captura de pulsaciones de teclas.
Más en general, un esquema de evento puede describir el estado del sistema alrededor de la hora del evento. Por ejemplo, un esquema de evento puede contener un URL de un evento de página web asociado con una página web anterior desde la cual el usuario ha navegado. Además, el esquema de evento puede describir campos con listas de tipo estructura más complicadas. Por ejemplo, un esquema de evento puede contener campos que enumeran múltiples destinatarios. Un esquema de evento también puede contener campos opcionales de manera que una aplicación pueda incluir datos de evento adicionales si se desea.
El procesador de captura 124 puede capturar eventos que están ocurriendo en el presente (o "eventos en tiempo real") y puede capturar eventos que han ocurrido en el pasado (o "eventos históricos"). Los eventos en tiempo real pueden ser "indexables" o "no indexables". En un modo de realización, el motor de búsqueda 122 indexa eventos en tiempo real indexables, pero no indexa eventos en tiempo real no indexables. El motor de búsqueda 122 puede determinar si indexar un evento basándose en la importancia del evento. Los eventos en tiempo real indexables pueden ser eventos más importantes asociados con un artículo, como visualizar una página web, cargar o guardar un archivo y recibir o enviar un mensaje instantáneo ("IM") o correo electrónico ("email"). Los eventos no indexables pueden no ser considerados lo suficientemente importantes por parte del motor de búsqueda 122 para indexar y almacenar el evento, tal como mover el ratón o seleccionar una parte del texto en un artículo. Los eventos no indexables pueden ser utilizados por el motor de búsqueda 122 para actualizar el estado actual del usuario. Mientras todos los eventos en tiempo real pueden relacionarse con lo que el usuario está haciendo actualmente (o el estado del usuario actual), los eventos en tiempo real indexables pueden ser indexados y almacenados en el almacén de datos 140.
De forma alternativa, en un modo de realización, el motor de búsqueda 122 puede indexar todos los eventos en tiempo real. Los eventos en tiempo real pueden incluir, por ejemplo, enviar o recibir un artículo, como un mensaje de mensajería instantánea, examinar una parte de un artículo, como seleccionar una parte del texto o mover un ratón por encima de una parte de una página web, cambiar un artículo, como escribir una palabra en un correo electrónico
o pegar una frase en un documento de procesador de texto, cerrar un artículo, como cerrar una ventana de mensajería instantánea o cambiar un mensaje de correo electrónico que se está viendo, cargar, guardar, abrir o ver un artículo, como un documento de procesador de texto, página web o correo electrónico, escuchar o guardar un archivo MP3 u otros archivos de audio/vídeo, o actualizar los metadatos de un artículo, como un marcado de página web, imprimir un documento de presentación, borrar un documento de procesador de texto o mover un documento de hoja de cálculo.
Los eventos históricos son similares a los eventos en tiempo real indexables, excepto en que el evento ocurrió antes de la instalación del motor de búsqueda 122 o, de lo contrario, no fue capturado, porque, por ejemplo, el motor de búsqueda 122 no estaba en funcionamiento durante un período de tiempo mientras el dispositivo cliente 102a estaba en funcionamiento o porque no existía componente de captura para un tipo específico de evento histórico en el momento en que el evento se llevó a cabo. Ejemplos de eventos históricos incluyen documentos de procesador de texto guardados del usuario, archivos multimedia, documentos de presentación, entradas de calendario y documentos de hoja de cálculo, los mensajes de correo electrónico de la bandeja de entrada de un usuario y las páginas web marcadas por el usuario. El procesador de captura 124 puede capturar eventos históricos al rastrear periódicamente la memoria 108 y cualquier dispositivo de almacenamiento de datos asociado para eventos no capturados previamente por el procesador de captura 124. El procesador de captura 124 también puede capturar eventos históricos al solicitar ciertas aplicaciones de cliente, tales como un navegador web o una aplicación de correo electrónico, para recuperar artículos y otra información asociada. Por ejemplo, el procesador de captura 124 puede solicitar que la aplicación de navegador web obtenga todas las páginas web visitadas por el usuario o solicitar que la aplicación de correo electrónico obtenga todos los mensajes de correo electrónico asociados al usuario. Estos artículos pueden no existir actualmente en la memoria 108 o en un dispositivo de almacenamiento del dispositivo cliente 102a. Por ejemplo, la aplicación de correo electrónico puede tener que recuperar correos electrónicos de un dispositivo servidor. En un modo de realización, el motor de búsqueda 122 indexa eventos históricos.
En el modo de realización mostrado en la FIG. 1, los eventos capturados por el procesador de captura 124 son enviados a la cola 126 en el formato descrito por un esquema de evento. El procesador de captura 124 también puede enviar datos de rendimiento a la cola 126. Ejemplos de datos de rendimiento incluyen la carga de procesador actual, la carga de procesador media durante un período de tiempo predeterminado, el tiempo de inactividad, el acceso a disco, las aplicaciones de cliente en uso y la cantidad de memoria disponible. Los datos de rendimiento también pueden ser proporcionados por componentes de control de rendimiento específicos, algunos de los cuales pueden ser parte del motor de búsqueda 122, por ejemplo. Los datos de rendimiento de la cola 126 pueden ser recuperados por el motor de búsqueda 122 y los componentes de captura del procesador de captura 124. Por ejemplo, los componentes de captura pueden recuperar los datos de rendimiento para alterar cuántos eventos que se envían a la cola 126 o cómo de detallados son los eventos que se envían (menos eventos o más pequeños cuando el sistema está ocupado) o la frecuencia con la que se envían los eventos (los eventos se envían con menos frecuencia cuando el sistema está ocupado o cuando hay muchos eventos esperando para ser procesados). El motor de búsqueda 122 puede usar datos de rendimiento para determinar cuándo indexa diversos eventos y cuándo y con qué frecuencia emite consultas implícitas.
En un modo de realización, la cola 126 mantiene los eventos hasta que el motor de búsqueda 122 está listo para procesar un evento o eventos. Alternativamente, la cola 126 utiliza los datos de rendimiento para ayudar a determinar la rapidez con la que proporcionar eventos al motor de búsqueda 122. La cola 126 puede incluir una o más colas separadas, por ejemplo, una cola de estado de usuario y una cola de índice. En un modo de realización, la cola de índice puede poner en cola los eventos indexables. Alternativamente, la cola 126 puede tener colas adicionales o incluir una sola cola. La cola 126 puede ser implementada como una cola de prioridad circular que utiliza archivos mapeados de memoria. La cola puede ser una cola de prioridad múltiple donde se sirven los eventos de mayor prioridad antes de los eventos de menor prioridad y otros componentes pueden ser capaces de especificar el tipo de eventos en los que están interesados. En general, a los eventos en tiempo real se les puede dar una mayor prioridad que a los eventos históricos y a los eventos indexables se les puede dar una mayor prioridad que a los eventos en tiempo real no indexables. Otras implementaciones de la cola 126 son posibles. En otro modo de realización, el dispositivo cliente 102a no tiene cola 126. En ese modo de realización, los eventos se pasan directamente desde el procesador de captura 124 hasta el motor de búsqueda 122. En otros modos de realización, los eventos pueden ser transferidos entre los componentes de captura y el motor de búsqueda mediante mecanismos de intercambio de información adecuados tales como: Lenguaje de Marcado Extensible - protocolo de Llamada a Procedimiento Remoto (XML/RPC), Protocolo de Transferencia de Hipertexto (HTTP), Protocolo Simple de Acceso a Objetos (SOAP), memoria compartida, sockets, llamada de procedimiento local o remoto o cualquier otro mecanismo de intercambio de información adecuado.
Volviendo a la FIG. 1, en un modo de realización, el motor de búsqueda 122 puede contener un indexador 130, un sistema de consulta 132 y un formateador 134. El sistema de consulta 132 puede recuperar todos los eventos en tiempo real y los datos de rendimiento de la cola 126. El sistema de consulta 132 puede utilizar datos de rendimiento y eventos en tiempo real para actualizar el estado actual del usuario y generar una consulta implícita. Una consulta implícita puede ser una consulta generada automáticamente a partir del estado actual del usuario. El sistema de consulta 132 también puede recuperar y procesar consultas explícitas del usuario 112a. Los datos de rendimiento también pueden ser recuperados por el motor de búsqueda 122 de la cola 126 para su uso en la determinación de la cantidad de actividad posible por parte del buscador 122.
En el modo de realización mostrado en la FIG. 1, los eventos en tiempo real indexables y los eventos históricos (eventos indexables) se recuperan de la cola 126 por medio del indexador 130. Alternativamente, la cola 126 puede enviar los eventos indexables al indexador 130. El indexador 130 puede indexar los eventos indexables y puede enviarlos al almacén de datos 140 donde se almacenan. El almacén de datos 140 puede ser cualquier tipo de medio legible por ordenador y se puede integrar en el dispositivo cliente 102a, tal como un disco duro, o ser externo al dispositivo cliente 102a, como un disco duro externo o en otro dispositivo de almacenamiento de datos al que se accede a través de la red 106. El almacén de datos puede ser una o más áreas de almacenamiento lógico o físico. En un modo de realización, el almacén de datos 140 puede estar en la memoria 108. El almacén de datos 140 puede facilitar un método o una combinación de métodos para almacenar datos, incluyendo sin carácter limitativo, matrices, tablas hash, listas y parejas, y puede incluir compresión y cifrado. En el modo de realización mostrado en la FIG. 1, el almacén de datos incluye un índice 142, una base de datos 144 y un depósito 146.
En el modo de realización mostrado en la FIG. 1, cuando el indexador 130 recibe un evento, el indexador 130 puede determinar, a partir del esquema de evento, los términos (si los hay) asociados con el evento, la hora del evento (si está disponible), imágenes (si la hay) asociadas con el evento, y/u otra información que defina el evento. El indexador 130 también puede determinar si el evento está relacionado con otros eventos y asociar el evento con los eventos relacionados. Por ejemplo, para un evento relativo a una página web, el indexador 130 puede asociar este evento con otros eventos relativos a la misma página web. Esta información de asociación se puede almacenar en la base de datos 133 de un documento para cada grupo de eventos relacionados.
El indexador 130 puede enviar e incorporar los términos y horas asociados con el evento en el índice 142 del almacén de datos 140. El evento puede ser enviado a la base de datos 144 para su almacenamiento y el contenido del artículo asociado y cualquier imagen asociada se pueden almacenar en el depósito 146. El objeto de la conversación asociado con mensajes de mensajería instantánea se puede almacenar en la base de datos 144.
En el modo de realización mostrado en la FIG. 1, un usuario 112a puede introducir una consulta explícita en una interfaz del motor de búsqueda del dispositivo cliente 102a, que es recibida por el motor de búsqueda 122. En un modo de realización, la interfaz del motor de búsqueda del dispositivo cliente 102a incluye una visualización gráfica/textual, por ejemplo, una página web basada en HTML. En modos de realización alternativos, la interfaz del motor de búsqueda incluye diversos modos de entrada/salida - por ejemplo, un sistema activado con la voz, un sistema táctil o similar.
El motor de búsqueda 122 también puede generar una consulta implícita a partir de un un estado actual del usuario, que puede ser determinado por el sistema de consulta 132 de eventos en tiempo real. A partir de la consulta, el sistema de consulta 132 puede localizar información relevante en el almacén de datos 140 y proporcionar un conjunto de resultados. En un modo de realización, el conjunto de resultados incluye identificadores de artículo de artículos asociados con las aplicaciones de cliente 120 o los artículos de cliente. Los artículos de cliente incluyen artículos asociados con el usuario 112a o dispositivo cliente 102a, como los mensajes de correo electrónico del usuario, documentos de procesador de texto, mensajes de mensajería instantánea, páginas web visitadas anteriormente y cualquier otro artículo o parte de un artículo asociado con el dispositivo cliente 102a o usuario 112a. Un identificador de artículo puede ser, por ejemplo, un Localizador Uniforme de Recusos (URL), un nombre de archivo, un enlace, un icono, una ruta de un archivo local, cualquier identificador alfanumérico u otra información adecuada que pueda identificar un artículo. En otro modo de realización, el conjunto de resultados incluye también identificadores de artículo de artículos ubicados en otros sistemas de la red 106, por ejemplo, artículos de red ubicados por un motor de búsqueda en un dispositivo servidor. Los artículos de red incluyen artículos ubicados en sistemas de la red 106 que no han sido vistos previamente o, de lo contrario, referenciados por el usuario 112a, tales como páginas web que no han sido vistas previamente por el usuario 112a.
El formateador 134 puede recibir el conjunto de resultados de búsqueda desde el sistema de consulta 132 del motor de búsqueda 122 y puede dar formato a los resultados para su salida a un procesador de visualización 128. En un modo de realización, el formateador 134 puede dar formato a los resultados en XML, HTML, o en texto delineado por pestañas. El procesador de visualización 128 puede estar dentro de la memoria 108 y puede controlar la visualización del conjunto de resultados en un dispositivo de representación asociado con el dispositivo cliente 102a. El procesador de visualización 128 puede incluir varios componentes. Por ejemplo, en un modo de realización, el procesador de visualización 128 incluye un servidor de Protocolo de Transferencia de Hipertexto (HTTP) que recibe las solicitudes de información y responde mediante la construcción y transmisión de páginas de Lenguaje de Marcado de Hipertexto (HTML). En uno de dichos modos de realización, el servidor HTTP incluye una versión a escala reducida del servidor web Apache. El procesador de visualización 128 puede estar asociado con un conjunto de interfaces de programación de aplicaciones (API, por sus siglas en inglés) para permitir que varias aplicaciones reciban los resultados y los muestren en diversos formatos. Las API de visualización pueden ser implementadas de varias maneras, incluyendo, por ejemplo, como exportaciones DLL, interfaz COM, VB, JAVA o bibliotecas .NET, o como un servicio web.
A través de los dispositivos cliente 102a-n, los usuarios 112a-n pueden comunicarse a través de la red 106, entre sí y con otros sistemas y dispositivos acoplados a la red 106. Como se muestra en la FIG. 1, un dispositivo de servidor 150 se puede acoplar a la red 106. En el modo de realización mostrado en la FIG. 1, el motor de búsqueda 122 puede transmitir una consulta de búsqueda incluida en una consulta explícita o implícita o ambas al dispositivo servidor 150. El usuario 112a también puede introducir una consulta de búsqueda en una interfaz del motor de búsqueda, que puede ser transmitida al dispositivo servidor 150 por el dispositivo cliente 102a a través de la red 106. En otro modo de realización, la señal de consulta puede, en cambio, ser enviada a un servidor proxy (que no se muestra), que a continuación, transmite la señal de consulta al dispositivo servidor 150. Otras configuraciones también son posibles.
El dispositivo servidor 150 puede incluir un servidor que ejecute un programa de aplicación del motor de búsqueda,
tal como el motor de búsqueda Google™. En otros modos de realización, el dispositivo servidor 150 puede incluir un
servidor de información relacionado o un servidor de publicidad. De forma similar a los dispositivos cliente 102an, el dispositivo servidor 150 puede incluir un procesador 160 acoplado a una memoria legible por ordenador 162. El dispositivo servidor 150, representado como un único sistema informático, puede ser implementado como una red de procesadores informáticos. Ejemplos de un dispositivo servidor 150 incluyen servidores, ordenadores centrales, ordenadores en red, un dispositivo basado en procesador y tipos similares de sistemas y dispositivos. El procesador del servidor 160 puede ser cualquiera de un número de procesadores, tales como los procesadores de Intel Corporation de Santa Clara, California, y Motorola Corporation de Schaumburg, Illinois. En otro modo de realización, el dispositivo servidor 150 puede existir en un dispositivo cliente. En otro modo de realización más, puede haber múltiples dispositivos servidor 150.
La memoria 162 contiene el programa de aplicación del motor de búsqueda, también conocido como un motor de búsqueda de red 170. El motor de búsqueda 170 puede localizar información relevante desde la red 106 en respuesta a una consulta de búsqueda desde un dispositivo cliente 102a. El motor de búsqueda 170 entonces puede proporcionar un conjunto de resultados al dispositivo cliente 102a a través de la red 106.
El conjunto de resultados puede incluir uno o más identificadores de artículo. Un identificador de artículo puede ser, por ejemplo, un Localizador Uniforme de Recursos (URL), un nombre de archivo, un enlace, un icono, una ruta para un archivo local o cualquier otra cosa que identifique un artículo. En un modo de realización, un identificador de artículo puede incluir un URL asociado con un artículo.
En un modo de realización, el dispositivo servidor 150, o dispositivo relacionado, previamente, ha realizado un rastreo de la red 106 para localizar artículos, tales como páginas web, almacenados en otros dispositivos o sistemas acoplados a la red 106, y ha indexado los artículos en la memoria 162 o en otro dispositivo de almacenamiento de datos.
Cabe señalar que otros modos de realización de la presente invención pueden incluir sistemas que tienen una arquitectura diferente a la que se muestra en la FIG. 1. Por ejemplo, en algunos otros modos de realización de la presente invención, el dispositivo cliente 102a es un dispositivo autónomo y no está acoplado a una red.
Con referencia ahora a la FIG. 2, se muestra un diagrama de flujo que ilustra un modo de realización ilustrativo de un método para capturar y procesar datos de evento asociados con un dispositivo cliente. Cabe señalar que pueden llevarse a cabo los diversos métodos de captura y de procesamiento de datos de evento de acuerdo con los modos de realización de la presente invención. Por ejemplo, en un modo de realización, se capturan datos de aplicación a partir de una interfaz de programa de aplicación ("API") asociada con una aplicación que se proporciona para interactuar con la aplicación. En otro modo de realización, se capturan pulsaciones de teclas asociadas a una aplicación y se determinan eventos a partir de, entre otras cosas, acciones asociadas con las pulsaciones de teclas.
En otro modo de realización, se capturan elementos de visualización e información relacionada y se determinan eventos a partir de, al menos en parte, la información de visualización capturada. Estos son algunos ejemplos no exhaustivos de los múltiples métodos de captura y de procesamiento de datos de evento de acuerdo con los modos de realización de la presente invención.
En un modo de realización, se puede determinar si se indexa el evento, y el evento se pueden indexar y almacenar si así se determina.
La FIG. 2 ilustra un método de ejemplo 200 que proporciona un método para la captura y el procesamiento de un evento en tiempo real. Este método de ejemplo se proporciona a modo de ejemplo, como se apreciará a partir de la descripción anterior de modos de realización de ejemplo que hay una variedad de formas para llevar a cabo métodos en otros modos de realización de la presente invención. El método 200 mostrado en la FIG. 2 puede ser ejecutado o de otra manera llevado a cabo por cualquiera de los diversos sistemas. El método 200 se describe a continuación como llevado a cabo por el sistema 100 que se muestra en la FIG. 1 a modo de ejemplo, y se hace referencia a diversos elementos del sistema 100 en la explicación del método de ejemplo de la FIG. 2.
En 202, el procesador de captura 124 captura un evento. El procesador de captura 124 puede capturar un evento mediante la identificación y recopilación de datos de evento asociados con el evento tras el acontecimiento del evento. El procesador de captura 124 puede tener componentes de captura separados para cada aplicación de cliente, control de red, captura de datos de rendimiento, captura de pulsaciones de teclas y captura de visualización. Por ejemplo, un evento puede acontecer cuando un usuario 112a teclea un número predeterminado de palabras en una aplicación de cliente. Los datos de evento asociados a ese evento pueden ser, por ejemplo, la aplicación utilizada para la entrada, el formato del texto, la entrada de palabras y la entrada de hora. En un modo de realización, el componente de captura puede utilizar un mecanismo de definición de evento generalizado, tal como un esquema de evento que se ha registrado previamente con el dispositivo cliente 102a, para capturar o expresar el evento.
La FIG. 3 proporciona un ejemplo de captura de un evento en tiempo real del paso 202. Específicamente, la FIG. 3 muestra un diagrama de flujo que ilustra un modo de realización de ejemplo de un método para capturar información de pulsación de tecla en un dispositivo cliente. En este modo de realización, se reciben una pluralidad de pulsaciones de teclas asociadas con una aplicación, cada pulsación de tecla se procesa para determinar una acción asociada formando una pluralidad de acciones asociadas y se determina un evento a partir, al menos en parte, de la pluralidad de acciones asociadas. Una aplicación en enfoque se puede determinar primero.
En un modo de realización, el evento puede ser un número de palabras y se puede determinar que la pluralidad de acciones asociadas forme una palabra o palabras. La palabra o palabras se pueden determinar al menos en parte mediante la recepción de al menos una pulsación de tecla que indique un espacio o un símbolo de puntuación. En otro modo de realización, el evento puede ser una serie de caracteres y se puede determinar que la pluralidad de acciones asociadas formen un carácter o caracteres.
En un modo de realización, un estado de captura puede ser actualizado después de que se procese cada pulsación de tecla. En un modo de realización, un estado actual del usuario se puede actualizar a partir, al menos en parte, del evento. El evento puede ser indexado y almacenado.
En un modo de realización, cada acción asociada puede ser determinada, al menos en parte, al hacer coincidir la pulsación de tecla con una entrada en una tabla de pulsaciones de teclas y determinar una acción en la tabla de teclas asociada con la entrada. La acción puede incluir una de las siguientes: añadir un carácter a una palabra, borrar un carácter de una palabra, insertar un carácter, sobrescribir un carácter, borrar una palabra, eliminar un párrafo, seleccionar un elemento y reposicionar el cursor. La tabla de pulsaciones de teclas puede estar asociada con la aplicación o puede ser una tabla genérica de pulsaciones de teclas.
En otro modo de realización, se reciben pulsaciones de teclas asociadas con una aplicación, se determina un evento a partir de entradas de usuario y se determina si se indexar el evento. Las entradas de usuario pueden ser uno o más de un número de palabras determinadas a partir de las pulsaciones de teclas, un número de caracteres determinados a partir de las pulsaciones de teclas y un cambio de enfoque de la aplicación a otra aplicación. Determinar si se indexa el evento puede incluir determinar si el evento es importante para el usuario.
En 302, se proporciona una base de datos de pulsaciones de teclas. La base de datos de pulsaciones de teclas puede contener, para diversas aplicaciones de cliente, tablas de comandos de pulsaciones de teclas y la acción respectiva para cada comando. En un modo de realización, la base de datos de pulsaciones de teclas tiene una tabla separada para cada aplicación de cliente separada. Se puede utilizar una tabla genérica para una aplicación si una tabla específica no existe para la aplicación particular. En un modo de realización, la misma tabla puede ser utilizada para grupos de aplicaciones. Por ejemplo, la misma tabla se puede utilizar para aplicaciones del mismo desarrollador. Por ejemplo, la misma tabla se puede utilizar para todas las aplicaciones de Microsoft® y una tabla diferente se puede utilizar para todas las aplicaciones de Lotus®. De manera adicional, la misma tabla se puede utilizar para aplicaciones relacionadas, tales como las aplicaciones de Office® de Microsoft®, o aplicaciones de procesadores de texto de cualquier desarrollador. Las tablas de pulsaciones de teclas se pueden crear de forma manual para cada aplicación. De forma alternativa, las tablas de pulsaciones de teclas se pueden crear de forma automática al determinar de forma automática acciones respectivas de cada pulsación de tecla para cada aplicación.
En 303, se llama al componente de captura de pulsaciones de teclas. El componente de captura de pulsaciones de teclas puede operar de forma normal o incluso de forma constante de manera que controle toda la actividad de pulsaciones de teclas o pueda ser llamado de forma selectiva por el procesador de captura 124 u otros componentes de captura cuando sea necesario o en diversos momentos. En 304, el componente captura de pulsaciones de teclas puede determinar la aplicación de cliente en enfoque. La aplicación en enfoque es la aplicación de cliente que está siendo actualmente utilizada por el usuario 112a. Por ejemplo, puede ser la aplicación de cliente en la que el usuario 112a está introduciendo texto. En un modo de realización, se determina la aplicación en enfoque de modo que el componente de captura de pulsaciones de teclas pueda utilizar la tabla de pulsaciones de teclas asociada con la aplicación en enfoque de la base de datos de pulsaciones de teclas. Por ejemplo, si la aplicación en enfoque es una aplicación específica de procesador de texto, el componente de captura de pulsaciones de teclas puede llamar la tabla de pulsaciones de teclas de la aplicación de procesador de texto específica correspondiente.
En 306, los datos de evento son restablecidos por medio del componente de captura de pulsaciones de teclas. En un modo de realización, los datos de evento se cumplen en un evento en un formato definido por un esquema de evento y el componente de captura de pulsaciones de teclas puede registrar un esquema de evento de captura de pulsaciones de teclas específicas, y restablecer el evento incluye la eliminación de cualquier dato de evento existente. Un contador N también se puede restablecer. En un modo de realización, el contador cuenta el número de palabras capturadas por el componente de captura de pulsaciones de teclas. En dicho modo de realización, cuando el evento es restablecido, el contador se pone a cero.
En 308, el componente de captura de pulsaciones de teclas captura una entrada de pulsación de tecla por el usuario 112a. Un usuario puede introducir una pulsación de tecla a través de una variedad de dispositivos de entrada, tales como un teclado. Una pulsación de tecla puede incluir una entrada de tecla única o una entrada de tecla múltiple y puede incluir una entrada de texto y una entrada de comando de edición. Por ejemplo, una pulsación de tecla puede incluir la tecla "G" o las teclas "G" y "Shift". Una pulsación de tecla también puede incluir la tecla "Retroceso" o las teclas "Retroceso" y "Control". El componente de captura de pulsaciones de teclas puede recibir una pulsación de tecla al recibir mensajes de pulsación de tecla a través de una devolución de aplicación que puede ser invocada por el sistema operativo. El componente de captura de pulsaciones de teclas también puede recibir una pulsación de tecla a través del control de un buffer de entrada, tal como un buffer de teclado, a nivel de sistema operativo. Se pueden capturar otros métodos de introducción de caracteres, como la escritura a mano.
En 310, el componente de captura de pulsaciones de teclas procesa las pulsaciones de teclas. En el modo de realización mostrado, el componente de captura de pulsaciones de teclas procesa la pulsación de tecla recibida al emparejar la pulsación de tecla con una entrada de la tabla de pulsaciones de teclas de la aplicación específica en enfoque, y determinar la acción respectiva de la pulsación de tecla. Por ejemplo, si la pulsación de teclas recibida es la tecla "SHIFT" y la tecla "G" en una aplicación específica de procesamiento de textos, el componente de captura de pulsaciones de teclas puede emparejar la tecla "SHIFT" y la tecla "G" en la tabla de pulsaciones de teclas de la aplicación específica y determinar la acción asociada, por ejemplo, la salida de la letra "G". Si la pulsación de teclas recibida son las teclas "Control" y "Retroceso", el componente de captura de pulsaciones de teclas puede emparejar esas teclas con la acción respectiva de la tabla de pulsaciones de teclas de la aplicación específica y determinar la acción asociada, por ejemplo, la acción de borrar la palabra anterior al cursor. Otras acciones posibles incluyen mover el cursor hacia arriba o hacia abajo de una línea, mover el cursor hacia arriba o hacia abajo de un párrafo y mover el cursor al principio o al final de un documento, por ejemplo. El componente de captura de pulsaciones de teclas puede realizar un seguimiento de la posición actual del cursor con respecto a los caracteres anteriores introducidos. Por ejemplo, si el usuario escribe 5 caracteres, pulsa la "flecha izquierda" tres veces, escribe un carácter y pulsa la "flecha derecha" tres veces, el componente puede identificar que el usuario volvió atrás e introdujo un carácter en la palabra (para aplicaciones en las cuales la "flecha izquierda" se corresponde con el movimiento del cursor un carácter atrás). El componente puede seguir realizando un seguimiento de si cada aplicación está en modo "introducir", de manera que sabe si los nuevos caracteres superponen cualquier carácter existente.
En otro modo de realización, el componente de captura de pulsaciones de teclas puede que no procese directamente las pulsaciones de teclas. En su lugar, el componente de captura de pulsaciones de teclas puede pasar primero pulsaciones de teclas al sistema operativo, como si el usuario las hubiese enviado activamente al componente de captura de teclado, y no una aplicación. De esta manera, el sistema operativo puede realizar el trabajo de traducir pulsaciones de teclas en mensajes de mayor nivel (caracteres, movimientos de tecla, etc.) y puede, a continuación, devolver esos mensajes al componente de captura de pulsaciones de teclas para su posterior procesamiento. El envío de pulsaciones de teclas al sistema operativo para procesamiento intermedio, en lugar de procesarlas directamente, puede ser beneficioso por varias razones. Por ejemplo, puede evitar algunas de las dificultades de manejar caracteres de múltiples pulsaciones de teclas (incluyendo la introducción de caracteres que no son ingleses) y puede garantizar que las pulsaciones de teclas se procesen de una manera que sea coherente con el comportamiento del sistema operativo.
En 312, el componente de captura de pulsaciones de teclas añade la pulsación de tecla procesada a los datos de evento. En el modo de realización mostrado, el componente de captura de pulsaciones de teclas captura datos de evento tal como describe el esquema de evento y la pulsación de tecla procesada se añade a los datos de evento. Por ejemplo, si la pulsación de tecla procesada indica la adición de la letra G, se añade la letra G a los datos de evento. Si la pulsación de tecla procesada indica eliminar la palabra que precede al cursor y una palabra está dentro de los datos de evento, esa palabra se puede eliminar. Además, el componente de captura de pulsación de tecla puede añadir la pulsación de tecla procesada a un estado de captura. El componente de captura de pulsaciones de teclas puede mantener el estado de captura que contiene las pulsaciones de teclas anteriores mientras se determina qué palabra(s) reciente ha introducido el usuario. El estado de captura se puede actualizar antes de que se genere un evento.
En 314, el componente de captura de pulsaciones de teclas determina si una palabra completa ha sido añadida al evento. Una palabra puede ser una serie de caracteres que representen una palabra hablada, abreviatura, término o unidad semántica. Por ejemplo, "SERIE MUNDIAL", "ASCII", "SR" y "GOOGLE" pueden ser palabras. El componente de captura de pulsaciones de teclas puede determinar si una palabra completa ha sido introducida mediante una variedad de métodos. En un modo de realización, el componente de captura de pulsaciones de teclas busca una serie de caracteres seguidos por un espacio, por ejemplo, "GOOGLE", o ciertas caracteres de puntuación, como "GOOGLE", para determinar si se ha introducido una palabra completa. Si no se ha introducido una palabra completa, entonces el componente de captura de pulsaciones de teclas va al paso 316. En 316, el componente de captura de pulsaciones de teclas puede determinar si la aplicación previamente en enfoque está todavía en enfoque o si la aplicación en enfoque ha cambiado y otra aplicación se encuentra ahora en enfoque. Si la aplicación en enfoque no ha cambiado, el componente de captura de pulsaciones de teclas vuelve al paso 308 y recibe otra pulsación de tecla. Si la aplicación en enfoque ha cambiado, el componente de captura de pulsaciones de teclas vuelve al paso 304 y determina la aplicación en enfoque en ese momento. Si el componente de captura de pulsaciones de teclas identifica una acción tal como mover el cursor una línea hacia arriba, puede actualizar el estado de captura para que refleje la nueva posición del cursor. Si el componente de captura de pulsaciones de teclas no tiene el estado de captura de esa ubicación, o no se puede determinar con precisión la nueva ubicación, simplemente puede restablecer cualquier palabra parcialmente capturada. Como otro ejemplo, la pulsación de teclas "shift flecha izquierda" puede seleccionar el carácter anterior en una aplicación particular. El componente de captura de pulsaciones de teclas puede reconocer esa acción y posibles acciones posteriores como eliminar la selección o pegar la selección en otra parte del documento.
Si, en el paso 314, el componente de captura de pulsaciones de teclas determina que se ha recibido una palabra completa, a continuación, en el paso 318 el contador N se incrementa en uno. En el paso 320, el procesador de captura determina si el contador N es igual a un número entero T. El número entero T puede ser, por ejemplo, un número de palabras. El número de palabras se puede predeterminar o se puede determinar a partir de una variedad de factores adecuados, tales como la aplicación en enfoque en ese momento u otra actividad del usuario. En un ejemplo, T es igual a uno para que el componente de captura de pulsación de tecla pueda crear un evento al identificar cada palabra introducida por el usuario 112a. De forma alternativa, T puede ser un número de caracteres. Al igual que el número de palabras, el número de caracteres se puede predeterminar o se puede determinar a partir de una variedad de factores adecuados. Si, en el paso 320, se descubre que N no es igual que T, entonces el componente de captura de pulsaciones de teclas va al paso 316, donde el componente de captura de pulsaciones de teclas determina si la aplicación en enfoque ha cambiado. Si el componente de captura de pulsaciones de teclas determina que N sí que es igual a T, entonces el componente de captura de pulsaciones de teclas procede al paso
322. Por ejemplo, si N es un contador que cuenta el número de palabras capturado y T se establece en uno y se recibe "GOOGLE", entonces el componente de captura de pulsaciones de teclas continúa al paso 322.
En 322, el componente de captura de pulsaciones de teclas compila el evento. En el modo de realización mostrado, el componente de captura de pulsaciones de teclas compila el evento mediante la compilación de los datos de evento asociados con los campos específicos descritos por el esquema de evento. Por ejemplo, los datos de evento pueden incluir la aplicación que se utiliza para la entrada, el formato del texto, la entrada de palabra o palabras y la entrada de tiempo. Cuando el componente de captura de pulsaciones de teclas ha compilado el evento, el método 200 puede continuar en el paso 204 como se muestra en la FIG. 2.
La FIG. 4 proporciona otro ejemplo de la captura de un evento, por ejemplo, un evento en tiempo real 202, como se muestra en la FIG. 2, a partir de información de visualización. La FIG. 4 muestra un diagrama de flujo que ilustra un modo de realización de ejemplo de un método para capturar información de visualización en un dispositivo cliente. Normalmente, las aplicaciones en un dispositivo cliente invocan llamadas de visualización para visualizar información asociada con la aplicación en una pantalla de usuario, tal como un monitor, una pantalla de cristal líquido, una pantalla de plasma o similar. En un modo de realización, el procesador de captura 124 incluye un componente de captura de visualización para determinar eventos a partir de, al menos en parte, las pantallas o ventanas asociadas con las aplicaciones. Cabe señalar que las ventanas asociadas con las aplicaciones se pueden ocultar o mostrar y hacer visibles para el usuario en cualquier momento dado. La información de una pantalla puede ser determinada al menos en parte mediante el uso de una matriz de un estado actual de la pantalla y la actualización de la matriz con llamadas de visualización. La información de una pantalla también se puede determinar, al menos en parte, mediante la construcción de elementos de visualización a partir de al menos en parte, posiciones de visualización de las llamadas de visualización. Las llamadas de visualización se pueden procesar mediante el análisis de una o más de las coordenadas x, y, longitudes, o posiciones relativas de varias salidas de elementos a la pantalla mediante llamadas de visualización.
En un modo de realización, una aplicación en enfoque se determina primero desde la cual capturar información de visualización asociada para generar eventos. Los eventos pueden incluir, por ejemplo, un número de palabras determinadas para ser de salida en la pantalla. En un modo de realización, un estado de captura puede ser actualizado después de procesar cada llamada de visualización y un estado de usuario actual se puede actualizar a partir, al menos en parte, del evento.
Con respecto a la FIG. 4, inicialmente, se llama a un componente de captura de visualización 400. El componente de captura de visualización puede funcionar con regularidad, por ejemplo, en un horario, o incluso constantemente de modo que controle toda la actividad de visualización, o puede ser selectivamente llamado cuando sea necesario. Entonces, se determina la aplicación en enfoque 402. En un modo de realización, la aplicación en enfoque es la aplicación de cliente que está siendo utilizada actualmente. Por ejemplo, en un entorno de sistema operativo basado en ventanas, el componente de captura de visualización determina qué ventana está usando activamente el usuario.
En una primera o nueva llamada, el evento es restablecido 404. Un evento puede ser restablecido por razones diferentes, tales como, por ejemplo, que el usuario tenga conectada la aplicación en enfoque, que un evento de haya sido capturado y enviado para su procesamiento o por otras razones diferentes. En un modo de realización, restablecer 404 un evento incluye indicar o generar un nuevo evento. Los datos de evento existentes antes del restablecimiento 404 se guardan en un estado de captura y se mantienen hasta el restablecimiento. La indicación de un nuevo evento desencadena el envío de los datos de evento existentes en el evento anterior para procesamiento. Por ejemplo, en un modo de realización, la función de restablecimiento guarda el evento anterior y lo envía a la cola 126 antes de inicializar el nuevo evento. En un modo de realización, se pueden generar nuevos eventos de acuerdo con un esquema de evento asociado con un tipo de evento. Los esquemas de evento pueden incluir dar formato a varios campos de datos asociados con los diferentes tipos de eventos.
A continuación, se recibe una llamada de visualización 406. Por ejemplo, en un modo de realización, el componente de captura de visualización recibe una llamada de visualización. Una llamada de visualización puede ser una instrucción enviada por el sistema operativo al dispositivo de representación asociado con el dispositivo cliente que indica al dispositivo de representación que muestre un artículo o cambie la visualización de un elemento en el dispositivo de representación. Por ejemplo, la llamada de visualización puede ser para mostrar el texto "Google" en la fuente "Times New Roman" en una posición de pantalla, tal como la posición x, y. Esta llamada de visualización puede, por ejemplo, provocar la visualización del texto "Google" en la pantalla de un monitor de ordenador en la posición x, y de la ventana activa y en la fuente "Times New Roman". Una llamada de visualización también puede ser, por ejemplo, para eliminar un elemento en una posición dada, cambiar la fuente de una palabra, cambiar la posición de un elemento en la pantalla o similares. En un modo de realización, las llamadas de visualización también pueden ser determinadas mediante la inyección de un código en aplicaciones o a través del uso de Bibliotecas de Vínculos Dinámicos ("DLL") para enganchar e interceptar llamadas de API del sistema operativo como se detalla a continuación. En otro modo de realización, también se pueden capturar otros métodos de salida, tales como llamadas a un controlador de impresora, un controlador de audio o similar.
Después de que se haya recibido la llamada de visualización 406, se procesa la llamada de visualización 408 para determinar los datos de evento asociados con la pantalla actual. La pantalla incluye la información visual que el usuario ve en la ventana o ventanas. En un modo de realización, los datos de evento asociados con la pantalla actual se capturan y se colocan en un formato de evento de acuerdo con un esquema de evento asociado con el tipo de evento particular o aplicación. En un modo de realización, los datos de evento capturados se pueden guardar o mantener en un estado de captura, por ejemplo, al mantener una matriz de elementos que se han editado para la pantalla actual. Por ejemplo, en un modo de realización, un componente de captura de visualización puede utilizar las coordenadas x e y de los artículos para determinar palabras, espacios entre las palabras y el inicio de una nueva línea. La llamada de visualización puede ser utilizada por el componente de captura de visualización para actualizar la matriz de la pantalla actual. Por ejemplo, si la llamada de pantalla es para escribir el texto "Google" en la fuente "Times New Roman" en la posición x, y, previamente mostrando la palabra "Google," entonces se añade el texto "Google" en la fuente "Times New Roman" a la pantalla en la posición x, y reemplazando el texto "Google." La matriz actualizada asociada con la pantalla actual, incluyendo el texto "Google" se puede añadir entonces al evento. El estado de captura también se puede actualizar al reemplazar la matriz de estado anterior "Google", con la matriz actualizada, "Google". En consecuencia, las actualizaciones de la pantalla se pueden reflejar en el evento asociado durante tanto tiempo como el evento no esté completo.
Se determina después 410 si se ha producido un evento completo. En un modo de realización, para determinar 410 si un evento está completo, se comprueba una condición completa. Por ejemplo, una condición de completa puede incluir la adición de una sola palabra o un número predeterminado de palabras a la pantalla del dispositivo de representación. De forma alternativa, como otro ejemplo, una condición completa puede incluir una acción de usuario concreta en la pantalla, por ejemplo, un clic de ratón en un hipervínculo, un botón, un elemento del menú o similares. Si todavía no ha ocurrido un evento completo, entonces se determina 412 si ha cambiado la aplicación en enfoque. Si la aplicación en enfoque no ha cambiado, se recibe 406 la siguiente llamada de visualización asociada con la ventana activa. Por el contrario, si la aplicación en enfoque ha cambiado, se determina de nuevo la nueva aplicación en enfoque 402 y comienza el proceso de captura de un nuevo evento.
Si se determina 410 que ha ocurrido un evento completo, se compila el evento completo 414. Por ejemplo, en un modo de realización, el componente de captura de visualización compila un evento al proporcionar todos los datos relacionados con el evento de acuerdo con un esquema de evento. Los datos de evento pueden incluir la aplicación utilizada, el formato de la pantalla, la hora de visualización, el contenido mostrado, la fuente y el tamaño de fuente de cualquier palabra mostrada y cualquier otro dato asociado al evento que pueda ser posteriormente útil para la indexación o para un usuario.
Con referencia ahora a la FIG. 5, se muestra un diagrama de flujo de un modo de realización de un método de captura de visualización basado en perfiles 500. En este modo de realización, un componente de captura de visualización puede ser configurado para capturar información asociada con ventanas de aplicaciones seleccionadas. Las ventanas de la aplicación se pueden mostrar en la vista de usuario o escondidas dentro del sistema informático. Algunos ejemplos de aplicaciones seleccionadas para las cuales se pueden ser configurar componentes de captura de visualización incluyen aplicaciones que no proporcionan una API pública, aplicaciones que cifran o de lo contrario protegen contra la captura de datos desde sus ventanas de la aplicación o similares. El procesador de captura de este modo de realización puede incluir varios componentes de captura. Para algunas de las aplicaciones de destino desde las cuales se capturan datos de evento, se utiliza un componente de captura basado en perfiles.
En consecuencia, en un modo de realización, tras la inicialización del proceso del componente de captura, las aplicaciones preexistentes con ventanas asociadas se comprueban primero 501 con el fin de determinar su identidad. En un modo de realización, un perfil de aplicación de destino se utiliza para determinar la identidad de las aplicaciones que se están ejecutando. El perfil de la aplicación incluye información de identificación asociada con las aplicaciones de destino. El perfil de aplicación puede incluir, por ejemplo, un nombre único de clase de ventana asociado con ventanas de una aplicación de destino (ya sea oculta o visible), un nombre único de ruta de sistema para archivos binarios almacenados asociados con la aplicación de destino, entradas de registro de sistema operativo asociadas con la aplicación de destino o similares. En un modo de realización, tras la inicialización y después de que se hayan comprobado las aplicaciones existentes 501, se reciben notificaciones de eventos de creación de ventana posteriores, por ejemplo, mediante la suscripción a través del sistema operativo a eventos de creación de ventana. Para cada evento de creación de ventana, la aplicación de origen se comprueba 501 para determinar si es una aplicación de destino seleccionada.
Una vez que se identifica una aplicación de destino, el código informático de un componente de captura de visualización específico de la aplicación se asocia 502 con la aplicación de destino. Por ejemplo, en un modo de realización, un gancho basado en una API de Windows® está configurado para cargar el código de captura de visualización de una librería de enlace dinámico ("DLL") en el proceso de aplicación de destino. En un modo de realización, el código de captura de visualización elude las funciones de protección de captura de datos/codificación de la aplicación de destino al modificar, interceptar o evitar sus interacciones con el sistema operativo.
En un modo de realización, los datos de evento de una aplicación de destino se derivan de un subconjunto de las ventanas asociadas con la aplicación de destino. En consecuencia, las ventanas asociadas con las aplicaciones de destino se comparan 504 con perfiles de ventana almacenados. Los perfiles de ventana contienen información que puede ser utilizada para identificar ventanas de destino, incluyendo, por ejemplo, texto que se encuentra en el título de la ventana, el número y tipo de elementos de visualización (por ejemplo, botones, menús desplegables, recuadros de introducción de texto y similares), texto para ser mostrado en los elementos de la pantalla, la ubicación
o disposición de elementos de visualización y similares.
Por ejemplo, en un modo de realización, una ventana de texto de una aplicación de destino de mensajería instantánea ("IM") es la ventana de destino. El texto del mensaje instantáneo (tanto el que es introducido como el que es recibido) son los datos de evento a ser capturados y asociados con un evento de mensajería instantánea (es decir, un campo de datos del esquema de evento de IM incluye el texto intercambiado por los usuarios de una sesión). El perfil de ventana de este ejemplo (es decir, el perfil de ventana de la ventana de destino, que es la ventana de conversación de IM) incluye la cadena "hablando con" en el título de la ventana, un botón "Enviar" y un recuadro grande de entrada de texto libre.
Para cada ventana de destino de la aplicación de destino, se controla el estado de los elementos de visualización u otras variables relacionadas con la visualización de la ventana de destino 506. Por ejemplo, se controla el estado de los controladores asociados con botones de pantalla o métodos abreviados de teclado equivalentes (por ejemplo, el botón "Enviar" o la secuencia de teclas Ctrl + Enter). Al detectar el cambio de estado de un elemento de visualización (por ejemplo, un botón) de interés, se capturan datos de evento de la ventana de destino 508.
En un modo de realización, la captura de datos es habilitada por el código de componente de captura de visualización enganchado en el proceso de aplicación de destino. Ese código intercepta los mensajes del sistema operativo entre la aplicación de destino y el sistema operativo y modifica las respuestas a esos mensajes del sistema operativo con el fin de permitir la captura de datos. Por ejemplo, en un sistema basado en Windows®, una aplicación configurada para proporcionar una secuencia vacía en respuesta a cada comando "get text" (por ejemplo, WM_GETTEXT) es modificada por el código de componente de captura para utilizar el controlador predeterminado para proporcionar el texto de visualización de ventana. Por lo tanto, el código de componente de captura insertado en el proceso de destino permite la modificación del comportamiento de la aplicación, por ejemplo, para eludir las medidas de prevención de captura de datos desde dentro del proceso.
La captura de visualización de datos de evento 508 se puede repetir a partir de cambios de estado y el estado de captura asociado con un evento puede ser actualizado con datos de evento recién capturados. Por ejemplo, por cada clic de usuario en el botón "Enviar" en una aplicación de mensajería instantánea, se puede capturar el texto asociado con una sesión de chat de mensajería instantánea 508 y almacenar en la memoria en una estructura de datos asociada con un evento de mensajería instantánea para la sesión actual. Los clics posteriores en el botón "Enviar" pueden causar la captura de intercambios de texto adicional en la sesión de mensajería instantánea entre los usuarios. Dicha captura de datos basada en el estado proporciona de forma beneficiosa un esquema eficiente para capturar datos de pantalla tras la interacción del usuario con una ventana de destino. Los esquemas de sondeo en función del tiempo pueden ser menos eficientes, ya que pueden operar incluso si el usuario no proporciona ninguna entrada nueva al proceso de destino. Además, la captura de datos basada en el estado puede reducir la probabilidad de perder algunos datos introducidos debido a que, generalmente, después de una entrada del usuario, se requiere algún cambio de estado (por ejemplo, hacer clic en un botón "Enviar", un botón "OK", un botón "Continuar" o teclear métodos abreviados equivalentes o similares).
Con referencia de nuevo a la FIG. 5, se controla el estado de la expiración de la ventana de destino 510. Tras la expiración de la ventana de destino, un evento puede ser completado 512. Cualquier entrada de datos de evento en el almacén de datos de evento puede ser terminada y el evento capturado puede ser enviado al indexador. Mientras la ventana de destino permanece activa, la captura de visualización puede continuar durante cada cambio de estado de la ventana.
Con referencia ahora de nuevo a la FIG. 2, una vez que se captura un evento (por ejemplo, como se describe con respecto a las figuras 4 y 5), el método de procesamiento de datos de evento procede al paso 204. El componente de captura de pulsaciones de teclas descrito con respecto a la FIG. 4 y el componente de captura de visualización descrito con respecto a la FIG. 5 se pueden utilizar juntos en un procesador de captura 124, además de otros componentes de captura, para determinar la actividad del usuario (por ejemplo, qué está viendo el usuario en un dispositivo visual de salida, tal como una pantalla). Otros componentes de captura pueden incluir técnicas de captura de datos de audio y video, por ejemplo, reconocimiento de voz, procesamiento de imágenes y similares, para eventos de audio y vídeo que pueden ser incluidos en el índice.
Después de que se haya capturado un evento, se determina 204 si el evento es un evento indexable. Como se ha explicado anteriormente, algunos eventos en tiempo real pueden no ser indexados (eventos en tiempo real no indexables). En un modo de realización, los eventos en tiempo real no indexables se utilizan para actualizar el estado del usuario actual y pueden ser, por ejemplo, examinar una parte de un artículo, cambiar un artículo y cerrar un artículo. En este modo de realización, los eventos no indexables no son indexados o enviados para su almacenamiento mediante el indexador 130. Los eventos indexables pueden ser eventos en tiempo real o eventos históricos indexables. Las pulsaciones de teclas y llamadas de visualización pueden ser eventos no indexables, tales como la entrada de un número de palabras por parte de un usuario o la visualización de un número de palabras en un dispositivo de representación. Las pulsaciones de teclas y llamadas de visualización también pueden ser eventos indexables, tales como, por ejemplo, cuando un artículo entero o parte de un artículo es introducido por un usuario o mostrado en un dispositivo de representación.
Si se determina un evento indexable 204, entonces, el evento puede ser enviado 206 para su indexación, por ejemplo, a la cola 126, con una indicación de que es un evento indexable. En el modo de realización mostrado en la FIG. 1, los eventos en tiempo real indexables se envían tanto a una cola de estado de usuario como a una cola de índice dentro de la cola 126, y los eventos históricos se envían a la cola de índice dentro de la cola 126. De forma alternativa, los eventos en tiempo real indexables no se pueden enviar a la cola de estado de usuario para ahorrar tiempo computacional. El procesador de captura 124 puede enviar el evento en una forma descrita por un esquema de evento a la cola 126.
Si se determina que el evento 204 es un evento no indexable, entonces, el evento no indexable se puede enviar 206 para su posterior procesamiento, por ejemplo, a una cola de estado de usuario de la cola 126, con una indicación de que no va a ser indexado. Por ejemplo, cuando un usuario está redactando un correo electrónico un componente de captura puede capturar un número de palabras introducido por el usuario en la redacción del correo electrónico. Un componente de captura puede capturar el texto introducido como un evento. Si bien ese evento puede ser útil para determinar un estado actual del usuario 112a, puede que no sea lo suficientemente importante para ser indexado y enviado para ser almacenado por el motor de búsqueda, de modo que el usuario pueda más tarde recuperar esta información. De forma alternativa, en un ejemplo en el que un usuario abre un correo electrónico recibido, tal evento puede proporcionar información sobre un estado actual del usuario, pero también puede ser indexado y enviado para ser almacenado por el motor de búsqueda 122, porque el usuario 112a puede después estar interesado en la recuperación de ese correo electrónico.
En un modo de realización, la cola 126 mantiene el evento hasta que el motor de búsqueda está listo para recibirlo. A partir de los datos de evento, el evento puede ser priorizado en la cola 126 para su manipulación. Por ejemplo, la cola 126 puede dar a los eventos históricos una prioridad más baja para su procesamiento que a los eventos en tiempo real. En un modo de realización, cuando el indexador 130 está listo para procesar otro evento, puede recuperar uno o más eventos de la cola de índice en la cola 126. El sistema de consulta 132 puede recuperar uno o más eventos de la cola de estado del usuario de la cola 126 cuando está listo para actualizar el estado del usuario. En otro modo de realización, no se utiliza cola y los eventos se envían directamente al motor de búsqueda 122 desde el procesador de captura 124.
Después de hayan tomado las decisiones de indexación 204 y los eventos se hayan puesto en cola correctamente 206, los eventos son indexados y almacenados 208. En un modo de realización, el indexador 130 puede recuperar un evento de la cola 126 cuando está listo para procesar el evento. El indexador 130 determina si el evento es un evento duplicado y, si no, asigna al evento una identificación de evento. El indexador 130 puede también asociar el evento con los eventos relacionados. Por ejemplo, en un modo de realización como se muestra en la FIG. 2, mediante el esquema de evento, el indexador 130 determina los términos indexables asociados con el evento, las fechas y horas asociadas con el evento y otros datos asociados con el evento. El indexador 130 puede asociar la identificación del evento con los términos indexables que figuran en el índice 142.
El evento se puede almacenar en la base de datos 144 y el contenido del evento se puede almacenar en el depósito
146.
El entorno mostrado refleja un modo de realización de la arquitectura del motor de búsqueda del lado del cliente. Son posibles otros modos de realización, tales como un dispositivo cliente autónomo o un motor de búsqueda de red.
Aunque los modos de realización y aplicaciones particulares de la presente invención se han ilustrado y descrito en este documento, ha de entenderse que la invención no se limita a la construcción y componentes precisos revelados en este documento y que varias modificaciones, cambios y variaciones pueden ser realizados en la disposición, funcionamiento y detalles de los métodos y aparatos de la presente invención sin apartarse de la invención tal como se define en las reivindicaciones adjuntas.
Claims (18)
- REIVINDICACIONES1. Un método informático para capturar datos de evento a partir de una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior, el método comprendiendo:la recepción de información de creación de ventana acerca de una ventana creada por la aplicación;la determinación (501) de si la aplicación es un ejemplo de una aplicación de destino al comparar la información de creación de ventana con un perfil de aplicación de destino asociado con la aplicación de destino;en respuesta a una determinación de que la aplicación es un ejemplo de la aplicación de destino, la determinación de si la ventana creada es un ejemplo de una ventana de destino al comparar (504) la información de creación de ventana con un perfil de ventana de destino asociado a la aplicación de destino; yen respuesta a una determinación de que la ventana creada es un ejemplo de la ventana de destino, la captura(508) de datos de evento a partir de la ventana creada al detectar un cambio de estado de un estado asociado con un elemento de la ventana;en el cual la captura de datos de evento también comprende el almacenamiento de información de ventana capturada en una estructura de datos asociada a un evento de acuerdo con un esquema de evento, y la indexación y el almacenamiento del evento.
-
- 2.
- El método de la reivindicación 1, también comprendiendo:
la actualización de un estado de captura de un evento con datos de evento capturados adicionales a partir de la ventana en respuesta a un cambio de estado subsiguiente del estado asociado con el elemento de la ventana. -
- 3.
- El método de cualquier reivindicación anterior, en el cual el elemento de la ventana incluye al menos uno de los siguientes: un botón, un menú desplegable o un hipervínculo.
-
- 4.
- El método de la reivindicación 1, en el cual la información de creación de ventana incluye al menos uno de los siguientes: un nombre de clase de ventana, un nombre de ruta o una entrada de registro asociada con la primera aplicación.
-
- 5.
- El método de la reivindicación 1, en el cual el perfil de aplicación de destino incluye al menos uno de los siguientes: un nombre de clase de ventana, un nombre de ruta o una entrada de registro asociada con la aplicación de destino.
-
- 6.
- El método de cualquier reivindicación anterior, en el cual la aplicación de destino está asociada con una pluralidad de perfiles de ventana de destino, cada perfil de ventana de destino comprendiendo la identificación de información de elemento de visualización para las ventanas desde las cuales se capturan datos.
-
- 7.
- El método de cualquier reivindicación anterior, también comprendiendo:
la asociación de un código de captura de visualización dentro de una aplicación de destino. -
- 8.
- El método de la reivindicación 7, en el cual el código de captura de visualización modifica las respuestas de la aplicación a solicitudes del sistema operativo.
-
- 9.
- El método de la reivindicación 8, en el cual las solicitudes de sistemas operativos incluyen mensajes de otras aplicaciones basadas en una interfaz de programación de aplicaciones asociada con el sistema operativo.
-
- 10.
- El método de la reivindicación 8, en el cual las solicitudes del sistema operativo incluyen solicitudes de texto en la ventana creada.
-
- 11.
- El método de cualquiera de las reivindicaciones 7 a 10, en el cual la asociación de código de captura de visualización incluye el establecimiento de un gancho (hook) con respecto a la aplicación.
-
- 12.
- El método de la reivindicación 11, en el cual el gancho está configurado para interceptar mensajes entre un sistema operativo y la aplicación.
-
- 13.
- El método de cualquiera de las reivindicaciones 1 a 12, en el cual la recepción de información de creación de ventana comprende:
la recepción de una pluralidad de llamadas de visualización asociadas con las aplicaciones informáticas del sistema informático. -
- 14.
- El método de la reivindicación 13, en el cual la determinación de si la ventana creada es un ejemplo de la ventana de destino comprende el análisis de una o más de: las coordenadas x, y, las longitudes y las posiciones relativas de una pluralidad de elementos de visualización escritos en la pantalla utilizando llamadas de visualización y su comparación con el perfil de ventana de destino.
-
- 15.
- El método de cualquiera de las reivindicaciones 1 a 12, también comprendiendo:
la suscripción a eventos de creación de ventana a través de un sistema operativo del sistema informático. -
- 16.
- El método de cualquiera de las reivindicaciones 1 a 12, también comprendiendo:
el control de cambios de estado por estados asociados con elementos de visualización de la ventana;la captura de texto dentro de la ventana al detectar un cambio de estado de los estados controlados, en el cual la captura comprende la intercepción de una solicitud de texto de ventana y la proporción del texto de ventana antes de que una aplicación responda a la solicitud de texto de ventana; yla indexación del texto capturado al expirar la ventana. - 17. Un sistema informático para capturar datos de evento a partir de una ventana de una aplicación de un sistema informático y almacenar e indexar los datos de evento para una búsqueda posterior, el sistema comprendiendo:medios para recibir información de creación de ventana acerca de una ventana creada por la aplicación;medios para determinar si la aplicación es un ejemplo de una aplicación de destino al comparar la información de creación de ventana con un perfil de aplicación de destino asociado a la aplicación de destino;medios para, en respuesta a una determinación de que la aplicación es un ejemplo de la aplicación de destino, determinar si la ventana creada es un ejemplo de una ventana de destino al comparar la información de creación de ventana con un perfil de ventana de destino asociado a la aplicación de destino; ymedios para, en respuesta a una determinación de que la ventana creada es un ejemplo de la ventana de destino, capturar datos de evento a partir de la ventana creada al detectar un cambio de estado de un estado asociado con un elemento de la ventana;en el cual la captura de datos de evento también comprende el almacenamiento de información de ventana capturada en una estructura de datos asociada con un evento de acuerdo con un esquema de evento, y la indexación y el almacenamiento del evento.
- 18. Un medio legible por ordenador portador de un código de programa para controlar que un ordenador lleve a cabo el método de cualquiera de las reivindicaciones 1 a 16.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US814773 | 2004-03-31 | ||
US10/814,773 US7941439B1 (en) | 2004-03-31 | 2004-03-31 | Methods and systems for information capture |
PCT/US2005/003386 WO2005103900A1 (en) | 2004-03-31 | 2005-02-04 | Profile based capture component for monitoring events in applications |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2421141T3 true ES2421141T3 (es) | 2013-08-29 |
Family
ID=34960517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES05712722T Active ES2421141T3 (es) | 2004-03-31 | 2005-02-04 | Componente de captura basado en perfiles para controlar los eventos en aplicaciones |
Country Status (7)
Country | Link |
---|---|
US (2) | US7941439B1 (es) |
EP (1) | EP1745379B1 (es) |
KR (1) | KR100952379B1 (es) |
CN (2) | CN100428182C (es) |
CA (1) | CA2560747C (es) |
ES (1) | ES2421141T3 (es) |
WO (1) | WO2005103900A1 (es) |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060161622A1 (en) * | 2001-04-13 | 2006-07-20 | Elaine Montgomery | Methods and apparatuses for selectively sharing a portion of a display for application based screen sampling using direct draw applications |
US7707255B2 (en) | 2003-07-01 | 2010-04-27 | Microsoft Corporation | Automatic grouping of electronic mail |
US8954420B1 (en) | 2003-12-31 | 2015-02-10 | Google Inc. | Methods and systems for improving a search ranking using article information |
US20050149498A1 (en) * | 2003-12-31 | 2005-07-07 | Stephen Lawrence | Methods and systems for improving a search ranking using article information |
US8099407B2 (en) | 2004-03-31 | 2012-01-17 | Google Inc. | Methods and systems for processing media files |
US8161053B1 (en) | 2004-03-31 | 2012-04-17 | Google Inc. | Methods and systems for eliminating duplicate events |
US8386728B1 (en) | 2004-03-31 | 2013-02-26 | Google Inc. | Methods and systems for prioritizing a crawl |
US7333976B1 (en) | 2004-03-31 | 2008-02-19 | Google Inc. | Methods and systems for processing contact information |
US8346777B1 (en) | 2004-03-31 | 2013-01-01 | Google Inc. | Systems and methods for selectively storing event data |
US8631076B1 (en) | 2004-03-31 | 2014-01-14 | Google Inc. | Methods and systems for associating instant messenger events |
US8275839B2 (en) | 2004-03-31 | 2012-09-25 | Google Inc. | Methods and systems for processing email messages |
US8255828B2 (en) | 2004-08-16 | 2012-08-28 | Microsoft Corporation | Command user interface for displaying selectable software functionality controls |
US7703036B2 (en) | 2004-08-16 | 2010-04-20 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US8146016B2 (en) | 2004-08-16 | 2012-03-27 | Microsoft Corporation | User interface for displaying a gallery of formatting options applicable to a selected object |
JP2006065547A (ja) * | 2004-08-26 | 2006-03-09 | Kyocera Corp | 携帯端末、コンピュータの制御方法及びプログラム |
US8504565B2 (en) * | 2004-09-09 | 2013-08-06 | William M. Pitts | Full text search capabilities integrated into distributed file systems— incrementally indexing files |
US8219807B1 (en) | 2004-12-17 | 2012-07-10 | Novell, Inc. | Fine grained access control for linux services |
US8271785B1 (en) | 2004-12-20 | 2012-09-18 | Novell, Inc. | Synthesized root privileges |
US8214398B1 (en) | 2005-02-16 | 2012-07-03 | Emc Corporation | Role based access controls |
US8074214B2 (en) | 2005-05-19 | 2011-12-06 | Oracle International Corporation | System for creating a customized software installation on demand |
US8352935B2 (en) | 2005-05-19 | 2013-01-08 | Novell, Inc. | System for creating a customized software distribution based on user requirements |
US8239882B2 (en) | 2005-08-30 | 2012-08-07 | Microsoft Corporation | Markup based extensibility for user interfaces |
EP1760043A1 (en) | 2005-09-06 | 2007-03-07 | ETH Zürich, ETH Transfer | Reducing flame spray pyrolysis method for the production of metal, non-oxidic, ceramic and reduced metal oxide powders and nano-powders |
US8627222B2 (en) | 2005-09-12 | 2014-01-07 | Microsoft Corporation | Expanded search and find user interface |
US7895223B2 (en) * | 2005-11-29 | 2011-02-22 | Cisco Technology, Inc. | Generating search results based on determined relationships between data objects and user connections to identified destinations |
US7478182B2 (en) * | 2006-01-31 | 2009-01-13 | Schweig Marc E | Keyboard, mouse, and video (KVM) session capture system that stores and can playback portions of live KVM session via forensic capture module |
US8676973B2 (en) * | 2006-03-07 | 2014-03-18 | Novell Intellectual Property Holdings, Inc. | Light-weight multi-user browser |
US8131747B2 (en) | 2006-03-15 | 2012-03-06 | The Invention Science Fund I, Llc | Live search with use restriction |
US9727989B2 (en) | 2006-06-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
US8185605B2 (en) * | 2006-07-18 | 2012-05-22 | Cisco Technology, Inc. | Methods and apparatuses for accessing an application on a remote device |
US7577718B2 (en) * | 2006-07-31 | 2009-08-18 | Microsoft Corporation | Adaptive dissemination of personalized and contextually relevant information |
US20090171866A1 (en) * | 2006-07-31 | 2009-07-02 | Toufique Harun | System and method for learning associations between logical objects and determining relevance based upon user activity |
US7685199B2 (en) * | 2006-07-31 | 2010-03-23 | Microsoft Corporation | Presenting information related to topics extracted from event classes |
US7849079B2 (en) * | 2006-07-31 | 2010-12-07 | Microsoft Corporation | Temporal ranking of search results |
US8780925B2 (en) | 2006-08-17 | 2014-07-15 | Fonality, Inc. | Mobile use of a PBX system |
US8732314B2 (en) | 2006-08-21 | 2014-05-20 | Cisco Technology, Inc. | Generation of contact information based on associating browsed content to user actions |
US7730480B2 (en) * | 2006-08-22 | 2010-06-01 | Novell, Inc. | System and method for creating a pattern installation by cloning software installed another computer |
US7721154B1 (en) * | 2006-09-05 | 2010-05-18 | Parasoft Corporation | System and method for software run-time testing |
US20080071864A1 (en) * | 2006-09-14 | 2008-03-20 | International Business Machines Corporation | System and method for user interest based search index optimization |
JP2008102911A (ja) * | 2006-09-19 | 2008-05-01 | Ricoh Co Ltd | 情報処理装置、情報処理方法、プログラム及び記録媒体 |
US20080082820A1 (en) * | 2006-10-03 | 2008-04-03 | Motorola, Inc. | Method and apparatus for determining availability of a remote party based on interaction with coupled devices |
US8693659B2 (en) | 2007-03-09 | 2014-04-08 | Fonality, Inc. | System and method for centralized presence management of local and remote users |
US8098810B2 (en) | 2007-03-09 | 2012-01-17 | Fonality, Inc. | Intelligent presence management in a communication routing system |
US20080270450A1 (en) * | 2007-04-30 | 2008-10-30 | Alistair Veitch | Using interface events to group files |
US8379832B1 (en) | 2007-05-03 | 2013-02-19 | Fonality, Inc. | Universal queuing for inbound communications |
US9021416B2 (en) * | 2007-05-16 | 2015-04-28 | Accenture Global Service Limited | Recommended application evaluation system |
WO2008146341A1 (ja) * | 2007-05-25 | 2008-12-04 | Fujitsu Limited | 業務フロー図生成プログラム、業務フロー図生成装置および業務フロー図生成方法 |
US8762880B2 (en) | 2007-06-29 | 2014-06-24 | Microsoft Corporation | Exposing non-authoring features through document status information in an out-space user interface |
US8484578B2 (en) | 2007-06-29 | 2013-07-09 | Microsoft Corporation | Communication between a document editor in-space user interface and a document editor out-space user interface |
US10097695B2 (en) | 2007-08-10 | 2018-10-09 | Fonality, Inc. | System and method for providing carrier-independent VoIP communication |
US7818324B1 (en) * | 2007-11-14 | 2010-10-19 | Google Inc. | Searching indexed and non-indexed resources for content |
US20090235267A1 (en) * | 2008-03-13 | 2009-09-17 | International Business Machines Corporation | Consolidated display of resource performance trends |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US9665850B2 (en) | 2008-06-20 | 2017-05-30 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
US20090327915A1 (en) * | 2008-06-27 | 2009-12-31 | International Business Machines Corporation | Automatic GUI Reconfiguration Based On User Preferences |
CN102113004B (zh) * | 2008-07-31 | 2014-03-12 | 惠普开发有限公司 | 采集因特网内容 |
US8700072B2 (en) | 2008-12-23 | 2014-04-15 | At&T Mobility Ii Llc | Scalable message fidelity |
US8799820B2 (en) * | 2008-12-23 | 2014-08-05 | At&T Mobility Ii Llc | Dynamically scaled messaging content |
US8719386B2 (en) | 2009-01-08 | 2014-05-06 | Fonality, Inc. | System and method for providing configuration synchronicity |
US9443244B2 (en) | 2009-03-16 | 2016-09-13 | Fonality, Inc. | System and method for utilizing customer data in a communication system |
US10318922B2 (en) | 2009-03-16 | 2019-06-11 | Fonality, Inc. | System and method for automatic insertion of call intelligence in an information system |
US8799353B2 (en) | 2009-03-30 | 2014-08-05 | Josef Larsson | Scope-based extensibility for control surfaces |
US8396964B2 (en) * | 2009-05-13 | 2013-03-12 | International Business Machines Corporation | Computer application analysis |
US8713094B2 (en) * | 2009-11-21 | 2014-04-29 | Michael-Anthony W. Lisboa | Event-associating software application for accessing digital media |
US20110289117A1 (en) * | 2010-05-19 | 2011-11-24 | International Business Machines Corporation | Systems and methods for user controllable, automated recording and searching of computer activity |
US8392452B2 (en) | 2010-09-03 | 2013-03-05 | Hulu Llc | Method and apparatus for callback supplementation of media program metadata |
US8957900B2 (en) * | 2010-12-13 | 2015-02-17 | Microsoft Corporation | Coordination of animations across multiple applications or processes |
US9110743B2 (en) * | 2010-12-21 | 2015-08-18 | Microsoft Technology Licensing, Llc | Extensible system action for sharing while remaining in context |
CN102024063A (zh) * | 2011-01-11 | 2011-04-20 | 宇龙计算机通信科技(深圳)有限公司 | 自动搜索方法和移动通信终端 |
US9256510B2 (en) | 2011-06-09 | 2016-02-09 | International Business Machines Corporation | Automatic rules based capturing of graphical objects for specified applications |
CN102880618A (zh) | 2011-07-15 | 2013-01-16 | 国际商业机器公司 | 用于网页文档搜索的方法及系统 |
CN102279786B (zh) * | 2011-08-25 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 一种监测应用程序有效访问量的方法及装置 |
US9069498B2 (en) | 2011-09-12 | 2015-06-30 | Microsoft Technology Licensing, Llc | Presenting devices as applications |
CN102508857B (zh) * | 2011-09-29 | 2013-10-02 | 暨南大学 | 一种基于事件关联的桌面云搜索方法 |
CN103513972B (zh) * | 2012-06-25 | 2017-06-27 | 联想(北京)有限公司 | 显示方法和电子设备 |
US9507513B2 (en) | 2012-08-17 | 2016-11-29 | Google Inc. | Displaced double tap gesture |
US8954467B2 (en) * | 2012-11-29 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for automatically associating communication streams with a file presented during a meeting |
FR2999975B1 (fr) | 2012-12-20 | 2015-02-27 | Michelin & Cie | Renfort metallique pret a l'emploi dont la surface est pourvue de nanoparticules de sulfure metallique |
KR20150075140A (ko) * | 2013-12-24 | 2015-07-03 | 삼성전자주식회사 | 전자 장치의 메시지 제어 방법 및 그 전자 장치 |
FR3022491B1 (fr) | 2014-06-18 | 2016-07-01 | Michelin & Cie | Bandage comportant un renfort, metallique ou metallise, graphenise |
US9672340B2 (en) * | 2014-08-07 | 2017-06-06 | Lenovo (Singapore) Pte. Ltd | Secure handwriting input for password fields |
US10049473B2 (en) * | 2015-04-27 | 2018-08-14 | Splunk Inc | Systems and methods for providing for third party visualizations |
US20170251072A1 (en) * | 2015-10-22 | 2017-08-31 | Symantec Corporation | System and method for annotating client-server transactions |
US10616280B2 (en) | 2017-10-25 | 2020-04-07 | Bank Of America Corporation | Network security system with cognitive engine for dynamic automation |
US10659482B2 (en) | 2017-10-25 | 2020-05-19 | Bank Of America Corporation | Robotic process automation resource insulation system |
US10437984B2 (en) | 2017-10-26 | 2019-10-08 | Bank Of America Corporation | Authentication protocol elevation triggering system |
US10503627B2 (en) | 2017-10-30 | 2019-12-10 | Bank Of America Corporation | Robotic process automation enabled file dissection for error diagnosis and correction |
US10686684B2 (en) | 2017-11-02 | 2020-06-16 | Bank Of America Corporation | Individual application flow isotope tagging within a network infrastructure |
US10575231B2 (en) | 2017-11-03 | 2020-02-25 | Bank Of America Corporation | System for connection channel adaption using robotic automation |
US10606687B2 (en) | 2017-12-04 | 2020-03-31 | Bank Of America Corporation | Process automation action repository and assembler |
CN109032907B (zh) * | 2018-07-19 | 2020-11-03 | 清华大学 | 面向设备应用的数据监控方法及系统 |
CN110765079B (zh) * | 2018-07-27 | 2022-09-20 | 国信优易数据股份有限公司 | 一种表格信息的搜索方法及装置 |
FR3105788A1 (fr) | 2019-12-27 | 2021-07-02 | L'oreal | Procede de preparation de particules enrobees d’oxyde de silicium par pyrolyse par projection de flamme |
FR3105787B1 (fr) | 2019-12-27 | 2022-03-25 | Oreal | Procede de preparation de particules d’oxyde de zinc enrobees par pyrolyse par projection de flamme |
FR3105789B1 (fr) | 2019-12-27 | 2024-01-12 | Oreal | Particules d’oxyde de metal enrobees d’oxyde de terre rare et son procede de preparation par pyrolyse par projection de flamme |
US11537363B2 (en) * | 2020-01-31 | 2022-12-27 | Salesforce.Com, Inc. | User interface migration using intermediate user interfaces |
FR3116434B1 (fr) | 2020-11-24 | 2022-12-02 | Oreal | Utilisation d’un oxyde métallique particulier pour la photoconversion de composés organiques sur les matières kératiniques |
CN112433698A (zh) * | 2020-11-30 | 2021-03-02 | 上海米哈游天命科技有限公司 | 一种资源展示方法、装置、电子设备及存储介质 |
FR3130563A1 (fr) | 2021-12-21 | 2023-06-23 | L'oreal | Particules colorantes d’oxydes et de sous-oxydes de metaux enrobees, et leur preparation par pyrolyse par projection de flamme |
FR3130789A1 (fr) | 2021-12-21 | 2023-06-23 | L'oreal | Particules de sous-oxydes de cerium enrobees et leur preparation par pyrolyse par projection de flamme |
FR3130566A1 (fr) | 2021-12-21 | 2023-06-23 | L'oreal | Particules d’oxydes de metaux et de phosphore enrobees, et leur preparation par pyrolyse par projection de flamme |
Family Cites Families (229)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US620900A (en) * | 1899-03-14 | engelsmann | ||
US4410957A (en) * | 1980-11-20 | 1983-10-18 | International Business Machines Corporation | Keystroke queueing system |
US6978277B2 (en) | 1989-10-26 | 2005-12-20 | Encyclopaedia Britannica, Inc. | Multimedia search system |
US5305205A (en) * | 1990-10-23 | 1994-04-19 | Weber Maria L | Computer-assisted transcription apparatus |
US5321838A (en) * | 1991-02-28 | 1994-06-14 | Hensley Billy W | Event capturing for computer software evaluation |
US5555346A (en) | 1991-10-04 | 1996-09-10 | Beyond Corporated | Event-driven rule-based messaging system |
US5280612A (en) | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
JPH06237300A (ja) | 1992-12-23 | 1994-08-23 | American Teleph & Telegr Co <Att> | 電気通信網内における位置に固有なメッセージサービス |
JP3147572B2 (ja) | 1993-03-22 | 2001-03-19 | 株式会社日立製作所 | プログラム生成方法 |
US5844553A (en) * | 1993-08-30 | 1998-12-01 | Hewlett-Packard Company | Mechanism to control and use window events among applications in concurrent computing |
US5623652A (en) | 1994-07-25 | 1997-04-22 | Apple Computer, Inc. | Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network |
US5592378A (en) | 1994-08-19 | 1997-01-07 | Andersen Consulting Llp | Computerized order entry system and method |
JP2626598B2 (ja) | 1994-11-25 | 1997-07-02 | 日本電気株式会社 | グラフィカルユーザインタフェースを有する対話システムの操作性評価装置 |
US5748954A (en) | 1995-06-05 | 1998-05-05 | Carnegie Mellon University | Method for searching a queued and ranked constructed catalog of files stored on a network |
US5701469A (en) | 1995-06-07 | 1997-12-23 | Microsoft Corporation | Method and system for generating accurate search results using a content-index |
US5907836A (en) | 1995-07-31 | 1999-05-25 | Kabushiki Kaisha Toshiba | Information filtering apparatus for selecting predetermined article from plural articles to present selected article to user, and method therefore |
US6477585B1 (en) | 1995-08-18 | 2002-11-05 | International Business Machines Corporation | Filter mechanism for an event management service |
US5881315A (en) | 1995-08-18 | 1999-03-09 | International Business Machines Corporation | Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive |
US5742816A (en) | 1995-09-15 | 1998-04-21 | Infonautics Corporation | Method and apparatus for identifying textual documents and multi-mediafiles corresponding to a search topic |
US6115802A (en) | 1995-10-13 | 2000-09-05 | Sun Mircrosystems, Inc. | Efficient hash table for use in multi-threaded environments |
US5781192A (en) * | 1996-01-16 | 1998-07-14 | Canon Information Systems, Inc. | Data transfer system |
US5964839A (en) | 1996-03-29 | 1999-10-12 | At&T Corp | System and method for monitoring information flow and performing data collection |
US5845300A (en) | 1996-06-05 | 1998-12-01 | Microsoft Corporation | Method and apparatus for suggesting completions for a partially entered data item based on previously-entered, associated data items |
US6581056B1 (en) | 1996-06-27 | 2003-06-17 | Xerox Corporation | Information retrieval system providing secondary content analysis on collections of information objects |
US5961610A (en) | 1996-08-13 | 1999-10-05 | General Electric Company | Systems, methods and apparatus for generating and controlling display of medical images |
GB2331166B (en) | 1997-11-06 | 2002-09-11 | Ibm | Database search engine |
US6199073B1 (en) | 1997-04-21 | 2001-03-06 | Ricoh Company, Ltd. | Automatic archiving of documents during their transfer between a peripheral device and a processing device |
JP3008872B2 (ja) | 1997-01-08 | 2000-02-14 | 日本電気株式会社 | Guiシステム自動操作装置および操作マクロ実行装置 |
US5872976A (en) | 1997-04-01 | 1999-02-16 | Landmark Systems Corporation | Client-based system for monitoring the performance of application programs |
US6006222A (en) | 1997-04-25 | 1999-12-21 | Culliss; Gary | Method for organizing information |
US6282548B1 (en) | 1997-06-21 | 2001-08-28 | Alexa Internet | Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata |
US6353929B1 (en) | 1997-06-23 | 2002-03-05 | One River Worldtrek, Inc. | Cooperative system for measuring electronic media |
US5893093A (en) | 1997-07-02 | 1999-04-06 | The Sabre Group, Inc. | Information search and retrieval with geographical coordinates |
US6078916A (en) | 1997-08-01 | 2000-06-20 | Culliss; Gary | Method for organizing information |
US6182068B1 (en) | 1997-08-01 | 2001-01-30 | Ask Jeeves, Inc. | Personalized search methods |
US6023977A (en) * | 1997-08-01 | 2000-02-15 | Acuson Corporation | Ultrasonic imaging aberration correction system and method |
US6014665A (en) | 1997-08-01 | 2000-01-11 | Culliss; Gary | Method for organizing information |
US6865715B2 (en) | 1997-09-08 | 2005-03-08 | Fujitsu Limited | Statistical method for extracting, and displaying keywords in forum/message board documents |
US5956722A (en) | 1997-09-23 | 1999-09-21 | At&T Corp. | Method for effective indexing of partially dynamic documents |
US6073130A (en) | 1997-09-23 | 2000-06-06 | At&T Corp. | Method for improving the results of a search in a structured database |
US6779030B1 (en) | 1997-10-06 | 2004-08-17 | Worldcom, Inc. | Intelligent network |
US5970249A (en) | 1997-10-06 | 1999-10-19 | Sun Microsystems, Inc. | Method and apparatus for performing byte-code optimization during pauses |
US6236768B1 (en) | 1997-10-14 | 2001-05-22 | Massachusetts Institute Of Technology | Method and apparatus for automated, context-dependent retrieval of information |
US6061678A (en) | 1997-10-31 | 2000-05-09 | Oracle Corporation | Approach for managing access to large objects in database systems using large object indexes |
US6269369B1 (en) | 1997-11-02 | 2001-07-31 | Amazon.Com Holdings, Inc. | Networked personal contact manager |
SG118132A1 (en) | 1997-11-13 | 2006-01-27 | Hyperspace Communications Inc | File transfer system |
US6236978B1 (en) | 1997-11-14 | 2001-05-22 | New York University | System and method for dynamic profiling of users in one-to-one applications |
US6055579A (en) | 1997-11-17 | 2000-04-25 | Silicon Graphics, Inc. | Distributed control and synchronization of multiple data processors using flexible command queues |
US6289342B1 (en) | 1998-01-05 | 2001-09-11 | Nec Research Institute, Inc. | Autonomous citation indexing and literature browsing using citation context |
US7233948B1 (en) | 1998-03-16 | 2007-06-19 | Intertrust Technologies Corp. | Methods and apparatus for persistent control and protection of content |
US7372976B2 (en) | 1998-04-16 | 2008-05-13 | Digimarc Corporation | Content indexing and searching using content identifiers and associated metadata |
US6347374B1 (en) | 1998-06-05 | 2002-02-12 | Intrusion.Com, Inc. | Event detection |
US6263348B1 (en) | 1998-07-01 | 2001-07-17 | Serena Software International, Inc. | Method and apparatus for identifying the existence of differences between two files |
US6604236B1 (en) | 1998-06-30 | 2003-08-05 | Iora, Ltd. | System and method for generating file updates for files stored on read-only media |
US6275820B1 (en) | 1998-07-16 | 2001-08-14 | Perot Systems Corporation | System and method for integrating search results from heterogeneous information resources |
US6226630B1 (en) | 1998-07-22 | 2001-05-01 | Compaq Computer Corporation | Method and apparatus for filtering incoming information using a search engine and stored queries defining user folders |
US6119147A (en) | 1998-07-28 | 2000-09-12 | Fuji Xerox Co., Ltd. | Method and system for computer-mediated, multi-modal, asynchronous meetings in a virtual space |
RU2138076C1 (ru) | 1998-09-14 | 1999-09-20 | Закрытое акционерное общество "МедиаЛингва" | Система поиска информации в компьютерной сети |
US7256770B2 (en) * | 1998-09-14 | 2007-08-14 | Microsoft Corporation | Method for displaying information responsive to sensing a physical presence proximate to a computer input device |
IL128935A (en) | 1998-09-18 | 2003-10-31 | Direct & Clear Inc | Communication method and system utilizing a specific communication code |
US6275957B1 (en) | 1998-09-21 | 2001-08-14 | Microsoft Corporation | Using query language for provider and subscriber registrations |
US6363373B1 (en) | 1998-10-01 | 2002-03-26 | Microsoft Corporation | Method and apparatus for concept searching using a Boolean or keyword search engine |
US6380924B1 (en) * | 1998-10-22 | 2002-04-30 | Young Yee | Mouse/keyboard capture recorder (MCR) apparatus and methodology |
US6446076B1 (en) | 1998-11-12 | 2002-09-03 | Accenture Llp. | Voice interactive web-based agent system responsive to a user location for prioritizing and formatting information |
US20030097361A1 (en) | 1998-12-07 | 2003-05-22 | Dinh Truong T | Message center based desktop systems |
US6826553B1 (en) | 1998-12-18 | 2004-11-30 | Knowmadic, Inc. | System for providing database functions for multiple internet sources |
US6349299B1 (en) | 1998-12-24 | 2002-02-19 | International Business Machines Corporation | System and method for storing electronic contact information into an electronic address book |
US6199067B1 (en) | 1999-01-20 | 2001-03-06 | Mightiest Logicon Unisearch, Inc. | System and method for generating personalized user profiles and for utilizing the generated user profiles to perform adaptive internet searches |
US6341371B1 (en) | 1999-02-23 | 2002-01-22 | International Business Machines Corporation | System and method for optimizing program execution in a computer system |
JP4098435B2 (ja) | 1999-03-12 | 2008-06-11 | 富士通株式会社 | 情報管理装置及びデータ生成方法並びに情報管理プログラムを格納したコンピュータ読取り可能な記録媒体 |
JP2003504899A (ja) * | 1999-03-15 | 2003-02-04 | インデックス システムズ インコーポレイテッド | ミニガイド実装のためのシステムと方法 |
US6401239B1 (en) | 1999-03-22 | 2002-06-04 | B.I.S. Advanced Software Systems Ltd. | System and method for quick downloading of electronic files |
US6490577B1 (en) | 1999-04-01 | 2002-12-03 | Polyvista, Inc. | Search engine with user activity memory |
US6175830B1 (en) | 1999-05-20 | 2001-01-16 | Evresearch, Ltd. | Information management, retrieval and display system and associated method |
US7225182B2 (en) | 1999-05-28 | 2007-05-29 | Overture Services, Inc. | Recommending search terms using collaborative filtering and web spidering |
US6467052B1 (en) | 1999-06-03 | 2002-10-15 | Microsoft Corporation | Method and apparatus for analyzing performance of data processing system |
US6592627B1 (en) | 1999-06-10 | 2003-07-15 | International Business Machines Corporation | System and method for organizing repositories of semi-structured documents such as email |
US6560655B1 (en) | 1999-06-22 | 2003-05-06 | Microsoft Corporation | Synchronization manager for standardized synchronization of separate programs |
US6873982B1 (en) | 1999-07-16 | 2005-03-29 | International Business Machines Corporation | Ordering of database search results based on user feedback |
JP3791879B2 (ja) | 1999-07-19 | 2006-06-28 | 富士通株式会社 | 文書要約装置およびその方法 |
US6853950B1 (en) | 1999-07-20 | 2005-02-08 | Newsedge Corporation | System for determining changes in the relative interest of subjects |
US6631345B1 (en) * | 1999-08-12 | 2003-10-07 | International Business Machines Corporation | Recording, storing, and emulating user interaction events |
US6532023B1 (en) | 1999-08-12 | 2003-03-11 | International Business Machines Corporation | Recording selected applet events of a user interaction sequence |
US6513036B2 (en) | 1999-08-13 | 2003-01-28 | Mindpass A/S | Method and apparatus for searching and presenting search result from one or more information sources based on context representations selected from the group of other users |
US6321228B1 (en) | 1999-08-31 | 2001-11-20 | Powercast Media, Inc. | Internet search system for retrieving selected results from a previous search |
US6681247B1 (en) | 1999-10-18 | 2004-01-20 | Hrl Laboratories, Llc | Collaborator discovery method and system |
US6526405B1 (en) | 1999-12-17 | 2003-02-25 | Microsoft Corporation | Determining similarity between event types in sequences |
US6480837B1 (en) | 1999-12-16 | 2002-11-12 | International Business Machines Corporation | Method, system, and program for ordering search results using a popularity weighting |
US6981040B1 (en) | 1999-12-28 | 2005-12-27 | Utopy, Inc. | Automatic, personalized online information and product services |
US6957229B1 (en) | 2000-01-10 | 2005-10-18 | Matthew Graham Dyor | System and method for managing personal information |
US6799199B1 (en) | 2000-01-11 | 2004-09-28 | The Relegence Corporation | Media monitor system |
US6834308B1 (en) | 2000-02-17 | 2004-12-21 | Audible Magic Corporation | Method and apparatus for identifying media content presented on a media playing device |
US6877027B1 (en) | 2000-02-19 | 2005-04-05 | Hewlett-Packard Development Company, L.P. | System and method for providing synchronization verification of multiple applications across remote systems |
CN1310395A (zh) * | 2000-02-24 | 2001-08-29 | 英业达股份有限公司 | 登记库的动态监控方法 |
US6691175B1 (en) | 2000-02-25 | 2004-02-10 | Sun Microsystems, Inc. | Method and apparatus for managing data propagation between software modules |
US6901378B1 (en) | 2000-03-02 | 2005-05-31 | Corbis Corporation | Method and system for automatically displaying an image and a product in a page based on contextual interaction and metadata |
AUPQ599700A0 (en) | 2000-03-03 | 2000-03-23 | Super Internet Site System Pty Ltd | On-line geographical directory |
US20020049608A1 (en) | 2000-03-03 | 2002-04-25 | Hartsell Neal D. | Systems and methods for providing differentiated business services in information management environments |
US6728763B1 (en) | 2000-03-09 | 2004-04-27 | Ben W. Chen | Adaptive media streaming server for playing live and streaming media content on demand through web client's browser with no additional software or plug-ins |
US6665715B1 (en) | 2000-04-03 | 2003-12-16 | Infosplit Inc | Method and systems for locating geographical locations of online users |
US6684250B2 (en) | 2000-04-03 | 2004-01-27 | Quova, Inc. | Method and apparatus for estimating a geographic location of a networked entity |
GB2361555A (en) | 2000-04-17 | 2001-10-24 | Apama Inc | Method of evaluating queries against received event information |
US6564213B1 (en) | 2000-04-18 | 2003-05-13 | Amazon.Com, Inc. | Search query autocompletion |
WO2001084302A2 (en) | 2000-05-02 | 2001-11-08 | Sun Microsystems, Inc. | Event service method and system |
US6697838B1 (en) | 2000-05-03 | 2004-02-24 | Software Leader, Llc | Method and system for annotating information resources in connection with browsing, in both connected and disconnected states |
US6879691B1 (en) | 2000-05-12 | 2005-04-12 | Bluetie, Inc. | Information autocompletion system |
GB0012354D0 (en) | 2000-05-22 | 2000-07-12 | Nokia Networks Oy | A method and system for providing location dependent information |
KR100804908B1 (ko) | 2000-05-30 | 2008-02-20 | 코키 우치야마 | 지식 서비스를 제공하는 분산 모니터링 시스템 |
US6711572B2 (en) | 2000-06-14 | 2004-03-23 | Xosoft Inc. | File system for distributing content in a data network and related methods |
JP2004531780A (ja) | 2000-06-22 | 2004-10-14 | マイクロソフト コーポレーション | 分散型コンピューティングサービスプラットフォーム |
GB0016974D0 (en) | 2000-07-12 | 2000-08-30 | Univ Salford The | Document retrieval system |
US7035852B2 (en) | 2000-07-21 | 2006-04-25 | International Business Machines Corporation | Implementing a message queuing interface (MQI) indexed queue support that adds a key to the index on put commit |
US7080073B1 (en) | 2000-08-18 | 2006-07-18 | Firstrain, Inc. | Method and apparatus for focused crawling |
US7146404B2 (en) | 2000-08-22 | 2006-12-05 | Colloquis, Inc. | Method for performing authenticated access to a service on behalf of a user |
US6907577B2 (en) * | 2000-09-06 | 2005-06-14 | Trace Tervo | System and method for accessing screen fields, functions and programs using a simple single key stroke |
US6934740B1 (en) | 2000-09-19 | 2005-08-23 | 3Com Corporation | Method and apparatus for sharing common data objects among multiple applications in a client device |
US6614729B2 (en) | 2000-09-26 | 2003-09-02 | David D. Griner | System and method of creating digital recordings of live performances |
US20020042789A1 (en) | 2000-10-04 | 2002-04-11 | Zbigniew Michalewicz | Internet search engine with interactive search criteria construction |
US7680672B2 (en) | 2000-10-20 | 2010-03-16 | Adobe Systems, Incorporated | Event collection architecture |
US7376640B1 (en) | 2000-11-14 | 2008-05-20 | At&T Delaware Intellectual Property, Inc. | Method and system for searching an information retrieval system according to user-specified location information |
US20020073076A1 (en) | 2000-12-11 | 2002-06-13 | Yongjie Xu | System and method for enabling off-line database functionality |
US7136881B2 (en) | 2000-12-15 | 2006-11-14 | International Business Machines Corporation | Method and system for processing directory events |
US7143088B2 (en) | 2000-12-15 | 2006-11-28 | The Johns Hopkins University | Dynamic-content web crawling through traffic monitoring |
US7440943B2 (en) | 2000-12-22 | 2008-10-21 | Xerox Corporation | Recommender system and method |
US6985913B2 (en) | 2000-12-28 | 2006-01-10 | Casio Computer Co. Ltd. | Electronic book data delivery apparatus, electronic book device and recording medium |
US6983310B2 (en) | 2000-12-29 | 2006-01-03 | International Business Machines Corporation | System and method for providing search capabilties on a wireless device |
US6772143B2 (en) | 2001-01-02 | 2004-08-03 | Sprint Spectrum L.P. | Method and system for managing messages |
US6766475B2 (en) * | 2001-01-04 | 2004-07-20 | International Business Machines Corporation | Method and apparatus for exercising an unknown program with a graphical user interface |
US20020091972A1 (en) | 2001-01-05 | 2002-07-11 | Harris David P. | Method for predicting machine or process faults and automated system for implementing same |
US6714939B2 (en) | 2001-01-08 | 2004-03-30 | Softface, Inc. | Creation of structured data from plain text |
US20020091568A1 (en) | 2001-01-10 | 2002-07-11 | International Business Machines Corporation | Personalized profile based advertising system and method with integration of physical location using GPS |
US6658423B1 (en) | 2001-01-24 | 2003-12-02 | Google, Inc. | Detecting duplicate and near-duplicate files |
US7168093B2 (en) | 2001-01-25 | 2007-01-23 | Solutionary, Inc. | Method and apparatus for verifying the integrity and security of computer networks and implementation of counter measures |
WO2002073413A2 (en) | 2001-03-12 | 2002-09-19 | Nice Systems Limited | System and method for capturing, analyzing and recording screen events |
US6850934B2 (en) | 2001-03-26 | 2005-02-01 | International Business Machines Corporation | Adaptive search engine query |
US6694353B2 (en) | 2001-03-28 | 2004-02-17 | Good Contacts.Com | Method and system for automatically updating electronic mail address information within an electronic mail address database |
WO2002079993A1 (en) | 2001-03-29 | 2002-10-10 | Reallegal.Com | Methods for synchronizing on-line and off-line transcript projects |
US7856420B2 (en) | 2001-04-19 | 2010-12-21 | Hewlett-Packard Development Company, L.P. | Zero latency enterprise enriched publish/subscribe |
US20020184406A1 (en) | 2001-05-29 | 2002-12-05 | International Business Machines Corporation | Method and system for handling window-based graphical events |
US7293014B2 (en) | 2001-06-18 | 2007-11-06 | Siebel Systems, Inc. | System and method to enable searching across multiple databases and files using a single search |
EP1410258A4 (en) | 2001-06-22 | 2007-07-11 | Inc Nervana | SYSTEM AND METHOD FOR RECALLING, MANAGING, DELIVERING AND PRESENTING KNOWLEDGE |
US20040230572A1 (en) | 2001-06-22 | 2004-11-18 | Nosa Omoigui | System and method for semantic knowledge retrieval, management, capture, sharing, discovery, delivery and presentation |
US6802055B2 (en) * | 2001-06-27 | 2004-10-05 | Microsoft Corporation | Capturing graphics primitives associated with any display object rendered to a graphical user interface |
US20030028506A1 (en) | 2001-06-29 | 2003-02-06 | Lin Yu | Deferred index building systems, methods and computer program products for storing temporally spaced apart bursts of data records in a database |
KR20040024864A (ko) | 2001-07-05 | 2004-03-22 | 컴퓨터 어소시에이츠 싱크, 인코포레이티드 | 비지니스 이벤트를 생성하고 전파하기 위한 시스템 및 방법 |
US7546602B2 (en) * | 2001-07-10 | 2009-06-09 | Microsoft Corporation | Application program interface for network software platform |
US20030018521A1 (en) | 2001-07-17 | 2003-01-23 | International Business Machines Corporation | Advertising based upon events reported from a GPS enabled event report system |
US8285701B2 (en) | 2001-08-03 | 2012-10-09 | Comcast Ip Holdings I, Llc | Video and digital multimedia aggregator remote content crawler |
US6820075B2 (en) | 2001-08-13 | 2004-11-16 | Xerox Corporation | Document-centric system with auto-completion |
US7082365B2 (en) | 2001-08-16 | 2006-07-25 | Networks In Motion, Inc. | Point of interest spatial rating search method and system |
JP2003067306A (ja) | 2001-08-24 | 2003-03-07 | Hitachi Ltd | 電子メールの蓄積管理方法 |
US7076483B2 (en) | 2001-08-27 | 2006-07-11 | Xyleme Sa | Ranking nodes in a graph |
US7265858B2 (en) | 2001-10-03 | 2007-09-04 | Kabushiki Kaisha Toshiba | Method and system to access address books |
US7328242B1 (en) | 2001-11-09 | 2008-02-05 | Mccarthy Software, Inc. | Using multiple simultaneous threads of communication |
EP1459213B1 (en) | 2001-11-15 | 2017-05-10 | Good Technology Holdings Limited | System and methods for asychronous synchronization |
US7363590B2 (en) | 2001-11-27 | 2008-04-22 | International Business Machines Corporation | Calendar bar interface for electronic mail interaction |
US7043362B2 (en) | 2001-12-21 | 2006-05-09 | Garmin Ltd. | PDA with integrated address book and electronic map waypoints |
US20030123442A1 (en) | 2001-12-27 | 2003-07-03 | Drucker Benjamin T. | Distributed usage metering of multiple networked devices |
US6947924B2 (en) | 2002-01-07 | 2005-09-20 | International Business Machines Corporation | Group based search engine generating search results ranking based on at least one nomination previously made by member of the user group where nomination system is independent from visitation system |
US7249158B2 (en) | 2002-01-28 | 2007-07-24 | Canon Kabushiki Kaisha | Address information editing apparatus and method, program, and storage medium |
CN1186737C (zh) | 2002-02-05 | 2005-01-26 | 国际商业机器公司 | 对尚未访问的网页进行基于路径的排队的方法和系统 |
US20030154071A1 (en) | 2002-02-11 | 2003-08-14 | Shreve Gregory M. | Process for the document management and computer-assisted translation of documents utilizing document corpora constructed by intelligent agents |
US7343365B2 (en) | 2002-02-20 | 2008-03-11 | Microsoft Corporation | Computer system architecture for automatic context associations |
US7062592B2 (en) | 2002-03-25 | 2006-06-13 | Intel Corporation | Selecting a queue for service in a queuing system |
US7016919B2 (en) | 2002-03-29 | 2006-03-21 | Agilent Technologies, Inc. | Enterprise framework and applications supporting meta-data and data traceability requirements |
US7096255B2 (en) | 2002-05-21 | 2006-08-22 | Bellsouth Intellectual Property Corp. | System and method for providing a roster list of temporary contacts having expiration periods designated by a user in an instant messaging environment |
US20040203642A1 (en) | 2002-05-31 | 2004-10-14 | Peter Zatloukal | Population of directory search results into a wireless mobile phone |
US6968509B1 (en) * | 2002-06-05 | 2005-11-22 | Microsoft Corporation | Recording of user-driven events within a computer application |
US7016914B2 (en) | 2002-06-05 | 2006-03-21 | Microsoft Corporation | Performant and scalable merge strategy for text indexing |
US20030233366A1 (en) | 2002-06-17 | 2003-12-18 | Aspetuck Systems Inc. | Database monitoring system with formatted report information delivery |
US20040002959A1 (en) | 2002-06-26 | 2004-01-01 | International Business Machines Corporation | Method and system for providing context sensitive support for data processing device user search requests |
US20040003038A1 (en) | 2002-06-27 | 2004-01-01 | Microsoft Corporation | Live content processing for online presentation |
JP4452012B2 (ja) | 2002-07-04 | 2010-04-21 | ヒューレット・パッカード・カンパニー | 文書の特有性評価方法 |
US20040031027A1 (en) | 2002-08-08 | 2004-02-12 | Hiltgen Daniel K. | System for updating diverse file versions |
US7099887B2 (en) | 2002-08-08 | 2006-08-29 | International Business Machines Corporation | Hierarchical environments supporting relational schemas |
US20070022155A1 (en) | 2002-08-22 | 2007-01-25 | Owens David H | Method and system for integrating enterprise software applications with desktop software applications |
EP1567928A4 (en) | 2002-09-03 | 2008-04-30 | X1 Technologies Llc | DEVICES AND METHOD FOR FINDING DATA |
US7657598B2 (en) | 2002-09-17 | 2010-02-02 | At&T Intellectual Property I, L.P. | Address book for integrating email and instant messaging (IM) |
US7933957B2 (en) | 2002-09-17 | 2011-04-26 | At&T Intellectual Property Ii, L.P. | Tracking email and instant messaging (IM) thread history |
WO2004027576A2 (en) | 2002-09-18 | 2004-04-01 | Netezza Corporation | Asymmetric data streaming architecture having autonomous and asynchronous job processing unit |
US20040064447A1 (en) | 2002-09-27 | 2004-04-01 | Simske Steven J. | System and method for management of synonymic searching |
US7177925B2 (en) | 2002-09-27 | 2007-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Event management system |
US7254573B2 (en) | 2002-10-02 | 2007-08-07 | Burke Thomas R | System and method for identifying alternate contact information in a database related to entity, query by identifying contact information of a different type than was in query which is related to the same entity |
US20040093317A1 (en) | 2002-11-07 | 2004-05-13 | Swan Joseph G. | Automated contact information sharing |
US7360096B2 (en) | 2002-11-20 | 2008-04-15 | Microsoft Corporation | Securely processing client credentials used for Web-based access to resources |
GB0228447D0 (en) | 2002-12-06 | 2003-01-08 | Nicholls Charles M | System for detecting and interpreting transactions events or changes in computer systems |
US20040133560A1 (en) | 2003-01-07 | 2004-07-08 | Simske Steven J. | Methods and systems for organizing electronic documents |
US20040187075A1 (en) | 2003-01-08 | 2004-09-23 | Maxham Jason G. | Document management apparatus, system and method |
TWI235333B (en) | 2003-02-11 | 2005-07-01 | Academia Sinica | Real-time screen recording system |
US20040193596A1 (en) | 2003-02-21 | 2004-09-30 | Rudy Defelice | Multiparameter indexing and searching for documents |
US7213235B2 (en) | 2003-02-21 | 2007-05-01 | Sap Ag | Method for using a business model user interface |
US7539699B2 (en) | 2003-03-21 | 2009-05-26 | Yahoo! Inc. | Apparatus, system and method for use in generating and maintaining an electronic address book |
US7188316B2 (en) | 2003-03-24 | 2007-03-06 | Microsoft Corporation | System and method for viewing and editing multi-value properties |
US7930301B2 (en) | 2003-03-31 | 2011-04-19 | Microsoft Corporation | System and method for searching computer files and returning identified files and associated files |
US7467390B2 (en) | 2003-04-01 | 2008-12-16 | International Business Machines Corporation | Enhanced staged event-driven architecture |
US7562367B1 (en) | 2003-04-11 | 2009-07-14 | Marvell Israel (M.I.S.L.) Ltd. | Sorted-tree-based event queue for discrete event simulators |
US7480716B2 (en) | 2003-04-28 | 2009-01-20 | International Business Machines Corporation | Non-invasive collection of data |
US7412491B2 (en) | 2003-04-30 | 2008-08-12 | International Business Machines Corporation | Method and apparatus for enhancing instant messaging systems |
US20040235520A1 (en) | 2003-05-20 | 2004-11-25 | Cadiz Jonathan Jay | Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer |
US7694223B2 (en) | 2003-06-04 | 2010-04-06 | Sony Computer Entertainment Inc. | Methods and systems for recording user actions in computer programs |
US7668888B2 (en) | 2003-06-05 | 2010-02-23 | Sap Ag | Converting object structures for search engines |
US8447775B2 (en) | 2003-06-13 | 2013-05-21 | Microsoft Corporation | Database query user interface to assist in efficient and accurate query construction |
US20040255301A1 (en) | 2003-06-13 | 2004-12-16 | Andrzej Turski | Context association schema for computer system architecture |
US7337448B1 (en) | 2003-06-25 | 2008-02-26 | Microsoft Corporation | Address book clearinghouse interface system and method |
US7162473B2 (en) | 2003-06-26 | 2007-01-09 | Microsoft Corporation | Method and system for usage analyzer that determines user accessed sources, indexes data subsets, and associated metadata, processing implicit queries based on potential interest to users |
US7577939B2 (en) | 2003-06-27 | 2009-08-18 | International Business Machines Corporation | Method, system and program product for sharing source code over a network |
US7565425B2 (en) | 2003-07-02 | 2009-07-21 | Amazon Technologies, Inc. | Server architecture and methods for persistently storing and serving event data |
US7890961B2 (en) | 2003-08-29 | 2011-02-15 | Yahoo! Inc. | Method and apparatus for providing desktop application functionality in a client/server architecture |
US7330536B2 (en) | 2003-09-05 | 2008-02-12 | Emc Corporation | Message indexing and archiving |
US20050060719A1 (en) * | 2003-09-12 | 2005-03-17 | Useractive, Inc. | Capturing and processing user events on a computer system for recording and playback |
US7454417B2 (en) | 2003-09-12 | 2008-11-18 | Google Inc. | Methods and systems for improving a search ranking using population information |
US7487235B2 (en) | 2003-09-24 | 2009-02-03 | Dell Products L.P. | Dynamically varying a raid cache policy in order to optimize throughput |
US7499974B2 (en) | 2003-09-30 | 2009-03-03 | International Business Machines Corporation | Instant message user management |
US7457872B2 (en) | 2003-10-15 | 2008-11-25 | Microsoft Corporation | On-line service/application monitoring and reporting system |
US8150923B2 (en) | 2003-10-23 | 2012-04-03 | Microsoft Corporation | Schema hierarchy for electronic messages |
US7240049B2 (en) | 2003-11-12 | 2007-07-03 | Yahoo! Inc. | Systems and methods for search query processing using trend analysis |
US20050114487A1 (en) | 2003-11-12 | 2005-05-26 | Jin Peng | Notification framework and method of distributing notification |
US7752210B2 (en) | 2003-11-13 | 2010-07-06 | Yahoo! Inc. | Method of determining geographical location from IP address information |
US7475406B2 (en) | 2003-12-15 | 2009-01-06 | International Business Machines Corporation | Event notification structure for dynamically aggregated logical components |
US7383307B2 (en) | 2004-01-07 | 2008-06-03 | International Business Machines Corporation | Instant messaging windowing for topic threads |
US7194451B2 (en) | 2004-02-26 | 2007-03-20 | Microsoft Corporation | Database monitoring system |
US7257822B1 (en) | 2004-04-13 | 2007-08-14 | Sun Microsystems Inc | Method and system for address book application programming interface |
US7543232B2 (en) | 2004-10-19 | 2009-06-02 | International Business Machines Corporation | Intelligent web based help system |
US7743048B2 (en) | 2004-10-29 | 2010-06-22 | Microsoft Corporation | System and method for providing a geographic search function |
US20060190470A1 (en) | 2005-02-18 | 2006-08-24 | Lemnotis Peter A | Download, storage, and retrieval device |
US7447706B2 (en) | 2005-04-01 | 2008-11-04 | Microsoft Corporation | Method and system for generating an auto-completion list for a cascading style sheet selector |
US20060288075A1 (en) | 2005-06-15 | 2006-12-21 | Chao-Hung Wu | Electronic mailbox address book management system and method for the same |
US20070016556A1 (en) | 2005-07-13 | 2007-01-18 | Ann Seong W | Destination searching system and method |
ATE548842T1 (de) | 2005-07-27 | 2012-03-15 | Sap Ag | Serverrechner, client-einrichtung und webdienstimplementiertes verfahren zur datenverarbeitung |
-
2004
- 2004-03-31 US US10/814,773 patent/US7941439B1/en active Active
-
2005
- 2005-02-04 KR KR1020067019507A patent/KR100952379B1/ko active IP Right Grant
- 2005-02-04 CA CA2560747A patent/CA2560747C/en active Active
- 2005-02-04 WO PCT/US2005/003386 patent/WO2005103900A1/en active Application Filing
- 2005-02-04 EP EP05712722.7A patent/EP1745379B1/en active Active
- 2005-02-04 US US11/051,317 patent/US7680809B2/en active Active
- 2005-02-04 CN CNB2005800093359A patent/CN100428182C/zh active Active
- 2005-02-04 ES ES05712722T patent/ES2421141T3/es active Active
- 2005-03-30 CN CN2005800093804A patent/CN101111836B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US7941439B1 (en) | 2011-05-10 |
CA2560747A1 (en) | 2005-11-03 |
CN1934539A (zh) | 2007-03-21 |
KR20060132946A (ko) | 2006-12-22 |
US7680809B2 (en) | 2010-03-16 |
CA2560747C (en) | 2012-06-26 |
WO2005103900A8 (en) | 2008-10-09 |
US20050246588A1 (en) | 2005-11-03 |
CN101111836A (zh) | 2008-01-23 |
WO2005103900A1 (en) | 2005-11-03 |
CN100428182C (zh) | 2008-10-22 |
EP1745379A1 (en) | 2007-01-24 |
CN101111836B (zh) | 2012-07-04 |
KR100952379B1 (ko) | 2010-04-14 |
EP1745379B1 (en) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2421141T3 (es) | Componente de captura basado en perfiles para controlar los eventos en aplicaciones | |
JP4812747B2 (ja) | 情報を取り込み抽出する方法及びシステム | |
US10180980B2 (en) | Methods and systems for eliminating duplicate events | |
AU2005231112B2 (en) | Methods and systems for structuring event data in a database for location and retrieval | |
US7333976B1 (en) | Methods and systems for processing contact information | |
US9672232B1 (en) | Systems and methods for selectively storing event data | |
JP6238331B2 (ja) | ユーザアクションに基づく演算デバイスへの実行可能コンテンツの提供 | |
US7707142B1 (en) | Methods and systems for performing an offline search | |
US20050234929A1 (en) | Methods and systems for interfacing applications with a search engine | |
US20050223061A1 (en) | Methods and systems for processing email messages | |
US7412708B1 (en) | Methods and systems for capturing information | |
US7680888B1 (en) | Methods and systems for processing instant messenger messages | |
US7853606B1 (en) | Alternate methods of displaying search results | |
CN110709870B (zh) | 智能成员管理 | |
US7581227B1 (en) | Systems and methods of synchronizing indexes | |
US9959300B1 (en) | Systems and methods for article location and retrieval | |
Laadan et al. | Capture: A desktop display-centric text recorder |