صفحه 1:
Enterprise
Java EE 5™
Introduction
v100830 Intro to JavaEE 1
صفحه 2:
Goals
* Become familiar with the Java EE
Architecture
~- Understand the purpose of Java SE, Java ME,
and Java EE
- Understand the purpose of each Java EE
Container
~- Understand the purpose of each Java EE API
¢ Understand the difference between an API
and Provider
* Understand there are significant variations
in Java EE architectures
v100830 Intro to JavaEE 2
صفحه 3:
Enterprise
ava
Java Technology Levels
* Java Platform, Standard EditiowiNote: Java Technology has
- Java SE (J2SE) gone through a recent name
~ core language oe 5.0 stayed J2SE 5.0
* Java Platform, Micro Edition | + J2SE 6.0 is called Java SE 6
- Java ME (J2ME) + J2EE 5.0 became java EE 5
- targeted at small devices eee become Java Me
* PDAs
* cell phones
* Java Platform, Enterprise Edition
- Java EE (J2EE)
- targeted at enterprise deployments
* persistence
* distributed systems
* web-based applications
* transactions
vioos30 * Security Intro to JavaEE 3
صفحه 4:
v100830 Intro to JavaEE 4
صفحه 5:
Java EE Architecture
* Does not imply physical partitioning into
machines, processes, etc.
* No “all or nothing” requirement
- use what you need
v100830 Intro to JavaEE
صفحه 6:
Enterprise
ava
Containers
Provide Java EE runtime environments with J2SE
v5.
Provide required services to application components
- example services: JMS, JTA
- application components: Applets, Java applications,
Servlets/JSPs, and EJBs
Understand application component deployment
formats
Interposes between application components to
transparently inject services required
- transactions, security checks, resource pooling
Synonymous with application server from the
application developer point of view
v100830 Intro to JavaEE 6
صفحه 7:
Enterprise
ava
Application Components
* Application Client
- Java programs that execute outside of the EJB, Web, and
‘Applet Containers
- Typically GUI-based
* Applets
- GUI components
- typically execute in Web browser
٠ Web Applications
- accessed through HTTP
- primarily generate HTML and XML output
- Servlets, JSPs, JSF, etc.
* Enterprise Java Beans (EJB)
- execute in managed environment that include transactions
- typically provide business logic for Java EE application
v100830 Intro to JavaEE 7
صفحه 8:
Enterprise
ava
Resource Adapters
* System-level software component
* Extends functionality of Container
- Provides connectivity with external resource
managers or native language components
- Implement existing (e.g., JOBC, JMS) or
alternate APIs 9 1 1
* Plugin into Java EE environment to provide
system-level support for
~ Resource Pooling
- Transactions
- Security
v100830 Intro to JavaEE 8
صفحه 9:
Enterprise
ava
Standard Services
* Communications Services
- HTTP
¢ J2SE java.net package defines client-side API
* Java EE defines server-side API defined within
servlet, JSP, JSF, and Web service interfaces
- HTTPS
* use of HTTP over SSL for transport level
security
- Java Message Service (JMS)
۰ ۸۳] for messaging
9 support for publish-subscribe and point-to-
point
v100830 Intro to JavaEE 9
صفحه 10:
Enterprise
CORBA Support Services ™
* RMI-IIOP
- APIs (javax.rmi) to allow RMI-style programming
independent of underlying protocol
* J2SE native RMI Protocol (JRMP)
* CORBA IIOP protocol
- Permit Java EE application components to access
CORBA services compatible with RMI programming
restrictions
- Permit CORBA clients to access EJB components
- Using dependency injection versus JNDI lookup
eliminates the need for applications to use most of API
* Java IDL
- Permit Java EE application components to invoke
CORBA services, independent of the RMI API
v100830 Intro to JavaEE 10
صفحه 11:
Coordination Services
* Java Naming and Directory Interface (JNDI)
- API for naming and directory access
٠ Java Transaction API (JTA)
~ application-level API to demarcate
transaction boundaries
~ provider-level API between transaction and
resource Managers
v100830 Intro to JavaEE 11
صفحه 12:
Persistence Services
* Java Database Connectivity (DBC) API
- API for connectivity with relational
databases
* Java Persistence API
- API for managing persistence and
object/relational mapping
~ Required in Java EE
- Can be used in J2SE environments (is part of
Java SE 6)
v100830 Intro to JavaEE 12
صفحه 13:
Enterprise
XML and Web Service Services
Java API for XML Processing (JAXP)
- integrated API support for separate
+ SAX, DOM, and StAX (Streaming API for XML) XML parsing APIs
+ XSLT transform engines
Java API for XML-based RPC (JAX-RPC)
~ legacy API for Web services
Java API for XML Web Services (JAX-WS)
= follow-on to JAX-RPC
~ primary API for Web services
~ includes SOAP and RESTful Web service bindings
= uses Java Architecture for XML Binding (JAXB) to define Java to XML bindings
= uses SOAP w/ Attachments API for Java (SAAJ) to manipulate low level SOAP
msgs
Web Services Metadata
~ defines Java language annotations for developing Web services
Java API for XML Registries (JAXR)
~ API for client access to XML registry servers
v100830 Intro to JavaEE 13
صفحه 14:
Enterprise
ava
Security Services
* Java Authentication and Authorization
Service (JAAS)
- enables services to authenticate and enforce
access controls
- Java implementation of standard Plugable
Authentication Module (PAM)
¢ Java Authorization Service Provider
Contract for Containers (JACC)
~ defines contract between Java EE application
server and authorization service provider
v100830 Intro to JavaEE 14
صفحه 15:
Enterprise
ava
System Services
* Java EE Connector Architecture (was J2CA)
- provider-level interface for Resource Adapters to integrate
Enterprise Information Systems into Java EE servers.
* connection management
~ resource pooling
+ transaction management
~ integrate transactions across multiple resource managers
~ import transaction contexts into server
* security access
+ thread management
~ allows resource adapter to allocate server threads for
work
+ message delivery
~ integrate any messaging provider; not just JMS
* optional, generic API between application program and
resource adapter
v100830 Intro to JavaEE 15
صفحه 16:
ممه
Management/Deployment
Services
* Management
~ Defines API for managing Java EE servers
5 Uses Java Management Extensions (JMX)
* Deployment
~ Defines API between deployment tools and
Java EE products
v100830 Intro to JavaEE 16
صفحه 17:
Other Services
* JavaMail
~ API and service provider for sending e-mail
notifications
* JavaBeans Activation Framework (JAF)
~ API for handling MIME types
v100830 Intro to JavaEE
صفحه 18:
Enterprise
Java EE 5 APIs and Versions
* J2SE v5.0 * JAX-RPC 1.1
- JDBC, JNDL, RMI * SAAJ 1.3
* Java Persistence 1.0 * JAXR 1.0
* Common Annotations 1.0 + JSTL 1.2
٠ 0 ٠ [52 2
٠ [115 1.1 * JSP Debugging 1.0
٠ 1 ۰ Jaya EE Management
* Servlet 2.5 1
¢ JSP 2.1 * Java EE Deployment 1.2
* StAX 1.0 * JACC 1.1
* Web Services 1.2 * Connector 1.5
* Web Services Metadata * JavaMail 1.4
2.0 * JAF 1.1
+ JAX-WS 2.0
v100830 Intro to JavaEE 18
صفحه 19:
prise
Java EE Product Extensions
* Java EE products may supply
implementations, in any form, for supplied
Java EE APIs
~ different QOS, sizing, scaling, performance,
cost, etc.
* Java EE Products may provide additional
APIs and protocols as extensions
¢ Java EE products may not add classes to
Java API packages or change any properties
of an existing Java API classes.
* Application use of product extensions is
non-portable across Java EE products
v100830 Intro to JavaEE 19
صفحه 20:
Enterprise
Java EE Roles 5
* Java EE Product Provider
- vendor (e.g., Sun, JBoss, BEA, IBM)
* Application Component Provider
- Java, HTML, etc. developer
* Application Assembler
- integrates components into an application
* Deployer
- integrates application with resources of the runtime
* System Administrator
- monitors and tunes application after deployment
* Tool Provider
- ex. Maven Cargo plugin
* System Component Provider
= ex, external JMS provider
v100830 Intro to JavaEE 20
صفحه 21:
Enterprise
ava
Java EE Release Highlights
۰ 28813
~ Connector API
- EJB (2.x) local interfaces and new CMP model
٠ [288 14
- “Web services”
- Management, Deployment, JAAS
* Java EE5
- “Ease of Development”
- Annotations
- Dependency Injection
~ Better defaults
- Java Persistance API, StAX, JAX-WS
* Java EE 6
- Profiles; making some components optional
- More “Ease of Development”
v100830 Intro to JavaEE 21
صفحه 22:
v100830 Intro to JavaEE 22
صفحه 23:
References
* Java™ Platform, Enterprise Edition 5 (Java
E 5) Specification
(http://jcp.org/en/jsr/detail?id=244)
v100830 Intro to JavaEE 23
Enterprise
Java
Java EE 5
Introduction
TM
v100830
Intro to JavaEE
1
Goals
Enterprise
Java
• Become familiar with the Java EE
Architecture
– Understand the purpose of Java SE, Java ME,
and Java EE
– Understand the purpose of each Java EE
Container
– Understand the purpose of each Java EE API
• Understand the difference between an API
and Provider
• Understand there are significant variations
in Java EE architectures
v100830
Intro to JavaEE
2
Java Technology Levels
Enterprise
Java
• Java Platform, Standard EditionNote: Java Technology has
gone through a recent name
– Java SE (J2SE)
change.
– core language
• J2SE 5.0 stayed J2SE 5.0
• Java Platform, Micro Edition
• J2SE 6.0 is called Java SE 6
• J2EE 5.0 became Java EE 5
– Java ME (J2ME)
• J2ME will become Java ME
– targeted at small devices
• PDAs
• cell phones
• Java Platform, Enterprise Edition
– Java EE (J2EE)
– targeted at enterprise deployments
• persistence
• distributed systems
• web-based applications
• transactions
v100830 • security
Intro to JavaEE
3
Java EE Architecture
v100830
Intro to JavaEE
Enterprise
Java
4
Java EE Architecture
Enterprise
Java
• Does not imply physical partitioning into
machines, processes, etc.
• No “all or nothing” requirement
– use what you need
v100830
Intro to JavaEE
5
Containers
Enterprise
Java
• Provide Java EE runtime environments with J2SE
v5.0
• Provide required services to application components
– example services: JMS, JTA
– application components: Applets, Java applications,
Servlets/JSPs, and EJBs
• Understand application component deployment
formats
• Interposes between application components to
transparently inject services required
– transactions, security checks, resource pooling
• Synonymous with application server from the
application developer point of view
v100830
Intro to JavaEE
6
Application Components
Enterprise
Java
• Application Client
– Java programs that execute outside of the EJB, Web, and
Applet Containers
– Typically GUI-based
• Applets
– GUI components
– typically execute in Web browser
• Web Applications
– accessed through HTTP
– primarily generate HTML and XML output
– Servlets, JSPs, JSF, etc.
• Enterprise Java Beans (EJB)
– execute in managed environment that include transactions
– typically provide business logic for Java EE application
v100830
Intro to JavaEE
7
Resource Adapters
Enterprise
Java
• System-level software component
• Extends functionality of Container
– Provides connectivity with external resource
managers or native language components
– Implement existing (e.g., JDBC, JMS) or
alternate APIs
• Plugin into Java EE environment to provide
system-level support for
– Resource Pooling
– Transactions
– Security
v100830
Intro to JavaEE
8
Standard Services
Enterprise
Java
• Communications Services
– HTTP
• J2SE java.net package defines client-side API
• Java EE defines server-side API defined within
servlet, JSP, JSF, and Web service interfaces
– HTTPS
• use of HTTP over SSL for transport level
security
– Java Message Service (JMS)
• API for messaging
• support for publish-subscribe and point-topoint
v100830
Intro to JavaEE
9
CORBA Support Services
Enterprise
Java
• RMI-IIOP
– APIs (javax.rmi) to allow RMI-style programming
independent of underlying protocol
• J2SE native RMI Protocol (JRMP)
• CORBA IIOP protocol
– Permit Java EE application components to access
CORBA services compatible with RMI programming
restrictions
– Permit CORBA clients to access EJB components
– Using dependency injection versus JNDI lookup
eliminates the need for applications to use most of API
• Java IDL
– Permit Java EE application components to invoke
CORBA services, independent of the RMI API
v100830
Intro to JavaEE
10
Coordination Services
Enterprise
Java
• Java Naming and Directory Interface (JNDI)
– API for naming and directory access
• Java Transaction API (JTA)
– application-level API to demarcate
transaction boundaries
– provider-level API between transaction and
resource managers
v100830
Intro to JavaEE
11
Persistence Services
Enterprise
Java
• Java Database Connectivity (JDBC) API
– API for connectivity with relational
databases
• Java Persistence API
– API for managing persistence and
object/relational mapping
– Required in Java EE
– Can be used in J2SE environments (is part of
Java SE 6)
v100830
Intro to JavaEE
12
Enterprise
Java
XML and Web Service Services
• Java API for XML Processing (JAXP)
–
integrated API support for separate
• SAX, DOM, and StAX (Streaming API for XML) XML parsing APIs
• XSLT transform engines
• Java API for XML-based RPC (JAX-RPC)
–
legacy API for Web services
• Java API for XML Web Services (JAX-WS)
–
–
–
–
–
follow-on to JAX-RPC
primary API for Web services
includes SOAP and RESTful Web service bindings
uses Java Architecture for XML Binding (JAXB) to define Java to XML bindings
uses SOAP w/ Attachments API for Java (SAAJ) to manipulate low level SOAP
msgs
• Web Services Metadata
–
defines Java language annotations for developing Web services
• Java API for XML Registries (JAXR)
–
API for client access to XML registry servers
v100830
Intro to JavaEE
13
Security Services
Enterprise
Java
• Java Authentication and Authorization
Service (JAAS)
– enables services to authenticate and enforce
access controls
– Java implementation of standard Plugable
Authentication Module (PAM)
• Java Authorization Service Provider
Contract for Containers (JACC)
– defines contract between Java EE application
server and authorization service provider
v100830
Intro to JavaEE
14
System Services
Enterprise
Java
• Java EE Connector Architecture (was J2CA)
– provider-level interface for Resource Adapters to integrate
Enterprise Information Systems into Java EE servers.
• connection management
– resource pooling
• transaction management
– integrate transactions across multiple resource managers
– import transaction contexts into server
• security access
• thread management
– allows resource adapter to allocate server threads for
work
• message delivery
– integrate any messaging provider; not just JMS
• optional, generic API between application program and
resource adapter
v100830
Intro to JavaEE
15
Management/Deployment
Services
Enterprise
Java
• Management
– Defines API for managing Java EE servers
– Uses Java Management Extensions (JMX)
API
• Deployment
– Defines API between deployment tools and
Java EE products
v100830
Intro to JavaEE
16
Other Services
Enterprise
Java
• JavaMail
– API and service provider for sending e-mail
notifications
• JavaBeans Activation Framework (JAF)
– API for handling MIME types
v100830
Intro to JavaEE
17
Enterprise
Java
Java EE 5 APIs and Versions
• J2SE v5.0
– JDBC, JNDI, RMI
• Java Persistence 1.0
• Common Annotations 1.0
• EJB3.0
• JMS 1.1
• JTA 1.1
• Servlet 2.5
• JSP 2.1
• StAX 1.0
• Web Services 1.2
• Web Services Metadata
2.0
• JAX-WS 2.0
v100830
•
•
•
•
•
•
•
•
•
•
•
•
JAX-RPC 1.1
SAAJ 1.3
JAXR 1.0
JSTL 1.2
JSF 1.2
JSP Debugging 1.0
Java EE Management
1.1
Java EE Deployment 1.2
JACC 1.1
Connector 1.5
JavaMail 1.4
JAF 1.1
Intro to JavaEE
18
Java EE Product Extensions
Enterprise
Java
• Java EE products may supply
implementations, in any form, for supplied
Java EE APIs
– different QOS, sizing, scaling, performance,
cost, etc.
• Java EE products may provide additional
APIs and protocols as extensions
• Java EE products may not add classes to
Java API packages or change any properties
of an existing Java API classes.
• Application use of product extensions is
non-portable across Java EE products
v100830
Intro to JavaEE
19
Java EE Roles
Enterprise
Java
• Java EE Product Provider
– vendor (e.g., Sun, JBoss, BEA, IBM)
• Application Component Provider
– Java, HTML, etc. developer
• Application Assembler
– integrates components into an application
• Deployer
– integrates application with resources of the runtime
• System Administrator
– monitors and tunes application after deployment
• Tool Provider
– ex. Maven Cargo plugin
• System Component Provider
– ex. external JMS provider
v100830
Intro to JavaEE
20
Java EE Release Highlights
Enterprise
Java
• J2EE 1.3
– Connector API
– EJB (2.x) local interfaces and new CMP model
• J2EE 1.4
– “Web services”
– Management, Deployment, JAAS
• Java EE 5
–
–
–
–
–
“Ease of Development”
Annotations
Dependency Injection
Better defaults
Java Persistance API, StAX, JAX-WS
• Java EE 6
– Profiles; making some components optional
– More “Ease of Development”
v100830
Intro to JavaEE
21
Summary
v100830
Intro to JavaEE
Enterprise
Java
22
References
Enterprise
Java
• JavaTM Platform, Enterprise Edition 5 (Java
EE 5) Specification
(http://jcp.org/en/jsr/detail?id=244)
v100830
Intro to JavaEE
23