/ / Dove inserire la business logic in un'applicazione enterprise Java EE - java-ee, ejb, ejb-3.0, java-ee-6, business-logic

Dove mettere la logica aziendale in un'applicazione enterprise Java EE - java-ee, ejb, ejb-3.0, java-ee-6, business-logic

Quando si crea un'applicazione Java EE enterprise,parte della logica aziendale come la messaggistica (MDB) deve essere inserita nel modulo EJB. Tuttavia, ci sono alcuni EJB che possono essere inseriti all'interno del modulo EJB o del modulo web. So che i moduli di separazione consentono al livello Web e al livello aziendale di essere distribuiti su macchine diverse. Quindi, metterei il mio @Stateful carrello EJB nel modulo web. Tuttavia, non riesco a pensare ad un criterio standard che possa essere applicato ad ogni logica aziendale, decidendo dove collocare i bean EJB che li racchiudono. Esiste una linea guida, una pratica standard o raccomandata per questo?

risposte:

1 per risposta № 1

Questo è quello che ho scoperto finora.

Il modulo EJB dovrebbe racchiudere il nucleo dila logica aziendale per una grande applicazione aziendale. Il modulo Web, d'altra parte, racchiude un'applicazione Web completa che dovrebbe trarre vantaggio dal motore di business fornito dal modulo EJB. Di solito questi moduli sono distribuiti tra diversi server per applicazioni più grandi, e ci sono applicazioni client (un'applicazione desktop Swing / JFX per esempio) diversa dall'applicazione web che deve consumare servizi forniti dalla logica aziendale principale che risiede nei moduli EJB.

In altre parole, si metterebbe la logica aziendale in un modulo EJB separato se:

  1. È pensato per essere utilizzato da più applicazioni Web o desktop o
  2. Considerazioni sulla scalabilità possono forzare la gestione della core business logic da server separati

In altri casi, si possono mettere i suoi EJB all'interno del modulo web e impacchettare il tutto come un file WAR.


1 per risposta № 2

Come hai detto nella tua ultima frase, è esattamente quello che avrei proposto: utilizza la confezione WAR per le applicazioni JEE6, poiché non hai bisogno di EAR per la maggior parte dei casi.

Se è necessario condividere la logica aziendale tradiverse applicazioni, quindi è possibile distribuirle come modulo separato. Ma solitamente una cosa del genere non è necessaria per motivi di ridimensionamento, dal momento che è possibile dimensionare il server delle applicazioni eseguendo di conseguenza la WAR.