JonasPackaging

Summary

To further meet enterprise users needs, Ubuntu server should provide a Java application server stack that could scale up to a full J2EE ("Java EE") stack. There are several solutions, but they all require lots of packaging work to be done before starting packaging the Java EE server itself.

Release Note

Ubuntu server now features a complete, high-performance and modular Java EE server stack that you can use to deploy all your Java applications and web services.

Rationale

Java development (web applications, beans, web services...) is very common in the enterprise world.

Ubuntu server currently doesn't provide an integrated Java EE server stack and it is up to the user to install manually a third-party application server, especially if they want to use more than just a servlet container.

To make it easier for those users and increase Ubuntu server adoption in the enterprise world, we could integrate and support a Java EE server stack in main.

However, through tool-sets such as Spring, deployment of complex enterprise applications on lightweight containers such as Tomcat has gained a-lot of momentum so discussion needs to take place as to whether supporting a full JEE stack adds sufficient value to Ubuntu given the packaging complexity.

Use Cases

Josh is a Java developer and wants to deploy his latest web applications on a test server to show his boss how well he did. He quickly sets up an Ubuntu machine and installs the web application server, without needing the bloat of a full Java EE stack.

A few month later, Josh migrated his web applications as web services. He can upgrade his test installation so that it now supports the required Java EE features.

Martin works at Made-up Co., a company developing Java components that are used as middleware in Java application servers. He wants to provide an easy way for customers to demonstrate and evaluate Made-up software. He decides to ship ready-to-run Ubuntu JEOS VMs including the Ubuntu Java EE server stack, integrated with their middleware software and demos.

Julia looks for the ideal deployment environment for her company web applications in production. She needs a scalable, high-performance, supported and Java-EE-certified stack. After careful testing, she picks up Ubuntu Server as the best tool for the job.

Design

Requirements

  • Java EE 5 compatibility
  • Modular system (scale from web container to full J2EE stack)
  • Must build from source with reasonable additional dependencies to package ("main" target)

Potential choices

JOnAS was selected at UDS-N as the preferred JEE stack; upstream have worked with Ubuntu to produce binary distribution packaging for Natty so it makes sense to continue with this choice.

Proposed implementation

Go, no-go

Platform needs

Outstanding Issues

BoF agenda and discussion

JOnAS 5

Type :

J2EE application server

License :

LGPL 2.1

Builds from source :

yes (Maven2 used to generate the bundles and the distribution)

Packaged :

No

Maintainability :

Supported by OW2 (consortium including FT & Bull)

Compatibility :

JavaEE 5

Current version :

5.2.0

Link :

http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/

Unique Dependency XREF

JONAS_5_2_0-dependencies-xref.txt

  • OSGi based (like Glassfish v3)
  • The version 5.1 introduces some new innovative features:
    • Deployment Plans: XML files that describe a succession of resources (local or remote) that must be deployed in the given order. Support of three repository types: URL, Maven2 and OBR (OSGi Bundle Repository). Resources will downloaded if needed.
    • Services on demand: New mechanism allowing applications (aka Java EE archives) to describe which plan they need in order to run.
    • Versioning: Permits to deploy several versions of one application (V1,V2) in the same JOnAS node. Application upgrade is performed without interruption of service and without user session loss.
  • Interesting sub-projects include:

ServerTeam/Specs/JonasPackaging (last edited 2011-10-18 14:54:40 by 99-156-84-159)