The Complete Magazine on Open Source

A Brief Note on the Next Generation of Mobile Apps

SHARE
/ 249 0

mobile

Mobile devices have become ubiquitous. In many cases, mobiles perform the work expected of a PC. Hence, there is a need for us to take a long, hard look at the next generation of mobile apps that will support personal and professional work on mobile devices.

In this era of all-pervasive technology, mobile phones are a basic personal and professional requirement. There are thousands of popular consumer mobile applications on leading mobile platform stores like Google Play, Apple Store and Windows Marketplace, while emerging and evolving innovative hardware capabilities are providing the platforms for the next generation of apps. Applications are being designed, implemented and targeted for mobile and wearable devices. There are many popular consumer and enterprise app stores with incredible user bases. Soon, mobile apps will no longer be considered just an extension of existing desktop clients or portals. There will be solutions that work only on connected devices. The consumer market will grow to command an increasing user base and there will be many new innovative mobile apps. However, the enterprise segment is also maturing to the point of adopting connected devices for day-to-day work.

Figure 1

Figure 2

Enterprise mobility
Enterprise mobility is still largely unexplored and untapped. This potential market is too big to ignore. Ubiquitous mobile and Internet usage implies unlimited opportunities in this space. A massive growth has been observed in the sale of smartphones and tablets. With capabilities like quad core processors, decent memories and bigger screen sizes, smart devices are ideal for personal and professional use. Gadgets owned by the target user –- employees, partners, distributors, contractors and customers -– are currently smarter than the technology options being provided by enterprises, which is a huge challenge for the latter. Organisations are trying hard to come up with an efficient, secure, and usable process that acts as a catalyst across multiple platforms to meet the expectations and demands of the target users.
Enterprise users (CEOs, CIOs, CTOs, executives, sales representatives, employees, etc) are looking for their structured or unstructured data (presentations, documents, contact details, agreements, statement of work, etc) on mobile devices, either online or offline. The users’ demand for anytime, anywhere accessibility of data on a mobile is the key to next generation mobile apps.
Leading mobile platforms already provide personalisation on mobile devices. A single device can have personal as well as professional data with adequate security enforcement. Enterprise mobility, along with solutions, products and services such as EMM (enterprise mobility management), MAM (mobile application management), MDM (mobile device management), EAS (enterprise app store), etc, is already in use in medium and large sized enterprises. So, what’s next?

Polyglot persistence
Polyglot persistence (storing data on multiple data stores, either SQL or NoSQL) is becoming a need for enterprises. Enterprises can have data in various formats such as graphs, columns, key-values, tables and documents. There are many existing SQL and NoSQL data stores, each one with its own pros and cons. So it’s very feasible for an enterprise to depend on multiple data sources, either SQL or NoSQL, as per a system’s needs. There could even be a need to support multiple NoSQL/SQL databases. Supporting multiple data stores is polyglot persistence. A polyglot persistence can have implementation approaches that have weak or strong mapping with data sources.
The figures illustrate weak polyglot and strong polyglot approaches. In the weak polyglot approach, the data access layer directly fetches data from various data sources. However, the strong polyglot has a polyglot mapper to deal with various data sources. A strong polyglot is the recommended solution for scalability and extensibility of the system. There are solutions which support a polyglot mapper. An example is Kundera, an open source framework/library backed by Impetus Labs or iLabs, the R&D division of Impetus Technologies.

Kundera
Kundera is a JPA (Java persistence API) 2.1 compliant polyglot object mapper. It supports various NoSQL databases (Cassandra, MongoDB, HBase, Redis, Oracle NoSQL, Neo4j, Couchdb) and relational databases. It has features like polyglot persistence, JPQL (Java persistence query language) and native query support, schema generation, transaction management, REST based access and many more. Kundera has been developed with the objective of making access across data stores as easy as changing a configuration.
Figure 3 illustrates the solution overview for next generation mobile applications. As stated, an enterprise may have multiple SQL or NoSQL data sources. A polyglot mapper (like Kundera) may provide support for various data sources. This polyglot mapper interacts with an enterprise’s CRM (customer relationship management), SCP (supply chain management), ERP (enterprise resource planning) and FSM (field service management) systems. The core enterprise system exposes services or applications, as per the needs, through a secure enterprise data gateway. The exposed services are accessed by mobile applications.

Figure 3

Figure 3: Solution Overview

Mobile solutions
Mobile applications have changed the focus from what’s on the Web to the applications on mobile devices. So mobile apps are no longer an option; they are now an imperative, with measurable ROI (return on investment) for enterprises. With the stress on gaining competitive advantage, ensuring user delight, building an efficient and productive workforce and working towards resource optimisation, there are diverse requirements for enterprise mobility solutions, as listed below.
Data security: Mobility solutions require access to enterprise data. In some cases, the application saves enterprise data locally on the user’s personal device. The security mechanism for ‘data on the move’ as well as ‘data at rest’ is one of the crucial concerns for enterprises.

  • With data on the move, the concern is with data security during network communication for client-server interaction
  • With data at rest, the issue is with data security during storage on mobile devices (required for offline data support from mobile applications)

