serveur web / base de donnees langages de développement
TRANSCRIPT
SERVEUR WEB
BASES DE DONNÉES
LANGAGES DE DÉVELOPPEMENT
UNE PRÉSENTATION OTICOutils et Technologies de l’Information et de la Communication
Ludovic RÉUS (Licence ATII)
22-03-2015
PRÉAMBULE
Cette présentation n’a pas la prétention
d’explorer l’intégralité des sujets abordés.
Merci aux auteurs et contributeurs des sites cités dans ce diaporama.
J’ai appris énormément en consultant vos travaux.
J’espère en être le digne relais
Ludovic
Son objectif est de présenter la variétés des
technologies informatiques accessibles aux
professionnels.
2
RAPPEL
L’architecture client / serveur:
3
SOMMAIRE 4
SERVEURS WEB 5
BASE DE DONNÉES 13
LANGAGES DE DÉVELOPPEMENT 28
RESSOURCES DOCUMENTAIRES 37
SERVEURS WEB
5
SERVEURS WEB
Le serveur physique :
Un poste informatique centralisant des
ressources destinées à être diffusées sur un
réseau.
Le serveur HTTP ou Daemon HTTP:
Un logiciel prenant en charge les requêtes
client-serveur du protocole HTTP
6
SERVEURS WEB
Les développeurs de serveur HTTP
7
Source: Netcraft.com
SERVEURS WEB
Apache HTTP server
8
La popularité grâce aux suites multiplateformes
Xamp: Apache MySQL et PHP
Les technologies souvent rencontrées
SERVEURS WEB
Microsoft Internet Information Server
9
Pour les serveurs sous environnements Windows
Les technologies souvent rencontrées
SERVEURS WEB
NGINX HTTP Server
10
Le chouchou des sites poids lourds
Un serveur web mais aussi un proxy inverse
Atout principal: Une efficacité impressionnante dans
la distribution de contenu statique
SERVEURS WEB
Google Web Server
11
La solution propriétaire de Google
Pour tous les services de la multinationale
SERVEURS WEB
Après une très forte domination Apache est
au coude à coude avec IIS mais la montée en
puissance de NGINX pourrait bientôt changer
la donne.
L’évolution de l’offre web en termes de
diffusion de contenu et d’applicatifs aura très
certainement un impact sur ce marché
12
Pour résumer:
BASE DE DONNÉES
13
BASE DE DONNÉES
Un conteneur permettant de stocker et récupérer
l’intégralité de données brutes ou d’informations.
Wikipédia
Les données sont manipulées par un logiciel
moteur: le système de gestion de base de
données (SGBD)
14
Définition:
BASE DE DONNÉES 15
Pas un modèle mais plusieurs
BASE DE DONNÉES 16
Popularité des moteur de base de données
257 SGBD ! Source: Db-engines.com
BASE DE DONNÉES
Sept SGBD basé sur le modèle relationnel
Un modèle orienté document (MongoDB)
Un modèle clé / valeur (Redis)
Un modèle enregistrements extensibles (Cassandra)
Ces trois derniers modèles appartiennent à la
mouvance NOSQL (Not Only SQL)
17
Analyse du top 10
BASE DE DONNÉES
• La solution éprouvée la plus utilisée dans le monde.
• Unité logique: la table (ou relation / matrice)
• Le traitement des données se fait par le Structured Query Language (SQL)
• Un besoin important de ressource sur les bases volumineuses.
Les méthodes de modélisations comme MERISE et
UML sont particulièrement adaptées aux base de
données relationnelles.
18
La base de données relationnelle
Exemples: Oracle, MySQL, SQL Server, PostgreSQL
BASE DE DONNÉES
• La simplicité poussée à l’extrême.
• Le principe: stocker des valeurs dans des clés
• Ainsi on ne pourra retrouver une valeur que si on
connaît la clé.
Destinés aux systèmes simples qui disposent d’un
volume important d’informations.
19
La base de données clé - valeur
Exemples: Redis, Amazon DynamoDB, Memcached
BASE DE DONNÉES
• Les enregistrements n’ont pas de structure uniforme.
• Le type d’un champ peut changer entre les enregistrements et peut avoir plusieurs valeurs.
• Les enregistrements peuvent avoir une structure emboitée.
Ces bases de données souvent utilisées avec la
technologie JSON.
20
La base de données orientée document
Exemples: MongoDB, CouchDB, Amazon DynamoDB
BASE DE DONNÉES
• Les enregistrements n’ont pas de structure
uniforme.
• Les enregistrements peuvent avoir un nombre
d’attributs très grand (potentiellement des millions)
• Les attributs n’ont pas forcément le même nom
On peut les assimiler à un modèle clé – valeur dont la
valeur serait un tableau.
21
La bdd aux enregistrements extensibles
Exemples: Cassandra, HBase, Accumulo
BASE DE DONNÉES
• Utilise l’intégralité de la technologie XML
• Permet l’utilisation des langages Xpath, Xquery,
XSLT
Ces SGBD ne sont pas forcés de stocker leurs
informations au format XML.
22
La base de données orientée XML
Exemples: MarkLogic, Virtuoso, Sedna
BASE DE DONNÉES
• Permet à un attribut d’enregistrement de contenir
plusieurs valeurs
• On peut ainsi limiter les problèmes de jointures
23
La base de données multi-valeurs
Exemples: Adabas, Rocket UniData, Rocket D3
Id Nom prenom
1 Didier Dédé
id permis
1 B
1 F
Id Nom prenom permis
1 Didier Dédé B;F
BASE DE DONNÉES
• Le modèle est constitué de nœuds et d’arcs
• Un enregistrement est représenté par un nœud
• Un arc est un pointeur physique entre 2
enregistrements liés
• On parcourt le graphe pour trouver les données
24
La base de données orientée graphe
Exemples: Neo4j, Titan, OrientDB
Le lien direct entre les enregistrements permet ainsi
d’éviter le coût en ressource des jointures.
BASE DE DONNÉES 25
Exemple de modèle de grapheSource: Les Bases Orientées Graphes, No SQL et Neo4j
Écrit par Peter Neubauer, traduit par Simon Baslé
BASE DE DONNÉES
• Une évolution de base de données orientée graphe
• RDF pour Ressource Description Framework
• Modélisation par un triplet Ressource Prédicat
Cible
26
La base de données RDF ou dépôt de triplets
Exemples: MarkLogic, Virtuoso, Jena
Elle dispose d’outils supplémentaires comme le
langage de requêtes SPARQL
BASE DE DONNÉES
L’explosion du nombre d’informations à traiter
(Big Data) pousse les modèles relationnels
dans leurs limites.
La mouvance NoSQL est apparue pour
apporter de nouvelles alternatives adaptées.
Leur modèles moins cohérents offre en
contrepartie une haute disponibilité et un
meilleur partitionnement de l’info.
27
Pour résumer:
LANGAGES DE DÉVELOPPEMENT
28
LANGAGES DE DÉVELOPPEMENT
Langage informatique:
Un langage formel Turing-complet ou non utilisé lors
de la conception, la mise en œuvre, ou l'exploitation
d'un système d'information.
On pourra distinguer:
• Les langages de programmation
• Les langages de définition de données
• Les langages de requêtes
• Les langages de balisages
29
Définition:
Source: Wikipédia
LANGAGES DE DÉVELOPPEMENT
Langages compilés:
Ils sont traduits en langage machine par un
compilateur avant de pouvoir être exécuté
indépendamment.
30
Deux grandes catégories:
Langages interprétés:
Ils sont systématiquement exécutés par un
interpréteur qui simule une machine qui connaitrait le
langage.
LANGAGES DE DÉVELOPPEMENT
Le langage d’origine est compilé en Bytecode qui est
lui-même compilable à la volée (JIT – Just In Time
compiler).
Son but: Réduire les dépendances matérielles.
31
La solution intermédiaire: le Bytecode
Quelques exemples:
PHP Java Perl Python SQL .NET…
LANGAGES DE DÉVELOPPEMENT
Définition:
Le paradigme est la représentation de l’exécution du
programme vue par le développeur.
On utilisera souvent plusieurs paradigmes ensemble
pour un même développement.
32
Les paradigmes de programmation
Chaque langage est conçu pour supporter un ou
plusieurs paradigmes, pour autant certains seront
plus ou moins adaptés.
LANGAGES DE DÉVELOPPEMENT 33
Quelques exemples:
• La programmation orientée objet:
Un ou plusieurs ensembles d’actions et de données interagissant ensemble
C++, Java…
• La programmation descriptive:
Un code descriptif dont l’interprétation renvoie un résultat.
HTML, XML …
• La programmation impérative:
La suite d’instructions ordonnées
C, Java
LANGAGES DE DÉVELOPPEMENT 34
Popularité des langages de programmation:
LANGAGE DE DÉVELOPPEMENT
Les langages informatiques sont nombreux et en perpétuelle évolution.
35
Pour résumer:
Les tendances actuelles vous permettront
d’orienter les plus indécis et de vous faire une
idée des besoins de la profession.
Il serait inutile de privilégier ici l’un d’entre eux tant leur utilisation dépend du besoin de votre projet et de la façon dont vous le concevrez.
36
Merci de votre attention.
Un avis, un conseil ?
N’hésitez pas à commenter cette présentation
SERVEUR WEB
BASES DE DONNÉES
LANGAGES DE DÉVELOPPEMENT
Ludovic RÉUS (Licence ATII)
22-03-2015
Merci aux auteurs et contributeurs des travaux cités dans ce diaporama.
RESSOURCES DOCUMENTAIRES 37
• Netcraft
march-2015-web-server-survey
• Venturebeat
nginx the web server tech you've never heard of that powers
netflix facebook wordpress and more
• guillaume-leduc
la distribution de contenu avec nginx et x-accell
• Wikipedia
Base_de_données
Langage informatique
• DB-engines
Classement des moteurs de base de données
• InfoQ
Les Bases Orientées Graphes, NoSQL et Neo4j
• TIOBE
TIOBE Index for March 2015