Mémoire de maîtrise (2013)
Document en libre accès dans PolyPublie |
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (1MB) |
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.
Abstract
In recent years, the world of information technology has witnessed a spectacular breakthrough in mobile computing area. With those advances, more and more services are being offered not only to people who are in mobile communications industry, but also to those ones who are looking for solutions to some problems that remained so far unresolved. Health care area is a good example. The computing world today allows doctors, staying at home, just by using a mobile device, to offer their services to patients remotely located anywhere in the world. The results, once collected, become fully usable instantly. What is even more interesting with those technologies is that they can use biosensors, that they put on the patients to collect data, to constantly monitor the evolution of any situation. The way to assist patients remotely, using those technologies, also has vulnerabilities. Indeed, given the limited capacity in terms of resources of mobile devices and the complexity of some algorithms in the medical sector which require a lot of computation, the most popular proposed solution is to offload the most complicated tasks to external powerful servers. Thanks to the arrival of Cloud Computing in recent years, that enables computing resources to be accessed and shared as unlimited powerful virtual resources in a scalable way, most complicated tasks are sent to the Cloud and the results are used subsequently on mobile devices. Different proposals with computation offloading approaches have been released to try to solve this resource limitation problem. In this thesis, we propose an architecture subject to a set of constraints to performance allowing us to take into account the best place to execute our tasks. To get this done, we have proposed a mechanism to manage the timeout of the requests that are sent to the Cloud given that the system environment is changing constantly and for a lot of reasons out of control of the system. To make use of computation offloading, we have partitioned our codes in two parts. One that will always be running on the mobile device and the other one that can be run on both sides either mobile device or Cloud. The developer needs to identify parts of codes that will ask for more resources to get them implemented in the Cloud also. Given that the environment in which our application is being run is changing constantly, we question the environmental parameters on every task that can be offloaded to decide on the spot where exactly this task should be run at this moment. We have design an expert system, using a knowledge base and an inference engine to decide the best place to run our tasks. The inference engine decides, based on a set of rules and a set of facts where exactly it should execute a task. In order to validate our architecture, a set of tests have been conducted. We got positive results that allow us to conclude that the Cloud can actually be used to improve the performance of applications on mobile devices. Those tests are performed by using Amazon EC2 solution that allows us to offload our tasks in a data centre located in the United States.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: | Samuel Pierre |
URL de PolyPublie: | https://publications.polymtl.ca/1105/ |
Université/École: | École Polytechnique de Montréal |
Date du dépôt: | 16 juil. 2013 15:49 |
Dernière modification: | 26 sept. 2024 13:21 |
Citer en APA 7: | Jean-Julien, R. (2013). Architecture d'applications mobiles dans le domaine de la santé [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/1105/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements