Aplicação n-tier com front-end Swing

Pessoal,

Imaginem a seguinte situação: Sua empresa precisa desenvolver uma aplicação em Java, utilizando um banco de dados Oracle 10g e deseja utilizar Swing no front-end. De nenhuma forma o front-end conectará diretamente ao banco de dados. Ao invés disso, haverá uma camada intermediária para centralizar as regras de negócio e acesso aos dados.
Esta mesma camada poderá futuramente ser aproveitada em um cliente Web com Servlets e JSPs.
Quais tecnologias poderiam ser utilizadas na camada de negócios?
É possível desenvolver um front-end Swing que receba e envie dados à camada negócios, como uma típica interface de aplicativos de banco de dados (com tabelas de registros, master/detail, edição, consulta)?
Sei que a questão pode parecer evasiva demais, mais gostaria de saber quais tecnologias Java fornece para este tipo de solução, para então estudá-las mais detalhadamente.
Se alguém conhece Delphi e já ouviu falar em MIDAS/DataSnap, é exatamente este tipo de solução que procuro no Java.

Desde já agradeço!

Utilize EJB!

http://java.sun.com/products/ejb/

Alguém poderia indicar algum tutorial ou apostila de EJB? Gostaria de conceitos básicos e também alguma coisa prática. Tipo como acessar um EJB localizado em outra máquina através de outra aplicação.
Se alguém tiver algum material, será de grande valia.

Obrigado.