J2EE Server
The J2EE server provides the following services:
    Naming and Directory - allows programs to locate services and components through the
      Java Naming and Directory InterfaceTM (JNDI) API
    Authentication - enforces security by requiring users to log in
    HTTP - enables Web browsers to access servlets and JavaServer PagesTM (JSP) files
    EJB - allows clients to invoke methods on enterprise beans
EJB Container
Enterprise bean instances run within anEJB container. The container is a runtime environment
that controls the enterprise beans and provides them with important system-level services. Since
you don't have to develop these services yourself, you are free to concentrate on the business
methods in the enterprise beans. The container provides the following services to enterprise
beans:
Transaction Management
Security
Remote Client Connectivity
Life Cycle Management
Database Connection Pooling
Transaction Management
When a client invokes a method in an enterprise bean, the container intervenes in order to
manage the transaction. Because the container manages the transaction, you do not have to code
transaction boundaries in the enterprise bean. The code required to control distributed
transactions can be quite complex. Instead of writing and debugging complex code, you simply
declare the enterprise bean's transactional properties in the deployment descriptor file. The
container reads the file and handles the enterprise bean's transactions for you.