Mémoire de maîtrise (2013)
Résumé
Durant ces dernières années, le monde informatique a assisté à une percée spectaculaire des technologies dans le domaine de l'informatique mobile. Cette avancée considérable permet d'offrir de plus en plus de services non seulement aux usagers de l'informatique directement, mais aussi à d'autres secteurs en quête de solutions par rapport à des problèmes jusqu'ici demeurés non résolus. On peut citer notamment le secteur de la santé. Le monde informatique permet aujourd'hui à un médecin, muni d'un terminal mobile, de consulter un patient à distance dans n'importe quelle région du monde sans se déplacer. Les résultats de ses consultations, une fois recueillis, sont exploitables de façon instantanée. Ce qui est encore plus intéressant avec cette technologie est le fait que le médecin dispose aujourd'hui de capteurs biologiques qu'il peut accoler au patient pour pouvoir faire un suivi constant par rapport à une évolution quelconque de sa situation. Cette façon d'assister les patients à distance a aussi des failles. En effet, on doit prendre en compte la capacité limitée des terminaux mobiles et la complexité de certaines tâches qui demandent une grande puissance de calcul. La solution la plus prisée pour essayer de résoudre ce problème est celle qui permet d'externaliser les tâches de calcul sur des serveurs distants, disposant de la capacité nécessaire à les faire exécuter. Grâce à l'arrivée du Cloud Computing, permettant d'exploiter de gros serveurs disposant de ressources virtuellement illimitées, les requêtes qui consomment beaucoup de ressources sont envoyées dans le Cloud et le résultat trouvé est exploité par la suite sur le terminal mobile. Dans le cadre de ce mémoire, nous proposons une architecture sujette à un ensemble de contraintes de performance qui nous permet de tenir compte du meilleur endroit d'exécution des tâches. Pour arriver à cette réalisation, nous proposons un mécanisme de gestion du délai de garde à l'envoi des requêtes dans le Cloud pour limiter le temps d'attente sur les terminaux mobiles. Ce mécanisme permet de mieux contrôler les requêtes qui sont envoyées dans le Cloud étant donné que l'environnement dans lequel évoluent les terminaux mobiles est exposé à un ensemble de changements qui peuvent arriver n'importe quand et pour des raisons multiples. Pour décider de l'endroit d'exécution d'une tâche évoluant dans le système, le code de notre application doit être partitionné en deux parties. Une première partie qui sera toujours exécutée sur le téléphone et la seconde partie qui peut être exécutée soit sur le téléphone soit dans le Cloud. Le développeur est tenu responsable de l'identification de ces deux parties et doit implémenter la deuxième partition à la fois dans le Cloud et sur le téléphone. Étant donné que l'environnement dans lequel évolue notre application change constamment, nous questionnons les conditions environnementales à chaque fois qu'une tâche est sujette à la déportation dans le Cloud. Nous avons pour cela conçu un système expert, composé d'une base de connaissances et d'un moteur d'inférence qui nous permet de décider de l'endroit d'exécution de nos tâches. Le moteur d'inférence décide sur la base d'un ensemble de règles et de faits où exactement une tâche donnée doit être exécutée. Afin de valider notre architecture, un ensemble de tests a été réalisé. Nous avons obtenu des résultats assez positifs qui nous permettent de conclure que le Cloud peut effectivement être utilisé pour améliorer la performance des applications sur les terminaux mobiles. Ces tests sont réalisés en utilisant la solution EC2 d'Amazon qui nous permet d'externaliser nos tâches dans un centre de données situé aux États-Unis.
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements
