Programmation avec le modèle objet de sauvegarde/restauration de Windows SharePoint Services

Windows SharePoint Services 3

Cette rubrique décrit l'architecture du modèle objet de sauvegarde et de restauration dans Windows SharePoint Services 3.0 et fournit des conseils sur la façon de le programmer. Votre application de sauvegarde peut être une application indépendante ou une extension de l'outil de ligne de commande stsadm.exe. Pour plus d'informations sur la façon d'étendre stsadm, voir Procédure : étendre l'utilitaire STSADM.

Modèle objet de sauvegarde et de restauration

La classe SPBackupRestoreConsole est au-dessus du modèle objet (voir la légende 1 de la figure 1). Elle fournit un gestionnaire général des opérations, responsable de la mise en file d'attente des travaux de sauvegarde et de restauration, du démarrage des travaux et du maintien d'un historique des travaux sous la forme de fichiers .xml. Un objet de cette classe est « juste sous la surface » de l'interface utilisateur d'une application de sauvegarde. Ses membres sont principalement des méthodes et des propriétés statiques qui fournissent des connexions vers l'interface utilisateur de l'application de sauvegarde. L'application Administration centrale et l'outil de ligne de commande stsadm.exe utilisent ces connexions.

Un seul objet de cette classe existe dans une batterie de serveurs ; il est créé la première fois que l'un de ses membres est appelé. Il reste en mémoire jusqu'à la prochaine réinitialisation d'Internet Information Server (IIS) ; cependant, son encombrement mémoire est petit.

Figure 1 : principaux objets de la hiérarchie de sauvegarde/restauration.
Classes principales du modèle objet de sauvegarde.

Chaque opération particulière de sauvegarde ou de restauration est représentée par un objet de la classe SPBackupRestoreConsoleObject qui est créé par la méthode CreateBackupRestore de l'objet console (voir la légende 2 de la figure 1, les opérations de sauvegarde et de restauration en file d'attente). Les propriétés de l'un de ces objets légers contiennent les informations sur l'opération, comme la nature de celle-ci (sauvegarde ou restauration), l'emplacement des fichiers de sauvegarde, la méthode de sauvegarde ou de restauration, l'étape actuelle de l'opération et l'arborescence des composants de contenu qui est sauvegardée ou restaurée. Chacun de ces objets possède également une propriété Id de type Guid qui sert de descripteur de l'objet, transmissible aux méthodes de SPBackupRestoreConsole. Par exemple, Run reçoit l'ID de l'opération (c'est-à-dire l'objet SPBackupRestoreConsoleObject) que la console doit exécuter ensuite. Enfin, chaque objet SPBackupRestoreConsoleObject possède une propriété Settings qui contient un objet persistant contenant un modèle réutilisable de paramètres de sauvegarde ou de restauration. Cet objet identifie également le composant de contenu que l'opération doit sauvegarder ou restaurer. Les objets paramètres sont décrits en détail à la fin de cette section.

Bien que les objets SPBackupRestoreConsoleObject représentent des opérations, les composants de contenu eux-mêmes sont représentés par des objets SPBackupRestoreObject (voir la légende 3 de la figure 1). Ces objets peuvent être imbriqués avec la propriété Children. Par conséquent, chacun d'eux représente une arborescence d'un ou plusieurs composants de contenu. Par exemple, une application Web peut être représentée par un objet SPBackupRestoreObject dont chacune des bases de données de contenu de l'application Web est un objet enfant SPBackupRestoreObject. L'arborescence des composants qui font l'objet d'une opération particulière de sauvegarde ou de restauration sont liés en interne à l'objet SPBackupRestoreConsoleObject qui représente l'opération. Vous pouvez obtenir une référence à l'objet SPBackupRestoreObject au sommet de l'arborescence en passant l'ID de l'objet SPBackupRestoreConsoleObject à la méthode GetRoot.

