Partager via


Vue d’ensemble des services

AuteurWalter Oliver

Introduction

L'exemple de services d'hébergement est un ensemble de services mis en œuvre en C# pour aider les développeurs des organisations d'hébergement Web à développer et/ou intégrer un système d'approvisionnement et de gestion de l'hébergement.

Son objectif est de montrer, à l'aide d'exemples de code et de documentation, comment exploiter la plateforme Windows Server® 2008 pour mettre en œuvre de telles fonctionnalités. Ces services ont été développés dans le cadre du programme TAP (Technology Adopter Program) IIS 7.0, dans lequel Microsoft a travaillé avec plus de 20 hébergeurs et les a aidés à créer une offre sur Windows Server 2008 et SQL 2005. Les hébergeurs ont exploité ces exemples de services, car ils les ont aidés à réduire leur courbe d'apprentissage.

Composants

Cet exemple comprend trois éléments principaux. Chacun d'entre eux dispose d'un projet Visual Studio 2008 correspondant :

  1. Hôte basé sur le service Windows. Comprend des contrats de gestion de l'approvisionnement et de la gestion des sites Web et FTP, du stockage de contenu, des ressources Active Directory et SQL Server. Les services sont hébergés dans un service Windows. Ceci est utile pour gérer des configurations où IIS 7.0 n'est pas installé ou lorsque l'exécution des services d'hébergement sur le Web n'est pas souhaitée.
  2. Hôte basé sur le service Web. Comprend les mêmes fonctionnalités que la version de l'hôte basée sur le service Windows. Les services sont hébergés dans un service Web Windows au lieu d'une application basée sur un service Windows. Voilà la seule différence qui existe entre ces deux types d'applications.
  3. Exemple de client. Il s'agit d'une simple application Web qui fait appel aux contrats de chaque service. Son but est d'illustrer l'utilisation des services.

Remarque

Il s'agit d'un exemple d'application qui ne doit pas être utilisé dans un environnement de production. Elle est fournie à des fins d'apprentissage uniquement.

Démarrer avec les services

L'exemple de code des services d'hébergement a été déployé dans deux scénarios différents. L'un passe par IIS 7.0 et l'autre par un service Windows.

IIS 7.0

Sous Windows Server® 2008 et IIS 7.0, les services Windows Communication Foundation (WCF) sont déployés en tant que site Web hébergé. Cela leur permet de bénéficier de fonctionnalités telles que :

  • Recyclage de processus
  • Arrêt en cas d’inactivité
  • Monitoring de l'intégrité de processus
  • Activation basée sur des messages

Étant donné que les extensions d'hébergement nécessitent des autorisations élevées pour effectuer des opérations telles que la création de répertoires sur le système de fichiers, la création de bases de données, l'ajout de nouveaux utilisateurs et ainsi de suite, le pool d'applications pour ce site requiert une identité avec des autorisations d'administrateur. Un package d'installation (HostServiceInstaller.msi) a automatisé ce déploiement.

Service Windows

