Transcript siyuan
Overview of The Java Platform
Solution for E-Business
Applications :
JSP, Servlet and EJB
Outline
Big picture
Servlets
JavaServer Pages
EJB
Multi-Tiered Web-based
application
Browser
HTML
Browser
XML
Web Server
EJB Server
Servlet
EJB
DB
JSP
EJB
DB
What are Servlets?
Extend HTTP Server
Dynamic content
Servlets are lightweight
Run in web server process
exploit Java security
Built on Java Platform
Full access to Java APIs
Easy to develop. Write once, run anywhere
HTTP Requests & Response
Client makes HTTP request
Request is resolved to Servlet
Container
creates servlet
invokes init()
creates request and response objects
invokes service()
Sevlet interact with response
Container replies to HTTP request
Container may
invoke destroy(), dispose servlet at anytime
A servlet example
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("Hello World!");
out.println("<br>");
JspCalendar clock = new JspCalender();
out.println("Today is");
out.println("<ul>");
out.println("<li>Day of month: ");
out.println(clock.getDayofMonth());
out.println("<li>Year: ");
out.println(clock.getYear());
out.println("/<ul>");
out.println("</html>");
}
}
As a JSP page
<html>
Hello World!
<br>
<jsp:useBean id="clock"
class="calendar.JspCalendar">
Today is
<ul>
<li>Day of month:<%=clock.getDayofMonth()%>
<li>Year: <%=clock.getYear()%>
</ul>
</html>
JavaServer Pages (JSP)
JSP builds on servlet semantics
“inside-out” servlets (JSP can be precompiled into Servlet to
reduce start up time)
Benefits
Easier to author, separate presentation logic from business
logic
Exploits:
server-side scripting
templates
encapsulation of functionality
Distributed Java Component
Model -
The Problem
• Developing enterprise applications is
HARD
• Developing enterprise applications is
EXPENSIVE
• Enterprise applications are a
NIGHTMARE TO MAINTAIN
• Enterprise applications are
COMPLEX TO ADMINISTER
Why is it HARD?
Difficult to reuse application code across
hardware platforms
software platforms
servers
databases
Service needs grow more complex
threading
persistence
transactions
What is EJB?
It’s server component model
It’s part of Java platform for the enterprise
It’s a specification (for software interoperability)
It enables development and deployment of Java
applications that are:
•
•
•
•
Distributed – via RMI
Scalable
Transactional
Secure
Distributed component models we are in heaven ...
IIOP
IIOP
CORBA
Server
Service
RMI
Server
Service
RMI
Client
JRMP
The underlying mechanism...
Advantages of server side
component model
Using pre-developed pieces of application
Transparent access to the distributed
services, i.e. hiding the complexity of the
technical environment
Components can be shared across the
Enterprise
Using tools to wire components together
EJB Architecture
EJB Architecture
EJB Main Components
Client
Any application or service requesting a service
Can be written in any language
Can’t access EJBs directly; must go through RMI and
container
Name lookup via JNDI
EJB Servers
Contains and runs 1 or more containers
Resource management
process, thread, and connection pools
Remote management API
EJB Main Components
EJB Containers
Actually host the beans
Provide naming (via JNDI), life cycle, persistence,
security, transactions through call interception
EJB Components
Are distributed, transactional, and secure
Simple, single threaded, and non-re-entrant
Developer or tool generated
Contain business logic
Roles in developing EJB
Enterprise Bean provider
Application Assembler
Deployer
EJB Server Provider
System Administrator
Varieties of EJBs
Session beans
Model application tasks
Not shared, client specific
Transient state
Short lived
Example – an object holds the logic for purchasing
product items i.e. buyProduct
Varieties of EJBs
Entity bean
Model persistent resources
Shared by clients
Persistent state
Long lived
Example – a product to be purchased in a shop
Programming basics – Classes
and Interfaces
Remote interface
Defines the bean’s business methods
Extends javax.ejb.EJBObject
Home interface
Defines the bean’s life cycle methods (creating,
removing and finding a bean)
Extends javax.ejb.EJBHome
Programming basics – Classes
and Interfaces
Bean class
Must have methods matching the signatures of
the methods defined in the remote interface
Must have methods corresponding to some of the
methods in the home interface
Primary key
Provides a pointer into the database
Only entity beans need a primary key
The Unseen Pieces
Client
EJB home stub
EJB Server
home interface
home interface
EJB home
remote interface
EJB Object
EJB object stub
remote interface
RMI allows the downloadable stub
bean class
Big picture again
Several good introduction
material on the web
http://java.sun.com/products/ejb/articles/multitier.html
This article shows a very good example on how to use EJB to develop multi-tier application!!!
The example pretty much covers every thing (Session Bean, EntityBean and Servlet).
http://java.sun.com/products/ejb/faq.html
The FAQs on Sun EJB web site answered many general questions regarding to EJB.
http://internt.isk.kth.se/~enander/DistObj/ejb/ejbpre.htm
here's a good EJB presentation