Before the day’s sessions began in earnest, Sun organiser David Coldrick got up to plug two useful resources for Java developers to keep up with the latest developments between Developer Days conferences: The Java Posse podcast (which I highly recommend as well!), and javapassion.com, which I have covered in this blog before.
Building Great Games for the Mobile World, Chuk Munn Lee (Sun)
Having done some work on mobile games already, I was hoping for some insight into the technical issues that face game developers on this platform: device-specific API fragmentation, application size and processing speed limits, inconsistent control methods, and more. What we got instead was a non-technical overview about the pros and cons of developing games for mobile handsets as compared to the PC- and console-based game platforms.
In brief, Java Micro Edition (ME) is a lightweight platform that can let you produce a fully-realized game for millions of potential users with as little as one man-month of development time. Successful games for this platform should take into account the fact that gamers will be playing on-the-go, for brief periods, and may stop playing at any time. Given this, the popular practice of adapting old games from other platforms to handsets is not a great approach.
Optimizing Performance for Java SE & Java EE Applications, Simon Ritter (Sun)
Again, my expectations were a bit off the mark for this session (I really wish the conference programme had included session abstracts). Rather than a grab bag of useful techniques for writing speedier code, or an overview of certain common performance anti-patterns, what we got was a tutorial on tuning the garbage collection algorithms in the Sun Java Virtual Machine (VM) using a variety of undocumented (or poorly documented) command-line switches.
I quite enjoyed the explanation of the VM’s heap management techniques, and how they allow for the tendency of Java applications to make extensive use of short-lived objects that must be garbage collected quickly and efficiently for Java to work, as well as the look at the biased locking algorithm that was introduced to further improve performance in version 1.5.0_06 of the Java 5 runtime. But the vast majority of the performance tweaks discussed would apply really only to high-load, multi-processor servers, so were little more than technical curiosities for me.
SOA, JBI, BPEL: Strategy, Design & Best Practices, Rima Patel (Sun)
In his day one session, Ashwin Rao showed off some of the tools Sun is cooking up for developers to tackle the unique challenges of building applications based on discrete, specialized services — a practice known as Service Oriented Architecture (SOA). Ms. Patel took a step back with this session and looked at the motivations and technical challenges of SOA, which must be considered long before development tools come into the picture.
While developers are used to facing new accronyms and buzzwords that, once grasped, bring technical benefits including performance, usability, and ease of development, SOA is very different, in that the motivations that drive it are largely business-centric.
Many big businesses today are straining under the weight of overlapping legacy systems that have been developed and connected on an ad hoc basis, on conflicting, often vendor-specific platforms. The SOA approach to this problem is to identify key services that exist within these systems and to either reimplement them or wrap the existing systems in interfaces such that applications can discover and access them openly, asychronously, statefully and securely through the exchange of XML documents that mirror the business documents that would change hands in the paper-based equivalents to the relevant business processes.
Ms. Patel went on to briefly outline the Java Business Integration (JBI) specification, which provides the plumbing for SOA applications in the form of an open framework that is both vendor and platform neutral. Not a bad option if you’re rearchitecting the IT systems for a major bank, which I’m not. For me, this session was mainly about confirming that my vision of what SOA means roughly matches with Sun’s. I make no guarantees as to whether or not it matches yours.
Java SE: Tiger, Mustang and Dolphin, Simon Ritter (Sun)
A relatively straightforward session, this talk rattled through an overview of the most high-profile features coming in Java 6 (codenamed Mustang) later this year. There’s plenty of good coverage of this going around, especially because Sun has been very open about Mustang’s development, with weekly builds available for download and testing.
Personally, I’m most excited about the enhancements for desktop-based Java applications, but Mr. Ritter skipped over most of these in favour of more core changes to the platform.
Mr. Ritter did take a few minutes to give some hand-wavy examples of the sorts of things planned for Java 7 (codenamed Dolphin), including support for XML code appearing natively within Java code, and bytecode changes to support dynamic languages (such as scripting languages) running on the Java VM, but with almost nothing set in stone for Dolphin, every scrap of information was accompanied by the disclaimer: “On the other hand, we might not do this at all.”
Making AJAX more effective with servlets, JavaServer Pages Technology, & JavaServer Faces Technology, Doris Chen (Sun)
The confused title should have scared me off, but I went along to this session hoping at least to see some elegant examples of supporting AJAX applications within server-side Java code. I gave up and left after watching roughly 45 minutes of the speaker’s confused and confusing attempts to simply define what AJAX was. I wasn’t the only one to walk out.
I hate to pan the presenter further, but it’s a sad day indeed when you can’t keep a room full of developers interested in a presentation about AJAX.