1. KALIMUCHOPlate-forme pour applications réparties
dynamiquement reconfigurées
Kalimucho - Interopérabilité des Plate-formes Mobiles 1
IUT Bayonne, Pays Basque
M. DALMAU
P. ROOSE
2. Domaines d’application
• Applications sensibles au contexte
• S’adapter au lieu, au temps, aux ressources du périphérique, au
réseau …
Plutôt que d’adapter les données, adapter les applications
Push d’application et/ou de services de l’application
• Applications ubiquitaires
• Suivre l’utilisateur dans son quotidien
Migration d’applications et/ou de services de l’application
Multi modalité
3. • Domaines : modélisation et analyse de données urbaines,
incitation et gouvernance, réseaux et mobilité, lieux et
conditions 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. Alarming
4
Adulte accompagnant
-Prend des photos/vidéo des
- dommages
- blessés
-Reçoit des instructions
Carte d’intervention / aide aux pompiers
+
Si la batterie est faible
=> Continuité de l’application
Par reconfiguration
dynamique
Organisations impliquées
Kalimucho - Interopérabilité des Plate-formes Mobiles
5. Communautés
• Création dynamique de communautés spontanées
Je suis en vacances au
Pays Basque du 15 au
31 juillet
Je fais une partie
d’exhibition de Pelote
Basque tous les jeudis
de juillet
Je vis au Pays
BasqueJe serais au Pays Basque en
Septembre pour l’été indien
Kalimucho - Interopérabilité des Plate-formes Mobiles 5
6. Kalimucho ?
Plateforme (à service) pour applications pervasives à base de
composants
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. Kalimucho !
Mais permet également …
De réaliser des installations instantanées et temporaires (short-lived
Installation/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 les
besoins 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. Principes
Kalimucho est une plateforme pour applications réparties
dont l’architecture peut être modifiée pendant que
l’application fonctionne.
• L’application :
• Constituée de composants distribués sur les différentes machines
• Un composant est une mini application pouvant avoir une
interface et capable d’échanger des données avec d’autres
• Les composants sont téléchargés et installés à la demande, ils
sont 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 contexte
Kalimucho - Interopérabilité des Plate-formes Mobiles 8
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. Applications auto-reconfigurables
L’application demande des reconfigurations à la plateforme
par exemple à l’initiative de l’utilisateur.
Supervision Récupération du contexte
Application
Infrastructure matérielle
Environnement
Autres
plateformes
Demande de
reconfiguration
reconfiguration
États + événements
États + événements
Kalimucho - Interopérabilité des Plate-formes Mobiles 10
11. Prise de décision
La plateforme décide de reconfigurations de
l’application en fonction du contexte
Supervision Récupération du contexte
Application
Prise de décision
Autres
plateformes
États + événementsreconfiguration
États + événements
Module de
test Fichier
de
configurations
La prise de décision n’est pas encore
implémentée, elle est simulée par un
module de test
Kalimucho - Interopérabilité des Plate-formes Mobiles 11
Infrastructure matérielle
Environnement
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 12
Le code et les ressources sont chargés dynamiquement
(dépôt de composants + caches de dépôts)
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éation
de connecteurs relais pour réseaux hétérogènes ou disjoints).
Kalimucho - Interopérabilité des Plate-formes Mobiles 13
14. Partie applicative (connecteurs)
• Possibilité de connexion en Wifi ou filaire
• Établissement automatique de routes directes
ou par relais
• Possibilité de connexion en GSM
• Mise en place d’un service de proxy installable sur toutes les
plateformes sur PC
• Détection des connexions/déconnexions/reconnexions
• Routage automatique via un proxy pour les mobiles en GSM
Proxy
Kalimucho - Interopérabilité des Plate-formes Mobiles 14
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_connecteur
Kalimucho - Interopérabilité des Plate-formes Mobiles 15
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
• SendApplicationList
Kalimucho - Interopérabilité des Plate-formes Mobiles 16
17. Exemple illustré (architecture)
• Une PF kalimucho sur chaque périphérique (PC, téléphone
et tablette)
• Une PF de test qui remplace la prise décision (fichier de test)
et récupère les infos de contexte
Tablette
(Xoom)
Dépôts de
composants
PF pour
test
Fichiers de test
réseau
PF
Appli
Téléphone(Nexus)
PC portable
PF
Appli Appli
PF
Kalimucho - Interopérabilité des Plate-formes Mobiles 17
18. Etape 1
Déploiement :
Capture de vidéo par le téléphone et envoi vers le PC
Commandes envoyées aux PFs
Nexus CreateComponent video application.video.VideoAcquisition [null] [c1]
PC CreateComponent affichagevideo application.affichevideo.AfficheVideo [c1] [null]
PC CreateConnector c1 Nexus internal
Xoom
Kalimucho - Interopérabilité des Plate-formes Mobiles 18
19. Etape 1 Etape 2
Migration :
Affichage de la vidéo déplacée du PC vers la tablette
Commandes envoyées aux PFs
PC SendComponent affichagevideo Xoom
Xoom
Kalimucho - Interopérabilité des Plate-formes Mobiles 19
20. Etape 2 Etape 3
Changement de service :
Vidéo remplacée par photos envoyées vers le PC et la tablette
Commandes envoyées aux PFs
Nexus RemoveComponent video
Xoom RemoveComponent affichagevideo
Xoom RemoveConnector c1
Nexus CreateComponent photo application.camera.ImageAcquisition [null] [c3]
PC CreateConnector c3 Nexus internal
PC CreateComponent affichage application.camera.AfficheImage [c3 not_used] [null]
Xoom CreateComponent affichage application.images.AfficheImage [c4 not_used] [null]
Nexus CreateConnector c4 internal Xoom
Nexus DuplicateOutputComponent photo 0 c4
Etape 1
Xoom
X
X
X
Kalimucho - Interopérabilité des Plate-formes Mobiles 20
21. Etape 4
Enrichissement de service :
Affichage des photos sur PC taguées par la position GPS
de l’expéditeur
Commandes envoyées aux PFs
Nexus CreateComponent acquisition application.GPS.GPSAcquisition [null] [c5]
Nexus CreateConnector c5 internal PC
PC ReconnectInputComponent affichage 1 c5
Etape 2 Etape 3Etape 1
Xoom
Kalimucho - Interopérabilité des Plate-formes Mobiles 21
22. Complexité / Performance
Version taille du code
lignes de
code
classes
PC 624 Ko(1) 11 629 192
Android 708 Ko(2) 15 860 293
Commande Temps d’exécution sur Nexus One
Création de composant 450 à 750 ms (2Ko de code téléchargé)
Suppression de composant
15 ms (dépend de l’activité du composant
mais limité par la PF)
Création de connecteur interne 3 à 15 ms
Création de connecteur distribué 10 à 100 ms
Suppression de connecteur interne 3 à 15 ms
Suppression de connecteur distribué 3 à 25 ms
Déconnexion / Reconnexion 2 à 7 ms
Migration 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. 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 (aspect
non présenté ici), au déploiement et à l’adaptation de structure d’applications distribuées à base de
composants 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 FR001130009000SP201300010100
C’est une “espèce” d’OS distribué
Kalimucho - Interopérabilité des Plate-formes Mobiles 23