MX2013001159A - Instrumentacion de aplicacion en la web en sesion cruzada altamente confiable. - Google Patents

Instrumentacion de aplicacion en la web en sesion cruzada altamente confiable.

Info

Publication number
MX2013001159A
MX2013001159A MX2013001159A MX2013001159A MX2013001159A MX 2013001159 A MX2013001159 A MX 2013001159A MX 2013001159 A MX2013001159 A MX 2013001159A MX 2013001159 A MX2013001159 A MX 2013001159A MX 2013001159 A MX2013001159 A MX 2013001159A
Authority
MX
Mexico
Prior art keywords
instrumentation
client
user
server
elements
Prior art date
Application number
MX2013001159A
Other languages
English (en)
Inventor
Tomi J Blinnikka
Original Assignee
Apollo Group Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apollo Group Inc filed Critical Apollo Group Inc
Publication of MX2013001159A publication Critical patent/MX2013001159A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Se ofrece un mecanismo de almacenamiento en memoria caché confiable para el almacenamiento en memoria caché por el cliente de los datos que captura la interacción del usuario con servicio remoto, en donde los usuarios interactúan con el servicio remoto a través de un dispositivo de computación. Los elementos de instrumentación se almacenan en memoria caché en la cola fuera de línea por parte del cliente. Dentro de la cola por parte del cliente, los elementos de instrumentación reunidos sobreviven entre sesiones de usuario con el servicio remoto. Debido a que el cliente no pierda los elementos de instrumentación que se reunieron en una sesión cuando termina la sesión, los elementos de instrumentación no necesitan todos ser transferidos al servidor en o antes de terminar la sesión en la cual se recopilan los elementos de instrumentación. En su lugar, los elementos de instrumentación pueden ser enviados a al servidor toda vez que tenga menos impacto sobre la experiencia del usuario, tal como cuando está inactivo el dispositivo de computación.

Description

INSTRUMENTACIÓN DE APLICACIÓN EN LA WEB EN SESIÓN CRUZADA ALTAMENTE CONFIABLE CAMPO DE LA INVENCIÓN La presente invención se refiere al manejo de la recopilación de datos de seguimiento de usuario que representan interacciones del usuario con el contenido web en un dispositivo cliente. Más específicamente, la presente invención se refiere al almacenamiento en caché localmente de datos de rastreo de usuarios en el dispositivo cliente y transmitir selectivamente los datos almacenados en memoria caché .
ANTECEDENTES Cada vez más, las personas están obteniendo servicios de una forma u otra más de las redes. Por ejemplo, los usuarios de dispositivos cliente pueden obtener noticias, televisión, información del tiempo, e incluso educación universitaria a través de una red de servicios de computadoras a ubicados distancia. Dichos dispositivos del cliente pueden tomar muchas formas, incluyendo pero no limitado a los teléfonos móviles, asistentes personales digitales, computadoras portátiles y computadoras de escritorio .
Por una variedad de razones, es útil saber cómo los usuarios interactúan con dichos servicios proporcionados de manera remota. Por ejemplo, puede ser útil para un proveedor de servicios saber que los usuarios suelen flotar su foco de entrada (como un puntero del ratón) sobre una parte determinada de la pantalla, o que los usuarios rara vez utilizan ciertos controles proporcionados por los servicios. Los proveedores de servicios pueden recopilar datos que reflejan las interacciones del usuario con los servicios prestados a distancia a los efectos adicionales de personalización de usuario de los servicios, perfiles de usuario, las métricas de uso del sistema, y otros propósitos de investigación.
Los servicios proporcionados de forma remota típicamente involucran tanto de la lógica por parte del cliente como la lógica del lado del servidor. La lógica por parte del cliente de un servicio es típicamente responsable de generar una interfaz de usuario a través de la cual un usuario puede interactuar con el servicio. La lógica del lado del servidor de un servicio es típicamente responsable por el contenido del servicio y de proporcionar el contenido al cliente .
La obtención de información sobre cómo los usuarios interactúan con los servicios a los que se accede mediante los dispositivos de computación que se conocen como "seguimiento de usuario". Las modificaciones que se hacen para realizar el seguimiento de usuario se conocen como "instrumentos". En la actualidad la mayoría del seguimiento de los usuarios y la instrumentación de aplicaciones web se realizan ya sea usando cookies o mediante el envío de información sobre las acciones del usuario y el rendimiento de la aplicación inmediata por parte del cliente al servidor mediante "balizas". Estos mecanismos son muy restrictivos y limitar la cantidad de información que se puede recoger en el lado del cliente de una manera fiable y sin la experiencia del usuario degradar innecesariamente.
Por ejemplo, la información capturada por las cookies y balizas normalmente se limita a los "clics" del usuario. Un flujo de clics indica los controles, dentro de las páginas HTML proporcionadas por un servicio, en las que el usuario da "clic". Sin embargo, los clics de un usuario transmiten sólo una parte de la interacción del usuario con un servicio web. Por ejemplo, una secuencia de clics no puede indicar cuando y donde el usuario cambia el enfoque de entrada, mientras que interactúa con el servicio. Como otro ejemplo, una secuencia de clics no puede ser capaz de indicar cómo un usuario hizo una selección en particular. Por ejemplo, algunas páginas web pueden proporcionar una serie de mecanismos alternativos de entrada (por ejemplo, que se pulse un botón, mediante la opción de menú y un atajo de teclado) para realizar la misma operación (por ejemplo, guardar un documento en la aplicación) . La secuencia de clics puede indicar que el usuario ha seleccionado la operación, pero no cuál de los mecanismos de entrada se utilizó para iniciar la operación. Como otro ejemplo, una secuencia de clics no puede indicar interacciones de los usuarios que son manejadas por el código por parte del cliente, tales como JavaScript™ o FLASH®, que está incluido en una página web provista a los clientes por el servicio. Puede ser igual de importante saber cómo el usuario interactúa con las interfaces generadas por el código por parte del cliente como lo es para saber el flujo de clics de un usuario.
Por desgracia, la captura de más de un flujo de clics presenta varios desafios técnicos. Por ejemplo, el ancho de banda de comunicación de la lógica por parte del cliente a la lógica del lado del servidor (el "ancho de banda ascendente") a menudo es significativamente menor que el ancho de banda de comunicación de la lógica del lado servidor a la lógica por parte del cliente (el ancho de banda "corriente abajo"). Por lo tanto, el envío de la información del servidor detallada acerca de lo que un usuario está haciendo por el lado del cliente puede consumir una cantidad inaceptablemente grande del ancho de banda ascendente relativamente pequeño.
Además, el desarrollo de aplicaciones Web ha cambiado y más de la lógica y la interfaz de usuario se crea ahora o totalmente controladas en el equipo cliente. Anteriormente, el servidor podría crear los elementos de la interfaz de usuario y/o recibir una solicitud para la mayoría, si no todas, las acciones del usuario a través de un mensaje de vuelta (se recarga la página). El seguimiento de los usuarios en estos casos se lleva a cabo mediante la supervisión de flujo de clics del usuario generado por la solicitud del usuario al servidor que el usuario navega por los recursos disponibles. Conforme han proliferado las tecnologías "Web 2.0", estos mecanismos para el seguimiento de las acciones del usuario ya no son suficientes para captar la variedad de formas interactúan los usuarios con interfaces "Web 2.0". Las soluciones actuales intentan enviar de forma inmediata todos los datos de instrumentación en el momento de su recopilación, o para información de la cola sobre la interacción de un usuario con una página y luego vaciar la cola mediante el envío de la información al servidor cuando se descarga la página. Desafortunadamente, enviando el contenido de una cola por parte del cliente al servidor en respuesta a la descarga de una página no es confiable, ni tampoco proporciona una buena experiencia de usuario cuando es posible. Además, dado que las soluciones actuales de seguimiento de usuario mantienen los datos en la memoria volátil, la transmisión fallida de datos de la cola por parte del cliente podría dar como resultado la valiosa pérdida permanente de datos de seguimiento de usuario después de que ha terminado una sesión.
Los enfoques descritos en esta sección son los enfoques que podrían ser buscados, pero no necesariamente son enfoques que han sido previamente concebidos o buscados. Por lo tanto, a menos que se indique lo contrario, no se debe suponer que cualquiera de los enfoques descritos en esta sección se califica como técnica anterior, simplemente en virtud de su inclusión en esta sección.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La presente invención se ilustra a modo de ejemplo, y no a modo de limitación, en las figuras de los dibujos anexos y en los que números de referencia similares se refieren a elementos similares y en los que: La Figura 1 es un diagrama de bloques que muestra una disposición de red de ejemplo 100 para la recopilación de datos de seguimiento de usuario a partir de las interacciones del usuario con una aplicación de web.
La Figura 2 es un diagrama de flujo que ilustra las etapas de recopilación de datos de rastreo de usuarios, de acuerdo con una modalidad de la invención.
La Figura 3 es un diagrama de bloques de un sistema de computadora en donde pueden ser implementadas las modalidades de la invención.
DESCRIPCIÓN DETALLADA En la siguiente descripción, para fines de explicación, se exponen numerosos detalles específicos con el fin de proporcionar una comprensión completa de la presente invención. Será evidente, sin embargo, que la presente invención puede ponerse en práctica sin estos detalles específicos. En otros casos, se muestran estructuras bien conocidas y dispositivos en forma de diagrama de bloques con el fin de evitar oscurecer innecesariamente la presente invención .
REVISION GENERAL Un mecanismo de almacenamiento en caché de confianza se ofrece para el almacenamiento en caché por parte del cliente de los datos que captura la interacción del usuario con un servicio remoto, en donde los usuarios interactúan con el servicio remoto a través de un dispositivo de computadora. De acuerdo con una modalidad, estos datos (denominado en este documento como "elementos de instrumentación") se almacenan en la memoria caché en una cola por parte del cliente desconectado. Dentro de la cola por parte del cliente, los elementos de instrumentación reunidos sobreviven entre sesiones de usuario con el servicio remoto. Debido a que el cliente no pierda los elementos de instrumentación que se reunieron en una sesión al terminar la sesión, los elementos de instrumentación no necesitan todos ser transferidos al servidor en o antes de la terminación de la sesión en la que la instrumentación los elementos son recopilados. En cambio, los elementos de instrumentación puede ser enviada a la del lado del servidor en el momento que tendrán menos impacto sobre la experiencia del usuario, tal como cuando el dispositivo de computación está inactivo. Utilizando estas técnicas, más información puede ser recopilación y enviada a la del lado del servidor sin interferir significativamente con la experiencia del usuario.
El uso de una memoria caché por parte del cliente de esta manera permite un servicio para recopilar más datos sobre las acciones del usuario que de otra manera seria factible instrumento, sin interferir con la experiencia del usuario o el rendimiento de la aplicación. Ser capaz de fiabilidad guardar los elementos de instrumentación por el lado del cliente sin tener que enviarlos de inmediato a los servicios de servidor de recopilación de datos permite a un servicio llegar de forma dinámica al equilibrio adecuado entre la experiencia del usuario, la cantidad de datos recopilados y la oportunidad de informar los datos al servidor .
Específicamente, en una modalidad, la caché del cliente permite "estrangulamiento de datos" para situaciones donde puede ser inconveniente o imposible enviar temporalmente (todos) de los elementos de instrumentación por parte del servidor. Situaciones en las que se pueden transmitir elementos de instrumentación pospuestos incluyen cuando un usuario está experimentando una velocidad de conexión degradada o en donde hay una carga inusualmente alta en el servicio de captura.
CÓDIGO DE INSTRUMENTACIÓN POR PARTE DEL CLIENTE De acuerdo con una modalidad, el código de la computadora del cliente está provisto de manera que puede escuchar o recibir elementos de interés para fines de instrumentación. En una modalidad, el código se implementa como una clase (denominada en este documento como la "clase de instrumentación") en un lenguaje orientado a objetos. Cabe señalar que el uso de una clase de instrumentación es más que una forma en que puede ser la memoria caché implementada por el cliente y las técnicas descritas en este documento no están limitadas a una implementación que utiliza una clase de instrumentación. Por ejemplo, las técnicas se pueden implementar usando rutinas del cliente que están repartidas en varias clases diferentes, o incluso por las rutinas que están escritas en un lenguaje de programación que no es orientado a objetos.
De acuerdo con una modalidad que utiliza una clase de instrumentación, la clase de instrumentación define los métodos de conservación de los elementos capturados en un mecanismo de almacenamiento por parte del cliente desconectado, tales como almacenamiento Web HTML 5, una aplicación Adobe Flash' s Shared Object, Microsoft Silverlight, u otro lado del cliente la tecnología, como Google Gears. Estos únicamente son ejemplos de mecanismos de almacenamiento del cliente fuera de línea que se pueden utilizar y las técnicas descritas en este documento no se limitan a ningún mecanismo de almacenamiento fuera de línea en particular.
Un número de opciones están disponibles para suministrar el código de la aplicación de la clase de instrumentación para el cliente del usuario. De acuerdo con una modalidad, el código por parte del cliente se proporciona integralmente como un componente del contenido de la aplicación web provista al usuario cuando el usuario solicita el uso del servicio remoto. El código de clase instrumentación puede ser embebido directamente en el contenido de la aplicación web, o importado en el contenido de la aplicación como un componente de la biblioteca suministrado por separado. De acuerdo con otra modalidad, el código de instrumentación por parte del cliente puede ser integrado en un navegador web como un complemento o una barra de herramientas, o provisto como una aplicación independiente por parte del cliente.
Después de que el cliente ha recibido y crea una instancia del código de la aplicación de la clase de instrumentación, los eventos del usuario se proveen a la clase de instrumentación para su procesamiento. De acuerdo con una modalidad, los elementos de instrumentación pueden ser enviados a la clase de instrumentación por controladores de eventos en el código de aplicación que monitorean las interacciones del usuario con la interfaz de la aplicación. Por ejemplo, cuando un usuario selecciona un botón, el código que implementa el botón puede invocar un método de la clase de instrumentación y pasar a los valores del parámetro de método que indican la interacción del usuario con el botón. Los parámetros pueden transmitir una variedad de información acerca de la interacción del usuario, tal como qué botón se selecciona, cuando el botón se ha seleccionado, y la operación especifica que fue iniciada por la selección del botón por el usuario.
De acuerdo con otra modalidad, la clase de instrumentación puede escuchar las acciones del usuario y registrar estas acciones como datos de elemento de instrumentación. Por ejemplo, las interacciones del usuario detectadas por el código de la primera aplicación del cliente pueden ser enviadas a un colector de evento de usuario. La clase de instrumentación quiso escuchar al colector de eventos de usuario para detectar nuevos elementos de instrumentación que están listos para ingresar en el mecanismo de almacenamiento por parte del cliente desconectado. En dicha modalidad, el colector de eventos sería un punto común de entrada para las interacciones del usuario detectadas a través de la aplicación de web. De acuerdo con otra modalidad, otro código de cliente externo a la aplicación remota puede monitorizar las interacciones del usuario y los provee a la clase de instrumentación a través de una interfaz apropiada.
CONTROL DE OPERACIÓN DE MEMORIA CACHE POR PARTE DEL CLIENTE De acuerdo con una modalidad, los diferentes valores se pueden pasar como parámetros a los métodos proporcionados por la clase de instrumentación para afectar los elementos de instrumentación se almacenan en caché en el cliente, y cuando los elementos almacenados en caché instrumentación se envían al servidor. Los parámetros cuyos valores afectan el funcionamiento de la memoria caché por parte del cliente se denominan en la presente como "parámetros de control". Debido a que las reglas por las que opera la memoria caché por parte del cliente se ven afectadas por los valores pasados a los parámetros de control, estas reglas se refieren en la presente como "reglas parametrizadas" . De acuerdo con una modalidad, basado en reglas parametrizadas, los procesos que crean instancias se basan en la clase de instrumentación para determinar la cantidad óptima de los datos a la memoria caché en relación con (a) el estado de la aplicación actual y (b) la actividad del usuario antes de enviar los elementos a instrumentación a un servicio de captura en la red.
VARIABLES En una modalidad, los valores pasados para controlar los parámetros afectan a las variables que a su vez afectan al funcionamiento de la memoria caché por parte del cliente. Por ejemplo, en una modalidad, las variables que se pueden ajusfar sobre la base de los valores de los parámetros de control son facilitados a la clase de instrumentación: el tiempo transcurrido, los periodos críticos de tiempo, número de eventos, el tamaño de los datos, tiempo de inactividad del usuario, la cantidad de tráfico de red, etc. Estas variables son meramente ejemplos de los tipos de variables que se pueden utilizar por la clase de implementación para afectar la manera en la memoria caché por parte del cliente opera.
Los tipos y el valor de estas variables puede ser establecido sobre una base de toda la aplicación, o los desarrolladores de componentes de aplicaciones individuales dentro del servicio puede proporcionar variables en base a los requerimientos específicos de cada componente de la aplicación .
De acuerdo con una modalidad, se pueden utilizar los parámetros de control para asignar diferentes grados de prioridad para las variables que afectan la operación de la memoria caché por parte del cliente. En tal modalidad, los elementos de instrumentación almacenados en el mecanismo de almacenamiento fuera de línea pueden ser ordenados en una cola de transmisión en base al menos parcialmente en las prioridades relativas de las variables. De acuerdo con esta modalidad, los elementos almacenados de instrumentación pueden ser transmitidos a la del lado del servidor en un orden diferente al orden en donde se producen eventos de usuario en el cliente.
Por ejemplo, supongamos que el "tiempo transcurrido" se le asigna un valor de alta prioridad, mientras que el "tamaño de los datos" se le asigna un valor de prioridad baja. Bajo estas circunstancias, la memoria caché por parte del cliente puede enviar un elemento instrumentación anterior grande al servidor antes de enviar un elemento pequeño instrumentación más reciente. Por el contrario, si al "tiempo transcurrido" se le asigna un valor de prioridad baja y al "tamaño de datos" se le asigna un valor de prioridad alta, entonces el cache por parte del cliente puede enviar el elemento de nuevo instrumentación pequeño antes del elemento de instrumental que tiene más tiempo .
UMBRALES DE VARIABLES De acuerdo con una modalidad, las variables que afectan al funcionamiento de la memoria caché por parte del cliente pueden tener uno o más de los umbrales. Por ejemplo, un umbral puede ser establecido por " velocidad de conexión de red" . Si el usuario detecta la velocidad de conexión de red es superior al umbral, puede ser reducida la cantidad de tiempo que los elementos de instrumentación se almacenan en caché en el mecanismo de almacenamiento desconectado. Por el contrario, si la velocidad de conexión de red del usuario detectada es superior al umbral, se puede aumentar la cantidad de tiempo que los elementos de instrumentación se almacenan en caché en el mecanismo de almacenamiento fuera de linea. Puede haber cualquier número de umbrales para cualquier variable dada. Por lo tanto, un segundo umbral inferior puede ser establecido para la velocidad de conexión de red, en donde los elementos de instrumentación no se envían a la del lado del servidor en absoluto si la velocidad detectada del usuario cae por debajo del segundo umbral.
De acuerdo con una modalidad, los umbrales asociados con una variable puede ajustarse dinámicamente de acuerdo a los cambios en la red, por parte del cliente, por parte del servidor, o de otras condiciones de aplicación. Los umbrales para una variable pueden ser establecidos inicialmente cuando el usuario inicia una nueva sesión y también se pueden configurar o ajustar durante la sesión de un usuario en respuesta a la detección de un cambio en alguna condición .
De acuerdo con una modalidad, se puede establecer una regla que específica que los elementos de instrumentación deben ser entendidos como "críticos", en donde los elementos críticos de instrumentación se envían al servidor inmediatamente, opcionalmente pasando por la memoria caché. Incluso si se termina la sesión (se descarga la página) antes de que los datos se hayan enviado correctamente, los datos se conservan por parte del cliente y pueden ser enviados la próxima vez que el usuario visita el sitio web o aplicación.
ELEMENTOS DE INSTRUMENTACIÓN ACORTADOS De acuerdo con una modalidad, el impacto negativo de la transmisión de los elementos de instrumentación tiene sobre el rendimiento se reduce aún más por acortamiento de los elementos de instrumentación antes de enviar los elementos de instrumentación de la por parte del cliente para el servidor. Por ejemplo, los elementos de instrumentación puede ser "acortados" mediante la creación de una asignación de porciones grandes y/o repetitivas de los elementos de instrumentación. Estas asignaciones pueden ser especificas de la sesión, o el mismo mapeo puede ser utilizado en diferentes sesiones .
Por ejemplo, en una modalidad, la clase de instrumentación envía un único elemento de mapeo que al final puede utilizar para expandir la porción completa de los datos para cada elemento recibido. Por lo tanto, si la URL de la página con la que un usuario ha interactuado es parte de los datos a ser comunicados sobre cada elemento de instrumentación, el URL completo de la página puede ser enviado una vez, junto con una asignación a un acortamiento o ID (como un número o hash MD5) . En todos los elementos posteriores de instrumentación que se generan sobre la base de las interacciones con la misma página, el URL puede ser reemplazado con el ID más corto.
De acuerdo con una modalidad, los elementos de instrumentación se acortan de acuerdo con una asignación de señal conocida en el momento en que se selecciona entre el mecanismo de almacenamiento fuera de línea y se transmite al servidor. El mapeo puede incluir símbolos que se han creado para la sesión actual o incluir asignaciones simbólicas generadas en una sesión anterior. De acuerdo con otra modalidad, la clase de instrumentación puede escanear continua o periódicamente el mecanismo de almacenamiento fuera de linea con el fin de detectar porciones repetitivas de los datos de instrumentación de elementos con el fin de crear nuevas asignaciones de acortamientos. Los elementos de instrumentación pueden ser entonces recortados en el mecanismo de almacenamiento fuera de linea antes de la transmisión, reduciendo el espacio necesario para almacenar los datos de los elementos de instrumentación.
MANEJO EN SESIÓN CRUZADA DE DATOS DE INSTRUMENTACIÓN Con el fin de recopilar los datos de instrumentación de elementos que no se transmiten al servidor durante la sesión de usuario en donde se generaron los datos, los elementos de instrumentación se almacenan en la memoria caché por parte del cliente y tienen la capacidad de persistir a través de sesiones de usuario. Por ejemplo, una sesión de usuario puede terminar cuando el usuario sale de una aplicación remota o descarga las páginas que contienen la aplicación remota antes de que se han transmitido todos los datos existentes en la memoria caché. De acuerdo con una modalidad, los elementos de instrumentación almacenados en la memoria caché por parte del cliente pueden ser codificados de acuerdo con un esquema de datos que incluye un atributo de identificación de sesión con el fin de distinguir los datos de instrumentación de elementos en varias sesiones. Otro ejemplo de atributos de instrumentación del esquema de elementos puede incluir una ID de usuario, nivel de seguimiento, fuente, elemento, comando y marcas de tiempo.
De acuerdo con una modalidad, los elementos de instrumentación de una sesión anterior se pueden detectar en la memoria caché cuando un usuario inicia una nueva sesión y los elementos pueden entregarse como parte de la secuencia de inicio de sesión nueva. Por ejemplo, los elementos de instrumentación de sesiones anteriores se pueden detectar en la memoria caché mediante la comparación de los identificadores de sesión o atributos de marca de tiempo. De acuerdo con otra modalidad, los elementos de instrumentación detectados a partir de sesiones anteriores simplemente se pueden añadir a la cola de transmisión de la sesión actual y seleccionar para la transmisión en consecuencia.
El código por parte del cliente podrá almacenar y recuperar los elementos de instrumentación del mecanismo de almacenamiento fuera de linea utilizando cualquier interfaz de programación disponible para tales fines en función de la implementación de caché particular. La instrumentación elementos recuperados de la memoria caché puede ser transmitida al servidor usando un número de protocolos de comunicación, incluyendo, pero no limitado a, HTTP, receptáculos HTML 5, o conexión TCP/IP. Los datos de los elementos de instrumentación pueden ser transmitidos al servicio de recepción como elementos individuales o como un objeto de datos por lotes incluyendo varios elementos.
De acuerdo con una modalidad, los elementos de transmisión de instrumentación de la memoria caché por parte del cliente pueden permanecer en la cola de transmisión hasta que el cliente recibe una confirmación de suministro del lado del servidor. Por ejemplo, en una modalidad, los elementos de transmisión de instrumentación pueden permanecer en la cola de transmisión hasta que se recibe una respuesta HTTP 200, o cualquier otro mensaje similar de confirmación de entrega en función del protocolo, del lado del servidor. De acuerdo con otra modalidad, un mecanismo de reintento de transmisión puede implementarse con el fin de intentar retransmitir los elementos para los que no se recibieron ningún mensaje de confirmación de entrega o de otra manera se transmite sin éxito al servidor.
OPERACIÓN DE EJEMPLO La Figura 1 es un diagrama de bloques que muestra una disposición de red de ejemplo 100 para la recopilación de datos de seguimiento de usuario a partir de las interacciones del usuario con una aplicación de web. Haciendo referencia a la Figura 1, un usuario en el dispositivo cliente 110 abre un navegador web 112 y realiza una solicitud al servidor 120 para uso de servicio remoto 122. En este ejemplo, el servidor 120 envía de vuelta al cliente del dispositivo 110 de datos de aplicaciones web que proporcionan al usuario la capacidad de interactuar con el servicio remoto 122. En una modalidad, los datos de aplicación web se incluyen código que se ejecutará en el dispositivo cliente 110 para hacer el seguimiento de la interacción del usuario con la aplicación de web recibido.
Un usuario puede iniciar una nueva sesión con la aplicación web cuando la aplicación se ha cargado en el navegador de 112 en el dispositivo del cliente 110, o bien cuando el usuario inicia sesión en la aplicación web. La Figura 2 es un diagrama de flujo que representa el ciclo de vida 200 de la aplicación web en el dispositivo del cliente 110 después de que la lógica por parte del cliente para la aplicación web ha sido recibida por el dispositivo cliente 110.
Haciendo referencia a la Figura 2, en el paso 202, el dispositivo del cliente 110 recibe una aplicación web en un servidor web, donde la aplicación web incluye código para el seguimiento de las interacciones del usuario. La aplicación Web puede tomar muchas formas, incluyendo pero no limitado a código que está embebido en o que acompaña a una página web que ha sido recuperado desde el cliente. En la etapa 204, la aplicación web se crea una instancia en el dispositivo del cliente 110 y los parámetros de suministros para una o más variables del programa.
De acuerdo con una modalidad, en el paso 206, la aplicación comprueba el mecanismo 114 de almacenamiento fuera de linea para cualquier usuario de los datos de seguimiento en la memoria caché que no puede haber sido transmitido a un servidor en una sesión anterior de usuario. Sobre la base de una determinación en el paso 206 que el usuario los datos de seguimiento de una sesión anterior existe en el almacenamiento, de acuerdo con una modalidad en el paso 208, la aplicación de cualquiera de los dos puede transmitir al usuario los datos de seguimiento a un servidor como parte de la aplicación de secuencia de arranque, o agregar el usuario el seguimiento de los datos a una cola de transmisión como instancia para el actual periodo de sesiones para su transmisión posterior.
Una vez que la aplicación haya terminado de cualquier otra puesta en marcha de las rutinas, la aplicación comienza el seguimiento de las interacciones actuales del usuario con la aplicación web en el paso 110. En una modalidad, las notificaciones de las acciones del usuario con la aplicación de web se envían a la aplicación para el procesamiento. En el paso 212, la aplicación almacena los datos que representan las interacciones del usuario en el mecanismo de almacenamiento fuera de linea 114 en el dispositivo del cliente 110.
De acuerdo con una modalidad, los datos de interacción de usuario permanece en el mecanismo 114 de almacenamiento fuera de línea hasta que, en el paso 214, la aplicación detecta una condición en base a una o más de las variables del programa de activación de la aplicación para enviar una o más de las instrucciones elementos de datos de interacción en un servidor. La aplicación puede continuar operando de esta manera hasta que el usuario descarga la aplicación en el cliente mediante el cierre de las páginas que contienen la aplicación o no detener la ejecución del código .
DESCRIPCIÓN GENERAL DEL HARDWARE De acuerdo con una modalidad, las técnicas descritas en la presente son implementadas por uno o más dispositivos de computadoras de propósito especial. Los dispositivos de computadoras de propósito especial puede ser cableada para realizar las técnicas, o puede incluir dispositivos electrónicos digitales tales como uno o más específicos de la aplicación circuitos integrados (ASIC) o matrices de puertas programables de campo (FPGAs) que están persistentemente programado para realizar las técnicas, o puede incluir uno o más procesadores generales de hardware de propósito programado para llevar a cabo las técnicas de conformidad con las instrucciones del programa de firmware, memoria, almacenamiento, o una combinación. Tales dispositivos de computación para usos especiales también combinan la lógica personalizada conectada directamente, ASIC, o FPGAs con programación a medida para llevar a cabo las técnicas. Los dispositivos de computadoras de propósito especial pueden ser sistemas de computadora de escritorio, sistemas de computadoras portátiles, dispositivos manuales, dispositivos de red o cualquier otro dispositivo que incorpora cableados y/o lógica de programas para implementar las técnicas.
Por ejemplo, la Fig. 3 es un diagrama de bloques que ilustra un sistema de computadora 300 sobre el cual se puede implementar una modalidad de la invención. El sistema de computadora 300 incluye un colector 302 u otro mecanismo de comunicación para comunicar otra información y un procesador de hardware 304 junto con el colector 302 para el procesamiento de información. El procesador del hardware 304 puede ser, por ejemplo, un microprocesador de uso general.
El sistema de computadora 300 también incluye una memoria principal 306, tal como una memoria de acceso aleatorio (RAM) u otro dispositivo de almacenamiento dinámico, acoplado al colector 302 para almacenar información e instrucciones a ser ejecutadas por el procesador 304. La memoria principal 306 también puede ser usada para almacenar variables temporales u otra información intermedia durante la ejecución de instrucciones a ser ejecutadas por el procesador 304. Dichas instrucciones, cuando se almacenan en soportes de almacenamiento accesibles al procesador 304, convierten el sistema de computadora 300 en una máquina de propósito especial que se adapta para realizar las operaciones especificadas en las instrucciones.
El sistema de computadora 300 incluye además una memoria de sólo lectura (ROM) 308 u otro dispositivo de almacenamiento estático acoplado al colector 302 para almacenar información estática e instrucciones para el procesador 304. Un dispositivo de almacenamiento 310, tal como un disco magnético o disco óptico, se proporciona y se acopla al colector 302 para almacenar información e instrucciones .
El sistema de computadora 300 puede estar acoplado a través del colector 302 a una visualización 312, tal como un tubo de rayos catódicos (CRT) , para mostrar información a un usuario de la computadora. Un dispositivo de entrada 314, incluyendo teclas alfanuméricas y otras, está acoplado al colector 302 para comunicar información y selecciones de comandos al procesador 304. Otro tipo de dispositivo de entrada de usuario es el control de cursor 316, tal como un ratón, una bola de rastreo, o las teclas de dirección del cursor para comunicar información de dirección y selecciones de comandos al procesador 304 y para controlar el movimiento del cursor en la pantalla 312. Este dispositivo de entrada tiene típicamente dos grados de libertad en dos ejes, un primer eje (por ejemplo, x) y un segundo eje (por ejemplo, y) , que permite que el dispositivo especifique las posiciones en el plano.
El sistema de computadora 300 puede implementar las técnicas descritas en este documento usando lógica cableada personalizada, uno o más ASIC o FPGA, firmware y/o lógica de programa que en combinación con el sistema de la computadora o sistema de programas de la computadora 300 hace que sea una máquina para usos especiales. De acuerdo con una modalidad, las técnicas de la presente se realizan por el sistema de computadora 300 en respuesta al procesador 304 que ejecuta una o más secuencias de una o más instrucciones contenidas en la memoria principal 306. Estas instrucciones pueden ser leídas en la memoria principal 306 desde otro medio de almacenamiento, tal como el dispositivo de almacenamiento 310. La ejecución de las secuencias de instrucciones contenidas en la memoria principal 306 causan que el procesador 304 lleve a cabo los pasos del proceso descrito en la presente. En modalidades alternativas, los circuitos cableados pueden ser usados en lugar de o en combinación con instrucciones de software.
El término "medios de almacenamiento" tal como se utiliza en la presente se refiere a cualquier medio que almacena datos y/o instrucciones que hacen que una máquina opere de una forma especifica. Dichos medios de almacenamiento pueden comprender medios no volátiles y/o medios volátiles. Los medios no volátiles incluyen, por ejemplo, discos ópticos o magnéticos, tales como un dispositivo de almacenamiento 310. Los medios volátiles incluyen la memoria dinámica, tal como la memoria principal 306. Las formas comunes de medios de almacenamiento incluyen, por ejemplo, un disquete, un disco flexible, disco duro, unidad de estado sólido, cinta magnética, o cualquier otro medio de almacenamiento magnético de datos, un CD-ROM, cualquier otro medio óptico de almacenamiento de datos, cualquier medio físico con patrones de orificios, una RAM, una PROM, EPROM y, una FLASH-EPROM, NVRAM, cualquier otro microcircuito o cartucho de memoria.
Los medios de almacenamiento son distintos de, pero pueden usarse junto con los medios de transmisión. Los medios de transmisión participan en la transferencia de información entre los medios de almacenamiento. Por ejemplo, los medios de transmisión incluyen cables coaxiales, cables de cobre y fibra óptica, incluyendo los cables que comprenden colector 302. Los medios de transmisión también pueden tomar la forma de ondas acústicas o de luz, tales como las generadas durante las ondas de radio y las comunicaciones de datos por infrarrojos .
Varias formas de medios de comunicación pueden estar involucrados en la modalidad de una o más secuencias de una o más instrucciones al procesador 304 para su ejecución. Por ejemplo, las instrucciones inicialmente se pueden portar en un disco magnético o unidad de estado sólido de un equipo remoto. La computadora remota puede cargar las instrucciones en su memoria dinámica y enviar las instrucciones por una linea telefónica usando un módem. Un módem local al sistema de computadora 300 puede recibir los datos en la linea telefónica y usar un transmisor infrarrojo para convertir los datos en una señal de infrarrojo. Un detector de infrarrojo puede recibir los datos transportados en la señal de infrarrojo y circuitos apropiados pueden colocar los datos en el colector 302. El colector 302 transporta los datos a la memoria principal 306, de la que el procesador 304 recupera y ejecuta las instrucciones. Las instrucciones recibidas por la memoria principal 306 pueden almacenarse opcionalmente en un dispositivo de almacenamiento 310, ya sea antes o después de la ejecución por el procesador 304.
El sistema de computadora 300 también incluye una interfaz de comunicación 318 acoplada al colector 302. La interfaz de comunicación 318 proporciona una comunicación de datos bidireccionales de acoplamiento a un enlace de red 320 que está conectado a una red local 322. Por ejemplo, la interfaz de comunicación 318 puede ser una red digital de la tarjeta de servicios integrados (RDSI), módem de cable, satélite, o un módem para proporcionar una conexión de comunicación de datos para un tipo correspondiente de linea telefónica. Como otro ejemplo, la interfaz de comunicación 318 puede ser una red de área local (LAN) para proporcionar una conexión de comunicación de datos a una LAN compatible. También pueden ser implementados los enlaces inalámbricos. En cualquier tal implementación, la interfaz de comunicación 318 envia y recibe señales eléctricas, electromagnéticas u ópticas que transportan corrientes de datos digitales que representan diversos tipos de información.
El enlace de red 320 proporciona típicamente comunicación de datos a través de una o más redes a otros dispositivos de datos. Por ejemplo, el enlace de red 320 puede proporcionar una conexión a través de red local 322 a una computadora central 324 o al equipo de datos operado por un proveedor de servicios de Internet (ISP) 326. ISP 326 a su vez proporciona servicios de comunicación de datos a través de la red mundial de comunicación de paquete de datos comúnmente se conoce como el "Internet" 328. La red local 322 y e Internet 328 usa señales eléctricas, electromagnéticas u ópticas que transportan flujos de datos digitales. Las señales a través de las diversas redes y las señales de enlace de red 320 y 318 a través de la interfaz de comunicación, que transmiten los datos digitales hacia y desde el sistema de computadora 300, son formas ilustrativas de los medios de transmisión.
El sistema de computadora 300 puede enviar y recibir mensajes de datos, incluyendo el código del programa, a través de la red, red de enlace 320 y la interfaz de comunicación 318. En el ejemplo de Internet, un servidor 330 puede transmitir un código solicitado para un programa de aplicación a través de Internet 328, el ISP 326, la red local 322 y la interfaz de comunicación 318.
El código recibido puede ser ejecutado por el procesador 304 como se recibe, y/o almacenado en el dispositivo de almacenamiento 310, u otro almacenamiento no volátil para su ejecución posterior.
En la memoria descriptiva anterior, las modalidades de la invención se han descrito con referencia a numerosos detalles específicos que pueden variar de una implementación a otra. Por lo tanto, el indicador único y exclusivo de lo que es la invención y destinados por las demandantes a la invención, es el conjunto de demandas que emanan de la presente solicitud, en la forma específica en que tales reclamaciones cuestión, incluida cualquier corrección posterior. Las definiciones expresamente establecidos en este documento los términos contenidos en tales afirmaciones regirán el significado de los términos que utiliza en las reivindicaciones. Por lo tanto, sin limitación, elemento, propiedad, característica, ventaja o atributo que no está expresamente citado en una reivindicación debe limitar el alcance de la reivindicación de cualquier modo. La memoria y los dibujos, en consecuencia, deben considerarse en forma ilustrativa y no en un sentido restrictivo.

