Desde o primeiro lançamento oficial em 2014, Couchbase Mobile O Couchbase Mobile possibilitou uma ampla variedade de casos de uso com diferentes graus de escala e complexidade. Apesar da variação, há alguns padrões comuns de uso do Couchbase Mobile.

Elaborei uma série de publicações no blog que abordam alguns padrões de uso comuns e dicas e práticas recomendadas para lidar com esses casos de uso. Nesta publicação do blog, discutiremos padrões comuns se você estiver desenvolvendo aplicativos com Couchbase Lite. Esta publicação pressupõe que você esteja familiarizado com os fundamentos do Couchbase Mobile. Se precisar de uma introdução, consulte os documentos em Couchbase Lite.

Padrão 1: lidar com um grande volume de dados públicos e não específicos do usuário

Couchbase Mobile pattern for preloading couchbase lite data

Com o suporte do Couchbase Lite para pré-construído bancos de dados, você pode pré-carregar o aplicativo com dados em vez de sincronizá-los a partir do Sync Gateway durante a inicialização.

Caso de uso

Evitar a sincronização inicial ajudará a reduzir o tempo de inicialização e os custos de transferência de rede. Isso normalmente se aplica a dados públicos/compartilhados, não específicos do usuário, que são em sua maioria estáticos. Mesmo que os dados não sejam estáticos, você ainda pode aproveitar os benefícios de pré-carregar os dados e sincronizar apenas as alterações na inicialização.

Abordagem

    • Criar um não criptografado cópia do banco de dados .cblite com os dados relevantes. Há duas opções para criar um .cblite
      • Use um aplicativo baseado no Couchbase Lite para extrair dados relevantes por meio do Sync Gateway. Isso criará uma instância de um aplicativo cblite (com extensão .cblite2). O local do arquivo gerado é específico da plataforma e pode ser obtido na seção DatabaseConfiguration objeto.
      • Use o código aberto, couchbaselabs cblite ferramenta. Essa ferramenta permite que você carregue dados de uma variedade de fontes.
    • Carregue o .cblite no aplicativo de duas maneiras. Você tem duas opções
      • A primeira opção é agrupar o arquivo .cblite2 com o aplicativo.
      • A segunda opção é hospedar o arquivo .cblite em uma CDN, de onde ele pode ser recuperado pelos clientes na inicialização. Embora ainda exista o custo de download do arquivo de banco de dados, haverá uma economia considerável nos custos de largura de banda e latência ao fornecê-lo a partir de uma CDN.
    • Depois de carregado, siga as etapas para copy() o arquivo .cblite2 empacotado no aplicativo. Isso criará uma instância do banco de dados exclusiva para o cliente

Padrão 2: segregação de dados locais do cliente e sincronizados

Couchbase mobile pattern for local only data

Você pode oferecer suporte a várias instâncias do Couchbase Lite em seu aplicativo. Embora não haja limites rígidos para o número de instâncias de banco de dados, há limites e restrições práticas, por exemplo, você não pode fazer uniões entre bancos de dados.

Caso de uso

Um caso de uso comum de vários bancos de dados no aplicativo é separar os dados que são locais apenas para o cliente em uma instância de banco de dados separada do restante dos dados. Há outras maneiras de impor restrições somente locais, como veremos em um padrão separado discutido posteriormente. No entanto, a segregação dos dados permitiria que os aplicativos aplicassem o controle de acesso no nível do banco de dados, garantindo que as consultas e as operações do banco de dados tivessem o escopo do nível do banco de dados. Por exemplo, você pode excluir o banco de dados somente local sem afetar o restante dos dados sincronizados.

Abordagem

    • Crie uma instância do banco de dados Couchbase Lite para dados somente locais. O banco de dados pode ser criado ou copiado de uma cópia empacotada de um banco de dados pré-construído
    • Não configure nenhum replicador para o banco de dados somente local

Padrão 3: suporte ao aplicativo multiusuário

Couchbase Mobile pattern share database with multiple users

