Monday, July 12, 2010

The SOA Roller Coaster

Joe McKendrick thinks that the SOA roller coaster has moved on and is now moving along the plateau of productivity.

Saturday, July 03, 2010

The Internal Cloud

A few years ago we lived trough the rise of the web. For those working in enterprise computing this new world used a set of exotic technologies such as HTTP, HTML, Browser, web servers that had no place in the IT landscapes that existed then. As the business advantages of "e-business"  started became clear, many companies started embracing these technologies so that they too could compete in this space. Whilst this was happening, another, more subtle, revolution was taking place within the walls of traditional IT. The very technologies that powered a company's web presence started finding there way into the design of internal applications. IT managers started demanding that applications became available over a browser; the cost savings in not having to deploy to each client providing a powerful argument for this. Business departments started demanding portals for their own staff and web based interfaces for the growing number of homeworkers.  In the mean time these technologies have become commonplace in most companies and in the area of WS* based technologies have found their own niche.

We now faced with the next new thing - cloud computing. Although many are focusing on the advantages of "moving out to the cloud", are there already "weak signals" that  cloud technologies will become as commonplace in enterprise IT as e-business technologies have already become.

Let's have a look at some of these starting off with virtualisation. OK, this is no brainer as many are already adopting this today. However, virtulisation also leads to having large images for each virtualised application - a obvious cost factor when you consider storage. One way around this, and an idea taken from SaaS providers, is to have a strong form of multi-tenancy. In this model, core functionality remains the same (and is virtualised) but specific processes, rules and screens for different user groups are developed by configuring the core functionality, rather than developing new applications.

Cloud providers have also changed the way we think about databases. Many are under the impression that there is only one type of database and it's relational. However the rise of the NoSQL database has shown that other types of databases have properties that can be attractive for different types of application.

In order to achieve the levels  of performance and scalability that cloud providers need, they seem to have totally  abandoned the three tier architectures that predominate in post year 2000 enterprise systems. Instead, other architectures that either cache the data  or provide ways of directly manipulating objects as if in memory are standard. This has lead to a new class of  application server that performs the heavy lifting of handling  the distributed processing and data behind the scenes - examples include Terracotta, Gigaspaces, and Coherance. These types of application servers have already stated making in-roads into the financial services sector, due to the extreme performance requirements there. From an architectural viewpoint however, there seems to be a grey zone here between NoSQL databases and these "in-memory" techniques. 

The humble batch job can also expect a work-over, with techniques such as MapReduce and systems such as Hadroop gaining ground. 

Bringing this all together on the consumer side there is the architectural technique previously known as SOA coupled up with mash-up frameworks and associated standards

I'm pretty sure that eventually these kinds of technologies will become so pervasive in the typical IT shop that we will forget the cloud hype and just get on building systems with them.