T owards An Open Trace-based Mechanism position paper Authors: Paul Leger and Éric Tanter Department of Computer Science (DCC) University of Chile
A Trace-based Mechanism (TM) in a nutshell A TM observes the execution of the software and executes a piece of code when this TM matches a specified sequence of events. The piece Trace of d d f a b b of code of TM execution TM needs a b to match 2
Matching a sequence TM needs Trace of a b a x y b b b execution to match Is it a valid match? It depends because different TMs have different semantics to define sequences 3
Strategies for multiple matching TM needs Trace of a b a x y b b b execution to match Is there another match? It depends because different TMs have different strategies for multiple matching 4
The life cycle of sequences Trace of a y x b b b execution TM needs Except a b x y to match Most TMs cannot control the life cycle of sequences 5
Current TMs Tracematch [Allan + @OOPSLA05] , Alpha [Herzeel + @ILC07] , Halo [Ostermann + @ECOOP05] , PTQL [Goldsmith + @OOPSLA05] , ... Specific and non-configurable features What happens if developers have specific needs? Is it a solution to “code around”? 6
Towards an Open TM (OTM) model We identified three points of openness in a TM: • Sequences definition. For example: • Regular expressions • Context-free languages • ... • The multiple matching strategy. For example: • To match several sequences at the same time • To match only one sequence at the same time • ... • The life cycle of the sequences. For example: • To remove all sequences if some condition is satisfied ( except example ) • To match all sequences if some condition is satisfied • ... 7
OTM model Sequence Env Env' seq MATCH Env'' b b a TM needs Trace of a b b a to match execution 8
Nondeterminism support • Some operators to define sequences, like OR, are not deterministic . For example: || c a b a • If happens, then two different histories of a the matching of the same sequence are generated. || b a c || a b c 9
Example: The AnyOrder Operator The AnyOrder operator matches several sequences in any order. Trace of c a d x b b a execution TM needs , , , , a a a a a a a a a a a a a a a a b b b b b b b b b b b b b b b b d d d d a c s a x a to match 3 1 2 10
Towards an Open TM (OTM) model We identified three points of openness in a TM: • Sequences definition. For example: • Regular expressions • Context-free languages • ... • The multiple matching strategy. For example: • To match several sequences at the same time • To match only one sequence at the same time • ... • The life cycle of the sequences. For example: • To remove all sequences if some condition is satisfied ( except example ) • To match all sequences if some condition is satisfied • ... 11
Extending OTM • We add a multiplexer entity to define strategies for multiple matching. Sequence 2 Sequence 1 Multiplexer • We add a sequence controller entity to control the life cycle of the sequences. Sequence 1 Sequence controller Sequence 2 12
Conclusions • We explored the points where a TM can be opened: – Sequences definition – Multiple matching strategies – Life cycle of sequences – Any others? • We designed an open TM model, taking into account these points 13
Thank you! Future work: - Extend AspectScript [1] to support the OTM model. [1] AspectScript: Expressive Aspects for the Web. Wednesday, March 17th at 12:30 14
The class diagram of our open TM 1 .. * SequenceController Sequence Developers can build strategies Except to control life cycle of sequences 1 Multiplexer . . . Developers can build strategies TraceMatch Multiple for multiple matching. 15
A Open TM Sequence 1 Sequence MATCH Env Env1 seq Manager Env1' sb sa sb Sequence 2 MATCH Env2 Env2' sb Multiplexer Trace of TM needs a b a b a Execution to match 16
Recommend
More recommend