0% found this document useful (0 votes)
151 views105 pages

J2 EEOverview

Class 1

Uploaded by

Marin_1wq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
151 views105 pages

J2 EEOverview

Class 1

Uploaded by

Marin_1wq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 105

Introduction to

J2EE ™

1
Sang Shin
[email protected]
www.javapassion.com/j2ee/
Java™ Technology Evangelist
Sun Microsystems, Inc.
2
Disclaimer & Acknowledgments
● Even though Sang Shin is a full-time
employee of Sun Microsystems, the contents
here are created as his own personal
endeavor and thus does not reflect any
official stance of Sun Microsystems.
● Sun Microsystems is not responsible for any
inaccuracies in the contents.
● Acknowledgments
– Some slides are borrowed from Mark Hapner's
JavaOne 2002 “J2EE Overview”
3
Revision History
● 12/08/2002: draft version with speaker notes (Sang)
● 12/16/2002: speaker notes are cleaned up a bit (Sang)
● 4/9/2003: Speaker notes are revised. (Lucille Wilson)
● 07/25/2004: How to get started is modified to reflect
J2EE 1.4 SDK (Sang)
● 09/22/2004: Change Sun fonts to Arial fonts (Sang)

4
Session Objectives
● Understanding the value propositions of
J2EE
● Getting a big picture of J2EE architecture
and platform
● Getting high-level exposure of APIs and
Technologies that constitute J2EE
– You don't have to understand the details
● Understanding why J2EE is the platform of
choice for development and deployment of
both web applications and web services
5
Agenda
● What is J2EE?
● Evolution of Enterprise Application Development
Frameworks
● Why J2EE?
● J2EE Platform Architecture
● J2EE APIs and Technologies
● Standard Impl (J2EE 1.4), Compatibility Test Suite
(CTS)
● BluePrints
● J2EE and Web Services
● How to get started
6
What is J2EE?

7
Enterprise Computing
Challenges Key Products
Portability Technologies App Servers
Diverse J2SE™ Web Servers
Environments J2EE™ Components
Time-to-market JMS Databases
Core Competence Servlet Object to DB
Assembly JSP tools
Integration Connector
XML
Legacy
Data Systems
Binding
Databases
XSLT
TP Monitors
EIS Systems
8
What Is the J2EE?

 Open and standard based platform


for
 developing, deploying and managing
 n-tier, Web-enabled, server-centric,
and component-based enterprise
applications

9
The Java™ Platform

Java Technology Java Technology Workgroup High-End


Enabled Devices Enabled Desktop Server Server

10
The Java TM
Platform
Java 2 Platform Micro Edition
(J2METM)

Optional
Packages

Optional
Packages

Personal Personal
Java 2 Java 2 Basis Profile Profile
Enterprise Standard
Edition Edition Foundation Profile MIDP
(J2EE) (J2SE)
Java
CDC CLDC Card
APIs

JVM KVM CardVM

11
* Under development in JCP
What Makes Up J2EE?
● API and Technology specifications
● Development and Deployment Platform
● Standard and production-quality
implementation
– Sun Java System App Server Platform Edition
8.1 as part of J2EE 1.4 SDK
● Compatibility Test Suite (CTS)
● J2EE brand
● J2EE Blueprints
● Sample codes
12
Evolution of
Enterprise Application
Frameworks

13
Evolution of Enterprise
Application Framework
● Single tier
● Two tier
● Three tier
– RPC based
– Remote object based
● Three tier (HTML browser and Web server)
● Proprietary application server
● Standard application server
14
About Enterprise Applications
● Things that make up an enterprise
application
– Presentation logic
– Business logic
– Data access logic (and data model)
– System services
● The evolution of enterprise application
framework reflects
– How flexibly you want to make changes
– Where the system services are coming from
15
Single Tier (Mainframe-based)

● Dumb terminals are directly connected to


mainframe
● Centralized model (as opposed distributed
model)
● Presentation, business logic, and data
access are intertwined in one monolithic
mainframe application 16
Single-Tier: Pros & Cons
● Pros:
– No client side management is required
– Data consistency is easy to achieve
● Cons:
– Functionality (presentation, data model, business
logic) intertwined, difficult for updates and
maintenance and code reuse

