serveur web / base de donnees langages de développement

37
SERVEUR WEB BASES DE DONNÉES LANGAGES DE DÉVELOPPEMENT UNE PRÉSENTATION OTIC Outils et Technologies de l’Information et de la Communication Ludovic RÉUS (Licence ATII) 22-03-2015

Upload: ludovic-reus

Post on 17-Jul-2015

207 views

Category:

Internet


5 download

TRANSCRIPT

Page 1: Serveur web / Base de donnees Langages de développement

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

Page 2: Serveur web / Base de donnees Langages de développement

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

Page 3: Serveur web / Base de donnees Langages de développement

RAPPEL

L’architecture client / serveur:

3

Page 4: Serveur web / Base de donnees Langages de développement

SOMMAIRE 4

SERVEURS WEB 5

BASE DE DONNÉES 13

LANGAGES DE DÉVELOPPEMENT 28

RESSOURCES DOCUMENTAIRES 37

Page 5: Serveur web / Base de donnees Langages de développement

SERVEURS WEB

5

Page 6: Serveur web / Base de donnees Langages de développement

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

Page 7: Serveur web / Base de donnees Langages de développement

SERVEURS WEB

Les développeurs de serveur HTTP

7

Source: Netcraft.com

Page 8: Serveur web / Base de donnees Langages de développement

SERVEURS WEB

Apache HTTP server

8

La popularité grâce aux suites multiplateformes

Xamp: Apache MySQL et PHP

Les technologies souvent rencontrées

Page 9: Serveur web / Base de donnees Langages de développement

SERVEURS WEB

Microsoft Internet Information Server

9

Pour les serveurs sous environnements Windows

Les technologies souvent rencontrées

Page 11: Serveur web / Base de donnees Langages de développement

SERVEURS WEB

Google Web Server

11

La solution propriétaire de Google

Pour tous les services de la multinationale

Page 12: Serveur web / Base de donnees Langages de développement

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:

Page 13: Serveur web / Base de donnees Langages de développement

BASE DE DONNÉES

13

Page 14: Serveur web / Base de donnees Langages de développement

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:

Page 15: Serveur web / Base de donnees Langages de développement

BASE DE DONNÉES 15

Pas un modèle mais plusieurs

Page 16: Serveur web / Base de donnees Langages de développement

BASE DE DONNÉES 16

Popularité des moteur de base de données

257 SGBD ! Source: Db-engines.com

Page 17: Serveur web / Base de donnees Langages de développement

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

Page 18: Serveur web / Base de donnees Langages de développement

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

Page 19: Serveur web / Base de donnees Langages de développement

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

Page 20: Serveur web / Base de donnees Langages de développement

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

Page 21: Serveur web / Base de donnees Langages de développement

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

Page 22: Serveur web / Base de donnees Langages de développement

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

Page 23: Serveur web / Base de donnees Langages de développement

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

Page 24: Serveur web / Base de donnees Langages de développement

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.

Page 25: Serveur web / Base de donnees Langages de développement

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é

Page 26: Serveur web / Base de donnees Langages de développement

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

Page 27: Serveur web / Base de donnees Langages de développement

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:

Page 28: Serveur web / Base de donnees Langages de développement

LANGAGES DE DÉVELOPPEMENT

28

Page 29: Serveur web / Base de donnees Langages de développement

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

Page 30: Serveur web / Base de donnees Langages de développement

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.

Page 31: Serveur web / Base de donnees Langages de développement

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…

Page 32: Serveur web / Base de donnees Langages de développement

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.

Page 33: Serveur web / Base de donnees Langages de développement

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

Page 35: Serveur web / Base de donnees Langages de développement

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.

Page 36: Serveur web / Base de donnees Langages de développement

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.

Page 37: Serveur web / Base de donnees Langages de développement

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