Post original: SharePoint: Ferme, application web, collection de sites, sites et sous-sites, comment s'y retrouver?
Par l’aspect évolutif de SharePoint, toute personne amenée à réaliser l’architecture d’une infrastructure SharePoint se retrouve rapidement confrontée à une question importante: Que mettre à quel endroit? Il n’existe pas une réponse ferme et définitive. Par contre, chaque élément cité à des propriétés, des possibilités et des objectifs différents. Reste ainsi à utiliser les bons containers pour le bon contenu…
Il existe différents types de containers dont les principaux sont:
- 1a) Ferme SharePoint (SPFarm d’un point de vue développeur)
- 1b) Applications de service
- 2) Application web (SPWebApplication)
- 3) Collection de sites (SPSite)
- 4) Sites (SPWeb)
- 4) Sous-sites (SPWeb)
Principalement la hiérarchie autour de ces quatre premiers éléments (en bleu) répond à des besoins techniques alors que les deux suivants permettent d’organiser de manière purement logique les sites et les données comprises dans ces sites.
Passons rapidement en revue de quoi est composer une infrastructure SharePoint. Pour plus de détails, rien de tel qu’une petite recherche sur Internet!
1.A) Ferme SharePoint
Il s’agit simplement de l’ensemble des serveurs front-end, applicatifs (Shared services), d’indexation ou encore hébergeant les bases de données. Une ferme pourra être déployée à un endroit particulier en fonction des objectifs de cette ferme comme, par exemple, permettre l’accès depuis Internet.
1.B) Applications de service
Il s’agit d’un ensemble de services au niveau de la ferme ce qui sous-entend qui est partagé entre différentes applications web et donc sites collections.
Parmi ces services on retrouve entre autres les notions de:
- Profil (propriétés du profil, paramètres pour la synchronisation)
- Recherche (scopes, mappings de propriétés, sources de contenu, …)
- Excel Services
- Business Connectivity Services
- …

Chaque service peut être indépendamment activé sur des serveurs différents. Cette paramétrisation permet dès lors de rendre l’infrastructure SharePoint la plus efficace possible en tenant compte des aspects de sécurité et de disponibilité.
2) Application web
Rien d’exceptionnel pour les IT ou les développeurs qui ont déjà pu mettre en place des sites ASP.NET, PHP ou utilisant toute autre technologie puisqu’il s’agit d’une application web tout ce qu’il y a de plus classique avec entre autres:
- Un site dans IIS
- Une url particulière
- Une méthode d’authentification liée à cette application
On notera également que, dans un contexte SharePoint, une application web aura sa propre base de données (tout du moins lorsqu’il s’agit d’une nouvelle web application puisqu’il est possible d’étendre des applications webs pour donner des paramètres différents permettant ainsi de partager des données au travers de différentes applications web qui proposent des techniques d’authentification différentes).
Par ailleurs, SharePoint étant basé sur ASP.NET, le code et les mises à jour du web.config (avec le SafeControls pour les initiés) se fera de manière globale pour les différentes collections de sites qu’exposent notre application web. On pourra ainsi utiliser ces différentes web applications pour empêcher certaines opérations (par exemple utiliser un web part) selon la population visée (Intranet, Extranet, Internet, partenaires, …).
Enfin, une application web est toujours associée à un Shared Services Provider.
3) Collection de sites
Une collection de sites est un container virtuel (en ce sens où l’on ne retrouve aucun fichier sur disque comme pour l’application web) et sa définition est stockée dans une base de données de configuration.
D’un point de vue IT, la collection de sites a plusieurs avantages dont les principaux sont:
- Quota de données
- Facilité de maintenance (le backup / restore se fait par défaut au niveau de cette collection)

Si l’on se place au niveau de la gestion du contenu, on notera que pour chaque collection de site est défini un administrateur. Cet administrateur peut ainsi gérer tout ce qui se trouve dans le site collections, à savoir:
- Corbeille de second niveau
- Recherche customisée par site-collection
- Utilisateurs pour une collection de sites
- …
Enfin, l’utilisation des collections de sites permet de cataloguer des éléments customisés en fonction de la population qui accèdera à du contenu de cette collection de sites (par département par exemple):
- Page maître
- Images
- Templates de sites et de listes
- Web parts
Une collection de sites possède toujours un site racine.

4) Sites et sous-sites
Jusque là, nous avons beaucoup parler des ITs, un peu des développeurs mais peu des utilisateurs finaux pourtant moteurs pour tout ce qui est contenu au sein de notre SharePoint.
A ce niveau nous pourrions ne parler de gestion de contenu. Selon les droits dont ils disposent, les utilisateurs peuvent:
- Créer des sites
- Créer des listes
- Attacher des workflows à des listes
- Assigner des permissions
- Restaurer des données supprimées
- Et bien d’autres choses encore!
A ce niveau, seul le bon sens et les règles définies par votre entreprise ont de l’importance. Peu importe où se trouve les données, elles seront physiquement stockées au même endroit. Cela ne veut pas pour autant dire que l’on doit placer nos données partout et n’importe comment. Profitez des possibilités de SharePoint comme l’héritage des permissions pour gérer de manière efficace vos sites.
Il est techniquement possible d’ajouter du code ou des outils de reporting aidant à la gestion mais il ne faut pas négliger la formation des utilisateurs qui recevront les droits de créer des sites.
Un exemple de hiérarchie de sites:
- Ferme
- Application Web 1
- Collection de sites A (avec le site d’entrée)
- Application Web 2
- Collection de sites C (avec le site d’entrée)
- Collection de sites D (avec le site d’entrée)
A vrai dire, il serait encore possible de rédiger sur ce sujet durant des heures mais je pense que ce post permettra déjà à bien des gens d’avoir un aperçu du pourquoi il est important de se renseigner préalablement à la mise en place de votre SharePoint.