Romain Delamare
email: rdelamar@irisa.fr

Benoit Baudry
email: bbaudry@irisa.fr

Yves Le Traon
email: yves.letraon@telecom-bretagne.eu

AjMutator: A Tool For The Mutation Analysis Of AspectJ Pointcut Descriptors

Aspect-oriented programming introduces new challenges for software testing. In particular the pointcut descriptor (PCD) requires particular attention from testers. The PCD describes the set of joinpoints where the advices are woven. In this paper we present a tool, AjMutator, for the mutation analysis of PCDs. AjMutator implements several mutation operators that introduce faults in the PCDs to generate a set of mutants. AjMutator classifies the mutants according to the set of joinpoints they match compared to the set of joinpoints matched by the initial PCD. An interesting result is that this automatic classification can identify equivalent mutants for a particular class of PCDs. AjMutator can also run a set of test cases on the mutants to give a mutation score. We have applied AjMutator on two systems to show that this tool is suitable for the mutation analysis of PCDs on large AspectJ systems.

Introduction

Aspect-oriented programming (AOP) is a paradigm that separates the core concern from the cross-cutting concerns. The cross-cutting concerns are encapsulated in aspects composed of two parts: (1) an advice that implements the cross-cutting concern, and (2) a pointcut descriptor (PCD) that designates a set of joinpoints in the base program where the advice should be woven.

AOP introduces new kinds of fault types that should be addressed by testing techniques. Faults can be located in the advice, in the PCD or can arise from the composition of the aspects. The PCD is the place that is the most fault-prone in an aspect, as observed by Ferrari et al. [START_REF] Ferrari | Mutation testing for aspect-oriented programs[END_REF].

Pointcut descriptors are composed of primary PCDs, using conjunctions, disjunctions, and negations. Most of the primary PCDs are static, i.e. the set of matched joinpoint can be computed statically. Dynamic primary PCDs, restrain the set of joinpoints at compile time, so the set of joinpoints statically computed is an over-approximation of the actual set of matched joinpoints. PCDs with dynamic primary PCDs are dynamic.

The mutation analysis of the PCD is useful for testing AOP systems and for evaluating testing techniques targeting faults in the PCD. A mutation analysis [START_REF] Demillo | Hints on test data selection: Help for the practicing programmer[END_REF][START_REF] Geist | Estimation and enhancement of real-time software reliability through mutation analysis[END_REF] introduce faults in a program and runs test cases on the mutants to check if they can detect the introduced faults. The mutation analysis can be used to improve the set of test cases or to compare different sets of test cases.

In this paper we present a tool, AjMutator, for the mutation analysis of AspectJ pointcut descriptors. Aj-Mutator can generate mutants by introducing faults in the PCDs, and execute a set of test cases on the generated mutants.

We also introduce a classification of the mutant PCDs. AjMutator automatically classifies the mutants by comparing the sets of of joinpoints matched by the mutant and the initial PCD. We automate this classification at compile time by leveraging the static analysis performed by the compiler that computes the set of joinpoints matched by the PCDs. We show that a benefit of this classification is that, for a class of PCDs, we can conclude that if the mutant matches the same set of joinpoints as the initial PCD, the mutant is equivalent.

Section 2 introduces the specificities of mutation analysis of PCDs. Section 3 details the implementation of AjMutator. Section 4 presents two cases studies that shows that AjMutator can perform mutation analysis on AspectJ systems. Section 5 discuss works related

Mutation analysis of AspectJ Poincut Descriptors

Mutation analysis

A mutant PCD is a PCD that matches a set of joinpoint different from the set of joinpoints matched by the original PCD. If the set of joinpoint is different, the advice is not correctly woven, and it can cause huge side effects.

Ferrari et al. [START_REF] Ferrari | Mutation testing for aspect-oriented programs[END_REF] have presented several operators for the mutation analysis of AspectJ programs. These operators are based on fault types that have been identified in several works. The authors presented three kinds of operator: operators for PCDs, operators for AspectJ declarations, and operators for advice definitions and implementations. In this work we only considered operators for PCDs. Table 1 shows the operators that have been selected for AjMutator.

Classification of the mutants

The mutant PCDs are classified by comparing the set of joinpoints they match with the set of joinpoints matched by the original PCD. If a joinpoint is matched by the original PCD but not by a mutant PCD, it is called a neglected joinpoint. If a joinpoint is matched by the mutant PCD but not by the original PCD, it is called an unintended joinpoint. Mutants that match exactly the same set of joinpoints as the original PCD are equivalent: they are semantically equivalent so it is not possible for a set of test cases to distinguish them from the original PCD.

It is important to note that the classification of a mutant is system-dependent, i.e. the same mutant can have two different classifications in two different systems, even if the original PCD is the same. Adding or removing lines of code can add or remove joinpoints, and thus can change the set of joinpoints matched by a PCD.

AjMutator

AjMutator is a tool for the mutation analysis of As-pectJ pointcut descriptors. It produces mutants of As-pectJ aspects by inserting faults in the PCDs.

AjMutator is separated in three distinct parts:

1. the generation of mutant source files from AspectJ source file 2. the compilation of the mutant source files 3. the execution of a test cases on the mutants to calculate the mutation score of this set of test cases

Generation of the mutants

Figure 2 shows the AjMutator process of generation of the mutants. A parser builds an abstract-syntax tree (AST) for each PCD in the AspectJ source files. The operators insert faults in copies of the AST, so there is an AST for the original PCD and an AST for each mutant PCD. A pretty-printer then produces a mutant AspectJ source file for each mutant AST.

The parser has been developed using SableCC [START_REF] Cagnon | Sablecc, an objectoriented compiler framework[END_REF], an open-source compiler generator. The parser directly produces an AST from a PCD. Only the PCD is parsed in the AspectJ source file, as the PCD as a very different grammar from the rest of the AspectJ syntax -which is very close to the Java syntax.

The mutation operators are implemented using the visitor pattern [START_REF] Gamma | Design patterns: elements of reusable object-oriented software[END_REF]. Each operator extends the abstract class Operator, which is a visitor for the AST. When an operator encounters a place in the AST where a fault can be injected, a mutant of the AST is generated. The mutant AST is then inserted in a copy of the original AspectJ source file using a pretty printer. To reduce the memory consumption the mutant AST is immediately printed and the reference is not kept so that the garbage collector can free its memory space.

Compilation of the mutants

After the mutants have been generated, they need to be compiled. The compilation is required to run the test cases on the mutant systems, but also to classify the mutants automatically.

Figure 3 shows the process of compiling and classifying the mutants. It relies on the abc compiler [START_REF] Avgustinov | abc: an extensible aspectj compiler[END_REF], which is an alternative compiler for AspectJ. The abc compiler produces a jar file of the system for each mutant. It also provides information on the joinpoints matched by the PCDs. The information is then used by AjMutator to classify the mutants.

