EJB Server is for deploying transaction-intensive business applications on the Internet. These applications move beyond one-way dynamic updates or data collection to real-time two-way updates of business critical information. You can also migrate traditional client/server transactional applications to multitier EJB Server applications.
EJB Server provides a framework for deploying the middle-tier logic of distributed component-based applications. EJB Server’s high-performance transaction server provides efficient management of client sessions, threads, database connections, and transaction flow. EJB Server’s scalability and platform independence allow you to develop your application on inexpensive uniprocessor machines, then deploy the application on an enterprise-grade multiprocessor server.
Client-side logic for enterprise applications must be as small and efficient as possible to conserve network bandwidth. To accomplish this goal, applications are partitioned into three parts: presentation logic, business logic, and database logic. The database resides on the bottom tier of the enterprise system to maintain and secure the organization's information assets. The business logic resides in the middle tier. The presentation logic is on the user's desktop, or top tier, or is dynamically downloaded to the user's desktop.
The EJB Server is responsible for executing and securing the vast majority of a corporation's business logic. This makes it a critical component in the emerging network-centric architecture. The Web browser connects to EJB Server or a Web server via HTTP to download an HTML page containing a Java applet that performs presentation functionality. The applet communicates with EJB Server, calling middle-tier components that perform business logic. Adaptive Server stores, processes, and protects the corporate data. EJB Server manages a pool of connections to the back-end database, coordinating the transaction processing to those servers.
Components are objects that reside on EJB Server and can be used by many different programs, regardless of the program's programming language. A client executes the methods in a component. Instead of creating one massive program, you create a client that contains the GUI and validation code and several individual components that contain the functionality (or business logic) of your program. By separating the functionality from the GUI, you can easily upgrade and change the functionality of your program without having to change the GUI. In addition, multiple clients can use components at the same time.