Tecnologia para multicamadas java (Lan e Internet)

Boa tarde a todos,

Atualmente em Java, trabalho com EJB3 (Glassfis) para distribuir a aplicação. O problema é: não consigo fazer com que a aplicação desktop do usuário acesse as regras de negócio no servidor glassfish, fiz testes com RMI puro, mas pesquisando nos foruns e internet vi que diversas pessoas falam mal de RMI via internet. Com delphi e BSS (Borland Socket Server) (RPC) temos aplicações que funcionam tanto na LAN como via internet, e muito bem, mas o problema de delphi é que preciso de windows. Eu gostaria de saber dos colegas alguma tecnologia boa que me atenda dessa maneira localmente (LAN) e via internet.

Obrigado.

Abraços.

Uma opção é o spring-remoting
http://static.springsource.org/spring/docs/2.0.x/reference/remoting.html

Há várias opções de uso, desde de RMI até HTTP (que passa mais fácil por firewalls).

Mas essas opções acabam caindo na história de serem uma comunicação conectada, um RPC da vida. Muita gente não gosta disso hj em dia.
Uma opção é usar JMS por exemplo ou até mesmo usar alguns serviços REST.