Claims (24)

REIVINDICACIONES
1.- Un método implementado por computadora para la recopilación de los datos de instrumentación de usuario, el método comprendiendo los pasos de: durante una primera sesión entre un servicio remoto y un cliente, detectar una interacción de un usuario con una interfaz que se muestra al cliente, en donde la interfaz es una interfaz de una aplicación de web asociada con el servicio remoto; en donde el servicio remoto está alojado en un servidor que es relativo a distancia para el cliente, en respuesta a la detección de dicha interacción del usuario, almacenando un elemento instrumentación representando dicha interacción del usuario en un mecanismo de almacenamiento por parte del cliente desconectado; retener el elemento de la instrumentación en el mecanismo de almacenamiento por parte del cliente fuera de línea después que ha terminado la primera sesión; y durante una segunda reunión entre el servicio remoto y el cliente, transmitir dicho elemento instrumentación del mecanismo de almacenamiento del cliente fuera de línea a un servicio de recopilación en el servidor de datos; en donde el método se lleva a cabo por uno o más dispositivos de computación.
2. - El método de la reivindicación 1, en donde el paso de almacenar el elemento de instrumentación se realiza por la lógica de cliente que se envía al cliente desde el servidor que aloja el servicio remoto.
3. - El método de la reivindicación 1, que comprende además, antes de realizar el paso de transmisión: recibir valores de los parámetros proporcionados por dicha aplicación de la web de una o más variables de aplicación; y determinar cuándo transmitir dicho elemento de instrumentación al servidor del lado del servicio de recolección basa, al menos en parte, de una o más variables de aplicación.
4. - El método de la reivindicación 1, en donde almacenar el elemento de instrumentación incluye la colocación de dicho elemento de instrumentación en una cola para la transmisión a dicho servidor por el servicio de recolección .
5. - El método de la reivindicación 4, que comprende además : ordenar dicho elemento de instrumentación en la cola de transmisión con relación a otros elementos de instrumentación en la cola de transmisión en base al menos parcialmente a una o más variables, en donde para valores de dichas una o más variables son proporcionados por la aplicación de web; transmitir dichos elementos de instrumentación a dicho lado del servidor de servicio de recopilación basado en el orden en que los elementos de transmisión se almacenan en la cola de transmisión.
6. - El método de la reivindicación 5, en donde las variables incluyen una variable que representa al menos uno de: el tiempo de inactividad de usuario, el tiempo transcurrido en el mecanismo de almacenamiento fuera de linea, la velocidad de conexión de red, el número de elementos de instrumentación en el mecanismo de almacenamiento fuera de linea, o tamaño de los datos de mecanismo de almacenamiento.
7. - El método de la reivindicación 5, que comprende además : asociar uno o más umbrales especificados con dichas una o más variables y usar uno o más umbrales especificados para determinar cuándo transmitir dicho elemento instrumentación al servicio de recolección del servidor.
8. - El método de la reivindicación 7, que comprende además : detectar que ha cambiado alguna condición aplicación o la red; y en respuesta a la detección de que ha cambiado cierta condición de aplicación o la red, ajustando uno o más de dichos umbrales especificados.
9. - El método de la reivindicación 1, que comprende además : crear una asignación de acortamiento para una o más porciones de uno o más elementos de instrumentación almacenados del mecanismo de almacenamiento del cliente fuera de linea; transmitir un elemento que represente el mapeo de acortamiento creado a dicho servicio de recolección del servidor; y recortar uno o más elementos de instrumentación diferentes del mecanismo de almacenamiento del cliente fuera de linea basado en la asignación de recorte.
10. - El método de la reivindicación 1, el paso de transmisión comprende además: la detección de un mensaje de confirmación del suministro de dicho servicio de recolección del servidor que indica la recepción del elemento de instrumentación; y en base a la detección de dicho mensaje de confirmación suministro, retirar la instrumentación del elemento del mecanismo de almacenamiento del cliente fuera de linea .
11. - El método de la reivindicación 1, que comprende además: detectar que un mensaje de confirmación de suministro de dicho servicio de recolección del servidor que indica la recepción de dicho elemento de transmisión instrumentación no se ha recibido después de un tiempo determinado; con base en la detección de que dicho mensaje de confirmación de suministro no se ha recibido después de un periodo especificado de tiempo, retransmitir dicho elemento de instrumentación al servidor servicio de recolección.
12. - El método de la reivindicación 1, en donde el mecanismo de almacenamiento del cliente fuera de linea es un componente persistente de un navegador web.
13. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 1.
14. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 2.
15. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 3.
16. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 4.
17. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 5.
18. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 6.
19. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación .
20. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 8.
21. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 9.
22. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 10.
23. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 11.
24. - Uno o más medios de almacenamiento no transitorios que almacenan instrucciones que, cuando son ejecutadas por uno o más dispositivos de computación, causan el desempeño del método descrito en la reivindicación 12. RESUMEN Se ofrece un mecanismo de almacenamiento en memoria caché confiable para el almacenamiento en memoria caché por el cliente de los datos que captura la interacción del usuario con servicio remoto, en donde los usuarios interactúan con el servicio remoto a través de un dispositivo de computación. Los elementos de instrumentación se almacenan en memoria caché en la cola fuera de linea por parte del cliente. Dentro de la cola por parte del cliente, los elementos de instrumentación reunidos sobreviven entre sesiones de usuario con el servicio remoto. Debido a que el cliente no pierda los elementos de instrumentación que se reunieron en una sesión cuando termina la sesión, los elementos de instrumentación no necesitan todos ser transferidos al servidor en o antes de terminar la sesión en la cual se recopilan los elementos de instrumentación. En su lugar, los elementos de instrumentación pueden ser enviados a al servidor toda vez que tenga menos impacto sobre la experiencia del usuario, tal como cuando está inactivo el dispositivo de computación.
MX2013001159A 2010-07-30 2011-07-13 Instrumentacion de aplicacion en la web en sesion cruzada altamente confiable. MX2013001159A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/848,042 US8892608B2 (en) 2010-07-30 2010-07-30 Highly reliable cross-session web application instrumentation
PCT/US2011/043859 WO2012015598A1 (en) 2010-07-30 2011-07-13 Highly reliable cross-session web application instrumentation

