slide1
Download
Skip this Video
Download Presentation
J2EE

Loading in 2 Seconds...

play fullscreen
1 / 55

J2EE - PowerPoint PPT Presentation


  • 128 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
slide14
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
slide16
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
slide23
JMS
  • Point-to-point
    • Destination is “queue”
slide24
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" %>

Hello, User

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

 

My name is Duke. What's yours?


<%

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 {

res.setContentType("text/html");

PrintWriter out = res.getWriter();

out.println("Hello</p><p> World Servlet");

out.println("

Hello

World!

");

}

}

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