Tuesday 14 February 2012

PPL in Windows 8

 

Asynchronous architectures may sound to be a good thing. This certainly changes the way we write traditional code in the earlier platform. A lot of argument may be focused on Windows 8 Metro UI build more around the cloud strategy so I guess the async architectures does make perfect sense out there.

If I were to look into the tons millions of dollars done by companies in the earlier platforms Win 7 etc.. Async overdrive may end causing a large enough disruption from a programming model. With Async Architectures comes a new set of challenges

1. API changes.

2. The Testing would be a very different conversation

3. Ability of the application to handle multiple call backs, the load scenarios will run into various permutation.

If  I look at a web application it would easier to support the async architecture to a large extent as they are already there.

Latency tolerance can only be achieved by introducing asynchronous interactions to your architecture. The challenge becomes determining the components that can be decoupled and integrated via asynchronous interactions. An asynchronous architecture is far more than simply changing the request/response from a call to a series of messages though. The client is still expecting a response in a deterministic time. Asynchronous architectures shift from deterministic response time to probabilistic response time. Removing the determinism is uncomfortable for users and probably for your business units, but is critical to achieving true asynchronous interactions.

 

Any aspect of your architecture that is ignored will become a problem. This is a simple rule of doing design. As discussed in this article, latency is one aspect that must be considered. Decompose your architecture, taking systemic qualities into consideration. Decompose data, and give up on ACID levels of consistency. Assume that you will have highly latent connections between your components. If you take this approach, the result will be an architecture that is not only tolerant of broad geographic deployments, but is more responsive to your customers and more resilient to disasters.

References- http://msdn.microsoft.com/en-us/library/windows/apps/hh464924(v=VS.85).aspx

http://tirania.org/blog/archive/2011/Sep-15.html

 

A very good read is http://msdn.microsoft.com/en-us/magazine/hh781020.aspx

No comments: