BR112021004415A2 - sistema, método e dispositivos para selecionar um servidor de borda - Google Patents

sistema, método e dispositivos para selecionar um servidor de borda Download PDF

Info

Publication number
BR112021004415A2
BR112021004415A2 BR112021004415-9A BR112021004415A BR112021004415A2 BR 112021004415 A2 BR112021004415 A2 BR 112021004415A2 BR 112021004415 A BR112021004415 A BR 112021004415A BR 112021004415 A2 BR112021004415 A2 BR 112021004415A2
Authority
BR
Brazil
Prior art keywords
edge server
user device
user
edge
data
Prior art date
Application number
BR112021004415-9A
Other languages
English (en)
Inventor
Todd Segal
Nolan Daniel O'Brien
HANSON Ho
Fei Xiong
Brendan Boyd
Original Assignee
Twitter, 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 Twitter, Inc. filed Critical Twitter, Inc.
Publication of BR112021004415A2 publication Critical patent/BR112021004415A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes
    • 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/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

SISTEMA, MÉTODO E DISPOSITIVOS PARA SELECIONAR UM SERVIDOR DE BORDA. A presente invenção refere-se a sistema, método e dispositivos (de programas de computador codificados em meios de armazenamento em computadores para fornecer aos dispositivos de usuário identificadores de servidores de borda a partir dos quais um conteúdo é obtido). Um exemplo de sistema inclui um serviço de controle de tráfego. O serviço de controle de tráfego é configurado para receber solicitações de polling de dispositivos de usuário. Em resposta a uma determinada solicitação de polling, o serviço de controle de tráfego obtém dados agregados sobre os dispositivos de usuário e os servidores de borda. O serviço de controle de tráfego seleciona, com base nos dados agregados, o melhor servidor de borda para o dispositivo do usuário que enviou a solicitação de polling específica. O serviço de controle de tráfego envia um identificador do melhor servidor de borda selecionado para o dispositivo do usuário.

Description

