2 Analyse fonctionnelle Dans ce chapitre, nous commencerons par présenterons les exigences fonctionnelles et techniques que devra satisfaire l intergiciel. Puis nous décrirons les différents acteurs qui seront susceptibles d interagir avec l intergiciel. Par la suite, nous résumons les différentes les services que doit fournir l intergiciel et les propriétés qu il devra posséder. 2.1 Exigences fonctionnelles La table ci-dessous résume les exigences fonctionnelles de l intergiciel. Exigence Description Abstractions communes L intergiciel doit fournir un moyen d abstraire les systèmes embarqués. Intégration et Interopérabilité Il faut l'intégrer et le combiner avec des systèmes hétérogènes. Composition Il doit être possible de regrouper des systèmes pour faciliter leur gestion ou pour créer des fédérations de services. Notification d événements L intergiciel doit prévoir des mécanismes pour notifier des événements réseau. Surveillance Un monitoring des systèmes est parfois nécessaire pour assurer un bon fonctionnement de l ensemble. Communication asynchrone Des systèmes peuvent ne pas opérer en même temps. Pour autant, l intergiciel doit prévoir un procédé pour qu ils puissent se coordonner. Découverte ad hoc A tout moment, les systèmes mobiles peuvent 25
apparaître et disparaître du réseau. Il faut donc leur permettre d'une part de se découvrir mutuellement et d'autre part d'offrir leurs services de manière spontanée. Liste des principales exigences fonctionnelles Abstractions communes Afin de s affranchir de la notion même de système embarqué, nous avons besoin d une représentation symbolique qui va nous permettre de considérer chaque système comme un tout [58 p 15]. Pour pouvoir créer des applications qui combinent des éléments logiciels et matériels, l intergiciel doit proposer un modèle de programmation où chaque élément représente un tout. Aussi, dans le modèle de programmation retenu, chaque système embarqué devra être désigné par le terme SystemeEmbarque. Intégration et Interopérabilité Dans certaine situation, il est nécessaire de combiner, plusieurs éléments matériels et logiciels. Pour que cette combinaison puisse fonctionner, l intergiciel devra permettre de résoudre des problématiques liées à l intégration des différents éléments et à leur interopérabilité. Composition Le fait de percevoir chaque système comme un tout ne signifie pas pour autant qu il ne soit pas décomposable [58 p 15]. La prolifération des systèmes embarqués étant un fait [26], l intergiciel doit posséder des fonctionnalités permettant de les organiser et les regrouper lorsqu on les met en réseau. Il devra en outre offrir aux utilisateurs des formalismes de représentation de la topologie réseau qui soient simples et efficaces. De même, il faut qu il puisse faciliter le parcours et la mise à jour des systèmes mis en réseau. Notification d événements D'une manière générale, les systèmes embarqués sont des systèmes réactifs, en ce sens qu ils sont en interaction permanente avec leur environnement via des capteurs et des actionneurs. Les capteurs servent à connaître l état de l environnement, alors que les actionneurs agissent dessus. Les systèmes doivent détecter tout événement qui conduit à un changement de l environnement, et réagir en fonction de celui-ci. Dans le cas d'un réseau, plusieurs systèmes peuvent être intéressés par un même événement (détecté par un autre système). L intergiciel doit donc fournir des mécanismes permettant de notifier tout système intéressé par un événement. 26
Surveillance L intergiciel doit posséder des fonctionnalités permettant de surveiller l état des systèmes embarqués qu il interconnecte. Car de plus en plus d appareils sont connectés via un réseau sans fil. Or dans ce type de réseau les déconnexions sont intempestives. Cela peut être dû à plusieurs raisons : arrêt volontaire, mise en veille de l appareil, perte de signal réseau, interférence Il se peut également qu un système puisse se retrouver en état de surcharge (par exemple en cas de mémoire saturée) et ne peut donc plus répondre aux «sollicitations» qui lui sont envoyées. Concrètement, dans notre étude cas, il s agit de surveiller les capteurs, l imprimante et la base de données ; si un dysfonctionnement (déconnexion, surcharge, ) est repéré, il faut en avertir l administrateur. Communication asynchrone Le modèle de communication synchrone doit être supporté par défaut par l intergiciel. Il doit également supporter le modèle de communication asynchrone afin de permettre aux systèmes mis en réseaux d échanger des messages même si les systèmes en question ne sont pas présents en même temps. Ce type de communication est très utile dans le cas des systèmes mobiles, notamment dû au fait que les déconnexions intempestives. Découverte ad hoc L intergiciel est prévu pour être déployé sur des systèmes mobiles. Pour ce type de système, il n existe pas ou peu d infrastructure réseau, ils se connectent les uns aux autres de manière ad hoc au travers d un réseau sans fil de type Wifi ou Bluetooth. Il est nécessaire que l intergiciel permette aux appareils mobiles de se découvrir mutuellement de manière spontanée et de s auto organiser entre eux. De même, il doit leur permettre de découvrir les protocoles de communication en présence et les services disponibles. 27
2.2 Exigences techniques Exigence Taille mémoire réduite Flexibilité Sécurité Hétérogénéité et distribution réseau Passage à l échelle et performance Évolution et adaptabilité Description La taille mémoire de l intergiciel ne doit pas dépasser 128 kilo octets. Le calibrage des fonctionnalités de l intergiciel est nécessaire pour permettre son déploiement sur différentes plates-formes. Il est indispensable de garantir l identité d un système et de contrôler ses accès. L intergiciel doit masquer l hétérogénéité et la distribution réseau pour faciliter le développement d applications réparties avec des systèmes embarqués réseau, La prolifération des systèmes embarqués rend d autant plus indispensable le fait que l intergiciel puisse supporter le passage à l échelle. (c quoi le passage à l'échelle?) L intergiciel doit s adapter aux changements de l environnement. Liste des principales exigences non-fonctionnelles Taille mémoire réduite L intergiciel est prévu pour un déploiement sur des appareils de très petite taille, comme des téléphones portables. Or, ces appareils ont des ressources limitées en termes de mémoire, d énergie et de capacité de calcul. Aussi, dans un premier temps, il est nécessaire que l emplacement occupé par l intergiciel dans la mémoire de stockage n excède pas 128 kilooctets. Ce chiffre est conforme aux spécifications JSR-139 [46] de la machine virtuelle Java pour la configuration d appareils limités en termes de connexion réseau (Connected Limited Device Configuration ou encore CLDC 1.1). Flexibilité La taille de la mémoire requise pour exécuter les programmes est proportionnelle au nombre de fonctionnalités que l intergiciel est à même du supporter. Aussi, l intergiciel doit offrir un moyen pour calibrer ses fonctionnalités en rapport avec les caractéristiques de l appareil technique de la machine où il sera installé. Sécurité Dès lors qu'un système embarqué est mis en réseau, ses ressources peuvent être partagées. Dans ce cas, la sécurité revêt une importance capitale. Il s agit de protéger chaque ressource contre toute atteinte pouvant engendrer un dysfonctionnement ou une détérioration et contrôler les accès aux ressources. Il est également utile de pouvoir garder une trace des opérations effectuées sur les ressources. 28
Hétérogénéité et distribution réseau La nature-même des systèmes embarqué est très disparate : les capteurs, les systèmes enfouis (électroménager), les systèmes mobiles (GPS, téléphones, assistants personnels, ) [50]. Certains d'entre eux supportent Java et acceptent uniquement des connections infrarouge. D'autres s exécutent sous Windows ou Linux et acceptent des connections Bluetooth ou Wifi. Le développeur va se retrouver souvent confronté à des problématiques liées à l hétérogénéité des systèmes et aux protocoles de communication. Il doit également prendre en compte la distribution de ces systèmes. Alors, pour simplifier la tâche du développeur, il convient donc de masquer et l hétérogénéité et la distribution des systèmes embarqués. Évolution et adaptabilité L exigence d adaptabilité est motivée par deux paramètres : le changement des conditions environnementales et la modification des besoins des utilisateurs. Les systèmes embarqués sont généralement immergés dans un environnement qui est en perpétuel changement. On peut citer par exemple les systèmes d aide à la conduite ou de freinage dans une automobile. En ce qui concerne les besoins utilisateurs, ils sont susceptibles d être modifiés à tout instant. Soit du fait de l évolution technologique, soit de la volonté des utilisateurs qui souhaitent avoir plus de services (connexion à internet, vidéo à la demande, ). Aussi, l intergiciel doit être conçu dès le départ pour être capable d évoluer et d adapter son comportement en fonction des changements. 2.3 Acteurs La figure suivante regroupe les sept rôles possibles pour interagir avec l intergiciel. Ils sont classés selon deux catégories : les acteurs machines et les acteurs humains. SystemEmbarque Utilisateur Contrôleur SESimple SEComposite Integrateur Développeur Figure 14. Les acteurs 29
Les acteurs systèmes SystemeEmbarque est une abstraction de n'importe quel système embarqué. Il peut être source d événements tout comme il est capable de réagir à ceux-ci. Il a la possibilité d émettre et de recevoir des messages. Il propose volontiers ses services aux autres acteurs. Du fait de sa mobilité avérée il peut entrer et sortir du réseau à tout moment. Il peut être ajouté en tant qu «enfant» à un système embarqué composite. Par conséquent, il a la possibilité d utiliser des ressources de celle-ci, auquel cas il doit renouveler régulièrement l usage de ces ressources. SEComposite est une spécialisation de l'acteur SystemeEmbarque. Par conséquent, il hérite du comportement de celui-ci. Il regroupe un ou plusieurs systèmes embarqués. Il supporte des opérations de composition telles que l ajout ou le retrait «d enfants». Par ailleurs, il fournit et contrôle le cycle de vie des ressources utilisables par ses enfants. SESimple est une spécialisation de l'acteur SystemeEmbarque. A cet effet, il hérite du comportement de ce dernier. Il est une abstraction d un seul système embarqué. Contrôleur représente un agent chargé de la surveillance de l ensemble du système. Les acteurs humains Utilisateur représente n'importe quel utilisateur intéressé par les services fournis par l intergiciel ou par les applications construites au-dessus de celui-ci. Il initie des actions et en attend les résultats. Il peut souscrire aux événements qui peuvent se produire. Intégrateur représente les personnes en charge de configurer, composer et mettre à jour les applications bâties avec l intergiciel. Développeur crée des applications à l aide de l intergiciel. Il peut moduler des services spécifiques en fonction des besoins de l utilisateur. 30
2.4 Services l intergiciel La figure suivante schématise les différents services que devra fournir l intergiciel. Identification et Autorisation System Réaction Observation Notification Publication Subscribe Utilisateur Visualisation Arrivée SystemEmbarque Composition Départ Integrateur Configuration Obtention SESimple Renouvellement Développeur Mise à jour Location SEComposite Monitoring Eviction Contrôleur Figure 15. Les fonctionnalités de l intergiciel Services fonctionnels Composition et Visualisation Composition regroupe toutes les opérations utiles permettant à l administrateur de regrouper des systèmes embarqués réseau. Les structures hiérarchiques (arbres) représentant la composition vont par la suite faciliter leur parcours et leur mise à jour des systèmes réseau. La composition peut être dynamique. Dans ce cas ce sont les systèmes eux-mêmes qui se regroupent, en fonction de la façon dont ils ont été configurés par l administrateur. Visualisation permet aux utilisateurs de connaître l état du système : les appareils connectés, la façon dont ils sont regroupés, leur localisation, Cette visualisation se matérialise sous forme de page html ou d arbre. 31
Observation, réaction et notification Observation décrit le processus permettant à un utilisateur ou à un SystemeEmbarque de s inscrire en tant qu observateur auprès d un autre système qui devient l observable. Réaction définit la façon dont un système embarqué réagit à l occurrence d un événement qu il a détecté ou pour lequel il a été notifié. Notification correspond au fait d informer les utilisateurs et les autres systèmes embarqués d'un changement d'état. Publication et souscription La publication permet à une SystemeEmbarque de diffuser via un canal des messages à l intention des utilisateurs ou des autres systèmes. La souscription autorise un utilisateur ou un système à s abonner uniquement aux événements ou aux sujets qui l intéressent auprès d un canal de diffusion. Arrivée et départ L arrivée et le départ correspondent aux connexions et aux déconnexions des systèmes embarqués mobiles. Monitoring Le monitoring définit un mécanisme minimal pour s assurer que l ensemble du système fonctionne correctement. Services techniques Location, obtention, renouvellement et recyclage La location fournit aux SystemeComposite le moyen de gérer la mise à disposition de leurs ressources pour les autres systèmes. Cette gestion passe par l allocation d un bail renouvelable et limité dans le temps qui est rattaché à chaque utilisation d une ressource. L obtention décrit pour des systèmes la façon d acquérir un bail. Le renouvellement est un processus cyclique qui permet aux systèmes embarqués de garder une ressource qu elles ont déjà obtenue. Le recyclage sert à l optimisation de l usage des ressources d un SystemeEmbarque. Cela se traduit par la gestion du cycle de vie de chaque ressource et par la libération des ressources allouées mais dont le bail a expiré. Mise à jour, et Configuration Configuration regroupe toutes les fonctions permettant de configurer et de reconfigurer l intergiciel. Mise à jour est le service qui rassemble toutes les facilités de d installation et déploiement. Identification et autorisation Identification prévoit les mécanismes d authentification pour l ensemble des acteurs de l intergiciel. Autorisation définit les accès pour chaque acteur. 32