Galera, esbocei um software que basicamente consiste de um servidor com um banco de dados, os clientes consultam e inserem elementos nesse banco de dados, sendo qualquer cliente pode ou não ser mobile. Em um primeiro momento o mais importante seria a confiabilidade do sistema, e em outro momento talvez a escalabilidade.
Decidi que seria uma boa ideia desenvolver esse software em java, por estar familiarizado com a sintaxe e com o ambiente de desenvolvimento, porém estou afastado do mundo java a muito tempo e essa parte de cliente/servidor me deixou bem confuso, usei o google, mas infelizmente as informações obtidas em sua maioria muito antigas ou incompletas.
Existem várias possibilidades sockets, web services, alguns frameworks, na verdade isso tudo fez uma confusão na minha cabeça, entre suas diferenças e utilidades.
Como fariam um software desses? E por que?
Por exemplo: usaria tal framework para tal coisa, por tais motivos.
Gostaria da opinião de vocês. 