BRPI0617883A2 - próximo sìtio para conexões de serviços distribuìdos - Google Patents

próximo sìtio para conexões de serviços distribuìdos Download PDF

Info

Publication number
BRPI0617883A2
BRPI0617883A2 BRPI0617883-9A BRPI0617883A BRPI0617883A2 BR PI0617883 A2 BRPI0617883 A2 BR PI0617883A2 BR PI0617883 A BRPI0617883 A BR PI0617883A BR PI0617883 A2 BRPI0617883 A2 BR PI0617883A2
Authority
BR
Brazil
Prior art keywords
distributed
site
remote site
customer
optimal
Prior art date
Application number
BRPI0617883-9A
Other languages
English (en)
Inventor
Billy J Fuller
Nathan D Muggli
William B Tu
William B Lees
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of BRPI0617883A2 publication Critical patent/BRPI0617883A2/pt
Publication of BRPI0617883A8 publication Critical patent/BRPI0617883A8/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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
    • 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
    • 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
    • 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/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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

PRóXIMO SìTIO PARA CONEXõES DE SERVIçOS DISTRIBUìDOS. Trata-se do registro de um cliente junto a um serviço distribuído. Um método pode ser posto em prática, por exemplo, em um ambiente de computação de rede que inclui um cliente em um sítio local e vários serviços distribuídos em vários sítios remotos. O método inclui executar ping de um ou mais serviços distribuídos em um ou mais sítios remotos. Uma mensagem é recebida de um serviço distribuído dentre o serviço ou serviços distribuídos. A mensagem especifica um sítio remoto ótimo. O método inclui também registrar-se junto a um serviço distribuído no sítio remoto ótimo.

Description

