Tuesday
Tuesday began with an
early meeting with a prospective client, followed by a signing for my
book, JavaServer
Faces in Action. I'm always happy to hear what
people think of the book, and flattered when they say it's a
high-quality piece of work. Speaking of good books, Core
JavaServer Faces authors Cay Hortsman and David
Geary also stopped by (they didn't bring a copy of JavaServer
Faces in Action for me to sign, unfortunately). I met David last
year at JavaOne, but this was the first time I had met Cay, a very
pleasant guy.
After the book signing,
David and I made a couple of futile attempts to find some decent food
in the Moscone Center. Just when we were about to settle for some
unappetizing looking sandwiches, we remembered that there was a
technical session we wanted to attend -- "Achieving Rich
Clients with JavaServer Faces". Surprisingly, this year's hot
buzzword, Ajax, wasn't in the title, even though it was clearly the
core topic of the presentation.
The presentation was
led by Ted Goddard of ICESoft Technologies. Since Ajax support is
typically delegated to JSF renderers, Ted covered three different
renderer implementations. He started by creating a renderer with
basic JavaScript support, and then gave an example that rendered
JavaScript code using the infamous XMLHttpRequest
object to communicate asynchronously with the server. This approach
works well, but without some additional infrastructure it's limited
to updating a single component on the page.
Ted's final approach
was quite clever: a representation of the browser's document object
model (DOM) is maintained on the server, and changes to components
are translated to DOM changes, which are then sent directly to the
browser (via a specialized JavaScript framework). The end result is
that multiple components on the page can be updated without
refreshing the entire page, as only relevant portions of the page are
updated. This creates a more interactive user experience without
requiring any JavaScript on the part of the application developer.
You can even have a real-time chat experience with little extra
effort. This is the way you can expect JSF to be used with Ajax --
the components themselves handle the details for you, leaving you to
worry about the application logic.
As it turns out, Ted's
company is working on a product called ICEfaces
that is built on a client-side DOM architecture called
"Direct-to-DOM" technology. The product is currently in
early access, but it's already quite impressive. My only
concern was that Ted couldn't give me any clever solutions to
handling the potentially massive amount of state (the DOM and
possibly the JSF component tree) that must be maintained on the
server.
After the session,
David and I grabbed some lunch at the Metreon (Sony's techie mall
located next to the Moscone Center) before I tried to attend
Stan Silverberg's session, "How to Build Killer Portlets
Using JavaServer Faces Technology". Apparently, having "killer"
in the title proved wildly compelling, because the line was so long
that the 757-seat Yerba Buena Theatre was full before I even got to
the entrance. Suffice to say both JSF and Portlets were popular
topics at JavaOne. I have been using the MyFaces
portlet integration written by Stan for the next
generation of JSFCentral, so I was anxious to hear his take on
integrating the two technologies - there's no doubt they're a
powerful combination.
I used the extra time
to polish up my presentation for Oracle's booth on the pavilion
floor. This one was called Building a JavaServer Faces Community,
and covered some of the same content as the previous presentation,
but also talked about how JSFCentral serves as a hub for the JSF
community.
After my presentation,
I met Stephane Bastian, CEO of an up-and-coming JSF component vendor
called Otrix.
Stephane and I have corresponded via e-mail since the early days of
JSF, so it was good to meet him in person. After our chat, I stopped
by the ICESoft booth to learn more about the ICEfaces product. I
think ICESoft is definitely on the right track.
While I was talking
with vendors in the pavilion floor, Oracle VP Thomas Kurian gave a
keynote that highlighted SOA, EJB 3, and JSF. On the JSF side of
things, he made two key announcements:
- Oracle will be
working with MyFaces and donating some of their ADF Faces Components
to the project
- Oracle will be donating JDeveloper's JSF design capabilities to Eclipse.
There were also demos
of JSF user interfaces with Ajax-aware components used in an SOA
environment and working with Oracle's BPEL engine.
After leaving the
pavilion I headed over to the IMAX theatre at the Metreon. Jonas
Jacobi from Oracle had generously offered tickets to a
private showing of Star Wars: Episode III, and I was excited to see
it on the big screen. As luck would have it we waited about 45
minutes for the folks at Lowes to play with the sound and video,
until the film actually disintegrated on the screen (interesting
effect, I must say). The backup plan was to watch Batman Begins,
which I found quite enjoyable -- so much so that I didn't
realize I was missing all of the evening's BOFs.
After the movie, it was
time for a few more drinks and schmoozing -- this time it was
Sun's party, where I had a nice chat with Ed Burns, Jacob
Hookom, Adam Winer, and Pierre
Delisle, Greg Murray, and Amy
Roh, among others. It was nice to talk to Jacob about
his Facelets
project, which offers an easy-to-use alternative to JSP for JSF
views. (If you'd like to learn more, keep an eye on the site - Jacob
has agreed to write a series of articles about Facelets.) Needless to
say, I was glad to get a little shut-eye that night.
Page:
1
2
3
4