Containers
The Java EE infrastructure is
partitioned into logical domains called containers (see Figure). Each container has a specific role,
supports a set of APIs, and offers services to components (security, database
access, transaction handling, naming directory, resource injection). Containers
hide technical complexity and enhance portability. Depending on the kind of
application you want to build, you will have to understand the capabilities and
constraints of each container in order to use one or more. For example, if you
need to develop a web application, you will develop a JSF tier with an EJB Lite
tier and deploy them into a web container. But if you want a web application to
invoke a business tier remotely and use messaging and asynchronous calls, you will
need both the web and EJB containers. Java EE has four different containers:
- Applet containers
are provided by most web browsers to execute applet components. When you
develop applets, you can concentrate on the visual aspect of the
application while the container gives you a secure environment. The applet
container uses a sandbox security model where code executed in the
“sandbox” is not allowed to “play outside the sandbox.” This means that
the container prevents any code downloaded to your local computer from
accessing local system resources, such as processes or files.
- The application client container (ACC) includes
a set of Java classes, libraries, and other files required to bring
injection, security management, and naming service to Java SE applications
(swing, batch processing, or just a class with a main() method). The ACC
communicates with the EJB container using RMI-IIOP and the web container
with HTTP (e.g., for web services).
- The web container provides the underlying
services for managing and executing web components (servlets, EJBs Lite,
JSPs, filters, listeners, JSF pages, and web services). It is responsible
for instantiating, initializing, and invoking servlets and supporting the
HTTP and HTTPS protocols. It is the container used to feed web pages to
client browsers.
- The EJB container is responsible for managing
the execution of the enterprise beans (session beans and message-driven
beans) containing the business logic tier of your Java EE application. It
creates new instances of EJBs, manages their life cycle, and provides
services such as transaction, security, concurrency, distribution, naming
service, or the possibility to be invoked asynchronously.
Reference:
No comments:
Post a Comment