As a single modification of an aspect can affect var- ious classes throughout the whole system, it is necessary to keep a complete version of the system for each mutant, not only the class file of the mutant aspect. Figure 4 shows the process for the classification of the mutants. First if the mutant is non compilable it is not selected as a mutation analysis considers only compilable mutants. If the mutant system has both neglected and unintended joinpoints, the mutant is in class 1. If the mutant system has neglected joinpoints but no unintended joinpoints, the mutant is in class 2. If the mutant system has unintended joinpoints but no neglected joinpoints, the mutant is in class 3. Finally if the mutant system has no unintended joinpoints and no neglected joinpoints, the mutant is equivalent and not selected for the mutation analysis.

The accuracy of the classification process depends on whether the original PCD of the mutant is static or dynamic. This can be summarized as follows:

Static PCD the set of matched joinpoints can be computed statically, so the classification is exact. Dynamic PCD the set of matched joinpoints can only be over-approximated, so the classification is not perfectly accurate. Two cases are distinguish:

Non-equivalent if the mutant is classified as nonequivalent, it means that the fault was inserted in its static part, thus it is actually nonequivalent. Equivalent if the mutant is classified as equivalent it just means that the static part is semantically equivalent, but the dynamic part might be different. In this case we must select the mutant for the mutation analysis as we cannot be sure that it is actually equivalent.

As shown on Figure 4, before classifying a mutant as equivalent we first check if its original PCD is dynamic or not. If it is dynamic, the mutant is not classified and it is selected for the mutation analysis.

Execution of the test cases

The goal of a mutation analysis is to evaluate a test suite with a mutation score. The mutation score is the ratio of the number of killed mutant to the total number of mutant; it evaluates the adequacy of the test suite for detecting faults in the mutated system.

A mutant is considered killed if a test suite can exhibit a difference between the original system and the mutant system. So if the mutant is killed, the test suite can detect the inserted fault whereas if the mutant is still alive the test suite is not able to detect this fault and it needs to be improved, either with new test data or better oracles.

Experiments

To evaluate AjMutator we have used it on two different systems. The first system is an Auction system we developped, and the second is the Health-Watcher [1]. The HealthWatcher system has been implemented in different languages such as Java or As-pectJ, and for each language there is ten different versions. For these experiments we used the tenth version in AspectJ, which is the larger one.

The Auction system has 41 classes and two aspects. There is also 209 test cases that satisfy the statement coverage criterion. The results of the mutation analysis are shown in Table 2. Out of the 110 produced mutants, 72 were detected as equivalent. The mutation score of the test suite is 69.6%.

The HealthWatcher system is larger, with 114 classes and 23 aspects. No test cases were available for the HealthWatcher so we did not perform a muta-tion analysis. Table 3 shows the classification of the produced mutants.

These experiments show that AjMutator is able to generate and compile a large number of mutants on large systems. It can also perform a mutation analysis to obtain a mutation score.

The automatic classification offers great benefits. A manual selection of the mutants would have been long and difficult. If all the compilable mutants were selected, the mutation score for the Auction system would have been 16.8% which is very far from the actual mutation score.

Related Work

Anbalagan et al. [START_REF] Anbalagan | Automated generation of pointcut mutants for testing pointcuts in aspectj programs[END_REF] have presented a tool for the generation of mutant PCDs. This tool produces mutants that are rated following their resemblance with the original PCD. This rating process also automatically detects the equivalent mutants.

Although the work of Anbalagan et al. is very related to our work, they focused on a very particular type of mutation analysis. One of their goal is to rank and select mutants so that the developer can choose a mutant that is close to the PCD he wrote, to help him develop the PCD.

To rank the mutant, their tools computes the difference between the mutant and the original PCD as an integer. This is possible because they have only two operators, one that only generates mutants of class 2 (only neglected joinpoints) and one that only generates mutants of class 3 (only unintended joinpoints). AjMutator is more general and extensible. It has more operators and operators can easily be added by implementing a visitor of the PCD AST (see Section 3.1).

Ferrari et al. [START_REF] Ferrari | Mutation testing for aspect-oriented programs[END_REF] have identified fault types for aspect-oriented programs and they have identified a set of mutation operators. This operators can insert faults in various parts of an AspectJ system, such as the advice or the PCD.

AjMutator implements a set of the operators presented by Ferrari et al.. Table 1 shows the operators that have been implemented. These operators injects faults in the PCD that can produce mutants of class 1, 2 or 3 (or equivalent mutants).

Conclusion

We have presented AjMutator, a tool for the mutation analysis of AspectJ pointcut descriptors. It is able to generate mutant PCDs, to compile the mutants, and to execute a set of test cases on the mutants to obtain a mutation score.

AjMutator leverages the static analysis performed by the compiler to automatically detect equivalent mutants for a class of PCDs. Non-equivalent mutants are also classified depending on the set of joinpoints they match.

Experiments have shown that AjMutator works on large scaled system. The automatic classification is helpful when a large number of mutants are generated. The automatic classification of the equivalent mutants also avoids the unnecessary execution of these mutants and allows a more accurate mutation score.

AjMutator has also already been used to evaluate the adequacy of a new testing technique for detecting faulty PCDs [START_REF] Delamare | A test-driven approach to developing pointcut descriptors in AspectJ[END_REF].

Figure 1 .

 1 Figure 1. Classification of the Mutants

Figure 1

 1 Figure 1 shows the classification of the mutants. Mutants with both neglected and unintended joinpoints are in class 1. Mutants in class 1.a match a completely different set of joinpoints whereas mutants in class 1.b match some joinpoints matched by the original mutant. Mutants with only neglected joinpoints are in class 2. Mutants with only unintended joinpoints are in class 3.Mutants that match exactly the same set of joinpoints as the original PCD are equivalent: they are semantically equivalent so it is not possible for a set of test cases to distinguish them from the original PCD.It is important to note that the classification of a mutant is system-dependent, i.e. the same mutant can have two different classifications in two different systems, even if the original PCD is the same. Adding or removing lines of code can add or remove joinpoints, and thus can change the set of joinpoints matched by a PCD.

Figure 2 .

 2 Figure 2. The AjMutator process of generation of the mutants.

Figure 3 .Figure 4 .

 34 Figure 3. The AjMutator process of compilation and classification of the mutants.

Table 1 . Selected operators

 1

	contrary

Operator Description PCCC Replaces a cflow PCD with a cflowbelow PCD, or the contrary PCCE Replaces a call PCD with an execution PCD, or the contrary PCGS Replaces a get PCD with a set PCD, or the contrary PCLO Changes the logical operators in a composition of PCDs PCTT Replaces a this PCD with a target PCD, or the

Table 2 . Classification and mutation score for the Auction system

 2

	Class	Number of Mutation Mutants Score
	1.a	3	100%
	1.b	1	100%
	2	4	75%
	3	10	60%
	unknown	5	60%
	Total Selected	23	69.6%
	Equivalent	72	-
	Non-compilable	15	-
	Total	110	-
	Class	Number of Mutants
	1.a	38
	1.b	17
	2	50
	3	129
	unknown	65
	Total Selected	299
	Equivalent	296
	Non-compilable	90
	Total	685

Table 3 . Classification of the mutants produced for the HealthWatcher AjMutator

 3 relies on JUnit for the test cases. A mutant is killed if at least one test cases has a different result on the mutant system. So if all the test cases pass on the original system, a mutant is killed if at least one test cases fails.


Yves Coudene

Barbara Schapira

Counterexamples in non-positive curvature

