page1
L'informatique d'entreprise
Introduction
à l'informatique d'entreprise
Réseaux,
Informatique dans les nuages,
Formats d'échange de données,
Langages de programmation,
Sécurité,
Modélisation
page2
Auteurs et contributeurs
Contributeurs :
Erwan HAMON (auteur original)
M.-A. DARCHE (auteur original)
Michel Cadiou (illustrations)
Du contenu de Wikipédia, distribué suivant la licence Creative Commons paternité-partage à l’identique a été utilisé pour compléter certaines parties de ce document.
Du contenu de Wikipédia, distribué suivant la licence Creative Commons paternité-partage à l’identique a été utilisé pour compléter certaines parties de ce document.
page3
Objectifs pédagogiques (1)
Se familiariser les notions fondamentales de l'informatique (réseaux, formats d'échange de données, XML, langages de programmation, les méthodes)
Connaître les différentes briques des systèmes d'information actuels
Savoir ce que sont les formats ouverts
Savoir ce qu'est concrètement la programmation en la pratiquant
Connaître les différents licences de distribution logiciels, savoir en choisir pour un projet
page4
Objectifs pédagogiques (2)
Connaître la théorie des logiciels libres et de l’open source. Quelles spécificités pour quels besoins.
Connaître les enjeux, les contraintes, les stratégies pour les systèmes d'information
Connaître les méthodes agiles de développement logiciel et de gestion de projets informatiques
La sécurité informatique
Pouvoir devenir chef de projet, ingénieur commercial, consultant dans un cabinet de conseil, entrepreneur
… et savoir prendre du recul
page5
Et les objectifs
des étudiants ?
page6
Critique et remise en question (1)
Avant tout, savoir prendre du recul
page7
Critique et remise en question (2)
page8
Critique et remise en question (3)
page9
Critique et remise en question (4)
page10
Critique et remise en question (5)
Régulièrement s'interroger sur l'intérêt pour la société dans son ensemble des nouveautés et changements amenés par l'informatique.
Comparer l'utilité sociale d'un médecin ou d'un agriculteur avec celle d'un développeur informatique, d'un chef de projet ou d'un commercial.
page11
Critique et remise en question (6)
Quelques changements profonds amenés par l'informatique :
Verticalité et horizontalité : présence dans tous les domaines, à tous les niveaux
Déplacement des responsabilités, ce qui était la faute des secrétaires, des enseignants, devient la faute de l'ordinateur => diminution des conflits interpersonnels, mais parfois aussi déresponsabilisation et disparition des interlocuteurs
page12
Critique et remise en question (7)
Faire attention aux moments où architectes et développeurs se laissent aller à créer et complexifier par entraînement ou plaisir
page13
Critique et remise en question (8)
Menaces pour la société créées par l'informatique :
Coûts énergétiques (diminution ou augmentation ?)
Suppression d'emplois et de contacts humains
Création et multiplication de fragilités structurelles
(utilisation de fausses cartes de bancaires, vol d'identités numériques, attaques de banques et ministères par les réseaux, déclenchement de krachs boursiers par des robots, etc.)
Augmentation de la pression administrative
Menaces pour la démocratie (le vote électronique)
page14
Réalisations informatiques concrètes marquantes
page15
Réalisations informatiques concrètes marquantes
Les exocerveaux (les téléphones portables)
Autres appareils informatique embarquée (baladeur numérique, livre électronique, tablette numérique, lecteur-enregistreur numérique de salon, TV, etc.)
Les boîtiers réseau multi-services (accès Internet, téléphonie, télévision, vidéo à la demande) comme les Freebox, Neufbox, Livebox, DartyBox, etc.
Les moteurs de recherche et plus particulièrement Google (super pertinent + gigantesque mémoire)
Intelligences artificielles avancées (sonde spatiale, drone militaire, etc.)
page16
Point sur les tendances
Réseaux sociaux
Pair à pair / P2P
Architecture orientée services (Service Oriented Architecture, SOA)
REST, RESTful
Dématérialisation (virtualisation) des systèmes d'exploitation par machine virtuelle (VM) (VirtualBox, VMWare)
Haute disponibilité, noSQL
Informatique dématérialisée, informatique en nuage
page17
page18
Système d'information (1)
Le système d'information = SI
Utilisation de moyens informatiques, électroniques et de la télécommunication pour automatiser et de dématérialiser les opérations. Utilisés en lieu et place des moyens classiques tels que formulaires papier et téléphone
Ensemble organisé de ressources (matériels, logiciels, personnel, données et procédures) qui permet de regrouper, de classifier, de traiter et de diffuser de l'information sur un environnement donné.
page19
Système d'information (2)
page20
Système d'information (3)
Toutes les entreprises ne pas équipées de la même manière
La culture de l'entreprise est un facteur essentiel
Il y a des entreprises où une grande partie de l'informatique est faite « maison »
Certaines entreprises ont virtualisé tout leur SI, tout peut se faire en télétravail avec un accès aux informations :
page21
Système d'information (4) :
les composants
Le système d'information (SI) est constitué de différents composants :
Progiciel de gestion intégré (PGI) / Enterprise Resource Planing (ERP) : fait de plus en plus de choses
Informatique décisionnelle
Plateforme de commerce électronique
Gestion de la chaîne logistique
Gestion des ressources humaines
Gestion de la relation client
page22
Système d'information (5) :
les composants
Suite des composants :
Communication (courriel, messagerie instantanée, central téléphonique, VoIP, visioconférence)
Travail collaboratif (agenda partagé, serveurs de fichiers, partages réseau, dossiers partagés, gestion de contenu, gestion de versions)
Annuaires d'authentification, infrastructure de gestion de clés (IGC / PKI)
Stockage, bases de données
Intranet, extranet, VPN
page23
Informatique en nuage,
le « cloud computing »
page24
Informatique en nuage (1)
page25
Informatique en nuage (2)
page26
Informatique en nuage (3)
page27
Informatique en nuage (4) :
Consommation à la demande
page28
Informatique en nuage (5) :
Avantages
Mutualisation du matériel, optimisation des coûts
Élasticité du nuage pour fournir des services évolutifs et donc de supporter les montées de charges
Services extrêmement fiables, tolérance aux pannes
page29
Informatique en nuage (6) :
Inconvénients
Consommation électrique et production de chaleur importante (problème d'évacuation) => création de centres d'hébergement répartis dans de nombreux pays
Besoin connexion réseau permanente
Sécurité : ouverture des accès à l'Internet
Perte de la maîtrise de l'implantation des données et potentiellement d'une partie cycle de vie des applications
Questions juridiques (notamment sur la géolocalisation des données)
page30
Première constatation pour les semiconducteurs en 1965
En 1975, Moore réévalua sa prédiction en posant que le nombre de transistors des microprocesseurs sur une puce de silicium double tous les deux ans. Entre 1971 et 2001, la densité des transistors a doublé chaque 1,96 année.
Une version commune, variable et sans lien avec les énoncés réels de Moore est : « quelque chose » double tous les dix-huit mois, cette chose étant « la puissance », « la capacité », « la vitesse » et bien d'autres variantes...
« Loi » de Moore (1965/1975)
page31
page32
Il y a 2 types de langages de programmation :
Les langages compilés / les langages interprétés
Le code source d'un programme en langage compilé est traité par un programme, appelé compilateur, qui produit un programme exécutable par l'ordinateur sous forme de fichier binaire (ex : C, C++, Pascal, Cobol).
Le code source d'un programme en langage interprété est traité par un programme appelé interpréteur qui décode chaque instruction et l’exécute à la volée. (ex : Python, Ruby, JavaScript)
Programmation (1) :
2 types de langages
page33
Programmation (2) :
Différences des 2 types
Le langage Java est précompilé en bytecode et ensuite interprété
Un langage compilé est très rapide à l'exécution. Un langage interprété permet plus de souplesse et est moins vulnérable aux attaques et failles de sécurité.
Optimisation compilation « just in time »
Aujourd'hui la puissance des ordinateurs et les optimisations permettent d'estomper les différences de vitesse → privilégier les langages interprétés
(sauf cas particulier où la rapidité est critique)
page34
Programmation impérative (et ses dérivées structurées, procédurales) : on donne des ordres plus ou moins séquentiels (C, C++, Java, Pascal, Basic, Cobol, JavaScript)
Programmation fonctionnelle : évaluation de fonctions mathématiques sans affectation (Lisp, Haskell, Erlang et JavaScript aussi)
Programmation orientée objet : on définit des classes d'objet avec leurs comportements (Smalltalk, Java)
Programmation déclarative : on décrit le « quoi », c'est-à-dire le problème (HTML, XML, Prolog)
Programmation (3) :
Les différents paradigmes
page35
Programmation (4) :
Les différents paradigmes
page36
L'homme => compte avec dix chiffres pour ses dix doigts. L'ordinateur compte avec des états binaires.
Bit : chiffre binaire qui peut avoir la valeur 0 ou la valeur 1
La notation hexadécimale permet de noter les nombres en base 16. C'est à dire avec 16 chiffres de 0 à F. La base 16 est pratique car c'est une puissance de 2 (24).
Un chiffre hexadécimal correspond à 4 bits
Un octet de 8 bits est représenté par deux chiffres hexadécimaux de 00 à FF, et a une valeur de 0 à 255.
Notions de binaire et d'hexadécimal (1)
page37
Binaire et hexa (2)
Décimal | Binaire | Hexadécimal |
0 | | 0000 | | 0 |
1 | | 0001 | | 1 |
2 | 21 | 0010 | | 2 |
3 | | 0011 | | 3 |
4 | 22 | 0100 | | 4 |
5 | | 0101 | | 5 |
6 | 3 * 2 | 0110 | 11 * 10 | 6 |
7 | | 0111 | | 7 |
8 | 23 | 1000 | | 8 |
9 | | 1001 | | 9 |
10 | | 1010 | | A |
11 | | 1011 | | B |
12 | 3 * 4 | 1100 | 11 * 100 | C |
13 | | 1101 | | D |
14 | | 1110 | | E |
15 | | 1111 | | F |
16 | 24 | 10000 | | 10 |
page38
28 = 256 - les valeurs entre 0 et 255 comptées par un octet de 8 bits
210 = 1024 ≃ 1000 - Kilo (ex: Kilo octet, Kilo bit)
216 = 65536 – le nombre de valeurs comptées par un mot de 16 bits
220 = 1 048 576 ≃ 1 Million – Méga
230 = 1 073 741 824 ≃ 1 Milliard- Giga
232 = 4 294 967 296 ≃ 4 Milliard- 4 Giga (architectures 32 bits)
Binaire et hexa (3) :
Ordres de grandeur à retenir
page39
Le modèle de réseau OSI (Open Systems Interconnection)
1. La couche « physique » est chargée de la transmission effective des signaux entre les interlocuteurs. Son service est typiquement limité à l'émission et la réception d'un bit ou d'un train de bits continu (notamment pour les supports synchrones).
Le modèle de réseau OSI (1)
page40
2. La couche « liaison de données » gère les communications entre 2 machines adjacentes, directement reliées entre elles par un support physique.
Le modèle de réseau OSI (2)
page41
Le modèle de réseau OSI (3)
3. La couche « réseau » gère les communications de proche en proche, généralement entre machines : routage et adressage des paquets.
4. La couche « transport » gère les communications de bout en bout entre processus (programmes en cours d'exécution).
page42
Le modèle de réseau OSI (4)
5. La couche « session » gère la synchronisation des échanges et les « transactions », permet l'ouverture et la fermeture de session.
6. La couche « présentation » est chargée du codage des données applicatives, précisément de la conversion entre données manipulées au niveau applicatif et chaînes d'octets effectivement transmises.
page43
7. La couche « application » est le point d'accès aux services réseaux, elle n'a pas de service propre spécifique et entrant dans la portée de la norme.
Le modèle de réseau OSI (5)
page44
Le modèle TCP/IP
Le modèle OSI est utile à connaître d'un point de vue théorique.
Toutefois, le modèle dominant est celui d'Internet, TCP/IP, qui ne contient que 4 couches :
Couche Application : HTTP, HTTPS, FTP, SMTP, IMAP...
Couche Transport : TCP (connecté), UDP (non connecté)
Couche Internet : IP (Ipv4 et IPv6)
Couche Accès Réseau
Le modèle TCP/IP
page45
page46
1. Couche Application :
HTTP Hypertext Transfer Protocol
HTTPS HTTP Secure
FTP File Transfer Protocol
SMTP Simple Mail Transfer Protocol
IMAP Internet Message Access Protocol
LDAP Lightweight Directory Access Protocol
IRC Internet Relay Chat
SSH Secure Shell
XMPP Extensible Messaging and Presence Protocol
DHCP Dynamic Host Configuration Protocol
DNS Domain Name System
SNMP Simple Network Management Protocol
Le modèle TCP/IP
page47
2. Couche Transport :
TCP Transmission Control Protocol (connecté),
UDP User Datagram Protocol (non connecté)
RSVP Resource reservation protocol
3. Couche Internet : IP
Ipv4, Ipv6
ICMP Internet Control Message Protocol
ARP Address Resolution Protocol
RIP Routing Information Protocol
IS-IS Intermediate System To Intermediate System
OSPF Open shortest path first.
IGMP Internet Group Management Protocol
4. Couche Accès Réseau
Le modèle TCP/IP
page48
page49
Sur 32 bits
Notation avec 4 nombres décimaux de 0 à 255 :
192.168.0.1
Le masque de sous-réseau correspond aux bits de poids forts qui sont commun à tous les ordinateurs d'un même réseau :
255.255.255.0
Cela peut aussi s'écrire en notation CIDR :
192.168.0.1/24 (pour 24 bits)
Le modèle TCP/IP :
Adresse IP v4
page50
Sur 128 bits
Notation avec 8 groupes de 4 chiffres hexa-décimaux :
2001:0db8:85a3:0000:0000:8a2e:0370:7334
Les zéro non-significatifs peuvent être omis :
2001:db8:85a3:0:0:8a2e:370:7334
Un groupe de zéros consécutifs peut être remplacé par « : »
2001:db8:85a3::8a2e:370:7334
Groupe d'adresses consécutives en notation CIDR :
2001:db8:a::123/64
Le modèle TCP/IP :
Adresse IP v6
page51
Critères de sécurité
Disponibilité : garantie que ces éléments considérés sont accessibles au moment voulu par les personnes autorisées.
Intégrité : garantie que les éléments considérés sont exacts et complets.
Confidentialité : garantie que seules les personnes autorisées ont accès aux éléments considérés.
La sécurité
page52
page53
La sécurité
Une personne malveillante : une personne parvient à s'introduire sur le système, légitimement ou non, et à accéder ensuite à des données ou à des programmes auxquels elle n'est pas censée avoir accès en utilisant par exemple des failles connues et non corrigées dans les logiciels
Un programme malveillant : un logiciel destiné à nuire ou à abuser des ressources du système est installé (par mégarde ou par malveillance) sur le système, ouvrant la porte à des intrusions ou modifiant les données ; des données personnelles peuvent être collectées à l'insu de l'utilisateur et être réutilisées à des fins malveillantes ou commerciales
page54
page55
Moyens techniques
Contrôle des accès au système d'information
Surveillance du réseau : sniffer, système de détection d'intrusion
Sécurité applicative : séparation des privilèges, audit de code, rétro-ingénierie
Emploi de technologies ad-hoc : pare-feu, UTM (Unified threat management), anti-logiciels malveillants (antivirus, antipourriel (SPAM), antiespiogiciel (spyware)
La sécurité
page56
La sécurité
Cryptographie : authentification forte, infrastructure à clés publiques, chiffrement
Duplication des données : sauvegardes, réplication (mirroring)
Redondance des équipements
page57
Politique de sécurité
élaborer des règles et des procédures, installer des outils techniques dans les différents services de l'organisation (autour de l'informatique) ;
définir les actions à entreprendre et les personnes à contacter en cas de détection d'une intrusion ;
sensibiliser les utilisateurs aux problèmes liés à la sécurité des systèmes d'informations (l'ingénierie sociale est très efficace contre les mesures de sécurité) ;
préciser les rôles et responsabilités.
La sécurité
page58
Notion de cache (mémoire cache, serveur proxy)
Les divers canaux de communications d'information n'ont pas les même capacité en terme de débit.
Les débits à l'intérieur du processeur peuvent être 4 fois plus importants que les accès à la mémoire vive (RAM). Ils peuvent être 1000 fois plus rapide que les accès au disques durs. Les accès réseaux, notamment Internet, peuvent être encore quelques ordres de grandeur plus lents.
Notion de mémoire cache
page59
Notion de mémoire cache
Un cache mémoire est un mécanisme pour stocker dans une mémoire accessible à la vitesse de l'équipement le plus rapide des données disponibles à travers l'équipement le plus lent.
Ex : mémoire cache dans un microprocesseur.
Ex : serveur mandataire (proxy) ou miroir local permettant de copier des pages Internet sur un disque ou serveur local.
Utilisation d'un cache => des mécanismes de synchronisation entre cache et données de référence. Si taille cache limitée => optimiser en utilisant les données les plus utilisées
page60
Protection des auteurs
et des entreprises
page61
page62
page63
page64
HTML est un langage de description de pages Web
La version XHTML 1.0 est basée sur XML.
Avant c'était HTML 4 (on n'était pas obligé de fermer les balises et la casse n'était pas importante).
Chaque élément doit être fermé, avec balise fermante (exemple : <h1></h1>, <p></p>)
ou auto-fermé (exemple : <img/>, <br/>)
Pour étudier la structure de pages existante on peut utiliser la fonction « Affichage » « Code source de la page » de Firefox
HTML
page65
XHTML :
Exemple de page minimale
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Titre de la page</title>
</head>
<body>
<p>Un paragraphe de texte.</p>
<p><img src="/media/image/logo/aful.png"
alt="AFUL"/></p>
</body>
</html>
page66
page67
XML (1) :
Forme -> syntaxe
Les éléments :
(avec balise fermante) <abc></abc>
(auto-fermé) <abc/>
Les attributs :<abc attr1="value1" attr2="value2"></abc>
Les contenus :<abc attr1="value1" attr2="value2">Du contenu, du contenu, du contenu, etc.</abc>
Les attributs :
Les contenus :
page68
Les processing instructions
Les instructions de traitement
ou « processing instructions »
<?xml xxx ?>
<?php xxx ?>
etc.
page69
XML (2) :
Schéma -> validité
L'agencement des éléments et des attributs peut suivre un schéma. C'est préférable mais pas obligatoire. C'est encore mieux si ce schéma est publiquement documenté.
Il existe plusieurs grammaires pour définir un schéma :
RELAX NG (OASIS)
XML Schema (W3C)
Un document peut être bien formé et non valide suivant un schéma.
Un document peut être bien formé et non valide suivant un schéma.
page70
XML (3) :
Exemple schéma ODF
<office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML"
office:version="1.0">
XXX
</office:document-content>
page71
page72
Programmation :
JavaScript (1)
Pour tester la programmation il suffit de disposer d'un navigateur web qui embarque un interpréteur JavaScript. Ce qui est le cas du navigateur Firefox.
Firefox est très adapté pour la programmation JavaScript, notamment avec sa console d'erreurs pour aider les étudiants à corriger les défauts de leurs programmes.
page73
Programmation :
JavaScript (2)
Afficher des notifications dans des boites de dialogues :
alert("Texte");
Faire des boucles :
for (var i = 0; i < 10; i++) {
}
Faire des traitements conditionnels :
if (condition) {
}
Envoyer des informations par réseau au format JSON au serveur web de l'AFUL
page74