Deze serie van posts gaat over de User Profile Service, een van de vele nieuwe Service Applications die SharePoint 2010 rijk is. In deze post ga ik proberen duidelijk te maken waar deze set aan functionaliteiten uit bestaat en wat je moet doen om het draaiende te krijgen, want simpel is dat allerminst.
Overview
De User Profile Service is een Shared Service Application* welke een centrale locatie biedt om instellingen te managen voor de volgende features:
- User Profiles – Een user profile is een item waarin persoonlijke informatie is opgeslagen rondom een gebruiker.
- My Sites –My Sites zijn persoonlijke sites waar gebruikers hun profielen kunnen bijwerken en biedt een persoonlijke locatie waar gegevens vanuit SharePoint geaggregeerd kan worden, en waar gebruikers persoonlijke items kunnen opslaan.
- Profiel Synchronisatie – Net als in SharePoint 2007 is het mogelijk profiles te importeren uit verschillende account sources. Nieuw in SharePoint 2010 is de mogelijkheid om informatie terug te schrijven naar deze sources.
- Audiences – Audiences zijn een soort groepen van gebruikers, en stellen je in staat om content te targetten op basis van zo'n audience. Lidmaatschap van een audience wordt bepaald op basis van profile data, zoals bijvoorbeeld afdeling, locatie of functie.
- Social Tags en Notes – Social Tags en Notes zijn stukjes metadata wat gebruikers aan SharePoint items kunnen meegeven.
Om het volledige spectrum aan features te kunnen leveren maakt de User Profile Service gebruik van een aantal andere Shared Services, waarvan de belangrijkste zijn:
- Managed Metadata Service – Levert de mogelijkheid profile properties aan te bieden op basis van metadata terms uit de termstore.
- Search Service – Wordt gebruikt om de people search functionaliteit te kunnen bieden.
- Business Connectivity Service – Wordt gebruikt om profile imports te doen uit custom account sources zoals SQL databases.
*Het is belangrijk op te merken, dat ondanks in technische documentatie wordt gerefereerd aan een Shared Service of Shared Service Application, dat de term Service en Service Application niet staan voor een fysieke service of applicatie. Het is een benaming voor onderdelen binnen het Shared Services architectuur model van SharePoint 2010.
Zo is een Shared Service niet altijd een fysieke Windows Service, noch Web Service. Het is een beschrijving van een stuk functionaliteit dat aangeboden wordt. Het bestaat uit de code en datastores die uiteindelijk de functionaliteit bieden. De logische en fysieke structuur wijzigt. Zo kan het slechts een set .NET binaries zijn, maar ook een combinatie van verschillende windows en web services, met meerdere databases als back-end datastores.
Veel verwarrender is de term Service Application. Een Service Application is geen applicatie. Het is een logische configuratiecontainer die SharePoint hanteert om configuratie rondom Services bij te houden, bijvoorbeeld over de rollen die een bepaalde service 'hosten'. Het is verder een logische interface om een service te kunnen managen. Een Service Application is dus verder niets, alle fysieke componenten worden geleverd door de Service zelf.
Componenten
Wanneer we naar de componenten kijken van de User Profile service dat zouden we dat schematisch als volgt kunnen tekenen:
De User Profile Service bestaat eigenlijk uit drie hoofdcomponenten, namelijk:
- Service Databases
- User Profile Service
- User Profile Synchronization Service
De Service databases zijn:
- Profile Database – Bevat de profielen.
- Synchronization database – Bevat de configuratiedata en tijdelijke data voor het synchronisatiemechanisme.
- Social Tagging Database – Bevat social tags en notes, die door de gebruikers worden aangebracht aan content.
De eigenlijke code die de functionaliteit biedt (User Profile Service) is aanwezig op elk systeem na installatie. Dit is gewoon een set binaries op het filesysteem. De User Profile Service binaries zijn te vinden in de GAC (Microsoft.Office.Server.UserProfiles en Microsoft.Office.Server.UserProfiles.Synchronization). Deze draaien gewoon in de context van de verschillende web applicaties en de timerservice.
De Synchronization service is gebaseerd op Forefront Identity Manager. In een nutshell is dit een stripped-down installatie van FIM, welke zeer solide synchronisatie beidt tussen verschillende Identity stores. Variërend van AD, tot BCS, tot LDAP tot flat files. Meer hierover heb ik beschreven in deze blogpost: http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/forefront-identity-manager-basics-voor-sharepoint-2010-admins.aspx
De integratie met FIM biedt de volgende voordelen:
- Synchronisatie vs. Import. Het is nu dus mogelijk terug te schreven naar een data source.
- Schaalbaar. Het schaalt beter dan onze search crawler in 2007, die er niet voor ontworpen was. Ook is er de mogelijkheid tot loskoppelen built-in installatie en opname in een reeds bestaande installatie van FIM.
- Aanpasbaar. Doordat FIM de onderlaag is, is het mogelijk allerlei geavanceerde policies toe te passen. Je kunt bijvoorbeeld data transformeren en valideren voordat het gesynchroniseerd wordt.
- Standaardisatie. FIM is een product binnen een bredere strategie rondom Identity Management. Het koppelen van SharePoint aan FIM, is een vorm van integratie en standaardisatie, en verlaagt zo de inspanning voor beheer.
Dit is in een nutshell een overzicht van de componenten van de User Profile Service. De volgende blogposts bevatten een overzicht over het toepassen en gebruiken van de functionaliteit.
De volledige blog serie bestaat uit:
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-user-profile-service.aspx
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-import.aspx
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/07/sharepoint-2010-profiel-synchronisatie-export.aspx
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/08/sharepoint-2010-social-tags-notes-en-user-ratings.aspx
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/sharepoint-2010-my-sites.aspx
http://blogs.microsoft.nl/blogs/mpriem/archive/2010/08/13/sharepoint-2010-user-profile-service-timerjobs-en-cmdlets