47
Technologies du Web Ludovic DENOYER - [email protected] UPMC evrier 2014 Ludovic DENOYER - [email protected] Technologies du Web

Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Technologies du Web

Ludovic DENOYER - [email protected]

UPMC

Fevrier 2014

Ludovic DENOYER - [email protected] Technologies du Web

Page 2: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Plan

Retour sur les BDs

Le service Search

Un peu plus sur les services

Un peu plus sur le futur (des services)

Ludovic DENOYER - [email protected] Technologies du Web

Page 3: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Retour sur les BDs

Quelle BD choisir ?

MySQL

Postgre (SQL)

Reddis

Mongodb

Cassandra

Vodlemort

Ludovic DENOYER - [email protected] Technologies du Web

Page 4: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Retour sur les BDs

Source :http://bjclark.me/2009/08/nosql-if-only-it-was-that-easy/

I’ll use whatever is best for the job. If I need reporting, I wontbe using any NoSQL. If I need caching, Ill probably use TokyoTyrant. If I need ACIDity, I won’t use NoSQL. If I need a ton ofcounters, I’ll use Redis. If I need transactions, I’ll use Postgres. If Ihave a ton of a single type of documents, I’ll probably use Mongo.If I need to write 1 billion objects a day, I’d probably useVoldemort. If I need full text search, I’d probably use Solr. If I needfull text search of volatile data, I’d probably use Sphinx.

Pourquoi ?

The real thing to point out is that if you are being held back frommaking something super awesome because you cant choose adatabase, you are doing it wrong.

Ludovic DENOYER - [email protected] Technologies du Web

Page 5: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Pourquoi MySQL et MongoDB dans le projet ?

MySQL vs MongoDB

Parce que vous connaissiez MySQL...

Parce que MongoDB n’est pas difficile a installer...

Parce que c’est le moyen de vous montrer des solutionsalternatives et peu academiques

et aussi...

Ludovic DENOYER - [email protected] Technologies du Web

Page 6: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Ludovic DENOYER - [email protected] Technologies du Web

Page 7: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Ludovic DENOYER - [email protected] Technologies du Web

Page 8: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Service Search

Page 9: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

But

Le service SEARCH vise a permettre l’acces aux messages postessur le site

Plusieurs modes de recherche

Utilisateur non authentifie

Utilisateur authentifie

Avec requetes (mots clefs)

Sans requetes

En incluant uniquement les amis

ou pas.

Service Search

Page 10: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Si l’utilisateur n’est pas authentifie

Le service renvoie les messages de tout le monde par ordrechronologique inverse (du plus recent au plus vieux)

Si l’utilisateur est authentifie

Soit :

Le service renvoie les messages de tout le monde par ordrechronologique inverse (du plus recent au plus vieux)

Le service ne renvoie les messages que des amis

Service Search

Page 11: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Si une requete est specifiee

L’ordre de retour des messages n’est plus l’ordre chronologique,mais l’ordre de pertinence : un score calcule entre la requete etchaque message (voir Cours/TD/TP sur Map Reduce et lesmoteurs de recherche - semaine 9)

Service Search

Page 12: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Entrees :

key : clef de session (vide si pas authentifie)

query : la requete (vide si pas de requete)

friends : 0 ou 1 si on veut restreindre la recherche aux amis

Service Search

Page 13: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Sorties :

results=[ LISTE MESSAGES DANS LE BON ORDRE ],

query= REQUETTE EVENTUELLE,

contats_only= true si restreint aux amis,

author=AUTEUR DE LA RECHERCHE (login),

date=DATE DE LA RECHERCHE

+ Erreurs eventuelles.... Avec message=

{id, auteur, texte, date, score}

et Auteur=

{id, login, contact}

ou contact = true si ami de l’utilisateur connecte

Service Search

Page 14: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Implementation

Vous pouvez d’ors et deja implementer :

La recherche sans query

La recherche restreint aux amis

