BR112018007818B1 - Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina - Google Patents

Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina Download PDF

Info

Publication number
BR112018007818B1
BR112018007818B1 BR112018007818-2A BR112018007818A BR112018007818B1 BR 112018007818 B1 BR112018007818 B1 BR 112018007818B1 BR 112018007818 A BR112018007818 A BR 112018007818A BR 112018007818 B1 BR112018007818 B1 BR 112018007818B1
Authority
BR
Brazil
Prior art keywords
suggestion
web page
page
web
automated navigation
Prior art date
Application number
BR112018007818-2A
Other languages
English (en)
Other versions
BR112018007818A8 (pt
BR112018007818A2 (pt
Inventor
Eric Prouty
Peter Lepeska
David Lerner
Original Assignee
Viasat, 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 Viasat, Inc. filed Critical Viasat, Inc.
Publication of BR112018007818A2 publication Critical patent/BR112018007818A2/pt
Publication of BR112018007818A8 publication Critical patent/BR112018007818A8/pt
Publication of BR112018007818B1 publication Critical patent/BR112018007818B1/pt

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
    • 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/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina. trata-se de modalidades que buscam aprimorar a sugestão de pré-busca com o uso de agrupamentos de navegação automatizados para gerar e atualizar modelos de sugestão usados para sugestões geradas por máquina. por exemplo, as máquinas de sugestão podem incluir agrupamentos de navegação que buscam de modo autônomo as páginas da web em resposta aos gatilhos de atualização (por exemplo, solicitações de página da web de cliente, rolamento da web programado, etc.) e geram temporização e/ou outra retroalimentação relacionada à sugestão relacionada a quais recursos foram usados para carregar as páginas da web buscadas. as máquinas de sugestão podem usar a retroalimentação de sugestão para gerar e/ou atualizar modelos de sugestão, que podem ser usados para geração por máquina de sugestões. algumas modalidades podem fornecer funcionalidade de sugestão preliminar em resposta às solicitações de sugestão de cliente, por exemplo, quando os modelos de sugestão para uma página solicitada forem insuficientes (por exemplo, indisponíveis, obsoletos, etc.). por exemplo, sem ter um modelo de sugestão suficiente no lugar, a máquina de sugestão pode buscar a página para gerar retroalimentação de sugestão preliminar, que a mesma pode usar para gerar por máquina sugestões preliminares.

Description

CAMPO
[001] As modalidades referem-se, de modo geral, ao desempenho de comunicações de rede e, mais particularmente, à atualização de modelo de sugestão com o uso de agrupamentos de navegação automatizados.
ANTECEDENTES
[002] A transmissão de página da Web, em que um usuário seleciona conteúdo de página da Web e recebe objetos, é uma parte central da experiência de Internet para usuários da Internet. Embora a experiência de usuários seja tipicamente uma única seleção seguida da visualização de uma página da Web que é apresentada na tela, o processo de apresentar a página da Web na tela pode envolver um grande número de recursos (por exemplo, objetos de página) e múltiplas comunicações de ida e volta de solicitação/resposta a partir do sistema de usuário para um ou mais servidores da Web que estão fornecendo recursos para a página da Web. Adicionalmente, cada recurso pode estar associado a várias fases diferentes como parte da inclusão do recurso (ou um objeto associado ao recurso) em uma página da Web que é apresentada a um usuário. Cada recurso que é parte de uma página da Web e cada fase associada a cada recurso pode contribuir para um tempo de carga de página total que é experimentado por um usuário do dispositivo como atraso. Diversas técnicas permitem que informações sejam enviadas para navegadores em relação aos recursos usados para renderizar uma página da Web ("sugestões"), e os navegadores podem usar aquelas sugestões para aprimorar o tempo de carregamento para aquela página da Web.
BREVE SUMÁRIO
[003] Entre outras coisas, os sistemas e métodos são descritos para aprimorar a sugestão de pré-busca com o uso de agrupamentos de navegação automatizados para gerar e atualizar modelos de sugestão usados para sugestões geradas por máquina. Algumas modalidades operam no contexto de máquinas cliente que têm coletores de página (por exemplo, implantados em navegadores da Web) em comunicação (por exemplo, em uma rede de comunicação) com o servidor de conteúdo (ou servidores de conteúdo) e máquina de sugestão (ou máquinas de sugestão). A máquina de sugestão (ou máquinas de sugestão) pode incluir agrupamentos de navegação que buscam de modo autônomo (por exemplo, carregam, renderizam, etc.) páginas da Web em resposta a gatilhos de atualização. Por exemplo, os gatilhos de atualização podem corresponder a solicitações de página da Web de computadores cliente, atualizações de modelo de sugestão programadas, determinações de modelos de sugestão obsoletos e/ou incompletos, etc. À medida que os agrupamentos de navegação automatizados buscam as páginas da Web, podem gerar retroalimentação de sugestão em relação a quais recursos (por exemplo, elementos de dados) foram usados para carregar as páginas da Web, temporização em relação ao carregamento daqueles recursos, etc. A retroalimentação de sugestão pode ser usada pela máquina de sugestão (ou máquinas de sugestão) para gerar e/ou atualizar modelos de sugestão, que podem ser usados para a geração por máquina de sugestões. As sugestões podem ser fornecidas para computadores cliente (por exemplo, e os agrupamentos de navegação automatizados) para aprimorar temporização de carga de página e/ou fornecer outros atributos.
[004] Algumas modalidades da máquina de sugestão (ou máquinas de sugestão) podem fornecer funcionalidade de sugestão preliminar para computadores cliente em resposta a solicitações de sugestão (por exemplo, solicitações de página da Web), por exemplo, quando modelos de sugestão para a página da Web solicitada são insuficientes (por exemplo, indisponíveis, obsoletos ou similares). Por exemplo, quando uma máquina cliente solicita uma página da Web, a máquina de sugestão (ou máquinas de sugestão) pode determinar se um modelo de sugestão suficiente já foi desenvolvido para a geração por máquina de sugestões para a página da Web solicitada. Se for o caso, a máquina de sugestão (ou máquinas de sugestão) pode fornecer sugestões geradas por máquina para a máquina cliente solicitante. Se não, a máquina de sugestão (ou máquinas de sugestão) pode gerar por máquina sugestões preliminares (por exemplo, por meio da busca automatizada da página da Web solicitada uma ou mais vezes para gerar um modelo de sugestão preliminar com base na retroalimentação de sugestão obtida limitada). Em algumas implantações, a máquina de sugestão (ou máquinas de sugestão) pode disparar simultaneamente o agrupamento de navegação automatizado para gerar (por exemplo, e/ou começar a gerar, programar a geração de, atualizar, etc.) um modelo de sugestão (não preliminar) suficiente para a página da Web a partir do qual subsequentemente gera-se por máquina sugestões. Por exemplo, as sugestões com base nos modelos de sugestão suficientes podem ser fornecidas em resposta a solicitações subsequentes para a página da Web.
BREVE DESCRIÇÃO DOS DESENHOS
[005] A presente revelação é descrita em conjunto com as Figuras anexas:
[006] A Figura 1 mostra um ambiente de sistema de comunicações ilustrativo que fornece um contexto para diversas modalidades;
[007] A Figura 2 mostra um diagrama de blocos de uma porção de um ambiente de comunicações ilustrativo para implantar a atualização de modelo de sugestão com o uso de agrupamentos de navegação automatizados, de acordo com diversas modalidades;
[008] A Figura 3A mostra uma arquitetura ilustrativa para implantar a geração por máquina de sugestões com o uso de agrupamentos de servidor automatizados, de acordo com diversas modalidades;
[009] A Figura 3B mostra uma outra arquitetura ilustrativa para implantar a geração por máquina de sugestões com o uso de agrupamentos de servidor automatizados, de acordo com diversas modalidades;
[010] A Figura 4 mostra um fluxograma de um método ilustrativo para a geração por máquina de sugestões com o uso de agrupamentos de navegação automatizados, de acordo com diversas modalidades;
[011] A Figura 5 fornece uma ilustração esquemática de uma modalidade de um sistema de computador que pode realizar os métodos da invenção, conforme descrito no presente documento e/ou pode funcionar, por exemplo, como qualquer parte de máquina cliente (ou máquinas cliente), servidor de conteúdo (ou servidores de conteúdo), máquina de sugestão (ou máquinas de sugestão) 130 ou qualquer outro tal computador ou dispositivo; e
[012] A Figura 6 ilustra um diagrama esquemático de um sistema de rede que pode ser usado de acordo com um conjunto de modalidades.
[013] Nas Figuras anexas, os componentes e/ou características similares podem ter a mesma identificação de referência. Adicionalmente, diversos componentes do mesmo tipo podem ser distintos seguindo-se a identificação de referência por uma segunda identificação que distingue entre os componentes similares. Se apenas a primeira identificação de referência for usada no relatório descritivo, a descrição é aplicável a qualquer um dos componentes similares que têm a mesma primeira identificação de referência independentemente da segunda identificação de referência.
DESCRIÇÃO DETALHADA
[014] Na descrição a seguir, os inúmeros detalhes específicos são apresentados para fornecer uma compreensão meticulosa da presente invenção. Entretanto, um elemento com habilidade comum na técnica deve reconhecer que a invenção pode ser praticada sem esses detalhes específicos. Em alguns casos, circuitos, estruturas e técnicas não foram mostrados em detalhes para evitar obscurecer a presente invenção.
[015] As modalidades operam no contexto de geração de sugestão acionada por máquina por agrupamentos de navegação automatizados e do fornecimento daquelas sugestões geradas por máquina para máquinas cliente. Para uso no presente documento, um "agrupamento de navegação automatizado" é destinado, em geral, a incluir qualquer uma ou mais plataformas computacionais que implantam uma ou mais situações de "mecanismo de navegação"para realizar funcionalidade de busca de página e coleta de retroalimentação de sugestão usada para geração por máquina de sugestões. Cada situação de mecanismo de navegação pode ser implantada como um aplicativo de navegador da web completo, um conjunto de scripts para buscar recursos de página e coletar informações de temporização de carga de página, um conjunto de "bots" para rolar páginas da Web e gerar retroalimentação de sugestão e/ou de qualquer outra maneira adequada. As plataformas computacionais e/ou as situações de mecanismo de navegação do agrupamento de navegação automatizado podem ser implantadas de acordo com uma arquitetura colocalizada, uma arquitetura distribuída, uma arquitetura baseada em nuvem e/ou qualquer outra arquitetura adequada. Por exemplo, algumas modalidades são descritas no presente documento como implantando o agrupamento de navegação automatizado como parte de um "back-end de sugestão". O uso do termo "back-end"é destinado apenas a adicionar clareza a certos grupos funcionais e não se destina a limitar as arquiteturas daquelas modalidades ou o local do agrupamento de navegação automatizado (por exemplo, o "back-end" pode ser colocalizado com outras funções de máquina de sugestão, acessível àquelas outras funções através de uma ou mais redes e/ou implantado de qualquer outra maneira adequada).
[016] Para uso no presente documento, um "cliente" ou "máquina cliente"é, em geral, destinado a incluir qualquer plataforma computacional envolvida em uma transação da Web, como renderização de uma página da Web, e não se destina a ser limitado a qualquer arquitetura de rede particular, protocolo, etc. Por exemplo, em algumas implantações, uma máquina cliente pode interagir com uma máquina de servidor (por exemplo, uma máquina de sugestão) em um contexto de "cliente-servidor", como uma arquitetura de cliente-servidor com o uso de tipos de cliente-servidor de protocolos. Outras implantações podem operar em um contexto de ponto a ponto ou qualquer outro contexto adequado. Em tais contextos, uma máquina particular pode agir como um cliente para uma transação particular, e como um servidor ou outra função em outras transações (por exemplo, a mesma máquina pode operar como um "cliente" para uma transação e como um servidor para uma outra transação, de acordo com protocolos de ponto a ponto e/ou outros protocolos).
[017] Para uso no presente documento, “transação de página da Web” se refere, em geral, a uma comunicação entre uma máquina cliente e um outra máquina (por exemplo, um computador servidor) para transferir uma pluralidade de objetos para a máquina cliente que pode ser apresentada a um usuário como parte de uma página da Web. Para uso no presente documento, uma "página da Web"é destinada a se referir amplamente a qualquer tipo de página enviada em uma rede de comunicações e que consiste em múltiplos recursos de página. Por exemplo, a página da Web pode ser uma página da Web típica usada em comunicações de World Wide Web, uma página (por exemplo, tela) de um aplicativo (por exemplo, um app, etc.) ou qualquer outro tipo de página da Web. Adicionalmente, a referência a "web"não se destina a ser limitado à Internet ou a World Wide Web; de preferência, a "web" pode incluir qualquer rede de comunicações pública ou privada. Adicionalmente, os termos como "coletor de página" não se destinam a serem limitados a qualquer processo particular em um navegador da Web; de preferência, tais termos podem se referir a qualquer processo ou conjunto de processos usados para carregar e/ou renderizar uma experiência do usuário final de uma página da Web e seus recursos em um navegador ou outro aplicativo (isto é, "renderizar" e "carregar"são usados no presente documento para expressar, em geral, a formulação da página com o uso dos recursos). Em um exemplo, as páginas da Web podem incluir página de navegador da Web; o coletor de página pode incluir um navegador da Web; e os recursos podem incluir localizadores de recurso uniforme (URLs), objetos de linguagem de marcação de hipertexto (HTML), scripts, cookies e/ou outros objetos de lado de servidor usados (por exemplo, necessários em algumas ou todas as situações) pelo navegador da Web para renderizar as páginas da Web. Em um outro exemplo, as páginas da Web podem incluir telas de um app (por exemplo, ou qualquer outro aplicativo); o coletor de página pode incluir o app (por exemplo, a porção do app que manuseia interações de entrada/saída); e os recursos podem ser conteúdo audiovisual das telas renderizadas.
[018] As modalidades são descritas no contexto de "sugestões", "informações de sugestão"e similares. Para uso no presente documento, as sugestões incluem, em geral, quaisquer informações sobre recursos usados para renderizar uma página da Web que são fornecidas para um coletor de página (ou qualquer componente adequado de uma máquina cliente ou um sistema de proxy da máquina cliente) para ajudar a aprimorar a temporização de carga de página para aquela página da Web por aquele coletor de página. Para uso no presente documento, o termo "recurso" se refere geralmente a qualquer um dentre um elemento de dados (por exemplo, um arquivo, script, etc.), uma coleção de elementos de dados (por exemplo, uma página da Web, etc.) ou um identificador de um elemento de dados ou coleção de elementos de dados (por exemplo, um localizador de recurso uniforme (URL), chamada de script, etc.). Em algumas situações, os recursos podem ser embutidos em outros recursos e/ou podem incluir coleções de outros recursos. As informações sobre os recursos podem incluir uma lista de todos os recursos solicitados como parte da transação, uma lista de recursos necessários para apresentar uma página da Web incompleta inicial em uma saída de um dispositivo cliente, um conjunto de cookies (e/ou versões com hash daqueles cookies) associado ao dispositivo cliente ou processamento que opera no dispositivo cliente, um conjunto de cookies (e/ou versões com hash daqueles cookies) associado a um ou mais processos de cliente ou recursos de página da Web, um conjunto de temporizações associado a cada recurso, um conjunto de temporizações associado ao processo de renderização de página geral, um conjunto de relações entre os recursos, detalhes associados a recursos em cache, tamanhos de recurso, tipos de recurso, somas de verificações ou impressões digitais de recurso, posição de recurso na página, metadados de cookie, cadeias de redirecionamento, usuário de fontes de conteúdo alternativas durante uma transação, como redes de entrega de conteúdo (CDNs) que podem ser usadas para alguns recursos, detalhes dos domínios (incluindo o número de objetos que são esperados a serem buscados por domínio) usados durante a transação, metadados de conexão segura, certificado de servidor de camada de soquete seguro (SSL) e/ou informações de lista de revogação e/ou quaisquer outros tais detalhes.
[019] Em diversas modalidades, depois que um coletor de página ou situação de mecanismo de navegação completou o carregamento e/ou renderização de uma página da Web, o mesmo pode fornecer informações de retroalimentação de sugestão que podem incluir e/ou serem usadas para derivar quaisquer informações de sugestão para transações de página da Web subsequentes (por exemplo, incluindo qualquer uma das informações de sugestão descritas acima). As informações de retroalimentação podem ser capturadas de qualquer maneira adequada, incluindo por uma máquina cliente, por um coletor de página que opera em um dispositivo cliente, por um servidor Web, por um servidor de proxy em uma trajetória de comunicação entre um dispositivo cliente e um servidor Web, por um coletor de página automatizado sob o controle de um serviço de sugestão, por situações de mecanismo de navegação de um agrupamento de navegação automatizado, por um gerador de sugestão preliminar ou por qualquer outro dispositivo envolvido com uma transação de página da Web. As sugestões podem ser usadas para aprimorar tempos de carregamento de página da Web em transações de página da Web. Por exemplo, o aprimoramento pode ser realizado reduzindo-se um tempo total a partir de uma seleção de usuário através do coletor de página a uma apresentação completa de uma página da Web para um usuário em resposta àquela seleção. Esse aprimoramento também pode ser realizado reduzindo-se um tempo inicial para apresentação de uma versão incompleta da página da Web que pode ser funcional para os propósitos do usuário. Em uma modalidade potencial, uma redução do tempo total pode resultar a partir do uso de informações de latência em conjunto com outras informações de retroalimentação para determinar quão empenhado um coletor de página irá tentar pré-buscar recursos filhos como parte de situações futuras da transação de página da Web.
[020] Os exemplos de informações de retroalimentação e sugestões podem ser encontrados no pedido de patente n° de série U.S. 14/729.949, intitulado "SERVER BASED EMBEDDED WEB PAGE FEEDBACK AND PERFORMANCE IMPROVEMENT"; pedido de patente n° de série U.S. 13/372.347, intitulado “BROWSER BASED FEEDBACK FOR OPTIMIZED WEB BROWSING”; patente n° U.S. 9.037.638, intitulado “ASSISTED BROWSING USING HINTING FUNCTIONALITY”; pedido de patente n° de série U.S. 14/212.538, intitulado “FASTER WEB BROWSING USING HTTP OVER AN AGGREGATED TCP TRANSPORT”; pedido de patente n° de série U.S. 14/276.936, intitulado “CACHE HINTING SYSTEMS”; e pedido de patente n° de série U.S. 14/729.949, intitulado “SERVER-MACHINE-DRIVEN HINT GENERATION FOR IMPROVED WEB PAGE LOADING USING CLIENT-MACHINE-DRIVEN FEEDBACK”; cada um dos quais está expressamente incorporado a título de referência para todas as finalidades neste pedido.
[021] Os recursos usados em tal página da Web podem incluir arquivos HTML, arquivos de folha de estilos em cascata (CSS), arquivos de imagem, arquivos de vídeo ou quaisquer outros tais recursos. A referência a situações diferentes de uma transação de página da Web se refere à transação que é realizada por máquina cliente diferente em momentos diferentes, ou a mesma transação que é realizada por uma única máquina cliente em momentos diferentes. Essas situações diferentes de uma transação de página da Web podem incluir variações nos recursos que são parte da transação de página da Web, devido à personalização através de diferentes máquinas cliente, ou atualizações para a página da Web ao longo do tempo. Adicionalmente, diferentes páginas da Web e diferentes transações de página da Web podem incluir recursos que são iguais ou similares. Em certas modalidades, as informações de retroalimentação e sugestões geradas para um recurso visto em uma transação de página da Web podem ser aplicadas como sugestões em uma transação para uma página da Web separada, se as URLs raiz forem similares ou se houver um grau suficiente de convergência entre os conjuntos de recursos são usadas em ambas as transações de página da Web.
[022] Adicionalmente, para uso no presente documento, “raiz” se refere a uma porção inicial de uma transação de página da Web que é iniciada diretamente por uma ação ou seleção de usuário. Por exemplo, um usuário que clica em um enlace de página da Web inicia uma solicitação raiz para aquele enlace. A resposta raiz é a resposta que responde diretamente àquela solicitação raiz. A resposta raiz inclui também um recurso raiz. Esse recurso raiz inclui informações que possibilitam que um coletor de página identifique, direta ou indiretamente, os outros recursos necessários para renderizar e apresentar a página da Web completa. Em algumas situações, o recurso "raiz" pode incluir um recurso filho primário (por exemplo, um sub-recurso) em um iframe em uma página, ou similares (por exemplo, em que cada um dentre os múltiplos iframes é separadamente sugerido a partir de servidores de conteúdo diferentes).
[023] “Redirecionamento” se refere a uma resposta a uma solicitação raiz que direciona o dispositivo cliente solicitante para uma fonte diferente para um recurso. Por exemplo, um dispositivo cliente pode enviar uma solicitação raiz e receber de volta uma resposta de redirecionamento. O dispositivo cliente pode, então, enviar uma solicitação filho redirecionada para o alvo de redirecionamento indicado na resposta de redirecionamento. Em certas modalidades, uma resposta para a solicitação filha redirecionada pode, então, incluir um script de retroalimentação ou sugestões. Dessa forma, embora certas modalidades descrevam a operação com um solicitação e resposta raiz, em diversas modalidades, qualquer resposta raiz, filho ou redirecionada descrita no presente documento pode incluir um script de retroalimentação conforme descrito nas diversas modalidades no presente documento.
[024] As respostas e solicitações “filho” são as respostas e solicitações subsequentes que resultam, direta ou indiretamente, de referências embutidas ou calculadas a outros recursos em recursos raiz ou outros recursos filho. Os recursos, solicitações e respostas filho são sempre uma ou mais etapas removidas da ação de usuário por uma raiz que responde diretamente à ação de usuário. Os recursos filho podem incluir referências a recursos filho adicionais, resultando em uma cadeia de solicitações e respostas. Cada uma das solicitações e respostas pode ser solicitações e respostas de protocolo de transporte de hipertexto (HTTP) incluindo cabeçalhos HTTP e uma mensagem associada. Em diversas modalidades, outros protocolos de comunicação podem ser usados.
[025] A Figura 1 mostra um ambiente de sistema de comunicações 100 ilustrativo que fornece um contexto para diversas modalidades. O ambiente de sistema de comunicações 100 inclui máquina cliente (ou máquinas cliente) 110, servidor de conteúdo (ou servidores de conteúdo) 120 (por exemplo, servidores da Web) e máquina de sugestão (ou máquinas de sugestão) 130 em comunicação em uma rede de comunicações 140. A rede 140 pode incluir qualquer uma ou mais redes de comunicações e/ou enlaces de comunicações adequados, incluindo qualquer rede de longa distância (WAN), rede de área local (LAN), rede privada, rede pública (por exemplo, a Internet), rede com fio, rede sem fio, etc. Tipicamente, o ambiente de sistema de comunicações 100 pode incluir muitas máquinas cliente 110 que criam uma interface com múltiplos servidores de conteúdo 120 na rede de comunicações 140.
[026] Conforme descrito no presente documento, de acordo com diversas modalidades, os servidores de conteúdo 120 podem ser em comunicação com uma ou mais máquinas de sugestão 130 diretamente e/ou através da rede de comunicações 140 e/ou as máquinas cliente 110 pode ser em comunicação com as máquinas de sugestão 130 diretamente e/ou através da rede de comunicações 140 (por exemplo, na direção dos servidores de conteúdo). Algumas modalidades são dirigidas ao aprimoramento do carregamento e renderização de recursos que constituem páginas da Web, telas de aplicativos e/ou outros contextos de página da Web similares. Em tal contexto, pode ser típico para uma máquina cliente 110 fazer uma solicitação para uma página da Web que é fornecida (por exemplo, hospedada) por uma servidor de conteúdo 120. O carregamento e renderização da página da Web solicitada pode envolver subsequentemente solicitar e receber vários (à vezes um grande número) de recursos que constituem a página da Web (por exemplo, conteúdo visual, conteúdo de áudio, scripts executáveis, etc.). O carregamento e renderização de tal página da Web podem ser aprimorados por meio da solicitação de recursos em momentos particulares (por exemplo, por meio da pré-busca de recursos em uma ordem particular, etc.), e a máquina cliente pode ser instruída em relação a tais aprimoramentos com o uso de "sugestões", conforme descrito no presente documento. Os recursos podem ser identificados no conjunto de sugestões por URL, por uma combinação de URL e expressão regular, por um script ou por outras técnicas similares. O carregamento e renderização de tal página da Web também podem ser aprimorados por sugestões que suportam a pré-resolução de nomes de domínio, pré-estabelecimento de conexões TCP, pré-estabelecimento de conexões seguras, predeterminação e minimização da cadeia direta e funções similares que podem ser realizadas antes do carregamento de conteúdo que aprimoram o desempenho de carga de página total. Adicionalmente, a probabilidade que um recurso será necessário e a prioridade que deveria ser dada pelo navegador podem ser comunicadas para aprimorar ainda mais o tempo de carga de página. Adicionalmente, os diversos formatos de imagem, vídeo e documento que podem estar associados a um determinado recurso podem ser enviados para o dispositivo em antecipação como sugestões, permitindo, assim, que o renderizador se ajuste dinamicamente a condições e restrições de rede e minimize o tráfego de dados associado a recursos pré-buscados. Adicionalmente, as sugestões podem guiar a seleção de CDNs, caches ou outros locais de servidor a fim de aprimorar o tempo de carga de página.
[027] A máquina cliente (ou máquinas cliente) 110 pode ser implantada como qualquer dispositivo de computação adequado que tem recursos de memória, recursos de processamento e recursos de comunicação de rede. Por exemplo, as máquinas cliente 110 podem ser computadores desktop, computadores do tipo tablet, computadores do tipo laptop, telefones móveis, assistentes de dados pessoais, dispositivos utilizáveis junto ao corpo habilitados para rede, aparelhos domésticos habilitados para rede, etc. Cada máquina cliente 110 inclui um ou mais coletores de página 115. O coletor de página 115 pode incluir qualquer sistema implantado em uma máquina cliente 110 que possibilite uma transação de página da Web, e que é usado, pelo menos em parte, para a renderização de uma página da Web e apresentação da mesma para um usuário através de um dispositivo de saída da máquina cliente 110.
[028] O servidor de conteúdo (ou servidores de conteúdo) 120 pode incluir, em geral, qualquer um ou mais ambientes computacionais para servir (por exemplo, hospedar e/ou de outro modo fornecer acesso a) conteúdo de página da Web para as máquinas cliente 110 através da rede de comunicações 140. Por exemplo, os servidores de conteúdo 120 podem incluir servidores da Web, redes de distribuição de conteúdo (CDNs), caches ou similares. Conforme ilustrado, os servidores de conteúdo 120 podem incluir, ou estarem em comunicação com, um ou mais sistemas de armazenamento de dados que têm páginas da Web 125 armazenadas nos mesmos. Conforme descrito no presente documento, é presumido que as páginas da Web 125 são constituídas de múltiplos recursos 127. Por exemplo, o carregamento de uma das páginas da Web 125 pode envolver solicitação, recebimento e renderização dos recursos 127 que constituem a página da Web 125. Alguns ou todos dentre os recursos 127 das páginas da Web 125 atendidas pelos servidores de conteúdo 120 podem ser armazenados nos sistemas de armazenamento de dados, ou alguns ou todos dentre os recursos 127 podem ser armazenados distante dos servidores de conteúdo 120.
[029] A uma ou mais máquinas de sugestão 130 podem ser implantadas como um ou mais computadores servidores independentes, como parte de um ou mais servidores de conteúdo 120 e/ou de qualquer outra maneira adequada para manter e atualizar informações de sugestão 135 (por exemplo, de acordo com a retroalimentação de sugestão 147 de máquinas cliente 110, de acordo com sugestões 150 computadas a partir das informações de sugestão 135, etc.). As informações de sugestão 135 podem ser armazenadas em um ou mais armazenamentos de dados que são parte de, acoplados a ou em comunicação com as máquinas de sugestão 130, ou de qualquer outra maneira adequada. As modalidades suportam muitos tipos diferentes de informações de sugestão 135 e sugestões 150 geradas a partir das mesmas, incluindo, por exemplo, informações relacionadas a quais objetos de página 127 são necessários para renderizar as páginas da Web 125, informações de temporização relacionadas àqueles objetos de página 127 (por exemplo, a ordem e temporização pela qual os objetos de página 127 devem ser solicitados), etc. As informações de sugestão 135 podem ser mantidas, computadas, atualizadas, etc. de qualquer maneira adequada, incluindo de acordo com a retroalimentação de sugestão 147 recebida de uma ou mais máquinas cliente 110. As modalidades da máquina de sugestão 130 aplicam técnicas de aprendizagem por máquina à retroalimentação de sugestão 147 de múltiplas transações de página da Web relacionadas (por exemplo, de múltiplas situações de múltiplas máquinas cliente 110 que renderizam as páginas da Web iguais (ou suficientemente similares)). A retroalimentação de sugestão 147 recebida pode ser usada para redefinir, melhorar, atualizar, reforçar ou de outro modo aprimorar modelos de sugestão acionados por máquina mantidos pela máquina de sugestão 130, facilitando, assim, a geração e comunicação de sugestões otimizadas.
[030] As máquinas cliente 110 podem renderizar páginas da Web 125 solicitadas de acordo com as sugestões 150 geradas a partir das informações de sugestão 135 que predizem de modo eficaz quais recursos 127 as máquinas cliente 110 irão precisar em tais momentos para renderizar de modo ideal as páginas da Web 125; as máquinas cliente 110 podem realmente renderizar as páginas da Web 125 de acordo com pelo menos as sugestões 150 recebidas; a renderização real das páginas da Web 125 pode ser monitorada pelas máquinas cliente 110 para determinar quais recursos 127 foram realmente usados para renderizar as páginas de acordo com tais temporizações; e as informações monitoradas podem ser retroalimentadas (isto é, como a retroalimentação de sugestão 147) para as máquinas de sugestão 130 para o uso na atualização das informações de sugestão 135 e refinamento da geração de sugestão futura 150.
[031] Algumas modalidades geral e manuseiam sugestões de uma maneira que é gerada de maneira computacional (por exemplo, gerada por máquina com base na retroalimentação e análise, em oposição a ser gerada manualmente por codificadores com base em suposições). Conforme descrito no presente documento, tal sugestão gerada por máquina pode ser intensificada com o uso de agrupamentos de navegação automatizados (como parte da máquina de sugestão (ou máquinas de sugestão) 130) para carregar repetidamente páginas da Web, e para gerar e comunicar sua própria retroalimentação de sugestão 147 para uso no desenvolvimento de modelos de sugestão. Algumas modalidades da máquina de sugestão (ou máquinas de sugestão) 130 podem fornecer funcionalidade de sugestão preliminar (por exemplo, como sugestões 150) para máquinas cliente 110 em resposta às solicitações de sugestão (por exemplo, solicitações de página da Web 141), por exemplo, quando modelos de sugestão para a página da Web solicitada estão indisponíveis, obsoletos ou similares. Por exemplo, quando uma máquina cliente 110 solicita uma página da Web, a máquina de sugestão (ou máquinas de sugestão) 130 pode determinar se existe um modelo de sugestão usável para sugestões de geração por máquina para a página da Web solicitada. Se for o caso, a máquina de sugestão (ou máquinas de sugestão) 130 pode fornecer sugestões geradas por máquina 150 para a máquina cliente solicitante 110. Se não, a máquina de sugestão (ou máquinas de sugestão) 130 pode gerar por máquina sugestões preliminares 150 (por exemplo, por meio da busca automatizada da página da Web solicitada uma ou mais vezes para gerar um modelo de sugestão preliminar).
[032] Em algumas implantações, a máquina de sugestão (ou máquinas de sugestão) 130 podem disparar simultaneamente o agrupamento de navegação automatizado para gerar (por exemplo, e/ou atualizar, etc.) um modelo de sugestão não preliminar para a página da Web a partir do qual subsequentemente gera-se por máquina sugestões não preliminares 150. Por exemplo, as sugestões não preliminares 150 podem ser fornecidas em resposta a solicitações subsequentes para a página da Web. Ao longo do tempo, os modelos de sugestão podem ser gerados e/ou atualizados com base na retroalimentação de sugestão 147 gerada pelos agrupamentos de navegação automatizados e/ou retroalimentação de sugestão 147 gerada pelas máquinas cliente 110. Por exemplo, algumas modalidades que exploram agrupamentos de navegação automatizados para a geração de retroalimentação de sugestão 147 podem ser implantadas de modo que não receba retroalimentação de sugestão 147 de algumas ou qualquer uma das máquinas cliente 110 (por exemplo, algumas ou todas dentre as máquinas cliente 110 podem não ser configuradas para, ou terem capacidade para, gerar retroalimentação de sugestão 147).
[033] A Figura 2 mostra um diagrama de blocos de uma porção de um ambiente de comunicações 200 ilustrativo para implantar a atualização de modelo de sugestão com o uso de agrupamentos de navegação automatizados, de acordo com diversas modalidades. A Figura 2 mostra uma máquina cliente 110 em comunicação com uma máquina de sugestão 130 em uma rede 140, que pode ser uma implantação do sistema descrito acima com referência à Figura 1. Algumas das descrições envolvem comunicações entre componentes da máquina cliente 110 e componentes da máquina de sugestão 130, entretanto, esses são destinados apenas como ilustrações gerais de funcionalidade e conectividade. Conforme descrito com referência à Figura 1, e conforme mostrado genericamente na Figura 2, a máquina de sugestão 130 pode ser em comunicação direta (na rede 140) com a máquina cliente 110, em comunicação com a máquina cliente 110 apenas através de um ou mais servidores de conteúdo 120 (por exemplo, em que a máquina de sugestão 130 está em comunicação com os servidores de conteúdo 120 em uma ou mais redes 140 e/ou é parte de um ou mais servidores de conteúdo 120), em comunicação com um ou mais servidores de conteúdo 120 e a máquina cliente 110 em uma ou mais redes 140, etc. Por exemplo, a funcionalidade de sugestão pode ser manuseada entre a máquina cliente 110 e a máquina de sugestão 130 sem envolver quaisquer servidores de conteúdo 120, apenas através de um ou mais servidores de conteúdo 120, ou em qualquer combinação adequada.
[034] Conforme ilustrado, a máquina cliente 110 pode incluir um coletor de página 115, como um navegador da Web. As modalidades do coletor de página 115 podem incluir um mecanismo de renderização 210, um mecanismo de recurso 220 e um subsistema de sugestão de cliente 230. O mecanismo de renderização 210 pode renderizar recursos de uma página da Web para consumo (por exemplo, exibição, etc.) através de uma interface gráfica de usuário (GUI) 215 da máquina cliente 110. Por exemplo, o mecanismo de renderização 210 pode processar código de HTML, scripts, objetos de página, etc. para fornecer de modo eficaz uma experiência do usuário de páginas da Web através da GUI 215.
[035] Quando uma página da Web é solicitada, o mecanismo de recurso 220 pode gerar solicitações para recursos da página da Web solicitada, comunicar aquelas solicitações para um ou mais servidores de conteúdo 120 na rede 140, receber os recursos em resposta às solicitações e processar as respostas. Por uma questão de ilustração, um usuário pode solicitar uma página da Web através da GUI 215 (por exemplo, inserindo um endereço Web), o mecanismo de recurso 220 pode obter alguns ou todos dentre os recursos necessários para renderizar a página da Web solicitada (por exemplo, de acordo com o código HTML, scripts, cookies, objetos de página, etc.), e o mecanismo de renderização 210 pode processar os recursos obtidos para fornecer de modo eficaz uma experiência do usuário da página da Web solicitada através da GUI 215 (por meio da renderização da página da Web com o uso dos recursos).
[036] As modalidades do coletor de página 115 podem explorar sugestões, conforme descrito no presente documento, com o uso do subsistema de sugestão de cliente 230. A funcionalidade de sugestão pode ser explorada em qualquer um ou todos dentre vários estágios em uma transação da Web. Um estágio é um estágio de solicitação de página da Web, durante o qual diversas solicitações de recurso podem ser feitas para um ou mais servidores de conteúdo 120 (por exemplo, pelo mecanismo de recurso 220), e solicitações comparáveis com aqueças solicitações de recurso podem ser feitas para o subsistema de sugestão de cliente 230 para sugestões relacionadas àqueles recursos (por exemplo, pelo subsistema de sugestão de cliente 230). Por exemplo, em resposta a um usuário que solicita uma página da Web, o mecanismo de recurso 220 pode começar a solicitar URLs (por exemplo, a URL raiz e URLs filho), e o subsistema de sugestão de cliente 230 pode emitir uma ou mais solicitações que indicam aqueles URLs para a máquina de sugestão 130 que procura sugestões relevantes. Um outro estágio é um estágio de retroalimentação. Embora os recursos para uma página da Web sejam carregados enquanto a página é renderizada, etc., o subsistema de sugestão de cliente 230 pode coletar informações de retroalimentação, conforme descrito acima (por exemplo, informações sobre quais recursos estão envolvidos na renderização da página da Web, informações de temporização relacionadas aos recursos, etc.). Depois que a página da Web foi renderizada pelo mecanismo de renderização 210 (ou durante a renderização, após a apresentação ao usuário através da GUI 215, depois que múltiplas páginas foram renderizadas e a retroalimentação foi agregada, ou em qualquer outro momento adequado), o subsistema de sugestão de cliente 230 pode enviar a retroalimentação de sugestão para a máquina de sugestão 130 para uso na geração de sugestões futuras para a página da Web e/ou para os recursos (por exemplo, para quaisquer páginas da Web que invocam aqueles recursos). Conforme descrito no presente documento, algumas implantações do subsistema de sugestão de cliente 230 exploram sugestões, mas não fornecem retroalimentação de sugestão (isto é, exploram sugestões geradas de acordo com a retroalimentação de sugestão gerada pela máquina de sugestão (ou máquinas de sugestão) 130 e/ou outras máquinas cliente 110).
[037] Conforme ilustrado, as modalidades das máquinas de sugestão 130 podem incluir um subsistema de comunicações 250, um subsistema de sugestão preliminar 260 e um back-end de sugestão 280. As modalidades do subsistema de comunicações 250 podem facilitar a funcionalidade de comunicações entre a máquina de sugestão (ou máquinas de sugestão) 130 e computadores cliente 110, e entre a máquina de sugestão (ou máquinas de sugestão) 130 e servidores de conteúdo 120. Por exemplo, o subsistema de comunicações 250 pode interagir com quaisquer protocolos adequados, portas físicas e/ou lógicas, formatos de datagrama, e/ou qualquer outra funcionalidade para comunicação em redes públicas e/ou privadas, redes com fio e/ou sem fio, redes locais e/ou remotas, redes seguras e/ou não seguras, etc. Em diversas modalidades, o subsistema de comunicações 250 pode comunicar (por exemplo, enviar e/ou receber) e manusear solicitações de sugestão e retroalimentação de sugestão com máquinas cliente 110, agrupamentos de navegação automatizados 285, etc. Algumas modalidades do subsistema de comunicações 250 também podem manusear comunicação de recursos e similares de servidores de conteúdo 120 para uso pelos agrupamentos de navegação automatizados 285. Apesar de mostrado como um único componente da máquina de sugestão 130 disposto fora do back end de sugestão 280, as modalidades do subsistema de comunicações 250 podem ser implantadas em múltiplos componentes distribuídos em diversos locais. Por exemplo, algumas implantações dos agrupamentos de navegação automatizados 285 têm situações locais de porções do subsistema de comunicações 250 por meio das quais se comunicam com servidores de conteúdo 120, outros componentes da máquina de sugestão (ou máquinas de sugestão) 130, etc.
[038] As modalidades do back-end de sugestão 280 podem incluir um subsistema de modelo de sugestão 270, um armazenamento de informações de sugestão 135 e um armazenamento de dados de modelos de sugestão 275. O armazenamento de dados de modelos de sugestão 275 e o armazenamento de informações de sugestão 135 podem ser implantados em um mesmo armazenamento de dados ou em múltiplos armazenamentos de dados que estão em um ou mais locais. Os armazenamentos de dados podem incluir qualquer armazenamento legível por máquina adequado. Em geral, as modalidades do armazenamento de informações de sugestão 135 podem armazenar qualquer tipo de informações de retroalimentação de sugestão a partir das quais os modelos de sugestão podem ser gerados. Por exemplo, as informações de sugestão podem incluir informações de temporização de carga de página, informações sobre se e como os recursos são renderizados como parte do carregamento de uma página da Web, estatísticas e/ou tendências relacionadas ao carregamento de carregamento ao longo do tempo, etc. As modalidades do subsistema de modelo de sugestão 270 podem usar as informações de sugestão armazenadas no armazenamento de informações de sugestão 135 para gerar modelos de sugestão. Os modelos de sugestão podem ser armazenados no armazenamento de dados de modelos de sugestão 275 e podem incluir quaisquer informações para informar pré-busca de recursos usados para renderizar páginas da Web associadas.
[039] As modalidades das máquinas de sugestão 130 podem gerar as informações de sugestão usadas na geração por máquina de sugestões de várias maneiras. Conforme ilustrado, algumas modalidades podem obter informações de sugestão de máquinas cliente 110, agrupamentos de navegação automatizados 285 e/ou um subsistema de sugestão preliminar 260. O recebimento de informações de sugestão de máquinas cliente 110 é descrito acima. Por exemplo, depois que um coletor de página 115 de uma máquina cliente 110 carrega uma página da Web (por exemplo, ou durante o carregamento, ou em qualquer momento adequado), o subsistema de sugestão de cliente 230 pode comunicar a retroalimentação de sugestão para uma ou mais máquinas de sugestão 130 relacionada ao carregamento de recurso em relação à página da Web. As informações de retroalimentação de sugestão fornecidas pela máquina cliente 110 podem ser recebidas pelo subsistema de comunicações 250 e armazenadas no armazenamento de informações de sugestão 135. Mediante o armazenamento no armazenamento de informações de sugestão 135, ou em qualquer outro momento adequado, as informações de sugestão podem ser usadas pelo subsistema de modelo de sugestão 270 para gerar um novo modelo de sugestão para armazenar no armazenamento de dados de modelos de sugestão 275 e/ou atualizar (por exemplo, reparar, confirmar, substituir e/ou de outro modo afetar) um modelo de sugestão armazenado associado à página da Web.
[040] As informações de sugestão também podem ser geradas por, e recebidas de, um agrupamento de navegação automatizado 285. O agrupamento de navegação automatizado 285 pode incluir uma ou mais situações de mecanismo de navegação que podem ser implantadas como um navegador da Web completo, um conjunto de scripts de navegador, um ou mais "bots" e/ou de qualquer outra maneira adequada. Em algumas implantações, o agrupamento de navegação automatizado 285 pode incluir (ou emular) múltiplos ambientes de navegação diferentes, como diferentes marcas de navegador, versões móveis versus desktop de um navegador, diferentes versões de navegadores, navegadores que têm diferentes conjuntos de plug-ins (por exemplo, diferentes níveis de suporte para análise de script, manuseio de certos tipos de arquivos, etc.), etc. O agrupamento de navegação automatizado 285 pode carregar de modo autônomo uma página da Web (ou parte de uma página da Web), uma ou mais vezes e pode reunir e/ou gerar retroalimentação de sugestão de acordo com o carregamento. Por exemplo, uma ou mais situações de mecanismo de navegação do agrupamento de navegação automatizado 285 podem carregar uma página da Web específica múltiplas vezes (por exemplo, em paralelo) para gerar retroalimentação de sugestão em relação ao comportamento de carregamento da página da Web em um momento particular, comportamento de carregamento da página da Web durante um período de tempo prolongado, comportamento de carregamento da página da Web em uma faixa de tipos de navegador, etc. Os tipos de retroalimentação de sugestão gerada pelo agrupamento de navegação automatizado 285 podem ser iguais ou diferentes dos tipos de retroalimentação de sugestão gerada por máquinas cliente 110. Em qualquer momento adequado (por exemplo, após cada carga de uma página da Web, após múltiplas cargas de uma página da Web, periodicamente, etc.), o agrupamento de navegação automatizado 285 pode comunicar a retroalimentação de sugestão para o armazenamento de informações de sugestão 135 (por exemplo, diretamente, através do subsistema de comunicações 250 ou de qualquer outra maneira adequada). As informações de sugestão podem ser usadas pelo subsistema de modelo de sugestão 270 para gerar um novo modelo de sugestão para armazenar no armazenamento de dados de modelos de sugestão 275 e/ou atualizar (por exemplo, reparar, confirmar, substituir e/ou de outro modo afetar) um modelo de sugestão armazenado associado à página da Web.
[041] Em qualquer momento particular, os modelos de sugestão podem ser armazenados no armazenamento de dados de modelos de sugestão 275 em níveis diferentes de suficiência para diferentes páginas da Web. Por exemplo, em um momento particular, um modelo de sugestão pode estar presente ou ausente para uma página da Web específica, o modelo de sugestão pode ser incompleto (por exemplo, informações estão ausentes, menos que um número limiar de amostras de retroalimentação foi recebido, etc.), o modelo de sugestão para uma página da Web pode ser obsoleto ou ultrapassado (por exemplo, se algum tempo tiver decorrido desde que as informações de sugestão foram recebidas para uma página da Web, o modelo de sugestão pode ser considerado como tendo uma probabilidade maior de imprecisão), etc. Em algumas modalidades, os modelos de sugestão podem ser gerados e/ou atualizados apenas pelo agrupamento de navegação automatizado 285. Em outras modalidades, os modelos de sugestão podem ser adicionalmente gerados e/ou atualizados pelas máquinas cliente 110. Por exemplo, em algumas modalidades, algumas ou todas dentre as máquinas cliente 110 não são configuradas para e/ou não têm capacidade para gerar e comunicar retroalimentação de sugestão; de modo que aquelas máquinas cliente 110 não contribuam para a geração de modelo de sugestão.
[042] Algumas modalidades da máquina de sugestão (ou máquinas de sugestão) 130 podem determinar a probabilidade de disparar uma atualização de um ou mais modelos de sugestão. Em algumas implantações, a máquina de sugestão (ou máquinas de sugestão) 130 inclui meios para detectar o gatilho de atualização para atualizar um modelo de sugestão associado a uma página da Web, em que o modelo de sugestão é um dentre vários modelos de sugestão armazenados no armazenamento de dados de modelos de sugestão 275. O disparo de uma atualização pode acionar a criação de um novo modelo de sugestão e/ou atualização de um modelo de sugestão existente. Tal determinação pode ser feita em várias maneiras por qualquer componente adequado da máquina de sugestão (ou máquinas de sugestão) 130 (por exemplo, pelo subsistema de modelo de sugestão 270). Em algumas situações, uma atualização é disparada quando existe uma solicitação para uma página da Web por um computador cliente 110. Por exemplo, quando um computador cliente 110 solicita uma página da Web, as modalidades podem determinar (por exemplo, mediante a consulta do subsistema de modelo de sugestão 270) se um modelo de sugestão suficiente está presente no armazenamento de dados de modelos de sugestão 275. Se for o caso, as sugestões geradas por máquina podem ser fornecidas de volta para a máquina cliente 110 para o uso na pré-busca de recursos em associação com o carregamento da página da Web solicitada. Se não houver modelo de sugestão suficiente no armazenamento de dados de modelos de sugestão 275, o subsistema de modelo de sugestão 270 pode direcionar a geração e/ou atualização de um modelo de sugestão. Isso pode envolver direcionar o agrupamento de navegação automatizado 285 para gerar retroalimentação de sugestão e/ou gerar uma resposta de sugestão preliminar, conforme descrito de forma mais completa abaixo.
[043] Em outras situações, uma atualização é disparada de acordo com uma programação ou qualquer outra diretiva (por exemplo, um comando automatizado ou humano comunicado à máquina de sugestão (ou máquinas de sugestão) 130). As implantações do subsistema de modelo de sugestão 270 podem manter uma programação pela qual se direciona o agrupamento de navegação automatizado 285 para rolar certas páginas da Web. Por exemplo, a programação pode ser definida para assegurar que a retroalimentação de sugestão é recebida de cada página da Web (por exemplo, cada página da Web para qual um modelo de sugestão é armazenado no armazenamento de dados de modelos de sugestão 275) com pelo menos uma frequência mínima. Algumas tais programações responder apenas pela retroalimentação de sugestão recebida do agrupamento de navegação automatizado 285, enquanto que outras tais programações podem responder pela retroalimentação de sugestão recebida de computadores cliente 110 (isto é, a programação pode ser estática ou dinâmica). Adicionalmente, a programação pode responder por tipos adicionais de informações, como com qual frequência páginas da Web particulares (ou tipos de páginas da Web) são atualizadas, capacidade de infraestrutura disponível (por exemplo, para evitar a tomada de largura de banda em excesso e/ou outras ineficiências, a programação pode responder por tempos de uso fora de pico, etc.), etc.
[044] Em resposta à determinada que uma atualização é desejada, o subsistema de modelo de sugestão 270 ou qualquer outro componente adequado da máquina de sugestão (ou máquinas de sugestão) 130 pode direcionar o agrupamento de navegação automatizado 285 para gerar retroalimentação de sugestão suficiente para a geração de modelo de sugestão. Por exemplo, o subsistema de modelo de sugestão 270 pode emitir um gatilho de atualização em resposta à determinação para atualizar um modelo de sugestão particular associado a uma página da Web específica. Em resposta ao gatilho de atualização, o agrupamento de navegação automatizado 285 pode buscar a página da Web (por exemplo, uma ou múltiplas vezes, de acordo com um ou múltiplos ambientes de navegador) para gerar dados de busca de página para os recursos usados para renderizar a página da Web específica. Em algumas modalidades, os dados de busca de página podem ser usados para gerar retroalimentação de sugestão, que pode ser armazenada no armazenamento de informações de sugestão 135. Por exemplo, as modalidades da máquina de sugestão (ou máquinas de sugestão) 130 incluem meios para buscar a página da Web, em resposta à detecção do gatilho de atualização, para gerar dados de busca de página para os recursos usados para renderizar a página da Web; meios para gerar retroalimentação de sugestão de acordo com os dados de busca de página; e meios para comunicar a retroalimentação de sugestão para o servidor de sugestão para a atualização do modelo de sugestão pelo servidor de sugestão. As informações de sugestão armazenadas podem ser usadas pelo subsistema de modelo de sugestão 270 para gerar um ou mais modelos de sugestão, que podem ser armazenados no armazenamento de dados de modelos de sugestão 275. Em algum momento subsequente, se uma outra solicitação for recebida para a página da Web de um cliente solicitante posterior (a mesma ou uma máquina cliente diferente 110), os modelos de sugestão gerados e/ou atualizados podem ser usados para gerar por máquina sugestões, que podem ser fornecidas para o cliente solicitante posterior.
[045] Algumas modalidades fornecem uma resposta de sugestão preliminar à máquinas cliente solicitantes 110 no evento que um modelo de sugestão suficiente está indisponível no momento de uma solicitação de página da Web. Por exemplo, quando o subsistema de comunicações 250 recebe uma solicitação de página da Web, o mesmo pode consultar o subsistema de modelo de sugestão 270 para determinar se existe um modelo de sugestão suficiente para a página da Web solicitada. Se não, pode ser ainda desejável gerar por máquina sugestões, mesmo se aquelas sugestões foram baseadas em informações de sugestão limitadas. As modalidades da máquina de sugestão (ou máquinas de sugestão) 130 incluem um subsistema de sugestão preliminar 260 que pode gerar por máquina sugestões com base em informações de sugestão limitadas. Por exemplo, o subsistema de sugestão preliminar 260 pode incluir uma ou mais situações de mecanismo de navegação, que podem ser similares ou idênticas às situações de mecanismo de navegação do agrupamento de navegação automatizado 285. O subsistema de sugestão preliminar 260 pode carregar algumas ou todas dentre as página da Web solicitada, uma ou mais vezes, para gerar informações de retroalimentação de sugestão preliminar. As informações de retroalimentação preliminar podem ser usadas para gerar um modelo de sugestão preliminar e, consequentemente, uma resposta de sugestão preliminar. As implantações geram a resposta de sugestão preliminar de tal maneira que a resposta pode ser comunicada à máquina cliente solicitante 110 em tempo substancialmente real. Como usado nesse contexto, "em tempo substancialmente real"é destinado a implicar uma temporização que é rápida o suficiente para que seja útil para a máquina cliente solicitante 110 que afeta a pré-busca de recursos em associação com a solicitação de página da Web que fez com que a resposta preliminar fosse gerada (por exemplo, similar à temporização que tinha um modelo de sugestão suficiente disponível no momento da solicitação).
[046] As Figuras 1 e 2 mostram as máquinas cliente 110 em um lado diferente da rede 140 de todos os diversos componentes das máquinas de sugestão 130. Entretanto, essa arquitetura ilustrada é destinada a apenas simplificar a descrição, e não se destina a limitar implantações alternativas possíveis. Por exemplo, apesar de o agrupamento de navegação automatizado 285 ser mostrado como parte do back-end de sugestão 280, porções do agrupamento de navegação automatizado 285 (por exemplo, uma ou mais situações de mecanismo de navegação automatizadas) podem ser implantadas no subsistema de sugestão preliminar 260, em uma ou mais máquinas cliente 110, etc. (por exemplo, ou o backend de sugestão 280 pode ser colocalizado com e/ou remoto do subsistema de sugestão preliminar 260). As Figuras 3A e 3B mostram diversas arquiteturas alternativas pelas quais sistemas, como aqueles descritos nas Figuras 1 e 2, podem ser implantados.
[047] Voltando-se para a Figura 3A, é mostrada uma arquitetura ilustrativa 300a para implantar a geração por máquina de sugestões com o uso de agrupamentos de servidor automatizados, de acordo com diversas modalidades. A arquitetura 300a inclui uma máquina cliente 110 em comunicação com uma máquina de sugestão 130 e servidor de conteúdo 120 em uma rede 140. Essa arquitetura 300a é similar àquelas mostradas nas Figuras 1 e 2. Por exemplo, a máquina cliente 110 é disposta em um lado de cliente da rede 140, e tanto a funcionalidade de sugestão preliminar de um subsistema de sugestão preliminar 260 como a funcionalidade de sugestão não preliminar de subsistemas de back-end de sugestão 280 são disposta em um lado de provedor da rede (por exemplo, em um nó comum, em múltiplos nós de uma rede de backhaul, etc.).
[048] A Figura 3B mostra uma outra arquitetura ilustrativa 300b para implantar a geração por máquina de sugestões com o uso de agrupamentos de servidor automatizados, de acordo com diversas modalidades. A arquitetura 300b inclui uma máquina cliente 110 em comunicação com uma máquina de sugestão 130 e servidor de conteúdo 120 em uma primeira rede 140a, e diversas porções da máquina de sugestão 130 em comunicação em uma segunda rede 140b. Conforme ilustrado, o subsistema de sugestão preliminar 260 pode ser separado do back-end de sugestão 280 pela segunda rede 140b. Por exemplo, parte ou todo o back-end de sugestão 280 (por exemplo, o agrupamento de navegação automatizado 285) pode ser baseado em nuvem ou de outro modo remoto ou distribuído.
[049] Em algumas tais arquiteturas 300b, a primeira rede 140a tem latência relativamente maior (por exemplo, e/ou confiabilidade maior, etc.) que a segunda rede 140b. Por exemplo, a primeira rede é uma rede de satélite e a segunda rede é uma rede de backhaul. De acordo com certas tais arquiteturas, as máquinas cliente 110 se comunicam com servidores de conteúdo 120 apenas através de um ou mais nós da infraestrutura de lado de provedor, e algumas ou todas dentre as máquinas de sugestão 130 podem ser dispostas naquele um ou mais nós. Por exemplo, a máquina cliente 110 (por exemplo, o coletor de página) pode ser configurada como um cliente de proxy, e a máquina de sugestão 130 (por exemplo, o subsistema de comunicação) pode ser disposta em um nó de núcleo ou porta de comunicação da rede e configurada como um servidor de proxy; de modo que todas as solicitações de página da Web da máquina cliente 110 passem através (por exemplo, sejam interceptadas pela, etc.) de pelo menos uma porção da máquina de sugestão 130. Em tais implantações, o subsistema de sugestão preliminar 260 pode buscar recursos da página da Web solicitada dos servidores de conteúdo 120 mais rapidamente através da rede de backhaul do que as máquinas cliente 110 através da rede de satélite (por exemplo, particularmente múltiplas idas e voltas de solicitações de recurso, respostas de recurso, etc.). Com a busca mais rápida dos recursos, em algumas situações, o subsistema de sugestão preliminar 260 pode gerar e comunicar a resposta de sugestão preliminar para a máquina cliente solicitante 110 no momento para fornecer sugestões de pré-busca úteis (mesmo se aquelas sugestões foram baseadas em informações de sugestão preliminares limitadas).
[050] A Figura 4 mostra um fluxograma de um método ilustrativo 400 para a geração por máquina de sugestões com o uso de agrupamentos de navegação automatizados, de acordo com diversas modalidades. As modalidades do método 400 podem ser implantadas por meio de qualquer sistema adequado, como os sistemas descritos com referência às Figuras 1 a 3B. O método 400 pode começar no estágio 404 por meio da detecção de um gatilho de atualização para atualizar um modelo de sugestão associado a uma página da Web. O modelo de sugestão pode ser um dentre múltiplos modelos de sugestão mantidos no servidor de sugestão para informar a pré-busca de recursos usados para renderizar páginas da Web associadas. Em algumas modalidades, pode ser feita uma determinação em relação à probabilidade de disparar uma atualização no estágio 402, e o gatilho de atualização pode ser detectado no estágio 404 em resposta à determinação para disparar uma atualização no estágio 402.
[051] A determinação em relação à probabilidade de disparar uma atualização no estágio 402 pode ser com base em vários eventos de gatilho. Tal evento é uma atualização de modelo pré-programada. Por exemplo, uma programação de atualizações de modelo pode ser mantida pelo servidor de sugestão e/ou qualquer outro local adequado, e gatilhos de atualização podem ser fornecidos de acordo com a programação. Um outro tal evento é uma determinação de um modelo de sugestão obsoleto, indisponível ou de outro modo insuficiente. Por exemplo, o servidor de sugestão pode determinar se um modelo de sugestão para uma página da Web é suficiente para o uso na geração por máquina de sugestões em resposta a uma solicitação de cliente para aquela página da Web, em resposta ao rolamento de Web automatizado de múltiplas páginas da Web, ou de qualquer outra maneira adequada. Algumas implantações determinam a insuficiência apenas com base na presença ou ausência de um modelo de sugestão, enquanto que outras implantações podem usar diversas métricas para determinar se um modelo de sugestão existente é suficiente (por exemplo, com base em número limiar de amostras de retroalimentação de sugestão que foram recebidas para a página da Web e/ou para recursos particulares na página da Web, etc.). Um outro tal evento é o recebimento de uma solicitação cliente para uma página da Web. Por exemplo, no estágio 420, uma solicitação de sugestão pode ser recebida a partir de um cliente para a busca de uma página da Web. A solicitação pode ser tratada como um gatilho de atualização, ou um gatilho de atualização pode ser gerado em resposta ao recebimento da solicitação. Por exemplo, um gatilho de atualização pode ser detectado no estágio 404 depois que uma solicitação de sugestão é recebida no estágio 420, e é feita uma determinação no estágio 402 para disparar uma atualização devido ao fato de que a solicitação é para uma página da Web que tem um modelo de sugestão insuficiente. Em algumas modalidades, se for determinado não disparar uma atualização no estágio 402 (por exemplo, uma solicitação de sugestão é recebida no estágio 420 que invoca um modelo de sugestão suficiente), uma resposta de sugestão com base no modelo pode ser comunicada no estágio 424 (por exemplo, do servidor de sugestão para o cliente solicitante em resposta à solicitação de sugestão). Por exemplo, a resposta de sugestão com base no modelo pode ser gerada de acordo com o modelo de sugestão atualizado e/ou suficiente.
[052] No estágio 408, em resposta à detecção do gatilho de atualização no estágio 404, as modalidades podem buscar a página da Web, pelo agrupamento de navegação automatizado, para gerar dados de busca de página para recursos usados para renderizar a página da Web. Por exemplo, a página da Web pode ser buscada múltiplas vezes por uma ou mais situações de navegação do agrupamento de navegação automatizado. Em algumas implantações, a página da Web é buscada de acordo com diferentes ambientes de navegação (por exemplo, diferentes navegadores da Web, navegadores móveis versus desktop, navegadores que têm capacidades de análise de script diferentes, etc.). Os dados de busca de página gerados podem incluir quaisquer informações úteis sobre carregamento de recurso em relação ao carregamento de página da Web. Por exemplo, os dados de busca de página podem incluir informações de temporização de carga de recurso, informações de renderização (por exemplo, informações relacionadas às posições de recursos na página da Web, etc.), etc.
[053] A retroalimentação de sugestão pode ser gerada pelo agrupamento de navegação automatizado no estágio 412 de acordo com os dados de busca de página. No estágio 416, a retroalimentação de sugestão pode ser comunicada do agrupamento de navegação automatizado para o servidor de sugestão para a atualização do modelo de sugestão pelo servidor de sugestão. Em algumas modalidades, o modelo de sugestão é atualizado de acordo com a retroalimentação de sugestão, e, no estágio 424, uma resposta de sugestão com base no modelo pode ser comunicada de acordo com o modelo de sugestão atualizado.
[054] Em algumas modalidades, quando uma solicitação de sugestão é recebida no estágio 420, e é determinado disparar uma atualização no estágio 402, uma resposta de sugestão preliminar pode ser gerada pelo servidor de sugestão no estágio 430. Por exemplo, um mecanismo do servidor de sugestão (por exemplo, o agrupamento de navegação automatizado e/ou qualquer componente adequado) pode buscar a página da Web uma ou mais vezes para gerar retroalimentação de sugestão preliminar, um modelo de sugestão preliminar e uma resposta de sugestão preliminar, de acordo com o modelo de sugestão preliminar. Em algumas tais modalidades, a resposta de sugestão preliminar pode ser comunicada no estágio 434 do agrupamento de navegação automatizado para o cliente solicitante em tempo substancialmente real em resposta à solicitação de sugestão (isto é, sem atraso notável, de modo que seja usável pelo cliente para aprimorar a busca da página da Web como parte da transação da Web que corresponde à solicitação de sugestão recebida).
[055] A Figura 5 fornece uma ilustração esquemática de uma modalidade de um sistema de computador 500 que pode realizar os métodos da invenção, conforme descrito no presente documento e/ou pode funcionar, por exemplo, como qualquer parte de máquina cliente (ou máquinas cliente) 110, servidor de conteúdo (ou servidores de conteúdo) 120, máquina de sugestão (ou máquinas de sugestão) 130 ou qualquer outro tal computador ou dispositivo. Deve-se observar que a Figura 5 se destina apenas a fornecer uma ilustração generalizada de diversos componentes, dos quais qualquer um outro todos podem ser usados, conforme for adequado. A Figura 5, portanto, ilustra amplamente como elementos do sistema individuais podem ser implantados de uma maneira relativamente separa ou relativamente mais integrada.
[056] O sistema de computador 500 é mostrado compreendendo elementos de hardware que podem ser acoplados eletricamente através de um barramento 505 (ou podem de outro modo estarem em comunicação, conforme for adequado). Os elementos de hardware podem incluir um ou mais processadores 510, incluindo, sem limitação, um ou mais processadores de propósito geral e/ou um ou mais processadores de propósito especial (como circuitos integrados de processamento de sinal digital, circuitos integrados de aceleração gráfica e/ou similares); um ou mais dispositivos de entrada 515, que podem incluir, sem limitação, um mouse, um teclado, tela sensível ao toque e/ou similares; e um ou mais dispositivos de saída 520, que podem incluir, sem limitação, um dispositivo de exibição, uma impressora e/ou similares.
[057] O sistema de computador 500 pode incluir adicionalmente (e/ou estar em comunicação com) um ou mais dispositivos de armazenamento 525, que podem compreender, sem limitação, armazenamento acessível a rede e/ou local e/ou podem incluir, sem limitação, uma unidade de disco, uma matriz de unidades, um dispositivo de armazenamento óptico, um dispositivo de armazenamento de estado sólido, como uma memória de acesso aleatório (“RAM”) e/ou uma memória só de leitura (“ROM”), que podem ser programáveis, atualizáveis de forma rápida e/ou similares. O sistema de computador 500 também poderia incluir um subsistema de comunicações 530, que pode incluir, sem limitação, um modem, um cartão de rede (sem fio ou com fio), um dispositivo de comunicação infravermelho, um dispositivo de comunicação sem fio e/ou chipset (como um dispositivo 802.11, um dispositivo WiFi, um dispositivo WiMax, instalações de comunicação celular, etc.) e/ou similares. O subsistema de comunicações 530 pode permitir que dados sejam trocados com uma rede (como a rede descrita abaixo, para citar um exemplo) e/ou quaisquer outros dispositivos descritos no presente documento. Em muitas modalidades, o sistema de computador 500 irá compreender ainda uma memória de trabalho 535, que pode incluir um dispositivo de RAM ou ROM, conforme descrito acima.
[058] O sistema de computador 500 também pode compreender elementos de software, mostrados como estando atualmente situados dentro da memória de trabalho 535, incluindo um sistema operacional 540 e/ou outro código, como um ou mais aplicativos 545, que podem compreender programas de computador da invenção e/ou podem ser projetados para implantar métodos da invenção e/ou configurar sistemas da invenção, conforme descrito no presente documento. Meramente a título de exemplo, um ou mais procedimentos descritos em relação ao método (ou métodos) discutido acima poderiam ser implantados como código e/ou instruções executáveis por um computador (e/ou um processador dentro de um computador). Um conjunto dessas instruções e/ou código poderia ser armazenado em uma mídia de armazenamento legível por computador, como o dispositivo de armazenamento (ou dispositivos de armazenamento) 525 descrito acima. Em alguns casos, a mídia de armazenamento poderia ser incorporada dentro de um sistema de computador, como o sistema 500. Em outras modalidades, a mídia de armazenamento poderia ser separada de um sistema de computador (isto é, uma mídia removível, como um disco compacto, etc.) e/ou fornecida em um pacote de instalação, de modo que a mídia de armazenamento possa ser usada para programar um computador de propósito geral com as instruções/código armazenados na mesma. Essas instruções poderiam assumir a forma de código executável, que é executável pelo sistema de computador 500 e/ou poderiam assumir a forma de código-fonte e/ou código instalável que, mediante a compilação e/ou instalação no sistema de computador 500 (por exemplo, com o uso de qualquer um dentre uma variedade de compiladores, programas de instalação, utilidades de compactação/descompactação geralmente disponíveis, etc.), então, assume a forma de código executável. Em certas modalidades, isso pode incluir a funcionalidade de coletor de página e pode incluir módulos de coletor de página separados como parte dessa funcionalidade de coletor de página executada por um processo para possibilitar a exibição de uma página da Web em um dispositivo de saída 520 de tal sistema de computador 500.
[059] Ficará evidente aos versados na técnica que variações substanciais podem ser feitas de acordo com requisitos específicos. Por exemplo, hardware personalizado também poderia ser usado e/ou elementos particulares poderiam ser implantados em hardware, software (incluindo software portátil, como miniaplicativos, etc.), ou ambos. Adicionalmente, a conexão a outros dispositivos de computação como dispositivos de entrada/saída de rede pode ser empregada.
[060] Em um aspecto, a invenção emprega um sistema de computador (como o sistema de computador 500) para realizar métodos da invenção. De acordo com um conjunto de modalidades, alguns ou todos dentre os procedimentos de tais métodos são realizados pelo sistema de computador 500 em resposta ao processador 510 que executa uma ou mais sequências de uma ou mais instruções (que poderiam ser incorporadas no sistema operacional 540 e/ou outro código, como um aplicativo 545) contidas na memória de trabalho 535. Tais instruções podem ser lidas na memória de trabalho 535 a partir de uma outra mídia legível por máquina, como um ou mais dispositivos de armazenamento 525. Meramente a título de exemplo, a execução das sequências de instruções contidas na memória de trabalho 535 poderia fazer com que o processador (ou processadores) 510 realizasse um ou mais procedimentos dos métodos descritos no presente documento.
[061] Os termos “mídia legível por máquina” e “mídia legível por computador”, para uso no presente documento, se referem a qualquer mídia que participa do fornecimento de dados que fazem com que uma máquina opere em um modo específico. Em uma modalidade implantada com o uso do sistema de computador 500, diversas mídias legíveis por máquina poderiam estar envolvidas no fornecimento de instruções/código para o processador (ou processadores) 510 para execução e/ou poderiam ser usadas para armazenar e/ou transportar tais instruções/código (por exemplo, como sinais). Em muitas implantações, uma mídia legível por computador é uma mídia de armazenamento física e/ou tangível. Tal mídia pode assumir muitas formas incluindo, porém sem limitação, mídia não volátil. As mídias não voláteis incluem, por exemplo, discos magnéticos ou ópticos, como o dispositivo de armazenamento (ou dispositivos de armazenamento) 525. As formas comuns de mídias legíveis por computador físicas e/ou tangíveis incluem, por exemplo, um disco flexível, disco rígido, fita magnética ou qualquer outra mídia magnética, um CD-ROM ou qualquer outra mídia óptica, memória à base de circuito de estado sólido ou qualquer outro cartucho ou circuito integrado de memória, ou qualquer outra mídia da qual um computador pode ler instruções e/ou código. Diversas formas de mídias legíveis por máquina podem estar envolvidas no transporte de uma ou mais sequências de uma ou mais instruções para o processador (ou processadores) 510 para execução. Meramente a título de exemplo, as instruções podem ser inicialmente transportadas em uma memória de um computador remoto. Um computador remoto poderia carregar as instruções em sua memória dinâmica e enviar as instruções como sinais em um meio de transmissão para serem recebidas e/ou executadas pelo sistema de computador 500.
[062] O subsistema de comunicações 530 (e/ou componentes do mesmo) receberão, em geral, os sinais e o barramento 505 poderia, então, transportar os sinais (e/ou os dados, instruções, etc., transportados pelos sinais) para a memória de trabalho 535, a partir da qual o processador (ou processadores) 510 recupera e executa as instruções. As instruções recebidas pela memória de trabalho 535 podem ser opcionalmente armazenadas em um dispositivo de armazenamento 525 antes ou depois da execução pelo processador (ou processadores) 510.
[063] A Figura 6 ilustra um diagrama esquemático de um sistema de rede 600 que pode ser usado de acordo com algumas modalidades. Em tais modalidades, o sistema de rede 600 pode representar qualquer número de dispositivos cliente e servidor que possibilitam que o conteúdo seja comunicado de provedores de conteúdo para sistemas de usuário como parte de transações de página da Web através de uma rede. O sistema 600 pode incluir um ou mais computadores de usuário 605, como computadores para implantar máquina cliente (ou máquinas cliente) 110 da Figura 1. Os computadores de usuário 605 podem ser computadores pessoais de propósito geral e/ou podem ter qualquer um dentre uma variedade de aplicativos, incluindo um ou mais aplicativos configurados para realizar métodos da invenção, bem como um ou mais aplicativos de escritório, aplicativos de servidor e/ou cliente de banco de dados, e aplicativos de coletor de página. Alternativamente, os computadores de usuário 605 podem ser qualquer outro dispositivo eletrônico, como um máquina cliente fina, telefone móvel habilitado para Internet, computador do tipo tablet, phablet, dispositivo utilizável junto ao corpo, aparelho habilitado para Internet e/ou assistente digital pessoal (PDA) com capacidade para comunicar através de uma rede (por exemplo, a rede 610 descrita abaixo) e/ou exibir e navegar em páginas da Web ou outros tipos de documentos eletrônicos. Embora o sistema exemplificador 600 seja mostrado com três computadores de usuário 605a a 605c, qualquer número de computadores de usuário pode ser suportado.
[064] Certas modalidades da invenção operam em um ambiente de rede, que pode incluir uma rede 610, como para implantar a rede 140 da Figura 1. A rede 610 pode ser qualquer tipo de rede familiar para aqueles que são versados na técnica que pode suportar comunicações de dados com o uso de qualquer um dentre uma variedade de protocolos comercialmente disponíveis, incluindo, sem limitação, TCP/IP, UDP/IP, SNA, IPX e similares. Meramente a título de exemplo, a rede 610 pode ser uma rede de área local (“LAN”), incluindo, sem limitação, uma rede Ethernet, uma rede Token-Ring e/ou similares; uma rede de longa distância (WAN); uma rede virtual, incluindo, sem limitação, uma privada virtual (“VPN”); a Internet; uma intranet; uma extranet; uma rede telefônica comutada pública (“PSTN”); uma rede infravermelho; uma rede sem fio, incluindo, sem limitação, uma rede que opera sob qualquer um dentre o conjunto de protocolos IEEE 802.11, ou qualquer protocolo sem fio; e/ou qualquer combinação dessas e/ou outras redes.
[065] As modalidades da invenção podem incluir um ou mais servidores 615 (ou tipos similares de sistemas computacionais). As modalidades dos servidores 615 podem ser usadas para implantar o servidor de conteúdo (ou servidores de conteúdo) 120 e/ou a máquina de sugestão (ou máquinas de sugestão) 130. Conforme descrito acima, a máquina de sugestão (ou máquinas de sugestão) 130 também pode fazer parte de um ou mais servidores de conteúdo 120 e/ou parte de uma ou mais máquinas cliente 110, que pode ser implantada como um ou mais dentre os servidores 615. Cada um dos servidores 615 pode ser configurado com um sistema operacional, incluindo, sem limitação, qualquer um dentre aqueles discutidos acima, bem como quaisquer sistemas operacionais de servidor comercialmente (ou livremente) disponíveis. Cada um dos servidores 615 também pode estar executando um ou mais aplicativos que podem ser configurados para fornecer serviços para um ou mais computadores de usuário 605 e/ou outros servidores 615.
[066] Meramente a título de exemplo, um dos servidores 615 pode ser um servidor Web, que pode ser usado, meramente a título de exemplo, para processar solicitações para páginas da Web ou outros documentos eletrônicos a partir de computadores de usuário 605. O servidor Web também pode executar uma variedade de aplicativos de servidor, incluindo servidores HTTP, servidores FTP, servidores CGI, servidores de banco de dados, servidores de script e similares. Em algumas modalidades da invenção, o servidor Web pode ser configurado para atender páginas da Web que podem ser operadas dentro de um coletor de página em um ou mais computadores de usuário 605 para realizar métodos da invenção. Em certas modalidades, os servidores 615 também podem incluir dispositivos CDN que fornecem conteúdo similar ou idêntico de um servidor alternativo em relação ao servidor de conteúdo primário que é uma fonte para objetos particulares em uma transação de página da Web.
[067] Os servidores 615, em algumas modalidades, poderiam incluir um ou mais servidores de aplicativos, que podem incluir um ou mais aplicativos acessíveis por um cliente executando em um ou mais computadores de usuário 605 e/ou outros servidores 615. Meramente a título de exemplo, o servidor (ou servidores) 615 pode ser um ou mais computadores de propósito geral com capacidade para executar programas ou scripts em resposta aos computadores de usuário 605 e/ou outros servidores 615, incluindo, sem limitação, aplicativos Web (que poderiam, em alguns casos, serem configurados para realizar métodos da invenção). Meramente a título de exemplo, um aplicativo Web pode ser implantado como um ou mais scripts ou programas gravados em qualquer linguagem de programação adequada. O servidor de aplicativo (ou servidores de aplicativo) também pode incluir servidores de banco de dados que podem processar solicitações de clientes (incluindo, dependendo do configurador, clientes de banco de dados, clientes API, coletores de página, etc.) executadas em um computador de usuário 605 e/ou um outro servidor 615. Em algumas modalidades, um servidor de aplicativo pode criar páginas da Web dinamicamente para exibir as informações de acordo com as modalidades da invenção, como informações exibidas como parte de diversos coletores de página discutidos no presente documento. Os dados fornecidos por um servidor de aplicativo podem ser formatados como páginas da Web (por exemplo, que compreendem HTML, scripts, etc.) e/ou podem ser encaminhados para um computador de usuário 605 através de um servidor de conteúdo 120. De modo similar, um servidor de conteúdo 120 pode receber solicitações de página da Web e/ou dados de entrada a partir de um computador de usuário 605 e/ou encaminhar as solicitações de página da Web e/ou dados de entrada para um servidor de aplicativo. Em alguns casos, um servidor de conteúdo 120 pode ser integrado com um servidor de aplicativo.
[068] De acordo com modalidades adicionais, um ou mais servidores 615 podem funcionar como um servidor de arquivos e/ou podem incluir um ou mais arquivos (por exemplo, código de aplicativo, arquivos de dados, etc.) necessário para implantar métodos da invenção incorporados por um aplicativo executa em um computador de usuário 605 e/ou um outro servidor 615. Alternativamente, à medida que aqueles que são versados na técnica irão observar, um servidor de arquivos pode incluir todos os arquivos necessários, que permitem que tal aplicativo seja invocado remotamente por um computador de usuário 605 e/ou servidor 615. Deve-se observar que as funções descritas em relação a diversos servidores no presente documento (por exemplo, servidor de aplicativo, servidor de banco de dados, servidor Web, servidor de arquivos, etc.) podem ser realizadas por um único servidor e/ou uma pluralidade de servidores especializados, dependendo dos parâmetros e necessidades específicas de implantação.
[069] Em certas modalidades, o sistema pode incluir um ou mais bancos de dados 620, como para implantar um armazenamento de dados de informações de sugestão 135, um armazenamento de dados de modelo de sugestão 275 e/ou qualquer outro armazenamento de dados adequado usado por sistemas e métodos de diversas modalidades. Tais bancos de dados podem incluir armazenamentos de histórico de transações da Web e sugestões derivadas desse histórico de transações da Web. Quaisquer detalhes de suporte relacionados à criação de tais sugestões podem ser adicionalmente armazenados em tal banco de dados. A localização do banco de dados (ou bancos de dados)620 é discricionária: meramente a título de exemplo, um banco de dados 620a poderia residir em uma mídia de armazenamento local a (e/ou residente em) um servidor 615a (e/ou um computador de usuário 605). Alternativamente, um banco de dados 620b pode ser remoto de qualquer um ou todos dentre os computadores 605 ou servidores 615a,b, contato que o banco de dados 620b possa estar em comunicação com um ou mais dos mesmos (por exemplo, através da rede 610). Em um conjunto particular de modalidades, um banco de dados 620 pode residir em uma rede de área de armazenamento (“SAN”) familiar àqueles versados na técnica. De modo semelhante, quaisquer arquivos necessários para realizar as funções atribuídas aos computadores 605 ou servidores 615 podem ser armazenados localmente no respectivo computador e/ou remotamente, conforme for adequado. Em um conjunto de modalidades, o banco de dados 620 pode ser um banco de dados relacional que é adaptado para armazenar, atualizar e recuperar dados em resposta a comandos formatados em SQL. O banco de dados poderia ser controlado e/ou mantido por um servidor de banco de dados, conforme descrito acima, por exemplo.
[070] Em qualquer modalidade descrita no presente documento, qualquer comunicação, resposta ou solicitação de protocolo de transporte de hipertexto (HTTP), transação de página da Web, porção de uma transação de página da Web, ou qualquer combinação de quaisquer comunicações que podem usar, total ou parcialmente, HTTP também pode ser implantada com o uso de segurança de protocolo de transporte de hipertexto (HTTPS). O uso de HTTPS envolve criptografia e diversas medidas de segurança, e qualquer modalidade descrita no presente documento pode ser adaptada para implantar sistemas e métodos descritos no presente documento para acomodar a criptografia e segurança associada a HTTPS de várias maneiras.
[071] Em certas modalidades, os dispositivos de proxy envolvidos em qualquer comunicação descrita no presente documento podem ser dotados de detalhes associados a comunicações HTTPS, a fim de habilitar qualquer funcionalidade de dispositivo de proxy descrita no presente documento. Tais detalhes podem ser fornecidos por um dispositivo de usuário com consentimento do usuário para habilitar a interação de dispositivo de proxy ou dispositivo de máquina de sugestão com as comunicações do usuário. Isso pode possibilitar a descriptografia de comunicação HTTPS pelo proxy para habilitar qualquer funcionalidade descrita no presente documento. Tais detalhes para possibilitar a descriptografia também podem ser fornecidos por um servidor de conteúdo ou operador de servidor de conteúdo para possibilitar a interação de dispositivo de proxy com as comunicações do provedor de conteúdo. Para aspectos das modalidades descritas no presente documento em relação à funcionalidade de lado de cliente ou funcionalidade de coletor de página, certas modalidades podem funcionar com a mesma implantação descrita acima para dispositivos de proxy. Essa funcionalidade pode ser usada, bem como qualquer outro dispositivo de conteúdo ou lado de servidor.
[072] Em outras modalidades, em vez de uma descriptografia de proxy de comunicações HTTPS, um navegador em um dispositivo de usuário pode interagir com um dispositivo de proxy ou um dispositivo de máquina de sugestão, independente da comunicação HTTPS original para fornecer detalhes da comunicação HTTPS para o dispositivo de proxy ou dispositivo de máquina de sugestão. Em um coletor de página de dispositivo de usuário, isso pode envolver o uso de um módulo de coletor de página, plug-in de coletor de página ou coletor de página com funcionalidade de núcleo especializada para observar comunicações HTTPS antes de serem criptografadas. Se for necessário, as comunicações independentes com o dispositivo de proxy ou dispositivo de máquina de sugestão podem, então, ser adicionalmente submetidas à segurança similar à segurança usada para a comunicação HTTPS original. Para modalidades descritas no presente documento que podem envolver a integração com sistemas de provedor de conteúdo ou sistemas de proxy inverso, a comunicação HTTPS recebida no sistema de provedor de conteúdo ou proxy inverso pode ser usada como parte das modalidades descritas no presente documento, depois que a comunicação HTTPS é descriptografada pelo sistema de provedor de conteúdo ou proxy inverso. Dessa forma, qualquer funcionalidade de “observação” ou “identificação” descrita no presente documento pode ser realizada com comunicações HTTPS para máquinas cliente, dispositivos de proxy e dispositivos de provedor de conteúdo. De modo similar, qualquer modalidade descrita no presente documento pode ser implantada com outros protocolos ou sistemas de comunicação e conexão segura adicionalmente a HTTPS descrito acima.
[073] Certas modalidades descritas no presente documento se referem a dispositivos de proxy ou sistemas de proxy. Conforme descrito no presente documento, os dispositivos de proxy podem ser um ou mais dispositivos que operam como parte de um sistema para interceptar comunicações entre dispositivos de usuário e dispositivos de conteúdo. Tais proxies podem ser transparentes para os dispositivos de conteúdo e de usuário, ou podem ser parte de uma trajetória de comunicação de múltipla etapa que é evidente a dispositivos de conteúdo e de usuário. Em certas modalidades, os dispositivos de proxy podem funcionar como parte de um sistema de proxy de encaminhamento, em que as comunicações de um grupo de dispositivos de usuário são todas comunicadas a uma rede mais ampla (como a Internet) através do sistema de proxy de encaminhamento. Em modalidades alternativas, os dispositivos de proxy podem funcionar como parte de sistemas de proxy inverso, em que um sistema de proxy inverso opera como uma trajetória de acesso a vários dispositivos de servidor de conteúdo. Será evidente que as modalidades descritas no presente documento como incluindo um proxy irá se aplicar tanto a sistemas de proxy de encaminhamento como a sistemas de proxy inverso, e qualquer configuração de um sistema que inclui um proxy, dada acomodações adequadas para a estrutura de sistema particular.
[074] Os métodos revelados no presente documento incluem uma ou mais ações para obter o método descrito. O método e/ou ações podem ser intercambiadas um com o outro sem que se afaste do escopo das reivindicações. Em outras palavras, exceto onde uma ordem específica de ações é especificada, a ordem e/ou uso de ações específicas pode ser modificado sem que se afaste do escopo das reivindicações.
[075] As funções descritas podem ser implantadas em hardware, software, firmware ou qualquer combinação dos mesmos. Caso implantado em software, as funções podem ser armazenadas como uma ou mais instruções em uma mídia legível por computador. Uma mídia de armazenamento pode ser qualquer mídia tangível disponível que pode ser acessada por um computador. A título de exemplo, e não de limitação, tais mídias legíveis por computador podem incluir RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético ou outros dispositivos de armazenamento magnético, ou qualquer outra mídia que possa ser usada para carregar ou armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que possa ser acessado por um computador. Disco magnético e disco óptico, conforme usado no presente documento, incluem disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu- ray®, em que os discos magnéticos normalmente reproduzem os dados de modo magnético, enquanto os discos ópticos reproduzem os dados de modo óptico com lasers.
[076] Um produto de programa de computador pode realizar certas operações apresentadas no presente documento. Por exemplo, tal produto de programa de computador pode ser uma mídia tangível legível por computador que tem instruções armazenadas de maneira tangível (e/ou codificadas) na mesma, sendo que as instruções são executáveis por um ou mais processadores para realizar as operações descritas no presente documento. O produto de programa de computador pode incluir material de embalagem. O software ou instruções também podem ser transmitidos em uma mídia de transmissão. Por exemplo, o software pode ser transmitido a partir de um site da Web, servidor ou outra fonte remota com o uso de uma mídia de transmissão como um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL) ou tecnologia sem fio como infravermelho, rádio ou micro-ondas.
[077] Adicionalmente, os módulos e/ou outros meios adequados para realizar os métodos e técnicas descritos no presente documento podem ser transferidos por download e/ou de outro modo obtidos por terminais adequados e/ou acoplados a servidores ou similares, para facilitar a transferência de meios para realizar os métodos descritos no presente documento. Alternativamente, diversos métodos descritos no presente documento podem ser fornecidos através de meios de armazenamento (por exemplo, RAM, ROM, uma mídia de armazenamento física como um CD ou disquete, etc.), de modo que um terminal de usuário e/ou estação-base possa obter os diversos métodos mediante o acoplamento ou fornecimento do meio de armazenamento para o dispositivo. Além disso, qualquer outra técnica adequada para fornecer os métodos e técnicas descritos no presente documento para um dispositivo pode ser utilizada. Os atributos que implantam funções também podem ser fisicamente localizados em diversas posições, incluindo sendo distribuídos de modo que porções de funções sejam implantadas em diferentes locais físicos.
[078] Na descrição da presente invenção, será usada a terminologia a seguir: As formas singulares “um”, “uma”, “o” e “a” incluem referentes plurais a menos que o contexto declare claramente de outro modo. Dessa forma, por exemplo, a referência a um item inclui a referência a um ou mais itens. Os termos "um" ou “uns” se referem a um, dois ou mais, e geralmente se aplica à seleção de alguns ou todos de uma quantidade. O termo “pluralidade” refere-se a dois ou mais itens. O termo “cerca de” significa que as quantidades, as dimensões, os tamanhos, as formulações, os parâmetros, os formatos e outras características não precisam ser exatas, mas podem ser aproximadas e/ou maiores ou menores, conforme desejado, refletindo tolerâncias aceitáveis, fatores de conversão, arredondamentos, erro de medição e similares e outros fatores conhecidos por aqueles versados na técnica. O termo “substancialmente” significa que a característica, o parâmetro ou o valor mencionado não precisa ser alcançado exatamente, mas que desvios ou variações, incluindo, por exemplo, tolerâncias, erro de medição, limitações de precisão de medição e outros fatores conhecidos por aqueles versados na técnica, podem ocorrer em quantidades que não anulam o efeito da característica que se pretende fornecer. Os dados numéricos podem ser expressos ou apresentados no presente documento em um formato de faixa. Deve-se entender que tal formato de faixa é usado simplesmente para conveniência e brevidade e, assim, deve ser interpretado de modo flexível incluindo não apenas os valores numéricos explicitamente relatados como os limites da faixa, mas também interpretado incluindo todos os valores numéricos individuais ou as subfaixas abrangidas dentro daquela faixa como se cada valor numérico e subfaixa fossem explicitamente mencionados. Como uma ilustração, uma faixa numérica de "cerca de 1 a 5" deve ser interpretada como incluindo não apenas os valores explicitamente relatados de cerca de 1 a cerca de 5, mas incluem também valores individuais e subfaixas dentro da faixa indicada. Dessa forma, estão incluídos nessa faixa numérica valores individuais como 2, 3 e 4 e subfaixas, como “1 a 3”, “2 a 4” e “3 a 5”, etc. Esse mesmo princípio se aplica a faixas que mencionam apenas um valor numérico (por exemplo, “maior que cerca de 1”) e deve se aplicar a despeito da amplitude da faixa ou das características que são descritas. Uma pluralidade de itens pode ser apresentada em uma lista comum para conveniência. Entretanto, essas listas devem ser interpretadas como se cada membro da lista fosse individualmente identificado como um membro exclusivo e separado. Dessa forma, nenhum membro individual de tal lista deve ser considerado como um equivalente de fato de qualquer outro membro da mesma lista apenas com base em sua apresentação em um grupo comum sem indicações do contrário. Adicionalmente, onde os termos “e” e “ou” são usados em conjunto com uma lista de itens, os mesmos devem ser interpretados amplamente, pelo fato de que um ou mais dos itens listados podem ser usados sozinhos ou em combinação com outros itens listados. O termo “alternativamente” refere-se à seleção de uma de duas ou mais alternativas e não se destina a limitar a seleção a apenas aquelas alternativas listadas ou a apenas uma das alternativas listadas de uma vez, a não ser que o contexto indique claramente de outro modo. O termo “acoplado”, como usado no presente documento, não exige que os componentes sejam diretamente conectadas uns aos outros. Em vez disso, o termo destina-se a incluir também configurações com conexões indiretas em que um ou mais outros componentes podem ser incluídos entre os componentes acoplados. Por exemplo, tais outros componentes podem incluir amplificadores, atenuadores, isoladores, acopladores direcionais, comutadores de redundância e similares. Além disso, como usado no presente documento, incluindo nas reivindicações, “ou” conforme usado em uma lista de itens precedidos de “pelo menos um dentre” indica uma lista disjuntiva de modo que, por exemplo, uma lista de “pelo menos um dentre A, B ou C” signifique A ou B ou C ou AB ou AC ou BC ou ABC (isto é, A e B e C). Adicionalmente, o termo “exemplificador” não significa que o exemplo descrito é preferencial ou melhor que outros exemplos. De modo similar, os termos, como "otimizar"não se destinam a limitar modalidades a um resultado ou abordagem ideal, mas, de preferência, expressar o movimento de procura em direção a um resultado ideal (por exemplo, para aprimorar, etc.). Como usado no presente documento, um "conjunto" de elementos se destina a significar "um ou mais" daqueles elementos, exceto onde é explicitamente exigido que o conjunto tenha mais de um ou é permitido explicitamente que seja um conjunto nulo.
[079] Diversas mudanças, substituições e alterações nas técnicas descritas no presente documento podem ser feitas sem que se afaste da tecnologia dos ensinamentos conforme definido pelas reivindicações anexas. Ademais, o escopo da revelação e reivindicações não é limitado aos aspectos particulares do processo, máquina, fabricação, composição de matéria, meios, métodos e ações descritas acima. Os processos, as máquinas, a fabricação, as composições de matéria, os meios, os métodos ou as ações, presentemente existentes ou a serem desenvolvidos posteriormente, que realizam substancialmente a mesma função ou alcançam substancialmente o mesmo resultado dos aspectos correspondentes descritos no presente documento podem ser utilizados. Consequentemente, as reivindicações anexas incluem em seu escopo tais processos, máquinas, fabricação, composições de matéria, meios, métodos ou ações.

Claims (30)

1. MÉTODO PARA ATUALIZAÇÃO DE MODELO DE SUGESTÃO, com o uso de um agrupamento de navegação automatizado em comunicação com um servidor de sugestão acionado por máquina, caracterizado por compreender: emitir, pelo servidor de sugestão para o agrupamento de navegação automatizado, um gatilho de atualização para atualizar um modelo de sugestão associado a uma página da Web, sendo que o modelo de sugestão é mantido no servidor de sugestão para informar navegadores da Web localizados remotamente em máquinas clientes localizadas remotamente de recursos para realizar a pré-busca como parte de uma apresentação futura da página da Web por qualquer um dos navegadores da Web; buscar a página da Web, através do agrupamento de navegação automatizado, em resposta ao gatilho de atualização emitido pelo servidor de sugestão, em que o agrupamento de navegação automatizado está localizado remotamente dos navegadores da web das máquinas clientes; identificar, pelo agrupamento de navegação automatizado da página da Web buscada, dados de busca de página para recursos da página da Web; gerar retroalimentação de sugestão, através do agrupamento de navegação automatizado, de acordo com os dados de busca de página; e comunicar a retroalimentação de sugestão do agrupamento de navegação automatizado ao servidor de sugestão para atualização do modelo de sugestão pelo servidor de sugestão.
2. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo agrupamento de navegação automatizado estar disposto no servidor de sugestões; o servidor de sugestões é separado de cada um dos navegadores da Web por uma rede de comunicações; a emissão compreende um módulo do servidor de sugestão que emite o gatilho de atualização para o agrupamento de navegação automatizado; e a comunicação compreende o agrupamento de navegação automatizado que comunica a retroalimentação de sugestão para o módulo do servidor de sugestão.
3. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda atualizar, pelo servidor de sugestão, o modelo de sugestão usando a retroalimentação de sugestão.
4. MÉTODO, de acordo com a reivindicação 3, caracterizado por compreender ainda: receber uma solicitação de sugestão de um dos navegadores da Web para obter sugestões para apresentar a página da Web; e comunicar uma resposta de sugestão baseada em modelo do servidor de sugestão para o navegador solicitante em resposta à solicitação de sugestão, a resposta de sugestão baseada em modelo gerada de acordo com o modelo de sugestão atualizado.
5. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo gatilho de atualização corresponder ao recebimento de uma solicitação de sugestão no servidor de sugestão de um dos navegadores da Web para sugestões para apresentar a página da web.
6. MÉTODO, de acordo com a reivindicação 5, caracterizado por compreender adicionalmente: determinar, pelo servidor de sugestão, em resposta ao pedido de sugestão, que não há um modelo de sugestão para a página da Web no servidor de sugestão, em que o servidor de sugestão emite o gatilho de atualização em resposta à determinação de que não há um modelo de sugestão para a página da Web no servidor de sugestões; gerar, pelo servidor de sugestão, uma resposta de sugestão preliminar da retroalimentação de sugestão recebida do agrupamento de navegação automatizado; comunicar a resposta de sugestão preliminar do servidor de sugestão ao navegador da Web solicitante em tempo substancialmente real em resposta à solicitação de sugestão; e atualizar o modelo de sugestão criando o modelo de sugestão no servidor de sugestão a partir do feedback de sugestão.
7. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo gatilho de atualização corresponder a uma determinação de que o modelo de sugestão para a página da Web no servidor de sugestão está incompleto e/ou obsoleto.
8. MÉTODO, de acordo com a reivindicação 1, caracterizado por pelo menos um dentre os recursos identificados pelo agrupamento de navegação automatizado ser um localizador de recurso uniforme (URL) de um recurso filho da página da Web.
9. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender ainda: apresentar, pelo agrupamento de navegação automatizado, a página da Web buscada pelo agrupamento de navegação automatizado, em que os dados de busca de página compreendem dados de apresentação de página a partir da apresentação da página da Web pelo agrupamento de navegação automatizado.
10. MÉTODO, de acordo com a reivindicação 9, caracterizado pelos dados de apresentação da página compreenderem ainda identificações de recursos filhos da página da Web buscados como parte da apresentação da página da Web pelo agrupamento de navegação automatizada.
11. MÉTODO, de acordo com a reivindicação 10, caracterizado pelos dados de apresentação da página compreenderem ainda informações de temporização de carga para uma pluralidade dos recursos filhos.
12. MÉTODO, de acordo com a reivindicação 1, caracterizado pela busca compreender buscar, pelo agrupamento de navegação automatizado, a página da Web uma pluralidade de vezes, a identificação compreende identificar, pelo agrupamento de navegação automatizado, dados de busca de página de cada uma das buscas da página da Web, e a geração compreende gerar a retroalimentação de sugestão, pelo agrupamento de navegação automatizada, de acordo com os dados de busca de página identificados a partir de cada uma das buscas da página da Web.
13. MÉTODO, de acordo com a reivindicação 12, caracterizado pela busca compreender ainda buscar a página da Web a pluralidade de vezes substancialmente em paralelo.
14. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo agrupamento de navegação automatizado compreender uma pluralidade de scripts de busca de página da Web, cada script de busca de página da Web tendo menos do que uma funcionalidade completa de qualquer um dos navegadores da Web nas máquinas clientes, e a busca compreende um dos scripts de busca de página da web que buscam a página da web.
15. MÉTODO, de acordo com a reivindicação 1, caracterizado pelo agrupamento de navegação automatizado emular uma pluralidade de diferentes ambientes de busca de página da Web; a busca compreende uma primeira busca da página da Web em um primeiro dos ambientes de busca da Web e uma segunda busca da página da Web em um segundo dos ambientes de busca da Web, em que o segundo ambiente de busca da Web é diferente do primeiro ambiente de busca da web; a identificação compreende identificar, pelo agrupamento de navegação automatizado, dados de busca de página tanto da primeira busca quanto da segunda busca da página da Web; e a geração compreende gerar a retroalimentação de sugestão, pelo agrupamento de navegação automatizado, de acordo com os dados de busca de página identificados tanto na primeira busca quanto na segunda busca da página da Web.
16. MÉTODO, de acordo com a reivindicação 1, caracterizado por compreender adicionalmente: programar a busca da página da Web pelo agrupamento de navegação automatizado durante um período de tempo de uso de rede fora de pico, em que a busca é de acordo com a programação.
17. SISTEMA DE GERAÇÃO DE SUGESTÃO ACIONADO POR MÁQUINA, caracterizado por compreender: um armazenamento de dados que mantém um modelo de sugestão para uma página da web, em que o modelo de sugestão é para informar navegadores da Web localizados remotamente de recursos para pré-busca como parte de uma apresentação da página da Web por qualquer um dos navegadores da Web; um servidor de sugestão, em comunicação com o armazenamento de dados, que opera para emitir um gatilho de atualização em resposta à determinação para atualizar o modelo de sugestão; e um agrupamento de navegação automatizado, em comunicação com o servidor de sugestão, que opera, em resposta ao gatilho de atualização do servidor de sugestão para: buscar a página da Web; identificar, a partir da página da Web buscada, dados de busca de página para recursos da página da Web; e gerar retroalimentação de sugestão de acordo com os dados de busca de página; em que o armazenamento de dados, o servidor de sugestão e o agrupamento de navegação automatizado estão localizados remotamente a partir dos navegadores da Web; e em que o servidor de sugestão emite o gatilho de atualização para o agrupamento de navegação automatizado.
18. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo agrupamento de navegação automatizado ser disposto no servidor de sugestões, um módulo do servidor de sugestão é configurado para emitir o gatilho de atualização para o agrupamento de navegação automatizado, e o servidor de sugestões é separado dos navegadores da Web por uma rede de comunicações.
19. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo agrupamento de navegação automatizado operar adicionalmente para comunicar a retroalimentação de sugestão ao servidor de sugestão; e o servidor de sugestão operar adicionalmente para atualizar o modelo de sugestão de acordo com a retroalimentação de sugestão.
20. SISTEMA, de acordo com a reivindicação 19, caracterizado pelo servidor de sugestão operar adicionalmente para: receber uma solicitação de sugestão de um dos navegadores da Web para sugestões para apresentar a página da Web; gerar de acordo com o modelo de sugestão atualizado uma resposta de sugestão baseada em modelo; e comunicar a resposta de sugestão baseada em modelo para o navegador solicitante.
21. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo servidor de sugestão operar adicionalmente para receber uma solicitação de sugestão de um dos navegadores para sugestões para apresentar a página da web.
22. SISTEMA, de acordo com a reivindicação 21, caracterizado pelo servidor de sugestão operar ainda para: ao determinar que o modelo de sugestão para a página da Web não está armazenado no armazenamento de dados, emitir o gatilho de atualização; gerar uma resposta de sugestão preliminar a partir do feedback de sugestão; e comunicar a resposta de sugestão preliminar ao navegador da web solicitante substancialmente em tempo real em resposta à solicitação de sugestão; e criar o modelo de sugestão a partir do feedback de sugestão.
23. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo servidor de sugestão operar adicionalmente para emitir o gatilho de atualização ao determinar que o modelo de sugestão no armazenamento de dados para a página da Web está incompleto e/ou desatualizado.
24. SISTEMA, de acordo com a reivindicação 17, caracterizado por pelo menos um dos recursos para os quais o agrupamento de navegação automatizado identifica dados de busca de página é um localizador uniforme de recursos (URL) de um recurso filho da página da Web.
25. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo agrupamento de navegação automatizado ainda operar para apresentar a página da Web buscada, e os dados de busca de página compreendem dados de apresentação de página a partir da apresentação da página da Web pelo agrupamento de navegação automatizado.
26. SISTEMA, de acordo com a reivindicação 25, caracterizado pelos dados de apresentação da página compreenderem ainda identificações de recursos filhos da página da Web buscados pelo agrupamento de navegação automatizado como parte da apresentação da página da web.
27. SISTEMA, de acordo com a reivindicação 26, caracterizado pelos dados de apresentação de página compreenderem ainda informações de tempo de carregamento para uma pluralidade de recursos filhos.
28. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo agrupamento de navegação automatizado ainda operar para: buscar a página da Web uma pluralidade de vezes, identificar dados de busca de página de cada uma das buscas da página da Web, e gerar a retroalimentação de sugestão de acordo com os dados de busca da página identificados em cada uma das buscas da página da Web.
29. SISTEMA, de acordo com a reivindicação 28, caracterizado pelo agrupamento de navegação automatizado ainda operar para buscar a página da Web uma pluralidade de vezes substancialmente em paralelo.
30. SISTEMA, de acordo com a reivindicação 17, caracterizado pelo agrupamento de navegação automatizado compreender um script de busca de página da Web com menos do que uma funcionalidade completa de qualquer um dos navegadores da Web, e o agrupamento de navegação automatizado opera para buscar a página da Web usando o script de busca de página da Web.
BR112018007818-2A 2015-10-20 2015-10-20 Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina BR112018007818B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/056375 WO2017069735A1 (en) 2015-10-20 2015-10-20 Hint model updating using automated browsing clusters

Publications (3)

Publication Number Publication Date
BR112018007818A2 BR112018007818A2 (pt) 2018-10-30
BR112018007818A8 BR112018007818A8 (pt) 2023-04-11
BR112018007818B1 true BR112018007818B1 (pt) 2023-10-17

Family

ID=54365426

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112018007818-2A BR112018007818B1 (pt) 2015-10-20 2015-10-20 Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina

Country Status (8)

Country Link
US (2) US10387522B2 (pt)
EP (2) EP3859567A1 (pt)
CN (2) CN108701130B (pt)
AU (1) AU2015412569B2 (pt)
BR (1) BR112018007818B1 (pt)
CA (1) CA3002517C (pt)
MX (1) MX2018004856A (pt)
WO (1) WO2017069735A1 (pt)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
MX2018004856A (es) 2015-10-20 2018-11-09 Viasat Inc Actualizacion de modelo de optimizacion por medio de agrupamientos de navegacion automatica.
US10592578B1 (en) * 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
EP3642727B1 (en) * 2018-08-20 2023-05-10 Google LLC Resource pre-fetch using age threshold
US10860801B2 (en) * 2018-09-12 2020-12-08 Samsung Electronics Co., Ltd. System and method for dynamic trend clustering
CN112559065A (zh) * 2019-09-26 2021-03-26 北京沃东天骏信息技术有限公司 分集群加载模型的方法和装置
CN113885894B (zh) * 2021-09-15 2023-12-12 南京海泰医疗信息系统有限公司 一种基于电子病历产品后台的打包和更新方法和系统

Family Cites Families (234)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408470A (en) 1993-10-14 1995-04-18 Intel Corporation Deferred synchronization of distributed objects
US5740367A (en) 1995-11-03 1998-04-14 Spilo; Michael L. Method and apparatus for improving the throughput of a local area network
US6339787B1 (en) 1995-11-30 2002-01-15 Stampede Technologies, Inc. Apparatus and method for increasing speed in a network file/object oriented server/client system
US5870754A (en) 1996-04-25 1999-02-09 Philips Electronics North America Corporation Video retrieval of MPEG compressed sequences using DC and motion signatures
US5727129A (en) 1996-06-04 1998-03-10 International Business Machines Corporation Network system for profiling and actively facilitating user activities
US5809566A (en) * 1996-08-14 1998-09-15 International Business Machines Corporation Automatic cache prefetch timing with dynamic trigger migration
US5905981A (en) 1996-12-09 1999-05-18 Microsoft Corporation Automatically associating archived multimedia content with current textual content
US7363291B1 (en) 2002-03-29 2008-04-22 Google Inc. Methods and apparatus for increasing efficiency of electronic document delivery to users
ATE311692T1 (de) 1997-03-07 2005-12-15 Intelligent Compression Techno Netzwerk zur datencodierung
US5878223A (en) 1997-05-07 1999-03-02 International Business Machines Corporation System and method for predictive caching of information pages
ATE282922T1 (de) 1997-08-06 2004-12-15 Tachyon Inc Verteiltes system und verfahren zum objektvorabholen
US6085193A (en) 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6085226A (en) 1998-01-15 2000-07-04 Microsoft Corporation Method and apparatus for utility-directed prefetching of web pages into local cache using continual computation and user models
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6578073B1 (en) 1998-05-13 2003-06-10 Hewlett-Packard Development Company, L.P. Accelerated content delivery over a network using reduced size objects
US6385641B1 (en) * 1998-06-05 2002-05-07 The Regents Of The University Of California Adaptive prefetching for computer network and web browsing with a graphic user interface
US6266058B1 (en) * 1998-09-08 2001-07-24 Hewlett Packard Company Apparatus and method for linking browser bars with active documents for a browser
US6993591B1 (en) 1998-09-30 2006-01-31 Lucent Technologies Inc. Method and apparatus for prefetching internet resources based on estimated round trip time
US20010016836A1 (en) 1998-11-02 2001-08-23 Gilles Boccon-Gibod Method and apparatus for distributing multimedia information over a network
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
JP4299911B2 (ja) * 1999-03-24 2009-07-22 株式会社東芝 情報転送システム
US20070111713A1 (en) 1999-05-25 2007-05-17 Silverbrook Research Pty Ltd Method for accessing content from a computer network via a mobile phone using a two-step retrieval process
US6453389B1 (en) 1999-06-25 2002-09-17 Hewlett-Packard Company Optimizing computer performance by using data compression principles to minimize a loss function
US6463508B1 (en) 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
US6721780B1 (en) 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6947440B2 (en) 2000-02-15 2005-09-20 Gilat Satellite Networks, Ltd. System and method for internet page acceleration including multicast transmissions
US20030018581A1 (en) 2000-02-16 2003-01-23 Bratton Timothy R. Delivering media data to portable computing devices
US7412462B2 (en) 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US7856485B2 (en) 2000-03-08 2010-12-21 Music Choice Systems and methods for providing customized media channels
WO2001069384A2 (en) 2000-03-14 2001-09-20 Buzzpad, Inc. Method and apparatus for forming linked multi-user groups of shared software applications
US6549896B1 (en) * 2000-04-07 2003-04-15 Nec Usa, Inc. System and method employing random walks for mining web page associations and usage to optimize user-oriented web page refresh and pre-fetch scheduling
US6701316B1 (en) 2000-04-07 2004-03-02 Nec Corporation Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh
US6622168B1 (en) * 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US20020006116A1 (en) 2000-05-04 2002-01-17 Reed Burkhart Distributed content management and open broadcast system using satellites and the internet
US6769010B1 (en) 2000-05-11 2004-07-27 Howzone.Com Inc. Apparatus for distributing information over a network-based environment, method of distributing information to users, and method for associating content objects with a database wherein the content objects are accessible over a network communication medium by a user
US20010051927A1 (en) 2000-06-08 2001-12-13 Blinkspeed, Inc. Increasing web page browsing efficiency by periodically physically distributing memory media on which web page data are cached
US8041817B2 (en) 2000-06-30 2011-10-18 At&T Intellectual Property I, Lp Anonymous location service for wireless networks
US7716367B1 (en) 2000-07-20 2010-05-11 Akamai Technologies, Inc. Network performance monitoring in a content delivery service
US6856651B2 (en) 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
WO2002041579A1 (de) 2000-11-09 2002-05-23 Swisscom Ag Verfahren zur aggregation und zum übermitteln von multimediadaten
US6879808B1 (en) 2000-11-15 2005-04-12 Space Systems/Loral, Inc Broadband communication systems and methods using low and high bandwidth request and broadcast links
US6965683B2 (en) 2000-12-21 2005-11-15 Digimarc Corporation Routing networks for use with watermark systems
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
JP2002236767A (ja) 2001-02-07 2002-08-23 Sony Corp 情報処理装置および方法、プログラム格納媒体、並びにプログラム
US7681032B2 (en) 2001-03-12 2010-03-16 Portauthority Technologies Inc. System and method for monitoring unauthorized transport of digital content
JP3990115B2 (ja) 2001-03-12 2007-10-10 株式会社東芝 サーバ側プロキシ装置及びプログラム
US20020154887A1 (en) 2001-04-23 2002-10-24 Koninklijke Philips Electronics N.V. System and method for storing digital broadcast data
US20020188735A1 (en) 2001-06-06 2002-12-12 Needham Bradford H. Partially replicated, locally searched peer to peer file sharing system
US7100200B2 (en) 2001-06-13 2006-08-29 Citrix Systems, Inc. Method and apparatus for transmitting authentication credentials of a user across communication sessions
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7165101B2 (en) 2001-12-03 2007-01-16 Sun Microsystems, Inc. Transparent optimization of network traffic in distributed systems
US7437438B2 (en) 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
US7343397B2 (en) 2002-03-29 2008-03-11 Lucent Technologies Inc. Method and apparatus for performing predictive caching of DNS requests by correlating IP addresses
US7418494B2 (en) * 2002-07-25 2008-08-26 Intellectual Ventures Holding 40 Llc Method and system for background replication of data objects
US7509667B1 (en) 2002-08-15 2009-03-24 Sprint Communications Company L.P. Broadband content jukebox with profile-based caching
WO2004019160A2 (en) * 2002-08-23 2004-03-04 Jway Group, Inc. Extensible user interface (xui) framework and development environment
US7130890B1 (en) 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
US7953820B2 (en) 2002-09-11 2011-05-31 Hughes Network Systems, Llc Method and system for providing enhanced performance of web browsing
US7778438B2 (en) 2002-09-30 2010-08-17 Myport Technologies, Inc. Method for multi-media recognition, data conversion, creation of metatags, storage and search retrieval
EP1414211A1 (en) 2002-10-23 2004-04-28 Sony International (Europe) GmbH Software architecture for capability and quality-of-service negotiations and session establishment for distributed multimedia applications
AU2003278521A1 (en) * 2002-11-29 2004-06-23 International Business Machines Corporation Index server support to file sharing applications
US7680897B1 (en) 2003-04-08 2010-03-16 Novell, Inc. Methods and systems for managing network traffic
US7237061B1 (en) 2003-04-17 2007-06-26 Realnetworks, Inc. Systems and methods for the efficient reading of data in a server system
US20070276823A1 (en) 2003-05-22 2007-11-29 Bruce Borden Data management systems and methods for distributed data storage and management using content signatures
US20050033747A1 (en) 2003-05-25 2005-02-10 Erland Wittkotter Apparatus and method for the server-sided linking of information
US20050015442A1 (en) 2003-06-02 2005-01-20 O'laughlen Eric Page views for proxy servers
US20050027820A1 (en) 2003-06-02 2005-02-03 O'laughlen Eric Page views proxy servers
US7143251B1 (en) 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
US20050010870A1 (en) 2003-07-09 2005-01-13 Jinsheng Gu Post-processing algorithm for byte-level file differencing
US7974990B2 (en) 2003-07-16 2011-07-05 Hewlett-Packard Development Company, L.P. Managing program applications
WO2005043279A2 (en) 2003-10-31 2005-05-12 Disksites Research And Development Ltd. Device, system and method for storage and access of computer files
US7340510B1 (en) 2003-11-18 2008-03-04 Cisco Technology, Inc. Content delivery network (CDN) replication status reporter
GB0326915D0 (en) * 2003-11-19 2003-12-24 Ibm A method and system for updating/reloading the content of pages browsed over a network
US7483941B2 (en) 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
US7676785B2 (en) * 2004-02-13 2010-03-09 Microsoft Corporation Hosted application as a designer in an integrated development environment
EP1728391A1 (en) 2004-03-10 2006-12-06 Koninklijke Philips Electronics N.V. System and method for remote recording
US8055616B2 (en) 2004-06-25 2011-11-08 International Business Machines Corporation Application sharing smoothness
US7558822B2 (en) 2004-06-30 2009-07-07 Google Inc. Accelerating user interfaces by predicting user actions
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7526607B1 (en) 2004-09-23 2009-04-28 Juniper Networks, Inc. Network acceleration and long-distance pattern detection using improved caching and disk mapping
US8037527B2 (en) 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
US8327440B2 (en) 2004-11-08 2012-12-04 Bt Web Solutions, Llc Method and apparatus for enhanced browsing with security scanning
US7487169B2 (en) 2004-11-24 2009-02-03 International Business Machines Corporation Method for finding the longest common subsequences between files with applications to differential compression
US20060116926A1 (en) 2004-11-27 2006-06-01 Chen Michael W Method and system for internet publishing and advertising forums
US20080005086A1 (en) 2006-05-17 2008-01-03 Moore James F Certificate-based search
US20060184960A1 (en) 2005-02-14 2006-08-17 Universal Music Group, Inc. Method and system for enabling commerce from broadcast content
US7610280B2 (en) 2005-05-05 2009-10-27 Cisco Technology, Inc. Method and system for dynamically pre-positioning content in a network based detecting or predicting user presence
US7882181B2 (en) 2005-06-03 2011-02-01 Microsoft Corporation Minimizing data transfer from POP3 servers
US8732234B2 (en) * 2005-06-07 2014-05-20 Yahoo! Inc. Providing relevant non-requested content to a mobile device
US20060294223A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content
CN100588203C (zh) 2005-07-12 2010-02-03 国际商业机器公司 数据存储方法和系统
US7975019B1 (en) 2005-07-15 2011-07-05 Amazon Technologies, Inc. Dynamic supplementation of rendered web pages with content supplied by a separate source
US20070033408A1 (en) 2005-08-08 2007-02-08 Widevine Technologies, Inc. Preventing illegal distribution of copy protected content
EP1949270B1 (en) 2005-10-12 2011-04-06 Datacastle Corporation Method and system for data backup
US7689162B2 (en) 2005-10-28 2010-03-30 Viasat, Inc. Adaptive coding and modulation flow control and traffic shaping systems and methods
US8230059B1 (en) 2005-11-08 2012-07-24 Hewlett-Packard Development Company, L.P. Method of monitoring resource usage in computing environment
US8812648B2 (en) 2005-11-21 2014-08-19 Ebay Inc. Techniques for measuring above-the-fold page rendering
US7636767B2 (en) 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
CN100486170C (zh) 2005-12-15 2009-05-06 国际商业机器公司 传送前摄http内容的方法和设备
US8191098B2 (en) 2005-12-22 2012-05-29 Verimatrix, Inc. Multi-source bridge content distribution system and method
US9740794B2 (en) 2005-12-23 2017-08-22 Yahoo Holdings, Inc. Methods and systems for enhancing internet experiences
US8447837B2 (en) 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US20070174246A1 (en) 2006-01-25 2007-07-26 Sigurdsson Johann T Multiple client search method and system
GB0603552D0 (en) 2006-02-22 2006-04-05 Advanced Risc Mach Ltd Cache management within a data processing apparatus
JP4701148B2 (ja) 2006-03-02 2011-06-15 アラクサラネットワークス株式会社 障害回復システム及びサーバ
US20070219956A1 (en) * 2006-03-16 2007-09-20 Milton Michael L Excel spreadsheet parsing to share cells, formulas, tables, etc.
US7644111B2 (en) 2006-05-02 2010-01-05 Microsoft Corporation Framework for content representation and delivery
WO2007131132A2 (en) 2006-05-03 2007-11-15 Voxant, Inc. System and method for collecting and distributing content
US7747749B1 (en) 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
US20080066182A1 (en) 2006-09-12 2008-03-13 Andrew Hickmott Security techniques for cooperative file distribution
US20100095220A1 (en) 2006-09-28 2010-04-15 Mobilaps Llc Methods and systems for providing a mini-webpage within a webpage
US8230361B2 (en) 2006-09-28 2012-07-24 Google Inc. Content feed user interface
US10789323B2 (en) 2006-10-02 2020-09-29 Adobe Inc. System and method for active browsing
KR100881668B1 (ko) 2006-11-09 2009-02-06 삼성전자주식회사 웹 페이지 프리페치 장치 및 방법
US20080115125A1 (en) 2006-11-13 2008-05-15 Cingular Wireless Ii, Llc Optimizing static dictionary usage for signal compression and for hypertext transfer protocol compression in a wireless network
US8819724B2 (en) 2006-12-04 2014-08-26 Qualcomm Incorporated Systems, methods and apparatus for providing sequences of media segments and corresponding interactive data on a channel in a media distribution system
WO2008074020A2 (en) 2006-12-13 2008-06-19 Viasat, Inc. Acm aware encoding systems and methods
US7961665B2 (en) 2006-12-13 2011-06-14 Viasat, Inc. Terminal aware multicasting
US20080162488A1 (en) * 2006-12-29 2008-07-03 Karle Christopher J Method, system and program product for updating browser page elements over a distributed network
US20080175239A1 (en) 2007-01-23 2008-07-24 Yipes Enterprise Services, Inc Multicast wide-area network for distributing data to selected destinations with limited or no replication
US8065275B2 (en) 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US20080201332A1 (en) 2007-02-20 2008-08-21 Souders Steven K System and method for preloading content on the basis of user context
US8259721B2 (en) 2007-02-22 2012-09-04 Cisco Technology, Inc. Time-based authorization of internet protocol (IP) multicast subscription services
US7941609B2 (en) 2007-02-23 2011-05-10 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
CA2717909A1 (en) 2007-03-08 2009-09-12 Mobilaps Llc Methods of placing intermediate network entity content in a web browser
US8930555B2 (en) * 2007-03-08 2015-01-06 Microsoft Corporation Extending functionality of web-based applications
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
US8103783B2 (en) * 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US7783757B2 (en) * 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US7584294B2 (en) * 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US8131723B2 (en) 2007-03-30 2012-03-06 Quest Software, Inc. Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity
US20080263130A1 (en) 2007-04-23 2008-10-23 Nir Michalowitz Apparatus, system and method of digital content distribution
US8352318B2 (en) 2007-05-29 2013-01-08 Digital River, Inc. Exclusivity in internet marketing campaigns system and method
US20090006368A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Automatic Video Recommendation
US8151004B1 (en) 2007-07-13 2012-04-03 Adobe Systems Incorporated File processing to accelerate image viewer initialization
US8417728B1 (en) * 2007-08-03 2013-04-09 Adobe Systems Incorporated User interfaces, methods, and systems for developing computer applications using artwork
US8505046B2 (en) 2007-08-17 2013-08-06 At&T Intellectual Property I, L.P. Targeted online, telephone and television advertisements based on cross-service subscriber profiling
US8930989B2 (en) 2007-08-20 2015-01-06 AdsVantage System and method for providing supervised learning to associate profiles in video audiences
US8078729B2 (en) 2007-08-21 2011-12-13 Ntt Docomo, Inc. Media streaming with online caching and peer-to-peer forwarding
US20090064001A1 (en) * 2007-08-30 2009-03-05 Nicole Summers Robbins Personalizing Default Settings on a GUI
US7941409B2 (en) 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
US9460229B2 (en) 2007-10-15 2016-10-04 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US20090112975A1 (en) 2007-10-31 2009-04-30 Microsoft Corporation Pre-fetching in distributed computing environments
US8284773B1 (en) 2007-11-01 2012-10-09 Sprint Spectrum L.P. Advanced joining into multicast group to facilitate later communication among group members
US7697557B2 (en) 2007-12-26 2010-04-13 Alcatel Lucent Predictive caching content distribution network
US11366676B2 (en) * 2008-01-14 2022-06-21 Oracle International Corporation Embedded user assistance for software applications
US7975071B2 (en) 2008-01-18 2011-07-05 Microsoft Corporation Content compression in networks
US9418171B2 (en) 2008-03-04 2016-08-16 Apple Inc. Acceleration of rendering of web-based content
US8219544B2 (en) 2008-03-17 2012-07-10 International Business Machines Corporation Method and a computer program product for indexing files and searching files
US8010705B1 (en) 2008-06-04 2011-08-30 Viasat, Inc. Methods and systems for utilizing delta coding in acceleration proxy servers
US8423889B1 (en) 2008-06-05 2013-04-16 Amazon Technologies, Inc. Device specific presentation control for electronic book reader devices
US7953881B1 (en) 2008-06-12 2011-05-31 Juniper Networks, Inc. Network characteristic-based compression of network traffic
US20090313329A1 (en) 2008-06-13 2009-12-17 International Business Machines Corporation Methods, Systems and Computer Program Products for Communication of Information in Electronic Conferences
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US8156419B2 (en) 2008-07-17 2012-04-10 International Business Machines Corporation Intelligent preloads of views and asynchronous loading of models using the MVC design pattern
US8799955B2 (en) 2008-08-26 2014-08-05 At&T Intellectual Property I, Lp Apparatus and method for managing media content
US20100083322A1 (en) 2008-09-29 2010-04-01 Alan Rouse Providing selective video program content and associated license in response to a promotion token
US7814149B1 (en) 2008-09-29 2010-10-12 Symantec Operating Corporation Client side data deduplication
WO2010037168A1 (en) 2008-10-01 2010-04-08 Binu Pty Ltd Systems, methods, and computer readable media for providing applications style functionality to a user
US8082228B2 (en) 2008-10-31 2011-12-20 Netapp, Inc. Remote office duplication
CN101751437A (zh) * 2008-12-17 2010-06-23 中国科学院自动化研究所 基于强化学习的网页页面主动式检索系统
US20100169262A1 (en) 2008-12-30 2010-07-01 Expanse Networks, Inc. Mobile Device for Pangenetic Web
US20100169313A1 (en) 2008-12-30 2010-07-01 Expanse Networks, Inc. Pangenetic Web Item Feedback System
US20100179984A1 (en) 2009-01-13 2010-07-15 Viasat, Inc. Return-link optimization for file-sharing traffic
US8260938B2 (en) 2009-01-23 2012-09-04 Google Inc. Predicting user requests to reduce network connection latency
WO2010104927A2 (en) 2009-03-10 2010-09-16 Viasat, Inc. Internet protocol broadcasting
US9171097B2 (en) 2009-03-31 2015-10-27 Qualcomm Incorporated Memoizing web-browsing computation with DOM-based isomorphism
US8140646B2 (en) 2009-06-04 2012-03-20 Microsoft Corporation Network application performance enhancement using speculative execution
US20110029899A1 (en) 2009-08-03 2011-02-03 FasterWeb, Ltd. Systems and Methods for Acceleration and Optimization of Web Pages Access by Changing the Order of Resource Loading
US8078691B2 (en) 2009-08-26 2011-12-13 Microsoft Corporation Web page load time prediction and simulation
JP5343793B2 (ja) 2009-09-28 2013-11-13 ブラザー工業株式会社 情報生成装置、情報生成プログラム、情報生成方法、ノード装置、ノードプログラム及び検索方法
US8543907B1 (en) * 2009-10-16 2013-09-24 Google Inc. Context-sensitive optimization level selection
US8312367B2 (en) * 2009-10-30 2012-11-13 Synopsys, Inc. Technique for dynamically sizing columns in a table
US8612374B1 (en) 2009-11-23 2013-12-17 F5 Networks, Inc. Methods and systems for read ahead of remote data
US8209510B1 (en) 2010-01-13 2012-06-26 Juniper Networks, Inc. Secure pool memory management
US9063757B2 (en) 2010-04-06 2015-06-23 Microsoft Technology Licensing, Llc Interactive application assistance, such as for web applications
US9043385B1 (en) 2010-04-18 2015-05-26 Viasat, Inc. Static tracker
US8381213B1 (en) 2010-06-30 2013-02-19 Emc Corporation Method for dynamic management of system resources through application hints
US8577960B2 (en) * 2010-07-29 2013-11-05 Sap Ag Providing status information for components in a distributed landscape
US11386510B2 (en) * 2010-08-05 2022-07-12 Thomson Reuters Enterprise Centre Gmbh Method and system for integrating web-based systems with local document processing applications
US10296653B2 (en) 2010-09-07 2019-05-21 F5 Networks, Inc. Systems and methods for accelerating web page loading
US8788762B2 (en) 2010-09-30 2014-07-22 Nokia Corporation Methods and apparatuses for data resource provision
US8909697B2 (en) 2010-11-29 2014-12-09 Hughes Network Systems, Llc Computer networking system and method with javascript execution for pre-fetching content from dynamically-generated URL and javascript injection to modify date or random number calculation
US8886742B2 (en) 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US8478843B1 (en) 2011-03-01 2013-07-02 IMDB. COM, Inc. Templates with static parameter caching
US8510237B2 (en) 2011-03-15 2013-08-13 Qualcomm Incorporated Machine learning method to identify independent tasks for parallel layout in web browsers
US9106607B1 (en) * 2011-04-11 2015-08-11 Viasat, Inc. Browser based feedback for optimized web browsing
US9037638B1 (en) * 2011-04-11 2015-05-19 Viasat, Inc. Assisted browsing using hinting functionality
US9456050B1 (en) 2011-04-11 2016-09-27 Viasat, Inc. Browser optimization through user history analysis
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9083583B1 (en) 2011-07-01 2015-07-14 Google Inc. Latency reduction via adaptive speculative preconnection
US9146909B2 (en) 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
CN102346770B (zh) * 2011-09-21 2014-05-14 晨星软件研发(深圳)有限公司 WebKit浏览器网页内容加载方法及装置
US8341245B1 (en) 2011-09-26 2012-12-25 Google Inc. Content-facilitated speculative preparation and rendering
US9135364B1 (en) 2011-11-10 2015-09-15 Google Inc. Delivery of web pages with markup for speed
US8849731B2 (en) * 2012-02-23 2014-09-30 Microsoft Corporation Content pre-fetching for computing devices
US9325806B2 (en) * 2012-02-24 2016-04-26 Qualcomm Incorporated Cooperative loading of webpages based on shared meta information
US9239862B2 (en) * 2012-05-01 2016-01-19 Qualcomm Incorporated Web acceleration based on hints derived from crowd sourcing
US9231949B1 (en) 2012-08-10 2016-01-05 Amazon Technologies, Inc. Content delivery to user devices using server-initiated connections
US9898445B2 (en) 2012-08-16 2018-02-20 Qualcomm Incorporated Resource prefetching via sandboxed execution
CN102880688B (zh) * 2012-09-14 2016-07-27 北京百度网讯科技有限公司 一种用于对网页进行评估的方法、装置和设备
US9917879B2 (en) 2012-10-13 2018-03-13 Microsoft Technology Licensing, Llc Remote interface templates
KR102036662B1 (ko) * 2012-10-25 2019-10-28 삼성전자주식회사 네트워크 시스템에서 웹 접속 장치 및 방법
US10042776B2 (en) * 2012-11-20 2018-08-07 Arm Limited Prefetching based upon return addresses
US9634904B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Framework supporting content delivery with hybrid content delivery services
US9408050B2 (en) 2013-01-31 2016-08-02 Hewlett Packard Enterprise Development Lp Reducing bandwidth usage of a mobile client
EP2973352A4 (en) * 2013-03-15 2016-11-02 Opanga Networks Inc DELIVERY OF CONTENT OF DEVICES
US9009103B2 (en) 2013-03-15 2015-04-14 Microsoft Technology Licensing, Llc Fingerprint-based, intelligent, content pre-fetching
US9489372B2 (en) * 2013-03-15 2016-11-08 Apple Inc. Web-based spell checker
US9083584B2 (en) 2013-08-16 2015-07-14 Via Technologies, Inc. Common mode modulation with current compensation
US9524287B2 (en) * 2013-09-20 2016-12-20 Oracle International Corporation Model-driven tooltips in excel
CN103631880A (zh) * 2013-11-13 2014-03-12 王锦忠 基于Ajax网页的局部更新方法
US20150156194A1 (en) 2013-12-04 2015-06-04 Symantec Corporation Certificate status delivery through a local endpoint
US9444905B2 (en) 2014-03-20 2016-09-13 International Business Machines Corporation Allocating network bandwidth to prefetch requests to prefetch data from a remote storage to cache in a local storage
US9613158B1 (en) 2014-05-13 2017-04-04 Viasat, Inc. Cache hinting systems
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
CN104978373A (zh) * 2014-06-09 2015-10-14 腾讯科技(深圳)有限公司 网页展示方法及网页展示装置
US9948700B2 (en) * 2014-07-01 2018-04-17 Oracle International Corporation ADFDI support for custom attribute properties
US10127206B2 (en) * 2014-07-16 2018-11-13 Oracle International Corporation Dynamic column groups in excel
KR102151457B1 (ko) 2014-08-25 2020-09-03 삼성전자 주식회사 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
US10311371B1 (en) * 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
US10311372B1 (en) * 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
US10048948B2 (en) * 2015-07-06 2018-08-14 Oracle International Corporation Optimized retrieval of custom string resources
US10582001B2 (en) * 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
MX2018004856A (es) * 2015-10-20 2018-11-09 Viasat Inc Actualizacion de modelo de optimizacion por medio de agrupamientos de navegacion automatica.
US20170221109A1 (en) * 2016-01-29 2017-08-03 Qualcomm Incorporated Ads management in a browser application
US9654575B1 (en) 2016-05-18 2017-05-16 Crowdly, Inc. Pass-through web traffic systems and methods
US10489297B2 (en) * 2017-02-22 2019-11-26 Intel Corporation Prefetching time allocation
US10599571B2 (en) * 2017-08-07 2020-03-24 Intel Corporation Instruction prefetch mechanism
US20190155958A1 (en) * 2017-11-20 2019-05-23 Microsoft Technology Licensing, Llc Optimized search result placement based on gestures with intent
US10754912B2 (en) * 2018-03-12 2020-08-25 Microsoft Technology Licensing, Llc Machine learning model to preload search results
US10802969B2 (en) * 2019-02-04 2020-10-13 Arm Limited Interconnect and method of operation of such an interconnect

Also Published As

Publication number Publication date
AU2015412569A1 (en) 2018-05-10
CA3002517C (en) 2022-06-21
CN108701130B (zh) 2023-06-20
WO2017069735A1 (en) 2017-04-27
US20180246982A1 (en) 2018-08-30
MX2018004856A (es) 2018-11-09
EP3859567A1 (en) 2021-08-04
AU2015412569B2 (en) 2019-09-12
BR112018007818A8 (pt) 2023-04-11
BR112018007818A2 (pt) 2018-10-30
US10387522B2 (en) 2019-08-20
US20200097514A1 (en) 2020-03-26
CN116610884A (zh) 2023-08-18
CA3002517A1 (en) 2017-04-27
CN108701130A (zh) 2018-10-23
EP3365802A1 (en) 2018-08-29
US11200292B2 (en) 2021-12-14

Similar Documents

Publication Publication Date Title
US11310333B2 (en) Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
BR112018007818B1 (pt) Método para atualização de modelo de sugestão e sistema de geração de sugestão acionado por máquina
US9292467B2 (en) Mobile resource accelerator
US10282522B2 (en) Cross-application authentication on a content management system
US9942299B2 (en) System and method for managing multiple variants of an HTTP object
US9871850B1 (en) Enhanced browsing using CDN routing capabilities
AU2015409179B2 (en) Machine-driven crowd-disambiguation of data resources
US9049246B2 (en) Reducing web page loading time
US9117002B1 (en) Remote browsing session management
US20230054917A1 (en) Time-dependent machine-generated hinting
US20150188999A1 (en) System and method to extend the capabilities of a web browser to improve the web application performance
US10574703B1 (en) Content delivery employing multiple security levels
US20150012608A1 (en) Web content prefetch control device, web content prefetch control program, and web content prefetch control method
US9998559B2 (en) Preemptive caching of data
US9674220B2 (en) System and method thereof for optimizing delivery of content over a network

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: G06F 17/30 , H04L 29/08

Ipc: H04L 67/60 (2022.01), G06F 16/957 (2019.01), H04L

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 20/10/2015, OBSERVADAS AS CONDICOES LEGAIS