• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/06/2020

Poursuivez votre analyse technique

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Vous avez rempli votre tableau d’analyse pour le premier composant technique : la sécurité. Pour cela, vous avez travaillé sur :

  • le cahier des charges fonctionnel pour déterminer les contraintes fonctionnelles ;

  • les documentations techniques des solutions existantes, “Mon Bon Devis” et l’ERP ODOO, pour identifier les contraintes liées à l’existant ;

  • les règles d’architecture et de sécurité pour spécifier les contraintes de sécurité et les contraintes d’architecture.

Vous allez poursuivre ce travail en suivant la même démarche pour les autres composants techniques :

  • les systèmes d’exploitation ;

  • l’hébergement ;

  • les middlewares ;

  • les frameworks ;

  • les applications et les données.

Passons ensemble en revue ces composants et complétez votre tableau au fur et à mesure. C’est parti !

Les systèmes d’exploitation

Un système d’exploitation est un intermédiaire entre nous, humains, les applications et la machine. C’est un ensemble de programmes informatiques qui assurent la gestion de l’ordinateur et de tous les périphériques qui y sont connectés (carte mère, carte mémoire, processeur, carte graphique, carte son, clavier/souris, écran, imprimantes, etc.).

L’utilisation de drivers permet au système d’exploitation de communiquer et de donner des instructions aux périphériques qui ne pourraient fonctionner sans eux. Pour en savoir plus consultez cet article de Futura Tech.

Utilisateur <>Application<>Système d'exploitation<>Matériel informatique
Le système d’exploitation est un intermédiaire entre l’homme, l’application et la machine. (Source : Golftheman)

Les systèmes d’exploitation - OS

Il existe sur le marché une dizaine d’OS différents, certains sont dédiés aux postes de travail, d’autres aux serveurs.

Voici une liste non exhaustive des OS les plus souvent rencontrés en entreprise.

Systèmes d’exploitation pour les postes de travail (workstations en anglais)

  • Windows 10, 8.1 ou 7 : Il n’est pas rare de rencontrer des versions plus anciennes. Sachez-le, Microsoft maintient à jour la liste des versions de son OS avec les dates de fin de support : le cycle de vie Windows.

  • Linux Desktop : Parce qu’il est open source et gratuit, de plus en plus d’entreprises et d’administrations optent pour une solution Linux dotée d’un environnement graphique. Il existe de très nombreuses distributions dont les plus réputées sont Ubuntu (basée sur le noyau Debian), Fedora et OpenSuse.

  • macOS : Système d’exploitation propriétaire basé sur Unix, développé et commercialisé par Apple.

Systèmes d’exploitation pour les serveurs

  • Windows Server 2019, 2016, 2012 : Comme pour les postes de travail, il n’est pas rare de rencontrer des versions plus anciennes. Le cycle de vie Windows Server.

  • Linux : Comme pour les postes de travail, il existe de nombreuses distributions déclinées en version serveur sans environnement graphique. Celles que j’ai le plus souvent rencontrées sont Red Hat Enterprise, SUSE Linux Enterprise et Ubuntu Server.

  • OS400 : OS propriétaire édité et commercialisé par IBM sur les plateformes AS400.

  • UNIX : C’est l’un des pionniers des systèmes d’exploitation, il a servi de base au développement de nombreux autres (macOS, Linux, BSD, etc.). Il supporte généralement les applications les plus critiques nécessitant un niveau de performance très élevé. 

Pour revenir à notre cas pratique, il s’agit ici de faire un choix d’OS approprié. Il est généralement dicté par une stratégie d’architecture. À défaut, c’est en fonction du service hébergé et des éventuelles préconisations de l’éditeur qu’il faudra faire votre choix.

Alors, qu’en pensez-vous ? Quel OS utiliserons-nous pour héberger notre application de gestion des flux ?

Si l’on se réfère à nos règles d’architecture, nous devrons choisir Ubuntu Serveur 18.04 LTS.

À vous de jouer maintenant ! Continuez votre analyse et remplissez la composante “2. Systèmes d’exploitation” de votre tableau pour vos 4 périmètres projet.

