Como muitos sabem, o desenvolvimento móvel está disparando nos dias de hoje e, acredito, afeta o que codificamos. Para ser específico, estou interessado em desenvolver serviços da web para um aplicativo móvel.
Eu vejo duas arquiteturas possíveis - RPC e REST. Eu desenvolvi os serviços REST e RPC e o que observei é que os serviços RPC são muito mais fáceis de codificar, especialmente em linguagens como PHP. O problema com isso parece ser escalabilidade - o lado do servidor pode facilmente se transformar em confusão quando muitos procedimentos estão presentes.
REST, por outro lado, parece ser muito mais estruturado, o lado do servidor se torna relativamente fácil de manter, mas tem o potencial de dividir dados em vários recursos, o que é ruim para aplicativos móveis (por vários motivos).
Pelo que experimentei, o RPC parece um pouco melhor na maioria dos casos:
- Tanto o cliente quanto o servidor estão preocupados em minimizar o número de procedimentos disponíveis e as chamadas feitas.
- Seguir as regras de arquitetura não contraria as otimizações possíveis.
Eu realmente não espero que alguém me explique o que são REST e RPC, a Web está cheia disso. Quero que as pessoas com experiência no desenvolvimento de aplicativos móveis expressem suas opiniões sobre o uso dessas duas arquiteturas no lado do servidor. Dicas também são bem-vindas (quem não gosta de dicas, não é?).