Offline Capabilities for Cloud Applications

Offline Capabilities for Cloud Applications

The last days, by chance, I had a short look at an older edition of the iX magazine (in German), the one from July 2024. One article written by Andreas Lehmann , Mark Lubkowitz , and Michael Schaefer caught my attention. The article elaborates how to engineer offline-ready cloud apps. These are applications with the backend running in the cloud and clients running on mobile devices, laptops, or PCs. The aim: client application should continue to behave adequately even when not reaching the backend in the cloud.

The authors present their msg cloud offline capability model, which distinguishes the following maturity levels:

  • Offline Unaware: the client application simply fails without providing specific error messages for their users when failing to connect to the backend in the cloud.
  • Offline Aware: the client presents a dedicated error message to users.
  • Offline Read: the client supports all features it can provide to users with locally cached data.
  • Offline Read and User Exclusive Write / Offline Read and Atomic Write / Offline Transactional Read/Write: the client continues to work with locally cached data and even supports client-side features requiring writing data.

The authors list various technologies and products that support the different levels. Rather than looking at them, I want to share some remarks regarding the levels allowing writing to a local data copy respectively a database (extract) while offline. The conceptual challenge is the reconciliation of locally performed data changes during the offline period if the backend or other clients changed independently the same (!) data. However, the reconciliation (and, thereby, higher maturity levels) require an in-depth analysis (knowledge about transaction theory might help, too) and is always application specific.

So, are offline capabilities the solution for organization to address stability issues in the backend or even solve the BCM challenge? There are, in my opinion, three limitations:

  1. The methodology is good – for data-driven applications like in insurance and banking sectors or for administrative environments such as HR or accounting. Control systems and IoT might require more autonomy on the “floor”. If a complex factory automation solution or a building access control cannot connect to the cloud, more elaborate “local” solutions might be needed.
  2. Offline readiness helps “survive” short outages and potentially help keeping users and customers happy. However, they do not help getting the backend systems up again – or reinstalling them if a plane crashed into a data center and destroyed the building. There is still a need for a BCM concept.
  3. From an architectural perspective, solutions working for all applications are always preferable to application-specific approaches that each and every application has to implement.

To conclude: offline readiness does not improve the availability of the (backend) cloud workload of an application, but it is a crucial element for improving the availability for solutions from a user and customer perspective!

Source:

A. Lehmann, M. Lubkowitz, M. Sch?fer: Cloud-Apps offlinef?hig machen, iX extra, July 2024, https://shop.heise.de/ix-07-2024/print

Philipp Hiestand

IT Security Operations Engineer

4 个月

I would argue these are use cases addressed by future block chain applications where the client has the ability to determine the state even after a longer offline period.

回复

Hello??Klaus Haller, thank you for mentioning our article. You are absolutely right; the described methods refer exclusively to the problem of short-term network outages due to white spots in mobile network coverage as well as in tunnels, underground garages, etc. and for thin- and thick-clients on mobile devices. For the server side, there are other approaches to ensure availability, resilience, and business continuity management (BCM). Synchronization of data after a network outage is not performed by the developer here, but by the underlying database management system of the cluster. This differs from the client, which must use special libraries for this purpose. Nevertheless, offline capability also helps with server-side outages, as users can continue to work with local data depending on the implementation of the offline capability, until the servers are back up.

要查看或添加评论,请登录

Klaus Haller的更多文章

社区洞察

其他会员也浏览了