Les hébergements

Dans les grandes entreprises, il est fréquent de disposer de plusieurs solutions d’hébergement. Chaque projet doit donc faire des choix relatifs à son contexte.

Le local technique (ou salle machines)

Généralement présent dans les TPE, les écoles ou sur les sites locaux des grandes entreprises, le local technique est le domaine de l’informaticien. C’est souvent un bureau réhabilité, climatisé dont l’accès est sécurisé. On y retrouve les éléments d’infrastructure réseau (accès internet, baies de brassage, routeurs, switchs, etc.) et les serveurs d’application nécessitant une proximité géographique avec les utilisateurs finaux.

Local technique
Local technique

Les data centers (ou centres de données)

C’est là que l’on trouve la “Grosse Artillerie” ! Un data center, ou centre de données, est un site physique regroupant des installations informatiques (serveurs, routeurs, switchs, disques durs...) chargées de stocker et de distribuer des données à travers un réseau interne ou via un accès internet.

Pour fonctionner correctement, un data center doit aussi abriter l’infrastructure adéquate :

  • un système de distribution d’énergie ;

  • un commutateur électrique ;

  • des réserves d’énergie ;

  • un système de ventilation et de refroidissement ;

  • et une puissante connexion internet. 

Une telle infrastructure nécessite un espace physique suffisamment vaste et sécurisé pour contenir tout cet équipement. Généralement, ce type d’hébergement ainsi que les services associés sont proposés par des sociétés spécialisées : on peut citer IBM, HPE, Equinix ou encore ATOS.

Un data center
Un data center

Le cloud

Le cloud est un terme anglais qui signifie nuage. Utiliser le cloud consiste à utiliser des équipements informatiques (serveurs, réseaux, bases de données) distants par l’intermédiaire d’internet, pour exécuter des applications ou stocker des données et les exploiter.

Le cloud computing se caractérise par sa grande souplesse : selon le niveau de compétence de l’utilisateur client, il est possible de gérer soi-même son serveur ou de se contenter d’utiliser des applicatifs distants.

Les principaux services proposés en cloud computing sont :

  • Le IaaS (Infrastructure as a Service) : Le système d’exploitation et les applications sont installés par l’utilisateur sur des serveurs virtuels où il se connecte pour travailler.

  • Le PaaS (Platform as a Service) : Le fournisseur cloud administre les serveurs et les systèmes d’exploitation ; le client peut y installer ses propres applications.

  • Le SaaS (Software as a Service) : Les applications sont fournies sous forme de service ; l’utilisateur y accède via un navigateur web, par exemple.

Vous savez tout sur les différents types d’hébergements !

À vous maintenant d’identifier les types d’hébergements disponibles pour votre solution et quelles sont les contraintes pour notre client “Les Artisans Réunis”. Ensuite, complétez la composante “3. Hébergement” de votre tableau d’analyse.

Les middlewares

Un middleware est un logiciel qui fournit aux applications des services que le système d’exploitation n’assure pas.

Je vous propose de vous présenter brièvement quelques-uns des middlewares les plus utilisés en entreprise.

Les moteurs de base de données

Les moteurs de base de données sont des logiciels visant à stocker, gérer et restituer les informations utilisées par l’entreprise au travers des applications métiers.

Par exemple, dans notre projet pour "Les Artisans Réunis", l’ensemble des données pour établir les devis et factures doivent être stockées quelque part. Il s’agit des informations sur le client (nom de l’entreprise, adresse, siret, etc.) et des informations d’achat (référence de l’achat, montant, date, etc.). La base de données est comme un immense tableur regroupant toutes ces données avec un système permettant de les rechercher, les consulter, les modifier et les supprimer."

Les serveurs d’application

Un serveur d’application est un logiciel situé entre l’utilisateur et l’architecture transactionnelle (vos programmes). (Source : IGM - Institut d’électronique et d’informatique Gaspard-Monge)

Lorsque le rôle d’un serveur web HTTP se limite à recevoir des requêtes HTTP et à y répondre sous forme de page HTML, par exemple, le serveur d’application, quant à lui, gèrera les fonctions pour vos applications métiers.

