SharePoint 2010 Service Application ArchitectureAyman El-HattabTechnology Solution ProfessionalMEA Center of ExpertiseSharePoint MVPayman@aymanelhattab.comwww.aymanelhattab.com
Session ObjectivesBecome familiar with the new Service Application ModelUnderstand how sites use Service App featuresKnow the underlying components in IIS and SQL used to support Service AppsIntroducing Multi-Tenancy in SharePoint 2010View some Example Topologies
SharePoint                   20102007SharePoint ServerShared Service ProviderSearchSearchExcel Calc ServiceExcel Calc ServiceUser Profile ServiceUser ProfilesBusiness Data CatalogBusiness Data CatalogWindows SharePoint ServicesContentConfigWorkflowContentConfigWorkflow
SharePoint Service ApplicationsSharePoint 2010SharePoint ServerShared Service ProviderSearchExcel Calc ServiceUser ProfilesBusiness Data ConnectionSharePoint FoundationWindows SharePoint ServicesContentConfigWorkflow
SharePoint 2010SharePoint ServerSharePoint Service ApplicationsPowerPoint Broadcast ServiceSearchExcel Calc ServicePerformancePointUser ProfilesVisio Graphics ServiceBusiness Data ConnectivityAccess ServiceWeb AnalyticsManaged MetadataWord Conversion Service3rd party services…SharePoint FoundationSandboxed Code ServiceUsage & Health LoggingContentConfigWorkflow
Service WorkflowFor a typical service~~~~~~~~~~~~~~~~~~~~~~~~~~BrowserApplication (Middle-Tier) ServerWeb Front End Server
SharePoint Containment HierarchyFarm = Configuration DatabaseServersServicesService ApplicationsWeb ApplicationsM:NService Applications DBContent DBSite CollectionsSites / WebsListsItems
What is a Service Application?SharePoint Service: The middle tier .NET component (Actual binary) that provides Data or Processing resources to SharePoint features.Service Instances: Running physical instance of a service.Service Application: A configured logical instance of a Service.Provides data or computing resources according to the configuration.Exposes administrative interfaces (Web-based or PowerShell)Uses resourcesOne or more Service Databases.Application Pool
Service Applications vs SSPNo longer a separate SSP web siteSA’s managed via central adminPick and choose your service apps (SA)If you don’t need a service app, don’t add itWeb apps can consume SAs on an individual basisEach web app can use any combination of all available SA’sDeploy multiple instances of the same SAJust give each one a unique nameReuse SA instances across multiple web apps in farm
New Service App ModelSSPSearchUserProfilesExcel CalcUserProfilesSearchBCSVisio  Excel CalcBDCWAC3rd party Servicehttp://itweb/http://hrweb/http://hrweb/http://itweb/Corp FarmCorp FarmMOSS 2007 Model All or Nothing PropositionSP2010 ModelA La Carte!
Scaling Service ApplicationsService Apps can achieve high scaleSelect which servers in the farm the SA runs onControlled in Services on Server pageSearch Service Application is unique in how its topology is managedTo achieve more scale:Add more serversConfigure SA’s to run on them
Cross Farm SAsCross Farm SAsAny farm can publish SAs.Remote farms don’t need perms to parent farm DBs avoiding potential security issues.One web app can use both local and remote SAsProvides for centralized “enterprise” SAsNot all SAs can be shared between farmsYES:  People, Managed Metadata, BCS, Search, Secure Store, Web AnalyticsNO:  Usage and Health, State Service, Project, Excel Services, Access, Visio, Word, Word Viewing, PPT, PerformancePoint
Some Service AppsAccess ServicesAllows viewing, editing, and interacting with Access databases in a browser. Business Data Connectivity ServiceEnabling this service provides the SharePoint farm with the ability to upload BDC models that describe the interfaces of your enterprises’ line of business systems and thereby access the data within these systems.Excel ServicesAllows viewing and interactivity with Excel files in a browser. Managed Metadata ServiceProvides access to managed taxonomy hierarchies, keywords and social tagging infrastructure as well as Content Type publishing across site collections. PerformancePoint Service ApplicationSupports the monitoring and analytic capabilities of PerformancePoint Services such as the storage and publication of dashboards and related content.PowerPoint Service ApplicationEnables the viewing, editing and broadcast of PowerPoint presentations in a web browser.
Some Service Apps (cont.)Search Service ApplicationIndex content and serve search queries. Usage and Health data collectionThis service collects farm wide usage and health data and provides the ability to view various usage and health reports. User Profile Service ApplicationAdds support for My Sites, Profile pages, Social Tagging and other social computing features.  Some of the features offered by this service require Search Service Application and Managed Metadata Services to be provisioned.Visio Graphics ServiceEnables viewing and refreshing of Visio web diagrams. Web Analytics Service ApplicationEnable rich insights into web usage patterns by processing and analyzing web analytics data .
SA ProxiesA proxy is automatically created for an SA when the SA is created via central admin.It’s a virtual link that lives on WFE and used to connect web apps to Sas.
SA Proxy GroupsA proxy group is a group of SA proxies that are selected for a web appBy default, all SA proxies are included in the default proxy group. You can remove them.A single proxy can be in multiple Proxy GroupsWhen you create a web app you can:select the default proxy groupcreate a custom proxy group by selecting which SA proxies should be includedThe custom proxy group for one web app cannot be reused with a different web app
Changing the Default Proxy GroupAdmin UI:Application Management <click>Configure service application associations <click> “default” (under “Proxy Group”) <click>PowerShellGet-SPServiceApplicationProxy lists the SA proxy IDsAdd- and Remove-SPServiceApplicationProxyGroupMember takes the ID as a parameterNOTE:  Do NOT enter a name for the “Identity” parameter in these calls; just press Enter and when prompted and it will use the Default proxy group automatically
Associating Web Apps to Proxy Groups
Deploying and Managing SAsCreating:Select services while running the farm Config Wizard Add services one by one on the Manage Service Applications page in Central AdminUse PowerShellManaging:Central Admin, Manage Service ApplicationsClick on any SA and then the Manage button on the ribbonUse PowerShellSome PowerShell examples:http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=50
Isolated SAs
Service DatabasesService Applications with their own DB:SearchUser ProfileManaged MetadataSecure StoreState ServiceBusiness Data ConnectivityWeb AnalyticsPerformance PointUsage and Health data collectionWord Automation
Developing Custom SAsCreating custom SAs is possibleThe object model and interfaces have been defined so they act, look and feel like an out of the box serviceThere is a whitepaper available that outlines the basic concepts and relevant APIs
Service Application ComponentsBrowserClient AppCustom Service Applications ComponentsCustom Database*ServiceService ApplicationService Endpoint (WCF)*Service Application ProxyCustom Consumers Leverage ServicesWeb PartsPowerShell CmdletsCustom PagesWCF ServicesConsumerWeb PartConsumerWeb PartSP WFEService Application ProxyWCF Contract(*.svc)* .asmx …SP APPSERVERService Logic (* .dll)Config DBCustom DBSQLSERVERContent DB
Multi-Tenancy (Partitioned and Non-partitioned Services)Services can be configured to “share” data across Tenants or to “partition” data for each tenant (data isolation)Allows multiple organizations to be ‘hosted’ on the same SharePoint configuration, but keeps their data isolatedConfigurable ‘per-service’ to allow for “Mixed-Mode Partitioning”Service Applications that support Multi-Tenancy can be administrated out of Central Administration (Delegated down to tenant admin site).DataPartition APartition B
Examples
  Simple Service App Association
