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.
About the interviewees
|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.|
- Interface21 Certifies the Spring Framework on IBM WebSphere Application Server
- Interface21: The company behind the Spring Framework
- Open source at IBM
- Using Spring and Hibernate with WebSphere Application Server: Get the most out of your open source environment
- IBM developerWorks: WebSphere Application Server zone
- IBM developerWorks: Open source zone