J2EE
Download
1 / 55

J2EE - PowerPoint PPT Presentation


  • 119 Views
  • Uploaded on

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, ….

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

PowerPoint Slideshow about ' J2EE ' - raymond-hernandez


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

Agenda
Agenda

  • Application servers

  • What is J2EE?

    • Main component types

    • Application Scenarios

    • J2EE APIs and Services

  • EJB – a closer look

  • Examples


1 application servers

mainframe

terminals

terminals

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)

HTTP(S)

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


JSP

  • 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


Servlet
Servlet

  • 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


EJB

  • 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 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


JMS

  • Point-to-point

    • Destination is “queue”


JMS

  • 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



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 at runtime
EJB at runtime

Client can be local or remote




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 example1
JSP example

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

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

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

<html>

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

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

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

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

<tr>

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

<td width="550">

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

</td>

</tr>


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" %>

<%

}

%>

</body>

</html>


Servlet example
Servlet example

public class HelloWorldServlet extends HttpServlet {

public void service(HttpServletRequest req,

HttpServletResponse res) throws IOException {

res.setContentType("text/html");

PrintWriter out = res.getWriter();

out.println("<html><head><title>Hello

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

out.println("<body><h1>Hello

World!</h1></body></html>");

}

}


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");

shoppingCart.remove();

} 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


ad