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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 52
- 238000012544 monitoring process Methods 0.000 claims abstract description 38
- 238000012913 prioritisation Methods 0.000 claims abstract description 12
- 230000000694 effects Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 3
- 230000001052 transient effect Effects 0.000 claims description 3
- 238000012800 visualization Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 17
- 101150093826 par1 gene Proteins 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 11
- 230000006399 behavior Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 101100406879 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) par-2 gene Proteins 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 239000010813 municipal solid waste Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2097—Error 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
[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").
[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.
[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.
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)
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)
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 |
-
2013
- 2013-02-27 DE DE112013006371.9T patent/DE112013006371T5/de not_active Withdrawn
- 2013-02-27 US US14/763,458 patent/US9781203B2/en active Active
- 2013-02-27 GB GB1513393.7A patent/GB2525788B/en not_active Expired - Fee Related
- 2013-02-27 KR KR1020157020693A patent/KR101645149B1/ko active IP Right Grant
- 2013-02-27 JP JP2015555140A patent/JP6047669B2/ja not_active Expired - Fee Related
- 2013-02-27 WO PCT/US2013/027848 patent/WO2014133489A1/en active Application Filing
- 2013-02-27 BR BR112015018368-9A patent/BR112015018368B1/pt not_active IP Right Cessation
- 2013-02-27 CN CN201380072015.2A patent/CN104937582B/zh not_active Expired - Fee Related
-
2014
- 2014-02-24 TW TW103106077A patent/TWI514132B/zh not_active IP Right Cessation
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. |