title: Exigences d'architecture technique
text: # Exigences d'architecture technique
  
  Une architecture physique ou architecture technique est conçue de manière à répondre à des exigences.
  
  Ces exigences recouvrent de nombreuses notions :
  
  * Exigences fonctionnelles
  * Disponibilité / Fiabilité / plage d’ouverture
  * Reprise de service en cas d'incident
  * Sécurité (Disponibilité, Intégrité, Confidentialité, Traçabilité)
  * Niveaux de performance
  * Scalabilité (montée en charge)
  * Conservation des données
  * Modifiabilité (évolutivité)
  * Utilisabilité (interaction avec les utilisateurs)
  
  ## Exigences fonctionnelles
  
  Il s'agit des fonctionnalités de l'application.
  
  ## Disponibilité / fiabilité / plage d’ouverture
  
  La plage d’ouverture du service précise les périodes de temps durant lesquelles l’application doit être active.
  
  Par exemple :
  
  * 7 j/7, H24
  * 7 j/7, H24, hors plage de maintenance le 15 de chaque mois entre 20 h et 6 h
  * 5 j/7, 9 h-20 h
  
  La disponibilité indique le taux de disponibilité cible de l’application durant les plages d’ouverture.
  
  Par exemple :
  
  * disponibilité de 99,9 %
  
  Des fortes exigences de disponibilité demandent la mise en œuvre d'architecture de Haute disponibilité.
  
  ## Reprise de service en cas d'incident
  
  On distingue l'incident local et le désastre site : l'incident est par exemple la perte d'un serveur, tandis que le désastre site est par exemple l'incendie du centre d'exploitation.
  
  Les exigences doivent s'exprimer en RTO et RPO. Le RTO (Recovery Time Objective) est le temps maximum admissible pour reprendre le service. Le RPO (Recovery Point Objective) est la perte maximale de données acceptable après redémarrage. Les objectifs de RPO et le RTO peuvent être différents selon qu'il s'agit d'un incident ou d'un désastre.
  
  ## Sécurité
  
  Les exigences de sécurité couvrent plusieurs domaines:
  
  * Disponibilité
  * Intégrité
  * Confidentialité
  * Traçabilité
  
  ## Performances
  
  Exigences liées aux éléments suivants
  
  * nombres d'utilisateurs,
  * temps de traitement souhaités pour les transactions, les traitements "batchs" (traitement par lots),
  * fréquence des traitements, débit transactionnel, pics de charge,
  * filtres,
  * temps de réponse.
  
  ## Scalabilité
  
  La scalabilité est la capacité qu’a l’architecture pour évoluer en cas de montée en charge si nécessaire.
  
  * Scalabilité horizontale : possibilité d’ajouter des serveurs d’un type donné. Par exemple : ajout possible de serveurs d'application web avec répartition de charge.
  * Scalabilité verticale : possibilité d’upgrader un serveur (ajout de processeurs, RAM, disques…).
  
  ## Conservation des données
  
  Une application ne peut pas accumuler des données sans limite. Il faut obligatoirement prévoir des mécanismes de purge ou d’archivage. Fixer la durée de l’historique conservé en ligne. Quand les anciennes données ne doivent plus être conservées en ligne, quelles sont les exigences ? Purge des données ? Transfert des données dans un système d’archivage ? Archivage sur bande magnétique ? Si les données sont archivées sur bande, quel est le temps souhaité maximal pour pouvoir accéder à ces données ? Prendre en compte les exigences légales :
  
  * durée de conservation minimale à observer pour certaines données comme les factures.
  * droit à l’oubli : en droit français, on ne peut conserver certaines données nominatives que pendant un temps donné (fixé lors de la demande d'autorisation à la CNIL).
  * autres exigences.
  
  ## Modifiabilité
  
  Pour les applications sensibles, on traitera le cas des demandes (installation de version correctives, reparamétrage) qui peuvent devoir être faite sans interruption de service (installation et reparamétrage « à chaud »).
  
  ## Utilisabilité
  
  Exigences concernant des fonctions destinées à améliorer les interactions avec les utilisateurs. Exemples :
  
  * Cas de traitements longs pour lesquels il est nécessaire de permettre à l’utilisation de visualiser la progression des traitements, de l’interrompre, de le reprendre.
  * Cas d’action utilisateur qui est nécessaire de pouvoir annuler (nécessité de pouvoir revenir à un état antérieur cohérent).
  * Exploitabilité
  
  Faculté d'exploiter et de superviser le bon fonctionnement de l'application, d'analyser le bon fonctionnement (et le mauvais).
  
  