In this section, we go through the process of designing several EJBs. While the design process of an EJB application is 95% identical to the design process for a non-EJB application (maybe even 99% identical), there are some steps in this process that require special attention.
To discuss design, we need to change our thinking a bit. Throughout this book, we have focused the details of EJBs and how their individual components work. In this section, we consider the Titan EJB application as a system meeting a business need, and not simply as a collection of fine-grained components. We will look at the design of such a system from the ground up, taking the application—as a whole—rather than continuing to view only the EJB components themselves (though we’ll obviously pay special attention to those components, since this is a book on EJBs). Let’s start by looking at its requirements.
At a high level, the application will be used by:
Travel agents to sell reservations
The general public to view cruise details
Cruise administrators to manage the application’s ship and cruise data
The application will be accessed via three mechanisms. The first two mechanisms are for “person” users (as opposed to “system” users, described below):
Web interface (general public, travel agents, and cruise administrators)
Standalone Java application (travel agents)
The third access mechanism is for systems that need direct access to the business layer. For our application, this includes access by:
External travel ...