For our example, we assume that the web tier of the Media Mania store handles the interactions with the customer while he is browsing and shopping. The web tier manages the customer’s name and contents of his cart. The web tier might manage the cart using persistent classes or simply maintain the cart as a session state. When the customer chooses to check out, the web tier delegates this important function to the EJB tier of the application.
For this purpose, we implement a stateless session bean, called
CashierBean , with a
business method. We use the stateless-session-bean pattern because it
best models the semantics of a store cashier. During the time a customer
is checking out, the cashier devotes all of her time to that customer.
Once a customer walks away from the cashier, the cashier forgets all
about that customer in order to help the next one. Any information
needed from the transaction must be stored persistently during the
interaction with the customer.
A stateless session bean is the most efficient type of bean for this purpose because there is no client state that needs to be maintained between business methods. Any currently idle bean can service any incoming request from any client. Therefore, these beans can be managed by the application server easily, based on workload. If more requests arrive for a particular type of bean than there are beans available, the server can create more quickly. Similarly, if there are too many idle beans, ...