Introduzione al fagiolo di Session
|
Fagiolo di Session?
|
Un fagiolo di Session rappresenta un singolo cliente all'interno dell'assistente di J2EE. Per accedere ad un'applicazione che � schierata sull'assistente, il cliente invoca i metodi del fagiolo di Session. Il fagiolo di Session realizza il lavoro per il relativo cliente, proteggente il cliente da complessit� eseguendo le mansioni di affari all'interno dell'assistente.
Come il suo nome suggerisce, un fagiolo di Session � simile ad una Session interattiva. Un fagiolo di Session non � ripartito--pu� avere appena un cliente, nello stesso senso che una Session interattiva pu� avere appena un utente. Come una Session interattiva, un fagiolo di Session non � persistente. (Cio� i relativi dati non sono conservati ad una base di dati.) quando il cliente termina, il relativo fagiolo di Session sembra terminare e pi� non � associato con il cliente.
|
Codice categoria del fagiolo di Session
|
Il codice categoria del fagiolo di Session per questo esempio � denominato CartBean. Come tutto il fagiolo di Session, il codice categoria di CartBean deve fare fronte a queste richieste:
- Effettua l'interfaccia di SessionBean.
- Il codice categoria � definito come pubblico.
- Il codice categoria non pu� essere definito come astratto o finale.
- Effettua uno o pi� metodi del ejbCreate.
- Effettua i metodi di affari.
- Contiene un costruttore pubblico senza i parametri.
- Non deve definire il metodo di fin.
Il codice sorgente per il codice categoria di CartBean segue.
|
import java.util.*;
import javax.ejb.*;
public class CartBean implements SessionBean {
String customerName;
String customerId;
Vector contents;
public void ejbCreate(String person)
throws CreateException {
if (person == null) {
throw new CreateException("Null
person not allowed.");
}
else {
customerName = person;
}
customerId = "0";
contents = new Vector();
}
public void ejbCreate(String person, String id)
throws CreateException {
if (person == null) {
throw new CreateException("Null
person not allowed.");
}
else {
customerName = person;
}
IdVerifier idChecker = new IdVerifier();
if (idChecker.validate(id)) {
customerId = id;
}
else {
throw new
CreateException("Invalid id: "+ id);
}
contents = new Vector();
}
public void addBook(String title) {
contents.addElement(title);
}
public void removeBook(String title) throws BookException {
boolean result = contents.removeElement(title);
if (result == false) {
throw new BookException(title +
"not in cart.");
}
}
public Vector getContents() {
return contents;
}
public CartBean() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
}
|
Dichiarare i modi dell'amministrazione
|
Ci sono due tipi di fagioli di Session: stateful ed apolide.
|
Fagioli di Session di Stateful
|
Il dichiarare di un oggetto consiste dei valori delle relative variabili di caso. In un fagiolo stateful di Session, le variabili di caso rappresentano il dichiarare di una Session unica del cliente-fagiolo. Poich� il cliente si interagisce (�colloqui�) con il relativo fagiolo, questo dichiara spesso � denominato il colloquiale dichiara.
Il dichiarare � mantenuto per la durata della Session del cliente-fagiolo. Se il cliente rimuove il fagiolo o termina, la Session si conclude ed il dichiarare sparisce. Questa natura transitoria del dichiarare non � un problema, tuttavia, perch� quando la conversazione fra il cliente e le estremit� del fagiolo l� � necessit� di mantenere il dichiarare.
|
Fagioli apolidi di Session
|
Un fagiolo apolide di Session non effettua un colloquiale dichiara per un cliente particolare. Quando un cliente invoca il metodo di un fagiolo apolide, le variabili di caso del fagiolo possono contenere un dichiarare, ma soltanto per la durata del invocation. Quando il metodo � rifinito, il dichiarare pi� non � mantenuto. Tranne durante il invocation di metodo, tutti i casi di un fagiolo apolide sono equivalente, permettendo che il contenitore di EJB assegni un caso a tutto il cliente.
Poich� i fagioli apolidi di Session possono sostenere i clienti multipli, possono offrire lo scalability migliore per le applicazioni che richiedono tantissimi clienti. Tipicamente, un'applicazione richiede pochi fagioli apolidi di Session che i fagioli stateful di Session sostenere lo stesso numero di clienti.
Occasionalmente, il contenitore di EJB pu� scrivere un fagiolo stateful di Session ad immagazzinaggio secondario. Tuttavia, i fagioli apolidi di Session non sono scritti mai ad immagazzinaggio secondario. Di conseguenza, i fagioli apolidi possono offrire le prestazioni migliori che i fagioli stateful.
|
Quando usare i fagioli di Session
|
Generalmente, dovreste usare un fagiolo di Session se le seguenti circostanze tengono:
I fagioli di Session di Stateful sono adatti se c'� ne di seguenti circostanze sono allineare:
Il fagiolo dichiara rappresenta l'interazione fra il fagiolo e un cliente specifico. Il fagiolo deve tenere le informazioni sul cliente attraverso i invocations di metodo.
Il fagiolo media fra il cliente e gli altri componenti dell'applicazione, presentanti una vista semplificata al cliente.
Dietro le scene, il fagiolo controlla il flusso del lavoro di parecchi fagioli di impresa.
Per migliorare le prestazioni, potreste scegliere un fagiolo apolide di Session se ha qualcuno di questi caratteristiche:
- Il fagiolo dichiara non ha dati per un cliente specifico.
In un singolo invocation di metodo, il fagiolo effettua un'operazione generica per tutti i clienti. Per esempio, potreste usare un fagiolo apolide di Session per trasmettere un E-mail che conferma un ordine in linea.
Il fagiolo prende da una base di dati un insieme dei dati passivi che sono usati spesso dai clienti. Un tal fagiolo, per esempio, potrebbe richiamare le file della tabella che rappresentano i prodotti che sono sulla vendita questo mese.
|
|
|
Keywords:
EJB Session,ejb session bean,ejb session beans,j2ee session,tateless session bean,stateful session bean,weblogic session,jboss session,stateless session beans,stateful session beans,session ejb,weblogic session timeout,jboss session timeout,stateless session ejb,j2ee session variables,weblogic session replication,stateful session ejb,weblogic 8.1 session,jboss session bean,ejb entity beans
|