December 2010

Pervasive Mobile Strategies

Future-proof Your Pervasive Mobile Strategy

By: Victoria Romero-Gomez, Recursion Software

There is little doubt that mobile devices have revitalized modern computing. Yet even as hardware and network providers prepare for emerging devices connecting the home to the office, appliances to sensors, cars to intelligent transportation, etc., software developers are still trying to tackle the highly fragmented mobile phone environment that this explosion of devices has created. New tools and standards, such as BONDI, have recently emerged to assist developers, yet many do not fully support the wide range of sensors, routers, cars and embedded devices that are a part of our pervasively connected future. Even a name for this connected world is not fully agreed-upon, from pervasive computing to ubiquitous computing, from M2M to the Internet of Things, each phrase shares a common vision, but the technical requirements remain ill-defined.

Defining Pervasive Computing
The common vision expressed by many of today’s market leaders can be used as a guideline for establishing functional requirements for the next generation of mobile, pervasive software. Cisco CEO John Chambers has said of pervasive computing, “It’s not the data center or the user device. It’s any device to any content wherever it is in the world over any combination of networks wired or wireless to the home, to an Apple device, to a Microsoft device, to an IBM device, HP. Doesn’t matter to us.” And in similar language Microsoft CEO Steve Ballmer believes, “The desktop PC, enterprise computing, mobile services running in the cloud and phone devices… [via] a rich platform… The key thing is to provide a very consistent platform across all phones—to leverage our learning and knowledge in writing apps for PCs and bring that rich experience to phones.” Finally, Gartner VP Nick Jones “predicts a future of mobile ‘ambient business’, where consumers explore their environment to find relevant value propositions… Data will be selectively pushed to the user based on context… combined with personal presence, creates transient communities…”

From their collective vision, a checklist of minimum requirements emerges:

  • Any device, any content on any network
  • Mobile services in the cloud and on the device
  • Push content autonomously based on time, location, state of being (work, play, private, etc.)
  • Form transient, ad hoc mobile communities
  • Guaranteed message delivery
  • Security and data privacy
  • Enterprise integration

Yet, there are many technology barriers to reaching this vision which include:

  • Conflicting standards
  • Many networks and protocols
  • Bandwidth scarcity and poor performance
  • Various languages
  • Device fragmentation (servers to TVs phones to sensors)
  • Content organization/separation (Public/private, work/personal)
  • Security and privacy

The key to overcoming these challenges is to plan for the future of your app now and choose the right technology to support your vision.

Design for Use Beyond the Phone
Even if your application initially targets a specific phone subset, your application must be designed to interact with a highly heterogeneous environment of human operated and non-human operated devices, with different operating systems and different languages. This will also be critical when expanding your device target beyond phones to emerging devices like eBooks and netbooks, which is the quickest growing wireless segment for network providers. Soon, applications will pull in data from various sources, from live sensor data to historical web databases, to other phones in a crowd-sourced solution. Your app should be designed with the flexibility to incorporate data from various devices and to use the app on various devices and devices types.

Native vs. Web vs. Hybrid Platforms
The question of native vs. web has been long debated. And the answer is that no one-size fits all. The choice is largely dependent upon what kind of transactions your app needs to perform. Rule of thumb: use a mobile web app when you need simple, less sophisticated apps and need to ramp up quickly. Native apps are best for high performance, for complex processing, multiple-devices types, and collaboration.

As platforms continue to be highly competitive, the default option for most apps is to design for the mobile web to avoid fragmentation, although it should be noted that mobile browsers are also highly fragmented. The relative simplicity of the mobile web is often best if your application and business model offers enough differentiation to stand out within the noisy app market.

In contrast, native solutions offer better performance, consume less bandwidth, have offline capabilities, and offer more sophisticated transactions if fragmentation can be solved. Additionally, more sophisticated apps need a robust object oriented language like Java rather than JavaScript which has inconsistent browser performance.

Still a third option is a hybrid platform that is native in execution, but utilizes the network to communicate and collaborate via communities. There are only a few high performance hybrid platforms out there, but we will focus on the best of breed features. The apps of our pervasive M2M future will likely be highly collaborative in a heterogeneous device environment; therefore a hybrid native platform will outperform the web in performance, efficiency and security, while solving the fragmentation issue. Hybrid apps can a distributed knowledge network that create meaningful content rather than simply post content to the static web.

A shortlist of features will help us compare each architecture more closely:

Web App Advantages & Disadvantages

  • Device support- wide availability for mobile phones and PCs, however browser fragmentation creates an inconsistent experience. Unavailable for embedded devices.
  • Network efficiency- increasingly poor performance as wireless devices proliferate. Good for simple applications.
  • Collaboration/Groups- limited to email/chat and a shared folder on server for file transfer.
  • Security- good, but unable to manage device remotely.
  • Performance- relatively slow. HTML and JS are not as robust as Object Oriented languages. Centralization offers relatively slow processing and scalability.
  • Cost- free and open. Support through user groups or consultants.

Native Client Advantages & Disadvantages

  • Device Support- Limited to specific operating systems for which the code is written/ported. Typically only mobile and PCs running certain platforms.
  • Network efficiency- some offer offline input capability, a huge advantage as bandwidth becomes scarcer.
  • Collaboration/Groups- limited to email/chat and a shared folder on server for file transfer.
  • Security- on device security can be achieved, yet vulnerability occurs with collaboration and data exchange
  • Performance- good on-device performance, but collaboration requires servers and a network connection, slowing performance and creating a bottleneck.
  • Cost- proprietary solutions are more expensive, but better supported than open source. Cost rises w/ additional platforms.

Hybrid Client Advantages & Disadvantages

  • Device Support- Designed to support a wide range of edge devices. By definition does not need a central server.
  • Network efficiency- offline capability plus intelligence. Turns clients into servers that host/share services autonomously.
  • Security- Secure Firewall/NAT Traversal support via BIDI same socket/port communication & client initiated requests.
  • Collaboration/Groups- Peer-to-Peer/Group application messaging, chat and file transfer. Ad hoc community formation/discovery.
  • Performance- Peer-to-Peer/Group ad hoc messaging. 1.5x faster than RMI, 300x faster than web. OO support (Java, C#, C++).
  • Cost- proprietary solutions are initially more expensive, but better supported than open source. Relative cost lowers exponentially with “write once” capabilities.

Bandwidth Makes or Breaks an App
Finally, your choice should also consider bandwidth as a key determiner of whether your app actually functions in the field as required. While ‘unlimited’ data plans are common among Smartphone contracts, network availability it is far from ubiquitous or guaranteed. App-intensive phones, like the iPhone, arguably consume the most bandwidth and customers are often complaining about poor performance. There is also a great demand to utilize networks more efficiently, as additional consumer devices like eReaders are charged by the kb.

The high volume of users resulting in slow network performance at mobility tradeshows as well as concentrated subscribers in metro areas like San Francisco serve as a microcosm for what our pervasive experience will be when mass market devices become connected. While each network provider is scrambling to expand to 4G networks, the sheer number of devices in our connected world will surely reach a critical mass where efficiency is no longer an option, but a requirement.

Efficient network utilization is best accomplished by removing the requirement to push all transactions and data to the cloud and pull data back to the device again with each transition or download. Hybrid apps accomplish this via a peer-to-peer architecture and/or by implementing RULES engines and software agents to perform many edge transactions as possible. Hybrid apps can be able to process data at the source, handle unreliable and/or limited network connections, and adjust to hardware failures or CPU load. Therefore, these devices must also persist data via a micro database.

A platform should provide a simple way to access databases, regardless of the type of database, be it relational, object, xml, and a multi-user enterprise database or single-user embedded. Developers need to be shielded from the intricacies that exist with these various flavors and have support for data synchronization between the edge and enterprise. And when back online, devices must support passing messages over standard centralized messaging servers for integration with enterprise and legacy systems. More specifically, there needs to be seamless integration with Microsoft’s Message Queue (MSMQ), Java’s Message Server (JMS) and other Enterprise Service Buses.

Additionally, the software components or agents running on edge devices need to support multiple wireless protocols (GSM, CDMA, Wi-Fi, UWB, Bluetooth, NFC, RFID) and associated networks (Telco, Wide Area, Local, Personal). Ideally, they will dynamically reconfigure themselves to use a communication protocol that best matches the capabilities of their current network connection and the current node(s) they are in communication with.

To achieve seamless mobility across various wireless and telco networks, support must exist for devices joining and leaving the network, which will result in changing “internet” addresses. The platform needs to support multiple IP’s of network hopping/fire-walled devices/servers either via NAT support, integration with a SIP Server and/or other means. This will allow devices to continue to communicate and share data services.

Additional Resources
With the second generation of mobile, pervasive apps poised to explode and with standards in limbo, it is important to surround yourself with the best-of-breed tools, best technology approach and a future-proof application roadmap for the years to come.

The following are some additional links and resources to assist you with your marketing and business models:

For technical advice on fining a platform solution that meets your needs, Recursion assists customers with pervasive solutions, prototype development and consulting services. Visit www.recursionsw.com for more information.

It is truly an exciting time for our industry. It will be interesting to see which of today’s mobile app players translate their technology and business models to the pervasive, ubiquitous, M2M, internet of things. Will you be one of them?

Share