17
Two-Tier
SQL request
Database
SQL response

● Fat clients talking to back end


database
– SQL queries sent, raw data returned
● Presentation,Business logic and Data
Model processing logic in client
application 18
Two-Tier
● Pro:
– DB product independence (compared to single-tier model)
● Cons:
– Presentation, data model, business logic are intertwined (at
client side), difficult for updates and maintenance
– Data Model is “tightly coupled” to every client: If DB
Schema changes, all clients break
– Updates have to be deployed to all clients making System
maintenance nightmare
– DB connection for every client, thus difficult to scale
– Raw data transferred to client for processing causes high
network traffic
19
Three-Tier (RPC based)

RPC request SQL request


Database
RPC response SQL response

● Thinner client: business & data model separated


from presentation
– Business logic and data access logic reside in
middle tier server while client handles presentation
● Middle tier server is now required to handle system
services
– Concurrency control, threading, transaction, security,
persistence, multiplexing, performance, etc. 20
Three-tier (RPC based): Pros & Cons
● Pro:
– Business logic can change more flexibly than 2-
tier model
● Most business logic reside in the middle-tier server
● Cons:
– Complexity is introduced in the middle-tier server
– Client and middle-tier server is more tightly-
coupled (than the three-tier object based model)
– Code is not really reusable (compared to object
model based)
21
Three-Tier (Remote Object based)

Object request SQL request


Database
Object response SQL response

● Business logic and data model captured in


objects
– Business logic and data model are now described
in “abstraction” (interface language)
● Object models used: CORBA, RMI, DCOM
– Interface language in CORBA is IDL
– Interface language in RMI is Java interface 22
Three-tier (Remote Object
based): Pros & Cons
● Pro:
– More loosely coupled than RPC model
– Code could be more reusable
● Cons:
– Complexity in the middle-tier still need to be
addressed

23
Three-Tier (Web Server)

HTML request WEB SQL request


Server
Database
HTML response SQL response

● Browser handles presentation logic


● Browser talks Web server via HTTP protocol
● Business logic and data model are handled by
“dynamic contents generation” technologies
(CGI, Servlet/JSP, ASP)
24
Three-tier (Web Server based):
Pros & Cons
● Pro:
– Ubiquitous client types
– Zero client management
– Support various client devices
● J2ME-enabled cell-phones
● Cons:
– Complexity in the middle-tier still need to be
addressed

25
Trends
● Moving from single-tier or two-tier to multi-
tier architecture
● Moving from monolithic model to object-
based application model
● Moving from application-based client to
HTML-based client

26
Single-tier vs. Multi-tier
Single tier Multi-tier
 No separation  Separation among
among presentation, presentation,
business logic, business logic,
database database
 Hard to maintain  More flexible to
change, i.e.
presentation can
change without
affecting other tiers

27
Monolithic vs. Object-based

Monolithic Object-based

 1 Binary file  Pluggable parts


 Recompiled,  Reusable
relinked,  Enables better
redeployed every design
time there is a  Easier update
change  Implementation
can be separated
from interface
 Only interface is
published
28
Outstanding Issues & Solution
● Comlexity at the middle tier server still remains
● Duplicate system services still need to be
provided for the majority of enterprise
applications
– Concurrency control, Transactions
– Load-balancing, Security
– Resource management, Connection pooling
● How to solve this problem?
– Commonly shared container that handles the above
system services
– Proprietary versus Open-standard based
29
Proprietary Solution
● Use "component and container" model
– Components captures business logic
– Container provides system services
● The contract between components and
container is defined in a well-defined but
with proprietary manner
● Problem of proprietary solution: Vendor
lock-in
● Example: Tuxedo, .NET
30
Open and Standard Solution
● Use "component and container" model in
which container provides system services
in a well-defined and as industry standard
● J2EE is that standard that also provides
portability of code because it is based on
Java technology and standard-based Java
programming APIs

31
Why J2EE?

