Summary of March's Manchester Open Source Central User Group Meeting

I really enjoyed last night's Open Source Central user group meeting in Manchester. Both speakers were excellent and there were a lot of good ideas to take away.  Here is my summary of the evening:

"Spring BlazeDS Integration" by Rick Evans

He started with an overview of why build web applications with Flex & Flash: rich internet applications which look like a desktop application rather than a bunch of web pages. He then suggested that Flex & Flash applications client applications could be powered by a Spring server backend by using BlazeDS.

Flex is a framework for building rich internet applications. You get the same looking application regardless of operating system or browser which can't be said for regular web-based applications. Flex applications can be deployed into the standard flash player embedded in the browser or as a desktop application via Adobe AIR.  You write Flex applications in ActionScript which is an OO language enabling a simple transition from languages such as Java or C#.

BlazeDS is an open source project from Adobe offering transparent communication with backend services. This remoting library offers connectivity to:
* RPC services - web service, HTTP service, remote object service
* Messaging - publish/subscribe,collaboration, real time data push
* Service adapters - JMS, Java, custom

BlazeDS is the open source part of Adobe's Livecycle ES application, a commercial offering which costs but provides greater scalability. There is also a completely open source version of Livecycle DS called Granite DS (this is not from Adobe).

Then Rick covered what Spring BlazeDS Integration offers. It reuses your existing Spring service tier, offers Spring configuration for BlazeDS components & let's you use the Spring programming model for your BlazeDS components. It also offers easy integration with other Spring projects including Spring Security & Spring Integration.

BlazeDS allows backend Java objects to be converted into ActionScript objects on the client side without the need for manual translation code.  It uses a proprietary binary wire format over HTTP although you can switch it to XML over HTTP if required - could be useful for debugging?

To open up your Spring services as remote endpoints is simply a matter of adding a @RemotingDestination annotation to your @Service class and then add @RemotingInclude annotations to any methods that you want to expose. Spring BlazeDS Integration offers a Flex namespace that you can use in your application context files, to enable the Flex message broker object add the element (and set any properties that are suitable for your configuration).

After a number of demos and code walk-throughs Rick concluded his talk of where Spring DS Integration was today - version 1.0.2 was released in Feb 2010 and included spring Security 3 support. The next feature release will be 1.5 including BlazeDS 4 integration & support for serialisation Hibernate object to the client tier.

He also mentioned that Skills Matter are holding a London-based Flex on Java Exchange in June 2010 - and it's just £25.

After a word from the sponsors and some details about the next issue of the Open Source Journal - it's growing from around 12 pages to around 50! - it was on to the next talk.

"iSpring MVC - How to implement mobile-friendly applications in Spring Framework with ease" by Jan Machacek

He started by explaining that if you have an existing Spring web application and want to provide an iPhone version you may not want to go down the "pay $99 for Xcode & code on a mac" maybe preferring to reuse your existing Spring backend objects and replace the standard web pages with iPhone-specific versions.

After that a brief tour of Spring web application development was undertaken to ensure that everyone was familiar with how views are rendered (i.e. using InternalResourceViewResolver or UrlBasedViewResolver).

The iPhone comes with a good browser so what we need is some way to have some specific CSS styled to the iPhone and a way to tap into some of the special features of the iPhone browser. So we want to reuse the existing backend but return iPhone-specific pages (views) by using a special view resolver which detects the User-Agent of the browser and then uses an appropriate ViewResolver to return the pages.

Jan then introduced the jQTouch library, a jQuery-powered library which (with the help of some iPhone-styled CSS) makes iPhone web applications look like regular native applications.  It has access to some iPhone specific features such as screen orientation and sideways-sliding screens but not access to the camera, etc.

Jan then spent the rest of the time realtime coding a cooking recipe application (typing whilst standing up and talking always impresses!), writing the UserAgentViewResolver & controllers and then running the application so that any iPhones in the audience could try the application out.

It was noted by an old colleague that the web application really did look like a native app with the sideways scrolling and the styling of the buttons and lists. An excellent talk and with jQTouch you really can turn your 'regular' Spring-based web application into an iPhone application (although you obviously need an internet connection of some description!).

Then it was over the road to the Bowling Green pub for a pint (cheers Cake Solutions!) and a catch-up with some of the other attendees - another excellent OSC user group meeting!

You can find a link to Jan's slides over in his blog post of the evening.

Technorati Tags: , , , , , , ,


Bill Comer said...

A good write up Andy - Thanks - wish I had gone.

Andy B said...

Cheers Bill, it was a great evening, both talks were really interesting.

Hope to catch up with you at the next one!