We give examples of rank one compact surfaces on which there exist recurrent geodesics that cannot be shadowed by periodic geodesics. We build rank one compact surfaces such that ergodic measures on the unit tangent bundle of the surface are not dense in the set of probability measures invariant by the geodesic flow. Finally, we give examples of complete rank one surfaces for which the non wandering set of the geodesic flow is connected, the periodic orbits are dense in that set, yet the geodesic flow is not transitive in restriction to its non wandering set. 1

Introduction

Geodesic flows on negatively curved manifolds have been extensively studied both from the topological and the measurable point of view. Let M be a complete connected pinched negatively curved riemannian manifold, and denote by g t : T1 M → T 1 M the geodesic flow defined on the unit tangent bundle T 1 M of M . The nonwandering set of g t is denoted by Ω.

Ω = { v ∈ T 1 M | ∀ V neighborhood of v, ∃ t n → +∞ such that g tn (V ) ∩ V = ∅ }
Recall from the Poincaré recurrence theorem that Ω = T 1 M if M is compact or with finite volume.

Here are some basic properties of g t .

• Every vector in Ω can be shadowed by a periodic geodesic. As a consequence, periodic geodesics are dense in the non wandering set of the flow.

• Assuming Ω = T 1 M , there are ergodic measures with full support that are invariant by g t . In fact ergodicity and full support are generic properties in the set of all invariant probability measures.

• The flow g t is transitive in restriction to Ω as soon as Ω is connected.

There has been several attempts to generalize these results to the case of geodesic flows defined on non-positively curved manifolds. The goal of this paper is to provide explicit counterexamples to each of the results stated above, in the context of rank one manifolds.

Let us recall what is a rank one manifold. A vector v ∈ T 1 M is a rank one vector if the only parallel Jacobi fields along the geodesic generated by v are proportional to the generator of the geodesic flow. A connected complete non-positively curved manifold is said to be a rank one manifold if its tangent bundle admits a rank one vector. In that case, the set of rank one vectors is an open subset of T 1 M .

A vector v on a non-positively curved surface has rank one if and only if there is a point of negative sectional curvature on the geodesic generated by v. Hence, a rank one surface is simply a non-positively curved surface with at least a point where the curvature is negative.

We shall build rank one surfaces M such that

• the surface M is compact, and there exist recurrent rank one geodesics that cannot be shadowed by periodic geodesics;

• the surface M is compact, and ergodic measures are not dense in the set of all probability measures invariant by g t ;

• the set Ω is connected, the periodic orbits are dense in Ω, and the flow g t is not transitive in restriction to Ω.

All these counterexamples contain embedded flat cylinders. It is plausible that in dimension two, such cylinders are the only obstruction to the results stated above. In higher dimension however, the question is wide open.

The article is organized in three sections, each devoted to one of the counterexamples stated above.

The closing lemma

The first instance of a closing lemma appears in the work of J. Hadamard [START_REF] Hadamard | Les surfaces à courbures opposées et leurs lignes géodésiques[END_REF] on negatively curved surfaces embedded in R 3 . J. Hadamard showed that a piece of geodesic coming back close to its starting point is in fact shadowed by a periodic closed geodesic. As a consequence, the set of periodic closed geodesics is dense in the closure of the set of recurrent geodesics.

If the negatively curved surface is of finite volume, then the celebrated theorem of Poincaré ensures that the recurrent geodesics are in fact dense in the manifold. So periodic vectors are dense in the unit tangent bundle of the surface. Remarkably, the result of J. Hadamard is contemporary to the Poincaré recurrence theorem, and there were no examples of finite volume negatively curved surfaces embedded in R 3 at that time. First examples of such surfaces are attributed to Vaigant in [GeomIII], although we were unable to locate the original reference. Yet J. Hadamard provided examples of negatively curved embedded surfaces in R 3 , and the closing lemma was one of the key ingredient in the study of recurrent geodesics on these surfaces.

Purely dynamical proofs of the closing lemma were given by D.V. Anosov, who extended that result to the class of systems that now bear his name. The closing lemma has become a classical tool in the study of systems exhibiting some form of hyperbolic behavior, and the name of Anosov is frequently associated with the theorem. In the context of negatively curved manifolds, the Anosov closing lemma reads as follows.

Theorem 1 (Anosov closing lemma [START_REF] Anosov | Geodesic flows on closed riemannian manifolds with negative curvature[END_REF]) Let M be a compact negatively curved manifold, g t the geodesic flow on T 1 M . Then for all ε > 0, there exists δ > 0 and T 0 > 0, such that for all w ∈ T 1 M , we have: for all T ≥ T 0 such that d g T (w), (w) < δ, there exists a periodic vector w 0 of period l such that

|T -l| < ε ∀t ∈ [0, T ], d g t (w), g t (w 0 ) < ε.
The closing lemma implies the density of the periodic orbits in the non-wandering set of the flow. The term "Anosov closing lemma" is sometimes used to describe that last property [START_REF] Robinson | Dynamical systems. Stability, symbolic dynamics, and chaos[END_REF]. We will see below examples of (non-uniform) hyperbolic systems for which the closing lemma is not satisfied, yet the periodic orbits are dense in the ambient space.

Note also that the compactness hypothesis on M allows for uniform δ, ε. We will need some local version of the closing lemma.

Definition

We say that the closing lemma is satisfied around a vector v ∈ T 1 M if there is a neighborhood V of v such that:

∀ ε > 0, ∃ δ > 0, ∃ T 0 > 0, ∀ w ∈ V, ∀ T ≥ T 0 ,
the conditions g T (w) ∈ V and d g T (w), w < δ imply that there is a periodic vector w 0 of period l satisfying |T -l| < ε and d g t (w), g t (w 0 ) < ε for all t ∈ [0, T ].

We now turn to non-positive curvature. A version of the closing lemma is given by W. Ballmann, M. Brin, R. Spatzier in [START_REF] Ballmann | Spatzier Structure of manifolds of nonpositive curvature[END_REF], th. 4.5. The authors are mainly interested in higher rank manifolds, although their arguments hold in the rank one setting. They show that the closing lemma is satisfied around every vectors of minimal rank, and the proof carries to the rank one setting. As an example, the reader may want to convince himself by an elementary argument that the closing lemma indeed holds on a flat torus. In that example, all vectors have a rank equal to the dimension of the torus.

Let us now restrict the discussion to rank one manifolds. The following result is stated in [START_REF] Eberlein | Geometry of nonpositively curved manifolds[END_REF], th. 4.5.15. We refer also to [START_REF] Coudene | Generic measures for hyperbolic flows on noncompact spaces[END_REF] for a shorter proof on rank one manifolds.

Theorem 2 (Rank one closing lemma [START_REF] Eberlein | Geometry of nonpositively curved manifolds[END_REF]) Let M be a rank one manifold. Then the closing lemma is satisfied around all rank one vectors. This result implies that on a compact rank one manifold, periodic vectors are dense in the set of rank one vectors. That set is both open and dense, hence we see that periodic vectors are in fact dense in T 1 M . This can be extended to rank one manifolds for which Ω = T 1 M .

Establishing the density of periodic orbits is the first step in the proof of the transitivity of the geodesic flow on compact connected rank one manifolds. We will use that property in the sequel, so let us state the following result due to P. Eberlein [START_REF] Eberlein | Geodesic flows on negatively curved manifolds I[END_REF].

Theorem 3 [START_REF] Eberlein | Geodesic flows on negatively curved manifolds I[END_REF] Let M be a compact rank one manifold. Then the geodesic flow on T 1 M is transitive: there exists a vector in T 1 M with a dense orbit.

Without the compactness assumption on M , transitivity holds as soon as Ω = T 1 M [Eb96] (1.9.15, 4.7.4, 4.7.3).

Let us now turn our attention to compact non-positively curved surfaces. We have seen that the closing lemma is satisfied on flat toruses. Also, on all other surfaces, there is an open dense set of vectors around which it is satisfied. Yet there are examples of surfaces on which there exists recurrent rank one trajectories that cannot be closed. In fact, that happens as soon as there is an embedded flat cylinder in the surface.

We say that a surface M contains an embedded flat cylinder if there is a compact subset of M which is isometric to the euclidean cylinder [0, l] × R/(2πhZ), for some l, h > 0. Geodesics in the cylinder are straight lines. The periodic geodesics contained in the cylinder are parallel among themselves, and define a direction in the tangent bundle of the cylinder, that will be deemed as "vertical". This direction will be depicted vertically in the figures.

Note that all negatively curved surfaces carrying a simple closed geodesic can be flattened around that geodesic so as to obtain a surface with an embedded cylinder.

We can now state the counterexample to the closing lemma.

Theorem 4

Let M be a complete surface with an embedded flat cylinder. We assume that the geodesic flow is transitive on T 1 M . Then the closing lemma is not satisfied around vectors generating closed geodesics contained inside the cylinder.

No hypothesis on the curvature of M is needed. The transitivity assumption rules out the case of a flat torus, where the closing lemma holds everywhere. Transitivity is satisfied in the rank one setting, so we get:

Corollary

The Anosov closing lemma does not hold on compact rank one surfaces admitting an embedded cylinder.

Proof

Let v be a periodic vector whose trajectory is contained in the interior of the cylinder. The trajectory of v bounds two connected components of the cylinder, denoted by C 1 and C 2 .