Os aplicativos com o Couchbase Lite podem oferecer suporte a vários usuários. Esse é outro padrão que é ativado com a capacidade de oferecer suporte a várias instâncias do Couchbase Lite em seu aplicativo. Aplicativos com vários usuários impõem requisitos rigorosos de segregação de dados e controle de acesso a dados para garantir que os usuários não acessem ou pisem nos dados uns dos outros, de forma deliberada ou inadvertida.

Caso de uso

Aplicativos multiusuários são comuns, especialmente em cenários em que os dispositivos são compartilhados.

Abordagem

    • Crie uma instância separada do banco de dados do Couchbase Lite para cada usuário
    • Embora não seja obrigatório, cada instância do banco de dados pode estar em uma pasta específica do usuário, cujo local pode ser especificado por meio do parâmetro DatabaseConfiguration no momento da criação do banco de dados. Se desejar, cada banco de dados do Couchbase Lite pode ser criptografado usando a senha/chave específica do usuário.
    • Os dados comuns compartilhados entre os usuários podem ser armazenados em uma instância compartilhada do banco de dados em uma pasta "comum".
    • Ao alternar entre usuários ou "fazer logoff", verifique o seguinte

Padrão 4: compartilhamento de dados entre aplicativos em um dispositivo

Couchbase Mobile pattern share database between apps

Os aplicativos móveis são executados em um ambiente de sandbox. Portanto, um determinado aplicativo só tem acesso ou só pode modificar seus próprios dados. No entanto, em determinadas plataformas, existem opções que facilitam o compartilhamento de recursos entre aplicativos com os direitos corretos. Usando esses mecanismos que são especificados pela plataforma, uma instância do banco de dados Couchbase Lite pode ser compartilhada por vários aplicativos. Isso está de acordo com as diretrizes prescritas pela plataforma.

Configuração Implicações
Todos os leitores, nenhum escritor OK
Um único escritor, vários leitores OK - sem notificações de alteração entre processos
Vários escritores Não testado. O banco de dados será bloqueado com vários acessos simultâneos (YMMW*)

Caso de uso

Vários aplicativos do mesmo fornecedor podem estar trabalhando com os mesmos dados. Em vez de cada aplicativo manter uma cópia idêntica dos dados, o compartilhamento do banco de dados reduzirá os custos de transferência e de armazenamento local no dispositivo.

Abordagem

    • A ideia é hospedar o banco de dados em uma pasta ou local no sistema de arquivos que seja acessível aos aplicativos que o compartilham. A configuração dos aplicativos para compartilhar dados é uma implementação em nível de plataforma
      • No iOS, você usaria Grupos de aplicativos semelhante ao que é descrito neste blog para configurar o acesso ao recurso compartilhado do Couchbase Lite a partir de vários aplicativos.
      • No Android, você pode aproveitar Provedores de conteúdo para permitir o compartilhamento de dados do Couchbase Lite entre aplicativos

O que vem a seguir

Nesta postagem, abordamos alguns padrões de uso comuns no Couchbase Lite. Continuaremos a publicar postagens descrevendo outras dicas e recomendações para resolver problemas comuns.
Se tiver dúvidas ou comentários, deixe um comentário abaixo ou entre em contato comigo pelo Twitter @rajagp ou envie-me um e-mail priya.rajagopal@couchbase.com. O Fóruns do Couchbase são outro bom lugar para entrar em contato com perguntas.

Agradecimentos

Gostaria de agradecer as contribuições da equipe de desenvolvimento do Couchbase Lite, especificamente Jim Borden por sua avaliação desta postagem do blog.

Autor

Postado por Priya Rajagopal, Diretora Sênior, Gerenciamento de Produtos

Priya Rajagopal é diretora sênior de gerenciamento de produtos da Couchbase, responsável pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente há mais de 20 anos em vários cargos técnicos e de liderança de produtos, com mais de 10 anos de foco em tecnologias móveis. Como delegada de padrões de IPTV da TISPAN, ela foi uma das principais colaboradoras das especificações de padrões de IPTV. Ela tem 22 patentes nas áreas de rede e segurança de plataforma.

Deixar uma resposta