FACTOID # 33: Kenyan women work 35% longer than their menfolk.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Enterprise Java Beans

The Enterprise Java Beans specification is one of the several Java APIs in the Java 2 Platform, Enterprise Edition. The specification details how an application server provides server-side objects known as Enterprise Java Beans, or EJBs, with: The Java platform consists of: The Java virtual machine The Java API In addition to the Java programming language itself, the following languages were specifically designed for the platform: Groovy Pizza GJ Categories: Java platform | Stub ... API redirects here. ... Java 2 Platform, Enterprise Edition or J2EE is a Standard (albeit with no ISO or ECMA standard) for developing distributed Multi-tier architecture applications, based on modular components running on an application server. ...

  • remote communication using CORBA
  • persistence
  • transactions
  • concurrency control
  • events using JMS (Java messaging service)
  • naming and directory services
  • security
  • deployment of components in an application server

Additionally, the Enterprise Java Bean specification defines the roles played by the EJB container and the EJBs as well as how to deploy the EJBs in a container. In computing, Common Object Request Broker Architecture or CORBA, is a standard for software componentry. ... The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. ...

Contents

Enterprise Java Bean Basics

EJBs are deployed in an EJB container within the application server. The specification describes how an EJB interacts with its container and how client code interacts with the container/EJB combination.


Each EJB must provide a Java implementation class and two Java interfaces. The EJB container will create instances of the Java implementation class1 to provide the EJB implementation. The Java interfaces are used by client code of the EJB. The two interfaces, referred to as the home and remote interfaces, specify the signatures of the EJB's remote methods. The remote methods are split into two groups: In object-oriented programming, a class consists of encapsulated instance variables and subprograms, the methods mentioned below. ...

  • methods that are not tied to a specific instance, e.g. those used to create an EJB instance or to find an existing entity EJB (see EJB Types below). These are declared by the home interface.
  • methods that are tied to a specific instance. These are placed in the remote interface.

As these are merely Java interfaces and not concrete classes, the EJB container is required to generate classes for these interfaces that will act as a proxy in the client. Client code invokes a method on the generated proxies which in turn places the method arguments into a message and sends the message to the EJB server. The proxies use RMI-IIOP to communicate with the EJB server. In object-oriented programming, a class consists of encapsulated instance variables and subprograms, the methods mentioned below. ... The Java Remote Method Invocation API, or RMI, is a Java application programming interface for performing remote procedural calls. ...


The server will invoke a corresponding method on an instance of the Java implementation class to handle the remote method invocation. The image below shows a typical Java client interacting remotely with an EJB in its EJB container using remote method invocations and JMS messages.

image:j2eeejbcontainer.gif Wikipedia does not have an article with this exact name. ...

Home Interface

As stated previously, the Home Interface allows client code to manipulate certain class methods of the EJB, that is, methods that are not associated with any particular instance.
The EJB 1.1 specification fixes the kind of class methods that can be defined to either be methods to create an EJB or to find an existing EJB if it is an entity bean..
The EJB 2.0 specification allows application developers to define new class methods beyond create, delete and find.


Remote Interface

The Remote Interface specifies the instance specific methods of the bean class.


EJB Implementation Class

EJB implementation classes are supplied by the application developers. They implement business logic or hold the business data for the object interface. i.e. they implement all the methods specified by the remote interface and potentially some of those specified by the home interface. Business logic refers to the logic that embodies business rules rather than the view of data or storage of data. ...


Correspondence between Interface Methods and Implementation Methods

Method invocations on the home interface are dispatched to corresponding method on the bean implementation class with the prefix 'ejb' added and with the first letter of the home interface method capitalized and having exactly the same argument types.


Method invocations on the remote interface are dispatched to corresponding implementation method having the same name and arguments.


EJB Types

An EJB container can hold four major categories of beans; they are:

  • Stateless Session Beans
  • Stateful Session Beans
  • Entity Beans
  • Message Driven Beans (or Message Beans)

Stateless session beans are distributed objects that do not have state associated with them thus allowing concurrent access to the bean. The contents of instance variables are not guaranteed to be preserved across method calls. A Message Driven Bean (MDB) is an Enterprise Java Bean (EJB) similar to a session bean, except it responds to a JMS message rather than an RMI event. ...


Stateful session beans are distributed objects having state. The state is not persisted, but access to the bean is limited to only one client.


Entity beans are distributed objects having persistent state. The persistent state may or may not be managed by the bean itself. Beans in which their container manages the persistent state are said to be using Container Managed Persistence or CMP, whereas beans that manage their own state are said to be using Bean Managed Persistence.


Message Beans are distributed objects that respond to JMS messages. These beans were added in the EJB 2.0 specification to allow event driven beans.


Remote Communication

The EJB specification requires that EJB containers support accessing the EJBs using RMI-IIOP. EJBs may be accessed from any CORBA application.


Persistence

EJB containers are required to support container managed persistence (CMP) as well as bean managed persistence (BMP).


Transactions

EJB containers are required to support container managed transactions as well as bean managed transactions. Container managed transactions use a declarative syntax for specifying transactions in the deployment descriptor.


Events

JMS is used to send messages from the beans to client objects in order to allow clients to receive asynchronous messages from these beans.


Naming and Directory services

Clients of the enterprise Java bean locate the Home Interface implementation object using JNDI. The Home interface may also be found using the CORBA name service. From the home interface, client code can find entity beans, as well as create and delete existing EJBs. The Java Naming and Directory Interface (JNDI) is an API for directory services. ...


Security

The EJB container is responsible for ensuring the client code has sufficient access rights to an EJB.


Deploying EJBs

The EJB Specification also defines a mechanism which allows enterprise Java beans to be deployed in a similar manner regardless of the specific EJB platform that is chosen. Information about how the bean should be deployed such as the name of the home or remote interfaces, whether and how to store the bean in a database, etc. are specified in the deployment descriptor.


The deployment descriptor is an XML document having an entry for each EJB to be deployed. This XML document specifies the following information for each EJB: The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages (it is a metaformat). ...

  • Name of the home interface
  • Java class for the Bean
  • Java interface for the home interface
  • Java interface for the object
  • Persistent Store
  • Security Roles and Permissions

However it should be noted that many EJB containers require additional deployment information other than what is specified in the EJB specification. These vendors will require the additional information to be provided either as separate XML files or some other configuration file format. Further, each EJB platform vendor generally provides their own tools that will read this deployment descriptor and possibly generate a set of classes that will implement the home and remote interfaces mentioned earlier.


Recommended Programming Model

In the recommended programming model from Sun, stateful and stateless session beans are used for business logic whereas entity beans are used for business data.jkljkljkljk


External links

  • Sun's EJB Product main page (http://java.sun.com/products/ejb/index.html)
  • EJB Java Doc (http://java.sun.com/products/ejb/javadoc-2_0-fr)
  • Sun's EJB Tutorial (http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts.html)

  Results from FactBites:
 
Enterprise JavaBeans Technology (266 words)
EJB technology enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology.
The Java Persistence API is the standard API for the management of persistence and object/relational mapping.
The Java Persistence API is part of the Java EE platform.
Free Java Tutorials & Guide | Java programming source code (960 words)
Throughout the java pdf, simple examples are provided to illustrate the important concepts covered in the exam.
This java I/O pdf is an overview of Java I/O and all the classes in the java.io package.
This lesson is for Java programmers who want to learn about java design patterns as a means of improving their object oriented design and development skills.
  More results at FactBites »


 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m