July 01, 2005

JavaOne 2005: Day Three

The day starts with Nokia's key note. The theme for the day seems to be mobiles (and Nokia). Being a Finn, I was happy to see to see Nokia in an extremely visible role throughout the conference and up on the stage, but to tell you the truth, besides the published numbers, the key note wasn't that impressive. I've been saying the same thing before, but I'll say it again: Java is a good compromise and it scales well. Those are the biggest reasons why its so popular in devices and server platforms where vendors can deploy the JRE with the product without needing to worry about users needing to download it separately. The highlights of the keynote for developers are MSA (Mobile Service Architecture) and 3rd version of series 40 which includes 3D graphics, camera support and local files among other things.

I spent most of the day in various JSF related sessions. Sun's JSF session was pretty standard sales pitch with some impressive JSF implementations, but nothing really new. Craig McClanahan's Shale - the next Struts however was very very interesting, and while it's still in development, I can say that Craig has probably done it again. It's an overall nice framework leveraging a lot of stuff from others and most likely will become a de-facto standard framework to use with JSF. Craig also dropped some hints that the ideas in Shale will be merged into JSF 1.2. The next session about Spring was also interesting, though I'm quite familiar with it already.

In the evening, we had a get-together with MyFaces and Oracle ADF folks. I was happy to meet all the guys in MyFaces project and we had a lot of interesting talks about JSF and web frameworks in general. I forgot to highlight in Day Two's post Oracle's announcement on them joining MyFaces project and contributing all of their nice ADF Faces components to MyFaces project. Big and great news!

---
Day three

Pertti Korhonen: Make it Mobile: The Power of Mobile Java

1.7 billion mobile users in the world today

708 million mobile Java device units shipped by June 05
>300 million devices based on Series 40, 60, 80 platforms to ship from Nokia by December 05
635 mobile Java mobiles
Mobile Java base to reach 1 billion in 06

Industry Collaboration to de-fragment Java
Mobile Service Architecture (MSA)
- Simplify mobile Java standards

JSR-248 for simplifying existing APIs
JSR-249 for new and advanced APIs

3rd version of series 40:
3D graphics, local files, location information, SVG, camera
Use the prototype SDK

MIDP 2.0: enhanced UI, support for richer, more insteresting applications
SNAP mobile: community enabled, multiplayer gaming
SNAP server runs on Sun platform

CDC 1.1 with full JSR-248 compatibility and support on series 60
availability of full JSR-249 implementation
As much of J2EE platform on mobile as possible

JSR-232 OSGi Mobile Expert Group

E2E architecture for next-generation mobile Java
- middleware on the client to add value to mobile

Next-gen mobile Java in action
Eclipse IDE
Nokia developer's suite for next-gen mobile java

IBM power of mobile middleware

Forum Nokia gives developers mobile business opportunities

Preminent client
- reduces fragmentation by automatically detecting device and presenting only device-

// NOTE what's their strategy on VOIP?

JavaServer Faces

Lots of good starter applications in Java Studio Creator
Business Objects - Crystal Reports XI
ESRI ArcGIS - impressive mapping components
Otrix - AJAX enabled components
- dynamic lazy loading with big tree/table support
Software FX - CharFX Components
Sun Web UI components - more in Creator2 early access


Shale - the next Struts
// get the slides for this presentation
client/server side validation, but with s:scriptValidator
commonsValidator supports both, f.ex.

Spring and Tiles integration

Share and Spring, using spring's vriable resolver
Add shale-spring.jar to WEB-INF/lib
Use share-core.jar to use Shale without Spring integration

Spring integration lets use Spring beans as JSF managed bean - very cool!

dialog-config just like faces navigation config but for dialogs instead of individual pages

Retro views
use html for your views
Define components in XML
tie html elements to components with jsfid

better, easier for designers to work on your html code
Shale copies Tapestry in that, Clay is tapestry-like view model

Two modes
Preview - used by developers and graphic artists e.g. http:// .../logon.html
Runtime - used by developers and end users e.g. http://.../logon.faces

in clay-config.xml you can configure, override default validator etc. component values

Remoting
remotely invoke server-side methods that return XML

Shale is actually implmented as a filter
remote calls mapped to .remote

Web flow
modeled after Spring's web flow
- more intuitive for JSF developers
- not as powerful (intentionally)
dialogs
- subdialogs
states
- action states
- view states
transitions

in dialogs you can override the outcome
dialog-config.xml








invoking dialogs
- enter dialogs with the JSF expression language

A shale navigation handler process the expression

Shale stores a status object in the session map

transitions can be outside of any state

Shale has a primitive failure handler for back-button w/ submit
using a shaletoken

what about url and bookmarking?
What about multiple windows and dialogs?


Spring and JSF: Synergy or superfluous
// get the slide of this presentation

Spring is a layered frameowrk
loC Container - dependency injection
AOP framework
Non-invasive
application code has no or minimal dependency on Spring
Focus on POJOs
Facilitates testing
address end-to-end requirements
provide an alternative to traditional EJB
- or a better way to access EJB
facilitate OO best practice
simple bean lifecycle capabilities
postprocessing - extending the container
bonus beans - propertyconfiugrer for setup, messagesource
inversion of control with dependency injection




org.sprignframework.faces.JSFVariableREsolver

Decouple persistent API details from business logic in service objects
easy to mock dao interfaces
dao interfaces should contain:
- finder methods
- save methods
- aggregate function methods
Also known as the repository pattern
TopLinkDaoSupport - check out TopLink project

Shale integration / acegiSecurity integration

jSF technology is usable without htelp, but
spring gives you:
persistence and transaction model


IBM general session
continuuing to innovate for our customers success
-service data objets
-java realt-time programming
-aspectJ

AspectJ as a way to simplify programming and make code more maintainable
Robocode as an example!
MBean api for controlling robots - interesting

if you capsulate feature as asepcts you can add event based behavior into your classes without changing a single line of code in them

www.ibm.com/developerworks/java
www.ibm.com/developerworks/opensource

IBM decides to support Geronimo
a continuation of IBM's open source strategy
IBM Gluecode SE sits on top of Geronimo
www.gluecode.com


SOA is an approach to IT that builds business process from reusable component modules or "services" that are independent of applicaiton and the computing platforms on which they run.

broadest portfolio for end-to-end SOA
extensive real-wolrd customer expereince
comprehenisve guidance, education, community & enablement
robust partner community
www.ibm.com/soa

Posted by thoughts at July 1, 2005 05:29 PM | TrackBack
Comments
Post a comment









Remember personal info?