Java Spotlight 8

Roger Brinkley: Welcome to the eighth edition of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence Barr: And I'm Terrence Barr.
Roger: And in this edition of the podcast, our feature segment will be with Rick Hillegas, who's the Java DB lead engineer, talking about the new release that they have this week. And we'll do a news segment, and we'll finish up with a "What's Cool" segment. So, let's go into the news segment here, guys. So, Terrence, we're all here in China. Alexis, give us an update on some of the stuff that's happening in the EE space.
Alexis Moussine-Pouchkine: We just released this screencast for GlassFish, which was first shown at Devoxx, which is a prototype we have running for GlassFish, kind of showing you what could be coming along with Java EE seven in terms of virtualization and being cloud-ready, and that had to do with the way you can provision instances in a cluster in virtualized environments, such as Xen or KVM or other environments. So, that one specifically was running on Ubuntu, and it used standard GlassFish features to create instances, to start them on a virtualized environment, which obviously can be spread across different machines. So, I think that's pretty cool. That's available on the GlassFish channel over at YouTube, and we'll have the link in the show notes.
Roger: Now, kind of got some problems over there in your webinar that's going on tomorrow.
Alexis: OK. Obviously, by the time people hear this, this will be too late, but there will be a replay. So, this is the webinar that Arun Gupta is doing on Java EE six and Eclipse. And I think the problem you're referring to is the fact that we have to have two WebEx sessions running in parallel, because one cannot handle as many people as we have registered, even with some of the people not showing up. So, that'll be a good experience, to see how that goes, but certainly a lot of interest in Java EE six and Eclipse.
Roger: Yeah, I heard some talk the other night about everybody saying, "You have how many people signed up for this?" It's an exciting time for you guys. So, what I thought we would do, since the three of us are here, is kind of do a quick round-table on JavaOne. Terrence, you got to go to Brazil. You got to go to China. Why don't you tell us what you found?
Terrence: I think the feedback we got, in Brazil and what I've seen from China as well, is that the content was good. The content selection worked out pretty well. People were happy with that. We already know that Brazil, the venue was not optimal. Some of the rooms were too small. And so we're going to need to provide that feedback back to the organization and make sure that next year the venue is appropriate. A lot of good conversations with people, especially here in China, emerging markets, lots of interest in mobile and the embedded space, some good questions. We're actually going to try and do a podcast interview tomorrow with a company in the real-time embedded Java space, so that's going to be interesting.
Roger: Yeah, and I think what was good for me wasn't necessarily the sessions we did, although those were important. They were certainly full in Brazil, and here in China had at least a decent attendance. But, I think more importantly was the podcast material and the interviews and the people that we got to talk to. I know down in Brazil you got to talk with Vinicius Senger, who does a lot of embedded stuff. We got to talk to a couple of ideas. Our Adam Messinger interview, which we did last week, was down there. And today, I got to talk with Adam Bien, who's a developer in Germany, I believe. Alexis, the first JavaOne that you've had for a while here, but you're first time in China?
Alexis: This is my second time in China, but this sort of thing is the first time that I'm actually doing a keynote. That was quite an experience. That was a lot of fun, actually. The attendance looks good. The venue is impressive. I think this is where they held some of the Olympics and the fencing part, I think. This is right next to the Bird's Nest and the Water Cube, so great things to look out just through the window. That was good. In terms of content, the feedback I hear so far from discussions after my talks was that people are happy that there is actually a road map for Java SE and that Oracle is delivering on it. And the vast majority, that's the feedback we hear.

There are some people that have issues and opinions about organizations like Apache leaving the JCP, but for the most part, it doesn't impact their daily jobs. What does is the features that actually make it into Java SE 7, which is around the corner, literally, at this point.

Roger: Yeah. I heard pretty much the same thing from Adam Bien as well, that it's time to move things forward. We heard some of the similar type of discussions from people in Brazil, that let's move the platform forward in the direction there as well. Let's turn now to the events section. Basically, we're all headed home. Going to take a little bit of a break, kind of rejuvenate.

I hope you will enjoy the podcast next week. It's going to be a lot of fun. We've taken a little time in the various places we've visited and asked people to say a special word to everybody, so it'll be fun to listen to.

Let's turn now to the feature edition, which is an interview I did with Rick Hillegas about Java DB.

So, I'm here with Rick Hillegas, who is the team lead for Java DB. This is the second time we've done an interview, so welcome back.