Relatório Descritivo da Patente de Invenção para “SIS- TEMA, MÉTODO E DISPOSITIVOS PARA SELECIONAR UM SERVI- DOR DE BORDA”.
ANTECEDENTES
[001] Este relatório descritivo refere-se, em geral, ao balancea- mento de carga em sistemas baseados em servidor.
SUMÁRIO
[002] Este relatório descritivo refere-se a tecnologias para identifi- car, para cada dispositivo do usuário que usa uma plataforma de conte- údo, um melhor caminho de entrada a ser usado pelo dispositivo do usuário para acessar a plataforma de conteúdo.
[003] Um exemplo de sistema inclui dispositivos de usuário, servi- dores de borda, que são servidores usados pelos dispositivos de usuário para acessar a plataforma de conteúdo, um serviço de agregação e um serviço de controle de tráfego. Cada dispositivo de usuário está associ- ado a uma chave de rede. O número de chaves de rede é menor que o número de dispositivos de usuário. As chaves de rede servem como identificadores de partições de dispositivos de usuário, sendo que os dispositivos de usuário em cada partição têm características similares. Cada dispositivo de usuário é configurado para enviar solicitações de conteúdo a um servidor de borda identificado para o dispositivo de usu- ário. O servidor de borda fornece aos dispositivos de usuário acesso à plataforma de conteúdo.
[004] O serviço de agregação obtém dados sobre os servidores de borda a partir dos dispositivos de usuário. Neste relatório descritivo, tais dados serão chamados de dados do servidor de borda. Os dados do servidor de borda são classificados com informações do dispositivo so- bre o dispositivo do usuário que forneceu os dados do servidor de borda, incluindo a chave de rede associada ao dispositivo do usuário. O serviço de agregação agrega os dados do servidor de borda por meio da chave de rede e armazena os dados agregados na memória de um servidor físico.
[005] Cada dispositivo de usuário é configurado para enviar solici- tações de sondagem ao melhor servidor de borda para o dispositivo de usuário e a um ou mais outros servidores de borda. Os dispositivos de usuário recebem respostas de sondagem às solicitações de sondagem ou registam uma falta de resposta. Os dispositivos de usuário determi- nam, para cada resposta de sondagem recebida, um tempo de ida e volta.
[006] O serviço de controle de tráfego recebe, de cada dispositivo de usuário, uma solicitação de polling (sondagem). Em resposta, o ser- viço de controle de tráfego obtém do serviço de agregação os dados do servidor de borda agregados pela chave de rede que corresponde à chave de rede associada ao dispositivo do usuário. O serviço de con- trole de tráfego seleciona um melhor servidor de borda para o dispositivo do usuário com base nos dados agregados. O serviço de controle de tráfego fornece, ao dispositivo do usuário, um identificador do melhor servidor de borda selecionado para o dispositivo do usuário e identifica- dores de um ou mais outros servidores de borda para os quais o dispo- sitivo do usuário deve enviar solicitações futuras de sondagem.
[007] Este relatório descritivo usa o termo "configurado para" em conexão com sistemas, dispositivos e componentes de programas de computador. Para que um sistema de um ou mais computadores seja configurado para executar operações ou ações específicas, o sistema tem instalado em si um software, firmware, hardware ou uma combina- ção dos mesmo que, em operação, faz com que o sistema execute as operações ou ações. Para que um ou mais programas de computador sejam configurados para executar operações ou ações específicas, um ou mais programas incluem instruções que, quando executadas por dis-
positivos de processamento de dados, fazem com que o dispositivo exe- cute as operações ou ações. Para que um circuito lógico de propósito especial seja configurado para executar operações ou ações específi- cas, o circuito tem uma lógica eletrônica que executa as operações ou ações.
[008] O assunto descrito neste relatório descritivo pode ser imple- mentado em modalidades específicas para que se obtenha uma ou mais das seguintes vantagens. O sistema mede a latência de ponta a ponta entre os dispositivos de usuário e os servidores de borda e usa os dados de latência resultantes, juntamente com outros dados do servidor de borda, para selecionar o melhor servidor de borda para cada dispositivo do usuário. Especificamente, o serviço de controle de tráfego seleciona os melhores servidores de borda para dispositivos de usuário usando dados atualizados do servidor de borda coletados de vários dispositivos de usuário e, desse modo, pode responder rapidamente a alterações na distribuição de solicitações de dispositivos de usuário e na capacidade dos servidores de borda e das respectivas partes da plataforma de con- teúdo que os servidores de borda usam para responder a essas solici- tações.
[009] Os dados do servidor de borda coletados pelo sistema a par- tir dos dispositivos de usuário também podem ser usados para detectar e alertar as ferramentas de gerenciamento do sistema sobre problemas que são específicos a um grupo particular de usuários, a tipos de dispo- sitivos particulares, a provedores de serviços particulares ou a pares de trânsito particulares.
[0010] Por fim, o serviço de controle de tráfego pode responder a uma solicitação de polling com o melhor servidor de borda, mesmo que o serviço de controle de tráfego não consiga obter os dados do servidor de borda do dispositivo de usuário específico que fez a solicitação de polling, pois ter os dados do servidor de borda de dispositivos de usuário com a mesma chave de rede é o suficiente.
[0011] Os detalhes de uma ou mais modalidades do assunto deste relatório descritivo são apresentados nos desenhos em anexo e na des- crição abaixo. Outras características, aspectos e vantagens do assunto reivindicado serão evidenciados na descrição, nos desenhos e nas rei- vindicações.
BREVE DESCRIÇÃO DOS DESENHOS
[0012] A figura 1 é um diagrama de um exemplo de sistema confi- gurado para determinar os melhores servidores de borda para dispositi- vos de usuário.
[0013] A figura 2 é um fluxograma de um exemplo de processo para selecionar os melhores servidores de borda para dispositivos de usuá- rio.
[0014] A figura 3 é um fluxograma de um exemplo de processo para enviar solicitações de sondagem a servidores de borda.
[0015] A figura 4 é um fluxograma de um exemplo de processo para agregar dados.
[0016] Números de referência e designações iguais nos vários de- senhos indicam elementos semelhantes.
DESCRIÇÃO DETALHADA
[0017] A figura 1 é um diagrama de um exemplo de sistema 100 configurado para selecionar um servidor de borda como o melhor servi- dor de borda para cada respectivo dispositivo de usuário no sistema. O sistema inclui dispositivos de usuário, por exemplo, um dispositivo de usuário 110 e servidores de borda 140a-140n através dos quais os dis- positivos de usuário acessam uma plataforma de conteúdo 195. A pla- taforma de conteúdo inclui um serviço de agregação 120, um serviço de controle de tráfego 130 e um servidor de conteúdo 135. Em geral, a plataforma contém múltiplos servidores de conteúdo e os servidores de borda e de conteúdo encontram-se geograficamente distribuídos.
[0018] Os dispositivos de usuário podem ser quaisquer dispositivos de computação conectados à Internet, incluindo computadores do tipo laptop ou desktop, tablets eletrônicos ou dispositivos móveis. Os dispo- sitivos de usuário podem ser conectados à Internet através de uma rede móvel ou através de um provedor de serviços de Internet. Embora a figura 1 apresente apenas um único dispositivo de usuário, o sistema pode suportar muitos dispositivos de usuário operando em qualquer lu- gar do mundo.
[0019] Cada dispositivo de usuário é configurado com o software cliente que, em operação, se comunica com os servidores de borda. Em qualquer dispositivo de usuário específico, o software cliente pode ser ou incluir um código JavaScript ou um código Java. Ou o software cli- ente também pode ser um software dedicado, por exemplo, um aplica- tivo instalado, projetado para funcionar especificamente com os servi- dores de borda.
[0020] Cada servidor de borda é implementado em um ou mais computadores e, geralmente, em computadores separados dos outros servidores de borda. Os servidores de borda costumam incluir servido- res de borda em várias localizações geográficas diferentes. Os servido- res de borda fornecem ao software cliente acesso a servidores de con- teúdo, permitindo que o software cliente publique conteúdo e receba conteúdo de um servidor de conteúdo. O servidor de conteúdo pode ar- mazenar e fornecer o conteúdo de um site, aplicativo, plataforma de co- municação ou similares. Por exemplo, o servidor de conteúdo pode ar- mazenar e fornecer o conteúdo de uma rede social de mensagens on- line, incluindo mensagens e publicações de usuários que usam a rede social de mensagens on-line. Em alguns casos, os servidores de borda também são servidores de conteúdo.
[0021] Os servidores de borda respondem a solicitações de sonda- gem, por exemplo, uma solicitação de sondagem 150 do dispositivo do usuário 110, enviando respostas de sondagem, por exemplo, uma res- posta de sondagem 152. O dispositivo do usuário determina um tempo de ida e volta para a solicitação de sondagem e a resposta de sonda- gem. Se o dispositivo do usuário não receber a resposta de sondagem, ele registrará essa falta de resposta.
[0022] Os dispositivos de usuário são configurados para enviar da- dos do servidor de borda 160, incluindo os tempos calculados de ida e volta, para o serviço de agregação. Os dispositivos de usuário podem enviar os dados do servidor de borda em grandes lotes ou podem enviar os dados do servidor de borda de forma progressiva à medida que os calcularem. Cada dispositivo de usuário classifica os dados do servidor de borda que ele envia ao serviço de agregação com a chave de rede do dispositivo de usuário. O serviço de agregação agrega os dados do servidor de borda por meio da chave de rede e armazena os dados agregados. Os dados agregados podem ser indexados pela chave de rede e pelo servidor de borda, permitindo uma fácil consulta. Em algu- mas implementações, o serviço de agregação faz parte ou toda a agre- gação durante sua operação e à medida que os dados agregados forem solicitados.
[0023] As chaves de rede podem ser determinadas de várias ma- neiras. Em algumas implementações, a chave de rede de um dispositivo de usuário específico é uma tupla dos seguintes elementos: i) um código de país do dispositivo de usuário e II) um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário. Em outras implementações, a chave de rede são N tuplas de (i) um código de país do dispositivo do usuário, (ii) um número de sistema autônomo que cor- responde a um endereço IP do dispositivo do usuário e (iii) os três pri- meiros octetos do endereço IP do dispositivo do usuário. Em outras im- plementações, a chave de rede é uma tupla composta por dois ou mais códigos de um país do dispositivo do usuário, um número de sistema autônomo que corresponde a um endereço IP do dispositivo do usuário, um identificador de um caminho de saída de rede do dispositivo do usu- ário, um identificador da região geográfica em que o dispositivo do usu- ário está localizado e um identificador de um tipo de conexão do dispo- sitivo do usuário.
[0024] Os dispositivos de usuário associados à mesma chave de rede geralmente terão, para um determinado servidor de borda, dados similares de servidor de borda. Os elementos da chave de rede podem ser selecionados com base no histórico de dados para obtenção desse resultado.
[0025] Uma vantagem da agregação de dados do servidor de borda por meio da chave de rede é que esses dados são mais abrangentes do que os dados de um único dispositivo de usuário e que a seleção de um melhor servidor de borda é mais robusta. Outra vantagem da agregação de dados do servidor de borda por meio da chave de rede é que múlti- plos dispositivos de usuário com uma mesma chave de rede podem en- viar com facilidade solicitações de sondagem coletivamente para um grande conjunto de servidores de borda, o que seria impraticável para um único dispositivo de usuário.
[0026] Os dispositivos de usuário no sistema são configurados para enviar solicitações de polling 180 para o serviço de controle de tráfego. A frequência com que os dispositivos de usuário enviam solicitações de polling pode variar. Por exemplo, os dispositivos de usuário podem en- viar solicitações de polling uma vez a cada 5 minutos, 10 minutos ou 20 minutos. Os dispositivos de usuário podem enviar solicitações de polling com mais ou menos frequência. Em algumas implementações, o identi- ficador de um melhor servidor de borda que o serviço de controle de tráfego envia para um dispositivo de usuário inclui um valor "poll-after” (pós sondagem) que especifica um tempo após o qual o dispositivo de usuário deve enviar uma nova solicitação de polling. Os dispositivos de usuário podem ser opcionalmente configurados para enviar uma solici- tação de polling quando eles registrarem um aumento ou mais de um nível de limite de latência em seus respectivos melhores servidores de borda.
[0027] O serviço de controle de tráfego é configurado para determi- nar os melhores servidores de borda para os dispositivos de usuário no sistema com base nos dados agregados computados pelo serviço de agregação. Ao selecionar os melhores servidores de borda para os dis- positivos de usuário no sistema, o serviço de controle de tráfego está, na realidade, selecionando os melhores caminhos de entrada dos dis- positivos de usuário para a plataforma de conteúdo. Um exemplo de processo pelo qual o serviço de controle de tráfego seleciona os melho- res servidores de borda será descrito com referência à figura 2.
[0028] O serviço de controle de tráfego é configurado para enviar identificadores, por exemplo, endereços IP, dos melhores servidores de borda para os dispositivos de usuário no sistema. Os dispositivos de usuário efetuam, em seguida, suas solicitações de conteúdo do sistema a partir dos servidores de borda que têm esses identificadores.
[0029] O serviço de controle de tráfego também é configurado para enviar a cada um dos dispositivos de usuário no sistema uma lista de outros servidores de borda, ou seja, servidores de borda que não são aqueles identificados como os melhores servidores de borda, para os quais os dispositivos de usuário devem enviar solicitações de sonda- gem. Esse processo será descrito em mais detalhes com referência à figura 2.
[0030] A figura 2 é um fluxograma de um exemplo de processo para selecionar, por meio do serviço de controle de tráfego, os melhores ser- vidores de borda para dispositivos de usuário em um sistema. Esse pro- cesso será descrito com referência a um único dispositivo de usuário fazendo uma única solicitação de polling.
[0031] O serviço de controle de tráfego recebe uma solicitação de polling de um dispositivo de usuário no sistema (210).
[0032] Em resposta à solicitação de polling, o serviço de controle de tráfego obtém dados agregados do serviço de agregação (220). Para cada solicitação de polling, o serviço de controle de tráfego obtém ape- nas os dados agregados classificados com a chave de rede que é a mesma chave de rede associada ao dispositivo do usuário que enviou a solicitação de polling. Em algumas implementações, o serviço de con- trole de tráfego armazena em caches dados agregados por períodos curtos e usa esses dados em cache quando eles estão disponíveis.
[0033] Os dados agregados podem incluir, para cada servidor de borda sondado por um dispositivo de usuário que compartilha a mesma chave de rede, os seguintes dados de latência: (i) uma variedade de solicitações de sondagem enviadas para o servidor de borda pelos dis- positivos de usuário em um período específico, (ii) a taxa de sucesso de resposta de sondagem do servidor de borda, ou seja, um número de respostas de sondagem recebidas pelos dispositivos de usuário dividido por um número de solicitações de sondagem enviadas para o servidor de borda pelos dispositivos de usuário, (iii) uma média aritmética ou ou- tra média dos tempos de ida e volta do servidor de borda, (iv) e um desvio padrão dos tempos de ida e volta do servidor de borda. Os dados de latência agregados não se limitam às categorias acima. Além disso, o serviço de agregação pode armazenar e o serviço de controle de trá- fego pode obter dados do servidor de borda diferentes dos dados de latência, por exemplo, dados de disponibilidade, dados da taxa de trans- ferência e dados de custo sobre os servidores de borda. O serviço de agregação obteria esses outros dados do servidor de borda diretamente dos servidores de borda.
[0034] Embora o serviço de controle de tráfego e o serviço de agre-
gação sejam chamados de serviços separados neste processo, a funci- onalidade de ambos pode ser implementada em um único servidor fí- sico.
[0035] Após obter os dados agregados do serviço de agregação, o serviço de controle de tráfego seleciona um servidor de borda específico como o melhor servidor de borda para o dispositivo de usuário que en- viou a solicitação de polling (230). Em algumas implementações, o ser- viço de controle de tráfego começa com um conjunto de servidores de borda candidatos para cada um dos quais o serviço de controle de trá- fego tem pelo menos uma quantidade limite de dados. O serviço de con- trole de tráfego remove do conjunto de candidatos os servidores de borda que não atingem uma taxa mínima de sucesso de resposta de sondagem. Tal ação desconsidera os servidores de borda sobrecarre- gados e os servidores de borda que não estão disponíveis. Para cada servidor de borda que atinja taxa mínima de sucesso de resposta de sondagem, o serviço de controle de tráfego calcula uma pontuação de servidor e classifica os servidores de borda de acordo com suas respec- tivas pontuações de servidor. Em algumas implementações, a pontua- ção do servidor é ou depende do tempo médio de ida e volta do servidor de borda. Em outras implementações, a pontuação do servidor é ou de- pende do tempo médio de ida e volta do servidor de borda e do desvio padrão dos tempos de ida e volta. Em outras implementações, a pontu- ação do servidor é ou depende de um percentil alto, por exemplo, o per- centil 95 ou 98, do tempo de ida e volta para o servidor de borda.
[0036] Em algumas implementações, o serviço de controle de trá- fego usa outros tipos de dados do servidor de borda, por exemplo, da- dos de disponibilidade, dados da taxa de transferência ou dados de custo, para determinar o melhor servidor de borda para um dispositivo de usuário. Os dados de disponibilidade são dados que indicam se um servidor de borda está operacional ou não operacional em um período específico ou dados que indicam a quantidade média de tempo em que um servidor de borda está operacional em um período específico. Os dados da taxa de transferência são dados que indicam a taxa de bits de um servidor de borda. E os dados de custo são dados que indicam o custo de acesso à plataforma de conteúdo por meio de um servidor de borda, em vez de outro. Ao contrário dos dados de latência, os dados de disponibilidade, os dados da taxa de transferência e os dados de custo podem ser coletados diretamente pelos servidores de borda.
[0037] O serviço de controle de tráfego pode usar dados de dispo- nibilidade, dados da taxa de transferência e dados de custo como fato- res adicionais na seleção do melhor servidor de borda para um disposi- tivo de usuário. Por exemplo, se um servidor de borda específico tiver baixa taxa de transferência ou alto custo em relação a outros servidores de borda, o serviço de controle de tráfego poderá ajustar, por exemplo, reduzir a pontuação desse servidor de borda específico.
[0038] Em alguns casos, o serviço de controle de tráfego pode ter uma quantidade insuficiente de dados de latência para efetuar uma de- terminação robusta do melhor servidor de borda para um dispositivo de usuário específico. Nesses casos, o serviço de controle de tráfego pode depender unicamente de dados de disponibilidade, produtividade e custo para efetuar a determinação.
[0039] Em algumas implementações, o serviço de controle de trá- fego fornece os dados agregados a um sistema de seleção de host que implementa um modelo de aprendizado de máquina treinado que foi trei- nado para identificar os melhores servidores de borda para dispositivos de usuário. Para treinar tal modelo de aprendizado de máquina, um pro- cesso de treinamento recebe, por exemplo, dados agregados para um conjunto de dispositivos de usuário. Cada dispositivo de usuário do con- junto é classificado com o melhor servidor de borda real que pode ser selecionado, por exemplo, por meio de métodos estatísticos. Se o ser- vidor de borda identificado como o melhor servidor de borda para um dispositivo de usuário específico pelo modelo de aprendizado da má- quina não corresponder ao melhor servidor de borda real para o dispo- sitivo de usuário, o processo de treinamento atualizará os parâmetros do modelo de aprendizado da máquina. Esse processo é repetido diver- sas vezes até que os parâmetros do modelo de aprendizado da máquina sejam tais que o modelo identifique os melhores servidores de borda com uma precisão específica. Depois que o modelo de aprendizagem da máquina for treinado, o conjunto final de parâmetros pode ser usado para determinar os melhores servidores de borda para dispositivos de usuário no sistema.
[0040] O serviço de controle de tráfego fornece um identificador do melhor servidor de borda selecionado para o dispositivo do usuário (240). Em seguida e até que o dispositivo do usuário envie uma nova solicitação de polling para o serviço de controle de tráfego, o dispositivo do usuário envia solicitações de conteúdo para o conteúdo do sistema para aquele servidor de borda selecionado.
[0041] O serviço de controle de tráfego também envia, para o dis- positivo do usuário, identificadores de outros servidores de borda para os quais o dispositivo do usuário deve enviar solicitações futuras de son- dagem (250). Em algumas implementações, esses servidores de borda são os próximos N servidores de borda com classificação mais alta para o dispositivo do usuário. Em algumas dessas implementações, N é cerca de 30 a 40.
[0042] Em implementações alternativas, o serviço de controle de tráfego conduz um sorteio virtual para selecionar os outros servidores de borda. Por exemplo, o serviço de controle de tráfego pode gerar uma lista classificada de 25 servidores de borda. O serviço de controle de tráfego identifica o servidor de borda com a classificação mais alta como o melhor servidor de borda. Os 24 servidores de borda restantes parti- cipam do sorteio virtual no qual o número de bilhetes de sorteio atribuí- dos a um servidor de borda específico é inversamente proporcional à sua classificação. Isso garante que os servidores de borda com maior probabilidade de ser os melhores servidores de borda, ou seja, os ser- vidores de borda com classificações mais altas, sejam sondados com mais frequência, fornecendo ao mesmo tempo alguma aleatoriedade para garantir que o serviço de controle de tráfego possa descobrir novos melhores servidores de borda à medida que a disponibilidade do servi- dor de borda ou suas rotas mudarem. O serviço de controle de tráfego seleciona pseudo-aleatoriamente bilhetes de sorteio até que um número predeterminado de servidores de borda tenha ganhado o sorteio. Os servidores de borda vencedores são os servidores de borda para os quais o dispositivo do usuário enviará solicitações futuras de sondagem.
[0043] O serviço de controle de tráfego pode, opcionalmente, ga- rantir que cada servidor de borda seja selecionado pelo menos uma vez para sondagem. Por exemplo, se um determinado servidor de borda não for selecionado em um número predeterminado de sorteios consecuti- vos, o serviço de controle de tráfego poderá substituir os resultados do próximo sorteio virtual para garantir que esse servidor de borda esteja entre os servidores de borda a serem sondado pelo dispositivo do usu- ário.
[0044] A figura 3 é um fluxograma de um exemplo de processo para enviar uma solicitação de sondagem a um servidor de borda. O pro- cesso será descrito com referência a um único dispositivo de usuário que envia uma única solicitação de sondagem, mas cada dispositivo de usuário no sistema envia múltiplas solicitações de sondagem a múltiplos servidores de borda diferentes, conforme descrito.
[0045] O dispositivo do usuário envia uma solicitação de sondagem a um servidor de borda (310). A solicitação de sondagem pode ser uma solicitação para um arquivo de teste, ou pode ser uma solicitação de conteúdo, ou pode ser combinada com uma solicitação de conteúdo.
[0046] Se o dispositivo do usuário receber uma resposta de sonda- gem (320), o dispositivo do usuário determinará o tempo de ida e volta da resposta (330). O tempo de ida e volta é uma quantidade de tempo decorrido entre um tempo em que o dispositivo do usuário recebeu a resposta de sondagem e um tempo em que o dispositivo do usuário en- viou a solicitação de sondagem correspondente. Se o dispositivo do usuário não receber uma resposta de sondagem (320), esse fato será notado e incluído nos dados do servidor de borda que o dispositivo do usuário envia ao serviço de agregação (340).
[0047] A figura 4 é um fluxograma de um exemplo de processo para agregar dados do servidor de borda enviados por dispositivos de usuário no sistema. Esse processo será descrito como sendo executado pelo serviço de agregação descrito acima.
[0048] O serviço de agregação obtém os dados do servidor de borda a partir dos dispositivos de usuário no sistema (410). O serviço de agregação agrega os dados do servidor de borda por meio da chave de rede e, dentro de cada grupo definido por uma chave de rede espe- cífica, por meio do servidor de borda (420). O serviço de agregação en- tão calcula várias estatísticas para cada servidor de borda em cada grupo (430). As estatísticas podem incluir uma taxa de sucesso de res- posta de sondagem, um tempo médio de ida e volta e similares. Neste relatório descritivo, tais estatísticas são coletivamente chamadas de da- dos agregados.
[0049] O serviço de agregação armazena os dados agregados na memória de um servidor físico (440). O serviço de agregação indexa os dados agregados por meio da chave de rede e de um identificador de servidor de borda exclusivo. O identificador do servidor de borda pode ser, por exemplo, um endereço IP do servidor de borda.
[0050] Os dados agregados são recalculados regularmente. Em al- gumas implementações, ele são recalculados em uma frequência pre- determinada. Em algumas dessas implementações, a frequência prede- terminada é a frequência de solicitações de polling ou um múltiplo da frequência de solicitações de polling. Se a frequência de recálculo for a frequência de solicitações de polling, o recálculo ocorrerá após um pe- ríodo no qual os dispositivos de usuário terão efetuado, em média, uma solicitação de polling. O recálculo regular garante que os dados agrega- dos estejam atualizados e reflitam as condições atuais da rede quando os dispositivos de usuário efetuam novas solicitações de polling. Em al- gumas implementações, os dados são ponderados para favorecer da- dos mais recentes; em algumas implementações, os dados do servidor de borda usados para calcular dados agregados são limitados a uma janela de recência predeterminada, que pode ser menor que a frequên- cia de recálculo.
[0051] As modalidades do assunto reivindicado, bem como as ações e operações descritas neste relatório descritivo podem ser imple- mentadas em circuitos eletrônicos digitais, em software ou firmware de computador incorporado de forma tangível, em hardware de computa- dor, incluindo as estruturas divulgadas neste relatório descritivo e seus equivalentes estruturais, ou em combinações de um ou mais deles. As modalidades do assunto descrito neste relatório descritivo podem ser implementadas como um ou mais programas de computador, ou seja, um ou mais módulos de instruções de programas de computador codifi- cados em um meio não transitório de armazenamento tangível para exe- cução ou controle da operação de um dispositivo de processamento de dados. De maneira alternativa ou adicional, as instruções do programa podem ser codificadas em um sinal propagado gerado artificialmente, por exemplo, um sinal elétrico, óptico ou eletromagnético gerado por máquina para codificar informações a serem transmitidas para um dis- positivo receptor adequado para execução por um dispositivo de pro- cessamento de dados. O meio de armazenamento do computador pode ser ou fazer parte de um dispositivo de armazenamento legível por má- quina, um substrato de armazenamento legível por máquina, um dispo- sitivo de memória de acesso aleatório ou em série, ou uma combinação de um ou mais deles. Um meio de armazenamento de computador não é um sinal propagado.
[0052] O termo "dispositivo de processamento de dados" abrange todos os tipos de dispositivos, dispositivos e máquinas para o processa- mento de dados, incluindo, por exemplo, um processador programável, um computador ou múltiplos processadores ou computadores. O dispo- sitivo de processamento de dados pode incluir circuitos lógicos de pro- pósito especial, por exemplo, um FPGA (“Field Programmable Gate Ar- ray” - arranjo de portas programáveis em campo), um ASIC (“Applica- tion-specific Integrated Circuit” - circuito integrado de aplicação especí- fica) ou uma GPU (“Graphics Processing Unit” - unidade de processa- mento gráfico). O dispositivo também pode incluir, além de hardware, um código que cria um ambiente de execução para programas de com- putador, por exemplo, um código que constitui o firmware do processa- dor, uma pilha de protocolos, um sistema de gerenciamento de banco de dados, um sistema operacional ou uma combinação de um ou mais deles.
[0053] Um programa de computador, que também pode ser cha- mado ou descrito como um programa, um software, um aplicativo de software, um aplicativo, um módulo, um módulo de software, um meca- nismo, um script ou código, pode ser escrito em qualquer forma de lin- guagem de programação, incluindo linguagens compiladas ou interpre- tadas, ou linguagens declarativas ou processuais; e pode ser implan- tado de qualquer forma, inclusive como um programa independente ou como um módulo, componente, mecanismo, sub-rotina ou outra unidade adequada para execução em um ambiente de computação, que pode incluir um ou mais computadores interconectados por uma rede de co- municação de dados em um ou mais locais.
[0054] Um programa de computador pode, mas não precisa, corres- ponder a um arquivo em um sistema de arquivos. Um programa de com- putador pode ser armazenado em uma parte de um arquivo que conte- nha outros programas ou dados, por exemplo, um ou mais scripts arma- zenados em um documento de linguagem de marcação, em um único arquivo dedicado ao programa em questão, ou em vários arquivos co- ordenados, por exemplo, arquivos que armazenam um ou mais módu- los, subprogramas-ou partes do código.
[0055] Os processos e fluxos lógicos descritos neste relatório des- critivo podem ser implementados por um ou mais computadores que executam um ou mais programas de computador para efetuar opera- ções operando em dados de entrada e gerando saída. Os processos e fluxos lógicos também podem ser executados por circuitos lógicos de propósito especial, por exemplo, um FPGA, um ASIC ou uma GPU, ou por uma combinação de circuitos lógicos de propósito especial e um ou mais computadores programados.
[0056] Os computadores adequados para a execução de um pro- grama de computador podem ser baseados em microprocessadores de propósito geral ou especial ou em ambos, ou em qualquer outro tipo de unidade de processamento central. Em geral, uma unidade de proces- samento central receberá instruções e dados de uma memória apenas de leitura-ou de uma memória de acesso aleatório ou de ambas. Os elementos essenciais de um computador são: uma unidade de proces- samento central para executar instruções e um ou mais dispositivos de memória para armazenar instruções e dados. A unidade de processa- mento central e a memória podem ser complementadas ou incorporadas a circuitos lógicos de propósito especial.
[0057] Em geral, um computador também incluirá, ou será acoplado de modo operável, para receber dados de ou transferir dados para um ou mais dispositivos de armazenamento em massa. Os dispositivos de armazenamento em massa podem ser, por exemplo, discos magnéti- cos, magneto-ópticos ou ópticos,-ou unidades de estado sólido. No en- tanto, um computador não precisa ter esses dispositivos. Além disso, um computador pode ser integrado a outro dispositivo, por exemplo, um telefone, um assistente digital pessoal (PDA), um leitor de áudio ou ví- deo móvel, um console de jogos, um receptor do sistema de posiciona- mento global (GPS), ou um dispositivo de armazenamento portátil, por exemplo, uma unidade flash de barramento serial universal (USB), para citar apenas alguns.
[0058] Para permitir a interação com um usuário, as modalidades do assunto descrito neste relatório descritivo podem ser implementadas em ou configuradas para comunicação com um computador que possui um dispositivo de exibição, por exemplo, um monitor LCD (tela de cristal líquido), para exibir informações ao usuário, e um dispositivo de entrada através do qual o usuário pode efetuar entradas no computador, por exemplo, um teclado e um dispositivo apontador, por exemplo, um mouse, uma trackball ou um touchpad. Outros tipos de dispositivos tam- bém podem ser usados para permitir a interação com um usuário; por exemplo, a resposta fornecia ao usuário pode ser qualquer forma de resposta sensorial (por exemplo, resposta visual, resposta auditiva ou resposta tátil); e a entrada efetuada pelo usuário pode ser recebida em qualquer forma, o que inclui entrada de som, fala ou toque. Além disso, um computador pode interagir com um usuário enviando documentos para e recebendo documentos a partir de um dispositivo usado pelo usuário; por exemplo, enviando páginas da Web para um navegador da Web no dispositivo de um usuário em resposta a solicitações recebidas do navegador da Web ou interagindo com um aplicativo executado em um dispositivo de usuário, por exemplo, um smartphone ou tablet ele- trônico. Além disso, um computador pode interagir com um usuário en- viando mensagens de texto ou outras formas de mensagem para um dispositivo pessoal, por exemplo, um smartphone que esteja execu- tando um aplicativo de mensagens e recebendo em troca mensagens de resposta do usuário.
[0059] As modalidades do assunto descrito neste relatório descritivo podem ser implantadas em um sistema de computação que inclua um componente back-end (por exemplo, como um servidor de dados), ou que inclua um componente middleware (por exemplo, um servidor de aplicativo), ou que inclua um componente front-end (por exemplo, um computador cliente que possui uma interface gráfica de usuário ou um navegador da Web através do qual um usuário pode interagir com uma implantação dos sistemas e técnicas descritos aqui), ou qualquer com- binação desses componentes back-end, midleware ou front-end. Os componentes do sistema podem ser interconectados por qualquer forma ou meio de comunicação de dados digitais (por exemplo, uma rede de comunicação). Exemplos de redes de comunicação incluem uma rede local (LAN), uma rede de longa distância (WAN), por exemplo, a Inter- net.
[0060] O sistema de computação pode incluir clientes e servidores. Um cliente e um servidor se encontram geralmente distantes um do ou- tro e, de maneira típica, interagem através de uma rede de comunica- ção. A relação entre cliente e servidor surge em virtude de programas de computador que são executados nos respectivos computadores e que estabelecem um relação cliente-servidor uns com os outros. Em al- gumas modalidades, um servidor transmite dados, por exemplo, uma página HTML, para um dispositivo de usuário, por exemplo, para fins de exibição de dados e recebimento de entrada de usuário de um usuário que interage com o dispositivo, que atua como cliente. Os dados gera- dos no dispositivo do usuário, por exemplo, um resultado da interação do usuário, podem ser recebidos no servidor a partir do dispositivo.
[0061] Além das modalidades acima descritas, as seguintes moda- lidades também são inovadoras:
[0062] A modalidade 1 é um sistema que compreende: uma pluralidade de dispositivos de usuário; uma pluralidade de servidores de borda configurados para fornecer acesso a uma plataforma de conteúdo que fornece o conteúdo para os dispositivos de usuário, em que cada dispositivo do usuário está asso- ciado a uma chave de rede, em que o número de chaves de rede é menor que o número de dispositivos de usuário e em que cada disposi- tivo de usuário está configurado para enviar solicitações de conteúdo a um servidor de borda da pluralidade de servidores de borda identifica- dos por dados no dispositivo de usuário como o melhor servidor de borda para o dispositivo de usuário; os dispositivos de usuário que sendo configurados para executar operações que compreendem: enviar solicitações de sondagem ao melhor servidor de borda para o dispositivo do usuário e para um ou mais dentre a plurali- dade de servidores de borda não identificados como o melhor servidor de borda, receber respostas de sondagem às solicitações de sonda- gem ou registrar uma falta de resposta, e determinar, para cada resposta de sondagem recebida, um tempo de ida e volta, que é um período decorrido entre um tempo em que o dispositivo do usuário recebeu a resposta de sondagem e um tempo em que o dispositivo do usuário enviou a solicitação de sonda- gem correspondente, os tempos de ida e volta determinados sendo da- dos do servidor de borda; e um ou mais serviços na plataforma de con- teúdo configurados para executar operações que compreendem:
obter dos dispositivos de usuário os dados do servidor de borda, nos quais os dados do servidor de borda recebidos de cada dis- positivo do usuário são classificados com informações do dispositivo so- bre o dispositivo do usuário que forneceu os dados do servidor de borda, incluindo a chave de rede associada ao dispositivo do usuário, agregar os dados do servidor de borda por meio da chave de rede e, em resposta a uma solicitação de polling recebida de um dispositivo de usuário: selecionar o melhor servidor de borda para o dispositivo do usuário, com base pelo menos em parte nos dados do servidor de borda que foram agregados pela chave de rede que é a mesma chave de rede associada ao dispositivo do usuário, e fornecer, ao dispositivo do usuário, um identificador do me- lhor servidor de borda selecionado para o dispositivo do usuário e iden- tificadores de um ou mais outros servidores de borda aos quais o dispo- sitivo do usuário deve enviar solicitações futuras de sondagem.
[0063] A modalidade 2 descreve o sistema de acordo com a moda- lidade 1, em que a chave de rede associada a cada dispositivo de usu- ário compreende (i) um código de país do dispositivo de usuário e (ii) um número de sistema autônomo que corresponde a um endereço IP (Protocolo de Internet) do dispositivo de usuário.
[0064] A modalidade 3 descreve o sistema de acordo com qualquer uma das modalidades de 1 a 2, em que a chave de rede associada a cada dispositivo de usuário compreende (i) um código de país do dispo- sitivo de usuário, (ii) um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário, e (iii) os três primeiros oc- tetos do endereço IP do dispositivo do usuário.
[0065] A modalidade 4 descreve o sistema de acordo com qualquer uma das modalidades de 1 a 3, em que a chave de rede associada a cada dispositivo de usuário compreende um código de país do disposi- tivo de usuário, um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário, um identificador de um cami- nho de saída de rede do dispositivo do usuário, um identificador da re- gião geográfica em que o dispositivo do usuário está localizado e um identificador de um tipo de conexão do dispositivo do usuário.
[0066] A modalidade 5 descreve o sistema de acordo com qualquer uma das modalidades de 1 a 4, em que a agregação dos dados do ser- vidor de borda pela chave de rede compreende, para cada servidor de borda: determinar as várias solicitações de sondagem que foram enviadas para o servidor de borda por dispositivos de usuário associa- dos a uma mesma chave de rede em uma janela de tempo predetermi- nada; calcular a taxa de sucesso de resposta de sondagem do ser- vidor de borda, sendo a taxa de sucesso de resposta de sondagem o número de respostas de sondagem recebidas pelos dispositivos de usu- ário associados à mesma chave de rede dividido pelo número de solici- tações de sondagem enviadas ao servidor de borda pelos dispositivos de usuário; e calcular o tempo médio de ida e volta do servidor de borda, sendo o tempo médio de ida e volta do servidor de borda uma média dos tempos de ida e volta determinados para as respostas de sondagem enviadas pelo servidor de borda e recebidas pelos dispositivos de usu- ário associados à mesma chave de rede.
[0067] A modalidade 6 descreve o sistema de acordo com a moda- lidade 5, em que a seleção do melhor servidor de borda para o disposi- tivo do usuário baseada nos dados agregados compreende: fornecer dados agregados e identificadores de servidores de borda a um modelo de aprendizado de máquina, no qual o modelo de aprendizado de máquina é treinado para identificar os melhores servi- dores de borda; e receber, do modelo de aprendizado de máquina, um identifi- cador do melhor servidor de borda para o dispositivo do usuário.
[0068] A modalidade 7 descreve o sistema de acordo com a moda- lidade 5, em que a agregação dos dados do servidor de borda pela chave de rede também compreende, para cada servidor de borda: calcular um desvio padrão dos tempos de ida e volta do ser- vidor de borda para os dispositivos de usuário associados à mesma chave de rede.
[0069] A modalidade 8 descreve o sistema de acordo com a moda- lidade 7, em que a seleção do melhor servidor de borda para o disposi- tivo do usuário baseada nos dados agregados compreende: calcular, para cada servidor de borda que atinja uma taxa mínima de sucesso de sondagem pré-determinada, uma respectiva pon- tuação de servidor; e identificar, como o melhor servidor de borda, o servidor de borda com a melhor pontuação de servidor.
[0070] A modalidade 9 descreve o sistema de acordo com a moda- lidade 8, em que a pontuação do servidor corresponde ao tempo médio de ida e volta do servidor de borda.
[0071] A modalidade 10 descreve o sistema de acordo com a mo- dalidade 8, em que a pontuação do servidor corresponde a uma soma do tempo médio de ida e volta do servidor de borda e do desvio padrão dos tempos de ida e- volta do servidor de borda.
[0072] A modalidade 11 descreve o sistema de acordo com a mo- dalidade 8, em que um ou mais servidores de borda aos quais o dispo- sitivo do usuário deve enviar solicitações futuras de sondagem compre- endem os próximos 30 a 40 servidores de borda com classificação mais alta com base nas pontuações dos servidores de borda.
[0073] A modalidade 12 descreve o sistema de acordo com a mo- dalidade 8, em que um ou mais servidores de borda aos quais o dispo-
sitivo do usuário deve enviar solicitações futuras de sondagem são de- terminados por meio de: seleção dos servidores de borda dentre os servidores de borda com uma pontuação de servidor por um sorteio virtual no qual cada servidor de borda com uma pontuação de servidor recebe um nú- mero de bilhetes de sorteio que é maior para servidores de borda com melhores pontuações de servidor do que outros servidores de borda.
[0074] A modalidade 13 descreve o sistema de acordo com a mo- dalidade 9, em que um ou mais serviços na plataforma de conteúdo são configurados para realizar operações que compreendem: obter os dados da taxa de transferência de cada um dos vá- rios servidores de borda, os dados da taxa de transferência compreen- dendo, para cada servidor de borda, a taxa de bits do servidor de borda e ajustar as pontuações dos servidores de borda com base nos dados da taxa de transferência.
[0075] A modalidade 14 descreve o sistema de acordo com qual- quer uma das modalidades de 1 a 13, em que um ou mais serviços com- preendem um serviço de agregação e um serviço de controle de tráfego, sendo que: o serviço de agregação é configurado para executar opera- ções que compreendem: obter dos dispositivos de usuário os dados do servidor de borda coletados pelos dispositivos de usuário, em que os dados do ser- vidor de borda recebidos de cada dispositivo do usuário são classifica- dos com informações do dispositivo sobre o dispositivo do usuário que forneceu os dados do servidor de borda, incluindo a chave de rede as- sociada ao dispositivo do usuário, e agregar os dados do servidor de borda por meio da chave de rede,
em que o serviço de controle de tráfego é configurado para executar operações que compreendem: em resposta a uma solicitação de polling recebida de um dis- positivo de usuário: selecionar o melhor servidor de borda para o dispositivo do usuário com base nos dados do servidor de borda que foram agregados pela chave de rede que é a mesma chave de rede associada ao dispo- sitivo do usuário, e fornecer, ao dispositivo do usuário, um identificador do me- lhor servidor de borda selecionado para o dispositivo do usuário e iden- tificadores de um ou mais outros servidores de borda aos quais o dispo- sitivo do usuário deve enviar solicitações futuras de sondagem.
[0076] A modalidade 15 descreve um método que executa as ope- rações de acordo qualquer uma das modalidades de 1 a 14.
[0077] A modalidade 16 descreve um ou mais meios de armazena- mento em computador que armazenam instruções que são operáveis quando executadas por um ou mais computadores, para fazer com que um ou mais computadores executem as operações de acordo qualquer uma modalidades de 1 a 14.
[0078] Embora este relatório descritivo contenha vários detalhes es- pecíficos de implementação, tais detalhes não devem ser interpretados como limitações no escopo do que está sendo ou pode ser reivindicado, mas sim como descrições de características que podem que podem ser específicas a modalidades particulares de invenções particulares. Além disso, determinadas características que são descritas neste relatório descritivo no contexto de modalidades separadas também podem ser implantadas de forma combinada em uma única modalidade. Por outro lado, várias características que são descritas no contexto de uma única modalidade também podem ser implantadas em múltiplas modalidades separadamente ou em qualquer subcombinação adequada. E embora as características possam ter sido descritas acima como atuando em certas combinações e até mesmo sendo inicialmente reivindicadas como tal, uma ou mais características de uma combinação reivindicada podem ser, em alguns casos, removidas da combinação e a combina- ção reivindicada pode ser direcionada a uma subcombinação ou uma variação de uma subcombinação.
[0079] De modo similar, embora as operações tenham sido ilustra- das nos desenhos e mencionadas nas reivindicações em uma ordem particular, isso não quer dizer que haja a exigência de que tais opera- ções sejam executadas na ordem particular mostrada ou em ordem se- quencial, ou que todas as operações ilustradas devam ser executadas para a obtenção dos resultados desejáveis. Em determinadas circuns- tâncias, a multitarefa e o processamento paralelo podem ser vantajosos. Além disso, a separação de vários módulos e componentes do sistema nas modalidades acima descritas não deve ser entendida como sendo obrigatória em todas as modalidades, mas sim que os componentes e sistemas do programa descritos geralmente podem ser integrados em conjunto a um único produto de software ou compilados em vários pro- dutos de software.
[0080] Embora tenham sido descritas modalidades particulares do assunto. Há outras modalidades abrangidas pelo escopo das reivindica- ções a seguir. Por exemplo, as ações mencionadas nas reivindicações podem ser executadas em uma ordem diferente e ainda assim produzir resultados desejáveis. Por exemplo, não é necessário que os fluxos ló- gicos ilustrados nas figuras em anexo sigam a ordem particular mos- trada ou uma ordem sequencial para que os resultados desejados sejam obtidos. Em alguns casos, a multitarefa e o processamento paralelo po- dem ser vantajosos.

