La construction de logiciels pour des appareils qui ne peuvent pas accueillir localement des outils de développement peut être difficile. Ces appareils ont soit une puissance de calcul trop limitée pour exécuter un IDE, ou manque des interfaces d’entrée / sortie appropriées pour la programmation ou sont tout simplement inaccessibles pour des développements locaux. Dans ces situations, les développeurs ont besoin d’une infrastructure appropriée pour développer et déboguer des applications distantes. Dans cette thèse nous identifions d’abord quatre propriétés désirables qu’une solution idéale pour le débogage à distance doit présenter : l’ interactivité, l’instrumentation, la distribution et la sécurité. Compte tenu de ces propriétés, nous proposons Mercury, un modèle de débogage à distance et une architecture pour des langues réfléxifs à objets. Mercury ouvre (1) l’interactivité grâce à un méta-niveau à distance miroir basé sur un lien de causalité avec sa cible, (2) l’instrumentation à travers une intercession réflective basée sur la réification de l’environnement d’exécution sous-jacent, (3) la distribution grâce à un middleware adaptable et (4) la sécurité par la décomposition et l’authentification de l’accès aux aspects réflexifs. Nous validons notre proposition à travers un prototype dans le langage de programmation Pharo à l’aide d’un cadre expérimental diversifié de multiples dispositifs contraints. Nous illustrons des techniques de débogage à distance soutenus par les propriétés de Mercury, tels que distance agile débogage et instrumentation objet à distance et montrons comment ils peuvent résoudre dans la pratique, les problèmes que nous avons identifiés. / Building software for devices that cannot locally support development tools can be challenging. These devices have either limited computing power to run an IDE, lack appropriate input/output interfaces for programming or are simply unreachable for local development. In these situations developers need appropriate infrastructure to remotely develop and debug applications. In this dissertation we first identify four desirable properties that an ideal solution for remote debugging should exhibit, namely: interactiveness, instrumentation, distribution and security. Given these properties we propose Mercury, a remote debugging model and architecture for reflective OO languages. Mercury supports interactiveness through a mirror-based remote meta-level that is causally connected to its target, instrumentation through reflective intercession by reifying the underlying execution environment, distribution through an adaptable middleware and security by decomposing and authenticating access to reflective facilities. We validate our proposal through a prototype implementation in the Pharo programming language using a diverse experimental setting of multiple constraint devices. We exemplify remote debugging techniques supported by Mercury’s properties, such as remote agile debugging and remote object instrumentation and show how these can solve in practice the problems we have identified.
Identifer | oai:union.ndltd.org:theses.fr/2013LIL10114 |
Date | 19 December 2013 |
Creators | Papoulias, Nikolaos |
Contributors | Lille 1, Ducasse, Stéphane, Bouraqadi, Noury, Denker, Marcus, Fabresse, Luc |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0014 seconds