Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I...
Transcript of Technologies du Web - Laboratoire d'informatique de Paris 6 · counters, I’ll use Redis. If I...
Technologies du Web
Ludovic DENOYER - [email protected]
UPMC
Fevrier 2014
Ludovic DENOYER - [email protected] Technologies du Web
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
Retour sur les BDs
Quelle BD choisir ?
MySQL
Postgre (SQL)
Reddis
Mongodb
Cassandra
Vodlemort
Ludovic DENOYER - [email protected] Technologies du Web
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
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
Ludovic DENOYER - [email protected] Technologies du Web
Ludovic DENOYER - [email protected] Technologies du Web
Service Search
Service Search
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
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
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
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
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
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
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
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
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
AOS, Cloud Computing
AOS, Cloud Computing
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
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
AOS
AOS, Cloud Computing
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
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
Cloud Computing
AOS, Cloud Computing
Cloud Computing et AOS
AOS, Cloud Computing
? ?aaS
AOS, Cloud Computing
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
Saas : Exemples
AOS, Cloud Computing
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
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
IaaS
Virtualisation
La virtualisation est la technologie majeure qui permet le IaaS
AOS, Cloud Computing
IaaS
Virtualisation
Ressources partagees customisaables...
...heterogenes...
...avec allocation dynamique
AOS, Cloud Computing
Saas, Paas, IaaS
AOS, Cloud Computing
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
Inconvenients
Securite
Privacy
Dependance au vendeur
Dependance au reseaux
AOS, Cloud Computing
Different types de nuage
AOS, Cloud Computing
Quelles applications ?
AOS, Cloud Computing
XaaS
DaaS : Desktop
HaaS : HardWare
GaaS : Games
....
AOS, Cloud Computing
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
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
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
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
Le Data Mining
AOS, Cloud Computing
Le Data Mining
AOS, Cloud Computing
Le Data Mining
AOS, Cloud Computing
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
Discussion
AOS, Cloud Computing