BR112015018368B1 - Método, sistema e meio legível por computador para sincronizar dados - Google Patents

Método, sistema e meio legível por computador para sincronizar dados Download PDF

Info

Publication number
BR112015018368B1
BR112015018368B1 BR112015018368-9A BR112015018368A BR112015018368B1 BR 112015018368 B1 BR112015018368 B1 BR 112015018368B1 BR 112015018368 A BR112015018368 A BR 112015018368A BR 112015018368 B1 BR112015018368 B1 BR 112015018368B1
Authority
BR
Brazil
Prior art keywords
devices
user
data
data objects
group
Prior art date
Application number
BR112015018368-9A
Other languages
English (en)
Other versions
BR112015018368A2 (pt
Inventor
Roque Luis Scheer
Mauricio Nunes Porto
Soma Sundaram Santhiveeran
Original Assignee
Hewlett-Packard Development Company, L.P.
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 Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Publication of BR112015018368A2 publication Critical patent/BR112015018368A2/pt
Publication of BR112015018368B1 publication Critical patent/BR112015018368B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

SINCRONIZAÇÃO DE DADOS. Trata-se de um exemplo para sincronizar dados de acordo com aspectos da presente divulgação que inclui o monitoramento de um conjunto de atributos em uma pluralidade de dispositivos em uma rede, a seleção de um grupo de dados com base no conjunto de atributos monitorado para a sincronização, a atribuição de níveis de prioridade a cada um dos dados selecionados e a cada dispositivo, a priorização das operações de sincronização a ser executadas no grupo de dados selecionados com bases nos níveis de prioridade e a sincronização do grupo de dados selecionados de acordo com a priorização da sincronização.

Description

ANTECEDENTES
[001] Conteúdos tais como arquivos de mídia e documentos podem ser criados ou adquiridos por usuários ao usar múltiplos dispositivos. Oportunamente, um usuário pode desejar sincronizar, transferir, fazer transferência por upload ou então enviar o conteúdo de um dispositivo a outro. O conteúdo pode ser compartilhado entre outros dispositivos de usuários em uma rede a fim de ser prontamente consumido ou editado quando necessário. Por exemplo, um usuário pode optar por adquirir um novo telefone móvel com características mais avançadas (por exemplo, edição de fotos, ajustes de rede avançados, etc.) e desejar transferir as fotos do telefone móvel antigo ao novo. Em outro exemplo, um usuário pode desejar sincronizar os links de vídeo em seu telefone móvel com os links de vídeo em seu computador desktop a fim de, por exemplo, ver os vídeos em uma tela maior.
[002] Os dispositivos e as redes de comunicação facilitam a coleta e a troca de informações. Tais dispositivos podem incluir o computador pessoal incluindo periféricos anexados, dispositivos de carregar/colocar na palma da mão, computador portátil, e/ou similares, para coletar, sincronizar, transferir ou trocar uma variedade de conteúdos, tais como arquivos, remendos, gráficos e/ou similares. Por exemplo, os arquivos podem conter uma grande quantidade de conteúdo tais como vídeos, fotos, música e documentos. Tal conteúdo pode ser criado em ou baixado em um dispositivo e então replicado aos outros dispositivos.
[003] As estruturas de sincronização permitem que vários dispositivos ou aparelhos enviem o conteúdo de um dispositivo ou servidores de sincronização e/ou parceiros externos pela conectividade de rede, tal como através da Internet. A sincronização pode ser realizada através da ativação da sincronização do conteúdo com um pedido do usuário, intervalos periódicos, ou em tempo real. Por exemplo, o evento de sincronização pode corresponder a uma instrução ou um comando expresso emitido pelo usuário para sincronizar a informação relacionada ao conteúdo que está sendo apresentado (por exemplo, "gravar minha última página lida").
BREVE DESCRIÇÃO DOS DESENHOS
[004] Os exemplos são descritos na descrição detalhada a seguir e em referência aos desenhos, nos quais:
[005] a Figura 1 ilustra um sistema exemplificador de acordo com uma implantação;
[006] a Figura 2 ilustra um remetente de objeto de um sistema exemplificador de acordo com uma implantação;
[007] a Figura 3 ilustra um fluxograma do processo exemplificador de acordo com outra implantação; e
[008] a Figura 4 ilustra um fluxograma do processo exemplificador de acordo com uma implantação.
DESCRIÇÃO DETALHADA
[009] Vários aspectos da presente divulgação referem-se de modo geral à sincronização de conteúdos. Mais especificamente, vários aspectos da presente divulgação referem-se de modo geral a uma maneira por meio da qual o conteúdo através de vários dispositivos é sincronizado. Essa abordagem permite a sincronização dos conteúdos por uma estrutura de sincronização de conteúdos, na qual qualquer dispositivo ou aparelho conectado, tal como um computador pessoal (PC), dispositivo portátil, assistente digital pessoal (PDA), tablet, smartphone, instrumento científico, dispositivo de ponto de vendas, ou similares, executam a sincronização contextual em uma ampla variedade de topologias de rede de comunicação incluindo conexões com fio e sem fio.
[010] Os aspectos da presente divulgação descrita neste documento predizem grupos de dados a serem transmitidos de uma máquina a outra. Além disso, outros aspectos da presente divulgação priorizam os dados dentro de cada transmissão com base na atividade do usuário e na informação do sistema em cada dispositivo. Ademais, outros aspectos identificam as ações do usuário que indicam que o usuário requer o acesso imediato aos dados em um determinado dispositivo e, por conseguinte, sincronizam dados novos ou modificados, disponíveis nos outros dispositivos, a esse dispositivo a fim de torná-los disponíveis apenas no momento em que o usuário necessita dos mesmos.
[011] Entre outras coisas, essa abordagem pode apresentar uma maneira eficiente e eficaz para sincronizar dados e impedir a indisponibilidade de dados do usuário no momento de necessidade, além de impedir o esgotamento da bateria e o desperdício de recursos. Essa abordagem também pode eliminar a necessidade de ativação manual pelo usuário, requerendo que o usuário sincronize manualmente enquanto mantém uma boa experiência do usuário.
[012] Em um exemplo de acordo com a presente divulgação, é fornecido um método para sincronizar dados. O método compreende monitorar um conjunto de atributos em uma pluralidade de dispositivos em uma rede, selecionar um grupo de dados com base no conjunto de atributos monitorado para a sincronização, atribuir níveis de prioridade a cada um dos dados selecionados e cada dispositivo, priorizar as operações de sincronização a ser executadas no conjunto de dados selecionados com base nos níveis de prioridade e sincronizar o grupo de dados selecionados de acordo com a priorização da sincronização.
[013] Em outro exemplo de acordo com a presente divulgação, é fornecido um sistema. O sistema compreende um módulo de monitoramento para monitorar um conjunto de atributos em uma pluralidade de dispositivos em uma rede, um módulo de predição para selecionar um grupo de dados com base no conjunto de atributos monitorado para a sincronização e atribuir níveis de prioridade a cada um dos dados selecionados e a cada dispositivo, um gerenciador de dados para priorizar as operações de sincronização a ser executadas no grupo de dados selecionados com base nos níveis de prioridade. O gerenciador de dados também sincroniza o grupo de dados selecionados de acordo com a priorização da sincronização.
[014] Em um exemplo adicional de acordo com a presente divulgação, é fornecido um meio legível por computador não transitório. O meio legível por computador não transitório compreende instruções que, quando executadas, fazem com que um dispositivo (i) monitore um conjunto de atributos em uma pluralidade de dispositivos em uma rede, (ii) selecione um grupo de dados com base no conjunto de atributos monitorado para a sincronização, (iii) prioriza as operações de sincronização a ser executadas no grupo de dados selecionados com base em um nível de prioridade atribuído a cada um dos dados selecionados e a cada dispositivo, e (iv) sincroniza o grupo de dados selecionados de acordo com a priorização da sincronização.
[015] A Figura 1 ilustra um sistema exemplificador 100 de acordo com uma implantação. O sistema 100 pode ser um sistema de sincronização de conteúdos e pode compreender uma pluralidade de dispositivos tais como dispositivos de computação que são conectados através de um sistema de computação em nuvem ou outra configuração de rede. Deve ser prontamente aparente que o sistema 100 representa uma ilustração generalizada e que outros elementos podem ser adicionados ou os elementos existentes podem ser removidos, modificados, ou rearranjados, sem desviar do escopo da presente divulgação. Por exemplo, embora o sistema 100 ilustre que a Figura 1 inclui os dispositivos 110, 120 e 130, o sistema pode realmente compreender um número menor ou maior de dispositivos e três dispositivos foram mostrados e descritos para fins de simplificação.
[016] O sistema 100 pode ser um ambiente de compartilhamento ponto a ponto, em que uma arquitetura pode ser distribuída sem a necessidade de coordenação central, com os dispositivos do usuário sendo ao mesmo tempo fornecedores e consumidores de objetos. Em outra implantação, o sistema 100 pode ser um sistema de compartilhamento baseado em nuvem, que usa recursos de computação (hardware e software) que são entregues como um serviço em uma rede (por exemplo, a Internet).O sistema baseado em nuvem expõe os dados a ser acessados por dispositivos do usuário como um serviço em uma rede e, por conseguinte, os dispositivos do usuário podem ser conectados entre si através da nuvem. A nuvem é indicada na Figura 1 pela nuvem 105. A nuvem 105 pode substituir, suplementar, ou misturar com as características e as capacidades fornecidas pelos aplicativos e software que rodam localmente. Os aplicativos podem incluir, por exemplo, um ou mais dentre serviços de identidade e de diretório, gerenciamento e segurança de dispositivo, serviços sincronizados de armazenamento e de dados através de múltiplos dispositivos ou plataformas e serviços que pertencem a atividades e notícias. A nuvem 105 pode ser fornecida sob uma variedade de modelos de negócios diferentes, incluindo modelos livres, suportados com publicidade e baseados em assinatura.
[017] Alternativa ou adicionalmente, o meio de comunicação entre os dispositivos do usuário pode incluir, mas sem ficar a ela limitado, qualquer combinação de recursos com fio e/ou sem fio. Por exemplo, o meio de comunicação pode incluir recursos fornecidos por qualquer combinação de redes de televisão a cabo, redes de transmissão direta de vídeo, redes via satélite, redes celulares, redes de telefonia com fio e/ou redes de dados, redes de dados sem fio (por exemplo, redes de área local sem fio, redes de área pessoal sem fio, etc.), e assim por diante.
[018] O sistema 100 compreende os dispositivos 110, 120 e 130. O dispositivo 110 compreende um mecanismo de monitoramento (ou módulo de monitoramento) 140, um banco de dados de registro 150, um mecanismo de predição (módulo de predição) 160, um receptor de objetos 170, um banco de dados de objetos 180 e um remetente de objetos 190, cada um dos quais é descrito em mais detalhes abaixo. Em uma implantação, um receptor de objetos e um remetente de objetos podem ser módulos de dados. Em outra implantação, o sistema 100 pode compreender um gerenciador de arquivos e um gerenciador de priorização (não mostrado na Figura 1).
[019] Os dispositivos 110, 120 e 130 podem englobar todos os dispositivos com fio e dispositivos sem fio. Em uma implantação, o dispositivo 110 pode compreender um computador desktop, decodificador, console de jogo, computador laptop, PC de bolso, PDA, smartphone, telefone móvel, tablet, reprodutores de mídia portáteis tais como reprodutores de MP3 (Moving Pictures Expert Group, MPEG-1, camada de áudio 3), leitor de e-books, dispositivo de jogos manual, computador ultramóvel, ou um dispositivo que compreende uma combinação das características fornecidas a partir dos mesmos.
[020] Em uma implantação, um usuário pode ter o dispositivo 110, que pode ser um computador pessoal, o dispositivo 120, que pode ser um computador laptop e o dispositivo 130, que pode ser um dispositivo móvel. Os dispositivos podem ser vistos como dispositivos do tipo par em uma malha na qual os dados podem ser movidos através dos dispositivos (isto é, apanhados). Em outra implantação, todos os dispositivos podem ser arranjados para se conectar entre si através da nuvem 105. Dependendo da implantação, características/ferramentas de segurança podem ser implantadas de várias maneiras tais como por um firewall, senhas unitárias, programas de criptografia, certificados digitais, segurança de aplicativo do usuário, etc. Várias combinações dessas e/ou outras características de segurança podem ser usadas. Em uma implantação, essas abordagens de segurança podem ser colocadas em camadas para fornecer um ambiente altamente seguro em que um dispositivo pode interagir com outro. Por exemplo, as características de segurança podem requerer que um usuário efetue o logon antes de transferir dados de um dispositivo a outro. Em outras implantações, as características de segurança podem requerer que o usuário fornecer credenciais ou identidade do usuário que é certificada pela nuvem 105 para transferir dados pela nuvem 105.
[021] Os dispositivos 110, 120 e 130 podem ter características e capacidades distintas. Por exemplo, o computador desktop e o computador laptop podem utilizar sistemas operacionais diferentes, respectivamente, incluindo o sistema operacional Microsoft Windows e o sistema operacional Mac OS da Apple. Alternativa ou adicionalmente, um dispositivo pode ser configurado com menos recursos, tais como poder de processamento, memória e armazenamento em comparação aos outros dispositivos.
[022] Para finalidades de exemplos ilustrativos, os dispositivos 110, 120 e 130 podem corresponder a, respectivamente, um computador desktop, um laptop e um dispositivo móvel. Cada dispositivo armazena objetos (por exemplo, conteúdos). Tais objetos podem incluir várias formas de conteúdos perceptíveis pelo usuário. Os objetos exemplificadores podem se referir a qualquer objeto que puder ser acessado direta ou indiretamente por um usuário, incluindo, mas sem ficar a eles limitados, dados de multimídia, imagens digitais, vídeo digital (por exemplo, programação e filmes da televisão), texto exibível, dados de áudio, documentos eletrônicos, publicações eletrônicas, código executável por computador, partes dos elementos acima e/ou similares. Ademais, a apresentação do conteúdo pode variar como uma função das capacidades e configuração dos dispositivos 110, 120 e 130 (por exemplo, um leitor portátil de e-books versus um telefone móvel) e o formato do conteúdo (por exemplo, uma publicação digital versus um vídeo).
[023] Em uma implantação, os dispositivos 110, 120 e 130 associados com um usuário ou uma conta do usuário podem ter acesso a representações diferentes do conteúdo fornecido por fornecedores de conteúdos. Por exemplo, o dispositivo 110 pode corresponder a um computador desktop que obtém uma representação digital do conteúdo (por exemplo, uma publicação digital que pode ser apresentada em um computador) através de uma rede de comunicação (por exemplo, uma rede de comunicação sem fio). O dispositivo 120 pode corresponder a um laptop que obtém uma representação separada do mesmo conteúdo (por exemplo, uma cópia da publicação digital que pode ser apresentada em um laptop) através da mesma ou uma rede de comunicação diferente. Além disso, o dispositivo 130 pode corresponder a um dispositivo móvel que também obtém uma representação separada do mesmo conteúdo (por exemplo, uma cópia da publicação digital que pode ser apresentada em um dispositivo móvel) da mesma ou uma rede de comunicação diferente.
[024] Em outra implantação, os dispositivos 110, 120 e 130 podem ter representações diferentes do mesmo conteúdo armazenado em cada dispositivo. Por exemplo, o dispositivo 110 pode corresponder a um computador desktop que tem uma representação digital do conteúdo (por exemplo, uma fotografia digital que pode ser apresentada em um computador). O dispositivo 120 pode corresponder a um laptop que tem uma representação separada do mesmo conteúdo (por exemplo, uma cópia da fotografia digital que pode ser apresentada em um laptop). Além disso, o dispositivo 130 pode corresponder a um dispositivo móvel que também tem uma representação separada do mesmo conteúdo (por exemplo, uma cópia da fotografia que pode ser apresentada em um dispositivo móvel).
[025] Em uma implantação, um usuário do dispositivo 110 pode selecionar manualmente o conteúdo. Essa seleção pode envolver AA busca pelo usuário de listagens do conteúdo armazenado no dispositivo 110. Alternativa ou adicionalmente, um usuário do dispositivo 110 pode pedir para obter conteúdo de outro dispositivo ou de um fornecedor de conteúdos através da nuvem 105. O fornecedor de conteúdos pode incluir quaisquer entidades que podem fornecer conteúdo para consumo pelos dispositivos do usuário. Os exemplos de fornecedores de conteúdos podem incluir (mas sem ficar a eles limitados) estações de transmissão de televisão, servidores, entidades de rede ponto a ponto (por exemplo, outros dispositivos do usuário 120, 130) e/ou similares. Ademais, o conteúdo pode ser uma variedade de conteúdos tais como arquivos, remendos, gráficos e/ou similares. Os arquivos podem incluir vídeos, áudios e/ou texto.
[026] O mecanismo de monitoramento 140 pode compreender a coleta de dados relacionados às operações e ações do sistema, dados que podem ser usados para inferir a atividade do usuário na rede, bem como dados que indicam explicitamente a atividade. Por exemplo, o mecanismo de monitoramento 140 pode monitorar o conteúdo que é emitido por um usuário. Ademais, o mecanismo de monitoramento 140 pode coletar os dados relacionados à apresentação do conteúdo ao usuário através do dispositivo 110 e/ou a seleção do conteúdo pelo usuário, que indica o conteúdo que o usuário pediu para receber e selecionou para saída (por exemplo, visualização e/ou audição). Por exemplo, o usuário pode procurar os arquivos na pasta "Meu Projeto" em seu desktop. O usuário pode então começar um aplicativo de processamento de texto e começar a fazer edições para um arquivo particular na pasta. O mecanismo de monitoramento 140 pode monitorar tal atividade do usuário no dispositivo 110 e, com base em tal atividade, o mecanismo de monitoramento 140 pode gerar os dados da atividade do usuário, que podem então ser armazenados no banco de dados de registro 150 e ser compartilhados com o mecanismo de predição 160.
[027] Além disso, o mecanismo de monitoramento 140 pode monitorar os dados do aplicativo e rastrear os dados que os aplicativos acessam. Os aplicativos podem incluir qualquer um de uma variedade de aplicativos típicos que podem rodar em um dispositivo para realçar a produtividade (por exemplo, processamento de texto, planilhas), comunicações de suporte (por exemplo, e-mail, busca na web e mensagens instantâneas), fornecer entretenimento (por exemplo, jogos, reprodutores de multimídia) e/ou similares.
[028] Em outra implantação, o mecanismo de monitoramento 140 pode monitorar a informação do sistema relacionada ao dispositivo 110. Tal informação do sistema pode incluir vários atributos do dispositivo 110, inclusive. Os atributos podem ser estáticos ou dinâmicos. Por exemplo, os atributos dinâmicos podem incluir, mas sem ficar a eles limitados, informação da potência da bateria, taxas de consumo da potência da bateria, espaço de memória/armazenamento, intensidade de sinais sem fio, detalhes da rede, informação sobre a saúde do dispositivo em geral, valores da temperatura do dispositivo ou ambiente e/ou similares. A informação também pode incluir a informação relacionada ao status de vários dispositivos de entrada ou saída ou a informação a respeito de uma mudança no status de dispositivos de entrada ou saída. Por exemplo, a informação do dispositivo pode incluir dados indicativos da conexão do dispositivo 110 a outro dispositivo (por exemplo, através de uma conexão sem fio Bluetooth ou uma conexão com fio). Similarmente, a informação do dispositivo pode incluir uma identificação de qualquer aplicativo de software que tenha funcionalidade para apresentar o conteúdo a um usuário. Em uma implantação ilustrativa, a informação do dispositivo pode ser gerada por componentes de hardware (por exemplo, sensores) ou componentes de software no dispositivo 110. Além disso, a informação do dispositivo pode ser obtida pelo dispositivo 110 a partir de recursos externos, tais como componentes de hardware anexados, componentes/serviços de monitoramento remoto ou fontes de dados de rede.
[029] Em uma implantação, a informação do dispositivo pode corresponder à informação (tal como a informação da latitude e da longitude ou outra informação de coordenadas geográficas) de um sistema de posicionamento global ("GPS") ou sistema de posicionamento celular (por exemplo, triangulação). Em uma implantação, um sinal recebido de GPS de uma antena de GPS pode ser processado por uma parte de recepção de GPS e pode ser inserido no mecanismo de monitoramento 140. A informação da posição do dispositivo 110 pode ser interpretada e traduzida em dados do comportamento do usuário que podem ser usados para predizer um conjunto de conteúdos que o usuário pode precisar acessar nessa localização. Por exemplo, o sistema pode detectar que o usuário está em uma biblioteca e que o comportamento do usuário anterior mostra que o usuário acessa os arquivos de imagem na pasta "Minhas Fotos" no laptop do usuário quando o usuário está na biblioteca. Por conseguinte, o mecanismo de monitoramento 140 pode coletar a informação sobre a localização do usuário além do comportamento anterior e presente do usuário associado com a localização e entregar a mesma ao mecanismo de predição 160. Após ter analisado a informação, o mecanismo de predição 160 pode predizer os objetos que o usuário pode escolher para acessar no laptop do usuário na biblioteca que, por exemplo, podem ser arquivos de imagem na pasta "Minhas Fotos" no laptop do usuário.
[030] Em outra implantação, os tipos de dados que estão sendo monitorados podem variar com base no tipo de dispositivo. Um dispositivo pode identificar tipos específicos de dados que devem ser monitorados para determinar eventos de sincronização ou estabelecer limites para estabelecer eventos de sincronização, ou ambos. Esses tipos de dados podem ser classificados como eventos de restrições. Por exemplo, com base nesses tipos de dados, o mecanismo de monitoramento pode detectar os padrões que indicam o uso pesado de recursos locais (por exemplo, bateria baixa, pequena largura de faixa da rede, tráfego de rede elevado). Por conseguinte, o sistema pode comutar para um modo de economia de recursos e manter, reduzir ou bloquear a transmissão de dados e a sincronização de dados para limitar os recursos que estão sendo utilizados. Por exemplo, alguns dispositivos, tais como dispositivos portáteis, também podem limitar o número dos eventos de sincronização que ocorrem para preservar a vida da bateria do dispositivo. Em outro exemplo, o sistema 100 pode especificar um evento de sincronização para um dispositivo portátil de acordo com o nível de potência mínimo (por exemplo, transferir a informação de sincronização antes que o dispositivo seja desligado, perca capacidades de comunicação, entre outras possibilidades). Em ainda outro exemplo, o sistema 100 pode especificar um evento de sincronização para um dispositivo portátil com base em critérios de intensidade de sinal de comunicação (intensidade de sinal de comunicação sustentada mínima).
[031] O banco de dados de registro 150 pode receber os dados coletados provenientes do mecanismo de monitoramento 140, o que pode indicar implicitamente qual o objeto na rede do usuário que pode ser atualmente usado ou acessado pelo usuário. Além disso, o banco de dados de registro 150 pode desenvolver um histórico do usuário, por exemplo, indicando que um usuário do dispositivo 110 assistiu a dois episódios de uma série de televisão duas semanas em uma fila ao usar o dispositivo 110. Esses dados podem ser armazenados no banco de dados de registro 150 junto com os dados relacionados às atividades atuais e anteriores do usuário e do dispositivo 110. No banco de dados de registro 150, os dados podem ser controlados até um nível de qualidade (medido em termos de exatidão, disponibilidade, usabilidade e resiliência). Alternativa ou adicionalmente, os dados estatísticos históricos podem ser armazenados em um banco de dados de registro central 115 na nuvem 105, que pode ser conectada ao dispositivo 110 através do mecanismo de predição 160. Em uma implantação, o banco de dados de registro central pode armazenar os registros de múltiplos dispositivos (por exemplo, o dispositivo 120 e/ou 130) no sistema 100. Em algumas implantações, o banco de dados de registro central e o banco de dados de registro 150 podem ser integrados em um único banco de dados, que pode ser combinado com o dispositivo 110.
[032] Em uma implantação, o mecanismo de monitoramento 140 e o banco de dados de registro 150 podem interoperar com o mecanismo de predição 160 ao monitorar a atividade do usuário e a informação do sistema no dispositivo 110, bem como rastrear a atividade do usuário e a informação do sistema na forma de estatística histórica que é armazenada no banco de dados de registro 150. Em outro sistema exemplificador, o mecanismo de monitoramento 140 e o mecanismo de predição 160 podem se conectar diretamente um ao ouro. Alternativamente ou adicionalmente, o mecanismo de predição pode ser conectado a um mecanismo de predição central 125.
[033] O mecanismo de predição 160 pode antecipar as sincronizações desejadas de determinados objetos (por exemplo, conteúdos) entre o dispositivo 110 e outros dispositivos (por exemplo, os dispositivos 120 e 130) associados com o usuário do dispositivo 110. Em uma implantação, o mecanismo de predição 160 pode gerar seleções preditivas do conteúdo que devem ser desejáveis ao usuário em vários dispositivos. A geração das seleções preditivas pode envolver a execução das inferências com base em vários fatores, tais como o conteúdo prévio que foi fornecido aos dispositivos e/ou a informação fornecida na informação de status do sistema 100. Ademais, a execução de tais inferências pode envolver o emprego de uma ou mais heurísticas, o que pode ser ponderado de várias maneiras e/ou algoritmos de garimpo de dados, que podem ser um conjunto de heurísticas e cálculos que podem criar um modelo de garimpo de dados a partir dos dados recebidos do banco de dados de registro 150. Para criar um modelo, o algoritmo pode primeiramente analisar os dados fornecidos pelo banco de dados de registro 150 e determinar tipos específicos de padrões ou tendências. O algoritmo pode usar os resultados dessa análise para definir os parâmetros ideais para criar o modelo de garimpo. Esses parâmetros podem então ser aplicados através de todo o conjunto de dados para extrair padrões acionáveis e estatísticas detalhadas. Além disso, o mecanismo de predição 160 pode atribuir níveis de prioridade aos objetos (por exemplo, conteúdos) que são selecionados de maneira preditiva. Em algumas implantações, o mecanismo de predição 160 pode atribuir níveis de prioridade baseado dinamicamente nos atributos.
[034] Em outra implantação, a geração de seleções preditivas de conteúdo pode ser executada no mecanismo de predição central 125 como uma alternativa ou adição ao mecanismo de predição 160 no dispositivo 110. O mecanismo de predição central 125 pode receber os dados relacionados ao comportamento do usuário através de todos os dispositivos (por exemplo, dispositivos 110, 120 e 130) e do sistema 100 do banco de dados de registro 150 e do banco de dados de registro central 115, e gerar seleções preditivas de conteúdo. Tais seleções preditivas de conteúdo podem ser comunicadas ao mecanismo de predição 160 ou outros mecanismos de predição locais associados.
[035] Em uma implantação, a informação da sincronização pode ser propagada do mecanismo de predição 160 aos outros dispositivos, por exemplo, os dispositivos 120 e 130, através de uma fonte central, por exemplo, a nuvem 105. Em outras implantações, a informação de sincronização pode ser propagada do dispositivo 110 diretamente ao dispositivo 120 e/ou ao dispositivo 130 sem a necessidade de uma fonte central.
[036] Alternativa ou adicionalmente à sincronização de conteúdo, o sistema 100 pode propagar o conteúdo ao distribuir dados de um a outro dispositivo. Em uma implantação, tal distribuição pode ser controlada de acordo com regras de propagação.
[037] Em uma implantação, a predição pode ser baseada em hábitos de saída (por exemplo, hábitos de visualização e/ou audição) em um dispositivo específico. Por exemplo, a emissão aumentada do conteúdo em uma categoria ou um tipo particular em um dispositivo particular pode resultar na seleção de mais conteúdo de categoria ou tipo similar para sincronizar com esse dispositivo. Por exemplo, se o usuário do dispositivo 120 assistir três ou mais episódios de shows do mesmo gênero (por exemplo, comédias situacionais) no dispositivo 120, os episódios recentemente gravados nesse gênero podem ser selecionados e sincronizados ao dispositivo 120.
[038] Em outra implantação, a predição pode envolver a emissão de hábitos (por exemplo, visualização e/ou audição) através dos dispositivos. Por exemplo, a observação do conteúdo particular por um usuário do dispositivo 110 pode resultar na seleção do mesmo conteúdo para sincronizar com o dispositivo 120 com base na predição que o usuário, que começou a ver o conteúdo no dispositivo 110, pode optar por continuar vendo esse conteúdo particular no dispositivo 120. Por exemplo, se um usuário do dispositivo 110 (por exemplo, computador desktop) começar a assistir um filme no dispositivo 110, mas pausa no meio do caminho, o mecanismo de predição 160 pode concluir que o usuário pode continuar assistindo o filme no dispositivo 120 (por exemplo, laptop). Por conseguinte, esse arquivo do filme pode ser selecionado para ser sincronizado ao dispositivo 120.
[039] Como outro exemplo, como discutido acima, um usuário do dispositivo 110 pode ouvir dois podcasts de uma série de podcast por duas semanas em uma fila ao usar o dispositivo 110. Com base em tal comportamento do usuário, o mecanismo de predição 160 (baseado no histórico do usuário) pode selecionar o terceiro podcast da mesma série para ser sincronizado ao dispositivo 110 na terceira semana. Como um exemplo adicional, um usuário pode procurar um conjunto de arquivos de palavras em uma pasta "Meu Projeto" no dispositivo 110. O usuário pode então começar um aplicativo de processamento de texto e começar a fazer edições em um arquivo particular na pasta. Ao receber esses dados da atividade do usuário provenientes dos dados de registro 150, o mecanismo de predição 160 pode inferir que outros arquivos na pasta também podem ser acessados e/ou editados pelo usuário. Por conseguinte, os arquivos na pasta podem ser selecionados para ser sincronizados.
[040] Em outras implantações, a predição pode explicitar as avaliações do usuário do conteúdo (que pode ser inserido e recebido do usuário dos dispositivos 110, 120 e 130). Por exemplo, as avaliações de conteúdo elevadas do usuário em um dispositivo específico podem causar a seleção de conteúdo similar para a sincronização com esse dispositivo específico. Por exemplo, se um usuário estipular uma avaliação alta a dois livros na pasta "Livros" no dispositivo 110, outros livros podem ser selecionados para ser sincronizados.
[041] Ainda em outras implantações, a predição pode ser baseada em atividades de sincronização prévias. Por exemplo, o conteúdo previamente sincronizado dentro de uma categoria e/ou intervalo de tempo particular com um dispositivo específico pode causar a seleção do conteúdo similar para a sincronização com esse dispositivo específico. Como um exemplo, se o usuário do dispositivo 120 sincronizar explicitamente fotos três vezes da mesma pasta dentro de dois dias da transferência por upload das fotos no dispositivo 110, as transferências por upload subsequentes das fotos nessa mesma pasta no dispositivo 110 podem ser selecionadas para serem sincronizadas.
[042] Em algumas implantações, a predição pode envolver o comportamento de busca de um usuário. Por exemplo, a busca por um arquivo em um dispositivo específico pode resultar na seleção do conteúdo dos resultados da busca para a sincronização a outro dispositivo. Se um usuário do dispositivo 110 buscar por uma foto de casamento na pasta "Minhas Fotos" no dispositivo 110, o dispositivo 110 pode exibir uma lista de arquivos que são identificados como fotos de casamento da pasta "Minhas Fotos". O usuário pode ou não abrir esses arquivos para ver as fotos no dispositivo 110. De qualquer maneira, as fotos de casamento identificadas como resultados da busca no dispositivo 110 podem ser selecionadas para ser sincronizadas ao dispositivo 120 com base na predição que o usuário pode querer ver as imagens no dispositivo 120.
[043] Em outra implantação, uma lista de resultados da busca pode ser influenciada pelos dados relacionados ao comportamento de um usuário em um dispositivo. Por exemplo, o comportamento de um usuário pode mostrar que o usuário ouve normalmente arquivos de áudio no dispositivo 110. Por conseguinte, o mecanismo de predição 160 pode atribuir uma prioridade maior aos arquivos de áudio no dispositivo 110 com base na predição que o usuário pode acessar esses arquivos. Se o usuário fizer uma busca quanto à palavra chave de busca "aniversário" no dispositivo 120, os resultados da busca podem listar os arquivos de áudio identificados sob a palavra chave "aniversário" acima das imagens ou documentos de texto identificados sob a palavra chave "aniversário" com base na prioridade maior dada aos arquivos de áudio no dispositivo 110. O mecanismo de predição 160 seleciona os arquivos de áudio identificados sob a palavra chave "aniversário" a ser sincronizados ao dispositivo 110.
[044] Os critérios de predição acima mencionados são fornecidos como exemplos e não limitações. Por conseguinte, qualquer número de critérios, algoritmos ou qualquer outro método sozinho ou em qualquer combinação ou ponderação pode ser empregado. Como discutido acima, as seleções preditivas do conteúdo podem ser geradas pelo mecanismo de predição 160 e/ou pelo mecanismo de predição central 125.
[045] Em outras implantações, um evento de sincronização também pode ser determinado com base em uma ou mais entradas associadas com o dispositivo (por exemplo, os níveis de potência, a intensidade da rede de comunicação sem fio, sensores de movimento, temporizadores, ativação de fones de ouvido/alto-falantes, etc.). Por exemplo, a ativação de um fone de ouvido em um dispositivo específico pode resultar na seleção do conteúdo de áudio para a sincronização. Por exemplo, se o usuário do dispositivo 110 ativar um fone de ouvido no dispositivo 110, os arquivos de áudio em uma pasta "Minha Música" podem ser selecionadas para ser sincronizados. Como outro exemplo, um usuário pode executar uma atividade que pode ser computacionalmente cara e realizar muitas operações de acesso a disco ou sistema de arquivos. Por exemplo, o usuário pode editar vídeos ou recalcular uma planilha grande ao usar um ou mais aplicativos. O mecanismo de predição 160 pode então reduzir a prioridade desses objetos de modo que as operações de sincronização não apliquem pressões adicionais sobre os recursos de sistema que já podem estar sendo consumidos em um nível elevado.
[046] Além disso, em uma implantação, com a recepção da informação de sincronização de entrada, o mecanismo de predição 160 no dispositivo 110 pode incorporar a informação de sincronização adicional coletada nesse dispositivo específico, filtrar a informação inconsistente e/ou executar outra resolução de conflito.
[047] O receptor de objetos 170 pode ser um componente para obter os objetos com base na informação de sincronização dos vários dispositivos na rede do usuário, tais como os dispositivos 120 e 130. Em outra implantação, o receptor de objetos 170 pode obter objetos de vários fornecedores de conteúdos através de um meio de comunicação.
[048] O banco de dados de objetos 180 pode receber e armazenar objetos (por exemplo, conteúdo) do receptor de objetos 170. Por exemplo, uma operação de sincronização pode ocorrer entre os dispositivos 110, 120 e 130 quando os dispositivos 110, 120 e 130 estão disponíveis entre si. Isso pode incluir o conteúdo armazenado pelo dispositivo 110 sendo copiado em um meio de armazenamento dentro do dispositivo 120 e/ou do dispositivo 130. Além disso, também incluir o conteúdo armazenado pelo dispositivo 120 sendo copiado em um meio de armazenamento dentro do dispositivo 110 (por exemplo, o banco de dados de objetos 180) e/ou do dispositivo 130. Por último, também pode incluir o conteúdo armazenado pelo dispositivo 130 sendo copiado em um meio de armazenamento dentro do dispositivo 110 (por exemplo, o banco de dados de objetos 180) e/ou do dispositivo 120.
[049] Em uma implantação, além dos objetos discutidos acima, informação contextual ou atributos dinâmicos, tais como a localização do dispositivo, o tipo de dispositivo e quaisquer valores de atributos arbitrários com o ponto de referência central também podem ser armazenados no banco de dados de objetos 180. Outros atributos dinâmicos podem incluir o sistema operacional do cliente, a localização do cliente, o tipo de dispositivo do cliente, a cidade, a abreviatura do estado, o código postal, o código da língua, o código do país, o código da área, o número de telefone, o código de acesso do país do telefone, ou similares.
[050] Em uma implantação, o banco de dados de objetos 180 pode excluir objetos. Tais exclusões podem ser executadas com a ocorrência de uma ou mais condições. As condições exemplificadoras incluem o conteúdo que é armazenado no banco de dados de objetos 180 por mais tempo que um limite de tempo predeterminado (por exemplo, e-mails em uma lixeira), um usuário que seleciona manualmente o conteúdo a ser excluído, o conteúdo que já foi emitido (por exemplo, visualizado) por um usuário e/ou a recepção de uma instrução de outro dispositivo para excluir o conteúdo. Os exemplos não são limitados a estes exemplos.
[051] O remetente de objetos 190 associado com o dispositivo 110 pode transmitir objetos a um ou mais dispositivos (por exemplo, os dispositivos 120 e 130) conhecido pelo dispositivo 110 e elegível para receber a informação de sincronização. Por exemplo, os dispositivos de pares associados com o mesmo usuário ou cliente do usuário podem ser considerados elegíveis para receber o conteúdo. Em uma implantação, o remetente de objetos 190 pode navegar a transmissão dos objetos. Em uma implantação, o remetente de objetos 190 pode transmitir os objetos diretamente aos dispositivos de recepção, tal como o dispositivo 120 ou 130. Em outra implantação, o remetente de objetos 190 pode transmitir os objetos aos dispositivos de recepção através da nuvem 105.
[052] As transmissões de objetos podem ser enfileiradas com base no dispositivo ao qual os objetos são entregues. Cada fila pode ser associada com um dispositivo e representar um ou mais objetos a ser entregues ao dispositivo associado. Tal fila pode ser chamada de fila de par. Em uma implantação, uma fila pode ser requerida para processamento com base na prioridade da sincronização atribuída ao dispositivo associado. Os números de dispositivos podem ser representados, por exemplo, por um valor numérico, tal como 1, 2... N. As prioridades de sincronização também podem ser representadas por um valor numérico, em que os valores mais elevados indicam uma prioridade maior para processar e reduzir os valores que indicam uma prioridade menor. Por exemplo, um computador desktop pode ter uma prioridade maior do que um dispositivo móvel com base, por exemplo, na velocidade de processamento do dispositivo. Desse modo, os objetos a ser entregues a um dispositivo com prioridade maior podem ser processados antes dos objetos que devem ser entregues a um dispositivo com prioridade menor. Além disso, como mencionado acima, cada fila contém um ou mais objetos. Os objetos dentro de cada fila podem ser classificados com base nas prioridades de sincronização que são associadas com os objetos. Por exemplo, um arquivo de imagem pode ter uma prioridade maior do que um arquivo de vídeo pelas razões que são discutidas em detalhes acima com respeito ao mecanismo de predição 160.
[053] Em algumas implantações, um gerenciador de priorização pode atribuir as prioridades de sincronização (por exemplo, níveis de prioridade) a cada objeto e a cada dispositivo. Além disso, o gerenciador de priorização pode modificar o nível da prioridade de cada objeto e de cada dispositivo com base na informação monitorada proveniente do mecanismo de monitoramento 140.
[054] Em uma implantação, o sistema 100 pode incluir um componente de interface de origem de dados externo para obter a informação externa dos recursos baseados em rede, tal como a informação que corresponde a um usuário associado com o dispositivo 110 ou dispositivos de recepção selecionados, tais como os dispositivos 120 e 130. Alternativa ou adicionalmente, como discutido acima mais detalhadamente, o dispositivo 110 pode incluir um componente de processamento de dados para processar a informação de sincronização obtida de outros dispositivos. O componente de processamento de dados também pode determinar um ou mais dispositivos que podem receber dispositivos para a informação de sincronização específica e, como apropriado, determinar subconjuntos específicos de informação de sincronização que cada dispositivo de recepção pode receber. Os objetos armazenados pelo banco de dados de objetos 180 podem ser utilizados pelo componente de processamento de dados.
[055] O sistema 100 e o dispositivo 110 podem incluir um número de componentes, sistemas e/ou subsistemas adicionais para facilitar as comunicações com os outros dispositivos com fio ou sem fio e/ou a nuvem 105. Os componentes adicionais podem incluir um ou mais centrais telefônicas móveis para estabelecer comunicações com os dispositivos sem fio através da rede de comunicação sem fio, tal como uma rede de acesso de rádio celular, uma rede sem fio baseada na família de normas técnicas IEEE 802.11 ("WiFi"), uma rede sem fio baseada nas normas IEEE 802.16 ("WiMax") e outras redes sem fio. A central telefônica móvel pode incluir interfaces para estabelecer várias comunicações através de uma rede de comunicação, tal como a Internet, intranets, redes privadas e redes ponto a ponto, indicadas de modo geral como a "rede".
[056] O dispositivo 110 pode ser implantado ao usar qualquer combinação apropriada de hardware e/ou software. Por exemplo, em uma implantação, o dispositivo 110 pode compreender pelo menos um dispositivo de processamento e uma memória. O dispositivo de processamento pode corresponder a um dispositivo que em geral recupera e executa as instruções armazenadas na memória (por exemplo, uma unidade central de processamento (CPU), processador, microcontrolador ou similares). A memória pode corresponder a qualquer dispositivo de armazenamento típico que armazena instruções implantadas por computador. O dispositivo 110 pode executar funções ao usar a (s) unidade (s) de processamento para executar as instruções fornecidas pela memória do sistema. Ademais, a memória pode armazenar a informação que fornece um componente do sistema operacional, vários módulos de programa, dados de programa e/ou outros componentes. Em outra implantação, o dispositivo 110 pode incluir meios de armazenamento ou artigos legíveis por máquina, que podem incluir, por exemplo, qualquer tipo apropriado de unidade de memória, dispositivo de memória, artigo de memória, meio de memória, dispositivo de armazenamento, artigo de armazenamento, meio de armazenamento e/ou unidade de armazenamento, por exemplo, memória, meios removíveis ou irremovíveis, meios excluíveis ou não excluíveis, meios graváreis ou regraváveis, meios digitais ou analógicos, disco rígido, disco flexível, Memória Só de Leitura de Disco Compacto (CD-ROM), Disco Compacto Gravável (CD-R), Disco Compacto Regravável (CD-RW), disco óptico, meios magnéticos, meios magneto-ópticos, cartões de memória removíveis ou discos, vários tipos de Disco Versátil Digital (DVD), uma fita, um cassete, ou similares. O meio de armazenamento pode armazenar uma instrução ou um conjunto de instruções que, se forem executadas por uma máquina, podem fazer com que a máquina execute um método e/ou operações de acordo com as implantações. As instruções podem incluir qualquer tipo apropriado de código, tal como código de fonte, código compilado, código interpretado, código executável, código estático, código dinâmico, código cifrado e similares, implantadas ao usar uma linguagem de programação de alto nível, de baixo nível, orientada para objetos, visual, compilada e/ou interpretada. O dispositivo 110 também pode incluir um ou mais dispositivos de entrada (teclado, mouse, teclas de seleção especializadas, etc.) e um ou mais dispositivos de saída (monitores, impressoras, mecanismos de saída de áudio, etc.).
[057] A Figura 2 ilustra componentes exemplificadores do sistema 100 de acordo com uma implantação. O remetente de objetos 190 compreende a fila par-1 210, a fila par-2 220 e a fila par-N 230, cada uma das quais é descrita em mais detalhes abaixo. Cada fila de par é alimentada em um dispositivo associado e representa um grupo de objetos a ser transmitidos ao dispositivo associado. or exemplo, o par-1 240 pode ser um computador desktop, e a fila par-1 210 pode ser um grupo de objetos que são alinhados até serem transmitidos ao computador desktop. Tais objetos podem incluir conteúdos tal como arquivos, remendos, gráficos e/ou similares. Os arquivos podem incluir vídeos, áudios e/ou texto. Como descrito acima em mais detalhes com respeito à Figura 1, as transmissões de objetos podem ser enfileiradas com base no dispositivo ao qual os objetos são entregues e uma fila de par pode ser requerida para processamento com base na prioridade de sincronização atribuída ao dispositivo associado. Alternativa ou adicionalmente, como descrito também acima em mais detalhes com respeito à Figura 1, os objetos são alinhados com base nas prioridades de sincronização que são associadas com os objetos.
[058] Em uma implantação, a atribuição da prioridade de sincronização pode ser baseada no comportamento de consumo de conteúdo, no aplicativo ativo usado no dispositivo para identificar tipos de arquivo, na informação relacionada ao conteúdo mais recentemente revisto em outro dispositivo, no tempo da prioridade para o conteúdo da sincronização.
[059] Por exemplo, par-1 240 pode ser um computador desktop e par-2 250 pode ser um laptop e par-N 230 pode ser um dispositivo móvel. Par-1 240 pode ter uma prioridade maior do que par-2 250 e par-N 230 com base na velocidade de seu processador. O computador desktop com o processador mais rápido pode ter uma prioridade maior porque par-1 240 pode ter recursos suficientes para sincronizar grandes conjuntos de objetos, que podem ser mais desejáveis a um usuário. Por conseguinte, a fila par-1 210 pode ser processada antes da fila par-2 220 e da fila par-N 230.
[060] Os números de dispositivo podem ser representados, por exemplo, por um valor numérico, tal como 1, 2... N. As prioridades de sincronização (não mostradas na Figura 2) também podem ser representados por um valor numérico em que os valores mais elevados indicam uma prioridade maior para processar e reduzir os valores que indicam uma prioridade menor.
[061] Deve ser prontamente aparente que o remetente de objetos 190 ilustrado na Figura 2 representa uma ilustração generalizada e que outros componentes podem ser adicionados ou os componentes existentes podem ser removidos, modificados ou rearranjados sem desviar de um escopo da presente divulgação. Embora a Figura 2 ilustre que o remetente de objetos 190 inclui três filas, a fila par-1 210, a fila par-2 220 e a fila par-N 230, o sistema pode compreender realmente um número maior ou menor de filas. Três filas foram mostradas e descritas como uma implantação exemplificadora. Além disso, embora a Figura 2 ilustre que o remetente de objetos 190 inclui três dispositivos, a fila par-1 210, a fila par-2 220 e a fila par-N 230, o sistema pode realmente compreender um número maior ou menor de dispositivos par-1 240, par-2 250 e par-N 260. O número N na Figura 2 ilustra que pode haver uma série de filas e dispositivos em um remetente de objetos de acordo com uma implantação.
[062] Voltando agora à operação do sistema 100, a Figura 3 ilustra um fluxograma 300 do processo exemplificador de acordo com uma implantação. Mais especificamente, o processo ilustrativo apresenta um modelo de "impulsão" para gerar a seleção preditiva dos objetos e transmitir os objetos com base em prioridades de sincronização. Deve ser prontamente aparente que os processos ilustrados na Figura 3 representam ilustrações generalizadas e que outros processos podem ser adicionados ou os processos existentes podem ser removidos, modificados ou rearranjados sem desviar do escopo e caráter da presente divulgação. Ademais, deve-se compreender que os processos podem representar as instruções executáveis armazenadas na memória que podem fazer com que um dispositivo de processamento responda, execute ações, mude estados e/ou tome decisões. Desse modo, os processos descritos podem ser implantados como instruções e/ou as operações executáveis fornecidas por uma memória associada com um dispositivo de computação, tal como o dispositivo 110 como ilustrado nas Figuras 1 e 2. Além disso, a Figura 3 não se presta a limitar a implantação das implantações descritas, mas, ao invés disto, a figura ilustra as informações funcionais que o elemento versado na técnica pode usar para projetar/fabricar circuitos, gerar software, ou usar uma combinação de hardware e software para executar os processos ilustrados.
[063] O processo 300 pode começar no bloco 305, onde o mecanismo de monitoramento 140 monitora a atividade do usuário e a informação do dispositivo no dispositivo 110. Esse processo pode incluir a coleta dos dados relacionados ao conteúdo solicitado, ao conteúdo recebido, ao conteúdo emitido, ao aplicativo utilizado, à capacidade de armazenamento disponível, à disponibilidade da rede, à velocidade da rede, ao custo da rede, à capacidade da bateria, ao estado de carga, à localização do dispositivo, etc. Em uma implantação, o processo de monitoramento pode envolver coletar os dados relacionados a todas as atividades do usuário e informações do dispositivo. Em outra implantação, o processo de monitoramento pode ser executado com base em um protocolo predeterminado, tais como condições ou categorias pré-identificadas de dados. Por exemplo, o mecanismo de monitoramento 140 pode ser configurado para coletar os dados relacionados às atividades que o usuário executa para a duração de mais de um minuto e todas as atividades que o usuário gasta menos de um minuto podem ser descartadas. Além disso, o mecanismo de monitoramento 140 pode executar ações de filtragem para identificar um subconjunto de dados coletados e para fornecer somente o subconjunto que o usuário pode necessitar.
[064] No bloco 310, os dados coletados relacionados às atividades do usuário e às informações do dispositivo podem ser fornecidos ao banco de dados de registro 150 para ser gravados. O banco de dados de registro 150 pode armazenar os registros e, dependendo da implantação, pode organizar os dados e gerar correlações entre vários tipos de dados. Em uma implantação, a estrutura do banco de dados relacional pode ser usada para a organização dos dados. Isto é, os dados são coletados em tabelas, e as partes relacionadas de dados podem ser agrupadas umas às outras em uma única estrutura ou registro, e as relações podem ser definidas entre essas estruturas e registros. Tais estruturas e registros podem se tornar disponíveis ao mecanismo de predição 160, o qual extrai os dados armazenados do banco de dados de registro 150 e examina os dados para uma análise adicional. Como discutido acima com respeito à Figura 1, em uma implantação os dados do banco de dados de registro podem ser transmitidos ao banco de dados central de registro central 115. O banco de dados de registro central 115 consolida e armazena todos os dados recebidos dos dispositivos na rede (por exemplo, os dispositivos 110, 120 e 130).
[065] No bloco 315, o mecanismo de predição 160 pode determinar se há dados adicionais que podem ser considerados a partir do banco de dados de registro central. Se os dados adicionais forem identificados, no bloco 320, tais dados podem ser adquiridos. No bloco 325, o mecanismo de predição antecipa e seleciona de maneira preditiva os objetos (por exemplo, conteúdos) que o mecanismo de predição 160 determina como desejáveis ao usuário. O processo de seleções preditivas pode envolver a extração de dados do banco de dados de registro 150 e a execução da análise dos dados para interpretar os dados. Como descrito acima com respeito à Figura 1, o mecanismo de predição pode criar uma regra de predição que prediz a demanda futura para os objetos com base em vários fatores, tais como os padrões de consumo de dados de histórico do usuário.
[066] No bloco 330, os objetos selecionados de maneira preditiva são obtidos do banco de dados de objetos 180. No bloco 335, o remetente de objetos 190 gera filas ao agrupar os objetos selecionados nas filas com base nos dispositivos aos quais os objetos são transmitidos. Por exemplo, se um objeto a tiver que ser transmitido a par-1 240 (como ilustrado na Figura 2), o objeto a pode ser agrupado na fila par-1 210. Similarmente, se um objeto b tiver que ser transmitido a par-2 250 (como ilustrado na Figura 2), o objeto b pode ser agrupado na fila par-2 220. Em uma implantação, pode haver múltiplos objetos que devem ser transmitidos ao mesmo dispositivo. Por exemplo, além do objeto a, os objetos c e d também podem ser configurados para ser transmitidos a par-1 240. Por conseguinte, os objetos c e d podem ser agrupados na fila par-1 210 junto com o objeto a. Nessa situação, no bloco 340, o processo de agrupamento também pode compreender a classificação dos objetos a, b e c com base em suas prioridades de sincronização. Por exemplo, o objeto a pode ter uma prioridade maior do que os objetos b e c., por conseguinte, o objeto a pode ser configurado para ser sincronizado primeiramente e transmitido a par-1 antes dos objetos b e c.
[067] No bloco 345, o processo de transmissão de objetos pode começar pelo processamento da fila com a maior prioridade de sincronização. Por exemplo, a fila par-1 210 pode ter uma prioridade maior do que a fila par-2 220 e/ou a fila par-N 230. Por conseguinte, o remetente de objetos 190 inicia o processo de transmissão de objetos ao processar a fila par-1 210 primeiramente. Como discutido em mais detalhes acima com respeito à Figura 2, a prioridade de sincronização de cada fila pode ser baseada na prioridade de sincronização atribuída ao dispositivo associado com a fila. Por exemplo, a prioridade de sincronização da fila par-1 210 pode ser determinada com base na prioridade de sincronização de par-1 240.
[068] Em uma implantação, a prioridade de sincronização da fila de pares pode ser ajustada com base em determinados dados monitorados pelo mecanismo de monitoramento 140. Como discutido em detalhes acima com respeito à Figura 1, o mecanismo de monitoramento 140 pode monitorar vários atributos do dispositivo 110, incluindo a informação da potência da bateria, as taxas de consumo de potência da bateria, o espaço de memória/armazenamento, a intensidade do sinal sem fio, detalhes da rede e/ou similares. Com base nos dados relacionados a tais atributos, o mecanismo de predição 160 pode concluir que os recursos do dispositivo 110 estão sendo utilizados pesadamente. Por exemplo, o mecanismo de monitoramento 140 pode detectar que a bateria do dispositivo 110 está baixa, a largura de faixa da rede é limitada e o tráfego da rede é sujeito a faturamento (por exemplo, 3G ou roaming). Por conseguinte, o mecanismo de predição 160 pode emitir comandos para reter, reduzir ou bloquear a transmissão dos objetos para limitar o uso dos recursos. Em uma implantação, o mecanismo de predição 160 pode reduzir a prioridade de sincronização das filas de pares e/ou dos objetos dentro de tais filas, o que pode requerer, por exemplo, maior potência da bateria, largura de faixa da rede e/ou espaço de armazenamento. Em outra implantação, o sistema pode ter o gerenciador de sincronização bloqueando as operações de sincronização de acordo com comandos do módulo de predição 160 para bloquear a sincronização com base na informação da potência da bateria, nas taxas de consumo de potência da bateria, no espaço de armazenamento, na intensidade do sinal sem fio e nos detalhes da rede.
[069] Em outra implantação, após ter determinado que a fila par-1 210 tem a maior prioridade de sincronização com base no par-1 240 associado com essa fila, o dispositivo 110 pode determinar se o par-1 240 está disponível para o dispositivo 110. Em casso positivo, a fila pode ser processada e o objeto é sincronizado (por exemplo, copiado) para o par-1 240. No entanto, se o dispositivo não estiver disponível, então o dispositivo 110 pode alertar o usuário a tornar o dispositivo disponível. Esse alerta pode ser executado através de uma interface do usuário (por exemplo, um monitor) do dispositivo e/ou de um dispositivo de saída conectado ao dispositivo. Uma vez que o par-1 240 está disponível, a fila pode ser processada.
[070] A Figura 4 ilustra outro fluxograma 400 do processo exemplificador de acordo com outra implantação. Mais especificamente, o processo ilustrativo corresponde a um modelo de "tração" para receber objetos dos dispositivos em uma rede para a sincronização. Por exemplo, o dispositivo 110 pode transmitir um pedido, ou iniciar uma transação, que resulte na transferência por download ou fluxo de objetos (por exemplo, conteúdos) ao dispositivo 110. Tipicamente, o dispositivo fornecedor de conteúdos deve iniciar a transferência com a recepção do pedido do dispositivo 110. Deve ficar prontamente aparente que os processos mostrados na Figura 4 representam ilustrações generalizadas e que outros processos podem ser adicionados ou os processos existentes podem ser removidos, modificados ou rearranjados sem desviar do escopo e caráter da presente divulgação. Ademais, deve-se compreender que os processos podem representar as instruções executáveis armazenadas na memória que podem fazer com que um dispositivo de processamento responda, execute ações, mude estados e/ou tome decisões. Desse modo, os processos descritos podem ser implantados como instruções e/ou operações executáveis fornecidas por uma memória associada com um dispositivo de computação, tal como o dispositivo 110 como ilustrado nas Figuras 1 e 2. Além disso, a Figura 4 não se presta a limitar a implantação das implantações descritas, mas, ao invés disto, a figura ilustra a informação funcional que um elemento versado na técnica pode usar para projetar/fabricar circuitos, gerar software, ou usar uma combinação de hardware e software para executar os processos ilustrados.
[071] O processo 400 pode começar no bloco 405, em que o mecanismo de monitoramento 140 monitora a atividade do usuário e as informações do dispositivo no dispositivo 110. No bloco 410, o mecanismo de monitoramento 140 determina se qualquer uma das informações da atividade ou do sistema monitoradas indica que um usuário do dispositivo 110 pode requerer acesso imediato a determinados objetos (por exemplo, conteúdos). Particularmente, esse processo pode envolver, por exemplo, a execução de um processo de descoberta, durante o qual o dispositivo de monitoramento pode detectar que alguma atividade do usuário indica uma necessidade de acesso imediato a um objeto, que pode ser um arquivo específico ou um conjunto de arquivos. Por exemplo, o usuário pode navegar para uma pasta específica de conteúdo, em cujo caso o mecanismo de monitoramento 140 pode interpretar essa atividade como uma indicação para um pedido de chegada acesse os arquivos dentro dessa pasta específica. Outro exemplo pode incluir, mas sem nenhuma limitação, a abertura, pelo usuário, de um aplicativo específico, a conexão a uma conexão LAN específica e a busca por um arquivo específico.
[072] Se for determinado que o usuário do dispositivo 110 pode solicitar acesso imediato ao objeto, o processo de sincronização pode ser iniciado pelo mecanismo de predição 160. No bloco 420, o mecanismo de predição 160 cria uma mensagem de notificação de sincronização. A mensagem de notificação de sincronização pode identificar o objeto (por exemplo, o arquivo específico ou o conjunto de arquivos), indicar que o objeto precisa ser sincronizado ao dispositivo 110 e incluir um pedido para extrair o conteúdo. Além disso, a mensagem de notificação de sincronização pode pedir para que a prioridade de sincronização associada com o objeto seja modificada nos dispositivos.
[073] No bloco 425, o mecanismo de predição 160 envia a mensagem de notificação de sincronização aos outros dispositivos associados com o usuário ou a conta do usuário. Particularmente, esse processo pode envolver a identificação de todos os dispositivos associados com o usuário ou a conta do usuário e a determinação se qualquer um dos dispositivos associados pode ter uma versão mais nova do objeto. Por exemplo, o objeto a ser sincronizado pode ser um arquivo de publicação digital. O mecanismo de predição 160 pode especificar que os dispositivos 120 e 130 são associados com o usuário do dispositivo 110 ou a conta do usuário e que os dispositivos 120 e 130 podem ter uma cópia do objeto (possivelmente em um formato diferente) que corresponde ao arquivo de publicação digital. Por conseguinte, o mecanismo de predição 160 pode enviar a mensagem de notificação de sincronização aos dispositivos 120 e 130. Em outra implantação, o mecanismo de predição central 125 pode transmitir a mensagem de notificação de sincronização aos dispositivos associados com o usuário ou a conta do usuário que indicam que o objeto precisa ser sincronizado.
[074] Em uma implantação, quando a mensagem de notificação de sincronização é recebida, o pedido é confirmado de preferência por um ponto de referência central para verificar se o pedido provém de um dispositivo válido. Essa verificação valida de preferência a informação de segurança embutida em um cabeçalho de mensagem ou similares. Essa informação de segurança é de preferência cifrada ao empregar uma chave que somente um dispositivo e um servidor válidos possuem. No entanto, qualquer número de técnicas de verificação pode ser usado, tal como a criptografia de chave pública, certificados de assinatura digital e/ou similares, caso desejado. Se o pedido for inválido, uma resposta de erro é de preferência enviada de volta ao dispositivo que envia a mensagem (isto é, o dispositivo 110), indicando que o dispositivo não está autorizado a usar a estrutura de sincronização.
[075] Em resposta à mensagem de notificação de sincronização, os dispositivos 120 e 130 processam a notificação. Esse processo pode envolver a determinação se existe uma cópia do objeto nos bancos de dados de objetos nos dispositivos 120 e 130. Se for confirmado que o objeto existe, a prioridade de sincronização associada com o objeto é aumentada no dispositivo em que o objeto existe (por exemplo, o dispositivo 120, ou o dispositivo 130, ou ambos os dispositivos) e, de acordo com seus próprios ajustes de configuração e a disponibilidade da rede, no bloco 430, o dispositivo transmite o objeto ao dispositivo 110. No bloco 425, o objeto é recebido no receptor de objetos 170 no dispositivo 110. Em algumas implantações, a transmissão pode ser executada diretamente de um dispositivo a outro. Em outra implantação, a transmissão do objeto pode ser executada através da nuvem 105.
[076] Em uma implantação, a transmissão do objeto ao dispositivo 110 pode ser bloqueada ou colocada em suspenso com base em determinados dados monitorados pelo mecanismo de monitoramento 140. Como discutido em mais detalhes acima com respeito à Figura 1, o mecanismo de monitoramento 140 pode monitorar vários atributos do dispositivo 110, incluindo a informação da potência da bateria, as taxas de consumo de potência da bateria, o espaço de memória/armazenamento, a intensidade de sinal sem fio, detalhes da rede e/ou similares. Com bse nos dados relacionados a tais atributos, o mecanismo de predição 160 pode concluir que os recursos do dispositivo 110 estão sendo utilizados pesadamente. Por exemplo, o mecanismo de monitoramento 140 pode detectar que a bateria do dispositivo 110 está baixa, a largura de faixa da rede é limitada e/ou o tráfego da rede é sujeito a faturamento (por exemplo, 3G ou roaming). Por conseguinte, o mecanismo de predição 160 pode emitir comandos para reter ou bloquear a transmissão do objeto para limitar o uso dos recursos.
[077] No bloco 435, o objeto pode ser armazenado no banco de dados de objetos do dispositivo 110. Em uma implantação, os dispositivos 120 e 130 podem armazenar a mensagem de notificação de sincronização nos bancos de dados de registro nos dispositivos 120 e 130 e podem usar tal informação para melhorar os dados de sincronização históricos em cada banco de dados. Além disso, em outra implantação, o dispositivo 110 pode executar a resolução do conflito de informação de sincronização recebida de múltiplos dispositivos.
[078] Embora a divulgação acima tenha sido mostrada e descrita em referência aos exemplos acima, deve-se compreender que outras formas, detalhes e implantações podem ser feitas sem desviar do caráter e do escopo da divulgação que é definida nas seguintes reivindicações.

Claims (19)

1. Método para sincronizar dados CARACTERIZADO pelo fato de que compreende: monitorar (305), por um sistema (100) compreendendo um processador, um conjunto de atributos em uma pluralidade de dispositivos (110, 120, 130) em uma rede; selecionar (325), pelo sistema (100), um grupo de objetos de dados para sincronização com base no conjunto de atributos monitorado, e com base em uma atividade anterior de usuários do usuário por uma pluralidade de dispositivos (110, 120, 130); atribuir (335), pelo sistema (100), níveis de prioridade para os objetos de dados do grupo de objetos de dados e para a pluralidade de dispositivos (110, 120, 130); priorizar (340), pelo sistema (100), operações de sincronização a serem executadas no grupo de objetos de dados com base nos níveis de prioridade; e sincronizar (345), pelo sistema (100), o grupo de objetos de dados de acordo com a priorização das operações de sincronização.
2. Método, de acordo com a reivindicação 1, CARACTERI ZADO pelo fato de que o conjunto de atributos compreende atributos estáticos e dinâmicos.
3. Método, de acordo com a reivindicação 2, CARACTERI ZADO pelo fato de que os atributos dinâmicos compreendem a atividade anterior do usuário, as operações e ações da pluralidade de dispositivos, a informação da potência da bateria da pluralidade de dispositivos, as taxas de consumo da potência da bateria da pluralidade de dispositivos, o espaço de armazenamento da pluralidade de dispositivos, e a intensidade de sinal sem fio da pluralidade de dispositivos.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a atribuição (335) dos níveis de prioridade para os objetos de dados do grupo de objetos de dados e a pluralidade de dispositivos compreende a atribuição dos níveis de prioridade baseado dinamicamente no conjunto de atributos monitorado.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente a emissão de comandos para bloquear as operações de sincronização com base pelo menos em parte em pelo menos um dentre a informação da potência da bateria, o espaço de armazenamento, e a intensidade de sinal sem fio.
6. Método, de acordo com a reivindicação 1, CARACTERI ZADO pelo fato de que o monitoramento (305) do conjunto de atributos na pluralidade de dispositivos na rede também compreende: coletar grupos de informações associados com o conjunto de atributos, em que cada grupo de informação identifica um dispositivo (110, 120, 130) na rede; e analisar os grupos de informações coletados.
7. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a seleção (325) do grupo de objetos de dados baseados no conjunto de atributos monitorado para a sincronização também compreende a predição do grupo de objetos de dados que têm a probabilidade de ser solicitados por um usuário.
8. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a seleção (325) do grupo de objetos de dados baseados no conjunto de atributos monitorado para a sincronização também compreende: usar a atividade anterior do usuário para predizer os objetos de dados que têm a probabilidade de ser solicitados pelo usuário.
9. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a priorização (340) das operações de sincronização a serem executadas no grupo de objetos de dados selecionados com base nos níveis de prioridade também compreende: armazenar, em uma primeira fila de primeiro dispositivo que tem um primeiro nível de prioridade, objetos de dados selecionados para serem transmitidos ao primeiro dispositivo; armazenar, em uma segunda fila de um segundo dispositivo que tem um segundo nível de prioridade, objetos de dados selecionados para serem transmitidos ao segundo dispositivo, em que o segundo nível de prioridade é maior do que o primeiro nível de prioridade; e priorizar as operações de sincronização da segunda fila em relação à primeira fila com base no segundo nível de prioridade maior do que o primeiro nível de prioridade.
10. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o conjunto de atributos indica um pedido imediato para acessar determinados dados em um determinado dispositivo.
11. Método, de acordo com a reivindicação 1, CARACTERI ZADO pelo fato de que a atividade anterior de usuário compreende o usuário visualizar um primeiro objeto de dados em vários dispositivos (110, 120, 130) da pluralidade de dispositivos em momentos diferentes.
12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que a priorização das operações de sincronização compreende definir uma operação de sincronização de um determinado objeto de dados do grupo de objetos de dados nos múltiplos dispositivos com uma prioridade mais alta do que outra operação de sincronização de outro objeto de dados.
13. Método, de acordo com a reivindicação 11, CARACTERI ZADO pelo fato de que a atividade anterior de usuário compreende o usuário inicialmente visualizando o primeiro objeto de dados em um primeiro dispositivo dos múltiplos dispositivos, pausando a visualização do primeiro objeto de dados no primeiro dispositivo e continuando a visualização do primeiro objeto de dados em um segundo dispositivo dos múltiplos dispositivos.
14. Método, de acordo com a reivindicação 1, CARACTERI ZADO pelo fato de que a atividade anterior de usuário compreende o usuário realizar uma pesquisa em um primeiro dispositivo da pluralidade de dispositivos (110, 120, 130) e visualizar um resultado da pesquisa em um segundo dispositivo da pluralidade de dispositivos (110, 120, 130), e em que priorizar (340) as operações de sincronização compreende definir uma operação de sincronização de um determinado objeto de dados do grupo de objetos de dados a partir do primeiro dispositivo para o segundo dispositivo a uma prioridade mais alta do que outra operação de sincronização de outro objeto de dados.
15. Sistema (100) para sincronizar dados CARACTERIZADO pelo fato de que compreende: um processaor e; um meio de armazenamento não transitório que armazena instruções executáveis no processador para: monitorar (305) um conjunto de atributos em uma pluralidade de dispositivos de um usuário; selecionar (325) um grupo objetos de de dados para sincronização com base no conjunto de atributos monitorado, e com base em atividade anterior de usuário do usuário pela pluralidade de dispositivos; atribuir (335) níveis de prioridade para os objetos de dados do grupo de objetos de dados e para a pluralidade de dispositivos; priorizar (340) operações de sincronização a serem executadas no grupo de objetos de dados com base nos níveis de prioridade; e sincronizar (345) o grupo de objetos de dados de acordo com a priorização de operações de sincronização.
16. Sistema (100), de acordo com a reivindicação 15, CARACTERI ZADO pelo fato de que as instruções são executáveis no processo para bloquear as operações de sincronização de acordo com pelo menos uma dentre a informação da potência da bateria, as taxas de consumo de potência da bateria, o espaço de armazenamento, ou a intensidade de sinal sem fio.
17. Sistema (100), de acordo com a reivindicação 15, CARACTERI ZADO pelo fato de que a atividade anterior do usuário compreende o usuário visualizar um primeiro objeto de dados em múltiplos dispositivos da pluralidade de dispositivos em momentos diferentes, e em que o grupo selecionado de objetos de dados compreende objetos de dados a serem sincronizados nos múltiplos dispositivos.
18. Meio legível por computador não transitório CARACTERIZADO pelo fato de que compreende instruções que, quando executadas, fazem com que um dispositivo: monitore (305) um conjunto de atributos em uma pluralidade de dispositivos pertencentes a um usuário; selecione (325) um grupo de objetos de dados para sincronização com base no conjunto de atributos monitorado, e com base em atividade anterior de usuário na pluralidade de dispositivos; priorize (340) as operações de sincronização a serem executadas no grupo de objetos de dados com base em um nível de prioridade atribuído (335) a cada objeto de dados do grupo de objetos de dados e a cada dispositivo da pluralidade de dispositivos; e sincronize (345) o grupo de objetos de dados de acordo com a priorização das operações de sincronização.
19. Meio legível por computador não transitório, de acordo com a reivindicação 18, CARACTERIZADO pelo fato de que a atividade anterior de usuário compreende o usuário visualizando um primeiro objeto de dados em múltiplos dispositivos da pluralidade de dispositivos em momentos diferentes e em que o grupo selecionado de objetos de dados compreende objetos de dados a serem sincronizados nos vários dispositivos.
BR112015018368-9A 2013-02-27 2013-02-27 Método, sistema e meio legível por computador para sincronizar dados BR112015018368B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/027848 WO2014133489A1 (en) 2013-02-27 2013-02-27 Data synchronization

Publications (2)

Publication Number Publication Date
BR112015018368A2 BR112015018368A2 (pt) 2017-07-18
BR112015018368B1 true BR112015018368B1 (pt) 2022-08-02

Family

ID=51428616

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112015018368-9A BR112015018368B1 (pt) 2013-02-27 2013-02-27 Método, sistema e meio legível por computador para sincronizar dados

Country Status (9)

Country Link
US (1) US9781203B2 (pt)
JP (1) JP6047669B2 (pt)
KR (1) KR101645149B1 (pt)
CN (1) CN104937582B (pt)
BR (1) BR112015018368B1 (pt)
DE (1) DE112013006371T5 (pt)
GB (1) GB2525788B (pt)
TW (1) TWI514132B (pt)
WO (1) WO2014133489A1 (pt)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006053019A2 (en) 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US9344335B2 (en) 2011-09-09 2016-05-17 Microsoft Technology Licensing, Llc Network communication and cost awareness
US9881017B2 (en) 2012-08-03 2018-01-30 Egnyte, Inc. System and method for event-based synchronization of remote and local file systems
US10057318B1 (en) 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US9635040B2 (en) * 2013-03-14 2017-04-25 Cybereason Inc. Method and apparatus for collecting information for identifying computer attack
US9998536B2 (en) * 2013-05-29 2018-06-12 Microsoft Technology Licensing, Llc Metered network synchronization
US9692822B1 (en) 2014-03-26 2017-06-27 AVAI Mobile Solutions, LLC System and method for optimized content synchronization for mobile devices
JP5783301B1 (ja) * 2014-06-11 2015-09-24 富士ゼロックス株式会社 通信端末、通信システム及びプログラム
JP6442915B2 (ja) * 2014-08-15 2018-12-26 富士ゼロックス株式会社 通信端末、通信システム及びプログラム
US11295291B2 (en) * 2014-12-24 2022-04-05 Paypal, Inc. Low battery and digital wallet
US20160198014A1 (en) * 2015-01-05 2016-07-07 Onavo Mobile Ltd. Techniques for predictive network resource caching
CA2971107C (en) * 2015-05-07 2020-10-20 Kodiak Networks, Inc. System and method for data synchronization
US11023492B2 (en) * 2015-05-20 2021-06-01 Guidewire Software, Inc. Deferred synchronization for work unit-related data
TWI569165B (zh) * 2015-09-14 2017-02-01 Chunghwa Telecom Co Ltd The method of grouping external sites through proxy logs
CN106993010B (zh) 2016-01-21 2019-11-26 腾讯科技(深圳)有限公司 一种信息推送方法及装置
US9749412B1 (en) * 2016-09-21 2017-08-29 International Business Machines Corporation Predictive file synchronization
JP6852390B2 (ja) * 2016-12-27 2021-03-31 富士ゼロックス株式会社 情報管理装置及びプログラム
KR101929948B1 (ko) * 2017-04-07 2018-12-18 네이버 주식회사 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템
CN107402804B (zh) * 2017-07-31 2019-12-10 Oppo广东移动通信有限公司 后台进程管控方法、装置、存储介质及电子设备
CN108881357B (zh) * 2017-08-31 2019-11-12 视联动力信息技术股份有限公司 一种数据同步的方法和装置
EP3656110B1 (en) 2017-09-29 2023-09-20 Apple Inc. Multi-device communication management
US11334596B2 (en) * 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
KR102133925B1 (ko) * 2018-07-30 2020-07-14 네이버 주식회사 데이터 동기화 트래픽을 최소화하기 위한 방법 및 시스템
US11042547B2 (en) * 2018-09-10 2021-06-22 Nuvolo Technologies Corporation Mobile data synchronization framework
CN109246244B (zh) * 2018-10-30 2021-06-15 北京网众共创科技有限公司 消息同步的检测方法、装置和系统
KR102084014B1 (ko) * 2018-12-11 2020-03-04 네이버 주식회사 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템
CN110263052B (zh) * 2019-06-25 2021-07-20 苏宁消费金融有限公司 一种基于大数据Hadoop平台ODS自动化同步技术创新方法
TWI712894B (zh) * 2019-09-09 2020-12-11 瑞昱半導體股份有限公司 訊息請求方法及其裝置
US11681826B2 (en) 2019-12-05 2023-06-20 Jpmorgan Chase Bank, N.A. Systems and methods for protection of data across multiple users and devices
TWI781400B (zh) * 2020-05-08 2022-10-21 台達電子工業股份有限公司 資料齊備度分析系統和資料齊備度分析方法
JP2022161746A (ja) * 2021-04-09 2022-10-21 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556573B1 (en) 1998-06-05 2003-04-29 Nokia Telecommunications Oy Synchronization of ATM-based network system using variable bit rate ATM adaptation layer protocols
US20020055351A1 (en) 1999-11-12 2002-05-09 Elsey Nicholas J. Technique for providing personalized information and communications services
KR20020084966A (ko) * 2001-05-03 2002-11-16 엘지전자 주식회사 우선 순위를 갖는 동기화 방법
JP2003030037A (ja) 2001-07-19 2003-01-31 Nec Corp 事前予測処理システム及び方法
JP3860098B2 (ja) * 2002-08-30 2006-12-20 株式会社東芝 情報端末装置
US20050147130A1 (en) * 2003-12-23 2005-07-07 Intel Corporation Priority based synchronization of data in a personal area network
US20070174246A1 (en) * 2006-01-25 2007-07-26 Sigurdsson Johann T Multiple client search method and system
US8121585B2 (en) 2006-08-25 2012-02-21 International Business Machines Corporation Technique for synchronizing data with a mobile device based on a synchronization context
US20080140941A1 (en) * 2006-12-07 2008-06-12 Dasgupta Gargi B Method and System for Hoarding Content on Mobile Clients
US20080147747A1 (en) 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
JP2008282295A (ja) 2007-05-14 2008-11-20 Casio Hitachi Mobile Communications Co Ltd コンテンツ配信システム、携帯端末装置及びプログラム
US8117303B2 (en) * 2007-06-29 2012-02-14 Nokia Corporation Systems, methods, devices, and computer program products for downloading content for offline browsing
EP2223208A2 (en) * 2007-11-15 2010-09-01 Desknet SA Method enabling a computer apparatus run by an operating system to execute software modules
KR101430517B1 (ko) 2008-01-31 2014-08-19 삼성전자주식회사 복수의 데이터 통신장치들 간의 데이터 동기 방법
JP2009230207A (ja) * 2008-03-19 2009-10-08 Konica Minolta Holdings Inc 共有データの同期方法、共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステム
US20090300169A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Synchronization throttling based on user activity
US7793002B2 (en) * 2008-06-06 2010-09-07 Fisher-Rosemount Systems, Inc. Methods and apparatus for implementing a sequential synchronization hierarchy among networked devices
EP2356587A1 (en) * 2008-10-21 2011-08-17 Google, Inc. Always ready client/server data synchronization
JP5515331B2 (ja) * 2009-03-09 2014-06-11 ソニー株式会社 情報提供サーバ、情報提供システム、情報提供方法及びプログラム
US8887190B2 (en) 2009-05-28 2014-11-11 Harris Corporation Multimedia system generating audio trigger markers synchronized with video source data and related methods
US20110125924A1 (en) 2009-11-23 2011-05-26 Telefonaktiebolaget L M Ericsson (Publ) Method and system for synchronizing user content in a social network
JP5477097B2 (ja) * 2010-03-19 2014-04-23 富士通株式会社 アプリケーション移行システム、移行支援装置、コンピュータ、アプリケーション移行方法、ファイル移行方法、およびコンピュータプログラム
WO2012015920A2 (en) 2010-07-28 2012-02-02 Admiemobile Llc Systems and methods for establishing and maintaining virtual computing clouds
US8312096B2 (en) * 2010-12-08 2012-11-13 Google Inc. Priority inbox notifications and synchronization for mobile messaging application
CN102064932A (zh) * 2010-12-30 2011-05-18 上海顶竹通讯技术有限公司 不同设备间数据同步的方法及装置
US8826313B2 (en) 2011-03-04 2014-09-02 CSC Holdings, LLC Predictive content placement on a managed services systems
US9448961B1 (en) * 2011-10-18 2016-09-20 Google Inc. Prioritized download of social network content

Also Published As

Publication number Publication date
GB201513393D0 (en) 2015-09-16
KR101645149B1 (ko) 2016-08-02
US9781203B2 (en) 2017-10-03
GB2525788B (en) 2020-07-15
BR112015018368A2 (pt) 2017-07-18
TW201447570A (zh) 2014-12-16
JP2016508634A (ja) 2016-03-22
WO2014133489A1 (en) 2014-09-04
US20150358406A1 (en) 2015-12-10
KR20150102115A (ko) 2015-09-04
JP6047669B2 (ja) 2016-12-21
GB2525788A (en) 2015-11-04
CN104937582A (zh) 2015-09-23
TWI514132B (zh) 2015-12-21
CN104937582B (zh) 2018-11-06
DE112013006371T5 (de) 2015-10-08

Similar Documents

Publication Publication Date Title
BR112015018368B1 (pt) Método, sistema e meio legível por computador para sincronizar dados
US11829252B2 (en) Deduplicated data distribution techniques
CN111615712B (zh) 多日历协调
JP6482602B2 (ja) 予測ストレージサービス
US9411814B2 (en) Predictive caching and fetch priority
US20150032692A1 (en) Prioritizing content item synchronization based on sharing
US9854030B2 (en) Searching content associated with multiple applications
US20090234902A1 (en) System, method and apparatus for making content available over multiple devices
US10855637B2 (en) Architecture for large data management in communication applications through multiple mailboxes
US20180205790A1 (en) Distributed data structure in a software defined networking environment
US20190377805A1 (en) User Interface for Shared Documents
EP3080706A1 (fr) Procédé de sauvegarde de données stockées sur un terminal

Legal Events

Date Code Title Description
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]
B25G Requested change of headquarter approved

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. (US)

B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 27/02/2013, OBSERVADAS AS CONDICOES LEGAIS

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 11A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2763 DE 19-12-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.