Couchbase Mobile

Sincronização de banco de dados ponto a ponto com o Couchbase Lite

Lançamento do Couchbase Lite 2.8 anunciou o suporte para uma solução de sincronização de banco de dados peer-to-peer de nível empresarial, pronta para uso. O novo recurso permite a sincronização direta entre aplicativos incorporados móveis e/ou não móveis habilitados para o Couchbase Lite sem a necessidade de um ponto de controle baseado na nuvem.

Nesta postagem, apresentaremos uma visão geral do recurso e demonstraremos como é fácil configurar a sincronização ponto a ponto entre dois clientes. Para obter mais detalhes, consulte a seção documentação para API específica da plataforma e exemplos de trechos de código.

Primeiro, alguns casos de uso ...

Casos de uso

Os usuários de aplicativos em ambientes desconectados que exigem a capacidade de colaborar uns com os outros são candidatos à sincronização de banco de dados ponto a ponto. Aqui estão alguns exemplos

  • Aplicativos de campo :
    Trabalhadores de campo em um canteiro de obras, voluntários em uma zona de recuperação de desastres, mineiros, profissionais de saúde em clínicas móveis podem colaborar e coordenar tarefas entre si por meio de uma rede local sem nenhuma conectividade com a Internet.
  • Viagens :
    Os comissários de bordo que recebem atualizações de pedidos de refeição podem atualizar as informações de inventário que são automaticamente sincronizadas com outros comissários de bordo. Dessa forma, um comissário de bordo não oferecerá uma refeição depois que a última tiver sido oferecida.
  • Hospitalidade :
    Os fluxos de trabalho de pedidos de refeições em restaurantes podem ser automatizados. Os servidores podem receber e enviar pedidos para a cozinha, verificar o status do pedido, receber pagamentos etc. a partir de dispositivos móveis sem sair da mesa do cliente.
  • Marítimo :
    Os membros da tripulação a bordo de navios/embarcações podem registrar e sincronizar as métricas do equipamento em tempo real com outros membros da tripulação, permitindo a tomada de decisões em tempo real

Implementação típica

Abaixo é mostrada uma implantação típica usando o Couchbase para sincronização de banco de dados ponto a ponto em ambientes desconectados. Um ambiente desconectado ou a "borda" pode operar de forma autônoma sem nenhuma conectividade com os servidores backend baseados em nuvem. No entanto, quando há conectividade com a Internet, as alterações da borda desconectada podem ser sincronizado com o servidor Couchbase remoto por meio do Sync Gateway.

Os clientes do Couchbase Lite podem ser organizados em diferentes topologias. Pode ser uma topologia em estrela, em que um cliente pode ser designado como o ponto de controle primário ou ouvinte, e os outros clientes podem se comunicar entre si por meio do ouvinte designado. Como alternativa, os clientes podem ser organizados em uma topologia de malha conectada, em que cada cliente é conectado diretamente a todos os outros clientes na mesma rede.

Fluxo de trabalho ponto a ponto