32
Platform Value to Developers
● Can use any J2EE implementation for
development and deployment
– Use production-quality standard implementation
which is free for development/deployment
– Use high-end commercial J2EE products for
scalability and fault-tolerance
● Vast amount of J2EE community resources
– Many J2EE related books, articles, tutorials,
quality code you can use, best practice
guidelines, design patterns etc.
● Can use off-the-shelf 3rd-party business
components
33
Platform Value to Vendors
● Vendors work together on specifications
and then compete in implementations
– In the areas of Scalability, Performance,
Reliability, Availability, Management and
development tools, and so on
● Freedom to innovate while maintaining the
portability of applications
● Do not have create/maintain their own
proprietary APIs
34
Platform Value to Business
Customers
● Application portability
● Many implementation choices are possible
based on various requirements
– Price (free to high-end), scalability (single CPU to
clustered model), reliability, performance, tools,
and more
– Best of breed of applications and platforms
● Large developer pool
35
J2EE APIs &
Technologies

36
J2EE 1.4 APIs and Technologies
● J2SE 1.4 (improved) ● Servlet 2.4
● JAX-RPC (new) ● JSP 2.0
● Web Service for ● EJB 2.1
J2EE ● JAXR
● J2EE Management ● Connector 1.5
● J2EE Deployment ● JACC
● JMX 1.1 ● JAXP 1.2
● JMS 1.1 ● JavaMail 1.3
● JTA 1.0 ● JAF 1.0
37
Servlet &
JSP (JavaServer Pages)
38
What is a Servlet?
● Java™ objects which extend the
functionality of a HTTP server
● Dynamic contents generation
● Better alternative to CGI, NSAPI, ISAPI,
etc.
– Efficient
– Platform and server independent
– Session management
– Java-based
39
Servlet vs. CGI
Request
RequestCGI1
CGI1 Child
Childfor
forCGI1
CGI1
Request CGI
CGI
RequestCGI2
CGI2 Based Child
Based Childfor
forCGI2
CGI2
Webserver
Webserver
Request
RequestCGI1
CGI1 Child
Childfor
forCGI1
CGI1

Request
Request Servlet1
Servlet1 Servlet
Servlet Based
Based Webserver
Webserver
Request Servlet1
Request Servlet2
Servlet2 Servlet1
JVM
JVM
Request Servlet1 Servlet2
Servlet2

40
What is JSP Technology?
● Enables separation of business logic
from presentation
– Presentation is in the form of HTML or
XML/XSLT
– Business logic is implemented as Java
Beans or custom tags
– Better maintainability, reusability
● Extensible via custom tags
● Builds on Servlet technology
41
EJB
(Enterprise Java
Beans)
42
What is EJB Technology?
● A server-side component technology
● Easy development and deployment of
Java technology-based application
that are:
– Transactional, distributed, multi-tier,
portable, scalable, secure, …

43
Why EJB Technology?
● Leverages the benefits of component-model
on the server side
● Separates business logic from system code
– Container provides system services
● Provides framework for portable components
– Over different J2EE-compliant servers
– Over different operational environments
● Enables deployment-time configuration
– Deployment descriptor

44
EJB Architecture

45
Enterprise JavaBeans
Enterprise JavaBeans

Synchronous communication Asynchronous communication


Session Bean Entity Bean Message-Driven Bean

Stateless Stateful

Bean managed Container managed


