The new Blu-ray disc opens up a lot of possibilities for Java developers via the BD-J. That's when or if an SDK/API is released.|
Allegedly a Java interpreter will be built into Blu-ray disc controllers. The technology will be called BD-J and will add an interactivity layer to the Blu-Ray disc and enable produces to develop custom menus, graphics and network capability.
The built in network support is perhaps the most interesting part of this technology because it means that the disc itself can contain software capable of updating content whenever the user chooses, and running updated software and games.
Here's a quote from the Sun site:
DVDs will soon be a legacy technology, to be replaced by an HDTV-capable format using blue laser technology. In order to entice consumers to a new format, more than just better picture and sound quality is needed. Java technology has the answer, in the form of better, more seamless interactivity that integrates with the Internet. Building on the Java TV API's five years of development on the set top, Java Platform, Micro Edition (Java ME platform) technologies included in the Blu-Ray specification hold the promise of changing the way you watch movies at home. Popcorn not included.
OK there's the overview, what about the technical details? Looking at this document you can see that the BD-J is part of the Personal Basis Profile - a profile that was developed for the consumer electronics sector. This profile will facilitate making applications on the Blu-ray. Below are some of the facets:
Application Execution / Management
Java applications (JARS in this case) will be called Xlets and can be associated with titles on the Blu-ray disc. An Xlet can be set to auto-start. The Xlets are stored in a Application Management Table (AMT) on the Blu-ray disc.
The GUI elements (such as menus, diagrams etc) will be interactive with a remote control and optional pointing device. GUI code will be supplied by HAVi and mandated by GEM. The GUI will allow alpha colouring so it will be possible to overlay a running film with graphics of some sort.
Installed Media Player
The API will include a media player similar to JMF which could play media from the disc or over the internet.
Vector-based font rendering will be supported in some way, as will the rendering of JPEG, PNG and other images.
A java.net package will come as standard and incluse support for secure sockets JSSE. This will allow for downloading and uploading of content.
java.io classes will facilitate the reading and writing of data from the Blu-ray disc. There are 2 types - mandatory System Storage and optional Local Storage. System storage is a small area on the Blu-ray disc available soley to Xlets and Local Storage is the on an available HDD. The path for storage is specified by GEM.
So what does all this mean?
It basically means that Blu-ray discs can be authored and updated after production time using Java technology. A movie on a Blu-ray disc will not only be a movie it will also have custom Java software built into it. This software will be run by a Java Virtual Machine on the player and it could also be feasible for the software to interact with other software on the Blu-ray hard drive.