Aplicação distribuída com interface desktop

Sou iniciante em java. Consigo me virar para projetos simples porém estou com a ideia de fazer algo complexo e não sei por onde começar.

Quero desenvolver um sistema multicamadas, onde a interface de usuário seja em janelas (ex.: Swing) e o servidor de aplicação com as regras de negócio esteja em uma máquina remota.

São tantas as tecnologias (EJB, JMS, RMI, sei lá q +) que eu posso usar para isso, não é verdade? Gostaria da opinião de vcs sobre qual está mais “atualizada”, qual eu deveria me dedicar a aprender para atingir meu objetivo.

Se fosse para web, usaria o VRaptor, do qual já tenho um pouco de conhecimento. É possível eu implantar o servidor de aplicação usando servlets, e acessá-los a partir de uma interface Swing? É adequado fazer isso ou existe uma maneira melhor?

Geralmente faço esse tipo de coisas usando JAX-WS (para criar os Webservices) , é muito simples e intuitivo e sem falar que você programa como se tivesse no mesmo computador

amigo, muito obrigado!
estou vendo aqui uns tutoriais, é realmente fácil mesmo.
Aprendi por este aqui: http://netbeans.org/kb/docs/websvc/jax-ws.html

Realmente… é muito facil, na verdade é so colocar os Annotations que voilá, esta tudo resolvido… como ja tens os tutorias ai, esta tudo feito… fique bem :-o