https://air.imag.fr/api.php?action=feedcontributions&user=Mathieud&feedformat=atomair - User contributions [en]2024-03-29T15:09:07ZUser contributionsMediaWiki 1.35.13https://air.imag.fr/index.php?title=Apache_Hadoop&diff=3721Apache Hadoop2011-11-24T22:09:53Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
[[File:Hadoop-logo.jpg|center|hadoop]]<br />
<br />
<br />
<br />
=Informations=<br />
<br />
Hadoop est un projet Open Source géré par Apache et qui est basé sur MapReduce et Google File System. Il a été crée en 2009 par Doug Cutting.<br />
<br />
Il permet d'effectuer des algorithmes utilisant le principe de MapReduce pour gérer de grande quantité de données, de pouvoir superviser les différents serveurs et ressources utilisés.<br />
<br />
Hadoop gère également la tolérance aux pannes, c'est-à-dire qu’il réaffecte les tâches de manière transparente en cas de panne d’un serveur.<br />
<br />
=Sources=<br />
<br />
* http://fr.wikipedia.org/wiki/Hadoop<br />
* http://hadoop.apache.org/<br />
* http://developer.yahoo.com/blogs/hadoop/<br />
* http://www.mapreduce.org/</div>Mathieudhttps://air.imag.fr/index.php?title=Apache_Hadoop&diff=3720Apache Hadoop2011-11-24T22:09:45Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
<br />
[[File:Hadoop-logo.jpg|center|hadoop]]<br />
<br />
=Informations=<br />
<br />
Hadoop est un projet Open Source géré par Apache et qui est basé sur MapReduce et Google File System. Il a été crée en 2009 par Doug Cutting.<br />
<br />
Il permet d'effectuer des algorithmes utilisant le principe de MapReduce pour gérer de grande quantité de données, de pouvoir superviser les différents serveurs et ressources utilisés.<br />
<br />
Hadoop gère également la tolérance aux pannes, c'est-à-dire qu’il réaffecte les tâches de manière transparente en cas de panne d’un serveur.<br />
<br />
=Sources=<br />
<br />
* http://fr.wikipedia.org/wiki/Hadoop<br />
* http://hadoop.apache.org/<br />
* http://developer.yahoo.com/blogs/hadoop/<br />
* http://www.mapreduce.org/</div>Mathieudhttps://air.imag.fr/index.php?title=Apache_Hadoop&diff=3719Apache Hadoop2011-11-24T22:09:34Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
[[File:Hadoop-logo.jpg|center|hadoop]]<br />
<br />
=Informations=<br />
<br />
Hadoop est un projet Open Source géré par Apache et qui est basé sur MapReduce et Google File System. Il a été crée en 2009 par Doug Cutting.<br />
<br />
Il permet d'effectuer des algorithmes utilisant le principe de MapReduce pour gérer de grande quantité de données, de pouvoir superviser les différents serveurs et ressources utilisés.<br />
<br />
Hadoop gère également la tolérance aux pannes, c'est-à-dire qu’il réaffecte les tâches de manière transparente en cas de panne d’un serveur.<br />
<br />
=Sources=<br />
<br />
* http://fr.wikipedia.org/wiki/Hadoop<br />
* http://hadoop.apache.org/<br />
* http://developer.yahoo.com/blogs/hadoop/<br />
* http://www.mapreduce.org/</div>Mathieudhttps://air.imag.fr/index.php?title=File:Hadoop-logo.jpg&diff=3713File:Hadoop-logo.jpg2011-11-24T21:55:02Z<p>Mathieud: </p>
<hr />
<div></div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3703MapReduce2011-11-24T21:42:58Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines. Le but est d'utiliser un nombre de machines suffisant dans l'optique d'optimiser le temps de calcul et assurer une fiabilité du système.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines. The goal is to use a sufficient number of machines in order to optimize the computation time and ensure system reliability.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
On note donc plusieurs choses intéressantes sur ce schéma.<br />
Tout d'abord il y un serveur primaire ayant pour but de répartir les travail entre les autres serveurs. Ce serveur "maître" détermine la quantité optimale de serveur nécessaire pour l'opération de mapping et fait de même pour l'opération de réduction. Ce serveur "maître" permet également de gérer les pannes dans les différents serveurs et de réattribuer le travail à d'autres machines.<br />
<br />
On voit également qu'il y a plus de serveurs de mapping que de réduction, ce qui est dû à complexité du mapping et au fait qu'il est plus simple à distribuer.<br />
<br />
=Caractéristiques=<br />
<br />
===Distribution et parallélisme===<br />
<br />
La principale caractéristique et intérêt de MapReduce et le parallélisme des calculs effectués. Cela permet de traiter de manières simultanées des données pouvant aller de plusieurs giga-octets de données à plusieurs tera-octets de données. Ces opérations peuvent être effectuées en parallèle du moment qu'elle ne touche rien en commun, ce qui est correctement établi grâce à la fonction de mapping.<br />
<br />
<br />
<br />
[[File:Parallele.png|center|Exemple de parallélisme de calcul avec MapReduce]]<br />
<br />
<br />
<br />
===Résistance aux pannes===<br />
<br />
Le canevas MapReduce est distribué, ce qui assure une certaine résistance aux pannes et ainsi conserver un état global stable et fiable.<br />
<br />
Si le serveur "maître" tombe en panne, alors les autres serveurs détectent cette panne au fait qu'ils ne peuvent plus remonter d'informations. Naturellement un nouveau serveur "maître" est élu et reprend les tâches à la dernière sauvegarde effectuée. ce qui signifie que les valeurs intermédiaires sont perdues et que les tâches correspondantes devront être recommencées.<br />
<br />
Si un serveur de tâches, mapping ou réduction, tombe en panne, celui-ci sera détecté par le serveur "maître" qui effectue un détection périodique. Les tâche de mapping ou de réduction non terminées sont recommencées sur un nouveau serveur dans le but de finaliser leurs exécution et de stabiliser le système.<br />
<br />
=Utilisations=<br />
<br />
La librairie MapReduce de Google existe dans plusieurs langages de programmation dont C++, C#, Erlang, Java, Python, Ruby...<br />
<br />
Le framework le plus connu utilisant MapReduce est [http://air.imag.fr/mediawiki/index.php/Hadoop Hadoop], qui permet de gérer des applications distribuées et des gérer d'importantes quantités de données.<br />
<br />
La fonction de recherche de Yahoo est une application Hadoop utilisant plus de 10.000 noeuds Linux. Facebook utilise plusieurs grappe de serveurs utilisant Hadoop pour gérer près de 205 giga-octets de données au quotidien. MapReduce est également utilisé par Twitter, Amazon, Rackspace, LinkedIn, IBM, Veoh et Microsoft.<br />
<br />
Oracle utilise à l'heure actuelle des fonctions MapReduce dans certains de ces systèmes de gestion de base de données.<br />
<br />
=Sources=<br />
<br />
* http://fr.wikipedia.org/wiki/MapReduce<br />
* http://www.mapreduce.org/<br />
* http://architectures-web.smile.fr/Repartition-de-charge/MapReduce-et-Hadoop<br />
* http://code.google.com/intl/fr-FR/edu/parallel/mapreduce-tutorial.html</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3699MapReduce2011-11-24T21:39:15Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines. Le but est d'utiliser un nombre de machines suffisant dans l'optique d'optimiser le temps de calcul et assurer une fiabilité du système.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines. The goal is to use a sufficient number of machines in order to optimize the computation time and ensure system reliability.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
On note donc plusieurs choses intéressantes sur ce schéma.<br />
Tout d'abord il y un serveur primaire ayant pour but de répartir les travail entre les autres serveurs. Ce serveur "maître" détermine la quantité optimale de serveur nécessaire pour l'opération de mapping et fait de même pour l'opération de réduction. Ce serveur "maître" permet également de gérer les pannes dans les différents serveurs et de réattribuer le travail à d'autres machines.<br />
<br />
On voit également qu'il y a plus de serveurs de mapping que de réduction, ce qui est dû à complexité du mapping et au fait qu'il est plus simple à distribuer.<br />
<br />
=Caractéristiques=<br />
<br />
===Distribution et parallélisme===<br />
<br />
La principale caractéristique et intérêt de MapReduce et le parallélisme des calculs effectués. Cela permet de traiter de manières simultanées des données pouvant aller de plusieurs giga-octets de données à plusieurs tera-octets de données. Ces opérations peuvent être effectuées en parallèle du moment qu'elle ne touche rien en commun, ce qui est correctement établi grâce à la fonction de mapping.<br />
<br />
<br />
<br />
[[File:Parallele.png|center|Exemple de parallélisme de calcul avec MapReduce]]<br />
<br />
<br />
<br />
===Résistance aux pannes===<br />
<br />
Le canevas MapReduce est distribué, ce qui assure une certaine résistance aux pannes et ainsi conserver un état global stable et fiable.<br />
<br />
Si le serveur "maître" tombe en panne, alors les autres serveurs détectent cette panne au fait qu'ils ne peuvent plus remonter d'informations. Naturellement un nouveau serveur "maître" est élu et reprend les tâches à la dernière sauvegarde effectuée. ce qui signifie que les valeurs intermédiaires sont perdues et que les tâches correspondantes devront être recommencées.<br />
<br />
Si un serveur de tâches, mapping ou réduction, tombe en panne, celui-ci sera détecté par le serveur "maître" qui effectue un détection périodique. Les tâche de mapping ou de réduction non terminées sont recommencées sur un nouveau serveur dans le but de finaliser leurs exécution et de stabiliser le système.<br />
<br />
=Utilisations=<br />
<br />
La librairie MapReduce de Google existe dans plusieurs langages de programmation dont C++, C#, Erlang, Java, Python, Ruby...<br />
<br />
Le framework le plus connu utilisant MapReduce est [http://air.imag.fr/mediawiki/index.php/Hadoop Hadoop], qui permet de gérer des applications distribuées et des gérer d'importantes quantités de données.<br />
<br />
La fonction de recherche de Yahoo est une application Hadoop utilisant plus de 10.000 noeuds Linux. Facebook utilise plusieurs grappe de serveurs utilisant Hadoop pour gérer près de 205 giga-octets de données au quotidien. MapReduce est également utilisé par Twitter, Amazon, Rackspace, LinkedIn, IBM, Veoh et Microsoft.<br />
<br />
Oracle utilise à l'heure actuelle des fonctions MapReduce dans certains de ces systèmes de gestion de base de données.<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=Apache_Hadoop&diff=3698Apache Hadoop2011-11-24T21:38:54Z<p>Mathieud: Created page with "* Enseignant: Didier Donsez et Georges-Pierre Bonneau * UE/Module: EAR en RICM5 option S&R * Eleve: Mathieu Dewulf * mail: Mathieu.Dewulf@e.ujf-grenoble.fr"</p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3694MapReduce2011-11-24T21:28:35Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines. Le but est d'utiliser un nombre de machines suffisant dans l'optique d'optimiser le temps de calcul et assurer une fiabilité du système.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines. The goal is to use a sufficient number of machines in order to optimize the computation time and ensure system reliability.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
On note donc plusieurs choses intéressantes sur ce schéma.<br />
Tout d'abord il y un serveur primaire ayant pour but de répartir les travail entre les autres serveurs. Ce serveur "maître" détermine la quantité optimale de serveur nécessaire pour l'opération de mapping et fait de même pour l'opération de réduction. Ce serveur "maître" permet également de gérer les pannes dans les différents serveurs et de réattribuer le travail à d'autres machines.<br />
<br />
On voit également qu'il y a plus de serveurs de mapping que de réduction, ce qui est dû à complexité du mapping et au fait qu'il est plus simple à distribuer.<br />
<br />
=Caractéristiques=<br />
<br />
===Distribution et parallélisme===<br />
<br />
La principale caractéristique et intérêt de MapReduce et le parallélisme des calculs effectués. Cela permet de traiter de manières simultanées des données pouvant aller de plusieurs giga-octets de données à plusieurs tera-octets de données. Ces opérations peuvent être effectuées en parallèle du moment qu'elle ne touche rien en commun, ce qui est correctement établi grâce à la fonction de mapping.<br />
<br />
[[File:Parallele.png|center|Exemple de parallélisme de calcul avec MapReduce]]<br />
<br />
===Résistance aux pannes===<br />
<br />
Le canevas MapReduce est distribué, ce qui assure une certaine résistance aux pannes et ainsi conserver un état global stable et fiable.<br />
<br />
Si le serveur "maître" tombe en panne, alors les autres serveurs détectent cette panne au fait qu'ils ne peuvent plus remonter d'informations. Naturellement un nouveau serveur "maître" est élu et reprend les tâches à la dernière sauvegarde effectuée. ce qui signifie que les valeurs intermédiaires sont perdues et que les tâches correspondantes devront être recommencées.<br />
<br />
Si un serveur de tâches, mapping ou réduction, tombe en panne, celui-ci sera détecté par le serveur "maître" qui effectue un détection périodique. Les tâche de mapping ou de réduction non terminées sont recommencées sur un nouveau serveur dans le but de finaliser leurs exécution et de stabiliser le système.<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=File:Parallele.png&diff=3690File:Parallele.png2011-11-24T21:16:59Z<p>Mathieud: </p>
<hr />
<div></div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3675MapReduce2011-11-24T21:01:32Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines. Le but est d'utiliser un nombre de machines suffisant dans l'optique d'optimiser le temps de calcul et assurer une fiabilité du système.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines. The goal is to use a sufficient number of machines in order to optimize the computation time and ensure system reliability.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
On note donc plusieurs choses intéressantes sur ce schéma.<br />
Tout d'abord il y un serveur primaire ayant pour but de répartir les travail entre les autres serveurs. Ce serveur "maître" détermine la quantité optimale de serveur nécessaire pour l'opération de mapping et fait de même pour l'opération de réduction. Ce serveur "maître" permet également de gérer les pannes dans les différents serveurs et de réattribuer le travail à d'autres machines.<br />
<br />
On voit également qu'il y a plus de serveurs de mapping que de réduction, ce qui est dû à complexité du mapping et au fait qu'il est plus simple à distribuer.<br />
<br />
=Caractéristiques=<br />
<br />
===Distribution et parallélisme===<br />
<br />
===Résistance aux pannes===<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3674MapReduce2011-11-24T20:58:09Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
On note donc plusieurs choses intéressantes sur ce schéma.<br />
Tout d'abord il y un serveur primaire ayant pour but de répartir les travail entre les autres serveurs. Ce serveur "maître" détermine la quantité optimale de serveur nécessaire pour l'opération de mapping et fait de même pour l'opération de réduction. Ce serveur "maître" permet également de gérer les pannes dans les différents serveurs et de réattribuer le travail à d'autres machines.<br />
<br />
On voit également qu'il y a plus de serveurs de mapping que de réduction, ce qui est dû à complexité du mapping et au fait qu'il est plus simple à distribuer.<br />
<br />
=Caractéristiques=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3671MapReduce2011-11-24T20:53:32Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
<br />
<br />
<br />
<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
=Caractéristiques=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3669MapReduce2011-11-24T20:52:34Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
Suite à l'opération de mapping ayant décomposé et traité un ensemble de données, il est nécessaire d'effectuer une opération de réduction des données. Cette opération permet de récupérer l'ensemble des fragments de données mappés et de les rassembler dans un fichier de sortie unique. Ce résultat pourra ensuite être traité de la façon souhaitée.<br />
<br />
la reduction s'effectue de la manière suivante. D'abord la réduction s'applique avec la graine fournie par le mapping, puis ensuite avec les valeurs intermédiaires générées par la réduction jusqu'à obtenir un élément final. Bien que la fonction de réduction se termine toujours par une unique réponse et donc à priori non parallélisable, un certain nombre de calculs indépendants peuvent être distribué pour permettre d'accroître les performances et ainsi gagner plus de temps.<br />
<br />
[[File:MapReduce.png|center|Répartition des tâches de mapping et réduction]]<br />
<br />
=Caractéristiques=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=File:MapReduce.png&diff=3667File:MapReduce.png2011-11-24T20:50:13Z<p>Mathieud: </p>
<hr />
<div></div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3662MapReduce2011-11-24T20:36:03Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
Lors d'une opération de Mapping, qui est parallèle, le fichier en entrée est divisé en plusieurs morceaux. Cette décomposition ne tiens pas compte de la structure du fichier étant donné que la tâche de Mapping ne sait rien à propos de ces données.<br />
<br />
Une fonction de mapping agit sur une liste d'éléments et applique une focntion spécifique sur chaque élément de cette liste. Ces données traitées sont stockées temporairement pour pouvoir être traitées ensuite. les différents éléments sont calculés séparément, permettant ainsi d'effectuer cette tâche de mapping en parallèle et ainsi faire des calculs massifs plus rapidement.<br />
<br />
La fonction de mapping prend donc en entrée une fichier, ou un ensemble de données et retourne une liste d'élément en sortie.<br />
<br />
===Reduction===<br />
<br />
=Caractéristiques=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3660MapReduce2011-11-24T20:04:03Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
=Principes=<br />
<br />
MapReduce se divise en deux parties majeurs qui sont le mapping et la réduction des données à calculer.<br />
<br />
===Mapping===<br />
<br />
===Reduction===<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3659MapReduce2011-11-24T19:59:00Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
Pour comprendre l'utilité de l'utilisation de MapReduce, il faut comprendre l'importance de la parallélisation et de la distribution des calculs sur divers serveurs. En effet une machine unique ne peut effectuer qu'un nombre limité de calcul à la seconde. Donc dès lors qu'il s'agit de traiter d'importantes quantités de données cela peut prendre un temps conséquent, quelques minutes ou quelques heures qui dans le cas de calcul critique, ou de calcul ayant une fréquence élevée pose problème. <br />
<br />
Pour ne pas surcharger une machine il est nécessaire de distribuer ces calculs et MapReduce permet justement d'effectuer une distribution et un parallélisme automatique, résistant aux pannes et respectant une structure pré-établie.<br />
<br />
<br />
=Principes=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3658MapReduce2011-11-24T19:51:19Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
=Principes=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3657MapReduce2011-11-24T19:51:08Z<p>Mathieud: </p>
<hr />
<div>* Enseignant: Didier Donsez et Georges-Pierre Bonneau<br />
* UE/Module: EAR en RICM5 option S&R<br />
* Eleve: Mathieu Dewulf<br />
* mail: Mathieu.Dewulf@e.ujf-grenoble.fr<br />
<br />
=Résumé=<br />
<br />
MapReduce est un canevas de calcul massivement parallèle et distribué sur d'importantes quantités de données. MapReduce a pour objectif de répartir la charge de calcul sur divers serveurs. MapReduce permet donc de traiter des tera-données en parallèle sur des clusters de plusieurs milliers de machines.<br />
<br />
Google a été le premier à introduire le canevas MapReduce, qui a été depuis également utilisé par Yahoo, Facebook entre autres.<br />
<br />
=Abstract=<br />
<br />
MapReduce is a framework for massively parallel and distributed calculation of large amounts of data. MapReduce is designed to distribute the computational load on various servers. MapReduce can process the parallel tera data on clusters of several thousand machines.<br />
<br />
Google was the first to introduce the MapReduce framework, which has since been also used by Yahoo, Facebook and more others companies.<br />
<br />
=Contexte=<br />
<br />
=Principes=<br />
<br />
=Utilisations=<br />
<br />
=Sources=</div>Mathieudhttps://air.imag.fr/index.php?title=MapReduce&diff=3655MapReduce2011-11-24T19:31:47Z<p>Mathieud: Created page with "=Résumé= =Abstract="</p>
<hr />
<div>=Résumé=<br />
<br />
=Abstract=</div>Mathieudhttps://air.imag.fr/index.php?title=EA2011&diff=3654EA20112011-11-24T19:30:50Z<p>Mathieud: /* Vendredi 14 octobre */</p>
<hr />
<div>=Etudes d'approfondissement=<br />
* Enseignants: Georges-Pierre Bonneau, Didier Donsez<br />
* UE/Module: EAM et EAR en RICM5<br />
<br />
<br />
L'objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance<br />
<br />
Dans votre futur vie d'ingénieur, vous aurez à d'une part, vous former par vous-même sur une technologie émergente et d'autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.<br />
Il s'agira de réaliser<br />
* le positionnement par rapport au marché<br />
* d'être critique<br />
<br />
Votre synthèse fait l'objet d'une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.<br />
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d'une démonstration.<br />
<br />
[[File:presentation-EA-RICM5-1112.pdf|transparents d'introduction à l'UE]]<br />
<br />
=Planning des séances=<br />
==Vendredi 07 octobre==<br />
* [[Perception Visuelle 3D]] --> Corentin Foucault<br />
* Programmation de flux AV avec [[GStreamer]] --> Julien Seisson, Jonathan Odul.<br />
<br />
==Vendredi 14 octobre==<br />
* SSO, [[OpenID]], [[One-Time Password]] : démonstration d'OpenID et d'OTP avec calculette Gemalto Ezio pour de l'authentification multifactorielle (AWS) --> Willy Carpaye.<br />
* Canevas de calcul massivement parallèle et distribué [[MapReduce]], [[Hadoop]], ... --> Mathieu Dewulf<br />
* Autonomic Computing : démonstration de l'outil OW2 Jasmine http://jasmine.ow2.org --> Haythem Mraihi<br />
<br />
==Vendredi 21 octobre==<br />
* [[Cloud]] Computing : démonstration des plateformes Azure, EC2 (avec Ezio), GoogleApp Engine. Hébergement de votre projet eCOM ou de son modèle réduit (2 classes Cart et Product). --> Baptiste Morin.<br />
* Systèmes d'information géographique --> Aurelie Moiroux, Flavien Garcia, Thibaud Michel<br />
** PostGIS : manipulation d'informations de géométrie (points, lignes, polygones) par le SGBD PostgreSQL<br />
** OpenScales : framework cartographique open source écrit en ActionScript 3/Flex.<br />
** API de géocodage (Géo Portail, Google Maps, Google Earth, Map Quest)<br />
** API sur téléphone portable (Android, iPhone, Windows Phone 7)<br />
** Cartes fournies par OpenStreetMap et GéoPortail<br />
* API de reporting. Démonstration avec [[BIRT]] --> Nysrine Elbakkouri, Solis Nahum<br />
<br />
==Vendredi 04 novembre==<br />
* [[FreeRT OS]]. Démonstration sur le [http://www.freertos.org/FreeRTOS-for-Cortex-M3-STM32-STM32F100-Discovery.html STM32 Discovery] ([http://www.stm32circle.com/projects/project.php?id=211 A voir aussi]) et sur le [[Lego Mindstorm NXT]]. --> Alban Moreau<br />
* Système d'exploitation [[Contiki OS]] (voir http://www.simonduquennoy.net/uploads/Research/SimonDuquennoyThese.pdf) pour capteurs. Démonstration sur Arduino Mega. --> Arthur Alexandre<br />
* [[Realtime Java]] : RTSJ, RT Garbage Collectors, RT JVM ([http://java.sun.com/javase/technologies/realtime/index.jsp Sun Java RTS], [http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.index.html IBM Metronome], [http://www.aicas.com/ Jamaica], JRate, [http://www.fiji-systems.com/ Fiji VM]). Démonstration et comparaison de JRTS, Metronome et Fiji sur [[RT-Linux]] du benchmark CDj et comparaison avec CDc (voir http://www.ovmj.net/cdx). [http://domino.research.ibm.com/comm/research_projects.nsf/pages/metronome.harmonicon.html Démo Harmonicon ?] --> Thibault Jurado-Leduc<br />
* Programmation de [[GPU]] et [[GPGPU]] : démonstration de votre GPU NVIDIA (voir Damien Leone & Vincent Danjean) --> Cedric Gérard<br />
<br />
==Vendredi 18 novembre==<br />
* OpenGL ES et/ou [[WebGL]]. Démonstration OpenGL ES sous Android (http://developer.android.com/guide/topics/graphics/opengl.html) et/ou WebGL (http://www.chromeexperiments.com/webgl) --> Benjamin Malkas, Emilien Riot<br />
* [[Haptic perception]] --> Christophe Havard, Renaud Collin.<br />
<br />
== Réserve (2012) ==<br />
* BPM : démonstration de l'outil OW2 Bonita sur le processus de suivi des stages<br />
* NoSQL : [http://en.wikipedia.org/wiki/Shard_%28database_architecture%29 Sharding], [http://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_CAP Theoreme de Brewer], MongoDB, GigaSpaces, Cassandra, BigTable/GAE DataStore, ...<br />
* Benchmarks Web : démonstration de TPCW sur les conteneurs Tomcat, Jetty, Grizzly en utilisant l'injecteur de charge Apache JMeter.<br />
* BIométrie. Démonstration reconnaissance d'empreintes digitales<br />
* Motion capture (capture de mouvement). Démonstration Kinect<br />
* 3D scanning<br />
** démonstration du recollement de maillages http://meshlab.sourceforge.net/wiki/index.php/Alignment http://graphics.stanford.edu/data/3Dscanrep/<br />
* Serveurs vocaux : technologies, canevas et formats (VoiceXML, CCXML, SRGS, SSML). Démonstration.<br />
* Musique électronique, effets sonores<br />
* Plateformes de jeux mobiles multijoueurs. Démonstration de [http://gasp.ow2.org/ uGASP] Bluetooth sur téléphone Android et J2ME (contacter Romain Pellerin, UbiDreams)<br />
* Développement avec Silverlight (Multimedia)</div>Mathieudhttps://air.imag.fr/index.php?title=ArduiGrid&diff=1893ArduiGrid2011-04-06T19:15:59Z<p>Mathieud: /* Diaporama */</p>
<hr />
<div>* UE/Module: Projet innovant de RICM4 option CM et SR<br />
* Enseignants: Olivier Richard, Didier Donsez<br />
* Elèves: RICM4<br />
** Dewulf Mathieu (Chef de projet)<br />
** Carpaye Willy <br />
** El Bakkouri Nysrine <br />
** Jurado-Leduc Thibault <br />
** Malkas Benjamin <br />
** Mraihi Haythem<br />
<br />
<center>[[Image:LogoArduigrid.jpg|300px|]]</center><br />
<br />
<br />
<br />
<br />
==Objectif==<br />
Développer une plate-forme d'expérimentation à bas coût de type réseau de capteur autour des cartes Arduino et autour de cartes STM32VLDiscovery.<br />
On s'inspirera de de plate-forme [http://www.senslab.info/ SensLab].<br />
<br />
* L'infrastructure de réservation et de contrôle<br />
** Outil de réservation (base sur [http://oar.imag.fr/ OAR]<br />
** Interface de web<br />
** Environnement(s) et chaîne(s) de déploiement<br />
<br />
<br />
La plateforme pourra proposer aux usagers plusieurs langages de développement sur les noeuds de la grille <br />
* Wiring<br />
* C/C++<br />
* [http://amforth.sourceforge.net/ ATMega Forth]<br />
* [http://www.ethernut.de/en/firmware/nutlua.html Nutlua/Lua]<br />
* Scheme (interpréteur à trouver...)<br />
* ...<br />
<br />
Il faudra prévoir également de rediriger les sorties (entrées ?) des noeuds de la grille<br />
* vers un programme (type [http://processing.org Processing] par exemple) s'exécutant sur une machine autre que l'hôte OAR,<br />
* vers des applications web (type [http://processingjs.org Processing.js]) s'exécutant sur le serveur HTTP de l'hôte OAR. <br />
<br />
<br />
La grille sera constituée d'éléments modulaires regroupant 4 cartes embarquées et des plaques de prototypage sans soudure (''breadboards'').<br />
Les plaques de prototypage sans soudure pourront être pré-équipés de capteurs, d'actionneurs et de moyens de transmission (RF433 MHz, IrDA, XBee, ...).<br />
Les éléments seront raccordables par USB à la machine hôte de gestion OAR.<br />
<br />
<br />
[[Image:arduigrid.png]]<br />
<br />
L'interface web est réalisé avec [http://code.google.com/webtoolkit/ Google Web Toolkit] et <br />
d' [http://code.google.com/webtoolkit/ Eclipse]. GWT est un outil de développement permettant<br />
de créer des applications AJAX en convertissant des classes Java en Javascript (pour faire simple :).<br />
<br />
L'interface web est un élément central d'ArduiGrid. C'est elle qui va permettre aux utilisateurs d'effectuer leurs<br />
expérimentations de A à Z via leur navigateur internet. Pour cela elle fournie (liste non exhaustive) :<br />
<br />
*une gestion du compte : modifier le login/mot de passe/email/contact/...<br />
<br />
*un agenda de réservation : réserver un lot de noeuds, modifier une réservation<br />
<br />
*la planification des expériences : gérer les couples noeud/programme, gérer les comportements, ...<br />
<br />
*la gestion des programmes : créer, supprimer, modifier, partager entre utilisateur, uploader, downloader, evoyer par email, ...<br />
<br />
*la présentation des noeuds : visualiser les noeuds disponibles avec leur propriétés<br />
<br />
*la gestion des expériences en cours : redémarrer un noeud, changer de programme, visualiser les données renvoyé par les cartes,...<br />
<br />
*un faq<br />
<br />
*une documentation<br />
<br />
*la possibilité de contacter un admin : envoyer un email, tchatter, ...<br />
<br />
<br />
Note : l'édition et la compilation des programmes est faite avec une adaptation du software Arduino basé sur Processing<br />
dont les sources sont accessibles [http://arduino.cc/en/Main/Software/ ici]. L'interface web doit donc remplacer l'interface<br />
de ce logiciel.<br />
<br />
==Diaporama==<br />
<br />
[[Image:arduigrid-v0.0.jpg|400px|Avant déballage]][[Image:arduigrid-v0.1.jpg|400px|Après déballage]][[Image:grille1.jpg|300px|top|grille]][[Image:Job.png|400px|top|OAR API]][[Image:grille2.jpg|400px|top|grille]][[Image:UI1.jpg|400px|gui]]<br />
<br />
== Liens ==<br />
[http://www.senslab.info/ SensLab]<br />
<br />
==Equipement==<br />
* Arduino (x16)<br />
* STM32 Discovery (x16)<br />
* Breadboard (x16)<br />
* set of sensors and actuators<br />
<br />
==Roadmap==<br />
*Avancement :<br />
<br />
Les éléments restant à définir :<br />
*Liaison (intégration) interface web - serveur sur lequel une api est disponible pour communiquer avec le gestionnaire de ressource et la grille<br />
*L'api permettant de prendre le contrôle d'OAR<br />
*Vision en direct de la grille (webcam ?)<br />
<br />
Les éléments définis et en phase de développement :<br />
<br />
*Design + Fonctionnalité de l'interface web<br />
<br />
**On s'oriente sur une interface composé de plusieurs modules :<br />
***Gestion + création de son compte utilisateur<br />
***Historique des manipulation sur la grille<br />
***Gestion de la carte réservé pendant une durée (visualisation de la carte + interaction)<br />
***Commander sa carte via le web<br />
***Visualiser l'ensemble de la grille avec les différents capteurs<br />
***Upload de son programme source<br />
***Tchat + contact admin<br />
***Interface Administrateur : accès privilégié au carte et à OAR via le web<br />
<br />
*Api permettant la communication entre serveur web et serveur hébergeant la grille<br />
<br />
Les éléments finis :<br />
<br />
*Installation OAR<br />
*Api permettant la communication avec les cartes<br />
<br />
==Cahier des charges==<br />
<br />
Liens : [[Media:Cdcarduigrid.pdf]]</div>Mathieudhttps://air.imag.fr/index.php?title=ArduiGrid&diff=1892ArduiGrid2011-04-06T19:14:48Z<p>Mathieud: /* Diaporama */</p>
<hr />
<div>* UE/Module: Projet innovant de RICM4 option CM et SR<br />
* Enseignants: Olivier Richard, Didier Donsez<br />
* Elèves: RICM4<br />
** Dewulf Mathieu (Chef de projet)<br />
** Carpaye Willy <br />
** El Bakkouri Nysrine <br />
** Jurado-Leduc Thibault <br />
** Malkas Benjamin <br />
** Mraihi Haythem<br />
<br />
<center>[[Image:LogoArduigrid.jpg|300px|]]</center><br />
<br />
<br />
<br />
<br />
==Objectif==<br />
Développer une plate-forme d'expérimentation à bas coût de type réseau de capteur autour des cartes Arduino et autour de cartes STM32VLDiscovery.<br />
On s'inspirera de de plate-forme [http://www.senslab.info/ SensLab].<br />
<br />
* L'infrastructure de réservation et de contrôle<br />
** Outil de réservation (base sur [http://oar.imag.fr/ OAR]<br />
** Interface de web<br />
** Environnement(s) et chaîne(s) de déploiement<br />
<br />
<br />
La plateforme pourra proposer aux usagers plusieurs langages de développement sur les noeuds de la grille <br />
* Wiring<br />
* C/C++<br />
* [http://amforth.sourceforge.net/ ATMega Forth]<br />
* [http://www.ethernut.de/en/firmware/nutlua.html Nutlua/Lua]<br />
* Scheme (interpréteur à trouver...)<br />
* ...<br />
<br />
Il faudra prévoir également de rediriger les sorties (entrées ?) des noeuds de la grille<br />
* vers un programme (type [http://processing.org Processing] par exemple) s'exécutant sur une machine autre que l'hôte OAR,<br />
* vers des applications web (type [http://processingjs.org Processing.js]) s'exécutant sur le serveur HTTP de l'hôte OAR. <br />
<br />
<br />
La grille sera constituée d'éléments modulaires regroupant 4 cartes embarquées et des plaques de prototypage sans soudure (''breadboards'').<br />
Les plaques de prototypage sans soudure pourront être pré-équipés de capteurs, d'actionneurs et de moyens de transmission (RF433 MHz, IrDA, XBee, ...).<br />
Les éléments seront raccordables par USB à la machine hôte de gestion OAR.<br />
<br />
<br />
[[Image:arduigrid.png]]<br />
<br />
L'interface web est réalisé avec [http://code.google.com/webtoolkit/ Google Web Toolkit] et <br />
d' [http://code.google.com/webtoolkit/ Eclipse]. GWT est un outil de développement permettant<br />
de créer des applications AJAX en convertissant des classes Java en Javascript (pour faire simple :).<br />
<br />
L'interface web est un élément central d'ArduiGrid. C'est elle qui va permettre aux utilisateurs d'effectuer leurs<br />
expérimentations de A à Z via leur navigateur internet. Pour cela elle fournie (liste non exhaustive) :<br />
<br />
*une gestion du compte : modifier le login/mot de passe/email/contact/...<br />
<br />
*un agenda de réservation : réserver un lot de noeuds, modifier une réservation<br />
<br />
*la planification des expériences : gérer les couples noeud/programme, gérer les comportements, ...<br />
<br />
*la gestion des programmes : créer, supprimer, modifier, partager entre utilisateur, uploader, downloader, evoyer par email, ...<br />
<br />
*la présentation des noeuds : visualiser les noeuds disponibles avec leur propriétés<br />
<br />
*la gestion des expériences en cours : redémarrer un noeud, changer de programme, visualiser les données renvoyé par les cartes,...<br />
<br />
*un faq<br />
<br />
*une documentation<br />
<br />
*la possibilité de contacter un admin : envoyer un email, tchatter, ...<br />
<br />
<br />
Note : l'édition et la compilation des programmes est faite avec une adaptation du software Arduino basé sur Processing<br />
dont les sources sont accessibles [http://arduino.cc/en/Main/Software/ ici]. L'interface web doit donc remplacer l'interface<br />
de ce logiciel.<br />
<br />
==Diaporama==<br />
<br />
[[Image:arduigrid-v0.0.jpg|400px|Avant déballage]][[Image:arduigrid-v0.1.jpg|400px|Après déballage]][[Image:grille1.jpg|300px|top|grille]][[Image:grille2.jpg|400px|top|grille]][[Image:Job.png|400px|top|OAR API]][[Image:UI1.jpg|400px|gui]]<br />
<br />
== Liens ==<br />
[http://www.senslab.info/ SensLab]<br />
<br />
==Equipement==<br />
* Arduino (x16)<br />
* STM32 Discovery (x16)<br />
* Breadboard (x16)<br />
* set of sensors and actuators<br />
<br />
==Roadmap==<br />
*Avancement :<br />
<br />
Les éléments restant à définir :<br />
*Liaison (intégration) interface web - serveur sur lequel une api est disponible pour communiquer avec le gestionnaire de ressource et la grille<br />
*L'api permettant de prendre le contrôle d'OAR<br />
*Vision en direct de la grille (webcam ?)<br />
<br />
Les éléments définis et en phase de développement :<br />
<br />
*Design + Fonctionnalité de l'interface web<br />
<br />
**On s'oriente sur une interface composé de plusieurs modules :<br />
***Gestion + création de son compte utilisateur<br />
***Historique des manipulation sur la grille<br />
***Gestion de la carte réservé pendant une durée (visualisation de la carte + interaction)<br />
***Commander sa carte via le web<br />
***Visualiser l'ensemble de la grille avec les différents capteurs<br />
***Upload de son programme source<br />
***Tchat + contact admin<br />
***Interface Administrateur : accès privilégié au carte et à OAR via le web<br />
<br />
*Api permettant la communication entre serveur web et serveur hébergeant la grille<br />
<br />
Les éléments finis :<br />
<br />
*Installation OAR<br />
*Api permettant la communication avec les cartes<br />
<br />
==Cahier des charges==<br />
<br />
Liens : [[Media:Cdcarduigrid.pdf]]</div>Mathieudhttps://air.imag.fr/index.php?title=ArduiGrid&diff=1891ArduiGrid2011-04-06T19:13:02Z<p>Mathieud: /* Diaporama */</p>
<hr />
<div>* UE/Module: Projet innovant de RICM4 option CM et SR<br />
* Enseignants: Olivier Richard, Didier Donsez<br />
* Elèves: RICM4<br />
** Dewulf Mathieu (Chef de projet)<br />
** Carpaye Willy <br />
** El Bakkouri Nysrine <br />
** Jurado-Leduc Thibault <br />
** Malkas Benjamin <br />
** Mraihi Haythem<br />
<br />
<center>[[Image:LogoArduigrid.jpg|300px|]]</center><br />
<br />
<br />
<br />
<br />
==Objectif==<br />
Développer une plate-forme d'expérimentation à bas coût de type réseau de capteur autour des cartes Arduino et autour de cartes STM32VLDiscovery.<br />
On s'inspirera de de plate-forme [http://www.senslab.info/ SensLab].<br />
<br />
* L'infrastructure de réservation et de contrôle<br />
** Outil de réservation (base sur [http://oar.imag.fr/ OAR]<br />
** Interface de web<br />
** Environnement(s) et chaîne(s) de déploiement<br />
<br />
<br />
La plateforme pourra proposer aux usagers plusieurs langages de développement sur les noeuds de la grille <br />
* Wiring<br />
* C/C++<br />
* [http://amforth.sourceforge.net/ ATMega Forth]<br />
* [http://www.ethernut.de/en/firmware/nutlua.html Nutlua/Lua]<br />
* Scheme (interpréteur à trouver...)<br />
* ...<br />
<br />
Il faudra prévoir également de rediriger les sorties (entrées ?) des noeuds de la grille<br />
* vers un programme (type [http://processing.org Processing] par exemple) s'exécutant sur une machine autre que l'hôte OAR,<br />
* vers des applications web (type [http://processingjs.org Processing.js]) s'exécutant sur le serveur HTTP de l'hôte OAR. <br />
<br />
<br />
La grille sera constituée d'éléments modulaires regroupant 4 cartes embarquées et des plaques de prototypage sans soudure (''breadboards'').<br />
Les plaques de prototypage sans soudure pourront être pré-équipés de capteurs, d'actionneurs et de moyens de transmission (RF433 MHz, IrDA, XBee, ...).<br />
Les éléments seront raccordables par USB à la machine hôte de gestion OAR.<br />
<br />
<br />
[[Image:arduigrid.png]]<br />
<br />
L'interface web est réalisé avec [http://code.google.com/webtoolkit/ Google Web Toolkit] et <br />
d' [http://code.google.com/webtoolkit/ Eclipse]. GWT est un outil de développement permettant<br />
de créer des applications AJAX en convertissant des classes Java en Javascript (pour faire simple :).<br />
<br />
L'interface web est un élément central d'ArduiGrid. C'est elle qui va permettre aux utilisateurs d'effectuer leurs<br />
expérimentations de A à Z via leur navigateur internet. Pour cela elle fournie (liste non exhaustive) :<br />
<br />
*une gestion du compte : modifier le login/mot de passe/email/contact/...<br />
<br />
*un agenda de réservation : réserver un lot de noeuds, modifier une réservation<br />
<br />
*la planification des expériences : gérer les couples noeud/programme, gérer les comportements, ...<br />
<br />
*la gestion des programmes : créer, supprimer, modifier, partager entre utilisateur, uploader, downloader, evoyer par email, ...<br />
<br />
*la présentation des noeuds : visualiser les noeuds disponibles avec leur propriétés<br />
<br />
*la gestion des expériences en cours : redémarrer un noeud, changer de programme, visualiser les données renvoyé par les cartes,...<br />
<br />
*un faq<br />
<br />
*une documentation<br />
<br />
*la possibilité de contacter un admin : envoyer un email, tchatter, ...<br />
<br />
<br />
Note : l'édition et la compilation des programmes est faite avec une adaptation du software Arduino basé sur Processing<br />
dont les sources sont accessibles [http://arduino.cc/en/Main/Software/ ici]. L'interface web doit donc remplacer l'interface<br />
de ce logiciel.<br />
<br />
==Diaporama==<br />
<br />
[[Image:arduigrid-v0.0.jpg|400px|Avant déballage]][[Image:arduigrid-v0.1.jpg|400px|Après déballage]][[Image:grille1.jpg|300px|top|grille]][[Image:grille2.jpg|400px|top|grille]][[Image:UI1.jpg|400px|gui]]<br />
[[Image:Job.png|400px|top|OAR API]]<br />
<br />
== Liens ==<br />
[http://www.senslab.info/ SensLab]<br />
<br />
==Equipement==<br />
* Arduino (x16)<br />
* STM32 Discovery (x16)<br />
* Breadboard (x16)<br />
* set of sensors and actuators<br />
<br />
==Roadmap==<br />
*Avancement :<br />
<br />
Les éléments restant à définir :<br />
*Liaison (intégration) interface web - serveur sur lequel une api est disponible pour communiquer avec le gestionnaire de ressource et la grille<br />
*L'api permettant de prendre le contrôle d'OAR<br />
*Vision en direct de la grille (webcam ?)<br />
<br />
Les éléments définis et en phase de développement :<br />
<br />
*Design + Fonctionnalité de l'interface web<br />
<br />
**On s'oriente sur une interface composé de plusieurs modules :<br />
***Gestion + création de son compte utilisateur<br />
***Historique des manipulation sur la grille<br />
***Gestion de la carte réservé pendant une durée (visualisation de la carte + interaction)<br />
***Commander sa carte via le web<br />
***Visualiser l'ensemble de la grille avec les différents capteurs<br />
***Upload de son programme source<br />
***Tchat + contact admin<br />
***Interface Administrateur : accès privilégié au carte et à OAR via le web<br />
<br />
*Api permettant la communication entre serveur web et serveur hébergeant la grille<br />
<br />
Les éléments finis :<br />
<br />
*Installation OAR<br />
*Api permettant la communication avec les cartes<br />
<br />
==Cahier des charges==<br />
<br />
Liens : [[Media:Cdcarduigrid.pdf]]</div>Mathieudhttps://air.imag.fr/index.php?title=ArduiGrid&diff=1890ArduiGrid2011-04-06T19:10:29Z<p>Mathieud: /* Diaporama */</p>
<hr />
<div>* UE/Module: Projet innovant de RICM4 option CM et SR<br />
* Enseignants: Olivier Richard, Didier Donsez<br />
* Elèves: RICM4<br />
** Dewulf Mathieu (Chef de projet)<br />
** Carpaye Willy <br />
** El Bakkouri Nysrine <br />
** Jurado-Leduc Thibault <br />
** Malkas Benjamin <br />
** Mraihi Haythem<br />
<br />
<center>[[Image:LogoArduigrid.jpg|300px|]]</center><br />
<br />
<br />
<br />
<br />
==Objectif==<br />
Développer une plate-forme d'expérimentation à bas coût de type réseau de capteur autour des cartes Arduino et autour de cartes STM32VLDiscovery.<br />
On s'inspirera de de plate-forme [http://www.senslab.info/ SensLab].<br />
<br />
* L'infrastructure de réservation et de contrôle<br />
** Outil de réservation (base sur [http://oar.imag.fr/ OAR]<br />
** Interface de web<br />
** Environnement(s) et chaîne(s) de déploiement<br />
<br />
<br />
La plateforme pourra proposer aux usagers plusieurs langages de développement sur les noeuds de la grille <br />
* Wiring<br />
* C/C++<br />
* [http://amforth.sourceforge.net/ ATMega Forth]<br />
* [http://www.ethernut.de/en/firmware/nutlua.html Nutlua/Lua]<br />
* Scheme (interpréteur à trouver...)<br />
* ...<br />
<br />
Il faudra prévoir également de rediriger les sorties (entrées ?) des noeuds de la grille<br />
* vers un programme (type [http://processing.org Processing] par exemple) s'exécutant sur une machine autre que l'hôte OAR,<br />
* vers des applications web (type [http://processingjs.org Processing.js]) s'exécutant sur le serveur HTTP de l'hôte OAR. <br />
<br />
<br />
La grille sera constituée d'éléments modulaires regroupant 4 cartes embarquées et des plaques de prototypage sans soudure (''breadboards'').<br />
Les plaques de prototypage sans soudure pourront être pré-équipés de capteurs, d'actionneurs et de moyens de transmission (RF433 MHz, IrDA, XBee, ...).<br />
Les éléments seront raccordables par USB à la machine hôte de gestion OAR.<br />
<br />
<br />
[[Image:arduigrid.png]]<br />
<br />
L'interface web est réalisé avec [http://code.google.com/webtoolkit/ Google Web Toolkit] et <br />
d' [http://code.google.com/webtoolkit/ Eclipse]. GWT est un outil de développement permettant<br />
de créer des applications AJAX en convertissant des classes Java en Javascript (pour faire simple :).<br />
<br />
L'interface web est un élément central d'ArduiGrid. C'est elle qui va permettre aux utilisateurs d'effectuer leurs<br />
expérimentations de A à Z via leur navigateur internet. Pour cela elle fournie (liste non exhaustive) :<br />
<br />
*une gestion du compte : modifier le login/mot de passe/email/contact/...<br />
<br />
*un agenda de réservation : réserver un lot de noeuds, modifier une réservation<br />
<br />
*la planification des expériences : gérer les couples noeud/programme, gérer les comportements, ...<br />
<br />
*la gestion des programmes : créer, supprimer, modifier, partager entre utilisateur, uploader, downloader, evoyer par email, ...<br />
<br />
*la présentation des noeuds : visualiser les noeuds disponibles avec leur propriétés<br />
<br />
*la gestion des expériences en cours : redémarrer un noeud, changer de programme, visualiser les données renvoyé par les cartes,...<br />
<br />
*un faq<br />
<br />
*une documentation<br />
<br />
*la possibilité de contacter un admin : envoyer un email, tchatter, ...<br />
<br />
<br />
Note : l'édition et la compilation des programmes est faite avec une adaptation du software Arduino basé sur Processing<br />
dont les sources sont accessibles [http://arduino.cc/en/Main/Software/ ici]. L'interface web doit donc remplacer l'interface<br />
de ce logiciel.<br />
<br />
==Diaporama==<br />
<br />
[[Image:arduigrid-v0.0.jpg|400px|Avant déballage]][[Image:arduigrid-v0.1.jpg|400px|Après déballage]][[Image:grille1.jpg|300px|top|grille]][[Image:grille2.jpg|400px|top|grille]][[Image:UI1.jpg|400px|gui]]<br />
[[Image:Job.png|400px|OAR API]]<br />
<br />
== Liens ==<br />
[http://www.senslab.info/ SensLab]<br />
<br />
==Equipement==<br />
* Arduino (x16)<br />
* STM32 Discovery (x16)<br />
* Breadboard (x16)<br />
* set of sensors and actuators<br />
<br />
==Roadmap==<br />
*Avancement :<br />
<br />
Les éléments restant à définir :<br />
*Liaison (intégration) interface web - serveur sur lequel une api est disponible pour communiquer avec le gestionnaire de ressource et la grille<br />
*L'api permettant de prendre le contrôle d'OAR<br />
*Vision en direct de la grille (webcam ?)<br />
<br />
Les éléments définis et en phase de développement :<br />
<br />
*Design + Fonctionnalité de l'interface web<br />
<br />
**On s'oriente sur une interface composé de plusieurs modules :<br />
***Gestion + création de son compte utilisateur<br />
***Historique des manipulation sur la grille<br />
***Gestion de la carte réservé pendant une durée (visualisation de la carte + interaction)<br />
***Commander sa carte via le web<br />
***Visualiser l'ensemble de la grille avec les différents capteurs<br />
***Upload de son programme source<br />
***Tchat + contact admin<br />
***Interface Administrateur : accès privilégié au carte et à OAR via le web<br />
<br />
*Api permettant la communication entre serveur web et serveur hébergeant la grille<br />
<br />
Les éléments finis :<br />
<br />
*Installation OAR<br />
*Api permettant la communication avec les cartes<br />
<br />
==Cahier des charges==<br />
<br />
Liens : [[Media:Cdcarduigrid.pdf]]</div>Mathieudhttps://air.imag.fr/index.php?title=ArduiGrid&diff=1889ArduiGrid2011-04-06T19:08:34Z<p>Mathieud: /* Diaporama */</p>
<hr />
<div>* UE/Module: Projet innovant de RICM4 option CM et SR<br />
* Enseignants: Olivier Richard, Didier Donsez<br />
* Elèves: RICM4<br />
** Dewulf Mathieu (Chef de projet)<br />
** Carpaye Willy <br />
** El Bakkouri Nysrine <br />
** Jurado-Leduc Thibault <br />
** Malkas Benjamin <br />
** Mraihi Haythem<br />
<br />
<center>[[Image:LogoArduigrid.jpg|300px|]]</center><br />
<br />
<br />
<br />
<br />
==Objectif==<br />
Développer une plate-forme d'expérimentation à bas coût de type réseau de capteur autour des cartes Arduino et autour de cartes STM32VLDiscovery.<br />
On s'inspirera de de plate-forme [http://www.senslab.info/ SensLab].<br />
<br />
* L'infrastructure de réservation et de contrôle<br />
** Outil de réservation (base sur [http://oar.imag.fr/ OAR]<br />
** Interface de web<br />
** Environnement(s) et chaîne(s) de déploiement<br />
<br />
<br />
La plateforme pourra proposer aux usagers plusieurs langages de développement sur les noeuds de la grille <br />
* Wiring<br />
* C/C++<br />
* [http://amforth.sourceforge.net/ ATMega Forth]<br />
* [http://www.ethernut.de/en/firmware/nutlua.html Nutlua/Lua]<br />
* Scheme (interpréteur à trouver...)<br />
* ...<br />
<br />
Il faudra prévoir également de rediriger les sorties (entrées ?) des noeuds de la grille<br />
* vers un programme (type [http://processing.org Processing] par exemple) s'exécutant sur une machine autre que l'hôte OAR,<br />
* vers des applications web (type [http://processingjs.org Processing.js]) s'exécutant sur le serveur HTTP de l'hôte OAR. <br />
<br />
<br />
La grille sera constituée d'éléments modulaires regroupant 4 cartes embarquées et des plaques de prototypage sans soudure (''breadboards'').<br />
Les plaques de prototypage sans soudure pourront être pré-équipés de capteurs, d'actionneurs et de moyens de transmission (RF433 MHz, IrDA, XBee, ...).<br />
Les éléments seront raccordables par USB à la machine hôte de gestion OAR.<br />
<br />
<br />
[[Image:arduigrid.png]]<br />
<br />
L'interface web est réalisé avec [http://code.google.com/webtoolkit/ Google Web Toolkit] et <br />
d' [http://code.google.com/webtoolkit/ Eclipse]. GWT est un outil de développement permettant<br />
de créer des applications AJAX en convertissant des classes Java en Javascript (pour faire simple :).<br />
<br />
L'interface web est un élément central d'ArduiGrid. C'est elle qui va permettre aux utilisateurs d'effectuer leurs<br />
expérimentations de A à Z via leur navigateur internet. Pour cela elle fournie (liste non exhaustive) :<br />
<br />
*une gestion du compte : modifier le login/mot de passe/email/contact/...<br />
<br />
*un agenda de réservation : réserver un lot de noeuds, modifier une réservation<br />
<br />
*la planification des expériences : gérer les couples noeud/programme, gérer les comportements, ...<br />
<br />
*la gestion des programmes : créer, supprimer, modifier, partager entre utilisateur, uploader, downloader, evoyer par email, ...<br />
<br />
*la présentation des noeuds : visualiser les noeuds disponibles avec leur propriétés<br />
<br />
*la gestion des expériences en cours : redémarrer un noeud, changer de programme, visualiser les données renvoyé par les cartes,...<br />
<br />
*un faq<br />
<br />
*une documentation<br />
<br />
*la possibilité de contacter un admin : envoyer un email, tchatter, ...<br />
<br />
<br />
Note : l'édition et la compilation des programmes est faite avec une adaptation du software Arduino basé sur Processing<br />
dont les sources sont accessibles [http://arduino.cc/en/Main/Software/ ici]. L'interface web doit donc remplacer l'interface<br />
de ce logiciel.<br />
<br />
==Diaporama==<br />
<br />
[[Image:arduigrid-v0.0.jpg|400px|Avant déballage]][[Image:arduigrid-v0.1.jpg|400px|Après déballage]][[Image:grille1.jpg|300px|top|grille]][[Image:grille2.jpg|400px|top|grille]][[Image:UI1.jpg|400px|gui]]<br />
[[Image:Job.jpg|400px|OAR API]]<br />
<br />
== Liens ==<br />
[http://www.senslab.info/ SensLab]<br />
<br />
==Equipement==<br />
* Arduino (x16)<br />
* STM32 Discovery (x16)<br />
* Breadboard (x16)<br />
* set of sensors and actuators<br />
<br />
==Roadmap==<br />
*Avancement :<br />
<br />
Les éléments restant à définir :<br />
*Liaison (intégration) interface web - serveur sur lequel une api est disponible pour communiquer avec le gestionnaire de ressource et la grille<br />
*L'api permettant de prendre le contrôle d'OAR<br />
*Vision en direct de la grille (webcam ?)<br />
<br />
Les éléments définis et en phase de développement :<br />
<br />
*Design + Fonctionnalité de l'interface web<br />
<br />
**On s'oriente sur une interface composé de plusieurs modules :<br />
***Gestion + création de son compte utilisateur<br />
***Historique des manipulation sur la grille<br />
***Gestion de la carte réservé pendant une durée (visualisation de la carte + interaction)<br />
***Commander sa carte via le web<br />
***Visualiser l'ensemble de la grille avec les différents capteurs<br />
***Upload de son programme source<br />
***Tchat + contact admin<br />
***Interface Administrateur : accès privilégié au carte et à OAR via le web<br />
<br />
*Api permettant la communication entre serveur web et serveur hébergeant la grille<br />
<br />
Les éléments finis :<br />
<br />
*Installation OAR<br />
*Api permettant la communication avec les cartes<br />
<br />
==Cahier des charges==<br />
<br />
Liens : [[Media:Cdcarduigrid.pdf]]</div>Mathieudhttps://air.imag.fr/index.php?title=File:Job.png&diff=1888File:Job.png2011-04-06T19:01:18Z<p>Mathieud: uploaded a new version of "File:Job.png":&#32;API OAR</p>
<hr />
<div>API OAR</div>Mathieudhttps://air.imag.fr/index.php?title=File:Job.png&diff=1887File:Job.png2011-04-06T18:58:20Z<p>Mathieud: API OAR</p>
<hr />
<div>API OAR</div>Mathieud