Tira teima: Remoting com Spring
Em sintese depende do cenário. Considerando as possíveis formas de remoting do Spring:
Http Invoker: Estratégia especial de remoting que faz comunicação via protocolo http via serialização. A vantagem é por que trafegamos por um protocolo caracter que já está disponível para nos, leia-se já é utilizado por uma aplicação web.
Hessian: É um protocolo leve baseado em http binário, que é provido através do Caucho. Você pode encontrar mais informações sobre esse protocolo para Web Service binário aqui. A Vantagem é que é bem leve.
Burlap: É uma solução baseada em XML como alternativa do Hessian, também desenvolvido pelo Caucho's. É muito utilizado em comunicações com dispositivos moveis, como o telefone celular, já que alem de simples é leve. Podemos achara mais informações sobre Burlap aqui.
Jax RPC: É uma forma de Remote Procedure Call(RPC) baseada em XML. Possibilita trabalhar com Web Services com WSDL. Na versão 2.0 mudou de nome para Jax WS 2.0. Vocês podem encontrar mais informações sobre Jax RPC aqui. A Vantagem é que podemos conversar de maneira padronizada com uma aplicação escrita em outra linguagem.
JMS: É uma forma de troca de mensagens entre aplicações java corporativas(JEE). A principal vantagem é que podemos trabalhar(ler, receber e criar mensagens) de forma a-síncrona. É muito utilizado para integração de sistemas. Vocês podem encontrar mais informações aqui.
EJB: Talvez o maior inimigo do Spring(Brincadeira... naquelas...) . O EJB prove um rápido desenvolvimento de forma distribuída e segura com recursos como transação gerenciada pelo container. O EJB usa internamente RMI, assim como o JMS é uma tecnologia java corporativa(JEE). Também chamado de serviço de backing bean(Back-end bean). A principal vantagem do EJB em relação as outras formas de remoting é que ele é perfeito para transações distribuídas. Você pode encontrar mais informações sobre EJB aqui.
O Spring framework prove formas de abstração e exposição remota utilizando essas tecnologias brevemente descritas a cima. Se você desejá ter transações distribuídas utilize EJB. O Spring não possui nenhuma implementação de tal solução em seu cerne. Existe essa funcionalidade mas seria dentro de um container WEB-Logic, ai sim seria possível fazer isso comente com Spring e sem EJB. Mas nesse caso acredito que a melhor solução seria utilizar EJB mesmo.
- RMI
- Http Invoker
- Hessian
- Burlap
- Jax RPC
- JMS
- EJB
Http Invoker: Estratégia especial de remoting que faz comunicação via protocolo http via serialização. A vantagem é por que trafegamos por um protocolo caracter que já está disponível para nos, leia-se já é utilizado por uma aplicação web.
Hessian: É um protocolo leve baseado em http binário, que é provido através do Caucho. Você pode encontrar mais informações sobre esse protocolo para Web Service binário aqui. A Vantagem é que é bem leve.
Burlap: É uma solução baseada em XML como alternativa do Hessian, também desenvolvido pelo Caucho's. É muito utilizado em comunicações com dispositivos moveis, como o telefone celular, já que alem de simples é leve. Podemos achara mais informações sobre Burlap aqui.
Jax RPC: É uma forma de Remote Procedure Call(RPC) baseada em XML. Possibilita trabalhar com Web Services com WSDL. Na versão 2.0 mudou de nome para Jax WS 2.0. Vocês podem encontrar mais informações sobre Jax RPC aqui. A Vantagem é que podemos conversar de maneira padronizada com uma aplicação escrita em outra linguagem.
JMS: É uma forma de troca de mensagens entre aplicações java corporativas(JEE). A principal vantagem é que podemos trabalhar(ler, receber e criar mensagens) de forma a-síncrona. É muito utilizado para integração de sistemas. Vocês podem encontrar mais informações aqui.
EJB: Talvez o maior inimigo do Spring(Brincadeira... naquelas...) . O EJB prove um rápido desenvolvimento de forma distribuída e segura com recursos como transação gerenciada pelo container. O EJB usa internamente RMI, assim como o JMS é uma tecnologia java corporativa(JEE). Também chamado de serviço de backing bean(Back-end bean). A principal vantagem do EJB em relação as outras formas de remoting é que ele é perfeito para transações distribuídas. Você pode encontrar mais informações sobre EJB aqui.
O Spring framework prove formas de abstração e exposição remota utilizando essas tecnologias brevemente descritas a cima. Se você desejá ter transações distribuídas utilize EJB. O Spring não possui nenhuma implementação de tal solução em seu cerne. Existe essa funcionalidade mas seria dentro de um container WEB-Logic, ai sim seria possível fazer isso comente com Spring e sem EJB. Mas nesse caso acredito que a melhor solução seria utilizar EJB mesmo.