Culture générale technique

publicité
MEMO
date / date
écrit par /
recorded by
objet / subject
destinataires /
recipients
dimanche 16 avril 2017
Emmanuel BOCQUET
Culture Générale Technique
Tout Duke
Culture générale technique
Ceci est une liste de points en vrac qui ont pour
but de clarifier quelques points qui pourraient
être obscurs pour les personnes qui travaillent
chez Duke sans avoir de background technique.
1 La base de la base
Un ordinateur est globalement un cerveau (un
processeur avec de la mémoire vive, ou RAM) qui a
une psychologie donnée par son système
d’exploitation (Windows, Unix, Mac OS) et qui
comprend des langues diverses.
Processeurs :
 intel pour les compatibles PC
 AMD et Cyrix également
 RS6000 et d’autres trucs bizarres pour les
autres
Systèmes d’exploitations (ou OS pour Operating
System) :
 Windows : 3.11 (disparu), 95 et 98
(courants), NT et 2000 (serveurs)
 MacOS : System 6, 7, 8… (pour les
graphistes, la PAO, Arne…)
 Unix (gros serveurs) : Linux (pour PC),
Solaris (Sun), AIX (IBM), HP-UX (HP)
Langages :
 Anciens : Logo, Basic, Pascal, Ada, Cobol
 Moins anciens : C, C++, Objective C
 Orientés web (light) : Perl, Python, PHP,
ASP
 Orientés web (lourds) : Java
On appelle parfois le type de processeurs
utilisés sur un projet la plate forme physique,
l’OS est parfois appelé la plate-forme (tout-
Page 1
court), et les langages utilisés sont appelés
plate-forme logicielle.
Chez Duke, les développeurs utilisent Linux sur
PC, les graphistes utilisent des Mac, et les
autres des PC sous windows (sauf Arne)
Les serveurs de nos clients sont selon les cas :
 des PC sous Linux avec PHP
 des Serveurs Sun sous Solaris avec java
 des serveurs intel sous Windows NT avec ASP
(mais on veut arrêter)
2 Un serveur internet
Un serveur internet reçoit des demandes de
clients et leur envoit des données en réponse.
Les serveurs prennent très rarement l’initiative
d’envoyer des infos sans qu’on leur demande rien.
Sur ces serveurs plusieurs logiciels serveurs
peuvent être actifs, et chacun comprend un
langage de requêtes spécifique (le format de ces
questions-réponses est appelé protocole)
A la base, les serveurs internet dialoguent sur
le protocole TCP/IP. Sur ce protocole de base
(qui explique comment ammener des données d’un
point à un autre), les logiciels serveurs
utilisent des protocoles plus évolués,
spécialisés selon leurs besoins.
A chaque logiciel serveur correspond un logiciel
client qui permet à vous et moi d’avoir accès aux
services associés
Logiciels serveurs
 Serveur de mail (protocole = SMTP, client =
Outlook, Netscape, Notes…)
 Serveur de noms (c’est lui qui sait que
www.yahoo.fr est à l’adresse 234.233.0.12)
 Serveur de news (protocole = NNTP, client =
Outlook Express, Netscape, … indisponible
chez Louis XIV)
 Serveur de fichiers (protocole = FTP,
client = WSFTP, Leech FTP…)
 Serveur web (protocole = http, client =
Netscape, IE, Lynx, …). Les 3 plus connus
sont Netscape Enterprise Server, Apache
(monde Unix), et IIS (monde Microsoft).
 Serveur web sécurisé (protocole = HTTPS)
 Serveurs ICQ (messagerie instantannée),
