BR102015006477B1 - Método, servidor e agente para monitorar padrões de interação de usuário - Google Patents

Método, servidor e agente para monitorar padrões de interação de usuário Download PDF

Info

Publication number
BR102015006477B1
BR102015006477B1 BR102015006477-2A BR102015006477A BR102015006477B1 BR 102015006477 B1 BR102015006477 B1 BR 102015006477B1 BR 102015006477 A BR102015006477 A BR 102015006477A BR 102015006477 B1 BR102015006477 B1 BR 102015006477B1
Authority
BR
Brazil
Prior art keywords
pattern
user
group
identifier
user interaction
Prior art date
Application number
BR102015006477-2A
Other languages
English (en)
Other versions
BR102015006477A2 (pt
Inventor
Morgan Sundqvist
Sam Nurmi
Original Assignee
Pingdom Ab
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 Pingdom Ab filed Critical Pingdom Ab
Publication of BR102015006477A2 publication Critical patent/BR102015006477A2/pt
Publication of BR102015006477B1 publication Critical patent/BR102015006477B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

método, servidor e agente para monitorar padrões de interação de usuário a presente invenção se refere a um método realizado por um servidor de análise para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor. a presente invenção se refere, adicionalmente, a um servidor de análise para executar o método. a presente invenção se refere, adicionalmente, a um agente em execução em um dispositivo de computação de cliente para identificar e transferir dados de análise para o servidor de análise.

Description

CAMPO TÉCNICO DA INVENÇÃO
[0001] A presente invenção refere-se a um método realizado por um servidor de análise para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor. A presente invenção se refere, adicionalmente, a um servidor de análise para executar o método. A presente invenção se refere adicionalmente a um agente executando em um dispositivo de computação de cliente para identificar e transferir dados de análise ao servidor de análise.
ANTECEDENTES DA INVENÇÃO
[0002] Monitorar a interação de usuário em um aplicativo de cliente, por exemplo, um navegador da web que renderiza um site da web, é usado por diversas razões. Uma razão é para, em qualquer estágio inicial, perceber que um erro ocorreu no aplicativo de cliente, por exemplo, que um botão ou uma queda total não está mais funcionando adequadamente. Tal erro no aplicativo de cliente pode alterar padrões de interação de usuário do aplicativo de cliente. O monitoramento também pode ser executado por propósitos estatísticos.
[0003] Tal processo de monitorar interação de usuário geralmente envolve cenários de configuração complexos e em alteração constante. Novos processos são implantados e distribuídos muito rapidamente. Para cada novo processo implantado ou alternado no aplicativo de cliente, o monitoramento foi implantado para perceber que os novos processos funcionam apropriadamente. Isso foi feito historicamente através da criação do script para o padrão de interação e permitindo que um agente execute o script, simulando um usuário real com uso do aplicativo de cliente. Essa abordagem é tanto um recurso intenso como complexo visto que a criação manual de script tem que ser executada para cada novo processo. Também é um recurso intenso identificar e definir cada novo processo. Para cada desenvolvimento do aplicativo de cliente, um novo script de monitoramento pode ter que ser adicionado ou um script existente pode ter que ser alterado.
[0004] O documento n° U.S. 20130067327 (IBM Corp) descreve uma solução para script de padrão de evento de gravação no qual as ações de usuário são gravadas. O próprio usuário pode iniciar a gravação quando interage com o aplicativo. Esses scripts podem ser usados posteriormente para comparação para que anomalias possam ser reveladas. O método descrito neste documento é tanto um recurso intenso como complexo e necessita de interação humana. Além disso, novos scripts obviamente têm que ser gravados quando novos processos são implantados.
[0005] Além disso, o aplicativo de cliente pode ser conectado a um servidor e uma interação de usuário pode fazer com que eventos de tráfego de dados sejam enviados entre o aplicativo de cliente e o servidor. Em tal configuração, um erro no servidor também pode alterar os padrões de interação de usuário do aplicativo de cliente. Uma abordagem comum para monitorar interações de usuário é feita historicamente analisando-se o processamento do servidor em resposta a uma interação de usuário. Essa abordagem ainda necessita de scripts de monitoramento ou scripts de análise para cada novo processo implantado. Adicionalmente, muitos proprietários de um aplicativo de cliente podem não ter acesso aos servidores caso os mesmos usem uma solução hospedada para o servidor.
[0006] Em conformidade, há uma necessidade por uma maneira aprimorada de monitorar padrões de interação de usuário.
SUMÁRIO DA INVENÇÃO
[0007] Devido à descrição acima, um objetivo da invenção é solucionar ou pelo menos reduzir uma ou diversas das desvantagens discutidas acima. Em geral, o objetivo acima é alcançado pelas reivindicações de patentes independentes fixadas.
[0008] De acordo com um primeiro aspecto, a presente invenção é realizada por um método realizado por um servidor de análise para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor e renderizados nos dispositivos de computação de cliente. O método compreende a etapa de: receber, de agentes que executam nos dispositivos de computação de cliente, dados de análise relativos às sequências de interações de usuário com os aplicativos de cliente, e eventos de tráfego de dados entre os aplicativos de cliente e o servidor produzidos em resposta às interações de usuário, em que cada interação de usuário e evento de tráfego de dados é associado a um identificador de usuário de um usuário que executa a interação de usuário.
[0009] O método compreende adicionalmente formar grupos a partir dos dados de análise agrupando-se cada interação de usuário com quaisquer eventos de tráfego de dados produzidos em resposta à interação de usuário, rotular cada grupo com um identificador de grupo com base na interação de usuário e os quaisquer eventos de tráfego de dados agrupados no grupo e que associam cada grupo ao identificador de usuário que é associado à interação de usuário.
[0010] O método compreende adicionalmente, para cada identificador de usuário nos dados de análise: identificar padrões dentre os grupos formados associados ao identificador de usuário, em que cada padrão compreende uma sequência dos grupos formados que incluem pelo menos um grupo de partida e um grupo final, em que o padrão corresponde a uma sequência de interações de usuário, e rotular cada padrão com um identificador de padrão com base nos identificadores de grupo da sequência dos grupos do padrão e armazenar informações relativas aos padrões identificados em um meio de armazenamento de dados, em que as informações compreendem pelo menos o identificador de padrão de cada padrão,
[0011] O método compreende, adicionalmente, calcular, para cada identificador de padrão identificado armazenado no meio de armazenamento de dados, um estado normal do identificador de padrão identificado dentre os grupos formados. O estado normal é calculado com base na diferença entre dois valores. O primeiro valor é um número de identificadores de usuário único que é associado a um grupo que tem o mesmo identificador de grupo como o grupo de partida do padrão que tem o identificador de padrão identificado. O segundo valor é um número de identificadores de usuário único que é associado a uma sequência de grupos que tem os mesmos identificadores de grupo como a sequência de grupos do padrão que tem o identificador de padrão identificado.
[0012] O termo “aplicativo de cliente” deve ser entendido, no contexto do presente relatório descritivo, como um navegador da web, um cliente inteligente, um aplicativo, um cliente fino ou qualquer outro software com base em um aplicativo executado em um dispositivo de computação de cliente como um computador do tipo desktop, um computador do tipo laptop, um telefone inteligente, um computador do tipo tablet, um relógio inteligente etc.
[0013] O termo “servidor” deve ser entendido, no contexto do presente relatório descritivo, como qualquer tipo de servidor, como um servidor da web, um serviço local que age como um servidor que salva conteúdo como páginas da web ou imagens, correios eletrônicos etc. localmente (isto é, um serviço em execução no dispositivo de computação de cliente), um servidor de cache remoto como um servidor de rede dedicado, etc.
[0014] O termo “tráfego de dados” deve ser entendido, no contexto do presente relatório descritivo, como qualquer tipo de tráfego de dados, com o uso de qualquer tipo de protocolo ou formato como HTTP, TCP, JSON, WebSocket, etc.
[0015] O termo “agentes em execução nos dispositivos de computação de cliente” deve ser entendido, no contexto do presente relatório descritivo, como, por exemplo, um script do lado do cliente ou qualquer outro aplicativo de software que pode identificar interações de usuário e eventos de tráfego de dados para e a partir do aplicativo de cliente e adicionalmente transmitir esses dados para um servidor remoto como um servidor de análise para monitorar padrões de interação de usuário.
[0016] O termo “dados de análise” deve ser entendido, no contexto do presente relatório descritivo, como dados de todos os dispositivos de computação de cliente, que tem um agente instalado ou em execução, que no momento está executando o aplicativo de cliente. Pode não ser notado que os dados podem ser recebidos de modo contínuo do(s) agente(s), em que no servidor de análise forma de modo contínuo grupos dos dados recebidos, e em que os grupos formados e armazenados no servidor de análise, por exemplo, em RAM ou em disco (ou em uma base de dados acoplada ao servidor de análise) até que uma das condições a seguir seja atendida. De acordo com uma modalidade, a condição compreende grupos de número fixo que foram formados. De acordo com outras modalidades, a condição compreende grupos formados durante certo período de tempo como uma hora, um minuto, um dia ou qualquer outro período de tempo adequado. De acordo com modalidades adicionais, a condição compreende o tamanho de byte dos grupos formados armazenados que excederam um tamanho de byte limite. As etapas remanescentes do método inventivo são, então, executadas quando uma das condições é atendida.
[0017] Uma vantagem de armazenar os grupos formados no disco é que uma abordagem de janela deslizante pode ser empregada quando identifica padrões dentre os grupos formados. Isso significa que para qualquer novo grupo formado e armazenado, os grupos previamente armazenados, entre os quais os padrões já foram identificados, podem ser usados para identificar padrões novamente, esse tempo com o novo grupo incluía e com, por exemplo, o primeiro grupo dentre os grupos previamente armazenados removidos. Os grupos armazenados podem, desse modo, ser vistos como uma fila de primeiro a entrar, primeiro a sair (FIFO), que é usada de modo contínuo para identificar padrões.
[0018] O termo “interação de usuário” deve ser entendido para abranger qualquer tipo de interação de usuário com um aplicativo de cliente como um clique em um botão, uma seleção em uma queda total, que verifica ou não verifica uma caixa de verificação, clicando em um enlace que seleciona um item de menu, etc.
[0019] Verifica-se que um grupo dos dados de análise pode compreender uma ou diversas interações de usuário executadas pelo mesmo usuário, isto é, associadas ao mesmo identificador de usuário, e quaisquer eventos de tráfego de dados enviados para e do servidor que é associado a uma ou diversas interações de usuário.
[0020] O termo “sequência de interações de usuário” deve ser entendido, no contexto do presente relatório descritivo, como um padrão que compreende um primeiro grupo que compreende uma interação de usuário e pelo menos um segundo grupo que compreende uma interação de usuário subsequente, em que as pelo menos duas interações de usuário são executadas pelo mesmo usuário. Isso será adicionalmente exemplificado na descrição detalhada deste relatório descritivo.
[0021] O termo “identificador de usuário” deve ser entendido, no contexto do presente relatório descritivo, como qualquer tipo de identificador que identifica um usuário específico. O identificador de usuário pode ser único em uma base de seção, ou com base no computador de cliente específico, por exemplo, o número de IP do computador de cliente ou um endereço MAC da placa de rede. Pode ser adicionalmente possível usar uma licença do software de cliente, ou consultar um gerenciador de licença na inicialização de aplicativo para uma licença de software ou para consultar um servidor/serviço de provisão de identificação de usuário específico para um identificador de usuário único. O identificador de usuário pode ser adicionalmente o mesmo durante um período de tempo específico para um computador de cliente ou com base na realização de logon do usuário com o uso do computador de cliente.
[0022] O termo “meio de armazenamento de dados” deve ser entendido como qualquer tipo de meio de armazenamento de dados como RAM ou disco ou uma base de dados. O meio de armazenamento de dados pode ser remoto do servidor de análise ou localmente presente no servidor de análise. Uma base de dados pode compreender uma base de dados distribuída que compreende diversas bases de dados. O meio de armazenamento de dados pode compreender, por exemplo, tanto um RAM quanto uma base de dados, ou qualquer outra combinação do mencionado acima.
[0023] A presente invenção tem como base o entendimento de que, mediante a colocação do agente no cliente, por exemplo, com a colocação de um script simples em um site da web e o envio de todos os dados relativos às interações de usuário com o aplicativo de cliente e eventos de tráfego de dados entre o aplicativo de cliente e o servidor produzidos em resposta à interação de usuário para um servidor de análise, a configuração necessária para executar o monitoramento de interação de usuário poderá ser substancialmente reduzida. Não devem ser criados ou definidos scripts por um usuário em novos processos. Em vez disso, tais novos processos serão automaticamente identificados pelo servidor de análise e adicionalmente monitorados.
[0024] Visto que o servidor de análise recebe dados associados ao identificador de usuário, o servidor pode rastrear sequências de interações de usuário e armazenar as sequências e os eventos associados de tráfego de dados, como um padrão. Agrupando-se pelo menos uma interação de usuário e quaisquer eventos de tráfego associados à mesma, e rotulando-se o grupo por um identificador de grupo com base (partes de) nos dados de análise relativos a eventos e interação agrupados, o identificador de grupo pode ser usado para encontrar outros grupos com o mesmo identificador de grupo através dos dados de análise, em que os grupos identificados com o mesmo identificador de grupo podem ser originados a partir de uma interação de usuário executada por usuários diferentes. Em conformidade, a presente invenção fornece identificação de interações de usuário executadas por usuários diferentes como “a mesma interação de usuário” quando se trata de monitoramento padrão.
[0025] Desse modo, os padrões que são identificados a partir dos grupos de um usuário específico, similarmente, podem ser considerados como o mesmo como um padrão identificado de grupos de outro usuário, se os identificadores de grupo dos grupos do padrão corresponderem entre os usuários.
[0026] Pode ser observado que a etapa de armazenar informações relativas aos padrões identificados pode compreender verificar se o identificador de padrão do padrão identificado já existe no meio de armazenamento de dados, e apenas armazenar as informações se o identificador de padrão do padrão identificado não existir no meio de armazenamento de dados.
[0027] Após todos os padrões serem identificados e rotulados por um identificador de padrão, um estado normal do padrão através de todos os usuários identificados dentre os grupos formados pode ser calculado. Basicamente, isso é executado comparando-se quantos usuários iniciaram um padrão com quantos finalizaram o padrão. Desse modo, o estado pode ser definido como um número percentual. Por exemplo, o estado normal da sequência A até B é 33%, A e B representam dois grupos, o estado normal da sequência A até C são 20%. Os 47% remanescentes podem, por exemplo, ter finalizado o aplicativo de cliente após a interação de usuário dar origem ao grupo A. Isso significa que se 100 pessoas iniciarem o padrão A até C, isto é, o número de identificadores de usuário único (100) que é associado a um grupo que tem o mesmo identificador de grupo (por exemplo, “A”) como o grupo de partida de um padrão que tem o identificador de padrão identificado (por exemplo, “A até C”), 20 dos usuários estão finalizando o padrão, isto é, um número de identificadores de usuário único (20) que é associado a uma sequência de grupos (por exemplo, grupo A seguido pelo grupo C) que tem os mesmos identificadores de grupo (por exemplo, “A”, “C”) como a sequência de grupos (por exemplo, grupo A seguido pelo grupo C) do padrão que tem o identificador de padrão identificado (por exemplo, “A até C”). Isso será adicionalmente explicado na descrição detalhada desse aplicativo.
[0028] A presente invenção é vantajosa visto que quaisquer novos processos implantados no aplicativo de cliente ou o servidor irão imediatamente dar origem a novos padrões que são identificados pelo servidor de análise e dado a um estado normal. Nenhuma criação de script ou interação humana similar é necessária.
[0029] De acordo com as modalidades da presente invenção, cada identificador de usuário compreende pelo menos um tipo de usuário. De acordo com essa modalidade, o método que compreende adicionalmente as etapas de para cada identificador de padrão identificado armazenado no meio de armazenamento de dados e para cada tipo de usuário específico do pelo menos um tipo de usuário, calcular um estado normal do identificador de padrão identificado para o tipo de usuário específico dentre os grupos formados. O estado normal tem como base uma diferença entre dois valores. O primeiro valor é um número de identificador de usuário único que compreende o tipo de usuário específico e que é associado a um grupo que tem o mesmo identificador de grupo como o grupo de partida do padrão que tem o identificador de padrão identificado. O segundo valor é um número de identificadores de usuário único que compreende o tipo de usuário específico e que é associado a uma sequência de grupos que tem os mesmos identificadores de grupo como a sequência de grupos do padrão que tem o identificador de padrão identificado.
[0030] Quando monitora interações de usuário, pode ser interessante monitorar a interação de um certo tipo de usuários. Para facilitar isso, cada identificador de usuário pode compreender pelo menos um tipo de usuário que compreende informações relacionadas ao tipo de usuário. O tipo de usuário pode, por exemplo, especificar que tipo de navegador da web o usuário está usando, que país e/ou cidade o usuário está atualmente presente ou que fornecedor de serviços de internet (ISP) o usuário usa etc. O estado normal de um padrão para um tipo de usuário específico é executado da mesma maneira para o estado normal geral de um padrão, mas apenas grupos e padrões para usuários que tem o tipo de usuário específico, isto é, Mozilla Firefox ou Sweden, é usado para calcular o estado normal.
[0031] De acordo com modalidades da presente invenção, o método compreende adicionalmente a etapa de agrupar os padrões identificados armazenados no meio de armazenamento de dados que compreende mais que dois grupos e que tem pelo menos o mesmo grupo de partida e grupo final. Para cada padrão agrupado, o método que compreende adicionalmente a etapa de rotular o padrão agrupado com um identificador de padrão com base nos identificadores de grupo da sequência dos grupos dos padrões agrupados no padrão agrupado. O método que compreende adicionalmente a etapa de armazenar informações relativas ao padrão agrupado no meio de armazenamento de dados, em que as informações compreendem pelo menos o identificador de padrão do padrão agrupado. O estado normal para o identificador de padrão rotular o padrão agrupado é, então, calculado adicionando-se os estados normais dos padrões armazenados agrupados no padrão agrupado.
[0032] Em um aplicativo de cliente que compreende muitas sequências possíveis de interações de usuário, pode ser interessante agrupar certos padrões identificados que compreendem pelo menos o mesmo grupo de partida e o mesmo grupo final em um padrão agrupado para calcular e monitorar o estado normal de uma sequência mais geral de interações de usuário.
[0033] De acordo com modalidades da presente invenção, o método compreende adicionalmente a etapa de, para cada estado normal calculado, armazenar o estado normal para o identificador de padrão correspondente e o identificador de padrão correspondente no meio de armazenamento de dados. Isso significa que o estado normal de qualquer estado normal de um identificador de padrão identificado dentre os grupos formados e/ou qualquer estado normal de um identificador de padrão identificado para o tipo de usuário específico e/ou qualquer estado normal para um identificador de padrão rotular um padrão agrupado pode ser armazenado no meio de armazenamento de dados. Os estados normais armazenados de qualquer tipo de padrões (por exemplo, identificador de padrão), podem ser usados para propósitos estatísticos ou para qualquer outro tipo de propósitos de monitoramento de interação de usuário.
[0034] De acordo com modalidades da presente invenção, a etapa de armazenar o identificador de padrão que rotula o padrão agrupado e o estado normal é apenas executada se pelo menos um dos estados normais dos padrões armazenados agrupados no padrão agrupado for menor que um nível limítrofe. De acordo com essa modalidade, apenas os padrões que tem um estado normal baixo, isto é, em que, por exemplo, é incomum que um usuário vá do grupo D para o grupo E antes de ir par ao grupo T, é muito mais comum ir do grupo D para o grupo B para o grupo T, pode ser interessante para grupo os dois padrões para um padrão agrupado, D-E|B-T, e monitorar o estado normal desse padrão, visto que o estado normal do padrão incomum D-E-T pode variar rapidamente se apenas alguns usuários a mais executarem aquela sequência de interações de usuário.
[0035] De acordo com modalidades da presente invenção, o método compreende adicionalmente as etapas de monitorar a alteração do estado normal de um identificador de padrão ao longo de um período de tempo e gerar uma condição de erro no caso da alteração do estado normal exceder um nível limítrofe.
[0036] A vantagem dessa modalidade é que o servidor de análise pode detectar alterações no estado normal para um padrão e gerar uma condição de erro que pode ser enviada, por exemplo, para um administrador de site da web ou um departamento de suporte/qualidade dos proprietários do aplicativo de cliente. A condição de erro pode ser usada para garantir que o aplicativo de cliente está funcionando corretamente.
[0037] De acordo com modalidades da presente invenção, o método compreende adicionalmente as etapas de monitorar a alteração do estado normal para um tipo de usuário específico de um identificador de padrão ao longo de um período de tempo, gerar uma condição de erro no caso da alteração do estado normal exceder um nível limítrofe.
[0038] A vantagem dessa modalidade é que o servidor de análise pode detectar alterações no estado normal para um padrão para um tipo de usuário específico e gerar uma condição de erro que pode ser enviada, por exemplo, para um administrador de site da web ou um departamento de suporte/qualidade dos proprietários do aplicativo de cliente. A condição de erro pode ser usada para garantir que o aplicativo de cliente está funcionando corretamente.
[0039] De acordo com modalidades da presente invenção, o intervalo do período de tempo tem como base um número de interações de usuário com os aplicativos de cliente durante aquele período de tempo. Em conformidade, o método pode ser mais robusto para agilizar alterações do número de usuários que interagem com os aplicativos de cliente, por exemplo, durante o tempo da noite ou durante um feriado prolongado.
[0040] De acordo com modalidades da presente invenção, o intervalo do período de tempo tem como base uma alteração de tempo limitado no servidor. Em conformidade, o método pode ser mais robusto para, por exemplo, uma campanha em um site da web, que pode alterar os estados normais da interação de usuário padrão durante um curto período de tempo. Nesse caso, o administrador de site da web pode não desejar que condições de erro sejam enviadas visto que a variação dos estados normais é esperada.
[0041] De acordo com modalidades da presente invenção, cada um dos aplicativos de cliente pode fazer interface com uma pluralidade de servidores. Visto que o agente está em execução no dispositivo de computador de cliente, o método é indiferente ao número de servidores a partir dos quais o tráfego de dados envia e de cada servidor que necessita ser monitorado. Desse modo, a capacidade de escalabilidade e simplicidade do método inventivo é amplamente aprimorada em comparação ao caso em que os agentes de monitoramento tenham que estar presentes em cada uma da pluralidade de servidores.
[0042] De acordo com modalidades da presente invenção, o aplicativo de cliente é um navegador da web que renderiza um site da web e os identificadores de grupo têm como base um estado de uma página da web na qual a interação de usuário foi executada.
[0043] O termo “estado de uma página da web” deve ser entendido, no contexto do presente relatório descritivo, como, por exemplo, o conteúdo em um controle Ajax na página da web ou o item selecionado atualmente em um menu de queda total ou qualquer outro estado possível da página da web. O identificador de grupo pode ter como base em qual condição o aplicativo de cliente está quando a interação de usuário ocorre. Com o uso de um estado de uma página da web, isso pode ser alcançado independente de quais elementos são desenvolvidos na página da web. De acordo com algumas modalidades, o estado da página da web pode ser o URL da página da web.
[0044] De acordo com modalidades da presente invenção, a rotulação de cada grupo com um identificador de grupo compreende remover dados específicos de sessão de aplicativo de cliente dos eventos de tráfego de dados e a interação de usuário correspondente e, então, rotular cada grupo com um identificador de grupo com base nas partes remanescentes dos eventos de tráfego de dados e na interação de usuário correspondente. De acordo com modalidades, os dados de análise são salvos em uma base de dados ou qualquer outro meio de armazenamento de dados conforme definido acima. Removendo-se o usuário específico e dados específicos de sessão dos eventos de tráfego de dados e dados relativos às interações de usuário, o armazenamento pode ser alcançado mais rápido e exige menos memória. Os dados que são removidos podem, por exemplo, pertencer a registros de tempo, identificações únicas de partes de dados incluídos em um evento de tráfego de dados, dados específicos de protocolo etc. Além disso, removendo-se o usuário específico e os dados específicos de sessão dos eventos de tráfego de dados e os dados relativos às interações de usuário antes de salvar temporariamente os dados para análise posterior (isto é, até que uma das condições discutidas acima seja atendida) pode exigir menos memória e salvar pode ser mais eficaz em termos de tempo. Além disso, a remoção de um usuário específico e de dados específicos de sessão dos eventos de tráfego de dados e dados relativos às interações de usuário pode simplificar amplamente o agrupamento e identificação dos grupos.
[0045] Em um segundo aspecto, a presente invenção fornece um servidor de análise para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor e renderizados nos dispositivos de computação de cliente.
[0046] O servidor de análise compreende uma unidade de recebimento adaptada para receber, de agentes em execução nos dispositivos de computação de cliente, dados de análise relativos às sequências de interações de usuário com os aplicativos de cliente, e eventos de tráfego de dados entre os aplicativos de cliente e o servidor produzidos em resposta às interações de usuário, em que cada um dentre a interação de usuário e o evento de tráfego de dados é associado a um identificador de usuário de um usuário que executa a interação de usuário.
[0047] O servidor de análise compreende adicionalmente uma unidade de agrupamento de eventos adaptada para formar grupos a partir dos dados de análise agrupando-se cada interação de usuário com quaisquer eventos de tráfego de dados produzidos em resposta à interação de usuário, rotular cada grupo com um identificador de grupo com base na interação de usuário e os quaisquer eventos de tráfego de dados agrupados no grupo e que associam cada grupo ao identificador de usuário que é associado à interação de usuário.
[0048] O servidor de análise compreende adicionalmente uma unidade de identificação de padrão adaptada para cada identificador de usuário nos dados de análise: identificar padrões dentre os grupos formados associados ao identificador de usuário, em que cada padrão compreende uma sequência dos grupos formados que incluem pelo menos um grupo de partida e um grupo final, em que o padrão corresponde a uma sequência de interações de usuário, e rotular cada padrão com um identificador de padrão com base nos identificadores de grupo da sequência dos grupos do padrão e para armazenar informações relativas aos padrões identificados em um meio de armazenamento de dados, em que as informações compreendem pelo menos o identificador de padrão de cada padrão.
[0049] O servidor de análise compreende, adicionalmente, uma unidade de cálculo de estado normal adaptada para, para cada identificador de padrão identificado armazenado no meio de armazenamento de dados, calcular um estado normal do identificador de padrão identificado dentre os grupos formados. O estado normal é tem como base a diferença entre um número de identificadores de usuário único que é associado a um grupo que tem o mesmo identificador de grupo como o grupo de partida do padrão que tem o identificador de padrão identificado, um número de identificadores de usuário único que é associado a uma sequência de grupos que tem os mesmos identificadores de grupo como a sequência de grupos do padrão que tem o identificador de padrão identificado.
[0050] Pode ser observado que as unidades descritas acima podem ser implantadas em um único software executado no servidor de análise, por exemplo, por um ou mais processadores no servidor. As unidades também podem ser implantadas em softwares conectados diferentes que executam no servidor de análise. Nesse caso, uma ou mais das unidades mencionadas acima podem ser implantadas em um único software.
[0051] De acordo com algumas modalidades, o servidor de análise compreende um meio de gravação legível por computador que tem gravados no mesmo um ou mais programas para implantar o método de acordo com o primeiro aspecto da presente invenção quando executado em um dispositivo (por exemplo, o servidor de análise) que tem capacidades de processamento.
[0052] Em um terceiro aspecto, a presente invenção fornece um agente em execução em um dispositivo de computação de cliente, o dispositivo de computação de cliente que renderiza um aplicativo de cliente que faz interface com um servidor, em que o agente é remotamente acoplado a um servidor de análise para monitorar padrões de interação de usuário. O agente compreende: meios para identificar uma interação de usuário com o aplicativo de cliente, meios para identificar uma sessão de usuário para a interação de usuário identificada, meios para identificar eventos de tráfego de dados entre o aplicativo de cliente e o servidor produzidos em resposta à interação de usuário, meios para associar a interação de usuário com um identificador de usuário com base na sessão de usuário identificada, e para associar os eventos de tráfego de dados identificados entre o aplicativo de cliente e o servidor produzidos em resposta à interação de usuário com o identificador de usuário e meios para transferir dados de análise que compreendem a interação de usuário identificada e os eventos de tráfego de dados identificados para o servidor de análise.
[0053] O segundo e o terceiro aspecto podem, em geral, ter os mesmos recursos e vantagens como o primeiro aspecto.
[0054] Outros objetivos, recursos e vantagens da presente invenção irão aparecer a partir da revelação detalhada a seguir e a partir dos desenhos.
BREVE DESCRIÇÃO DOS DESENHOS
[0055] Esses e outros aspectos da presente invenção serão descritos agora em maiores detalhes, com referência aos desenhos anexos que mostram modalidades da invenção, em que:
[0056] A Figura 1 descreve um sistema que compreende um servidor de análise de acordo com modalidades da presente invenção,
[0057] A Figura 2 é um diagrama de blocos que descreve um servidor de análise de acordo com modalidades da presente invenção,
[0058] A Figura 3 é um fluxograma que descreve um método para monitorar padrões de interação de usuário de acordo com modalidades da presente invenção,
[0059] A Figura 4 descreve esquematicamente interações de usuário com um site da web,
[0060] A Figura 5 descreve padrões de acordo com modalidades da presente invenção,
[0061] A Figura 6 descreve esquematicamente períodos de tempo diferentes para monitorar uma alteração do estado normal de um padrão,
[0062] A Figura 7 é um diagrama de blocos que descreve um agente em execução em um dispositivo de computação de cliente de acordo com modalidades da presente invenção.
[0063] Conforme ilustrado nas Figuras, os tamanhos de camadas e regiões são exagerados para propósitos de ilustração e, desse modo, fornecem ilustração das estruturas gerais de modalidades da presente invenção. Os números de referência similares se referem a elementos similares durante todo o documento.
DESCRIÇÃO DETALHADA
[0064] A presente invenção será descrita agora mais adiante no presente documento em referência aos desenhos anexos, nos quais as modalidades preferenciais atuais da invenção são mostradas. No entanto, a invenção pode ser incorporada de muitas formas diferentes e não deve ser interpretada como limitante às modalidades apresentadas no presente documento; em vez disso, essas modalidades são fornecidas por meticulosidade e completude e transmite completamente o escopo da invenção para o indivíduo versado.
[0065] A Figura 1 mostra a título de exemplo um sistema 100 em que padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor 102a-b e renderizados nos dispositivos de computação de cliente 110a-c são monitorados. O sistema 100 compreende um servidor de análise 106 conectado a um meio de armazenamento de dados 108, nesse exemplo, uma base de dados 108, mas também pode ser um disco rígido ou uma RAM ou uma combinação dos mesmos, para armazenar pelo menos identificadores de padrão e um estado normal correspondente para o identificador de padrão. Nessa modalidade, o servidor de análise 106 e a base de dados 108 são dispositivos separados, mas em outras modalidades, o servidor de análise compreende a base de dados 108. No sistema exemplificativo da Figura 1, três dispositivos de computação de cliente 110a-c são conectados aos dois servidores 102a-b e o servidor de análise 106 através de uma rede 112, por exemplo, a internet ou uma intranet. Cada um dos dispositivos de computação de cliente 110a-c renderiza um aplicativo de cliente que faz interface com os servidores 102a-b. Cada um dos dispositivos de computação de cliente 110a-c compreende adicionalmente um agente que identifica a interação de usuário com o aplicativo de cliente no dispositivo de computação de cliente 110a-c e eventos de tráfego de dados entre os aplicativos de cliente e os dois servidores 102a-b produzidos em resposta às interações de usuário e envia dados relativos no mesmo para o servidor de análise 106. A função do agente será adicionalmente descrita abaixo em conjunto com a Figura 4 e a Figura 7.
[0066] Um método realizado por um servidor de análise executado para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor e renderizados nos dispositivos de computação de cliente e componentes de tal servidor de análise 106 será descrito agora em conjunto com as Figuras 2 e 3.
[0067] O servidor de análise 106 compreende uma unidade de recebimento 202 que é adaptada para receber S302, de agentes em execução nos dispositivos de computação de cliente, dados de análise relativos às sequências de interações de usuário com os aplicativos de cliente e eventos de tráfego de dados entre os aplicativos de cliente e o servidor produzidos em resposta às interações de usuário. Cada interação de usuário e eventos de tráfego de dados produzidos em resposta à interação de usuário é associada a um identificador de usuário do usuário que executa a interação de usuário. O servidor de análise pode, de acordo com algumas modalidades, compreender um meio temporário de armazenamento de dados (não mostrado) para armazenar os dados de análise recebidos de modo contínuo do(s) agente(s), para uso posterior, por exemplo, para verificação de estados normais de padrões. A base de dados temporária pode estar localizada no servidor de análise 106 ou localizada remotamente, em um dispositivo separado e acoplada ao servidor de análise. Além disso, de acordo com algumas modalidades, os dados recebidos de análise são (também) armazenados em um meio de armazenamento de dado mais permanente, por exemplo, um meio de armazenamento de dados 108, para uso posterior no processo de análise, por exemplo, para verificação de resultados de monitoramento ou para uso se informações adicionais em relação aos dados de análise forem necessárias.
[0068] O servidor de análise 202 compreende adicionalmente uma unidade de agrupamento de evento 204 adaptada para formar grupos S304 a partir dos dados de análise agrupando-se cada evento de tráfego de dados associado ao identificador de usuário com uma interação de usuário correspondente, e rotular cada grupo com um identificador de grupo com base nos eventos de tráfego de dados e na interação de usuário correspondente. A unidade de agrupamento de evento associa adicionalmente cada grupo ao identificador de usuário que é associado à interação de usuário. A unidade de agrupamento de evento 204 recebe os dados de análise da unidade de recebimento 202 de modo contínuo conforme descrito acima.
[0069] De acordo com algumas modalidades, quando agrupa cada evento de tráfego de dados associados ao identificador de usuário com uma interação de usuário correspondente, os dados específicos de sessão de aplicativo de cliente são removidos dos eventos de tráfego de dados e da interação de usuário correspondente. Isso significa que, por exemplo, se a interação de usuário ocorrer em uma loja eletrônica, na qual o usuário coloca certo artigo em um carrinho de compras virtual, em que a interação de usuário é o clique do usuário no botão "comprar", os dados específicos de sessão de aplicativo de cliente podem ser a identificação do produto, o registro de tempo do clique de compra, a cor do produto etc. Nesse exemplo, apenas um aspecto que pode ser interessante é que o usuário clicou em um botão "comprar", por exemplo, na página de casaco feminino e que os eventos de dados compreendem informações relativas ao carrinho que agora incluem um item.
[0070] Conforme pode ser visto na Figura 2, a unidade de agrupamento de evento 204 pode ser adicionalmente acoplada ao meio de armazenamento de dados 108, para armazenar os grupos formados. A unidade de agrupamento de evento pode, de acordo com algumas modalidades, armazenar adicionalmente as interações de usuário "limpas" e eventos de tráfego de dados de acordo com o disposto acima no meio de armazenamento de dados 108. Isso exige menos espaço no armazenamento de dados, em comparação a armazenar as interações completas e o tráfego de dados. A unidade de agrupamento de evento 204 rotula cada grupo com uma identificação de grupo, por exemplo, um valor do hash da interação de usuário e o tráfego de dados no grupo ou um valor do hash das interações de usuário limpas e eventos de tráfego de dados de acordo com o disposto acima. O identificador de grupo, desse modo, reflete o estado do aplicativo de cliente quando a(s) interação(ões) de usuário em um grupo é feita. Na loja eletrônica exemplificativa acima, o identificador de grupo pode refletir e ter como base, por exemplo, o URL da página de casaco feminino. No caso da loja eletrônica ter como base, por exemplo, controles Ajax, o que significa que muitas ou todas as “páginas” na loja eletrônica têm o mesmo URL, o identificador de grupo pode refletir e ter como base o estado do controle Ajax no qual o abastecimento de casacos femininos foi apresentado. A unidade de agrupamento de evento também irá associar cada grupo ao identificador de usuário que é associado à(s) interação(ões) de usuário do grupo.
[0071] O servidor de análise 106 compreende adicionalmente uma unidade de identificação de padrão 206 adaptada para, para cada identificador de usuário nos dados de análise, identificar padrões S306 dentre os grupos formados associados ao identificador de usuário, da unidade de agrupamento de evento 204. Cada padrão compreende uma sequência dos grupos formados. Cada padrão inclui pelo menos um grupo de partida e um grupo final para que o padrão corresponda a uma sequência de interações de usuário. A formação de padrão será adicionalmente discutida em conjunto com a Figura 5. A unidade de identificação de padrão 206 rotula cada padrão com um identificador de padrão com base nos identificadores de grupo da sequência de grupos do padrão. O identificador de padrão pode, por exemplo, ser uma lista dos identificadores de grupo dos grupos que o padrão compreende. Isso pode ser vantajoso, visto que os grupos no padrão podem ser facilmente rastreados de volta a partir do identificador de padrão. De acordo com modalidades, a unidade de identificação de padrão 206 também é acoplada ao meio de armazenamento de dados 108 para armazenar (S306) os padrões identificados. As informações armazenadas para cada padrão que compreende pelo menos o identificador de padrão de cada padrão. Se o identificador de padrão for desenvolvido de acordo com o disposto acima, os grupos do padrão que têm o identificador de padrão são facilmente rastreados de volta.
[0072] O servidor de análise compreende adicionalmente uma unidade de cálculo de estado normal 208 adaptada para, para cada identificador de padrão identificado armazenado no meio de armazenamento de dados 108, calcular um estado normal S308 do identificador de padrão identificado dentre os grupos formados. O cálculo de estado normal será discutido adicionalmente em conjunto com a Figura 5, mas o cálculo tem como base tanto as informações que podem ser recebidas da unidade de agrupamento de evento 204 quanto da unidade de identificação de padrão 206. A unidade de cálculo de estado normal 208 pode, desse modo, ser conectada à unidade de agrupamento de evento 204 e à unidade de identificação de padrão 206. Em outras modalidades, a unidade de cálculo de estado normal 208 pode extrair os dados necessários para calcular um estado normal da base de dados 108.
[0073] O servidor de análise pode, de acordo com modalidades, compreender, adicionalmente, uma unidade de armazenamento padrão 210 adaptada para cada identificador de padrão, armazenar S310 o identificador de padrão e o estado normal correspondente para o identificador de padrão no meio de armazenamento de dados 108.
[0074] A Figura 3 descreve adicionalmente as etapas opcionais S312, S314 do método realizado pelo servidor de análise 106 que será explicado agora em conjunto com a Figura 5. De acordo com algumas modalidades, o método compreende adicionalmente a etapa de agrupar os padrões identificados S312 que compreendem mais de dois grupos e que têm pelo menos o mesmo grupo de partida e grupo final. Na Figura 5, três padrões ou sequências de grupos, que rotularam A-H na Figura 5, compreendem mais de 2 grupos e têm o mesmo grupo de partida e grupo final. Esses são os padrões A-C-E, A-B-E e A-D-E. De acordo com algumas modalidades, esses três padrões podem ser agrupados em um padrão agrupado, A-C|B|D-E, em que a notação C|B|E descreve que qualquer um dos grupos C, B, D pode ser o grupo intermediário no padrão agrupado. Esse padrão agrupado pode ser rotulado com um identificador de padrão com base nos identificadores de grupo do grupo de partida e do grupo final, possivelmente com alguma adição que tem como base os grupos intermediários possíveis C, B, D.
[0075] O cálculo de estados normais de um padrão será descrito agora com o uso da Tabela 1.
Figure img0001
TABELA 1
[0076] A primeira coluna relata o padrão; cada um dos padrões na Figura 5 tem uma fileira na Tabela 1. Conforme pode ser visto na Tabela 1, cada padrão inicia com o grupo A. Os valores abaixo do “Grupo 1”, desse modo, descrevem, para cada padrão, um número de identificadores de usuário único que é associado a um grupo que tem o mesmo identificador de grupo (por exemplo, “A”) como o grupo de partida do padrão que tem o identificador de padrão identificado. O valor do último grupo no padrão consequentemente corresponde a um número de identificadores de usuário único que é associado a uma sequência de grupos que têm os mesmos identificadores de grupo como a sequência de grupos do padrão que têm o identificador de padrão identificado. Em conformidade, 5.000 usuários (identificadores de usuário) iniciaram o padrão A-C-E (identificador de padrão). Dos 5.000 identificadores de usuário, 100 continuaram para o grupo C e 90 dos 100 finalizaram os padrões continuando-se para o grupo E. O estado normal de padrão A-C-E é, desse modo, 90/5.000 = 1,8 %. De modo similar, 5.000 usuários (identificadores de usuário) iniciaram o padrão A-B-E. Dos 5.000 identificadores de usuário, 1.000 continuaram para o grupo B e 700 dos 1.000 finalizaram os padrões continuando-se para o grupo E. O estado normal de padrão A-C-E é, desse modo, 700/5000 = 14 %. O estado normal para o padrão A-D-E (1%), A-G-H (6%) e A-F (20%) é calculado da mesma maneira.
[0077] O estado normal do padrão agrupado discutido acima, A- C|B|D-E é calculado adicionando-se os estados normais dos padrões agrupados no padrão agrupado. O estado normal do padrão agrupado A- C|B|D-E é, desse modo, 1,8 + 14 + 1 = 16,8%.
[0078] De acordo com algumas modalidades, o padrão agrupado e o estado normal do padrão agrupado são apenas armazenados se pelo menos um dos estados normais dos padrões armazenados agrupados no padrão agrupado forem menores que um nível limítrofe. Em conformidade, no exemplo acima, se o nível limítrofe for >1%, o padrão agrupado (identificador para) A-C|B|D-E e o estado normal seriam armazenados, mas se o nível limítrofe estiver abaixo de 1 %, o armazenamento não será executado.
[0079] De acordo com algumas modalidades, todos, mas um dos estados normais em um padrão agrupado deve estar abaixo do nível limítrofe para o armazenamento ser executado. No caso acima, se o nível limítrofe for, por exemplo, 1,5%, o padrão agrupado A-C|B|D-E não será armazenado. De acordo com algumas modalidades, quando isso ocorre, A-D-E (abaixo do nível limítrofe) pode ser agrupado com A-B-E ou A-C-E e, então, armazenado.
[0080] De acordo com algumas modalidades, apenas padrões (agrupados ou regulares) com um estado normal acima de um nível limítrofe serão armazenados e, desse modo, monitorados. O proprietário do aplicativo de cliente pode, por exemplo, ser apenas interessar parar monitorar o estado normal de certo número de padrões. De acordo com outras modalidades, apenas o número de topo de padrões, isto é, com os estados normais mais altos, será armazenado.
[0081] De acordo com algumas modalidades, cada identificador de usuário compreende pelo menos um tipo de usuário. Os padrões de interação de usuário podem, desse modo, ser monitorados para o usuário em um nível de tipo de usuário específico. Por exemplo, se o proprietário de uma loja eletrônica estiver preocupado que os usuários naveguem na loja eletrônica com o uso de Mozilla Firefox possam experimentar problemas de pagamento para os produtos, o proprietário pode querer monitorar os padrões de interação de usuário para o tipo de usuário “Mozilla Firefox”. A Tabela 2 descreve o mesmo que a Tabela 1, mas apenas para usuários com o tipo de usuário “Mozilla Firefox”. Em outras palavras, os valores abaixo do “Grupo 1” na Tabela 2, desse modo, descrevem, para cada padrão, um número de identificador de usuário único que compreende o tipo de usuário específico (por exemplo, “Mozilla Firefox”) e que é associado a um grupo que tem o mesmo identificador de grupo (por exemplo, “A”) como o grupo de partida do padrão que tem o identificador de padrão identificado. O valor de do último grupo no padrão consequentemente corresponde a um número de identificadores de usuário único que compreende o tipo de usuário específico e que é associado a uma sequência de grupos que têm os mesmos identificadores de grupo como a sequência de grupos do padrão que tem o identificador de padrão identificado.
Figure img0002
TABELA 2
[0082] A partir do disposto acima, o proprietário do site da web pode, por exemplo, constatar que apenas 1% dos usuários atende o padrão, A-F em comparação a 20% no caso geral na Tabela 1, mas em vez disso, 30% dos usuários Firefox atenderam ao padrão A-G-H em vez de 6% no caso geral na Tabela 1. O A-F pode, como um exemplo, corresponder ao pagamento de um produto enquanto A-G-H corresponde a ler as páginas de auxílio. Pode ser observado que o discutido acima em relação a agrupar padrões e filtrar os padrões antes de armazenar os mesmos pode ser igualmente válido para os padrões de interação de usuário em um nível de tipo de usuário.
[0083] O monitoramento de padrões de interação de usuário pode ser feito a fim de garantir que o aplicativo de cliente funcione como deve, o que pode significar que o estado normal dos padrões de interação de usuário permaneça praticamente o mesmo do dia-a-dia. Por essa razão, de acordo com algumas modalidades, a alteração do estado normal para um padrão (identificador) ao longo de um período de tempo pode ser monitorada. Se o estado normal exceder um nível limítrofe, uma condição de erro pode ser gerada e enviada ou apresentada, por exemplo, ao proprietário do aplicativo de cliente ou similar. Essa análise de desvio para os estados normais pode ocorrer em tipos diferentes de períodos de tempo. O período de tempo pode ser fixo, uma hora, um dia etc. O período de tempo também pode ser dinâmico e o intervalo pode ter como base a quantidade de uso do aplicativo de cliente. Isso é ilustrado na Figura 6. Cada uma das linhas pontilhadas 502 representa os dados de análise recebidos de um agente. O número de pontos em cada linha representa as ocorrências de dados recebidos de cada agente. Muitos pontos significam que muitos dos dados são enviados a partir do agente. Os períodos de tempo são representados pelos retângulos 504, 506. A largura do retângulo corresponde ao intervalo do período de tempo. Conforme pode ser visto na Figura 6, o primeiro período de tempo 504 é mais curto que o segundo período de tempo visto que, durante o primeiro período de tempo 504, todos os seis agentes enviaram dados para o servidor de análise. Durante o segundo período de tempo, um dos agentes mais movimentados para de comunicar o uso do aplicativo de cliente para o qual o mesmo comunica os dados. Um segundo agente também para de comunicar o uso de seu aplicativo de cliente. Em conformidade, durante o segundo período de tempo 506, o uso dos aplicativos de cliente cai e o segundo período de tempo 506 é, desse modo, maior.
[0084] Pode ser observado que Figura 6 e o texto acima que descreve a Figura 6 é uma versão muito simplificada da realidade para simplificar a descrição do conceito que decide o intervalo de períodos de tempo. Em uma implantação real, um período de tempo 504, 506 pode compreender milhares de agentes que comunicam dados e, em geral, um agente específico que não comunica os dados durante um período de tempo total.
[0085] Pode ser adicionalmente observado que o conteúdo da Figura 6 também pode ser usado para descrever o período de tempo usado pelo servidor de análise para coletar os dados de análise e formar grupos antes de identificar padrões e calcular um estado normal para cada padrão.
[0086] Os componentes e a funcionalidade de um agente em execução em um dispositivo de computação de cliente, em que o dispositivo de computação de cliente está renderizando um aplicativo de cliente que faz interface com um servidor, e em que o agente é remotamente acoplado a um servidor de análise para monitorar padrões de interação de usuário será descrito agora em conjunto com as Figuras 4 e 6. A Figura 4 mostra um título de interações de usuário exemplificativas 412a-c com um site da web (aplicativo de cliente). O site da web é que faz interface com um servidor 102. Um agente 416 (também mostrado na Figura 6) está enviando dados de análise 414 para o servidor de análise remotamente acoplado 108. Os dados de análise pertencem a interações de usuário 412a-c e eventos de tráfego de dados 416a-c entre o site da web e o servidor 102 produzidos em resposta às interações de usuário 412a-c. Um usuário 410 está interagindo com o site da web. O mesmo entra primeiro na primeira página 402, interação de usuário 412a. O agente 416 compreende meios 702 para identificar a interação de usuário 412a com o aplicativo de cliente. O agente compreende, adicionalmente, meios 704 para identificar uma sessão de usuário para a interação de usuário identificado, e meios 708 para associar a interação de usuário 412a a um identificador de usuário com base na sessão de usuário identificada. Em conformidade, o agente 416 identificou a sessão de usuário e irá associar todas as informações sobre as interações de usuário com o identificador de usuário (durante essa seção) antes de transferir 414 os dados para o servidor de análise 108.
[0087] A interação de usuário 412a faz com que os eventos de tráfego de dados 416a entre o site da web e o servidor 102 produzidos em resposta às interações de usuário 412a ocorram. O agente 416 compreende adicionalmente meios 706 para identificar eventos de tráfego de dados 416a entre o aplicativo de cliente e o servidor 102 produzidos em resposta à interação de usuário 412a, e meios 708 para associar os eventos de tráfego de dados identificados 416a entre o aplicativo de cliente e o servidor 102 produzidos em resposta à interação de usuário 412a com o identificador de usuário. Em conformidade, o agente 416 irá associar todas as informações sobre os eventos de tráfego de dados identificados com o identificador de usuário (durante a sessão descrita na Figura 4) antes de transferir os dados para o servidor de análise 108.
[0088] O agente 414 compreende adicionalmente meios 710 para transferir dados de análise 414 que compreendem a interação de usuário identificada 412a e os eventos de tráfego de dados identificados 416a para o servidor de análise 108.
[0089] O usuário 410 continua a interagir 412b-c com o site da web e a interação de usuário faz com que os eventos de tráfego de dados 416b-c entre o site da web e o servidor 102 produzidos em resposta às interações de usuário 412b-c ocorram. O agente irá identificar essas interações 412b-c e eventos de tráfego de dados 416b-c e transferir dados de análise 414 que compreendem a interação de usuário identificada 412b-c e os eventos de tráfego de dados identificados 416b-c para o servidor de análise 108 da mesma maneira conforme descrito acima.

Claims (13)

1. Método realizado por um servidor de análise (106) para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor (102a-b) e renderizados em dispositivos de computação de cliente (110a-c), sendo que o método é CARACTERIZADO pelo fato de que compreende as etapas de: receber (S302), de agentes (416) em execução nos dispositivos de computação de cliente (110a-c), dados de análise (414) relativos às sequências de interações de usuário (412a-c) com os aplicativos de cliente, e eventos de tráfego de dados (416a-c) entre os aplicativos de cliente (110a-c) e o servidor (102a-b) produzidos em resposta às interações de usuário (412a-c), em que cada interação de usuário (412a-c) e evento de tráfego de dados (416a-c) são associados a um identificador de usuário de um usuário que executa a interação de usuário, formar grupos (S304) a partir dos dados de análise (414) agrupando-se cada interação de usuário (412a-c) com quaisquer eventos de tráfego de dados (416a-c) produzidos em resposta à interação de usuário (412a-c), rotular cada grupo com um identificador de grupo com base na interação de usuário (412a-c) e a quaisquer eventos de tráfego de dados (416a-c) agrupados no grupo e que associam cada grupo ao identificador de usuário que é associado à interação de usuário (412a-c) para cada identificador de usuário nos dados de análise: identificar padrões (S306) dentre os grupos formados associados ao identificador de usuário, em que cada padrão compreende uma sequência dos grupos formados que incluem pelo menos um grupo de partida e um grupo final, sendo que o padrão corresponde a uma sequência de interações de usuário (412a-c) realizada por um mesmo usuário de modo que o padrão compreenda um primeiro grupo compreendendo uma interação do usuário e pelo menos um segundo grupo compreendendo uma interação subsequente do usuário, e rotular cada padrão com um identificador de padrão com base nos identificadores de grupo da sequência dos grupos do padrão, e armazenar informações (S306) relativas aos padrões identificados em um meio de armazenamento de dados (108), em que as informações compreendem pelo menos o identificador de padrão de cada padrão, para cada identificador de padrão identificado armazenado no meio de armazenamento de dados (108): calcular um estado normal (S308) do identificador de padrão identificado dentre os grupos formados com base em uma diferença entre um número de identificadores de usuário único que é associado a um grupo que tem o mesmo identificador de grupo como o grupo de partida do padrão que tem o identificador de padrão identificado, e um número de identificadores de usuário único que é associado a cada grupo em uma sequência de grupos que têm os mesmos identificadores de grupo como a sequência de grupos do padrão que tem o identificador de padrão identificado, monitorar a alteração do estado normal de um identificador de padrão ao longo de um período de tempo, e gerar uma condição de erro no caso de a alteração do estado normal exceder um nível limítrofe.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que cada identificador de usuário compreende pelo menos um tipo de usuário, em que o método compreende, adicionalmente, as etapas de para cada identificador de padrão identificado armazenado no meio de armazenamento de dados (108), para cada tipo de usuário específico do pelo menos um tipo de usuário, calcular um estado normal (S308) do identificador de padrão identificado para o tipo de usuário específico dentre os grupos formados com base em uma diferença entre um número de identificador de usuário único que compreende o tipo de usuário específico e que é associado a um grupo que tem o mesmo identificador de grupo como o grupo de partida do padrão que tem o identificador de padrão identificado, e um número de identificadores de usuário único que compreende o tipo de usuário específico e que é associado a uma sequência de grupos que tem os mesmos identificadores de grupo que a sequência de grupos do padrão que tem o identificador de padrão identificado.
3. Método, de acordo com qualquer uma das reivindicações 1 a 2, CARACTERIZADO pelo fato de que compreende, adicionalmente, as etapas de agrupar os padrões identificados (S312) armazenados no meio de armazenamento de dados (108) que compreende mais que dois grupos e que tem pelo menos o mesmo grupo de partida e grupo final, e para cada padrão agrupado: rotular o padrão agrupado com um identificador de padrão com base nos identificadores de grupo da sequência dos grupos dos padrões agrupados no padrão agrupado, armazenar informações (S312) relativas ao padrão agrupado no meio de armazenamento de dados (108), em que as informações compreendem pelo menos o identificador de padrão do padrão agrupado calcular um estado normal (S314) para o identificador de padrão rotular o padrão agrupado adicionando-se os estados normais dos padrões agrupados no padrão agrupado.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, sendo que o método é CARACTERIZADO pelo fato de que compreende, adicionalmente, a etapa de: para cada estado normal calculado, armazenar (S310) o estado normal para o identificador de padrão correspondente e o identificador de padrão correspondente no meio de armazenamento de dados (108).
5. Método, de acordo com a reivindicação 4, quando for dependente da reivindicação 3, CARACTERIZADO pelo fato de que a etapa de armazenamento do identificador de padrão que rotula o padrão agrupado e o estado normal é realizada apenas se pelo menos um dos estados normais dos padrões armazenados agrupados no padrão agrupado for menor que um nível limítrofe.
6. Método, de acordo com a reivindicação 2 ou qualquer uma das reivindicações 3 a 5 quando for dependente da reivindicação 2, sendo que o método é CARACTERIZADO pelo fato de que compreende, adicionalmente, as etapas de monitorar a alteração do estado normal para um tipo de usuário específico de um identificador de padrão ao longo de um período de tempo, gerar uma condição de erro no caso de a alteração do estado normal exceder um nível limítrofe.
7. Método, de acordo com a reivindicação 6, CARACTERIZADO pelo fato de que a duração do período de tempo tem como base um número de interações de usuário com os aplicativos de cliente durante aquele período de tempo.
8. Método, de acordo com qualquer uma das reivindicações 6 a 7, CARACTERIZADO pelo fato de que o intervalo do período de tempo tem como base uma alteração de tempo limitado no servidor.
9. Método, de acordo com qualquer uma das reivindicações 1 a 8, CARACTERIZADO pelo fato de cada um dos aplicativos de cliente fazem interface com uma pluralidade de servidores.
10. Método, de acordo com qualquer uma das reivindicações 1 a 9, CARACTERIZADO pelo fato de que o aplicativo de cliente é um navegador da web que renderiza um site da web, e em que os identificadores de grupo têm como base um estado de uma página da web na qual a interação de usuário foi executada.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que pelo menos alguns dos identificadores de grupo têm como base um URL de uma página da web na qual a interação de usuário foi executada.
12. Método, de acordo com qualquer uma das reivindicações 1 a 11, CARACTERIZADO pelo fato de que a rotulação de cada grupo com um identificador de grupo compreende remover os dados específicos de sessão de aplicativo de cliente dos eventos de tráfego de dados e a interação de usuário correspondente e, então, rotular cada grupo com um identificador de grupo com base nas partes remanescentes dos eventos de tráfego de dados e na interação de usuário correspondente.
13. Servidor de análise (106) para monitorar padrões de interação de usuário em aplicativos de cliente que fazem interface com um servidor (102a-b) e renderizados nos dispositivos de computação de cliente (110a-c), sendo que o servidor de análise (106) é CARACTERIZADO pelo fato de que compreende: uma unidade de recebimento (202) adaptada para receber (S302), de agentes (416) em execução nos dispositivos de computação de cliente (110a-c), dados de análise (414) relativos às sequências de interações de usuário (412a-c) com os aplicativos de cliente (110a-c), e eventos de tráfego de dados (416a-c) entre os aplicativos de cliente (110a-c) e o servidor (102a-b) produzidos em resposta às interações de usuário (412a-c), em que cada interação de usuário (412a-c) e o evento de tráfego de dados (416a-c) são associados a um identificador de usuário de um usuário que executa a interação de usuário, uma unidade de agrupamento de evento (204) adaptada para formar grupos (S304) a partir dos dados de análise (414) agrupando-se cada interação de usuário (412a-c) com quaisquer eventos de tráfego de dados (416a-c) produzidos em resposta à interação de usuário (412a-c), rotular cada grupo com um identificador de grupo com base na interação de usuário (412a- c) e em quaisquer eventos de tráfego de dados (416a-c) agrupados no grupo e que associam cada grupo ao identificador de usuário que é associado à interação de usuário (412a-c) uma unidade de identificação de padrão (206) adaptada para, para cada identificador de usuário nos dados de análise, identificar padrões (S306) dentre os grupos formados associados ao identificador de usuário, em que cada padrão compreende uma sequência dos grupos formados que incluindo pelo menos um grupo de partida e um grupo final, em que o padrão corresponde a uma sequência de interações de usuário (412a-c) realizada por um mesmo usuário de modo que o padrão compreenda um primeiro grupo compreendendo uma interação do usuário e pelo menos um segundo grupo compreendendo uma interação subsequente do usuário, e rotular cada padrão com um identificador de padrão com base nos identificadores de grupo da sequência dos grupos do padrão, e para armazenar informações relativas aos padrões identificados em um meio de armazenamento de dados (108), em que as informações compreendem pelo menos o identificador de padrão de cada padrão, uma unidade de cálculo de estado normal (208) adaptada para cada identificador de padrão identificado armazenado no meio de armazenamento de dados (108), calcular um estado normal (S308) do identificador de padrão identificado dentre os grupos formados com base em uma diferença entre um número de identificadores de usuário único que é associado a um grupo que tem o mesmo identificador de grupo que o grupo de partida do padrão que tem o identificador de padrão identificado, um número de identificadores de usuário único que é associado a cada grupo em uma sequência de grupos que têm os mesmos identificadores de grupo como a sequência de grupos do padrão que tem o identificador de padrão identificado, monitorar a alteração do estado normal de um identificador de padrão ao longo de um período de tempo, e gerar uma condição de erro no caso de a alteração do estado normal exceder um nível limítrofe.
BR102015006477-2A 2014-03-24 2015-03-24 Método, servidor e agente para monitorar padrões de interação de usuário BR102015006477B1 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14161278.8 2014-03-24
EP14161278.8A EP2924581B1 (en) 2014-03-24 2014-03-24 Method, server and agent for monitoring user interaction patterns

Publications (2)

Publication Number Publication Date
BR102015006477A2 BR102015006477A2 (pt) 2015-12-15
BR102015006477B1 true BR102015006477B1 (pt) 2022-06-14

Family

ID=50389816

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102015006477-2A BR102015006477B1 (pt) 2014-03-24 2015-03-24 Método, servidor e agente para monitorar padrões de interação de usuário

Country Status (9)

Country Link
US (1) US20150271281A1 (pt)
EP (1) EP2924581B1 (pt)
JP (1) JP6218767B2 (pt)
CN (1) CN104951391B (pt)
AU (1) AU2015201419B2 (pt)
BR (1) BR102015006477B1 (pt)
CA (1) CA2885598C (pt)
PL (1) PL2924581T3 (pt)
SG (1) SG10201502121YA (pt)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3350734A4 (en) * 2015-09-15 2019-06-05 Commonwealth Scientific and Industrial Research Organisation MONITORING OF ACTIVITY
US20170251072A1 (en) * 2015-10-22 2017-08-31 Symantec Corporation System and method for annotating client-server transactions
JP6783956B2 (ja) * 2017-05-08 2020-11-11 シグニファイ ホールディング ビー ヴィSignify Holding B.V. デバイス制御情報を分析することによるデバイスのグループの形成

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072800B1 (en) * 2002-09-26 2006-07-04 Computer Associates Think, Inc. Application response monitor
US8032866B1 (en) * 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US8392553B2 (en) * 2003-04-29 2013-03-05 University Of Strathclyde Remote monitoring by tracking, storing, and analyzing user interactions with an operating system of a data processing device
US7418497B2 (en) * 2004-07-15 2008-08-26 International Business Machines Corporation Automatically infering and updating an availability status of a user
US8583772B2 (en) * 2008-08-14 2013-11-12 International Business Machines Corporation Dynamically configurable session agent
CN101482815B (zh) * 2008-01-10 2013-08-07 国际商业机器公司 生成软件系统的测试用例的方法和设备
US20100312706A1 (en) * 2009-06-09 2010-12-09 Jacques Combet Network centric system and method to enable tracking of consumer behavior and activity
US8745491B2 (en) 2009-12-22 2014-06-03 International Business Machines Corporation Determining event patterns for monitored applications
US20120102411A1 (en) * 2010-10-25 2012-04-26 Nokia Corporation Method and apparatus for monitoring user interactions with selectable segments of a content package
US8650284B2 (en) * 2011-02-28 2014-02-11 Oracle International Corporation User activity monitoring
US8898092B2 (en) * 2012-01-31 2014-11-25 International Business Machines Corporation Leveraging user-to-tool interactions to automatically analyze defects in it services delivery
US9591095B2 (en) * 2014-03-10 2017-03-07 Microsoft Technology Licensing, Llc Prefetching application data for periods of disconnectivity

Also Published As

Publication number Publication date
EP2924581B1 (en) 2019-09-04
AU2015201419B2 (en) 2016-06-30
BR102015006477A2 (pt) 2015-12-15
CN104951391B (zh) 2017-12-15
CA2885598A1 (en) 2015-09-24
JP6218767B2 (ja) 2017-10-25
CN104951391A (zh) 2015-09-30
PL2924581T3 (pl) 2020-02-28
AU2015201419A1 (en) 2015-10-08
EP2924581A1 (en) 2015-09-30
US20150271281A1 (en) 2015-09-24
JP2015185166A (ja) 2015-10-22
SG10201502121YA (en) 2015-10-29
CA2885598C (en) 2020-07-14

Similar Documents

Publication Publication Date Title
US11568404B2 (en) Data monetization and exchange platform
US11321085B2 (en) Meta-indexing, search, compliance, and test framework for software development
US10911517B2 (en) Determining end times for single page applications
US20180349254A1 (en) Systems and methods for end-to-end testing of applications using dynamically simulated data
US11704177B2 (en) Session triage and remediation systems and methods
US9049105B1 (en) Systems and methods for tracking and managing event records associated with network incidents
US20180089011A1 (en) Detecting service vulnerabilities in a distributed computing system
WO2018120721A1 (zh) 用户界面的测试方法、系统、电子装置及计算机可读存储介质
US20140136692A1 (en) Diagnosing distributed applications using application logs and request processing paths
US20210081308A1 (en) Generating automated tests based on user interaction with an application
US8683263B2 (en) Cooperative client and server logging
EP3809269B1 (en) Monitoring a distributed application server environment
CN107919987B (zh) 一种微服务云部署的实现方法
US10929259B2 (en) Testing framework for host computing devices
BR102015006477B1 (pt) Método, servidor e agente para monitorar padrões de interação de usuário
US20200265100A1 (en) Cause-based event correlation to virtual page transitions in single page applications
TW201600975A (zh) 分散式系統中的任務處理方法和裝置
US10706108B2 (en) Field name recommendation
CN113343312A (zh) 基于前端埋点技术的页面防篡改方法及系统
CN112905668A (zh) 基于分布式数据流处理引擎的数据库导数方法、设备和介质
US20180219752A1 (en) Graph search in structured query language style query
CN106357466A (zh) 一种互联网产品监控方法及监控系统
CN110618884A (zh) 故障监控方法、虚拟化的网络功能模块管理器和存储介质
CN107769970A (zh) 一种分布式系统中配置信息的处理方法及系统
US10217019B2 (en) Associating a comment with an object in an image

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 24/03/2015, OBSERVADAS AS CONDICOES LEGAIS