BR112013031065B1 - método para a restauração de múltiplas fontes - Google Patents

método para a restauração de múltiplas fontes Download PDF

Info

Publication number
BR112013031065B1
BR112013031065B1 BR112013031065-0A BR112013031065A BR112013031065B1 BR 112013031065 B1 BR112013031065 B1 BR 112013031065B1 BR 112013031065 A BR112013031065 A BR 112013031065A BR 112013031065 B1 BR112013031065 B1 BR 112013031065B1
Authority
BR
Brazil
Prior art keywords
source
resource
backup
restore
resources
Prior art date
Application number
BR112013031065-0A
Other languages
English (en)
Other versions
BR112013031065A2 (pt
Inventor
Edward T. Schimidt
Gordon J. Freedman
Jacob C. Farkas
Kenneth B. Mcneil
Original Assignee
Apple Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc. filed Critical Apple Inc.
Publication of BR112013031065A2 publication Critical patent/BR112013031065A2/pt
Publication of BR112013031065B1 publication Critical patent/BR112013031065B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

MÉTODOS E APARELHO PARA A RESTAURAÇÃO DE MÚLTIPLAS FONTES. A presente invenção refere-se a métodos e a aparelho que restauram um recurso de uma primeira fonte e de uma segunda fonte em um dispositivo são descritos. A disponibilidade do recurso de uma segunda fonte pode ser dinamicamente determinada depois de uma porção do recurso ter sido restaurada no dispositivo da primeira fonte. Quando a segunda fonte é determinada de modo a ser mais eficientemente conectada ao dispositivo do que a primeira fonte, uma porção restante do recurso poderá ser restaurada da segunda fonte no dispositivo depois de a porção do recurso tiver sido restaurada no dispositivo. 19918383v1

Description

REFERÊNCIA CRUZADA AO(S) PEDIDO(S) RELACIONADO(S)
[0001] O presente pedido reivindica o benefício do Pedido Provisório dos Estados Unidos N. 61/493, 360, depositado em 3 de junho de 2011, intitulado "Methods and Apparatus for Multi-Phase MultiSource Backup and Restore", de Gordon J. Freedman et al., o qual é incorporado a título de referência ao presente documento em sua totalidade.
CAMPO DE INVENÇÃO
[0002] A presente invenção refere-se de modo geral a dispositivos de restauração. Mais particularmente, a presente invenção se refere à restauração de arquivos em dispositivos de múltiplas fontes.
ANTECEDENTES
[0003] Com a proliferação dos dispositivos móveis, especialmente os dispositivos de comunicação móvel, tais como telefones celulares, assistentes de dados pessoais (PDA), dispositivos do tipo tablet, etc., as operações de backup e restauração se tornaram cada vez mais uma parte integrante do uso diário desses dispositivos móveis. No entanto, como ambientes de trabalho, os aplicativos móveis e/ou as infraestruturas de armazenamento de rede continuam a evoluir, e novos desafios acompanhadas das exigências em constante mudança com relação aos dispositivos móveis também surgem no sentido de suportar tais capacidades.
[0004] Por exemplo, as operações convencionais de backup/restauração podem se basear em interações complexas com um software e hardware de backup/restauração que usam conexões de rede de alta largura de banda. Os dispositivos móveis, no entanto, são muitas vezes utilizados em trânsito com conexões de rede sem fio que podem ser pouco confiáveis, ter uma largura de banda limitada e/ou imprevisíveis de um local para outro. Portanto, múltiplas tentativas e/ou demoradas podem ser necessárias no sentido de concluir as operações de backup/restauração nos dispositivos móveis. Além disso, um risco maior de segurança pode ser encontrado na abertura da maior parte das redes sem fio nessas operações.
[0005] Assim sendo, os mecanismos existentes poderão não copiar com segurança e/ou restaurar os dispositivos móveis de uma forma confiável, segura e fácil de usar.
SUMÁRIO DA INVENÇÃO
[0006] Em uma modalidade, os recursos em um dispositivo podem ser copiados com segurança em um armazenamento baseado em rede, também denominado armazenamento em nuvem, através de vários níveis de abstrações de modo a permitir operações de backup incrementais e reiniciáveis. As fontes de backup podem ser dinamicamente configuradas tanto para melhorar o desempenho de backup/restauração como também para minimizar o impacto sobre as operações normais do dispositivo. Em uma modalidade, o dispositivo pode se comunicar com o serviço de backup móvel (MBS) a fim de determinar quais partes dos recursos (ou arquivos) copiar com segurança com base nos dados hierárquicos mantidos no serviço MBS. Os dados hierárquicos podem incluir a conta de proprietário do dispositivo, uma fileira (ou representação) de backup específica para cada dispositivo associado à conta de proprietário, e/ou metadados que descrevem cada arquivo que é copiado com segurança.
[0007] Em uma modalidade, o serviço MBS pode se comunicar com um serviço de conteúdo (tal como o Serviço de Bloco de Dados Móveis Me ou MMCS) a fim de identificar os blocos de dados concretos (ou dados em blocos) dos arquivos que devem ser enviados para backup a fim de evitar cópias duplicadas de blocos de dados, por exemplo, nos armazenamentos em nuvem. O serviço MMCS pode rastrear mapeamentos entre os arquivos e um conjunto de identificadores de blocos de dados, identificando os blocos de dados dos arquivos. Em uma modalidade, o serviço MMCS pode configurar ou organizar dinamicamente os armazenamentos em nuvem de fornecedores de modo a armazenar o conteúdo dos arquivos identificados para backup em recipientes de dados de blocos.
[0008] Em uma outra modalidade, os metadados de um dispositivo podem ser mantidos a fim de rastrear quando um recurso (ou arquivo) representa os dados de usuário (por exemplo, os dados criados pelo usuário) ou um ativo ou conteúdo adquirido. Os dados concretos de um ativo adquirido podem ser baixados ou restaurados a partir de lojas de ativos disponíveis (ou sites) sem a necessidade de fazer backup. Determinados ativos disponíveis gratuitamente, tais como um Podcast, podem ser novamente baixados ao fazer um backup de seus identificadores em vez de serem copiados e restaurados diretamente com seu conteúdo concreto. Os metadados que descrevem os recursos a serem copiados podem permitir a identificação automática de diferentes fontes para backup vantajosamente transparentes a um usuário. Por exemplo, os recursos de backup como um ativo adquirido podem incluir a composição de uma observação em vez de acrescentar o conteúdo do ativo adquirido. A fim de restaurar o ativo adquirido, tal como observado, o conteúdo do ativo adquirido pode ser recuperado de uma loja de ativos. Por exemplo, uma loja de ativos pode ser um site acessível em rede que agrupa ativos compráveis, armazena ativos adquiridos e/ou agrupa ativos (ou conteúdos) disponíveis gratuitamente.
[0009] Opcionalmente, os recursos podem ser restaurados divididos de volta para um dispositivo a partir de múltiplas fontes, tais como armazenamentos em nuvem, computadores locais, lojas de ativos e/ou outras fontes aplicáveis oportunistas. Os metadados que indicam os tipos de ativos de mídia podem ser rastreados pelos recursos em um dispositivo a fim de identificar dinamicamente quais fontes se encontram disponíveis e/ou são mais rentáveis para a restauração (ou backup) dos recursos, por exemplo, com base no desempenho, na largura de banda, no consumo de energia e/ou em outras considerações aplicáveis.
[00010] Por exemplo, um dispositivo pode notar uma conexão com um computador local (por exemplo, acoplado com fio ou sem fio), que armazena uma porção de dados de conteúdo nos recursos a serem restaurados. A porção de dados de conteúdo pode ser recuperada do computador já conectado. Subsequentemente, o resto dos recursos, que não estão disponíveis a partir do computador local, pode ser identificado para ser restaurado dividido a partir de armazenamentos em nuvem e/ou armazenadores. Como resultado, dados de conteúdo, tais como músicas, aplicativos ou outros arquivos de mídia, poderão ser copiados com segurança na nuvem (ou nos armazenamentos em nuvem), mas ainda poderão ser recuperados a partir de um computador local para o dispositivo.
[00011] Em uma modalidade, arquivos ou recursos podem ser selecionados para backup, por exemplo, com base no aplicativo, tipo de mídia, ou outra informação extensível associada. Um recurso pode ser rastreado como um ativo de loja (por exemplo, ativos adquiridos disponíveis a partir de uma loja de ativos) que pode estar disponível em lojas sem a necessidade de fazer backup do conteúdo concreto do recurso. Opcionalmente, um outro recurso pode ser rastreado como dados de usuário não disponíveis em lojas e requer backup e restauração, por exemplo, através de armazenamentos em nuvem. Um aplicativo pode ser associado aos recursos que incluem o próprio aplicativo como um ativo de loja e os dados de aplicativo como os dados de usuário. Deste modo, um aplicativo e os dados de aplicativo associados podem ser restaurados a partir de diferentes fontes.
[00012] Por exemplo, os recursos selecionados em um dispositivo para backup em nuvem podem incluir dados de aplicativos sem incluir um aplicativo correspondente por si só. O aplicativo pode ser novamente baixado para um dispositivo de uma loja de ativos e os dados de aplicativo podem ser restaurados a partir do armazenamento em nuvem e/ou de um computador local. Como alternativa, o aplicativo pode ser sincronizado a partir do computador local a fim de restaurar os dados de aplicativo a partir do armazenamento em nuvem. Outras combinações de fontes de backup para restaurar separadamente o aplicativo e os dados de aplicativo podem ser possíveis. Em algumas modalidades, os dados de aplicativo podem ser restaurados antes de o seu correspondente aplicativo poder ser utilizado (por exemplo, por um usuário). O aplicativo pode ser baixado ou sincronizado antes de inicializar a restauração dos dados de aplicativo (por exemplo, a partir do armazenamento em nuvem ou de outras fontes) a fim de criar uma ordem apropriada.
[00013] Em uma modalidade, a restauração de recursos a partir de um backup de um dispositivo pode ser executada em múltiplas fases de modo a manter o dispositivo em uma condição de trabalho utilizável e responsiva a um usuário, enquanto os recursos estão sendo restaurados. Por exemplo, um dispositivo pode entrar em uma sessão de restauração modal (por exemplo, um primeiro modo) seguida de uma sessão de restauração em segundo plano (por exemplo, um segundo modo) para uma restauração de fase dual ou duas fases do dispositivo. O dispositivo, em uma modalidade, pode ser utilizável por um usuário de tal modo que o dispositivo não responda às entradas de usuário na sessão de restauração modal inicial. Em uma modalidade, a sessão modal inicial pode ser breve e rápida para a restauração dos arquivos de usuário núcleos no sentido de reiniciar o dispositivo. Posteriormente, a sessão em segundo plano pode permitir que um usuário use o dispositivo enquanto os aplicativos individuais estão sendo restaurados de volta no dispositivo em segundo plano. O dispositivo pode ser operacional no sentido de responder a pelo menos um conjunto de entradas de usuário na sessão de restauração em segundo plano.
[00014] Em uma modalidade, durante a sessão de modal de uma restauração em duas fases, um dispositivo pode ser rapidamente inutilizável enquanto abaixa recursos de sistema a fim de colocar o dispositivo em uma condição de trabalho específica a um usuário. Por exemplo, os recursos de sistema podem incluir todos os metadados e os dados de sistema, uma lista de contas, papel de parede, um histórico de SMS (serviço de mensagens curtas), e/ou outros dados de não aplicativo específicos ao usuário aplicáveis. Os dados de sistema, além dos metadados, podem configurar o dispositivo de modo a se comportar, por exemplo, como o telefone do usuário. O dispositivo pode reiniciar e voltar à vida após a sessão modal.
[00015] Em uma modalidade, durante a sessão em segundo plano de uma restauração em duas fases, um dispositivo pode restaurar os dados ou os ativos de mídia de computadores locais (por exemplo, executando o aplicativo iTunes® da Apple Inc.) e/ou de armazenamentos em nuvem. O dispositivo pode sincronizar e-mails e/ou receber mensagens de texto durante a sessão em segundo plano. Em uma modalidade, os recursos podem ser restaurados de acordo com uma ordem de restauração determinada pelos padrões de uso. Por exemplo, um uso de aplicativo pode ser rastreado no sentido de reunir os padrões de uso, incluindo shows/filmes assistidos, livros lidos, ou outras estatísticas de uso aplicáveis. Em outras modalidades, a ordem de restauração pode depender do tamanho do recurso (ou conteúdo), no qual um ícone correspondente ao recurso está posicionado na tela de um dispositivo (por exemplo, um usuário pode colocar os ícones frequentemente utilizados na primeira página), ou de outros fatores aplicáveis. A ordem de restauração pode ser dinamicamente atualizada, adaptando-se às solicitações de usuários, tais como através de um toque do usuário sobre a tela a fim de indicar as prioridades dos aplicativos.
[00016] Em uma outra modalidade, durante um período de tempo em uma restauração de fase dual (ou bifurcada) quando um dispositivo é utilizável, mas nem todos os dados foram restaurados, elementos de UI (interface de usuário) podem ser exibidos no sentido de melhorar a experiência do usuário e impedir que aplicativos sejam operados incorretamente ou de uma forma inesperada. Por exemplo, os ícones que representam aplicativos e/ou bibliotecas de mídia (por exemplo, para a reprodução de música, vídeo ou outros conteúdos/ativos de mídia), cujos arquivo(s) de objeto ou dados de usuário ainda não foram restaurados, podem ser exibidos em cinza, ou incluir uma barra de progresso de modo a indicar que os aplicativos ainda não estão disponíveis, mas se tornarão disponíveis. Uma interatividade pode ser adicionada ao se permitir que o usuário toque em um ícone de um aplicativo, ou foto, ou música, ou vídeo que o usuário gostaria de priorizar para restauração.
[00017] Em uma outra modalidade, um método e aparelho são descritos no presente documento no sentido de restaurar um recurso de uma primeira fonte e de uma segunda fonte em um dispositivo. A disponibilidade do recurso da segunda fonte pode ser dinamicamente determinada depois de uma porção do recurso ter sido restaurada no dispositivo da primeira fonte. Quando a segunda fonte é determinada de modo a ser mais eficientemente conectada ao dispositivo que a primeira fonte, uma parte restante do recurso pode ser restaurada da segunda fonte no dispositivo depois de a parte do recurso tiver sido restaurada no dispositivo.
[00018] Em uma outra modalidade, um primeiro recurso a restaurar em um dispositivo é identificado com um serviço de backup. A primeira fonte pode ser comutada para uma segunda fonte a fim de restaurar o primeiro recurso no dispositivo quando uma porção do primeiro recurso tiver sido restaurada da primeira fonte e uma porção restante do primeiro recurso ainda não tiver sido restaurada no dispositivo. A parte restante do primeiro recurso pode ser restaurada da segunda fonte. Em uma modalidade, um segundo recurso pode ser identificado no sentido de restaurar o dispositivo com a segunda fonte. O segundo recurso pode ser restaurado no dispositivo da segunda fonte.
[00019] Outras características da presente invenção tornar-se-ão evidentes a partir dos desenhos em anexo e a partir da descrição detalhada que se segue.
BREVE DESCRIÇÃO DOS DESENHOS
[00020] A presente invenção é ilustrada a título de exemplo e não de limitação nas figuras dos desenhos em anexo, nos quais referências similares indicam elementos similares, e nos quais: a Figura 1 é um diagrama de blocos que ilustra uma modalidade de sistemas de rede para backup e restauração de múltiplas fontes em múltiplas fases; a Figura 2 é um diagrama de blocos que ilustra um sistema exemplar de backup e restauração de múltiplas fontes em múltiplas fases; a Figura 3 é um diagrama de blocos que ilustra um sistema exemplar para o gerenciamento de backup e restauração em múltiplas fases utilizando múltiplas fontes; a Figura 4 é um fluxograma que ilustra uma modalidade de um processo para a execução de operações de backup incrementais em um dispositivo; a Figura 5 é um fluxograma que ilustra uma modalidade de um processo para a execução de operações de restauração incrementais em um dispositivo; a Figura 6 é um fluxograma que ilustra uma modalidade de um processo a fim de dinamicamente priorizar os recursos a restaurar em um dispositivo; a Figura 7 é um diagrama de blocos que ilustra um sistema exemplar para o monitoramento das fontes de alimentação de um dispositivo para operações de backup e/ou restauração; a Figura 8 é um fluxograma que ilustra uma modalidade de um processo para a interrupção das operações de backup e/ou restauração em um dispositivo a fim de economizar energia; a Figura 9 mostra um exemplo de um sistema de processamento de dados que pode ser usado com as modalidades descritas no presente documento; a Figura 10 ilustra um exemplo de um sistema de computador típico que pode ser usado em conjunto com as modalidades descritas no presente documento.
DESCRIÇÃO DETALHADA
[00021] Métodos e aparelhos para backup e restauração de arquivos em dispositivos em múltiplas fases utilizando uma ou mais fontes são descritos no presente documento. Na descrição a seguir, inúmeros detalhes específicos são apresentados no sentido de prover uma explicação exaustiva das modalidades da presente invenção. No entanto, ficará evidente a uma pessoa versada na técnica que modalidades da presente invenção podem ser praticadas sem esses detalhes específicos. Em outros casos, componentes, estruturas e técnicas bem conhecidos não foram mostrados em detalhe a fim de não obscurecer o entendimento da presente descrição.
[00022] No presente relatório descritivo, a referência a "uma modalidade" significa que um recurso, estrutura, ou característica em particular descrita com relação à modalidade pode ser incluído em pelo menos uma modalidade da presente invenção. As aparições das palavras "em uma modalidade" em vários lugares no presente relatório descritivo não necessariamente se referem à mesma modalidade.
[00023] Os processos ilustrados nas figuras que se seguem são executados pela lógica de processamento que compreende um hardware (por exemplo, circuitos, uma lógica dedicada, etc.), um software (tal como é executado em um sistema de computador de uso geral ou em uma máquina dedicada), ou uma combinação de ambos. Embora os processos sejam descritos a seguir em termos de algumas operações sequenciais, deve ser apreciado que algumas das operações descritas podem ser realizadas em uma ordem diferente. Além disso, algumas operações podem ser realizadas em paralelo, em vez de sequencialmente.
[00024] Em uma modalidade, múltiplas fontes podem estar disponíveis para o backup de dados ou recursos de um dispositivo. Por exemplo, os serviços de backup de dados genéricos podem ser oferecidos na nuvem (ou nos armazenamentos em nuvem, nos serviços em nuvem) através de fornecedores de terceira parte, tais como Amazon, S3, Microsoft, etc. Os ativos adquiridos, tais como músicas, filmes e/ou aplicativos, etc., podem ser baixados a partir das lojas iTunes® na nuvem. O(s) computador(es) do usuário que executa(m) um software de serviço de backup, tal como o iTunes®, pode(m) ser usado(s) para fazer o backup de um dispositivo, tal como um dispositivo iOS®, um dispositivo iPhone® ou iPad® da Apple Inc.
[00025] Os recursos a serem copiados de um dispositivo podem ser dados de backup, incluindo, por exemplo, configurações, dados de contas, dados de aplicativos, fotos, arquivos de mídia, ativos adquiridos e/ou outros arquivos de dados. Em uma modalidade, os dados de backup podem ser dinamicamente identificados a partir dos recursos existentes em um dispositivo. Um computador de usuário (por exemplo, um computador desktop ou um notebook) pode armazenar os dados de backup no dispositivo. Opcionalmente ou de maneira alternativa, os subconjuntos de dados de backup para um dispositivo podem ser armazenados na nuvem através de backup em nuvem e/ou através de lojas, tais como as lojas iTunes®, para os ativos adquiridos nos dados de backup.
[00026] Em uma modalidade, uma conta, por exemplo, mantida pelo servidor de serviço MBS na nuvem, pode ser representada pelos dados hierárquicos que incluem múltiplos backups (ou estruturas de backup) que correspondem separadamente a diferentes dispositivos para a conta. Os dados hierárquicos podem incluir uma conta que contém um conjunto de backups para uma série de diferentes dispositivos. Um backup pode incluir um conjunto de instantâneos de arquivos em um dispositivo. Um backup por dispositivo pode ser suportado.
[00027] Um instantâneo pode representar um estado de um dispositivo em um único ponto no tempo. Uma restauração pode ser feita a partir de qualquer instantâneo em um backup a fim de reconstruir o estado do dispositivo naquele momento. Os instantâneos podem ser numerados sequencialmente a partir de um número (por exemplo, um), e estes números podem ser atribuídos por um servidor. O primeiro instantâneo pode ser um backup completo do dispositivo e os instantâneos subsequentes podem ser deltas baseados fora do instantâneo anterior. Os instantâneos incrementais podem conter todos os arquivos adicionados, modificados e apagados no dispositivo desde o instantâneo anterior.
[00028] Um instantâneo pode ser explicitamente confirmado assim que seus conteúdos tenham sido enviados. Pode haver um instantâneo não confirmado em um momento e o instantâneo não confirmado pode ser o último instantâneo com o número mais alto. Quando um instantâneo é confirmado, o seu conteúdo não pode ser modificado, exceto ao excluir o mesmo por completo.
[00029] Quando um instantâneo é excluído, o seu conteúdo pode ser intercalado ao instantâneo anterior a menos que o mesmo não seja confirmado. Como resultado, uma restauração pode ainda ser feita a partir de qualquer instantâneo subsequente. Os arquivos adicionados/modificados/apagados em um instantâneo alvo podem ser retidos (por exemplo, não serão perdidos). A exclusão de um instantâneo não confirmado poderá não causar uma intercalação e, em vez disso, o conteúdo poderá ser simplesmente descartado. Ao excluir o segundo instantâneo de uma sequência de instantâneos armazenados, e ao intercalar arquivos no primeiro instantâneo da sequência de instantâneos, os arquivos excluídos não podem ficar retidos, uma vez que o primeiro instantâneo está completo. O primeiro instantâneo não pode ser excluído a menos que seja o único instantâneo na sequência de instantâneos.
[00030] Cada backup pode incluir um instantâneo tirado do dispositivo correspondente, por exemplo, de acordo com um cronograma configurado (por exemplo, de hora em hora, diariamente, semanalmente, etc.) Cada instantâneo pode incluir descrições de uma lista de arquivos ou recursos. Cada arquivo pode ser quebrado em blocos (ou segmentação de arquivos) de dados concretos (por exemplo, de um determinado tamanho de bits) para o(s) serviço(s) em nuvem a armazenar. De maneira alternativa, a segmentação de arquivos pode se basear em tecnologias para dividir os itens de dados em blocos, por exemplo, descritos no pedido de patente provisório N. 61/433 152, intitulado "Content Based File Chunking" de Dominic Giampaolo, depositado em 14 de janeiro de 2011, que é incorporado a título de referência ao presente documento em sua totalidade.
[00031] Normalmente, vários blocos de dados podem ser agregados como um recipiente, como uma unidade de armazenamento, ao serviço em nuvem oferecido, por exemplo, pelos fornecedores de terceira parte. Um backup pode ser criado, atualizado, excluído, desativado ou operado conforme solicitado. Por exemplo, os arquivos de um determinado domínio podem ser removidos de um backup. O armazenamento em nuvem não armazena informações suficientes para regenerar os arquivos originais correspondentes aos blocos de dados armazenados no armazenamento em nuvem. Deste modo, os arquivos são inerentemente protegidos através da segmentação de dados. A criptografia dos blocos de dados pode prover um nível adicional de proteção aos dados armazenados no armazenamento em nuvem.
[00032] Em uma modalidade, um dispositivo, tal como um dispositivo iOS, pode iniciar as operações de backup com um serviço de backup (por exemplo, hospedado em um servidor de serviço MBS) na nuvem a fim de identificar os dados de backup dos recursos do dispositivo. Os metadados que descrevem o estado de backup do dispositivo podem ser mantidos no serviço de backup, por exemplo, por meio de uma estrutura de backup correspondente ao dispositivo. O status de backup pode incluir um instantâneo mais recente ou uma série mais recente de instantâneos dos recursos já copiados para o dispositivo. Em uma modalidade, os metadados podem fazer referência aos blocos de dados armazenados em serviços na nuvem através do(s) fornecedor(es) de terceira parte para os dados de backup do dispositivo.
[00033] Os dados ou arquivos de backup identificados em um dispositivo para as operações de backup podem ser divididos em blocos de dados de bits de dados concretos prontos para armazenamentos em nuvem. Em uma modalidade, o código de serviço MMCS em uma estrutura de serviço do dispositivo pode se comunicar com um servidor de serviço MMCS na nuvem a fim de preparar blocos de dados para fazer o backup dos arquivos identificados. Por exemplo, os dados de backup podem ser divididos em múltiplos blocos de dados de acordo com determinadas configurações de blocos de dados (por exemplo, um tamanho específico de bits de dados para cada bloco de dados).
[00034] A estrutura de serviços pode determinar qual dentre os múltiplos blocos de dados preparados a partir dos arquivos identificados para backup não se encontram atualmentemente disponíveis na nuvem e precisam ser carregados. Em algumas modalidades, a estrutura de serviço (por exemplo, através do código de serviço MMCS) pode verificar cada bloco de dados em uma assinatura, por exemplo, por meio dos algoritmos de verificação SHA ou outros algoritmos aplicáveis, como um identificador para o servidor de serviço MMCS (ou serviço) a fim de determinar se o bloco de dados identificado já foi copiado na nuvem.
[00035] Em uma modalidade, os arquivos podem ser referenciados no serviço MMCS. Um dispositivo pode atribuir identificadores arbitrários aos arquivos. O dispositivo pode usar os identificadores para se referir novamente aos arquivos. As referências podem ser periodicamente rastreadas (por exemplo, por um servidor) no serviço MMCS a fim de coletar o lixo dos blocos de dados não referenciados dos arquivos (ou blocos de dados de arquivos).
[00036] As operações de backup para um dispositivo podem ser realizadas em múltiplas fases, tais como a fase de configuração, a fase de digitalização, a fase de backup e/ou outras fases aplicáveis, de modo a se coordenar com múltiplos serviços na nuvem. Cada fase pode corresponder a uma camada abstrato separada de operações de modo a permitir configurações dinâmicas de armazenamentos em nuvem de modo a oportunamente aumentar a eficácia e/ou melhorar o desempenho das operações de backup.
[00037] Por exemplo, durante uma fase de configuração, pode ser determinado se existe um backup (ou estrutura de backup) para um dispositivo em um serviço MBS. O serviço MBS pode ser solicitado a criar o backup com os metadados iniciais para o dispositivo quando não existe nenhum backup para o dispositivo no serviço MBS. Em uma modalidade, o dispositivo pode incluir um cache de backup refletindo uma cópia do backup correspondente ao dispositivo no serviço MBS. O cache de backup pode incluir um ou mais instantâneos anteriormente tirados para o dispositivo.
[00038] Em uma modalidade, o cache de backup pode ser reconstruído (por exemplo, ao consultar o serviço MBS) a fim de se sincronizar com o serviço MBS se necessário (por exemplo, quando instantâneos em cache no cache de backup são desatualizados de acordo com as mensagens comunicadas com o serviço MBS). Opcionalmente ou em adição, quando existe um instantâneo não confirmado no dispositivo, o mesmo poderá ser determinado durante a fase de configuração. Um instantâneo não confirmado pode não corresponder aos instantâneos existentes armazenados no serviço MBS e pode incluir as descrições dos recursos a ser ainda copiados. Um instantâneo não confirmado pode ser criado durante a fase de configuração.
[00039] Em uma modalidade, um dispositivo pode consultar o serviço MBS no sentido de determinar se existe um instantâneo não confirmado, por exemplo, como uma parte de se ter certeza que um cache de backup está atualizado. O dispositivo pode criar um instantâneo não confirmado após a digitalização do seu sistema de arquivos durante uma operação de backup. O cache de backup pode ser incrementalmente atualizado de modo a refletir o que foi copiado com êxito, por exemplo, o serviço MBS e os serviços MMCS.
[00040] Durante a fase de digitalização, o sistema de arquivos do dispositivo pode ser digitalizado a fim de encontrar alterações nos arquivos ou recursos, tais como arquivos novos, arquivos apagados, arquivos modificados, etc. Em uma modalidade, as alterações podem ser identificadas através de uma comparação entre os arquivos digitalizados e os instantâneos armazenados no cache de backup. Quais arquivos já estão copiados e quais arquivos precisam ser copiados podem ser rastreados durante a fase de digitalização.
[00041] Na fase de backup, as operações de backup dos arquivos concretos podem ser realizadas. Por exemplo, um instantâneo pode ser criado se for necessário (por exemplo, quando não há nenhum instantâneo não confirmado disponível). As solicitações podem ser enviadas para o serviço MBS para a criação de entradas de novos arquivos, arquivos modificados e/ou arquivos apagados no serviço MBS. Uma autenticação de quota ou direito de acesso aos armazenamentos em nuvem pode ser recebida a partir do serviço MBS de modo a permitir o envio de uma solicitação de backup para o serviço MMCS. A solicitação de backup pode incluir metadados que descrevem os arquivos ou as alterações de arquivos a copiar.
[00042] Um sinal de autenticação pode ser recebido a partir do serviço MBS a fim de indicar que o backup solicitado está dentro do limite de tamanho de armazenamento de backup imposto pelo serviço MMCS para um dispositivo. O sinal de autenticação pode ser enviado para o serviço MMCS para um conjunto de solicitações de HTTP autorizado (Protocolo de Transferência de Hipertexto) a partir de um dispositivo para um fornecedor de armazenamento. O serviço MMCS pode interagir com os fornecedores de armazenamento (ou serviços em nuvem) no sentido de recuperar uma chave de autorização para o dispositivo. As alterações (por exemplo, adicionar/excluir/remover) de arquivos podem ser carregadas para o serviço em nuvem com a chave de autorização. Quando uma confirmação de um carregamento bem sucedido é recebida do serviço em nuvem, o instantâneo correspondente ao carregamento pode ser confirmado entre o dispositivo e o serviço MBS. Um instantâneo pode ser confirmado, uma vez o mesmo foi criado e o seu conteúdo foi definido, em seguida, enviado para o serviço MMCS.
[00043] Em uma modalidade, o serviço MBS pode ser baseado nos metadados que descrevem os arquivos no nível de arquivo. O serviço MMCS pode depender do conteúdo ou dos dados concretos (por exemplo, os blocos de dados) dos arquivos. As assinaturas de verificação geradas a partir de conteúdo concreto dos arquivos podem ser usadas no serviço MMCS como identificadores para o conteúdo. O serviço MMCS pode determinar se partes do conteúdo identificado pelos identificadores são novas (ou ainda não foram copiadas), por exemplo, em armazenamentos em nuvem. O serviço MBS pode decidir se um arquivo ou arquivos são novos ou foram atualizados de acordo com os metadados associados ao arquivo ou arquivos.
[00044] Em certas modalidades, os serviços de backup, tal como o serviço MBS, podem manter um ou mais backups para um dispositivo. Os backups podem incluir uma semântica que descreve quais são os dados ou arquivos de backup, como manter o controle dos dados copiados, a identidade do dispositivo correspondente, como diferentes backups estão relacionados (por exemplo, com base nos dados de backup, nas relações de backup incrementais, etc.) e/ou outras informações. Em uma modalidade, um backup pode ser associado a um dispositivo com uma conta. Cada conta pode incluir vários dispositivos. O backup pode incluir os vários instantâneos do dispositivo. Por exemplo, os instantâneos podem ser tirados diariamente para os recursos do dispositivo. Cada instantâneo pode descrever os arquivos alterados no dispositivo a partir de um instantâneo anterior no backup.
[00045] Em uma modalidade, os recursos de um dispositivo podem ser copiados com base em múltiplos handshakes (sequências de sinais) de caminho a fim de transmitir arquivos e/ou metadados dos arquivos entre o dispositivo e os serviços, tais como o serviço MBS, o serviço MMCS, os fornecedores (ou armazenamentos) em nuvem e/ou outros serviços aplicáveis. O serviço MBS pode rastrear as referências do serviço MMCS. O serviço MMCS pode rastrear as referências dos fornecedores em nuvem de modo a permitir, por exemplo, que o dispositivo mapeie dinamicamente os arquivos de mapa para os dados estruturados especificados pelos fornecedores.
[00046] Em um exemplo de modalidade, o serviço MMCS pode, de acordo com um fornecedor em nuvem particular, identificar um arquivo em um dispositivo como um item, instruir o dispositivo para dividir o item em blocos de dados, gerar um identificador único para cada bloco de dados e notificar o dispositivo se o dispositivo precisa encaminhar um bloco de dados identificado aos fornecedores em nuvem para backup. O dispositivo pode instruir ou se comunicar com o serviço MBS no sentido de colocar informações em um instantâneo tirado para o dispositivo e/ou tornar o instantâneo consistente com o dispositivo.
[00047] Desta maneira, múltiplos serviços podem prover camadas de vias indiretas para fazer backup dos recursos de um dispositivo a fim de isolar as operações dentro de uma das camadas e evitar as mesmas afetem outras camadas. O serviço MBS pode rastrear os metadados dos recursos a copiar, determinar quais arquivos (ou itens) já existiam sem a necessidade de fazer backup. O serviço MMCS pode ser responsável pelo rastreamento de quais fornecedores de armazenamentos em nuvem armazenam os dados de backup concretos, pelo gerenciamento do direito de uso dos armazenamentos em nuvem para a criação de um bilhete (ou certificado) para ativar o dispositivo e enviar os dados de backup para os armazenamentos em nuvem, e/ou pela realização da coleta de lixo de modo a eliminar as estruturas que representam blocos de dados não mais referenciados para backup. O serviço MBS pode ser isolado dos (ou desconhecer os) armazenamentos em nuvem gerenciados pelo serviço MMCS.
[00048] Em uma modalidade, um instantâneo gerado para operações de backup não pode ser marcado como consistente antes de o instantâneo ser confirmado depois de as operações de backup serem concluídas com êxito. Um número fixo (ou configurado) dos últimos instantâneos (por exemplo, correspondentes aos instantâneos diários por três dias) pode ser armazenado em cache em um dispositivo ou armazenado no serviço MBS. O número de instantâneos pode ser limitado de modo a conservar um espaço de armazenamento. Normalmente, o primeiro (ou o mais recente) um dos instantâneos armazenados pode ser um instantâneo completo descrevendo cada recurso do dispositivo para as correspondentes operações de backup. Os demais instantâneos podem ser instantâneos incrementais que descrevem as alterações de monitoramento dos recursos com relação a um instantâneo anterior dentre os instantâneos.
[00049] Durante a última fase das operações de backup, em uma modalidade, os instantâneos podem ser intercalados de modo a ocultar, por exemplo, os dois ou mais instantâneos mais antigos existentes em um instantâneo completo. Como resultado, o número total de instantâneos armazenados pode ser mantido como um número fixo quando um novo instantâneo é confirmado. Em algumas modalidades, o serviço MBS pode ser notificado (ou instruído) para eliminar e/ou intercalar os instantâneos existentes como uma operação de banco de dados atômica. Em resposta, um reconhecimento pode ser recebido por parte do serviço MBS no sentido de indicar se a operação atômica foi bem sucedida ou não.
[00050] Em certas modalidades, uma fonte de backup, tal como a loja iTunes® pode ser consultada no sentido de identificar uma lista de recursos (por exemplo, aplicativos, ativos adquiridos ou outros ativos) que pode não estar disponível para um novo download. Por exemplo, a fonte de backup pode determinar quais dentre os ativos adquiridos associados a um dispositivo (por exemplo, com base em uma solicitação por parte do dispositivo) não estão disponíveis para um novo download antes de o dispositivo realizar operações de backup de conteúdo. O conteúdo concreto da lista de recursos não disponíveis para um novo download da fonte de backup pode ser arquivado ou copiado através dos serviços de backup, tais como o serviço MBS, o serviço MMCS, etc.
[00051] Em uma modalidade, as comunicações entre um dispositivo e o serviço MBS provêem protocolos de servidor de cliente para o gerenciamento de backups (por exemplo, criação/exclusão) e de instantâneos (por exemplo, criação/exclusão/intercalação/atualização). A atualização de um instantâneo pode ser feita de uma maneira atômica quando todas as alterações em um instantâneo são incorporadas (ou confirmadas) ou quando o instantâneo não é de forma alguma atualizado.
[00052] Em algumas modalidades, os protocolos para o gerenciamento de instantâneos através do serviço MBS podem se basear nos metadados dos arquivos ou recursos para uma comunicação de rede leve e eficiente. Os metadados podem descrever informações sobre os arquivos em um dispositivo, tais como um nome de arquivo, referências aos arquivos, tamanhos carimbos de hora, propriedade, configurações de proteção, ou outros dados aplicáveis associados aos arquivos, sem descrever o conteúdo concreto dos arquivos. Quais arquivos ou ativos precisam ser incluídos nas operações de backup podem ser determinados com base nas descrições dos metadados. Um delta ou as diferenças entre instantâneos separados pode ser rastreado em termos das descrições dos metadados.
[00053] Por exemplo, um dispositivo pode manter um cache utilizando um último valor de tempo modificado. As solicitações e as respostas podem conter o último valor de tempo modificado a fim de acessar, excluir, atualizar, modificar ou executar outras operações em um recurso. Em uma modalidade, as solicitações sobre um recurso pode resultar na atualização do último valor de tempo modificado dos recursos pais do recurso. Por exemplo, a exclusão de um backup de uma conta pode atualizar o último valor de tempo modificado da conta. A adição de arquivos a um instantâneo pode atualizar os últimos valores de tempo modificados do instantâneo, bem como o backup pai e a conta do instantâneo.
[00054] As solicitações de gerenciamento de instantâneos podem permitir a criação de um novo instantâneo não confirmado vazio, a atualização de um instantâneo previamente criado, a exclusão de um instantâneo e/ou a confirmação de um instantâneo. Uma resposta pode indicar um armazenamento insuficiente quando o espaço de reserva para um instantâneo solicitado excede uma quota de uma conta associada. A solicitação pode incluir atributos de instantâneos, tais como nome de dispositivo e números de versão.
[00055] Em uma outra modalidade, uma lista de arquivos com seus atributos pode ser recuperada de um instantâneo por meio de uma solicitação. Um sinal de autorização de serviço MMCS pode ser solicitado para o download de um fluxo de arquivos do serviço MMCS. As solicitações para o gerenciamento de arquivos para instantâneos podem incluir, por exemplo, a criação, a exclusão, a atualização, a marcação, ou outras operações aplicáveis. Uma resposta pode indicar um conflito quando o tamanho dos arquivos em um instantâneo excede o espaço reservado. Em algumas modalidades, a exclusão de um arquivo de um instantâneo poderá apagar o registro de banco de dados subjacente armazenado pelo servidor e o arquivo excluído não mais poderá aparecer na lista de arquivos para o instantâneo. De maneira alternativa, a marcação de um arquivo como excluído pode indicar que o arquivo existe em um instantâneo anterior, porém não mais existe em um dispositivo.
[00056] Os metadados de arquivos em um dispositivo podem corresponder a um nível de abstração no sentido de determinar quais dos arquivos copiar, por exemplo, através do serviço MBS, e/ou criar instantâneos para as operações de backup. As verificações de conteúdo do arquivo concreto (por exemplo, blocos de dados de verificação bit a bit) podem prover um outro nível de abstração a fim de identificar, por exemplo, através do serviço MMCS, qual conteúdo dos arquivos de backup precisa ser carregado. Em uma modalidade, os arquivos separados do mesmo conteúdo podem ser associados a diferentes descrições de metadados. Deste modo, uma comparação com base nas verificações de conteúdo ou nas assinaturas de bloco de dados pode permitir o compartilhamento de armazenamentos de backup (por exemplo, a partir da nuvem) nos arquivos do mesmo conteúdo, mas com diferentes metadados.
[00057] As operações de backup podem ser retomadas e/ou comutadas. Por exemplo, uma operação de backup pode ser interrompida quando a conexão de rede é perdida. A operação de backup poderá ser retomada quando a conexão de rede é restabelecida. Em uma modalidade, quais arquivos copiar para uma operação de backup retomada podem ser determinados com base nas assinaturas geradas a partir de um conteúdo de arquivo (por exemplo, através do serviço MMCS). Quando os arquivos em um sistema de arquivos são alterados antes de uma operação de backup ser interrompida, o sistema de arquivos poderá ser digitalizado outra vez antes de retomar (ou ativar) a operação de backup. Em algumas modalidades, para uma otimização, os carimbos de hora de modificação (ou valores) de um arquivo podem ser comparados com um carimbo de hora correspondente em um cache de backup durante a digitalização de um sistema de arquivos antes de consultar o serviço MMCS no sentido de determinar se o arquivo foi alterado.
[00058] As operações de backup/restauração entre um dispositivo e uma fonte ou hospedeirohospedeiro (computador principal) podem ser interrompidas (ou terminadas) e retomadas com base nas tecnologias de ancoragem de sincronização, tais como uma âncora de dispositivo no dispositivo ou uma âncora de hospedeiro no hospedeiro. Exemplos de tecnologias de ancoragem de sincronização encontram-se descritos na Patente dos Estados Unidos N. 7 807 403 expedida, intitulada "Synchronization Methods and Systems", de Gordon J. Freedman, que é incorporada ao presente documento a título de referência em sua totalidade.
[00059] Em uma modalidade, os recursos podem ser restaurados divididos em um dispositivo a partir múltiplas fontes dinamicamente configuradas. Por exemplo, um ativo adquirido, tais como aplicativos, músicas, imagens, vídeos, programas de TV ou outros dados de mídia, pode ser baixado a partir de uma ou mais lojas na nuvem para o dispositivo quando solicitado. O ativo adquirido pode ser armazenado em um computador local (por exemplo, de propriedade de um usuário do dispositivo) e pronto para restaurar o dispositivo também.
[00060] Em uma modalidade, enquanto o dispositivo está restaurando o ativo adquirido a partir da nuvem (por exemplo, em uma loja), quando em movimento dentro de uma faixa próxima do computador local, uma conexão (por exemplo, conexões com ou sem fio) pode ser estabelecida entre o dispositivo e o computador local. Na detecção da conexão e na disponibilidade do ativo adquirido no computador local, o dispositivo pode comutar dinamicamente as fontes de restauração para o ativo adquirido a partir da nuvem no computador local no sentido de concluir a restauração da parte restante do ativo adquirido (por exemplo, através do software iTunes® hospedado no computador local). Como resultado, o custo da conexão de rede pode ser reduzido e o desempenho da restauração pode ser aumentado.
[00061] Em algumas modalidades, a disponibilidade dos recursos de um dispositivo a partir de várias fontes, tais como lojas, computadores locais ou armazenamentos em nuvem, pode ser rastreada com base nos metadados dos recursos. Se um determinado recurso já existe em uma loja ou em um computador local, o recurso em particular pode ser restaurado a partir das fontes existentes no dispositivo sem a necessidade de copiar o conteúdo concreto do recurso em particular. Por exemplo, os metadados de um recurso podem indicar a propriedade de um recurso adquirido para uma conta associada ao dispositivo. O recurso adquirido pode se tornar prontamente disponível a partir das fontes disponíveis, tais como em lojas a partir da nuvem e/ou em computadores locais. Como resultado, o recurso adquirido pode ser recarregado a partir das fontes disponíveis sem a necessidade de fazer backup.
[00062] Em uma modalidade, os recursos de um dispositivo, tais como configurações, dados de contas, dados de aplicativos e/ou ativos adquiridos, podem ser copiados para um computador local. Porções dos recursos, tais como as configurações e/ou os dados de aplicativos, podem também ser copiadas nos armazenamentos em nuvem. Certas porções dos recursos, tais como o ativo adquirido, pode, ser mantidas e disponíveis nas lojas na nuvem. Um recurso pode ser restaurado do computador local quando disponível e dos armazenamentos em nuvem e/ou das lojas quando o computador local não está conectado ao dispositivo ou quando o recurso não pode ser localizado no computador local. Determinados ativos que podem ser sincronizados através de operações de sincronização com os serviços centrais, tais como emails, calendários e outros recursos aplicáveis, não podem ser copiados por operações de backup.
[00063] Em certas modalidades, os serviços de metadados, tais como o serviço MBS, podem selecionar quais recursos em um dispositivo podem ser copiados ao se prover um sinal de autorização para o dispositivo para operações de backup. Por exemplo, certos aplicativos e/ou dados de terceira parte podem ser filtrados e não podem ser copiados. Em uma modalidade, os dados filtrados a partir de um backup podem incluir diretórios ou documentos declarados pelos aplicativos de terceira parte como não necessitando de ser copiados, tais como os dados armazenados em cache ou índices que podem ser regenerados. De maneira alternativa, os recursos para fazer backup podem ser identificados de acordo com uma limitação de quota no tamanho total dos dados de backup impostos por uma conta associada do dispositivo.
[00064] Em uma modalidade, se todos os recursos são restaurados (ou se as operações de restauração são concluídas) para um dispositivo, os mesmos podem ser rastreados contra múltiplas fontes (por exemplo, lojas em nuvem, computadores locais, lojas, etc.) onde diferentes recursos ou diferentes porções de um determinado recurso poderão ser restaurados do mesmo. Por exemplo, o iTunes® executado em um computador local que se comunica com o dispositivo pode determinar um recurso específico armazenado na nuvem, mas não no computador local do qual o mesmo não foi restaurado de volta para o dispositivo. O recurso em particular pode ser recuperado através do computador local no dispositivo de modo a concluir a operação de restauração.
[00065] Como exemplo, um novo dispositivo, tal como um telefone novo, ativado por uma conta associada a um usuário pode ser restaurado a partir de backups na nuvem da conta. O dispositivo pode iniciar as operações de restauração com um serviço de backup, tal como o serviço MBS com identificadores que identificam a conta e o dispositivo. Por conseguinte, as descrições dos recursos a restaurar podem ser determinadas, por exemplo, com o serviço MBS. Os armazenamentos em nuvem podem ser localizados (por exemplo, através de uma configuração, dinamicamente descobertos, ou obtidos a partir de serviços conectados, etc.) de modo a restaurar os recursos determinados. De maneira alternativa, quando um computador local que executa um aplicativo de serviço de backup correspondente, tal como o iTunes®, se encontra disponível (por exemplo, dentro da faixa de conexão do dispositivo), os recursos podem ser recuperados do computador local sem a necessidade de acessar armazenamentos em nuvem remotos.
[00066] As operações de restauração em um dispositivo podem ser feitas em múltiplas fases, incluindo, por exemplo, uma fase de restauração modal seguido de uma fase de restauração em segundo plano. Os arquivos ou informações essenciais, tais como as configurações ou os metadados, podem ser restaurados primeiramente durante a fase de restauração modal atomicamente (por exemplo, todos os arquivos essenciais são restaurados ou nenhum arquivo é restaurado) de modo a permitir que o dispositivo inicialize uma condição de trabalho e rapidamente se torne disponível a um usuário sem a necessidade de esperar o término do restante das operações de restauração. Durante a fase de restauração modal, o dispositivo pode estar assentando os arquivos do sistema e pode não estar operacional para o recebimento de entradas de usuário. A restauração atômica pode garantir que o dispositivo funcione com um conjunto consistente de dados, mesmo antes de os recursos serem totalmente restaurados.
[00067] Em seguida, durante a fase de restauração em segundo plano, o restante dos recursos necessários para a restauração de um dispositivo pode ser recuperado no segundo plano a partir de fontes de backup disponíveis, tais como armazenamentos em nuvem e/ou computadores locais. Por exemplo, recursos dimensionáveis, tais como o conteúdo concreto de ativos de mídia (por exemplo, fotos, vídeos, arquivos de voz, etc.), os dados de aplicativos de terceira parte, ou outros recursos aplicáveis podem ser recuperados durante a fase de restauração em segundo plano sem afetar a operação do dispositivo ou a capacidade de o usuário usar pelo menos algumas funções ou capacidades do dispositivo, por exemplo, o usuário pode ser capaz de enviar uma mensagem de texto ou navegar na Internet ou fazer uma chamada telefônica de voz na fase de restauração em segundo plano.
[00068] Em uma modalidade, um dispositivo pode ser sincronizado (por exemplo, através de operações de sincronização) com um computador local (por exemplo, um computador iTunes®) que executa o aplicativo iTunes®) de modo a garantir que determinados conteúdos ou recursos (por exemplo, música, aplicativos, podcasts, vídeos, tons de telefone, fotos, notas, configurações de conta de e-mail, contatos, calendários e favoritos) no dispositivo correspondam a um subconjunto selecionado pelo usuário dos correspondentes recursos no computador local. Os dados de aplicativo podem ser copiados do dispositivo no computador local (por exemplo, no backup do iTunes®) quando sincronizados. Os ativos adquiridos, tais como aplicativos ou conteúdos de mídia, podem ser baixados a partir do computador local no dispositivo para sincronização (por exemplo, através da biblioteca do iTunes®).
[00069] Em uma modalidade, as operações de sincronização entre um dispositivo e um computador local podem ser realizadas durante (ou após) a (fase de) restauração em segundo plano do dispositivo. A comunicação ou a conexão entre o dispositivo e o computador iTunes® pode não se encontrar disponível antes da restauração em segundo plano enquanto o dispositivo não tiver ainda sido ativado para uma condição de trabalho. As operações de sincronização podem ser capazes de restaurar ativos (por exemplo, compra de mídia e/ou aplicativos) a partir do computador local (por exemplo, como bibliotecas do iTunes®) no dispositivo.
[00070] Opcionalmente ou em adição, as operações de sincronização podem restaurar dados de aplicativos ou os dados de usuário em um dispositivo de um computador local (por exemplo, como backup do iTunes®). Em uma modalidade, as operações de sincronização podem incluir uma comparação entre o computador iTunes® e o dispositivo a fim de identificar uma lista de recursos a serem sincronizados com o dispositivo. As operações de restauração e as operações de sincronização pode se basear em um módulo comum, tal como o código ATC (Controlador de Tráfego Aéreo) executado no dispositivo para a recuperação de um conteúdo concreto ou dados de bits a partir de fontes aplicáveis. O controlador ATC pode automaticamente notar um evento de sistema, tal como o evento de sincronização do iTunes® (ou correspondente) quando o dispositivo é acoplado ou conectado a um dispositivo iTunes® para a transferência de recursos do dispositivo iTunes® para as operações de sincronização e/ou operações de restauração.
[00071] Em uma modalidade, as operações de restauração em um dispositivo podem ser verificadas com um serviço de backup conectado (por exemplo, um computador iTunes® ou o serviço MBS) a fim de determinar a melhor fonte para a restauração de um recurso. Diferentes fontes podem ser identificadas para recursos ou ativos separados, tais como armazenamentos de backup na nuvem (ou backup em nuvem), backups no computador local (por exemplo, backup do iTunes®), lojas (por exemplo, lojas de iTunes®) na nuvem, bibliotecas locais (por exemplo, bibliotecas do iTunes®) no computador local. Uma categoria de dados pode ser restaurada de uma fonte, enquanto outra categoria de dados de uma fonte separada. Por exemplo, fotos podem ser restauradas a partir de um armazenamento em nuvem, um conteúdo de música das lojas, os aplicativos das bibliotecas locais, os dados de aplicativo dos armazenamentos em nuvem, etc. Normalmente, as fontes no computador local podem ser preferidas com relação às fontes da nuvem, em função de, por exemplo, custos de conexão menos dispendiosos e/ou maior largura de banda de rede disponível.
[00072] Em algumas modalidades, as operações de sincronização podem ser realizadas em múltiplas fases, tais como uma fase de transação seguida de uma fase de melhor esforço. Durante a fase de transação, os metadados podem ser identificados no sentido de descrever uma lista de recursos para sincronização entre um dispositivo e um computador local. Os metadados podem ser recebidos do computador local em uma forma de transação (por exemplo, tudo ou nada). Durante a fase de melhor esforço, os ativos descritos pelos metadados podem ser sincronizados no dispositivo a partir de diferentes fontes dinamicamente determinadas, considerando, por exemplo, disponibilidade, desempenho, custo e/ou outros fatores aplicáveis.
[00073] Em certas modalidades, diferentes fontes para a restauração de recursos podem ser dinamicamente identificadas com base, por exemplo, nos metadados associados aos recursos. As operações de sincronização podem acrescentar as descrições de uma lista de recursos necessários para sincronização em um dispositivo de um computador localmente acoplado ou conectado (por exemplo, o computador iTunes®). Um ativo adquirido, tal como uma música, um vídeo, um filme, um aplicativo, etc., pode ser transferido das lojas na nuvem ou de um computador local (por exemplo, através da biblioteca do iTunes®). Uma mídia não comprada ou adquirida em uma loja, tal como uma foto tirada por um usuário ou um vídeo baixado de outros dispositivos, pode ser restaurada do armazenamento em nuvem ou do computador local (por exemplo, através do backup do iTunes®).
[00074] Configurações dinâmicas de ordem de restauração podem ser vantajosamente aplicadas em fases posteriores (por exemplo, após a primeira fase ou fase modal) de restauração de múltiplas fases a fim de melhorar a eficiência e/ou a usabilidade de um dispositivo. Por exemplo, uma lista de recursos ou ativos pode ser identificada para restauração na fase inicial (ou primeira fase) da restauração. Durante uma fase de restauração posterior, tal como uma fase em segundo plano para a transferência de dados concretos, a seleção de qual dentre os recursos identificados restaurar em seguida pode seguir uma ordem de prioridade dinamicamente determinada de forma instantânea. Vários recursos podem ser transferidos ao mesmo tempo para restauração, por exemplo, através de múltiplos encadeamentos ou processos.
[00075] De acordo com um status de trabalho de um dispositivo e/ou de vários critérios heurísticos configurados para os recursos a ser ainda restaurados ou que estão sendo restaurados, a ordem de seleção do(s) recurso(s) seguinte(s) a transferir só pode ser alterado durante um tempo de execução. Por exemplo, os recursos de um tamanho menor e/ou que requerem menos tempo de transferência (por exemplo, uma largura de banda maior disponível para as fontes associadas) podem ser classificados como mais altos (por exemplo, com maior probabilidade de serem selecionados como o recurso seguinte a restaurar).
[00076] Em uma modalidade, o uso de um dispositivo pode ser rastreado no sentido de determinar como os recursos devem ser ordenados ou priorizados para restauração de modo a aumentar a usabilidade do dispositivo. Por exemplo, os recursos podem ser ordenados de acordo com os aplicativos associados. Em certas modalidades, os recursos dos aplicativos utilizados mais recentemente podem ser atribuídos com uma prioridade mais alta do que os recursos dos aplicativos utilizados anteriormente. Um aplicativo usado atualmente (por exemplo, uma reprodução de filme ou vídeo) pode ser identificado como o aplicativo usado mais recentemente em antecipação a um dado de aplicativo associado ao aplicativo que poderá ser logo acessado por um usuário.
[00077] Em algumas modalidades, os recursos a restaurar podem ser priorizados de acordo com a ordem de exibição dos ícones associados aos recursos. Por exemplo, um ícone de aplicativo e/ou um ícone de mídia associado a um recurso podem ser apresentados em uma tela de um dispositivo de acordo com a ordem de exibição. A ordem de exibição pode refletir uma prioridade implicitamente especificada por um usuário do dispositivo. Opcionalmente ou em adição, as entradas de usuário (por exemplo, tocando em uma tela de vídeo) podem ser recebidas de modo a controlar dinamicamente como os recursos devem ser transferidos (por exemplo, pausando, reiniciando, iniciando, etc.).
[00078] Em uma modalidade, uma lista de recursos a restaurar pode ser construída com uma ordem atribuída com base em características heuristicamente configuradas e/ou em fatores dinamicamente identificados. As características podem incluir informações canônicas sobre um recurso, tais como tamanho, tipo, localização, e/ou outros metadados aplicáveis associados ao recurso. Por exemplo, um recurso de um tipo de ativo adquirido pode ser de maior prioridade a restaurar do que outro recurso de um tipo de conteúdo criado pelo usuário. A localização de um recurso pode indicar onde o recurso foi gerado ou adquirido para um dispositivo. Um recurso associado a uma localização mais próxima de uma localização atual do dispositivo pode ser de uma prioridade mais alta do que outro recurso com uma outra localização mais afastada do dispositivo.
[00079] Fatores dinâmicos podem ser determinados em tempo real com base nos ambientes de trabalho em constante mudança ou nos padrões de uso em um dispositivo. Por exemplo, os fatores dinâmicos podem incluir as fontes (de restauração) disponíveis (por exemplo, armazenamentos em nuvem, lojas, computadores locais, etc.), o histórico de uso dos aplicativos, a ordem de exibição associada aos ícones de aplicativo, as entradas de usuário ou outros fatores aplicáveis. Tipicamente, um recurso que pode ser transferido a partir de uma fonte disponível pode ser de uma prioridade mais elevada do que outro recurso não encontrado a partir das fontes disponíveis no momento. O histórico de uso de um recurso pode incluir, por exemplo, a frequência, a última vez que o recurso foi acessado (por exemplo, através de um aplicativo), a contagem de uso, e/ou outras estatísticas de uso. Um recurso com uma frequência maior de uso pode ser classificado mais alto.
[00080] Em uma modalidade, uma lista inicial de recursos a restaurar pode ser construída durante uma primeira fase (por exemplo, na fase modal) de uma restauração de múltiplas fases. As características heuristicamente determinadas e/ou os fatores dinâmicos podem ser representados como pesos heurísticos atribuídos e combinados de modo a determinar uma ordem de restauração entre a lista de recursos, por exemplo, de acordo com um peso heurístico combinado separado para cada recurso. Durante uma fase posterior de restauração, o(s) recurso(s) com maior peso pode(m) ser selecionado(s) próximo(s) ao download.
[00081] Por exemplo, uma lista ordenada de recursos a restaurar pode ser encaminhada para um processo de restauração capaz de restaurar os recursos dentre pelo menos uma fonte de restauração (por exemplo, armazenamento em nuvem, loja, e/ou computador iTunes®). O processo de restauração pode rastrear um status de restauração, monitorar as alterações de ambiente (por exemplo, as conexões de rede, o status de potência), detectar as entradas de usuário, etc., a fim de alterar a ordem dos recursos a restaurar. A restauração pode ser interrompida (por exemplo, através de uma entrada de usuário e/ou por uma mudança de ambiente) no sentido de reconstruir uma nova lista de recursos com uma nova ordem a retomar com a lista recém-construída.
[00082] Em uma modalidade, uma fila de recursos a restaurar a partir de uma fonte em particular (por exemplo, um computador iTunes®, ou um armazenamento em nuvem, etc.) pode ser mantida de acordo com uma lista ordenada atual dos recursos identificados a restaurar. Filas separadas podem ser mantidas para diferentes fontes. Em algumas modalidades, uma vez que a lista de recursos é construída dinamicamente durante o tempo de execução (por exemplo, devido a uma interrupção de usuário, uma seleção e/ou outros eventos de sistema, etc.), cada fila pode ser atualizada (por exemplo, ao movimentar um recurso em particular para o topo da fila) de acordo com uma lista de recursos recém-construída no sentido de continuar a restauração.
[00083] Em algumas modalidades, o conteúdo concreto dos recursos pode ser restaurado de uma forma cooperativa de acordo com o modo como os recursos são usados por meio de um dispositivo. Por exemplo, os recursos podem ser colocados em um modo seguro em torno de um aplicativo de modo a permitir que o aplicativo se torne rapidamente acessível ao restaurar o dispositivo. Os programas aplicativos e os dados de aplicativos associados (ou configurações) podem ficar em um modo seguro para serem restaurados em conjunto.
[00084] A dependência dos recursos para um aplicativo, tal como um programa executável, bibliotecas, configurações de aplicativos, dados de aplicativos (ou os dados de usuário, tais como os documentos criados pelo usuário por meio do aplicativo), etc., pode ser mantida dentro de um modo seguro no sentido de identificar uma ordem para a restauração desses recursos em um dispositivo. O aplicativo pode ser disponibilizado para um usuário do dispositivo mesmo antes de todos os recursos em área restrita serem restaurados. Por exemplo, a execução de um aplicativo tocador de música pode exigir as configurações do tocador a ser restaurado antes de os arquivos de conteúdo de música serem transferidos para o dispositivo.
[00085] Em uma modalidade, a restauração de múltiplas fases poderá se coordenar com uma interface de usuário de modo a permitir que um usuário interaja com um dispositivo durante a restauração (por exemplo, antes de o dispositivo ser totalmente restaurado). Espaços reservados podem ser apresentados para um status de atualização em tempo real ou em andamento para cada fase de restauração. A transferência concreta de recursos pode ser dinamicamente reordenada de acordo com as entradas recebidas através da interface de usuário.
[00086] Por exemplo, um aplicativo (por exemplo, um visualizador de fotos, um reprodutor de vídeo, um tocador de música, etc.) e as configurações de aplicativos associadas podem ser restaurados de modo a apresentar um ícone de aplicativo correspondente em uma interface de usuário a fim de indicar que o aplicativo se encontra disponível. Ao detectar interações de usuário com o aplicativo (por exemplo, olhar uma foto), uma prioridade maior poderá ser atribuída aos recursos relacionados aos dados de aplicativos associados (por exemplo, fotografias) para a alteração dinâmica da ordem de restauração.
[00087] Em uma modalidade, um estado de restauração para um aplicativo pode ser rastreado pelo aplicativo quando um dispositivo está sendo restaurado. Um estado de restauração para o aplicativo pode ser apresentado, por exemplo, através de um elemento de interface de usuário do tipo "roleta", uma representação tal como um indicador de progresso do tipo termômetro, ou outros elementos de interface de usuário aplicáveis. O fato de os ativos para o aplicativo estarem disponíveis ou não poderá ser indicado através da interface de usuário.
[00088] Em certas modalidades, os elementos de interface de usuário para apresentar um estado de restauração podem incluir um indicador de progresso compósito com base em uma combinação de fatores que afetam a velocidade geral da restauração. Os fatores podem ser computados de acordo com, por exemplo, o tamanho de um aplicativo, a velocidade de download de um aplicativo dentre as fontes de aplicativos, o tamanho dos dados de usuário, a velocidade de download dos dados de usuário a partir das fontes de dados de usuário, o tempo de instalação, o tempo de decodificação do conteúdo de mídia (por exemplo, música, dados criptografados, etc.) e/ou outros fatores aplicáveis. O indicador de progresso compósito pode ser apresentado ou exibido como um indicador intuitivo único do tipo termômetro, um indicador do tipo gráfico de pizza ou outro indicador do tipo interface de usuário aplicável, dependendo, por exemplo, do tipo de mídia e/ou contexto (por exemplo, para um contexto do tipo trampolim, um aplicativo iPod®, etc.).
[00089] Em algumas modalidades, diferentes componentes/funções de interface de usuário podem ser apresentados (ou ativados) de acordo com um estado de restauração. Por exemplo, os ativos que devem ser restaurados (por exemplo, em uma primeira fase de restauração), mas ainda não foram restaurados podem ser identificados em cinza, por exemplo, de modo a desabilitar a ativação de usuário de um aplicativo para os ativos. No entanto, certas operações de interface de usuário, tais como reordenar, renomear e/ou apagar, podem ser permitidas para os ativos ainda não restaurados. Em algumas modalidades, o estado de restauração pode incluir a disponibilidade ou a indisponibilidade de um ativo. Um módulo de interface de fonte pode determinar se o ativo a restaurar a partir de uma fonte (por exemplo, uma loja iTunes®, uma loja de ativos ou outros armazenamentos aplicáveis) não se encontra disponível no momento, por exemplo, não está presente na fonte e/ou associado a uma credencial de acesso incorreta (por exemplo, uma senha incluída nos metadados do ativo).
[00090] Em uma modalidade, uma lista de recursos ou ativos identificados para restauração pode ser mantida, por exemplo, no módulo controlador ATC ou em um módulo comum para ambas as operações de sincronização e restauração, de modo a alterar dinamicamente a ordem de restauração e/ou reportar o andamento da restauração. Os aplicativos podem ter acesso ao andamento de restauração através de módulos plug-in (por exemplo, bibliotecas) e/ou API (interface de programas aplicativos). Por conseguinte, os aplicativos podem prover uma atualização em tempo real do progresso da restauração através de operações de interface de usuário, por exemplo, desativando um ícone, girando um ícone, movimentando uma barra de progresso ou outras mudanças de interface de usuário aplicáveis, etc. Por exemplo, uma interface de usuário pode apresentar um progresso da restauração em um aplicativo a fim de indicar que 20 % ou outro percentual de ativos já foram restaurados naquele aplicativo.
[00091] O aplicativo pode interromper ou alterar as operações de restauração que trabalham na fase em segundo plano. Por exemplo, um usuário pode bater em um aplicativo de ativo de mídia (por exemplo, uma música ou um vídeo) comprado em uma loja. Em resposta, o aplicativo pode solicitar, por exemplo, através de módulos plug-in ou interfaces API, uma redefinição de prioridades de transferências de ativos, por exemplo, através do módulo controlador ATC. Um módulo de interface de fonte (por exemplo, armazenado no programa itune) de uma loja de ativos na nuvem pode ser instruído a colocar o ativo de mídia como colocado pelo usuário no topo de uma fila associada a fim de retomar sua restauração ou transferência.
[00092] Em uma modalidade, um dispositivo pode monitorar um estado de fontes de alimentação durante as operações de backup de modo a manter as experiências de usuário robustas. Ao detectar um evento de sistema relacionado a uma mudança de fontes de alimentação, o dispositivo poderá finalizar ou cancelar processos (por exemplo, em segundo plano) a fim de copiar (ou restaurar) os recursos de forma transparente sem ser notado por um usuário. O evento de sistema pode ser causado, por exemplo, ao desligar ou desconectar um cabo de alimentação, almofada indutiva, ou outro mecanismo de transferência de energia, no dispositivo.
[00093] Em algumas modalidades, um evento pode ser gerado com base no monitoramento se o dispositivo está conectado a uma fonte de alimentação com potência suficiente (por exemplo, para interromper o backup quando a fonte de alimentação não tem potência suficiente). De maneira alternativa ou, opcionalmente, um evento pode se basear em se uma tela de um dispositivo está ligada ou desligada e/ou em um status de conexão de rede do dispositivo. Por exemplo, quando a tela é ligada (por exemplo, por qualquer motivo), o backup automático do dispositivo pode ser cancelado a fim de evitar um impacto sobre o desempenho da interface de usuário. Quando o evento indica que o dispositivo não mais está conectado a uma rede Wi-Fi, por exemplo, o backup automático poderá ser interrompido a fim de evitar o uso de dados de celular através de uma rede de telefone celular.
[00094] Em algumas modalidades, alertas podem ser emitidos de modo a prover ao usuário uma opção para que o mesmo selecione se deseja continuar o backup/restauração ou não. O dispositivo pode permanecer ligado em uma condição de trabalho, por exemplo, a fim de economizar bateria, sem o desperdício de energia causado pelas operações de backup/restauração em segundo plano desconhecidas ao usuário.
[00095] Em uma modalidade, um estado de backup/restauração pode ser mantido em um dispositivo de modo a permitir que as operações de backup/restauração sejam retomadas, por exemplo, quando uma linha de energia externa é novamente ligada. As operações de backup podem ser retomadas a fim de verificar novamente o dispositivo no sentido de identificar quais recursos foram copiados sem executar desnecessárias operações de backup nos recursos que já foram copiados anteriormente, por exemplo, quando a linha de energia externa está desligada.
[00096] A Figura 1 é um diagrama de blocos que ilustra uma modalidade de sistemas de rede de backup e restauração de múltiplas fontes de múltiplas fases de acordo com uma modalidade descrita no presente documento. Os sistemas em rede 100 podem incluir redes dinamicamente configuradas 109 conectadas aos serviços 101, 103,105, 107, 117 e aos dispositivos 111, 113. Por exemplo, o dispositivo cliente 113, tal como um dispositivo de telefone, pode ser esporadicamente conectado ao serviço de loja de ativos 107 dependendo de onde o dispositivo 113 está localizado. O dispositivo 113 pode ser localmente acoplado ou diretamente conectado (por exemplo, através de um fio) a um dispositivo de backup local 111, que pode ser um computador desktop capaz de acessar dispositivos de armazenamento em massa, tais como discos rígidos, dispositivos de estado sólido, memórias rápidas ou outros serviços de armazenamento. Em uma modalidade, o dispositivo cliente 113 pode ser copiado e/ou restaurado através de múltiplas fontes (por exemplo, servidores, serviços ou dispositivos locais) 101, 103, 105, 107, 111, 117 identificadas de forma instantânea. Os serviços ou fontes de backup, tais como os serviços 101, 103, 105, 107, 111, 117 ou outros serviços de conteúdo aplicáveis, podem ser capazes de restaurar um ativo ou conteúdo em um dispositivo, tal como o dispositivo 113, quando solicitado, sem a necessidade de o dispositivo copiar o ativo.
[00097] A Figura 2 é um diagrama de blocos que ilustra um sistema exemplar para o backup e restauração de múltiplas fontes de múltiplas fases de acordo com uma modalidade descrita no presente documento. Em uma modalidade, o sistema 200 pode ser baseado no dispositivo cliente 113 da Figura 1, executado em um ambiente operacional 201, que pode ser baseado no sistema operacional iOS® da Apple Inc. ou em outros sistemas operacionais aplicáveis
[00098] O sistema 201 pode incluir um módulo de gerenciamento de backup/restauração 207 para copiar e restaurar os recursos de um dispositivo com fontes selecionadas através do módulo de interface de rede 203. Os recursos podem incluir, por exemplo, os arquivos do sistema de arquivos 217. O módulo 207 pode iniciar operações de backup/restauração em uma programação configurável pelo usuário, por exemplo, diariamente, semanalmente e/ou sob a demanda de solicitações recebidas através de dispositivos remotos e/ou entradas de usuário. Em algumas modalidades, o módulo 207 pode interromper ou retomar as operações de backup/restauração em resposta a eventos de sistema, tais como perda de energia externa (por exemplo, quando um cabo de energia externa é desligado), monitorados através do módulo manipulador processador de eventos de sistema 205.
[00099] O banco de dados local 209 pode armazenar em cache ou armazenar um ou mais instantâneos copiados em um dispositivo. Um instantâneo pode representar um estado dos recursos de um dispositivo copiado em um determinado ponto no tempo. As operações de backup/restauração podem permitir que o sistema 201 volte a um estado anterior correspondente a um instantâneo.
[000100] Em uma modalidade, um ou mais aplicativos, tal como o aplicativo 213, podem se comunicar com o módulo de gerenciamento de backup/restauração 207 através, por exemplo, do módulo de interface de status 221. O aplicativo 213 pode se ligar ao módulo de interface de status 221 como um plug-in ou através de interfaces API. Em uma modalidade, o aplicativo 213 pode acessar o status de backup/restauração de recursos associados de modo a apresentar um progresso através do módulo de interface de usuário 225.
[000101] De maneira alternativa, o aplicativo 213 pode retransmitir uma solicitação de usuário, por exemplo, uma ação de toque de usuário, recebida através do módulo de interface de usuário 225 para o módulo 207 para a reordenação ou alteração das operações de backup/restauração em tempo real. A solicitação de usuário pode ser recebida através de tecnologias baseadas em tela sensível ao toque, baseadas em mouse, baseadas em cursor, ou em outras tecnologias de interface de usuário aplicáveis. Em uma modalidade, um histórico de uso do aplicativo 213, tais como contagens de uso, frequência de uso, tempos de uso, ou outras estatísticas de uso aplicáveis, etc. podem ser registrados no histórico de uso 211. O módulo 207 pode configurar dinamicamente operações de backup/restauração com base em informações coletadas através do histórico de uso 211.
[000102] A Figura 3 é um diagrama de blocos que ilustra um sistema exemplar para o gerenciamento de backup e restauração em múltiplas fases utilizando múltiplas fontes de acordo com uma modalidade descrita no presente documento. O sistema 300 pode ser baseado no sistema 200 da Figura 2, incluindo o módulo de gerenciamento de backup/restauração 207. Em uma modalidade, o sistema 300 pode incluir uma estrutura de serviço 309 capaz de descobrir e/ou fazer interface com múltiplas fontes de backup/restauração para a realização de operações de backup/restauração.
[000103] Por exemplo, o módulo de interface de armazenamento 301 (por exemplo, executado como um processo armazenado em itune) pode se comunicar com lojas disponíveis, tais como a loja 107 da Figura 1, para a transferência de recursos adquiridos. O módulo de interface na nuvem 307 pode se comunicar com os armazenamentos em nuvem, tal como o serviço de backup na nuvem 101 da Figura 1, para a transferência dos conteúdos concretos para os recursos de backup/restauração em um dispositivo. O módulo de interface de dispositivo local 305 (por exemplo, executado como um processo ituned) pode copiar, restaurar e/ou sincronizar os recursos através da troca de mensagens com o correspondente serviço em execução em um computador local, tal como o iTunes® hospedado no dispositivo de backup local 111 da Figura 1. Em uma modalidade, os módulos de interface 301, 305, 307 podem compartilhar um motor de interface comum 303, tal como o motor ou módulo controlador ATC, que pode ser capaz de realizar a transferência de dados em um nível inferior de abstração do que os módulos de interface 301, 305, 307.
[000104] O módulo manipuladormanipulador processador de múltiplas fases 311 (por exemplo, em execução como um processo de backup) pode gerenciar diferentes fases de operações de backup/restauração. Por exemplo, o módulo manipulador processador de múltiplas fases 311 pode iniciar (por exemplo, de acordo com um cronograma configurado) as operações de backup com o serviço de backup 105 a fim de identificar as descrições de um instantâneo de recursos a copiar. Em uma modalidade, o módulo manipulador processador de múltiplas fases 311 pode identificar quais recursos restaurar em uma fase modal (ou primeira fase) e/ou as fases subsequentes (por exemplo, a fase em segundo plano), que pode ser menos modal (por exemplo, permitindo interações com um usuário).
[000105] Em algumas modalidades, o módulo manipulador processador de filas de recursos 313 pode reorganizar dinamicamente os recursos a restaurar e/ou copiar de acordo, por exemplo, com a heurística configurada e/ou com as solicitações de usuário. Os recursos ou ativos podem ser transferidos para/a partir de diferentes fontes ordenadas de acordo com as filas separadas da estrutura de serviço 309. Em uma modalidade, em resposta a uma ação de toque do usuário ou outras ações de interface de usuário UI (por exemplo, um clique no mouse, um comando de voz, uma seleção de teclado, gestos, etc.), recebida de um aplicativo durante uma restauração (por exemplo, no segundo plano) de um dispositivo, o módulo manipulador processador de filas de recursos 313 pode novamente priorizar os recursos a ser ainda restaurados a favor do aplicativo. O módulo manipulador processador de filas de recursos 313 pode instruir a estrutura de serviço 309 a atualizar as filas de modo a permitir uma maior prioridade, por exemplo, para os recursos de download associados ao aplicativo.
[000106] A Figura 4 é um fluxograma que ilustra uma modalidade de um processo para a execução de operações de backup incrementais em um dispositivo de acordo com uma modalidade descrita no presente documento. O processo exemplar 400 pode ser realizado por uma lógica de processamento que pode compreender um hardware (circuito, lógica dedicada, etc.), um software (tal como é executado em uma máquina dedicada), ou uma combinação de ambos. Por exemplo, o processo 400 pode ser realizado por alguns componentes do sistema 200 da Figura 2.
[000107] Em uma modalidade, a lógica de processamento de processo 400 pode executar operações de backup que incluem pelo menos duas etapas. A lógica de processamento do processo 400 pode transmitir metadados para um serviço de backup (por exemplo, o serviço MBS) a fim de receber os tokens do serviço de backup para autenticação com um serviço de conteúdo (por exemplo, o serviço MMCS). Em seguida, a lógica de processamento do processo 400 pode carregar o conteúdo concreto para o serviço de conteúdo usando os tokens. Os metadados para os arquivos no serviço de backup podem ser atualizados com os tokens de autenticação.
[000108] No bloco 401, a lógica de processamento do processo 400 pode localizar um backup correspondente a um dispositivo em um servidor de gerenciamento de backup (por exemplo, o serviço MBS). O backup pode ser recém-criado quando nenhum backup existente correspondente ao dispositivo é encontrado. No bloco 403, a lógica de processamento do processo 400 pode reconstruir um cache de instantâneo (ou cache manifesto) para sincronização com o servidor de gerenciamento de backup. No bloco 405, a lógica de processamento do processo 400 pode identificar um instantâneo de uma operação de backup anterior. O instantâneo identificado pode ser um instantâneo não confirmado ou um instantâneo recém-criado. O instantâneo identificado pode incluir metadados que descrevem os arquivos em um sistema de arquivos.
[000109] No bloco 407, a lógica de processamento do processo 400 pode digitalizar o sistema de arquivos para alterações do sistema de arquivos (por exemplo, novos arquivos, arquivos apagados, arquivos modificados, etc.), por exemplo, através de uma comparação com o instantâneo identificado. No bloco 409, a lógica de processamento do processo 400 pode executar operações de backup através de transações coordenadas com o servidor de gerenciamento de backup, um servidor de gerenciamento de serviço de backup (por exemplo, o serviço MMCS) e um servidor de fornecedor de armazenamento (por exemplo, Amazon, S3, ou armazenamento em nuvem, etc.). No bloco 411, a lógica de processamento do processo 400 pode intercalar os instantâneos previamente criados (por exemplo, excluindo os instantâneos antigos e/ou mantendo um instantâneo completo correspondente a um conjunto completo de arquivos com múltiplos instantâneos incrementais, cada qual correspondendo a mudanças incrementais no conjunto de arquivos de um instantâneo anterior).
[000110] A Figura 5 é um fluxograma que ilustra uma modalidade de um processo para a execução das operações de restauração incrementais em um dispositivo de acordo com uma modalidade descrita no presente documento. O processo exemplar 500 pode ser realizado por uma lógica de processamento que pode compreender um hardware (circuito, lógica dedicada, etc.), um software (tal como é executado em uma máquina dedicada), ou uma combinação de ambos. Por exemplo, o processo 500 pode ser realizado por alguns componentes do sistema 200 da Figura 2.
[000111] No bloco 501, a lógica de processamento do processo 500 pode restaurar os arquivos de sistema modais em um dispositivo (por exemplo, o dispositivo iOS ®) a partir de backups na nuvem, sem responder às entradas de um usuário. Um sistema operacional do dispositivo pode estar disponível e em execução durante a restauração modal. No bloco 503, a lógica de processamento do processo 500 pode reiniciar o dispositivo com os arquivos de sistema restaurados para uma condição de trabalho ao usuário.
[000112] No bloco 505, a lógica de processamento do processo 500 pode restaurar arquivos no dispositivo no segundo plano. Os ativos (por exemplo, comprados ou transferidos) podem ser baixados a partir de lojas em nuvem (por exemplo, as lojas iTunes®) e os dados podem ser restaurados a partir de backups na nuvem. No bloco 507, a lógica de processamento do processo 500 pode sincronizar/restaurar dividido os arquivos dos computadores de usuários (por exemplo, executando o software de backup do iTunes®). Os arquivos podem incluir os ativos adquiridos e/ou os dados não restaurados a partir do backup em nuvem.
[000113] A Figura 6 é um fluxograma que ilustra uma modalidade de um processo para priorizar dinamicamente os recursos a restaurar em um dispositivo de acordo com uma modalidade descrita no presente documento. O processo exemplar 600 pode ser realizado por uma lógica de processamento que pode incluir um hardware (circuito, lógica dedicada, etc.), um software (tal como é executado em uma máquina dedicada), ou uma combinação de ambos. Por exemplo, o processo 600 pode ser realizado por alguns componentes do sistema 200 da Figura 2.
[000114] No bloco 601, a lógica de processamento do processo 600 pode rastrear os padrões de uso (por exemplo, número de vezes, tempo de uso, local de uso, tempo de uso, etc.) dos aplicativos e/ou conteúdos hospedados em um dispositivo (por exemplo, o dispositivo móvel baseado no iOS®). No bloco 603, a lógica de processamento do processo 600 pode criar uma lista de aplicativos e/ou conteúdos a restaurar no dispositivo. No bloco 605, a lógica de processamento do processo 600 pode determinar a localização atual do dispositivo. No bloco 607, a lógica de processamento do processo 600 pode priorizar a lista de aplicativos e/ou conteúdos a restaurar com uma ordem baseada nos padrões de uso, nos metadados aplicáveis associados aos aplicativos e/ou conteúdos (por exemplo, tamanho, tipo, etc.) e/ou na disponibilidade no local atual.
[000115] No bloco 609, a lógica de processamento do processo 600 pode restaurar aplicativos e/ou conteúdos no dispositivo no local atual utilizando a lista de prioridades. No bloco 611, a lógica de processamento de processo 600 pode detectar uma solicitação de usuário, por exemplo, através de uma entrada de toque, indicando uma prioridade de restauração desejada, sobre um ou mais aplicativos/conteúdos. No bloco 613, a lógica de processamento do processo 600 pode alterar dinamicamente a ordem da lista de prioridades de aplicativos e/ou conteúdos a restaurar de acordo com a prioridade de restauração desejada solicitada.
[000116] A Figura 7 é um diagrama de blocos que ilustra um sistema exemplar para o monitoramento das fontes de energia de um dispositivo para operações de backup e/ou restauração de acordo com uma modalidade descrita no presente documento. O sistema 700 pode se basear em um dispositivo de cliente, tal como o dispositivo 113 da Figura 1.
[000117] O sistema 700 pode ser configurado de modo a terminar uma operação de backup por ondas eletromagnéticas (sem fio) que foi iniciada e se encontra em andamento, em resposta à detecção se a recarga de uma fonte de alimentação externa (por exemplo, um adaptador AC/DC, um painel solar, uma almofada de carga indutiva, etc.) 719 parou. O sistema 700 inclui uma porta de alimentação externa 713, tal como uma tomada ou soquete para um plugue que é acoplado a uma saída de um adaptador de corrente AC/DC ou outra fonte de alimentação externa, e uma bateria 717 que é recarregada, sob o controle de um controlador de recarga.
[000118] Um detector de potência 709 é acoplado à porta de alimentação externa e é acoplado a um sistema de processamento 711, que pode ser um sistema baseado em microprocessador em um chip, ou a outros sistemas de processamento; o detector de potência monitora a disponibilidade da fonte de alimentação externa e o estado do processo de recarga e determina, com base nesse monitoramento, se o processo de recarga foi finalizado como resultado de uma desconexão da fonte de alimentação externa. O detector de potência pode, em resposta à detecção se o processo de carga terminou, como resultado da desconexão, gerar um sinal de terminação (por exemplo, um sinal de interrupção em um barramento que é acoplado ao sistema de processamento), o que faz com que o sistema de processamento encerre as operações de backup sem fio.
[000119] Em uma modalidade, a operação de backup é iniciada e se encontra em andamento antes do término e copia um software ou os dados de usuário (por exemplo, contatos, entradas de calendário, arquivos de texto de usuário, arquivos de mídia de usuário, tais como músicas ou fotos, etc.) ou ambos, os quais podem ser armazenados na memória 715 do sistema 700. O sistema de processamento no sistema 700 pode executar qualquer um dentre os métodos de backup descritos no presente documento de modo a fazer com que o software e/ou os dados de usuário sejam armazenados, por meio das operações de backup, em um dispositivo remoto, tal como um servidor 701 acoplado a uma rede 703. O processo de backup é realizado sem fio através de um ou mais rádios (por exemplo, um rádio Wi-Fi ou um rádio de telefone celular 707) no sistema 700, e estes rádios são acoplados ao sistema de processamento no sistema 700 e são acoplados a uma ou mais redes. A rede pode ser uma rede única (por exemplo, uma rede LAN sem fio) ou uma pluralidade de redes ou uma rede de telefonia celular que é acoplada à Internet, etc.
[000120] Em resposta ao sinal de término, o sistema de processamento pode terminar o processo de backup em andamento (que se encontra incompleto neste ponto) imediatamente ou após a conclusão da operação de backup no arquivo atualmente processado na operação de backup. O sistema de processamento e/ou um ou mais servidores descritos no presente documento podem usar assinaturas ou âncoras de sincronização ou outros mecanismos a fim de manter o controle de operações de backup atômicas de modo a ter o controle do que foi concluído em uma operação de backup prematuramente encerrada e do que não foi concluído na operação de backup prematuramente encerrada. O término da operação de backup pode ser realizado automaticamente pelo sistema 700 e sem a solicitação ou interação do usuário.
[000121] O processo de backup pode retomar a partir do estado finalizado quando o sistema 700 é novamente recarregado a partir de uma fonte de alimentação externa. Em uma modalidade, o sistema 700 é copiado de acordo com um ou mais métodos descritos no presente documento quando o mesmo está sendo recarregado por meio de uma fonte de alimentação externa, e encerra o backup quando é desconectado da fonte de alimentação e se reinicia a partir do estado de backup finalizado quando a recarga é reiniciada. Sendo assim, o processo de backup se inicia ou se reinicia, em uma modalidade, em resposta à detecção se uma fonte de alimentação externa foi conectada e está agora carregando a bateria no sistema 700, tal como mostrado na Figura 8.
[000122] A Figura 8 é um fluxograma que ilustra uma modalidade de um processo para a interrupção das operações de backup e/ou restauração em um dispositivo no sentido de economizar energia de acordo com uma modalidade descrita no presente documento. O processo exemplar 800 pode ser realizado por uma lógica de processamento que pode incluir um hardware (circuito, lógica dedicada, etc.), um software (tal como é executado em uma máquina dedicada), ou uma combinação de ambos. Por exemplo, o processo 800 pode ser realizado por alguns componentes do sistema 200 da Figura 2 ou do sistema 700 da Figura 7.
[000123] No bloco 801, a lógica de processamento do processo 800 pode determinar se uma bateria interna está sendo recarregada. No bloco 803, a lógica de processamento do processo 800 pode iniciar as operações de backup com o(s) servidor(es) de backup remoto(s) como um processo em segundo plano e monitorar o estado de recarga da bateria interna. No bloco 805, a lógica de processamento do processo 800 pode determinar se a recarga da bateria interna foi concluída (por exemplo, desconectando-se dos adaptadores de corrente AC/DC, etc.) de acordo com o status de recarga. No bloco 807, a lógica de processamento do processo 800 pode encerrar as operações de backup em resposta à detecção se a recarga da bateria foi concluída. No bloco 809, a lógica de processamento do processo 800 pode reiniciar as operações de backup em resposta à detecção se a bateria está começando uma recarga.
[000124] A Figura 9 mostra um exemplo de um sistema de processamento de dados que pode ser utilizado com as modalidades descritas no presente documento. O sistema de processamento de dados 900 ilustrado na Figura 9, inclui um sistema de processamento 911, que pode ser um ou mais microprocessadores, ou que pode ser um sistema em um circuito integrado por chip, e o sistema inclui ainda uma memória 901 para o armazenamento de dados e programas para execução pelo sistema de processamento. O sistema 900 inclui ainda um subsistema de entrada/saída de áudio 905 que pode incluir um microfone e um alto-falante para, por exemplo, a reprodução de música ou prover uma funcionalidade de telefone através do alto-falante ou microfone. O sistema 900 pode, pelo menos em certas modalidades, realizar de forma automática e/ou manual a restauração e backup de múltiplas fontes de múltiplas fases descritas através de uma rede ou conexões locais. Em uma modalidade, o sistema 900 pode incluir o sistema mostrado na Figura 2.
[000125] Um controlador de vídeo e o dispositivo de vídeo 907 provêem uma interface visual ao usuário; essa interface digital pode incluir uma interface gráfica de usuário, que é similar à mostrada em um computador Macintosh ao executar o software de sistema operacional OS X®. O sistema 900 inclui ainda um ou mais transceptores sem fio 903 para se comunicar com um outro sistema de processamento de dados. Um transceptor sem fio pode ser um transceptor Wi-Fi, um transceptor infravermelho, um transceptor Bluetooth e/ou um transceptor de telefonia celular sem fio. Deve-se apreciar que componentes adicionais, não mostrados, podem também fazer parte do sistema 900 em certas modalidades, e em certas modalidades menos componentes que os mostrados na Figura 9 podem também ser utilizados em um sistema de processamento de dados.
[000126] O sistema de processamento de dados 900 inclui ainda um ou mais dispositivos de entrada 913 que são providos de modo a permitir que um usuário tenha acesso de entrada ao sistema. Estes dispositivos de entrada podem ser um bloco de teclas ou um teclado ou um painel de toques ou um painel de múltiplos toques. O sistema de processamento de dados 900 inclui ainda um dispositivo de entrada/saída opcional 915 que pode ser um conector para um encaixe. Deve-se apreciar que um ou mais barramentos, não mostrados, podem ser usados para interconectar os vários componentes, tal como é bem conhecido na técnica. O sistema de processamento de dados mostrado na Figura 9 pode ser um computador portátil ou um assistente pessoal digital (PDA), ou um telefone celular com uma funcionalidade do tipo PDA, ou um computador portátil que inclui um telefone celular, ou um tocador de mídia, tal como um iPod, ou dispositivos que combinam aspectos ou funções desses dispositivos, tais como um tocador de mídia combinado com um PDA e um telefone celular em um dispositivo. Em outras modalidades, o sistema de processamento de dados 900 pode ser um computador em rede ou um dispositivo de processamento embutido em um outro dispositivo, ou outros tipos de sistemas de processamento de dados com menos componentes ou talvez mais componentes do que o mostrado na Figura 9.
[000127] A Figura 10 mostra um exemplo de um sistema de processamento de dados, tal como um sistema de computador, que pode ser usado com uma modalidade na presente invenção. Por exemplo, o sistema 1000 pode ser implementado como uma parte do sistema mostrado na Figura 1. Deve-se notar que, embora na Figura 10 sejam ilustrados vários componentes de um sistema de computador, isto não tem a intenção de representar qualquer arquitetura particular ou modo de interconexão dos componentes, uma vez que tais detalhes não são pertinentes à presente invenção. Deve-se também apreciar que os computadores de rede e outros sistemas de processamento de dados com menos componentes ou talvez mais componentes podem também ser utilizados com a presente invenção.
[000128] Tal como mostrado na Figura 10, o sistema de computador 1000, que é uma forma de um sistema de processamento de dados, inclui um barramento 1003 que é acoplado a um microprocessador 1005 e a uma memória ROM (Memória de Leitura Somente) 1007 e a uma memória RAM volátil 1009 e a uma memória não volátil 1011. O microprocessador 1005 pode recuperar as instruções das memórias 1007, 1009, 1011 e executar as instruções no sentido de realizar as operações acima descritas. O barramento 1003 interconecta estes vários componentes em conjunto e ainda interconecta estes componentes 1005, 1007, 1009, e 1011 a um controlador de vídeo e ao dispositivo de vídeo 1013 e a dispositivos periféricos, tais como os dispositivos de entrada/saída (I/O) que podem ser mouses, teclados, modems, interfaces de rede, impressoras e outros dispositivos que são bem conhecidos na técnica. Tipicamente, os dispositivos de entrada/saída 1015 são acoplados ao sistema através de controladores de entrada/saída 1017. A memória RAM volátil (Memória de Acesso Aleatório) 1009 é tipicamente implementada como uma memória RAM dinâmica (DRAM) que requer energia continuamente a fim de atualizar ou manter os dados na memória.
[000129] O armazenamento em massa 1011 é tipicamente um disco rígido magnético ou uma unidade óptica magnética ou uma unidade óptica ou um DVD-RAM ou uma memória rápida ou outros tipos de sistemas de memória que mantém dados (por exemplo, grande quantidade de dados) mesmo depois de uma energia ser removida do sistema. Tipicamente, o armazenamento em massa 1011 será também uma memória de acesso aleatório, embora isso não seja necessário. Embora a Figura 10 mostre que o armazenamento em massa 1011 é um dispositivo local acoplado diretamente aos demais componentes do sistema de processamento de dados, deve-se apreciar que a presente invenção pode utilizar uma memória não volátil que fica remota do sistema, tal como um dispositivo de armazenamento da rede que é acoplado ao sistema de processamento de dados através de uma interface de rede, tal como um modem ou uma interface de Ethernet ou uma interface de rede sem fio. O barramento 1003 pode incluir um ou mais barramentos conectados uns aos outros por meio de várias pontes, controladores e/ou adaptadores, tal como é bem conhecido na técnica.
[000130] Porções do que foi descrito acima podem ser implementadas com um circuito lógico, tal como um circuito lógico dedicado, ou com um microcontrolador ou outra forma de núcleo de processamento que executa instruções de código de programa. Sendo assim, os processos ensinados acima pela presente invenção podem ser realizados com um código de programa, tal como as instruções executáveis em máquina que fazem com que uma máquina opere essas instruções no sentido de executar determinadas funções. Neste contexto, uma "máquina"pode ser uma máquina que converte as instruções de forma intermediária (ou "abstrato") em instruções específicas ao processador (por exemplo, um ambiente abstrato de execução, tal como uma "máquina virtual" (por exemplo, uma Máquina Virtual Java), um interpretador, um Tempo de execução de Linguagem Comum, uma máquina virtual de linguagem de alto nível, etc.), e/ou um circuito eletrônico disposto em um chip semicondutor (por exemplo, o "circuito lógico"implementado com transistores) concebido de modo a executar instruções, tal como um processador de uso geral e/ou um processador de uso especial. Os processos ensinados acima pela presente invenção podem também ser realizados por (em alternativa a uma máquina ou em combinação com uma máquina) um circuito eletrônico concebido de modo a realizar os processos (ou uma porção dos mesmos) sem a execução de um código de programa.
[000131] Um artigo de fabricação pode ser usado para armazenar um código de programa. Um artigo de fabricação que armazena um código de programa pode ser incorporado como, mas não se limita a, uma ou mais memórias (por exemplo, uma ou mais memórias rápidas, memórias de acesso aleatório (estáticas, dinâmicas ou outras)), discos ópticos, CD-ROM, DVD ROM, EPROM, EEPROM, cartões magnéticos ou ópticos ou outro tipo de meio legível em máquina para o armazenamento de instruções eletrônicas. O código do programa pode também ser baixado de um computador remoto (por exemplo, um servidor) em um computador solicitante (por exemplo, um cliente) por meio dos sinais de dados incorporados em um meio de propagação (por exemplo, através de um enlace de comunicação (por exemplo, uma conexão de rede)).
[000132] O termo "memória", tal como usado no presente documento se destina a abranger todos os meios de armazenamento voláteis, tais como a memória de acesso dinâmico aleatório (DRAM) e a memória RAM estática (SRAM). As instruções executáveis em computador podem ser armazenadas em dispositivos de armazenamento não voláteis, tais como em um disco rígido magnético, em um disco óptico, e normalmente são gravadas, por meio de um processo de acesso direto à memória, na memória durante a execução do software por um processador. Um versado na técnica poderá imediatamente reconhecer que o termo "meio de armazenamento legível em máquina"inclui qualquer tipo de dispositivo de armazenamento volátil e não volátil que seja acessível por parte de um processador.
[000133] As descrições acima detalhadas são apresentadas em termos de algoritmos e representações simbólicas de operações em bits de dados dentro de uma memória de computador. Estas descrições de algoritmos e representações são as ferramentas utilizadas pelos versados nas técnicas de processamento de dados de modo mais efetivamente transmitir a substância de seu trabalho para outros especializados na técnica. Um algoritmo é, nesse caso, e, em geral, concebido de modo a ser uma sequência autoconsistente de operações que se conduzem para um resultado desejado. As operações são as que exigem manipulações físicas de grandezas físicas. Normalmente, embora não necessariamente, estas grandezas tomam a forma de sinais elétricos ou magnéticos capazes de serem armazenados, transferidos, combinados, comparados, ou de outra forma manipulados. Revelou-se conveniente, por vezes, principalmente por razões de uso comum, se referir a estes sinais como bits, valores, elementos, símbolos, caracteres, termos, números ou coisa do gênero.
[000134] Deve-se ter em mente, porém, que todos esses termos ou termos similares devem ser associados às grandezas físicas apropriadas e são meramente rótulos convenientes aplicados a essas grandezas. A menos que especificamente indicado ou de outra forma conforme aparente a partir da apresentação acima, deve-se apreciar que ao longo da descrição, as frases que utilizam termos, tais como "processar" ou "computar" ou "calcular" ou "determinar" ou "exibir" ou coisa do gênero, se referem à ação e aos processos de um sistema de computador, ou a um dispositivo computacional eletrônico similar, que manipula e transforma os dados representados como grandezas físicas (eletrônicas) dentro dos registros e memórias do sistema de computador em outros dados da mesma forma representados como grandezas físicas dentro das memórias ou registros do sistema de computador ou em outros dispositivos de armazenamento de informação, transmissão ou exibição.
[000135] A presente invenção também se refere a um aparelho para a execução das operações descritas no presente documento. Este aparelho pode ser especialmente construído para o efeito desejado, ou o mesmo pode compreender um computador de uso geral seletivamente ativado ou reconfigurado por um programa de computador armazenado no computador. Tal programa de computador pode ser armazenado em um meio de armazenamento legível por computador, tal como, mas não se limita a, qualquer tipo de disco incluindo discos flexíveis, discos ópticos, CD-ROM, discos optomagnéticos, memórias de leitura somente (ROM), memórias RAM, memórias EPROM, memórias EEPROM, cartões optomagnéticos, ou qualquer tipo de meio adequado para o armazenamento de instruções eletrônicas, e cada qual acoplado a um barramento de sistema de computador.
[000136] Os processos e disposições descritas no presente documento não são inerentemente relacionados a nenhum computador específico ou a outro aparelho em particular. Vários sistemas de uso geral podem ser usados com os programas de acordo com os ensinamentos da presente invenção, ou podem ser convenientes para a construção de um aparelho mais especializado a fim de realizar as operações descritas. A estrutura necessária para uma variedade de tais sistemas ficará evidente a partir da descrição abaixo. Além disso, a presente invenção não é descrita com referência a nenhuma linguagem de programação específica. Deve-se apreciar que uma variedade de linguagens de programação pode ser utilizada no sentido de implementar os ensinamentos da presente invenção tal como descrita no presente documento.
[000137] No relatório descritivo acima, a presente invenção foi descrita com referência a modalidades exemplares específicas da mesma. Ficará evidente que diversas modificações podem ser feitas sem se afastar do espírito e âmbito mais amplo da presente invenção, tal como definido nas concretizações a seguir. O relatório descritivo e os desenhos devem, por conseguinte, ser considerados em um sentido ilustrativo em vez de em um sentido restritivo.

