Access control is a central issue among the overall security goals of information systems. Despite the existence, of a vast literature on the subject, it is still very hard to assure the compliance of a large system t...
详细信息
ISBN:
(纸本)9781595938879
Access control is a central issue among the overall security goals of information systems. Despite the existence, of a vast literature on the subject, it is still very hard to assure the compliance of a large system to a given dynamic access control policy. Based on our previous work on formal islands, we provide in this paper a systematic methodology to weave dynamic, formally specified policies on existing applications using aspect-oriented programming. To that end, access control policies axe formalized using term rewriting systems, allowing us to have an agile, modular, and precise way to specify and to ensure their formal properties. These high-level descriptions axe then weaved into the existing code, such that the resulting program implements a safe reference monitor for the specified policy. For developers, this provides a systematic process to enforce dynamic policies in a modular and flexible way. The level of reuse is improved because policies are independently specified and checked, to be later weaved into various different applications. We implemented the approach on test cases with quite encouraging results.
This paper presents an aspect-oriented approach to access control in mobile agent systems, where a multipoint security check mechanism visualizes the services of a host as individual components and access of each will...
详细信息
ISBN:
(纸本)0769523153
This paper presents an aspect-oriented approach to access control in mobile agent systems, where a multipoint security check mechanism visualizes the services of a host as individual components and access of each will require authentication. Since the security check crosscuts various functional components of mobile agents and their platforms, it is naturally handled in the aspect-oriented paradigm. This approach is suitable not only for developing mobile agent systems from scratch, but also for enhancing legacy mobile agent systems. We demonstrate our approach through a case study.
The development of computer systems is extremely complex due to real-time, distribution and dynamism requirements. For this reason, whatever the taken precautions, the occurrence of faults is sometimes unavoidable. In...
详细信息
ISBN:
(纸本)9780769550022
The development of computer systems is extremely complex due to real-time, distribution and dynamism requirements. For this reason, whatever the taken precautions, the occurrence of faults is sometimes unavoidable. In this context, we notice the need of techniques ensuring the dependability of real-time distributed dynamically reconfigurable systems. We focus on fault-tolerance, that means avoiding service failures in the presence of faults. In this paper, we have defined a development process for modeling and generating fault tolerance code using aspectorientedprogramming. First, we integrate fault tolerance elements since the modeling step of a system in order to take advantage of features of analysis, proof and verification possible at this stage using AADL and its annex Error Model Annex. Second, we extend an aspectoriented language and adapt it to respect real-time requirements. Finally, we define a code generation process for both functional preoccupations and cross-cutting ones like fault tolerance.
In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, aspectJ, allows the expression of highly c...
详细信息
ISBN:
(纸本)9781595935755
In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, aspectJ, allows the expression of highly complex properties of the static program structure. We present the first rigorous semantics of the aspectJ pointcut language, by translating static patterns into safe (i.e. range-restricted and stratified) Datalog queries. Safe Datalog is a logic language like Prolog, but it does not have data structures;consequently it has a straightforward least fixpoint semantics and all queries terminate. The translation from pointcuts to safe Datalog consists of a set of simple conditional rewrite rules, implemented using the Stratego system. The resulting queries are themselves executable with the CodeQuest system. We present experiments indicating that direct execution of our semantics is not prohibitively expensive.
Several changes occurred in the aspectJ language to provide support for parametric polymorphism. Such changes aim to improve the source code type safety and to prepare the language to support generic code migration. C...
详细信息
Several changes occurred in the aspectJ language to provide support for parametric polymorphism. Such changes aim to improve the source code type safety and to prepare the language to support generic code migration. Current approaches for this kind of migration focus only on object-oriented code. Therefore, they do not consider the use of aspects to encapsulate crosscutting concerns. We propose a collection of type constraint rules for the polymorphic version of aspectJ. These rules are used together with an existing constraint based algorithm to enable the conversion of non-generic code to add actual type parameters in both Java and aspectJ languages. (C) 2012 Elsevier B.V. All rights reserved.
Currently, it is possible to use aspect-oriented languages to attach behavior to code based on semantic or syntactic properties of that code. There is no language, however, that allows developers to attach behavior ba...
详细信息
ISBN:
(纸本)9781605584423
Currently, it is possible to use aspect-oriented languages to attach behavior to code based on semantic or syntactic properties of that code. There is no language, however, that allows developers to attach behavior based on static metaproperties of code. Here, we demonstrate a technique for applying AOP methods to metaproperties of source code. We use advice to coherently define runtime behavior for subsets of code that need not share semantic or syntactic properties. To illustrate the approach, we use Java as a base language, and define a family of pointcuts based on the edit time of the source lines, then build a simple debugging application that applies runtime tracing to only the most recently changed code. Using this technique, the tracing code is neatly modularized and need not depend on any semantic properties of the base code. We believe that this approach has powerful applications for debugging as well as for software engineering researchers looking to explore the runtime effects of extra-linguistic features.
In an aspect-oriented program, the cross-cutting functionalities are defined in pieces of advice such that they apply to program-execution points for the core functionalities. Program changes can affect the applicatio...
详细信息
ISBN:
(纸本)9789897583759
In an aspect-oriented program, the cross-cutting functionalities are defined in pieces of advice such that they apply to program-execution points for the core functionalities. Program changes can affect the application of pieces of advice. To that end, a source-code differencing tool, for two versions of an aspect-oriented program, needs to support the identification of changes in pieces of advice at locations of their applications. To alleviate this task, we introduce an extension of the existing differencing technique for object-oriented programs. We implemented a tool AjDiff and used it to evaluate our technique on the two examples of aspect-oriented programs: Tracing and Telecom. We manually verified that our tool can successfully identify changes in pieces of advice at locations of their application.
aspect-oriented programming (AOP) has been successfully applied to application code thanks to techniques such as Java bytecode instrumentation. Unfortunately, with existing AOP frameworks for Java such as aspectJ, asp...
详细信息
aspect-oriented programming (AOP) has been successfully applied to application code thanks to techniques such as Java bytecode instrumentation. Unfortunately, with existing AOP frameworks for Java such as aspectJ, aspects cannot be woven into the standard Java class library. This restriction is particularly unfortunate for aspects that would benefit from comprehensive aspect weaving with complete method coverage, such as profiling or debugging aspects. In this article we present MAJOR, a new tool for comprehensive aspect weaving, which ensures that aspects are woven into all classes loaded in a Java Virtual Machine, including those in the standard Java class library. MAJOR includes the pluggable module CARAJillo, which supports efficient access to a complete and customizable calling context representation. We validate our approach with three case studies. Firstly, we weave existing profiling aspects with MAJOR which otherwise would generate incomplete profiles. Secondly, we introduce an aspect for memory leak detection that also benefits from comprehensive weaving. Thirdly, we present an aspect subsuming the functionality of ReCrash, an existing tool based on low-level bytecode instrumentation techniques that generates unit tests to reproduce program failures. Our aspect-based tools are concisely implemented in a few lines of code, and leverage MAJOR and CARAJillo for comprehensive aspect weaving and for efficient access to calling context information. (C) 2010 Elsevier B.V. All rights reserved.
An aspect-oriented. declarative, security policy specification language is presented, for enforcement by In-lined Reference Monitors. The semantics of the language establishes a formal connection between aspect-Orient...
详细信息
ISBN:
(纸本)9781595939364
An aspect-oriented. declarative, security policy specification language is presented, for enforcement by In-lined Reference Monitors. The semantics of the language establishes a formal connection between aspect-oriented programming and In-lined Reference Monitoring wherein policy specifications denote aspect-oriented security automata-security automata whose edge labels are encoded as pointcut expressions. The prototype language implementation enforces these security policies by automatically rewriting Java bytecode programs so as to detect and prevent policy violations at runtime.
aspect-oriented programming (AOP) promises to localize concerns that inherently crosscut the primary structural decomposition of a software system. Localization of concerns is critical to parallel development, maintai...
详细信息
ISBN:
(纸本)9781605584423
aspect-oriented programming (AOP) promises to localize concerns that inherently crosscut the primary structural decomposition of a software system. Localization of concerns is critical to parallel development, maintainability, modular reasoning, and program understanding. However, AOP as it stands today causes problems in exactly these areas, defeating its purpose and impeding its adoption. First, the need to open up systems' modules for aspects' interaction competes with the need to protect those modules against possible fault injection by aspects. Second, since aspects are written in terms of base code interfaces, base system components must be stable before aspect components can be developed. This dependency hinders parallel development. This work proposes a language-based solution that allows base code classes to regulate aspect invasiveness, and provides loose coupling of aspects and base code.
暂无评论