by SHREERAM IYER 08/29/2001

quicksandwalleyeInternet and Web Development

Oct 31, 2013 (4 years and 9 days ago)

103 views

AN INTRODUCTION TO
ENTERPRISE APPLICATION
DEVELOPMENT USING EJBs

by

SHREERAM IYER

08/29/2001

Why is Enterprise Application
Development different and complex?

Done using components and component
technology

When a component fails, ensure faults are
isolated and that it does not corrupt others

In a distributed application, components can
reside anywhere on the network

Enterprises are essentially heterogeneous
environments with presence of multiple
Operating Systems

What is EJB?

EJB (
E
nterprise
J
ava
B
eans)

EJB is a server component model for Java

Specification for creating server side,
scalable, transactional, multi
-
user and secure
enterprise
-
level applications

Provides a consistent component architecture
for creating distributed n
-
tier middleware

Why EJBs?…

Frees application developer to concentrate on
programming only the business logic

Removes the need to write all the “plumbing”
code required in any enterprise application
development scenario

Clients become thin as they have to worry
only about presentation logic

EJBs containing the business logic are
platform independent

Support for readymade components

WORA for Server side components


Why EJBs?

EJB establishes roles for Application
development

EJB takes care of Transaction
Management

Helps create portable and scalable
solutions

Provides for vendor
-
specific
enhancements

JavaBeans and EJBs…
DeMystified

In a nutshell, JavaBeans are Java
classes with accessor methods

Much smaller than EJBs

Do not need a runtime environment like
an Application Server

A JavaBean can be a visual component

JavaBeans are like ActiveX components

EJB Architecture



EJB Architecture…

EJB Architecture

Basic EJB Architecture consists of

An EJB Server

EJB Containers that run within the Server

Home Objects, Remote EJBObjects and
Enterprise Beans that run within Containers

EJB Clients

Auxiliary systems JNDI, JTS and security
services

The idea of the EJB architecture is the Server
and the Container are responsible for
providing the hard stuff (transactions,
persistence, pooling, multiple instances,
security, etc.)


EJB Servers

Analogous to the CORBA ORB

Provides Systems services like

Raw execution environment

Multiprocessing

Load balancing

Naming

Transaction Services

EJB Containers

Interface between EJB and outside world

Client never accesses a bean directly

Session containers


contain transient, non
-
persistent EJBs whose states are not saved

Entity containers


contains persistent EJBs
whose states are saved between invocations

Home Interface and Home
Object

Factory methods for locating, creating and
removing instances of EJB classes

Home Object is the implementation of the
Home Interface

EJB Developer defines the Home Interface for
his Bean

The EJB Container Vendor provide tools that
automatically generate the implementation
code for the Home Interface as defined by
the EJB Developer

Remote Interface and
EJBObject

The Remote Interface lists the business
methods available for the EJB

The EJBObject is the Client’s view of the EJB
and implements the Remote Interface

The EJB Developer defines the RI

The Container Vendor provides tools to
generate implementation code for EJBObject

The Client invokes the EJBObject’s methods

The EJB Container first handles the request
before delegating it to the EJB…provides
features of EJB like transaction, pooling,
security, etc.


Naming Services and JNDI

A Naming Service is a dedicated piece of
software that manages a naming system or
namespace

JNDI is a client API that provides naming and
directory functionality

Specified in JAVA

Designed to provide a common interface for
accessing existing services like DNS, NDS,
LDAP, CORBA or RMI

Provides an interface that hides the
implementation details of different naming
and directory services behind the JNDI API

Types of EJBs

EJBs can be transient or persistent

Two types of Enterprise Beans

Entity Beans: Generally used to model a
business entity

Session Beans: General purpose server
side beans

Entity Beans

Represent data in a domain model

Persistent Entity Bean

Container managed persistence

Bean managed persistence

Entity beans can share access from
multiple users

Can survive EJB server crashes

Session Beans

Created by a client and in most cases, exists
only for the duration of a single session

Stateless Session beans

Stateful Session beans

Execute on behalf of a single client

Relatively short
-
lived

May be destroyed when EJB Server crashes

Do not represent data stored in DataBase

The Whole EJB Picture

Modeling using Session and
Entity Beans…

Use Session beans for application logic

Use Session beans as the only interface
to the client

Expect little reuse of Session beans

Use Session beans to control the
workflow of a group of entity beans eg.
Credit Card Validation


Modeling using Session and
Entity Beans

Use Entity beans to develop a persistent
object model

Use Entity beans to enforce accuracy /
integrity of your database

Insist on reuse of Entity beans

Use Entity beans to model domain
objects with a unique identity shared by
multiple clients eg. Employees

An Enterprise Application

Drawbacks of EJBs

Developer needs to know JAVA

EJBs are not allowed to access native
libraries written in C/C++

EJBs cannot be used to develop any
kind of GUI

Learning curve and understanding of
different technologies involved

Useful links

http://www.ejbportal.com/

http://www.c2.com/cgi/wiki?EjbRoadmap

http://www.mgm
-
edv.de/ejbsig/ejbsig.html

http://www.jdance.com/ejb.shtm

http://www.sys
-
con.com/java/index2.html

http://www.nordija.com/beanbuilder/

http://www.ejbnow.com/

http://www.theserverside.com

http://www.beasys.com/support/newsgroup.html

http://www.ejbean.com