Java Open

The Objectweb J2EE Platform

JOnAS 4 Preview

Third ObjectWeb Consortium Conference, 20-21 November 2003

François Exertier [email protected]

www.objectweb.org J2EE Architecture

Browser http Servlets html JSPs JDBC JMS

JTA Applets rmi JCA DB rmi JAAS

EJBs JavaMail

rmi JNDI public static void EIS main(…) { … EJB Container

Client Container Java Application J2EE Application Server www.objectweb.org (JOnAS) - D2 - 20/11/2003 JOnAS Introduction & Current Status

www.objectweb.org JOnAS: Availability and Requirements !Available at: –.objectweb.org " tgz or exe (windows installer) packages: #JOnAS binary or source #JOnAS-Tomcat-Axis #JOnAS--Axis !Requirements # jdk1.3, jdk 1.4 (Sun, IBM, BEA JVMs) !Supported Environments # Operating Systems : – Solaris, AIX, Windows, , HP-UX, etc. # Databases : – PostgreSQL, MySQL, Oracle, SQL Server, DB2, Access, Objectstore, Interbase, InstantDB, Sybase, Informix, Versant, etc.

www.objectweb.org (JOnAS) - D4 - 20/11/2003 JOnAS as an ObjectWeb Integration Platform

ObjectWeb Project Version in Used for JOnAS 3.3 CAROL 1.5.5 Communication protocol "switcher" and clustering EJB JONATHAN 3.0 Jeremie as optimized RMI JORAM 3.6.2 JMS Implementation JORM 2.1 CMP 2.0 impl. MEDOR 1.2.6 CMP 2.0 impl. (EJB-QL) JOTM soon Transaction Manager Monolog 1.6.3 Logging Wrapper C-JDBC Database Clustering SPEEDO 0.9.7.5 JDO impl. (+ connector)

www.objectweb.org (JOnAS) - D5 - 20/11/2003 JOnAS also uses Apache Components Apache Project Version in Used for JOnAS 3.3 APACHE 2 HTTP server/clustering ANT 1.5.4 Build tool AXIS 1.1 Web Services engine Digester (*) 1.5 XML parsing Log4j 1.2.8 Logging mod_jk HTTP Clustering STRUTS 1.0.2 JonasAdmin console Tomcat 4.1.27 Web container Velocity 1.2 Template based code generation (GenIC, Newbean) Xalan 2.5.1 HTML formatting of On-line doc and tests results Xerces 2.5.0 XML parsing

(*) and related commons packages: beanutils, collections, logging, modeler www.objectweb.org (JOnAS) - D6 - 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) - D7 - 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) - D8 - 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) - D9 - 20/11/2003 JOnAS Architecture HTML Clients Appli.ear RMI Clients Apache

P

T

T

H

EJB Container WEB Container

EJBs JSPs Servlets on i ail JCA EAR EJB Database Messaging Security JavaM Transaction HooX Management Web Services Communicat Web Container DB JDBC Calls JORAM JOTM Tomcat / JORM AXIS CAROL/Jonathan Services Jetty / MEDOR

JOnAS J2EE Server GCOS

www.objectweb.org (JOnAS) - D10 - 20/11/2003 JOnAS 4 J2EE 1.4

www.objectweb.org JOnAS 4: Web Services J2EE 1.4/JSR 109 compliance: Web Services Endpoints and Web Services Clients Deployement

EJB Container WEB Container EJBs JSPs Servlets ail EAR EJB Database Messaging Security J2EE CA JavaM Transaction Management Web Services Communication Web Container

Services JOnAS J2EE Server www.objectweb.org (JOnAS) - D12 - 20/11/2003 Web Services Support [1/2]

! J2EE 1.4 Requirements: Web Services deployment integrated in the JOnAS deployment tools "Web Services Endpoints # « EJB session stateless » or « JAX-RPC class in the Web container » may be exposed as a "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) - D13 - 20/11/2003 Web Services Support [2/2]

Web Service Web Service Client Provider

SOAP/HTTP SOAP/HTTP Generated by Axis WSDL2Java

Stubs AxisServlet (AxisEngine) EJB as (AxisEngine) a WS client

EJB EJB JAX-RPC Stateless class Session

WEB Container EJB Container

JOnAS J2EE Server

www.objectweb.org (JOnAS) - D14 - 20/11/2003 JOnAS 4: EJB 2.1

J2EE 1.4/EJB 2.1 Support: MDB Enhancements, Timer, …

EJB Container WEB Container EJBs JSPs Servlets ail EAR EJB J2EE CA Database Messaging Security JavaM Transaction Management Web Services Communication Web Container

Services JOnAS J2EE Server www.objectweb.org (JOnAS) - D15 - 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) - D16 - 20/11/2003 JOnAS 4: Servlet 2.4 / JSP 2.0

J2EE 1.4 -> Servlet2.4 / JSP 2.0: Tomcat 5

EJB Container WEB Container EJBs JSPs Servlets ail EAR EJB Database J2EECA Messaging Security JavaM Transaction Management Web Services Communication Web Container

Services JOnAS J2EE Server www.objectweb.org (JOnAS) - D17 - 20/11/2003 JOnAS 4: Connector 1.5

J2EE 1.4/ Connector 1.5 Support: Asynchronous Resource Adapters

EJB Container WEB Container EJBs JSPs Servlets ail EAR EJB Database Messaging Security JavaM J2EE CA Transaction Management Web Services Communication Web Container

Services JOnAS J2EE Server www.objectweb.org (JOnAS) - D18 - 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) - D19 - 20/11/2003 JOnAS 4: Management

J2EE 1.4/JSR 77 Compliance: Management Model, MEJB

EJB Container WEB Container EJBs JSPs Servlets ail EAR EJB Database Messaging Security J2EE CA JavaM Transaction Management Web Services Communication Web Container

Services JOnAS J2EE Server www.objectweb.org (JOnAS) - D20 - 20/11/2003 J2EE 1.4 Mgt Model

SessionBean EJEJBB SessionBean StatelessSessionBeanStatelessSessionBean EntityBean ResourceAdapterResourceAdapter EntityBean StatefulSessionBeanStatefulSessionBean MessageDrivenBean ServletServlet MessageDrivenBean

JDBCDatasourceJDBCDatasource J2EJ2EEEMMooduledule EJEJBMoBModduleule

JDBCDriverJDBCDriver J2EJ2EEEAApppplicationlication WebModuleWebModule

J2EJ2EEEDDeployedObjecteployedObject JCAResourceJCAResource AppClientModuleAppClientModule J2EEManagedObjectJ2EEManagedObject JTJTAResAResourceource ObjectName: OBJECT_NAME J2EEServerJ2EEServer ResourceAdapterModuleResourceAdapterModule stateManageable: boolean statisticsProvider: boolean J2EJ2EEERResourceesource JDBCResourceJDBCResource eventProvider: boolean J2EJ2EEEDDomainomain JMSJMSRResesourceource

JCAManagedConnectionFactoryJCAManagedConnectionFactory JNDIResourceJNDIResource

JCAConnectionFactoryJCAConnectionFactory RMIIIOPResourceRMIIIOPResource

JVMJVM JavaMailResourceJavaMailResource

www.objectweb.org URLResourceURLResource (JOnAS) - D21 - 20/11/2003 JOnAS 4: Security

J2EE 1.4/JACC 1.0 Support

EJB Container WEB Container EJBs JSPs Servlets ail EAR EJB Database Messaging Security J2EE CA JavaM Transaction Management Web Services Communication Web Container

Services JOnAS J2EE Server www.objectweb.org (JOnAS) - D22 - 20/11/2003 Java Authorization Contract for Containers

J2EE Container J2EE Depl Tool (GenIC) Provider Auth. Auth. Configuration query result Policy Decision Subcontract and Enforcement (javax.security.jacc) Subcontract Policy Configuration Subcontract Declarative J2EE Policy Policy Provider Authorization Statements Policy JRE Policy impl. or any other … {java.security.Permission}

DD.xml

www.objectweb.org (JOnAS) - D23 - 20/11/2003 JOnAS 4: Deployment

Any JSR88 Compliant J2EE 1.4/JSR88 Support: Depl. Tool Deployment API EAR

EJB Container WEB Container EJBs JSPs Servlets JSR88JSR88 «Driver»«Driver» on (APIs)(APIs) i ail Ishmael EAR EJB Database Messaging Security JavaM J2EE CA Transaction Management Web Services Communicat Web Container GenIC

Services JOnAS J2EE Server

www.objectweb.org (JOnAS) - D24 - 20/11/2003 DeploymentFactory

DeploymentManager

getTargets getAvailableModules Deployment Tool getRunningModules getNonRunningModules createConfiguration distribute start J2EEApplicationObject stop undeploy isRedeploySupported J2EEDeployableObject redeploy release getDConfigBeanVersion … Deployer ProgressObject (configure, distribute, DeploymentConfiguration start execution of J2EE applis) DConfigBean

DDBean DDBean Target T1

Target T2 JSR88 Driver www.objectweb.org (JOnAS) - D25 - 20/11/2003 Roadmap

Sep.2 Jan. May July Oct. Jan. 003 2004 2004 2004 2004 2005

JOnAS 4.0 JOnAS 4.1 JOnAS 4.2

Full J2EE 1.4 Tomcat 5 Certified version Improved performances J2EE depl API Full clustering Development tools C-JDBC Domain Mgt Deployment tool

JOnAS 3.3.1

JOnAS 3.3 JOnAS 3.3.2

J2EE 1.4 Web Services EJB 2.1 Timer Service Certificate auth JDBC RA New mgt console complete JDO support www.objectweb.org (JOnAS) - D26 - 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) - D27 - 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) - D28 - 20/11/2003 JOnAS 4: Java Compliance

EJB Container JCA 1.5

JDBC 3.0

EJB 2.1 JTA 1.0.1

JMS 1.1 Joram 3.4

JMX 1.2 MX4J or Sun RI WEB Container JNDI 1.2.1 Servlet 2.3 JavaMail 1.3 JSP 1.2 Tomcat 4 JAAS 1.0 JACC 1.0

Servlet 2.4 Web Services 1.1 JSP 2.0 Tomcat 5 JAX-RPC 1.0, SAAJ 1.1, JAXR 1.0, JAXP 1.2 J2EE Deployment 1.0 J2EE 1.4

www.objectweb.org (JOnAS) - D29 - 20/11/2003