Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Stephan Janssen On And The RIA Landscape

Stephan Janssen On And The RIA Landscape

This item in japanese sat down with Stephan Janssen to learn about and ask his perspective on the emerging RIA platforms. Stephan is the founder of the JavaPolis conference held annually in Belgium. JavaPolis is currently the second largest Java conference, behind only JavaOne. Stephan is also the founder and lead engineer of is a RIA platform for delivering online learning resources, such as videos, podcasts, slides, etc. In addition to discussing, Stephan shares his thoughts on Adobe Flex/AIR, JavaFX, Google Web Toolkit (GWT), and Silverlight.

Can you give an overview of is a next generation RIA eLearning platform where people can watch video presentations, either within the browser or on their desktop. Today, the default channel hosts some excellent technical video talks from JavaPolis, SpringOne, BeJUG, JavaBin, Jazoon, and EclipseCon. All together, there is almost 200 hours of top quality Java content.

The viewers can also download the presentations to their local disk and view them off line, a cool feature which gets used more and more. Both the browser and desktop application allow you to view the talks in full screen mode and even adjust the presentation template dynamically while viewing. The presentation time line allows our viewers to add comments and tags and skip slides where needed. In the menu bar, you can choose your favorite slide transitions (3D Cube is my favorite), or add a talk to your favorite list and view other related talks.

A very nice feature is the seamless integration with both the browser and desktop application. For example, you can start the desktop application from the browser. Once the desktop application is available, you can trigger downloads from the browser which will add the talk to your download queue in the desktop application. If you've already downloaded a talk, you can view the talk from the browser, but it will be the desktop that will stream the presentation from your local disk. As a result, this will save you (and us) some bandwidth.

Another cool feature is that the back button works, and that you can even do deep linking to a specific slide within a talk.
What technologies were used to build the application? What does the architecture look like?
I've chosen to use Adobe Flex3 for the browser version and AIR for the desktop client. However, because the server is designed with a REST enabled service layer, we can very easily add other types of technology clients. Currently, we're also working in parallel on a JavaFX client (which looks VERY promising), GWT, and Silverlight. It is a very interesting and educating exercise to compare the different technologies.
How has the architecture evolved?
The current public version (our first) of is a light AJAX enabled web application where Flash and JavaScript work seamlessly together. Our 100,000+ viewers did rapidly ask for more RIA kind of features, like the ability to view talks in full screen mode, change the player template while viewing, or even download and view the talks off line. You can only do so much with DHTML and Ajax, and for this type of client it made more sense to look at RIA technologies like Flex/AIR, JavaFX, etc. When I had to decide which RIA technology to choose (back in June 2007), the JavaFX language was just released. So, it was a logical and pragmatic choice to start with the Adobe tools.
What are your overall impressions of Adobe AIR / Flex?
As a Java developer, learning Object Oriented ActionScript and the UI markup language is really a walk in the park. The challenge however for (Java) developers is that we're not designers, and with RIA technologies these two skills are very much needed. This is why I'm very excited about Adobe's Thermo project. This will bridge the gap between Photoshop designers and the developers (very exciting stuff).