Le deuxième scénario déploie les services pour qu'ils s'exécutent en tant que service Windows. Ce déploiement permet aux services d'être hébergés sur un serveur qui n'exécute pas IIS. Il nécessite également l'écriture d'un code supplémentaire afin que les services WCF héritent de la classe ServiceBase et implémentent les fonctions OnStart (pour créer et ouvrir une instance de ServiceHost) et OnStop (pour fermer l'instance de ServiceHost). Un package d'installation (HostingWindowsService.msi) a automatisé ce déploiement.

Validation de l'installation

Validez l'installation en procédant comme suit.

  1. Accédez à l'url suivante : http:// <hostheader> /webmanagementservice.svc . La page suivante s'affiche si l'installation a réussi, ce qui indique que le service est maintenant hébergé.

    Screenshot that shows the Web Management Service Service page on Internet Explorer.

    Remarque

    Vous devez configurer un compte avec des droits d'administrateur pour exécuter soit le service Windows, soit un pool d'applications pour le site Web hébergé par IIS, car les services nécessitent des autorisations de niveau administrateur pour gérer les configurations IIS, ainsi que d'autres fonctions.

  2. Téléchargez et installez la solution à l'aide du package d'installation SolutionSetup.msi. Ouvrez la solution (IIS7GoLive.sln) dans Visual Studio et vous trouverez la structure suivante dans Solution Explorer.

Environnement d'hébergement

Un environnement d'hébergement typique est un environnement hétérogène (comme le montre la figure ci-dessous). La plupart des hébergeurs utilisent des services Web pour gérer l'ensemble disparate de serveurs et les différents rôles joués par chacun d'entre eux.

Diagram that shows multiple servers in a heterogenous environment.

Figure 1 : Un environnement d'hébergement hétérogène

Différents serveurs

L'environnement d'hébergement dispose de plusieurs versions de serveurs Windows et Linux, chacune fournissant un service ou un rôle spécifique. Les hébergeurs créent ou intègrent ces services pour proposer une offre cohérente à leurs clients. Il est assez courant de voir le site Web desservi par des serveurs IIS 7.0, tandis que les comptes de messagerie peuvent être desservis par un serveur Linux (et vice versa). Les opérations d'approvisionnement peuvent être gérées à partir d'un serveur Linux, mais le site Web est approvisionné sur Windows. Quel que soit le service offert, la gestion de ces serveurs répond aux mêmes besoins et contraintes pour les hébergeurs.

Les hébergeurs ont également tendance à disposer d'une infrastructure très lourdement protégée par un pare-feu. Certaines des API disponibles sur la pile Microsoft utilisent DCOM ou .NET Remoting, ce qui oblige les hébergeurs à ouvrir des ports supplémentaires dans les pare-feu, ce qui n'est pas une solution idéale.

Pour répondre aux contraintes créées par les environnements hétérogènes et par les problèmes de sécurité et de pare-feu, la plupart des hébergeurs ont maintenant normalisé l'utilisation des services Web pour approvisionner et gérer leurs serveurs et les différents rôles des serveurs.

La plateforme Windows n'intègre pas de services Web de manière native, et chaque hébergeur doit donc mettre en œuvre les siens. Afin de combler cette lacune et de répondre aux besoins des hébergeurs, Microsoft a créé un ensemble de services. ll s'agit des services de gestion pour les hébergeurs, qui sont traités comme des « extensions d'hébergement » des API gérées.

Services de gestion des hôtes

L'exemple est composé d'un ensemble de services de bas niveau qui fournissent des capacités pour certains des rôles de serveur les plus courants utilisés dans l'espace d'hébergement. Les sous-systèmes de service sont les suivants :

  • Web
  • FTP
  • Stockage de contenu
  • SQL Server 2005 ((et 2008)
  • Active Directory

En plus de ces services, l'exemple peut être étendu pour prendre en charge les DNS, WSS et le courrier électronique (Exchange ou SMTP/PoP3).

Interfaces et opérations

Toutes les opérations effectuées sur chacun des sous-systèmes sont regroupées en trois interfaces :

  • Approvisionnement
  • Gestion
  • Interrogation

Ces opérations exécutent les tâches que les outils opérationnels et l'application de type panneau de contrôle utilisée par les utilisateurs finaux doivent effectuer.

Les opérations d'approvisionnement concernent principalement la création d'un site, d'un utilisateur, d'une base de données, etc. Il s'agit d'opérations que l'hébergeur peut exécuter initialement afin de créer un environnement pour l'utilisateur final. À chaque création correspond une suppression.

Une fois l'objet créé, les opérations de gestion permettent de maintenir l'objet : par exemple, un site Web peut être arrêté ou redémarré ; des documents par défaut et des liaisons supplémentaires peuvent être appliqués au site ; et l'authentification du site peut être ajoutée ou modifiée. Les utilisateurs de ces opérations peuvent être soit l'utilisateur final qui gère son propre site, soit le service d'assistance d'un hébergeur qui applique certaines propriétés.

Les opérations d'interrogation permettent d'afficher des informations spécifiques à chaque sous-système. Le service d'assistance d'un hébergeur peut appeler des services dans ces opérations pour surveiller l'activité du serveur ou recueillir des informations sur l'état actuel des sites.

Exemple d'architecture de services

L'exemple est appliqué en tant que services Windows Communication Framework (WCF). Ceux-ci sont ensuite exposés aux clients en tant que services Web à l'aide de la liaison WSHttpBinding. Voici un diagramme architectural :

Diagram that shows the service contracts and service implementations, in between Hosting Fault Contracts and Hosting Management Component.

Figure 1 : Exemple d'architecture des services d'hébergement

Dans le diagramme, vous remarquerez la cohérence de l'infrastructure. Tous les sous-systèmes sont développés selon le même modèle de contrats et d'opérations. Cette infrastructure peut être suivie de sous-systèmes futurs.

Sous-systèmes d'hébergement

Les sous-systèmes suivants sont fournis dans l'exemple :

  1. Service Web : ce sous-système est destiné à l'approvisionnement, à la gestion et à la recherche de sites Web IIS 7.0. Outre la création de sites de base, des fonctionnalités supplémentaires permettent de gérer et d'interroger les sites, les pools d'applications, les documents par défaut, les liaisons, l'authentification, etc. L'objectif de ce sous-système est de créer des services Web pour toutes les fonctionnalités qui existent dans le gestionnaire IIS. Le contrat de données pour ce sous-système est basé sur le schéma IIS 7.0 xml qui se trouve à c:\windows\system32\inetsrv\config. Les services sont écrits à l'aide des API Microsoft.Web.Administration.
  2. Service FTP : ce sous-système est conçu pour le nouveau serveur FTP7 qui fonctionne uniquement sur Windows Server® 2008 et IIS 7.0. Le module complémentaire FTP7 Server peut être téléchargé gratuitement. Le nouveau FTP contient des améliorations de fonctionnalités pour le scénario d'hébergement partagé. Il est possible, par exemple, d'ajouter une liaison FTP à un site Web afin que le même contenu puisse être hébergé sur les deux sites. Tout comme le sous-système pour le Web, les contrats de données de ce sous-système sont également basés sur le schéma des fichiers Config.
  3. Service de stockage de contenu : ce sous-système est destiné à l'approvisionnement, à la gestion et à l'interrogation du stockage dont un utilisateur final peut avoir besoin. Il est utilisé conjointement avec la création de sites et la gestion de l'espace de stockage dont dispose un utilisateur pour un site. Il est possible de définir des quotas et d'appliquer des autorisations et des mesures de sécurité au niveau des répertoires et des fichiers.
  4. Service Active Directory : ce sous-système permet d'approvisionner, de gérer et d'interroger les bases de données des membres de l'Active Directory. Il est utilisé lorsqu'un client souhaite créer une unité d'organisation, des groupes au sein de cette unité d'organisation et des utilisateurs à ajouter aux groupes.
  5. Service SQL : ce sous-système est destiné à l'approvisionnement, à la gestion et à l'interrogation de la base de données SQL Server. Il est utilisé dans les situations où un client développe une application qui nécessite une base de données. Il doit créer la base de données, exécuter des scripts pour créer des procédures stockées, créer des tables et remplir les tables avec des données.