Claims (21)

REIVINDICAÇÕES
1. Sistema, caracterizado pelo fato de que compreende: uma pluralidade de dispositivos de usuário (110); uma pluralidade de servidores de borda (140a, 140b, 140n) configurados para fornecer acesso a uma plataforma de conteúdo (195) que fornece conteúdo aos dispositivos de usuário, em que cada dispo- sitivo de usuário (110) está associado a uma chave de rede, em que o número de chaves de rede é menor que o número de dispositivos de usuário, em que as chaves de rede servem como identificadores de par- tições de dispositivos de usuário, e em que cada dispositivo de usuário (110) é configurado para enviar solicitações de conteúdo a um servidor de borda da pluralidade de servidores de borda (140a, 140b, 140n) iden- tificados por dados no dispositivo de usuário (110) como um servidor de borda ideal para o dispositivo de usuário; os dispositivos de usuário que estão sendo configurados para executar operações compreendendo: enviar (310) solicitações de sondagem (150) ao melhor ser- vidor de borda para o dispositivo de usuário (110) e para um ou mais servidores de borda (140a, 140b, 140n) não identificados como o melhor servidor de borda, receber (320) respostas de sondagem (152) às solicitações de sondagem (150) ou registrar (340) uma falta de resposta e determinar (330), para cada resposta de sondagem rece- bida (152), um tempo de ida e volta, sendo o tempo de ida e volta um período decorrido entre um tempo em que o dispositivo do usuário re- cebeu a resposta de sondagem (152) e um tempo em que o dispositivo do usuário enviou a solicitação de sondagem correspondente (150), sendo os determinados tempos de ida e volta dados do servidor de borda; e um ou mais serviços (120, 130) na plataforma de conteúdo
(195) configurados para realizar operações que compreendem: obter (410) dos dispositivos de usuário os dados do servi- dor de borda, em que os dados do servidor de borda recebidos de cada dispositivo do usuário (110) são classificados com informações do dis- positivo sobre o dispositivo do usuário que forneceu os dados do servi- dor de borda, incluindo a chave de rede associada ao dispositivo do usuário, agregar (420) os dados do servidor de borda por chave de rede e em resposta a uma solicitação de polling (180) recebida (210) de um dispositivo de usuário: obter (220) os dados agregados do servidor de borda iden- tificados com a chave de rede do dispositivo do usuário, selecionar (230) um novo melhor servidor de borda para o dispositivo de usuário (110) com base pelo menos em parte nos dados do servidor de borda que foram agregados pela chave de rede que é a mesma chave de rede associada ao dispositivo de usuário, e fornecer (240, 250), ao dispositivo de usuário (110), um identificador do novo servidor de borda selecionado para o dispositivo de usuário e identificadores de um ou mais outros servidores de borda aos quais o dispositivo de usuário deverá enviar futuras solicitações de sondagem, em que a agregação (420) dos dados do servidor de borda por chave de rede compreende, para cada servidor de borda: determinar um número de solicitações de sondagem (150) que foram enviadas ao servidor de borda (140a, 140b, 140n) por dispo- sitivos de usuário associados a uma mesma chave de rede em uma ja- nela de tempo pré-determinada; calcular a taxa de sucesso de resposta de sondagem do servidor de borda (140a, 140b, 140n), a taxa de sucesso de resposta de sondagem sendo o número de respostas de sondagem (152) recebidas pelos dispositivos de usuário associados à mesma chave de rede divi- dido pelo número de solicitações de sondagem enviadas ao servidor de borda pelos dispositivos de usuário; e calcular o tempo médio de ida e volta do servidor de borda (140a, 140b, 140n), o tempo médio de ida e volta do servidor de borda sendo uma média dos tempos de ida e volta determinados para as res- postas de sondagem enviadas pelo servidor de borda e recebidas pelos dispositivos de usuário associados à mesma chave de rede.
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que a chave de rede associada a cada dispositivo de usuá- rio compreende (i) um código de país do dispositivo de usuário e (ii) um número de sistema autônomo que corresponde a um endereço de Pro- tocolo de Internet (IP) do dispositivo de usuário.
3. Sistema, de acordo com qualquer uma das reivindicações de 1 a 2, caracterizado pelo fato de que a chave de rede associada a cada dispositivo de usuário compreende (i) um código de país do dispo- sitivo de usuário, (ii) um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário e (iii) os três primeiros octe- tos do endereço IP do dispositivo de usuário.
4. Sistema, de acordo com qualquer uma das reivindicações de 1 a 3, caracterizado pelo fato de que a chave de rede associada a cada dispositivo de usuário compreende um código de país do disposi- tivo de usuário, um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário, um identificador de um cami- nho de saída de rede do dispositivo de usuário, um identificador da re- gião geográfica em que o dispositivo do usuário está localizado e um identificador de um tipo de conexão do dispositivo do usuário.
5. Sistema, de acordo com qualquer uma das reivindicações de 1 a 4, caracterizado pelo fato de que a seleção de (230) um novo melhor servidor de borda para o dispositivo de usuário (110) com base nos dados agregados compreende: fornecer dados agregados e identificadores de servidores de borda (140a, 140b, 140n) a um modelo de aprendizado de máquina, no qual o modelo de aprendizado de máquina é treinado para identificar novos melhores servidores de borda; e receber, a partir do modelo de aprendizagem da máquina, um identificador do novo melhor servidor de borda para o dispositivo de usuário (110).
6. Sistema, de acordo com qualquer uma das reivindicações de 1 a 5, caracterizado pelo fato de que a agregação (420) dos dados do servidor de borda por chave de rede também compreende, para cada servidor de borda: calcular o desvio padrão dos tempos de ida e volta do ser- vidor de borda para os dispositivos de usuário associados à mesma chave de rede.
7. Sistema, de acordo com a reivindicação 6, caracterizado pelo fato de que a seleção de (230) um novo melhor servidor de borda para o dispositivo do usuário (110) com base nos dados agregados com- preende: calcular, para cada servidor de borda que atinja uma taxa mínima de sucesso de sondagem pré-determinada, uma pontuação de servidor respectiva e identificar, como o novo servidor de borda melhor, o servi- dor de borda com uma melhor pontuação de servidor.
8. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que a pontuação do servidor corresponde ao tempo médio de ida e volta do servidor de borda.
9. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que a pontuação do servidor corresponde a uma soma do tempo médio de ida e volta do servidor de borda e do desvio padrão dos tempos de ida e volta do servidor de borda.
10. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que um ou mais outros servidores de borda (140a, 140b, 140n) para os quais o dispositivo de usuário (110) deve enviar solicita- ções futuras de sondagem compreende um próximo 40 a 30 servidores de borda com classificação mais alta com base nas pontuações de ser- vidor dos servidores de borda.
11. Sistema, de acordo com a reivindicação 7, caracterizado pelo fato de que um ou mais outros servidores de borda (140a, 140b, 140n) para os quais o dispositivo de usuário (110) deve enviar solicita- ções futuras de sondagem (150) são determinados ao: selecionar os servidores de borda dentre os servidores de borda com uma pontuação de servidor por um sorteio virtual no qual cada servidor de borda com uma pontuação de servidor recebe um nú- mero de bilhetes de sorteio que é maior para servidores de borda com melhores pontuações de servidor do que outros servidores de borda.
12. Sistema, de acordo com a reivindicação 8, caracterizado pelo fato de que um ou mais serviços na plataforma de conteúdo são também configurados para executar operações que compreendem: obter os dados da taxa de transferência de cada um da plu- ralidade de servidores de borda, os dados da taxa de transferência com- preendendo, para cada servidor de borda, a taxa de bits do servidor de borda e ajustar as pontuações dos servidores de borda com base nos dados da taxa de transferência.
13. Sistema, de acordo com qualquer uma das reivindica- ções de 1 a 12, caracterizado pelo fato de que um ou mais serviços incluem um serviço de agregação (120) e um serviço de controle de trá- fego (130), em que: o serviço de agregação (120) é configurado para executar operações que incluem: obter (410) dos dispositivos de usuário os dados do servi- dor de borda coletados pelos dispositivos de usuário, em que os dados do servidor de borda recebidos de cada dispositivo de usuário são clas- sificados com informações do dispositivo sobre o dispositivo de usuário que forneceu os dados do servidor de borda, incluindo a chave de rede associada ao dispositivo de usuário, e agregar (420) os dados do servidor de borda por chave de rede, o serviço de controle de tráfego (130) sendo configurado para executar operações que compreendem: em resposta a uma solicitação de polling (180) recebida de um dispositivo de usuário (110): selecionar (230) um novo melhor servidor de borda para o dispositivo do usuário com base nos dados do servidor de borda que foram agregados pela chave de rede que é a mesma chave de rede associada ao dispositivo do usuário, e fornecer (240, 250) ao dispositivo do usuário, um identifi- cador do novo servidor de borda selecionado para o dispositivo do usu- ário e identificadores de um ou mais outros servidores de borda para os quais o dispositivo do usuário deve enviar solicitações futuras de son- dagem.
14. Método, caracterizado pelo fato de que compreende: receber (210), por meio de uma plataforma de conteúdo (195) uma solicitação de polling (130) de um primeiro dispositivo de usu- ário (110) de uma pluralidade de dispositivos de usuário, em que cada dispositivo de usuário da pluralidade de dispositivos de usuário é confi- gurado para acessar uma plataforma de conteúdo (195) por meio de uma pluralidade de servidores de borda (140a, 140b, 140n) identificados pelos respectivos dados no dispositivo do usuário como o melhor servi- dor de borda para o dispositivo do usuário e associado a uma de várias chaves de rede, em que o número de chaves de rede é menor que o número de dispositivos de usuário, e em que as chaves de rede servem como identificadores de partições de dispositivos de usuário; obter (410), por meio da plataforma de conteúdo (195), os respectivos dados do servidor de borda de cada dispositivo de usuário da pluralidade de dispositivos de usuário, em que os dados do servidor de borda de cada dispositivo do usuário são classificados com informa- ções do dispositivo sobre o dispositivo do usuário, incluindo a chave de rede associada ao dispositivo do usuário, e em que os respectivos da- dos do servidor de borda incluem tempos de ida e volta que são com- putados por cada dispositivo do usuário ao: enviar (310), por cada um dos referidos dispositivos, solici- tações de sondagem (150) ao melhor servidor de borda para o disposi- tivo de usuário e para um ou mais servidores de borda pluralidade (140a, 140b, 140n) que não são identificados como os melhores servidores de borda para o dispositivo de usuário, receber (320), por meio de cada um dos ditos dispositivos de usuário, respostas de sondagem (152) às solicitações de sondagem ou registro (340) de uma falta de resposta, e determinar (330), por meio de cada um dos ditos dispositi- vos de usuários e de cada resposta de sondagem recebida, um tempo de ida e volta, o tempo de ida e volta , sendo um período decorrido entre um tempo em que o dispositivo do usuário recebeu a resposta de son- dagem e um tempo em que o dispositivo do usuário enviou a solicitação de sondagem correspondente; agregar (420), pela plataforma de conteúdo, os dados do servidor de borda por chave de rede, compreendendo, para cada servi- dor de borda:
determinar o número de solicitações de sondagem (150) que foram enviadas ao servidor de borda por dispositivos de usuário associados a uma mesma chave de rede em uma janela de tempo pre- determinada, calcular a taxa de sucesso de resposta de sondagem do ser- vidor de borda, a taxa de sucesso de resposta de sondagem é o número de respostas de sondagem (152) recebidas pelos dispositivos de usuá- rio associados à mesma chave de rede dividido pelo número de solici- tações de sondagem enviadas ao servidor de borda pelos dispositivos de usuário, e calcular o tempo médio de ida e volta do servidor de borda, o tempo médio de ida e volta do servidor de borda sendo a média dos tempos de ida e volta determinados para as respostas de sondagem enviadas pelo servidor de borda e recebidas pelos dispositivos de usu- ário associados à mesma chave de rede; selecionar (230), pela plataforma de conteúdo, um novo melhor servidor de borda para o primeiro dispositivo de usuário (110) com base pelo menos em parte nos dados do servidor de borda agre- gados pela chave de rede que é a mesma chave de rede associada ao primeiro dispositivo de usuário e fornecer (240, 250), pela plataforma de conteúdo e para o primeiro dispositivo de usuário (110), um identificador do novo servidor de borda selecionado para o dispositivo de usuário e identificadores de um ou mais outros servidores de borda para os quais o primeiro dispo- sitivo de usuário deve enviar solicitações futuras de sondagem.
15. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que a chave de rede associada a cada dispositivo de usuá- rio compreende (i) um código de país do dispositivo de usuário, (ii) um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário e (iii) os três primeiros octetos do endereço IP do dispositivo do usuário.
16. Método, de acordo com a reivindicação 14, caracterizado pelo fato de que agregar (420) os dados do servidor de borda por chave de rede também compreende, para cada servidor de borda: calcular o desvio padrão dos tempos de ida e volta do ser- vidor de borda para os dispositivos de usuário associados à mesma chave de rede.
17. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que selecionar (230) um novo melhor servidor de borda para o primeiro dispositivo de usuário (110) baseado pelo menos em parte nos dados agregados do servidor de borda compreende: calcular, para cada servidor de borda que atinja uma taxa mínima de sucesso de sondagem pré-determinada, uma respectiva pon- tuação de servidor; e identificar, como o melhor servidor de borda, o servidor de borda com a melhor pontuação de servidor.
18. Meio não transitório de armazenamento em computador que armazena instruções que são operáveis, quando executadas por um ou mais computadores, para fazer com que um ou mais computado- res executem operações, caracterizado pelo fato de que compreende: receber uma solicitação de polling de um primeiro disposi- tivo de usuário (110) de uma pluralidade de dispositivos de usuário, em que cada dispositivo de usuário está configurado para acessar uma pla- taforma de conteúdo (195) por meio de uma pluralidade de servidores de borda (140a, 140b, 140n) identificado por dados no dispositivo do usuário como o melhor servidor de borda para o dispositivo do usuário, em que cada dispositivo do usuário está associado a uma de várias cha- ves de rede, em que o número de chaves de rede é menor que o número de dispositivos de usuário, e em que as chaves de rede servem como identificadores de partições de dispositivos de usuário;
obter (410), pela plataforma de conteúdo (195), os dados do servidor de borda respectivos de cada dispositivo de usuário da plu- ralidade de dispositivos de usuário, em que os respectivos dados do servidor de borda de cada dispositivo do usuário são classificados com informações do dispositivo sobre o dispositivo do usuário, incluindo a chave de rede associada ao dispositivo do usuário, e em que os respec- tivos dados do servidor de borda respectivo incluem tempos de ida e volta que são calculados por cada dispositivo do usuário ao: enviar (310), por cada um dos referidos dispositivos, solici- tações de sondagem (150) ao melhor servidor de borda para o disposi- tivo de usuário e para um ou mais servidores de borda pluralidade (140a, 140b, 140n) que não são identificados como os melhores servidores de borda para o dispositivo de usuário, receber (320), por meio de cada um dos ditos dispositivos de usuário, respostas de sondagem (152) às solicitações de sondagem ou registro (340) de uma falta de resposta, e determinar (330), por meio de cada um dos ditos dispositi- vos de usuários e de cada resposta de sondagem recebida, um tempo de ida e volta, o tempo de ida e volta , sendo um período decorrido entre um tempo em que o dispositivo do usuário recebeu a resposta de son- dagem e um tempo em que o dispositivo do usuário enviou a solicitação de sondagem correspondente; agregar (420), pela plataforma de conteúdo, os dados do servidor de borda por chave de rede, compreendendo, para cada servi- dor de borda: determinar o número de solicitações de sondagem que fo- ram enviadas ao servidor de borda por dispositivos de usuário associa- dos a uma mesma chave de rede em uma janela de tempo predetermi- nada,
calcular a taxa de sucesso de resposta de sondagem do ser- vidor de borda, a taxa de sucesso de resposta de sondagem sendo o número de respostas de sondagem recebidas pelos dispositivos de usu- ário associados à mesma chave de rede dividido pelo número de solici- tações de sondagem enviadas ao servidor de borda pelos dispositivos de usuário, e calcular o tempo médio de ida e volta do servidor de borda, o tempo médio de ida e volta do servidor de borda sendo a média dos tempos de ida e volta determinados para as respostas de sondagem enviadas pelo servidor de borda e recebidas pelos dispositivos de usu- ário associados à mesma chave de rede; selecionar (230), por meio da plataforma de conteúdo, um novo melhor servidor de borda para o primeiro dispositivo de usuário (110) com base pelo menos em parte nos dados do servidor de borda agregados pela chave de rede que é a mesma chave de rede associada ao primeiro dispositivo de usuário e fornecier (240, 250), por meio da plataforma de conteúdo e para o primeiro dispositivo de usuário (110),de um identificador do novo servidor de borda selecionado para o dispositivo de usuário e iden- tificadores de um ou mais outros servidores de borda para os quais o primeiro dispositivo de usuário deve enviar solicitações futuras de son- dagem.
19. Meio não transitório de armazenamento em computador, de acordo com a reivindicação 18, caracterizado pelo fato de que a chave de rede associada a cada dispositivo de usuário compreende (i) um código de país do dispositivo de usuário, (ii) um número de sistema autônomo que corresponde a um endereço IP do dispositivo de usuário e (iii) os três primeiros octetos do endereço IP do dispositivo do usuário.
20. Meio não transitório de armazenamento em computador,
de acordo com a reivindicação 18, caracterizado pelo fato de que agre- gar (420) os dados do servidor de borda por meio da chave de rede também compreende, para cada servidor de borda: calcular o desvio padrão dos tempos de ida e volta do servi- dor de borda para os dispositivos de usuário associados à mesma chave de rede.
21. Meio não transitórios de armazenamento em computa- dor, de acordo com a reivindicação 20, caracterizado pelo fato de que selecionar (230) um novo melhor servidor de borda para o primeiro dis- positivo de usuário com base pelo menos em parte nos dados agrega- dos do servidor de borda compreende: calcular, para cada servidor de borda que atinja uma taxa mínima de sucesso de sondagem pré-determinada, uma respectiva pon- tuação de servidor; e identificar, como o melhor servidor de borda, o servidor de borda com a melhor pontuação de servidor.
Petição 870210022372, de 09/03/2021, pág. 19/73 Serviço de agregação Servidor de borda
Serviço de controle de tráfego 1/4
Servidor de borda Dispositivo de usuário Servidor de conteúdo
Servidor de borda
Plataforma de conteúdo
Receber uma solicitação de polling de um dispositivo de usuário no sistema
Em resposta à solicitação de polling, obter dados agregados do serviço de agregação
Determinar o melhor servidor de borda para o dispositivo de usuário com base nos dados agregados
Fornecer um identificador do melhor servidor de borda selecionado para o dispositivo do usuário
Fornecer, para o dispositivo de usuário, identificadores de outros servidores de borda para os quais o dispositivo do usuário deve enviar solicitações de sondagem 250
Enviar uma solicitação de sondagem a um servidor de borda Resposta de sondagem recebida?
SIM NÃO Calcular o tempo de ida e volta Registrar a falta de resposta da resposta de sondagem recebida
Obter dados do servidor de borda a partir dos dispositivos de usuário no sistema
Agregar os dados do servidor de borda por meio da chave de rede e, dentro de cada grupo definido por uma chave de rede específica, por meio do servidor de borda
Calcular estatísticas para cada servidor de borda em cada grupo
Armazenar as estatísticas na memória
BR112021004415-9A 2018-10-31 2019-10-31 sistema, método e dispositivos para selecionar um servidor de borda BR112021004415A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/177,037 US10999358B2 (en) 2018-10-31 2018-10-31 Traffic mapping
US16/177,037 2018-10-31
PCT/US2019/059213 WO2020092805A1 (en) 2018-10-31 2019-10-31 System, method and apparatus for selecting an edge server

Publications (1)

Publication Number Publication Date
BR112021004415A2 true BR112021004415A2 (pt) 2021-07-20

Family

ID=68699510

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021004415-9A BR112021004415A2 (pt) 2018-10-31 2019-10-31 sistema, método e dispositivos para selecionar um servidor de borda

Country Status (8)

Country Link
US (2) US10999358B2 (pt)
EP (1) EP3874712B1 (pt)
JP (1) JP2022513410A (pt)
KR (1) KR20210087966A (pt)
CN (1) CN113597752A (pt)
BR (1) BR112021004415A2 (pt)
DE (3) DE202019005859U1 (pt)
WO (1) WO2020092805A1 (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11132721B1 (en) * 2018-08-28 2021-09-28 Amazon Technologies, Inc. Interest based advertising inside a content delivery network
KR102592833B1 (ko) * 2018-12-14 2023-10-23 현대자동차주식회사 차량의 음성 인식 기능 연동 제어 시스템 및 방법
US10911505B1 (en) * 2019-10-18 2021-02-02 Salesforce.Com, Inc. Global capacity scaling
US11431789B2 (en) 2019-10-18 2022-08-30 Salesforce.Com, Inc. Global capacity routing
US11272007B2 (en) 2020-07-21 2022-03-08 Servicenow, Inc. Unified agent framework including push-based discovery and real-time diagnostics features
CN114531478A (zh) * 2020-10-30 2022-05-24 伊姆西Ip控股有限责任公司 边缘资源聚合的方法、设备和计算机程序产品
US11418586B2 (en) * 2021-01-19 2022-08-16 Servicenow, Inc. Load balancing of discovery agents across proxy servers
EP4285231A1 (en) * 2021-01-29 2023-12-06 Assia Spe, Llc System and method for network and computation performance probing for edge computing
CN116170447B (zh) * 2023-04-19 2023-07-14 杭州非奇科技股份有限公司 一种基于边缘节点的数据传输方法、系统和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231442B2 (en) * 2002-04-03 2007-06-12 Tonic Software, Inc. Global network monitoring system
US20090245114A1 (en) 2008-04-01 2009-10-01 Jayanth Vijayaraghavan Methods for collecting and analyzing network performance data
US8977710B2 (en) * 2008-06-18 2015-03-10 Qualcomm, Incorporated Remote selection and authorization of collected media transmission
CN102882699B (zh) * 2011-07-14 2015-07-29 华为技术有限公司 边缘节点的分配方法和装置及边缘节点控制器
US9113317B2 (en) 2012-12-19 2015-08-18 Verizon Patent And Licensing Inc. Intelligent streaming to a mobile device
US9444863B2 (en) * 2013-06-06 2016-09-13 Intel Corporation Manager for DASH media streaming
US9854053B1 (en) * 2014-03-24 2017-12-26 Amazon Technologies, Inc. Providing faster data access using multiple caching servers
US20170041355A1 (en) 2015-08-03 2017-02-09 Arris Enterprises Llc Contextual information for audio-only streams in adaptive bitrate streaming
US11575725B2 (en) * 2015-12-29 2023-02-07 Verizon Patent And Licensing Inc. Content delivery network streaming optimization
US10540158B2 (en) * 2016-07-18 2020-01-21 Google Llc Post-install application interaction
US10425694B2 (en) 2016-12-30 2019-09-24 Facebook, Inc. Live broadcast on an online social network
EP3679700A1 (en) 2017-10-18 2020-07-15 BlackBerry Limited Detecting remote application profiling
US10362357B1 (en) 2017-12-28 2019-07-23 Rovi Guides, Inc. Systems and methods for resuming media in different modes of playback based on attributes of a physical environment

Also Published As

Publication number Publication date
DE202019005818U1 (de) 2022-05-03
EP3874712B1 (en) 2022-12-07
KR20210087966A (ko) 2021-07-13
JP2022513410A (ja) 2022-02-07
CN113597752A (zh) 2021-11-02
US10999358B2 (en) 2021-05-04
EP3874712A1 (en) 2021-09-08
US20200137148A1 (en) 2020-04-30
US20210258370A1 (en) 2021-08-19
DE202019005859U1 (de) 2022-10-12
WO2020092805A1 (en) 2020-05-07
DE202019005784U1 (de) 2022-02-24

Similar Documents

Publication Publication Date Title
BR112021004415A2 (pt) sistema, método e dispositivos para selecionar um servidor de borda
AU2019203985B2 (en) Reducing latency
US9965522B2 (en) Mobile application search ranking
US8856146B2 (en) Device for determining internet activity
US20230188452A1 (en) Performance monitoring in a distributed storage system
US8639679B1 (en) Generating query suggestions
CN106664321A (zh) 基于放置策略的计算资源分配
US11227256B2 (en) Method and system for detecting gaps in data buckets for A/B experimentation
US9880879B1 (en) Identifying task instance outliers based on metric data in a large scale parallel processing system
WO2013184771A1 (en) Inline discussions in search results around real-time clusterings
CN107211030A (zh) 使用智能图像的用于反钓鱼的方法和系统
CN110572402B (zh) 基于网络访问行为分析的互联网托管网站检测方法、系统和可读存储介质
CN109818906A (zh) 一种设备指纹信息处理方法、装置及服务器
JP2015070615A (ja) Nxdクエリの監視方法
CN106575418B (zh) 建议的关键词
US9560027B1 (en) User authentication
US20150169628A1 (en) Location detection from queries using evidence for location alternatives
US10601922B2 (en) Information processing apparatus, information processing system, and non-transitory computer-readable storage medium
US10805238B1 (en) Management of alternative resources
WO2019112731A1 (en) System and method for inferring anonymized publishers