La recherche avec requete passera pas l’implementation d’unmoteur de recherche en utilsiant le paradigme Map/Reducepermettant de faire des calculs sur de tres grandes masses dedonnees.

Service Search

Page 15: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Service Search

Autre pistes

Ajouter un parametre permettant de dire le nombre deresultats max souhaites

Ajouter un parametre permettant de dire l’index du premierresultat retourne

Ajouter un parametre permettant d’avoir une sortie dans unformat XML ou lieu de JSON

Service Search

Page 16: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Et les logs

Nous serons eventuellement amenes a effectuer des calculs sur leslogs de connexions des utilisateurs :

Les logs sont stockes dans une collection MongoDB

Un log consiste a stocker l’appel de tous les services +l’adresse IP

Adresse IP en JAVA :1 adrIp=req.getRemoteAddr ();

2 nomClient=req.getRemoteHost ();

Service Search

Page 17: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Et aussi

Le stockage des logs est une mine d’or pour la monetisationde votre site :

� Si c’est gratuit, c’est que vous etes le produit �

mais attention a la CNIL

Vous verrez cela en semaine 10 et 11 : Moteurs de recherche,analyse de donnees et monetisation (un peu)

Service Search

Page 18: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

AOS, Cloud Computing

AOS, Cloud Computing

Page 19: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Architecture Orientee Service

AOS

L’architecture orientee services (calque de l’anglais ServiceOriented Architecture, SOA) est une forme d’architecture demediation qui est un modele d’interaction applicative qui met enoeuvre des services (composants logiciels) [Wikipedia]

Pourquoi ?

Historiquement : plutot des histoires d’interoperabilite (internenotament)

Aujourd’hui : concerne le traitement distribue de donnees

AOS, Cloud Computing

Page 20: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Architecture Orientee Service

Vie reelle

Un fournisseur offre un service a un client le consommant dans unerelation de confiance etablie entre les deux parties, sans que leclient ne s’interesse au comment de l’affaire.

AOS

Transposition ”informatique” de ces principes. Le service estexecute par un fournisseur (ou producteur) pour un client (ouconsommateur) par l’intermediaire d’un bus

AOS, Cloud Computing

Page 21: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

AOS

AOS, Cloud Computing

Page 22: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Architecture Orientee Service

L’encapsulation des services.

Le faible couplage des services avec la maintenance d’unerelation reduisant les dependances.

Le contrat de service adherent a un accord de communication,collectivement defini avec un ou plusieurs documents dedescription.

L’abstraction des services dissimulant la logique du service al’exterieur.

La reutilisation des services partageant la logique entreplusieurs services avec l’intention de promouvoir lareutilisation.

La composition des services.

L’autonomie des services.

L’optimisation des services.

La decouverte des services depuis leur description exterieure.

AOS, Cloud Computing

Page 23: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Cloud Computing

Le monde de l’informatique a la demande est entrain d’arriver :

Le Cloud Computing considere trois types de services :

SaaS : Software as a Service

PaaS : Platform as a Service

IaaS : Infrastructure as a Service

Des acteurs biens connus :

Akamai, Amazon, Google, ...

⇒ vers le Cloud Computing (Informatique dans les nuages).

AOS, Cloud Computing

Page 24: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Cloud Computing

AOS, Cloud Computing

Page 25: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Cloud Computing et AOS

AOS, Cloud Computing

Page 26: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

? ?aaS

AOS, Cloud Computing

Page 27: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Saas

Definition

Le logiciel en tant que service ou en anglais le Software as aService (SaaS) est un concept consistant a proposer unabonnement a un logiciel plutot que l’achat d’une licence.

Apparu au debut des annees 2000

5 milliards de dollars en 2007

2010 : revue a la baisse

AOS, Cloud Computing

Page 28: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Saas : Exemples

AOS, Cloud Computing

Page 29: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

PaaS

Definition

l’entreprise maintient uniquement ses applications ;

le fournisseur maintient la plateforme (les runtimes,l’integration SOA, les bases de donnees, le logiciel serveur, lavirtualisation) et l’infrastructure (le materiel serveur, lestockage et les reseaux).

