Service applications are a very important concept to understand in SharePoint.
If you are familiar with SharePoint 2007, you might understand
Shared Service Providers (SSPs). There are significant differences between SSPs in SharePoint 2007 and service applications in SharePoint 2010 and later.
A service application provides specific functionality, such as search, that may be required by a Web application. In the end, Web applications
connect to and consume the service provided by a service application.
The following are examples of service applications:
The Search Service Application, which supports crawling, indexing, and querying
The Business Connectivity Service, which enables SharePoint to connect to external data sources
The Managed Metadata Service, which provides taxonomy and managed content types
The User Profile Service, which synchronizes user profile attributes from Active Directory and other sources
A service application's application connection, also called proxy, creates the connection point for the Web application. If a Web
application needs search functionality, for example, the Web application must be connected to the Search Service Application’s application connection. The
application connection controls the interaction between the Web application and the service application. For example, the application connection can have
permissions applied so that a Web application can access only a subset of functionality of the service application.
Typically, a Web application requires more than one service application, and several Web applications require the same service applications. To make it
easier for you to manage the connections between Web applications and service applications, application connection groups, also called proxy groups, create a logical grouping of service application connections (proxies). A Web application connects to an application connection
group and thereby connects to all of the connections that are members of that connection group.
When you create service applications, the application connections are added to a single application connection group, named default, that is available
and can be used by any Web app in the farm. By default, all new Web apps are connected to the default connection group. So, by default, all Web
apps in the farm are connected to all service applications in the farm.
This default provides maximum functionality and ease of setup. However, one of the most important features of SharePoint's service application model
is that you are not limited to this “all apps connect to all services” topology.
Service applications are part of SharePoint Foundation. This means that the architecture is part of the platform, in contrast to SharePoint 2007 in
which SSPs were introduced by Microsoft Office SharePoint Server 2007 and not by Windows SharePoint Services v3.
In SharePoint 2010 and later, most services are built on the Windows Communications Framework (WCF), which means they have optimization built into their
protocol, using binary streams instead of XML to transfer data.
Service apps are administered in Central Administration like all Web applications. In Microsoft Office SharePoint Server 2007, the SSP had a separate
administrative application. Service apps can be remotely managed and monitored. Service apps can be administered by using Windows PowerShell.
A service application provides a single set of functionality. A Web application can, through application connection groups, connect to one or more service
applications based on the needs of the Web app. This is in contrast to the SSP in SharePoint 2007, which contained a bundle of services and a Web
application that was connected to the SSP and incurred the overhead of all services in the SSP.
A service app can also be published so that it can be consumed by applications on another farm.
By default, all Web apps are associated with the default connection group, which connects them to all service applications,
providing maximum functionality and ease of setup. But it is useful to manage the connections more granularly, creating custom connection groups to ensure
that Web apps connect only to the services that they require.