RIA Frameworks Power Multi-Channel App Strategies
Dev managers face a growing challenge as they deliver applications to multiple mobile, Web and rich desktop platforms. Rather than support independent code and tooling for each incompatible target, dev shops are looking for ways to unify development activities and serve many targets from a single, modular code base. It's a challenge that many organizations are already grappling with, said Jeffrey Hammond, principal analyst at Forrester Research.
"If I want to create an app for the iPhone, I have to buy different developer hardware and programs in a different language and use different APIs than the version of the app I've built for my company laptops," Hammond said. "While there are reasons like different form factors and connectivity for adjusting the clients on different devices, a total rewrite seems like overkill." Hammond said the increasing importance of alternative channels, particularly mobile devices like the iPhone, Blackberry and smartphones, is compelling organizations to deploy applications to different platforms. "There is a recognition that firms can't confine their mobile strategy to one device type. They will need to support three to five smartphone OSes, each of which demands its own set of programming skills. That's a hard pill to swallow," Hammond said.
The solution, Hammond said, is for dev organizations to adopt tooling and approaches that lets them write a core application once, and then tailor it for consistent delivery to many target client platforms, what Hammond calls a multi-channel software strategy. "I think we will see that idea pervade the enterprise over the next three years." Andrew Flick is product manager for leading component maker Infragistics. While he sees a need for flexible development approaches that allow organizations to support software across platforms, he said widespread adoption of this approach remains a ways off.
"I think the more forward-thinking [organizations] would think that way, but right now there is just so much to grok," Flick said. He pointed to the challenge of merging Web and desktop development, as well as the challenge of a unified developer-designer workflow, enabled by products like Microsoft Visual Studio 2010 and the Expression Suite.
"Now we're going to a world where you say, 'OK, imagine working with different form factors and devices, whatever they may be, and they can change very fast,'" Flick said.
Of course, the Java programming language and platform promised "write once, run everywhere" back in the 1990s. But Java's momentum on the client is fading. According to the Tiobe Programming Community Index, which polls popular search engines to gauge activity around the top 50 languages, Java activity over the past year has declined by just over 2 percentage points to 17.35 percent. Five years ago, Java accounted for 25 percent of all returns among the top 50 programming languages on the Tiobe index.
Increasingly, organizations are turning to rich Internet application (RIA) platforms to deliver sophisticated applications over the Web. Forrester's Hammond described RIA platforms like Microsoft Silverlight and Adobe Flash/AIR as credible emerging tools for multi-channel application development. Both platforms enable rich application interfaces and allow delivery of sophisticated applications to diverse client targets.
"That's where I think the Silverlight/Flash/WPF approach starts to become a little interesting," Hammond said, noting that the ability to run XAML code on Silverlight or WPF gives Microsoft an advantage over Adobe's Flash. "I can create these XAML components and just use them as-is in my multi channel software strategy." Silverlight 4, released to beta during the Microsoft Professional Developers Conference (PDC) in November 2009, adds a host of features that make it appealing for both Web and desktop application development, said Todd Anglin, chief evangelist for component maker Telerik.
"A lot of what [Microsoft] delivered at PDC in Silverlight 4 such as improved access to the local file system, the ability to print in Silverlight, the ability to access the clipboard. All of these things are core line of business functions," Anglin said. "There are very few things you can point to now that would prevent you from creating line of business applications." Brian Goldfarb, director of the Developer Platform and Tools Group at Microsoft, lauded Silverlight's ability to leverage established .NET tooling and resources.
"Only Silverlight offers a common project model across development and design tools for seamless workflow. Only Silverlight uses the same language, framework and tools on the client and server, which makes it quicker and easier to develop Web services. And only Silverlight gives developers a choice of languages, tools, and advanced features for building rich Internet applications," Goldfarb wrote in an email interview.
Notably, the Silverlight 4 beta helped bring Silverlight closer to parity with Adobe Flash and AIR. One key capability of both Adobe AIR and Silverlight 4 is support for out-of-browser execution, enabling RIA apps that install and behave just like a normal desktop-based client application. As Adrian Ludwig, group manager for the Platform Business Unit at Adobe noted, Flash developers can use the same code for browser-delivered and desktop-installed applications.
"We were seeing people building really sophisticated applications in mobile, we were seeing people building really sophisticated applications in the browser," Ludwig said.
Ludwig said initial multi-channel apps were deployed in the consumer media space. He described the Finetune browser-based audio player, which exposes back-end services inside a client application interface. Finetune is available as a Windows, Linux or MacOS application, as a FlashLite application running on mobile devices, as a native iPhone application, and as a widget inside of social networks like MySpace and Facebook.
"The core services are the same and the core application logic is the same. They have been built on Flash," Ludwig said.
He went on to note that businesses are intrigued by the RIA approach. "Where we are starting to see it is in the enterprise, especially in people who want to be able to support the mobile element of their workforce. Sales enablement tools seem to be very strong," Ludwig said. He noted that leading software providers Oracle, SAP and Cognos all provide enterprise solutions based on Flash that interoperate with diverse back-end systems.
"Oracle is providing significant parts of their customer service stack and a number of their CRM applications built entirely in Flash. In some instances they are implementing the Flex framework and in some instances they are implementing their own framework," Ludwig said. "We tend to be back end agnostic and then provide data presentation through Flash." According to Ludwig, upward of 50 percent of developers working with the Java-based FlashBuilder IDE are building applications that run inside the firewall.
"If we went back four or five years ago, I think the number would be much smaller," Ludwig said, before adding: "Which I think is why Microsoft suddenly began to realize the RIA space is one they wanted to play in."
For dev managers looking to RIA platforms to enable efficient, multi-platform software development, what issues are key to consider? Adobe's Ludwig cautions developers accustomed to Web programming to think hard about what logic will best run on the client and what logic will best run on the server.
"Push as much of the logic to the client as possible," such as sorting and rich visualization, Ludwig said. "One, it tends to reduce the investment necessary on the server side and two, it tends to speed up the reactiveness of the application since it speeds up the response time." Forrester's Hammond said developers face a conceptual challenge. "Developers need to start thinking about applications as entities that exist beyond a client and server, or an app-server and browser." He urged developers to think about all the ways the end user might access data or processes served up by applications, and to prioritize the importance of available channels during development.
Hammond also emphasized the need to componentize UIs, since the visual limitations of a 2-inch Blackberry screen are so far removed from those of a 17-inch widescreen laptop. While good design can preserve some consistency between implementations (moving from a stackpanel to a tiled interface, for instance) many projects will require multiple UI technologies. Hammond said a consistent RESTful API can be very useful in managing the challenge.
Managing data and connections was a theme echoed by both Ludwig and Hammond. Hammond urged developers to think about how apps are structured. "Fortunately, shops that have already invested in SOA will have a leg up here, but they may have to start thinking about stateless, RESTful design if they are not already using it." He urged devs to assume that connectivity may be intermittent and that there may be no way to hold state across individual calls. "Applications designs start looking a lot more 'Web-like' with tokens that reestablish context being passed along with requests," Hammond said.
Adobe's Ludwig urged Flash and Flex developers to take advantage of Adobe's Lifecycle Data Services platform, which provides an efficient way to handle data connectivity and interaction over intermittently connected systems. "There's a little bit of data management that needs to be changed. And a lot of it is on the user interface side," Ludwig explained. "The design tools and figuring out how to provide optimized environments for user interactions is really critical."
Michael Desmond is an editor and writer for 1105 Media's Enterprise Computing Group.