With the recent announcement
from Interface21 that the Spring Framework has been certified with IBM?
WebSphere? Application Server, developerWorks sat down with Rod
Johnson, CEO of Interface21, and Paul Buck, Director of WebSphere Open
Source at IBM, to find out what this announcement means to developers
and customers of Spring and the WebSphere product family.
developerWorks: First, we want to thank Rod Johnson (Interface21) and Paul Buck (IBM) for taking time to help us understand what today‘s announcement
from Interface21 is all about. We‘ll also hear about the Spring
Framework 2.1 and Spring Web Flow. But first, we‘ll ask Rod to tell us
more about the announcement from Interface21.
Rod: We
at Interface21, the company behind Spring, announced that we have
certified and will support IBM‘s WebSphere Application Server as a
premier deployment platform for the Spring application development
framework.
This announcement is the result of a
collaborative effort between Interface21 and IBM. A lot of effort went
into testing the Spring Framework on WebSphere Application Server in
scenarios that customers require. Interface21 and IBM engineers worked
together to resolve known issues and work toward value-adds that
benefit customers.
For example, we worked closely
with the WebSphere Application Server transaction team to use new IBM
transaction APIs to deeply integrate Spring‘s transaction abstraction
with WebSphere Application Server internals.
developerWorks: What were some of the reasons that Interface21 and IBM decided to collaborate with this effort?
Paul: IBM
is committed to ensuring that our technology solutions are
interoperable and can be deployed in conjunction with a range of
complementary technologies. We strive to offer customers technology
choices that align with their requirements. So whether a customer is
deploying a mission critical application, or an ad hoc application, the
WebSphere Application Server family offers the right product to fit the
customer‘s needs.
We have some customers using the
Spring Framework on WebSphere Application Server today. For these
customers, today‘s announcement from Interface21 ensures that they can
get structured support from Interface21 when running Spring on
WebSphere Application Server. Additionally, customers are assured that
IBM and Interface21 have collaborated to position WebSphere Application
Server as a premier environment for Spring. At the end of the day,
there‘s only so much you can do with Spring and Apache Tomcat or other
application servers. When you reach that point, and need an enterprise
grade application server, we‘re here to help with WebSphere Application
Server. Oh, and if you‘re running Spring with Apache Tomcat, take a
look at WebSphere Application Server Community Edition. WebSphere
Application Server Community Edition delivers all the benefits of
Apache Tomcat, plus features and services you use most often, all
pre-integrated for you.
developerWorks: How does WebSphere Application Server deliver value to Spring applications?
Paul: WebSphere
Application Server is the market leader with over a decade of
investments driving countless innovations. WebSphere Application Server
is well known for its robustness, scalability, manageability,
interoperability, and leadership in open standards. Open standards are
crucial for ensuring customer choice and flexibility in the future.
WebSphere
Application Server can provide enterprise class facilities to your
Spring applications, such as transaction support, work load management
and high availability, to name a few. Additionally, developers can
start to extend Spring applications with capabilities being introduced
through optional and incremental WebSphere feature packs. These feature
packs deliver early support for technologies and standards such as
JAX-WS Web services, SOA, and EJB3, at a rate and pace that meets
customer needs.
developerWorks: Why should developers and customers use the Spring Framework on WebSphere Application Server?
Rod: The
Spring Framework offers proven benefits from design, development, and
testing through to production and maintenance. For example, Spring
makes it easier to follow architectural best practices and makes
development-test cycles significantly quicker, making it easier to
identify and fix defects early. Spring provides a lot of application
infrastructure that developers used to build themselves. Spring
provides this capability out of the box, thus enabling developers to
focus on creating business value.
As you would
expect from our focus on enterprise customers and the market
penetration of WebSphere Application Server in this market, we see a
large proportion of our customers using Spring in a WebSphere
environment. They can now confidently combine the two. Customers can
enjoy the productivity gain of Spring while leveraging WebSphere
Application Server capabilities, such as a rock solid transaction
coordinator, operational management facilities, and integration with
IBM‘s comprehensive set of middleware solutions.
developerWorks: There‘s a new version of the Spring Framework out. Tell us a little about it.
Rod: We
focused on ease of use in version 2.1 of the Spring Framework. This was
partly achieved through the addition of features that benefit users who
are able to take advantage of Java? 5 or Java 6. For example, we allow
the use of source code annotations, including the standard JSR-250
injection annotations. This approach can be used to complement the
Spring XML configuration, to provide what we believe is the most
comprehensive configuration solution available.
We‘ve
also added some new possibilities for power users, such as support for
the latest JCA 1.5 specification and the bundling of Spring in OSGi
bundles, as well as enhancements in Java Persistence API (JPA) support.
developerWorks: Can you expand on the support for JPA with Spring?
Rod: We‘ve
put a lot of effort into integration with JPA -- the new O/R mapping
standard -- which we believe is the most important part of EJB 3.0.
That integration was introduced in Spring 2.0 and is improved in Spring
2.1, enabling use of JPA in any environment. We‘re working with the
OpenJPA team at Apache as part of this effort.
developerWorks: How about an elevator pitch on Spring Web Flow?
Rod: Spring
Web Flow is about modeling Web applications the way we naturally think
about them. Suppose I‘m booking a seat on an airplane. With a
traditional MVC framework like Struts, we end up with a Java class to
handle each request, while the developer is responsible for managing
session state, making sure the back and refresh buttons work, and
ensuring that those Java classes hang together in a single cohesive
unit. The implementation doesn‘t look much like the requirements, which
is always a red flag.
That‘s because there‘s a
missing abstraction: what we call a flow. A flow represents the
conversation around a process; in this example, the steps that lead to
achieving a business goal like booking my flight to Europe for
SpringOne. With an MVC approach, there is no single artifact that
represents a flow: the onus is on the developer to simulate it. With
Spring Web Flow, a flow is a first class citizen. You can describe it
in an XML file or Java code, and you can reuse and nest flows to
simplify building complex applications.
So, in a
nutshell, Spring Web Flow makes developing Web applications with
directed navigation (typically forward and backward) a lot easier and
less error-prone. A lot of Web applications are like this. Travel
booking and mortgage and insurance applications are just three of the
many examples. By the way, that‘s a real example -- one of the world‘s
best known travel brands has just deployed a large Spring Web Flow
application into production.
In Spring Web Flow
1.0.3, and the upcoming 1.1, we have put a lot of effort into enhancing
the integration between Spring Web Flow and JSF, so users who wish to
use Java EE‘s standard component model can derive full benefit from
Spring Web Flow conversation management.
Rod Johnson is CEO of Interface21
and the founder of the Spring Framework, which grew out of code
published with one of his influential books on J2EE architecture in
2002. Rod holds a BA (majoring in Computer Science) and a Ph.D. from
the University of Sydney. Interface21 is the company behind the Spring
Framework. Interface21 leads the development of high quality enterprise
open source solutions and provide production and development support,
training and consulting to hundreds of customers worldwide.
Paul Buck
is Director, WebSphere Open Source at IBM. Paul‘s teams contribute to
the Apache Geronimo project, an open source server platform that
supports Java EE and other frameworks, and to the Apache Tuscany
project, an open source implementation of the Service Component
Architecture (SCA) and related technologies. Paul‘s career started in
1984 at the company‘s Toronto Software Laboratory. He holds both M.Sc.
and B.Sc. degrees in computer science from Queen‘s University at
Kingston, Canada.