university of tokyo java class september 22-26, 2003 j2ee ... · build on j2se metadata facility...

68
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

Upload: others

Post on 09-Feb-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

� 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

� 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

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

� 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

� 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.)

Page 68: 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

Marc Hamilton

[email protected]

Sun Microsystems, Inc.