Architecture Logicielle du projet, quelques points techniques et tutoriaux

Premiers pas avec les outils de développement du projet

Deux plateformes sont à la disposition des étudiants pour le développement de ce projet.

Outils pour le développement du projet avec un Raspberry PI

projet_si3.pdf

Outils pour le développement du projet avec un Smart Phone

Après avoir installé Android Studio, voici deux tutoriaux pour de tous premiers développements sous android (Hello World! et une première application graphique).

La mise en oeuvre de service web de type REST est présentée dans ce tutorial.

Pour les plus avancés voici quelques conseils qui vous permettront de mettre en œuvre un broker MQTT sur votre téléphone:

Pour ceux qui voudraient retrouver un environnement Node-Red tel que celui utilisé sur le raspberry PI, sachez que Node-Red est aussi déployable sur Android (et pourquoi pas en effet !). (Installation de Node-Red sur un smarphone android et ici)

Architecture orienté service

Préambule

On peut distinguer deux grands types d'architectures logicielles dès lors que l'on met en place un équipement connecté qui peut être à la fois un terminal offrant une GUI comme une interface Web ou une plateforme de développement d'un objet connecté (mon Smartphone est avant tout, un ensemble de capteurs et d'actionneurs, comme la tactilité de l'écran, le capteur sonore, l'inclinomètre et l'affichage, le buzzer, etc.).

Selon le point de vue, le développement avec des mobiles peut reposer sur deux grands types d'architectures :

Ce second type d'intégration d'un smartphone est souvent difficile à envisager. En effet le smartphone est trop souvent perçu comme un terminal mobile plus proche du PC que de la télécommande, et pourtant …

Voici donc quelques exemples où le smartphone n'est pas un terminal complet susceptible d'accueillir des applications interactives dotés d'interacteurs graphiques.

Le smartphone comme écran tête haute, par exemple, ne permet que d'afficher des images, des vidéos, des pages web etc. mais ne permet pas d'interagir avec des applications, et donc d'entrer des données.

Le smartphone est aussi une boîte contenant un grand nombre de capteurs, qui suffisent pour nombre d'applications n'utilisant pas d'écran tactile.

Le téléphone peut être donc vu à l'instar du Rapsberry PI, comme un nano-ordinateur dotés de capteurs et d'actionneurs plus ou moins particuliers avec lesquels vous pouvez par programmation construire un équipement particulier. Dans ce projet, un bouton et un compteur sur l'écran en feront un objet similaire à celui des groupes utilisant un Raspberry PI.

une architecture orientée service en fait

Une architecture orientée service, est basée sur une approche distribuée. En premier lieu elle repose sur un ensemble de service disponibles. Chaque service fournit une API (Application Protocol Interface) comme celle d'une bibliothèque, à ceci près que les invocations de cette API se font à travers le réseau depuis un client vers un serveur.

Ces services peuvent fournir :

Tous ces services sont indépendants de l'application qui l'utilise. Ils sont ainsi utilisables et réutilisables par de multiples applications.

Une application est dès lors un orchestrateur qui gère la logique métier à mettre en place dans les interactions entre les services utilisés.

L'ajout d'un nouveau service dans les services disponibles est complétement indépendant de l'ajout d'une nouvelle application utilisant les services disponibles.

Cette architecture est donc particulièrement adaptée aux méthodes agiles où les incréments peuvent être de 2 catégories : ajouter un nouveau service (offert par un équipement, un système d'information, etc.) ou modifier l'application en modifiant la logique de l'orchestrateur.