Monday Morning Keynote
Technical Keynote
The Java 2 Platform, Standard Edition (J2SE) 1.4 Release and Beyond
Java Web Start Software Advanced Topics
Birds-of-a-Feather Sessions (BOF)
BOF - Java Technology-powered Swarm Research
The ARC Group is estimating over 1 billion Java-based wireless devices by 2006. "2002
will be the year for wireless Java." I find that funny since they said the same thing last
year about 2001. The keynoters see everyone trading applications wirelessly. This was quite
popular at JavaOne Japan last fall. Based on keynoters' wireless "demo", the latest trend in
wireless applications is screensavers. Trading MP3s is out, trading wireless screensavers is
definitely in. (Note to self: After a Sun VP just proclaimed that there will be much less
marketing this year than last, Nokia is now on stage once again. They also had an entire
keynote last year. What's the business relationship between the companies? I bet members
of both companies are on each other's boards.)
JSR-172 is a new JSR for Web Services APIs for J2ME. Not you, and not .Net, but me.
Community Review expected in December 2002 and final release in Summer 2003. "Project Monty"
(no explanation given) is a new project for high-performance virtual machines for CLDC and CDC
devices. It conserves battery life and occupies a minimal footprint. The Hot-Spot team developed
it, so apparently the Hot-Spot spot is not hot anymore and they've moved on to the Monty. Sun is
"definitely supporting Java on XP". Developers were openly encouraged to harass OEMs who don't
include the Java Plug-in for XP.
Microsoft recently proclaimed in a recent marketing supplement in the major developer
magazines that they recreated Sun's Java Pet Store demo using much less code than Sun had
used and that it ran several times faster than Java, using .Net of course. First, Sun says
that Pet Store was not meant to be a benchmarking standard. Obviously no one has told Larry
Ellison because he has been proclaiming how fast Oracle Application Server can run the Pet
Store demo for the past year, including in his own keynote at JavaOne last year. Sun and IBM
say Microsoft cheated by rearchitecting the Pet Store app. Personally, I have seen Sun's code
and I don't blame anyone for rewriting it whether it makes a performance increase or not.
Sun and IBM have "redone" their own version and counter by claiming it now runs 18-22 times
faster than .Net. My question is, "Who cares?" Who is going to tell their manager that we
should be using technology X because it allows our customers to buy goldfish over the internet
20 times faster than the competition?
A new Application Verification Kit (AVK) for J2EE has been released. JSR 173: Streaming API
for XML (StaX) is another new JSR. Java Web Serviced Developer Pack EA2 will release in June 2002.
Everything you need to download and deploy web services (i.e. build XML screensavers).
Project Liberty is a "multi-industry alliance of over 50 companies" to deliver single
sign-on and identity services. Liberty is "an open standard for federated data", in other
words an open specification for how companies can share information about you.
WSDL is intended to be created and read by developer tools, not developers. For the
un-officiated, WSDL is XML over HTTP for UTOME web services communication. JAX-RPC is
the "fulcrum" for Web Services in Java platforms (J2ME, J2SE, J2EE). JAXP1.1 is the core
XML library for XML processing. JAP 1.2 is coming soon. It adds W3C schema support. JAXR
supports access to XML registries like UDDI and ebXML. It's another high-level wrapper.
JAXM is an API for XML messaging, yet another high-level wrapper. JAXB maps XML types to
Java language types. It's much simpler than using XML parse trees. It's targeted for final
release in Q4 2002. All of these APIs will be packaged together in a JAXBOX that will ship
with oven-roasted beans instead of peanuts and will include a free XML decoder ring. This is
otherwise known as the Java XML Pack. The first release was in November of last year and is
being updated quarterly.
JSR-109: Implementing Enterprise Web Services is a new JSR for defining the programming
model for J2EE Web services using JAX-RPC. In other words, how to integrate web services
with J2EE. Soon EJBs will support XML access through JAX-RPC for direct access to EJB services.
J2SE includes many security APIs: JCE, JSSE JAAS, JGSS-API, and CertPath API. These
support HTTPS, X509, PKCS212, RSA, RC5, and many others. The core security API behind
all of these is the GWNITO API (Guess What Number I'm Thinking Of API). But instead of
using these, use JAAS, Java Authentication & Authorization Service, which is pluggable
(nothing was mentioned about playable). There will also be a JAAS module for Liberty
allowing easy use of federated identity on the internet and a 10% discount on postcards
at the Ellis Island store.
MS Visual Studio on the big screens at JavaOne! In a demo WSDL was imported into
Visual Studio for a .Net application. You can use WSDL in Java and in .Net. Text file
based data exchange support, what a concept.
To help boost the economy J2SE also includes support for rich clients. You can use the
Java Plug-in for clients "moderated" by a browser, or you can use Java Web Start for
downloading and caching applications through a browser. The later reduces dependencies
on browsers and allows you to write Swing applications that run outside the browser and
have the added benefit of actually being usable.
The Mobile Information Device Profile (MIDP) 1.0 is an application execution
environment designed for mobile devices. It supports applications in "walled gardens".
The J2ME Wireless Toolkit supports swappable skins for RIM, Motorola, Palm, and Playboy.
For the later be sure you use the PersonalJava 3.1 platform which fixes some bugs and has
enhanced "web fidelity". (Note to self: Ask a Sun representative if they get bonuses for
making up and submitting meaningless marketing mumbo-jumbo like "walled gardens" and
"web fidelity".)
J2SE 1.4.1, otherwise known as "Hopper", is maintenance J2SE release targeted for the fall
of 2002. "Mantis" 1.4.2 is targeted at first half 2003. J2SE 1.5 is the next major release
and is targeted at the end of 2003. The JSR has just been submitted to the JCP. Likely
themes include quality, monitoring and manageability, performance and salability, clients
for XML and web services, and ease of development.
J2EE 1.3 shipped in September 2001. The major theme in J2EE 1.4 will be web services
based on JSR-101, "JAX-RPC" and JSR-109, "Enterprise Web Services". Updates to JSP APIs,
Servlets, Connectors, and EBJ QL will be included.
This overview of 1.4 was not my first choice for this timeslot since I went to several
of the 1.4 overviews last year, but the Web Services talk was full and everyone else was being
turned away. This was the first class I ran into.
Miscellaneous notes about 1.4: JDK 1.4 supports single sign-on with Kerberos in cases
where the OS supports passing Kerberos credentials. Sun thinks they have all the CORBA
support they need with the additions made to 1.4. The focus management subsystem has been
rewritten in AWT.
"Hopper", J2SE 1.4.1, is targeted for early fall of 2002. Includes bug fixes, Itanium
support on both Windows and Linux, and as usual more performance work including concurrent
garbage collection. "Mantis" 1.4.2 is targeted for early 2003. More maintenance. More bug
fixes. "Tiger" 1.5 is the next major J2SE release. If you read my notes on the Technical
Keynote you'll notice that this is the same information that was presented there. Most of
the slides are the same too. Too bad this presenter didn't go to the keynote this morning.
This talk might actually be interesting.
Future language additions that are being considered include generics (templates),
autoboxing of primitive types, support for importing constants, iterating over collections,
and metadata. Last year at JavaOne the chief architect of generics said that generics had
already been designed and implemented for quite awhile but the "switch" had not been turned
on in the compiler. Apparently, either they are still timid about flipping the switch or the
generics dude got laid off and no one know where the switch is.
"It seems like printf and scanf was easier to use." After new I/O libraries were added in 1.4.
Yet more I/O libraries and rework are possible in 1.5. On another note, every time the speakers
talk about performance enhancements they also mention bigger heap support, i.e. "we need to
support more RAM".
Other miscellany for Tiger: A new JSR will likely target Unicode 3.1 and Unicode
surrogates (two Unicode values for each surrogate character). A Java Isolation API for
running Java platform tasks as isolated computations is being considered. A new API for
invoking the javac compiler inside the VM is also being considered. Many people are using the
undocumented Sun API for invoking the java compiler. Also in the works is a Disconnected JDBC
API for RowSets which can transmit a RowSet as a chunk of XML.
Java Web Start is used to deploy Swing-based clients over the web. Downloads can be
interrupted and transparent automatic updates when needed. Applications are cached. It
implements JSR-56: Java Network Launching Protocol and API (JNLP). This defines an XML
file format. Java Web Start is the reference implementation for JNLP clients. JARDiff
is used for incremental updates.
The first demo is WebPad, a version of notepad that can be installed from the web.
One jar is used for code and another for icons. The JNLP file mostly just points to the
jar files needed. A JNLP file must contain absolute URLs. To fix this problem they use
a JnlpDownloadServlet that preprocesses tags (like $$codebase) into absolute paths and
names. All of this is shoved into a WAR file and deployed on Tomcat. The user can click
an internet hyperlink to download and automatically run WebPad. The app includes Java Help
in case the web user doesn't know how to use a lame text editor. The help system consists
of two jar files, the help system and the help content and is only downloaded when needed.
"Eager" resources are downloaded when the application is launched. "Lazy" resources
are downloaded when they feel like it. The Java Help jar, jh.jar, is lazy. If you want
to know when downloads happen or force them to get movin' then you need to use the
javax.jnlp.DownloadService.
With Web Start you can specify in the HTTP GET which version of the program you
want to download. For file access Web Start prompts the user for permission before
the file dialog is displayed. It runs in an "enhanced sandbox" for secure access to
the clipboard and to the local filesystem. The javax.jnlp API includes 8 services: BasicService,
FileOpenService, FileSaveService, ClipboardService, PrintService, Persistence Server,
and two other that I didn't have time to type in. Web Start can also save files back to
the web server.
New features in Web Start: Customizable splash screens (Ooh! Ah!), updated application
manager, more sample code, expanded encoding support for JNLP files. Three forms of the
splash screen are available: text only, icon only, or text and icon (Wow!). A new single-click
auto-installer has been developed. It uses the OBJECT tag in HTML. Web Start supports HTTPS
now. It has improved multi-user support (especially for Windows).
The BOF that I wanted to go to was filled-up and everyone was turned away. The next one
in the same time slot was the same. On and on until I finally got into a session, and not one
that I cared about. There was standing room only and the room was about 95 degrees. I quickly
left and worked on my laptop until the next BOF timeslot.
My next BOF choice was on Swing Performance improvements but with so many people in line
I decided to improve my own performance and go somewhere else. Instead, I opt for Java
Technology-powered Swarm Research because it sounds cool and I have no clue what it is.
Eureka! An electrical plug-in for my laptop, back row, corner seat. Swarm is cool.
The "motivating example" is "wasps building a nest". Apparently Swarm is getting all of
your devices talking to one another so that they can communicate, swarm, sting you all over,
and generally make your life miserable. "Motivating example number 3" is one "full-featured"
satellite communicating with many "micro-satellites". Back to the birds-and-bees metaphor
(birds-of-a-feather, bees, swarms, get it?), if you're Queen goes down then you're definitely
screwed.
"If you can't teach the wasp how to build the nest, then how do you teach the swam to build
the nest." This speaker definitely had a few too many alternative beverages on the tradeshow
floor. Now the topic turns to emergent behavior and Conway's Game of Life. Sudden flashbacks.
My undergraduate thesis was on Artificial Life. The presenter mentions that the Game of Life
doesn't produce emergent behavior. Nice to know he's up-to-date on his 25-year-old research
papers. The topic now moves to communicating between ants (since I couldn't get into the
earlier session on Jakarta Ant this is quite welcome). Use simple rules for complex behavior.
We're now up to the research produced 20 years ago.
The speaker is a researcher from John Carroll University. (After a quick check I verify
that his name is not John Carroll.) Apparently his college student research team has produced
nothing of any concrete use. He keeps mentioning the term "freshmen". Yet another acronym crops
up, JSWEEP. No mention is made for what it stands for and A - I get the impression the speaker
doesn't know yet and B - I've had my full of acronyms today and don't really care.
The topic now moves to nanobots and curing cancer. I'm all for curing cancer, but I get
the distinct impression that this speaker couldn't cure a paper cut without help from his
lab rats. Back to the satellites metaphor. A question is asked, "Are the satellites low-earth-orbit
satellites?" Now I'm even more confused because the answer is no. Apparently my assumption
that the satellite metaphor was only for wireless devices is incorrect. This combined with
some mention of the name Air Force thrown out a few minutes ago is really starting to worry
me. The topic now turns to online multiplayer interactive games. I'm not even a gamer and it's
still quite obvious that this guy is not aware of what has happened in the online gaming world
in the past five years. The speaker now makes mention of XML DTDs and, once again, it's painfully
obvious he's a year-and-a-half out-of-date on his XML knowledge. A group discussion gets started,
the whole point of these BOFS, and the topic now moves to periodic asteroids, neural nets, and
evolution. I decide to return to the hotel and go to bed.
[ Index ]
[ Next ]