O Mobile Sync Service (MSS) é um componente central da plataforma Mobile PaaS (mPaaS), originado da solução E2E SYNC do Ant Financial Group. O MSS envia grandes volumes de dados do servidor para os aplicativos clientes em tempo real, sem aguardar solicitações do aplicativo. O serviço mantém uma conexão TCP persistente protegida por SSL. Assim, quando os dados mudam no servidor, as atualizações chegam ao cliente imediatamente, de forma confiável e na ordem original de envio.
Arquiteturas tradicionais baseadas em RPC apresentam diversas limitações em ambientes móveis:
O cliente precisa consultar o servidor repetidamente para detectar alterações, mesmo com pouca ou nenhuma mudança nos dados.
Cada módulo de negócio faz uma requisição RPC separada na inicialização, multiplicando o número de idas e vindas na rede.
O cliente não detecta mudanças no servidor instantaneamente; a atualização dos dados ocorre apenas por meio de consultas periódicas baseadas em temporizador.
Conexões HTTP(S) de curta duração exigem handshakes repetidos, troca de certificados e ciclos de criptografia/descriptografia, mesmo com keepalive ativado, consumindo tempo e recursos significativos da rede.
O MSS resolve todos esses problemas com uma única conexão persistente que entrega dados ao cliente sob demanda.

Funcionamento
O MSS funciona de maneira semelhante ao mecanismo de binlog do MySQL, aplicado à entrega de dados móveis. A unidade básica de transferência entre o servidor MSS e o SDK cliente é um log de operação, ou oplog.
Para sincronizar uma alteração de dados para um usuário ou dispositivo específico, o sistema chama a interface do MSS. O servidor MSS encapsula a alteração em um oplog, persiste-o no banco de dados e o envia ao cliente quando este estiver online. Cada oplog possui um ID exclusivo e monotonicamente crescente, com escopo definido para um usuário e negócio específicos. Dessa forma, o servidor sempre envia os oplogs em ordem ascendente de ID, garantindo que nenhuma mensagem seja entregue fora de sequência.
Tanto o servidor MSS quanto o cliente rastreiam o maior ID de oplog recebido pelo cliente. Esse registro, chamado ponto de sincronização, atua como um número de versão dos dados. Quando um cliente se reconecta após ficar offline, o MSS usa o ponto de sincronização para retomar a entrega exatamente de onde parou.

Recursos
-
Sincronização confiável
O MSS garante a entrega para qualquer cenário de negócio que exija Qualidade de Serviço (QoS). Se o usuário estiver ativo dentro do período de validade dos dados e atender às condições de envio (como versão do cliente e tipo de sistema operacional), o cliente receberá todas as mensagens enviadas.
-
Entrega incremental e ordenada
As mensagens no mesmo canal chegam exatamente na ordem em que o servidor de negócio as enviou. A sincronização de todos os dados é incremental, transferindo apenas o que foi alterado.
-
Alto desempenho em tempo real
Com uma boa conexão de rede, a latência do envio de mensagens depende quase inteiramente do tempo de transmissão da rede, geralmente inferior a 1 segundo.
Benefícios
-
Envio consolidado
Durante a inicialização do cliente, o servidor envia dados de múltiplos negócios em uma única operação, reduzindo o número de requisições de rede separadas.
-
Envio incremental
Os dados são enviados apenas quando há novidades. Isso elimina transferências redundantes e reduz os custos de rede.
Redução de requisições
Na ausência de dados incrementais, o sistema não faz requisições. Isso elimina completamente requisições de negócio redundantes.
-
Maior agilidade
Quando os dados mudam no servidor, o MSS envia a alteração diretamente ao cliente com atraso mínimo, sem necessidade de solicitação do cliente.
-
Experiência do usuário aprimorada
Os dados ficam disponíveis antes da renderização da interface do cliente, permitindo que os usuários vejam conteúdo atualizado imediatamente, sem espera.
Casos de uso
O MSS é ideal para qualquer cenário em que o servidor precise enviar alterações de dados para um aplicativo cliente em tempo real, como resultados de transferências, confirmações de pagamento e notificações da Central de Mensagens. Os exemplos a seguir mostram como o MSS atende a requisitos específicos.
Mensagens instantâneas: O MSS entrega mensagens de chat aos usuários destinatários na ordem de envio, com garantia de entrega incremental.
Configuração dinâmica: O MSS envia toggles de recursos do aplicativo, parâmetros dinâmicos e atualizações de configuração para todos os dispositivos em tempo real, permitindo alterações em lote na configuração de negócio durante a execução do aplicativo.
Pagamentos online: O MSS fornece um túnel seguro para o envio de dados de transação. Com o aplicativo online, ele recebe os dados enviados imediatamente. Se o aplicativo ficar offline, o MSS persiste os dados e os entrega na próxima conexão.