Java Spotlight 22

Roger Brinkley:
And in this edition of the podcast, we'll do a feature interview with Steve Harris, who is the Senior Vice President of Application Server Development at Oracle.
So let's go into the news. So, Alexis, we've got Grizzly 2.0 that's out.

Alexis Moussine-Pouchkine:
Right. Actually, it's been out for some time now, but with the release of 3.1, it went kind of unnoticed. So Grizzly is really the core engine of GlassFish when it comes to serving HTTP requests and, all sorts of protocols, actually, not just HTTP. And it's based on the new I/O, non-blocking, asynchronous features that you've found in JDK since 1.4 or something like that. Oleksiy Stashok, who's the lead for Grizzly, has a blog on this and all the improvements, performance being one, but there's a lot more to it.

Alexis Moussine-Pouchkine:
This past week, we had the server side. We talked about it last week, and I think it was a good conference, lots of energy there. This week, back in the Bay Area, EclipseCon will feature a number of Oracle people talking about, well, a number of things. So OpenJDK is one, obviously. And that will be mostly a panel, with participants from IBM and Mike Milinkovich, who's the Eclipse lead, and a number of other talks, both in Java SE and Java EE land.
And as you know, Eclipse has evolved to being just much more than an IDE. It has a number of runtime projects. And maybe just like last year, we'll actually see some progress made in the area of maybe modularity, for example, which impacts both Java SE, as we know, but also Java EE, as we'll hear from Steve.

Dalibor Topic:
And another potentially interesting thing about the EclipseCon conference is that Marcus Hirt from the JRockit team will be doing a presentation on HotRockit, or the interesting, exciting features from JRockit that are making their way into HotSpot. So I think that's going to be a very interesting one for the JVM fans to watch.

Roger Brinkley:
So, Dalibor, welcome back to the show. Glad to have you back on. Early access Java SE six update 5, build 3?

Dalibor Topic:
Yeah, we are continuing the early access releases for Java SE six update 25. So we're now up to build 03. And the feature list includes performance improvements for BigDecimal, support for Big5-HKSCS-2008, and, last but not least, Access Bridge version 2.02 for Windows 7, both 64 and 32-bit support. And Access Bridge is an accessibility technology that makes it possible for Windows-based assistive technology to interact with the Java Accessibility API. So this is something quite interesting, I think.
If you want to check it out, you can go to the show notes and find the download link for the early access release. And if you find issues and all that, give us feedback and let us know about it.

Dalibor Topic:
So JSR 269, for those who don't know all the JSRs by number, is the JSR which standardized an API for annotation processing. So all these lovely annotations, actually, are standardized in that JSR. And it's undergoing a maintenance review.
And as Joe Darcy writes on his blog, where you can find linked in the show notes, "In the JCP, a maintenance review is a process to take comments on small changes so that those small changes can be formally incorporated into an existing specification without running a whole new JSR." And on his blog, Joe Darcy lists out the proposed changes for this maintenance review. So if you're interested in how the annotation API is evolving in Java SE 7, you can go and see the list of proposed changes and comment on them as well.

Roger Brinkley:
So we're talking about JDK 7, Dalibor. We're kind of hitting the endgame on this at this point.

Dalibor Topic:
So, as Alan Bateman posted on his blog, we're nearing the endgame on this. And now is really the time to actually grab the latest builds, or the developer preview that was released a couple of weeks ago, and give it a test drive and try it out, because once we go beyond March, then the release will start to get locked down, and it's going to be a bit harder to get fixes or changes in.
So now is a really good time to actually download the build, try it out, and let us know if something doesn't quite work as expected, by submitting a bug report, as usual, or, of course, showing up on a mailing list and discussing things you would like to see happening.

As usual, we post weekly builds of JDK 7, which you can find on the jdk7.java.net site, linked from. And go and try it out and let us know if it works. And of course, let us know when it works as well. We love positive feedback, too.

Terrence Barr:
Exactly. So, for those of our listeners who might not be familiar with the Oracle Application Development Framework, that's been around for a while now, and it's Oracle's solution for building enterprise client applications, or applications that tie into the enterprise back-end infrastructure and data.
There has been a version of ADF Mobile, so the Application Development Framework for mobile devices, that essentially runs within mobile browsers. So if you have a reasonably capable browser that can do JavaScript and Ajax-type applications, you are able to very easily build applications that bind to the data on the back end, and then are, that data is visible on the device, running in the browser.