Claims (15)

1. Método, caracterizado pelo fato de que compreende as etapas de: restaurar um recurso a partir de uma primeira fonte em um dispositivo; detectar dinamicamente disponibilidade do recurso a partir de uma segunda fonte depois de uma porção do recurso ter sido restaurada no dispositivo a partir da primeira fonte; determinar se a segunda fonte está mais eficientemente conectada ao dispositivo do que a primeira fonte; e restaurar uma porção restante do recurso a partir da segunda fonte no dispositivo depois de a porção do recurso ter sido restaurada no dispositivo quando a segunda fonte está mais eficientemente conectada ao dispositivo.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a detecção é baseada em uma conexão de rede entre o dispositivo e a segunda fonte e em que o dispositivo se movimenta dentro de uma faixa próxima à segunda fonte de modo a permitir a conexão de rede.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a primeira fonte é acoplada ao dispositivo através de uma conexão de rede separada e em que a segunda fonte é determinada mais eficientemente conectada ao dispositivo se a conexão de rede com a segunda fonte tem uma largura de banda maior em comparação com a conexão de rede separada com a primeira fonte.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende as etapas de: inicializar a restauração com um serviço de backup; e determinar um ou mais recursos a restaurar no dispositivo com o serviço de backup.
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que o dispositivo é associado a um identificador de conta que identificando proprietário do dispositivo, e em que a inicialização compreende o envio do identificador de conta para o serviço de backup.
6. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que os recursos são associados a metadados que descrevem o conteúdo concreto dos recursos, e em que os metadados são rastreados pelo serviço de backup e em que a determinação e baseada nos metadados dos recursos.
7. Método, de acordo com a reivindicação 4, caracterizado pelo fato de que os recursos incluem o recurso da primeira fonte, ainda compreendendo a etapa de: identificar a primeira fonte com a fonte de backup para a restauração do recurso.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que a primeira fonte é um armazenamento acessível à rede, referenciado através da fonte de backup, em que a segunda fonte é um computador local acoplado sem fio ao dispositivo, e em que as referências a uma pluralidade de fontes incluindo a primeira fonte são rastreadas através do serviço de backup e em que a identificação da primeira fonte é transparente para um usuário do dispositivo.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende a etapa de: rastrear a porção do recurso que foi restaurada a partir da primeira fonte para restaurar a porção restante do recurso a partir da segunda fonte.
10. Método, de acordo com a reivindicação 1 caracterizado pelo fato de que ainda compreende as etapas de: interromper a restauração a partir da primeira fonte; e retomar a restauração a partir da primeira fonte.
11. Método, caracterizado pelo fato de que compreende as etapas de: identificar um primeiro recurso a restaurar em um dispositivo com um serviço de backup; iniciar uma operação de restaurar com o serviço de backup para o dispositivo; e determinar uma primeira fonte para restaurar o primeiro recurso no dispositivo; comutar de uma primeira fonte para uma segunda fonte para restaurar o primeiro recurso no dispositivo, em que a segunda fonte é determinada mais eficientemente conectada ao dispositivo do que a primeira fonte, e em que uma porção do recurso é restaurada a partir da primeira fonte e uma porção restante do recurso não foi restaurada no dispositivo; identificar um segundo recurso a restaurar no dispositivo a partir da segunda finte; e restaurar o segundo recurso no dispositivo a partir da segunda fonte.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que o primeiro recurso é associado a metadados que descrevem o conteúdo concreto do primeiro recurso e em que a determinação é baseada em comunicação com o serviço de backup em termos dos metadados.
13. Método, de acordo com a reivindicação 12, caracterizado pelo fato de que ainda compreende a etapa de: carregar uma porção do conteúdo concreto a partir da primeira fonte no dispositivo; e em que a segunda fonte é um dispositivo computador localmente acoplado ao dispositivo, sendo que o dispositivo computador mantém os metadados, o método ainda compreendendo as etapas de: rastrear a porção restante do primeiro recurso ainda não restaurada no dispositivo; e carregar a porção restante do primeiro recurso a partir da segunda fonte.
14. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que os metadados são mantidos no serviço de backup e em que a determinação da primeira fonte é baseada nos metadados, e em que os metadados indicam que o primeiro recurso é um ativo adquirido publicamente disponível para compra a partir da primeira fonte.
15. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que a segunda fonte é associada aos metadados que descrevem o conteúdo concreto da segunda fonte, sendo que os metadados são mantidos na segunda fonte para a identificação do segundo recurso.
BR112013031065-0A 2011-06-03 2012-05-22 método para a restauração de múltiplas fontes BR112013031065B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161493360P 2011-06-03 2011-06-03
US61/493,360 2011-06-03
US13/226,411 2011-09-06
US13/226,411 US8868859B2 (en) 2011-06-03 2011-09-06 Methods and apparatus for multi-source restore
PCT/US2012/039013 WO2012166443A1 (en) 2011-06-03 2012-05-22 Methods and apparatus for multi-source restore