Multiple Service App Association
Service App Farm
Content-only Farm
Multiple Farms –  Mixed Service App Association
Service ApplicationsDemo
Recap – Logical ViewFarm 3Farm 2Farm 1SearchUser ProfilesSearchExcelUserProfilesManagedMetadatahttp://wingtiptoys.comhttp://intranet
Recap – Architectural ViewService: A middle tier component that provides Data or Processing resources to SharePoint features (Actual DLLs)Service Machine Instance: Actual instance of the running service binaries on a serverService ApplicationService Application:A configured logical instance of a ServiceService ProxyService ProxyService Application Proxy:Reference to the Service ApplicationService Consumer:Components that utilize the service’s logicWeb Part, Pages(Service Consumer)*.SVC’s, PowerShell Cmdlets(Service Consumer)
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP

SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP

  • 1.
    SharePoint 2010 ServiceApplication ArchitectureAyman El-HattabTechnology Solution ProfessionalMEA Center of ExpertiseSharePoint MVPayman@aymanelhattab.comwww.aymanelhattab.com
  • 2.
    Session ObjectivesBecome familiarwith the new Service Application ModelUnderstand how sites use Service App featuresKnow the underlying components in IIS and SQL used to support Service AppsIntroducing Multi-Tenancy in SharePoint 2010View some Example Topologies
  • 3.
    SharePoint 20102007SharePoint ServerShared Service ProviderSearchSearchExcel Calc ServiceExcel Calc ServiceUser Profile ServiceUser ProfilesBusiness Data CatalogBusiness Data CatalogWindows SharePoint ServicesContentConfigWorkflowContentConfigWorkflow
  • 4.
    SharePoint Service ApplicationsSharePoint2010SharePoint ServerShared Service ProviderSearchExcel Calc ServiceUser ProfilesBusiness Data ConnectionSharePoint FoundationWindows SharePoint ServicesContentConfigWorkflow
  • 5.
    SharePoint 2010SharePoint ServerSharePointService ApplicationsPowerPoint Broadcast ServiceSearchExcel Calc ServicePerformancePointUser ProfilesVisio Graphics ServiceBusiness Data ConnectivityAccess ServiceWeb AnalyticsManaged MetadataWord Conversion Service3rd party services…SharePoint FoundationSandboxed Code ServiceUsage & Health LoggingContentConfigWorkflow
  • 6.
    Service WorkflowFor atypical service~~~~~~~~~~~~~~~~~~~~~~~~~~BrowserApplication (Middle-Tier) ServerWeb Front End Server
  • 7.
    SharePoint Containment HierarchyFarm= Configuration DatabaseServersServicesService ApplicationsWeb ApplicationsM:NService Applications DBContent DBSite CollectionsSites / WebsListsItems
  • 8.
    What is aService Application?SharePoint Service: The middle tier .NET component (Actual binary) that provides Data or Processing resources to SharePoint features.Service Instances: Running physical instance of a service.Service Application: A configured logical instance of a Service.Provides data or computing resources according to the configuration.Exposes administrative interfaces (Web-based or PowerShell)Uses resourcesOne or more Service Databases.Application Pool
  • 9.
    Service Applications vsSSPNo longer a separate SSP web siteSA’s managed via central adminPick and choose your service apps (SA)If you don’t need a service app, don’t add itWeb apps can consume SAs on an individual basisEach web app can use any combination of all available SA’sDeploy multiple instances of the same SAJust give each one a unique nameReuse SA instances across multiple web apps in farm
  • 10.
    New Service AppModelSSPSearchUserProfilesExcel CalcUserProfilesSearchBCSVisio Excel CalcBDCWAC3rd party Servicehttp://itweb/http://hrweb/http://hrweb/http://itweb/Corp FarmCorp FarmMOSS 2007 Model All or Nothing PropositionSP2010 ModelA La Carte!
  • 11.
    Scaling Service ApplicationsServiceApps can achieve high scaleSelect which servers in the farm the SA runs onControlled in Services on Server pageSearch Service Application is unique in how its topology is managedTo achieve more scale:Add more serversConfigure SA’s to run on them
  • 12.
    Cross Farm SAsCrossFarm SAsAny farm can publish SAs.Remote farms don’t need perms to parent farm DBs avoiding potential security issues.One web app can use both local and remote SAsProvides for centralized “enterprise” SAsNot all SAs can be shared between farmsYES: People, Managed Metadata, BCS, Search, Secure Store, Web AnalyticsNO: Usage and Health, State Service, Project, Excel Services, Access, Visio, Word, Word Viewing, PPT, PerformancePoint
  • 13.
    Some Service AppsAccessServicesAllows viewing, editing, and interacting with Access databases in a browser. Business Data Connectivity ServiceEnabling this service provides the SharePoint farm with the ability to upload BDC models that describe the interfaces of your enterprises’ line of business systems and thereby access the data within these systems.Excel ServicesAllows viewing and interactivity with Excel files in a browser. Managed Metadata ServiceProvides access to managed taxonomy hierarchies, keywords and social tagging infrastructure as well as Content Type publishing across site collections. PerformancePoint Service ApplicationSupports the monitoring and analytic capabilities of PerformancePoint Services such as the storage and publication of dashboards and related content.PowerPoint Service ApplicationEnables the viewing, editing and broadcast of PowerPoint presentations in a web browser.
  • 14.
    Some Service Apps(cont.)Search Service ApplicationIndex content and serve search queries. Usage and Health data collectionThis service collects farm wide usage and health data and provides the ability to view various usage and health reports. User Profile Service ApplicationAdds support for My Sites, Profile pages, Social Tagging and other social computing features. Some of the features offered by this service require Search Service Application and Managed Metadata Services to be provisioned.Visio Graphics ServiceEnables viewing and refreshing of Visio web diagrams. Web Analytics Service ApplicationEnable rich insights into web usage patterns by processing and analyzing web analytics data .
  • 15.
    SA ProxiesA proxyis automatically created for an SA when the SA is created via central admin.It’s a virtual link that lives on WFE and used to connect web apps to Sas.
  • 16.
    SA Proxy GroupsAproxy group is a group of SA proxies that are selected for a web appBy default, all SA proxies are included in the default proxy group. You can remove them.A single proxy can be in multiple Proxy GroupsWhen you create a web app you can:select the default proxy groupcreate a custom proxy group by selecting which SA proxies should be includedThe custom proxy group for one web app cannot be reused with a different web app
  • 17.
    Changing the DefaultProxy GroupAdmin UI:Application Management <click>Configure service application associations <click> “default” (under “Proxy Group”) <click>PowerShellGet-SPServiceApplicationProxy lists the SA proxy IDsAdd- and Remove-SPServiceApplicationProxyGroupMember takes the ID as a parameterNOTE: Do NOT enter a name for the “Identity” parameter in these calls; just press Enter and when prompted and it will use the Default proxy group automatically
  • 18.
    Associating Web Appsto Proxy Groups
  • 19.
    Deploying and ManagingSAsCreating:Select services while running the farm Config Wizard Add services one by one on the Manage Service Applications page in Central AdminUse PowerShellManaging:Central Admin, Manage Service ApplicationsClick on any SA and then the Manage button on the ribbonUse PowerShellSome PowerShell examples:http://sharepoint.microsoft.com/blogs/zach/Lists/Posts/Post.aspx?ID=50
  • 20.
  • 21.
    Service DatabasesService Applicationswith their own DB:SearchUser ProfileManaged MetadataSecure StoreState ServiceBusiness Data ConnectivityWeb AnalyticsPerformance PointUsage and Health data collectionWord Automation
  • 22.
    Developing Custom SAsCreatingcustom SAs is possibleThe object model and interfaces have been defined so they act, look and feel like an out of the box serviceThere is a whitepaper available that outlines the basic concepts and relevant APIs
  • 23.
    Service Application ComponentsBrowserClientAppCustom Service Applications ComponentsCustom Database*ServiceService ApplicationService Endpoint (WCF)*Service Application ProxyCustom Consumers Leverage ServicesWeb PartsPowerShell CmdletsCustom PagesWCF ServicesConsumerWeb PartConsumerWeb PartSP WFEService Application ProxyWCF Contract(*.svc)* .asmx …SP APPSERVERService Logic (* .dll)Config DBCustom DBSQLSERVERContent DB
  • 24.
    Multi-Tenancy (Partitioned andNon-partitioned Services)Services can be configured to “share” data across Tenants or to “partition” data for each tenant (data isolation)Allows multiple organizations to be ‘hosted’ on the same SharePoint configuration, but keeps their data isolatedConfigurable ‘per-service’ to allow for “Mixed-Mode Partitioning”Service Applications that support Multi-Tenancy can be administrated out of Central Administration (Delegated down to tenant admin site).DataPartition APartition B
  • 25.
  • 26.
    SimpleService App Association
  • 27.
  • 28.
  • 29.
  • 30.
    Multiple Farms – Mixed Service App Association
  • 31.
  • 32.
    Recap – LogicalViewFarm 3Farm 2Farm 1SearchUser ProfilesSearchExcelUserProfilesManagedMetadatahttp://wingtiptoys.comhttp://intranet
  • 33.
    Recap – ArchitecturalViewService: A middle tier component that provides Data or Processing resources to SharePoint features (Actual DLLs)Service Machine Instance: Actual instance of the running service binaries on a serverService ApplicationService Application:A configured logical instance of a ServiceService ProxyService ProxyService Application Proxy:Reference to the Service ApplicationService Consumer:Components that utilize the service’s logicWeb Part, Pages(Service Consumer)*.SVC’s, PowerShell Cmdlets(Service Consumer)