Serveur Backweb (push)…
Ainsi, lorsque je tape www.yahoo.fr dans IE, une
requête http est envoyée à un serveur de nom, qui
me donne son adresse ; suite à ça, la requête
Page 2
repart vers la bonne adresse, traverse le
firewall de Louis XIV (sur lequel on a autorisé
le protocole HTTP mais pas NNTP par exemple). La
requête est transmise de serveur en serveur
(grâce à TCP/IP) jusqu’à Yahoo.
A ce moment-là, le serveur web de yahoo regarde
sur son disque dur si la page est disponible
(page statique). Si c’est le cas, il l’envoie et
elle arrive chez le client dans son navigateur
par le même chemin qu’à l’aller.
Manque de pot, la page contient dans la partie
droite des news fraîches, donc elle n’est pas
statique. Elle est donc codée en deux parties :
du HTML normal pour la mise en page et la partie
gauche, et du PHP pour la partie droite. (En
pratique, ces deux langages sont mélangés dans le
même fichier. De fait, au lieu du PHP, ça
pourrait être de l’ASP, du Java, du Perl… le
client n’en sait jamais rien).
Donc le serveur web « interprète » le PHP (c’està-dire qu’il exécute les instructions de la page,
comme par exemple lire des données dans une base
de données, écrire des données, modifier le HTML
en fonction de variables diverses,…). Une fois le
PHP interprété, la page est devenue 100% HTML, et
elle est envoyée au client (qui est bien content
car aucun navigateur ne sait parler le PHP)
3 Une base de données
Une base de données est un logiciel capable de
stocker, retrouver, trier et manipuler de grands
volumes de données structurées. Par données
structurées, on entend que l’on peut les afficher
dans un tableau Excel par exemple. Excel est
l’outil de base de données le plus simple.
Les SGBD (ou Systèmes de Gestion de Bases de
Données) sont des logiciels qui ont pour nom :
 Access (microsoft, pas cher, simple, pas
fiable)
 SQL Server (microsoft, pas cher)
 MySQL (gratuit, assez simple, assez fiable)
(on l’aime bien)
 Sybase (pas trop cher, fiable)
 Informix (cher, lourd, très fiable)
 Oracle (super cher, super lourd, super fiable)
(nos clients l’aiment bien)
On distingue des sous-espèces, comme le SGBD-R (R
pour Relationnel) qui est le cas de tous les SGBD
récents, et les SGBB-O (O pour Objet), qui sont
assez ésotériques. On parle également de fichiers
Page 3
plats (genre enregistrer sous -> *.csv sou Excel)
pour les formats d’imports – exports usuels entre
bases de données.
Enfin, on parle de plus en plus de XML qui est
une façon de structurer les données qui permet de
les décrire au même endroit qu’on les stocke.
Cette ruse subtile permet aux partenaires
externes de les réutiliser sans se casser la tête
sur leur conversion.
4 Une page web
Une page web est un fichier de texte qui décrit
le contenu d’un affichage pour un navigateur. Des
« tags » entre crochets sont des mots-clés qui
décrivent les contenus et les affichages.
Exemple de fichier html (en colonne, à gauche) :
Début de fichier html <html>
Début du corps de la page <body>
Centrage du texte <center>
Texte
Hello
Mise en italique <i>
Texte
World
Image
<img
src=’http://eur.yimg.com/i/fr/g/new3.gif’/>
Fin de l’italique </i>
Fin du centrage
</center>
Fin du corps de la page
</body>
Fin du fichier html </html>
Le résultat est :
Hello World
Une page web peut contenir du texte et des images
(exemple précédent), mais aussi des actions
(instructions javascript, à ne pas confondre avec
java tout court), des formulaires de saisie de
données, des applets java (qui dans une surface
rectangulaire peuvent faire tout ce qui est
imaginable), du flash, du shockwave, des trucs
bizarres qui bougent en DHTML (Dynamic HTML).
Le code html d’une page doit être clair pour être
lisible (espacements, retours à la ligne,
commentaires). Il doit être rigoureux pour passer
sur tous les navigateurs (on n’utilise pas toutes
les instructions disponibles, mais seulement
celles qui sont stables sur IE et Netscape par
exemple). Enfin, il doit être compatible avec les
normes en vigueur (par exemple la norme XHTML, de
plus en plus demandée par nos clients, qui est
très rigoureuse)
Page 4
5 Langages informatiques
Un langage est une somme d’instructions et de
structures de données qui sont interprétées par
un « interpréteur » ou « compilateur ». Certains
langages orientés web ont un compilateur intégré
à un serveur web (par exemple PHP). Cela signifie
que le serveur web est capable de parler le PHP,
et donc qu’on peut mélanger HTML et PHP dans une
même page.
Vieux langages à oublier :
 Fortran, Ada, Pascal, Basic, Cobol
Langages « récents » non web :
Ces langages permettent de fabriquer des
programmes comme Word, Internet Explorer ou Quake
III.
 C, C++, Objective C, Visual
