Thursday, August 23, 2007

A Bird’s eyeview of Sharepoint 2007 Architecture

After having installed SharePoint 2007, at the face of it, the localhost URL or http://<> now shows a SharePoint portal website – but there's a way lot more that just happened behind the scenes.
The following steps happened between that double click on the SharePoint 2007 installation, the configuration wizard with 10 steps, and your going to http://<>.
1. A new instance of SQL Express was created on your machine. This is by default identified by <>/OFFICESERVERS.
2. In this new instance, various databases were created. Many of them have a curiously same structure, as they are all the "backends" for various Sharepoint WebApplications.
3. Various Websites were setup in your IIS. All of these, are running on the Sharepoint engine. All of these are running on ASP.NET 2.0. But one of these, is the Sharepoint Central Administration Website. So, a SharePoint WebSite manages other Sharepoint Websites!! This kind of segregation makes production push and deployment of newer sites a lot easier.
4. The Sharepoint Central Administration Website (SCAW). It's got 3 major areas - Home/Operations/Application Management. Home - is a SharePoint page, where you can view/administer various tasks, topology, or add any other WebParts you wish. This is based on the "Blank" template, which presents you with a great whitespace to throw WebParts in. These Administration widgets - are nothing but WebParts themselves!!
SharePoint now has a check-in/check-out mechanism for all front end changes, including a workflow, defined in WWF (Windows Workflow Foundation). Which means, you can plug in your own, or a third party workflow. This behavior is overridable and customizable.
Under Operations – you can do operations that are more "global" in nature. Like managing your web farm, various jobs, backups, database admin etc. This is typically what the Infrastructure/IT guys will mostly use.
Finally under Application Management is where things get fun. Especially fun if you have an environment where you manage multiple websites. Why? Because the organization of various websites within SharePoint, is frankly outstanding.
You have at the top level Web Applications. So you go ahead and create a Web Application (there are a couple created for you out of the box). You have various customizations you can specify in the WebApplication - for instance, what application pool must be used, where should the database live, and a whole lot of other stuff at the same level.
Then under each WebApplication you have "Sites Collections". These Site Collections are - what are individually created for each .. say for instance, department within your organization. You have a fantastic degree of customizability within each one of these. Many templates come out of the box, you could write your own, but in addition you can specify a number of things such as quotas, administrators, security settings, and "self maintainance" information etc.