"PRÓXIMO SÍTIO PARA CONEXÕES DE SERVIÇOS DISTRIBU-ÍDOS"
Antecedentes e Técnica Relevante
Os sistemas de computador modernos proporcionam ointercâmbio de dados e recursos através de ambientes de re-de. Por exemplo, uma rede de computadores modernos pode in-cluir vários computadores de cliente interconectados. A redede computadores pode incluir também recursos. Tais recursospodem, por exemplo, e não limitados a, servidores de arquivopara armazenar dados acessíveis pelos clientes, servidoresde impressão para dar aos clientes acesso a impressoras earmazenamentos compartilhados em computadores de cliente pa-ra armazenar dados a serem disponibilizados a outros clien-tes e recursos na rede.
As redes variam em tamanho. Redes menores incluemRedes de Área Local (LANs) . Exemplos de LAN incluem redesnativas e redes comerciais pequenas onde a rede fica em umaúnica residência ou sítio comercial. Redes maiores incluemRedes de Área Estendida (WANs) . Um exemplo comum de WAN é aInternet ubíqua. Outro exemplo inclui uma coleção de LANsinterconectadas para a criação de uma rede empresarial. Se-melhante a uma rede empresarial é uma floresta. Uma florestaé um grupo de sistemas sob um controle central.
Quando LANs são interconectadas para a criação deuma rede empresarial, hubs podem ser utilizados para conec-tar filiais de modo a se obter conectividade para a rede em-presarial. Tipicamente, a rede empresarial inclui váriosserviços distribuídos localizados por toda a rede empresari-al. Os clientes na rede empresarial podem registrar-se juntoa um dos serviços distribuídos. 0 serviço distribuído juntoao qual um cliente é registrado apresenta capacidades de ro-teamento que permitem que mensagens do cliente registradosejam entregues a outros clientes na rede empresarial, epermitem que mensagens de outros clientes sejam entregues aocliente registrado. 0 serviço distribuído pode incluir fun-cionalidade para proporcionar segurança à rede. Por exemplo,o serviço distribuído pode incluir funcionalidade para au-tenticar comunicações na rede para prevenção da transmissãode comunicações não autorizadas e/ou maliciosas na rede.
A rede empresarial pode ser disposta como uma reu-nião de sítios, onde cada sítio é uma faixa de endereços derede. Por exemplo, um sítio pode ser definido como uma reu-nião de endereços de Protocolo Internet (IP). Freqüentemen-te, endereços IP são atribuídos com base na proximidade geo-gráfica e/ou lógica. Assim, clientes e serviços distribuídoscom endereço IP semelhante e, mais especificamente, endere-ços IP dentro do mesmo sítio, estarão geograficamente e/oulogicamente próximos uns dos outros. Uma vez que muito outoda a comunicação para um cliente passa através do serviçodistribuído junto ao qual o cliente é registrado, é -freqüen-temente vantajoso registrar o cliente junto a um serviçodistribuído no mesmo sítio do cliente. Uma vantagem da pro-ximidade íntima do cliente e do serviço distribuído é a re-dução do tráfego total da'rede uma vez que não será necessá-rio que cada comunicação para o e do cliente seja roteadapara um serviço distribuído através de várias conexões derede para atingir um serviço distribuído localizado remotamente.
Infelizmente, contudo, podem surgir situações emque um cliente não pode registrar-se ou comunicar-se com umserviço distribuído no mesmo sítio do cliente. Quando istoocorre, o cliente pode selecionar aleatoriamente outro ser-viço distribuído em outro sítio junto ao qual registrar-se.Compreensivelmente, isto pode resultar no registro do clien-te junto a um serviço distribuído que está geograficamentee/ou logicamente bem distante do cliente.
O objeto aqui reivindicado não está limitado a mo-dalidades que solucionam quaisquer desvantagens ou que ope-ram apenas em ambientes tais como os descritos acima. Em vezdisso, estes antecedentes são apresentados apenas para ilus-trar uma área de tecnologia exemplar onde algumas modalida-des aqui descritas podem ser postas em prática.
Breve Sumário
Uma modalidade refere-se a um método para regis-trar um cliente junto a um serviço distribuído. O método po-de ser posto em prática, por exemplo, em um ambiente de com-putação de rede que inclui um cliente em um sítio local evários serviços distribuídos em vários sítios remotos. O mé-todo inclui executar ping de um ou mais serviços distribuí-dos em um ou mais sítios remotos. Uma mensagem é recebida deum serviço distribuído dentre o serviço ou serviços distri-buídos. A mensagem especifica um sítio remoto ótimo. O méto-do inclui também registrar-se junto a um serviço distribuídono sítio remoto ótimo.Outra modalidade descrita mais detalhadamente aquiinclui um método para fornecer a um cliente no sitio local,de um serviço distribuído em um sítio remoto, uma indicaçãode sítio remoto ótimo. O método pode ser posto em prática,por exemplo, em um ambiente de computação de rede que incluium cliente em um sítio local e vários serviços distribuídosem vários sítios remotos. O método inclui receber um ping docliente. O sítio remoto ótimo é determinado com base em in-formações sobre o cliente e informações sobre a conexão queconecta o cliente ao sítio remoto ótimo. O método incluitambém enviar uma mensagem ao cliente. A mensagem especificao sítio remoto ótimo.
Este Sumário é apresentado para introduzir uma se-leção de conceitos sob uma forma simplificados, os quais sãotambém descritos a seguir na Descrição Detalhada. Este Sumá-rio não se destina a identificar aspectos chave ou aspectosessenciais do objeto reivindicado, nem se destina a ser uti-lizado para ajudar a determinar o alcance do objeto reivin-dicado.
Aspectos e vantagens adicionais serão apresentadosna descrição que se segue e em parte serão óbvios a partirda descrição, ou podem ser aprendidos com a prática dos pre-sentes ensinamentos. Os aspectos e vantagens da invenção po-dem ser concretizados e obtidos por meio dos instrumentos ecombinações especificamente assinalados nas reivindicaçõesanexas. Os aspectos da presente invenção se tornarão maiscompletamente evidentes com a descrição seguinte e as rei-vindicações anexas ou podem ser aprendidos com a prática dainvenção conforme apresentada a seguir.
Breve Descrição dos Desenhos
De modo a se descrever a maneira pela qual as van-tagens e os aspectos acima citados e outros podem ser obti-dos, será apresentada uma descrição mais especifica do obje-to brevemente descrito acima por referência a modalidadesespecificas, que são mostradas nos desenhos anexos. Enten-dendo-se que estes desenhos mostram apenas modalidades típi-cas e que não devem, portanto, ser consideradas como limita-doras em alcance, serão descritas e explicadas modalidadescom especificidade e detalhe adicionais com a utilização dosdesenhos anexos, nos quais:
A Figura 1 mostra uma rede empresarial;
A Figura 2 mostra um método para registrar-se jun-to a um serviço distribuído em um sítio remoto;
A Figura 3 mostra um método para comunicar umamensagem a um cliente que indica um sítio remoto ótimo; e
A Figura 4 mostra um sistema no qual determinadasmodalidades podem ser postas em prática.
Descrição Detalhada
As presentes modalidades podem compreender um com-putador para fins especiais ou para fins gerais que incluidiversos hardwares de computador, conforme discutido maisdetalhadamente a seguir.
Uma modalidade aqui descrita refere-se a um siste-ma no qual serviços distribuídos em uma rede empresarial po-dem fornecer a um cliente uma indicação de um serviço dis-tribuido é localizado em um sitio remoto do cliente que estáem um sitio remoto ótimo. Se um cliente não puder registrar-se junto a um serviço distribuído no mesmo sítio do cliente,o cliente tentará registrar-se junto a um serviço distribuí-do no sítio remoto ótimo. 0 sítio remoto ótimo pode ser de-terminado em uma base por cliente. Por exemplo, cada clienteem uma rede empresarial tem um sítio remoto ótimo que podeou não ser o mesmo sítio remoto ótimo para outros clientesna rede empresarial. Pode-se determinar um sítio como sendoo sítio remoto ótimo por referência a diversos fatores taiscomo as características do cliente, as características dossistemas no sítio remoto e as características de uma ou maisconexões que interconectam o cliente com o sítio remoto óti-mo. Por exemplo, a cada conexão que interconecte um clientecom um sítio remoto pode ser atribuído um número de índiceque é comparável com o de outras conexões na rede empresari-al. Cada número de índice pode ser determinado por referên-cia a diversas características aplicadas à maneira de fórmu-las de modo a se chegar ao número de índice. As fórmulas po-dem incluir, por exemplo, referência a fatores tais como aconfiabilidade da conexão, o custo econômico por minuto oumedida de dados na conexão, a latência e o desempenho da co-nexão, as preferências do(s) usuário(s), a segurança da co-nexão, o equipamento de rede, os custos administrativos, alargura de banda da conexão e os usos conflitantes da cone-xão. Os serviços distribuídos na rede empresarial podem in-cluir uma tabela que inclui números de índice de conexão pa-ra conexão assim como a capacidade de calcular um número deíndice para um cliente para um sítio específico. Os númerosde índice calculados para conexões entre o cliente e sítiosdiferentes podem ser comparados de modo que um serviço dis-tribuído possa devolver uma mensagem ao cliente que indiqueque o sítio remoto ótimo é o sítio com o número de índicemais ideal.
Com referência agora à Figura 1, será mostrado umexemplo mais detalhado utilizando-se uma referência diagra-mada a uma rede empresarial 100. A rede empresarial 100 émostrada como incluindo vários sítios, que incluem o sítioA, o sítio Β, o sítio Ceo sítio D. 0 sítio local A 102 in-clui um serviço distribuído 104, que pode incluir diversosserviços que podem ser providos para clientes na rede empre-sarial 100. A Figura 1 mostra também um cliente 106 no sítiolocal A 102. O sítio local A 102 é conectado ao sítio remotoB 108 por uma conexão 110. O sítio remoto B 108 é conectadoao sítio remoto D 112 por uma conexão 114. 0 sítio remoto B108 é também conectado ao sítio remoto C 116 por uma conexão118. 0 sítio remoto D 112 é mostrado como incluindo um ser-viço distribuído 121. 0 sítio remoto C é mostrado como in-cluindo vários serviços distribuídos, que incluem o serviçodistribuído 120, o serviço distribuído 122 e o serviço dis-tribuído 124.
No funcionamento normal, o cliente 106 prefere re-gistrar-se ao serviço distribuído 104 localizado em um sítiolocal, o sítio local A 102, do cliente 106. Entretanto, po-dem ocorrer situações em que o serviço distribuído 104 nãoestá disponível para registrar clientes. 0 cliente 106 pri-meiro tentará registrar-se junto a um serviço distribuído nosítio local A 102. Quando o cliente 106 perceber que não háserviços distribuídos disponíveis para o registro de clien-tes no sítio local A 102, o cliente 106 tentará descobrir umsítio mais próximo seguinte para registrar-se em um serviçodistribuído no sítio mais próximo seguinte.
No exemplo mostrado na Figura 1, o cliente 106 en-via um ping 126 a um serviço distribuído 120 na rede empre-sarial 100. A seleção do serviço distribuído 120 como o sí-tio para ping pode ser feita em uma modalidade de maneiraaleatória pelo cliente, ao referir um registro de serviçosdistribuídos na rede empresarial 100. Uma vez que o cliente106 tenha enviado um ping 126 ao serviço distribuído 120, ocliente aguardará um intervalo curto para permitir que oserviço distribuído 120 responda. Se o serviço distribuído120 não responder, o cliente 106 pode executar ping de ser-viços distribuídos na rede empresarial 100. Entretanto, paraeste exemplo presume-se o serviço distribuído 120 pode res-ponder ao ping 126 do cliente 106. Uma mensagem enviada comoparte do ping 126 pode incluir uma indicação ao serviço dis-tribuído 120 de que o cliente 106 tem as capacidades parasuportar e comunicar-se utilizando mensagens nas quais oserviço distribuído 120 devolve uma indicação de um sítioremoto ótimo para que o cliente 106 entre em contato com umserviço distribuído. Por exemplo, o cliente 106 pode incluircom uma mensagem que é parte do ping 126 uma sinalização queindica sua capacidade para receber uma indicação de um sítioremoto ótimo.O serviço distribuído 120, por referência à sina-lização, pode determinar que uma deve ser enviada ao cliente106 uma mensagem 128 que inclua uma indicação de um sítioremoto ótimo para o cliente 106. Em modalidades alternati-vas, o serviço distribuído 120 pode não referir uma sinali-zação enviada no ping 126, mas pode, em vez disso, presumirque todos os clientes e serviços distribuídos na rede empre-sarial 100 suportam a capacidade para receber informaçõessobre sítio remoto ótimo. O fornecimento da sinalização pelocliente 106 e de uma referência à sinalização pelo serviçodistribuído 120, em uma modalidade, simplesmente proporcionauma retro-compatibilidade tal que os sistemas que incluem afuncionalidade para solicitar informações sobre sítio remotoótimo e os sistemas que incluem funcionalidade para fornecerinformações sobre sítio remoto ótimo podem ser utilizadoscom sistemas que não incluem tal funcionalidade.
Um serviço distribuído, tal como o serviço distri-buído 120 ou o outros serviços distribuídos mostrados na Fi-gura 1, pode incluir uma funcionalidade para criar e/ou ar-mazenar uma tabela de mapeamento que inclui índices que po-dem ser utilizados para determinar um número de índice parauma conexão entre o cliente 106 e os diversos sítios, o sí-tio local A 102, o sítio remoto B 108, o sítio remoto D 112,o sítio remoto C 116 na rede empresarial 100. Conforme mos-trado na Figura 1, por exemplo, a conexão 110 e entre o sí-tio local A 102 e o sítio remoto B 108 tem um custo de índi-ce de 1000. Este número representa os resultados de um algo-ritmo que determina um custo de índice com base em fatorestais como a confiabilidade da conexão, o custo da conexão, aproximidade física entre os sítios e semelhantes. O valor deíndice 1000 pode ser armazenado em uma tabela de mapeamentode custos armazenada em cada um dos serviços distribuídos narede empresarial 100. A conexão 114 entre o sítio remoto B108 e o sítio remoto D 112 tem um índice de custo de 500,conforme mostrado na Figura 1. A conexão 118 entre o sítioremoto B 108 e o sítio remoto C 116 tem um índice de custode 1000, conforme mostrado na Figura 1.
Mostrando-se agora a funcionalidade de uma modali-dade, o cliente 106 envia um ping 126 ao serviço distribuído120. O ping 126 pode incluir informações sobre a localizaçãodo cliente 106. Por exemplo, o ping 126 pode incluir o ende-reço IP do cliente 106. O endereço IP do cliente 106 podeser utilizado para identificar o cliente como um membro dosítio local A 102. Sabendo que o cliente 106 reside no sítiolocal A 102, o serviço distribuído 120 pode então calcular osítio seguinte mais próximo do cliente 106. Por exemplo, oserviço distribuído 120 refere a tabela de índices de custode modo a determinar que o cliente 106 pode acessar o sítioremoto B 108 a um custo de 1000. O cliente 106 pode acessaro sítio remoto D 112 a um custo de 1500. O cliente 106 podeacessar o sítio remoto C a um custo de 2000. Sendo assim, oserviço distribuído 120 devolve uma mensagem 128 ao cliente106, indicando que o sítio remoto B é o sítio remoto maispróximo ou ótimo para o cliente 106. O cliente pode entãoregistrar-se junto ao serviço distribuído 130 no sítio remoto B 108.Em uma modalidade, se o cliente 106 não puder re-gistrar-se junto a um serviço distribuído no sitio remotoótimo, que neste caso é o sitio remoto B 108, então o clien-te 106 pode tentar entrar em contato com um serviço distri-buição no sitio remoto mais favorável seguinte. Por exemplo,o serviço distribuído 120 pode devolver uma mensagem 128, deque o sítio remoto B 108 é o sítio remoto mais favorável pa-ra conexão com o cliente 106 (com um índice de 1000) , o sí-tio remoto D 112 é o sítio remoto mais favorável seguinte(com um índice de 1500) e o sítio remoto C 116 é o sítio re-moto mais favorável seguinte depois do sítio remoto D 112(com um índice de 2000) . Sendo assim, se o cliente 106 nãoconsegue registrar-se junto ao serviço distribuído 130 nosítio remoto B 108, então serviço distribuído pode tentar registrar-se ao serviço distribuição 121 no sítio remoto D112. Se o cliente 106 não consegue registrar-se junto a umserviço distribuição no sítio remoto D, então o cliente 106tentará registrar-se junto a um serviço distribuído 120, 122ou 124 no sítio remoto C 116.
As modalidades descritas acima foram descritas emtermos gerais. Deve-se perceber, contudo, que determinadasmodalidades específicas podem ser também implementadas. Porexemplo, as modalidades descritas acima podem ser implemen-tadas em uma modalidade de diretório ativo utilizando-se atecnologia de diretórios ativos disponível em servidores ob-teníveis da Microsoft Corporation, de Redmond, Washington.Por exemplo, os serviços distribuídos descritos anteriormen-te podem ser corporifiçados como controladores de domínio emsítios em uma floresta de diretórios ativos.
Com referência agora à Figura 2, é mostrado um mé-todo 200 para registrar um cliente junto a um serviço dis-tribuído. O método 200 pode ser posto em prática, por exem-plo, em um ambiente de computação de rede que inclui um cli-ente em um sítio local e vários serviços distribuídos em vá-rios sítios remotos. 0 método 200 inclui um ato de executarping de um ou mais serviços distribuídos em um ou mais sí-tios remotos de modo a se descobrir um serviço distribuídoem um sítio remoto ótimo (ato 202). Com referência mais umavez à Figura 1, é mostrado um exemplo ilustrativo de um cli-ente 106 executar ping de um serviço distribuído 120 em umsítio remoto C 116. Conforme mostrado na Figura 1, o cliente106 envia um ping 126 ao serviço distribuído 120 no sítio C.Em uma modalidade, a execução de ping de um ou mais serviçosdistribuídos em um ou mais sítios remotos (ato 202) pode in-cluir enviar uma sinalização que indica que o cliente supor-ta receber mensagens que especificam o sítio remoto ótimo.Por exemplo, e novamente com referência à Figura 1, o ping126 pode incluir uma sinalização que indica que o cliente106 é capaz de receber informações sobre sítio remoto ótimo.Se o serviço distribuído 120 suportar funcionalidade paratransmitir informações sobre sítio remoto ótimo, o serviçodistribuído 120 pode analisar o ping 126 de modo a determi-nar se o cliente 126 deseja receber informações sobre sítioremoto ótimo.Em uma modalidade, o a execução de ping de um oumais serviços distribuídos em um ou mais sítios remotos (ato202) pode ser efetuada em seguida à primeira tentativa deentrar em contato com um serviço distribuição no mesmo sítiodo cliente. Por exemplo e novamente com referência à Figura1, o cliente 106 pode primeiro tentar registrar-se junto aoserviço distribuído 104 no sítio local A 102. Se o serviçodistribuído 104 estiver indisponível ou cliente 106 não forcapaz de entrar em contato com o serviço distribuído 104,então o cliente 106 enviará o ping 126 ao serviço distribui-ção 120 no sítio remoto C 116.
Novamente com referência à Figura 2, o método 200inclui também um ato de receber uma mensagem de um serviçodistribuído dentre um ou mais serviços distribuídos, a men-sagem especificando o sítio remoto ótimo (ato 204). Em umamodalidade, a mensagem pode ser uma mensagem UDP. Novamentecom referência à Figura 1, o serviço distribuído 120 respon-de ao ping 126 enviando uma mensagem 128. A mensagem 128pode incluir informações que especificam o sítio remoto óti-mo do sítio A 102 ao qual o cliente 106 pertence. No exemplomostrado na Figura 1, o sítio remoto ótimo é o sítio remotoB 108. No exemplo específico mostrado na Figura 1, o sítioremoto B é o sítio remoto ótimo uma vez que a conexão queconecta o sítio local A 102 ao sítio remoto B 108 tem um ín-dice mais baixo que o das conexões com os outros sítios re-motos 112, 116.
Conforme a alusão anterior, números de índice po-dem ser utilizados para comparar conexões de sítios locaiscom um sitio remoto. Sendo assim, pode-se determinar o sitioremoto ótimo como sendo o sitio remoto ótimo em virtude deum índice comparável com um índice para outros sítios. Osnúmeros de índice podem ser calculados utilizando-se váriosfatores diferentes. Por exemplo, o índice pode ser calculadoutilizando-se pelo menos um da proximidade física do clientecom relação ao sítio remoto ótimo, o custo econômico de umaconexão que conecta o cliente ao sítio remoto ótimo, a con-fiabilidade da conexão, a latência e o desempenho da cone-xão, as preferências do(s) usuário (s), a segurança da cone-xão, o equipamento de rede, os custos administrativos, alargura de banda da conexão ou os usos conflitantes da conexão.
Conforme descrito acima, um fator que pode ser u-tilizado no cálculo dos índices das conexões que conectamsítios é o custo monetário da conexão. Por exemplo, tiposdiferentes de conexão podem ter custos monetários diferentesassociados a seu uso. Por exemplo, conexões por discagem,conexões Ethernet diretas, conexões por satélite, conexõesDSL, conexões sem fio e semelhantes têm, cada uma, um customonetário diferente quando comparadas entre si. No exemplomostrado na Figura 1, onde os números de índice mais baixosindicam que a conexão é mais favorável, as conexões que cus-tam menos monetariamente podem resultar em um número de ín-dice mais baixo para a conexão.
Conforme observado anteriormente, outro fator quepode ser utilizado no cálculo de um número de índice podeser a confiabilidade da conexão que conecta o cliente ao si-tio remoto ótimo. Alguns tipos de comunicação são menos con-fiáveis do que outros tipos de comunicação. Assim, um tipode comunicação que seja mais confiável pode resultar em umnúmero de índice mais baixo para a conexão.
Ainda outros fatores que podem ser utilizados nadeterminação do número de índice são a latência e o desempe-nho da conexão. Algumas conexões podem transmitir dados ataxas mais rápidas que a de outras conexões. Isto pode serdevido ao tipo de tecnologia que é utilizado para criar aconexão ou à quantidade de tráfego na conexão ou a diversasoutras razões. Assim, em uma modalidade, conexões com desem-penho mais elevado e latência mais baixa podem ter númerosde índice mais baixos.
Outro fator que pode ser utilizado para determinarum índice para uma conexão refere-se à segurança da conexão.Por exemplo, determinados tipos de conexão têm níveis maiselevados de criptografação e são mais seguros. Freqüentemen-te, conexões cabeadas são mais seguras que conexões sem fio.Determinados tipos de criptograf ação sem fio são mais segu-ros que outros tipos de criptograf ação sem fio. Assim, emuma modalidade, conexões mais seguras podem ter um número deíndice mais baixo ou uma indicação de índice de que a cone-xão é mais ou menos ótima, então conexões menos seguras.
Ainda outro fator que pode ser utilizado para de-terminar um valor de índice para uma conexão refere-se àlargura de banda da conexão. Em uma modalidade, a largura debanda da conexão refere-se à largura de banda disponível pa-ra servir clientes adicionais. Assim, em uma modalidade e-xemplar, embora uma conexão possa ter uma largura de bandatotal disponível mais elevada, a conexão pode resultar real-mente em um índice mais elevado quando a conexão tem menoslargura de banda disponível, uma vez que a conexão é dedica-da a servir outros clientes ou serviços na rede.
Outro fator que pode ser utilizado para determinaro número de índice para uma conexão refere-se a usos confli-tantes da conexão. Por exemplo, algumas conexões podem servaliosas para servir diversos tipos de tráfego de rede e de- vem, assim, ser preservadas para esses tipos de tráfego derede. Assim, uma conexão pode receber um valor de índicemais elevado uma vez que a conexão é utilizada para diversostipos de comunicações de rede que pode ser menos desejávelinterromper do que outras comunicações nas outras conexões.
O sítio remoto ótimo pode ser determinado identi-ficando-se o sítio local por referência a um endereço IP docliente. Por exemplo, e novamente com referência à Figura 1,o endereço IP do cliente 106 pode fornecer uma indicação deque o cliente 106 no sítio local A 102. Sendo assim, o ser-viço distribuído 120 pode determinar o sítio mais favorávelcomparando conexões que interconectam o sítio A 102 a outrossítios na rede empresarial 100. Conforme discutido anterior-mente aqui, o valor de índice para a conexão do sítio A 102com o sítio B 108 é 1000. O valor de índice da conexão queinterconecta o sítio A 102 ao sítio D 112 é 1500. O valor deíndice da conexão que interconecta o sítio A 102 ao sítio C116 é 2000. Assim, o serviço distribuído 120 pode determinarque o sítio mais favorável para o cliente 106 é o sítio B108.
Notadamente, nos exemplos mostrados acima, sãomostrados valores de índice mais baixos como tendo uma natu- reza mais favorável. Entretanto, pode-se imaginar roteirosem que valores de índice mais elevados são mais favoráveis,ou outros indicadores de índice são utilizados para indicarque uma conexão é ótima. Assim, as modalidades aqui mostra-das não devem ser limitadas apenas a modalidades em que ape- nas valores de índice mais baixos indicam uma conexão maisfavorável.
O método 200 mostrado na Figura 2 inclui também umato de registrar-se junto a um serviço distribuído no sítioremoto ótimo (ato 206). Assim, conforme mostrado na Figura 1, o cliente 106 pode registrar-se junto ao serviço distri-buído 130 no sítio ótimo B 108.
O método 200 pode incluir também reverter para ummétodo de execução de ping aleatória para encontrar um ser-viço distribuído se não for recebida uma mensagem indicando um sítio ótimo. Por exemplo, e novamente com referência àFigura 1, se o serviço distribuído 120 não suportar as men-sagens que especificam o sítio mais favorável, nenhuma men-sagem 128 indicando o sítio mais favorável será recebida pe-lo cliente 106. Sendo assim, o cliente 106 pode reverter pa- ra um esquema pelo qual o cliente 106 seleciona aleatoria-mente um serviço distribuído junto ao qual registrar-se. Emmodalidades alternativas, o cliente 106 pode executar pingde outros serviços distribuídos na rede empresarial de modoa descobrir um serviço distribuído que suporte a transmissãode informações sobre sítio ótimo.
Agora com referência à Figura 3, é mostrado um mé-todo 300 para fornecer a um cliente uma indicação de um sí-tio remoto ótimo. O método 300 pode ser posto em prática,por exemplo, em um ambiente de computação de rede que incluium sítio local e vários serviços distribuídos em vários sí-tios remotos. O método inclui um ato de receber um ping docliente (ato 302). Agora com referência à Figura 1, o servi-ço distribuído 120 pode receber o ping 126 do cliente 106.Conforme aqui descrito anteriormente, o ping 126 pode inclu-ir uma sinalização que indica que o cliente 106 suporta arecepção de mensagens que especificam o sítio remoto ótimo.
O método 300 inclui também um ato de determinar osítio remoto ótimo com base em informações sobre o cliente einformações sobre a conexão que conecta o cliente ao sítioremoto ótimo (ato 304). A determinação do sítio remoto ótimo(ato 304) pode incluir o índice do sítio remoto ótimo com osde outros sítios. 0 índice pode ser calculado utilizando-sea proximidade física do cliente e do sítio remoto ótimo, ocusto econômico de uma conexão que conecta o cliente ao sí-tio remoto ótimo, a confiabilidade da conexão, a latência eo desempenho da conexão, as preferências do(s) usuário(s), asegurança da conexão, o equipamento de rede, os custos admi-nistrativos, a largura de banda da conexão ou os usos con-flitantes da conexão. Em uma modalidade, o sítio remoto óti-mo é determinado identificando-se o sítio local por referên-cia ao endereço IP do cliente. Conforme mostrado na Figura1, por exemplo, o cliente 106 pode ter um endereço IP quecorresponde a uma faixa de endereços IP para o sitio 102.
Em uma modalidade, o método 300 pode incluir cal-cular o índice do sítio remoto ótimo. Nesta modalidade, umserviço distribuído pode incluir módulos de programa ou ou-tra funcionalidade para calcular o índice e os números uti-lizados para comprar conexões que interconectam sítios. Osmódulos de programa podem aceitar informações de entrada co-mo as aqui descritas anteriormente e podem incluir módulosde programa para calcular um número de índice com base nasinformações de entrada.
Em uma modalidade alternativa, o método 300 podeincluir receber o índice calculado do sítio remoto ótimo.Por exemplo, os serviços distribuídos na rede empresarialpodem incluir funcionalidade para receber números de índicede outro agente na rede empresarial, em que o outro agentefornece os números de índice para as conexões que interco-necta os sítios na rede empresarial.
0 método 300 mostrado na Figura 3 inclui também umato de enviar uma mensagem ao cliente, a mensagem especifi-cando o sítio remoto ótimo (ato 306). Conforme mostrado naFigura 1, conforme alusão feita aqui anteriormente, o servi-ço distribuído 120 pode transmitir uma mensagem 128 ao cli-ente 106, em que a mensagem 128 fornece informações que es-pecificam um sítio remoto ótimo. No exemplo mostrado na Fi-gura 1, por exemplo, a mensagem 128 pode especificar que osítio remoto ótimo para o cliente 106 é o sítio B 108. Emuma modalidade, o envio de uma mensagem ao cliente (ato 306)pode incluir o envio de uma mensagem UDP.
Com referência agora à Figura 4, é mostrado umsistema de computador exemplar 420. O sistema de computador420 pode incluir funcionalidade para executar ping de servi-ços distribuídos de modo a descobrir um sítio remoto ótimo epara registrar-se junto a um serviço distribuído. Os servi-ços distribuídos, embora possam ser corporifiçados como umsistema separado, são mostrados Figura 4 coletivamente comoo sistema de computador remoto 483. 0 sistema de computador420 pode incluir um processador 421. 0 processador 421 éconfigurado para funcionar de acordo com instruções executá-veis por computador. Por exemplo, o processador pode serconfigurado para rodar instruções armazenadas no BIOS 426 naROM 424, como parte de um sistema operacional 435 e diversosmódulos de programa, que incluem programas de aplicativo 436e outros módulos de programa 437. Estes módulos de programapodem ser armazenados em um armazenamento persistente nãovolátil, tal como um disco rígido 439 ou outros meios ondeeles podem ser carregados na memória de sistema 422 para e-xecução pelo processador.
0 sistema de computador 420 inclui também, confor-me alusão acima, meios de armazenamento configurados paraarmazenar dados e módulos de programa. Por exemplo, os pro-gramas de aplicativo 436 podem ser armazenados na unidaderígida 439, onde podem ser carregados na RAM 425 da memóriade sistema 422. De maneira semelhante, os dados de programa438 podem ser armazenados na unidade rígida 439 e armazena-dos na RAM 425 da memória de sistema 422.
Um meio de armazenamento pode incluir um ou maismódulos de programa 437 configurados para executar ping deum ou mais serviços distribuídos em um ou mais sítios remo-tos. Os módulos de programa podem ser também configuradospara receber uma mensagem de um serviço distribuído dentre oserviço ou serviços distribuídos, em que a mensagem especi-fica um sítio remoto ótimo. 0 módulo ou módulos de programapodem ser também configurados para registrar-se junto a umserviço distribuído no sítio remoto ótimo.
Em algumas modalidades, os serviços distribuídossão representados pelo sistema de computador remoto 483 co-nectado ao sistema de computador 420 por meio de uma inter-face com a rede 453 e uma conexão de rede 451. A conexão derede 451 pode ser qualquer uma das diversas conexões de redeque existem atualmente ou podem existir no futuro. As cone-xões presentes incluem conexões Bluetooth, conexões cabeadase sem fio e diversas outras conexões. Entretanto, as modali-dades não estão limitadas às conexões de rede aqui citadas,mas podem funcionar com outras conexões ainda não descober-tas .
Em uma modalidade, o módulo ou módulos de programa437 podem ser também configurados para enviar uma indicaçãode que o sistema de computador 420 é capaz de processar in-formações sobre sítio ótimo. Em ainda outra modalidade, osmódulos de programa podem ser configurados para reverter aum método de execução de ping aleatória para encontrar umserviço distribuído se não for recebida nenhuma mensagem indicando um sítio remoto ótimo.
As modalidades podem incluir também meios passí-veis de leitura por computador para executar ou ter instru-ções executáveis por computador ou estruturas de dados arma-zenadas neles. Tais meios passíveis de leitura por computa-dor podem ser quaisquer meios disponíveis que podem ser a-cessados por um computador para fins gerais ou para fins es-peciais. A título de exemplo, e não de limitação, tais meiospassíveis de leitura por computador podem compreender umaRAM, uma ROM, uma EEPROM, um CD-ROM ou outro armazenamentoem disco óptico, armazenamento em disco magnético ou outrosdispositivos de armazenamento magnéticos ou quaisquer outrosmeios que possam ser utilizados para portar ou armazenardispositivos de código de programa desejados sob a forma deinstruções executáveis por computador ou estruturas de dadose que possam ser acessados por um computador para fins ge-rais ou para fins especiais. Quando informações são transfe-ridas ou fornecidas através de uma rede ou outra conexão decomunicação (ou cabeada, sem fio ou uma combinação de cabea-da e sem fio) a um computador, o computador vê apropriada-mente a conexão como um meio passível de leitura por compu-tador. Assim, qualquer conexão que tal é apropriadamente de-nominada de meio passível de leitura por computador. Combi-nações delas devem ser também incluídas dentro do alcancedos meios passíveis de leitura por computador.
As instruções executáveis por computador compreen-dem, por exemplo, instruções e dados que fazem com que umcomputador para fins gerais, um computador para fins especi-ais ou um dispositivo de processamento para fins especiaisexecute uma determinação função ou grupo de funções. Emborao objeto tenha sido descrito em uma linguagem especifica deaspectos estruturais e/ou atos metodológicos, deve ficar en-tendido que o objeto definido nas reivindicações anexas nãoestá necessariamente limitado aos aspectos ou atos específi-cos descritos acima. Em vez disso, os aspectos e atos espe-cíficos descritos acima são revelados como formas exemplaresde implementação das reivindicações.
A presente invenção pode ser corporifiçada sob ou-tras formas especificas sem que se abandone seu espírito oucaracterísticas essenciais. As modalidades descritas devemser consideradas a todos os respeitos apenas como ilustrati-vas e não restritivas. O alcance da invenção é, portanto,indicado pelas reivindicações anexas, e não pela descriçãoprecedente. Todas as alterações que se incluem dentro dosignificado e faixa de equivalência as reivindicações serãoabrangidas dentro do seu alcance