Par exemple :

  • La connexion aux bases de données

  • L’exécution des traitements

  • La génération “à la volée” des pages HTML dynamiques

  • L’attribution des ressources machines

  • La répartition de la charge

Le serveur d'application communique avec la base de données, les scripts et le serveur HTTP. Le serveur HTTP communique avec l'utilisateur.
Fonctionnement d’un serveur d’application (Source : IGM - Institut d’électronique et d’informatique Gaspard-Monge)

Les systèmes d’intégration

Pour faire simple, ce sont des solutions logicielles spécialisées dans l’échange de données entre applications hétérogènes qui n’ont pas été conçues pour échanger facilement leurs données. La mise en œuvre de telles solutions nécessite généralement une volonté de l’entreprise d’urbanisation de son SI. L’urbanisation est un concept stratégique de l’entreprise qui vise à simplifier, modéliser le système d’information de façon à le rendre plus évolutif (je vous invite à consulter cette ressource pour plus d’informations). 

Certains de ces logiciels sont spécialisés dans le transport des données, d’autres dans la transformation. On les utilise soit dans un contexte synchrone (temps réel), soit au contraire dans un contexte asynchrone.

Les ETL : Extract, Transform & Load

Ce type de logiciel permet de collecter de gros volumes de données en provenance de sources multiples, de les convertir dans un format adapté et de les transférer dans un Data Warehouse (entrepôt de données). Le plus souvent, il fonctionne en mode asynchrone sous forme de batch.

ETL : Extract, Transform & Load
ETL : Extract, Transform & Load (Source : Informatica)
Les EAI : Enterprise Application Integration

Contrairement aux ETL qui fonctionnent en mode batch, les EAI fonctionnent en événementiel selon des règles fonctionnelles. Ils permettent de faire communiquer les différentes applications du SI entre elles.

Ce type de plateforme orchestre les flux interapplicatifs selon des règles de routage sophistiquées : c’est le workflow. De fait, un EAI organise la circulation de l’information entre des applications hétérogènes et les rend interopérables.

Un EAI a trois fonctions :

  • la connexion aux briques applicatives ;

  • la conversion des informations dans un langage commun ;

  • le transport des flux de données, de l’application émettrice à l’application réceptrice.

Pour fonctionner, l’EAI possède des données de référence liées à l’entreprise, un moteur de gestion de règles, des connecteurs applicatifs et un système de transport d’information.

Sans EAI (Source : SupInfo)
Organisation du workflow sans EAI (Source : SupInfo)
Avec EAI (Source : SupInfo)
Organisation du workflow avec EAI (Source : SupInfo) 
Les ESB : Enterprise Service Bus

L’ESB peut se définir comme un ensemble d’outils qui permettent des échanges de données sécurisées entre plusieurs services et applications différents.

L’ESB peut être considérée comme une nouvelle génération d’intégration d’applications d’entreprise (EAI) construite sur des standards comme XML, Java Message Service (JMS) ou encore les services web.

La différence majeure avec l’EAI est que l’ESB propose une intégration complètement distribuée grâce à l’utilisation des conteneurs de services. Ces « mini-serveurs » contiennent la logique d’intégration et peuvent être déposés n’importe où sur le réseau.

