Patrick TRAU 2021
Une information est un nombre, un texte, une image, un son... Nous ne traitons que ce qui peut être numérisé (pas les odeurs, pour l'instant). Evidemment, on peut combiner tout cela pour former un plan CAO, un catalogue, une gamme d'usinage...
Un S.I. est l'ensemble du matériel (hard), du logiciel (soft) et des moyens humains, qui permet de d'acquérir, stocker, modifier, gérer, partager, diffuser de l'information.
vous pouvez voir ma petite introduction sur l'architecture des ordinateurs et des systèmes d'exploitation (cours de licence SPI).
rq : trouvez ici les diverses photos que je présente habituellement en cours.
Les premiers ordinateurs (à partir de 1945) coûtaient des sommes colossales (même pas calculées, ni les composants utilisés progressivement, ni les heures de travail des ingénieurs) et étaient surtout des objets de recherche, en constante évolution.
Dans les années 50-60, l'ordinateur était un « mainframe » : situé dans une salle de calcul, avec un tas de gens grouillant autour des machines, changeant les bandes magnétiques... Il était produit en petite série et avait un coût commercial (plusieurs centaines de k$, voire millions pour l'armée). Les utilisateurs, nombreux, étaient connectés à distance, via des terminaux (au début, lecteurs de cartes perforées) et des liaisons téléphoniques (en France, monopole des PTT, on appelait ces lignes des LS). La SNCF quand à elle avait son propre réseau, toutes les grandes gares étaient reliées à l’ordinateur central. Exemple : ordinateur « Univac » à Jussieu, pour la recherche universitaire de toute la région parisienne.
Dans les années 70, on passe au « mini ordinateur », de la taille d'une armoire (hors périphériques). qui peut être payé par une plus petite structure, ou une grosse entreprise. Par exemple chaque grand laboratoire de recherche . (100k$ juste pour l'ordinateur). Les LS existent toujours, et si l'on a encore un compte sur le mainframe, on peut transmettre des informations entre deux labos.
Années 80 : le micro ordinateur (et la station de travail, un peu plus puissante). On peut enfin décentraliser le travail et les données, chacun peut « faire ce qu'il veut » (s'il a suffisamment de ressources matérielles et les logiciels). On met en place des réseaux locaux pour partager des informations entre les postes. On peut aussi interconnecter deux réseaux locaux. Il faut alors avoir un compte d'accès au réseau local et un au réseau distant : on se « loge » sur un ordinateur local, via le réseau local on accède à la « passerelle », on passe par une LS à la passerelle du réseau distant, et on se loge sur une des ordinateurs distants (autre compte et mot de passe). Si le réseau distant a d'autres passerelles, on peut « rebondir » plus loin. Mais il faut (1) connaître la route, et (2) avoir des accès autorisés à toutes les passerelles sur la route.
Années 90 : internet. (1) les routes sont calculées automatiquement (il faut juste définir clairement le départ et l'arrivée grâce à un numéro unique : l'IP) (2) toute personne qui veut passer chez les autres (donc être sur internet) doit se relier à au moins un autre (et financer la liaison), et laisser passer les autres chez lui. On peut transmettre des données sur le réseau en commençant par des message texte (mail) et tous fichiers (ftp). Et bien sûr les pages web, puis les moteurs de recherche....
Années 2000 généralisation d'internet, accessible aux particuliers et les plus petites structures commerciales. Généralisation de l'architecture client-serveur : les informations sont gérées (par un programme serveur) et stockées sur un ordinateur distant. Il ne reste plus qu'à poser (à distance) une question (requête) au serveur, qui traite et répond. Double avantage : (1) inutile d'avoir localement la puissance de calcul, la totalité des données, les programmes, (2) toute mise à jour d'une information est immédiatement visible à tous. Exemples les plus connus : serveur Web, SGBD (base de données). ERP (données de gestion d'une entreprise)...
Années 2010 : le cloud : on ne sait plus où sont physiquement les information, ni les matériels qui exécutent les programmes. Tout est sous-traité. Mais tout est également quantifié : on paye pour ce que l'on utilise. On peut donc accéder à des logiciels autrefois réservés aux « gros », à un prix réduit (si usage réduit, bien sûr), comme par exemple SAP. Ou à un logiciel nécessitant un ordinateur (traitement de texte par exemple) sur une terminal (téléphone) où il n'est pas installé (Google drive+docs+..., office 365....)
Années 2020 : télétravail ????
Voir http://ptrau.free.fr/internet/cours-reseau
Ce cours est vieux (2002!). Mais il montre comment fonctionne le réseau. Le principe n'a pas beaucoup changé mais comme les informations (noms, numéros IP...) sont obsolètes je peux les publier sans crainte. Dès que j'ai le temps je le remets à jour (au moins parler d'IPv6). Il est important de comprendre les numéros IP (v4 et v6) et le nommage, le DNS, l'organisation du réseau
Définitions (récursives, comme disent les informaticiens) :
Nous allons voir cela sur des exemples, avec des graphiques dans lesquels : un rectangle est un ordinateur, une ellipse un programme, une flèche une requête (ou une réponse).
exemple : un serveur Web est un programme (Apache est le plus utilisé, il est OpenSource, IIS est le produit Microsoft, je n'en dis pas plus sinon je me fâche). Il répond à des requêtes (du type http://mon_ordi/ma_page?options, par exemple http://www.google.fr/search?q=patrick+trau )
Les clients web s'appellent Firefox, Internet Explorer, Opera, Safari, Chrome... Ils envoient une requête http en fonction de ce que vous avez tapé ou cliqué, Puis, quand le serveur leur revoie sa réponse (c'est du texte contenant des « balises » : <html> <head> ...) il l'analyse et vous dessine une belle page.
Mais pour la dessiner, il n’allume pas directement les pixels de l’écran : il passe par un serveur de fenêtres graphiques (X11 sur linux) qui va passer par le système d’exploitation (OS) pour lui demander de dessiner la page (sous Windows le serveur graphique et l’OS ne sont pas clairement séparés).
Pour la suite, je ne rajouterai pas l’OS dans mes schémas, ça compliquerait trop. Il y en a bien sûr un dans chaque ordinateur. Mais il ne fonctionne pas nécessairement en mode serveur, en tout cas ceux qui permettent d’ouvrir une fenêtre à distance le sont (telnet, ssh, bureau à distance...).
Le fait que le serveur tourne obligatoirement sur un ordinateur a amené des gens à appeler cet ordinateur « serveur Web ». C'est une extension du langage, un serveur matériel est un ordinateur dédié principalement à faire tourner un programme serveur donné. Mais sur un serveur web il y a souvent un client web (pour pouvoir voir une page plutôt que juste ses codes html), et sur mon ordinateur portable il y a Apache qui tourne tout le temps (s'il est allumé), pourtant ce n'est pas un serveur matériel.
Il existe de nombreux serveurs :
base de données distribuée (SGBD) : on lui pose une question (en général en SQL), il répond en fonction des données dont il dispose. Exemples : MySQL, Microsoft-SQL, Oracle, PostgreSql...
Mais si vous avez un site web marchand, vos pages vont devoir interférer avec votre base de données de production (pour des pizza, voir si les ingrédients sont disponibles, calculer le prix, choisir le livreur…). On rajoute alors un client Base de Données directement dans le serveur web. Un particulier envoie une requête http, le serveur l’analyse, fait des requêtes à la BD , et calcule une page avec le prix, l’heure de livraison… qu’il renvoie.
fichiers : celui de windows s'appelle SMB (on dit samba), il permet de « partager » un fichier aux autres ordinateurs de votre réseau local. A plus grande échelle, NFS (Network File System) permet de partager des fichiers (souvent sous Unix) via internet (attention aux hackers!). RAID permet de sécuriser les disques durs (en les doublant voire triplant, ce qui fait qu'en cas de défaillance de l'un on a toujours une donnée dupliquée). Ici aussi, on appelle généralement « serveur de fichiers » la machine contenant le logiciel et les disques durs, mais un puriste limiterait le nom au logiciel, car pour être protégé par exemple contre l'incendie, il vaut mieux que les disques durs soient localisés en plusieurs endroits distants (mais bien interconnectés, par exemple par une fibre optique dédiée).
Google : il y a un serveur Web. Vous lui posez une question (http://....). Le serveur web de Google contient un client BD (bases de données, peut-être SQL) qui va créer une requête BD, qu'il envoie à leur SGBD. Celui-ci va chercher des informations sur leur serveur de fichiers pour pouvoir répondre au serveur Web. Ce dernier analyse la réponse et la met en forme (ajoute des balises html) pour vous envoyer son résultat. Et tous ces serveurs tournent non sur un ordinateur, mais sur des dizaines de milliers !
Xwindows : Contrairement à Windows, le logiciel qui gère les fenêtres sous Linux est un serveur. Il tourne sur les machines Unix (mais peut être installé sur Windows). Le système d'exploitation de cette machine est client de Xwindows : il demande d'afficher des choses dans des fenêtres. Vu de loin, c'est la même chose que Windows, mais non : comme c'est un serveur , vous pouvez lancer un programme sur une machine mais que la fenêtre se dessine sur une autre. Ceci permet de créer des « serveurs de calcul » : c'est une machine très puissante sur laquelle vous pouvez lancer à distance de gros calculs scientifiques et voir les résultats sur votre petit ordinateur minable. Ici aussi, le serveur est surtout logiciel, car matériellement il peut y avoir plusieurs ordinateurs si les calculs sont vraiment gros (on l'appelle alors « grille de calcul »)
ERP (Entreprise Ressources Planning) : base de données de gestion d'une entreprise de production. Toutes les données sont centralisés dans un même logiciel (même si matériellement elles sont éparpillées). Les clients sont des logiciels pour des gestionnaires, des comptables et des commerciaux (jusque là, rien d’exceptionnel) mais peuvent aussi s'alimenter de données sur les machines-outils, les chaînes de production, dans gestion de stock, la logistique... Même vous, en tant que client, pouvez voir où en est la fabrication de votre voiture, ou où est le camion qui transporte vos cadeaux de Noël.
Serveur d’impression (CUPS, SMB, LPD, IPP...), serveur mail (de moins en moins courant à petite échelle : SMTP, POP, IMAP), serveur de jeu...
Voir la définition de Wikipédia. J'en extrais certaines explications.
Le cloud, c'est un peu une démarche que je vois s'appliquer de plus en plus dans notre économie : vous ne faites rien en local, tout est sous-traité. Pour moi, c'est le retour au mainframe, que tous les fabricants ont tant décrié depuis 30 ans. Tout ce que propose le cloud existait déjà sur internet (stockage à distance, programmes tournant à distance, machines distantes…). Mais on y a rajouté la quantification de l’utilisation des ressources (et donc la possibilité de facturation).
D'après wikipédia, les caractéristiques essentielles d'un nuage sont la disponibilité mondiale en libre-service (libre-service = on achète ce dont on a besoin à un instant donné, et pas on le prend), l'élasticité (si j'ai besoin de plus de ressources, je paye plus, si j'en ai moins besoin, je paye moins), l'ouverture (fonctionne sur tout système), la mutualisation (ce que vous n'utilisez pas un moment est disponible aux autres) et le paiement à l'usage (on ne paye que ce qu'on utilise).
Avantages : on n'est plus obligé d'acheter les ressources nécessaires pour les moments de pointe, et donc surdimensionnées le reste du temps. On peut se payer des outils de haute technicité sans en payer le prix fort, si on l'utilise peu (par exemple SAP). On peut répondre immédiatement à une hausse de la charge. Chaque tâche est sous-traitée à un spécialiste, qui maîtrise (théoriquement) son domaine. On n'est plus obligé d'investir massivement avant de commencer à gagner de l'argent (on passe à des coûts de fonctionnement)
Inconvénients : on ne sait plus où sont les choses, ni entre les mains de qui (et problèmes juridiques de règles différentes dans différents pays). Tout problème dans le réseau nous bloque complètement. Si on est plusieurs à se partager un même ordinateur, chacun paye (avant, on ne payait qu'une fois par ordi). Une fois qu'on a tout «ennuagé » ses données, le prestataire peut augmenter ses prix sans qu'on puisse rien y faire (faire attention à empêcher le monopole et garder des acteurs concurrents).
Les types de cloud (schéma extrait de wikipédia sur le cloud) :
IaaS : vous louez des ordinateurs (virtuels) et y mettez (payez) votre système d'exploitation, et vos applications. A vous de gérer les mises à jour, les possibilités de virus ou attaques…
PaaS : on vous fournit un ordinateur, son OS, ses logiciels de base. Le prestataire les maintient. Vous gérez vos données et applications spécifiques.
SaaS : tout est dans le nuage. Localement il vous suffit d'un terminal. Vous accédez à tout depuis partout, même votre téléphone. (ex Google Drive)
Si un prestataire vous propose un SaaS, il est possible que lui-même sous-traite le PaaS à un autre, qui lui sous-traite l'IaaS. Les données peuvent être chez un autre prestataire que les logiciels.
schéma repris chez Wikipédia (fr.wikipedia.org/wiki/Cloud_computing)
Le cloud, de par sa possibilité de quantifier les usages, incite des prestataires à proposer des services (avant, il fallait en trouver de gratuits, ou se partager des ressources entre personnes autorisées, comme par exemple dans une entreprise). Ceci permet l‘émergence des outils collaboratifs, qui permettent de travailler à plusieurs sur un même projet. Sur Google Docs, vous pouvez voir votre texte évoluer pendant que vous le tapez, mais aussi celui que tape un collègue dans le même document, en même temps. Ce n'est possible que parce que le logiciel tourne sur un seul ordi (un serveur) malgré qu'il ait plusieurs fenêtres de visualisation (clients). Il existe des TAS ce logiciels de ce type, même en libre : voir dégooglisons internet, chez Framasoft. Bien sûr, vous proposer un logiciel gratuit est courant, mais pas le serveur pour le faire tourner : soit vous l'installez chez vous (par ex BBB installé à l'Unistra et dans plein d'entreprises) soit louer (cloud) : MS Teams...
PowerBI (de MicroSoft) est pour moi une évolution qui se généralisera. Ce logiciel a toutes les fonctionnalités d'Excel (analyse de données, statistiques, graphiques...) Par contre les données peuvent venir de n'importe où (feuille Excel, BD SQL, voire toute recherche web), et les calculs et graphiques évolueront en temps réel. On s'en sert donc pour des tableaux de bord, et je pense qu'en GIPI cela permettra d’afficher graphiquement les données de prod, KPI, TRS, non qualités... depuis les données SAP, les sorties des machines, les tableaux excel...
Patrick Trau université de Strasbourg 2021. pour toute remarque.