Web Service é sempre necessário?
06/04/2020
0
Boa noite pessoal,
estou começando a carreira de desenvolvedor mobile e sou novo aqui no devmedia.
Pesquisando e mergulhando nesse oceano de informação do stackoverflow, youtube e udemy. Percebi que é a rejeição ao acesso direto ao banco de dados por aplicação mobile é um consenso entre a comunidade de desenvolvedores. A utilização de uma Web API é sempre preferível. Li que existem diversas vantagens em relação à reutilização, escalabilidade e segurança das aplicação quando há um back-end.
No entanto, em meu contexto profissional, me deparei com alguns cenários que me encheram de dúvidas e queria compartilhar aqui em busca de ajuda.
Cenário: Loja/Restaurante
Desenvolvemos sistemas de gestão em que tanto o próprio sistema como o banco de dados estão hospedados no servidor local do cliente.
O cliente tem interesse de controlar comandas/pedidos/vendas por aplicativos móveis instalados nos celulares dos funcionários que estarão dentro da loja atendendo os clientes.
Os aplicativos e o servidor estão conectados à mesma rede local.
Dúvida 1: Faz sentido hospedar uma Web API em serviços como Azure, AWS nesse cenário? tendo em vista que o servidor é local e os dispositivos estão conectados na mesma rede.
Dúvida 2: Faz sentido hospedar a Web API no servidor do cliente? tendo em vista que provavelmente teria que fazer isso para todos os clientes interessados na aplicação? E que, provavelmente, alguns não terão servidores dedicados para hospedar a WEB API (Podendo, inclusive, não ser um windows server)?
Dúvida 3: Existe alguma possibilidade de tornar seguro o acesso direto ao banco de dados pelos dispositivos móveis através da rede local? Corrijam-se se estiver errado, mas pela minha ótica inexperiente, não seria essa uma alternativa mais prática?
Observação: Já assisti alguns cursos sobre o .NET EntityFramework e achei muito interessante. No caso, se a resposta da dúvida 3 for positiva, ele seria uma solução para o cenário? (considerando que os aplicativos serão desenvolvidos usando Xamarin)?
Desde já agradeço a atenção de todos!
E desculpem o volume de perguntas.
estou começando a carreira de desenvolvedor mobile e sou novo aqui no devmedia.
Pesquisando e mergulhando nesse oceano de informação do stackoverflow, youtube e udemy. Percebi que é a rejeição ao acesso direto ao banco de dados por aplicação mobile é um consenso entre a comunidade de desenvolvedores. A utilização de uma Web API é sempre preferível. Li que existem diversas vantagens em relação à reutilização, escalabilidade e segurança das aplicação quando há um back-end.
No entanto, em meu contexto profissional, me deparei com alguns cenários que me encheram de dúvidas e queria compartilhar aqui em busca de ajuda.
Cenário: Loja/Restaurante
Desenvolvemos sistemas de gestão em que tanto o próprio sistema como o banco de dados estão hospedados no servidor local do cliente.
O cliente tem interesse de controlar comandas/pedidos/vendas por aplicativos móveis instalados nos celulares dos funcionários que estarão dentro da loja atendendo os clientes.
Os aplicativos e o servidor estão conectados à mesma rede local.
Dúvida 1: Faz sentido hospedar uma Web API em serviços como Azure, AWS nesse cenário? tendo em vista que o servidor é local e os dispositivos estão conectados na mesma rede.
Dúvida 2: Faz sentido hospedar a Web API no servidor do cliente? tendo em vista que provavelmente teria que fazer isso para todos os clientes interessados na aplicação? E que, provavelmente, alguns não terão servidores dedicados para hospedar a WEB API (Podendo, inclusive, não ser um windows server)?
Dúvida 3: Existe alguma possibilidade de tornar seguro o acesso direto ao banco de dados pelos dispositivos móveis através da rede local? Corrijam-se se estiver errado, mas pela minha ótica inexperiente, não seria essa uma alternativa mais prática?
Observação: Já assisti alguns cursos sobre o .NET EntityFramework e achei muito interessante. No caso, se a resposta da dúvida 3 for positiva, ele seria uma solução para o cenário? (considerando que os aplicativos serão desenvolvidos usando Xamarin)?
Desde já agradeço a atenção de todos!
E desculpem o volume de perguntas.
Ricardo Arraes
Curtir tópico
+ 0
Responder
Post mais votado
07/04/2020
O senário que você apresenta de servidor local, acredito ser uma realidade muito presente em aplicações um pouco legadas. A tendencia é as aplicações serem hospedadas em nuvem (Azure, AWS, Google, etc...) pois atualmente está muito acessível (financeiramente), sem contar na auta disponibilidade.
Existem diversas formas, e cada uma adequada para cada realidade.
Percebo que atualmente está sendo utilizado muito o conceito de servidor Serveless, no qual ele fica inativo até que aconteça uma requisição (economizando muito em processamento). Por exemplo o Firebase, ele te entrega um servidor de armazenamento NoSQL com validação completo e pronto, para aplicações altamente escaláveis.
Sugiro você utilizar alguma dessas plataformas em nuvem para o teu app, e através de serveless integrar com as outras aplicações legadas. Imagino que assim você ganha tempo pois essas plataformas te entregam tudo pronto e assim gradativamente vai atualizando as aplicações legadas.
Existem diversas formas, e cada uma adequada para cada realidade.
Percebo que atualmente está sendo utilizado muito o conceito de servidor Serveless, no qual ele fica inativo até que aconteça uma requisição (economizando muito em processamento). Por exemplo o Firebase, ele te entrega um servidor de armazenamento NoSQL com validação completo e pronto, para aplicações altamente escaláveis.
Sugiro você utilizar alguma dessas plataformas em nuvem para o teu app, e através de serveless integrar com as outras aplicações legadas. Imagino que assim você ganha tempo pois essas plataformas te entregam tudo pronto e assim gradativamente vai atualizando as aplicações legadas.
Kleber Santos
Responder
Clique aqui para fazer login e interagir na Comunidade :)