Claims (20)

1. Método para registrar um cliente junto a umserviço distribuído, em um ambiente de computação de redeque inclui um cliente em um sítio local e vários serviçosdistribuídos em vários sítios remotos, o métodoCARACTERIZADO por compreender:executar ping de um ou mais serviços distribuídosem um ou mais sítios remotos (201);receber uma mensagem de um serviço distribuídodentre o serviço ou serviços distribuídos, a mensagem espe-cificando um sítio remoto ótimo (204); eregistrar-se junto a um serviço distribuído no sí-tio remoto ótimo (206).
2. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a execução de ping inclui en-viar uma indicação de que o cliente suporta receber mensa-gens que especificam o sítio remoto ótimo.
3. Método, de acordo com a reivindicação 2,CARACTERIZADO pelo fato de que a indicação compreende umasinalização.
4. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o sítio remoto ótimo é deter-minado como sendo o sítio remoto ótimo em virtude de um ín-dice comparável com um índice para outros sítios, em que oíndice é calculado utilizando-se pelo menos um da proximida-de física do cliente com relação ao sítio remoto ótimo, cus-to econômico de uma conexão que conecta o cliente ao sítioremoto ótimo, confiabilidade da conexão, latência e desempe-nho da conexão, preferências do(s) usuário (s), segurança daconexão, equipamento de rede, custos administrativos, largu-ra de banda da conexão ou usos conflitantes da conexão.
5. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o sitio remoto ótimo é deter-minado identificando-se o sitio local por referência ao en-dereço IP do cliente.
6. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o serviço distribuído no sí-tio remoto ótimo compreende um controlador de domínios.
7. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que a mensagem recebida de umserviço distribuído é uma mensagem UDP.
8. Método, de acordo com a reivindicação 1,CARACTERIZADO pelo fato de que o a execução de ping de um oumais serviços distribuídos em um ou mais sítios remotos éefetuada após a primeira tentativa de entrar em contato comum serviço distribuído no mesmo sítio do cliente.
9. Método, de acordo com a reivindicação 1,CARACTERIZADO por compreender reverter a um método de execu-ção de ping aleatória para encontrar um serviço distribuídose não for recebida nenhuma mensagem indicando um sítio re-moto ótimo.
10. Método para fornecer ao cliente no sítio Io-cal, de um serviço distribuído em um sítio remoto, em um am-biente de computação de rede que inclui um cliente em um sí-tio local e vários serviços distribuídos em vários sítiosremotos, o método CARACTERIZADO por compreender:receber um ping do cliente (402);determinar o sitio remoto ótimo com base nas in-formações sobre o cliente e nas informações sobre a conexãoque conecta o cliente ao sitio remoto ótimo (304); eenviar uma mensagem ao cliente, a mensagem especi-ficando o sitio remoto ótimo (306).
11. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que o ping compreende uma sinali-zação de que o cliente suporta receber mensagens que especi-ficam o sitio remoto ótimo.
12. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que determinar o sitio remoto ó-timo compreende comparar o índice do sítio remoto ótimo comos índices de outros sítios, em que o índice é calculado u-tilizando-se pelo menos um da proximidade física do clientecom relação ao sítio remoto ótimo, custo econômico de umaconexão que conecta o cliente ao sítio remoto ótimo, confia-bilidade da conexão, latência e desempenho da conexão, pre-ferências do(s) usuário(s), segurança da conexão, equipamen-to de rede, custos administrativos, largura de banda da co-nexão ou usos conflitantes da conexão.
13. Método, de acordo com a reivindicação 12,CARACTERIZADO pelo fato de que o método compreende tambémcalcular o índice do sítio remoto ótimo.
14. Método, de acordo com a reivindicação 12,CARACTERIZADO pelo fato de que o método compreende tambémreceber o índice calculado do sítio remoto ótimo.
15. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que as informações sobre o clien-te incluem o endereço IP do cliente.
16. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que o serviço distribuído no sí-tio remoto ótimo compreende um controlador de domínios.
17. Método, de acordo com a reivindicação 10,CARACTERIZADO pelo fato de que enviar uma mensagem ao clien-te compreende enviar uma mensagem UDP.
18. Sistema de computador configurado para regis-trar-se junto a um serviço, em um ambiente de computação derede que compreende sistemas de cliente e serviços distribu-ídos, o sistema de computador CARACTERIZADO por compreender:um processador (421) configurado para rodar módu-los de programa (437); eum meio de armazenamento (422, 439) configuradopara receber dados (438) e módulos de programa (437), o meiode armazenamento compreendendo:um ou mais módulos de programa (437) configuradospara:@ ping um ou mais serviços distribuídos em um ou maissítios remotos;receber uma mensagem de um serviço distribuí-do dentre o serviço ou serviços distribuídos, a mensagem es-pecificando um sítio remoto ótimo; e registrar-se junto a umserviço distribuído no sítio remoto ótimo.
19. Sistema de computador, de acordo com a reivin-dicação 18, CARACTERIZADO pelo fato de que o módulo ou módu-los de programa são também configurados para enviar uma in-dicação de que o sistema de computador é capaz de processarinformações sobre sitio ótimo.
20. Sistema de computador, de acordo com a reivin-dicação 18, CARACTERIZADO pelo fato de que o módulo ou módu- los de programa são também configurados para reverter a ummétodo de execução de ping aleatório para encontrar um ser-viço distribuído se não for recebida nenhuma mensagem indi-cando um sítio remoto ótimo
BRPI0617883A 2005-12-02 2006-10-10 Próximo sítio para conexões de serviços distribuídos BRPI0617883A8 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/292,771 US7606937B2 (en) 2005-12-02 2005-12-02 Next site for distributed service connections
US11/292,771 2005-12-02
PCT/US2006/040046 WO2007064415A1 (en) 2005-12-02 2006-10-10 Method and system for registering a distributed service site

Publications (2)

Publication Number Publication Date
BRPI0617883A2 true BRPI0617883A2 (pt) 2011-08-09
BRPI0617883A8 BRPI0617883A8 (pt) 2016-11-08

Family

ID=38092556

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0617883A BRPI0617883A8 (pt) 2005-12-02 2006-10-10 Próximo sítio para conexões de serviços distribuídos

Country Status (10)

Country Link
US (1) US7606937B2 (pt)
EP (1) EP1955181B1 (pt)
JP (1) JP4801169B2 (pt)
KR (1) KR101278744B1 (pt)
CN (1) CN101322114B (pt)
AU (1) AU2006320927B2 (pt)
BR (1) BRPI0617883A8 (pt)
CA (1) CA2624273C (pt)
RU (1) RU2427032C2 (pt)
WO (1) WO2007064415A1 (pt)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8805950B1 (en) * 2007-09-12 2014-08-12 Aol Inc. Client web cache
US20100088415A1 (en) * 2008-10-07 2010-04-08 Aaron Archer Method and apparatus for locating facilities
US9038060B2 (en) 2012-10-02 2015-05-19 Nextbit Systems Inc. Automatically installing operating system specific to a detected network
US8875127B2 (en) 2012-10-02 2014-10-28 Nextbit Systems Inc. Operating system customization
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US10268550B2 (en) * 2016-10-10 2019-04-23 Quest Software Inc. Virtualizing a secure active directory environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483652A (en) * 1994-01-24 1996-01-09 Digital Equipment Corporation Mechanism for locating without search discrete application resources known by common name only in a distributed network computing environment
US5892946A (en) * 1995-09-12 1999-04-06 Alcatel Usa, Inc. System and method for multi-site distributed object management environment
US6012096A (en) * 1998-04-23 2000-01-04 Microsoft Corporation Method and system for peer-to-peer network latency measurement
US20010039587A1 (en) 1998-10-23 2001-11-08 Stephen Uhler Method and apparatus for accessing devices on a network
US6304913B1 (en) * 1998-11-09 2001-10-16 Telefonaktiebolaget L M Ericsson (Publ) Internet system and method for selecting a closest server from a plurality of alternative servers
US6826692B1 (en) * 1998-12-23 2004-11-30 Computer Associates Think, Inc. Method and apparatus to permit automated server determination for foreign system login
RU2237275C2 (ru) * 1999-02-18 2004-09-27 Ситрикс Системз, Инк. Сервер и способ (варианты) определения программного окружения клиентского узла в сети с архитектурой клиент/сервер
EP1212680B1 (en) * 1999-08-13 2007-07-04 Sun Microsystems, Inc. Graceful distribution in application server load balancing
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7155723B2 (en) * 2000-07-19 2006-12-26 Akamai Technologies, Inc. Load balancing service
US7089301B1 (en) * 2000-08-11 2006-08-08 Napster, Inc. System and method for searching peer-to-peer computer networks by selecting a computer based on at least a number of files shared by the computer
US6920498B1 (en) * 2000-08-31 2005-07-19 Cisco Technology, Inc. Phased learning approach to determining closest content serving sites
JP2002132462A (ja) 2000-10-26 2002-05-10 Fujitsu Ltd 印刷代行サービス方法及びシステム
US7340505B2 (en) * 2001-04-02 2008-03-04 Akamai Technologies, Inc. Content storage and replication in a managed internet content storage environment
US20030009401A1 (en) * 2001-04-27 2003-01-09 Enerwise Global Technologies, Inc. Computerized utility cost estimation method and system
US6950847B2 (en) * 2001-07-12 2005-09-27 Sun Microsystems, Inc. Service provider system for delivering services in a distributed computing environment
US6792421B2 (en) 2001-08-13 2004-09-14 Genesis Group Inc. System and method for retrieving location-qualified site data
EP1322094B1 (en) 2001-12-21 2005-04-06 Castify Networks SA Process for selecting a server in a content delivery network
US7113796B2 (en) 2002-01-18 2006-09-26 Microsoft Corporation Framework and method for QoS-aware resource discovery in mobile ad hoc networks
KR100477653B1 (ko) 2002-06-22 2005-03-23 삼성전자주식회사 외부망에서의 dns 서버 검색 장치 및 방법
US7970876B2 (en) * 2002-07-23 2011-06-28 Avaya Communication Israel Ltd. Global server load balancer
US6909721B2 (en) 2002-10-31 2005-06-21 Nokia Corporation Device detection and service discovery system and method for a mobile ad hoc communications network
EP1515233A3 (en) * 2003-08-06 2007-03-14 Matsushita Electric Industrial Co., Ltd. Method, server and client for reducing processing time in synchronous communication in a client-server distributed system

