|
Return to Newsletter Contents...
The SharePoint Stack
by: Michael Mull, Consultant, MCAD, CRCP, MCTS
An astute young man recently asked why SharePoint always was slow loading in the
morning. He explained that every morning when he arrived at the office the first
task he would do after his computer booted up was to check his SharePoint site.
Every morning it would take a long time for the site to load, but only for the
first time. The rest of the time he did not experience any delay. Why?
For the answer to this problem, we must look at the SharePoint stack. You must
always keep in mind that SharePoint is part of a stack of programs and
technologies. The first layer of this stack is obviously the server’s operating
system. In the case of SharePoint this is going to be Windows Server 2003
(W2K3). The second layer is Internet Information Services (IIS). IIS version 6.0
is a component of W2K3 – that means it is distributed with the operating system
software and is free. It is not installed by default but can be easily added at
any time. (Microsoft Windows Server 2008 will be released with IIS 7.0.)
ASP.Net 2.0 is a technology which depends on IIS. After IIS is loaded, it can be
“extended” to use ASP.Net 2.0. The ‘2.0’ in ASP.Net 2.0 refers to the .Net
Framework 2.0. However, because WSS uses workflow, the .Net Framework 3.0 must
be installed. IIS itself does not depended on the .Net Framework and can operate
quite well without it. However, ASP.Net is a product of the framework. So from
SharePoint’s point of view the .Net Framework is part of its stack. This of
course complicates drawing diagrams to illustrate the stack of products
SharePoint depends on.
Finally, since SharePoint stores its content in SQL Server, the system must have
SQL Server 2000 or 2005 available.
To implement SharePoint we then install Windows SharePoint Services 3.0 (WSS),
which can be the top of the stack or we can also install Microsoft SharePoint
Server 2007. Below is a diagram illustrating these product relations. SQL
Server is not included since it is usually installed on a separate machine.

IIS is server software. Its purpose is to ‘serve’ web pages to the client. An
http request for a web page comes in over the network and IIS processes the
request and sends it back to the requesting client. There is a lot of work and
complexity which is hidden in the previous sentence under the description
‘processes the request’ which we are not going to dive into. IIS is powerful
enough to host multiple web sites. On the same machine you can easily host the
web site for a grocery store, a wildlife conservation group and a site devoted
to a candidate for the school board. Each of these sites can be totally
independent of each other and not even be aware of the other sites’ existence.
To isolate the web sites IIS uses application pools. An application pool has a
dedicated portion of memory which no other application pool can access. Each web
site is assigned to an application pool. If a web site crashes, its problems
will not affect any web site which is running in another application pool. As an
example we can look at SharePoint. The SharePoint Central Administration
application is assigned to its own application pool. This way if a problem
develops with a SharePoint site, the administrator can still access the
administration site and make changes which might solve the problem.
The application pool is a segregated part of memory. Within that memory space,
the server runs worker processes. The worker process is what executes the code.
In order to enhance performance and maintain security, work processes are
usually terminated at specified time intervals. Most IIS installations will have
worker processes shut down after a certain period of inactivity. This means that
during the night when no one is accessing the SharePoint sites, IIS will
shutdown all the worker processes in the SharePoint application pool.
If a worker process is not running when IIS receives a request for a web page,
IIS must first create one. This takes a small amount of time. The delay the
young man was experiencing every morning was the startup time for a new worker
process. He did not experience this delay during the rest of the day because the
process would not be idle for a sufficient period of time to prompt IIS to shut
it down.
I explained all this to the young man, but what I really wanted to say was
“Well, SharePoint is pregnant with information, so it suffers from morning
sickness,”
Go to Top |
Return to Newsletter Contents
|