Technologies du Web Ludovic DENOYER - ludovic.denoyer@lip6.fr UPMC Février 2014 Ludovic DENOYER - ludovic.denoyer@lip6.fr 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 - ludovic.denoyer@lip6.fr Technologies du Web
Retour sur les BDs Quelle BD choisir? MySQL Postgre (SQL) Reddis Mongodb Cassandra Vodlemort Ludovic DENOYER - ludovic.denoyer@lip6.fr 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 wont be using any NoSQL. If I need caching, Ill probably use Tokyo Tyrant. If I need ACIDity, I won t use NoSQL. If I need a ton of counters, I ll use Redis. If I need transactions, I ll use Postgres. If I have 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 use Voldemort. If I need full text search, I d probably use Solr. If I need full 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 from making something super awesome because you cant choose a database, you are doing it wrong. Ludovic DENOYER - ludovic.denoyer@lip6.fr 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 à installer... Parce que c est le moyen de vous montrer des solutions alternatives et peu académiques et aussi... Ludovic DENOYER - ludovic.denoyer@lip6.fr Technologies du Web
Ludovic DENOYER - ludovic.denoyer@lip6.fr Technologies du Web
Ludovic DENOYER - ludovic.denoyer@lip6.fr Technologies du Web
Service Search Service Search
Service Search But Le service SEARCH vise à permettre l accès aux messages postés sur le site Plusieurs modes de recherche Utilisateur non authentifié Utilisateur authentifié Avec requêtes (mots clefs) Sans requêtes En incluant uniquement les amis ou pas. Service Search
Service Search Si l utilisateur n est pas authentifié Le service renvoie les messages de tout le monde par ordre chronologique inverse (du plus récent au plus vieux) Si l utilisateur est authentifié Soit : Le service renvoie les messages de tout le monde par ordre chronologique inverse (du plus récent au plus vieux) Le service ne renvoie les messages que des amis Service Search
Service Search Si une requête est spécifiée L ordre de retour des messages n est plus l ordre chronologique, mais l ordre de pertinence : un score calculé entre la requête et chaque message (voir Cours/TD/TP sur Map Reduce et les moteurs de recherche - semaine 9) Service Search
Service Search Entrées : key : clef de session (vide si pas authentifié) query : la requête (vide si pas de requête) 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 éventuelles... Avec message= {id, auteur, texte, date, score} et Auteur= {id, login, contact} ou contact = true si ami de l utilisateur connecté Service Search
Service Search Implémentation Vous pouvez d ors et déjà implémenter : La recherche sans query La recherche restreint aux amis La recherche avec requête passera pas l implémentation d un moteur de recherche en utilsiant le paradigme Map/Reduce permettant de faire des calculs sur de très grandes masses de données. Service Search
Service Search Autre pistes Ajouter un paramètre permettant de dire le nombre de résultats max souhaités Ajouter un paramètre permettant de dire l index du premier résultat retourné Ajouter un paramètre permettant d avoir une sortie dans un format XML ou lieu de JSON Service Search
Et les logs Nous serons éventuellement amenés à effectuer des calculs sur les logs de connexions des utilisateurs : Les logs sont stockés dans une collection MongoDB Un log consiste à 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 monétisation de votre site : Si c est gratuit, c est que vous êtes le produit mais attention à la CNIL Vous verrez cela en semaine 10 et 11 : Moteurs de recherche, analyse de données et monétisation (un peu) Service Search
Architecture Orientée Service AOS L architecture orientée services (calque de l anglais Service Oriented Architecture, SOA) est une forme d architecture de médiation qui est un modèle d interaction applicative qui met en oeuvre des services (composants logiciels) [Wikipedia] Pourquoi? Historiquement : plutôt des histoires d interopérabilité (interne notament) Aujourd hui : concerne le traitement distribué de données
Architecture Orientée Service Vie réelle Un fournisseur offre un service à un client le consommant dans une relation de confiance établie entre les deux parties, sans que le client ne s intéresse au comment de l affaire. AOS Transposition informatique de ces principes. Le service est éxécuté par un fournisseur (ou producteur) pour un client (ou consommateur) par l intermédiaire d un bus
AOS
Architecture Orientée Service L encapsulation des services. Le faible couplage des services avec la maintenance d une relation réduisant les dépendances. Le contrat de service adhérent à un accord de communication, collectivement défini avec un ou plusieurs documents de description. L abstraction des services dissimulant la logique du service à l extérieur. La réutilisation des services partageant la logique entre plusieurs services avec l intention de promouvoir la réutilisation. La composition des services. L autonomie des services. L optimisation des services. La découverte des services depuis leur description extérieure.
Cloud Computing Le monde de l informatique à la demande est entrain d arriver : Le Cloud Computing considère 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).
Cloud Computing
Cloud Computing et AOS
??aas
Saas Définition Le logiciel en tant que service ou en anglais le Software as a Service (SaaS) est un concept consistant à proposer un abonnement à un logiciel plutôt que l achat d une licence. Apparu au début des années 2000 5 milliards de dollars en 2007 2010 : revue à la baisse
Saas : Exemples
PaaS Définition l entreprise maintient uniquement ses applications ; le fournisseur maintient la plateforme (les runtimes, l intégration SOA, les bases de données, le logiciel serveur, la virtualisation) et l infrastructure (le matériel serveur, le stockage et les réseaux). PHP, MySQL (Fournisseur d accès) Sourceforge
IaaS Définition l entreprise maintient : les applications, les runtimes, l intégration SOA, les bases de données, le logiciel serveur ; le fournisseur Cloud maintient : la virtualisation, le matériel serveur, le stockage, les réseaux. En 2011 : 31% des entreprises utilisent le Saas 5% utilisent le IaaS
IaaS Virtualisation La virtualisation est la technologie majeure qui permet le IaaS
IaaS Virtualisation Ressources partagées customisaables......hétérogènes......avec allocation dynamique
Saas, Paas, IaaS
Raisons/Conséquences Applications large échelle Flexibilité Scalabilité Customisé aux besoins propres Reduction des coûts Réduction de la maintenance Utilisation au maximum Disponibilité élevée Green Computing
Inconvénients Sécurité Privacy Dépendance au vendeur Dépendance au réseaux
Different types de nuage
Quelles applications?
XaaS DaaS : Desktop HaaS : HardWare GaaS : Games...
Conclusion Le mot de la fin La physionomie de l informatique est entrain de changer radicalement : Décentralisation/Mutualisation des ressources Décentralisation/Mutualisation de la maintenance Décentralisation/Mutualisation des logiciels et services Accès aux interfaces (mobiles) On ne sais pas de quoi le futur sera fait, mais, vous devez avoir une vision plus globale de l informatique.
Technologies du Web Cours Technos Web Double objectif : 1 vous enseigner donner un point d entrée pour un ensemble de technologies 2 vous éclairer sur les évolutions actuelles de l informatique Si le point 1 n est qu affaire de débrouillardise, le point 2 est celui qui doit rester dans un coin de votre tête.
LI 328 : retour en arrière 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 Server HTable, HDFS, Big Table, CourchDB,.. Technologies de traitement : Map/Reduce MongoDB Hadoop
LI 328 : retour en arrière Si les technos doivent être maitrisées, le plus important demeure la compréhension de leur imbrication Les différents poitns abordés recoupent des notions étudiées en profondeur en Master : La programmation distribuée, virtualisation,... Le réseau Le développement logiciel Le traitement de données : Master IAD
Le Data Mining
Le Data Mining
Le Data Mining
Le Data Mining Un domaine en relation avec l IA La science du traitement des données, et de la prise de décision Etude des problématiques Etude des modèles
Discussion