• Home
  • About
  • Sample Apps
  • Videos
  • Why RIA is not only about technology

    May 22nd, 2008

    I attended today’s Orbit-iEX talk on Rich Internet Application strategies and frameworks by Sibylle Peter and Dieter Holz of Canoo and Markus Pfeisinger of Crealogix.

    Here is a summary of the talk in my own words.

    Disclaimer: if I get anything completely wrong, please feel free to leave a comment or add your own thoughts.

    The first part of the talk presented some issues you should consider if you are moving into RIA development.

    Many developers that first start out in RIA development have lots of experience building HTML applications. They are in the phase where they have recognized the need for RIA. They have selected an RIA technology (e.g. based on AJAX, Flash or Java). They have started implementing first projects.

    The talk identified 5 frequently-encountered misunderstandings regarding RIA development within this first phase.

    IMG_4131

    Similar to the Phelps tractor (a steering mechanism that was useful for horse-drawn carriages, was not as useful for motorized cars), there is more to RIA than just exchanging the technology.
    For example in HTML applications, check boxes are frequently used to select more than one entry. This works well for HTML apps, but in RIAs these check boxes are no longer required because multiple table entries can be selected directly.

    RIA technology offers more user interface components. Developers need not rely on typical HTML conventions to build their applications.

    Similarly, paging in HTML apps is useful because it offers a way to manipulate long data tables.
    But in RIA, paging is no longer required. Here Sibylle compared the Zimbra web email client with Canoo’s sample app ULCMail. Zimbra is available as an HTML client and as a richer “advanced” version offering some AJAX features. But both versions offer the same user interface, even though the advanced version feels more desktop-like. Using paging for a richer interface like this can be even confusing.

    Another misunderstanding is that RIAs need to be self-explanatory. Sibylle showed this interesting graph:

    IMG_4132

    which positions applications from simple look-up HTML apps via typical RIAs and productivity tools to games based on the frequency of interactivity and GUI richness.

    With RIA you can get a lot closer to productivity tools.

    A typical target group that requires productivity tools are office or knowledge workers. Typically this group uses an application for long periods of time per day and is thus motivated to spend more time learning how to use it.

    Applications need to be fast, interactive, smart, offer a good interaction design. And they need to be robust and stable since they are used daily. I.e. efficiency is important, more important than ease-of-use.

    Misunderstanding number 3: many developers believe RIA frameworks can be built without much prior experience in the new technology.

    For example, HTML apps have a sequential page flow. A request is sent to the server and
    every request has a separate page view. Typically a view does not need be observable and does not need to be monitored.

    RIA does not have a sequential page flow. Views need to be monitored.

    IMG_4137

    RIA frameworks need to sync various different views for the same data, allow modifications to a selected item, etc.

    Misunderstanding number 4: RIAs can be “generated” from service definitions. In HTML apps there is a “one to one” relationship between views and service calls. In RIA this is a “one to many” relationship and interaction design becomes important.

    And finally the last misconception developers have regarding RIA development is that presentation logic is the same business logic. In general, HTML apps tend to have less presentation logic.
    For RIA, the views are more complicated and you need to separate between presentation logic and business logic. RIA requires a presentation model to watch and monitor the views.

    For example, if you enable a button after a form has been edited, this will need to be monitored in some way.

    The talk offered an overview of the effects that RIA development will have on your software architecture:

    RIA is event driven. A presentation model is used to administer the presentation logic.

    RIA requires a different kind of service:

    • fine granular requests to service layer
    • service design independent of view design

    Application components are reused in a different way (reuse of the actual code instead of by URL).
    And the presentation logic and business logic will differ.

    Regarding the general setup of projects, RIA requires more input regarding:

    • interaction design
    • the distribution of business logic and presentation logic
    • framework development and integration (some AJAX libraries are still fairly new
    • and there is some need to build component libraries, esp. for large, complex applications

    The interaction design needs to consider the possibilities and limitations of RIAs, the target audience, what domain knowledge is available, as well as usability engineering.

    Besides these typical pitfalls,
    RIA is the way to go to provide efficient and fast web applications for power users, offering

    • better interaction
    • better work experience
    • performance
    • robust
    • good look and feel

    In the second part of the talk, Markus Pfeisinger presented to frameworks for Adobe Flex / Flash development:

    • Cairngorm
    • PureMVC

    He briefly provided an overview of their main characteristics and discussed the benefit of using a framework in general and these two in particular. He seems to prefer PureMVC.

    Finally, he gave a short peek view of the Flex Code Generator.

    Interesting aside: Markus used Sliderocket to present his slides.


    Maintenance Release UltraLightClient 6.2.3

    May 20th, 2008

    We are pleased to announce that minor release UltraLightClient 6.2.3 is now available for download.

    This is a maintenance release for 6.2. Please see the release notes for a list of implemented feature requests and fixed problem reports.


    29th May: JUGS Event on RIA for Mobile Devices

    May 19th, 2008

    Canoo and Java User Group Switzerland are organizing an event on Rich Internet Applications for mobile devices on 29th May at the Technopark in Zurich.

    Canoo’s Dierk Koenig will present a talk on “Going Mobile with JavaFX Script, Groovy and Google Android“:

    Since the 2007 JavaOne conference, the JavaFX Script technology-based application MusicPinboard has been justifiably cited by many (including Sun) as a significant demonstration of the power of JavaFX Script technology as well as a radical improvement over Java technology in terms of developer productivity.

    One year on, Dierk König shares his thoughts about what kind of audience JavaFX Script technology is likely appeal to, today and in the future. In addition, he offers objective comparisons with some rising competitors in what he calls the RIA/mobile space:

    • Groovy, which has in recent months encroached on the JavaFX Script technology space by including a data binding mechanism as part of its Swing GUI Builder
    • Google’s prototype Android platform, which the global giant hopes to position as the platform of choice for providers of high-end mobile device and business applications alike

    Dierk contends that each of the solutions described embodies a different vision of how the mobile experience will evolve in the near future and that the time frame may be shorter than we think when it comes to seeing which technology gains the upper hand.

    Dierk recently presented this talk at JavaOne 2008 together with Mike Mannion. If you’re based in Switzerland, this is your chance to hear the talk.

    The second talk will focus on Google Android. Markus Pilz and Peter Wlodarczak of Greenliff will provide an overview of the Android GUI framework and show a short sample how to write and configure phone GUIs with it.

    Android provides a nearly complete JDK 1.5 class library. However, AWT is only partial supported, and Swing is not supported at all. Instead, Android introduces its own GUI framework with Screens, Views and its own widget set, which nicely integrates with the Android application live cycle which is based on Activities, Intents, Providers and Services. Mobile application development is made easy through very simple reuse of existing Activities, Providers and Services. Full XML-based GUI layout allows dealing with different screens sizes and color depths without development know-how. Contrary to other mobile platforms like the iPhone, Android has been designed as an open platform for software development and doesn’t have many of the limitations i. e. JME has.

    Event details

    Program:

    17:00 – 17:50: Talk: Going Mobile with JavaFX Script, Groovy and Google Android incl. Q/A
    17:50 – 18:00: Break
    18:00 – 18:50: Talk: The Android GUI Framework incl. Q/A

    At: Technopark, Technopark 1, Zurich, Switzerland

    How to get there: PDF or .html


    Orbit-iEX Talk: Avoiding RIA Pitfalls

    May 19th, 2008

    Canoo’s Dieter Holz and Sibylle Peter are presenting at this week’s Orbit-iEX 08 in Zürich.

    Orbit-iEX in Zürich

    a-10 Rich Internet Applications: Frameworks und Strategien

    Raum K3
    Donnerstag, 22. Mai 2008
    11:15 – 12:45 Uhr

    (…)
    Im Seminar zeigen die RIA-Spezialisten Dieter Holz und Sibylle Peter an konkreten Beispielen, welche Herausforderungen bei der Integration von Rich Internet Applikationen in vorhandene Intranetanwendungen entstehen und wie sie gemeistert werden.

    The talk is based on their project experience and will point out common pitfalls regarding Rich Internet Applications and practical ways to avoid them.


    JavaOne 2008 Day 4

    May 10th, 2008

    The last day started off with a Sun general session. James Gosling was the host and invited the most interesting products or prototypes of this year’s show up on the stage for a demo. Two products are worth mentioning from my point of view. A company called Sentilla released a sensor running Java and it also comes with a software development kit. The hardware has a number of different sensors, such as accelerometer, temperature sensor etc. The sensor is tiny, can be connected wirelessly and requires very little power. For example, if attached to a railroad car the vibrations of the train on the move could generate enough power to keep this sensor running. The second product was LiveScribe and the demo was nothing short of stunning. LiveScribe is a pen running Java and equipped with an optical sensor, a microphone and and LCD display. You need special paper for it to work (the paper can be printed at home for free on certified laser printers). The pen records everything you write and can even record audio while writing. It can also be controlled by pointing the pen to “printed buttons”. Notes written with this pen can be viewed and even replayed on a desktop computer. The audio recording naturally enhances the written information. There is also an SDK available. For example, applications can further process the results of the built-in handwriting recognition. One demo demonstrated this by translating words being written to a foreign language. This product is a real eye opener.
    The next session was titled “Designing Graphical User Interfaces 101: From User Needs to Usable GUIs”, a promising title but a real disappointment. The session was already over after 30 minutes (rather than 60 minutes) and the two presenters had barely enough material to fill even that. Sometimes I really wonder how the quality assurance in the selection process is executed.
    Our company had two talks at the conference and the talk “Going Mobile with Java FX, Groovy, and Android” was so popular that a rerun was held on Friday afternoon. Having missed the first run I had now the opportunity to attend this presentation. Mike and Dierk made a really good show and this was one of the few session that dared to see past the marketing hype of Java FX. Hats off to Sun for accepting sessions that are critical about technologies Sun would like to push.
    My last session of this year’s JavaOne was “Rich Internet Applications with Adobe Flex and Java Technology”. Flex is certainly one of the more promising contenders in the RIA domain and I was eager to learn how Flex and Java can be combined to develop such applications. Unfortunately, the presenter while not being from Adobe just repeated the Adobe marketing message: Flex is so cool! The presentation quality was pretty bad: confusing demos, way too much text on the slides and too many technical details out of context (again quality assurance should have stepped in during the selection process). One interesting side note: when the presenter asked the audience who is using Flex surprisingly few hands showed up.
    Wrapping up JavaOne 2008, this conference emphasized the rediscovery of the desktop, announced the age of mobile devices (again), saw less attendees, and had the worst network performance I have experienced at any conference (regardless of wired or wireless connection).


    JavaOne 2008 Day 3

    May 10th, 2008

    I started the third day with a presentation by Cameron Purdy, “Top 10 Patterns for Scaling Out Java™ Technology-Based Applications”. This was exactly what I expect from a JavaOne session, well thought-out, conceptually convincing and not getting lost in technical intricacies. He clearly pointed out the stumbling blocks on the way to scalablity. I highly recommend you to get the slides (unfortunately, they are not available yet).
    After that I attended “The JavaServer Faces 2.0 Platform Specification” to get an impression what to expect from JSF. In order to prove the popularity of JSF they showed a slide with job trends for different Web technologies. Struts is still no. 1 by far, though declining. JSF is no. 2, but Rails is catching up and might overtake JSF soon. The main goals for release 2.0 are: 1) Make custom components much easier to develop, 2) AJAX support, 3) Page description language, 4) Reduce the configuration burden and 5) Provide for better compatibility between different JSF providers. However, it looks like JSF is evolving at glacial speed (no different from the past). The release is scheduled for the first half of 2009. Obviously, Sun does not commit enough resources to this technology. During the presentation numerous examples were given how to use JSF in the right way. It clearly showed that a JSF developer has to care about too many technical details (e.g. life cycle) and compared to ULC the programming model is still way more complex. After the presentation I spoke with the senior architect of a large financial institution which is using JSF extensively and he was pretty miffed about the slow progress of JSF.
    The Filthy Rich Client sequel by Romain Guy and Chet Haase was up next. This year’s motto was “Filthier, Richer, Clientier”. It is always fun to see what one can do with Swing and Java 2D and they showed off some really nice effects. However, as with any sequel it is stretching out thin. Almost everybody should now have realized that really stunning user interfaces can be accomplished with Swing and Java 2D and not only using AJAX or Flash/Flex. For an example see our souped-up demo application.
    In the evening I attended “Taming the Leopard: Extending OS X the Java Technology Way”. Two guys from Oracle (supported by a member of the Apple Java team) demonstrated how to use Java for writing Mac OS X plugins. One plugin was for QuickLook which is Mac OS X’s way to render the contents of a file without starting an application. This can easily be done using Java rather than Objective C. The trick is to convert the contents of the file to HTML or SVG, both of which are natively supported for rendering on Mac OS X. Using a third party Java library they even rendered the contents of a Java file as a UML diagram. The second plugin was for Spotlight and enabled indexing the contents of jar and class files.
    I really enjoyed the third day of JavaOne 2008 with the majority of the sessions informative and well presented – to the point what I expect from a technical conference.


    JavaOne 2008 Day 2

    May 9th, 2008

    The second day was really busy for me and therefore I could only attend a single session, namely “Closures Cookbook” by Neil Gafter. He is a really good presenter (often performing together with Josh Bloch) and I enjoyed the session. Most of it revolved around timing an operation and how to accomplish this in Java using closures. This was a great example for demonstrating the purpose of closures (reducing lots of boilerplate code) and also how complex closures can become when returning values or dealing with exceptions. I am still not a big fan of the closure syntax and I continue to keep fond memories of how elegant the Smalltalk syntax was.
    Last year the conference was buzzing with everything about AJAX. This year it looks to me that this has cooled off quite a bit. On the one hand AJAX is now somehow established, on the other hand people realized that AJAX only addresses some of the user interface challenges of Web applications. We had a considerable number of visitors at our booth who complained about AJAX and they are looking for alternatives. This primarily holds true for business applications and is also started to get noticed by analysts, e.g. Forrester.


    Sun asks for a repeat performance!

    May 9th, 2008

    Fun and great feedback following Mike and Dierk’s talk at JavaOne; Sun asks for a repeat performance!

    As previously announced, Dierk and I held a talk at JavaOne today (actually Dierk held no less than TWO talks – there’s just no stopping this guy!) The title of our over-subscribed session was “Going Mobile with JavaFX Script Technology, Groovy and Google Android” and in addition to an eager and informed public, we were honoured to have some of JavaFX’s and Android’s champions and contributors in the audience.

    We took the first few moments of the session to emphasize one of Canoo’s core value propositions: The discernment of hyperbole from reality. Indeed, much of my part of the talk concerned the current
    status of JavaFX Script (scheduled official release in June 08) and how it does not (yet) live up to many of the claims being made about it.

    Unsurprisingly, our statements concerning the immature status of functionality and tooling in JFX were not met with silence. And in a delightfully spontaneous moment at the end of the talk we invited
    James Weaver to join us on stage for what amounted to a mini panel session.

    James’ main point was that JFX makes rich client development significantly easier than, say, with Swing, and that this can only be good for the Java platform. Of course, we don’t disagree with this
    statement. But where differences in opinion remain is (a) in the use of the word “significantly”; and (b) in our level of confidence regarding whether or not JavaFX Script will succeed in a market, where
    competition is tough, well-established, and only getting tougher by the week. JFX’s current deficiencies (which we talked about in some detail) of course only reduce its chances of success.

    So what’s our primary take-home based on the feedback we got directly after the talk and at the Canoo booth? That a level-headed and unbiased opinion on a given technology is what the majority of
    conference attendees are looking for. And who are these attendees? Quite simply: Real people representing real companies who serve real customers, who nevertheless enjoy being inspired by examples from the cutting edge, such as our MusicPinboard JavaFX and Mobile Shopping Android applications.

    Finally, to top off all the great feedback, Sun asked us to repeat the session this coming Friday!!! So if you didn’t catch us the first time around, we’d be thrilled to see you in hall 302 of the Moscone Center at 13:30.

    Thanks to everyone who did attend for coming and for the positive feedback!


    JavaOne 2008 Day 1

    May 8th, 2008

    A conference typically starts off with a keynote and JavaOne is no different. This is Sun’s biggest opportunity to brainwash its Java faithfuls, realign them and get them excited about the latest innovations Sun would like to take off. So if you expect any relevant technical information then this is the wrong session to attend, because this is all about marketing and hyping. Nevertheless, it’s interesting to see what hype might be coming next. Whether this will make into a product you can bet your business on is a completely different story.
    John Gage was the host, as usual, but Rich Green, James Gosling, and Jonathan Schwartz got most of the airtime.
    Most exciting from Canoo’s point of view was RIA being one if not the topic of the keynote. Finally, Sun has realized that plain ugly web applications are not good enough anymore. Their solution to this challenge is JavaFX which was introduced at last year’s keynote, but, frankly spoken, has not seen much progress in the last year. This year Sun expects JavaFX to be the centerpiece for a unified Rich Internet Experience both on the desktop and on mobile devices (and even Blu-Ray players). One demo showed how a JavaFX application running in the browser can be dragged to the desktop and continues to run there even after closing the browser. I was most surprised by the announcement that JavaFX will run on top of Android. Looks like Sun is trying to embrace this renegade platform rather then suing them.
    In addition, Sun intends to heat up the desktop competition by making Java SE slimmer and slicker. Java is now also included with Ubuntu and RedHat by default and other Linux distributions are to follow soon. The guest star of this year’s keynote was Neil Young who praised Java for helping him to realize the documentation of his musical career to be released on Blu Ray. The demo of which was really impressive, and by the way one of the few demos that worked (the demo gods were not really benevolent). The bottom line of the keynote was that Sun is trying to get back to the desktop, the server-side of Java was hardly a topic. On another note I had the feeling that the attendance numbers keep decreasing. There also seem to be less exhibitors than last year. Probably also a sign of the weakening economy.
    On the first day I attended two sessions. Josh Bloch is one of my favourite speakers and therefore I could not miss his talk on “More Effective Java”. I was not disappointed. He presented a few chapters (esp. enums and lazy initialization) from the second edition of his “Effective Java” book and it is always fun to learn about the intricacies of the Java language. If you ever have a chance to listen to Josh Bloch, don’t miss it!
    The second talk was about GUI testing using the FEST library. Just a few weeks ago I read a paper written by Alex Ruiz who is the lead developer of this library. I was pretty much convinced by the concepts, the implementation and esp. the nice Domain Specific Language for developing programmatic tests for Swing user interfaces. The presenters, however, were not as convincing, but my judgement might be unfair having just attended Josh Bloch’s session before. One interesting piece of information was that when asked most attendees prefered programmatic GUI testing over play-record GUI testing.


    Canoo at JavaOne 2008

    May 7th, 2008

    Here’s a quick note from JavaOne 2008:

    We had a busy day at the booth yesterday. Greg Hutchinson, Principle Developer at Farm Credit Canada showed a demo of their UltraLightClient application that was very well received. If you’re attending JavaOne: He’s coming again today. If you’re interested, come over to booth 429 at around 1:30 pm.

    Canoo sample application Music Pinboard was mentioned in one of the JavaFX sessions (and attributed to Canoo as well!)

    2008 JavaOne Conference - Content Catalog

    Canoo Sessions
    Dierk and Mike are speaking today. Dierk’s WebTest talk, which was listed as an alternative talk, is taking place at 13:30, right after the “Going Mobile” talk at 10:50.