So that's typically used for vertical-type applications, such as Salesforce and automation and retail solutions and things like that. And it's a very visual, graphical environment. With JDeveloper, you can basically drag-and-drop your application and build something that runs on a mobile browser.

Now, with this new release, there is an extension to that. It's called ADF Mobile Client. And what that is is the capability to take that same application framework and automatically build native applications that run natively on the phone.

Right now, BlackBerry RIM is supported as well as Windows Mobile. And so the benefits of that of course, is you're using the native UI, you can tie into the native capabilities of the device, things like a bar-code reader, camera, and things like that. The other feature is that you now have local data storage which you can automatically have synchronize with a back end. So you have an offline, disconnected mode that's very easy to use for the developer.

So if you're in the business of extending your enterprise applications to mobile devices, either to the mobile browser or to native mobile applications, definitely check out ADF Mobile, and especially the new release with the Mobile Client.

Roger Brinkley:
So let's turn now to the events section. And as we mentioned earlier, the 21st through the 24th, EclipseCon, out in the Bay Area. Then we have a whole series of OTN Developer Days in India, in Bangalore, Pune, and Chennai, on the 22nd, 23rd, and 24th. Then I'll be speaking at the Nashville JUG on the 30th, and then OTN Developer Day in Reston, Virginia. I know, Terrence, you and I will be there. And then JavaOne Russia, April 12th through the 13th. Alexis, I think you're going to be there. And Dalibor, are you going to be there?

Dalibor Topic:
No, not this summer. But I'll be at the CONFESS conference in Vienna, talking there about Java SE, the road ahead. And then a week after that, I'll be going to the Slovenian Days of Informatics in Portoroz at the Adriatic Coast. So I'll miss out on Russia, but I'll have a few more events down in Europe.

Roger Brinkley:
So let's turn now to our feature interview. And this last week, had an opportunity to speak with Steve Harris, particularly on Java EE seven platform development. So let's go directly into that interview.
So I'm here on Skype with Steve Harris, who's the Senior VP in charge of Application Server Development at Oracle. So Steve, welcome back. You've had a very successful year this year. Java EE six adoption's been going well. GlassFish 3.1. Looks like EE six is being picked up by a variety of vendors.

So let's turn our attention, then, to Java EE 7. I guess the first question is, if Java EE six is so great, why do we even need to have an EE 7?

Steve Harris:
One of the lessons learned on getting to EE 6, I think, is that the platform really does need to move forward, and you need to really be aware of things that are going on around you, in the community, in solutions that are being delivered and things like that. And EE six was sort of the logical endpoint of a lot of effort to make developing enterprise applications simpler, easier, but still being able to solve those really hard, complex, enterprise problems.
It's incumbent upon us, as the stewards for the platform, to continue to move it forward and make it competitive. And what that really means today, I think, is to do what we need to do in the Java EE world, in EE 7, to set the foundation for making EE the best place to develop and deploy and manage cloud-based applications and services. There's a lot of things that are involved in delivering on that, but that's the theme.

And we submitted the JSRs for the umbrella spec, and a bunch of the component specs, the ones that were done by Oracle so far, there will be others following along, to initiate that. I will submit that the JCP, a couple days back now, or a week back now, was unanimously approved by all the JCP Executive Committee. So, what that means is we have the green light and sort of the mandate, together with our partners and other vendors and things like that, to really drive the specifications forward, through the JCP, with this as the underlying theme.

Roger Brinkley:
So cloud will be part of the theme. What other things are you looking at in themes for EE 7?

Steve Harris:
You think about it in terms of product-management terms: How to make the platform more competitive. And all you software developers out there know, you have a theme, you really have what you're really driving for is a top-level thing, and that's setting the cloud foundation properly for the EE platform. So what that means in concrete terms, really, is to start by expanding out the platform definition beyond just what it's used to, which is sort of developer, deployer, administrator, and container provider.
If you kind of step back and look at what's going on in the cloud world, what it's really about is how software operates in the data center, how we host multiple tenants, how we make things more elastic, in other words, how to scale them up, scale them back, manage the resources that are associated with them, and then how those things cut across the underlying component specifications under that EE umbrella is a big task that needs to be done in EE 7.

