![Page 1: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/1.jpg)
Marc Hamilton
Director of Technology
Global Education and Research
Sun Microsystems, Inc
University of Tokyo Java Class
September 22-26, 2003
J2EE Overview and Roadmap
![Page 2: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/2.jpg)
Overall Presentation Goal
Learn how to build enterprise applications
with Java� 2 Platform, Enterprise Edition (J2EE) Technology building Enterprise
JavaBeans� (EJB) using Java Studio
![Page 3: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/3.jpg)
Java 2 Platform
J av a 2
Ent er pr i s
e
J av a 2
St andar d
Edi t i onJ av a 2 M i cr o Edi t i on
J av a Plat for m
K VM Car d VMCl assi c VMHot Spot
M emor y :
Oper at i ng Syst em:
10MB
64-bit
1MB 500kB
30-bit
10kB
16-bit 8-bit
![Page 4: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/4.jpg)
J2EE� Platform
� The J2EE platform brings the benefits of component-based development to enterprise applications
� Components are:Simpler to develop
Portable
Reusable
![Page 5: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/5.jpg)
The J2EE Platform Architecture
B2B
Applications
B2C
Applications
WebSer v i ce
Wireless
ApplicationsApplication Server
Enterprise
Information
Systems
Existing
Applications
![Page 6: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/6.jpg)
JN
DI
J2SE
JM
S
RM
I/II
OP
JD
BC
Database
AppClient
App Client
Container
HTTP/HTTPS
J2SE
RMI
J2SE
JN
DI
JM
S
RM
I/II
OP
JD
BC
JT
A
JavaMail
JAF JN
DI
JM
S
RM
I/II
OP
JD
BC
JT
A
JavaMail
JAF
HTTP/HTTPS
Applet Container
Applet JSP Servlet EJB
Web Container EJB Container
RMI
J2SE
The J2EE PlatformContainers and Components
![Page 7: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/7.jpg)
J2EE Components
� Server-side component technologiesEnterprise JavaBeans� (EJB)
Java� Servlet API and JavaServer Pages�
� Client-side componentsApplication client
� Configured via deployment descriptors� Deployed into containers
J2EE Components
![Page 8: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/8.jpg)
Container Responsibility
Cont ai ne
Tr ansact i o Secur i t
St at e
M anagemenPer si st ence L i fe Cycle
Remot e
I n t er fac
EJEJEJ
![Page 9: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/9.jpg)
Advantages of Container
� Advantages of letting the container take care of security, persistence, and transactions:
Less programming, easier
Security, transactions: configurable when assembling application components
Transactions, persistence: container can give better performance
![Page 10: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/10.jpg)
Enterprise JavaBeans (EJBs)
Overview
![Page 11: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/11.jpg)
What Is EJB� Technology?
� Enterprise JavaBeans (EJB) is the cornerstone of J2EE
� A standard-based, server-side component technology for building distributed, object-oriented applications
� Easy development and deployment of Java technology-based application that are:
Transactional, distributed, multi-tier, portable, scalable, secure, �
![Page 12: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/12.jpg)
Why EJB� Technology?
� Leverages the benefits of component-model on the server side
� Separates business logic from system code� Provides framework for portable components
Over different J2EE-compliant servers
Over different operational environments� Enables deployment-time configuration
Deployment descriptor
![Page 13: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/13.jpg)
EJB� Architecture
J av a Cl asses t o dev el op:
Tw o i n t er faces and One i mpl ement at i on
Remote interface stubs
home
object
context
bean
Ser v erprovides resource mgmt
Cont ai ne
met hod
s
Deployment
Descriptor
Automatically invokes services based on
requirements defined in deployment descriptor
Create
lookup
remove
cr eat e
l ook up
r emov e
Business
methods
client
![Page 14: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/14.jpg)
EJB Packaging
EJ B
home
EJ B
object
Depl oyment t ool s
ejbDepl oyment
descr i pt or
EJ B
hom
eEJ B
object
ejb
Depl oyment
descr i pt or
![Page 15: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/15.jpg)
Web jars (.war):
servlets, JSP�
Application Jar (.ear):
ejb-jar, Web-jar, DD
ejb-jar (.jar)
EAR Packaging
EJBHome EJBObject
Beans, DD
Depl oyment t ool s
Depl oyment
descr i pt or
![Page 16: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/16.jpg)
Deployment Tools
� GUI-based Tools
� Packaging, assembly and Deployment of applications for the J2EE platform
� Wizard for creation of J2EE platform-based modules
� Simplify deployment descriptor generation
� Application update functionality
![Page 17: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/17.jpg)
Types of EJBs
� Entity BeanFor Persistent Data Management
BMP: Bean Managed Persistence
CMP: Container Managed Persistence� Session Bean
Statefull: Maintains the client session
Stateless: Fast and less overhead� Message Driven Bean
Asynchronous communication with EJBs
![Page 18: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/18.jpg)
Entity Bean
� Model business concepts, often called domain classes
Abstractions of real-world entities that can be expressed as nouns (i.e., Customer inventory item)
� Object view of business entity stored in persistent storage
In memory view and manipulation of data� Entity beans support shared access from
multiple users� Entity beans can be re-instantiated from attributes stored in
database:
�Lives� as long as the data in the database
![Page 19: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/19.jpg)
Entity Bean Types
� Bean-Managed Persistence
Advantages:
• Developer has full control
Disadvantages:
• More complex coding
• May be less portable
� Container-Managed Persistence
Advantages:
• Vendor does the work, better caching, performance
• Changes are implemented in deployment descriptors
• Generated at deploy time, more portability
![Page 20: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/20.jpg)
Two Types of Session Beans
� StatelessAn object that represents a stateless service
Provides responses to requests without storing client specific information
Transient
Temporary piece of business logic needed by a specific client for a limited time span
� StatefulMaintains client specific state
stateless St at e i nst ance
![Page 21: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/21.jpg)
EJB API
<<Interface>>
EJBObject
<<Interface>>
Greeter
XxxGreeter
EJBObject
<<Interface>>
java.RMI.Remote
<<Interface>>
EJBHome
<<Interface>>
GreeterHome
xxxGreeter
EJBHome
JDK
javax.ejb
Bean
provider
xxx
Container
provider
<<Interface>>
java.io.serializable
<<Interface>>
EnterpriseBean
<<Interface>>
SessionBean
GreeterBean
xxx
GreeterBeanImpl
![Page 22: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/22.jpg)
Greeter EJB Example
� Remote Interface code:
� Home Interface code:
01 package ejb;02 import javax.ejb.*;03 public interface Greeter extends javax.ejb.EJBObject {04 public java.lang.String getGreeting() throws05 java.rmi.RemoteException;}
01 public interface GreeterHome extends javax.ejb.EJBHome {02 public ejb.Greeter create()
throws javax.ejb.CreateException, java.rmi.RemoteException;
03 }
![Page 23: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/23.jpg)
Greeter EJB Implementation
<<Interface>>SessionBean
setEntityContext()unsetEntityContext
ejbRemove()ejbActivate()
ejbPassivate()GreeterBean
getGreeting()
ejbCreate()ejbPostCreate()
setEntityContext()unsetEntityContext
ejbRemove()ejbActivate()
ejbPassivate()
I mpl ement
<<Interface>>Greeter
getGreeting()
<<Interface>>GreeterHome
create()
Must matchfor container�glue�
![Page 24: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/24.jpg)
Deployment Descriptor
1<?xml version="1.0" encoding="UTF-8"?>
2<ejb- jar>
3 <enterprise-beans>
4 <session>
5 <display-name>Greeter</ display-name>
6 <ejb-name>Greeter</ ejb-name>
7 <home>ejb.GreeterHome</ home>
8 <remote>ejb.Greeter</ remote>
9 <local-home>ejb.LocalGreeterHome</ local-home>
10 <local>ejb.LocalGreeter</ local>
11 <ejb-class>ejb.GreeterBean</ ejb-class>
12 <session- type>Stateless</ session- type>
13 <transaction- type>Bean</ transaction- type>
14 </ session>
15 </ enterprise-beans>
16</ ejb- jar>
![Page 25: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/25.jpg)
EJB Transactions
� EJB transactions in two ways: Container-managed transactions: Depend on the declarative transactions specified in deployment descriptor
• The EJB container controls the integrity of your transactions
Bean-managed transactions: Use the user transaction API (JTA) to explicitly drive transactions
![Page 26: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/26.jpg)
Container Managed Transaction
TX_REQUI RES_N EW TX_REQUI RED
TX_REQUI RED
TC TCCr ui se
M anager
Cr ui seEJ B
Passenger EJ
Reser v e
N ew Tr ansact i on
Cont ex t
Tr ansact i on Cont ex t
Pr opagat ed
Tr ansact i on
A t t r i but es
2. Cr eat e Reser v at i on
TRAN SACTI ON
TC
1. Updat e
number seat s
![Page 27: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/27.jpg)
Declarative Transaction Management
� The following transaction attributes can be specified in the deployment descriptor to declare what type of transaction support the bean or bean method requires:
TX_NOT_SUPPORTED
TX_SUPPORTS
TX_REQUIRED
TX_REQUIRES_NEW
TX_BEAN_MANAGED
TX_MANDATORY
![Page 28: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/28.jpg)
J2EE Security
� Declarative and programmatic security� Realm administration
LDAP, certificate, database, file, Solaris-based realms
� Pluggable authentication via JAASYou can add custom realm
� Single sign-on (value-add)Same authenticate state shared among multiple J2EE applications
![Page 29: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/29.jpg)
Authentication Framework of J2EE
HTTP
Client
EIS
EJB
Container
EJ
B
Ser v l et / J S
P
Web
Container
Initiator
Authorization
Authentication
Authorization
EJ
B
EJ
B
![Page 30: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/30.jpg)
Web-Tier Authentication
� Authentication Mechanisms by which browser supplies user identity information (logging-in) to web container
HTTP basic authentication (with or without SSL)
Form-based authentication (with or without SSL)
Certificate authentication � Web container then performs actual authentication
By checking it against �backend user identity information� (Realms)
• Database, LDAP server, Flat-file, etc.
![Page 31: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/31.jpg)
Form-Based Login in Detail
1. Request made by client
2. Is client authenticated?
3. Unauthenticated client
redirected4. Login form returned to client
5. Client submits login form
6. Aut hent i cat i on Login succeeded,
redirected to resource7. Aut hor i zat i on Permission tested,
result returned8. Login failed, redirect to error page
9. Error page returned to client
1
2Pr ot ect edResour ce
Login .jsp j_secur i t y_check Er r or .ht
RequestResponse
PageLoginFor m
Er r or Page
36 8
7 4 5 9
![Page 32: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/32.jpg)
Dev el opment and Depl oyment
of EJ Bs Usi ng J av a St udi o
![Page 33: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/33.jpg)
J2EE Application Development
� Design and develop componentsCreate Java source
Create deployment descriptor� Assemble components into application
Create deployment descriptor
EJB modules are packaged as JAR files
Web modules are packaged as JAR files with a .war (Web ARchive) extension
� Deploy the enterprise applicationsDeployment time configurations
![Page 34: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/34.jpg)
� Full Featured Development Environment for J2EE application development
� Control deployment of enterprise application
to: Sun� ONE Application Server, BEA, RI� Flexibility: Core (foundation) and plug-in
modules� Advanced Source Code Editor � Auto-complete, color coding, Source Code
Control etc.
Java Studio 5, Enterprise Edition
![Page 35: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/35.jpg)
Java Studio Application Server Features Extension
- Browse database tables CMP mapping - Select related tables
- Automatically generates CMP - Easily register both local and remote application servers
Server runtime - Start and stop application server Control instances
- Register J2EE resources in any of the registered app server
Resource Configuration pools
- JMS resources
- Register resources and connection
Java Studio 5 and Application Server 7.0
![Page 36: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/36.jpg)
Java Studio 5 and Application Server 7.0
Java Studio Features Application Server Extension - Select from the list of registered applica-
Application deployment tion servers and leverage the dynamic (�hot�) deployment and redeployment features supported in S1AS - Debugging against deployed apps on both local and remote application
Debugging and log server instances viewing - View the server event log files from
within the Studio
![Page 37: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/37.jpg)
J 2EE Roadmap
![Page 38: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/38.jpg)
J2EE 1.4 Content
� JAX-RPC 1.1 (JSR-101)� SAAJ 1.1� Web Services (JSR-109)� Management (JSR-77)� Deployment (JSR-88)� Connectors 1.5� JMX 1.1� JMS 1.1� JTA 1.0
� Servlet 2.4� JSP 2.0� EJB 2.1� JAXR 1.0 (JSR-93)� JACC (JSR-115)� JAXP 1.2� JavaMail 1.3� JAF 1.0
![Page 39: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/39.jpg)
J2EE Ease-of-Development (1)
� JSPTM 2.0
Simple Expression Language (EL)
Simple Tag Extensions and Handlers
Tag Files
DD and TLD using XML Schema
JSP Fragments and JSP Configuration
� JSTLTM 1.0
Supports Expression Language
![Page 40: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/40.jpg)
J2EE Ease-of-Development (2)
� Simple Expression Language (EL)
Scripting Programming Model
Recognized by Container in Template Text and Attributes
EL Functions, extensible through TaglibsEL Example:
Before (in JSP 1.2):
<% Map m = ( Map) pageCont ext . get ( “ myMap” ) ;
FooBean f = ( ( FooBean) m. get ( " key" ) ) ;
i f ( f ! = nul l ) { %><%= f . get Bar ( ) %><%} %>
After (in JSP 2.0):
${ myMap[ " key" ] . bar }
![Page 41: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/41.jpg)
J2EE Web Services
� JAX-RPC 1.1
Implements WS- I Basic Profile 1.0
SOAP and WSDL based interoperability
Implements WSDL to Java mapping
Servlet based endpoint
Stateless session bean endpoint
� JAXR 1.0
Implements UDDI Registry protocol
� JSR 109 (Web Services for J2EE)
![Page 42: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/42.jpg)
JAX-RPC Architecture
WSDL Java
WSDL Document
HTTP
Client-side JAX-RPC
Runtime System
SOAP
Container
Java WSDL
Generated Code
JAX-RPC
Client
HTTP
Server-side JAX-RPC
Runtime System
SOAP
Container
JAX-RPC
Service
Endpoint
![Page 43: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/43.jpg)
Web Standards Drive
Service Oriented Architectures
� SOA for People
Browser - Web Server Model
HTML for Content and Presentation
HTTP for Access
� SOA for Applications
XML for Content
WSDL-Soap-HTTP for Access
![Page 44: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/44.jpg)
J2EE Web Application
HTML
&
HTTP
Servlet/JSP
EJB
JDBC JMS
Connectors
JTA
Web Interoperability
Contract
J2EE Portability
Contract
![Page 45: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/45.jpg)
J2EE 1.4 Web Service
XML
&
WSDL
Servlet/EJB
Endpoints
EJB
JDBC JMS
Connectors
JTA
Web Interoperability
Contract
J2EE Portability
Contract
![Page 46: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/46.jpg)
XML Message Exchange Patterns
� Evolution
XML over HTTP
XML Protocol for Carrying XML Content (SOAP)
XML SOA Description (WSDL)
� Interoperability
Early Adhoc Efforts
WS- I Basic Profile 1.0
![Page 47: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/47.jpg)
JAX-RPC - JAXB - JAXPCore Web Service APIs
JAX-RPC - The JavaTM WSDL MEP API
JAXB - The JavaTM XML Binding API
JAXP - The JavaTM XML Parsing API
![Page 48: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/48.jpg)
Basic But Powerful
� No message level security
� Only as reliable as HTTP
� No formal conversations
� But ...
� MEPs for XML exchange
Powerful model
Universal connectivity
Don�t under estimate the network effect
![Page 49: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/49.jpg)
J2EE Integration
� Connectors 1.5
Synchronous & asynchronous integration with EIS
Bi-directional resource adapter
JMS pluggability
MDB invocation
� JMS 1.1
� Web Services vs. Connectors & JMS
Loosely-coupled systems (Web Services)
Tightly-coupled systems (Connectors and JMS)
![Page 50: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/50.jpg)
J2EE Management, Deployment and Authorization
� J2EE Management 1.0
Defines information model, attributes, events, statistics, and state management
Defines a management EJB - MEJB
Supports standard management protocols (SNMP, WBEM, CIM, etc.)
Uses JMX
� J2EE Deployment 1.1
Standard Tools interface; simplifies deployment
� JavaTM Authorization Contract for Containers (JACC)
![Page 51: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/51.jpg)
J2EE Scalable Business Logic
� EJB 2.1
Web Service Endpoints
Message Driven Bean generalization
Corresponding support in Connectors 1.5
EJB QL Enhancements
Timer Service
� EJB 2.x has fixed EJB 1.0 problems
Give it a try
![Page 52: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/52.jpg)
Ease-of-Development in J2EE
� Main thrust for J2EE Platform going forward: Ease-of-Development
� J2EE Platform is designed to serve the needs of every developer:
Enterprise Developer
Corporate (Workgroup) Developer
Content (Web) Developer� J2EE is becoming a ubiquitous platform for
every type of applicationNot just the Enterprise
![Page 53: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/53.jpg)
Example: EJB Creation
Currently, to create an EJB:
Cont ext i ni t i al = new I ni t i al Cont ext ( ) ;
Obj ect obj r ef = i ni t i al . l ookup( j ava: comp/ env/ ej b/ Si mpl eFoo” ) ;
FooHome home = ( FooHome)
Por t abl eRemot eObj ect . nar r ow( obj r ef , FooHome. cl ass) ;
Foo myFoo = home. cr eat e( ) ;
Wouldn't I t be Nice, instead:
pr i vat e @cr eat e Foo myFoo;
![Page 54: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/54.jpg)
What is the Ease-of-Development?
Ease-of-Development
Content Developer Corporate Developer Enterpr ise Developer
Tools: RAVE, othersWeb Dev Tools: Macromedia, etc...
Tools: IDEs, emacs
J2EE Metadata JSTL-JSP
“ Easy-to-Develop-On” J2EE Platform
� Tools are important, but...� Code should be easy to write, understand and maintain as well
![Page 55: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/55.jpg)
Metadata in JavaTM Language
� Metadata facility for the JavaTM programming language (JSR 175)
� Allows to define custom attributes � Allows to annotate fields, methods and classes
with attribute-value pairs� Do not affect the semantics of a program
Stored by the compiler
Development and deployment tools can read and process the annotated program elements
![Page 56: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/56.jpg)
JAX-RPC 2.0
� Proposed extension to JAX-RPC (JSR 224)� Major focus on Ease-of-Development
To simplify the most common development scenarios for Web Services clients and servers.
Build on J2SE Metadata facility (JSR 175)
Align with JSR 181 (Metadata in WS)� WSDL to JavaTM binding migrates to JAXB 2.0� Improvements in handler processing framework
Choice of handler models
Improve the declarative model for handlers
![Page 57: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/57.jpg)
EJB 3.0
� Proposed extension to EJB (JSR 224)� Focus on Ease-of-Development
Define metadata attributes to annotate EJBs
Target to simplify/eliminate EJB deployment descriptors for developers
Automatic generation of component and home interfaces
Programmatic defaults for the common, expected behaviors of EJB container
Introduce simplified EJB component that more closely resembles a plain Java class.
Other improvements
![Page 58: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/58.jpg)
JAXB 2.0
� Proposed extension to JAXB (JSR 222)� Full W3C XML Schema support� Will implement WSDL to JavaTM databinding for
JAX-RPC 2.0� Bi-directional XML Schema to JavaTM mapping
JavaTM to XML Schema mapping will be added � Ease-of-Development feature
Use of annotations and metadata in bindings
![Page 59: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/59.jpg)
JDBC 4.0
� Proposed extension to JDBC (JSR 221)� Focus on Ease-of-Development
Management of JDBC Drivers• provide utility classes to improve the JDBC driver
registration and unload mechanisms
Standard set of tags to manipulate and manage active connections
• Using metadata and annotations
Align various persistence and update mechanisms
Support of JDBC RowSet data model
![Page 60: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/60.jpg)
PHP Scripting and J2EE
� Will enable the development of portable Java classes that can be invoked from a page written in an scripting language (JSR 223)
including details on security, resources and class loader contexts
� Will work with PHP, ECMAScript, others...� Ease-of-Development features in a Servlet
containerPackaging scripting pages and JavaTM classes, into a single WAR file
![Page 61: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/61.jpg)
Summary
� J2EE 1.4 fully implements Web Services protocols
� J2EE 1.4 fully supports WS-I� J2EE introduces more Ease-of-Development and
Web Services Features
![Page 62: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/62.jpg)
If You Only Remember One Thing�
J2EE Compatibility is the Key!
![Page 63: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/63.jpg)
Summary
� J2EE is a proven platform for building flexible, scalable, reliable, maintainable enterprise applications
� Java Studio is a great tool for developing J2EE Solutions
� Sun's Applications Server is a 1st-class platform for developing and deploying scalable, robust and secure Enterprise Services
![Page 64: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/64.jpg)
� Java� 2 Platform, Enterprise Edition Developer Portal: java.sun.com/j2ee
� Download the Java Studio and Sun Application Server: http://www.sun.com/edu/edusoft/
Development Resources
![Page 65: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/65.jpg)
References
� Enterprise JavaBeans specification JSR-153 http:/ / jcp.org/ jsr/ detail/ 153.jsp
� Java 2 Platform, Standard Edition Specification http:/ / java.sun.com/ j2se/ 1.4/ docs/ api/ index.html
� Implementing Enterprise Web Services JSR-109 http:/ / jcp.org/ jsr/ detail/ 109.jsp
� Java APIs for XML based RPC JSR-101 http:/ / jcp.org/ jsr/ detail/ 101.jsp
![Page 66: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/66.jpg)
� Web services support for J2EEJSR-109 (Web Services)
JSR-101 (JAX-RPC)
JSR-93 (JAXR) � The following provide new capabilities to 1.4:
JSR-77 (Management)
JSR-88 (Deployment API)
JSR-115 (J2EE Authorization SPI)
JSR-56 (JNLP)
J2EE-Related JSRs
![Page 67: University of Tokyo Java Class September 22-26, 2003 J2EE ... · Build on J2SE Metadata facility (JSR 175) Align with JSR 181 (Metadata in WS) WSDL to JavaTM binding migrates to JAXB](https://reader030.vdocuments.us/reader030/viewer/2022040809/5e4def3d0d296f2205373c77/html5/thumbnails/67.jpg)
� The following JSRs enhance APIs: JSR-112 (J2EE Connector Architecture 2.0)
JSR-152 (JSP 1.3)
JSR-154 (Servlet 2.4)
JSR-153 (EJB 2.1)
JSR-9XX (JAXP 1.2�XML Schema support)
JSR-9XX (JMS 1.1�Queue/topic unification) � J2EE Client Provisioning (JSR 124)� The J2EE Connector Architecture (JSR 016)
J2EE-Related JSRs (Cont.)