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
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é
• 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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
Démo ?
Kalimucho - Interopérabilité des Plate-formes Mobiles 24

Kalimucho

  • 1.
    KALIMUCHOPlate-forme pour applicationsréparties dynamiquement reconfigurées Kalimucho - Interopérabilité des Plate-formes Mobiles 1 IUT Bayonne, Pays Basque M. DALMAU P. ROOSE
  • 2.
    Domaines d’application • Applicationssensibles 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 desphotos/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 dynamiquede 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 !  Maispermet é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 uneplateforme 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 faitla 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 demandedes 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 Laplateforme 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 : Capturede 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 Etape2 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 Etape3 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 deservice : 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 Versiontaille 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
  • 24.
    Démo ? Kalimucho -Interopérabilité des Plate-formes Mobiles 24