Publications (1)

Publication Number Publication Date
MX2013001159A true MX2013001159A (es) 2013-02-27

Family

ID=45527805

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2013001159A MX2013001159A (es) 2010-07-30 2011-07-13 Instrumentacion de aplicacion en la web en sesion cruzada altamente confiable.

Country Status (7)

Country Link
US (2) US8892608B2 (es)
EP (1) EP2599005A4 (es)
CN (1) CN103038759A (es)
BR (1) BR112013001841A2 (es)
CA (1) CA2806179C (es)
MX (1) MX2013001159A (es)
WO (1) WO2012015598A1 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011006898A1 (de) * 2011-04-06 2012-10-11 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Betreiben einer Rechnereinheit, Verfahren zum Betreiben eines Applikationsportals, Rechnereinheit, Vorrichtung zum Betreiben eines Applikationsportals und System
CN102222086B (zh) * 2011-05-18 2014-11-26 广州市动景计算机科技有限公司 基于移动终端的网页阅读方法、网页阅读装置及移动终端
US20150163116A1 (en) * 2011-07-29 2015-06-11 Google Inc. Client-side click tracking
CN103544193B (zh) * 2012-07-17 2018-06-08 北京千橡网景科技发展有限公司 用于识别网络机器人的方法和设备
US9678978B2 (en) * 2012-12-31 2017-06-13 Carbonite, Inc. Systems and methods for automatic synchronization of recently modified data
US9178908B2 (en) 2013-03-15 2015-11-03 Shape Security, Inc. Protecting against the introduction of alien content
CN103530232B (zh) * 2013-10-24 2016-04-06 北京经纬恒润科技有限公司 一种软件测试管理框架构建方法及装置
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9723085B1 (en) * 2014-10-31 2017-08-01 Google, Inc. Transferring a state of user interaction with an online content item to a computer program
US9712513B2 (en) * 2015-10-05 2017-07-18 Kony, Inc. Identity management over multiple identity providers
CN105224694A (zh) * 2015-11-10 2016-01-06 中国建设银行股份有限公司 一种汇总信息查询方法、装置及系统
US11645659B2 (en) * 2019-07-31 2023-05-09 Nutanix, Inc. Facilitating customers to define policies for their clouds

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523191B1 (en) * 2000-06-02 2009-04-21 Yahoo! Inc. System and method for monitoring user interaction with web pages
US20020087679A1 (en) * 2001-01-04 2002-07-04 Visual Insights Systems and methods for monitoring website activity in real time
US6901536B2 (en) * 2001-05-24 2005-05-31 Microsoft Corporation Service quality monitoring system and method
US20040103215A1 (en) * 2002-11-26 2004-05-27 Bmc Software, Inc. Selective compression of web-based data transmissions
US20050216844A1 (en) * 2004-03-03 2005-09-29 Error Brett M Delayed transmission of website usage data
WO2004114529A2 (en) 2003-06-16 2004-12-29 Mentat Inc. Pre-fetch communication systems and methods
US7707573B1 (en) * 2003-12-31 2010-04-27 Google Inc. Systems and methods for providing and installing software
US7526799B2 (en) * 2004-06-30 2009-04-28 International Business Machines Corporation Method for tracking security attributes along invocation chain using secure propagation token
US20080263633A1 (en) * 2005-09-28 2008-10-23 Jasminder Banga Systems and Methods of Network Operation and Information Processing, Including Data Acquisition, Processing and Provision and/or Interoperability Features
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8769127B2 (en) 2006-02-10 2014-07-01 Northrop Grumman Systems Corporation Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT)
US8504775B2 (en) * 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US8819080B2 (en) * 2007-06-13 2014-08-26 The Boeing Company System and method for collection, retrieval, and distribution of data

