KALIMUCHOPlate-forme pour applications répartiesdynamiquement reconfiguréesKalimucho - Interopérabilité des Plate-formes M...
Domaines d’application• Applications sensibles au contexte• S’adapter au lieu, au temps, aux ressources du périphérique, a...
• Domaines : modélisation et analyse de données urbaines,incitation et gouvernance, réseaux et mobilité, lieux etcondition...
Alarming4Adulte accompagnant-Prend des photos/vidéo des- dommages- blessés-Reçoit des instructionsCarte d’intervention / a...
Communautés• Création dynamique de communautés spontanéesJe suis en vacances auPays Basque du 15 au31 juilletJe fais une p...
Kalimucho ? Plateforme (à service) pour applications pervasives à base decomposants Résout de nombreux problèmes : Appl...
Kalimucho ! Mais permet également … De réaliser des installations instantanées et temporaires (short-livedInstallation/d...
PrincipesKalimucho est une plateforme pour applications répartiesdont l’architecture peut être modifiée pendant quel’appli...
Ce que fait la plateforme• Créer/Supprimer des composants• Créer/Supprimer des connecteurs• Migrer des composants et assur...
Applications auto-reconfigurablesL’application demande des reconfigurations à la plateformepar exemple à l’initiative de l...
Prise de décisionLa plateforme décide de reconfigurations del’application en fonction du contexteSupervision Récupération ...
Partie applicative (composants)• Composants (Osagaia)• Cycle de vie géré par le modèle Osagaia• Accès aux flux d’E/S (lect...
Partie applicative (connecteurs)• Connecteurs (Korrontea)• Transfert d’objets + possibilité de traitement (CM)• La route p...
Partie applicative (connecteurs)• Possibilité de connexion en Wifi ou filaire• Établissement automatique de routes directe...
Langage de commande• Composants• CreateComponent nom classe [entrée1 entrée2 …] [sortie1 sortie2 …]• La liste des E/S peut...
Langage de commandes• Connecteurs• CreateConnector nom de vers• de et/ou vers peuvent être "internal"• RemoveConnector nom...
Exemple illustré (architecture)• Une PF kalimucho sur chaque périphérique (PC, téléphoneet tablette)• Une PF de test qui r...
Etape 1Déploiement :Capture de vidéo par le téléphone et envoi vers le PCCommandes envoyées aux PFsNexus  CreateComponent...
Etape 1 Etape 2Migration :Affichage de la vidéo déplacée du PC vers la tabletteCommandes envoyées aux PFsPC  SendComponen...
Etape 2 Etape 3Changement de service :Vidéo remplacée par photos envoyées vers le PC et la tabletteCommandes envoyées aux ...
Etape 4Enrichissement de service :Affichage des photos sur PC taguées par la position GPSde l’expéditeurCommandes envoyées...
Complexité / PerformanceVersion taille du codelignes decodeclassesPC 624 Ko(1) 11 629 192Android 708 Ko(2) 15 860 293Comma...
Kalimucho en bref• Résultat de plusieurs Thèses de doctorat• Kalimucho ne fait rien ! C’est une plateforme logicielle dist...
Démo ?Kalimucho - Interopérabilité des Plate-formes Mobiles 24
Prochain SlideShare
Chargement dans…5
×

Kalimucho

688 vues

Publié le

Plate-forme pour applications réparties dynamiquement reconfigurées

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
688
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Kalimucho

  1. 1. KALIMUCHOPlate-forme pour applications répartiesdynamiquement reconfiguréesKalimucho - Interopérabilité des Plate-formes Mobiles 1IUT Bayonne, Pays BasqueM. DALMAUP. ROOSE
  2. 2. Domaines d’application• Applications sensibles au contexte• S’adapter au lieu, au temps, aux ressources du périphérique, auréseau …Plutôt que d’adapter les données, adapter les applicationsPush d’application et/ou de services de l’application• Applications ubiquitaires• Suivre l’utilisateur dans son quotidienMigration d’applications et/ou de services de l’applicationMulti modalité
  3. 3. • Domaines : modélisation et analyse de données urbaines,incitation et gouvernance, réseaux et mobilité, lieux etconditions de vie et de travail, réseaux sociaux, énergie …• Objectif : nouveaux services contextualisés dans la ville• Guidage selon préférences utilisateurs• Inclut la gestion des handicaps physiques• Réaction aux événements locaux (espace, temps ou thématiques)• Accès à la multi-modalité :Bus, vélo, marche, voiture, TOUT• Habitats intelligents (Smart Home)• Santé (Smart Health)Villes intelligentes (Smart Cities)Kalimucho - Interopérabilité des Plate-formes Mobiles 3
  4. 4. Alarming4Adulte accompagnant-Prend des photos/vidéo des- dommages- blessés-Reçoit des instructionsCarte d’intervention / aide aux pompiers+Si la batterie est faible=> Continuité de l’applicationPar reconfigurationdynamiqueOrganisations impliquéesKalimucho - Interopérabilité des Plate-formes Mobiles
  5. 5. Communautés• Création dynamique de communautés spontanéesJe suis en vacances auPays Basque du 15 au31 juilletJe fais une partied’exhibition de PeloteBasque tous les jeudisde juilletJe vis au PaysBasqueJe serais au Pays Basque enSeptembre pour l’été indienKalimucho - Interopérabilité des Plate-formes Mobiles 5
  6. 6. Kalimucho ? Plateforme (à service) pour applications pervasives à base decomposants Résout de nombreux problèmes : Applications Dynamiques [re-]déploiement sur périphériques mobiles(smartphones, tablet, PC, etc.). Reconfigurations à chaud : Reconfiguration sans stopper l’application En fonction de besoins fonctionnels, énergétiques, matériels, utilisateur… Transfert d’informations entre composants logiciels Avec gestion automatique de passerelles Avec adaptation à la volée de données (complétion, format, modalité, etc.)Kalimucho - Interopérabilité des Plate-formes Mobiles 6
  7. 7. Kalimucho ! Mais permet également … De réaliser des installations instantanées et temporaires (short-livedInstallation/deployment ) sur des périphériques. Lorsque l’application est fermée, les composants déployés sont détruits. L’accès à des applications non résidentes (non prévues à l’avance) Des installations et des déploiements ad’hoc/contextualisés selon lesbesoins du moment Sans passer par une opération guidée par l’utilisateur Sans « [android-]market » ou « any app-store »Kalimucho - Interopérabilité des Plate-formes Mobiles 7
  8. 8. PrincipesKalimucho est une plateforme pour applications répartiesdont l’architecture peut être modifiée pendant quel’application fonctionne.• L’application :• Constituée de composants distribués sur les différentes machines• Un composant est une mini application pouvant avoir uneinterface et capable d’échanger des données avec d’autres• Les composants sont téléchargés et installés à la demande, ilssont supprimés dès qu’ils ne sont plus utilisés• Les composants sont reliés entre eux par des connecteurs• La plateforme• Modifie l’architecture de l’application• A la demande de l’application (de l’utilisateur)• En fonction du contexteKalimucho - Interopérabilité des Plate-formes Mobiles 8
  9. 9. Ce que fait la plateforme• Créer/Supprimer des composants• Créer/Supprimer des connecteurs• Migrer des composants et assurer les reconnexions• Ajouter/Supprimer/Dupliquer des connexions• Récupérer les informations de contexte :• Des composants (QdS, activité)• Des connecteurs (QdS, circulation d’info)• De l’infrastructure matérielle (batterie, CPU, mémoire, réseau)• De l’environnement (capteurs)• De l’application (demandes de reconfigurations)Kalimucho - Interopérabilité des Plate-formes Mobiles 9
  10. 10. Applications auto-reconfigurablesL’application demande des reconfigurations à la plateformepar exemple à l’initiative de l’utilisateur.Supervision Récupération du contexteApplicationInfrastructure matérielleEnvironnementAutresplateformesDemande dereconfigurationreconfigurationÉtats + événementsÉtats + événementsKalimucho - Interopérabilité des Plate-formes Mobiles 10
  11. 11. Prise de décisionLa plateforme décide de reconfigurations del’application en fonction du contexteSupervision Récupération du contexteApplicationPrise de décisionAutresplateformesÉtats + événementsreconfigurationÉtats + événementsModule detest FichierdeconfigurationsLa prise de décision n’est pas encoreimplémentée, elle est simulée par unmodule de testKalimucho - Interopérabilité des Plate-formes Mobiles 11Infrastructure matérielleEnvironnement
  12. 12. Partie applicative (composants)• Composants (Osagaia)• Cycle de vie géré par le modèle Osagaia• Accès aux flux d’E/S (lecture/écriture + événements)• Accès aux ressources (propres, matérielles et services de la PF)Kalimucho - Interopérabilité des Plate-formes Mobiles 12Le code et les ressources sont chargés dynamiquement(dépôt de composants + caches de dépôts)
  13. 13. Partie applicative (connecteurs)• Connecteurs (Korrontea)• Transfert d’objets + possibilité de traitement (CM)• La route pour relier 2 composants est recherchée par la PF (créationde connecteurs relais pour réseaux hétérogènes ou disjoints).Kalimucho - Interopérabilité des Plate-formes Mobiles 13
  14. 14. Partie applicative (connecteurs)• Possibilité de connexion en Wifi ou filaire• Établissement automatique de routes directesou par relais• Possibilité de connexion en GSM• Mise en place d’un service de proxy installable sur toutes lesplateformes sur PC• Détection des connexions/déconnexions/reconnexions• Routage automatique via un proxy pour les mobiles en GSMProxyKalimucho - Interopérabilité des Plate-formes Mobiles 14
  15. 15. Langage de commande• Composants• CreateComponent nom classe [entrée1 entrée2 …] [sortie1 sortie2 …]• La liste des E/S peut être vide: [null]• Une entrée peut être étiquetée "not_used" et être utilisée plus tard• RemoveComponent nom• SendComponent nom vers• DisconnectInputComponent nom connecteur• ReconnectInputComponent nom numéro nouveau_connecteur• DisconnectOutputComponent nom connecteur• DuplicateOutputComponent nom numéro nouveau_connecteurKalimucho - Interopérabilité des Plate-formes Mobiles 15
  16. 16. Langage de commandes• Connecteurs• CreateConnector nom de vers• de et/ou vers peuvent être "internal"• RemoveConnector nom• Contexte• ReadState• ReadContainerState nom• ReadQoS nom• nom est le nom d’un composant ou d’un connecteur• SendApplicationListKalimucho - Interopérabilité des Plate-formes Mobiles 16
  17. 17. Exemple illustré (architecture)• Une PF kalimucho sur chaque périphérique (PC, téléphoneet tablette)• Une PF de test qui remplace la prise décision (fichier de test)et récupère les infos de contexteTablette(Xoom)Dépôts decomposantsPF pourtestFichiers de testréseauPFAppliTéléphone(Nexus)PC portablePFAppli AppliPFKalimucho - Interopérabilité des Plate-formes Mobiles 17
  18. 18. Etape 1Déploiement :Capture de vidéo par le téléphone et envoi vers le PCCommandes envoyées aux PFsNexus  CreateComponent video application.video.VideoAcquisition [null] [c1]PC  CreateComponent affichagevideo application.affichevideo.AfficheVideo [c1] [null]PC  CreateConnector c1 Nexus internalXoomKalimucho - Interopérabilité des Plate-formes Mobiles 18
  19. 19. Etape 1 Etape 2Migration :Affichage de la vidéo déplacée du PC vers la tabletteCommandes envoyées aux PFsPC  SendComponent affichagevideo XoomXoomKalimucho - Interopérabilité des Plate-formes Mobiles 19
  20. 20. Etape 2 Etape 3Changement de service :Vidéo remplacée par photos envoyées vers le PC et la tabletteCommandes envoyées aux PFsNexus  RemoveComponent videoXoom  RemoveComponent affichagevideoXoom  RemoveConnector c1Nexus  CreateComponent photo application.camera.ImageAcquisition [null] [c3]PC  CreateConnector c3 Nexus internalPC  CreateComponent affichage application.camera.AfficheImage [c3 not_used] [null]Xoom  CreateComponent affichage application.images.AfficheImage [c4 not_used] [null]Nexus  CreateConnector c4 internal XoomNexus  DuplicateOutputComponent photo 0 c4Etape 1XoomXXXKalimucho - Interopérabilité des Plate-formes Mobiles 20
  21. 21. Etape 4Enrichissement de service :Affichage des photos sur PC taguées par la position GPSde l’expéditeurCommandes envoyées aux PFsNexus  CreateComponent acquisition application.GPS.GPSAcquisition [null] [c5]Nexus  CreateConnector c5 internal PCPC  ReconnectInputComponent affichage 1 c5Etape 2 Etape 3Etape 1XoomKalimucho - Interopérabilité des Plate-formes Mobiles 21
  22. 22. Complexité / PerformanceVersion taille du codelignes decodeclassesPC 624 Ko(1) 11 629 192Android 708 Ko(2) 15 860 293Commande Temps d’exécution sur Nexus OneCréation de composant 450 à 750 ms (2Ko de code téléchargé)Suppression de composant15 ms (dépend de l’activité du composantmais limité par la PF)Création de connecteur interne 3 à 15 msCréation de connecteur distribué 10 à 100 msSuppression de connecteur interne 3 à 15 msSuppression de connecteur distribué 3 à 25 msDéconnexion / Reconnexion 2 à 7 msMigration de composant 650 à 950 ms (2Ko de code téléchargé)Kalimucho - Interopérabilité des Plate-formes Mobiles 22(1) Taille du byte code(2) Taille de l’application installée
  23. 23. Kalimucho en bref• Résultat de plusieurs Thèses de doctorat• Kalimucho ne fait rien ! C’est une plateforme logicielle distribuée aidant à la conception (aspectnon présenté ici), au déploiement et à l’adaptation de structure d’applications distribuées à base decomposants logiciels s’exécutant sur des périphériques mobiles hétérogènes.• Flexible (migration, remplacement, reconfigurations dynamiques, contexte, etc.)• Adaptations à la volée des applications => un pas vers les “eternal/long life applications”• Facile• De développer des composants dédiés• Framework spécifique disponible (Modèles de composants/Connecteurs)• API de services de la plateforme• De déployer les composants et créer des scénarios• Utilisation d’un langage dédié simple• Dépôt de Brevets et transfert de technologie en cours• APP : IDDN FR001130009000SP201300010100C’est une “espèce” d’OS distribuéKalimucho - Interopérabilité des Plate-formes Mobiles 23
  24. 24. Démo ?Kalimucho - Interopérabilité des Plate-formes Mobiles 24

×