By Paul Tocatlian.
Last month, I had the opportunity to present at an enterprise mobility conference intended for IT professionals seeking to deliberate on the matters of mobile strategy, infrastructure, and architecture. The topic of our presentation was how to leverage advances in mobility for enterprise transformation and the role mobile middleware plays in enabling trusted and contextual user experiences.
I was joined by my colleague Vlad Milutin who gave a compelling demonstration of what attributes a next-generation mobile app should exhibit. Christine Chang was the third member of our team who did an outstanding job ensuring that none of the conference attendees left before their questions about the Magnet Systems mobile middleware solution were answered.
So what are some of the key takeaways from the presentation and the conversations that pursued?
The mobile train has left the station
Today, more people have access to cell phones than toilets. 1.5 billion people use mobile apps. Over half of U.S. adults are now smartphone users. These are staggering numbers that reveal just how pervasive mobile devices have become and how dependent we are on mobile apps.
It is also indisputable that mobile devices are finding their way into our daily work rituals in ways that will impact business as much as or more than the Web did a decade ago. This transformation is further compounded by the Millennials that already account for 30% of the workforce and think office attendance is unnecessary on a regular basis.
From Web applications to mobile apps: it’s not an easy journey
With the advent of AJAX as a technique to develop Web applications, users have come to expect a rich and interactive online experience previously only available with desktop applications, all while preserving the existing HTML-based backend infrastructure.
- Web applications tend to take full advantage of a desktop (or laptop) screen resolution, although more modern Web sites are adopting responsive designs that work on any screen size.
- “Web” and “online” are two closely associated terms. Web applications will often only work when connected to the Internet, although it is possible to make Web applications offline-capable.
Building mobile apps today remains a laborious exercise and is quite different from developing Web applications:
- People have a different frame of mind when using apps on a mobile device compared to browsing the Web on a PC: one that is more streamlined and action-oriented. Mobile users assume that their apps are offline-capable. They assume that their mobile apps are more context aware. They trust that any information stored locally is safeguarded. These capabilities must be built into mobile apps or the underlying mobile middleware used to develop these apps.
- Web application compatibility issues shy in comparison to today’s lack or mobile standards and the multitude of disparate mobile platforms that need to be supported. Conferences attendees concurred that the promise of write once, run anywhere mobile apps still seems elusive unless you are willing to accept a sub-par mobile user experience. Mobile middleware SDKs can help developers establish functional parity across mobile platforms.
- Developing mobile apps will often involve accessing 3rd party Web services or enterprise systems that were designed with the Web in mind. This means that either new mobile-friendly APIs need to be exposed or the mobile app will need to work that much harder to securely access what it needs when it needs it.
Mobilizing the enterprise requires mobile middleware
Conference attendees acknowledged that today’s mobile application development platforms (MADP) are struggling to deliver on promises, while mobile backend as a service (MBaaS) solutions are coming up short working out enterprise pain points. Likewise, traditional app servers do not provide the types of middleware services required by mobile apps. So what is a mobile app developer to do?
As developers take on the challenge of building true enterprise-grade mobile apps, the expectation is that mobile middleware will deliver the messaging and data services often implemented in-app today – just like client/server middleware in the 1990s and Web application servers a decade later.
Beyond messaging and data services, mobile middleware can deliver distinct services as enablers of trusted and contextual mobile user experiences. Here are some examples of capabilities developers will come to expect from mobile middleware solutions in an effort to build better mobile apps – faster.
As a developer, your mission is to create engaging experiences in the context of who the users are, where they are, and what they are doing in the moment. Geospatial coordinates, time and date, network type, device sensors, personal activity, and connection graphs are examples of contextual data sources that can augment the utility of mobile apps. Context can be used to streamline the user experience and better target content and actions.
Constraints can be used to further contextualize in-app functionality. For example, you could establish a geo-fence around data so that it is only accessible from within a particular location. Or you could restrict transmission of large files to users connected to a WiFi network. In certain cases, it may make sense for a company to enforce these constraints through policy management system.
Recent news articles seem to support this point of view, even beyond enterprise mobile apps:
Going offline is considered the hottest trend with even Facebook calling it their latest killer feature. Support for offline operations provides users with seamless transition between connected and disconnected modes:
- Messages can be queued locally while waiting for the network connection to be reestablished. If a response is lost, replaying the request would result in the response being redelivered without processing the same request twice on the backend.
- Data can be persisted when offline and subsequently synchronized with conflict resolution policies, such as the mobile app or mobile backend always wins. Although more complex custom conflict resolution techniques are often required.
- A mobile cache can be used to reduce over-the-air (OTA) traffic. It can also be used to provide offline data access within time-to-live (TTL) expiration limits.
When are Apple’s APNS and Google GCM push notification services just not enough?
- When a notification message must be sent reliably with delivery confirmation.
- When the payload associated with the action following the push notification must be customized and sent securely from the mobile app to the mobile backend.
- When a notification message needs to be transmitted as a phone call, text message, or email, based on the context of the user receiving the notification.
- When push notifications are initiated from a mobile app rather than a mobile backend.
Most mobile apps persist data locally. They also often create, update, delete data that resides in a backed data store and invoke services that get executed by 3rd party and enterprise systems. This presents a challenge if there is a need to commit (or rollback) a collection of these operations as a single unit of work. Mobile middleware can help coordinate distributed transactions across multiple resources using the two-phase commit protocol.
For long-lived transactions or systems without a commit/rollback mechanism available, one can undo a failed transaction with a compensating transaction, which will bring the system back to its initial state.
Our personal computers have been under constant attack for decades as a result of viruses, malware, and other common vulnerabilities and exposures. The Web hasn’t been spared, from browser security flaws to Internet security breaches attributed to networking protocol bugs. Now it’s the turn for mobile devices and mobile apps to be targeted.
Mobile middleware can facilitate securing data at rest and while in transit. Furthermore, it can play an essential role authenticating users and authorizing access to backend service endpoints through secure APIs. Mobile middleware must provide a security framework that supports these capabilities and is extensible to address unique enterprise requirements.
View or download the mobile middleware presentation for a more detailed description of these services.
Developer experience: it’s not your fathers Oldsmobile
As with other black holes in the universe, the wrong development experience can prevent your mobile app from ever seeing the light of day. The days of building a mobile app that doesn’t need to access external services are long gone. For the enterprise, this means that mobile developers need to find a productive way to collaborate with backend developers. So here are a few commandments from above:
- Thou shalt allow developers to work independently by defining an API contract between the mobile app and the mobile backend.
- Thou shalt be able to pick your IDE based on the task at hand. Native apps versus Web apps: your choice.
- Thou shalt focus on app development and not the underlying plumbing by using a mobile middleware SDK.
- Thou shalt equip developers with ops tools to release IT from needing to manage development environments.
- Four commandments down with six more to go. Any suggestions?
Cloud or on-premise deployment: your choice
Cloud computing is considered by many the fourth great phase of computing history, with mainframe, client/server, and the Web being the first three. When surveyed, a majority of the conference attendees acknowledged that their companies had embarked on this historical journey and already had a presence – albeit small – in the cloud.
Infrastructure-as-a-Service (IaaS) was the least controversial offering by the conference attendees, as scale and cost benefits are difficult to argue. However, the conversation took a different tone when it came to Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS), where conference attendees shared price hike and vendor lock-in horror stories.
Deploying mobile apps in the cloud has its advantages. Today’s mobile backends serve primarily as a system of engagement, orchestrating activities across multiple systems of record. As such, enterprises should have the option to deploy a mobile backend in the cloud or on-premise. Scale, cost, security, compliance, integration, and manageability are key considerations in selecting the right deployment model. Having the flexibility of migrating from one model to the other represents the kind of flexibility enterprises will come to expect from their vendors and service providers.
Putting it all together
Let us remember the middleware lessons of the past while considering the realities of a mobile-first (or mobile-only) world as enterprises embark on a journey from Web applications to mobile apps. Mobile middleware solutions provide a better and faster way to develop and deploy true enterprise-grade mobile apps that enable trusted and contextual mobile user experiences.
- A case for enterprise mobile middleware
- Embark on a seamless journey from Web applications to mobile apps
- Enterprise Mobile Middleware Blog
- LinkedIn Mobile Middleware Group
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License by Paul Tocatlian.