(A message from our Gold Sponsor, RED HAT, INC.)
By Cian Clarke, Senior Software Engineer, Red Hat Mobile
Many enterprises rely upon proprietary applications that were developed decades ago, long before mobile devices became ubiquitous. These immensely valuable applications often include ERP, CRM, BPM, database applications, medical records, energy management systems and flight management systems, none of which were originally designed to interface with today’s mobile devices. Any changes to these “monolithic” applications require costly and time-consuming redevelopment, testing and redeployment of server-side code. Integrating mobile apps securely with these rich backend data sources and applications is at the heart of successful enterprise mobility.
Software interaction was vastly different pre-mobile. Users were more likely to be at desktops tackling tasks that were larger, more multi-featured and longer running than mobile apps. Interacting with software applications was over a more traditional request-response API interaction. In the mobile era, users perform tasks standing in line at a store or walking through an airport terminal. These tasks are geared towards shorter interactions, like approving a workflow: this means interacting with APIs in short bursts. These mobile-specific APIs need to be able to respond in real time to changes in data over an always-open connection or be able to use push APIs to update a mobile user with some new information. This is a far cry from the functionality that monolithic silo applications provide.
However, by using an open source software stack combined with a microservices architecture, it’s very possible to free data from these proprietary systems, moving from a closed, desktop-centric system of record to a highly expansible, mobile-enabled system of engagement. In a microservices architecture, complex applications are decomposed into small, modular, decoupled, independent processes. These fine-grained services each perform a single function and all communicate using language-agnostic APIs.
In the context of using a mobile backend-as-a-service (MBaaS) to mobilize existing enterprise systems, a microservices approach has proven to be ideal, from both anagility and a performance perspective. Connecting microservices that integrate third-party systems and business logic into a mobile-specific microservice, the relationship with third-party software is loosely coupled. This means that integrations can be swapped out for other systems in the future should you choose to migrate, or take even more of this data in-house.
Node.js+Express has become the de facto technology stack for implementing these services and thriving in a polyglot environment. While microservices communicate between themselves using RESTful APIs and lightweight messaging, they also provide modern wrappers for legacy enterprise systems.
A microservices approach has the advantage of allowing app components to be rapidly developed, updated and deployed, thereby supporting the highly iterative nature of mobile app projects. Adopting a microservices approach for mobile helps us reduce our costs, iterate faster and helps with future expansibility of mobility efforts. It should be considered an essential part of any enterprise app developer’s toolkit.
Want to learn more about the basics of building apps? Consider SDC 2016 your one-stop shop. Register today — tickets are going fast.