Monday, September 20, 2010

IBM Open Source talks and topics at JavaOne 2010

I wanted to share a few open source related talks I know of where IBMers are speaking at JavaOne 2010. The topics are focused on the JPA, OSGi and SCA, which enable developers using WebSphere Application Server through add-on feature packs. I interviewed an IBM software architect Kevin Sutter on this topic last week.

Pinaki Poddar will be presenting a session on Scale Java Persistence API Applications with OpenJPA Slice (S314445) in the Java EE Web Profile and Platform Technologies track on Wednesday September 22nd at 4:45PM PDT. The JavaOne blog featured the entire list of Open Source sessions. Pinaki is an OpenJPA committer and also blogs on the WebSphere Persistence blog.

Next up, Alasdair Nottingham is speaking about Creating Modular Applications with Apache Aries and OSGi (S313866). The talk will cover the Apache Aries project (designed to bring modularity of OSGi together with the Java EE platform) and will feature a look at creation of new applications using Apache Aries and the OSGi Blueprint container. Alasdair is @notatibm on Twitter and blogs with other IBMers on the WebSphere Community Blog. Catch up with Alasdair on Thursday the 23rd at 3:30pm.

On the SCA side, Jean-Sebastien Delfino of IBM and Luciano Resende of Shutterfly are giving a talk about Developing Composite Applications for the Cloud with Apache Tuscany (S314011). Luciano blogged about this session already.

Finally, BJ Hargrave will be hosting a Birds of Feather roundtable on OSGi with aQute CEO Peter Kriens (S313877). BJ is an IBM Senior Techical Staff Member, CTO of the OSGi Alliance and a committer on the Eclipse Equinox project, an open source OSGi implementation. Find this BoF at 6pm on Tuesday the 21st, look for @bjhargrave and @pkriens.

Oh wait - there is more! Last one, I promise. How can we leave out Cloud?! Doug Tidwell has a talk about cloud: Keeping Your Options Open, Even If the Cloud Is Not. Find @Doug_Tidwell Wednesday at 4:45. has a couple of handy webpages showing all of the IBMers at the somewhat co-located JavaOne / Oracle OpenWorld conferences. My emerging technology evangelism team manager Sunil Murthy @SunilBayarea will also be in attendance during the week. Seek out these smart folks and follow the conference backchannel via twitter with hashtags #javaone10 and #oow10. The IBM Booth is #1111. Apparently IBM is giving away "Sweet Tweet Cupcakes" - get your sweet fix. IBM also has a mobile web app for your use at OOW. Last but not least, there is also an ILOG booth #5104. They'll be talking about Visualization with Java.

Grokking Java Persistence with Kevin Sutter

Note: Originally posted on the IBM Impact events blog for "App Infrastructure Tuesday."

Recently, I had the opportunity to interview Kevin Sutter. He is a subject matter expert for WebSphere Application Infrastructure and works as a Senior Software Engineer in the WebSphere Application Server development group. He is currently the lead architect for the Java Persistence API solution for WebSphere Application Server. Kevin is also a committer and a member of the PMC for the Apache OpenJPA open source project. Kevin's past roles include leadership and architecture of WebSphere solutions for J2EE Connector Architecture (JCA) and WebSphere eXtreme Scale (caching). It was good to catch up with Kevin for a look at the Java Persistence technology and it's usefulness to java developers.

Kevin, what is JPA in two sentences?
The Java Persistence API (JPA) is the persistence framework standard for both the Java SE and Java EE runtimes. At its core, JPA provides a conduit between the object-oriented data model and the relational database systems -- an object-relational mapper (ORM).

Open source software is a key part of the solution here. How did OpenJPA start and who was responsible for it?
The Apache OpenJPA project was a joint submission between IBM and BEA. BEA seeded the contribution with code based on its popular Kodo project (a recent acquisition). Contributors from IBM, BEA, Sun, and other independent sources worked with this code base through the incubation phase and, eventually, to produce the OpenJPA 1.0 release. Since that time, the OpenJPA team has produced several service releases and, most recently, produced an OpenJPA 2.0 release which supports the latest incarnation of the JPA specification. The WebSphere JPA solution is based on the Apache OpenJPA project. We do not try to keep that a secret. OpenJPA has been the JPA provider for the EJB3 Feature Pack for WAS v6.1, WAS v7, and the recent JPA Feature Pack for WAS v7. Of course, we additional features and function on top of the Apache OpenJPA deliverable to provide a better, more complete JPA solution for our WebSphere customers. But, the base code is the same. So, if a customer has written an application using the Apache OpenJPA code, it will run successfully using the WebSphere JPA solution. This allows customers to kick the tires and experiment with Apache OpenJPA before they deploy their application into WebSphere.

Why didn't people get involved with existing Apache persistence solutions like Cayenne?
Not sure. We investigated several projects inside and outside of Apache before deciding on the OpenJPA joint submission. OpenJPA has a very clean, flexible architecture, with a defined persistence kernel. This kernel is actually used by multiple persistence "personalities", including JPA and JDO. Since we made the decision to go with OpenJPA, we haven't looked back.

Why does IBM care about JPA and why should java developers care about JPA?
The persistence layer accounts for somewhere in the neighborhood of 75-80% of the processing of customer applications. Thus, the functional and performance features available to make these applications run more efficiently is very important to IBM's customers. This makes it important to IBM as we have the same development priorities.

What is an example of IBM's contribution to OpenJPA? Performance is a key focus, right?
Yes, performance improvements have been a key contribution from IBM. We have introduced several locking and caching improvements into OpenJPA to improve the throughput, scalability, and general performance of OpenJPA. We have also introduced several DB2, Informix, and Derby data dictionary improvements to better support the IBM databases. Fixes related to passing the TCK and CTS compliance tests for the Java SE and Java EE environments have also been contributed. Let's just say that my whole team is very focused on making OpenJPA the best open-source JPA offering.

Let's switch gears and talk about WebSphere, what's new since JPA v1?
We don't have enough room to document everything that is new since the JPA 1.0 specification... But, if I had to choose a couple of highlights, I would start with the Criteria and Metamodel APIs. This feature allows a customer to dynamically create queries via a defined programming model. It's very powerful. Another key feature in JPA 2.0 is the integration with the Bean Validation specification. Bean Validation allows an application to specify constraints on an Entity's fields or properties, which will then be validated later when the Bean Validator is invoked.

How does IBM's JPA solution compare to Hibernate or EclipseLink?
If you want to play in this game, you have to be specification compliant -- both JPA 1.0 and 2.0. So, from that narrow spec perspective, we're all about the same. Note: OpenJPA v2.0.1 was released in August 2010. However, the WebSphere JPA solution brings many other features to the table over and above the base specification. We've already mentioned the performance aspect. Our SpecJ [tm] performance numbers are fantastic. We take great pride in that achievement. The WebSphere JPA solution also integrates well with other IBM stack and complementary products, such as DB2 and eXtreme Scale. From a DB2 perspective, the pureQuery feature provides static SQL and performance improvements for the WebSphere JPA solution. And, there is an eXtreme Scale plugin which allows this caching technology to be used with OpenJPA.

Can you talk about integration between IBM products and JPA?
I mentioned the stack products above (DB2 and eXtreme Scale). There are several other projects (especially acquisitions) that have migrated from Hibernate to OpenJPA. Even the WebSphere product itself uses JPA to provide the persistence layer for its systems management data.

What are the current hot topics in this technology space?
Caching, or in-memory databases. Having the ability to execute thousands and thousands of transactions to an in-memory cache or store, while ensuring that this data will also get persisted to a "real" database is a very real, hot topic in this space.

Where can we find more information on the web?
Check out my team's blog about WebSphere and Java Persistence and the Apache OpenJPA project site. Periodically, we provide white papers, comment lines articles, and presentations via Developer Works.

Where can people meet you (and the team) at upcoming events?
JPA is always represented at IBM Impact. This year, we had over ten sessions related to JPA! We also try to get to the core Java developers to JavaOne. This year, one of my team members and an OpenJPA committer, Pinaki Poddar, is presenting an OpenJPA topic on distributed persistence.

And for a quick diversion - would you please tell us about your favorite hobby, tech related or not?
I really enjoy working on cars. Anything from changing oil, to changing oxygen sensors, to replacing control arms. As long as I have the tools and the time, it's a good stress reliever. I also have a fun car -- 1989 Mustang 5.0 Convertible, which I thoroughly enjoy in our Minnesota summers.

Thanks to Kevin for providing a look into Java Persistence and WebSphere application infrastructure software.
You can also find more information about JPA, OSGi, eXtreme Scale and other emerging technology from the WebSphere Emerge team.

Final question goes to you the reader:
What topic would you like to see featured in future application infrastructure SME interviews?
Until next time,
Ryan Boyles

Hello World

This blog is a place to raise awareness, provide enablement and share experiences with emerging technology and open source software related to WebSphere application infrastructure. I'll talk about the tech, the people behind it, people using it and events we are attending, where we hope to connect with other software developers. These topics include application servers, cloud computing, elastic caching, Java module frameworks to name a few. To start off, I want to share some places to find helpful web software development information and resources from the WebSphere Emerge team: