Plan. Vérinews, phase 2. Marc-Antoine Tardif Pierre-Emmanuel Viau

Documents pareils
20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

DEMARRER UN PROJET BIGDATA EN QUELQUES MINUTES GRACE AU CLOUD

ArcGIS 10.1 for Server

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Programmation Web. Madalina Croitoru IUT Montpellier

Fouillez facilement dans votre système Big Data. Olivier TAVARD

OFFRE MDB Service & Architecture Technique. MyDataBall Saas (Software as a Service) MyDataBall On Premise

L art d ordonnancer. avec JobScheduler. François BAYART

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

Nouveautés Ignition v7.7

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É PHP - MAGENT O. 30 ans - 6 ans d'expérience

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

Cartographie des solutions BigData

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Introduction à ElasticSearch

<Insert Picture Here>ApExposé. Cédric MYLLE 05 Février Exposé Système et Réseaux : ApEx, Application Express d Oracle

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Panorama des solutions analytiques existantes

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Mise en œuvre des serveurs d application

Présentation du module Base de données spatio-temporelles

les techniques d'extraction, les formulaires et intégration dans un site WEB

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Catalogue des formations Edition 2015

Nouveautés ArcGIS 10.1 for Server

Messagerie & Groupeware. augmentez l expertise de votre capital humain

L écosystème Hadoop Nicolas Thiébaud Tuesday, July 2, 13

Bases de données cours 1

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Stéphane DERACO, DSI CNRS l Argos Devops : de l hyperviseur aux conteneurs l 11/12/2014 DOCKER

10. Base de données et Web. OlivierCuré

SOLUTION POUR CENTRE D'APPEL

Option GSI Génie et Systèmes Informatiques

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Devenez un véritable développeur web en 3 mois!

BMC Middleware Management

Le Cloud Open-Mind! Emilien Macchi

4. SERVICES WEB REST 46

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Compte-rendu re union Campus AAR 3 mars 2015

Intégration de systèmes

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Outils de développement collaboratif

Auto-évaluation Aperçu de l architecture Java EE

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Hébergement MMI SEMESTRE 4

Hébergement de site web Damien Nouvel

JOnAS Day 5.1. Clustering

Service de covoiturage nouvelle-génération

Olivier Deheurles Ingénieur conception et développement.net

Java et les bases de données

Jean-Philippe Paquette

Big Data : utilisation d un cluster Hadoop HDFS Map/Reduce HBase

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Documentation technique

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

Compte Rendu d intégration d application

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Ricco Rakotomalala R.R. Université Lyon 2

Pierre-Louis Théron Nikolay Rodionov Axel Delmas

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

IBM WebSphere Application Server 5.0 : Administration avancée

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

Présentation Alfresco

PostgreSQL. Formations. SQL avancé Calendrier... 18

Catalogue Formation «Vanilla»

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Point sur les solutions de développement d apps pour les périphériques mobiles

Mesures DNS à l ère du Big Data : outils et défis. JCSA, 9 juillet 2015 Vincent Levigneron, Afnic

Diffuser un contenu sur Internet : notions de base... 13

Chef de projet / Architecte JEE 15 ans d expérience

Architecture Orientée Service, JSON et API REST

Sécuristation du Cloud

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

PostgreSQL, le cœur d un système critique

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

Cahier des charges (CDC)

PROJET : ETNIC ESB JANUS. Guide technique : WS-Notification - Clustering. BULL Services et Solutions

FILIÈRE TRAVAIL COLLABORATIF

CHAPITRE 1 ARCHITECTURE

Les technologies du Big Data

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Catalogue des Formations Techniques

Notre Catalogue des Formations IT / 2015

LA PROTECTION DES DONNÉES

Joomla! Création et administration d'un site web - Version numérique

OpenStack Le cloud libre. Thierry Carrez Release Manager, OpenStack

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

pythonocc: une plateforme de développement agile d applications CAO.

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Transcription:

Vérinews, phase 2 Marc-Antoine Tardif Pierre-Emmanuel Viau Plan Pierre-Emmanuel VériNews L équipe Gestion du projet Phases du projet, besoins et priorités Cas d utilisations priorisés Marc-Antoine Architecture & Technologies Démonstration

VériNews Démarré par Alain April et Sylvie Ratté avec un partenaire industriel Le partenaire est une entreprise qui distribue des communiqués de presse à des journalistes, blogueurs, influencers, etc. VériNews est un «projet de dévelopement d outils de support aux professionnels de la communication et des relations publiques» Un document de vision a été rédigé par Alain et Sylvie Membres de l équipe et rôles (phase 2) Pierre-Emmanuel déploiement, exigences, architecture de Verinews Marc-Antoine lead développement, architecture de Verinews Gauthier développement, catégorisation et analyse de sentiment Edem développement Web, outil d annotation des données d entrainement

Gestion de projet Plusieurs phases au projet, chacune ayant ses priorités Livrables Études des technologies, plan de projet, BRS, SRS, SAD, notes de développement, compte-rendus, modèles de données, prototypes interfaces Google drives Git (Bitbucket) Rencontres d équipe à chaque fin de semaine Rencontre avec le partenaire à chaque mois Survol de la phase 1

Besoins Principaux besoins identifiés lors de la phase 1 faciliter la rédaction de communiqués «efficaces» avec certains outils; faire le ciblage d une communication automatiquement; générer des messages aux personnes ciblées; distribuer les communications; évaluer l impact sur plusieurs canaux (réseaux sociaux, sites de nouvelles, blogs, etc.). Survol de la phase 2

Besoins Priorités pour la phase 2 traitement d une des sources de données; catégorisation et analyse de sentiments(polarité); 3 catégories pour le moment (sur 13) «food» «arts & entertainement» «beauty & fashion» identifier des produits, termes, etc. Cas d utilisation

Exigences fonctionnelles REQ-101 Récolte des données de Twitter REQ-102 Pré-traitement des données de Twitter REQ-103 Stockage des données de Twitter REQ-104 Analyse des sentiments sur les tweets REQ-105 Catégorisation d un tweet REQ-106 Visualisation de l analyse de sentiment des thèmes Lifestyle REQ-107 Création du corpus Partie 2.1 Architecture Marc-Antoine Tardif

Architecture Retour sur ce qu il y avait à faire: obtenir et stocker les tweets publiés en temps réel; faire une catégorisation des tweets, selon des thèmes Lifestyle; faire une analyse de sentiment sur ces mêmes tweets (polarité); offrir une interface permettant de consulter le résultat des analyses; offrir une interface permettant d annoter des tweets d entrainement. Donc, les 3 principales fonctionnalités sont: traiter des données de Twitter; visualiser des analyses de sentiments et de la catégorisation; annoter des tweets. Architecture Lignes directrices lors de la conception: Priorité sur le traitement et le stockage des données Ce qui semblait demander le plus d effort Utiliser de systèmes qui peuvent être mis facilement à l échelle Garder la solution le plus simple possible (pas de «over-engineering») Utiliser des systèmes/outils/frameworks interchangeables qui permettent de prototyper rapidement (les requis changent trop) Contraintes: l équipe se limite à des langages connus par tous les membres Java, Python, SQL utilisation de bases de données SQL pour faciliter le développement le volume de données n est pas assez important pour se lancer dans des solutions exotiques

Architecture Principales composantes qui ont à interagir ensemble: Twitter Streaming API REST connexion HTTP persistente message queue système de «stream processing» des bases de données des serveurs Web Architecture haut niveau Non fonctionnelle Rétention 30 jours cron job d un script python qui delete les lignes >30 jours «Temps réel» pour le partenaire = 5 minutes en pratique <1 seconde jusqu à la DB Mise à l échelle aucun problème avec Kafka et Storm Les DB SQL font la job pour le moment, pour le type de requêtes utilisées (à remplacer éventuellement) cache dans le dashboard, réduit de beaucoup les hits sur la DB Robustesse Rien ne plante pas si le volume en entrée augment subitement risque avec Storm, pas avec Kafka

Architecture Composantes Frameworks/Lang. Systèmes Message Queue Kafka, Java tweet-endpoint Stream processing Storm, Java tweet-processor Base de données 1 Postgres tweet-processor, dashboard Base de données 2 MySQL annotateur Serveur Web 1 Tomcat, Grails, Groovy annotateur Serveur Web 2 Python (tornado) dashboard Scripting Bash, Python, Cron * OS CentOS 6.5 * 4 systèmes distincts twitter-endpoint (Kafka, Java), twitter-endpoint-simulator REQ-101 Récolte des données de Twitter tweet-processor (Storm, Java, postgres) REQ-102 Pré-traitement des données de Twitter REQ-103 Stockage des données de Twitter REQ-104 Analyse des sentiments sur les tweets REQ-105 Catégorisation d un tweet dashboard (Python, JavaScript) REQ-106 Visualisation de l analyse de sentiment des thèmes Lifestyle annotateur (Java, MySQL) REQ-107 Création du corpus

Partie 2.2 Technologies utilisées Marc-Antoine Tardif Twitter Streaming API (1/2) Twitter offre un API de streaming Envoie jusqu à 1% du traffic, sans garantie Utilise une connexion HTTP persistante comme télécharger un fichier à l infini chaque tweet est séparé par des sauts de lignes le tweet est dans un gros JSON qui contient un maximum d information menaçant votre vie privée Twitter offre d autres API pour obtenir des données historiques mais ceux-ci ne sont pas d intérêt pour cette phase considérant l aspect temps réel

Twitter Streaming API (2/2) Pour obtenir un stream avec plus de données seulement accessible via les partenaires de Twitter; le contact a été initié avec un d entre eux; discussion toujours en cours. Kafka Système de messaging publish-subscribe Facile à mettre à l échelle, distribué «by design» Utilise zookeeper (système distribué de synchronisation) Suffit d implémenter des «producer» et des «consumer» Très très facile d utilisation http://kafka.apache.org/

Storm (1/2) Système de traitement en temps réel distributé tolérant aux pannes Permet de facilement traiter des streams de données en temps réel Projet créé par une entreprise qui été acquise par Twitter en 2011. Le code source est disponible sur GitHub http://storm.incubator.apache.org/ Storm (2/2) Spout émet un ou des streams Bolt consomme un ou des streams émet un ou des streams Lors de l éxécution, les spouts et bolts sont des processus et/ou threads distribués sur le cluster Ils peuvent éxécuter n importe quel code (avec le cadre d application en Java, on implémente des interfaces)

PostgreSQL/MySQL Malentendu lors du développement Sans compter les problèmes d installations, de version, de repositories, #/?$@?/!!$ Principalement causé par le fait que VeriNews a 2 composantes majeures qui ont été développées indépendament: traitement des tweets annotation des tweets Server Web 1: Groovy/Grails Le choix a été laissé au développeur de l annotateur Choix discutable Peu d impact sur le reste du projet, ne sert qu à générer les données d entrainement utilisées par le tweet-processor Serveur Web 2: Python Dashboard qui présente ce qui est stocké dans la DB Temps réel avec websocket tornado + single page app javascript Codé en cowboy en 2-3 heures, il y a 4 jours et hier soir Ne doit jamais voir la production, git filter-branch --tree-filter dashboard' HEAD après la démo 'rm -rf

Partie 2.3 Implémentation Marc-Antoine Tardif Topologie Storm Spout Kafka consumer Kafka (~10-15 lignes de Java du tutoriel) Parse parse un JSON (jackson) Categorization catégorise le text du tweet selon les données d entrainement 3 catégories implémentées pour le moment «food», «arts & entertainment», «beauty & fashion» algorithme pas développé par ceux qui sont en avant Sentiment Metrics + SVM Classifier analyse de sentiment, en 2 étapes(metriques + SVM) algorithme pas développé par ceux qui sont en avant Postgres writer INSERT dans Postgres probablement pas très «scalable» facile à remplacer

Architecture Démonstration. Annotateur Endpoint Twitter Tweet processor Dashboard

Conclusion Questions?