Another strength of Flex and AIR is that they work very naturally with a Java back-end, where you can choose from different communication strategies like XML, JSON, and AMF (binary format). Adobe even open sourced their remoting product (developed in Java) named BlazeDS (at JavaPolis '07) which enables you to access from ActionScript your server side Java services.

The weakness of Flex and AIR compared to the Java space is the tooling for quality assurance. For example, static analysis of your ActionScript code (like findbugs, PMD, Simian, etc.) is not yet available. I was nicely surprised to see that Jetbrains has recently added support for Flex in IDEA 7.0.3. This allows you to use the code analyzer on your ActionScript code, so that is a good start. However, I'm not sure if I want to develop a 500+ screen ERP application in Flex just yet. This is where JavaFX can hopefully make a difference coming more from the enterprise world.

Another opportunity for embedded RIA applications is making them search engine friendly. Its really important that your RIA content gets indexed by search engines so people can find your site organically through Google, Yahoo, etc. You can use a static site in parallel, but this seems a bit too much extra work. I would prefer to leverage RSS feeds or the Atom Publisher protocol to achieve the same result... I'll let you known when it works.

The cross pollination between the Flex and Java space is also very interesting to observe. Annotations are main stream in the Java space. You see similar initiatives happening in the Flex camp. For example, the Flex metadata tags are used for similar annotation kind behavior. As a result, you can imagine that your annotated Java EE 5 Entities can also be reused as ActionScript Entities mapped to SQLlite on the client side using similar techniques.

My top Flex/AIR wish list:
  • Personally, I'd like to see socket listeners appear in future versions of AIR, because otherwise, achieving pure P2P functionality within an AIR application is probably only possible with a hack.
  • Deploying Java applications with an AIR file would be very nice. This would allow me to leverage my Java investments. While we’re brain storming, why not develop Flex and AIR applications using the Java language?
  • Signed Flex applications would be interesting to break out of the Flash sandbox.
  • As a longtime Java advocate, how has the community received your deep dive into Adobe AIR/Flex?
    The Flex/AIR version of was released at JavaPolis 2007 last December. During that keynote, I explained the technical challenges, but also explained the functionality our viewers requested.

    The decision to develop a RIA version of was made in June 2007. Basically, I could have continued the DHTML/AJAX route, but with version 1 I had felt enough pain that my Ajax appetite was completely gone. JavaFX, in June 2007, was way too early, and because I develop on Mac, Silverlight was not an option. So, a reasonable choice was to look at Adobe Flex/AIR. The server remained 100% Java using WebWork/Velocity, Spring, and Hibernate.

    The nice thing about this choice was that some of my Java colleagues were so shocked with the Flex announcement that they decided to develop a JavaFX and GWT client reusing the same back end. And I must say, it looks very VERY promising. I'll be presenting these different strategies during an informal JavaOne BOF.

    You can watch the keynote.
    It has been about a year since JavaFX was announced, what are your experiences with it to this point?
    Tooling support for JavaFX still has some way to go, but more importantly I'm hoping that Sun Microsystems will also tackle the Photoshop/JavaFX gap, so we can unite the developers and designers (like Adobe is planning to do). Another very critical feature for JavaFX to succeed is the support for mainstream audio and video codecs. Deploying JavaFX applications as applets (JRE update N), and having the same Flash (cold/warm) startup experience is really crucial if JavaFX wants to compete in this space. Hopefully, the next JavaOne will enlighten us.
    Do you believe JavaFX is on the right track as a platform? What are the key items that it needs to accomplish to be considered a success?
    The strength of JavaFX is of course the very mature Java platform and very fast runtime environment, especially once we can compile our JavaFX code. I see an enormous business opportunity to redesign existing (enterprise) Swing applications, where the View part of MVC gets replaced with a nicer looking JavaFX skin.

    JavaFX can also get an enormous boost if the JavaFX Mobile promise actually happens. Let’s see who makes it first on the iPhone. Will it be Java (FX), AIR, or Silverlight?
    What are your impressions of GWT? Do you have any issues with the Java to JavaScript paradigm?
    After the painful multi browser/OS DHTML/Ajax experience, I'm starting to appreciate more and more the GWT strategy.

    We have a first GWT prototype of the client. It looks very nice, and it works without tweaking it on different browsers and Operating Systems. So, Google does deliver on its promise, as you would have hoped from the Google brain power.

    Developing new components is a bit more of a challenge, and there I'm hoping that a vibrant GWT community will continue to grow and deliver more UI components. Once we release the GWT version, it will be interesting to observe what our viewers prefer. I'll keep you posted.
    Have you spent anytime working with Silverlight? What are your overall impressions?
    I've installed both version 1 and an early beta version 2 of Silverlight. The demos did work in Firefox on Mac, and that's it. I’ll let my Microsoft colleagues at Dolmen surprise me…no pressure guys ;)
    Where do you expect and / or hope to see the RIA space in 18 months?
    It will be interesting to see if the DHTML/Ajax camp will be able to mimic the RIA initiatives. Hopefully, GWT will play a role in that battle. In 18 months, we'll probably have Flex4 and AIR2. At that time, we'll have Photoshop Designers that will draw working prototypes which the Flex developer can finish off with some extra logic. Because of the further convergence of the Internet and Television, we'll be able to make similar iTunes like applications that play HD interactive video online and off line for multiple operating systems (including Linux).

    In 18 months we'll already know if Adobe AIR and/or Java(FX) will run on the iPhone and if the JavaFX Mobile promise has taken shape... interesting times! is a true Web 2.0 application. Hopefully, the community will be able to borrow from the experiences and experimentation in building, as the process is providing a test bed to compare the leading RIA platforms. It will be interesting to see what technology stack Stephan and his team eventually select as their primary platform for

    Rate this Article