Given ε > 0 and θ ∈]0, π/2[, we consider the open set U 1 consisting in vectors whose base points are in C 1 , at distance less than ε from the base point of v, and whose angle with the vertical direction belongs to ]θ, 0[. We also consider the open set U 2 of vectors with base points in C 2 close to v, and with angles belonging to ]0, θ[. Recall that the geodesic flow is transitive. There is a vector w ∈ T 1 M with a dense orbit. The orbit of w crosses the closed geodesic generated by v infinitely many times. The geodesic generated by w enters U 2 at time t 0 and then enters U 1 infinitely often. This means that we can find times t n > 0 arbitrarily large, so that d(g t0 w, v) is less than θ + ε and d(g tn w, g t0 w) is less than 2θ + 2ε. See next figure.

Orbits in the cylinder are straight lines. Hence an orbit of the geodesic flow entering the cylinder by one side must leave the cylinder by the other side.

If the closing lemma is true in the neighborhood of v, we can find a periodic orbit w 0 with period close to t n , that starts close to g t0 (w) and follows the orbit of g t0 (w) until time t n . The orbit g t (w 0 ) must leave the cylinder by the right side for t > 0, since it follows the orbit of g t0 (w) for positive t. It must also leave the cylinder by the right side for t < 0, since it follows the orbit of g tn (w) for negative t. This is in contradiction with a closing lemma around v.

This ends the proof of the result.

The same argument would show that there is no local product structure in the neighbourhood of v: it is impossible to find an orbit close to v and g t0 w, negatively asymptotic to the orbit of g t0 w and positively to the orbit of g tn w (see [START_REF] Coudene | Generic measures for hyperbolic flows on noncompact spaces[END_REF] for definitions).

Finally, we remark that the closing lemma holds around g t0 w (see [START_REF] Coudene | Generic measures for hyperbolic flows on noncompact spaces[END_REF]). The orbit of g t0 w itself must come back sufficiently close to g t0 w however, so as to be directed toward the same boundary of the cylinder as w, for the closure to happen.

Genericity

The closing lemma is a key ingredient in the understanding of the generic properties of measures on T 1 M invariant by the geodesic flow.

Let X be a complete metric space. Recall that a property is generic if the set of points satisfying that property contains a countable intersection of open dense sets. A countable intersection of generic sets is again generic. From the Baire category theorem, a generic set must be dense.

The first use of the Baire category theorem in the study of geodesics is again due to J. Hadamard [Had98]. This allowed him to show that on a negatively curved surface embedded in R 3 with many periodic geodesics, there are geodesics that accumulate on infinitely many periodic geodesics.

The following theorem of K. Sigmund, proven in the context of transitive Anosov flows, can be seen as some quantitative strengthening of J. Hadamard result.

Theorem 5 [Si72]

Let M be a connected compact negatively curved manifold. Then the Dirac masses on periodic orbits are dense in the set of all probability measures on T 1 M invariant by the geodesic flow. Moreover, ergodicity and full support are generic properties in the set of invariant probability measures.

Note that there are indeed many explicit examples of ergodic probability measures of full support, when the negatively curved manifold is compact. The volume, the measure of maximal entropy, more generally the equilibrium state associated to a Hölder potential, are all Bernoulli measures of full support.

We extended K. Sigmund's result to the rank one setting in [START_REF] Coudene | Generic measures for hyperbolic flows on noncompact spaces[END_REF], freeing ourselves from any compactness assumption. We denote by R 1 the open set of rank one vectors in T 1 M , and Ω∩R 1 the set of non-wandering rank one vectors on T 1 M . Our theorem can be stated as follows.

Theorem 6 [CS10]

Let M be a connected complete non-positively curved manifold. We assume that the geodesic flow on T 1 M admits more than two rank one periodic orbits. Then the set of ergodic measures on Ω ∩ R 1 , with full support in Ω ∩ R 1 , is generic in the set of all probability measures defined on Ω ∩ R 1 .

Strictly speaking, we proved that theorem for a subset Ω 1 ⊂ Ω ∩ R 1 that contains the set of recurrent rank one vectors. Let us explain why it is also true for Ω ∩ R 1 . Note that the set of recurrent rank one vectors is dense in Ω ∩ R 1 , this follows from the rank one closing lemma. From the Poincaré recurrence theorem, an invariant probability measure must give full measure to the set of recurrent vectors. As a consequence, an invariant measure supported by R 1 gives full measure to Ω 1 . The set of invariant measures on Ω ∩ R 1 and Ω 1 thus can be identified.

The assumption that there are more than two rank one periodic orbits rules out the case of a hyperbolic cylinder. On such a cylinder, the non-wandering set is made of two opposite periodic geodesics; it is not connected and the flow is not transitive on that set.

Corollary [CS10]

Under the assumptions of the previous theorem, there exists an ergodic probability measure invariant by the geodesic flow, whose support contains all rank one periodic orbits.

So if we assume that M is a connected complete rank one manifold satisfying Ω = T 1 M , then there is always an invariant probability measure of full support on T 1 M . The existence of such measure is non trivial even in the case of a surface with constant negative curvature.

The question of whether ergodicity and full support are generic properties in the set of all invariant measures on T 1 M was left open in [START_REF] Coudene | Generic measures for hyperbolic flows on noncompact spaces[END_REF]. One of the difficulties was the lack of a closing lemma valid for all vectors in T 1 M . Now, refining on the counterexample of the previous section, we shall show that ergodicity is not a generic property in general.

Theorem 7

Let M be a compact riemannian surface with an embedded flat cylinder. Then the Dirac measures supported by the periodic geodesics in the interior of the cylinder are not in the closure of the invariant ergodic probability measures with full support.

Proof

Let c : R → M be a periodic geodesic lying inside the cylinder. Let us consider a tubular neighborhood around c which is isometric to ]-3 ε, 3 ε[×S 1 and let θ ∈ ]0, π 2 [. We denote by U ε ⊂ T 1 M the neighborhood of c containing all unit vectors tangent to ]ε, ε [×S 1 whose angle with the vertical direction belongs to ]θ, θ[. The set U ε is depicted below.

The orbits of the geodesic flow in the cylinder are straight lines. As a result, a trajectory that enters U ε at time t 0 and leaves U at time 1 , must have spent a time at least t 1t 0 in the left cylinder ] -3ε, -ε[×S 1 or in the right cylinder ]ε, 3ε[×S 1 . Hence, the quantity

1 T λ { t ∈ [0, T ] | g t (v) ∈ U ε }
is bounded from above by 1 2 for all T ≥ 0 and all v ∈ T 1 M that do not belong to the cylinder. See picture below.

Let µ be an ergodic measure with full support. If it is close enough to the Dirac measure supported by c, then µ(U ε ) > 1 2 . Now we use the ergodic theorem. We can find some vector v outside the cylinder such that:

1 T λ { t ∈ [0, T ] | g t (v) ∈ U ε } ------→ n→∞ µ(U ε )
This gives a contradiction and the theorem is proven.

Remarks

• Here again, there is no condition on the curvature of the surface.

• The compactness assumption on M plays no essential role in the proof.

• The same method can be applied in any dimension to build examples of rank one manifolds on which ergodicity is not a generic property.

Corollary

Let M be a compact rank one surface with an embedded flat cylinder. Then ergodic measures are not dense in the set of all invariant probability measures on T 1 M . Hence, ergodicity is not a generic property in T 1 M .

Proof

Recall that the set of ergodic probability measures is a G δ set. Also, the set of measures with full support is a G δ -dense set if the periodic orbits are dense in the ambiant space, we refer to [START_REF] Sigmund | On the space of invariant measures for hyperbolic flows[END_REF] or [START_REF] Coudene | Generic measures for hyperbolic flows on noncompact spaces[END_REF] for a proof. So, if the set of ergodic measures is dense, then the ergodic measures with full support are dense by the Baire category theorem, and the (ergodic !) Dirac measures in the cylinder can be approached by these measures, in contradiction with the previous theorem. This proves the corollary.

The reader may want an explicit example of a measure that is not in the closure of the ergodic measures. A non trivial convex combination of Dirac measures supported inside the cylinder does the job.

Let us give a quantitative version of the previous theorem. First, recall that the riemannian metric on M induces a natural riemannian metric on T M . This metric on T M is uniquely caracterized by the following properties:

-the canonical projection from T M to M is a riemannian submersion, -the metric induced in the fibers is euclidean, -horizontal and vertical distributions are orthogonal. This metric induces in turn a metric on the submanifold T 1 M . As an example, the metric obtained on the unit tangent bundle T 1 C of a flat two dimensional cylinder C is just the euclidean metric on the product

T 1 C ≃ C × S 1 .
The Prohorov metric on the set of Borel probability measures is defined by

ρ(µ, ν) = inf{ ε > 0 | ∀ A ⊂ X, µ(A) ≤ ν(V ε (A)) + ε } where V ε (A) is the ε-neighborhood of A, V ε (A) = {y ∈ X | d(x, A) < ε}.
The metric ρ is bounded by one. We refer to [START_REF] Billingsley | Convergence of probability measures[END_REF] for its basic properties.

Theorem 8

Let M be a compact riemannian surface with an embedded euclidean cylinder isometric to [0, l] × R/(2πhZ), l, h > 0. Let µ be an ergodic probability measure of full support, invariant by the geodesic flow, δ the Dirac measure on a closed geodesic contained in the interior of the cylinder. The distance on M between that closed geodesic and the boundary of the cylinder is denoted by d. Then

ρ(δ, µ) ≥ min d, l l + 2
This gives a bound of order 1 -2 l when l is big. The bound does not depend on the height h of the cylinder, nor on the geometry of M outside the cylinder, nor on the measure µ. Here again we do not need any assumption on the curvature of M .

For the geodesic in the middle of the cylinder, we have d = l/2 and the lower bound is equal to l l+2 .

Proof

We take for A the closed orbit in T 1 M supporting δ. Consider a vector v in the cylinder, denote by θ the angle between v and the vertical direction, and r the distance between the base point of v and the closed geodesic. The vector v is in V ε (A) if and only if √ θ 2 + r 2 is less than ε.

We now ensure that V ε (A) is contained in the cylinder by assuming ε < d. This unfortunately rules out the case of a set A given by a closed geodesic on the boundary of the flat cylinder. Without further assumption on the geometry of M , there is no way to guarantee that V ε (A) does not contain arbitrarily long pieces of geodesics when A is a bounding geodesic.

Let us consider a vector with a dense trajectory, that enters the cylinder with an angle θ with respect to the vertical direction. It spends a time l/ sin(θ) in the cylinder. If the trajectory crosses

V ε (A), that is if θ is less than ε, it spends a time 2 √ ε 2 -θ 2 / sin(θ) in V ε (A).
So the fraction of time spent in V ε (A) during the travel through the cylinder is given by

2 √ ε 2 -θ 2 l
This can be bounded independently of θ by 2ε/l, and this bound is best when the vector enters the cylinder close to the vertical direction.

Let µ an ergodic probability measure with full support. By the ergodic theorem, we can find some vector v with dense trajectory such that

1 T λ { t ∈ [0, T ] | g t (v) ∈ V ε (A) } ------→ n→∞ µ(V ε (A))
This gives µ(V ε (A)) ≤ 2 ε/l. Let us denote by δ the Dirac measure on the periodic orbit under consideration. Coming back to the definition of the Prohorov distance, the equation

1 = δ(A) ≤ µ(V ε (A)) + ε implies 1 ≤ 2 l ε + ε that is, l l + 2 ≤ ε
This estimate is greater than, and asymptotic to, 1 -2/l when l is big.

Recall that we assumed ε ≤ d. Thus we get

ρ(δ, µ) ≥ min d, l l + 2
This ends the proof of the theorem.

Let us mention a curious consequence of the previous theorem. Let us assume that M is a compact rank one surface. This implies that there are invariant ergodic probability measures of full support. Given a closed geodesic in the cylinder, we may consider the set of ergodic measures of full support that are closest to the Dirac measure on the closed geodesic, with respect to the Prohorov distance. This set is a non-empty compact set, and its elements should be related to the closed geodesic in some way.

These results lead to the following problem:

Characterize the non-positively curved compact manifolds on which ergodic measures of full support are dense in the set of all invariant probability measures.

Recall that full support is a generic property in the set of all invariant probability measures, as soon as the periodic geodesics are dense in T 1 M . Also the set of ergodic measures is always a G δ set. The question really is about whether ergodicity is dense or not. The existence of embedded euclidean cylinder seems to be the only obstruction to genericity in dimension two. In higher dimension, the question appears to be pretty elusive.

Transitivity

We now consider the question of the transitivity of the geodesic flow in restriction to the non-wandering set Ω of the flow. We have mentioned that if Ω is equal to T 1 M , then the flow is indeed transitive. When there are wandering vectors, we have the following result.

Theorem 9 [CS10]

Let M be a rank one manifold. We assume that there are at least three rank one periodic geodesics on T 1 M . Then the restriction of the geodesic flow to the closure of the set of rank one periodic orbits is transitive.

So the density of rank one periodic vectors in the non-wandering set is sufficient to get the transitivity of the flow. We will see below examples of surfaces where rank one periodic orbits are not dense in Ω.

Here again, the requirement that there are more than two periodic orbits rules out the case of an hyperbolic cylinder. On the unit tangent bundle of a hyperbolic cylinder, there are exactly two periodic geodesic orbits, corresponding to the same geometric geodesic on the surface, with its two opposite orientations. As a consequence, the set Ω is disconnected and transitivity does not hold on Ω Is the connectedness of Ω is sufficient to guarantee the existence of a non wandering vector whose orbit is dense in Ω ? We shall answer that question by the negative.

Let M be a connected complete, non-positively curved surface, admitting a single end isometric to a half flat cylinder [0, ∞[×(R/Z). Let v be a periodic vector generating a geodesic whose projection c on M bounds the half cylinder. We assume that the curvature is negative outside the flat end. So the surface is separated in two parts by the curve c. One part is compact and contains (the projection on M of ) all rank one periodic orbits of the geodesic flow, the other is flat and contains two continua of rank two periodic orbits.

An example is depicted below. We take a negatively curved pant, glue two ends together and flatten the last end so as to paste a flat cylinder. The negatively curved part is diffeomorphic to a once punctured torus bounded by c.

Theorem 10

The non wandering set Ω ⊂ T 1 M is connected, periodic orbits are dense in Ω and the geodesic flow is not transitive in restriction to Ω.

Proof

The cylinder contains two sets of opposite rank two periodic orbits. We will call these orbits "vertical", in accordance to the figures. All other geodesics in the cylinder go to infinity either for positive or negative time. Any non periodic vector in the cylinder generates a geodesic that goes to infinity either for positive or negative time. As a consequence, the only non wandering orbits intersecting the flat cylinder are the vertical ones. See figure below.

This shows that rank one periodic orbits are contained in the negatively curved part of the surface. By the rank one closing lemma, they are dense in the set of non wandering rank one vectors. We see that the non-wandering set is composed of the closure of the rank one periodic orbits, together with the rank two periodic orbits contained in the cylinder. Also, the flow is not transitive in restriction to Ω, since a non wandering vector entering the flat cylinder is periodic, hence cannot be dense.

It remains to show that Ω is connected. The flow is transitive in restriction to the closure of the rank one periodic orbits, that is, in restriction to the subset of Ω contained in the negatively curved part of the surface. This implies that this subset is connected. In particular, a periodic rank one vector and its opposite are in the same connected component of the non wandering set.

In order to prove the connectedness of Ω, it is sufficient to show that the vector v on the boundary of the flat half cylinder is in the closure of the rank one periodic vectors. Indeed, this will imply that -v is also in that closure. Now, all rank two periodic orbits in the half cylinder can be connected by a path to v or -v. So the next lemma ends the proof.

Lemma

The geodesic bounding the half cylinder is in the closure of the rank one periodic geodesics.

Proof of the lemma

The proof makes use of the action of the fundamental group Γ of M on the boundary of its universal cover M . Let us recall how the ideal boundary ∂ M of M is defined.

We consider the space of half geodesics r : R + → M . Two half geodesics r 1 , r 2 are said to be asymptotic if they stay at a bounded distance from each other: there exists C ≥ 0 such that d(r 1 (t), r 2 (t)) < C for all t ≥ 0. The boundary ∂ M is obtained by identifying asymptotic half geodesics. We now fix some origin x 0 ∈ M . The boundary ∂ M is homeomorphic to T 1 x0 M via the map associating to each vector of T 1 x0 M the half geodesic starting from that vector. The limit set ΛΓ is defined as the closure in ∂ M of the orbit of x 0 under Γ. It is contained in ∂ M and it does not depend on the choice of the origin x 0 . G. Link, M. Peigné and J. C. Picaud showed that the end points of the lifts of the rank one periodic vectors are dense in ΛΓ × ΛΓ [START_REF] Link | Sur les surfaces non-compactes de rang un[END_REF]. As a side note, we remark that this does not imply that the rank one periodic orbits are dense in Ω.

Let c be a lift of the periodic geodesic c that lies on the boundary of the negatively curved part. We denote by c -and c + its two end points in ΛΓ. Let cn a sequence of geodesics in M associated to rank one periodic geodesics on M , and whose end points c - n and c + n tend to c -and c + . Passing to a subsequence, we can assume that the convergence is in fact monotonous in the neighborhood of c -and c + . Let us parameterize cn so that the distance from cn to c(0) is realized at cn (0).

The geodesics cn and c are separated by the geodesic cn+1 . This implies that the sequence d(c n (0), c(0)) is decreasing. Let w be an accumulation point of the sequence c ′ n (0). The geodesic generated by w has c -and c + as its end points, so it bounds a flat strip together with c. Moreover, it is in the closure of the (lifts of the) rank one periodic geodesics, so it must be equal to c. This proves the lemma.

37B10, 37D40, 34C28


Franck Chauvel
email: chauvel@irisa.fr

Olivier Barais
email: barais@irisa.fr

Isabelle Borne
email: borne@ubs.fr

Jean-Marc Jézéquel
email: jezequel@irisa.fr

Composition of Qualitative Adaptation Policies

In a highly dynamic environment, software systems requires a capacity of self-adaptation to fit the environment and the user needs evolution, which increases the software architecture complexity. Despite most current execution platforms include some facilities for handling dynamic adaptation, current design methodologies do not address this issue. One of the requirement for such a design process is to describe adaptation policies in a composable and qualitative fashion in order to cope with complexity. This paper introduces an approach for describing adaptation policies in a qualitative way while keeping the compositionality of adaptation policies. The basic example of a web server is used to illustrate how to specify and to compose two adaptations policies which handle respectively the use of a cache and the deployment of new data sources.

Introduction

In a highly dynamic environment, self-adaptation is a required property of software systems to maintain quality of service. However, although most recent middleware platforms support dynamic adaptations (such as Fractal [START_REF] Bruneton | The Fractal Component Model and its Support in Java[END_REF] or OpenCOM [START_REF] Coulson | A component model for building systems software[END_REF]), current development methodologies do not address correctly the issue of how to exploit these low level facilities provided by middlewares.

The contribution of this work is to provide an approach to express qualitative and composable adaptation policies directly inspired from requirements. The description is based on simple rules whose imprecision is managed using fuzzy logic. The associated semantics, also based on fuzzy logic, preserves a way to compose these adaptation policies.

The rest of this paper is organised as follows. Section 2 presents a motivating example and illustrates why adaptation policies are complex to design with ex-isting methodologies and Section 3 gives an overview of the approach. Section 4 defines the operational semantics of the adaptation policy composition. A numeric application is presented in Section 5. Finally Section 7 concludes and gives some future work.

Motivating Example

Let us consider a simple web server architecture that processes HTTP requests such as the Apache Web Server or the Microsoft IIS solution. One of the typical needs for such architectures is scalability. To improve it, we suggest to build a system which can adapt its own architecture to the load. Therefore, the system includes an optional cache component and a set of data servers as shown on Figure 1 The designer adds the following requirements about the adaptation of its web server's architecture:

1. The cache must be used only if the number of similar requests (so called the request deviation) is very high.

2. The amount of memory devoted to the cache component must be automatically adjusted to the load of web server.

3. The validity duration of the data put in the cache must be adjusted with respect to the load of the web server.

4. More data servers have to be deployed if the average load of the data servers is high.

On one hand, requirements 1 and 4 are related to some architectural reconfigurations since it is required to update the architecture by adding (or removing) components. On the other hand, requirements 2 and 3 are based on properties configuration (the data validity duration as a property of the cache component).

General Overview

In our approach, an adaptation policy is composed of a set of architectural reconfiguration rules and of a set of property configuration rules.

Fuzzy Properties

In order to deal with adaptation in a qualitative way, designers need to specify what is the vocabulary related to a particular property, or more precisely to a particular domain. The load property is described using the vocabulary low, medium or high. Then the designer needs to explain where to measure the value of each property and how to impact on the value (when it is necessary). In the following code example, we use the keywords sensor and actuator to denote these two functions. The local configuration rules allow the designer to specify the update of some local properties. For instance, in the example of the web-server, the size of the cache component must be automatically adjusted to the average load of the proxy. We assume that the platform provides an expression language which entails the verification of architectural invariants such as(cache.isDeployed ). The behaviour can be expressed using the following three local configuration rules:

when load is low if not cache . isDeployed then size is small when load is medium if not cache . isDeployed then size is medium when load is high if not cache . isDeployed then size is large

The architectural reconfiguration rules enable the description of the evolution of the structure of the architecture, in terms of component, connectors, and ports. For instance, in the example of the web server, two architectural actions can be defined to add or remove the cache component to the architecture. We assume these actions are not included into the adaptation policies, but are described separately. For instance, the Fractal platform provides a specific language named FScript which is devoted to express such actions.

when requestDeviation is low if cache . isDeployed then utility of addCache is very high when load is high if cache . isDeployed then utility of addCache is medium or high when load is low and requestDeviation is large if not cache . isDeployed then utility of removeCache is high end policy Each architectural reconfiguration rule describes the utility of performing a specific action under a particular context. These rules will enable the selection of the most appropriate architectural action when performing the adaptation.

Semantics

The interpretation of such fuzzy rules is performed in three steps: we fuzzify a crisp value (ie. a real value) to get a fuzzy value (such load is 'high'), then we use fuzzy inference to propagate fuzzy values on rule and finally we use defuzzification to get another crisp value.

Fuzzification A crisp value representing the current load is first measured. The membership degree of this particular value is calculated with respected to the membership function associated with the term "medium" defined for the load and used in the antecedent of the rule 1. In Figure 2, according to rule 1, the load is measured at 300 requests per second and one can say that the load is "medium" at 70% since the membership of medium is µ(300) = 0.7.

Inference The fuzzy value 70% is then used as the membership degree of the "medium" term used in the outcome of the rule 1.The particular membership degree is preserved during the fuzzy inference. Figure 2, the rule 1 says that, since the load is "medium" at 70%, then the cache size will be "medium" as 70% as well.

Defuzzification When the two previous steps are performed on each rule, the result is a set of fuzzy values for each properties. For instance, in Figure 2, after processing the two rules, the result is a pair of fuzzy values which says that the cache size is "medium" at 70% and "small" at 35%. To get a crisp value related to the cache size, the defuzzification process computes the centroid of the total area depicted in gray on the figure.

We propose an algorithm based on fuzzy control which computes the relevant value for each properties but also select the most relevant architectural reconfigurations.

Numerical Application

Our web server example involves two different adaptation policies. The first one handles the use of the cache component and has been described in Section 3. The other one handles the adaptation policy that manages the numbers of data servers. The system must deploy a data server when the server load is high and the request deviation is high but remove servers when the load is low and request deviation is low as well.

During the simulation, the load of the web server increases until it reaches its maximum values, and then decrease to a low value. In the same time, the request deviation is evolving for a low to high values. The results presented by those two figures explain the behaviour of each adaptation policy with respect to this context changes.

Figure 3 shows that the cache component is really used when the load is 'medium or high' and the request deviation is 'low'. We assume that the values of the properties of the cache are undefined when the cache component is not deployed. It shows also that the size of the cache increases with respect to the request deviation. For instance, between the simulation steps 100 and 300, the size of the cache increases since the re-Figure 3. Evolution of the web server architecture and its properties quest deviation is decreasing and then decreases when the request deviation is increasing again. Moreover, Figure 3 shows that when the load is 'low', the validity duration of the cache is 'low' (simulation steps from 100 to 300) and 'high' when the load is 'high' (simulation step from 300 to 500). Finally, Figure 3 shows that servers are deployed when the load is becoming 'high'. Between simulation steps 300 and 400, the cache component has already been deployed, the only architectural rule available is addDataServer. That's why data servers are added in a series. Then, between simulation steps 700 and 800 the data server are removed since the load is becoming 'low'.

Tools

We developed an extension of the Fractal platform [START_REF] Bruneton | The Fractal Component Model and its Support in Java[END_REF] to support the execution and the composition of our adaptation policies at run-time. Fractal, as many reflexive component models provides many facilities to work on component based architectures. The FScript language enables the description of imperative architecture reconfigurations based on high level primitives (such as create, delete, connect, disconnect) and thus it is perfectly suitable for the architectural actions that we want to described. Fractal also provides FPath an expression language which can be used to check architectural thus encapsulated into a specific Fractal Controller with handle adaptation in a composite component with respect to some given adaptation policies. This engine allows developers to set up various technical parameters such as the frequency of the control loop or the utility threshold used to trigger reconfigurations. This tools, containing the implementation of the semantics, the parsers for the adaptation policy language and the extension of the Fractal Component is available here1 .

Conclusion

In a highly dynamic context, the complexity of the environment and its low level implications make the early design of adaptation a very hard task. The issue of the complexity is tackled by a systematic use of the principle of separation of concerns. Several composable adaptation policies are thus defined, each one associated to a specific dimension of the environment. The low level implications can be handled using an abstract description where the environment is described in a qualitative fashion.

The contribution of the work presented here is to provide qualitative description of adaptation policies that preserve their composability. The qualitative is build over fuzzy expression that enable the use of adhoc vocabularies such as 'small', 'large' and of modifiers such as 'very', 'slightly' for instance. The semantics of composition is based on fuzzy logic and enable the composition of adaptation policies which contain both architectural and property reconfigurations.

To go further on the early design of adaptation policies is to compute systematically the best set of rules for each adaptation policies. This kind of optimization already exists in classical fuzzy control theory where the optimization of the rule set is performed using neural networks or genetics algorithm.

Figure 1 .

 1 Figure 1. The web server architecture modelled as UML2.0 component diagram

rule 1 :Figure 2 .

 12 Figure 2. The Fuzzy Control process: fuzzification, inference and defuzzification

http://www.irisa.fr/triskell/perso pro/obarais/pmwiki.php ?n=Research.Cherokee


Olivier Hugues
email: o.hugues@net.estia.fr

Jean-Marc Cieutat
email: j.cieutat@estia.fr

Pascal Guitton
email: guitton@labri.fr

An experimental augmented

Keywords: Augmented Reality, Mixed Environment, Image Processing, Human Factor, Combining exteroceptive data

published or not. The documents may come

INTRODUCTION

The continuous progress of new technologies has led to a proliferation of increasingly smart and powerful portable devices. The capabilities of devices on board a ship now enable crews to be offered a processing quality and volume of information until now unrivalled. In a hostile environment such as the sea, users need a relevant flow of information. Computer assisted vessel management is therefore increasingly widespread and digitalization is an inescapable development. The three main aims are as follows:

1. Improved safety (property, environment and people).

2. Increased gains from productivity (fishing, etc).

The representations required for environmental control

(orientation, location and direction).

These aims have led maritime software publishers to develop increasingly sophisticated platforms, offering very rich virtual environments and real time information updates.

II. RELATED WORK

There are many companies on the embedded maritime navigation software market. They can be separated into two categories. The first part includes those, which develop applications enabling embedded sensors to be taken advantage of (radar, depth-finder, GPS, etc.), such as Rose Point

  [4], and MaxSea International[14]. Other companies offer hardware platforms in addition to their software applications, like Furuno [10] and Garmin[11].These environments enable navigation to be greatly improved by only showing the necessary information, eg. by combining satellites photos of the earth and nautical charts like PhotoFusion in Figure1proposed by MaxSea[14].

Figure 1 .

 1 Figure 1. PhotoFusion: mixture of satellite photos and nautical charts (MaxSea) [14] Maritime software are Geographic Information Systems (GIS). Few systems merge augmented reality technology (AR) and GIS. When a GIS is used for outdoor application, there are some issues to take into account [23]. In [25], an AR application is proposed to add geographical information on video flux during town exploration with direct vision. ARVino [26] is an AR application to show geographical information related to


Alban Letailleur
email: alban.letailleur@saint-gobain.com

Jérémie Teisseire

Nicolas Chemin

Etienne Barthel
email: etienne.barthel@saint-gobain.com

Elin Sondergard

Elin Søndergård

Chemorheology of Sol-gel Silica

published or not. The documents may come

thermorheological behavior of Methyltriethoxysilane (MTES) gel films during isothermal treatments in a time-temperature-transformations (TTT) diagram. Infrared spectroscopy study of the gel demonstrates the existence, for the same elaboration chemistry, of a condensation threshold independent of the temperature above which the material vitrifies: this reveals the closed relation between the rheology and the chemical microstructure of the gel. We also discussed the strong influence of the elaboration chemistry on the initial microstructure and therefore on the vitrification. Rescale of Fig. 4 into a master curve using τ=t/t DMA and tanδ/tanδ max given in Table 2. 4 into a master curve (Fig. 11) as a function of temperature. tanδ max is the value of tanδ at the plateau. t DMA indicates the vitrification of the system and was measured by the intersection of the horizontal line at tanδ max and the second line with a negative slope of the second regime (Fig. 4).

1

Figure 1 .

 1 Figure 1. SEM picture of imprinted structures in MTES sol-gel coating: Dot array of about 50 nm

Figure 2 .

 2 Figure 2. DMA Measurement on glass fiber mat impregnated with a MTES sol after t a = 300 minutes.Evolution of elastic moduli ( __ ) and dissipation tanδ=E"/E' ( __ ) during a temperature cycle between room temperature and 250°C with 4°C.min -1 heating and cooling rates.

Figure 3 .

 3 Figure 3. DMA Measurement on glass fiber mat impregnated with a MTES sol after t a = 300 minutes.

Figure 4 .

 4 Figure 4. Isothermal DMA measurement on glass fiber mat impregnated with a MTES sol after t a = 300

Figure 5 .

 5 Figure 5. DMA Measurement on glass fiber mat impregnated with a MTES sol after t a = 60, 120, 180,

Figure 6 .

 6 Figure 6. Optical microgramm of scratch morphology evolution during thermal treatment. At the

Figure 7 .

 7 Figure 7. FTIR spectrum of a MTES layer deposited at t a =300 min and after thermal treatment at T=95°C during t= 0, 4, 10 and 20 min (dark to light grey solid lines). SiOSi massif at 1100 cm -1 was

Figure 8 .

 8 Figure 8. Evolution of the area of the SiOSi peak at 1030 cm -1 during thermal treatment at T= 75(▲),

Figure 9 .

 9 Figure 9. FTIR spectra of MTES gel layers deposited at t a =60, 120, 180, 240 and 300 minutes. All

Figure 10 .

 10 Figure 10. In FTIR experiments, evolution of the intensity of the SiOSi peak at 1030 cm -1 of sol-gel

Figure 11 .

 11 Figure 11. DMA Measurement on glass fiber mat impregnated with a MTES sol after t a = 300 minutes.

Figure 12 .

 12 Figure 12. viscous-brittle transition time t 2 during the scratch test (□, obtained from Table1) and the

Figure 13 .

 13 Figure 13. Arrhenius plot for the condensation reaction. The logarithm of the kinetics constants

Table 1 .

 1 In a scratch test, time needed to reach the fluid-viscous (t 1 Fig.6a-b) and viscous-brittle (t 2 Fig.6b-c) transitions as function of temperature for MTES layer prepared after t a =300 min.

	Temperature (°C) 125	118	110	100	90	80	70	60	50	40
	t 1 (s)	<5	16	25	40	85	215	420
	t 2 (s)	8.2	17.5	40	60	110	240	495	1110 3300 8100
	Temperature (°C)	50		60	70		80	90		100
	tan δ max	0.337		0.284	0.208	0.188	0.118	0.102
	t DMA (min)	75'		40'	23'20	14'10	12'30	7'10

Table 2 .

 2 Parameters tanδ max and t DMA used for the rescaling of Fig.

  Chou, S. Y.; Krauss, P. R.; Renstrom, P. J Science, 1996, 272, 85.

2 Moran, I. W.; Briseno, A. L.; Loser, S.; Carter, K. R. Chem. Mater. 2008, 20, 4595. 3 Ngoumeni-Yappi, R.; Fasel, C.; Riedel, R.; Ischenko,V.; Pippel, E.; Woltersdorf, J.; Clade, J. Chem. Mater. 2008, 20, 3601.