Enterprise JavaBeans: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
ortografia |
|||
(13 versioni intermedie di 10 utenti non mostrate) | |||
Riga 1:
In [[informatica]] gli '''Enterprise JavaBean''' ('''EJB''') sono i componenti [[software]] che implementano,
Le specifiche per gli EJB definiscono diverse proprietà che questi devono rispettare, tra cui la [[persistenza (informatica)|persistenza]], il supporto alle [[Transazione (basi di dati)|transazioni]], la gestione della [[concorrenza (informatica)|concorrenza]] e della [[sicurezza informatica|sicurezza]] e l'integrazione con altre tecnologie, come [[Java Message Service|JMS]], [[JNDI]], e [[CORBA]]. Lo [[
== Motivazioni ==
Le specifiche Enterprise JavaBean intendono fornire una metodologia standard per implementare la logica di funzionamento delle [[applicazione (informatica)|applicazioni]] di tipo ''enterprise'', applicazioni cioè che forniscono servizi via [[Internet]] su larga scala.
Le specifiche Enterprise JavaBean descrivono in dettaglio come realizzare un
* [[Persistenza (informatica)|Persistenza]];
* Elaborazione delle [[Transazione (basi di dati)|transazioni]];
* Controllo della [[concorrenza (informatica)|concorrenza]];
* [[Programmazione
* [[Servizio di directory]] per elencare e nominare gli EJB ([[JNDI]]);
* [[Sicurezza informatica|Sicurezza]] (
* [[Installazione (informatica)|Installazione]] di componenti software in un ''application server'';
* [[Chiamata di procedura remota|Invocazione di procedure remote]] tramite l'utilizzo di [[RMI-IIOP]] o [[CORBA]];
* Fornire [[web service|servizi web]].
Inoltre le specifiche definiscono il ruolo del contenitore di Enterprise JavaBean e di come far comunicare il contenitore con gli EJB.
== Tipologie ==
Fino alla versione 2.1 della specifica esistevano tre tipi di Enterprise JavaBeans, dalla versione 3.0 in poi ne esistono soltanto due, in quanto gli ''Entity Bean'' sono stati deprecati. Per completezza vengono riportati tutti i tipi di EJB.▼
▲Fino alla versione 2.1 della specifica esistevano tre tipi di Enterprise JavaBeans, dalla versione 3.0 in poi ne esistono soltanto due, in quanto gli Entity Bean sono stati deprecati. Per completezza vengono riportati tutti i tipi di EJB.
=== EJB di sessione ===
Detti anche ''Session EJB''. Gestiscono l'[[elaborazione dati|elaborazione]] delle informazioni sul
Dalla versione 3.2 dello standard EJB possono essere invocati in modo asincrono. L'invocazione asincrona avrà come valore di ritorno una variabile di tipo <code>Future<V></code>, che permetterà al chiamante di conoscere l'effettivo valore di ritorno, verificare l'eventuale presenza di eccezioni
==== Con stato ====
Vengono anche detti ''stateful''.
Un esempio di bean con stato è:
<syntaxhighlight lang="java" line="1" copy=1>
private int totale = 0;
public int totale() {
return totale;
}
public void
totale = totale + 1;
}
Riga 45:
totale = 0;
}
</syntaxhighlight>
==== Senza stato ====
Detti anche ''stateless''.
Un esempio di ''bean'' senza stato è:
<syntaxhighlight line="1" copy=1 lang="java">
public String salutaUtente() {
return "Benvenuto!";
}
</syntaxhighlight>
▲ }
=== EJB guidati da messaggi ===
Detti anche ''Message driven EJBs''. Erano gli unici ''bean'' con funzionamento asincrono (dalla versione 3.2 dello standard anche EJB di sessione possono essere invocati in modo asincrono).
=== EJB di Entità ===
Vengono detti anche ''Entity EJB''. Non sono più supportati, in quanto con la versione 2.0 e 2.1 dello standard EJB avevano delle prestazioni molto basse
Il loro scopo era di inglobare gli oggetti sul lato server che memorizzano i dati. Gli ''entity bean'' fornivano la caratteristica della [[persistenza (informatica)|persistenza dei dati]]:
*
*
== Versioni ==
*
*
*
*
*
== Enterprise JavaBeans e
Riguardo allo sviluppo di
{{citazione| Java EE needs a simple Java SE Container API that we could easily bootstrap. Most of EE specs are already "embeddable" anyway and the ones you mentioned are or will be (CDI 2.0 with have a Java SE bootstrap API in Java EE 8). But I'm less confident about EJBs. EJBs are not "that micro", they are a bit fat (and I'm just talking about the number of services they bundle). I would prefer to see the Java EE Concurrency updated (to have asynchronous invocation out of EJBs), and focus on CDI, JTA, Concurrency, JPA and JAX-RS (but again, why not adding Bean Validation and servlets, if we have JAX-RS ?). | Antonio Goncalves, ''[https://java.net/projects/javaee-spec/lists/users/archive/2015-02/message/57 One container to rule them all]''}}
Ciò che intende sottolineare è che il numero di servizi che la specifica Enterprise JavaBeans porta con sé è elevato, quindi non è consigliabile quando si vogliano creare dei
== Note ==
Riga 93 ⟶ 94:
* [[Application server]]
* [[Spring framework]]
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC}}
{{Portale|informatica}}
[[Categoria:Java EE]]
|