Les ESB (Source : cours
Les ESB (Source : cours "Implémentez une Architecture Orientée Services (SOA) en Java")

Solutions de versioning et intégration continue

Une application est le fruit d’un travail collaboratif et est amenée à évoluer, ne serait-ce que pour corriger les bugs. Ce type de logiciel a pour objectif de gérer les versions de votre code, de votre documentation.
Certaines solutions, orientées DevOps, permettent également de mettre en œuvre l’intégration continue de vos applications. 

Les outils de monitoring et d’alarming

Aussi appelés outils de supervision, ces logiciels spécialisés ont pour objectif de surveiller le fonctionnement et les performances de votre SI, d’une part, et de vous alerter en cas de dysfonctionnement, d’autre part, par la création d’un ticket d’incident, l’envoi d’un e-mail ou d’un SMS, par exemple.

Le plus souvent, la surveillance porte sur 3 niveaux de votre SI :

  • la supervision système : processeur, mémoire, stockage ;

  • la supervision réseau : disponibilité des services en ligne (fonctionnement, débit, sécurité, etc.) ;

  • la supervision applicative : disponibilité des services (web, database, etc.).

Et bien d’autres

Vous avez compris le principe ?
L’idée dans cette section était plus de vous exposer le concept de middleware que de vous dresser la liste exhaustive des solutions existantes. D’autant que, comme dans tout domaine technologique, le progrès est très rapide et de nouvelles solutions voient le jour quotidiennement.

Alors soyez curieux, mettez en œuvre votre veille technologique et rencontrez les acteurs concernés dans l’entreprise.

Il est temps maintenant de compléter votre tableau d’analyse pour le quatrième composant “4. Middlewares”. Je vous laisse faire et je vous retrouve dans la section suivante : les frameworks.

Les frameworks

Je définirais un framework comme étant une boîte à outils pour le développeur.

Par exemple, l’utilisation d’un framework peut permettre de connecter une base de données en une seule ligne de code alors qu’il en faudrait 10 avec un langage de base.
Les principaux avantages à utiliser un framework sont :

  • la réutilisation du code ;

  • la standardisation de la programmation ;

  • la formalisation d’une architecture logicielle adaptée aux besoins.

Il existe des frameworks pour tout : développer une application mobile, un jeu, un site web, un module d’extension, des CSS… La plupart d’entre eux sont spécifiques à un langage de script ou de programmation.

Quelques exemples

Framework

Utilisation

Architecture

Langage

Spring

Applications web

Multiplateforme

Java

BOOTSTRAP

Applications web

Front

HTML5-CSS-JS

Catalyst

Logiciel applicatif

MVC

PERL

Dojo

Applet

Ajax

JavaScript

Cocoa

Logiciel applicatif

Cocoa (Apple)

Objective C

Symfony

Applications web

MVC

PHP

.NET

Logiciel applicatif
Applications web
Composants logiciels

ASP.NET

C# ; Visual Basic .NET

WinDev

Logiciel applicatif
Composants logiciels
Services

Multiplateforme

WLangage

On y est presque…

Avant de passer à la dernière section de votre analyse de l’existant et des contraintes d’architecture et de sécurité, je vous invite à compléter la composante “5. Framework” de votre tableau.

Les applications et les données

Dans un projet SI, vous ne partez généralement pas d’une page blanche où tout est à construire. Il est donc important, dans votre réflexion, de tenir compte des applications entrant en jeu dans votre projet ainsi que des données que vous devrez manipuler. 

Dans le cas de notre exemple, nous voyons clairement deux composants à analyser :

  • Le logiciel interne “MonBonDevis”

  • Le progiciel “ERP”

Il nous faudra donc, pour finir cette étude, extraire de notre cahier des charges fonctionnel et des différents documents techniques dont nous disposons, les informations pertinentes qui nous permettront de finaliser notre tableau d’analyse.

Vous terminez de remplir votre tableau ?

En résumé

Et voilà, notre analyse est enfin complétée !

Voici ma propre analyse que vous pouvez au format xls ou au format ods. Comparez-la à votre travail et ne vous inquiétez pas si vous trouvez des différences ; c’est normal et votre analyse peut être tout aussi pertinente. Essayez donc d’expliquer ces différences.

Vous savez maintenant :

  • Découper un projet en sous-projets

  • Analyser l’existant de vos applications et composants d’infrastructure

  • Extraire de la documentation du SI les contraintes techniques et de sécurité

Conservez bien votre tableau d’analyse. C’est un document essentiel pour identifier la solution que vous proposerez au client. Il vous permettra de répondre aux questions des membres du comité de pilotage à la fin de cette partie.

Dans le prochain chapitre, nous verrons comment utiliser les techniques de benchmark afin de commencer à construire nos propositions de réponses au cahier des charges.

Exemple de certificat de réussite
Exemple de certificat de réussite