Sistema Cliente/Servidor

Preciso desenvolver um sistema de controle de versões. Porém n tenho nenhum conhecimento na área de redes em java. O sistema deve ter um programa do lado do cliente, para q o memso possa enviar seus dados, e um do lado do servidor para receber esses dados e fazer todo o controle de versão. A comunicação será feita através da internet.

Que tecnologias devo utilizar para desenvolver tal aplicação?

Sockets? RMI?

Por favor se possível apontem frameworks ou todo tipo de abordagem q possa facilitar o desenvolvimento de tal sistema.

Antecipadamente agradeço.

Estude o genesis. É um projeto brasileiro, com documentação em português, criado pra resolver exatamente esse tipo de problema.