It is interesting to see how techology seems to evolve exponentially. The Wright brothers first flight in 1903 only lasted a mere 7 seconds and yet in just about 50 years we made our first manned flight into spac. When ENIAC came into existence in 1943 it was the size of two football fields and had the computational capacity which can easily be rivaled by the simplest of calculators today and yet in a little over 60 years, computers have become extremely powerful and extremely small in size. Software development has come a long way from simple structred programs on the 60s to complex n-tier service oriented enterprise level applications. I was musing the other day as to where our future lay... not just as end users but as developers. What is the major technological advancement that is currently making its way out of laboratories around the world? Ironically, I was sitting in my lawn looking at the clear sky (which in itself is an exception) and looking at the clouds drifting by... clouds.
Cloud computing is no longer some experimental concept which is being prototyped in a remote lab under a rock. Cloud computing is today's reality and it is here to stay. But interestingly enough, cloud computing is not a recent discovery as it might seem. The idea of cloud computing was first theorized by John Mcarthy in 1960, when he suggested that one day computing resources might be supplied to households by centralized distributors like other utilies like gas and electric. In more recent years, Amazon has been backing the cloud computing idea since the early 2000.
According to a 2008 paper published by IEEE Internet Computing "Cloud Computing is a paradigm in which information is permanently stored in servers on the Internet and cached temporarily on clients that include desktops, entertainment centers, table computers, notebooks, wall computers, handhelds, sensors, monitors, etc.
Cloud computing is a general concept that incorporates software as a service (SaaS), Web 2.0 and other recent, well-known technology trends, in which the common theme is reliance on the Internet for satisfying the computing needs of the users. For example, Google Apps provides common business applications online that are accessed from a web browser, while the software and data are stored on the servers. Google's Online office applications such as Google Docs and Google Spreadsheet are prime examples of this idea. Considering the ongoing was between Microsoft and Google one would assume Microsoft would not be left far behind in the battle for cloud computing. I did a little searching around and I found something rather interesting: Microsoft intends to make the next version of Office (Office 14) a web based application as well instead of the usual desktop application that its predecessors have been. No doubt google's online apps have helped to shape Microsoft's change in strategy.
I initially assumed that this would undoubtedly be some kind of extension to the existing MOSS. But considering the nature of the apps themselves, to be deployed over the internet will possibly millions of users, this would probably not be the best way to do it. Sharepoint has always been more about web content management than document management. I looked around further and found my answer - Azure
Microsoft's Azure is a cloud computing platform built on top of the .NET 3.5 Framework. The Azure Services Platform uses a specialized version of Windows Server, Windows Azure to run its "fabric layer" — a cluster hosted at Microsoft's datacenters that manages computing and storage resources of the computers and provisions the resources (or a subset of them) to applications running on top of Windows Azure. The platform also includes five services — Live Services, SQL Services, .NET Services, SharePoint Services and Dynamics CRM — which the developers can use to build the applications that will run in the cloud. A client library, in managed code, and associated tools are also provided for developing cloud applications in Visual Studio. Scaling and reliability are controlled by the Azure Fabric Controller so the services and environment don't crash if one of the servers crash within the Microsoft datacenter and provides the management of the user's web application like memory resources and load balancing.
The Azure Services Platform can currently run .NET Framework applications written in C#, while supporting the ASP.NET application framework and associated deployment methods to deploy the applications onto the cloud platform. Two SDKs have been made available for interoperability with the Azure Services Platform: The Java SDK for .NET Services and the Ruby SDK for .NET Services. These enable Java and Ruby developers to integrate with .NET Services.
The good news is that Sharepoint in its current form can be used to consume Azure's Services. This can be done by using out of the box SharePoint functionality like the Data View Web Part or in code using ASMX Web Services or WCF Web Services in a custom web part.
It is quite interesting to see how the future will turn out. Software as a Service is already making breakthroughs and major backers like Amazon, google, Microsoft, IBM , Sun etc are all getting ready to launch their Cloud computing based products in the near future. As sharepoint developers, We should get ourselves acquainted with Azure so that in the furture, we can learn to adapt to this ideology with ease.
More Information - http://www.microsoft.com/azure/default.mspx