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

LinkedIn Set to Become Financial Research Broker

Looking to leverage its base of millions of professionals, LinkedIn this year will launch a primary research service to help financial services employees tap experts for advice on the social site’s network of 18 million-plus users. More…

UI Patterns

Though architects and geeks give less priority to UI as compared to other layers like domain, data and services as these are the layers which are more important for the right functionality of the system. But UI layer has a great business value. The user and the senior business people look and evaluate the product through the UI. A great UI gives the impression to the user that the application works well. Great UI doesn’t mean to have one thousand colors on your screen, instead the interfaces should be more USABLE. A few years back, I was shocked when I was searching for UI patterns/View Patterns for my web applications and I couldn’t find many. But, now, the list is growing. Here I’m giving some of the links and book(s) that I found:

Book:

Designing Interfaces: Patterns for Effective Interaction Design http://designinginterfaces.com/

Links:

http://ui-patterns.com/

http://www.primaryview.org/patterns/index.html

http://looksgoodworkswell.blogspot.com/2005/05/mind-mapping-design-patterns.html

Are we Delivering Enough Quality Worth of the Money we are Getting in Reward?

Are we Delivering Enough Quality Worth of the Money we are Getting in Reward? This is a question by Raymond Lewallen (an active architect of Microsoft platform– though some JAVA-Lovers may ask a question whether there are any architects on Microsoft technologies). He argues that a lot of developers are delivering less maintainable and less robust code and getting fat pay checks for that and the industry should do something to change this pattern.

Full at: There is too much money to be made in software development – Raymond Lewallen http://codebetter.com/blogs/raymond.lewallen/archive/2008/01/22/there-is-too-much-money-to-be-made-in-software-development.aspx

Hello world!

Welcome to my blog. I’m a software professional currently Manager in a local company. It’s my place to write ideas and thoughts.

Shahid Siddiqui