<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RICM4-prj14-grp8</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=RICM4-prj14-grp8"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/RICM4-prj14-grp8"/>
	<updated>2026-05-30T14:55:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014&amp;diff=19428</id>
		<title>EA2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014&amp;diff=19428"/>
		<updated>2014-11-07T00:54:45Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Séance Ven. 7/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2013|&amp;lt;&amp;lt; Etudes 2013]] [[EA|Sommaire]] [[EA2015|Etudes 2015 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;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é.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
[http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=64 Site Moodle]&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 3/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 19: Flavien Peyre, [[Firefox OS]] (démo d&#039;une app eCOM avec un téléphone ZTE Open C prété, mise en place sur le Marketplace FFOS). [[EA2014FirefoxOS|Fiche de synthèse]] [http://slides.com/darkskull/firefoxos#/ Tranparents]&lt;br /&gt;
* 21: Pierre-Henri Ginoux, [[Elastic Search]] ([[Lucene]], Marvel, Kibana, Logstach) Démo: intégration à votre projet [[ECOM-RICM]] [[EA2014_Elastic_Search|Fiche de synthèse]] [[Media:ElasticSearch.pdf|Transparents]]&lt;br /&gt;
* Clément VALENTIN, [[Open Data]] : [[OData]], ... ([[Watchdogs We Are Data]])  [[EA2014_Open_Data|Fiche de synthèse]] Tranparents&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 10/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 3: FREBY Rodolphe, Protocoles de communication pour l&#039;IoT et le M2M : [[MQTT]], [[XMPP]] IoT, CoAP, [[Adaptive Machine Messaging Protocol (AMMP)|AMMP]] ... : démonstration de [[MQTT]] avec [[Mosquitto]] et [[Node-RED]] et [[CoAP]] avec démonstration de [[Copper]] et [[Californium]] (démo avec [[Arduino Yún]]). [[EA2014ProtforIoT|Fiche de synthèse]] [[Media:SlideIoT_html.zip‎|Transparents]]&lt;br /&gt;
* 10: El Hadji Malick FALL, [[OS for WSN]] (dont [[Mbed OS]], [[RIOT]]). Démo de [[TinyOS]] avec le simulateur [[TOSSIM]] [[EA2014_OSforWSN|Fiche de synthèse]] [http://slides.com/falle38/osforwsn--2#/ Tranparents]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 17/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 5. Paul Labat, [[Speech Recognition]], [[EA2014_speech_recognition | Fiche de synthèse]]&lt;br /&gt;
* 15. Patrick Perea, Simulateurs 3D : [[SGD]], [[Anarchy]] ... [[EA2014_Sim3D_education | Fiche de synthèse]] [http://slides.com/patrick91perea/simulateurs3d/live#/ Tranparents]&lt;br /&gt;
* 16. William Bobo , GPGPU et Programmation de GPGPU [[EA2014_GPGPU|Fiche de synthèse]] [[https://slides.com/willbobo/gpgpu Transparents]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 24/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 9: Adam TIAMIOU, [[Smart City]], [[EA2014 - Smart City - Fiche de synthèse | Fiche de Synthèse]], [https://slides.com/laraisonduplusjuste/smart-city/ Transparent]&lt;br /&gt;
* 18. Jérôme BARBIER, Communications longue distance pour l&#039;[[Internet des Choses]] : [[SigFox]], [[LoRa]], ... Démonstration avec les starter kits Semtech et une passerelle Kerlink (disponible à [[FabMSTIC]]). [[EA2014_IoT_Communication | Fiche de synthèse]] [[Media:Slides-ea-presentation.zip‎|Transparents]]&lt;br /&gt;
* 6. Paul Mariage, [[BitCoin]] : principes, vices et vertus&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 7/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 12. Arthur Clerc-Gherardi, [[OSGi]],[[EA2014_OSGi | Fiche de synthèse]], [http://slides.com/rynn69270/deck/live Transparents]&lt;br /&gt;
* 11.  Adji SAMBE, [[Scalatra]],[[EA2014_Scalatra | Fiche de synthèse]] &lt;br /&gt;
* 14. Augustin Husson, Conteneurs Linux ([[LXC]], [[Docker]], [[FreeBSD Jails]], [[OpenVZ]], [[Solaris Zones]] ...) : démonstration de [[Docker]] et de [[Docker OAR Cluster]]. [[EA2014_Docker|Fiche de synthèse]] [http://slides.com/augustinhusson/les-conteneurs#/ Slides]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 14/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 7: Lionel, BOEY , [[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, ...&lt;br /&gt;
* Tiaming GUO, Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], [[AMQP]] ([[RabbitMQ]] ...), [[MQTT]], [[XMPP]], [[UPnP]] GENA, [[PubNub]], [[PubSubHubbub]], [[Apache Kafka]], Siena ... (?) : démonstration de [[PubNub]] et [[PubSubHubbub]], démonstration du déploiement d&#039;[[Apache Kafka]] sur le cloud [[Azure]]&lt;br /&gt;
* 8. Radhoane Ben younes, [[Business Process Management]]. Démonstration de BonitaSoft dans le projet [[eCOM]].&lt;br /&gt;
&lt;br /&gt;
==Sujets non choisis==&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Apache Storm]] et de [[Spark Streaming]] sur le cloud [[Azure]]. Démo supplémentaire du SaaS [[IFTTT]]&lt;br /&gt;
# [[BPM]] : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;br /&gt;
# [[Speech Recognition]]&lt;br /&gt;
# Simulateurs 3D : [[SGD]], [[Anarchy]] ...&lt;br /&gt;
# [[Software Forensics]] : cas d&#039;étude Linagora vs Bluemind (vous compléterez les pages en et fr de Wikipédia sur ce sujet).&lt;br /&gt;
# [[Continuous Delivery]]&lt;br /&gt;
# [[Privacy policy guidelines]] : Démo: application à votre projet [[ECOM-RICM]]&lt;br /&gt;
# Protocoles, Formats et Plateformes pour le bâtiment intelligent : [[oBIX]], ... démonstration d&#039;[[IoTSys]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19427</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19427"/>
		<updated>2014-11-07T00:53:00Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:osgi_alliance.jpg|right|thumb|300px|OSGi Alliance]]&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
Nous allons donc voir un bref résumé d&#039;OSGi pour au moins comprendre son intérêt et sa structure.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
*[http://lig-membres.imag.fr/donsez/cours/osgi.pdf Cours de Didier Donsez] &lt;br /&gt;
*[http://air.imag.fr/index.php/Tutorial_OSGi_avec_Apache_Felix Tuto Apache Felix] &lt;br /&gt;
*[http://www.osgi.org/javadoc/r2/org/osgi/framework JavaDoc Osgi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19426</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19426"/>
		<updated>2014-11-07T00:52:20Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:osgi_alliance.jpg|right|thumb|300px|OSGi Alliance]]&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
*[http://lig-membres.imag.fr/donsez/cours/osgi.pdf Cours de Didier Donsez] &lt;br /&gt;
*[http://air.imag.fr/index.php/Tutorial_OSGi_avec_Apache_Felix Tuto Apache Felix] &lt;br /&gt;
*[http://www.osgi.org/javadoc/r2/org/osgi/framework JavaDoc Osgi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Osgi_alliance.jpg&amp;diff=19425</id>
		<title>File:Osgi alliance.jpg</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Osgi_alliance.jpg&amp;diff=19425"/>
		<updated>2014-11-07T00:52:00Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19424</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19424"/>
		<updated>2014-11-07T00:51:37Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:osgi_alliance.png|right|thumb|300px|OSGi Alliance]]&lt;br /&gt;
&lt;br /&gt;
= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
*[http://lig-membres.imag.fr/donsez/cours/osgi.pdf Cours de Didier Donsez] &lt;br /&gt;
*[http://air.imag.fr/index.php/Tutorial_OSGi_avec_Apache_Felix Tuto Apache Felix] &lt;br /&gt;
*[http://www.osgi.org/javadoc/r2/org/osgi/framework JavaDoc Osgi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19423</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19423"/>
		<updated>2014-11-07T00:27:15Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
*[http://lig-membres.imag.fr/donsez/cours/osgi.pdf Cours de Didier Donsez] &lt;br /&gt;
*[http://air.imag.fr/index.php/Tutorial_OSGi_avec_Apache_Felix Tuto Apache Felix] &lt;br /&gt;
*[http://www.osgi.org/javadoc/r2/org/osgi/framework JavaDoc Osgi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19422</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19422"/>
		<updated>2014-11-07T00:26:50Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://lig-membres.imag.fr/donsez/cours/osgi.pdf Cours de Didier Donsez] &lt;br /&gt;
[http://air.imag.fr/index.php/Tutorial_OSGi_avec_Apache_Felix Tuto Apache Felix] &lt;br /&gt;
[http://www.osgi.org/javadoc/r2/org/osgi/framework JavaDoc Osgi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19421</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19421"/>
		<updated>2014-11-07T00:26:37Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
[http://lig-membres.imag.fr/donsez/cours/osgi.pdf Cours de Didier Donsez]&lt;br /&gt;
[http://air.imag.fr/index.php/Tutorial_OSGi_avec_Apache_Felix Tuto Apache Felix]&lt;br /&gt;
[http://www.osgi.org/javadoc/r2/org/osgi/framework JavaDoc Osgi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19420</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19420"/>
		<updated>2014-11-07T00:24:39Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Côté utilisateur, seule une interface du service sera visible ainsi qu&#039;un numéro de version.&lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;br /&gt;
&lt;br /&gt;
Voici des exemples concrets qui pourraient être utiles :&lt;br /&gt;
*Vous avez un système déjà présent en production et vous ne pouvez pas vous permettre d&#039;arrêter la plateforme. Dans ce cas OSGi est un framework parfait, si vous avez pensé à l&#039;implémenter avant la mise en production. Vous allez pouvoir mettre à jour des services et les déployer sans rien arrêter.&lt;br /&gt;
*Tout projet nécessitant un SOA léger&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19417</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19417"/>
		<updated>2014-11-07T00:15:41Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de [http://www.osgi.org/javadoc/r6/core/ OSGi].&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement des services ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué précédemment, les bundles fonctionnent avec un système de service. Ce système est appelé le registre de service. Ce registre va être accédé en permanence par les bundles dans le but de connaître les services actifs.&lt;br /&gt;
&lt;br /&gt;
Les MAJ de ce registre se fait par les bundles eux-mêmes :&lt;br /&gt;
*Lorsqu&#039;ils sont en démarrage, ils s&#039;enregistrent en donnant les services qu&#039;ils peuvent fournir et ce dont ils ont besoin. &lt;br /&gt;
*Lorsqu&#039;ils s&#039;arrêtent, ils se désinscrivent du registre.&lt;br /&gt;
&lt;br /&gt;
Les fichiers qui sont transférés pour l&#039;inscription et la désinscription sont de la forme : [http://www.osgi.org/javadoc/r2/org/osgi/framework/Filter.html LDAP]. &lt;br /&gt;
&lt;br /&gt;
Le petit plus du registre de services, est qu&#039;il est doté d&#039;un système de notifications : c&#039;est à dire que dès qu&#039;un service est disponible par exemple, ceux qui en avait besoin vont être notifié et vont donc pouvoir devenir actif.&lt;br /&gt;
&lt;br /&gt;
== Domaines d&#039;applications ==&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19416</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19416"/>
		<updated>2014-11-07T00:06:27Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Structure du bundle OSGi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;br /&gt;
&lt;br /&gt;
Expliquons brièvement à quoi sert chaque partie :&lt;br /&gt;
*Manifest-Version va nous donner la version du manifest car on peut en avoir plusieurs vu que les versions sont indépendantes les unes des autres&lt;br /&gt;
*Bundle-ManifestVersion va nous donner le numéro de révision du bundle&lt;br /&gt;
*Bundle-Name, le nom du bundle&lt;br /&gt;
*Bundle-SymbolicName, permet d&#039;identifier un bundle dans un runtime&lt;br /&gt;
*Bundle-Version, la version du bundle&lt;br /&gt;
*Bundle-Activator, le lien qui servira d&#039;Activator pour le bundle&lt;br /&gt;
*Import-package, les dépendances nécessaires au fonctionnement du bundle&lt;br /&gt;
*Export-package, les dépendances que l&#039;on veut mettre à disposition &lt;br /&gt;
*Web-contentpath, présent dans le cas où le projet est une application web&lt;br /&gt;
*Export-EJB, présent dans le cas où l&#039;on fait un projet JEE&lt;br /&gt;
&lt;br /&gt;
Il faut savoir qu&#039;il en existe beaucoup d&#039;autres, je vous conseille donc de vous rendre sur la doc de OSGi[http://www.osgi.org/javadoc/r6/core/ OSGi]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19415</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19415"/>
		<updated>2014-11-06T23:57:12Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest_osgi.png|center|Exemple de MANIFEST|400px]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Manifest_osgi.png&amp;diff=19414</id>
		<title>File:Manifest osgi.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Manifest_osgi.png&amp;diff=19414"/>
		<updated>2014-11-06T23:56:45Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19413</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19413"/>
		<updated>2014-11-06T23:56:02Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;br /&gt;
&lt;br /&gt;
Pris, sur le site de IBM, un exemple de manifest :&lt;br /&gt;
&lt;br /&gt;
[[File:manifest.jpg|center|Exemple de MANIFEST|400px]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Automaton_1.png&amp;diff=19412</id>
		<title>File:Automaton 1.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Automaton_1.png&amp;diff=19412"/>
		<updated>2014-11-06T23:11:20Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19411</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19411"/>
		<updated>2014-11-06T23:11:09Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Le cycle de vie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton_1.png|center|Cycle de vie d&#039;un bundle|400px]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19410</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19410"/>
		<updated>2014-11-06T22:57:46Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi|400px]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton.png|center|Cycle de vie d&#039;un bundle]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Functionning_1.png&amp;diff=19409</id>
		<title>File:Functionning 1.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Functionning_1.png&amp;diff=19409"/>
		<updated>2014-11-06T22:57:29Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19408</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19408"/>
		<updated>2014-11-06T22:57:11Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Le fonctionnement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning_1.png|center|Fonctionnement du framework OSGi]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton.png|center|Cycle de vie d&#039;un bundle]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19407</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19407"/>
		<updated>2014-11-06T22:51:49Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png|center|Fonctionnement du framework OSGi]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton.png|center|Cycle de vie d&#039;un bundle]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;br /&gt;
&lt;br /&gt;
== Structure du bundle OSGi ==&lt;br /&gt;
&lt;br /&gt;
Chaque bundle peut être considéré comme un grosse boîte avec certaines propriétés :&lt;br /&gt;
*Les services apportés par le bundle&lt;br /&gt;
*Les services dont il a besoin pour fonctionner&lt;br /&gt;
*Les packages importés et exportés (par défaut 0)&lt;br /&gt;
*L&#039;activateur qui va définir son cycle de vie&lt;br /&gt;
*Les ressources nécessaires au fonctionnement du bundle (image, xml...)&lt;br /&gt;
*Un fichier MANIFEST qui va contenir les informations du bundle&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19404</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19404"/>
		<updated>2014-11-06T22:46:31Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png|center|Fonctionnement du framework OSGi]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton.png|center|Cycle de vie d&#039;un bundle]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19403</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19403"/>
		<updated>2014-11-06T22:46:02Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png|center|Fonctionnement du framework OSGi]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate un peu plus complet :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton.png]]&lt;br /&gt;
&lt;br /&gt;
*Etat Installé : le composant vient d&#039;être installé correctement mais n&#039;est pas encore utilisable&lt;br /&gt;
*Etat Resolu : les dépendances liés à ce composant ont été résolues&lt;br /&gt;
*Etat Désinstallé : le composant vient d&#039;être désinstallé&lt;br /&gt;
*Etat Démarrage : état transitoire où le bundle effectue les actions nécessaires (comme la souscription au registre) avant d&#039;être utilisable par tous&lt;br /&gt;
*Etat Actif : le bundle est utilisable par les autres bundles&lt;br /&gt;
*Etat Arrêt : état transitoire où le bundle se désinscrit du registre&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Automaton.png&amp;diff=19398</id>
		<title>File:Automaton.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Automaton.png&amp;diff=19398"/>
		<updated>2014-11-06T22:39:49Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19396</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19396"/>
		<updated>2014-11-06T22:39:33Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png|center|Fonctionnement du framework OSGi]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;br /&gt;
&lt;br /&gt;
== Le cycle de vie ==&lt;br /&gt;
&lt;br /&gt;
Comme expliqué ci-dessus, chaque bundle va vivre selon un automate qui sera son cycle de vie. Chaque bundle va alors s&#039;occuper de son propre cycle de vie.&lt;br /&gt;
Le bundle peut soit être non-opérationnel, c&#039;est à dire qu&#039;il est présent mais n&#039;a pas été déployé et n&#039;est donc pas utilisable par les autres bundles. Il peut être au contraire opérationnel, et dans ce cas les autres bundles auront accès à ses services.&lt;br /&gt;
&lt;br /&gt;
On peut diviser ces deux étapes en un automate :&lt;br /&gt;
&lt;br /&gt;
[[File:automaton.jpg]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19391</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19391"/>
		<updated>2014-11-06T22:35:40Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png|center|Fonctionnement du framework OSGi]]&lt;br /&gt;
&lt;br /&gt;
Comme on peut le voir grâce au schéma ci-dessus, les modules OSGi travaillent sur plusieurs couches :&lt;br /&gt;
*La couche Services met les services proposés à l&#039;utilisateur en avant, sans leur montrer l&#039;implémentation (une interface)&lt;br /&gt;
*La couche Cycle de vie va prendre en compte les états courants de chaque bundle &lt;br /&gt;
*La couche Module va mettre en place les différents bundle en les chargeant ainsi que leurs dépendances&lt;br /&gt;
*La couche Java Execution Environment est la couche que l&#039;on utilise habituellement pour lancer nos programmes java&lt;br /&gt;
&lt;br /&gt;
Les avantages que l&#039;on peut déjà voir sont par exemples, l&#039;isolation de chaque module ce qui va permettre à des bundles ayant besoin d&#039;une même ressource mais de version différente de fonctionner. En effet côté JAVA, chaque bundle possède son propre classloader.&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19378</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19378"/>
		<updated>2014-11-06T22:20:56Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png|center|Fonctionnement du framework OSGi]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19376</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19376"/>
		<updated>2014-11-06T22:20:05Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.png]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Functionning.png&amp;diff=19375</id>
		<title>File:Functionning.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Functionning.png&amp;diff=19375"/>
		<updated>2014-11-06T22:19:45Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19374</id>
		<title>EA2014 OSGi</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014_OSGi&amp;diff=19374"/>
		<updated>2014-11-06T22:19:02Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: Created page with &amp;quot;= Présentation =  * Enseignants : Georges-Pierre Bonneau, Didier Donsez (EA2014) * Sujet : OSGi * Date :  17 octobre 2014 * Auteur : Arthur Clerc-Gherardi  == Mots Clés ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Présentation =&lt;br /&gt;
&lt;br /&gt;
* Enseignants : Georges-Pierre Bonneau, Didier Donsez ([[EA2014]])&lt;br /&gt;
* Sujet : OSGi&lt;br /&gt;
* Date :  17 octobre 2014&lt;br /&gt;
* Auteur : Arthur Clerc-Gherardi&lt;br /&gt;
&lt;br /&gt;
== Mots Clés ==&lt;br /&gt;
OSGi, SOA, Module, Bundle, Apache Karaf, Eclipse, Life Cycle&lt;br /&gt;
&lt;br /&gt;
= Synthèse =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Vous aimeriez pouvoir coder du JAVA et le déployer à chaud comme du JS ou du PhP car vous en avez marre de redéployer vos VM. Vous en avez assez des problèmes de versions de librairies non compatibles ? Vous souhaiteriez pouvoir utiliser plusieurs versions d&#039;une même librairie pour une execution de programme ? Vous voudriez ne plus jamais avoir de &amp;quot;ClassNotFoundException&amp;quot; ? OSGi est alors le parfait framework pour vous.&lt;br /&gt;
&lt;br /&gt;
OSGi est un framework orienté service permettant aux développeurs de créer des bundles (appelés aussi modules) qui seront indépendants les uns des autres. Ils peuvent s&#039;utiliser entre eux, mais si l&#039;un plante, ça ne fera pas planter tout le programme.&lt;br /&gt;
&lt;br /&gt;
On peut donc dire que pour la mise en place d&#039;une architecture SOA, OSGi peut être réellement intéressant.&lt;br /&gt;
&lt;br /&gt;
== Le fonctionnement ==&lt;br /&gt;
[[File:functionning.jpg]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014&amp;diff=19368</id>
		<title>EA2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014&amp;diff=19368"/>
		<updated>2014-11-06T22:03:40Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Séance Ven. 7/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2013|&amp;lt;&amp;lt; Etudes 2013]] [[EA|Sommaire]] [[EA2015|Etudes 2015 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;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é.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
[http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=64 Site Moodle]&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 3/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 19: Flavien Peyre, [[Firefox OS]] (démo d&#039;une app eCOM avec un téléphone ZTE Open C prété, mise en place sur le Marketplace FFOS). [[EA2014FirefoxOS|Fiche de synthèse]] [http://slides.com/darkskull/firefoxos#/ Tranparents]&lt;br /&gt;
* 21: Pierre-Henri Ginoux, [[Elastic Search]] ([[Lucene]], Marvel, Kibana, Logstach) Démo: intégration à votre projet [[ECOM-RICM]] [[EA2014_Elastic_Search|Fiche de synthèse]] [[Media:ElasticSearch.pdf|Transparents]]&lt;br /&gt;
* Clément VALENTIN, [[Open Data]] : [[OData]], ... ([[Watchdogs We Are Data]])  [[EA2014_Open_Data|Fiche de synthèse]] Tranparents&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 10/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 3: FREBY Rodolphe, Protocoles de communication pour l&#039;IoT et le M2M : [[MQTT]], [[XMPP]] IoT, CoAP, [[Adaptive Machine Messaging Protocol (AMMP)|AMMP]] ... : démonstration de [[MQTT]] avec [[Mosquitto]] et [[Node-RED]] et [[CoAP]] avec démonstration de [[Copper]] et [[Californium]] (démo avec [[Arduino Yún]]). [[EA2014ProtforIoT|Fiche de synthèse]] [[Media:SlideIoT_html.zip‎|Transparents]]&lt;br /&gt;
* 10: El Hadji Malick FALL, [[OS for WSN]] (dont [[Mbed OS]], [[RIOT]]). Démo de [[TinyOS]] avec le simulateur [[TOSSIM]] [[EA2014_OSforWSN|Fiche de synthèse]] [http://slides.com/falle38/osforwsn--2#/ Tranparents]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 17/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 5. Paul Labat, [[Speech Recognition]], [[EA2014_speech_recognition | Fiche de synthèse]]&lt;br /&gt;
* 15. Patrick Perea, Simulateurs 3D : [[SGD]], [[Anarchy]] ... [[EA2014_Sim3D_education | Fiche de synthèse]] [http://slides.com/patrick91perea/simulateurs3d/live#/ Tranparents]&lt;br /&gt;
* 16. William Bobo , GPGPU et Programmation de GPGPU [[EA2014_GPGPU|Fiche de synthèse]] [[https://slides.com/willbobo/gpgpu Transparents]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 24/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 9: Adam TIAMIOU, [[Smart City]], [[EA2014 - Smart City - Fiche de synthèse | Fiche de Synthèse]], [https://slides.com/laraisonduplusjuste/smart-city/ Transparent]&lt;br /&gt;
* 18. Jérôme BARBIER, Communications longue distance pour l&#039;[[Internet des Choses]] : [[SigFox]], [[LoRa]], ... Démonstration avec les starter kits Semtech et une passerelle Kerlink (disponible à [[FabMSTIC]]). [[EA2014_IoT_Communication | Fiche de synthèse]] [[Media:Slides-ea-presentation.zip‎|Transparents]]&lt;br /&gt;
* 6. Paul Mariage, [[BitCoin]] : principes, vices et vertus&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 7/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 12. Arthur Clerc-Gherardi, [[OSGi]],[[EA2014_OSGi | Fiche de synthèse]]&lt;br /&gt;
* 11.  Adji SAMBE, [[Scalatra]],[[EA2014_Scalatra | Fiche de synthèse]] &lt;br /&gt;
* 14. Augustin Husson, Conteneurs Linux ([[LXC]], [[Docker]], [[FreeBSD Jails]], [[OpenVZ]], [[Solaris Zones]] ...) : démonstration de [[Docker]] et de [[Docker OAR Cluster]]. [[EA2014_Docker|Fiche de synthèse]] [http://slides.com/augustinhusson/les-conteneurs#/ Slides]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 14/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 7: Lionel, BOEY , [[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, ...&lt;br /&gt;
* Tiaming GUO, Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], [[AMQP]] ([[RabbitMQ]] ...), [[MQTT]], [[XMPP]], [[UPnP]] GENA, [[PubNub]], [[PubSubHubbub]], [[Apache Kafka]], Siena ... (?) : démonstration de [[PubNub]] et [[PubSubHubbub]], démonstration du déploiement d&#039;[[Apache Kafka]] sur le cloud [[Azure]]&lt;br /&gt;
* 8. Radhoane Ben younes, [[Business Process Management]]. Démonstration de BonitaSoft dans le projet [[eCOM]].&lt;br /&gt;
&lt;br /&gt;
==Sujets non choisis==&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Apache Storm]] et de [[Spark Streaming]] sur le cloud [[Azure]]. Démo supplémentaire du SaaS [[IFTTT]]&lt;br /&gt;
# [[BPM]] : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;br /&gt;
# [[Speech Recognition]]&lt;br /&gt;
# Simulateurs 3D : [[SGD]], [[Anarchy]] ...&lt;br /&gt;
# [[Software Forensics]] : cas d&#039;étude Linagora vs Bluemind (vous compléterez les pages en et fr de Wikipédia sur ce sujet).&lt;br /&gt;
# [[Continuous Delivery]]&lt;br /&gt;
# [[Privacy policy guidelines]] : Démo: application à votre projet [[ECOM-RICM]]&lt;br /&gt;
# Protocoles, Formats et Plateformes pour le bâtiment intelligent : [[oBIX]], ... démonstration d&#039;[[IoTSys]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014&amp;diff=19366</id>
		<title>EA2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014&amp;diff=19366"/>
		<updated>2014-11-06T22:02:23Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Séance Ven. 7/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2013|&amp;lt;&amp;lt; Etudes 2013]] [[EA|Sommaire]] [[EA2015|Etudes 2015 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;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é.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
[http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=64 Site Moodle]&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 3/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 19: Flavien Peyre, [[Firefox OS]] (démo d&#039;une app eCOM avec un téléphone ZTE Open C prété, mise en place sur le Marketplace FFOS). [[EA2014FirefoxOS|Fiche de synthèse]] [http://slides.com/darkskull/firefoxos#/ Tranparents]&lt;br /&gt;
* 21: Pierre-Henri Ginoux, [[Elastic Search]] ([[Lucene]], Marvel, Kibana, Logstach) Démo: intégration à votre projet [[ECOM-RICM]] [[EA2014_Elastic_Search|Fiche de synthèse]] [[Media:ElasticSearch.pdf|Transparents]]&lt;br /&gt;
* Clément VALENTIN, [[Open Data]] : [[OData]], ... ([[Watchdogs We Are Data]])  [[EA2014_Open_Data|Fiche de synthèse]] Tranparents&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 10/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 3: FREBY Rodolphe, Protocoles de communication pour l&#039;IoT et le M2M : [[MQTT]], [[XMPP]] IoT, CoAP, [[Adaptive Machine Messaging Protocol (AMMP)|AMMP]] ... : démonstration de [[MQTT]] avec [[Mosquitto]] et [[Node-RED]] et [[CoAP]] avec démonstration de [[Copper]] et [[Californium]] (démo avec [[Arduino Yún]]). [[EA2014ProtforIoT|Fiche de synthèse]] [[Media:SlideIoT_html.zip‎|Transparents]]&lt;br /&gt;
* 10: El Hadji Malick FALL, [[OS for WSN]] (dont [[Mbed OS]], [[RIOT]]). Démo de [[TinyOS]] avec le simulateur [[TOSSIM]] [[EA2014_OSforWSN|Fiche de synthèse]] [http://slides.com/falle38/osforwsn--2#/ Tranparents]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 17/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 5. Paul Labat, [[Speech Recognition]], [[EA2014_speech_recognition | Fiche de synthèse]]&lt;br /&gt;
* 15. Patrick Perea, Simulateurs 3D : [[SGD]], [[Anarchy]] ... [[EA2014_Sim3D_education | Fiche de synthèse]] [http://slides.com/patrick91perea/simulateurs3d/live#/ Tranparents]&lt;br /&gt;
* 16. William Bobo , GPGPU et Programmation de GPGPU [[EA2014_GPGPU|Fiche de synthèse]] [[https://slides.com/willbobo/gpgpu Transparents]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 24/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 9: Adam TIAMIOU, [[Smart City]], [[EA2014 - Smart City - Fiche de synthèse | Fiche de Synthèse]], [https://slides.com/laraisonduplusjuste/smart-city/ Transparent]&lt;br /&gt;
* 18. Jérôme BARBIER, Communications longue distance pour l&#039;[[Internet des Choses]] : [[SigFox]], [[LoRa]], ... Démonstration avec les starter kits Semtech et une passerelle Kerlink (disponible à [[FabMSTIC]]). [[EA2014_IoT_Communication | Fiche de synthèse]] [[Media:Slides-ea-presentation.zip‎|Transparents]]&lt;br /&gt;
* 6. Paul Mariage, [[BitCoin]] : principes, vices et vertus&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 7/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 12. Arthur Clerc-Gherardi, [[OSGi]],[[OSGi | Fiche de synthèse]]&lt;br /&gt;
* 11.  Adji SAMBE, [[Scalatra]],[[EA2014_Scalatra | Fiche de synthèse]] &lt;br /&gt;
* 14. Augustin Husson, Conteneurs Linux ([[LXC]], [[Docker]], [[FreeBSD Jails]], [[OpenVZ]], [[Solaris Zones]] ...) : démonstration de [[Docker]] et de [[Docker OAR Cluster]]. [[EA2014_Docker|Fiche de synthèse]] [http://slides.com/augustinhusson/les-conteneurs#/ Slides]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 14/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 7: Lionel, BOEY , [[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, ...&lt;br /&gt;
* Tiaming GUO, Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], [[AMQP]] ([[RabbitMQ]] ...), [[MQTT]], [[XMPP]], [[UPnP]] GENA, [[PubNub]], [[PubSubHubbub]], [[Apache Kafka]], Siena ... (?) : démonstration de [[PubNub]] et [[PubSubHubbub]], démonstration du déploiement d&#039;[[Apache Kafka]] sur le cloud [[Azure]]&lt;br /&gt;
* 8. Radhoane Ben younes, [[Business Process Management]]. Démonstration de BonitaSoft dans le projet [[eCOM]].&lt;br /&gt;
&lt;br /&gt;
==Sujets non choisis==&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Apache Storm]] et de [[Spark Streaming]] sur le cloud [[Azure]]. Démo supplémentaire du SaaS [[IFTTT]]&lt;br /&gt;
# [[BPM]] : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;br /&gt;
# [[Speech Recognition]]&lt;br /&gt;
# Simulateurs 3D : [[SGD]], [[Anarchy]] ...&lt;br /&gt;
# [[Software Forensics]] : cas d&#039;étude Linagora vs Bluemind (vous compléterez les pages en et fr de Wikipédia sur ce sujet).&lt;br /&gt;
# [[Continuous Delivery]]&lt;br /&gt;
# [[Privacy policy guidelines]] : Démo: application à votre projet [[ECOM-RICM]]&lt;br /&gt;
# Protocoles, Formats et Plateformes pour le bâtiment intelligent : [[oBIX]], ... démonstration d&#039;[[IoTSys]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014&amp;diff=19364</id>
		<title>EA2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014&amp;diff=19364"/>
		<updated>2014-11-06T22:01:29Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Séance Ven. 7/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2013|&amp;lt;&amp;lt; Etudes 2013]] [[EA|Sommaire]] [[EA2015|Etudes 2015 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;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é.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
[http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=64 Site Moodle]&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 3/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 19: Flavien Peyre, [[Firefox OS]] (démo d&#039;une app eCOM avec un téléphone ZTE Open C prété, mise en place sur le Marketplace FFOS). [[EA2014FirefoxOS|Fiche de synthèse]] [http://slides.com/darkskull/firefoxos#/ Tranparents]&lt;br /&gt;
* 21: Pierre-Henri Ginoux, [[Elastic Search]] ([[Lucene]], Marvel, Kibana, Logstach) Démo: intégration à votre projet [[ECOM-RICM]] [[EA2014_Elastic_Search|Fiche de synthèse]] [[Media:ElasticSearch.pdf|Transparents]]&lt;br /&gt;
* Clément VALENTIN, [[Open Data]] : [[OData]], ... ([[Watchdogs We Are Data]])  [[EA2014_Open_Data|Fiche de synthèse]] Tranparents&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 10/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 3: FREBY Rodolphe, Protocoles de communication pour l&#039;IoT et le M2M : [[MQTT]], [[XMPP]] IoT, CoAP, [[Adaptive Machine Messaging Protocol (AMMP)|AMMP]] ... : démonstration de [[MQTT]] avec [[Mosquitto]] et [[Node-RED]] et [[CoAP]] avec démonstration de [[Copper]] et [[Californium]] (démo avec [[Arduino Yún]]). [[EA2014ProtforIoT|Fiche de synthèse]] [[Media:SlideIoT_html.zip‎|Transparents]]&lt;br /&gt;
* 10: El Hadji Malick FALL, [[OS for WSN]] (dont [[Mbed OS]], [[RIOT]]). Démo de [[TinyOS]] avec le simulateur [[TOSSIM]] [[EA2014_OSforWSN|Fiche de synthèse]] [http://slides.com/falle38/osforwsn--2#/ Tranparents]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 17/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 5. Paul Labat, [[Speech Recognition]], [[EA2014_speech_recognition | Fiche de synthèse]]&lt;br /&gt;
* 15. Patrick Perea, Simulateurs 3D : [[SGD]], [[Anarchy]] ... [[EA2014_Sim3D_education | Fiche de synthèse]] [http://slides.com/patrick91perea/simulateurs3d/live#/ Tranparents]&lt;br /&gt;
* 16. William Bobo , GPGPU et Programmation de GPGPU [[EA2014_GPGPU|Fiche de synthèse]] [[https://slides.com/willbobo/gpgpu Transparents]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 24/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 9: Adam TIAMIOU, [[Smart City]], [[EA2014 - Smart City - Fiche de synthèse | Fiche de Synthèse]], [https://slides.com/laraisonduplusjuste/smart-city/ Transparent]&lt;br /&gt;
* 18. Jérôme BARBIER, Communications longue distance pour l&#039;[[Internet des Choses]] : [[SigFox]], [[LoRa]], ... Démonstration avec les starter kits Semtech et une passerelle Kerlink (disponible à [[FabMSTIC]]). [[EA2014_IoT_Communication | Fiche de synthèse]] [[Media:Slides-ea-presentation.zip‎|Transparents]]&lt;br /&gt;
* 6. Paul Mariage, [[BitCoin]] : principes, vices et vertus&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 7/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 12. Arthur Clerc-Gherardi, [[OSGi | Fiche de synthèse]]&lt;br /&gt;
* 11.  Adji SAMBE, [[Scalatra]],[[EA2014_Scalatra | Fiche de synthèse]] &lt;br /&gt;
* 14. Augustin Husson, Conteneurs Linux ([[LXC]], [[Docker]], [[FreeBSD Jails]], [[OpenVZ]], [[Solaris Zones]] ...) : démonstration de [[Docker]] et de [[Docker OAR Cluster]]. [[EA2014_Docker|Fiche de synthèse]] [http://slides.com/augustinhusson/les-conteneurs#/ Slides]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 14/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 7: Lionel, BOEY , [[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, ...&lt;br /&gt;
* Tiaming GUO, Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], [[AMQP]] ([[RabbitMQ]] ...), [[MQTT]], [[XMPP]], [[UPnP]] GENA, [[PubNub]], [[PubSubHubbub]], [[Apache Kafka]], Siena ... (?) : démonstration de [[PubNub]] et [[PubSubHubbub]], démonstration du déploiement d&#039;[[Apache Kafka]] sur le cloud [[Azure]]&lt;br /&gt;
* 8. Radhoane Ben younes, [[Business Process Management]]. Démonstration de BonitaSoft dans le projet [[eCOM]].&lt;br /&gt;
&lt;br /&gt;
==Sujets non choisis==&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Apache Storm]] et de [[Spark Streaming]] sur le cloud [[Azure]]. Démo supplémentaire du SaaS [[IFTTT]]&lt;br /&gt;
# [[BPM]] : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;br /&gt;
# [[Speech Recognition]]&lt;br /&gt;
# Simulateurs 3D : [[SGD]], [[Anarchy]] ...&lt;br /&gt;
# [[Software Forensics]] : cas d&#039;étude Linagora vs Bluemind (vous compléterez les pages en et fr de Wikipédia sur ce sujet).&lt;br /&gt;
# [[Continuous Delivery]]&lt;br /&gt;
# [[Privacy policy guidelines]] : Démo: application à votre projet [[ECOM-RICM]]&lt;br /&gt;
# Protocoles, Formats et Plateformes pour le bâtiment intelligent : [[oBIX]], ... démonstration d&#039;[[IoTSys]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=EA2014&amp;diff=19362</id>
		<title>EA2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=EA2014&amp;diff=19362"/>
		<updated>2014-11-06T21:59:11Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Séance Ven. 7/11 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EA2013|&amp;lt;&amp;lt; Etudes 2013]] [[EA|Sommaire]] [[EA2015|Etudes 2015 &amp;gt;&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Etudes d&#039;approfondissement=&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5&lt;br /&gt;
&lt;br /&gt;
L&#039;objectif des études approfondissement est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance&lt;br /&gt;
&lt;br /&gt;
Dans votre futur vie d&#039;ingénieur, vous aurez à d&#039;une part, vous former par vous-même sur une technologie émergente et d&#039;autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.&lt;br /&gt;
Il s&#039;agira de réaliser&lt;br /&gt;
* le positionnement par rapport au marché&lt;br /&gt;
* d&#039;être critique&lt;br /&gt;
&lt;br /&gt;
Votre synthèse fait l&#039;objet d&#039;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é.&lt;br /&gt;
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d&#039;une démonstration.&lt;br /&gt;
&lt;br /&gt;
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.&lt;br /&gt;
&lt;br /&gt;
La présentation peut être réalisée avec [[reveal.js]]&lt;br /&gt;
&lt;br /&gt;
[[File:presentation-EA-RICM5-1314.pdf|transparents d&#039;introduction à l&#039;UE]]&lt;br /&gt;
&lt;br /&gt;
[http://imag-moodle.e.ujf-grenoble.fr/course/view.php?id=64 Site Moodle]&lt;br /&gt;
&lt;br /&gt;
=Planning des séances=&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 3/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 19: Flavien Peyre, [[Firefox OS]] (démo d&#039;une app eCOM avec un téléphone ZTE Open C prété, mise en place sur le Marketplace FFOS). [[EA2014FirefoxOS|Fiche de synthèse]] [http://slides.com/darkskull/firefoxos#/ Tranparents]&lt;br /&gt;
* 21: Pierre-Henri Ginoux, [[Elastic Search]] ([[Lucene]], Marvel, Kibana, Logstach) Démo: intégration à votre projet [[ECOM-RICM]] [[EA2014_Elastic_Search|Fiche de synthèse]] [[Media:ElasticSearch.pdf|Transparents]]&lt;br /&gt;
* Clément VALENTIN, [[Open Data]] : [[OData]], ... ([[Watchdogs We Are Data]])  [[EA2014_Open_Data|Fiche de synthèse]] Tranparents&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 10/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 3: FREBY Rodolphe, Protocoles de communication pour l&#039;IoT et le M2M : [[MQTT]], [[XMPP]] IoT, CoAP, [[Adaptive Machine Messaging Protocol (AMMP)|AMMP]] ... : démonstration de [[MQTT]] avec [[Mosquitto]] et [[Node-RED]] et [[CoAP]] avec démonstration de [[Copper]] et [[Californium]] (démo avec [[Arduino Yún]]). [[EA2014ProtforIoT|Fiche de synthèse]] [[Media:SlideIoT_html.zip‎|Transparents]]&lt;br /&gt;
* 10: El Hadji Malick FALL, [[OS for WSN]] (dont [[Mbed OS]], [[RIOT]]). Démo de [[TinyOS]] avec le simulateur [[TOSSIM]] [[EA2014_OSforWSN|Fiche de synthèse]] [http://slides.com/falle38/osforwsn--2#/ Tranparents]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 17/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 5. Paul Labat, [[Speech Recognition]], [[EA2014_speech_recognition | Fiche de synthèse]]&lt;br /&gt;
* 15. Patrick Perea, Simulateurs 3D : [[SGD]], [[Anarchy]] ... [[EA2014_Sim3D_education | Fiche de synthèse]] [http://slides.com/patrick91perea/simulateurs3d/live#/ Tranparents]&lt;br /&gt;
* 16. William Bobo , GPGPU et Programmation de GPGPU [[EA2014_GPGPU|Fiche de synthèse]] [[https://slides.com/willbobo/gpgpu Transparents]]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 24/10==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 9: Adam TIAMIOU, [[Smart City]], [[EA2014 - Smart City - Fiche de synthèse | Fiche de Synthèse]], [https://slides.com/laraisonduplusjuste/smart-city/ Transparent]&lt;br /&gt;
* 18. Jérôme BARBIER, Communications longue distance pour l&#039;[[Internet des Choses]] : [[SigFox]], [[LoRa]], ... Démonstration avec les starter kits Semtech et une passerelle Kerlink (disponible à [[FabMSTIC]]). [[EA2014_IoT_Communication | Fiche de synthèse]] [[Media:Slides-ea-presentation.zip‎|Transparents]]&lt;br /&gt;
* 6. Paul Mariage, [[BitCoin]] : principes, vices et vertus&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 7/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 12. Arthur Clerc-Gherardi, [[OSGi]]&lt;br /&gt;
* 11.  Adji SAMBE, [[Scalatra]],[[EA2014_Scalatra | Fiche de synthèse]] &lt;br /&gt;
* 14. Augustin Husson, Conteneurs Linux ([[LXC]], [[Docker]], [[FreeBSD Jails]], [[OpenVZ]], [[Solaris Zones]] ...) : démonstration de [[Docker]] et de [[Docker OAR Cluster]]. [[EA2014_Docker|Fiche de synthèse]] [http://slides.com/augustinhusson/les-conteneurs#/ Slides]&lt;br /&gt;
&lt;br /&gt;
==Séance Ven. 14/11==&lt;br /&gt;
* Enseignants: Georges-Pierre Bonneau, Didier Donsez&lt;br /&gt;
* 7: Lionel, BOEY , [[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, ...&lt;br /&gt;
* Tiaming GUO, Solutions [[Publish-Subscribe]] : Event Admin, [[ROS]], [[AMQP]] ([[RabbitMQ]] ...), [[MQTT]], [[XMPP]], [[UPnP]] GENA, [[PubNub]], [[PubSubHubbub]], [[Apache Kafka]], Siena ... (?) : démonstration de [[PubNub]] et [[PubSubHubbub]], démonstration du déploiement d&#039;[[Apache Kafka]] sur le cloud [[Azure]]&lt;br /&gt;
* 8. Radhoane Ben younes, [[Business Process Management]]. Démonstration de BonitaSoft dans le projet [[eCOM]].&lt;br /&gt;
&lt;br /&gt;
==Sujets non choisis==&lt;br /&gt;
# (Complex) [[Event Stream Processing]] : démonstration de [[Apache Storm]] et de [[Spark Streaming]] sur le cloud [[Azure]]. Démo supplémentaire du SaaS [[IFTTT]]&lt;br /&gt;
# [[BPM]] : démonstration de l&#039;outil OW2 Bonita sur le processus de suivi des stages (?)&lt;br /&gt;
# [[Speech Recognition]]&lt;br /&gt;
# Simulateurs 3D : [[SGD]], [[Anarchy]] ...&lt;br /&gt;
# [[Software Forensics]] : cas d&#039;étude Linagora vs Bluemind (vous compléterez les pages en et fr de Wikipédia sur ce sujet).&lt;br /&gt;
# [[Continuous Delivery]]&lt;br /&gt;
# [[Privacy policy guidelines]] : Démo: application à votre projet [[ECOM-RICM]]&lt;br /&gt;
# Protocoles, Formats et Plateformes pour le bâtiment intelligent : [[oBIX]], ... démonstration d&#039;[[IoTSys]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projets_2013-2014&amp;diff=17308</id>
		<title>Projets 2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projets_2013-2014&amp;diff=17308"/>
		<updated>2014-04-23T07:38:11Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* RICM4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;[[Projets 2012-2013]] [[Projets|^Projets^]] [[Projets 2014-2015]]&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=RICM5=&lt;br /&gt;
==Projet en école Semestre S10==&lt;br /&gt;
Responsable: Didier Donsez&lt;br /&gt;
&amp;lt;br&amp;gt;Démarrage : Lundi 27/01/2014 à 9H00 salle AIR (P259)&lt;br /&gt;
&amp;lt;br&amp;gt;Soutenance : Jeudi 27/03/2014 de 8H00 à 12H20 salles P253+P259 PREVOIR UN POT D&#039;AU REVOIR juste après les soutenances&lt;br /&gt;
&lt;br /&gt;
===Liste===&lt;br /&gt;
{|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Affectation des projets RICM5 2013-2014&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Planning Soutenance&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Enseignant(s)&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Dépot&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Documents&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
 | 08:00-08:40&lt;br /&gt;
 | [[V(ery)MMORPG]]&lt;br /&gt;
 | Marion Dalle, Rémi Piotaix&lt;br /&gt;
 | Jacques Léger&lt;br /&gt;
 | [[V(ery)MMORPG/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | Bientôt en Open-Source sur Github&lt;br /&gt;
 | [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - [[Media:ProjetXYZ-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
 | 08:40-09:20&lt;br /&gt;
 | [[Analyse d’opinion « temps réel » à partir de Twitter]]&lt;br /&gt;
 | Jordan Calvi, Mame Daba Diouf, Xu Feng&lt;br /&gt;
 | Fatoumata Camara (Objet Direct)&lt;br /&gt;
 | [[Analyse d’opinion « temps réel » à partir de Twitter/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | Non Open-Source&lt;br /&gt;
 | [[Media:Ricm5-s10-projet-twitter-presentation.pdf|transparents]] - [[Media:Ricm5-s10-projet-twitter-flyer.pdf|flyer]] - [[Media:Ricm5-s10-projet-twitter-poster.pdf|poster]] - [[Analyse_d’opinion_«_temps_réel_»_à_partir_de_Twitter/Screenshots|galerie photos]] - [http://vodinteprwes01.viseo.net/ demo]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
 | 09:20-10:00&lt;br /&gt;
 | [[SmartSelfService]]&lt;br /&gt;
 | Walid Bibi, Lotfi Manseur&lt;br /&gt;
 | Didier Donsez &amp;amp; Jérome Maisonnasse&lt;br /&gt;
 | [[SmartSelfService/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | [https://sourceforge.net/projects/smartselfservice dépôt]&lt;br /&gt;
 | [[Media:PrésentationPFE.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - [[Media:ProjetXYZ-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
 | 10:20-11:20&lt;br /&gt;
 | [[SmartCampus2014]]&lt;br /&gt;
 | Morgan Bidois, Laurène Guelorget, Nicolas Husson, Thomas Nunes, Simon Planes&lt;br /&gt;
 | Didier Donsez &amp;amp; Vivien Quema&lt;br /&gt;
 | [[SmartCampus2014/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | [https://github.com/thomasNDS/SmartCampus2014 dépôt]&lt;br /&gt;
 | [[Media:transparents_sc.pdf|transparents]] - [[Media:flyer_SC.pdf | flyer]] - [[Media:poster_SC.pdf | poster]] - [http://air.imag.fr/index.php/SmartCampus2014/FicheSuivi#Galerie galerie photos]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
 | 11:20-12:20&lt;br /&gt;
 | [[Extensions XBMC Sujet 2014 | Extensions XBMC]]&lt;br /&gt;
 | Nicolas Afonso, Jean-François Bianco, Pierre Lartigue, Elisa Martinez, Rebecca Poustis&lt;br /&gt;
 | Nicolas Palix&lt;br /&gt;
 | [[Extensions XBMC | Fiche Wiki ]]&amp;lt;br/&amp;gt; [[Extensions XBMC/Fiche_Suivi| Fiche de suivi]]&lt;br /&gt;
 | [[Extensions XBMC/Fiche_Suivi#Dépôts Git | dépôts]]&lt;br /&gt;
 | [[Media:ProjetXBMC.pdf |transparents]] - [[Media:ProjetXBMC-flyer.pdf|flyer]] - [[Media:ProjetXBMC-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
 | NA&lt;br /&gt;
 | [[RobAIR2014]] (Extension de Visioconférence [[MConf]])&lt;br /&gt;
 | NON CHOISI&lt;br /&gt;
 | Didier Donsez + UFRGS&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
 | NA&lt;br /&gt;
 | Réseaux de capteurs&lt;br /&gt;
 | Reporté 2015&lt;br /&gt;
 | Bernard Tourancheau&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
 | 17/03/14 9:45-10:15&lt;br /&gt;
 | Debsources: Live and Historical Views on Macro-Level Software Evolution&lt;br /&gt;
 | Matthieu Caneill&lt;br /&gt;
 | Vincent Danjean (?)&lt;br /&gt;
 |&lt;br /&gt;
 | En attente de revue par les pairs&lt;br /&gt;
 | [[Media:Slides.txt|transparents]] (encodage utf-8 pour un affichage correct dans un navigateur)&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
===MPI (Management de Projets Innovants)===&lt;br /&gt;
Le projet se déroule en parallèle de l&#039;UE MPI (Management de Projets Innovants) avec Stéphanie Diligent et Emmanuelle Tréhoust : &lt;br /&gt;
* Mardi 28/01 matin&lt;br /&gt;
* Lundi 3/02 matin&lt;br /&gt;
* Vendredi 7/02 matin&lt;br /&gt;
* Lundi 17/02 après-midi&lt;br /&gt;
* Mardi 18/03 matin.&lt;br /&gt;
&lt;br /&gt;
===Soutenances===&lt;br /&gt;
# Les soutenances de projet auront lieu en salle 253 pour les présentations et salle 259 pour les démos non transportables.&lt;br /&gt;
# Les soutenances de 40 minutes se décomposent en 20 minutes de présentation, 10 minutes de démonstration et 10 minutes de questions-réponses&lt;br /&gt;
# Les soutenances de 40 minutes se décomposent en 25-30 minutes de présentation, 15-20 minutes de démonstration et 10 minutes de questions-réponses&lt;br /&gt;
# Respectez la durée accordée.&lt;br /&gt;
# Les documents rendus doivent être tous sur le wiki (sauf pour les 2 projets confidentiels).&lt;br /&gt;
# Vous devez également produire un flyer A4 3 volet en anglais, un poster en anglais, des photos, des copies d&#039;écran, des vidéos et des screencasts&lt;br /&gt;
# Pour les screencasts, il existe [http://fr.wikipedia.org/wiki/Liste_de_logiciels_de_screencasting plein d&#039;outils] (autre qu&#039;un iPhone) &lt;br /&gt;
# Vous n&#039;imprimerez qu&#039;un exemplaire du poster en A4 (NB) et quelques exemplaires du flyer (NB).&lt;br /&gt;
# Il y aura des invités ! Soignez votre soutenance ! Répétez, répétez, répetez !&lt;br /&gt;
&lt;br /&gt;
== Projet biométrie ==&lt;br /&gt;
* [[Projet_biometrie-2013-2014#Serrure_faciale|Application Android de serrure vocale et faciale]]&lt;br /&gt;
&lt;br /&gt;
=RICM4=&lt;br /&gt;
* &#039;&#039;&#039;Ordre de passage pour les soutenances&#039;&#039;&#039; [http://doodle.com/e83ywui4y5hwn524 ici] &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;br&amp;gt;Plein temps du 7 au 10 Avril.&lt;br /&gt;
&amp;lt;br&amp;gt;Soutenance : 9 (matin,après-midi) et 10 Avril (matin) en P257.&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Affectation des projets RICM4 2013-2014&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Enseignant(s)&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Dépot git&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
 | [[COQP]]&lt;br /&gt;
 | Flavien PEYRE, Clément VALENTIN&lt;br /&gt;
 | Didier Donsez, Pierre Dubois&lt;br /&gt;
 | [[Proj-2013-2014-COQP| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/peyref/COQP &#039;&#039;&#039;github Openhab&#039;&#039;&#039;]/[https://github.com/clmdm&#039;&#039;&#039;github Binding EnOcean&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetXYZ/Rapport|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - [[Media:ProjetXYZ-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
 | [[RobAIR | RobAIR 1]]&lt;br /&gt;
 | Augustin HUSSON, Jérôme BARBIER&lt;br /&gt;
 | Didier Donsez, Amr Alyafi&lt;br /&gt;
 | [[Proj-2013-2014-RobAIR-1| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]/[[Proj-2013-2014-RobAIR-1-SRS| &#039;&#039;&#039;Fiche SRS&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/Nexucis/Rob-Air &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetRobAir2014-1.pdf|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
 | [[RobAIR | RobAIR 2]]&lt;br /&gt;
 | Paul	MARIAGE, David LEVAYER&lt;br /&gt;
 | Didier Donsez, Amr Alyafi&lt;br /&gt;
 | [[Proj-2013-2014-RobAIR-2| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/DavidLevayer/robAIR &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetRobAir2014-2.pdf|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
 | [[Sign2Speech]]&lt;br /&gt;
 | Arthur CLERC-GHERARDI, Patrick Alexandre PEREA&lt;br /&gt;
 | Didier Donsez&lt;br /&gt;
 | [[Proj-2013-2014-Sign2Speech| &#039;&#039;&#039;Fiche (FR)&#039;&#039;&#039;]],[[Proj-2013-2014-Sign2Speech-English| &#039;&#039;&#039;Fiche (EN)&#039;&#039;&#039;]],[[Proj-2013-2014-Sign2Speech-Spanish| &#039;&#039;&#039;Fiche (SP)&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/patrick91perea/Win32Project1/ &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:S2S-slides.pdf|Slides]] - [[Media:S2S-Flyer.pdf|Flyer-S2S]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
 | [[StartAIR |StartAIR]]&lt;br /&gt;
 | William BOBO, Corentin RICOU&lt;br /&gt;
 | Fabrice Dubost&lt;br /&gt;
 | [[Proj-2013-2014-StartAIR-2| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/will421/StartAir_Safe &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetXYZ/Rapport|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
 | [[Scanner 3D volant de batiments]]&lt;br /&gt;
 | SUN Xuan, GUO Kai, ZHANG Zhengmeng&lt;br /&gt;
 | Didier Donsez, Vivien Quema &lt;br /&gt;
 | [[Proj-2013-2014-flying-3Dscan| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/wizardkeven/slave &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:Proj-2013-2014-Scanner 3D volant de batiments rapport.pdf|rapport]] - [[Media:Proj-2013-2014-Scanner 3D volant de batiments.pdf|transparents]] &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
 | [[CannonBall de voitures autonomes]]&lt;br /&gt;
 | Benoît PERRUCHE, Jules LEGROS &lt;br /&gt;
 | Didier Donsez, Vivien Quema &lt;br /&gt;
 | [[Proj-2013-2014-Cannonball-de-Voitures-Autonomes| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/jules0legros/CannonBall_de_voitures_autonomes &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [https://github.com/jules0legros/CannonBall_de_voitures_autonomes/raw/master/Rapport/Rapport.pdf rapport] - [https://github.com/jules0legros/CannonBall_de_voitures_autonomes/raw/master/Rapport/Pr%C3%A9sentation.pdf transparents] - [https://github.com/jules0legros/CannonBall_de_voitures_autonomes/raw/master/Rapport/Flyer.pdf flyer] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
 | [[Serious Game: Handicap, parole et geste]]&lt;br /&gt;
 | Mehdi NAIT-SIDOUS, Pierre-Henri GINOUX&lt;br /&gt;
 | Olivier Richard, Marion Dohen et Estelle Gillet-perret, Amelie Rochet-Capellan&lt;br /&gt;
 | [[Proj-2013-2014-SeriousGame-Parole-et-Geste| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]/[[SRS_SeriousGame_RICM_Group| &#039;&#039;&#039;SRS&#039;&#039;&#039;]]/[[Proj-2013-2014-SeriousGame-Parole-et-Geste/UML| &#039;&#039;&#039;UML&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/MehdiNS/SeriousGame &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:Serious_Game.pdf|rapport]] - [[Media:PROJET_RICM4_SeriousGame.pptx|transparents]] - [[Media:x|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
 | [[Python sur STM32F4]]&lt;br /&gt;
 | Xavier XIA Ye, Isabelle TAO Xinxiu&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | [[Proj-2013-2014-Python-STM32F4| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/qazxiaye/Python_sur_STM32 &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:PythonSurSTM_Rapport.pdf|rapport]] - [[Media:PythonSurSTM_Soutenance.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
 | [[SmartCitizen 2014]]&lt;br /&gt;
 | Rodolphe FREBY, Paul	LABAT&lt;br /&gt;
 | Didier Donsez, Jérome Maisonnasse&lt;br /&gt;
 | [[Proj-2013-2014-SmartCitizen2014| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/PaulLabat/SmartCitizen &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[http://air.imag.fr/index.php/File:RapportSmartCitizen.pdf rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
 | [[Open DynDNS]]&lt;br /&gt;
 | Tianming GUO (RED), Lionel BOEY&lt;br /&gt;
 | Thomas Calmant, Didier Donsez&lt;br /&gt;
 | [[Proj-2013-2014-Open_DynDNS| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/umpri5450/Open_DynDNS &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:Projet_OpenDynDNS_BOEY_GUO_Report.pdf|rapport]] - [[Media:Open-DynDNS_PPT.pdf|transparents]] - [[Media:Open-DynDNS_Flyer.jpg|flyer]] - [[Media:Open-DynDNS_Poster.pdf|poster]] &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
 | [[Bras Robotique Handicap | Bras robotique à commande gestuelle pour le handicap 1]]&lt;br /&gt;
 | El Hadji Malick FALL, Adji Ndeye Ndate SAMBE&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | [[Proj-2013-2014-BrasRobot-Handicap-1| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/sambea/PL-BrasRobotique1-2014 &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:FallSambe_ProjetBrasRobotique1_rapport.pdf|rapport]] - [[Media:ProjetBrasRobotique1-transparents.pdf|transparents]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
 | [[Bras Robotique Handicap | Bras robotique à commande gestuelle pour le handicap 2]]&lt;br /&gt;
 | Adam	TIAMIOU, Radhoane BEN YOUNES&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | [[Proj-2013-2014-BrasRobot-Handicap-2| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]] - [[Proj-2013-2014-BrasRobot-Handicap-2| &#039;&#039;&#039;SRS&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/zeld4/ProjetRobot &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:RenduprojetRobot.pdf|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=3I4=&lt;br /&gt;
* [[STM32 Lego Mindstorm Brick]] : Didier Donsez&lt;br /&gt;
* [[Base de recharge autonome pour les robots RobAIR]]&lt;br /&gt;
&lt;br /&gt;
=M2PGI UE PM2M=&lt;br /&gt;
L&#039;UE [[Projets M2PGI Services Machine-to-Machine]] a pour objectif de prototyper une application [[Machine-to-Machine]] (M2M)&lt;br /&gt;
&amp;lt;br&amp;gt;Démarrage : semaine du 25/02/2014 (18 étudiants en 9 groupes)&lt;br /&gt;
&lt;br /&gt;
[[PM2M/2014/TP#Projets|Liste des Projets Réalisés]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:PROJET_RICM4_SeriousGame.pptx&amp;diff=17307</id>
		<title>File:PROJET RICM4 SeriousGame.pptx</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:PROJET_RICM4_SeriousGame.pptx&amp;diff=17307"/>
		<updated>2014-04-23T07:36:11Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: Slides Projet Serious Game 2014&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Slides Projet Serious Game 2014&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projets_2013-2014&amp;diff=17258</id>
		<title>Projets 2013-2014</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projets_2013-2014&amp;diff=17258"/>
		<updated>2014-04-18T17:27:27Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* RICM4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;&amp;lt;[[Projets 2012-2013]] [[Projets|^Projets^]] [[Projets 2014-2015]]&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=RICM5=&lt;br /&gt;
==Projet en école Semestre S10==&lt;br /&gt;
Responsable: Didier Donsez&lt;br /&gt;
&amp;lt;br&amp;gt;Démarrage : Lundi 27/01/2014 à 9H00 salle AIR (P259)&lt;br /&gt;
&amp;lt;br&amp;gt;Soutenance : Jeudi 27/03/2014 de 8H00 à 12H20 salles P253+P259 PREVOIR UN POT D&#039;AU REVOIR juste après les soutenances&lt;br /&gt;
&lt;br /&gt;
===Liste===&lt;br /&gt;
{|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Affectation des projets RICM5 2013-2014&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Planning Soutenance&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Enseignant(s)&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Dépot&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Documents&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
 | 08:00-08:40&lt;br /&gt;
 | [[V(ery)MMORPG]]&lt;br /&gt;
 | Marion Dalle, Rémi Piotaix&lt;br /&gt;
 | Jacques Léger&lt;br /&gt;
 | [[V(ery)MMORPG/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | Bientôt en Open-Source sur Github&lt;br /&gt;
 | [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - [[Media:ProjetXYZ-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
 | 08:40-09:20&lt;br /&gt;
 | [[Analyse d’opinion « temps réel » à partir de Twitter]]&lt;br /&gt;
 | Jordan Calvi, Mame Daba Diouf, Xu Feng&lt;br /&gt;
 | Fatoumata Camara (Objet Direct)&lt;br /&gt;
 | [[Analyse d’opinion « temps réel » à partir de Twitter/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | Non Open-Source&lt;br /&gt;
 | [[Media:Ricm5-s10-projet-twitter-presentation.pdf|transparents]] - [[Media:Ricm5-s10-projet-twitter-flyer.pdf|flyer]] - [[Media:Ricm5-s10-projet-twitter-poster.pdf|poster]] - [[Analyse_d’opinion_«_temps_réel_»_à_partir_de_Twitter/Screenshots|galerie photos]] - [http://vodinteprwes01.viseo.net/ demo]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
 | 09:20-10:00&lt;br /&gt;
 | [[SmartSelfService]]&lt;br /&gt;
 | Walid Bibi, Lotfi Manseur&lt;br /&gt;
 | Didier Donsez &amp;amp; Jérome Maisonnasse&lt;br /&gt;
 | [[SmartSelfService/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | [https://sourceforge.net/projects/smartselfservice dépôt]&lt;br /&gt;
 | [[Media:PrésentationPFE.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - [[Media:ProjetXYZ-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
 | 10:20-11:20&lt;br /&gt;
 | [[SmartCampus2014]]&lt;br /&gt;
 | Morgan Bidois, Laurène Guelorget, Nicolas Husson, Thomas Nunes, Simon Planes&lt;br /&gt;
 | Didier Donsez &amp;amp; Vivien Quema&lt;br /&gt;
 | [[SmartCampus2014/FicheSuivi|fiche de suivi]]&lt;br /&gt;
 | [https://github.com/thomasNDS/SmartCampus2014 dépôt]&lt;br /&gt;
 | [[Media:transparents_sc.pdf|transparents]] - [[Media:flyer_SC.pdf | flyer]] - [[Media:poster_SC.pdf | poster]] - [http://air.imag.fr/index.php/SmartCampus2014/FicheSuivi#Galerie galerie photos]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
 | 11:20-12:20&lt;br /&gt;
 | [[Extensions XBMC Sujet 2014 | Extensions XBMC]]&lt;br /&gt;
 | Nicolas Afonso, Jean-François Bianco, Pierre Lartigue, Elisa Martinez, Rebecca Poustis&lt;br /&gt;
 | Nicolas Palix&lt;br /&gt;
 | [[Extensions XBMC | Fiche Wiki ]]&amp;lt;br/&amp;gt; [[Extensions XBMC/Fiche_Suivi| Fiche de suivi]]&lt;br /&gt;
 | [[Extensions XBMC/Fiche_Suivi#Dépôts Git | dépôts]]&lt;br /&gt;
 | [[Media:ProjetXBMC.pdf |transparents]] - [[Media:ProjetXBMC-flyer.pdf|flyer]] - [[Media:ProjetXBMC-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
 | NA&lt;br /&gt;
 | [[RobAIR2014]] (Extension de Visioconférence [[MConf]])&lt;br /&gt;
 | NON CHOISI&lt;br /&gt;
 | Didier Donsez + UFRGS&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
 | NA&lt;br /&gt;
 | Réseaux de capteurs&lt;br /&gt;
 | Reporté 2015&lt;br /&gt;
 | Bernard Tourancheau&lt;br /&gt;
 | &lt;br /&gt;
 | &lt;br /&gt;
 |-&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
 | 17/03/14 9:45-10:15&lt;br /&gt;
 | Debsources: Live and Historical Views on Macro-Level Software Evolution&lt;br /&gt;
 | Matthieu Caneill&lt;br /&gt;
 | Vincent Danjean (?)&lt;br /&gt;
 |&lt;br /&gt;
 | En attente de revue par les pairs&lt;br /&gt;
 | [[Media:Slides.txt|transparents]] (encodage utf-8 pour un affichage correct dans un navigateur)&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
===MPI (Management de Projets Innovants)===&lt;br /&gt;
Le projet se déroule en parallèle de l&#039;UE MPI (Management de Projets Innovants) avec Stéphanie Diligent et Emmanuelle Tréhoust : &lt;br /&gt;
* Mardi 28/01 matin&lt;br /&gt;
* Lundi 3/02 matin&lt;br /&gt;
* Vendredi 7/02 matin&lt;br /&gt;
* Lundi 17/02 après-midi&lt;br /&gt;
* Mardi 18/03 matin.&lt;br /&gt;
&lt;br /&gt;
===Soutenances===&lt;br /&gt;
# Les soutenances de projet auront lieu en salle 253 pour les présentations et salle 259 pour les démos non transportables.&lt;br /&gt;
# Les soutenances de 40 minutes se décomposent en 20 minutes de présentation, 10 minutes de démonstration et 10 minutes de questions-réponses&lt;br /&gt;
# Les soutenances de 40 minutes se décomposent en 25-30 minutes de présentation, 15-20 minutes de démonstration et 10 minutes de questions-réponses&lt;br /&gt;
# Respectez la durée accordée.&lt;br /&gt;
# Les documents rendus doivent être tous sur le wiki (sauf pour les 2 projets confidentiels).&lt;br /&gt;
# Vous devez également produire un flyer A4 3 volet en anglais, un poster en anglais, des photos, des copies d&#039;écran, des vidéos et des screencasts&lt;br /&gt;
# Pour les screencasts, il existe [http://fr.wikipedia.org/wiki/Liste_de_logiciels_de_screencasting plein d&#039;outils] (autre qu&#039;un iPhone) &lt;br /&gt;
# Vous n&#039;imprimerez qu&#039;un exemplaire du poster en A4 (NB) et quelques exemplaires du flyer (NB).&lt;br /&gt;
# Il y aura des invités ! Soignez votre soutenance ! Répétez, répétez, répetez !&lt;br /&gt;
&lt;br /&gt;
== Projet biométrie ==&lt;br /&gt;
* [[Projet_biometrie-2013-2014#Serrure_faciale|Application Android de serrure vocale et faciale]]&lt;br /&gt;
&lt;br /&gt;
=RICM4=&lt;br /&gt;
* &#039;&#039;&#039;Ordre de passage pour les soutenances&#039;&#039;&#039; [http://doodle.com/e83ywui4y5hwn524 ici] &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;br&amp;gt;Plein temps du 7 au 10 Avril.&lt;br /&gt;
&amp;lt;br&amp;gt;Soutenance : 9 (matin,après-midi) et 10 Avril (matin) en P257.&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Affectation des projets RICM4 2013-2014&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Enseignant(s)&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Dépot git&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
 | [[COQP]]&lt;br /&gt;
 | Flavien PEYRE, Clément VALENTIN&lt;br /&gt;
 | Didier Donsez, Pierre Dubois&lt;br /&gt;
 | [[Proj-2013-2014-COQP| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/peyref/COQP &#039;&#039;&#039;github Openhab&#039;&#039;&#039;]/[https://github.com/clmdm&#039;&#039;&#039;github Binding EnOcean&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetXYZ/Rapport|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - [[Media:ProjetXYZ-poster.pdf|poster]] - [[Media:ProjetXYZ-video.mp4|video]] - [[Media:ProjetXYZ-screencast.avi|screencast]] - [[ProjetXYZ/Suivi#Galerie|galerie photos]]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
 | [[RobAIR | RobAIR 1]]&lt;br /&gt;
 | Augustin HUSSON, Jérôme BARBIER&lt;br /&gt;
 | Didier Donsez, Amr Alyafi&lt;br /&gt;
 | [[Proj-2013-2014-RobAIR-1| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]/[[Proj-2013-2014-RobAIR-1-SRS| &#039;&#039;&#039;Fiche SRS&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/Nexucis/Rob-Air &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetRobAir2014-1.pdf|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
 | [[RobAIR | RobAIR 2]]&lt;br /&gt;
 | Paul	MARIAGE, David LEVAYER&lt;br /&gt;
 | Didier Donsez, Amr Alyafi&lt;br /&gt;
 | [[Proj-2013-2014-RobAIR-2| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/DavidLevayer/robAIR &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetRobAir2014-2.pdf|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
 | [[Sign2Speech]]&lt;br /&gt;
 | Arthur CLERC-GHERARDI, Patrick Alexandre PEREA&lt;br /&gt;
 | Didier Donsez&lt;br /&gt;
 | [[Proj-2013-2014-Sign2Speech| &#039;&#039;&#039;Fiche (FR)&#039;&#039;&#039;]],[[Proj-2013-2014-Sign2Speech-English| &#039;&#039;&#039;Fiche (EN)&#039;&#039;&#039;]],[[Proj-2013-2014-Sign2Speech-Spanish| &#039;&#039;&#039;Fiche (SP)&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/patrick91perea/Win32Project1/ &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
 | [[StartAIR |StartAIR]]&lt;br /&gt;
 | William BOBO, Corentin RICOU&lt;br /&gt;
 | Fabrice Dubost&lt;br /&gt;
 | [[Proj-2013-2014-StartAIR-2| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/will421/StartAir_Safe &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:ProjetXYZ/Rapport|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
 | [[Scanner 3D volant de batiments]]&lt;br /&gt;
 | SUN Xuan, GUO Kai, ZHANG Zhengmeng&lt;br /&gt;
 | Didier Donsez, Vivien Quema &lt;br /&gt;
 | [[Proj-2013-2014-flying-3Dscan| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/wizardkeven/slave &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:Proj-2013-2014-Scanner 3D volant de batiments rapport.pdf|rapport]] - [[Media:Proj-2013-2014-Scanner 3D volant de batiments.pdf|transparents]] &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
 | [[CannonBall de voitures autonomes]]&lt;br /&gt;
 | Benoît PERRUCHE, Jules LEGROS &lt;br /&gt;
 | Didier Donsez, Vivien Quema &lt;br /&gt;
 | [[Proj-2013-2014-Cannonball-de-Voitures-Autonomes| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/jules0legros/CannonBall_de_voitures_autonomes &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [https://github.com/jules0legros/CannonBall_de_voitures_autonomes/raw/master/Rapport/Rapport.pdf rapport] - [https://github.com/jules0legros/CannonBall_de_voitures_autonomes/raw/master/Rapport/Pr%C3%A9sentation.pdf transparents] - [https://github.com/jules0legros/CannonBall_de_voitures_autonomes/raw/master/Rapport/Flyer.pdf flyer] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
 | [[Serious Game: Handicap, parole et geste]]&lt;br /&gt;
 | Mehdi NAIT-SIDOUS, Pierre-Henri GINOUX&lt;br /&gt;
 | Olivier Richard, Marion Dohen et Estelle Gillet-perret, Amelie Rochet-Capellan&lt;br /&gt;
 | [[Proj-2013-2014-SeriousGame-Parole-et-Geste| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]/[[SRS_SeriousGame_RICM_Group| &#039;&#039;&#039;SRS&#039;&#039;&#039;]]/[[Proj-2013-2014-SeriousGame-Parole-et-Geste/UML| &#039;&#039;&#039;UML&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/MehdiNS/SeriousGame &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:Serious_Game.pdf|rapport]] - [[Media:x|transparents]] - [[Media:x|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
 | [[Python sur STM32F4]]&lt;br /&gt;
 | Xavier XIA Ye, Isabelle TAO Xinxiu&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | [[Proj-2013-2014-Python-STM32F4| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/qazxiaye/Python_sur_STM32 &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:PythonSurSTM_Rapport.pdf|rapport]] - [[Media:PythonSurSTM_Soutenance.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
 | [[SmartCitizen 2014]]&lt;br /&gt;
 | Rodolphe FREBY, Paul	LABAT&lt;br /&gt;
 | Didier Donsez, Jérome Maisonnasse&lt;br /&gt;
 | [[Proj-2013-2014-SmartCitizen2014| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/PaulLabat/SmartCitizen &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[http://air.imag.fr/index.php/File:RapportSmartCitizen.pdf rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
 | [[Open DynDNS]]&lt;br /&gt;
 | Tianming GUO (RED), Lionel BOEY&lt;br /&gt;
 | Thomas Calmant, Didier Donsez&lt;br /&gt;
 | [[Proj-2013-2014-Open_DynDNS| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/umpri5450/Open_DynDNS &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:Projet_OpenDynDNS_BOEY_GUO_Report.pdf|rapport]] - [[Media:Open-DynDNS_PPT.pdf|transparents]] - [[Media:Open-DynDNS_Flyer.jpg|flyer]] - [[Media:Open-DynDNS_Poster.pdf|poster]] &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 12&lt;br /&gt;
 | [[Bras Robotique Handicap | Bras robotique à commande gestuelle pour le handicap 1]]&lt;br /&gt;
 | El Hadji Malick FALL, Adji Ndeye Ndate SAMBE&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | [[Proj-2013-2014-BrasRobot-Handicap-1| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/sambea/PL-BrasRobotique1-2014 &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:FallSambe_ProjetBrasRobotique1_rapport.pdf|rapport]] - [[Media:ProjetBrasRobotique1-transparents.pdf|transparents]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
!scope=&amp;quot;row&amp;quot;| 13&lt;br /&gt;
 | [[Bras Robotique Handicap | Bras robotique à commande gestuelle pour le handicap 2]]&lt;br /&gt;
 | Adam	TIAMIOU, Radhoane BEN YOUNES&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | [[Proj-2013-2014-BrasRobot-Handicap-2| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]] - [[Proj-2013-2014-BrasRobot-Handicap-2| &#039;&#039;&#039;SRS&#039;&#039;&#039;]]&lt;br /&gt;
 | [https://github.com/zeld4/ProjetRobot &#039;&#039;&#039;projet&#039;&#039;&#039;]&lt;br /&gt;
 | [[Media:RenduprojetRobot.pdf|rapport]] - [[Media:ProjetXYZ-transparents.pdf|transparents]] - [[Media:ProjetXYZ-flyer.pdf|flyer]] - &lt;br /&gt;
 |-&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=3I4=&lt;br /&gt;
* [[STM32 Lego Mindstorm Brick]] : Didier Donsez&lt;br /&gt;
* [[Base de recharge autonome pour les robots RobAIR]]&lt;br /&gt;
&lt;br /&gt;
=M2PGI UE PM2M=&lt;br /&gt;
L&#039;UE [[Projets M2PGI Services Machine-to-Machine]] a pour objectif de prototyper une application [[Machine-to-Machine]] (M2M)&lt;br /&gt;
&amp;lt;br&amp;gt;Démarrage : semaine du 25/02/2014 (18 étudiants en 9 groupes)&lt;br /&gt;
&lt;br /&gt;
[[PM2M/2014/TP#Projets|Liste des Projets Réalisés]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Serious_Game.pdf&amp;diff=17257</id>
		<title>File:Serious Game.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Serious_Game.pdf&amp;diff=17257"/>
		<updated>2014-04-18T17:24:53Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: Rapport de projet SeriousGame 2014&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rapport de projet SeriousGame 2014&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17123</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17123"/>
		<updated>2014-04-10T00:26:26Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 5. Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*Have an id to log in&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;: none&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:none&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
==4.1   Step1 (10/03/2014)==&lt;br /&gt;
The user can log in and start a game. The game allow to drag pictures and play sound when the picture is dropped. Important actions are saved dynamically in a local data base. This prototype is a really important step of the project development, it&#039;ll be a strong base to develop a lot of different games.&lt;br /&gt;
&lt;br /&gt;
==4.2   Step1 (2/04/2014)==&lt;br /&gt;
The user can log in and start a game.The user can start a game. The user drag and drop 3*6 = 18 different object to 3 different categories. If object belongs to the category, score increase of 5 points, else it decrease of 1 point. All tries are stored. The game end when all objects are removed, and a game menu appear asking to the user if he wants to try again or change game.&lt;br /&gt;
&lt;br /&gt;
==4.3   Step1 (11/04/2014)==&lt;br /&gt;
The user can log in and start a game.The previous game is still available, but a new one is available too. On the new one, 3 Objects are displayed on the right, and 3 shapes on the left. There is only one object corresponding to one shape. The user have to drag and drop the object to its own shape to win the round.Success and fail are stored in the data base. Score is update like in the previous game. A new round start each time there is a good answer.&lt;br /&gt;
&lt;br /&gt;
=5. Sources=&lt;br /&gt;
You can find global project&#039;s sources here : [https://github.com/MehdiNS/SeriousGame https://github.com/MehdiNS/SeriousGame]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17122</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17122"/>
		<updated>2014-04-10T00:24:56Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 5. Appendices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*Have an id to log in&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;: none&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:none&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
==4.1   Step1 (10/03/2014)==&lt;br /&gt;
The user can log in and start a game. The game allow to drag pictures and play sound when the picture is dropped. Important actions are saved dynamically in a local data base. This prototype is a really important step of the project development, it&#039;ll be a strong base to develop a lot of different games.&lt;br /&gt;
&lt;br /&gt;
==4.2   Step1 (2/04/2014)==&lt;br /&gt;
The user can log in and start a game.The user can start a game. The user drag and drop 3*6 = 18 different object to 3 different categories. If object belongs to the category, score increase of 5 points, else it decrease of 1 point. All tries are stored. The game end when all objects are removed, and a game menu appear asking to the user if he wants to try again or change game.&lt;br /&gt;
&lt;br /&gt;
==4.3   Step1 (11/04/2014)==&lt;br /&gt;
The user can log in and start a game.The previous game is still available, but a new one is available too. On the new one, 3 Objects are displayed on the right, and 3 shapes on the left. There is only one object corresponding to one shape. The user have to drag and drop the object to its own shape to win the round.Success and fail are stored in the data base. Score is update like in the previous game. A new round start each time there is a good answer.&lt;br /&gt;
&lt;br /&gt;
=5. Sources=&lt;br /&gt;
You can find global project&#039;s sources here : [https://github.com/MehdiNS/SeriousGame]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17121</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17121"/>
		<updated>2014-04-10T00:23:07Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 6. Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*Have an id to log in&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;: none&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:none&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
==4.1   Step1 (10/03/2014)==&lt;br /&gt;
The user can log in and start a game. The game allow to drag pictures and play sound when the picture is dropped. Important actions are saved dynamically in a local data base. This prototype is a really important step of the project development, it&#039;ll be a strong base to develop a lot of different games.&lt;br /&gt;
&lt;br /&gt;
==4.2   Step1 (2/04/2014)==&lt;br /&gt;
The user can log in and start a game.The user can start a game. The user drag and drop 3*6 = 18 different object to 3 different categories. If object belongs to the category, score increase of 5 points, else it decrease of 1 point. All tries are stored. The game end when all objects are removed, and a game menu appear asking to the user if he wants to try again or change game.&lt;br /&gt;
&lt;br /&gt;
==4.3   Step1 (11/04/2014)==&lt;br /&gt;
The user can log in and start a game.The previous game is still available, but a new one is available too. On the new one, 3 Objects are displayed on the right, and 3 shapes on the left. There is only one object corresponding to one shape. The user have to drag and drop the object to its own shape to win the round.Success and fail are stored in the data base. Score is update like in the previous game. A new round start each time there is a good answer.&lt;br /&gt;
&lt;br /&gt;
=5. Appendices=&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17120</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=17120"/>
		<updated>2014-04-10T00:18:59Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 4. Product evolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*Have an id to log in&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;: none&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:none&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
==4.1   Step1 (10/03/2014)==&lt;br /&gt;
The user can log in and start a game. The game allow to drag pictures and play sound when the picture is dropped. Important actions are saved dynamically in a local data base. This prototype is a really important step of the project development, it&#039;ll be a strong base to develop a lot of different games.&lt;br /&gt;
&lt;br /&gt;
==4.2   Step1 (2/04/2014)==&lt;br /&gt;
The user can log in and start a game.The user can start a game. The user drag and drop 3*6 = 18 different object to 3 different categories. If object belongs to the category, score increase of 5 points, else it decrease of 1 point. All tries are stored. The game end when all objects are removed, and a game menu appear asking to the user if he wants to try again or change game.&lt;br /&gt;
&lt;br /&gt;
==4.3   Step1 (11/04/2014)==&lt;br /&gt;
The user can log in and start a game.The previous game is still available, but a new one is available too. On the new one, 3 Objects are displayed on the right, and 3 shapes on the left. There is only one object corresponding to one shape. The user have to drag and drop the object to its own shape to win the round.Success and fail are stored in the data base. Score is update like in the previous game. A new round start each time there is a good answer.&lt;br /&gt;
&lt;br /&gt;
=5. Appendices=&lt;br /&gt;
=6. Index=&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=17119</id>
		<title>Proj-2013-2014-SeriousGame-Parole-et-Geste</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=17119"/>
		<updated>2014-04-10T00:10:45Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Week 12 (March 31th - March 11th) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Development of small 2D games to help children with language disorder.&lt;br /&gt;
A second objective is the recovery of the game data to determine the progression and the troubles experienced by children. In this way, we can understand their cognitive abilities and find better ways to help them. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team =&lt;br /&gt;
&lt;br /&gt;
*Tutors : Olivier Richard, Marion Dohen, Estelle Gillet-Perret, Amelie Rochet-Capellan&lt;br /&gt;
&lt;br /&gt;
*Members : Mehdi NAIT-SIDOUS, Pierre-Henri GINOUX &lt;br /&gt;
&lt;br /&gt;
*Departement : [http://www.polytech-grenoble.fr/ricm.html RICM 4], [[Polytech Grenoble]]&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
*[http://kivy.org Kivy]&lt;br /&gt;
*[http://gameprogrammingpatterns.com Blog on architectural patterns in game code]&lt;br /&gt;
*[https://www.dropbox.com/l/q6E0fhCswT7FbeS18PzV6e Image resources]&lt;br /&gt;
*[http://sega.tech.nhl.nl/wiki/index.php/Knowledgebase Wiki with a lot of links on serious game]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project objectives =&lt;br /&gt;
Le but du projet est de développer une application comprenant des mini jeux qui permettent d&#039;évaluer scientifiquement si la gestualité manuelle peut aider des enfants présentant des troubles communicatifs à mieux apprendre de nouveaux mots.&lt;br /&gt;
Une fois cette phase effectuée, il s&#039;agira ensuite de finaliser afin de proposer un outil facilement utilisable à un maximum  d&#039;utilisateurs implémentant une méthode d&#039;apprentissage de nouveaux mots en utilisant la gestualité manuelle.&lt;br /&gt;
&lt;br /&gt;
Il faut garder à l&#039;esprit que le jeu n&#039;est qu&#039;une composante du logiciel, nous allons donc dans un premier temps implémenter un jeu simple mais qui permettra de tester toute les composantes de l&#039;application.&lt;br /&gt;
&lt;br /&gt;
Objectifs pour le premier prototype de jeu :&lt;br /&gt;
A REMPLIR&lt;br /&gt;
&lt;br /&gt;
Objectifs pour l&#039;application :&lt;br /&gt;
* Système de login pour identifier l&#039;utilisateur de manière unique&lt;br /&gt;
* Facilité d&#039;ajouter un nouveau jeu dans l&#039;application&lt;br /&gt;
* Stockage des résultats en local&lt;br /&gt;
* Possiblité d&#039;envoyer les résultats sur un serveur Web&lt;br /&gt;
* Possibilité de modifier la configuration pour chaque jeu (changer la difficulté, les images utilisées...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://air.imag.fr/index.php/SRS_SeriousGame_RICM_Group&lt;br /&gt;
&lt;br /&gt;
= Progress of the project =&lt;br /&gt;
&lt;br /&gt;
The project started January 14th, 2013.&lt;br /&gt;
&lt;br /&gt;
== Week 1 (January 13th - Janurary 19th) == &lt;br /&gt;
*Project discovery&lt;br /&gt;
*Learning of Python&lt;br /&gt;
*Research on Kivy&lt;br /&gt;
*Research on serious gaming&lt;br /&gt;
&lt;br /&gt;
== Week 2 (January 20th - Janurary 26th) == &lt;br /&gt;
*Defining functional specifications&lt;br /&gt;
*Defining the problems we may/will have to sort out, like being able to store data using a user password. [http://pastebin.com/hvLUT6vc More details (in French)]&lt;br /&gt;
*Learning how SQLite works and can be use to store game data&lt;br /&gt;
&lt;br /&gt;
== Week 3 (January 27th - February 2th) == &lt;br /&gt;
*Reflexion about the class structure of the application&lt;br /&gt;
*Find a way to create dynamically the database&lt;br /&gt;
*Reflexion about the storage of settings&lt;br /&gt;
&lt;br /&gt;
== Week 4 (February 3th - February 9th) == &lt;br /&gt;
* Meeting with Marion Dohen and Amelie Rochet-Capellan&lt;br /&gt;
* Reflexions about the specifications&lt;br /&gt;
* Split the job in different steps (cf. documentation)&lt;br /&gt;
&lt;br /&gt;
== Week 5 (February 10th - February 16th) == &lt;br /&gt;
* First UML diagrams&lt;br /&gt;
* Begin of the first game prototype development&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 6 (February 17th - February 23th) == &lt;br /&gt;
* Include the SQlite Data Base in the application&lt;br /&gt;
* game prototype development&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Week 7 (February 24th - March 2nd) == &lt;br /&gt;
* UML Diagrams&lt;br /&gt;
* Game prototype development&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 8 (March 3th - March 9th) == &lt;br /&gt;
* End of the UML documentation&lt;br /&gt;
* Game prototype development (drag picture OK, sound OK)&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 9 (March 10th - March 16th) == &lt;br /&gt;
* Manage collide between widgets&lt;br /&gt;
* Display score and time and store it in data base&lt;br /&gt;
* Create two different class, Object and Category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Week 10 (March 17th - March 23th) == &lt;br /&gt;
*Add an end game Menu&lt;br /&gt;
*Create an &amp;quot;interesting&amp;quot; GamePlay&lt;br /&gt;
&lt;br /&gt;
== Week 11 (March 17th - March 23th) ==&lt;br /&gt;
*Correct bugs on prototype&lt;br /&gt;
*Enable video add&lt;br /&gt;
*Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 12 (March 24th - March 30th) ==&lt;br /&gt;
*Correct lasts bugs on prototype&lt;br /&gt;
&lt;br /&gt;
== Week 13-14 (March 31th - March 11th) ==&lt;br /&gt;
*Game3 development&lt;br /&gt;
*Enable CSV export of data stored in the data base&lt;br /&gt;
*Objects are now loaded from a txt file thanks to a parser&lt;br /&gt;
*3 items are randomly chosen and displayed on the left&lt;br /&gt;
*2 forms are randomly chosen and displayed on the right+1 corresponding to an object on the left&lt;br /&gt;
*Correct and Wrong answers are stored in the data base and can be export in CSV&lt;br /&gt;
*Objects are displayed dynamically&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=17118</id>
		<title>Proj-2013-2014-SeriousGame-Parole-et-Geste</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=17118"/>
		<updated>2014-04-10T00:10:31Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Progress of the project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Development of small 2D games to help children with language disorder.&lt;br /&gt;
A second objective is the recovery of the game data to determine the progression and the troubles experienced by children. In this way, we can understand their cognitive abilities and find better ways to help them. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team =&lt;br /&gt;
&lt;br /&gt;
*Tutors : Olivier Richard, Marion Dohen, Estelle Gillet-Perret, Amelie Rochet-Capellan&lt;br /&gt;
&lt;br /&gt;
*Members : Mehdi NAIT-SIDOUS, Pierre-Henri GINOUX &lt;br /&gt;
&lt;br /&gt;
*Departement : [http://www.polytech-grenoble.fr/ricm.html RICM 4], [[Polytech Grenoble]]&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
*[http://kivy.org Kivy]&lt;br /&gt;
*[http://gameprogrammingpatterns.com Blog on architectural patterns in game code]&lt;br /&gt;
*[https://www.dropbox.com/l/q6E0fhCswT7FbeS18PzV6e Image resources]&lt;br /&gt;
*[http://sega.tech.nhl.nl/wiki/index.php/Knowledgebase Wiki with a lot of links on serious game]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project objectives =&lt;br /&gt;
Le but du projet est de développer une application comprenant des mini jeux qui permettent d&#039;évaluer scientifiquement si la gestualité manuelle peut aider des enfants présentant des troubles communicatifs à mieux apprendre de nouveaux mots.&lt;br /&gt;
Une fois cette phase effectuée, il s&#039;agira ensuite de finaliser afin de proposer un outil facilement utilisable à un maximum  d&#039;utilisateurs implémentant une méthode d&#039;apprentissage de nouveaux mots en utilisant la gestualité manuelle.&lt;br /&gt;
&lt;br /&gt;
Il faut garder à l&#039;esprit que le jeu n&#039;est qu&#039;une composante du logiciel, nous allons donc dans un premier temps implémenter un jeu simple mais qui permettra de tester toute les composantes de l&#039;application.&lt;br /&gt;
&lt;br /&gt;
Objectifs pour le premier prototype de jeu :&lt;br /&gt;
A REMPLIR&lt;br /&gt;
&lt;br /&gt;
Objectifs pour l&#039;application :&lt;br /&gt;
* Système de login pour identifier l&#039;utilisateur de manière unique&lt;br /&gt;
* Facilité d&#039;ajouter un nouveau jeu dans l&#039;application&lt;br /&gt;
* Stockage des résultats en local&lt;br /&gt;
* Possiblité d&#039;envoyer les résultats sur un serveur Web&lt;br /&gt;
* Possibilité de modifier la configuration pour chaque jeu (changer la difficulté, les images utilisées...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://air.imag.fr/index.php/SRS_SeriousGame_RICM_Group&lt;br /&gt;
&lt;br /&gt;
= Progress of the project =&lt;br /&gt;
&lt;br /&gt;
The project started January 14th, 2013.&lt;br /&gt;
&lt;br /&gt;
== Week 1 (January 13th - Janurary 19th) == &lt;br /&gt;
*Project discovery&lt;br /&gt;
*Learning of Python&lt;br /&gt;
*Research on Kivy&lt;br /&gt;
*Research on serious gaming&lt;br /&gt;
&lt;br /&gt;
== Week 2 (January 20th - Janurary 26th) == &lt;br /&gt;
*Defining functional specifications&lt;br /&gt;
*Defining the problems we may/will have to sort out, like being able to store data using a user password. [http://pastebin.com/hvLUT6vc More details (in French)]&lt;br /&gt;
*Learning how SQLite works and can be use to store game data&lt;br /&gt;
&lt;br /&gt;
== Week 3 (January 27th - February 2th) == &lt;br /&gt;
*Reflexion about the class structure of the application&lt;br /&gt;
*Find a way to create dynamically the database&lt;br /&gt;
*Reflexion about the storage of settings&lt;br /&gt;
&lt;br /&gt;
== Week 4 (February 3th - February 9th) == &lt;br /&gt;
* Meeting with Marion Dohen and Amelie Rochet-Capellan&lt;br /&gt;
* Reflexions about the specifications&lt;br /&gt;
* Split the job in different steps (cf. documentation)&lt;br /&gt;
&lt;br /&gt;
== Week 5 (February 10th - February 16th) == &lt;br /&gt;
* First UML diagrams&lt;br /&gt;
* Begin of the first game prototype development&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 6 (February 17th - February 23th) == &lt;br /&gt;
* Include the SQlite Data Base in the application&lt;br /&gt;
* game prototype development&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Week 7 (February 24th - March 2nd) == &lt;br /&gt;
* UML Diagrams&lt;br /&gt;
* Game prototype development&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 8 (March 3th - March 9th) == &lt;br /&gt;
* End of the UML documentation&lt;br /&gt;
* Game prototype development (drag picture OK, sound OK)&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 9 (March 10th - March 16th) == &lt;br /&gt;
* Manage collide between widgets&lt;br /&gt;
* Display score and time and store it in data base&lt;br /&gt;
* Create two different class, Object and Category&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Week 10 (March 17th - March 23th) == &lt;br /&gt;
*Add an end game Menu&lt;br /&gt;
*Create an &amp;quot;interesting&amp;quot; GamePlay&lt;br /&gt;
&lt;br /&gt;
== Week 11 (March 17th - March 23th) ==&lt;br /&gt;
*Correct bugs on prototype&lt;br /&gt;
*Enable video add&lt;br /&gt;
*Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 12 (March 24th - March 30th) ==&lt;br /&gt;
*Correct lasts bugs on prototype&lt;br /&gt;
&lt;br /&gt;
== Week 12 (March 31th - March 11th) ==&lt;br /&gt;
*Game3 development&lt;br /&gt;
*Enable CSV export of data stored in the data base&lt;br /&gt;
*Objects are now loaded from a txt file thanks to a parser&lt;br /&gt;
*3 items are randomly chosen and displayed on the left&lt;br /&gt;
*2 forms are randomly chosen and displayed on the right+1 corresponding to an object on the left&lt;br /&gt;
*Correct and Wrong answers are stored in the data base and can be export in CSV&lt;br /&gt;
*Objects are displayed dynamically&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=16049</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=16049"/>
		<updated>2014-03-10T13:31:39Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 4. Product evolution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*Have an id to log in&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;: none&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:none&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
==4.1   Step1 (10/03/2014)==&lt;br /&gt;
The user can log in and start a game. The game allow to drag pictures and play sound when the picture is dropped. Important actions are saved dynamically in a local data base. This prototype is a really important step of the project development, it&#039;ll be a strong base to develop a lot of different games.&lt;br /&gt;
&lt;br /&gt;
=5. Appendices=&lt;br /&gt;
=6. Index=&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=16048</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=16048"/>
		<updated>2014-03-10T13:13:43Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 3.1 Requirement X.Y.Z (in Structured Natural Language) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*Have an id to log in&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;: none&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:none&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
&lt;br /&gt;
=5. Appendices=&lt;br /&gt;
=6. Index=&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=16047</id>
		<title>SRS SeriousGame RICM Group</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=SRS_SeriousGame_RICM_Group&amp;diff=16047"/>
		<updated>2014-03-10T13:10:36Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* 3.1 Requirement X.Y.Z (in Structured Natural Language) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Read first:&#039;&#039;&#039;&lt;br /&gt;
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx&lt;br /&gt;
* http://en.wikipedia.org/wiki/Software_requirements_specification&lt;br /&gt;
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Document History&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Version&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Authors&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validator&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Validation Date&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot; |&lt;br /&gt;
 | 0.1.0&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
 | TBC&lt;br /&gt;
&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=1.   Introduction=&lt;br /&gt;
==1.1   Purpose of the requirements document==&lt;br /&gt;
&lt;br /&gt;
This Software Requirements Specification (SRS) identifies the requirements for the serious game.&lt;br /&gt;
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves. &lt;br /&gt;
&lt;br /&gt;
==1.2   Scope of the product==&lt;br /&gt;
&lt;br /&gt;
- The product we are developing is a application of serious games&lt;br /&gt;
- The platform our app is used for .... WIP &lt;br /&gt;
&lt;br /&gt;
==1.3   Definitions, acronyms and abbreviations==&lt;br /&gt;
*Python : Python is a programming language that lets you work more quickly and integrate your systems more effectively.&lt;br /&gt;
*Kivy : Kivy is an open source python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch platforms.&lt;br /&gt;
*SQlite : Sqlite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL data engine.&lt;br /&gt;
&lt;br /&gt;
==1.4   References==&lt;br /&gt;
*[http://www.python.org/ Python] for definitions and documentation.&lt;br /&gt;
*[http://kivy.org/#home Kivy] for definitions and documentation.&lt;br /&gt;
*[http://www.sqlite.org/ SQlite] for definitions and documentation.&lt;br /&gt;
&lt;br /&gt;
==1.5   Overview of the remainder of the document==&lt;br /&gt;
The SRS regroup the specification of [[Serious_Game:_Handicap,_parole_et_geste]]. The second part is a General Description of the project and the third part presents all the requirements.The fourth part regroup some ideas to improve the final application. These ideas could be implement in future projects to improve the application.&lt;br /&gt;
&lt;br /&gt;
=2.   General description=&lt;br /&gt;
==2.1   Product perspective==&lt;br /&gt;
This project aim to develop an application including several games to help trisomic children to improve their gesture skills.&lt;br /&gt;
&lt;br /&gt;
==2.2   Product functions==&lt;br /&gt;
==2.3   User characteristics==&lt;br /&gt;
The user doesn&#039;t need any IT skills. Somone is needed to log in and eventually configure the game, then the child just need to understand game&#039;s rules and he also needs to know how to use a tablet.&lt;br /&gt;
&lt;br /&gt;
==2.4   General constraints==&lt;br /&gt;
Application constraints&lt;br /&gt;
*Local save of statistics&lt;br /&gt;
*Upload statistics&lt;br /&gt;
*Easy to add a game&lt;br /&gt;
*Easy to use&lt;br /&gt;
*Identification with a personnal ID&lt;br /&gt;
*Dynamic data base&lt;br /&gt;
&lt;br /&gt;
Game constraints&lt;br /&gt;
*Sound&lt;br /&gt;
*Record&lt;br /&gt;
*Interesting gameplay&lt;br /&gt;
&lt;br /&gt;
==2.5   Assumptions and dependencies==&lt;br /&gt;
=3.Specific requirements, covering functional, non-functional and interface requirements=&lt;br /&gt;
* document external interfaces,&lt;br /&gt;
* describe system functionality and performance&lt;br /&gt;
* specify logical database requirements,&lt;br /&gt;
* design constraints,&lt;br /&gt;
* emergent system properties and quality characteristics.&lt;br /&gt;
&lt;br /&gt;
==3.1 Requirement X.Y.Z (in Structured Natural Language)==&lt;br /&gt;
&#039;&#039;&#039;Function&#039;&#039;&#039;:Rate scientifically if the gesture(touch pad) can help children with communicative troubles to learn new words.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Description&#039;&#039;&#039;:Implement an application with several serious games&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inputs&#039;&#039;&#039;: Pictures of houses, characters and vehicles. Words and sounds.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source&#039;&#039;&#039;: Researchers&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Outputs&#039;&#039;&#039;: Help children to learn new words&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Destination&#039;&#039;&#039;: Children T21&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Action&#039;&#039;&#039;:&lt;br /&gt;
* Several Games available&lt;br /&gt;
* Save game&#039;s actions in a local data base&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non functional requirements&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pre-condition&#039;&#039;&#039;:&lt;br /&gt;
*Have a tablet with the application&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Post-condition&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side-effects&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
=4. Product evolution=&lt;br /&gt;
&lt;br /&gt;
=5. Appendices=&lt;br /&gt;
=6. Index=&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=16046</id>
		<title>Proj-2013-2014-SeriousGame-Parole-et-Geste</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=16046"/>
		<updated>2014-03-10T12:47:34Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Week 8 (March 3nd - March 9th) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Development of small 2D games to help children with language disorder.&lt;br /&gt;
A second objective is the recovery of the game data to determine the progression and the troubles experienced by children. In this way, we can understand their cognitive abilities and find better ways to help them. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team =&lt;br /&gt;
&lt;br /&gt;
*Tutors : Olivier Richard, Marion Dohen, Estelle Gillet-Perret, Amelie Rochet-Capellan&lt;br /&gt;
&lt;br /&gt;
*Members : Mehdi NAIT-SIDOUS, Pierre-Henri GINOUX &lt;br /&gt;
&lt;br /&gt;
*Departement : [http://www.polytech-grenoble.fr/ricm.html RICM 4], [[Polytech Grenoble]]&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
*[http://kivy.org Kivy]&lt;br /&gt;
*[http://gameprogrammingpatterns.com Blog on architectural patterns in game code]&lt;br /&gt;
*[https://www.dropbox.com/l/q6E0fhCswT7FbeS18PzV6e Image resources]&lt;br /&gt;
*[http://sega.tech.nhl.nl/wiki/index.php/Knowledgebase Wiki with a lot of links on serious game]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project objectives =&lt;br /&gt;
Le but du projet est de développer une application comprenant des mini jeux qui permettent d&#039;évaluer scientifiquement si la gestualité manuelle peut aider des enfants présentant des troubles communicatifs à mieux apprendre de nouveaux mots.&lt;br /&gt;
Une fois cette phase effectuée, il s&#039;agira ensuite de finaliser afin de proposer un outil facilement utilisable à un maximum  d&#039;utilisateurs implémentant une méthode d&#039;apprentissage de nouveaux mots en utilisant la gestualité manuelle.&lt;br /&gt;
&lt;br /&gt;
Il faut garder à l&#039;esprit que le jeu n&#039;est qu&#039;une composante du logiciel, nous allons donc dans un premier temps implémenter un jeu simple mais qui permettra de tester toute les composantes de l&#039;application.&lt;br /&gt;
&lt;br /&gt;
Objectifs pour le premier prototype de jeu :&lt;br /&gt;
A REMPLIR&lt;br /&gt;
&lt;br /&gt;
Objectifs pour l&#039;application :&lt;br /&gt;
* Système de login pour identifier l&#039;utilisateur de manière unique&lt;br /&gt;
* Facilité d&#039;ajouter un nouveau jeu dans l&#039;application&lt;br /&gt;
* Stockage des résultats en local&lt;br /&gt;
* Possiblité d&#039;envoyer les résultats sur un serveur Web&lt;br /&gt;
* Possibilité de modifier la configuration pour chaque jeu (changer la difficulté, les images utilisées...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://air.imag.fr/index.php/SRS_SeriousGame_RICM_Group&lt;br /&gt;
&lt;br /&gt;
= Progress of the project =&lt;br /&gt;
&lt;br /&gt;
The project started January 14th, 2013.&lt;br /&gt;
&lt;br /&gt;
== Week 1 (January 13th - Janurary 19th) == &lt;br /&gt;
*Project discovery&lt;br /&gt;
*Learning of Python&lt;br /&gt;
*Research on Kivy&lt;br /&gt;
*Research on serious gaming&lt;br /&gt;
&lt;br /&gt;
== Week 2 (January 20th - Janurary 26th) == &lt;br /&gt;
*Defining functional specifications&lt;br /&gt;
*Defining the problems we may/will have to sort out, like being able to store data using a user password. [http://pastebin.com/hvLUT6vc More details (in French)]&lt;br /&gt;
*Learning how SQLite works and can be use to store game data&lt;br /&gt;
&lt;br /&gt;
== Week 3 (January 27th - February 2th) == &lt;br /&gt;
*Reflexion about the class structure of the application&lt;br /&gt;
*Find a way to create dynamically the database&lt;br /&gt;
*Reflexion about the storage of settings&lt;br /&gt;
&lt;br /&gt;
== Week 4 (February 3th - February 9th) == &lt;br /&gt;
* Meeting with Marion Dohen and Amelie Rochet-Capellan&lt;br /&gt;
* Reflexions about the specifications&lt;br /&gt;
* Split the job in different steps (cf. documentation)&lt;br /&gt;
&lt;br /&gt;
== Week 5 (February 10th - February 16th) == &lt;br /&gt;
* First UML diagrams&lt;br /&gt;
* Begin of the first game prototype developpement&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 6 (February 17th - February 23th) == &lt;br /&gt;
* Include the SQlite Data Base in the application&lt;br /&gt;
* game prototype developpement&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Week 7 (February 24th - March 2nd) == &lt;br /&gt;
* UML Diagrams&lt;br /&gt;
* Game prototype developpement&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 8 (March 3th - March 9th) == &lt;br /&gt;
* End of the UML documentation&lt;br /&gt;
* Game prototype developpement (drag picture OK, sound OK)&lt;br /&gt;
* Complete the online documentation&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=16045</id>
		<title>Proj-2013-2014-SeriousGame-Parole-et-Geste</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste&amp;diff=16045"/>
		<updated>2014-03-10T12:47:11Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: /* Progress of the project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
Development of small 2D games to help children with language disorder.&lt;br /&gt;
A second objective is the recovery of the game data to determine the progression and the troubles experienced by children. In this way, we can understand their cognitive abilities and find better ways to help them. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Team =&lt;br /&gt;
&lt;br /&gt;
*Tutors : Olivier Richard, Marion Dohen, Estelle Gillet-Perret, Amelie Rochet-Capellan&lt;br /&gt;
&lt;br /&gt;
*Members : Mehdi NAIT-SIDOUS, Pierre-Henri GINOUX &lt;br /&gt;
&lt;br /&gt;
*Departement : [http://www.polytech-grenoble.fr/ricm.html RICM 4], [[Polytech Grenoble]]&lt;br /&gt;
&lt;br /&gt;
= Links =&lt;br /&gt;
&lt;br /&gt;
*[http://kivy.org Kivy]&lt;br /&gt;
*[http://gameprogrammingpatterns.com Blog on architectural patterns in game code]&lt;br /&gt;
*[https://www.dropbox.com/l/q6E0fhCswT7FbeS18PzV6e Image resources]&lt;br /&gt;
*[http://sega.tech.nhl.nl/wiki/index.php/Knowledgebase Wiki with a lot of links on serious game]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Project objectives =&lt;br /&gt;
Le but du projet est de développer une application comprenant des mini jeux qui permettent d&#039;évaluer scientifiquement si la gestualité manuelle peut aider des enfants présentant des troubles communicatifs à mieux apprendre de nouveaux mots.&lt;br /&gt;
Une fois cette phase effectuée, il s&#039;agira ensuite de finaliser afin de proposer un outil facilement utilisable à un maximum  d&#039;utilisateurs implémentant une méthode d&#039;apprentissage de nouveaux mots en utilisant la gestualité manuelle.&lt;br /&gt;
&lt;br /&gt;
Il faut garder à l&#039;esprit que le jeu n&#039;est qu&#039;une composante du logiciel, nous allons donc dans un premier temps implémenter un jeu simple mais qui permettra de tester toute les composantes de l&#039;application.&lt;br /&gt;
&lt;br /&gt;
Objectifs pour le premier prototype de jeu :&lt;br /&gt;
A REMPLIR&lt;br /&gt;
&lt;br /&gt;
Objectifs pour l&#039;application :&lt;br /&gt;
* Système de login pour identifier l&#039;utilisateur de manière unique&lt;br /&gt;
* Facilité d&#039;ajouter un nouveau jeu dans l&#039;application&lt;br /&gt;
* Stockage des résultats en local&lt;br /&gt;
* Possiblité d&#039;envoyer les résultats sur un serveur Web&lt;br /&gt;
* Possibilité de modifier la configuration pour chaque jeu (changer la difficulté, les images utilisées...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://air.imag.fr/index.php/SRS_SeriousGame_RICM_Group&lt;br /&gt;
&lt;br /&gt;
= Progress of the project =&lt;br /&gt;
&lt;br /&gt;
The project started January 14th, 2013.&lt;br /&gt;
&lt;br /&gt;
== Week 1 (January 13th - Janurary 19th) == &lt;br /&gt;
*Project discovery&lt;br /&gt;
*Learning of Python&lt;br /&gt;
*Research on Kivy&lt;br /&gt;
*Research on serious gaming&lt;br /&gt;
&lt;br /&gt;
== Week 2 (January 20th - Janurary 26th) == &lt;br /&gt;
*Defining functional specifications&lt;br /&gt;
*Defining the problems we may/will have to sort out, like being able to store data using a user password. [http://pastebin.com/hvLUT6vc More details (in French)]&lt;br /&gt;
*Learning how SQLite works and can be use to store game data&lt;br /&gt;
&lt;br /&gt;
== Week 3 (January 27th - February 2th) == &lt;br /&gt;
*Reflexion about the class structure of the application&lt;br /&gt;
*Find a way to create dynamically the database&lt;br /&gt;
*Reflexion about the storage of settings&lt;br /&gt;
&lt;br /&gt;
== Week 4 (February 3th - February 9th) == &lt;br /&gt;
* Meeting with Marion Dohen and Amelie Rochet-Capellan&lt;br /&gt;
* Reflexions about the specifications&lt;br /&gt;
* Split the job in different steps (cf. documentation)&lt;br /&gt;
&lt;br /&gt;
== Week 5 (February 10th - February 16th) == &lt;br /&gt;
* First UML diagrams&lt;br /&gt;
* Begin of the first game prototype developpement&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 6 (February 17th - February 23th) == &lt;br /&gt;
* Include the SQlite Data Base in the application&lt;br /&gt;
* game prototype developpement&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Week 7 (February 24th - March 2nd) == &lt;br /&gt;
* UML Diagrams&lt;br /&gt;
* Game prototype developpement&lt;br /&gt;
* Complete the online documentation&lt;br /&gt;
&lt;br /&gt;
== Week 8 (March 3nd - March 9th) == &lt;br /&gt;
* End of the UML documentation&lt;br /&gt;
* Game prototype developpement (drag picture OK, sound OK)&lt;br /&gt;
* Complete the online documentation&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:RICM4-1314-GL-DM-SeriousGame.pdf&amp;diff=15971</id>
		<title>File:RICM4-1314-GL-DM-SeriousGame.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:RICM4-1314-GL-DM-SeriousGame.pdf&amp;diff=15971"/>
		<updated>2014-03-10T08:23:08Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: RICM4-prj14-grp8 uploaded a new version of &amp;amp;quot;File:RICM4-1314-GL-DM-SeriousGame.pdf&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DM Génie Logiciel &lt;br /&gt;
Ginoux, Nait-Sidous&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste/UML&amp;diff=15955</id>
		<title>Proj-2013-2014-SeriousGame-Parole-et-Geste/UML</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Proj-2013-2014-SeriousGame-Parole-et-Geste/UML&amp;diff=15955"/>
		<updated>2014-03-10T01:50:24Z</updated>

		<summary type="html">&lt;p&gt;RICM4-prj14-grp8: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:RICM4-1314-GL-DM-SeriousGame.pdf]]&lt;/div&gt;</summary>
		<author><name>RICM4-prj14-grp8</name></author>
	</entry>
</feed>