• Home
  • About
  • Sample Apps
  • Feature Article on Building RIA for Business Users

    July 10th, 2008

    June Issue includes article by Hans-Dirk Walter
    it management has published an article by Canoo’s CEO, Hans-Dirk Walter on building Rich Internet Applications (RIA) for business applications (in German only).

    The article provides a short introduction to RIA and some of the business benefits it offers such as automating global business process, consolidating applications or enabling Software as a Service (SaaS). The article discusses the various evaluation criteria that are relevant when selecting a technology.

    • An welche Benutzer richtet sich die Anwendung – soll sie innerhalb eines Unternehmens oder als B2B-Lösung mit Geschäftspartnern eingesetzt werden oder richtet sich die Anwendung an beliebige Benutzer im Internet?
    • Wie arbeiten die Benutzer mit der Anwendung? Wird sie gelegentlich aufge-
      rufen oder wird sie von Experten täglich und sehr intensiv zur Erledigung
      von wichtigen Aufgaben verwendet?
    • Handelt es sich bei der Anwendung um eine Geschäftsanwendung (z.B. ein CRM- oder ERP-System) oder um eine Anwendung mit Unterhaltungscharakter, in denen Animationen und Multimedia eine grosse Rolle spielen?

    A .pdf is available online in the press section of the Canoo website.


    Grails Sample Application: ria-map.net

    June 18th, 2008

    Canoo has released a new sample application at ria-map.net. The application shows typical Web 2.0 interface elements such as tagging or Flickr-like editing fields.

    Canoo riamap entry screen

    I asked the developer, Jonas Zuberbühler, the following questions on the new Canoo sample application.

    SW> What is riamap?

    riamap is a Web 2.0 community site that maps the world of Rich Internet Applications. Unlike mere information aggregators on the topic, it builds on user contributions to assemble not only a list of current RIA technologies, but also how they relate to each other.

    Users can explore what technologies are available, what they have in common, how they differentiate, what competitors they have and how they complement each other. These relations make up a graph that any user can extend by adding new connections or voting how strong any such connection based on his or her own judgment.

    SW> What technologies did you use to build it?

    We used Grails for the web application framework and Groovy as it is the perfect partner for implementing server-side logic.
    In addition, we used Prototype, Scriptaculous and LivePipe to integrate AJAX features and to improve the user interface.

    SW> Why did you select Grails? Why not adapt an existing PHP- or Java-based content management system?

    Canoo has a strong footing in Java and Grails is the perfect choice for developing Web 2.0 applications on the Java platform. We can build on our solid understanding of this ecosystem and use all the existing tools for development, deployment and operations. On top of this, Grails provides us with the concise, expressive and interactive development style that modern applications require.

    Further screenshots:

    riamap screen 2

    riamap screen 1

    To get a login for riamap, sign up here to join riamap. Try out the various Web 2.0 interface features. If you feel like adding information on a RIA technology, enter the details here or edit an existing entry.


    JavaPolis 2007 - Desktop RIA and Mobile Apps rock the Scene

    December 13th, 2007

    This morning, I attended the second keynote at JavaPolis 2007 in Antwerp. Although it was not the “big” keynote (that one was held by James Gosling the day before), it was definitely the more interesting one to me. This is why:

    First, the Java community was hit by two extremely cool Flex demonstrations: at the beginning, Bruce Eckel and his co-speakers showed a Flex-based data manager framework that allows transparent and smooth synchronization of client-side and server-side business data, even between multiple clients and with clustered server nodes. Data changed on one client gets synchronized to the server (for example: to all cluster nodes) and then back to all connected clients. Not only does it allow the application to determine the “transaction commit point”, but it also provides support for conflict handling (again, the conflict reconciliation handling can be fully controlled by the application). Whenever a client goes offline, data changes are locally tracked and synched back to the server as soon as the connection is re-established. Failed cluster nodes get updated as soon as they rejoin the cluster. In addition, the data manager can also be used with Ajax applications. Although the demo application looked quite “ugly” (for a Flex demo …), the technical brilliance led to spontaneous applause …

    The second rocking Flex demo was Parleys.com beta: well-know for slick and smooth video and slide show streaming, Parleys.com is about to get a face-up. Well it’s more like a revolution. While it was based on Ajax in version 1.0, the new technology chosen is Flex. Of course, the visual effects are extremely slick and appealing. But what is way more interesting to me from a RIA point of view is the integration of the online, browser-based version with an offline Parleys.com client application based on AIR. When both clients are running, the browser-based one automatically gets enhanced by features available in the offline client - such as offline video availability - by smoothly adding new buttons and actions to the online client. That really rocks from a user experience and integration point of view! The new Parleys.com version is about to be released in Q1/2008.

    But there is a fight-back from the Java side: also worth mentioning here is the Java approach of browser-based RIA that was demonstrated in the IRIS sample application. First showed to the public at the last JavaOne, this application does not stand behind the Flex-based ones in any way when it comes to visual effects. The IRIS approach smoothly integrates Java applets with an ajaxified Web application. It was almost impossible to say what feature was powered by the applet and what was done using Ajax - and what was done by tightly combining these two technologies even for a single user interaction. The revival of the applets!

    To me, all these demos really show to me that RIA is still steadily increasing in importance. There is way more than just adding a few fancy Ajax effects to static web page - and the big vendors and technology owners are pushing the car forward. And the desktop is really moving back into the RIA world - it is no longer all about pure (and old) browser technologies, but about JNLP, applets, AIR & Co.

    But there was also another unexpected “flasher” in that keynote: JavaME. JavaME? Isn’t it dead? No, it’s not! Sun showed up with the new Netbeans Mobility 6.0 that extremely simplifies the development of JavaME-based games. But not only games, also business applications are finally showing up in the JavaME space (and are supported in a graphical way by the mobility tool). Using the SVG-rendering facility available in the MSA (Mobile Service Architecture), these UIs now can really look awesome (forget these old and ugly “text-based” mobile UIs …). And by adding JavaFX Mobile to the scene, Sun is pushing the Java mobile stack even further. As with Google’s Android, Sun aims to provide a complete software stack based on a Linux kernel that offers Java-based APIs to all phone capabilities which are then used by all the device vendors, third party RIA software service providers and the community to develop new-class mobile RIA applications. It will be very interesting to see whether Sun or Google (or both?) will make the deal with their approach. In the end, I think the device vendors are going to decide this battle: every cool software platform is only worth noting if there are a big bunch of devices available that ship the software by default.

    A few resources:

    All this mobile stuff now really seems to shake a leg. Very exciting!


    JUGS RIA Event: The Slides

    December 2nd, 2007

    jugs_logo_klein.gif

    Here are the slides of the recent Java User Group Switzerland event on Rich Internet Applications:

    Bruno Schäffer on “RIA for Business - What’s next?”.

    Björn Müller on “AJAX - Reality Check”.

    Ryan Stewart on “The RIA Landscape”.


    JUGS RIA Event

    November 14th, 2007

    Together with about 80 other persons (estimated by a JUGS member) I attended the JUGS RIA event. Bruno started with a short (15′) introduction into RIA for Business. He started with an excursion to the past and showed how the trend moved from terminal to desktop application, then to web applications and now finally to desktop-like Rich Internet Applications. For enterprise applications he listed three major opportunities:

    • Highly productive Tools with powerful user interfaces
    • Portal environment
    • Mobile devices

    While generally stressing the importance of interaction design, Bruno clearly explained that rich applications for mobile are not shrinked RIA applications but need to be tailored for the device. (A dedicated IPhone user speaking :-) ).

    Then Björn Müller was giving us a reality check for AJAX. In my opinion this was the most surprising talk. Björn presented some hard facts about AJAX which in his (and mine) opinion clearly limit the use of AJAX. Some of the facts to consider when planning an AJAX application:

    • Performance. JavaScript is 20 to 50 times slower than Java. Period.
    • Frameworks. There are a lot (too many) frameworks around which need evaluating. And each come with KBs of JavaScript code
    • Cross Browser Issues. Most of them can be solved but at a severe cost.

    The message I take home from this experienced AJAX developer is that he considers it a risk to develop rich applications for power user with AJAX. (Which was my gut feeling for quite some time, but now I have some facts. The slides will be published on the JUGS site for you to judge for yourself). But that AJAX is a very appropriate technology for application with casual users as the target audience.

    Finally Ryan Stewart, the Adobe RIA evangelist was speaking. It was very disappointing that he couldn’t show us most of the demos due to the lack of internet connection. In his talk he presented several RIA technologies, well known like JavaFX, Silverlight and Flex and others like Curl etc. One reaction he got from the audience was that they are more confused concerning RIA technologies than before the event. Interesting was that also Ryan sees a big potential in rich application for mobile devices.

    All in all a very interesting event, I only hope that other attendees felt the same. Feel free to comment and post your opinion.


    RIA Event with Björn Müller and Ryan Stewart

    November 2nd, 2007

    JUG Switzerland event on RIA and AJAX

    As mentioned in this post, Java User Group Switzerland (JUGS) is organizing an event on Rich Internet Applications and AJAX on November 14th, 2007 at the Technopark in Zürich, Switzerland.

    jugs_logo_klein.gif

    Sign up for this event at the JUGS site. The event is free for first time attendees and JUGS members.

    I am really excited that this event is taking place and that Björn Müller and Ryan Stewart are coming. The talks will cover various RIA technologies and help show how these technologies improve business applications. We hope to start a fruitful discussion, which will benefit all attendees and provide a summary of current developments in the RIA space.

    Pilatus

    BTW, we are taking the RIA Mountaineer to Pilatus for a RIA summit ;-)

    Ryan Stewart calls himself the RIA Mountaineer. And being in Switzerland, we thought that he must see the mountains while he is here.

    We would like to invite RIA enthusiasts to come with us on our excursion to Pilatus on Monday morning, November 12th (further details) and discuss RIA developments. Please contact me if you are interested in coming along.

    Further links:

    JUGS event on Rich Internet Applications and AJAX
    RIA Event in Zurich on 14th November 2007
    Pilatus excursion details on Upcoming


    RIA Event in Zurich on 14th November 2007

    October 5th, 2007

    jugs_logo_klein.gif


    Mark your calendars! Java User Group Switzerland (JUGS) is organizing an event on Rich Internet Applications (RIA) in Zurich:


    Date: 14th November 2007
    Time: 16:30
    Location: Technopark, Zurich, Switzerland

    Register here.

    The event will focus on RIA and AJAX for enterprise applications and will provide a good overview of the opportunities and benefits.

    About the speakers:

    bruno_schaeffer.gif

    Canoo’s CTO, Bruno Schäffer will start the JUGS RIA event with an overview of the challenges that lie ahead. Bruno has been speaking at various conferences such as Jazoon, SD West and JavaOne.

    bjoern_mueller.jpg

    Björn Müller is the founder of Casabac, which was later acquired by Software AG. He will share his experiences on using AJAX in an enterprise context.

    I heard him speak at a W-JAX conference and there are some conference videos floating around like the one above.

    And we are really excited that Ryan Stewart of Adobe is coming all the way from Seattle:

    ryan_stewart.jpg

    I first heard about Ryan Stewart via other RIA blogs, and started following his blogs: Digital Backcountry and The Universal Desktop. In Robert Scoble’s words:

    Ryan is proving that he’s being an authority on the marketplace and not just a corporate shill for Adobe.

    Sign up for this event here.


    RIA Link Roundup

    September 27th, 2007

    Here are a couple of interesting RIA links that I stumbled across during the past week:

    Java FX
    Javalobby has posted an interview with Tom Ball, lead architect on the openjfx compiler project:

    We’ve been interviewing lots of design houses, and the biggest complaint they have with Java-based client applications is how much longer it takes the Swing engineers to turn a design cycle than the designers do — the designers can crack out a design in a week which their developer counterparts take three months to implement.

    It is definitely an encouraging sign to see that Sun is moving ahead in this area.

    10 Future Web Trends
    Richard MacManus lists RIA in his list of 10 Future Web Trends:

    As the current trend of hybrid web/desktop apps continues, expect to see RIA (rich internet apps) continue to increase in use and functionality. Adobe’s AIR platform (Adobe Integrated Runtime) is one of the leaders, along with Microsoft with its Windows Presentation Foundation. Also in the mix is Laszlo with its open source OpenLaszlo platform and there are several other startups offering RIA platforms. Let’s not forget also that Ajax is generally considered to be an RIA - it remains to be seen though how long Ajax lasts, or whether there will be a ‘2.0′.

    Flex vs. Silverlight
    James Ward compares Flex and Microsoft Silverlight in this interview published at InfoQ.

    Do you use AJAX, RIA or other Web 2.0?
    Eric Chiu asks in this thread on LinkedIn (you’ll probably need to log in to read the thread):

    Do you use AJAX, RIA, or other Web 2.0?

    Do you think AJAX made the web easier to use? What are some of your favorite AJAX frameworks? I would like to know how companies are using AJAX to improve usability, interaction and collaboration.

    Most people in the thread reported that they are using AJAX libraries such as Prototype, JQuery and RIA tools such as Adobe Flex. Perfomance and security are major concerns. While others cite customization and extensibility as being important.


    Flex-Ajax-Bridge: New in Flex SDK 3

    September 3rd, 2007

    Adobe Labs
    The Flex-Ajax-Bridge is a library which exposes Flex application to scripting within the browser. As stated on the Adobe Labs wiki:

    After you insert the library, essentially anything you can do with ActionScript, you can do with JavaScript.

    We introduced the Flex-Ajax-Bridge in our talk Mixing Ajax, Flash and Swing. It seems Adobe has now decided how they want to distribute it: They moved it out of Life Cycle Data Service 2.5 (limited free use only) and into Flex SDK 3 beta. Which is certainly good news.

    And there is more Ajax support: With Ajax Data Service Adobe provides Flex Data Management Services capabilities (pushed updates, conflict management, lazy loading, and direct integration with back-end domain models) for Ajax applications. Ajax Data Service is available in Adobe® LiveCycle® Data Services ES.


    The Third Option besides AJAX and Flex (Part 3 of 3)

    August 17th, 2007

    This is part 3 of 3 blog posts discussing the article “How to Choose an RIA Path: AJAX or Adobe?” by Jeffrey Hammond. Read part 1 and part 2.

    Java is a third option to breakdown the barriers RIA faces in corporate environments.

    In this final post, let’s turn our attention to the first point I listed in my comments on Jeffrey Hammond’s article (see part 1):

    AJAX and Flex are not the only options for RIA. There is a third one to consider: Java (see for example Eclipse RCP, a rich fat client technology, or UltraLightClient, a Swing-based rich thin client technology).

    Jeffrey identifies four barriers that prevent firms from introducing RIA (based on AJAX and Flex):

    1. Both are not easy to integrate into an enterprise environment.
    2. Both are in some way dependent on the client configuration (or a user’s willingness to change it). Although AJAX does not require any additional installation, JavaScript may be disabled and AJAX applications will not work. Adobe requires the Flash plug-in and users may not be willing to install or update it to for a RIA they find on the web.
    3. The ecosystem for both approaches is not mature.
    4. Both lack the support of extended development tools.

    Java

    Reuse Existing Infrastructure

    Java - on the other hand - has been in use as a server technology for Web applications for many years. The infrastructure to integrate applications into a corporate environment is available. This infrastructure is proven and there is a lot of experience on how to use it. As outlined in part 2, companies that operate HTML-based Web applications will not have to change the connection to data sources when migrating from these Web applications to Java-based rich thin clients.

    Of course, a Java-based RIA requires a Java browser plug-in. Consequently, this barrier remains as high as before – at least for internet applications. But for applications with a limited user community, installation of a plug-in like the JRE or Flash is in many cases acceptable.

    Java has a rich and mature ecosystem which has been evolving for more than ten years. A wide selection of proven commercial and non-commercial libraries, frameworks, and tools are available.

    There are various extended tools supporting quality assurance such as testing tools, monitoring and measuring tools, as well as development and debugging tools. What is lacking is a comparable design and authoring tool support as offered by Adobe and third party vendors of Flash.

    After having said this, I would refine Jeffrey’s recommendation regarding when to use AJAX and when to use Flex in the following way:

    Jeffrey recommends using AJAX when time-to-market is critical and when frequent changes to an application are expected. I would add: Use AJAX if this application is published to the general internet at large and browser plug-ins are not tolerable. It is a good advice today to restrict AJAX to a minimum and to ensure that the application works even if JavaScript is disabled.

    For large-scale user productivity applications, Jeffrey opts for Flex. I would add: yes, if besides functionality the visual appearance of the applications is critical, and as a result, advanced design and authoring tools are needed.

    In all other cases, i.e., if I do not want to publish my application for casual internet users that are just passing by, and visual appearance would be nice, but functionality and integration into an enterprise information system is more important, then I would recommend using a Java rich thin client like UltraLightClient.

    See also part 1 and part 2.