Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Sincronismo

Pedro,

O sistema tem aproximadamente 600 usuários, onde eles estão espalhados em diversos estados (dependendo do local a conectividade não ajuda durante o sincronismo).

Na versão atual que esta em produção o sincronismo ocorre exatamente da forma que você descreveu.
Porém temos os seguintes problemas:

 - Em alguns sincronismos (no envio de pedidos por exemplo, sentido smartphone -> servidor ) ao ser enviado pedidos ocorre erro durante o processamento deste pedido e o sincronismo é "perdido" (ainda existe o fato de que o webservice leva um certo tempo para processar os dados recebidos e uma das melhoras que dr pretende fazer é reduzir o tempo de duração do sincronismo). Alterando para que o webservice apenas receba os dados e salve um arquivo para este ser processado posteriormente por um serviço eu terei ganho no tempo de sincronismo e caso ocorra erro no processamento deste arquivo não ficará travado o sincronismo.
 - Já na geração dos dados a serem retornados do webservice existe um tempo de processamento que as vezes aumenta devido o acesso constante da base de dados por outra aplicação ( existe uma interface web para esta app que exporta os dados para nosso ERP )  e tendo os dados prontos em arquivos para apenas retorna-los reduzo o tempo da conexão com o webservice (reduzindo também a possibilidade de perca de conexão).

Valeu pela colaboração!



Em terça-feira, 4 de setembro de 2012 16h41min17s UTC-3, Pedro Brigatto escreveu:
Oi, Heladio. Legal, cara. Vou tentar ajudar.

Uma pergunta para fomentar a discussão: haveria problema em você manter esses dados estruturados em um BD relacional e recuperá-los sob demanda via serviço? Você pode criar uma camada de acesso a dados do lado servidor e montar as pesquisas e mesmo a atualização do banco (inserção, atualização, remoção) da maneira que você precisa.

Não entendi a vantagem que você teria ao manter esses arquivos em um diretório qualquer para ser acessado via FTP. Eu faria via serviço, mantendo esses dados em banco, pelo menos com as informações que você colocou aqui na thread até o momento.

[]s,
Pedro 

Em 4 de setembro de 2012 16:28, Heladio Benicio <benicio...@gmail.com> escreveu:
Pedro,

Pretendo ter uma aplicação no servidor com um serviço que será responsável por gerar arquivos com os dados e em seguida salva-los em um diretório (FTP) para a aplicação realizar o sincronismo.
Da forma como estou imaginando ficaria mais "simples" do que se fosse com o Webservice pois eu não "montaria" os arquivos no momento em que o serviço fosse consumido (A não ser que o WebService apenas lê-se esse diretório e serializasse 
os arquivos e retornasse, o que acha? ) 

A aplicação não lida com estoque ( e sim com conceito de estoque infinito conforme mencionado);
O que precisa ser sincronizado constantemente são: lista de preço (são modificadas constantemente), pedidos criado e novos clientes cadastrados.


O motivo maior do pq do FTP é pelo fato de já ter visto soluções utilizarem esta solução e aparentemente não haver grandes problemas.
Por isso decidi postar aqui pra ver se alguém utiliza FTP e tem algo a comentar.

Obrigado pelo ajuda!




Em terça-feira, 4 de setembro de 2012 15h43min34s UTC-3, Pedro Brigatto escreveu:
Heladio, 

Eu devolveria a pergunta: o que te forçaria a fazer com FTP? É algum requisito?
Eu iria por web service também. REST, mensagens formatadas em JSON. Make it simple.

Quanto à sincronização de dados, a quantidade de dados pode ser um fator meio complicado, custoso.
O que você precisa entender, primeiro de tudo, é como esse sync deve ser realizado, e isso tem muito a ver com a dinâmica do negócio. Há casos em que é permitido e não implica em risco trabalhar com o conceito de estoque infinito, e isso é inclusive uma das opções de ERPs como o SAP. Aí, o sincronismo antes de sair e depois de voltar é suficiente, e talvez a única operação que você precise manter online request a request seja a submissão de ordem de venda.

Caso seja um estoque real e finito, depende de quantas pessoas acessam esse estoque, se há "porções" de estoque definidas para cada vendedor/operador, tem que decidir o que acontece se um estoque de um vendedor se esgota e há vendedores em um ritmo de venda menor (reequilibrio dos estoques, mexendo nas outras porções?). Isso tudo vai te dar uma medida dos tipos de dados que precisarão ser sincronizados e em que periodicidade essa sincronização deve ocorrer (e, ainda mais, se é ativa ou passiva, sob o ponto de vista de usuário).

Via web service você ganha em manutenibilidade, escalabilidade, flexibilidade (bem menos resistente a mudanças no server side), mas tudo depende do que você colocar em relação ao seu pensamento sobre FTP também. Compartilha conosco para entendermos o que está em jogo.

Abraços,
Pedro

o que normalmente faço e vejo fazerem é a sincronização dos dados antes de sair da "base". Sync, vai para o trabalho, armazena tudo localmente/processa ordens de venda em tempo real (depende de uma série de fatores, inclusive que tipo de estoque você estará considerando. No SAP, por exemplo, tem como você trabalhar com estoque "infinito", o que nem é recomendado mas, em alguns casos se usa. Caso contrário, trabalhando com estoque real e finito, vender pode depender da existência ou não do produto em estoque ... resumindo: precisa entender o modelo do negócio para definir estratégia de submissão de ordens e mesmo de sincronização de dados de algumas entidades que você mencionou).

Em 4 de setembro de 2012 15:32, Heladio Benicio <benicio...@gmail.com> escreveu:

Pedro,

Qual seria a dificuldade de manutenção com FTP que não teria com WebService?

Em terça-feira, 4 de setembro de 2012 14h11min54s UTC-3, Pedro Subutzki escreveu:
Olá amigo,
Acredito que um WS seja a melhor maneira! Vc vai ganhar em facilidade na manutenção e escalabilidadr!

Abs

Enviado via iPhone

Em 04/09/2012, às 13:36, Benicio <benicio...@gmail.com> escreveu:

Olá a todos!

Venho aqui compartilhar o cenário em que me encontro atualmente e pedir a vocês sugestões de como seria a melhor alternativa.

Estou desenvolvendo um sistema de força de vendas e chegou o momento de definir como será o sincronismo dos dados.

Detalhe do cenário:
- A aplicação trabalha de modo off-line, sincronizando de tempos e tempos ( a app utiliza um banco local no aparelho - Sqlite  );

Alternativas levantas:
- FTP;
- WebService;
- Se conhecerem outra alternativa válida favor informar.

Soluções pensadas:
- Utilizar um FTP para disponibilizar os arquivos com dados e a aplicação realizar o download, processamento e inserção dos dados na base do aparelho;
- Utilizar o WebService onde existirá um método para cada lista de entidade a ser retornada;


Dúvida:
- Para uma aplicação onde serão sincronizados por volta de 5mb entre diversos dados(clientes, pedidos, preços, produtos, ...),
Onde estes dados serão gravados no banco do dispositivo e não acessados de forma online.
Alguém tem algum posicionamento a favor de qual das duas se encaixaria melhor para a solução?
 






--
-----------------------------------------------------
Pedro E. Cunha Brigatto
Twitter: @pedrobrigatto, GoogleTalk: pedrob...@gmail.com
-----------------------------------------------------




--
-----------------------------------------------------
Pedro E. Cunha Brigatto
Twitter: @pedrobrigatto, GoogleTalk: pedrob...@gmail.com
-----------------------------------------------------

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário