Java Spotlight 13

[music]
Roger Brinkley: Welcome to the 13th edition of the Java Spotlight Podcast. My name is Roger Brinkley.
Terrence Barr: And I'm Terrence Barr.
Roger: And in this edition of the podcast we'll do an interview with Roberto Chinnici who is the chief architect for Java EE. In the news we've got two new JSRs that have been filed - thus the reason for interviewing with Roberto - JPA 2.1 and JAX-RSS 2.0.
Alexis Moussine-Pouchkine: Right, JAX-RSS 2.0 and JPA 2.1, they're the first two JSRs that we hope will be part of a future release called Java EE 7. There are more to come, but they are the two first ones. The spec leads have been going to conferences, polling people on what people would like to see. We'll need to prioritize the tasks and features we want to see in those two JSRs. I think we're on a time-driven development for this release of Java EE, which has that piled as the larger theme, as you'll hear from Roberto in the interview.
Roger: OK, so WebLogic 10.3.4.
Alexis: This is a Java EE five release. This is the 10.3, or 11gR1, version of Oracle WebLogic Server, in fact, of the greater Fusion Middleware set of products. WebLogic is the app server part of this. But this has a number of Java EE six features, so since the last release, it already shipped with JSF 2.0. As you may know. ADF, JDeveloper, and Oracle in general has made a big bet on JSF, and that's one of the reasons why JSF 2.0 Mojarra, which is the reference implementation - which also ships with GlassFish - has already been in WebLogic for some time now.

And this release, JPA 2.0, so that would be EclipseLink 2.0 or TopLink as the implementation, and JAX-RS 1.1 - which are two APIs which are part of Java EE six - are now being made as an option available to developers.

So, that's what's new about this. We're still looking at having a fully compliant Java EE six version of WebLogic later this year.

Roger: So, Terrence, a couple of things on the JDK7 side. JDK7 is feature complete at this particular point in time.
Terrence: JDK7 reached feature complete just a short while ago. It was originally planned for mid-December, but it was a week or two late, which is actually not surprising in a project of this magnitude. So pretty much on time. Feature complete, meaning all the features have been coded and implemented, as well as all the tests for the features have been implemented. There are some small exceptions that are not quite ready yet. One is the update to the XML stack, and the other is the enhanced JMX agent and MBeans implementation, but it's not expected that those implementations will hold up the overall schedule.

And then, of course, there are a couple of JSRs for the VM language and library enhancements currently still in flight. JSR 203, 292, 334, and 336. The features that have been implemented now are based on the early drafts of those JSRs, and it's not expected that those will change significantly, so I think we're in pretty good shape there as well.

So what will happen next is that the testing phase will ramp up. We've already started to run tests on all supported platforms, and by the time milestone 12 comes around, which is scheduled for mid-February, this will be the developer preview release. At that point, we encourage developers to go and kick the tires on that, and start giving us feedback and file bugs and things like that.

I think we're in pretty good shape here, we're moving along. JDK7 is coming along, and very soon there will be things that developers can try out. The final release is expected soon after the tests complete.

Roger: Last week we made mention of this in the What's Cool section, but the Mac OS port is going forward, or was announced. That process is actually moving forward nicely. We've seen a few people on the Java Champions list. We're starting to try to compile it, running into some frustrations, working through the process, and going through there. But certainly a good project that we want to make mention of as it moves forward, especially since the three of us, in particular, have Macs in their environment. So good piece as we move forward, that.

In the events section for this next week we still have that web application development with Java EE 6, the webinar. Arun Gupta over in Budapest, Hungary, next week. Java EE six equals less code and more power. And then the Oracle user group leader summit. So, a couple of things there. Then another Webinar that's coming up on January 27th on building simple web applications with Java EE Webinar.

So let's turn now to our feature interview. While we were over in China had an opportunity to speak with Roberto Chinnici. So let's go directly into that interview.

Here with Roberto Chinnici. And he is the lead architect on EE. So welcome to the podcast and we are glad to have you here.

Roberto Chinnici: Yeah, my pleasure.
Roger: Roberto, give me a little bit of your background, personal and professional, so people get an idea of the kind of the type of person that's leading some of the efforts here at Oracle.
Roberto: I am originally from Italy. I joined Sun in '97, JavaSoft at the time. And I have always been in the enterprise group. So, starting when it was very small and the enterprise technology was JDBC, and we were just getting started with VJB. So I have seen the whole growth and evolution of the platform. And I worked mostly for a while on the web services technologies, JAX WS and also W3C. And then I was responsible for the development features in Java EE 5. And then for Java EE6 I was the specification lead with Bill Shannon.
Roger: Let's talk Java EE 6. It has been out for a year. What's been the uptake on that?
Roberto: Yeah, we are very pleased with the adoption. I think that the pace is a lot faster than it was Java EE 5. And we see a lot of main application server vendors starting to ship previews and alphas and betas and milestones. And in some cases of course we have full products like GlassFish. So we see a much faster pace than before.
Roger: So we are not standing still though. What are the plans moving forward then?
Roberto: Yes. First of all some of the components in the platform are really stand alone technologies. So things like JSF, JAX-RS and JPA to an extent. They get routinely used even outside the platform, and they shoot ahead of the platform in the last round. So in some cases even six months or so, ahead of the platform. So we are looking at starting updating them very soon. So we are working on JSRs for the next version of JAX-RS, JPA and JSF etc. So you can expect to see this appearing at the beginning of 2011.
Roger: In EE space, do you have an umbrella JSR, very similar to what you have in the SE space.
Roberto: Yes, there is a JSR for the platform as a whole. And in the case of Java EE six it was also the JSR for the web profile.
Roger: So let's talk about some of these features which you are looking at.
Roberto: As I mentioned, we are looking at updating lot of the components. So things like JAX-RS and JPA are probably the most obvious and the easiest in the sense for us to put together, because there is already a lot of experience using the current version of this technologies. They get adopted much faster than the platform as a whole. In other areas we are looking at adding support for the latest web standards to the platform. So we want to support HTML five out of the box, and web sockets.

So I think that's important for the adoption of EE in many, many circles but especially I think for the mobile clients. I think a lot of people write mobile applications using web technologies and there is interest in using the latest and greatest and especially HTML five there. So I think that having good support for them in EE seven is going to be very important.

Roger: So one of the major things that you are looking at in this next version is doing Java EE for the cloud. Now, let me start off with a very simple question that I just don't have a good concept of what the cloud is, so educate me.
Roberto: Especially in the context of Java EE we are looking at the platform-as-a-service type of solutions where you have a hosted environment in the cloud. It could be a private cloud or a public cloud, and you deploy applications there. But the environment is not necessarily exclusive. So it is not your own playground but you may have multiple tenants of that platform. And this brings up new issues from a point of view of EE because we had a sort of an assumption that you are the owner of your application server.

And so I think we need to do some incremental work in defining how Java EE-based platform-as-a-service would work. And also I think there are new deployment issues that we have to look at.

So I think when you control the application server and the entire environment around it, you control probably in-house your own middleware, your own database, everything. But I think in the cloud you'll be sharing a lot of these resources with other people potentially, and now your provider will be hosting apps for multiple organizations.

So there are no issues around how do I share things and how do I keep things private. What kind of isolation I am going to get? How I can get the scalability I want out of my applications?

And so I feel the way to do that is to add to the existing Java EE applications some metadata that can guide your platform provider in doing the right thing as they deploy and host and manage your applications, so you get the expected quality of service.

Roger: I think it would become tricky especially when you don't have a control of something, then security becomes much more of an issue there.
Roberto: Yeah, so clearly we want security to be very solid in this environment and it is really critical that data be safe et cetera, but I think anywhere a very good starting point to tackle those issues because EE has been a managed environment from the start. So in general your applications are running in a secure environment with a security manager, with certain permissions. We have tight control of threading. This pretty much was the center of a design of EJB really in managing resources, both external resources as well as threads and memory set are very tightly.

So I think it's an incremental update for us. So we build on all theses concepts we have of containers and applications using their services, et cetera. And I think we need to tighten the requirements and to clarify how things would work in a cloud environment.

I don't want to make it sound like it is too simple or straightforward, but I think the path is pretty clear in my mind. And we need to get together. We have an expert group for that platform and discuss the issues and see what the vendors have to bring to the table in terms of ideas and plans for their implementations etc so we do the right thing.

Roger: Are the expert groups that are in the EE space, are they open to a lot of people or they a little more of a selective type of group that you're trying to bring in?
Roberto: No, no. They're actually very open expert group. Already in EE 6, several of the groups worked in the open with public mailing lists and public issue trackers. And we want to use this model in all JSRs for EE 7. And we have a very large participation. The platform expert group had, I'm trying to remember the exact number, something like 26 participants. And probably less than a third of them were vendors. And then we have a lot of independent consultants and smaller companies represented. So we have a very wide representation.I think it's a very healthy expert group.
Roger: So is everything done on consensus in this group, or actually does a track lead sometimes you have to make a decision and say, no, this is the direction we're going to go in?
Roberto: No I think that it is pretty much by consensus. I think that sometimes we get into long emails threads, et cetera, trying to clarify issues, et cetera. But overall I think that everybody has pretty much the same goals they have of shipping good products and maintaining a good level of compatibility, et cetera. And I think we see the direction of the industry as being not common really. Now because of the wide participation we have, we have, I think, a good global viewpoint on where we need to go. So it hasn't been a controversial process at all.
Roger: This release, your time period for this is a year and a half.
Roberto: That's actually a pretty fast cycle for Java EE, but I think what we'll be doing is to have each expert group prioritize the work very aggressively and start with really important stuff. And if at the end, when we get close to the release time frame where a few features that haven't been tackled yet, we will put them on the next release. We don't want to keep this process going forever until down to every little feature has been worked out. So I think we will be running a tight schedule, tight ship to stay on schedule.
Roger: With that type of release schedule, that means that JDK8 should be out the door by the time you actually do this. So how much are you going to try to leverage a lot of the features of JDK7 and JDK8?
Roberto: In JDK7 there may be a few features that we -- we're going to use the NIO2. 8, we cannot really use because Java7 is going to be based on SE7, but I think that having eight be either done or close to being done by the time we release is going to helpful because then we can design features in Java7 with SE8 in mind. One thing that I'm thinking about, for example, is lambda expressions. So we can look at Java7 APIs and make them lambda expression-friendly even if lambdas are not going to be in the language right away. And the day SE8 comes out and you start writing Java apps that use SE8 lambda features, you'll find that the APIs work well with lambda expressions, even more so with modularity.

Modularity has been a big concern in EE land and having SE8 to go and define modularity, even if we couldn't use it directly, it's still helpful to know where they re going and making sure things are going to be aligned going forward.

Roger: So will you have somebody from EE working on the modularity project as well?
Roberto: No, we don't have anybody directly in Open JDK, but we have very good links with leads of an effort. So we're definitely in the loop, and I'm sure our requirements will be taken into account when designing for modularity for SE8.
Roger: Sounds very good. Well, thank you for coming and spending a little time with us today.
Roberto: Thanks for having me.
Alexis: It's clearly still very early days for Java EE7, but on the other hand I think this is great to see the platform moving. We have clear directions, I think, which obviously we need as a community to work on. We're expecting a release of Java EE7 in late 2012. So, that's less than two years from now. Obviously, here we want to start addressing the cloud which is, I think, still pretty early days for many people, but things like multi-tenancy is probably what is the best definition of the cloud at this point. I think, as Roberto said, we're fairly well-positioned having worked and managed environments in containers for more than 10 years and implementing clusters and all of this.

Now if we could get things like better modularity and application versioning, that will solve a lot of people's problems without even going into really the cloud and the public or even a private version of it. So, I'm quite excited about all the work that is there. I'm a bit scared, too, but it's really fun.

Roger: People talk about the cloud and there's commercials in the U. S. about this from Microsoft that says, "Oh, I'm going to go to the cloud," and it looks like they're going to their Windows machine and trying to do some stuff there. What is really a definition around the cloud?
Alexis: The way we look at it here is that we have, for the longest time, assumed that there would only be one administrator for an application server that, yes, it could host more than one application, but there would be just one administrator. In this case you could have more than one. That's a first start, and that would be what large corporations are looking at when they deploy what they call a "private cloud," which is better utilization of the resources, which means things like elasticity, which is add instances as you need them, grow as you need, but also shrink, which is probably the harder part. S, better utilization of the resources would be my definition, and that starts with the multi-tenancy, certainly for the areas that we're interested in.
Arun: To see somebody like Roberto who has been around so many years who's essentially grown up with enterprise-side Java, to see him be here, drive a project like this, be in charge, be the spec lead, I think that should be encouraging for any developer who's interested in the future growth of Java EE, because obviously the expertise and the background is still here and is driving that forward. So, I think that's great.
Terrence: Finishing up then, let's go to the what's cool section. So, Alexis, what's cool?
Alexis: What's cool this week is that we finally started again the series we have on GlassFish stories, which are references of customers running GlassFish in production. So we're not talking about people who just think that GlassFish is cool and trendy, but they're actually running it to run their business. So, this time and this is thanks to Arun who spent his time traveling in Brazil around Java1, and he met a couple of people, maybe more actually, who were nice enough to share their experience of running GlassFish in production. And we actually have both of those stories on blogs. That's under com/stories, and we're actually looking to having more published as soon as this week.

[music]

Roger: Thanks for listening to the 13th edition of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence: And I'm Terrence Barr.
Roger: And send your feedback to feedback@javaspotlight.org.


Transcript by CastingWords