Publications (2)

Publication Number Publication Date
BR112013031065A2 BR112013031065A2 (pt) 2016-11-29
BR112013031065B1 true BR112013031065B1 (pt) 2021-05-25

Family

ID=46201832

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013031065-0A BR112013031065B1 (pt) 2011-06-03 2012-05-22 método para a restauração de múltiplas fontes

Country Status (9)

Country Link
US (2) US8868859B2 (pt)
EP (1) EP2702487B1 (pt)
JP (1) JP5819518B2 (pt)
KR (1) KR101602584B1 (pt)
CN (1) CN103582875B (pt)
AU (1) AU2012262733B2 (pt)
BR (1) BR112013031065B1 (pt)
MX (1) MX2013014175A (pt)
WO (1) WO2012166443A1 (pt)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9411687B2 (en) 2011-06-03 2016-08-09 Apple Inc. Methods and apparatus for interface in multi-phase restore
US8849819B2 (en) * 2011-08-05 2014-09-30 Deacon Johnson System and method for controlling and organizing metadata associated with on-line content
US9654821B2 (en) 2011-12-30 2017-05-16 Sonos, Inc. Systems and methods for networked music playback
US9489271B1 (en) * 2012-03-29 2016-11-08 Veritas Technologies Llc User interface for restoring databases
US20130326053A1 (en) * 2012-06-04 2013-12-05 Alcatel-Lucent Usa Inc. Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications
US9674587B2 (en) 2012-06-26 2017-06-06 Sonos, Inc. Systems and methods for networked music playback including remote add to queue
US10496977B2 (en) 2012-07-16 2019-12-03 Square, Inc. Storing and forwarding payment transactions
US20140075583A1 (en) * 2012-09-10 2014-03-13 Apple Inc. Management of media items
US9654556B2 (en) 2012-10-02 2017-05-16 Razer (Asia-Pacific) Pte. Ltd. Managing applications on an electronic device
US9747000B2 (en) 2012-10-02 2017-08-29 Razer (Asia-Pacific) Pte. Ltd. Launching applications on an electronic device
US9210203B2 (en) 2012-10-02 2015-12-08 Nextbit Systems Inc. Resource based mobile device application streaming
US9268655B2 (en) 2012-10-02 2016-02-23 Nextbit Systems Inc. Interface for resolving synchronization conflicts of application states
US9717985B2 (en) 2012-10-02 2017-08-01 Razer (Asia-Pacific) Pte. Ltd. Fragment-based mobile device application streaming utilizing crowd-sourcing
US9600552B2 (en) 2012-10-02 2017-03-21 Nextbit Systems Inc. Proximity based application state synchronization
US9776078B2 (en) 2012-10-02 2017-10-03 Razer (Asia-Pacific) Pte. Ltd. Application state backup and restoration across multiple devices
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
CN104040496B (zh) * 2012-12-10 2017-06-23 东莞宇龙通信科技有限公司 终端和应用程序恢复方法
US10123189B2 (en) * 2013-03-21 2018-11-06 Razer (Asia-Pacific) Pte. Ltd. Electronic device system restoration by tapping mechanism
US9361371B2 (en) 2013-04-16 2016-06-07 Sonos, Inc. Playlist update in a media playback system
US9247363B2 (en) 2013-04-16 2016-01-26 Sonos, Inc. Playback queue transfer in a media playback system
US9501533B2 (en) 2013-04-16 2016-11-22 Sonos, Inc. Private queue for a media playback system
US20140351220A1 (en) * 2013-05-22 2014-11-27 Jeremy Debate Configuration of one or more computer devices
JP6227378B2 (ja) * 2013-11-08 2017-11-08 株式会社日立製作所 バックアップ管理システムおよびバックアップ管理方法
US9436410B2 (en) * 2013-12-13 2016-09-06 Netapp, Inc. Replication of volumes on demands using absent allocation
US10198445B2 (en) * 2014-06-30 2019-02-05 Google Llc Automated archiving of user generated media files
US10037521B1 (en) * 2014-09-24 2018-07-31 Square, Inc. Background communication failover for mobile payments
US9986016B2 (en) 2015-02-19 2018-05-29 Microsoft Technology Licensing, Llc Download manager integration with a cloud storage platform
JP6571202B2 (ja) * 2015-05-27 2019-09-04 グーグル エルエルシー モバイルデバイス上の自動的なクラウドベースの全データバックアップおよびリストアのためのシステムおよび方法
US10802928B2 (en) 2015-09-10 2020-10-13 International Business Machines Corporation Backup and restoration of file system
US10320797B2 (en) 2015-09-25 2019-06-11 International Business Machines Corporation Enabling a multi-dimensional collaborative effort system
US10120552B2 (en) 2015-09-25 2018-11-06 International Business Machines Corporation Annotating collaborative content to facilitate mining key content as a runbook
US10425452B2 (en) * 2015-09-25 2019-09-24 International Business Machines Corporation Identifying changes in multiple resources related to a problem
CN105511985A (zh) * 2015-12-01 2016-04-20 魅族科技(中国)有限公司 一种数据备份的方法及终端
CN112449021B (zh) * 2016-01-27 2023-10-27 创新先进技术有限公司 一种互联网资源的筛选方法及装置
CN105786654A (zh) * 2016-03-01 2016-07-20 北京金山安全软件有限公司 一种数据备份方法、装置及电子设备
US10366378B1 (en) 2016-06-30 2019-07-30 Square, Inc. Processing transactions in offline mode
US10318390B2 (en) 2016-07-08 2019-06-11 International Business Machines Corporation Automated storage target selection for data backup
CN109074295B (zh) * 2016-07-29 2022-07-05 惠普发展公司,有限责任合伙企业 具有真实性的数据恢复
US20190347008A1 (en) * 2016-10-03 2019-11-14 Still On Holidays, S.L. System and method for backing up data and use from any terminal
CN106776137A (zh) * 2016-12-15 2017-05-31 济南浪潮高新科技投资发展有限公司 一种用户录入数据备份与恢复方法
US10248355B2 (en) 2017-02-22 2019-04-02 International Business Machines Corporation Data migration for applications on a mobile device
US10198326B2 (en) * 2017-03-09 2019-02-05 Apple Inc. Intelligent restoration of a computing device
US10769032B2 (en) * 2018-03-16 2020-09-08 EMC IP Holding Company LLC Automation and optimization of data recovery after a ransomware attack
US10817385B2 (en) * 2018-07-31 2020-10-27 EMC IP Holding Company LLC Storage system with backup control utilizing content-based signatures
US11977453B2 (en) 2019-09-12 2024-05-07 Restorvault, Llc Virtual replication of unstructured data
US11816000B2 (en) * 2019-09-12 2023-11-14 restor Vault, LLC Virtual recovery of unstructured data
KR20220017124A (ko) * 2020-08-04 2022-02-11 삼성전자주식회사 백업 데이터 복원 방법 및 이를 위한 전자 장치
CN113194121B (zh) * 2021-04-15 2023-04-18 许家源 电子设备间的文件备份方法
KR20230023397A (ko) * 2021-08-10 2023-02-17 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
US20230094648A1 (en) * 2021-09-30 2023-03-30 Dropbox, Inc. Backup feature provided by bidirectional synchronized content management system

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69231873T2 (de) 1992-01-08 2002-04-04 Emc Corp Verfahren zur Synchronisierung von reservierten Bereichen in einer redundanten Speicheranordnung
US5241668A (en) 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated termination and resumption in a time zero backup copy process
US5737557A (en) 1995-05-26 1998-04-07 Ast Research, Inc. Intelligent window user interface for computers
US6061409A (en) 1996-06-27 2000-05-09 Matsushita Electric Industrial Co., Ltd. Synchronization recovery for a mobile telephone
JPH11134234A (ja) * 1997-08-26 1999-05-21 Reliatec Ltd バックアップ・リストア方法およびその制御装置,並びにバックアップ・リストアプログラムを記録したコンピュータ読み取り可能な記録媒体
US6141771A (en) * 1998-02-06 2000-10-31 International Business Machines Corporation Method and system for providing a trusted machine state
US6247126B1 (en) 1999-01-25 2001-06-12 Dell Usa, L.P. Recoverable software installation process and apparatus for a computer system
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US6851073B1 (en) 1999-07-26 2005-02-01 Microsoft Corporation Extensible system recovery architecture
JP4292660B2 (ja) 1999-11-19 2009-07-08 日本ビクター株式会社 自動デフラグ装置
US20070033252A1 (en) 2000-03-30 2007-02-08 Combest Ricky F Dynamic virtual network and method
JP4568963B2 (ja) 2000-06-08 2010-10-27 ソニー株式会社 情報処理装置、情報通信システム
US20020091956A1 (en) 2000-11-17 2002-07-11 Potter Scott T. Methods and systems for reducing power consumption in computer data communications
US7216136B2 (en) 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
US6920447B2 (en) 2001-02-15 2005-07-19 Microsoft Corporation Concurrent data recall in a hierarchical storage environment using plural queues
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7287249B2 (en) 2001-09-28 2007-10-23 Siebel Systems, Inc. Method and system for tracking and exchanging incremental changes to hierarchical objects
US7237075B2 (en) 2002-01-22 2007-06-26 Columbia Data Products, Inc. Persistent snapshot methods
US8150937B2 (en) 2004-10-25 2012-04-03 Apple Inc. Wireless synchronization between media player and host device
JP4173320B2 (ja) 2002-05-22 2008-10-29 株式会社エヌ・ティ・ティ・ドコモ 移動通信端末、情報記憶モジュール、プログラムおよび記録媒体
US20030220913A1 (en) 2002-05-24 2003-11-27 International Business Machines Corporation Techniques for personalized and adaptive search services
EP1674998A3 (en) 2002-06-21 2013-05-22 Sharp Kabushiki Kaisha Information processing apparatus, information equipment, information processing system, automatic backup method, data transmission and reception method, automatic backup program, data transmission and reception program, and record medium having the programs recorded thereon
US7340486B1 (en) 2002-10-10 2008-03-04 Network Appliance, Inc. System and method for file system snapshot of a virtual logical disk
AU2003282361A1 (en) 2002-11-20 2004-06-15 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
JP2006511870A (ja) 2002-12-18 2006-04-06 イー・エム・シー・コーポレイシヨン メディアリソースに関する要求のリソース割り当てアウェア待ち行列作成
US7720818B1 (en) 2002-12-30 2010-05-18 Sprint Communications Company L.P. On-line account management system having a tiered account information storage system
JP3974538B2 (ja) 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
US7240219B2 (en) 2003-05-25 2007-07-03 Sandisk Il Ltd. Method and system for maintaining backup of portable storage devices
US7328366B2 (en) 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
US7124323B2 (en) 2003-06-18 2006-10-17 International Business Machines Corporation Method, system, and program for recovery of a reverse restore operation
US20050210304A1 (en) 2003-06-26 2005-09-22 Copan Systems Method and apparatus for power-efficient high-capacity scalable storage system
US7143117B2 (en) 2003-09-25 2006-11-28 International Business Machines Corporation Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
US7225208B2 (en) 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
GB2423850B (en) 2003-11-13 2009-05-20 Commvault Systems Inc System and method for performing integrated storage operations
US20050137983A1 (en) 2003-12-18 2005-06-23 Matthew Bells System and method for digital rights management
JP4551096B2 (ja) 2004-02-03 2010-09-22 株式会社日立製作所 ストレージサブシステム
JP2005222171A (ja) 2004-02-03 2005-08-18 Nec Access Technica Ltd 携帯電話機
US7526768B2 (en) 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
US7206911B2 (en) 2004-02-25 2007-04-17 International Business Machines Corporation Method, system, and program for a system architecture for an arbitrary number of backup components
TWI278199B (en) 2004-03-26 2007-04-01 Quanta Comp Inc Deployment method and system for multiple remote computers
US7330997B1 (en) 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup
US7343518B2 (en) 2004-06-23 2008-03-11 Intel Corporation Method for data backup of computing platforms that are occasionally connected
JP2006048473A (ja) * 2004-08-06 2006-02-16 Mitsubishi Electric Corp 複数サービス提供システム及び管理装置及び通信端末装置
US7437388B1 (en) 2004-12-21 2008-10-14 Symantec Corporation Protecting data for distributed applications using cooperative backup agents
US7721138B1 (en) 2004-12-28 2010-05-18 Acronis Inc. System and method for on-the-fly migration of server from backup
US7506010B2 (en) 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
US20080065637A1 (en) 2005-04-14 2008-03-13 Emc Corporation Locating last processed data
US7590668B2 (en) 2005-04-15 2009-09-15 Microsoft Corporation Pausable backups of file system items
US8103632B2 (en) 2005-04-22 2012-01-24 Microsoft Corporation Self-contained partial database backups
US7584226B2 (en) 2005-05-24 2009-09-01 International Business Machines Corporation System and method for peer-to-peer grid based autonomic and probabilistic on-demand backup and restore
US20070005669A1 (en) 2005-06-09 2007-01-04 Mueller Christoph K Method and system for automated disk i/o optimization of restored databases
US7747577B2 (en) 2005-08-17 2010-06-29 International Business Machines Corporation Management of redundant objects in storage systems
US7779069B2 (en) 2005-09-09 2010-08-17 Soonr Corporation Network adapted for mobile devices
KR100678921B1 (ko) 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
US7765187B2 (en) 2005-11-29 2010-07-27 Emc Corporation Replication of a consistency group of data storage objects from servers in a data network
US8042172B1 (en) 2006-02-02 2011-10-18 Emc Corporation Remote access architecture enabling a client to perform an operation
US8341127B1 (en) 2006-02-02 2012-12-25 Emc Corporation Client initiated restore
US7899418B2 (en) 2006-02-22 2011-03-01 Fujifilm Corporation Mobile device and wireless communication apparatus
US20070204003A1 (en) * 2006-02-28 2007-08-30 Maven Networks, Inc. Downloading a file over HTTP from multiple servers
JP2007280323A (ja) 2006-04-12 2007-10-25 Hitachi Ltd 記憶システム及びデータ管理方法
US20070260759A1 (en) 2006-04-14 2007-11-08 Scott Willie L Ii Apparatus, system, and method for complete data migration from a wireless communication device
US20070294546A1 (en) 2006-06-19 2007-12-20 Apple Computer, Inc. Host device shutdown system
US20080104145A1 (en) 2006-06-23 2008-05-01 Derrell Lipman Method and appartus for backup of networked computers
AU2007295949B2 (en) 2006-09-12 2009-08-06 Adams Consulting Group Pty. Ltd. Method system and apparatus for handling information
US7725704B1 (en) * 2006-09-22 2010-05-25 Emc Corporation Techniques for performing a prioritized data restoration operation
US8117163B2 (en) 2006-10-31 2012-02-14 Carbonite, Inc. Backup and restore system for a computer
US20080140963A1 (en) 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US9189265B2 (en) 2006-12-21 2015-11-17 Vmware, Inc. Storage architecture for virtual machines
WO2008082441A1 (en) 2006-12-29 2008-07-10 Prodea Systems, Inc. Display inserts, overlays, and graphical user interfaces for multimedia systems
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
WO2008086250A1 (en) 2007-01-07 2008-07-17 Apple Inc. Prioritized data synchronization with host device
JP5008991B2 (ja) 2007-01-24 2012-08-22 株式会社日立製作所 データのリカバリを制御する装置及び方法
KR20100005055A (ko) 2007-03-29 2010-01-13 노키아 코포레이션 Usb 기기로의 연결
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US20080307348A1 (en) 2007-06-11 2008-12-11 Angela Richards Jones Method to Review, Preview and Modify Change Plans From a Progress Bar
US8554784B2 (en) 2007-08-31 2013-10-08 Nokia Corporation Discovering peer-to-peer content using metadata streams
US20090089537A1 (en) 2007-09-28 2009-04-02 Sun Microsystems, Inc. Apparatus and method for memory address translation across multiple nodes
WO2009050542A1 (en) 2007-10-17 2009-04-23 Freescale Semiconductor, Inc. Power management arrangement for a mobile device
US20090144341A1 (en) 2007-12-03 2009-06-04 Apple Inc. Ad Hoc Data Storage Network
FR2924839B1 (fr) 2007-12-06 2010-03-19 Agematis Procede de sauvegarde automatique de donnees numeriques conservees en memoire dans une installation informatique, support de donnees lisible par un ordinateur, installation informatique et systeme pour la mise en oeuvre de ce procede
EP2073461A1 (en) 2007-12-18 2009-06-24 Alcatel Lucent Process for delivering at least one data stream from a data source system to a data receiver system through a network
US8112664B2 (en) * 2008-03-26 2012-02-07 Symantec Operating Corporation Using volume snapshots to prevent file corruption in failed restore operations
US20080189298A1 (en) 2008-04-02 2008-08-07 Steve Cha Method and apparatus for wireless access to personalized multimedia at any location
US8583602B2 (en) * 2008-06-05 2013-11-12 Palm, Inc. Restoring of data to mobile computing device
US20100031248A1 (en) 2008-07-31 2010-02-04 Microsoft Corporation Installation Sequence Manager
US8250031B2 (en) 2008-08-26 2012-08-21 Hitachi, Ltd. Low traffic failback remote copy
US20100052620A1 (en) 2008-09-03 2010-03-04 Intersil Americas Inc. Battery charger ic including built-in usb detection
CN101741601B (zh) 2008-11-06 2012-02-15 上海市医疗保险信息中心 结构化灾难备份系统和备份方法
US8805953B2 (en) * 2009-04-03 2014-08-12 Microsoft Corporation Differential file and system restores from peers and the cloud
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8161233B2 (en) * 2009-05-13 2012-04-17 Computer Associates Think, Inc. Multi-stream restore system and method
JP4903244B2 (ja) * 2009-06-05 2012-03-28 株式会社日立製作所 計算機システム及び障害復旧方法
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US20110016093A1 (en) * 2009-07-15 2011-01-20 Iron Mountain, Incorporated Operating system restoration using remote backup system and local system restore function
US8228753B2 (en) 2009-07-29 2012-07-24 Stec, Inc. System and method of maintaining data integrity in a flash storage device
US8856080B2 (en) 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive
US8380678B2 (en) 2009-11-24 2013-02-19 Symantec Corporation Tracking files which have been processed by a backup or a restore operation
US8694469B2 (en) * 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US8903773B2 (en) * 2010-03-31 2014-12-02 Novastor Corporation Computer file storage, backup, restore and retrieval
US9386098B2 (en) * 2010-06-11 2016-07-05 Fidelithon Systems, Llc Smartphone management system and method
US9244698B2 (en) 2010-09-14 2016-01-26 Microsoft Technology Licensing, Llc Download bar user interface control
US8909876B2 (en) 2010-10-28 2014-12-09 International Business Machines Corporation Snapshots in a hybrid storage device comprising a magnetic disk and a solid state disk
US8819471B2 (en) 2011-06-03 2014-08-26 Apple Inc. Methods and apparatus for power state based backup

Also Published As

Publication number Publication date
US8868859B2 (en) 2014-10-21
JP5819518B2 (ja) 2015-11-24
US20120311280A1 (en) 2012-12-06
BR112013031065A2 (pt) 2016-11-29
MX2013014175A (es) 2014-03-21
EP2702487A1 (en) 2014-03-05
AU2012262733A1 (en) 2014-01-16
US20150006837A1 (en) 2015-01-01
CN103582875A (zh) 2014-02-12
JP2014519122A (ja) 2014-08-07
WO2012166443A1 (en) 2012-12-06
KR101602584B1 (ko) 2016-03-10
US9483365B2 (en) 2016-11-01
EP2702487B1 (en) 2015-06-24
AU2012262733B2 (en) 2016-04-28
CN103582875B (zh) 2016-06-22
KR20140031366A (ko) 2014-03-12

Similar Documents

Publication Publication Date Title
BR112013031065B1 (pt) método para a restauração de múltiplas fontes
US9904597B2 (en) Methods and apparatus for multi-phase restore
EP2716007B1 (en) Methods and apparatus for multi-phase multi-source backup
US8689034B2 (en) Methods and apparatus for power state based backup

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]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 22/05/2012, OBSERVADAS AS CONDICOES LEGAIS.