Gli EJB sono costruiti su RMI. Entrambi implicano client e bean Java. Se i tuoi clienti devono essere scritti in qualcos'altro (ad esempio, .NET, PHP, ecc.), Vai con i servizi web o qualcos'altro che parla un protocollo wire-agnostico, come HTTP o XML su HTTP o SOAP.
Se si sceglie RMI, non è necessario un server di applicazioni EJ Java EE. È necessario mantenere sincronizzate le JVM client e server; non è possibile aggiornare il client senza aggiornare il server. È necessario scrivere tutti i servizi forniti dall'app server EJB (ad esempio, pool di connessioni, servizi di denominazione e directory, pooling, accodamento delle richieste, transazioni, ecc.).
RMI è un livello piuttosto basso quando ci pensi. Perché dovresti tornare indietro a CORBA?
Una scelta migliore è EJB 3.0 rispetto a Spring. Dipende se ti piace lo sviluppo POJO, vuoi una scelta di tecnologie relazionali oltre a ORM e JPA, tra le altre cose.
È possibile pagare un server di applicazioni Java EE (ad esempio, WebLogic, WebSphere) o utilizzare uno open source (JBOSS, Glassfish e OpenEJB e ActiveMQ) oppure è possibile attenersi a Spring e distribuire su Tomcat, Jetty, Resin o qualsiasi altro servlet/motore JSP.
Primavera offre un sacco di scelta per essere la tecnologia agnostica: la persistenza (Hibernate, iBatis, JDBC, JDO, JPA, TopLink), servizi remoti (HTTP, Iuta, Tela ruvida, RMI, SOAP servizio web), ecc
EJB 3.0 è una specifica con molti fornitori; La primavera si può avere solo dalla fonte di primavera.
Vorrei raccomandare Spring. È molto solido, ha molta trazione, non sta andando da nessuna parte. Lascia tutte le opzioni aperte.
servizi Web sono grande, in teoria, ma ci sono alcuni trucchi che avete bisogno di guardare fuori per:
- latenza. La prima legge di Fowler sugli oggetti distribuiti: "Do not!" Un'architettura composta da molti servizi SOAP distribuiti a grana fine sarà elegante, bella e lenta come melassa. Pensaci attentamente prima di distribuire.
- Il marshalling da XML a oggetti e back consuma cicli di CPU che non forniscono alcun valore aziendale oltre a consentire ai client di parlare con un protocollo indipendente dalla piattaforma.
- SOAP è uno standard che sta diventando sempre più gonfio e complesso ogni giorno, ma ha un sacco di supporto per gli strumenti. Ai venditori piace perché aiuta a incrementare le vendite di ESB. REST è semplice ma non così ben compreso. Non è supportato da strumenti.
Il modulo del servizio Web di Spring è molto buono, ma fai attenzione a scegliere di distribuire in questo modo. Scrivi in termini di interfacce di servizio POJO. Questi ti permetteranno di ottenere l'isolamento concettuale che desideri, di rinviare la scelta di schieramento fino all'ultimo momento e di farti cambiare idea se il primo pensiero non funziona bene.
Sono d'accordo con duffymo. La primavera è la strada da percorrere ... –
Spring Web Services? La primavera è una parola importante da cercare. :-) –
Modificato per aggiungere il collegamento ipertestuale: http://www.springsource.org/ – duffymo