PHP, MySQL (Fournisseur d’acces)

Sourceforge

AOS, Cloud Computing

Page 30: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

IaaS

Definition

l’entreprise maintient : les applications, les runtimes,l’integration SOA, les bases de donnees, le logiciel serveur ;

le fournisseur Cloud maintient : la virtualisation, le materielserveur, le stockage, les reseaux.

En 2011 : 31% des entreprises utilisent le Saas

5% utilisent le IaaS

AOS, Cloud Computing

Page 31: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

IaaS

Virtualisation

La virtualisation est la technologie majeure qui permet le IaaS

AOS, Cloud Computing

Page 32: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

IaaS

Virtualisation

Ressources partagees customisaables...

...heterogenes...

...avec allocation dynamique

AOS, Cloud Computing

Page 33: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Saas, Paas, IaaS

AOS, Cloud Computing

Page 34: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Raisons/Consequences

Applications large echelle

Flexibilite

Scalabilite

Customise aux besoins propres

⇒Reduction des coutsReduction de la maintenanceUtilisation ”au maximum”Disponibilite eleveeGreen Computing

AOS, Cloud Computing

Page 35: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Inconvenients

Securite

Privacy

Dependance au vendeur

Dependance au reseaux

AOS, Cloud Computing

Page 36: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Different types de nuage

AOS, Cloud Computing

Page 37: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Quelles applications ?

AOS, Cloud Computing

Page 38: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

XaaS

DaaS : Desktop

HaaS : HardWare

GaaS : Games

....

AOS, Cloud Computing

Page 39: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Conclusion

Le mot de la fin

La physionomie de l’informatique est entrain de changerradicalement :

Decentralisation/Mutualisation des ressources

Decentralisation/Mutualisation de la maintenance

Decentralisation/Mutualisation des logiciels et services

Acces aux interfaces (mobiles)

On ne sais pas de quoi le futur sera fait, mais, vous devez avoirune vision plus globale de l’informatique.

AOS, Cloud Computing

Page 40: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Technologies du Web

Cours Technos Web

Double objectif :

1 vous enseigner — donner un point d’entree — pour unensemble de technologies

2 vous ”eclairer” sur les evolutions actuelles de l’informatique

Si le point 1 n’est qu’affaire de ”debrouillardise”, le point 2 estcelui qui doit rester dans un coin de votre tete.

AOS, Cloud Computing

Page 41: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

LI 328 : retour en arriere

Des technologies clients : AJAX, HTML, CSS, JQUERY,Javascript

Programmation Mobile (IOS, Android)HTML 5 / CSS 3

Technologie de service : API REST

SOAP, WSDL, (Web Services)

Technologie de Serveur : TOMCAT

Django, Struts, NGinx, PHP

Technologies de BD : MySQL + MongoDB

ORACLE, SQL ServerHTable, HDFS, Big Table, CourchDB,..

Technologies de traitement : Map/Reduce MongoDB

Hadoop

AOS, Cloud Computing

Page 42: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

LI 328 : retour en arriere

Si les technos doivent etre maitrisees, le plus important demeure lacomprehension de leur ”imbrication”

Les differents poitns abordes recoupent des notions etudiees enprofondeur en Master :

La programmation distribuee, virtualisation, ....

Le reseau

Le developpement logiciel

Le traitement de donnees : Master IAD

AOS, Cloud Computing

Page 43: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Le Data Mining

AOS, Cloud Computing

Page 44: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Le Data Mining

AOS, Cloud Computing

Page 45: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Le Data Mining

AOS, Cloud Computing

Page 46: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Le Data Mining

Un domaine en relation avec l’IA

La science du traitement des donnees, et de la prise dedecision

Etude des problematiques

Etude des modeles

AOS, Cloud Computing

Page 47: Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I need transactions, I’ll use Postgres. If I ... Le service SEARCH vise a permettre

Discussion

AOS, Cloud Computing