Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Mobile infrastructure: Can middleware bridge the mobility gap?

Many organizations are considering buying or building mobile infrastructure to support applications with better controls.

Enterprise architects face a multitude of challenges when trying to leverage SOA architecture for mobility. Many organizations are starting to look at buying or building mobile infrastructure to support applications with better controls.

iPhone with apps

Mobile is a great catalyst for getting a back-end SOA infrastructure up and running, said Chris Purpura, general manager of the CloudHub cloud platform at MuleSoft. "Usually the No. 1 place organizations start is around mobile. The minute they start looking at mobile, it requires a lot of back-end service to come together."

Once people in the organization start to get excited about mobile infrastructure, an important step is to talk to business customers to find out which applications they are implementing and how those departmental applications need to talk to the other departmental applications of the core business. It becomes clear to any good architect what the problems are when they talk to the line-of-business managers. "We see big silos in many organizations, where things are not talking to each other," Purpura explained.

Reuse services rather than recreate

Mobile is a great catalyst for getting a back-end SOA infrastructure up and running.

Adding a new layer of middleware isn't always the best option, particularly if an organization already deployed an effective service platform, said Mike Gionfriddo, chief technology officer at Blackhawk Network. The company supplies infrastructure for prepaid cards and related services for mobile devices. A dedicated mobile middleware platform isn't something Blackhawk has needed in its mobile application development.

Instead, Blackhawk developed its own set of application services that leverages a shared application programming interface (API) set. The purpose of these services is to perform user-level authentication and to integrate their shared services in a manner (including error conditions) that is appropriate for the given application. "We have yet to see an appropriate cost-benefit tradeoff in introducing another layer into our mobile applications," Gionfriddo said.

Gionfriddo advises against attempting enterprise-level data integration on a mobile device, owing to concerns about reliability. Here are some of his other recommendations for improving mobility integration:

  • Be highly aware of the Fallacies of Distributed Computing.
  • Don't leave an app in an unknown state if a Web service call can't be completed.
  • Align the security approaches.

Creating a realistic mobile infrastructure test environment could perhaps be more important than middleware for integration. "The biggest challenges deal with situations where the network is weak and variability in latency could cause your application to behave in a manner that provides a poor customer experience," Gionfriddo said.

Align testing with development

Putting a hybrid integration layer in place during the development process can help leverage developer skills across multiple mobile platforms. Apache Cordova (aka PhoneGap) is the de facto standard runtime environment for developing hybrid mobile applications, said Gorkem Ercan, software engineer at Red Hat. The goal of the Cordova platform is to abstract the specifics of the platform from the developers, allowing developers to code using JavaScript APIs for native services such as location and camera controls.

One key component of the Cordova tool-chain is the new Cordova Simulator, which supports live reload to test and debug mobile hybrid applications, said Ercan. Any changes made on the hybrid mobile code in the Eclipse integrated development environment can be pushed to the Cordova Simulator right away. Ripple can help simulate Cordova events like location, accelerometer and fake location events. The catch is that third-party plug-ins might not be simulated as part of Ripple.

Managing services for testing

While better tools for testing mobile applications can help to ensure good code, it's important to see that they behave appropriately to changes in server-side events, said David Wilson, software development engineer in test for mobile at Groupon. When Groupon pushes out a new offer, for example, the application logic on the mobile device needs to be able to change in response to inventory.

The company does extensive testing of all of its apps. Groupon has about one tester for every 12 developers in general, but slightly more in mobile because the various platforms supported. The company has leveraged such tools as Frank for iOS and Robotium for Android to test applications on the mobile devices.

Managing data associated with the services used to make testing a challenge. While the server could be mocked, it had to be maintained and updated as time went on. To simulate the services seen by mobile devices, an in-house testing tool, Odo, was developed.

When Groupon wants to simulate a mobile apps response to an offer, it can dynamically change response content, add delay or change the HTTP request. For test automation, this allows stub data to be maintained. An open source release is in the works.

"We treat testing mobile like shipping shrink-wrapped software," Wilson said. "We are doing full regression testing. We don't want to have to patch a release or make it such that people cannot see a deal."

About the author:
George Lawton is a journalist based near San Francisco. Over the last 15 years, he's written more than 2,000 articles on computers, communications, business and other topics. Find out more at glawton.com.

Follow us on Twitter at @SearchSOA and like us on Facebook.

Dig Deeper on Mobile app development

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

Is your organization considering buying or building mobile infrastructure to support applications?