Un objet SPBackupRestoreObject est un conteneur pour deux types d'objets critiques :

  • Dans sa propriété Information, l'objet SPBackupRestoreObject contient soit un objet SPBackupInformation, soit un objet SPRestoreInformation. Ces types d'objets contiennent des informations sur la façon de sauvegarder ou de restaurer un composant particulier et les méthodes qui peuvent être appelées en interne par SPBackupRestoreConsoleObject et SPBackupRestoreObject dans le cadre d'une opération. Plus spécifiquement, ces classes contiennent des méthodes et des propriétés dont l'implémentation ne doit jamais changer, sans tenir compte du type de composant de contenu représenté. Par conséquent, ils sont scellés ; la dérivation d'une nouvelle classe à partir de leur parent, SPBackupRestoreInformation, n'est pas prise en charge.

  • Dans sa propriété IBackupRestore, l'objet SPBackupRestoreObject contient un objet qui implémente l'interface IBackupRestore (et peut également hériter de SPPersistedObject) (voir la légende 4 de la figure 1). L'implémentation de cette interface transforme un objet en quelque chose qu'il est possible de sauvegarder et restaurer. Comme un objet SPBackupRestoreInformation, un objet IBackupRestore contient des membres qui fournissent les informations et les méthodes nécessaires pour les sauvegardes et les restaurations. Mais les membres de IBackupRestore doivent être implémentés différemment selon le type du composant de contenu représenté. Plus important encore, l'implémentation comprend des gestionnaires d'événements pour les événements d'une opération, comme OnBackup et OnRestore.

En plus d'agir comme un conteneur, SPBackupRestoreObject est une classe auxiliaire qui fournit une interaction simplifiée entre les objets opération (SPBackupRestoreConsoleObject) d'une part, et les objets informations sur le composant (SPBackupRestoreInformation et IBackupRestore) d'autre part.

Les classes principales finales sont SPBackupSettings et SPRestoreSettings. Un objet de l'un de ces deux types est passé à la méthode CreateBackupRestore lorsqu'une opération est créée (voir la légende 5 de la figure 1). Chacun de ces objets contient des paramètres pour les opérations ; plus important encore, ils identifient dans leur propriété IndividualItem le composant de contenu qui fait l'objet de la sauvegarde ou de la restauration (voir la légende 6 de la figure 1).

Conseils de programmation

Les informations suivantes peuvent être utiles pour le développement de solutions de sauvegarde et de restauration.

Méthodes de personnalisation

La plupart des classes critiques dans le modèle objet de sauvegarde/restauration sont scellées (NotInheritable dans Microsoft Visual Basic). En outre, bien que les classes suivantes ne soient pas scellées, leur dérivation n'est pas prise en charge. Dans chaque cas, vous devez utiliser les classes dérivées existantes :

  • SPBackupRestoreInformation   Classes dérivées existantes : SPBackupInformation et SPRestoreInformation

  • SPBackupRestoreSettings   Classes dérivées existantes : SPBackupSettings et SPRestoreSettings

En conséquence, il existe seulement deux points principaux de personnalisation :

Autorisations

Le code qui sauvegarde le contenu doit s'exécuter dans le contexte utilisateur d'un administrateur de batterie de serveurs. Le code qui restaure doit s'exécuter dans le contexte d'un utilisateur qui est à la fois administrateur de batterie de serveurs et administrateur sur tous les serveurs frontaux. L'utilisateur doit également avoir des autorisations de lecture et d'écriture sur l'emplacement de sauvegarde.

Journalisation des échecs

Si une opération de sauvegarde ou de restauration échoue, les détails concernant l'échec sont enregistrés dans spbackup.log ou sprestore.log sur l'emplacement de sauvegarde.

Sauvegardes et restaurations de collections de sites

À l'exception des types de contenu personnalisés que vous créez en implémentant IBackupRestore, l'objet de contenu le plus petit que vous pouvez sauvegarder et restaurer avec les classes dans l'espace de noms Microsoft.SharePoint.Administration.Backup est une base de données de contenu. Pour sauvegarder ou restaurer des collections de sites individuels par programme, utilisez Backup et Restore. Pour plus d'informations sur la sauvegarde et la restauration des collections de sites, voir Procédure : sauvegarder et restaurer une seule collection de sites par programmation.

Voir aussi

Afficher: