J2EE - PowerPoint PPT Presentation

1 / 55

  • Uploaded on
  • Presentation posted in: General

J2EE. Agenda. Application servers What is J2EE? Main component types Application Scenarios J2EE APIs and Services EJB – a closer look Examples. mainframe. terminals. terminals. 1. Application Servers. In the beginning, there was darkness and cold. Then, ….

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript





  • Application servers

  • What is J2EE?

    • Main component types

    • Application Scenarios

    • J2EE APIs and Services

  • EJB – a closer look

  • Examples

1 application servers




1. Application Servers

  • In the beginning, there was darkness and cold. Then, …

Centralized, non-distributed

Application servers

Application Servers

  • In the 90’s, systems should be client-server

Application servers1

Application Servers

  • Today, enterprise applications use the multi-tier model

Application servers2

Application Servers

  • “Multi-tier applications” have several independent components

  • An application server provides the infrastructure and services to run such applications

Application servers3

Application Servers

  • Application server products can be separated into 3 categories:

    • J2EE-based solutions

    • Non-J2EE solutions (PHP, ColdFusion, Perl, etc.)

    • And the Microsoft solution (ASP/COM and now .NET with ASP.NET, VB.NET, C#, etc.)

J2ee application servers

J2EE Application Servers

  • Major J2EE products:

    • BEA WebLogic

    • IBM WebSphere

    • Sun iPlanet Application Server

    • Oracle 9iAS

    • HP/Bluestone Total-e-Server

    • Borland AppServer

    • Jboss (free open source)

Web server and application server

Web Server and Application Server

App Server 1

Internet Browser

Web Server(HTTP Server)


App Server 2

2 what is j2ee

2. What is J2EE?

  • It is a public specification that embodies several technologies

  • Current version is 1.6

  • J2EE defines a model for developing multi-tier, web based, enterprise applications with distributed components

J2ee benefits

J2EE Benefits

  • High availability

  • Scalability

  • Integration with existing systems

  • Freedom to choose vendors of application servers, tools, components

  • Multi-platform

J2ee benefits1

J2EE Benefits

  • Flexibility of scenarios and support to several types of clients

  • Programming productivity:

    • Services allow developer to focus on business

    • Component development facilitates maintenance and reuse

    • Enables deploy-time behaviors

    • Supports division of labor

Main technologies

Main technologies

  • JavaServer Pages (JSP)

  • Servlet

  • Enterprise JavaBeans (EJB)

  • JSPs, servlets and EJBs are application components



  • Used for web pages with dynamic content

  • Processes HTTP requests (non-blocking call-and-return)

  • Accepts HTML tags, special JSP tags, and scriptlets of Java code

  • Separates static content from presentation logic

  • Can be created by web designer using HTML tools



  • Used for web pages with dynamic content

  • Processes HTTP requests (non-blocking call-and-return)

  • Written in Java; uses print statements to render HTML

  • Loaded into memory once and then called many times

  • Provides APIs for session management



  • EJBs are distributed components used to implement business logic (no UI)

  • Developer concentrates on business logic

  • Availability, scalability, security, interoperability and integrability handled by the J2EE server

  • Client of EJBs can be JSPs, servlets, other EJBs and external aplications

  • Clients see interfaces

J2ee multi tier model

J2EE Multi-tier Model

J2ee application scenarios

J2EE Application Scenarios

  • Multi-tier typical application

J2ee application scenarios1

J2EE Application Scenarios

  • Stand-alone client

J2ee application scenarios2

J2EE Application Scenarios

  • Web-centric application

J2ee application scenarios3

J2EE Application Scenarios

  • Business-to-business

J2ee services and apis

J2EE Services and APIs

  • Java Message Service (JMS)

    • Implicit invocation

    • Communication is loosely coupled, reliable and asynchronous

    • Supports 2 models:

      • point-to-point

      • publish/subscribe



  • Point-to-point

    • Destination is “queue”



  • Publish-subscribe

    • Destination is “topic”

J2ee services and apis1

J2EE Services and APIs

  • JNDI - Naming and directory services

    • Applications use JNDI to locate objects, such as environment entries, EJBs, datasources, message queues

    • JNDI is implementation independent

    • Underlying implementation varies: LDAP, DNS, DBMS, etc.

J2ee services and apis2

J2EE Services and APIs

  • Transaction service:

    • Controls transactions automatically

    • You can demarcate transactions explicitly

    • Or you can specify relationships between methods that make up a single transaction

J2ee services and apis3

J2EE Services and APIs

  • Security

    • Java Authentication and Authorization Service (JAAS) is the standard for J2EE security

    • Authentication via userid/password or digital certificates

    • Role-based authorization limits access of users to resources (URLs, EJB methods)

    • Embedded security realm

J2ee services and apis4

J2EE Services and APIs

  • J2EE Connector Architecture

    • Integration to non-J2EE systems, such as mainframes and ERPs.

    • Standard API to access different EIS

    • Vendors implement EIS-specific resource adapters

  • Support to Corba clients

J2ee services and apis5

J2EE Services and APIs

  • JDBC

  • JavaMail

  • Java API for XML Parsing (JAXP)

  • Web services APIs

3 ejb a closer look

3. EJB – a closer look

Home interface

Home Interface

  • Methods to create, remove or locate EJB objects

  • The home interface implementation is the home object (generated)

  • The home object is a factory

Remote interface

Remote Interface

  • Business methods available to clients

  • The remote interface implementation is the EJB object (generated)

  • The EJB object acts as a proxy to the EJB instance

Ejb the big picture

EJB – The Big Picture

Ejb at runtime

EJB at runtime

Client can be local or remote

Ejb at runtime1

EJB at runtime

Types of ejb

Types of EJB


Session bean

Session Bean

  • Stateful session bean:

    • Retains conversational state (data) on behalf of an individual client

    • If state changed during this invocation, the same state will be available upon the following invocation

    • Example: shopping cart

Session bean1

Session Bean

  • Stateless session bean:

    • Contains no user-specific data

    • Business process that provides a generic service

    • Container can pool stateless beans

    • Example: shopping catalog

Entity bean

Entity Bean

  • Represents business data stored in a database  persistent object

  • Underlying data is normally one row of a table

  • A primary key uniquely identifies each bean instance

  • Allows shared access from multiple clients

  • Can live past the duration of client’s session

  • Example: shopping order

Entity bean1

Entity Bean

  • Bean-managed persistence (BMP): bean developer writes JDBC code to access the database; allows better control for the developer

  • Container-managed persistence (CMP): container generates all JDBC code to access the database; developer has less code to write, but also less control

Message driven bean

Message-Driven Bean

  • Message consumer for a JMS queue or topic

  • Benefits from EJB container services that are not available to standard JMS consumers

  • Has no home or remote interface

  • Example: order processing – stock info

4 examples

4. Examples

  • JSP example

  • Servlet example

  • EJB example

Jsp example

JSP example

Jsp example1

JSP example

<%@ page import="hello.Greeting" %>

<jsp:useBean id="mybean" scope="page" class="hello.Greeting"/>

<jsp:setProperty name="mybean" property="*" />


<head><title>Hello, User</title></head>

<body bgcolor="#ffffff" background="background.gif">

<%@ include file="dukebanner.html" %>

<table border="0" width="700">


<td width="150"> &nbsp; </td>

<td width="550">

<h1>My name is Duke. What's yours?</h1>



Jsp example2

JSP example

<tr> <td width="150" &nbsp; </td> <td width="550">

<form method="get">

<input type="text" name="username" size="25"> <br>

<input type="submit" value="Submit">

<input type="reset" value="Reset">

</td> </tr>

</form> </table>


if (request.getParameter("username") != null) {


<%@ include file="response.jsp" %>






Servlet example

Servlet example

public class HelloWorldServlet extends HttpServlet {

public void service(HttpServletRequest req,

HttpServletResponse res) throws IOException {


PrintWriter out = res.getWriter();


World Servlet</title></head>");





Ejb example

EJB Example

// Shopping Cart example

// Home interface

public interface CartHome extends EJBHome {

Cart create(String person)

throws RemoteException, CreateException;

Cart create(String person, String id)

throws RemoteException, CreateException;


Ejb example1

EJB Example

// Remote interface

public interface Cart extends EJBObject {

public void addBook(String title)

throws RemoteException;

public void removeBook(String title)

throws BookException, RemoteException;

public Vector getContents()

throws RemoteException;


Ejb example2

EJB Example

// Enterprise bean class

public class CartEJB implements SessionBean {

String customerName, customerId;

Vector contents;

private SessionContext sc;

public void ejbCreate(String person) throws CreateException {

if (person == null) {

throw new CreateException("Null person not allowed.");


else {

customerName = person;


customerId = "0";

contents = new Vector();


Ejb example3

EJB Example

public void ejbCreate(String person, String id)

throws CreateException {

if (person == null) {

throw new CreateException("Null person not allowed.");


else {

customerName = person;


IdVerifier idChecker = new IdVerifier();

if (idChecker.validate(id)) {

customerId = id;


else {

throw new CreateException("Invalid id: " + id);


contents = new Vector();


Ejb example4

EJB Example

public void addBook(String title) {

contents. addElement(title);


public void removeBook(String title) throws BookException {

boolean result = contents.removeElement(title);

if (result == false) {

throw new BookException(title + " not in cart.");



public Vector getContents() {

return contents;


. . .


Ejb example5

EJB Example

// EJB client (stand-alone application)

public class CartClient {

public static void main(String[] args) {

try {

CartHome home = (CartHome)initial.lookup("MyCart");

Cart shoppingCart = home.create("Duke DeEarl", "123");

shoppingCart.addBook("The Martian Chronicles");

shoppingCart.addBook("2001 A Space Odyssey");


} catch (BookException ex) {

System.err.println("Caught a BookException: "

+ ex.getMessage());

} catch (Exception ex) {

System.err.println("Caught an unexpected exception!");






Sources resources

Sources & Resources

  • Java 2 Platform Enterprise Edition Specification, v1.3

  • Designing Enterprise Applications with the Java 2, Enterprise Edition. Nicholas Kassen and the Enterprise Team

  • Does the App Server Maket Still Exist? Jean-Christophe Cimetiere

  • The State of The J2EE Application Server Market. Floyd Marinescu

Sources resources1

Sources & Resources

  • The J2EE Tutorial. Sun Microsystems

  • IBM WebSphere Application Server manuals

  • BEA WebLogic Server manuals

  • www.java.sun.com/j2ee

  • www.theserverside.com

  • Login