www.objectweb.org
Java Open Application Server
The Objectweb J2EE Platform
JOnAS 4 Preview
Third ObjectWeb Consortium Conference, 20-21 November 2003
François [email protected]
www.objectweb.org (JOnAS) - D2 - 20/11/2003
J2EE Architecture
ServletsJSPs
EJBs
WEB Container
EJB Container
J2EE Application Server
JDBC
JMS
JTA
JCA
JAAS
JavaMail
JNDI
…
rmiApplets
html
Browser
http
DBrmi
EISpublic static void main(…) {
Client Container
rmi
Java Application
www.objectweb.org
JOnAS Introduction&
Current Status
www.objectweb.org (JOnAS) - D4 - 20/11/2003
JOnAS: Availability and Requirements
!Available at:–jonas.objectweb.org
" tgz or exe (windows installer) packages:#JOnAS binary or source#JOnAS-Tomcat-Axis#JOnAS-Jetty-Axis
!Requirements# jdk1.3, jdk 1.4 (Sun, IBM, BEA JVMs)
!Supported Environments# Operating Systems :
– Solaris, AIX, Windows, Linux, HP-UX, etc.# Databases :
– PostgreSQL, MySQL, Oracle, SQL Server, DB2, Access, Objectstore, Interbase, InstantDB, Sybase, Informix, Versant, etc.
www.objectweb.org (JOnAS) - D5 - 20/11/2003
JOnAS as an ObjectWeb Integration Platform
CMP 2.0 impl.2.1JORM
Communication protocol "switcher" and clustering EJB
1.5.5CAROL
JDO impl. (+ connector)0.9.7.5SPEEDODatabase ClusteringC-JDBCLogging Wrapper1.6.3MonologTransaction ManagersoonJOTMCMP 2.0 impl. (EJB-QL)1.2.6MEDOR
JMS Implementation3.6.2JORAMJeremie as optimized RMI3.0JONATHAN
Used forVersion in JOnAS 3.3
ObjectWeb Project
www.objectweb.org (JOnAS) - D6 - 20/11/2003
JOnAS also uses Apache Components
HTML formatting of On-line doc and tests results
2.5.1Xalan
XML parsing1.5Digester (*)
HTTP server/clustering2APACHE
XML parsing2.5.0Xerces
Template based code generation (GenIC, Newbean)
1.2VelocityWeb container4.1.27TomcatJonasAdmin console1.0.2STRUTSHTTP Clusteringmod_jkLogging1.2.8Log4j
Web Services engine1.1AXISBuild tool1.5.4ANT
Used forVersion in JOnAS 3.3
Apache Project
(*) and related commons packages: beanutils, collections, logging, modeler
www.objectweb.org (JOnAS) - D7 - 20/11/2003
JOnAS Features [1/3]
!J2EE"Web and EJB containers
# EJB 2.0 support– entity beans (BMP, CMP), session beans, with local/remote interfaces, message-driven beans– security (EJB permissions)– Transactions (JTA 1.0, 2-phase commit)
# Servlet/JSP support through Tomcat or Jetty"All J2EE services available: JDBC, JMS (JORAM, SwiftMQ, MQSeries),
JavaMail, Transaction, Security, …"EAR files deployment: using the JOnAS Ear service, at
configuration time or at runtime (admin tools)"J2EE environment: “java:comp/env” for both Web and EJB
components, and for Java Clients"J2EE Connector architecture support
#possibility to deploy J2EE CA compliant Resource Adapters
www.objectweb.org (JOnAS) - D8 - 20/11/2003
JOnAS Features [2/3]
!JMX based management" + Web GUI (Struts)
!Web services"AXIS integration"Web Services Endpoints and Clients deployment
!Clustering"At HTTP (Web) and RMI (EJB) levels
!JOnAS Services"possibility to launch services required by a J2EE application"Most of the components of the JOnAS server are pre-defined JOnAS services (TM,
JMS, JMX, ...)"User defined services
!Scalability/Optimizations"Pooling: connections (JDBC, JMS, J2EE CA, …), instances (any kind of EJBs),
threads, JDBC PreparedStatements …"Activation/Passivation"Data access optimizations (cache, shared, isModified, prefetching)"Communication optimization (Jeremie, …)
www.objectweb.org (JOnAS) - D9 - 20/11/2003
JOnAS Features [3/3]
!Interoperability"Through Web Services"Between Application servers (RMI/IIOP)"With CORBA
!Multi-protocol support"Through CAROL ObjectWeb project: RMI/JRMP, RMI/IIOP, JEREMIE, CMI
!Enhanced configuration and deployment facilities"ejb-jars, wars, ears directories (autoload directories)"Deployment from the admin console or automatic"JONAS_BASE: possibility to define several application environments (for
configuration and deployment)!Security
"EJB permissions management"JAAS LoginModules support"Certificate based authentification"Users/Roles repository: file, Db, LDAP
!JDO
www.objectweb.org (JOnAS) - D10 - 20/11/2003
JOnAS Architecture
HT
TP
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
JDBC Calls
Dat
abas
e
EJB
Web
Con
tain
er
Mes
sagi
ng
Com
mun
icat
ion
EA
R
Appli.ear
EJB Container
JSPsServlets
WEB Container
EJBs
RMI Clients
Java
Mai
l
Man
agem
ent
GCOS
Hoo
XJC
A
Web
Ser
vice
sCAROL/Jonathan
JORAM JOTM JORM/ MEDOR
Tomcat /Jetty
Apache
AXIS
HTML Clients
DB
www.objectweb.org
JOnAS 4J2EE 1.4
www.objectweb.org (JOnAS) - D12 - 20/11/2003
JOnAS 4: Web Services
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Web
Con
tain
er
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
E C
A
Web
Ser
vice
s
J2EE 1.4/JSR 109 compliance:Web Services Endpoints andWeb Services Clients Deployement
www.objectweb.org (JOnAS) - D13 - 20/11/2003
Web Services Support [1/2]
! J2EE 1.4 Requirements: Web Services deployment integrated in theJOnAS deployment tools
"Web Services Endpoints# « EJB session stateless » or « JAX-RPC class in the Web container » may be exposed as a Web Service
"Web Services clients#Any J2EE component (Servlet/JSP/EJB) may access external Web Services
! AXIS based implementation"AxisServlet in JOnAS Web Container for providing Web Services
Endpoints"Axis deployment/generation tools used by JOnAS
#Use of WSDL2Java for generating Client stubs#Use of Axis configuration files (server-config.wsdd, client-config.wsdd), will be generated in JOnAS 4
"A JOnAS service (« Web Services ») for running AXIS webapp and necessary tools
!Next: Integration of a WS registry (UDDI)
www.objectweb.org (JOnAS) - D14 - 20/11/2003
AxisServlet(AxisEngine)
WEB Container EJB Container
EJBStatelessSession
JOnAS J2EE Server
SOAP/HTTP SOAP/HTTP
JAX-RPCclass
EJB
Stubs(AxisEngine) EJB as
a WS client
Generated byAxis WSDL2Java
Web Services Support [2/2]
Web ServiceProvider
Web ServiceClient
www.objectweb.org (JOnAS) - D15 - 20/11/2003
JOnAS 4: EJB 2.1
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Web
Con
tain
er
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
E C
A
Web
Ser
vice
s
J2EE 1.4/EJB 2.1 Support:MDB Enhancements, Timer, …
www.objectweb.org (JOnAS) - D16 - 20/11/2003
EJB 2.1
!Timer Service: A scheduler for EJB components
!MDB support for any Messaging System (JMS, SMTP, JAXM, …), may use the EJB Timer Service
!EJB-QL enhancements (ORDER BY, aggregate functions, …)
www.objectweb.org (JOnAS) - D17 - 20/11/2003
JOnAS 4: Servlet 2.4 / JSP 2.0
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
EC
A
Web
Ser
vice
s
J2EE 1.4 -> Servlet2.4 / JSP 2.0:Tomcat 5
Web
Con
tain
er
www.objectweb.org (JOnAS) - D18 - 20/11/2003
JOnAS 4: Connector 1.5
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Web
Con
tain
er
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
E C
A
Web
Ser
vice
s
J2EE 1.4/ Connector 1.5 Support:Asynchronous Resource Adapters
www.objectweb.org (JOnAS) - D19 - 20/11/2003
J2EE CA 1.5
!Asynchronous communication"Messages can be delivered to MDBs through the Resource
Adapter (RA),"The RA is the new and standard way to plug a messaging provider
implementation (JMS, SMTP or JAXM)"A RA for JORAM will be provided
!Imported transactions from the EIS may be propagated into the application server
!Resource Adapters may do « works » by submitting « work instances » to the application server (the application server allocates threads for doing the work, since it is its job to perform threads pooling)
www.objectweb.org (JOnAS) - D20 - 20/11/2003
JOnAS 4: Management
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Web
Con
tain
er
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
E C
A
Web
Ser
vice
s
J2EE 1.4/JSR 77 Compliance:Management Model, MEJB
www.objectweb.org (JOnAS) - D21 - 20/11/2003
J2EE 1.4 Mgt ModelSessionBeanSessionBean
EntityBeanEntityBean
MessageDrivenBeanMessageDrivenBean
J2EEModuleJ2EEModule
J2EEApplicationJ2EEApplication
JCAResourceJCAResource
JTAResourceJTAResource
JDBCResourceJDBCResource
JMSResourceJMSResource
JNDIResourceJNDIResource
RMIIIOPResourceRMIIIOPResource
JavaMailResourceJavaMailResource
URLResourceURLResource
EJBEJB
ResourceAdapterResourceAdapter
ServletServlet
JDBCDatasourceJDBCDatasource
JDBCDriverJDBCDriver
J2EEDeployedObjectJ2EEDeployedObject
J2EEServerJ2EEServer
J2EEResourceJ2EEResource
J2EEDomainJ2EEDomain
JCAManagedConnectionFactoryJCAManagedConnectionFactory
JCAConnectionFactoryJCAConnectionFactory
JVMJVM
J2EEManagedObjectJ2EEManagedObject
StatelessSessionBeanStatelessSessionBean
EJBModuleEJBModule
AppClientModuleAppClientModule
StatefulSessionBeanStatefulSessionBean
WebModuleWebModule
ResourceAdapterModuleResourceAdapterModuleObjectName: OBJECT_NAMEstateManageable: booleanstatisticsProvider: booleaneventProvider: boolean
www.objectweb.org (JOnAS) - D22 - 20/11/2003
JOnAS 4: Security
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Web
Con
tain
er
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
E C
A
Web
Ser
vice
s
J2EE 1.4/JACC 1.0 Support
www.objectweb.org (JOnAS) - D23 - 20/11/2003
Java Authorization Contract for Containers
J2EE ContainerJ2EE Depl Tool(GenIC)
Auth.query
ProviderConfigurationSubcontract(javax.security.jacc)
Auth.result Policy Decision
and EnforcementSubcontract
Policy Provider
PolicyConfigurationSubcontractDeclarative
J2EEAuthorization
Policy
PolicyStatements
JRE Policy impl. or any other …{java.security.Permission}
DD.xml
www.objectweb.org (JOnAS) - D24 - 20/11/2003
JOnAS 4: Deployment
JOnAS J2EE Server
Services
Tra
nsac
tion
Secu
rity
Dat
abas
e
EJB
Mes
sagi
ng
Com
mun
icat
ion
EA
R
EJB Container
JSPsServlets
WEB Container
EJBs
Java
Mai
l
Man
agem
ent
J2E
E C
A
Web
Ser
vice
s
J2EE 1.4/JSR88 Support:Deployment API
Web
Con
tain
er
GenIC
JSR88«Driver» (APIs)
JSR88«Driver» (APIs)
Any JSR88CompliantDepl. Tool
EAR
Ishmael
www.objectweb.org (JOnAS) - D25 - 20/11/2003
JSR88 Driver
DeploymentFactory
ProgressObject
DeploymentManager
getTargetsgetAvailableModulesgetRunningModulesgetNonRunningModulescreateConfigurationdistributestartstopundeployisRedeploySupportedredeployreleasegetDConfigBeanVersion…
Target T1
Target T2
DeploymentConfiguration
DConfigBean
Deployment Tool
DDBean
J2EEApplicationObject
DDBean
J2EEDeployableObject
Deployer(configure,distribute,start executionof J2EE applis)
www.objectweb.org (JOnAS) - D26 - 20/11/2003
RoadmapJan.2005
Oct.2004
July2004
May2004
Jan. 2004
Sep.2003
Certified versionFull clusteringDomain MgtDeployment tool
JOnAS 4.2JOnAS 4.0 JOnAS 4.1
Full J2EE 1.4Tomcat 5J2EE depl APIC-JDBC
JOnAS 3.3.1
Improved performancesDevelopment tools
JOnAS 3.3JOnAS 3.3
J2EE 1.4 Web ServicesEJB 2.1 Timer ServiceCertificate authJDBC RANew mgt console completeJDO support
JOnAS 3.3.2
www.objectweb.org (JOnAS) - D27 - 20/11/2003
JOnAS - Workplan [1/2]
!End January 2004, JOnAS 4.0" J2EE 1.4 standard
# EJB 2.1 (MDB enhancements, …)# Management (JSR77)# J2EE CA 1.5 support# Security: JACC 1.0 support# Deployment API (JSR88)# Web Container service (Tomcat 5.x support)# Web Services: UDDI registry integration
" JOTM integration" Clustering
# C-JDBC support (doc)" J2EE CA 1.5 connectors
# JDBC RA (JDBC 3.0)# JORAM Connector
www.objectweb.org (JOnAS) - D28 - 20/11/2003
JOnAS - Workplan [2/2]
!May 2004, JOnAS 4.1"Certification
# Integration of all corrections"Deployment Tool (JSR88)"Web Services
# dev tools step 1"Performance: JOnAS tuning"Clustering
# JMS clustering support# EJB level failover (clustering step 4)
"Advanced Management Features# Cluster, domain management# JMX/SNMP gateway ?
www.objectweb.org (JOnAS) - D29 - 20/11/2003
EJB Container
WEB Container
JCA 1.5
JDBC 3.0
JTA 1.0.1
JMS 1.1
JMX 1.2
JNDI 1.2.1
JavaMail 1.3
EJB 2.1
Servlet 2.3JSP 1.2 Tomcat 4
Joram 3.4
MX4J or Sun RI
J2EE 1.4
Servlet 2.4JSP 2.0 Tomcat 5
JACC 1.0
Web Services 1.1JAX-RPC 1.0, SAAJ 1.1, JAXR 1.0, JAXP 1.2
J2EE Deployment 1.0
JAAS 1.0
JOnAS 4: Java Compliance