Rick Hillegas: Thanks, Roger.
Roger: We've got a release coming up for Java DB. I guess maybe we should start with that.
Rick: Yeah. The release is going to be 10.7.1, and the community release should be coming out in December if we keep to our schedule, and it's looking like we will.
Roger: What's the difference between the community release and from any other release?
Rick: Well, generally, the Java DB releases are, bit for bit, the same as the community releases. There's a little branding that Oracle does, but in terms of the executable bits, they're all the same. Occasionally, we'll cut a Java DB release from further along on the community branch, but right now, there's no plans to do that for 10.7.1.
Roger: So, some people might be just a little bit on the surprise side that Java DB kind of survived post-Oracle changing control. Where does Java DB fit into the set of products that we have from Oracle?
Rick: Well, Java DB is the Java database that comes bundled with your Java six JDK. It is a database which is coded to the applicable standards, which in this case are the SQL standard and the JDBC API. And so it's upwardly compatible with the enterprise-caliber databases, like Enterprise Oracle. It fits into the product set in the sense that you can develop a data-rich application using Java DB as your free back end. And then, if your business scales to the point where you need an enterprise-caliber database, well, there's Oracle there.
Roger: And the key part here is that you really don't have to change over your APIs just because you change your underlying infrastructure for the database, correct?
Rick: That's right. That's right. It's upwardly compatible.
Roger: So, is Java DB actually a database itself, or is it an API that accesses the database or database engines?
Rick: It's a real relational database, with all of the storage and recoverability features that you expect from a relational database, plus a broad range of SQL features, including features that you normally find only in enterprise-caliber databases.
Roger: This is not an Oracle-only endeavor. You guys are involved with the Apache community in this. How many other people are actually working on this?
Rick: That's right. So, we work shoulder-to-shoulder with a team that's donated by IBM who works in the Derby community. And then there are also some wildcats who don't work for Oracle or IBM who are committers on the Derby project. The bits themselves are all produced by an open-source community.
Roger: Let's take a look at some of the features that you've got in here. What's special about this release?
Rick: One thing that's really special about this release is that we sort of increased our release tempo. Previously, we were issuing feature releases once a year. We're issuing this release halfway through that cycle, so it's twice as many feature releases per year. We're trying to move more to a "release early, release often" model. We definitely had been working on some features that we wanted to get out into the wild, to get feedback on them, to make them more robust. So, we're clearly in favor of this, and the community is in favor of this, and we're producing a release.
Roger: So, tell me about some of these new features that you've got in this particular release, then.
Rick: Leading the list, we've got something called definer's rights, for procedures and functions. And what that means is that, previously, you could run your procedures and functions with your own privileges. But, with definer's rights, when you execute a database procedure or a function that's running inside query, it can run with the privileges of the person who defined it, who might be, for instance, the DBA, and who might have super powers and access to data that you are not normally granted access to. And this can be very useful for doing very fine-grained management of data access and very useful for managing, for instance, credentials and things like that, which right now is largely managed outside of Derby Java DB. Another big feature is the Boolean data type. So, Boolean is a really useful data type as a return value from functions. So, putting a Boolean-valued function in the where clause of your query is a very powerful thing to do.

There's something that we introduced in a previous release. It was generated columns, and that's the ability, when you declare a table, to take a piece of your where clause, which could be a Boolean-valued piece of your where clause, and store that as a column in the table, along with your other columns. And by doing that, you end up with being able to write queries that are blindingly fast, because the result to a complicated expression can actually be indexed.

And then there's another feature which is going in here, which is truncate table. It's the ability to empty a table really, really fast, so you can repopulate it with new data.

We're putting out an experimental tool with this release, which gives you a graphical view of our query plans. We want to get feedback from the field on this. The API is still experimental, but we think it gives you a way to look at your query plans and find performance issues which is much easier to deal with than the previous way we presented query plans.

And then, there is a feature to kind of highlight the fact, for people who are using double-byte languages and who, in previous releases, had problems opening network connections to databases which had double-byte characters in their names, that problem has been solved. So, that fix is in 10.7.1.

Roger: And it looks like you have just a whole slew of bug fixes in here as well, so people can take a look at the release notes and see those. I think the thing that strikes me here is that if you look at the naming convention of a lot of products, you wouldn't necessarily think this was a feature release or that features were going to be in this release, from the number. Is that something that's just kind of unique to Java DB?
Rick: You'd expect there to be like a big zero at the end or something, announcing that it's a feature release.
Roger: Right, right.
Rick: I can see that that would be a really useful flag to people. They basically have to crack open the release notes to see that this is a feature release rather than a maintenance release. It's just the Derby numbering scheme.
Roger: I think the key takeaway from this is, don't be fooled by a number. This is a feature release that's being put out.
Rick: That's right. And I expect, if we keep to our usual release cadence, there'll be a maintenance release in this release family coming out a couple of months afterwards, to roll up bug fixes, which we will do as a result of finding out what bugs there are in the log.
Roger: Now, as I remember, there's a strong support for a variety of platforms.
Rick: Absolutely. We run everywhere from CDC up through Java seven now, the Java seven that's under development. But, we do run on the small devices, the CDC, the smartphone sort of platform. Where we don't run is the tiny devices, the CLDC.
Roger: Yeah, the CLDC implementation. With the CDC devices, for some people that don't know, you could have Java DB running on a television implementation, since that's running a CDC implementation. So, there's a great deal of flexibility with where this could go. You can run it on smartphones. You can run it on the television. You can run it in a desktop platform. You could run it in a Java EE platform as well. Anything else we want to cover here, Rick?
Rick: I think that's sort of the lineup for the features in 10.7.1. The last time we talked, I think that was like two and a half years ago, maybe more.
Roger: Yeah.
Rick: Since then, we've put in a bunch of other features. Let me just rattle off a couple of those, for people who haven't been keeping up with it. We've put in user-defined types. We've put in the generated columns. We've put in sequence generators, which is an enterprise feature. We've put in just a whole bunch of improvements to the query language. And we've put in a lot of improvements to how Java DB Derby handles large objects. People want to look at the release notes for the 10.6 and 10.5 releases, which I think are the releases we've produced since we talked last. I think they'll see that there's a lot packed in there.
Roger: So, when do you think this release will be available with the JDK downloads?
Rick: Well, I'm expecting that we're going to see it in a JDK early next year. I can't tell you what release train it's going to be on right now, but I'm expecting we'll see this release in a Java six update release next year.
Roger: So, some type of update release that comes up sometime in the future. You'll catch one of the trains and hop on it and go from there. And then, obviously, it'll be in JDK 7, or some version of this will be in JDK 7, whether it be this one or the next one down the line, as the time comes along.
Rick: That's our thinking.
Roger: That sounds good. Rick, thanks so much. Appreciate your time.
Rick: All right, Roger. Good to talk to you again.
Alexis: So, I think this was an interesting interview. And certainly, from the Java EE perspective and as a user of GlassFish, I use Java DB every day. So, I'm glad to see it moving forward. There are a number of new features that I'm looking forward to. It's a really wonderful database to work with during development. It starts in no time, it's really responsive, and I just love it.
Roger: Let's turn our attention, then, to the "What's Cool" section. So, Terrence?
Terrence: Well, first time in Beijing, first time in China. Lots to see. New experiences. Lots to learn. So, that's been really interesting and cool to see the venue here. The Olympic grounds are amazing, the size of it, and all the buildings, like the Bird's Nest, that you've seen on TV during the Olympic broadcast. The venue here, the National Conference Center, is amazing. It's huge. The scale of everything is just amazing. And just to experience a very different culture. I've been to Japan once. That's my experience in Asia. So it's definitely something that I savor, this experience of being here.
Alexis: I'll probably share some similar things. So, this is my second time. The first time was really just two or three days, I don't remember, so I really didn't have time to walk around. So, I did this time. And beyond the tourist things that you would expect people to do when going to a place like China, what I found very interesting was also the translation of the slides that we're actually using today in our different either keynotes or sessions. So, they translate everything, including your name. And they translate literally, so "Bluetooth" is literally "blue tooth." So, there are a number of those translations that I was, "Could someone explain to me?" because I obviously can't read any of that. But, that was fun. So, I'll probably try to have my name, I don't know, maybe not on a business card, but I'll have it somewhere written in Simplified Chinese.
Terrence: So yeah, that's definitely another "What's Cool" I would like to add. I also did the keynote, together with Alexis, and to see your slides and your name and everything translated in Mandarin is pretty amazing.
Roger: All right. Let's turn to a new segment that we're going to add this week, which is a mailbag segment. And Alexis, this first one's for you. I was in a JUG meeting down in Brazil, and one of the questions that came up, they said, was, what's happened to the Sun Java Application Server and its relationship to the GlassFish?
Alexis: The answer is easy. We're really good at renaming products. So what was used was something called Sun App Server. That used to be the name, moved on to Sun Java System App Server, and then we moved on to, it must have been some iPlanet in the mix. And eventually, we settled on GlassFish as both the community name, for where we develop the product, and the product itself. It's actually a longer name. It's Oracle GlassFish Server, and it used to be GlassFish Enterprise. We have just one application server, and you can't believe, you wouldn't realize how great it is to have just one application server in the company. We used to have way too many. So, we only have one. Whatever he knew, and probably liked if he's talking to you about it, is something he can find within GlassFish today. This is it. There is nothing else to look for.
Roger: Then the second mailbag segment actually comes from our editor, who noticed that we said last week that this was the first time that we did a JavaOne outside of the United States. And that is actually incorrect. The first JavaOne that was outside was in Japan.
Alexis: Two in Japan, actually. Twice.
Roger: OK. So, we had two in Japan there, so we stand corrected. [music]
Roger: Thanks for listening to the eighth edition of the Java Spotlight Podcast. I'm Roger Brinkley.
Terrence: And I'm Terrence Barr.
Roger: And send your questions to [music]

Transcript by CastingWords