So, think, as an example, security, how multi-tenancy might impact security, which cuts across a bunch of different specifications. And then there are other places, like JMS is an example, where the spec hasn't been updated in quite a long while, and some of the assumptions that are present in the specification about the way connections are dealt with, conversations are dealt with, and things like that, rely on sort of well-known knowledge of point-to-point type of communication. And that's not really the style of using and consuming queues and so on as cloud-based services.

So these are kind of updates that we will need to do to the component specifications that are driven by this overall starting point of the theme.

Roger Brinkley:
So now, one of the other themes that you've got going is modularity. Are you going to try to leverage what's happening in JDK 8? Or can you wait 'til that time period or how's that going to work out?

Steve Harris:
It's important, I think, for the platform, that the EE platform leverages what it gets out of the SE platform. And you can see examples of that, right, with EE five and 6, where we took advantage of annotations to make things simpler. And annotations were supported in SE, so we could start to make building EE applications much simpler in that way.
So for every SE release, there really should be an EE release built on top of it. And so that's what will happen. EE seven will be built and depend upon SE 7, and some of the goodnesses that come there, like advancements in I/O and language changes and things like this and so on, that we'll be able to build better, simpler EE apps.

Modularity, because of the way that we're doing SE 7, kind of in parallel with SE 8, really not scheduled 'til the end of 2012. Modularity is coupled with SE 8.

So the dilemma for us, the question for us, is how we can make progress in EE 7, built on SE 7, using and consuming modules in a way to sort of tease it up for the native modules that will arrive in SE 8, because we need, we want to make use of that stuff.

So I think what we've done so far, in that regard, is we sat down between the SE and EE teams, and between a variety of stakeholders, actually externally, to try to discuss how we can go about doing this in a way that doesn't disenfranchise existing investments in OSGi and things like that and kind of lets us make some progress.

So we have some preliminary plans in that regard. I think what will happen is you'll hear some of that starting to be discussed next week at EclipseCon. But right now, we haven't really discussed it very openly. But again, the intent is to start to use and consume some of the metadata about modules that will be formalized, in terms of specifications and standards, later on, postdating EE seven deliverable, actually.

Roger Brinkley:
In EE 6, you really worked at ease of developer use. What are you doing in seven for ease of developer use?

Steve Harris:
So there's obviously, actually also some places where annotations can be extended more consistently across the platform. They're very heavily used for persistence and things like that. So I think we'll have a bit more consistent and extended use of annotations to make things simpler, and make use of dependency injection across things a little bit more consistently.
So we still have actually some opportunity in that regard. And then to try to bring it back again to the Cloud sort of theme in EE 7, one of the things that's happening really is that instead of program against API's, like JMS, and JPA, and things like that, people, developers would like to be able to discover, use, and consume, hosted Cloud services like a persistent service or a queuing service.

We'll be doing stuff I think in the platform. And again, this is very preliminary. All we're doing is kicking them off at this point in time. We're going to sit down at tables and argue with various stakeholders about how we do this. But we want to be able to enable developers to use and consume these Cloud services.

And then you think about it from another perspective. You're the IT Administrator, you really need to be able to host cloud services so your internal developers in your enterprise can use and consume them. So that's another aspect of the problem. As a vendor you want to be able to deliver competitive products that then get exposed as those services, and try to bring your own qualities of service to it, and so on and so forth.

At the same time, it's really important that enterprise investments in Java EE continue to work, be compatible, but be able to kind of be moved forward to take advantage of these new things.

Roger Brinkley:
So specifically in the JSR's, we've got I think seven JSR's, two new ones, five older ones. Are we looking out in the crystal ball, and are we seeing other JSR's being done by, being led by third parties?

Steve Harris:
We still have a few to submit ourselves, like EJB. I think we'll revive, and before the JCACHE, JSR also. That's a Co-Spec Lead between Oracle and Greg Luck at Ehcache.
The J-Bus guys will move forward on the stuff that they had worked on previously. And then in the crystal ball, really I think what we do with the EE eight actually is another question. And there, the way we standardize, the pace we standardize this stuff. We formalize in specifications which adds value to own customers because it gives them better choice, vendor inter-operability, and things like that. When they are trying to solve a problem they're investing in something that's portable, not in a vendor specific solution.

The pace that you do that work in EE seven will be targeted to come out at the tail end of 2012 and be final there. But there'll be a lot more to do. And what will happen between now and when EE seven is final is there will be, you know, a lot of market maturity will go on, technology maturity, and things like that. And we will have more room to move more standard stuff forward.

So we could consider post-EE seven doing things like a cloud profile as an example based on the modularity underneath the covers. We could consider things like support for NoSQL databases to sort of be encompassed as part of the platform. MapReduce, think about MapReduce. You want to go use MapReduce today, you're going to go click "Hadoop." You might look at some vendor-specific things that are going on.

And but think about if you were doing it a year and a half from now. Wouldn't it be nice if there was sort of a standard Java way to do that? A standard Java enterprise way to do that, where your investment could be recouped across vendors, and choice, and things like that.

But it's a little early to be doing that stuff now, I think. So I think today, I think EE seven as this foundation, Investing in the foundation that will really start this stuff off, and I think it will be, add real value, and be useful for enterprises, and so on, across the right time frame as a lot of this other stuff matures over time.

So I think it's the right pace and I think it's going to hit the right spot. And we obviously have the support of a lot of different vendors and players to drive this forward in the Java world, which is a really good thing.

Roger Brinkley:
So one of the things that I was impressed with when I was looking at the submission for the JSR for EE seven was the transparency in the development process. You're just not going to have the EC members and people be able to know who they are, and maybe see a few things when the release is ready for public approval. You're actually opening things up in transparencies with the mailing list as well.

Steve Harris:
We sort of unblocked the JCP in terms of its ability to be the place to make progress in terms of standardizing, and joining together, and arguing about the directions and things, ways things should go in EE and SE in particular, which is a really good thing.
But along the way I think we've made repeated commitments to improving the JCP itself. The JCP if you don't know is sort of a, it's an organization that is designed like a company to improve itself. It has certain ways, processes that it can use to fix itself. And so that is what we're kind of embarking on with the members of the Executive Committee. And transparency issues specifically called out as going to be a key tenet of what we're doing.

You know it's kind of a, let's call it a "self-policing" sort of function. If you make what you're doing inside of the organization transparent at all times, then it's, let's say it's an incentive for good behavior in the organization. [laughs] It helps with peer pressure, it helps with external inputs, and things like that.

The other things we're kind of looking at is improved agility. Make it easier for people to participate. Right now we have sort of one gigantic legal thing you have to sign to participate, but in fact if you're a Spec Lead you, that might be appropriate for you to sign up to, but if you're just a guy who wants to monitor the forums, and contribute your thoughts along the way, that should be easy to do also.

So we're definitely focused on trying to improve the process. Transparency is going to be a key part of it. Almost all the JSR's that are really run today are done in a very transparent fashion. There's not a lot of cloak and dagger secrecy going on. It's pretty transparent. But I think we want to formalize that as being the way you must do work inside the JCP. And that's something that's happening.

Roger Brinkley:
You mean we don't have this evil master plan inside Oracle?

Steve Harris:
[laughs] We just finished doing the keynote at the Server Side Symposium where we talked about our evil master plan which really consists of investing in the platform, collaborating with a bunch of different players to move it forward with the intent of broadening the marketplace.
I mean, our business motivations are to make Java vibrant and continue to fuel this engine of developers and ideas and innovation and so on, that's sort of centered around the community. And we depend on that to get better all the time. We have thousands of developers ourselves that are pulled from that pool. We need to sort of fuel that engine. If that's an evil master plan for Java, then that's what it is.

And people need to judge us by our actions, I think, and hopefully it's becoming clearer as time progresses that we are investing in it and we are collaborating with a bunch of different players, and that, in fact, by doing that and moving Java forward it does really sort of broaden the marketplace for developers to contribute to, and make money from, and companies to build on top of, and make it all better for all of us from a business standpoint.

Roger Brinkley:
Target dates for EE seven and roadmaps for GlassFish as it moves forward and EE 7. Is that all readily available?

Steve Harris:
EE seven is targeted at a completion date the tail-end of 2012. And you should translate that mentally as meaning EE 7should go final before SE eight is final, and so that EE 7can build on SE 7, and then we can begin work on EE 8, depending on SE eight and its feature function. So that's the timeline that we're aimed at.
In terms of roadmap, we've just kicked off JSRs on this, so the spec work on this stuff. What's really happened is we now have permission from the JCP executive committee to initiate expert groups, start work on this stuff, sit around tables and argue about it, and so on.

