Introduction Comparaison des diff´ erents middlewares JGroups API Conclusion D´ emonstration Projet de fin d’´ etude J´ er´ emy Cheynet – Yann Sionneau T´ el´ ecom SudParis 27 janvier 2011 1/28 J´ er´ emy Cheynet – Yann Sionneau Projet de fin d’´ etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Projet de fin d’etude
Jeremy Cheynet – Yann Sionneau
Telecom SudParis
27 janvier 2011
1/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
2/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
3/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Application standard
4/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Application repartie
5/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Travail a effectuer
Analyse des 3 middlewares
Choix d’un middleware
Portage du middleware sur Android
Test du middleware
Implementer l’API de jeu
6/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
7/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Fonctionnalites
API de communication
Differents langages
Client – Serveur
Installation et mise en oeuvre des exemples
Suivre le Userguide
Probleme pour lancer le client
8/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Qualite de la documentation et du support
Un Userguide
Une FAQ
Une mailing liste
Un bug traqueur
Un depot svn
Disponibilite sur Android, iPhone et reseau ad hoc
Java ==> Android
C/C++ ==> iPhone
TCP/IP ==> ad hoc
License
Spread License
9/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Fonctionnalites
API de communication
TCP/IP
Option supplementaire
Installation et mise en oeuvre des exemples
Importer les jars
Lancer l’application
10/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Qualite de la documentation et du support
Un Userguide
Une mailing list : Vide
Un bug tracker : Vide
Adresse postale
Disponibilite sur Android, iPhone et reseau ad hoc
Java uniquement
TCP/IP ==> ad hoc
License
GPL
11/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Fonctionnalites
API de communication
Choix du protocole (UDP, TCP/IP, JMS)
Options supplementaire
Installation et mise en oeuvre des exemples
Suivre le Userguide
Probleme pour lancer le client
12/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Qualite de la documentation et du support
Un Userguide
Canal irc
Une mailing liste
Un bug traqueur
Un depot git
Beaucoup de tests
Disponibilite sur Android, iPhone et reseau ad hoc
Deja porte sur Android
TCP/IP ==> ad hoc
License
LGPL
13/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
SpreadAppiaJGroupsChoix de l’API
Points a analyser
Fonctionnalite
Installation
Exemples
Support
License
Spread
Serveur
Complexe
–
Bien
BSD
Appia
Repartie
Simple
Facile
Inexistant
GPL
JGroups
Repartie
Simple
Nombreux
Parfait
LPGL
14/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Portage sur AndroidProblemes rencontresExemple Draw
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
15/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Portage sur AndroidProblemes rencontresExemple Draw
Portage sur Android
Existait deja mais etait depasse
Portage de la derniere version de JGroups
Changement de Scheduler et de Retransmitter
Utilisation du broadcast UDP (BPING)
16/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Portage sur AndroidProblemes rencontresExemple Draw
Problemes rencontres
est cense fonctionner depuis Android 1.5
impossible d’envoyer des paquets IGMP
ne fonctionne pas au final
n’est donc pas utilise dans notre portage de JGroups et dansl’API
17/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Portage sur AndroidProblemes rencontresExemple Draw
Exemple d’utilisation de l’application Draw
18/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Portage sur AndroidProblemes rencontresExemple Draw
Exemple d’utilisation de l’application Draw
19/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
JGroups Remote Object APITest du Remote Object API
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
20/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
JGroups Remote Object APITest du Remote Object API
JGroups Remote Object API
Permet de gerer des objets
Ils sont distribues sur tous les noeuds
Permet la creation, mise a jour, le RPC et la suppression desobjets
21/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
JGroups Remote Object APITest du Remote Object API
Test du Remote Object API
Un scenario de test a ete ecrit
Il teste les 4 fonctions de l’API
fonctionne sur ordinateur ...
... et sur Android
22/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
23/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Travail effectue
JGroups a ete porte sur Android
La Remote Object API fonctionne
Travail restant
Developper la Play Management API
24/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
1 Introduction
2 Comparaison des differents middlewaresSpreadAppiaJGroupsChoix de l’API
3 JGroupsPortage sur AndroidProblemes rencontresExemple Draw
4 APIJGroups Remote Object APITest du Remote Object API
5 Conclusion
6 Demonstration
25/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
TouchSurface
26/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
RemoteObjectAPI
exemple 1 : Creation et envoi d’un objet distant
exemple 2 : Reception et affichage des attibuts de l’objet distant
27/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude
IntroductionComparaison des differents middlewares
JGroupsAPI
ConclusionDemonstration
Des questions ?
Merci de votre attention :)
28/28 Jeremy Cheynet – Yann Sionneau Projet de fin d’etude