Monday, 27 June 2011

SharePoint Architecture

2.1 Architecture Concepts

Before we start understanding the SharePoint architecture, let us understand few key concepts.

2.1.1 Software Application Architecture

Software Application Architecture is the process of defining a structured solution that meets all of the technical and operational requirements. The defined architecture should also meet key attributes in terms of performance, security, maintainability, reliability, and manageability.

We can classify the architecture as:
·         Physical Architecture
·         Logical Architecture
a.   Physical architecture
Physical Architecture identifies the major components and entities within specific physical servers and locations or specific software services, objects or solutions. It also includes all known details such as operating system, version numbers, and even patches that are relevant. It also lists any foreseen physical constraints, limitations within server components, dataflow, or connection.
b.   Logical architecture
Logical architecture defines the tasks performed, to support the user services. It enables the processes that perform functions and the information or data flow that`s shared between these processes. It does not include physical server name or address. It also does into include any business services, application, name and details and other relevant information for development purpose.

2.1.2 Topology

Topology is the shape or structure of a network. This shape does not necessarily correspond to the actual physical design of the devices on the computer network.
Topology can be classified as:
·         Physical Topology
·         Logical Topology
a.   Physical Topology
The physical topology is how the computers and peripheral are connected and how the cable runs between them, in other words the way the network looks. 
b.   Logical Topology
The logical topology describes the way in which a network transmits information from one node to the next node.

2.1.3 Server and Web service:

Server is simply hardware or software created to provide services to other users in terms of functionality user wish to achieve. Servers can be classified as
Web Server:  web server hosts the websites over the World Wide Web (WWW) using the protocols like hypertext transfer protocol (HTTP), hypertext transfer secure protocol (HTTPS) etc. It is responsible for handling all the requests that comes from clients, processing them and provide the responses back. Microsoft product IIS [Internet Information Server 7.0 latest version] is web server.
Application Front End Server: An application server is a server program in a computer /network that provides the business logic for an application program.
Database Server: A database server is a computer program that provides database services to other computer programs or computers.
Web service: web service is the standardized way of communicating and integrating web based applications over an internet protocol backbone using various protocols like XML, SOAP, WSDL and UDDI open standards.

2.1.4 Web server [IIS]

IIS: Internet information Server is the Web server created by Microsoft. To host any website over the internet, intranet or extranet, it must be first created on IIS. The latest version available of Microsoft IIS is 7.0. Elements of IIS

Worker Process (w3wp.exe): Worker process runs the web application in IIS and is responsible to manage all the request and response that are coming from client system. When a request comes to the server from a client, worker process is responsible to generate the request and response. In a single word, we can say worker process is the heart of any web application, which runs on IIS.
Ports: Port represents a communication channel or endpoint. A port number is part of the addressing information used to identify the senders and receivers of messages.
Application Pool: Application pools separate applications by process boundaries to prevent an application from affecting another application on the server. In IIS 7, application pools continue to use IIS 6.0 worker process isolation mode. Application pool is the container of worker process. It is used to separate sets of IIS worker processes that share the same configuration. Application pool enables us to isolate our web application for better security, reliability, and availability. The maximum number of application pools supported by IIS 7.0 is 2000.
Web application: It is a website created in IIS. In terms of SharePoint, it contains at least one or more site collection. For creating a web application, we need to specify content database.
Virtual path provider: A Virtual path provider provides a means to supply contents from location other then the file system. Any web base project has two types of web pages; one that is common to all the sites within that SharePoint server other is customized, specific to that site only.    Common pages are stored on folders (Physical hard drive) so that anyone can use these pages easily while customized pages are stored in content database. For rendering pages from SQL server content database and virtual directories, we need an abstract mechanism, which is achieved by using the virtual path provider is used.
Virtual directories: Virtual directory (sometimes referred to as path) is used for mapping the virtual path to a physical path (or actual path) of content. It is not an actual folder on the hard disk. There are three reasons for using virtual directory.
·         Shorter: Virtual path is usually shorter than the path of the physical directory
·         Security: It is also useful for security purpose because users do not know where files are physically located on the server and cannot use that information to modify your files.
·         Day to day use: it is more convenient for users to type.
Ghosted and Unghosted pages in SharePoint: ghosted page in SharePoint website refers to a file, which exists in the server’s file system. These reference files are common for all the sites within that SharePoint server, i.e. if you modify a reference file then the changes will reflect in all the sites within that SharePoint server automatically. For example, the default master page of SharePoint is a ghosted page.
All the pages in a SharePoint website, which are stored in the content database, are referred as unghosted pages. All the unghosted pages are specific to that SharePoint website only, i.e. changes done in an unghosted page will not reflect in other websites.
In simple words, the pages, which are loaded from the file system (physical hard drive), are termed as ghosted pages and the pages that are loaded from the content database, are termed as unghosted pages. Modules of IIS

The latest version of IIS 7.0 has a modular architecture. These modules act as individual features that the server uses to process requests. The modules present in IIS are:
1.       HTTP – HTTP perform tasks specific to HTTP in the request-processing pipeline, such as responding to information and inquiries sent in client headers, returning HTTP errors, and redirecting requests.
2.       Security – perform tasks related to security in the request-processing pipeline, such as specifying authentication schemes, performing URL authorization, and filtering requests.
3.       Content– perform tasks related to content in the request-processing pipeline, such as processing requests for static files, returning a default page when a client does not specify a resource in a request, and listing the contents of a directory.
4.       Compression – perform tasks related to compression in the request-processing pipeline, such as compressing responses, applying Zip compression transfer coding to responses, and performing pre-compression of static content.
5.       Caching – perform tasks related to caching in the request-processing pipeline, such as storing processed information in memory on the server and using cached content in subsequent requests for the same resource.