Also Published As

Publication number Publication date
CN101322114B (zh) 2010-05-26
RU2008121872A (ru) 2009-12-10
EP1955181A4 (en) 2014-05-14
AU2006320927B2 (en) 2011-03-17
EP1955181B1 (en) 2018-11-21
CA2624273C (en) 2014-03-11
JP4801169B2 (ja) 2011-10-26
CN101322114A (zh) 2008-12-10
AU2006320927A1 (en) 2007-06-07
EP1955181A1 (en) 2008-08-13
KR20080077966A (ko) 2008-08-26
JP2009518883A (ja) 2009-05-07
BRPI0617883A8 (pt) 2016-11-08
US7606937B2 (en) 2009-10-20
RU2427032C2 (ru) 2011-08-20
WO2007064415A1 (en) 2007-06-07
CA2624273A1 (en) 2007-06-07
KR101278744B1 (ko) 2013-06-25
US20070130304A1 (en) 2007-06-07

Similar Documents

Publication Publication Date Title
US12058204B1 (en) Systems and methods for locating server nodes for edge devices using latency-based georouting
US20020083146A1 (en) Data model for automated server configuration
BRPI0401852B1 (pt) “Método para proteger uma rede de computadores”
US8621569B1 (en) Intercluster relationship management
CN111711716B (zh) 一种域名解析方法、装置、设备及可读存储介质
US12058599B1 (en) Systems and methods for locating server nodes in close proximity to edge devices using georouting
US20250016522A1 (en) Geofence tracking with device location privacy
Zhu Classification of service discovery in pervasive computing environments
CN108737591A (zh) 一种服务配置的方法及装置
BRPI0617883A2 (pt) próximo sìtio para conexões de serviços distribuìdos
CN110247789A (zh) 在包括集中式系统和分布式系统的网络中的ap部署
US10200249B1 (en) Network traffic management for virtualized graphics devices
US7945643B2 (en) Rules for shared entities of a network-attached storage device
US12244668B2 (en) Containerized gateways and exports for distributed file systems
US11936736B2 (en) Interworking method between different 5G multi-access edge computing (MEC) platforms using common application programing interface framework (CAPIF)
WO2020199982A1 (zh) 信息验证方法、装置及设备
US9841929B1 (en) Distributed system software infrastructure
JP5389738B2 (ja) 識別子管理システム、情報管理サーバ、相互接続先管理サーバ、識別子管理方法、情報管理プログラム、相互接続先管理プログラム
CN116983658A (zh) 模拟器类游戏作弊行为检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
B06G Technical and formal requirements: other requirements [chapter 6.7 patent gazette]

Free format text: ESCLARECA O DEPOSITANTE DIVERGENCIA ENTRE NOME DO INVENTOR WILLIAM B. TU CONSTANTE DA PUBLICACAO INTERNACIONAL E DO FORMULARIO 1.03 - FASE NACIONAL E DO INVENTOR WEIGING TU CONSTANTE DO DOCUMENTO DE CESSAO DE PRIORIDADE ANEXADO AO FORMULARIO 1.03 - ENTRADA NA FASE NACIONAL.

B06H Technical and formal requirements: requirement cancelled [chapter 6.8 patent gazette]

Free format text: ANULADA A EXIGENCIA PUBLICADA NA RPI 2012 DE 28/07/2009, POR TER SIDO INDEVIDA.

B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE AS 4A E 5A ANUIDADES.

B08G Application fees: restoration [chapter 8.7 patent gazette]
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B08F Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette]

Free format text: REFERENTE A 14A ANUIDADE.

B11B Dismissal acc. art. 36, par 1 of ipl - no reply within 90 days to fullfil the necessary requirements