Persistence Persistence
(BMP) (CMP)
46
JMS
(Java Message
Service)
47
Java Message Service (JMS)
● Messaging systems (MOM) provide
– De-coupled communication
– Asynchronous communication
– Plays a role of centralized post office
● Benefits of Messaging systems
– Flexible, Reliable, Scalable communication
systems
● Point-to-Point, Publish and Subscribe
● JMS defines standard Java APIs to
messaging systems 48
Connector
Architecture
49
Connector Architecture
● Defines standard API for integrating J2EE
technology with EIS systems
– CICS, SAP, PeopleSoft, etc.
● Before Connector architecture, each App
server has to provide an proprietary adaptor
for each EIS system
– m (# of App servers) x n (# of EIS's) Adaptors
● With Connector architecture, same adaptor
works with all J2EE compliant containers
– 1 (common to all App servers) x n (# of EIS's)
Adaptors
50
m x n Problem Before
Connector Architecture
m n
App SAP
Server1
App
EIS
Server2 2

App EIS3
Server3
App EIS4
Server

51
JAAS (Part of J2SE 1.4)
(Java Authentication &
Authorization Service)
52
JAAS: Authentication
● Pluggable authentication framework
– Userid/password
– Smartcard
– Kerberos
– Biometric
● Application portability regardless of
authentication schemes underneath
– JAAS provides authentication scheme independent
API
– Authentication schemes are specified Login
configuration file, which will be read by JAAS 53
JAAS Pluggable Authentication

54
JAAS: Authorization
● Without JAAS, Java platform security are
based on
– Where the code originated
– Who signed the code
● The JAAS API augments this with
– Who’s running the code
● User-based authorization is now possible

55
Other J2EE APIs &
Technologies
56
JNDI
● Java Naming and Directory Interface
● Utilized by J2EE applications to locate
resources and objects in portable
fashion
– Applications use symbolic names to find
object references to resources via JNDI
– The symbolic names and object references
have to be configured by system
administrator when the application is
deployed.
57
JDBC
● Provides standard Java programming
API to relational database
– Uses SQL
● Vendors provide JDBC compliant
driver which can be invoked via
standard Java programming API

58
J2EE Management (JSR-77)
● Management applications should be able to
discover and interpret the managed data of
any J2EE platform
● Single management platform can manage
multiple J2EE servers from different
vendors
● Management protocol specifications ensure
a uniform view by SNMP and WBEM
management stations
● Leverages JMX 59
J2EE Deployment (JSR-88) - J2EE 1.4
Tools J2EE Platforms
Standard
IDEs Deployment API
(Universal Remote)

Vendor Deploy
Tools

Management Tools

60
JMX
JMX API into Dynamic Deployment
the J2EE 1.4 platform

JMX

JMX
App
J2EE App Server

JMX defacto

A single technology for the J2EE platform

61
JACC (Java Authorization Contract
for Containers) - J2EE 1.4
● Defines contract between J2EE
containers and authorization policy
modules
– Provider configuration subcontract
– Policy configuration subcontract
– Policy enforcement subcontract
● Enable application servers to integrate
with enterprise user registries and
authorization policy infrastructure
62
J2EE is an End-to-End
Architecture

63
The J2EE Platform Architecture
B2B
Applications

Existing
B2C Applications
Applications

Web
Services
Application Server
Wireless Enterprise
Applications Information
Systems

64
J2EE is End-to-End Solution
Firewall
J2EE
Application
Client Server

Enterprise
Enterprise Information
JavaBeans™
Client Systems (EIS):
Client Relational
Database,
Web Enterprise Legacy
Client Server JavaBeans Applications,
JSP,
Servlets ERP Systems
Client
HTML/XML
Other Services:
JNDI, JMS, Enterprise
Client Middle JavaMail™ Information
Tier Tier Tier

65
N-tier J2EE Architecture

Web Tier EJB Tier

66
J2EE
Component & Container
Architecture

67
J2EE Containers & Components
Applet Container Web Container EJB Container

Applet HTTP/ JSP Servlet RMI EJB


HTTPS

J2SE

RMI/IIOP
JavaMail

RMI/IIOP
JavaMail

JDBC
JDBC
JMS
JNDI

JTA

JNDI

JMS

JTA
App Client JAF
Container JAF
App HTTP/ J2SE
Client HTTPS
RMI
RMI/IIOP

JDBC
JNDI
JMS

J2SE J2SE

Database
68
Containers and Components
Containers Components
Handle Handle
 Concurrency  Presentation
 Security  Business Logic
 Availability
 Scalability
 Persistence
 Transaction
 Life-cycle
management
 Management
69
Containers & Components

● Containers do their work invisibly


– No complicated APIs
– They control by interposition
● Containers implement J2EE
– Look the same to components
– Vendors making the containers have great
freedom to innovate

70
J2EE Application
Development & Deployment
Life Cycle

71
J2EE Application
Development Lifecycle
● Write and compile component code
– Servlet, JSP, EJB
● Write deployment descriptors for
components
● Assemble components into ready-to-
deployable package
● Deploy the package on a server
72
Life-cycle Illustration
Creation Assembly Deployment
Assembled
Created by J2EE Modules and Augmented J2EE APP Processed
Component by Application by Deployer
Developer Assembler

Deploy

J2EE Container

Enterprise
Components

73
J2EE Development Roles
● Component provider
– Bean provider
● Application assembler
● Deployer
● Platform provider
– Container provider
● Tools provider
● System administrator
74
The Deployment Descriptor
● Gives the container instructions on how
to manage and control behaviors of the
J2EE components
– Transaction
– Security
– Persistence
● Allows declarative customization (as
opposed to programming
customization)
– XML file
● Enables portability of code 75
J2EE Application
Anatomies

76
Possible J2EE Application
Anatomies
Web Server EJB Server

DB & EIS
Resources

Browser Web Server EJB Server

Stand-alone

77
J2EE Application Anatomies
● 4-tier J2EE applications
– HTML client, JSP/Servlets, EJB, JDBC/Connector
● 3-tier J2EE applications
– HTML client, JSP/Servlets, JDBC
● 3-tier J2EE applications
– EJB standalone applications, EJB,
JDBC/Connector
● B2B Enterprise applications
– J2EE platform to J2EE platform through the
exchange of JMS or XML-based messages 78
Which One to Use?
● Depends on several factors
– Requirements of applications
– Availability of EJB tier
– Availability of developer resource

79
J2EE 1.4
Standard Implementation,
Compatibility Suite, Brand

80
Standard Implementation
● Under J2EE 1.4 SDK, it is Sun Java
Application Server Platform Edition 8
● Production-quality J2EE 1.4 compliant
app server
● Free to develop and free to deploy
● Seamless upgrade path to Sun Java
Application Server Enterprise Edition

81
Compatibility Test Suite (CTS)
● Ultimate Java™ technology mission:
– Write Once, Run Anywhere™
– My Java-based application runs on any
compatible Java virtual machines
– My J2EE based technology-based
application will run on any J2EE based
Compatible platforms

82
J2EE Application Verification Kit
(J2EE AVK)
● How can I test my J2EE application
portability?
• Obtain the J2EE RI 1.3.1 and the J2EE
Application Verification Kit (J2EE AVK)
● Self verification of application
– Static verification
– Dynamic verification
● Obtain the tests results, verify that all
criteria are met
83
Compatible Products
for the J2EE Platform (Brand)
ATG iPlanet
Bea Systems Macromedia
Borland NEC
Computer Oracle
Associates Pramati
Fujitsu SilverStream
Hitachi Sybase
HP Talarian
IBM Trifork
IONA
84
The J2EE Platform “Ecosystem,”
Application Servers and…
● Tools
– IDE’s: Borland JBuilder Enterprise, WebGain
Visual Cafe’, IBM Visual Age for Java™, Forte™
for Java™, Oracle JDeveloper, Macromedia Kawa
– Modeling, Performance, Testing, etc.
● Enterprise Integration: Connectors,
Java Message Service (JMS) API, XML
● Components
● Frameworks
● Applications
85
Major Investment in
Compatibility by the Industry
● Sun has spent scores of engineer years
developing tests
● Licensees have spent scores of engineer
years passing the tests
● Testing investment on top of specification
investment, implementation investment,
business investments
● In total, tens of millions of dollars invested in
J2EE platform compatibility by the industry
86
J2EE Blueprint &
Pet Store Application

87
J2EE Blueprint
● Best practice guidelines, design patterns
and design principles
– MVC pattern
● Covers all tiers
– Client tier
– Web tier
– Business logic (EJB) tier
– Database access tier
● Sample codes come with J2EE 1.4 SDK
– Java Pet Store, Adventure builder
88
Why J2EE
for Web Services?

89
Why J2EE for Web Services?
● Web services is just one of many
service delivery channels of J2EE
– No architectural change is required
– Existing J2EE components can be easily
exposed as Web services
● Many benefits of J2EE are preserved
for Web services
– Portability, Scalability, Reliability
– No single-vendor lock-in
90
Web Services Model Over J2EE
Rich Clients J2EE Server JSP™/ JavaServlet API / EJB™

XMLP/SOAP
JSP JDBC
DBMS

MIDP XMLP/SOAP
Devices
XHTML/WML
JMS
Connectors
Existing
EJB Apps
HTML/XML

Browsers XMLP/SOAP

Services

91
Where Are We Now?
● Java APIs for Web Services are being
developed very rapidly
• Web services support on WUST (WSDL, UDDI,
SOAP) ready now
• Next layer Web services work in progress
● Tools are available now for exposing existing
J2EE components as Web services
● J2EE community has defined overall
framework for Web Services (J2EE 1.4, Web
services for J2EE)
92
Design Goals J2EE 1.4 Web
Services Framework
● Portability of Web services component
– Over different vendor platform
– Over different operational environment
● Leveraging existing J2EE programming
models for service implementation
● Easy to program and deploy
– High-level Java APIs
– Use existing deployment model
93
J2EE 1.4 Web Services Framework
● J2EE 1.4 (JSR 151)
● Web services for J2EE (JSR 109)
● JAX-RPC (JSR 101)
● JAXR (Java API for XML Registries)
● SAAJ (SOAP with Attachments API for
Java)
● EJB 2.1
94
How to Get Started

95
Step1: How to Get Started
(for Beginners)
● Download and J2EE 1.4 SDK and try
sample programs that come with J2EE 1.4
SDK
– http://java.sun.com/j2ee/1.4/download.html#appserv
● Download and try J2EE 1.4 Tutorial
– Separate downloading (from the same website as above)
– http://java.sun.com/j2ee/1.4/download.html#appserv

96
Step2: Next Step (For Intermediate
J2EE Programmers)
● Leverage J2EE Blueprint sample code
and document
– It comes with J2EE 1.4 SDK
– Learn the best practice guidelines and design
patterns
– java.sun.com/blueprints/enterprise/index.html

97
Step3: Next Step (For Intermediate
J2EE Programmers)
● Try J2EE IDE of your choice.
● Try open source IDE's
– NetBeans IDE 5.0 (netbeans.org)
● Excellent out of the box J2EE support

● We will use NetBeans IDE 5.0 as our default IDE in

this course
– Eclipse

98
Step4: Next Step (For Advanced
J2EE Programmers)
● Learn practical open-source solutions
– Spring framework (for light-weight framework)
– Hibernate (for O/R mapping)
– JDO (for transparent persistence)
– Struts, WebWork, Tapestry (for Web-tier
frameworks)
– JUnit (for unit testing)
– Log4j (for logging)
– Many more
99
Step5: Next Step (For Advanced
J2EE Programmers)
● There is no shortage of quality J2EE
online resources
– java.sun.com/j2ee
– www.theserverside.com
– www.javapassion.com/j2ee/J2EEresources.html#J2
EEResourceSites

100
Summary &
Resources

101
Summary
● J2EE is the platform of choice for
development and deployment of n-tier,
web-based, transactional, component-
based enterprise applications
● J2EE is standard-based architecture
● J2EE is all about community
● J2EE evolves according to the needs
of the industry

102
Resources
● J2EE Home page
– java.sun.com/j2ee
● J2EE 1.4 SDK
– java.sun.com/j2ee/1.4/download.html#appserv
● J2EE 1.4 Tutorial
– java.sun.com/j2ee/1.4/download.html#appserv
● J2EE Blueprints
– java.sun.com/blueprints/enterprise/index.html

103
NetBeans Resources
● NetBeans IDE Homesite
– http://www.netbeans.org
● NetBeans IDE Tutorials/Articles
Master index
– http://www.javapassion.com/netbeans
/masterindex.html

104
Passion!

105

You might also like