A sincronização ponto a ponto é baseada em Websockets e funciona em redes baseadas em IP. É o mesmo protocolo usado para sincronizar com o Sync Gateway remoto. Aqui está um fluxo de trabalho de alto nível da sincronização de dados ponto a ponto com o Couchbase Lite. Cada par participante assume a função de um "Pares passivos" que é análogo a um servidor em uma comunicação cliente-servidor típica e/ou a um "Par ativo" que é análogo a um cliente em uma comunicação cliente-servidor típica. Um aplicativo pode assumir a função de um par ativo e passivo.

  1. O ouvinte de websockets é inicializado no Passive Peer com o banco de dados do Couchbase Lite a ser sincronizado. Há várias opções configuráveis disponíveis, incluindo a capacidade de especificar a porta, a interface de rede, a identidade TLSI etc.
  2. Uma das opções configuráveis no Ouvinte é a função de retorno de chamada do autenticador a ser invocada quando o ouvinte receber credenciais do par ativo. Essa Autenticador de ouvinte deve ser implementada pelo aplicativo e incluir lógica para autenticar as credenciais do cliente.
  3. O par passivo anuncia seus serviços. Essa etapa é tratada inteiramente dentro do aplicativo e o Couchbase Lite não desempenha nenhuma função aqui. Normalmente, os aplicativos aproveitariam estruturas partidárias específicas da plataforma, como NSNetService para essa finalidade. De fato, dependendo da implementação, essa etapa pode ser opcional. Por exemplo, o dispositivo pode ser configurado com um endereço IP estático ou, se houver suporte a DNS, o cliente pode estar escutando em um URL conhecido.
  4. O par ativo ou cliente procura pares passivos aos quais se conectar. Novamente, essa etapa é tratada inteiramente dentro do aplicativo e o Couchbase Lite não desempenha nenhuma função aqui. Normalmente, os aplicativos utilizam estruturas específicas da plataforma, como NSNetService para essa finalidade. É claro que, se o Ouvinte estiver escutando em um endereço conhecido, então essa etapa seria opcional.
  5. Depois que o par ativo identifica o par ao qual se conectar, ele precisa estabelecer uma conexão de replicação com o outro ponto de extremidade. O replicador para sincronização ponto a ponto é configurado exatamente da mesma forma que seria o caso se ele estivesse estabelecendo a conexão com o Sync Gateway remoto.
  6. Como parte do handshake TLS do estabelecimento da conexão, os certificados do servidor são autenticados. Isso acontece de forma transparente para o aplicativo.
  7. Depois que o certificado do servidor é autenticado, as credenciais do cliente são enviadas ao ouvinte para autenticação. O Couchbase Lite oferece suporte à autenticação básica e à autenticação baseada no certificado do cliente autenticação.
  8. As credenciais recebidas são enviadas para o Autenticador de ouvinte onde são validados. Uma vez autenticados, o canal de comunicação é estabelecido entre os pares.
  9. Depois disso, sempre que houver uma alteração de documento no banco de dados, a alteração de dados será automaticamente sincronizada com a outra extremidade. A direção da transferência de dados pode ser configurada como unidirecional ou bidirecional.

Atributos da tecnologia Sync

É difícil fazer a sincronização corretamente. Há várias considerações e aqui está uma folha de dicas sobre como a sincronização ponto a ponto se comporta. Consulte a seção documentação para obter detalhes

Recurso Sincronização ponto a ponto do Couchbase Lite
Segurança Suporte imediato à criptografia TLS. Autenticação baseada em certificados. Autenticação básica. Os aplicativos precisam escrever 0 linhas de código para obter a criptografia TLS
Resiliência da rede Repetições com retorno exponencial. As replicações contínuas tentam novamente por tempo indeterminado, enquanto as replicações de uma única tentativa desistem após um determinado número de tentativas
Eficiência Usando a tecnologia Delta Sync, otimize os custos de transferência de dados sincronizando apenas as partes do documento que foram alteradas
Conflitos de dados Integrado. Por padrão, os conflitos são resolvidos automaticamente usando políticas predefinidas. Além disso, os aplicativos têm flexibilidade para especificar suas próprias funções de mesclagem bidirecional personalizadas para lidar com conflitos
Facilidade de uso do desenvolvedor São necessárias apenas algumas linhas de código para iniciar a sincronização ponto a ponto. Obviamente, há várias opções configuráveis para personalizá-lo de acordo com suas necessidades
Suporte multiplataforma O Couchbase Lite é compatível com várias plataformas móveis e não móveis. A funcionalidade de sincronização de dados ponto a ponto permite a sincronização entre plataformas heterogêneas - por exemplo, entre um aplicativo para Android e iOS
Topologias flexíveis Como cada par participante pode atuar como ouvinte ou replicador, ou ambos, os clientes do Couchbase Lite que participam da sincronização ponto a ponto podem ser organizados em diferentes topologias, como estrela, malha etc. A escolha depende das necessidades do aplicativo

