This week while discussing some open development projects the conversation turned towards some architectural topics and what the purpose of SharePoint is. I feel confident in saying that SharePoint can be used for so many different things. It got me to thinking though, what if it were treated as an early cloud platform? The more I thought about it, the more it made sense.
Imagine a large complex organization with a central IT group that provides services to the different business units.
Independently Deployed Apps
Independently deployed applications would include custom development or packaged software applications. There could be many dozens of web, app, and database servers scattered throughout a data center. Each system is managed independently, potentially by different groups.
Setting up or deploying a new application could take weeks as servers are deployed, software is installed, and access rights are given. If the load of an application is too much then it needs to be reviewed to see if another system can be added for load balancing; hopefully its stateless. This can be a very difficult process with custom applications, and impossible with some packaged applications. Since storage is managed independently each system has to be reviewed or monitored separately.
Many companies operate like this to some degree. It can be very expensive to manage which is what brought on the Virtual Server revolution. Virtual servers reduce hardware, but in most environments they do not reduce the number of systems on the network.
SharePoint as a Cloud
SharePoint deployments can be setup to handle 1000s of Site Collections, and provisioning can be automated. Storage can be handled centrally and allocated as needed with support for quotas and standardized usage reports. There are some great mechanisms in place to easily add a new web front end quickly allowing you to scale out a farm to handle higher user loads with the use of a load balancer. Using virtual server technology this can also be automated. There are also administrator tools that make deploying components, site definitions and other solutions relatively easy.
Developing on the SharePoint platform can be a transition, even for .NET developers, but with the addition of the Business Data Catalog, InfoPath Forms Services and the Workflow capabilities there really is a rich feature set to work from. When compared to the two previous versions, I think the current version (WSS 3.0/MOSS) has made development a bit easier since its based on ASP.NET and exposes a familiar object model.
One of the recent developments I find interesting is the technique of using JQuery to interact with SharePoint’s API or any other web service without the need for server code. This can simplify development and project deployment efforts quite a bit, while delivering the same robust functionality.
While developing and delivering applications on top of SharePoint platform may sound far fetched to some, there are already a number of companies delivering vertical solutions and application frameworks including Open Text, Quest Software, and KnowledgeLake.
While the future promise of the cloud is to move that infrastructure and management of those servers outside the walls of your enterprise, I think many of these same concepts can be applied inside those walls now using SharePoint. This could bring easier maintenance, administration, and a substantial cost savings.