Also Published As

Publication number Publication date
EP2599005A4 (en) 2017-06-07
CA2806179C (en) 2015-10-20
US20150074153A1 (en) 2015-03-12
EP2599005A1 (en) 2013-06-05
US20120030248A1 (en) 2012-02-02
WO2012015598A1 (en) 2012-02-02
CN103038759A (zh) 2013-04-10
CA2806179A1 (en) 2012-02-02
BR112013001841A2 (pt) 2016-05-31
US8892608B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
MX2013001159A (es) Instrumentacion de aplicacion en la web en sesion cruzada altamente confiable.
US7877461B1 (en) System and method for adding dynamic information to digitally signed mobile applications
US7739551B2 (en) Web page error reporting
US20190057200A1 (en) System, apparatus, and method of collecting and processing data in electronic devices
US20200012770A1 (en) System, apparatus, and method of collecting and processing data in electronic devices
US8346889B1 (en) Event-driven module loading
CN111767069B (zh) 小程序处理方法、服务器、设备及存储介质
US20110296050A1 (en) Realtime websites with publication and subscription
US20060274869A1 (en) Dynamically generating content based on capabilities of a mobile device
CN108153768A (zh) 页面跳转方法、数据处理方法、装置及页面跳转控制系统
US20150067146A1 (en) Custom correlation of a distributed business transaction
US20080133739A1 (en) Response time benchmarking
US20200107053A1 (en) Engagement tracking in computer data networks
US8429535B2 (en) Client utility interaction analysis
CN110011875A (zh) 拨测方法、装置、设备及计算机可读存储介质
US20160379276A1 (en) Electronic asset delivery and event tracking system
US8745245B1 (en) System and method for offline detection
CN116561013B (zh) 基于目标服务框架的测试方法、装置、电子设备和介质
US20170223136A1 (en) Any Web Page Reporting and Capture
CN109145182B (zh) 数据采集方法、装置、计算机设备及系统
US7984113B2 (en) System and method for passing messages to a web browser
CN110622135B (zh) 在涉及欠佳网络条件的情形下提供内容项的系统和方法
KR100645529B1 (ko) 로그 가공이 가능한 로그 관리 시스템 및 이를 이용한 로그관리 방법
CN111382038B (zh) 上报业务数据的方法、装置、电子设备及存储介质
CN111767447A (zh) 用于确定用户流量路径的方法和装置

Legal Events

Date Code Title Description
FG Grant or registration