Código de introdução

Você pode dar uma olhada em nosso páginas de tutoriais para ver um aplicativo completo que demonstra os recursos de sincronização ponto a ponto. Mas, aqui, gostaria de compartilhar o código mínimo necessário para iniciar a sincronização, para que você possa ver por si mesmo como é fácil executar o fluxo de trabalho descrito anteriormente. Embora os snippets sejam para iOS, deve ser fácil mapeá-los para qualquer outra plataforma Couchbase Lite.

Pares passivos

O trecho de código a seguir inicializa o ouvinte no Passive Peer que escuta as conexões de entrada de pares

Pares ativos

O trecho de código a seguir inicializa o replicador para seguro sincronização ponto a ponto. É a mesma lógica do replicador usada ao replicar para o ponto de extremidade remoto

É isso aí! Em apenas algumas etapas simples, você pode obter uma sincronização peer-to-peer segura com o Couchbase Lite

E quanto à sincronização ponto a ponto na versão 2.1?

Se você tem trabalhado com o Couchbase Lite, provavelmente está familiarizado com a função funcionalidade de sincronização ponto a ponto que foi introduzido em 2.1 liberação do Couchbase Lite. Na versão 2.1, fornecemos um MessageEndpointConnection definição de interface que precisava ser implementada pelo aplicativo. O replicador do Couchbase Lite se comunicava com o aplicativo por meio dessa interface, fornecendo as alterações de dados que precisavam ser sincronizadas. A forma como os dados eram transferidos para o par receptor dependia totalmente do aplicativo. O fornecimento de uma interface ofereceu aos desenvolvedores de aplicativos a flexibilidade de usar qualquer estrutura de comunicação de sua escolha e poderia ser usada em qualquer transporte (IP ou não IP).

Na versão 2.8, simplificamos muito a tarefa ao fornecer uma implementação pronta para uso para sincronização ponto a ponto em redes IP. Como você verá em breve, são necessárias apenas algumas linhas de código para começar. O MessageEndpointConnection continua a ter suporte. Portanto, se você já tiver implementado sua solução de sincronização com o que foi oferecido na versão 2.1, não será necessário migrar sua solução para usar a nova API. Na verdade, essa ainda é sua única opção se estiver sincronizando em redes não baseadas em IP. No entanto, se você estiver sincronizando em redes IP, isso seria incentivado, pois simplificaria muito o código do aplicativo e reduziria os custos de teste e manutenção.

 

O que vem a seguir

O Couchbase é a única solução de sincronização de banco de dados ponto a ponto que permite que os clientes se comuniquem diretamente uns com os outros em ambientes desconectados.

Você pode baixar o Couchbase Lite e avaliar a funcionalidade gratuitamente.

Se quiser se aprofundar nos detalhes, veja aqui onde você pode encontrar mais informações
Documentação: Peer-to-Peer
Tutoriais: Ponto a ponto
Página de soluções: Soluções Peer-to-Peer
Vídeo de conexão com demonstração: Sincronização ponto a ponto usando o Couchbase Lite

O Fóruns do Couchbase é um ótimo lugar para entrar em contato com perguntas. Deixe um comentário abaixo ou sinta-se à vontade para entrar em contato comigo via Twitter ou enviar-me um e-mail

 

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

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.

Um comentário

  1. Presumo que o couchbase tenha desistido da sincronização móvel ponto a ponto em uma plataforma Android. Dei uma olhada na documentação e não consegui fazer com que funcionasse. Os únicos exemplos de demonstração são com IOS e Xamarin. Não tenho certeza se a implementação é tão simples porque um exemplo simples de demonstração de comunicação bidirecional deve ser simples de fornecer para a comunidade Android. Estou prestes a desistir do couchbase.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.