Langages serveurs orientés web :
Ces langages permettent de rendre des pages HTML
dynamiques, c’est-à-dire de modifier le contenu
d’une page HTML en fonction du contexte (heure,
réglages administrateur, contenu de base de
données, action utilisateur). De ce fait, la
présentation de contenus similaires (par exemple
les dossiers du journal l’équipe) peut se faire
par une seule page « dossier.html ». Cette page
contiendra du code « serveur » (PHP, java ou
autre) capable d’aller chercher le bon dossier
dans la base de données éditoriale de l’Equipe et
de le mettre en forme à l’intérieur de la page
dossier.html. Le code PHP est ainsi transformé en
HTML et envoyé à l’internaute. Et ce à chaque
requête faite par un internaute qui veut voir un
dossier (donc plusieurs fois par secondes).
 PHP : sur Unix (ou Linux), couplé à Apache
 Python : sur Unix
 Perl : sur toutes plate-formes
 Active Server Pages (ASP) : sur Windows NT,
couplé à IIS
 Javascript serveur : couplé à Netscape
Enterprise Server
 Java Server Pages (JSP) : sur toutes plateformes
 Servlets Java : sur toutes plate-formes,
nécessite un serveur d’application java
(plus ou moins cher et complexe) et permet
le développement de grosses applications.
Les principaux serveurs d’application sont
Weblogic (par BEA, puissant, fonctionnel et
cher), WebSphere (par IBM, utilisé sur le
Crédit Agricole), WebObjects (par Apple,
puissant et pas cher), JServe (gratuit,
utilisé sur l’Equipe).
Page 5
Langages web orientés clients :
Ces langages sont compréhensibles par un
navigateur. Ils ne sont donc pas interpétés par
le serveur web. Le code est envoyé au navigateur
de l’internaute qui exécutera tout seul les
instructions codées.
 HTML : ce n’est pas un langage de
programmation (actions et données) mais un
langage de mise en page. HTML en est à sa
version 4, mais un grand nombre
d’instructions n’est reconnu qu’à moitié
par les principaux navigateurs.
 XHTML : c’est une forme plus rigoureuse de
HTML qui a en plus la propriété de devoir
respecter une liste d’instructions
autorisées définies au départ par le
monteur appelée DTD. Duke va bientôt se
mettre sérieusement au XHTML.
 DHTML : c’est une extention du HTML qui
permet de faire des choses impossibles en
HTML classique, comme de gérer plusieurs
couches sur une page (menus qui passent par
dessus du texte, gadget qui se balade dans
toute la page,…) et bien d’autres choses.
Le DHTML fonctionne de manière souvent un
peu aléatoire sur certains navigateurs. On
essaie d’éviter le DHTML en général.
 Javascript : c’est le langage de
programmation associé à HTML. Il permet
d’ouvrir de nouvelles fenêtres, de faire
des roll-overs, des contrôles de validité
de champs de formulaires. Comme pour le
HTML, certaines instructions ne
fonctionnent que sur certains navigateurs.
On fait du Javascript sur tous nos sites.
 Java : il permet de fabriquer des
« applets » (par oppositions aux servlets)
qui font des trucs merveilleux. Le problème
des applets est leur lourdeur à
télécharger, leur lourdeur pour les petits
PC, et leur instabilité un peu aléatoire
sur certaines machines. On ne fait pas
d’applets chez Duke
 Flash et Shockwave : langage de mise en
page animée capable de faire des choses
terribles dans une surface donnée.
L’intérêt de ces technologies est la
légèreté du code à envoyer au navigateur.
L’inconvénient est que 30% du parc de
navigateurs n’ont pas le plug-in flash.
Duke fait beaucoup de flash.
6 Production
Page 6







La chaîne de production normale pour une
page web est une successions d’étapes
séparées par des validations client :
Spécifications générales : qu’est ce que ça
doit faire (Directeur conseil)
Spécifications techniques : sur quelle base
technique on part, et quelles en sont les
contraintes fonctionnelles s’il y en a
(Arne ou Emmanuel)
Spécifications détaillées : scénarisation
(contenu fonctionnel de la page) (Directeur
conseil et chef de projet)
Proposition graphique et rédactionnelle sur
la base de la charte (Graphistes et
rédacteurs)
Montage de la page en HTML statique
(Monteurs)
Intégration de développements dans le HTML
(PHP, java…) (Développeurs)
Attention de ne pas confondre les Monteurs (comme
Constant, Yann, Quang Haï, Jonathan, Sophie qui
font du HTML, DHTML et javascript) avec les
Développeurs (comme Alex et Stéphane). La
frontière est étroite et perméable, mais les
activités sont différentes en théorie.
Page 7
Téléchargement