So that will be done in sort of the traditional way, where the component specifications move forward within an, sort of an umbrella timeline, which is again targeted at the tail-end of 2012, they'll finish kind of at their own pace. When they're all done and wrapped up and there's a reference implementation and a test kit to verify compatibility and so on, then EE seven will be done, again targeted at the end of next year.

In our world, we will also use GlassFish in a 3.2 release to, I think, kind of demonstrate some of the ideas that we have in mind from Oracle, in terms of how this should be done.

Of course, we'll be specifying it in conjunction with a bunch of other people and ultimately the reference implementation will be derived from GlassFish 4.0, which will be targeted then at the end of 2012. And we'll continue to do that openly and transparently, like Sun did with GlassFish all the way along, and like we've continued here at Oracle.

Roger Brinkley:
Well Steve, thanks so much for coming and talking to us today. I look forward to having you back in another six months, or somewhere along that time period.

Steve Harris:
The pace things are moving, we should have plenty to talk about.

Terrence Barr:
Obviously, Java EE 7is going to be about the cloud. I like how Steve talked about multi-tenancy and elasticity as being what we're after. Modularity, as Steve said, we'll need to wait for SE 8, but we'll have a good idea of where SE eight will land by the time we finalize Java EE 7. So I think we can anticipate what will be in Java SE 8.
So, and I was very pleased to hear about the changes to the JCP. There is some meat there. Probably people expect at least that, and maybe more. But I think overall this was positive. And also with the unanimous vote on Java EE 7. I think this is the first time that it ever happened. We never had everybody vote yes on any release of Java EE or J2 EE for that matter.

Roger Brinkley:
When we're talking about the JSRs, when we're talking about the movement there, and the change. They're actually implementing these changes before they are required from the JCP process, so, especially the changes in transparency, so I think that that's a solid move going forward.
Let's turn now to our "What's cool" section. Dalibor, you're back. What are the open positions that are available?

Dalibor Topic:
There's quite a few new open positions in the Russian Federation. You can find links to all them in the show notes to my blog posting about them. But I think one of them is going to be very interesting for our listeners, because the responsibilities mention a position, say, "This engineer will work as a part of the engineering team which is responsible for the development of the Java SE platform GUI class libraries from Echo [name spelling 26:40] S10." So I think this is a very interesting development.
And of course, if you want to read about this, check out the show notes.

But the other cool things for me were that Kelly O'Hare just a couple of weeks ago announced the end of the OpenJDK binary plugs. Those who were around from the beginning of the projects remember that when Sun open-sourced OpenJDK, it still required a couple of so-called binary plugs. It's a piece of encumbered code that we had to replace to get it over to the community, which we did over the course of a year.

And it's been a while since anybody actually had a need for those plugs. So we had a discussion on the build development maintenance of OpenJDK back in December where the community came out in favor of actually abandoning them, so we basically said, "OK, excellent, let's get rid of them," and that's what happened.

Kelly announced that both the OpenJDK6 and OpenJDK7 makefiles no longer have the logic for including binary plugs. Accordingly, we don't actually ship them anymore, which is just another tiny milestone on that process.

And finally, the really good news that I saw last week was the release of JRuby 1.6, and its author, Charles Oliver Nutter [name spelling 27:55] has been very enthusiastic about JDK7 and [indecipherable 28:00] and OpenJDK. In fact, he now thinks that OpenJDK will mean that Java seven adoption will move much more quickly than Java five or Java 6. He's happy to see the platform finally moving again, and thinks it's going to be a hell of ride.

So I think it's really good to see this kind of enthusiasm out there in the community that's been participating, like Charles has been, in the development of [indecipherable 28:26] and such features.

So yeah, good times.

Roger Brinkley:
So on my side, on the "What's cool," Daniel Oliveria, DFJUG and Java Champion, they are doing pre-JEDI courses in the areas surrounding Brasilia, in one of the slums that's in that area. So congratulations to the DFJUG there, going off working with some people that don't have the advantages that many of us have. So great move Daniel, and congratulations on the efforts that you guys are going forward there on Monday March 28th, and I hope things go well for you.
[music 28:56 to 29:03]