Web Profile and OSGi Updates for AS7

JBoss AS7 Gets Java EE 6 Web Profile Support

Jessica Thornsby
JBoss-AS7-Gets-Java-EE-6-Web-Profile-Support

“Existing JBoss AS users can benefit from OSGi support in AS7 in that they can integrate OSGi into their Java EE systems.”

JBoss AS 7
was released earlier this month, with support for both the Java EE
Web Profile and OSGi 4.2. In addition, this release introduced new
micro container architecture, support for Java Context and
Dependency Injection, and a list of other updates. In this
interview, we speak to the lead of Red Hat’s Enterprise Application
Platforms Engineering group, Bruno Georges, on some of the major
updates in JBoss AS 7.

JAXenter: JBoss AS7 has just been released. How
does AS7 differ from the other application servers currently
available, for example WebLogic, GlassFish, WebSphere?

Bruno Georges: There are a number of
differences between AS7 and its competitors, the most notable ones
revolve around performance, modularity and flexibility.

AS7 introduces a new modular architecture which promotes
extremely fast startup times. It also supports many of our
innovative and 1st class APIs, this includes CDI’s Weld, HornetQ
and Infinispan.

Not only does JBoss have a strong advantage from those
technologies, but more importantly all of these are made available
to address a wider range of deployments, ranging from traditional
h/w Servers to Mobile and PaaS environments.

We developed those with high-availability, high embed-ability
and being lightweight, in mind. Basically we have designed those
technologies for tomorrow, not just for today.

Flexibility: competitors come with large stacks, our customers
are looking not only for enterprise capabilities, but more
importantly for a lightweight approach to Enterprise Java
development, while preserving Enterprise requirements and
operational capabilities. With JBoss’ “Open Choice” we offer
developers and administrators the choice of selecting what they
need without the fear of vendor lock-in.

For the developers, we support a variety of languages within the
same runtime environment. We are the best place to run your Spring,
Struts, Ruby on Rails based applications.

Open source and JBoss are not only the right solutions for this,
but are critical to preserving these key principles.

JAXenter: What challenges did the team face, in
making AS Java EE6 Web Profile compliant?

Bruno: Java EE6 introduced the notion of
profiles, with the Web Profile being the first to be
standardized.

Since the rules for certifying the additional technologies can
lead to different interpretations, we had to go through a few
iterations before certifying a strict Web Profile implementation
when enhanced with additional components such as JCA.

On the positive side, the Modularity of our new Kernel shielded
us from compliance issues not covered explicitly by the TCK.

JAXenter: JBoss AS7 adds in-built OSGi support.
How will existing JBoss AS users benefit, from this in-built
support?

Bruno: Existing JBoss AS users can benefit from
OSGi support in AS7 in that they can integrate OSGi into their Java
EE systems. This will allow them to take advantage of the dynamic
capabilities from OSGi in their Java EE components, through the use
of OSGi Services. OSGi Services are provided by OSGi Bundles and
both of these have a dynamic lifecycle. They can be added and
removed at runtime. This gives OSGi Services-based applications the
capability to be patched or updated without taking the actual
application itself down.

Another possibility that existing JBoss AS users get with the
OSGi support, is that they can utilize functionality that may be
available as existing OSGi bundles in their Java EE deployments.
Organizations may have infrastructure available in OSGi that they
wish to use in a Java EE context. JBoss AS7 allows them to do
this.

We have an advantage in that the native modules and services
layers give us more opportunity to do performance tuning. The other
app servers are built on top of either Eclipse Equinox or Apache
Felix, which means that they are subject to those projects for
their performance.

The JBoss community is an enthusiastic and highly vibrant
community and people may very well choose OSGi in AS7 because of
it.

JAXenter: You changed the existing micro
container architecture while developing AS7. What influenced your
decision to make this change? And how has the micro container been
updated, in this release?

Bruno: We have a completely new core
architecture in AS 7, based on the new JBoss Modular Service
Container (MSC for short) that replaces the previous Micro
Container. The big reason for such a major change, is that we
observed a paradigm shift in hardware. Almost all modern CPUs,
including those on desktop, laptop, and even mobile systems, now
have multiple instruction cores and this trend is rapidly
expanding. We really wanted to tap into that power, and so we
designed a fully concurrent container architecture. In addition, we
wanted to deliver true modularity, user-centric configuration, a
rich management model, and lower memory usage. In a nutshell, we
believe we made an equivalent paradigm shift in middleware.

JAXenter: How has the JBoss AS team targeted
faster start-up times, for this release?

Bruno: JBoss AS7 has been re-architected from
the ground up. Jason Greene, JBoss AS lead and his team designed
AS7 keeping to the vision of “JBoss Everywhere”. The team designed
a light weight, elastic, highly scalable, modular server.

The new kernel is designed around a lightweight service concept
and uses a highly-concurrent dependency resolution algorithm which
allows Services to be started concurrently to eliminate unnecessary
waits and leverage multi-core processors, while non-critical
services have the option to be started on-demand, or lazily on
first use. All common core services like web, ejb, transactions,
jca datasources, management services and console are started
eagerly, but in parallel.

JBoss AS 7 offers a 10-fold reduction in startup time over
previous versions. In JBoss AS7, every library, framework, and API
is represented by a separate module. Some of the benefits of this
innovative approach include:

Modular classloaders which provide superior isolation,
protecting both AS internal libraries and user deployments from
unintended interactions between the different libraries as well as
different versions of the same library.

Memory management. Only the modules actually used are loaded
from disk and into memory, which means not only will it take less
time to start up, but it leaves more room for your
applications.

From the end user perspective, they will see faster load times
and more obvious, intuitive behavior. I.e. when they add a module
in their class-path or when their application requires some other
EE capabilities/dependencies, it just works.

Jandex. A mechanism to optimize annotation scanning, and
efficient use of indexes to lookup classes and annotations
optimally.

JAXenter: What are the next steps, to make AS
compliant with the EE6 full profile?

Bruno: On July 12th , we shipped JBoss AS
7.0.0.Final which is a certified Java EE6 Web Profile
implementation.

We shipped two releases, each with additional components. First,
the Web Profile certified release came with Iron Jacamar (JCA1.6)
and RESTEasy (JAX-RS), and the Full EE6 preview that came with the
former stack, plus HornetQ (JMS) and JBoss WS-CXF/Apache CXF’s
JAX-WS.

Later this year we will be shipping JBoss AS7.1 which targets
the full Java EE6 profile. The additional technologies that will be
implemented in AS7.1 include:

Enterprise Application Technologies

JSR 318 : Enterprise JavaBeans 3.1 (Note: AS7.0 supports EJB3.1
Lite as defined in the Web Profile)

Web Services Technologies

JSR 109: Implementing Enterprise Web Services 1.3

JSR 181: Web Services Metadata for the Java Platform

JSR 101: Java APIs for XML based RPC 1.1

JSR 93: Java API for XML Registries 1.0 (JAXR)

 

JSR 196: Java Authentication Service Provider Interface for
Containers 1.0

JSR 115: Java Authorisation Contract for Containers 1.4

JSR 77: J2EE Management 1.1

JSR 88: Java EE Application Deployment 1.2

Author
Comments
comments powered by Disqus