Enterprise data gateway: Access to enterprise data over generic Wi-Fi or the operator’s network is a core requirement for modern mobile solutions. These gateways should have the intelligence to offer enterprise data on only registered devices. However, the data sources may be standard or custom data sources.
Device/platform diversity: Multi-platform supported applications for a BYOD (bring your own device) or CYOD (choose your own device) policy is an unavoidable requirement for enterprises. COPE (corporate owned personally enabled) devices might also be a mode of delivery. Selecting the appropriate development strategy to deal with platform diversity and device diversity is one of the important decisions. It can significantly affect the TCO (total cost of ownership). Applications for in-house distribution, with the admin desk managing user devices in a remote fashion, also add to the TCO.
Manageability (application distribution and data management): Remote data management and applications management are the other expensive dimensions of the enterprise mobility ecosystem.
User experience: Customer or user delight is the way to go with offerings and services. Mobile solutions come with diverse platform-specific guidelines and user interaction models like the Windows Metro guidelines, the iOS Human Interface Guidelines, the Android UX guidelines, etc. Mobile applications can be designed with an app-centric design or adaptive design.

  • App-centric designs: Mobile applications designed with common guidelines and used across multiple platforms
  • Adaptive designs: Mobile applications designed with platform-specific guidelines for the desired cross-platform usage

Considering the difficulties and challenges with mobile strategies, enterprises are looking for a unique and cost-effective solution that reduces the time to market and offers high maintainability. Rapid mobile application development is one of the basic needs from business heads, without limiting the features or quality of the deliverables. Rather, mobile solutions are assumed to meet dynamic mobile environment challenges, integration with other systems/frameworks/modules with expected add-ons like an EMM suite, push notifications, SSO (single sign on) for mobile solutions, etc. Considering the dynamic nature of system needs, mobile hybrid applications are trending across the market for the B2C, B2E and B2B segments.

Figure 4

Figure 4: Mobile hybrid application

Mobile hybrid applications
Mobile hybrid applications are seamless amalgamations of native (iOS, Android or Windows Phone) and Web (HTML, CSS and JavaScript) technologies to provide multi-platform supported mobile applications in a cost and time effective manner. Hybrid applications are neither native apps nor Web apps. They are implemented with Web technologies and packaged as applications for distribution. These apps can access native device features and APIs. Basically, hybrid apps are native mobile applications which have Web browser control within their main UI screen. Here are the imperative characteristics for mobile hybrid apps:

  • UI implementation using Web technologies (HTML, CSS and Java Script)
  • Apps that are capable of using mobile platforms or operating system APIs
  • An executable file that installs and resides in the
    mobile device
  • Apps that can be distributed via platform-specific app stores or enterprise distribution mechanisms

Figure 4 depicts an analogy of a hybrid application. Broadly, it has two layers— the container and the user interface. The container is implemented on the native mobile technology (Android, iOS or Windows Phone), whereas the UI (User Interface) is implemented with Web technologies (HTML, CSS and JS).
There are many frameworks and tools for hybrid app development. The major selling point for hybrid apps is cross-platform development. The following are the features that can be leveraged with hybrid apps:

  • Integration of open source frameworks with HTML5
  • Liquid layouts for multi-screen UIs
  • Local storage, multimedia handling, semantics and forms, graphics, etc
  • A single code-based architecture model for multi-platform presentations
  • Hybrid framework that bundles the HTML5 based view layer with native platform containers to create deployable builds

Use case
In this era of globalisation, there are many factors other than technology, hardware or software, which directly or indirectly influence solution approaches. The key for next generation mobile applications is to be available anytime and anywhere. Enterprise ‘search on mobile’ is one of the use cases for this. Consider a scenario where the user’s structured and unstructured data can reside in mobile devices. It is accessible online as well as offline. There is automatic data fetch and synchronisation from enterprise servers, while hybrid mobile applications support security mechanisms with adequate security enforcement for enterprise users.
Enterprise users (CEOs, CIOs, CTOs, executives, sales representatives, employees, etc) can thous have their structured or unstructured data (presentations, documents, contact details, agreements, statements of work, etc) on a mobile device, anytime and anywhere, either online or offline.

References
[1] ‘Kundera’, Github <https://github.com/impetus-opensource
Kundera> accessed 09 February 2015.
[2] ‘Kundera’, Impetus bigdata open source <http://bigdata.impetus.com/open_source_kundera> accessed 09 February 2015.