Introducing the BCS Architecture
A SharePoint 2010 installation can consist of one or more servers, depending on the number of concurrent users to the SharePoint sites and the functionality they use. Such a collection of servers is called a SharePoint farm, and it uses a client/server architecture, as shown in Figure 2-3.
Figure 2-3 SharePoint 2010 is installed as a client/server architecture.
The server architecture consists of four tiers:
User interface Hosts the applications that access the data from the external system. The UI applications run on the user’s computer, laptop, tablet, or mobile device. These applications could be a browser; one of the Office client applications, such as Word 2010 or InfoPath Filler; a third-party application; or an application that your organization created.
Web Hosts the IIS Web Server Infrastructure and ASP.NET Framework that SharePoint websites use. The first part of a SharePoint website—for example, http://www.adventure-works.com or http://intranet—maps to an IIS website, which in turn maps to what in SharePoint is known as a web application. This tier responds to requests from the user interface, and directs requests to the appropriate application server and obtains data from the database server. This tier, like the other two tiers, could consist of more than one server for resiliency and load reasons:
Resiliency If one server is lost, there is still at least one server that can respond to user requests.
Load If the requests from users cannot be serviced by one server, another server should be added to make the solution scalable. When this tier consists of more than one server, the load is balanced across the servers, and it appears to the world as if it is a single URL.
Application Hosts services associated with SharePoint 2010 service applications. Service applications are a separate SharePoint 2010 functionality that allows you to manage and deploy a SharePoint installation in a service-orientated approach. In SharePoint Server 2007, these services were all grouped into Shared Service Providers (SSPs), which had severe limitations when trying to scale or deploy complex solutions.
The web and application tiers can reside on the same server or servers; however, in larger deployments these two tiers may be installed on their own servers, where each application server may host one or more service applications. Before installing a multiserver SharePoint farm, a basic understanding of the service application architecture is necessary, as this will affect nearly every aspect of a SharePoint installation.
SharePoint 2010 service applications include Business Connectivity Services (BCS), Managed Metadata Service (MMS), PerformancePoint Services (PPS), Office Web Apps, SharePoint Server Search Service, Secure Store Service (SSS), User Profile Service (UPS), and Web Analytics Service, as well as the client-related services, such as Access Services, Excel Services, and Visio Services.
After the Business Data Connectivity (BDC) model is imported into the server running the BCS service application, the external data is made available to any web applications associated with that BCS service application.
Database Stores the data required by the application and web tiers.
The server architecture can reside on one or more servers. The number of servers will vary from organization to organization and depend on a number of factors, such as the number of concurrent users, scalability, redundancy, resiliency, and the number of service applications used.
For example, when deploying SharePoint 2010 for evaluation or development purposes for a small number of users (for example, fewer than 100 users), the implementation could consist of one server. The single server, known as a single-server farm, would host the web, application, and database tiers. For between 100 and 1,000 users, where redundancy and resiliency are considerations, a four-server farm could be implemented, where two servers would host the web and application tiers and the other two servers would host a clustered or mirrored database server configuration—the database tier.