EJB Container or EJB Server
An EJB container is nothing but the program that runs on the server and implements the EJB specifications. EJB container provides special type of the environment suitable for running the enterprise components. Enterprise beans are used in distributed applications that typically contains the business logic. The container performs the various tasks few of them are illustrated below:
Transaction Management: EJB container allows you for transaction management that enables the transaction services, a low level implementation of transaction management and coordination. Container uses the Java Transaction APIs to expose the transaction services. JTA, a high level interface is used to control transactions.
Security: JSE mainly focuses on how to become
the environment more secure. Enterprise beans add this feature to provide transparent security
so that access to the beans can be made secure just by applying the security
attributes rather than coding against the security API.
Resource and Life Cycle Management: EJB container manages the resources
like database connections, threads and socket on behalf of enterprise beans.
Container creates, destroys, registers the objects and also activates and
passivates them. The container is also capable of reusing them whenever
required.
Remote Accessibility: A client on the remote machine
containing JVM can invoke an enterprise bean running on the host machine. To support the remote accessibility
the container uses the remote procedure call technology. When the software is
developed by using the OOPs concept then Remote procedure call (RPC) may be referred to as Remote Method
Invocation (RMI).
Concurrency Control: Concurrency control is necessary to know
the basics of collisions and type of collisions that can occur. If you are not
interested to occur them then you can bypass
them later they will cause to create problems. So try to detect
and resolve them. To do so the EJB Container supports for
various types of concurrency controls. First we will concentrate on collision and then
techniques to resolve these collisions.
Collision: A collision can occur when two
or more transactions tries to change the entities within a system of records.
There are three types through which two
or more activities may interfere:
- Dirty read
- Non Repeatable read
- Phantom read
Control mechanism: Mainly two mechanism are used to control the concurrency.
- Optimistic Locking
- Pessimistic Locking
Clustering and load-balancing: Clustering is the process of combining the multiple peripherals, computers and other resources into a single unit. A clustered system then works as load balanced system. In a distributed system when a request is send to the server, an algorithm running on the server decides which server has less load and sends the request to that server. EJB container encapsulates these features to provide smooth and efficient service.