Projet WAVES : Des flux de données brutes et hétérogènes à l information qualifiée N du contrat F1411006 Q Date de début 2 juin 2014 Durée 36 mois

Documents pareils
AngularJS pour une application d'entreprise

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

SITE I NTERNET. Conception d un site Web

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Utilisation de l éditeur.

Formation Webmaster : Création de site Web Initiation + Approfondissement

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

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

BIRT (Business Intelligence and Reporting Tools)

Webmaster / Webdesigner / Wordpress

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

EXTENSION WORDPRESS. Contact Form 7. Proposé par :

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

MODE D EMPLOI WORDPRESS

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

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

Générer du code à partir d une description de haut niveau

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

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Manuel d utilisation du site web de l ONRN

4. Personnalisation du site web de la conférence

MODE D EMPLOI DU MODULE D E-COMMERCE

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

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

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

Comment accéder à d Internet Explorer

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

ASTER et ses modules

ECLIPSE ET PDT (Php development tools)

GOOGLE ANALYTICS. Ajout du code de suivi sur PowerBoutique. Ajout du code de suivi Google Analytics. Page 1 / 7 TUTO / GOOGLE ANALYTICS

Nouveautés dans Excel 2013

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Créer sa première base de données Access Partie 3/4 - Création d un formulaire

Groupe Eyrolles, 2003, ISBN : X

SYSTÈMES D INFORMATIONS

Projet en nouvelles technologies de l information et de la communication

Catalogue Formations Jalios

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

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Bonnes pratiques de développement JavaScript

Édu-groupe - Version 4.3

Echosgraphik. Ce document sert uniquement à vous donner une vision sur ma manière de travailler et d appréhender un projet

Optimiser pour les appareils mobiles

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

OFFRE DE SERVICE.

Manuel d utilisation du web mail Zimbra 7.1

CAHIER DES CHARGES DE REALISATION DE SITE INTERNET

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Rapports d activités et financiers par Internet. Manuel Utilisateur

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Conception Création Site. Web CAHIER DES CHARGES CREATION DE SITE WEB

Gestion de contenu d un site web avec TYPO3 Manuel de l administrateur

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Bureautique Initiation Excel-Powerpoint

Organiser un espace de travail collaboratif avec sa classe.

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Les Ateliers Numériques avril Alboussière

Configurer le Serveur avec une adresse IP Statique (INTERFACE :FastEthernet) : et un masque

Caruso33 : une association à votre service

Utiliser un CMS: Wordpress

L optimisation d une PowerBoutique pour le référencement

Optimiser les s marketing Les points essentiels

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Travaux pratiques avec RapidMiner

Déploiement d application Silverlight

Les outils de création de sites web

Gestion des fichiers sur micro-ordinateur

Construction d un Site Internet Dynamique avec Joomla René-Yves Hervé, Ph.D.

Campagnes d ings v.1.6

PARAMETRAGE D INTERNET EXPLORER POUR L UTILISATION DE GRIOTTE

Technologies Web avancées. ING1 SIGL Technologies Web avancées

Notre processus d embauche

Celui qui vous parle. Yann Vigara

Utilisation du monitoring en temps réel

Spétechs Mobile. Octobre 2013

1. Mise en œuvre du Cegid Web Access Server en https

Le réseau et les tables virtuelles Synapse

Modalités pratiques. Objectifs de la Formation

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

< Atelier 1 /> Démarrer une application web

Manuel d utilisation de la messagerie.

LimeSurvey. Pour obtenir un compte sur le LimeSurvey de l Université de Genève, remplissez le formulaire de demande en ligne.

Guide d utilisation. Version 1.1

Introduction MOSS 2007

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

CAHIER DES CHARGES pour création graphique de Site internet.

Business Intelligence

Programmation Web. Madalina Croitoru IUT Montpellier

WordPress : principes et fonctionnement

Soyez accessible. Manuel d utilisation du CMS

Transcription:

Projet WAVES : Des flux de données brutes et hétérogènes à l information qualifiée N du contrat F1411006 Q Date de début 2 juin 2014 Durée 36 mois Livrable D5.2 Dataset et Datastream Visualisation : Composants de visualisation

