Conexão direta com o banco ou com um servidor de aplicativos?

Estou desenvolvendo um sistema p desktop em Java usando o Swing, faço uma conexão direta da minha aplicação com um banco Postgres remoto para fazer as consultas, cadastros etc. Entretanto estive estudando sobre socktes e pensei em criar uma aplicação cliente/servidor em que minha aplicação se conectaria a um Servidor atraves de Sockets para executar os processamentos e esse servidor também ficaria responsável por fazer a conexão com o banco de dados.

Sendo assim pergunto, no meu caso, qual é a melhor solução: fazer a conexão direta com o banco de dados, ou utilizar a arquitetura cliente/servidor?

Desde já agradeço a atenção e a colaboração de todos

Cara, eu optaria pelo cliente x servidor.

Mas não sei se sockets mesmo.

Talvez um RMI ou até um web service.

Sockets também são bons, mas sei lá, estas outras tecnicas abstraem problemas que terás com sockets…

Você realmente precisa de uma aplicação distribuída? Caso contrário, use cliente/servidor que é muito mais simples.

Quantos usuários usarão o front-end ao mesmo tempo?? Haverá concorrência?

Exatamente isso, tente sempre usar o mais simples, só use o complicado se tiver necessidade… quem tem q ser bonito é modelo e atriz…