Estrutura para rodar uma aplicação MVC

Olá amigos,

Após pesquisas que realizei aqui no grupo e na internet, notei que a maioria das perguntas estão relacionadas ao Conceito do padrão MVC. Como: qual a atribuição de cada camada, como distinguir o que se codifica em cada camada… encapsulamento … uso de interfaces

enfim … a minha dúvida está realacionada em como montar uma estrutura para que isso funcione… senguinte:

estou desenvolvendo uma aplicação que se comunica com uma outra aplicação java. essa segunda aplicação é um motor workflow… a minha aplicação terá seu processos gerenciados pelo motor. O motor roda em uma máquina linux e pretendo colocar deixar as camadas M e C nessa mesma máquina … e por fim disponibilizar uma camada viewer em swing para estações windows …

a minha dúvida especificamente, é sobre qual ferramenta melhor se adequa nesse contexto para realizar a comunicação entre as camadas … ? analisei posts e artigos sobre EJB , design patterns, RMI, sockets … enfim…

não estou seguro quanto no que se refere em qual o caminho devo investir … para distribuir a minha aplicação de forma segura e escalável … emtre meus principais objetivos …

quem puder contribuir com alguma opinião ou sugestão à respeito ficarei grato … obrigado.