Occasionally Connected Computing – Best of Both Worlds! May Be!

These days I’m previewing OCC — Occasionally Connected Computing Architectures. This is an architecture where client application may continue working even when off-line (though the functionality or data freshness may degrade within a given limit under which user may continue his work). As the traditional online applications are too much dependent on the network health and availability while the networks are prone to problems (See Wikipedia article Fallacies of Distributed Computing) such applications suffer too much from network problems. But by making it ready to work in both off-line and online modes, these applications may be made much more usable and productive.

How It Works

Cache Locally — Sync When Connected

It keeps some sort of local storage of data/service messages when off-line and synchronizes with the server when gets connected. There may be different implementations but basic idea is the same. Some simple systems may have a local database with replication performed when online. Others may have a local cache for reference data and prepares a message queue for the transactions performed which are forwarded to the server when connected. Similarly, the server may also send some updated info/service messages when connected.

Service-oriented vs. data-centric approach to occasionally connected application design

Two Approaches from Microsoft: Service-oriented vs. data-centric approach

Strengths

Continuous Operation When Connection Unavailable/Poor (Though quality of work may degrade)

Rich UI of Desktop Applications

High throughput of Local Applications

Ease of Deployment of Web Applicatiolns

Challenges

Both sides of application must be loosely coupled

The client application must adopt to changing connection status

Conflict Resolution when something may change at both ends

Security

Transaction Management

Current Status of OCC

Due to the poor UI of traditional web applications, the smart client was being pushed hardly by Microsoft and some other vendors were also investing in it (like java Web Start with Swing and Web services in java, SWT from eclipse and Flash). But Google’s AJAX based interactive web applications struck hard into that advancement. But, now, once again people have started talking about RIA (Rich Internet Applications). And OCC supporting vendors are trying to push it once again. Microsoft Silver Light and Java FX are the more famous recent progresses.  But still we, the enterprise architects have to wait a little more for a stronger market acceptance. After that we will get enough testimonials, enough patterns, tool support, APIs and components.

References

Wikipedia : Fallacies of Distributed Computing

Microsoft : Occasionally Connected Smart Clients

Adobe White Paper : The Occasionally Connected
Computing (OCC) Model

Occasionally connected computing architectures

3 Responses

  1. Check out iscrybe.com for a flash based calendar application. You may be able to use it as an example within your OCC entry.

  2. Interesting! I tried but they have suspended new registration for the time being but existing users may invite others. If you are registered there, may you invite me?

    Shahid

  3. Flash based solutions were the early birds and more delighting but as .Net and java are marching forward, I would prefer them as it will be more inclined and integrated with the main stream software development.

    Shahid

Leave a Reply