Our conclusion was that it was not a good fit for this project because we had very little data to format. The JSP tags can be left in the pages while a graphic artist retrofits the pages for a new portal. The transaction layer exposes an application-level API to the presentation layer that provides the core capabilities of the Purchasing System. EJB is a rich and complex enterprise API that would be difficult to cover in a single book, let alone one article. The primary difference between these two models is that a session bean is visible only to the client that creates it, while an entity bean is visible to anyone through a lookup.
Session beans can also be either stateless or stateful.
In the latter case, a session bean is able to maintain information related to a specific caller across invocations. We chose to rely heavily on stateless session EJBs for most of our transactions. This model is lightweight and scales very well, but relies on the application for binding to the database. An application transaction, for example, a purchase, typically is a combination of all three types of transaction. When an item is to be purchased, information must be stored in the database, a fulfillment system must be contacted, and the credit card interface must be used.