Table des matières
1 Pile logicielle Open the Box
2 Principes Open the Box
3 Gestion des applications Open the Box
Ce préambule donne une esquisse des principes et des grands choix techniques de l’atelier Open the Box. Il est conseillé de commencer par cette présentation.
1 Pile logicielle Open the Box
Chaque HAB héberge une instance de l’architecture embarquée Open the Box. Cette architecture, très étroitement liée au Framework OSGi, est organisée suivant la pile logicielle Open the Box, donnée Figure 1 ci-dessous.
Figure 1 Pile logicielle Open the Box
La pile logicielle de ce schéma montre les briques originales du projet Open the Box déployées au-dessus d’une pile logicielle classique Java OSGi. Les briques standards, par exemple Conditional Permission Admin (gestion de droits d’accès), Configuration Admin (configuration), Log Service (journalisation), Http Service (serveur de pages web) sont utilisées et implicitement représentées par la couche nommée « OSGi environment, Smart Home Operator APIs ». Au-dessus de ce socle, sont déployés des modules appelés « base drivers » réalisés selon une même méthodologie pour représenter les équipements en tant que services dans le registre de services OSGi, en reproduisant la dynamicité de la disponibilité des équipements connectés aux réseaux locaux. La notion d’application est aussi spécifiée par le projet avec un packaging permettant l’exposition sur un magasin d’application et le déploiement par une chaine d’administration.
Le module Application Management sur cette figure inclut tous les logiciels embarqués supportant l’environnement Open the Box :
- la liaison avec la chaine d’administration et l’Application Store (MODUS, plate-forme de gestion PFG, liés par une couche d’APIs REST avec l’AS et les plates-formes de services tierces) ;
- la liaison avec le dashboard qui est offert à l’utilisateur domestique sur une tablette Android (via http Service) ;
- la gestion des permissions d’accès des applications tierces (bac à sable entre applications, filtrage des accès aux services remontés par les Base Drivers, etc.).
2 Principes Open the Box
La liaison entre équipement et application est basée sur l’utilisation de services OSGi (concept de l’OSGi Core Specification), et gérés automatiquement grâce à un format défini par la spécification OSGi Declarative Services (de l’OSGi Service Compendium).
Le nom du ou des services offerts par un équipement est exposé dans l’environnement de développement sous la forme d’un service caractérisé par son nom d’interface et ses propriétés.
Ce nom et ces propriétés sont forgés par le Base Driver afférent à la technologie de connectivité utilisée par l’équipement, à partir des données émises par l’équipement lui-même, en respectant les spécifications OSGi Device Access (chapitre 103 du Service Compendium). Par exemple, un équipement de la technologie EnOcean sera représenté par un service enregistré par l’EnOcean Base Driver avec l’interface EnOceanDevice et les propriétés ChipID, RORG, FUNC, TYPE spécifiées par la technologie EnOcean.
Les services utilisés (i.e. requis) par un bundle doivent être inscrits par le développeur dans le fichier Declarative Services qui accompagne le ou les bundles constituant l’application.
Lorsque l’on souhaite utiliser un équipement, il est primordial de connaitre les services qu’il va offrir.
La gestion des droits d’accès des applications aux différents services OSGi (et donc aux devices) est basée sur la spécification OSGi Conditional Permission Admin (chapitre 9 des Core Specifications).
Ce tutoriel explique comment développer une application Open the Box.
Celui-ci présente les base drivers des différentes technologies de connectivités utilisables.
3 Gestion des applications Open the Box
Figure 2 Architecture générale
Les équipements des réseaux domestiques implémentent des protocoles de réseaux de capteurs (ZigBee, EnOcean, etc.) et des protocoles IP (Philips Hue, etc.). Un environnement Java – avec la couche de modularité standard OSGi – exécute diverses applications tierces sur la passerelle embarquée. L’environnement logiciel embarqué est déployable sur une passerelle ‘over the top’ (e.g., Raspberry Pi) ou une passerelle domestique ‘triple play’ (e.g., LiveBox Play). Elle est administrée au travers du protocole TR-69 – standard d’administration utilisé par les opérateurs pour leurs passerelles domestiques – par une plate-forme d’administration (Auto-Configuration Server, ACS). Un ou plusieurs magasins d’applications (AS) et les applications d’administration tierces (plate-forme de gestion, PFG) sont connectée à l’ACS via une couche logicielle au-dessus de l’ACS présentant des APIs ouvertes (REST).
Les applications, une fois publiées par le fournisseur, sont disponibles depuis un magasin d’applications public (AS), capable de présenter à l’utilisateur la liste des applications compatibles avec son environnement :
Figure 3 Vue du catalogue de l’AppStore depuis le dashboard
Une fois l’application choisie et achetée dans le catalogue, l’AS permet de piloter l’installation, le démarrage et l’arrêt de cette application sur la HAB :
Figure 4 Gestion d’une application depuis l’AS
Un pilotage plus fin des applications est possible localement sur tablette, en utilisant l’application « Dashboard » :
Figure 5 Page d’accueil du dashboard
On voit ici la liste des applications installées ainsi que la liste des devices du réseau local reconnus par le framework Open the Box. Il est possible de démarrer, stopper, désinstaller les applications, ainsi que de les associer de manière fine aux équipements via un mécanisme de permissions :
Figure 6 Gestion des permissions
Dans l’exemple ci-dessus, on voit comment associer une application à des équipements dans une liste.