2010-09-09 11 views
11

Bene Abbiamo una situazione da decidere ora. Pensavo che lo stackoverflow fosse il posto migliore per discutere.EJB Vs WebService? Punto di vista prestazionale

Background:

Abbiamo 2 Server JVM Enterprise Application e un'applicazione distribuita su ciascuno di essi. dobbiamo abilitare il richiamo della funzionalità aziendale da una macchina all'altra. Supponiamo che uno sia client e un altro sia server.

Ora dal punto di vista della prestazione, quale approccio è migliore per progettare l'applicazione server.

mantenendo seguenti cose in mente:

ho 2 opzioni:

  1. pura applicazione EJB significa client EJB e componente server EJB

  2. WebService approccio Plain Java (senza webservice over EJB, perché è semplicemente pasticcio)

Le mie metriche sul rendimento: Velocità: quale approccio progettuale elaborerà una richiesta più velocemente. Di sicuro la mia applicazione aziendale verrà implementata su macchine a 32 bit!

Si noti inoltre che v'è 2 JVM, uno è a 32 bit e 64 bit (per evitare questa situazione è inevitabile in questo momento)

Si prega di fornire il tuo feedback

saluti

Chetan

+0

Aggiunto tag java alla tua domanda. –

+0

Quali problemi hai con i servizi Web con EJB? –

+0

@BlaiseDoughan ci scusiamo per l'off-top, ma è buona pratica rendere EJB supportato dai servizi web? – MyTitle

risposta

8

Se per "servizi Web" si intendono i servizi Web SOAP, gli EJB dovrebbero essere più veloci, indipendentemente da come lo si fa.

Pro:

  • Java serializzazione è più veloce che servizi Web XML
  • serializzazione e parsing XML utilizza più memoria di serializzazione dritto, EJB risparmiare memoria
  • EJB sono espressi in interfacce Java rette e oggetti di valore . Per i servizi Web, potrebbe essere necessario aggiungere un livello di mappatura come XmlBeans o JAXB.
  • maggior parte dei protocolli EJB consente di riutilizzare facilmente le connessioni TCP/IP tra le chiamate

Contro:

  • facendo una corretta progettazione definizione primo messaggio XML sarà disaccoppiare il client e il server
  • E ' più facile cambiare i formati dei messaggi dato che il livello aggiuntivo di indirizzamento indiretto
  • Le implementazioni di EJB sono state storicamente enormi e lente, come in più di stack di servizi Web (ma più recenti implementazioni di EJB come Apac he OpenEJB sono piccoli, leggeri e integrabili)

Ma se non hai bisogno di una gestione delle transazioni distribuita, basta usare RMI.Ha i pro ma nessuno dei contro degli EJB. È stato intorno per le età, ma funziona ancora semplicemente dandy.

+0

grazie mille per i dettagli .. Sto cercando un modo più veloce di comunicazione tra 2 JVM. EJB è quello che sento. soprattutto nella mia applicazione non voglio perdere le mie prestazioni a causa dell'analisi XML alle due estremità. – Chetan

1

Non deve essere l'uno o l'altro. Puoi avere tutta la tua logica aziendale negli EJB e anche fornire una facciata del servizio web per accedere all'EJB. Ricorda inoltre che esistono diversi tipi di architetture di servizi web. SOAP è ciò che la maggior parte della gente pensa quando sente il "servizio web", ma si potrebbe anche voler guardare a JAX-RS.

L'invio di dati come XML su HTTP è orribilmente inefficiente. D'altra parte, ti dà molto più flessibilità sul lato client. I servizi Web possono essere consumati da qualsiasi piattaforma o linguaggio di programmazione.

+0

grazie mike. Se prendo SOAP su EJB, l'elaborazione XML ostacolerebbe molto la mia prestazione. il mio carico utile xml sarebbe di circa 60-100KB per lo più. – Chetan

+0

Mike suggerisce JAX-RS che invia messaggi XML non SOAP. Per un esempio vedi: http://bdoughan.blogspot.com/2010/08/creating-restful-web-service-part-45.html –

Problemi correlati