1,137 research outputs found

    Prévention et détection des interférences inter-aspects : méthode et application à l'aspectisation de la tolérance aux fautes

    Get PDF
    La programmation orientĂ©e aspects (POA) sĂ©pare les diffĂ©rentes prĂ©occupations composant un systĂšme informatique pour amĂ©liorer la modularitĂ©. La POA offre de nombreux bĂ©nĂ©fices puisqu'elle permet de sĂ©parer le code fonctionnel du code non-fonctionnel amĂ©liorant ainsi leur rĂ©utilisation et la configurabilitĂš des systĂšmes informatiques. La configurabilitĂ© est un Ă©lĂ©ment essentiel pour assurer la rĂ©silience des systĂšmes informatiques, puisqu’elle permet de modifier les mĂ©canismes de sĂ»retĂ© de fonctionnement. Cependant le paradigme de programmation orientĂ©e aspect introduit de nouveaux dĂ©fis pour le test. Dans les systĂšmes de grande taille oĂč plusieurs prĂ©occupations non fonctionnelles cohabitent, une implĂ©mentation Ă  l'aide d'aspects de ces prĂ©occupations peut ĂȘtre problĂ©matique. Partageant le mĂȘme flot de donnĂ©es et le mĂȘme flot de contrĂŽle les aspects implĂ©mentant les diffĂ©rentes prĂ©occupations peuvent Ă©crire dans des variables lues par d'autres aspects ou interrompre le flot de contrĂŽle commun aux diffĂ©rents aspects empĂȘchant ainsi l'exĂ©cution de certains d'entre eux. Dans cette thĂšse nous nous intĂ©ressons plus spĂ©cifiquement aux interfĂ©rences entre aspects dans le cadre du dĂ©veloppement de mĂ©canismes de tolĂ©rance aux fautes implĂ©mentĂ©s sous forme d’aspects. Ces interfĂ©rences sont dues Ă  une absence de dĂ©claration de prĂ©cĂ©dence entre les aspects ou Ă  une dĂ©claration de prĂ©cĂ©dence erronĂ©e. Afin de mieux maĂźtriser l’assemblage des diffĂ©rents aspects composant un mĂ©canisme de tolĂ©rance aux fautes, nous avons dĂ©veloppĂ© une mĂ©thode alliant l'Ă©vitement Ă  la dĂ©tection des interfĂ©rences au niveau du code. Le but de l'Ă©vitement est d'empĂȘcher l'introduction d'interfĂ©rences en imposant une dĂ©claration de prĂ©cĂ©dence entre les aspects lors de l'intĂ©gration des aspects. La dĂ©tection permet d'exhiber lors du test les erreurs introduites dans la dĂ©claration des prĂ©cĂ©dences. Ces deux facettes de notre approche sont rĂ©alisĂ©es grĂące Ă  l’utilisation d’une extension d'AspectJ appelĂ©e AIRIA. Les constructions d'AIRIA permettent l’instrumentation et donc la dĂ©tection des interfĂ©rences entre aspects, avec des facilitĂ©s de compilation permettant de mettre en Ɠuvre l’évitement d’interfĂ©rences. Notre approche est outillĂ©e et vise Ă  limiter le temps de dĂ©boguage : le testeur peut se concentrer directement sur les points oĂč une interfĂ©rence se produit. Nous illustrons notre approche sur une Ă©tude de cas: un protocole de rĂ©plication duplex. Dans ce contexte le protocole est implĂ©mentĂ© en utilisant des aspects Ă  grain fin permettant ainsi une meilleure configurabilitĂ© de la politique de rĂ©plication. Nous montrons que l'assemblage de ces aspects Ă  grain fin donne lieu Ă  des interfĂ©rences de flot de donnĂ©es et flot de contrĂŽle qui sont dĂ©tectĂ©es par notre approche d'instrumentation. Nous dĂ©finissons un ensemble d'aspects interfĂ©rant pour l'exemple, et nous montrons comment notre approche permet la dĂ©tection d'interfĂ©rences. ABSTRACT : Aspect-oriented programming (AOP) separates the different concerns of a computer software system to improve modularity. AOP offers many benefits since it allows separating the functional code from the non-functional code, thus improving reuse and configurability of computer systems. Configurability is essential to ensure the resilience of computer systems, since it allows modifying the dependability mechanisms. However, the paradigm of aspectoriented programming introduces new challenges regarding testing. In large systems where multiple non-functional concerns coexist, an AOP implementation of these concerns can be problematic. Sharing the same data flow and the same control flow, aspects implementing different concerns can write into variables read by other aspects, or interrupt the control flow involving various aspects, and thus preventing the execution of some aspects in the chain. In this work we focus more specifically on interference between aspects implementing fault tolerance mechanisms. This interference is due to a lack of declaration of fine-grain precedence between aspects or an incorrect precedence declaration. To better control the assembly of the various aspects composing fault tolerance mechanisms, we have developed a method combining avoidance of interferences with runtime detection interferences at code level. The purpose of avoidance is to prevent the introduction of interference by requiring a statement of precedence between aspects during the aspects integration. Detection allows exhibiting during the test, errors introduced in the precedence statement. These two aspects of our approach are performed through the use of an extension called AspectJ AIRIA. AIRIA ‘s constructs allow instrumentation and therefore the detection of interference between aspects, with facilities compilation to implement the interference avoidance. Our approach is designed and equipped to limit the debugging time : the tester can focus directly on the points where an interference occurs. Finaly, we illustrate our approach on a case study : a duplex replication protocol. In this context, the protocol is implemented using fine grained aspects allowing a better configurability of the replication policy.We show that the assembly of these fine-grained aspects gives rise to interference data flow and control flow that are detected by our instrumentation approach. We define a set of interfering aspects in this example, and show how our approach allows the detection of interferences

    Prévention et détection des interférences inter-aspects (méthode et application à l'aspectisation de la tolérance aux fautes)

    Get PDF
    La programmation orientĂ©e aspects (POA) sĂ©pare les diffĂ©rentes prĂ©occupations composant un systĂšme informatique pour amĂ©liorer la modularitĂ©. La POA offre de nombreux bĂ©nĂ©fices puisqu'elle permet de sĂ©parer le code fonctionnel du code non-fonctionnel amĂ©liorant ainsi leur rĂ©utilisation et la configurabilitĂš des systĂšmes informatiques. La configurabilitĂ© est un Ă©lĂ©ment essentiel pour assurer la rĂ©silience des systĂšmes informatiques, puisqu elle permet de modifier les mĂ©canismes de sĂ»retĂ© de fonctionnement. Cependant le paradigme de programmation orientĂ©e aspect introduit de nouveaux dĂ©fis pour le test. Dans les systĂšmes de grande taille oĂč plusieurs prĂ©occupations non fonctionnelles cohabitent, une implĂ©mentation Ă  l'aide d'aspects de ces prĂ©occupations peut ĂȘtre problĂ©matique. Partageant le mĂȘme flot de donnĂ©es et le mĂȘme flot de contrĂŽle les aspects implĂ©mentant les diffĂ©rentes prĂ©occupations peuvent Ă©crire dans des variables lues par d'autres aspects ou interrompre le flot de contrĂŽle commun aux diffĂ©rents aspects empĂȘchant ainsi l'exĂ©cution de certains d'entre eux. Dans cette thĂšse nous nous intĂ©ressons plus spĂ©cifiquement aux interfĂ©rences entre aspects dans le cadre du dĂ©veloppement de mĂ©canismes de tolĂ©rance aux fautes implĂ©mentĂ©s sous forme d aspects. Ces interfĂ©rences sont dues Ă  une absence de dĂ©claration de prĂ©cĂ©dence entre les aspects ou Ă  une dĂ©claration de prĂ©cĂ©dence erronĂ©e. Afin de mieux maĂźtriser l assemblage des diffĂ©rents aspects composant un mĂ©canisme de tolĂ©rance aux fautes, nous avons dĂ©veloppĂ© une mĂ©thode alliant l'Ă©vitement Ă  la dĂ©tection des interfĂ©rences au niveau du code. Le but de l'Ă©vitement est d'empĂȘcher l'introduction d'interfĂ©rences en imposant une dĂ©claration de prĂ©cĂ©dence entre les aspects lors de l'intĂ©gration des aspects. La dĂ©tection permet d'exhiber lors du test les erreurs introduites dans la dĂ©claration des prĂ©cĂ©dences. Ces deux facettes de notre approche sont rĂ©alisĂ©es grĂące Ă  l utilisation d une extension d'AspectJ appelĂ©e AIRIA. Les constructions d'AIRIA permettent l instrumentation et donc la dĂ©tection des interfĂ©rences entre aspects, avec des facilitĂ©s de compilation permettant de mettre en Ɠuvre l Ă©vitement d interfĂ©rences. Notre approche est outillĂ©e et vise Ă  limiter le temps de dĂ©boguage : le testeur peut se concentrer directement sur les points oĂč une interfĂ©rence se produit. Nous illustrons notre approche sur une Ă©tude de cas: un protocole de rĂ©plication duplex. Dans ce contexte le protocole est implĂ©mentĂ© en utilisant des aspects Ă  grain fin permettant ainsi une meilleure configurabilitĂ© de la politique de rĂ©plication. Nous montrons que l'assemblage de ces aspects Ă  grain fin donne lieu Ă  des interfĂ©rences de flot de donnĂ©es et flot de contrĂŽle qui sont dĂ©tectĂ©es par notre approche d'instrumentation. Nous dĂ©finissons un ensemble d'aspects interfĂ©rant pour l'exemple, et nous montrons comment notre approche permet la dĂ©tection d'interfĂ©rences.Aspect-oriented programming (AOP) separates the different concerns of a computer software system to improve modularity. AOP offers many benefits since it allows separating the functional code from the non-functional code, thus improving reuse and configurability of computer systems. Configurability is essential to ensure the resilience of computer systems, since it allows modifying the dependability mechanisms. However, the paradigm of aspectoriented programming introduces new challenges regarding testing. In large systems where multiple non-functional concerns coexist, an AOP implementation of these concerns can be problematic. Sharing the same data flow and the same control flow, aspects implementing different concerns can write into variables read by other aspects, or interrupt the control flow involving various aspects, and thus preventing the execution of some aspects in the chain. In this work we focus more specifically on interference between aspects implementing fault tolerance mechanisms. This interference is due to a lack of declaration of fine-grain precedence between aspects or an incorrect precedence declaration. To better control the assembly of the various aspects composing fault tolerance mechanisms, we have developed a method combining avoidance of interferences with runtime detection interferences at code level. The purpose of avoidance is to prevent the introduction of interference by requiring a statement of precedence between aspects during the aspects integration. Detection allows exhibiting during the test, errors introduced in the precedence statement. These two aspects of our approach are performed through the use of an extension called AspectJ AIRIA. AIRIA s constructs allow instrumentation and therefore the detection of interference between aspects, with facilities compilation to implement the interference avoidance. Our approach is designed and equipped to limit the debugging time : the tester can focus directly on the points where an interference occurs. Finaly, we illustrate our approach on a case study : a duplex replication protocol. In this context, the protocol is implemented using fine grained aspects allowing a better configurability of the replication policy.We show that the assembly of these fine-grained aspects gives rise to interference data flow and control flow that are detected by our instrumentation approach. We define a set of interfering aspects in this example, and show how our approach allows the detection of interferences.TOULOUSE-INP (315552154) / SudocSudocFranceF

    Consistance et protection des données dans les systÚmes collaboratifs par les méthodes formelles

    Get PDF
    Le dĂ©veloppement de logiciels complexes ou de contenus multimĂ©dias implique de nos jours plusieurs personnes de plus en plus gĂ©ographiquement dispersĂ©es Ă  travers le monde qui collaborent Ă  travers des systĂšmes d’édition collaborative. Le but principal de cette collaboration est l’amĂ©lioration de la productivitĂ© et la rĂ©duction du temps et des coĂ»ts de dĂ©veloppement. L’un des dĂ©fis majeurs de ces outils d’édition collaborative est d’assurer la convergence et la fiabilitĂ© des donnĂ©es partagĂ©es. Pour rĂ©pondre Ă  ce dĂ©fi, plusieurs approches existent dans la littĂ©rature parmi lesquelles, nous avons l’approche multiversions (MV), l’approche des types de donnĂ©es commutatives rĂ©pliquĂ©es (CRDT) et l’approche de la transformĂ©e opĂ©rationnelle (OT). La premiĂšre se base sur le principe du copier, modifier et fusionner et utilise un serveur central chargĂ© de la fusion des diffĂ©rentes copies provenant des sites participant Ă  la collaboration. Les modifications effectuĂ©es par chaque site sur sa copie ne sont fusionnĂ©es Ă  la copie centrale qu’à la demande de l’utilisateur. La difficultĂ© majeure de cette approche est le coĂ»t liĂ© au stockage des diverses versions sur le serveur, l’utilisation d’estampilles pour ordonner les opĂ©rations lors de la fusion. Ce qui la rend difficilement utilisable dans un contexte d’environnement distribuĂ©. La deuxiĂšme approche considĂšre que toutes les opĂ©rations sont commutatives donc pouvant ĂȘtre exĂ©cutĂ©es dans un ordre quelconque. Quant Ă  la derniĂšre approche, elle s’appuie sur une transformation des opĂ©rations reçues des sites distants par rapport Ă  celles qui leur sont concurrentes. Dans cette approche, un algorithme de transformation inclusive (IT) est utilisĂ© afin d’assurer la convergence des copies, mais la plupart des algorithmes proposĂ©s dans la littĂ©rature ne satisfont pas les critĂšres de convergence. En plus de la cohĂ©rence, la fiabilitĂ© des donnĂ©es reste un autre dĂ©fi dans les systĂšmes collaboratifs. Pour faire face Ă  ce dĂ©fi, plusieurs applications encapsulent, dans leur code source, des fonctionnalitĂ©s transverses telles que celles de sĂ©curitĂ© afin de rĂ©pondre aux exigences de confidentialitĂ© et d’intĂ©gritĂ© des donnĂ©es. Dans la littĂ©rature, la programmation orientĂ©e aspect (AOP) est l’une des approches utilisĂ©es afin d’assurer la modularitĂ©, la maintenabilitĂ© et la rĂ©utilisation des composants d’un logiciel. Une des difficultĂ©s de ce paradigme de programmation est l’assurance qu’une propriĂ©tĂ© de sĂ©curitĂ© reste satisfaite aprĂšs le tissage entre le programme de base et tous les aspects encapsulant les prĂ©occupations transverses. Ce qui implique de trouver des techniques automatiques de vĂ©rification des propriĂ©tĂ©s de sĂ©curitĂ© une fois le tissage fait. Dans le registre de la fiabilitĂ© des donnĂ©es, le contrĂŽle d’accĂšs joue un rĂŽle prĂ©pondĂ©rant. Ainsi, en ce qui concerne le partage de contenus multimĂ©dias publiĂ©s sur le Web, il est nĂ©cessaire de collaborer pour les alimenter, mais un des dĂ©fis majeurs est de les rendre fiables.----------ABSTRACT: Complex software and Web content development involve nowadays multiple programmers located in different areas working together on the same development project using collaborative systems in order to achieve efficiency, improve productivity and reduce development time. One of the key challenge in such a development environment is ensuring the convergence and the reliability of the shared data or content. In the literature, many approaches have been proposed to face this challenge. Among those approaches, we have multi-version (MV), commutative replication data type (CRDT) and operational transformation (OT) approach. The first approach is based on the "copy, modify and merge" principle and uses a central server to merge the updates from the different sites participating in the collaboration. The local updates of a specific site are merged only on demand. The key drawback of this approach is the storage cost of the various versions on the server and the overhead due to the generation of stamps for the operations ordering. Thus, this drawback makes this approach difficult to use in the context of a distributed collaborative environment. The second approach preconizes that all the operations are commutative so that they can be executed in any given order. The latter approach is based on the transformation of all the operations received from the remote sites against their concurrent operations before being merged. In this approach, an inclusive transformation algorithm is used in order to ensure the convergence criteria. Unfortunately, most of the proposed algorithms in the literature do not satisfy the convergence criteria. Beside the convergence, the reliability of the data remains another challenge in the collaborative systems. In order to face this challenge, many programs encapsulate crosscutting concerns (e.g. security, logging) for data confidentiality and integrity purposes. In the literature, aspect-oriented programming (AOP) is one the approaches used to better modularize the separation of concerns in order to make easier the maintenance and the reuse of the software components. However, one challenge of this paradigm is the insurance that a given property such as security one remains satisfied after the weaving of the base program and the aspects. Thus, we may find automated way to verify such security properties in the woven program. Concerning data reliability, access control is one of the major piece of the puzzle. Thus, in the Web content publication, one challenge is to collaborate in order to produce them and the other key challenge is to make them reliable

    Perspectives nouvelles des relations industrielles

    Get PDF
    Dans cet article l’auteur Ă©crit que nous continuons Ă  scruter de vieux problĂšmes qui demeurent pratiquement inexpliquĂ©s. Car ces problĂšmes ont Ă©tĂ© abordĂ©s avec un certain manque d'imagination au niveau des mĂ©thodes, sans esprit de continuitĂ© et surtout sans dĂ©ployer les efforts voulus en vue d'intĂ©grer les connaissances acquises au sein d'un corps cohĂ©rent de thĂ©orie. L'auteur fait le point et surtout dĂ©gage des perspectives nouvelles en relations industrielles.The main purpose of this study is to know whether the multi-disciplinary approach which gave birth and afterward stimulated the evolution of industrial relations in North America is still valid or not ?The creation of Departments of industrial relations is the beginning of the modern era in this field. Such departments, as those of Laval's and Montreal's since 1944, in spite of their youth, succeeded in supplying private enterprises as well as Public administration with competent graduates. But the pioneers worried a lot about the slowness of research in industrial relations. Such association as the IRRA, established in 1948, completed the reflexion begun by the foundators in stimulating research in every aspects of labor, particularly in favouring the multi-disciplinary approach.THE ROLE OF UNIVERSITY AND GOVERNMENTConscious of its role in society, the University, by creating departments of industrial relations, wished to bring one of the answers to the many problems of our community in favouring research and accumulation of knowledge on labor problems. This institution cannot ignore the difficulties of our society in evolution. Even though many problems of manpower are out of date, some of them remain unsolved, but it should not refrain us from looking for the true meaning of labor, its role in our environment and its influence on our behaviour.On the other hand, the role of the state in the field of industrial relations has changed a lot. It must now be more than a simple law-maker and a protector of property and personal security. It must look for a consensus between the interests involved. To do so, the state must have its own staff of specialists in industrial relations.The growth of trade-unionism, the coming of collective bargaining and the intervention of the governments have given industrial relations an extremely fluid, delicate and complex character that demands everywhere the presence of a highly qualified personnel.THE NEW APPROACHAfter a while, individual research was not valid any more. The need for exchange between the different disciplines became necessary in order to verify the many hypotheses. By creating departments of industrial relations, no one wanted to eliminate or to minimize the role of the traditional sciences. On the contrary they will always remain the basis of study for labor problems. Individual research bringing only parts of solutions, the creation of multi-disciplinary study team was to allow deeper and more comprehensive analysis of certain phenomenous never truly examined.After surveys and information, one might criticize that we failed to look for a general interest common to all sciences involved in labor problems and that we cared too much for actuality instead of deepening the studies.We continue to examine old problems which practically remain unexplained because they were approached with a lack of imagination in the methods, without a spirit of continuity and especially without really trying to integrate the results obtained into a coherent theorical framework.From the preceeding critics does not follow a systematic refusal to the multi-disciplinary approach for the study of labor problems. We believe that multi-disciplinary teaching is essential for a real understanding and interpretation of the problems. Two results will follow :1 ) more and more important essays of conceptualization ;2) trends of integration between the different sciences,A NEW STARTIf we want a new start in the field of industrial relations, we will have to solve the following problems :1 ) lack of material and human resources ;2 ) slowness of research ;3) lack of professorial resources.It is only with the multi-disciplinary research that an integration of the concepts and a real dialogue might be realized between specialists of different approaches of multi-disciplinary and inter-universitary research with a frame of progression accepted by all and within a frame of reference that would allow everyone to bring his effort.The most important thing in my proposal is the notion of exchange which is the counterpart of the principle of the division of labor. We think that if we want to elaborate a frame of reference being common to all specialists in industrial relations, that frame of reference will have to be based on the concept of exchange

    Contribution Ă  la commande sĂ»re des SystĂšmes Ă  ÉvĂ©nements Discrets

    Get PDF
    Les activitĂ©s de recherche rentrent dans le spectre de la section 61 du CNU et ont pour domaine l’Automatique des SystĂšmes Ă  ÉvĂ©nements Discrets (SED). Elles sont conduites en vue d’accroĂźtre la sĂ»retĂ© de fonctionnement des systĂšmes automatisĂ©s comme ceux qu’il est possible de trouver dans le cadre de la production manufacturiĂšre, de la production d'Ă©nergie ou du transport. Une grande partie de ces recherches a concernĂ© la conception sĂ»re des systĂšmes de contrĂŽle-commande Ă  base d’Automates Programmables Industriels (API) et plus particuliĂšrement les thĂ©matiques suivantes :- la vĂ©rification formelle de programmes de contrĂŽle-commande,- la synthĂšse algĂ©brique de programmes de contrĂŽle-commande Ă  partir de spĂ©cifications informelles,- le test de conformitĂ© d’un contrĂŽleur logique vis-Ă -vis de sa spĂ©cification.D'autres recherches ont portĂ© sur la formalisation des outils pour l’analyse de sĂ»retĂ©, utilisĂ©s dans le cadre de l’analyse prĂ©visionnelle des risques d’un Ă©quipement ou d’une installation industrielle. Cette formalisation des outils utilisĂ©s en sĂ»retĂ© a Ă©tĂ© faite en examinant avec un point de vue SED une problĂ©matique qui ne l’était pas Ă  son origine. Il a Ă©tĂ© Ă©tudiĂ© :- la modĂ©lisation algĂ©brique des arbres de dĂ©faillances dynamiques,- l’analyse prĂ©visionnelle des risques d’un point de vue qualitatif pour les systĂšmes rĂ©parables Ă  partir de Boolean logic Driven Markov Processes (BDMPs),- l’analyse prĂ©visionnelle des risques d’un point de vue quantitatif pour les systĂšmes rĂ©parables Ă  l’aide de chaĂźnes de Markov.D'une maniĂšre gĂ©nĂ©rale, ces activitĂ©s de recherche ont pour objectif de proposer des apports formels ou mĂ©thodologiques Ă  des outils de modĂ©lisation gĂ©nĂ©ralement issus de l’industrie tout en rĂ©pondant Ă  des besoins industriels dĂ©jĂ  prĂ©sents ou sur le point de le devenir

    Abstraction et vérification de programmes informatiques

    Get PDF
    Les systĂšmes informatiques offrent une grande flexibilitĂ© aux usagers en leur permettant l'accĂšs, notamment par le biais de rĂ©seaux de tĂ©lĂ©communication ou de l'Internet, Ă  un vaste Ă©ventail de services. Toutefois, certains de ces services sont soumis Ă  de fortes contraintes de sĂ©curitĂ©, comme le tĂ©lĂ©paiement qui est au coeur du commerce Ă©lectronique. Ainsi, les fournisseurs et les utilisateurs expriment des besoins croissants, et antagonistes, en sĂ©curitĂ©. RĂ©pondre Ă  ces deux besoins simultanĂ©ment est un enjeu technologique transversal Ă  de nombreux domaines de l'informatique. L'objectif de ce travail est de dĂ©velopper un mĂ©canisme permettant de garantir la sĂ©curitĂ© des systĂšmes, en s'appuyant sur l'expĂ©rience Ă©tablie dans le domaine de la sĂ©curitĂ© et des mĂ©thodes formelles. Pour se faire, nous dĂ©finissons un nouveau cadre de vĂ©rification des propriĂ©tĂ©s de sĂ©curitĂ© d'un programme informatique par l'analyse des flots de donnĂ©es et de contrĂŽle construits Ă  partir du code de ce dernier. L'idĂ©e principale consiste Ă  dĂ©finir un modĂšle pouvant abstraire la trace d'Ă©vĂ©nements et les dĂ©pendances de ressources engendrĂ©s au moment de l'exĂ©cution du programme, et pouvant ĂȘtre soumis Ă  des algorithmes de vĂ©rification de modĂšle (model-checking) pour l'analyse de la sĂ»retĂ© du programme vis-Ă -vis d'une propriĂ©tĂ©

    L'impact des facteurs qui influent sur l'efficacité de la gestion des ressources humaines en contexte de projet

    Full text link
    Mémoire numérisé par la Direction des bibliothÚques de l'Université de Montréal
    • 

    corecore