1 Statut Niveau dissémination Date d échéance Date de soumission Work Package Tâche T statut d'approbation Version Nombre de Pages Nom du fichier Publique M16 M21 25/03/2016 5 Dataset et Datastream Visualisation Draft 0.1 1 D5.2 - Composants 2 Historique Version Date Revu par 0.0 11/03/2016-0.1 25/03/2016 3 Auteurs Organisation Nom Contact Data- Publica Loïc Petit loic.petit@data- publica.com Projet WAVES 2 D5.2 Composants

4 Résumé Le but de ce livrable est de rendre compte des travaux effectués dans l étude technologique pour rendre la visualisation des flux de données la plus complète et flexible possible. Nous présenterons ici les maquettes du tableau de bord que nous cherchons à développer dans cette approche, ensuite nous aborderons les aspects technologiques en détaillant les frameworks utilisés et enfin leur application dans notre contexte. Projet WAVES 3 D5.2 Composants

Contenu 1 Statut... 2 2 Historique... 2 3 Auteurs... 2 4 Résumé... 3 5 Introduction... 5 6 Tableau de bord composable... 5 6.1 Application au cas d usage... 5 6.2 Scénario et maquettes... 5 7 Détail des technologies... 8 7.1 TypeScript... 8 7.2 AngularJS et UI- Router... 9 7.3 Webpack... 10 7.4 D3.js... 11 7.5 Angular- Material... 12 Projet WAVES 4 D5.2 Composants

5 Introduction Notre approche dans ce livrable est légèrement différente du but initial proposé lors de l annexe technique pour la raison suivante : beaucoup de primitives de visualisation de données existent actuellement et son utilisables telles quelles. Toutefois, de notre point de vue, après étude, nous remarquons que le composant n est pas le problème en soit, c est la composition de l application qui rend difficile la réutilisation des composants. Nous détaillerons donc les technologies que nous avons mises en œuvre dans jusqu ici pour composer notre application dans le but de réutiliser au maximum les composants. Cette approche a été utilisée dans la conception du prototype v0. 6 Tableau de bord composable 6.1 Application au cas d usage Il nous a été précisé après plusieurs discussions avec Ondéo Systems que le but de Waves ne devait pas être de reproduire AquaAdvanced. Le principe est de chercher de nouvelles données et de les croiser massivement grâce au support de l ajout de contexte. Des exemples pourraient être les suivants : variation du trafic routier, agenda des fêtes, météo, circulation trafic, réseaux sociaux... Le constat que cela impose sur le produit final est le suivant : on souhaite explorer les données mais : on ne connaît pas actuellement l ensemble des possibilités (actuelles ou futures). Le point de vue des concepts que nous avons présenté dans le rapport 5.1, le tableau de bord composable reste valide. Enfin, le tableau de bord permet, comme expliqué précédemment, d établir une vue d ensemble d un système. Le problème est de supporter le caractère exploratoire qui est normalement laissé aux visualisations dédiées. Nous proposons de résoudre ce problème en permettant une grand configurabilité du tableau de bord. Le principe étant de placer des widgets sur un page de façon dynamique et chaque emplacement pourra être lui même être configurable. 6.2 Scénario et maquettes Le scénario principal de l application se constitue ainsi : 1. La page d accueil permet d ajouter un widget grâce au bouton «+» [voir figure 1] a. L utilisateur clique donc sur le bouton Projet WAVES 5 D5.2 Composants

Figure 1 - Page d'accueil 2. Plusieurs choix lui sont présenté [voir figure 2] a. Les visualisations principales sont mises en avant (ici nous proposons Carte, Line Chart et Monitoring) b. L utilisateur sélectionne un type de visualisation Figure 2 - Sélection d'un type de visualisation Projet WAVES 6 D5.2 Composants

3. Un panel en plein écran permet à l utilisateur de choisir ses options de visualisation [voir figure 3]. Les options sont les suivantes : a. Donnée 1 : Sélectionner parmi les propositions la donnée à afficher (par exemple waves:numericvalue) b. Donnée 2 : Sélectionner la deuxième donnée à comparer (le timestamp par exemple) c. Temporalité : permet de sélectionner la dynamique voulue sur la donnée d. Fenêtre : permet de sélectionner la fenêtre de données voulue, ceci pourrait être changeable aisément e. Nom : Permet d associer un label à la visualisation pour la retrouver. Figure 3 - Configuration 4. Répéter l étape d avant pour concevoir l ensemble des visualisations voulues 5. Consulter le tableau bord qui est mis à jour en fonction de la périodicité voulue avec les fenêtres d exécutions demandées [voir figure 4] Projet WAVES 7 D5.2 Composants

Figure 4 - Tableau de bord une fois configuré Comme présenté dans la figure 4, l utilisateur pourra constituer un ensemble de tableau de bord qu il pourra consulter en fonction de ses besoins. Il pourra aussi éditer chaque tableau de bord (ajouter, renommer, bouger ou supprimer une cellule par exemple). Pour mettre en œuvre ce tableau de bord, nous utilisons un ensemble de technologies frontend que nous allons désormais présenter. 7 Détail des technologies 7.1 TypeScript TypeScript est un langage de programmation libre et open- source développé par Microsoft couvrant JavaScript. Ce langage permet un typage statique optionnel des variables et des fonctions, la création de classes et d'interfaces, l'import de modules. Il fournit une compatibilité avec ECMAScript 6. Cette norme permet l ajout de classes et de modules notamment. Comme nous l avons vu, la modularité est une part importante de ce prototype. La validation statique du code nous permet d avoir une meilleure production sur les types fournit ainsi que sur les modules. Pour être utilisé, le code source doit du coup être compilé, d où la nécessité d avoir une chaîne de construction, ce que nous verrons dans la section 7.3. L intérêt de Typescript est directement lié à l utilisation d angular et de son routage. Projet WAVES 8 D5.2 Composants

7.2 AngularJS et UI- Router Nous ne présenterons pas de détail sur la technologie AngularJS ici. Nous n allons qu explorer son intérêt pour notre application. AngularJS est un framework MVC (Modèle, Vue, Contrôleur) pour les applications web. Ses principes de conceptions sont les suivants : Séparation de la vue ainsi que sa manipulation (i.e. du DOM) et la logique métier. L injection de dépendance entre composants. Une gestion de cycle de vie par l utilisation de promises. L injection de dépendance est une partie centrale d Angular qui permet le découplage des services qui permettent notamment de dialoguer avec l API Backend et la logique du contrôleur. Par exemple : voici le code d un service simple en Angular/Typescript import IHttpPromise = angular.ihttppromise; export class SampleService { private http:ng.ihttpservice; private log:ng.ilogservice; constructor($http, $log) { this.http = $http; this.log = $log; public getdata():ihttppromise<mydata> { this.log.debug("getting data from server"); return this.http.get('/api/data'); Ce service a une dépendance vers $http (qui est le service permettant de faire des appels http au serveur) et $log. Chaque attribut utilisé est typé et sera statiquement validé par un compilateur. Ce service expose la méthode getdata qui fournit un objet de type SampleData qui sera obtenu par une promesse http elle aussi statiquement typé. Ce service pourra être utilisé à tout endroit dans le composant qui l a déclaré. Cela est couplé avec UI- Router qui permet de définir la navigation dans l application par une arborescence d état. Ci- dessous, la déclaration d un état $stateprovider.state('product.sample', { url: '/product/sample', views: { "@": { template: <string>require('./sample.html'), controller: 'SampleController', controlleras: 'Sample', resolve: { Projet WAVES 9 D5.2 Composants

); sampledata: (SampleService) => { return SampleService.getData(); Cet état est un état fils de product, qui est atteignable en allant à la page /product/sample. Une fois cet état activé, le routeur passera par une étape de résolution où pour chaque vue déclarée, les promesses seront complétées. La vue ne sera jamais active tant que les promesses n auront pas été résolues. La donnée ainsi résolue (ici sampledata) sera disponible par injection au contrôleur. Enfin, en utilisant les mêmes principes, Angular permet la création de composants (appelées directives) qui peuvent s utiliser comme des balises html étendues et qui, comme dans tout modèle à composants, peuvent dépendre d autres composants. Par exemple, il est possible de constituer une directive permettant de tracer un graphique <plot chart-data="sample.sampledata" new-entry="sample.newentry"></plot> La directive plot possède deux paramètres qui sont des objets disponibles dans le modèle du contrôleur (appelé le scope) et permet l affichage d un nuage de point par exemple. En l occurrence ici, le premier est le résultat de la promesse que nous avions montré précédemment, la mention de «Sample.» permet de pointer vers le bon contrôleur. Figure 5 - Affichage de la directive plot Les composants sont des produits à part entière puisqu ils peuvent posséder leurs propres services et leurs propres sous- composants. Ainsi, nous pouvons constituer une bibliothèque de directives. Cette directive «plot» a été d ailleurs utilisée pour le premier démonstrateur Waves. 7.3 Webpack Webpack est une chaîne de construction qui permet d opérer l assemblage des différentes sources en une application web finale. Il prend en entrée un ensemble de fichiers ayant des Projet WAVES 10 D5.2 Composants

dépendances entre eux (avec tout types de langages) et fournira des fichiers interprétables par un navigateur en sortie. Figure 6 - Webpack Son intérêt est évident dans notre cas. Toutefois, la jeunesse de ces types de produit nous montre qu il est difficile de trouver une configuration de webpack permettant l utilisation des technologies que nous avons présenté jusqu ici. Nous avons donc dans le cadre de ce projet constitué un projet principal permettant d avoir la configuration nécessaire pour utiliser Typescript, Angular et Webpack. Le code et sa documentation sont décrit ici https://github.com/deonclem/angular- webpack- typescript 7.4 D3.js D3.js est une bibliothèque graphique Javascript permettant la visualisation de données sous forme graphique et dynamique. Il se base sur les technologies SVG et CSS pour permettre un rendu vectoriel de la donnée. Son approche est orientée donnée, c est à dire que la visualisation est construite en parcourant les données. Ici, un exemple extrait de la directive plot. let dots = svg.data(chartdata, (d:any) => d.timestamp).enter().append("circle").attr("class", "dot").attr("r", "2").attr("cx", (d:any) => d.x).attr("cy", (d:any) => d.y); Ce code peut être lu ainsi : «avec les données issues de chartdata, pour chaque point, créer un rond de classe css «.dot» de rayon 2 aux coordonnées correspondant aux attributs x et y». Cet aspect à la limite du déclaratif permet de plus facilement constituer des visualisations interactives. Projet WAVES 11 D5.2 Composants

7.5 Angular- Material Enfin, concernant la présentation de l application et l assemblage des composants. Nous utilisons Angular- Material. Cette bibliothèque est l implémentation de référence de la spécification Google's Material Design. Cette spécification fournit système unifié de design et d interaction d applications. Ce système a l avantage de s adapter à tout support et tailles d écrans. En pratique, cette bibliothèque fournit des classes CSS et des directives angular permettant d assembler une application web de façon plus efficace tout en restant agréable à la vue et à la navigation. Dans les directives fournies, nous pouvons retrouver des primitives de mises en page, ou des fenêtres de dialogues ou encore des formulaires d autocomplétion. Au fur et à mesure du temps, beaucoup de bibliothèques ont fourni ce type de fonctionnalité, mais celle- ci, en dehors de son aspect visuellement plus clair, est parfaitement intégrée dans la technologie Angular (contrairement à Bootstrap par exemple). Ceci rendant son utilisation plus simple en permettant notamment de régler tout ce qui concerne la vue dans le html via des directives. Figure 7 - Exemple de tableau de bord en material Projet WAVES 12 D5.2 Composants

8 Conclusion Nous avons ici présenté les premières maquettes de notre application Waves. Et nous avons décrit la pile technique que nous utilisons pour y parvenir. Nous avons développé cet assemblage afin d obtenir la plus grande modularité en terme de développement et d utilisation. Lors de l implémentation du premier démonstrateur. L entièreté de cette pile technique a été utilisée dans la forme qui a été présentée. La suite sera donc sur le fait de rendre l application extensible par rapport aux données disponibles dans le framework Waves. Projet WAVES 13 D5.2 Composants