Stephan Janssen On Parleys.com And The RIA Landscape
Can you give an overview of parleys.com?
Parleys.com is a next generation RIA eLearning platform where people can watch video presentations, either within the browser or on their desktop. Today, the default Parleys.com 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.What technologies were used to build the application? What does the architecture look like?
The Parleys.com 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.
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 Parleys.com architecture evolved?
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).As a longtime Java advocate, how has the community received your deep dive into Adobe AIR/Flex?
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.
The Flex/AIR version of Parleys.com was released at JavaPolis 2007 last December. During that keynote, I explained the technical challenges, but also explained the functionality our viewers requested.It has been about a year since JavaFX was announced, what are your experiences with it to this point?
The decision to develop a RIA version of Parleys.com 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 Parleys.com strategies during an informal JavaOne BOF.
You can watch the Parleys.com keynote.
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?
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?
After the painful multi browser/OS DHTML/Ajax experience, I'm starting to appreciate more and more the GWT strategy.Have you spent anytime working with Silverlight? What are your overall impressions?
We have a first GWT prototype of the Parleys.com 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.
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).Parleys.com is a true Web 2.0 application. Hopefully, the InfoQ.com community will be able to borrow from the experiences and experimentation in building Parleys.com, 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 Parleys.com.
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!
Parleys and Flash
I have continuously 5 to 6 browsers open for different purposes and following this procedure makes the parleys experience far from seamless !
Parleys should be able to do better !!!!!!!