Olivier Le Meur
email: olemeur@irisa.fr

Thierry Baccino
email: thierry.baccino@univ-paris8.fr

Aline Roumy
email: aline.roumy@inria.fr

Prediction of the Inter-Observer Visual Congruency (IOVC) and application to image ranking

Keywords: H.4 [Information Systems Applications]: Miscellaneous; D.2.8 [Software Engineering]: Metrics-complexity measures, performance measures Experimentation, Human Factors visual dispersion, congruency, photo ranking eye tracking

. To illustrate the interest of the proposed model, we have used it to automatically rank personalized photograph.

INTRODUCTION

Idiosyncrasy is defined as an individualizing quality or characteristic of a person or group, and is often used to express peculiarity (from Wikipedia). Therefore idiosyncratic eye movements refer to as the difference between the visual scanpaths of observers viewing the same stimulus. More precisely, these differences concern the intrinsic features of visual fixations. For instance, there is a strong variability of fixation durations between and within observers as shown by [START_REF] Rayner | Eye movements in reading and information processing: 20 years of research[END_REF]. In this paper, we define inter-observer visual congruency (IOVC) and we propose a new method to automatically compute it.

The causes explaining the visual dispersion are usually classified into either stimulus-dependent (or bottom-up) or observer-dependent features (or top down).

A first observer-dependent cause is the cultural difference as suggested by [START_REF] Nisbett | The geography of thought: how Asians and Westerners think differently[END_REF][START_REF] Chua | Cultural variation in eye movements during scene perception[END_REF]. These authors compared the visual scan pattern of two different populations, an American and an Asian one. The conclusion was Asian people tend to look more at the background and spend relatively less time on focal objects than American people. However, a recent study casts doubt on the influence of cultural differences on oculomotor behavior [START_REF] Rayner | Eye movements when looking at unusual-weird scenes: are there cultural differences?[END_REF].

A second observer-dependent factor of variability is due to our prior knowledge or our prior experience as illustrated by [START_REF] Althoff | Eye-movement-based memory effect: a reprocessing effect in face perception. Figure 10: 49 pictures of various contents sorted out in function of their interestingness (from top-left (highest congruency) to bottom-right (lowest congruency))[END_REF]. They showed that the variability differs when observers looked at famous versus non-famous faces. Famous faces tend to decrease the dispersion of visual fixations just after the stimulus onset. The visual scanning is then affected by higher level information such as the eye-movement-based memory effect.

On the opposite, stimulus-dependent features influencing the dispersion between observers is related to the properties of the stimuli itself. For instance, Rousselet et al. [START_REF] Rousselet | Is it an animal? is it a human face? fast processing in upright and inverted natural scenes[END_REF] shows that human faces as well as animals attract our attention leading to a decrease of inter-observer variability. Contrary to the two previous factors that are observer-dependent, the properties of the stimuli and their characteristics can be easily extracted and analyzed automatically from the picture.

It is also important to note that the difference between observers' scanpath is time-dependent [START_REF] Parkhurst | Modelling the role of salience in the allocation of overt visual attention[END_REF][START_REF] Tatler | Visual correlates of fixation selection: effects of scale and time[END_REF]. They indeed showed that the consistency in fixation locations between observers decreases with prolonged viewing. To explain that, two hypotheses have been formulated: [START_REF] Parkhurst | Modelling the role of salience in the allocation of overt visual attention[END_REF] shows that the influence of bottom-up mechanisms decreases with the viewing time and is progressively overridden after several seconds of viewing by top-down mechanisms. On the contrary [START_REF] Tatler | Visual correlates of fixation selection: effects of scale and time[END_REF] conjectures that bottom-up mechanisms are not time-dependent and that low-level visual features might keep their ability to attract our visual attention throughout the viewing. They therefore explained that the increase of inter-observer variability would be due to the growing influence of top-down mechanisms over time. Even if both papers propose different explanations, they all agree on the time dependency of IOVC and on the fact that bottom-up (or stimulus-dependent) mechanisms occur first.

In this study, we predict the inter-observer visual congruency that occurs in the first seconds of a picture observation. For a given picture, a score indicating the degree of visual congruence is computed. The computational model we propose, combines stimulus-dependent features which are solely inferred from the low-level visual features of the incoming picture. We train the model by using a large eyetracking database. In this database, we consider the eye movements tracked in the first seconds of a picture observation. Observer-dependent features such as prior knowledge are not taken into account since they may vary from one observer to another. In order to get a general model that can apply to any picture, we propose a stimulus-dependent model. Therefore, our method predicts the dispersion based on the influence of stimulus characteristics, rather than individual observer characteristics.

There are very few studies dealing with the computational modeling of the inter-observer visual congruency. The closest work concerns a method to measure visual clutter. Note that IOVC and visual clutter defers since the former is the dispersion that exists between locations focused by observers whereas the latter is related to the amount of visual information in a scene. However both might be strongly correlated. The most popular method to measure the visual clutter has been proposed by Rosenholtz et al. [START_REF] Rosenholtz | Measuring visual clutter[END_REF]. The idea is to measure the visual clutter of a scene in order to avoid confusion and to speed up the visual processing of information. For instance, a possible application is to help people to find important information on a web site or simply on a screen. Rosenholtz et al.'s solution is based on a set of low-level visual features. Some of them will be reused in this study. Rosenholtz et al. assessed the performance of their algorithm by comparing the amount of clutter for a scene to the reaction time required to find a target in the same scene. In this paper as in [START_REF] Rosenholtz | Measuring visual clutter[END_REF], we use low-level visual features. However, our approach differs from [START_REF] Rosenholtz | Measuring visual clutter[END_REF] since the goal is different and since we not only use low-level visual features but also eye tracking measurements. More precisely, we use the visual scanpaths of observers in order to train a model. Our approach is supported by a number of studies suggesting that the degree of clutter present in the scene affects the deployment of our visual attention [START_REF] Henderson | The influence of clutter on real-world scene search: Figure 11: Top: pictures having high IOVC (first five) and pictures having low IOVC (last five). Bottom: saliency maps of pictures. Bright areas correspond to the most salient parts. Evidence from search efficiency and eye movements[END_REF]. For instance, Ehinger et al. [START_REF] Ehinger | Modeling search for people in 900 scenes[END_REF] measured the dispersion between observers to define an upper bound of model-predicted saliency [START_REF] Zhao | Learning a saliency map using fixated locations in natural scenes[END_REF]. Eye movements were collected when 14 observers performed a task of pedestrian detection in 912 outdoor scenes. The dispersion between observers was computed by a one-againstall method as proposed by [START_REF] Torralba | Contextual guidance of eye movements and attention in real-world scenes: the role of global features in object search[END_REF]. Here we use the same measurement method for the inter-observer dispersion (as in [START_REF] Ehinger | Modeling search for people in 900 scenes[END_REF]) and this provides a ground truth used in the learning phase of our algorithm. However the comparison between Ehinger et al. [START_REF] Ehinger | Modeling search for people in 900 scenes[END_REF] stops there because Ehinger et al. propose a computational model to predict where observers look at, while searching for pedestrians. To infer the salient locations in this visual search context, they combined different guidance sources such as low-level saliency (by using Torralba's model [START_REF] Torralba | Contextual guidance of eye movements and attention in real-world scenes: the role of global features in object search[END_REF]), target features (by using a person detector) and scene context. In our method, we do not predict where people look at. We predict the dispersion between observers indicating whether observers look at similar locations or not, while Ehinger et al. used the dispersion between observers as an an upper bound for comparing performance of computational models with human fixations.

Eye movements are also often used to examine the usability of an interface. Golberg and Kotval [START_REF] Golberg | Computer interface evaluation using eye movements: methods and constructs[END_REF] defined a number of metrics based on the analysis of fixation durations and saccade amplitudes. Cowen et al. [START_REF] Cowen | An eye-movement analysis of web-page usability[END_REF] featured the efficiency of a visual search by examining the fixation distributions. Fixations concentrated in a small area indicate focused and efficient searching whereas sparse fixations would indicate lower search efficiency.

In this paper, we present a computational model of interobserver visual congruency (IOVC). From a training set composed of eye tracking data, we build a prediction model by using a supervised approach. Our goal aims to give a score to a given picture that indicates whether the visual strategy of human observers is similar or not. From the eye tracking data, we set up a ground truth by computing for each picture the inter-observer congruency. By using a limited number of low-level visual features, a model is trained and is able to predict efficiently and automatically the dispersion between observers. This predicted score can be used in applications where the visual perception of a picture matters such as website design, advertisement. Indeed, it can help to rank images based on their capacity to attract our attention or help to measure the relevance of web design.

The paper is composed as follows. Section II gives an overview of the proposed approach. Section III describes how the IOVC is measured. A large database of eye tracking data is used for this purpose. Section IV is related to the extraction of visual features that are supposed to influence the attentional allocation. Section V concerns the learning and its performance. Section VI presents an application for ranking personalized pictures based on their interestingness. Finally, we conclude the paper.

In summary, our contributions include:

• a solution for predicting the inter-observer congruency.

We use an eye tracking database to train a computational model; • a novel scheme to estimate the depth of field for a scene is proposed which is simpler than existing methods; • a new method to rank automatically personalized photographs. The ranking is based on pictures' interestingness. Once the estimation of model's parameters has been performed, personalized photograph can be ranked according to their interestingness. The interestingness of an image is related to its ability to attract and to hold our attention. The interestingness of a picture is thus similar to the interobserver congruency.

SYSTEM OVERVIEW

MEASURING THE INTER-OBSERVER CON-GRUENCY

Eye-tracking database

Judd et al.'s database [START_REF] Judd | Learning to predict where people look[END_REF] is used in this study. Let us first review the experimental protocol and the characteristics of this dataset. The database is composed of 1003 images of various contents. Images had different resolutions and were in a landscape or portrait orientation. Fifteen viewers were involved in the eye tracking tests. The users were males and females between the ages of 18 and 35. Two of the viewers were researchers and the others were naive viewers. They viewed each image for 3 seconds in a free-viewing task. Participants sat at a distance of approximately two feet from a 19 inch computer screen of resolution 1280 × 1024. The images subtended approximately 45 horizontally and 37 vertically of the observer's field of view. The number of pixel per degree is then about 23. This database can be downloaded from http://people.csail.mit.edu/tjudd/index.html.

Inter-observer congruency

To assess the inter-observer congruency, a one-against-all approach (also called leave one out) is used as in [START_REF] Torralba | Contextual guidance of eye movements and attention in real-world scenes: the role of global features in object search[END_REF]. The first step consists in computing a 2D fixation distribution from the fixation data of all observers except one for a given picture. The fixation distributions were then convolved with a two-dimensional Gaussian. Each pixel of this map represents the probability to be fixated. The standard deviation of the Gaussian kernel is set at one degree to reflect estimates of foveal size. This map is then thresholded to select an image area having the highest probability of being fixated. The threshold is adaptively set in order to keep 25% of the image. The goal is now to compute the percentage of the visual fixations of the remaining observer that fall within salient parts of the threshold saliency map. This process was iterated for all observers. For a given picture, the variabil- On the left, the spatial coordinates of visual fixations for each observer are given. By considering all fixations except those stemming from the i th observer, a heat map is computed (on the right). After an adaptive binarization, we count the number of fixations of the i th observer that fall into salient regions (white region on the bottom). ity between observers is the average of the aforementioned percentage over all subjects. As most of the dispersion values are in the range of 0.5 to 1, the scale has been stretch from 0 to 1. A value of 1 indicates that observers fixate the same areas. Conversely, a low value would suggest that the scan patterns are uncorrelated meaning a strong variability between subjects. Figure 2 illustrates the method for the i th observer.

Over the whole dataset, the average dispersion is of 72%, the median dispersion is of 76%. Figure 3 shows the distribution of the inter-observer congruency over the whole dataset. It is interesting to notice that, for a number of pictures, the congruency is maximal. This is due to the fact that a fixation point is defined by its spatial coordinates and by its neighborhood, representing one degree of visual angle (representing fovea's size). Figure 4 shows for different pictures the experimental congruency between observers. Results suggest that the congruency is small when there is nothing in the scene that catches our attention. In this context, areas that stand out the background are rare and the scene consistency is strong. As expected, the presence of human faces tends to increase the inter-observer congruency. It is indeed known that human faces attract in an effortlessly manner our attention.

EXTRACTION OF VISUAL ATTRIBUTES IMPACTING THE INTER-OBSERVER VARI-ABILITY

In this section, the visual features used to predict the inter-observer congruency are presented.

Face detection

As the human faces significantly impact our visual deployment, it is of importance to detect human faces. The face detector we use is the one proposed by OpenCV library. The face detector is based on Haar feature-based cascade classifier for object detection. This kind of detection has been initially proposed by [START_REF] Viola | Rapid object detection using a boosted cascade of simple features[END_REF] and improved by [START_REF] Lienhart | An extended set of haar-like features for rapid object detection[END_REF].

Color Harmony

Several studies showed that scene incongruency or inconsistency are factors influencing the inspection of an image [START_REF] Loftus | Cognitive determinants of fixation location during picture viewing[END_REF][START_REF] Gordon | Attentional allocation during the perception of scenes[END_REF][START_REF] Underwood | Visual saliency and semantic incongruency influence eye movements when inspecting pictures[END_REF]. Among the scene inconsistency factors (objects, size, etc), the color might be an important factor. For instance, Frey et al. [START_REF] Frey | What's color got to do with it? the influence of color on visual attention in different categories[END_REF] showed that overt attention is significantly influenced by the presence of color. The basic assumption was that the color presence might systematically increase the congruency. The conclusion of [START_REF] Frey | What's color got to do with it? the influence of color on visual attention in different categories[END_REF] is not so straightforward. Indeed, the influence of the color might depend on the picture's category.

In this study, the color inconsistency refers to the color harmony of the scene. We speculate that a scene with a strong consistent color harmony would be less visually disruptive than a scene with a poor color harmony. To measure the color harmony, we propose to follow the process of [START_REF] Cohen-Or | Color harmonization[END_REF].

In [START_REF] Cohen-Or | Color harmonization[END_REF], the notion of color harmony is based on the work of Matsuda [START_REF] Matsuda | Coor design[END_REF][START_REF] Tokumaru | Color design support system considering coor harmony[END_REF]. Figure 5 illustrates the height harmonic templates on the hue wheel. These templates, that may be rotated by an arbitratry angle, can be used to measure how aesthetically pleasing an image is.

Figure 5: The seven color templates defined by [START_REF] Matsuda | Coor design[END_REF] on the hue wheel. The templates may be rotated by an arbitrary angle (extracted from [START_REF] Cohen-Or | Color harmonization[END_REF]). The template N is used for gray-scale images.

The color harmony of an input color picture I, called CH(I) is computed by equation 1. We use similar notations as [START_REF] Cohen-Or | Color harmonization[END_REF]. They are briefly reminded below:

CH(I) = min m F (I, (m, α * )) (1)
where, m ∈ {i, I, L, T, V, X, Y }. The function F is defined as follows:

F (I, (m, α * )) = i∈I H(i) -E Tm(α * ) (i) × S(i) (2)
where H and S denote the hue and the saturation channels, respectively. The hue distance . refers to the arc-length distance on the hue wheel (measured in radians). Hues that are enclosed in the sector of Tm are considered to have zero distance from the template. α * defines the orientation of the template Tm that minimizes the distance F . As in [START_REF] Cohen-Or | Color harmonization[END_REF], we use Brent's algorithm [START_REF] Press | Numerical Recipes in C: the art of Scientific Computing[END_REF] to find the best orientation α * . This kind of algorithm seeks a local minimum of a function in a given interval. E Tm(α * ) (i) is the sector border hue of template Tm with orientation α * that is the closest to the hue of pixel i. Figure 6 gives an example of two pictures extracted from [START_REF] Cohen-Or | Color harmonization[END_REF]: one is the original whereas the second presents an optimized color harmony. The value F is given for each template.

Depth of Field

The Depth of Field (DoF) is defined as the distance between the nearest and farthest objects in a scene that appear acceptably sharp in an image. A shallow DoF is often used to emphasize the region of interest in a picture. It is for instance used for portraiture photography. All background details are blurred whereas the nearest person (or object) is sharp, attracting our attention. An example is given figure 7 (a). When a large DoF is used, the opposite effect is achieved. The entire picture is sharp so that all the details of the scene are preserved. Picture of figure 7 (c) was taken with a large DoF.

Estimating the DoF is then of importance. As photographers can steer our visual attention towards a particular areas by controlling the DoF, the inter-observer variability might be contingent upon this artistic effect.

To determine the depth of field, the proposed algorithm relies on the fact that the shape of the horizontal/vertical derivatives histogram is modified after a blurring operation [START_REF] Levin | Blind motion deblurring using image statistics[END_REF][START_REF] Luo | Photo and video quality evaluation: focussing on the subject[END_REF]. The proposed scheme to compute the DoF of a picture is described below.

Let I the input picture and f k the bluring kernel of size k × k (k = {3, 5, 7}). The blurring kernels are first applied on the luminance L of I and the vertical and horizontal derivatives are then computed. The vertical and horizontal derivatives are given by:

p xk α hist(I * f k * dx) (3)
p yk α hist(I * f k * dy) (4)
where dx = [1 -1] and dy = [1 -1] T . For a pixel (i, j) and for a kernel k, we compute the KLdivergence between the distributions p xk and p yk and the original distributions px1 and py1:

D k (i, j) = (n,m)∈W ij KL(p xk |px1)(n, m)+KL(p yk |py1)(n, m)
(5) where, Wij is a window centered on the pixel (i, j). In this study, all the experiments were performed using uniform kernels.

The KL-divergence for a given pixel located at (i, j) is given by the following formula:

KL(p|q)(i, j) = pijlog( pij qij ) (6)
The KL-divergence involves two probability density functions p and q. They both sum to 1. The KL-divergence is only defined when pij and qij are greater than zero. The quantity 0log0 is considered as zero.

The use of the KL-divergence is especially interesting in the equation 7 because of its similarity with the DoF values. Indeed, D k tends to zero when the distributions p xk and p yk are close to px1 and py1, respectively. In this case, it means that the incoming picture is not sensitive to blur indicating that the picture is already blurred. The DoF is then low. When the value D k increases, it suggests that the areas under analyis is rather sharp (DoF is probably high).

The DoF value is finally computed as follows:

DoF = (i,j)∈I k D k (i, j) (7)
Figure 7 (b) and (d) give the value of DoF for two examples. For the first one, the DoF is of 0.12 suggesting that the picture is composed of large blurred areas. As the DoF is greater than zero the picture probably presents a sharp areas, sensitive to a blurring operation. For the second picture, the DoF is of 0.75. Unlike the previous one, this picture is more sensitive to blurring operations, suggesting that most of the pictures are sharp. Figure 7 (b) and (d) illustrate in bright areas regions that are sensitive to blur. For the sake of visibility, the two pictures have been normalized in the range of 0 to 255 by using their own global maximum (3.56 and 4.68, respectively). This kind of map might be used to extract the region of interest when the DoF value is rather low, as proposed by [START_REF] Luo | Photo and video quality evaluation: focussing on the subject[END_REF].

Scene complexity

The amount of visual information as well as the visual clutter in a picture might contribute to explain the observers' variability [START_REF] Rosenholtz | Measuring visual clutter[END_REF]. Oliva et al. in [START_REF] Oliva | Identifying the perceptual dimensions of visual complexity of scenes[END_REF] determined a list of factors that correlates with our representation of the visual complexity of a scene. Among them, the most important would be the quantity and the variety of objects, detail and color. To assess the visual complexity, three computational measures are used: the entropy, the number of regions and the amount of contours.

Entropy-based scene complexity

To compute the entropy of the incoming picture I, we follow a similar approach of the one described in [START_REF] Rosenholtz | Measuring visual clutter[END_REF]. The complexity of the scene is the sum of the entropies of wavelet subbands. The procedure is described below:

1. The input picture is first converted into the Lab color space; 2. Each component is transformed by using a 2D dyadic wavelet transform. The level number is set to 2;

3. A non parametric method is used to compute the probability distribution of wavelet coefficients. The entropy for each subband is computed as E =i pilog(pi), where, pi is the probability distribution of wavelet coefficients for a given subband.

4. We sum the subband entropies for each component {L, a, b};

5. The final complexity C is obtained by using the pooling of [START_REF] Rosenholtz | Measuring visual clutter[END_REF]: C = 0.84 × EL + 0.08 × Ea + 0.08 × E b , where EL, Ea and E b represent the entropy of the component L, a and b, respectively.

Figure 8 gives two complexity values C for two pictures.

Color mean shift segmentation

The color mean-shift segmentation has been proposed by [START_REF] Comaniciu | Mean shift: A robust approach toward feature space analysis[END_REF]. Based on a bilateral filtering, the color mean-shift segmentation associates each pixel of the incoming picture with a significant mode of the joint domain density located in the neighborhood of the considered pixel. The software designed by [START_REF] Christoudias | Synergism in low-level vision[END_REF] and available at http://coewww.rutgers.edu/riul/ research/code/EDISON/index.html is used to perform the segmentation.

The sizes of the filtering kernel (hs, hr) (by using the notations of [START_REF] Comaniciu | Mean shift: A robust approach toward feature space analysis[END_REF]) are both set to 5. M is the minimum number of pixels enclosed by a region (equal to 1 percent of the input resolution).

Figure 8 shows two segmented pictures ((b) and (d)). The number of regions of the segmented picture is also given. This value is used to feature the visual complexity of the scene.

Amount of contours

Edges play an important role in our perception. For instance, Baddeley and Tatler [START_REF] Baddeley | High frequency edges (but not contrast predict where we fixate: A bayesian system identification analysis[END_REF] showed that edges correlate with fixation location in real-world scenes better than luminance contrast.

To measure the amount of contours in an image, Sobel edge detectors are used to detect horizontal, vertical and diagonal edges. The kernel has a size of 3 × 3. These kernels are applied on each level of a Gaussian pyramid. The number of levels is equal to 3. For each level, we compute the average energy of the Sobel detectors (by averaging over the level the squared output of Sobel filter). This process is performed for each level of the pyramid and for the three components {L, a, b}. For a given component, we combine the energy across scale by taking the average. Finally, to get a single measure, the average energy value is computed across the three components.

LEARNING: DESCRIPTION AND PER-FORMANCE

Learning

Each image is then represented by a features vector, having a dimension of 6. The dimensionality of the features vector is not reduced as the number of dimension is low.

The estimation of the inter-observer congruency is equivalent to the estimation of the joint probability density function p(IOV C, v). The random variable IOV C represents the inter-observer visual congruency whereas v is the feature vector containing the six indicators. To infer the relationship between these two random variables, a learning algorithm is used. We follow the same procedure described in [START_REF] Torralba | Depth estimation from image structure[END_REF][START_REF] Ross | Estimating perception of scene layout properties from global image features[END_REF] and use software kindly provided by [START_REF] Ross | Estimating perception of scene layout properties from global image features[END_REF]. We just remind the main aspects of this learning procedure.

The learning consists in estimating the relationship between a measure of congruency and the extracted visual features described in the previous section. A cluster-weighted model (CWM) initially proposed by [START_REF] Gershnfel | The nature of mathematical modelling[END_REF] is used. This is a generalization of Gaussian mixture, in which each Gaussian function expressed a part of the relationship between the input and the output distributions. The joint PDF p(IOV C, v) is given by:

p θ (IOV C, v) = N i=1 p(ci)p(v|ci)p(IOV C|v, ci) (8)
where IOV C is the inter-observer congruency and v refers to the image features. N is the number of clusters. Each cluster is decomposed in three factors:

• p(ci) is the weight of the cluster ci; • p(v|ci) is a multivariate Gaussian with mean µi and covariance matrix i :

p(v|ci) = exp -1 2 (v -µi) T ( i ) -1 (v -µi) (2π) L/2 i 1/2 (9)
• p(IOV C|v, ci) is the probability of the inter-observer congruency IOV C given the input data in the cluster i:

p(IOV C|v, ci) = exp -1 2 (IOV C -w T i v * ) 2 √ 2πσi (10)
This is a Gaussian function with a variance equal to σ 2 i and a mean dependent on the input feature v * (same as v with a value 1 concatenated to its end) and a weight vector wi. This vector indicates the weight of each input data.

Parameters of the model θ, (p(ci), µi, i , σ 2 i , wi, with i = 1...N ) are estimated using the Expectation-Maximization algorithm [START_REF] Jordan | Hierarchical mixtures of experts and the em algorihtm[END_REF].

As explained in [START_REF] Hastie | The elements of statistical learning[END_REF], in data-rich situation, it would be possible to split the data into three parts (a training set, a validation set and a test set). As this is not the case here (1000 pictures), we use the Bayesian Information Criterion (BIC) to define the model complexity. The BIC is given by:

BIC = -2 × loglik + d × log S ( 11
)
where d is the number of free parameters depending on the number of clusters, S is the size of the dataset and loglik is the maximized log-likelihood:

loglik = S n=1 log p θ (IOV C, v) (12)
where p θ (IOV C, v) is defined in equation 8. θ are the estimated parameters of the model. Figure 9 presents the BIC values in function of N (the number of clusters). N = 9 is a good trade-off between complexity and quality of prediction. This value allows to predict quite efficiently the inter-observer congruency without over fitting the training data. Indeed, over fitting the data would lead to an almost perfect prediction but the risk is to loss the generalization property. As mentioned by [START_REF] Einhorn | Accepting erro to make less error[END_REF], it is important to accept error to make less error. By using Remark: during the learning phase, we didn't use the face detector in order to limit the impact of false alarms on the estimated parameters. Instead, hand-label data are used indicating for each picture of the dataset the number of faces present.

Performance

A qualitative and quantitative evaluation of the proposed approach has been performed. Figure 11 presents some qualitative results. Figure 11 gives 10 pictures (top): the first five pictures have a high IOVC whereas the last five pictures present a small IOVC. These results are consistent with our own subjective evaluation. The first five pictures of figure 11 are much more interestingness than the last five pictures. In other words, it would be difficult to predict where an observer would focus on this kind of pictures. To illustrate this point, saliency maps of these pictures are computed using [START_REF] Le Meur | A coherent computational approach to model the bottom-up visual attention[END_REF] (bright areas correpond to salient areas). These maps are more or less relevant and they do not differentiate pictures of Figure 11 whereas IOVC scores can do. IOVC scores could be used to estimate saliency maps relevance. A high IOVC score would suggest that the saliency map has to be very focussed as for the fourth picture on the top row (Figure 11).

A quantitative evaluation is also performed by using another eye tracking database. This database is composed of 27 pictures and can be downloaded from http://www. irisa.fr/temics/staff/lemeur/visualAttention/. We compute the Pearson correlation coefficient between IOVC stemming from this new ground truth and our prediction. Both are correlated r(54) = .27, p < .17. The correlation is not significant due to the small number of pictures in this database. In addition, the face detector fails to detect the human faces on 5 pictures due to the varying face poses. This lack of accuracy in the detection lowers the correlation coefficient.

The proposed method is compared to the Feature Congestion measure of Rosenholtz et al. [START_REF] Rosenholtz | Measuring visual clutter[END_REF]. This measure aims to evaluate the visual clutter of a scene. The software available on Rosenholtz's web page is used. We run the Feature Congestion measure on the aforementioned dataset. The correlation coefficient between the Feature Congestion measure and IOVC of this dataset is r(54) = -0.15, p < .43. The correlation is negative since a high visual clutter might be interpreted as a weak congruency.

Limitations

The proposed model is relevant in order to predict the dispersion of observers only in free-viewing task. In the introduction, we have dressed a list of factors influencing the dispersion between observers. One factor that was not mention is the task to perform. For instance, if we measure the inter-observer congruency when the task is to detect pedestrians, the inter-observer congruency is very high, indicating that observers share the same strategy to perform the task. To illustrate this point, we compute the inter-observer congruency over the whole eye tracking database of Ehinger [START_REF] Ehinger | Modeling search for people in 900 scenes[END_REF] (some details are given in the introduction). The average dispersion is of 82%, the median dispersion is of 88%. Compared to the dispersion measured on Judd's database, there is a significant difference (unpaired t-test,F (1, 1356) = 8.28, p < .001).

Another limitation concerns the influence of the viewing time on the dispersion. It has been shown that the dispersion is time-dependent and increases with the time viewing. This feature is here not taken into account. For the targeted application, this feature was not judged as fundamental.

The last limitation concerns the limited accuracy of the detector we use. More specifically, as the presence of face plays an important role, the face detector has to be as efficient as possible.

IMAGE RANKING BASED ON INTER-ESTINGNESS

The interestingness of an image is related to its ability to attract and to hold our attention. For instance, to give a score of interestingness, Flickr (http://www.flickr.com) uses a combination of several parameters such as comments, annotations, favorites, etc. This is an excellent indicator but it requires a feedback or an effort of the users. An indicator based on the content analysis, such as the proposed method, might help evaluating the immediate interest of an image.

The proposed method can then be used in a context of photos browsing and automatic photograph organization. As in [START_REF] Rother | ACM Transactions on Graphics (SIGGRAPH)[END_REF][START_REF] Luo | Photo and video quality evaluation: focussing on the subject[END_REF][START_REF] Sun | Photo assessment based on computatinal visual attention model[END_REF][START_REF] Yeh | Personalized photograph ranking and selection system[END_REF], we propose to organize a large set of photograph. However the proposed ranking is based on the picture interestingness. This is different from state-of-theart methods. For instance, Luo and Tang [START_REF] Luo | Photo and video quality evaluation: focussing on the subject[END_REF] proposed to rank images according to their quality. This score is based on composition, lighting, focus controlling and color. Although there are some similarities among the extracted features (such as the DoF), better photo quality does not mean more relevant or interestingness, as mentioned in [START_REF] Luo | Photo and video quality evaluation: focussing on the subject[END_REF]. For instance, Judd et al. [START_REF] Judd | Fixations on low-resolution images[END_REF] show that the dispersion between observers depends on image complexity and that fixations from lower-resolution images (low quality) can predict fixations on higher-resolution images (high quality).

To illustrate the proposed method, we propose to sort forty nine images. We run the proposed model on these pictures in order to estimate their interestingness. Figure 10 illustrates the results by showing the pictures ranked according to their interestingness. The first picture (top-left) has the most important IOVC whereas the picture having the lowest IOVC appears at bottom-right. On the last pictures, we can notice that there is nothing that stands out the background. In other words, it would be very difficult to predict for this kind of picture where an observer would focus on.

CONCLUSION

In this paper we proposed a new criterion to automatically estimate the visual congruence between observers. We have evaluated our method qualitatively and quantitatively. We showed that our IOVC criteria outperforms the Feature Congestion measure of [START_REF] Rosenholtz | Measuring visual clutter[END_REF] since the absolute value of the correlation between the ground truth IOVC and our criterion is larger that with the Feature Congestion measure of [START_REF] Rosenholtz | Measuring visual clutter[END_REF]. The predicted IOVC can be used in image processing applications where the visual perception of a picture matters such as website design, advertisement. For instance, we considered ranking personalized photograph: pictures are sorted out in function of their predicted IOVC.

However, the proposed method is still an approximation of the 'true' IOVC. It can best estimate short-term IOVC, that is the IOVC experienced in the first instant of a picture observation. In order to improve this method, it would be necessary to consider both higher level factors such as those proposed by [START_REF] Torralba | Statistics of natural image catagories[END_REF] and higher level cognitive factors like the scene coherence [START_REF] Henderson | Regarding scenes[END_REF]. Taking into account these factors is difficult because of their complexity.

In future work it is planned to build a new eye tracking database in order to improve the training and the performance assessment. The influence of higher level information such as the type of the scene (indoor, outdoor...) will also be examined. Last but not the least, we will consider more IOVC-based applications. One of them is related to photo-quality assessment as presented in [START_REF] Bhattacharya | A coherent framework for photo-quality assessment and enhancement based on visual aesthetics[END_REF][START_REF] Luo | Photo and video quality evaluation: focussing on the subject[END_REF]. The use of the predicted IOVC might be combined with other image ranking work.

Figure 1

 1 Figure 1 illustrates the proposed approach. First, an image database with its corresponding eye tracking data is set up. The feature extraction step extracts different visual attributes for each picture of the training dataset. After the feature extraction, the training set along with eye tracking data is used to train a cluster-weighted model. The trained model is then used to predict the inter-observer congruency of a picture taken from a new data set.

Figure 1 :

 1 Figure 1: System overview.

Figure 2 :

 2 Figure 2: Measure of the inter-observer congruency.On the left, the spatial coordinates of visual fixations for each observer are given. By considering all fixations except those stemming from the i th observer, a heat map is computed (on the right). After an adaptive binarization, we count the number of fixations of the i th observer that fall into salient regions (white region on the bottom).

Figure 3 :

 3 Figure 3: Distribution of the inter-observer congruency over Judd et al.'s dataset [20].

Figure 4 :

 4 Figure 4: Examples of pictures associated with their corresponding inter-observer congruency. IOVC is in the range of 0 (strongest) to 1 (lowest).

Figure 6 :

 6 Figure 6: Original (top) and harmonized (bottom) picture extracted from [6]. On the right-hand side, the value F (I, (m, α * )) for each template m is given. The red value is the lowest one, called here CH(I). The harmonized picture presents a lower CH value than the original one.

Figure 7 :

 7 Figure 7: (a) and (c) two original pictures. (b) and (d) indicates areas sensitive to blur in dark. The brigth areas correspond to unfocuss areas. DoF, standing for Depth of Field, indicates whether the picture is sensitive to blur (deep DoF) or not (shallow DoF).

Figure 8 :

 8 Figure 8: (a) and (c) two original pictures. (b) and (d) are the segmented pictures. C and Reg stand for the complexity measure and the number of regions, respectively.

N = 9 ,

 9 we respect this first point. Concerning the quality of prediction, the ground truth and the predicted values of IOV C are correlated r(2004) = .34, p < .001 (Pearson coefficient) and r(2004) = .28, p < .001 (Spearman coefficient).

Figure 9 :

 9 Figure 9: BIC in function of the model complexity. Several trials have been performed (light red curves). The dark red curve gives the median BIC values.


Héctor Fernández

Cédric Tedeschi

Thierry Priol

A Chemistry-Inspired Workflow Management System for a Decentralized Composite Service Execution

Keywords: Service composition, Decentralization, Workflow execution, Nature-inspired models, Chemical programming paradigm Composition de services, Décentralisation, Exécution de workflows, Modèle inspiré par la nature, Paradigme de programmation chimique

With the recent widespread adoption of service-oriented architecture, the dynamic composition of such services is now a crucial issue in the area of distributed computing. The coordination and execution of composite Web services are today typically conducted by heavyweight centralized workflow engines, leading to an increasing probability of processing and communication bottleneck and failures. In addition, centralization induces higher deployment costs, such as the computing infrastructure to support the workflow engine, which is not affordable for a large number of small businesses and end-users. Last but not least, central workflow engines leads to diverse inadequate consequences dealing with privacy or energy consumption. In a world where platforms are more and more dynamic and elastic as promised by cloud computing, decentralized and dynamic interaction schemes are required. Addressing the characteristics of such platforms, nature-inspired analogies recently regained attention to provide autonomous service coordination on top of dynamic large scale platforms. In this report, we propose a decentralized approach for the execution of composite Web services based on an unconventional programming paradigm that relies on the chemical metaphor. It provides a high-level execution model that allows executing composite services in a fully decentralized manner. Composed of services communicating through a persistent shared space containing control and data flows between services, our architecture allows to distribute the composition among nodes without the need for any centralized coordination. A proof of concept is given, through the deployment of a software prototype implementing these concepts, showing the viability of an autonomic vision of service composition.

Introduction

Loose coupling and dynamic composition are building block requirements of service oriented architectures (SOA) [START_REF] Rosen | Applied SOA: Service-Oriented Architecture and Design Strategies[END_REF], and also two of the keys to their success. Building on these concepts, the Internet of services is now a global computing platform gathering myriads of autonomous heterogeneous services such as storage space, computing power, or more often software components offered to the users through the web.

SOA is now a multipurpose paradigm, facilitating business processes as well as helping scientific investigations based on computer-intensive applications. In both fields, the combinations of services allow to build more complex applications known as composite web services which are a temporal composition of services usually represented by a workflow, describing data and control dependencies between services. Recently, and in spite of the decentralized nature of the Internet, service infrastructures have built upon highly centralized architectures. Data centers and Cloud computers act today as servers centralizing the storage and processing required for the coordination of services and, more generally, of clients (users or businesses) of the Internet. Such architectures lead to various weaknesses. First, they generally suffer from poor scalability and low reliability, servers being potential processing and communication bottlenecks as well as single points of failure [START_REF] Alonso | Functionality and limitations of current workflow management systems[END_REF]. Also, they raise privacy issues, all data and control passing through central servers and repositories.

It becomes crucial to promote a decentralized vision of service infrastructures, as for instance suggested in [START_REF] Yang | An architecture and the related mechanisms for web-based global cooperative teamwork support[END_REF]. The benefits of a decentralized approach are manifold. First, as the processing and data are distributed among a set of nodes, there is no single point of failure. No central server acts as a potential bottleneck, network traffic is reduced, and the approach is globally more scalable. Second, the direct and asynchronous fashion of communications (without the need for central coordination) brings better throughput and graceful degradation [START_REF] Chafle | Decentralized orchestration of composite web services[END_REF]. Finally, no server takes control over data and work, each node integrating a local workflow engine (referred to as local-engine in the following), and having only a partial view of the composition.

More specifically, the execution of a composite Web service relies on an engine responsible for coordinating data and control flows between involved services. For the sake of illustration, let us consider a simple workflow W consisting of an activity A performed at node a followed by activity B performed at node b. In a centralized vision, during the actual execution of W , the engine first invokes A by sending a message to node a, then waits for the result of A (sent by a), and finally invokes B. With a decentralized workflow engine, nodes a and b may communicate directly (rather than through a central coordinator node) to transfer data and control when necessary (e.g., after A finishes).

Recently, nature-inspired metaphors have been shown to be of high interest for service coordination [START_REF] Viroli | A biochemical approach to adaptive service ecosystems[END_REF]. The chemical programming paradigm is a high-level execution model. Within such a model, a computation is seen as a set of reactions consuming some molecules floating and interacting freely within a chemical solution (close to the biological notion of membrane) and producing new ones. Reactions take place in an implicitly parallel, autonomous, and decentralized manner. This particular model has been shown to naturally expresses distributed coordination [START_REF] Banâtre | Chemical Programming of Future Service-oriented Architectures[END_REF]. The Higher-Order Chemical Language (HOCL) [START_REF] Banâtre | Generalised multisets for chemical programming[END_REF] is a language based on these concepts and providing the higher-order: every entity in the system is seen as molecules; rules can apply to other reaction rules, opening doors to self-adaptation, the program being able to modify itself. It has been recently shown that such a paradigm is well-suited to express service orchestration [START_REF] Banâtre | Chemical Programming of Future Service-oriented Architectures[END_REF], and describe the enactment of workflows [START_REF] Németh | Distributed workflow coordination: molecules and reactions[END_REF]. The proper investigation of this paper is to show that the chemical model is well-featured for underlying a decentralized execution of composite Web services and give a proof of such a concept. In particular, in the approach presented, both data and control flows of the workflow are distributed.

The remainder of this paper is organized as follows. Section 2 presents the chemical programming paradigm in more details. Section 3 details our decentralized coordination model and language. Section 4 illustrates the work by an example of coordination of a more complex workflow. Section 5 focus on the prototype software of the decentralized workflow engine thus designed. Section 6 details the experimental campaign and its results. Section 7 presents similar works. Section 8 draws some conclusions.

The Chemical Paradigm

The chemical paradigm is a programming style based on the chemical metaphor. Molecules (data) are floating in a chemical solution, and react according to reaction rules (program) to produce new molecules (resulting data). Reactions are conditional, and take place between some molecules satisfying a reaction condition. This process continues until no more reactions can be performed: the solution is said to be inert. Reactions take place in an implicitly parallel and autonomous way, and in a non-deterministic order.

Formally, the solution is represented by a multiset containing molecules, and rewriting/transformation rules specify the reactions between molecules. The Gamma model (General Abstract Model for Multiset Manipulation) [START_REF] Banâtre | The gamma model and its discipline of programming[END_REF] has been a pioneer work realizing the chemical paradigm. The multiset, which is the formal representation of the chemical solution, is the unique data structure in Gamma. The multiset works similarly to a shared address space on which multiple processors can operate independently.

Inria

In this paper, we use a chemical language enhanced with higher order, called HOCL (Higher Order Chemical Language) [START_REF] Banâtre | Generalised multisets for chemical programming[END_REF]. In HOCL, every entity is a molecule, including reaction rules. A program is a solution of molecules, that is to say, a multiset of atoms (A 1 , . . . ,A n ) which can be constants (integers, booleans, etc.), sub-solutions (denoted M i ), or reaction rules.

Following the chemical paradigm, the execution of an HOCL program consists in applying reactions until the solution becomes inert. A reaction involves a reaction rule one P by M if V and a molecule N that satisfies the pattern P and the reaction condition V . The reaction consumes the rule and the molecule N, and produces M. The basic one P by M C reaction rule is one-shot: it disappears when it reacts. Its variant replace P by M C is n-shots: it is not consumed when it reacts. In the following, we use a more advanced syntax to declare and name molecules:

let x = M 1 in M 2 is equivalent to M 2
where all occurrences of x are replaced by M 1 . For instance, consider the following solution MaxNumbers which calculates the maximum value of a given set of numbers. The below example illustrates the expressiveness and higher order of HOCL, where reactions consume and/or produce other reaction rules.

let max = replace x, y by x if x ≥ y in 2, 3, 5, 8, 9, max
The rule max reacts with two integers x and y such that x ≥ y and replaces them by x (keep the integer with highest value). Initially, several reactions are possible: max can react with any couples of integers satisfying the condition: 2 and 3, 2 and 5, 8 and 9, etc. In order for the final solution to contain only the result, we introduce a higher-order rule responsible to delete the max rule once the solution only contain the highest integer value. This introduces the need for sequentiality of events: we need to wait that all possible reactions between max and couples of integers took place before deleting the rule. Within the chemical model, the sequentiality is achieved through sub-solutions: to access a sub-solution, a rule has to wait for its inertia. In our example, this leads to the encapsulation of the solution: The m variable matches a rule named max, and ω matches all the remaining elements. One possible execution scenario within the sub-solution is the following (2 and 8, as well as 3 and 5, react first, producing the intermediate state): 2, 3, 5, 8, 9, max → * 3, 5, 9, max → * 9, max Once the inertia is reached within the sub-solution, the one-shot rule can be triggered, extracting the result:

9, max , one max = m, ω by ω → 9
As we illustrated with a fine-grain example, HOCL provides the ability to express autonomic coordination of rules (without the need for any centralized control). The current state of a computation is represented by the solution, that constitutes an information system by itself. In other words, the multiset is a shared space providing the information required for dynamic coordination, such as a decentralized workflow execution.

Chemical Decentralized Workflow Execution

In this section, we describe our decentralized architecture for workflow coordination based on a higher-order chemical framework, illustrating the adequacy of the chemical paradigm to execute composite Web services.

Architecture

As illustrated by Figure 1, the proposed architecture is composed by two core elements, namely the Chemical Web Service (ChWS) and a Multiset. A ChWS is a chemical encapsulation of a Web service. It is co-responsible with other ChWSes of the coordination of the execution of workflows. Physically, ChWSes are hosted by some nodes and logically identified by symbolic names into this multiset. Each ChWS is basically equipped with three elements, namely: Each ChWS is equipped with a chemical engine and a local copy of part of the multiset on which its chemical interpreter will act, to realize its part of the coordination. The multiset, containing the workflow definition and thus all required coordination information, will now act as a space shared by all ChWSes involved in the workflow. In other words, ChWSes will communicate by reading and writing it, as illustrated by Figure 1.

1. The service caller represents the encapsulation of a Web service invocation. The invocation to the effective possibly distant Web service, is encapsulated in a chemical expression readable by a chemical interpreter. The implementation of the Web service itself is not encapsulated, as shown in Figure 1.

2. A local storage space containing part of the multiset, i.e., molecules and reaction rules constituting the data and control dependencies related to the coordination of workflow execution.

3. An HOCL interpreter, working as the chemical local-engine executing the reactions according to molecules and reaction rules stored in the multiset, responsible for applying the defined workflow patterns and transferring data and control information to other ChWSes involved in a workflow.

ChWSes, containing all information needed by ChWSes for a decentralized execution of a workflow, and in which each ChWS can operate independently. This information combines molecules representing data and ChWSes, rules representing control dependencies of the workflow, and rules for the coordination of its execution, as illustrated by Figure 2. Data and control dependencies of the workflow are defined beforehand using some workflow executable languages, like the well-known BPEL [START_REF] Standard | Web services business process execution language, (WS-BPEL)[END_REF], an XML-based workflow language for Web services. The BPEL specification is translated into a chemical program, as detailed in Section 3.2. To coordinate the execution of the workflow, we also need some additional chemical rules, which are generic, i.e., independent of a specific workflow. Section 3.3 focuses on these generic rules. The multiset shares some conceptual similarities with the Distributed Shared Memory (DSM) paradigm [START_REF] Protić | Distributed shared memory[END_REF], developed in the area of distributed operating systems. DSM maps a globally unique logical memory address to a local physical memory slot, thus emulating a shared global space on top of a distributed memory platform. By analogy, multiset mirrors DSM's behavior by exposing molecules and reactions rules physically scattered across a set of ChWSes in a single shared space.

Inria

In other words, from a conceptual point of view (illustrated by Figure 1), ChWSes communicate through a unique global multiset containing all information needed by ChWSes to execute their part of a workflow. ChWSes exchange data and control dependencies through this multiset. In a classical centralized workflow architecture, the services themselves do not know these dependencies, as an engine manages all information and executes coordinates the whole execution. From an implementation point of view, the multiset is physically distributed. While apparently, each ChWS only interacts with the multiset, physically, data and control information (molecules and reaction rules of the multiset) are effectively transferred between local storages of ChWSes. Put together, the molecules stored by ChWS form the multiset. Figure 3 summarizes these two points of view: the upper side shows the conceptual point of view where all ChWSes are connected through one multiset; the lower part shows the implementation point of view where all ChWSes are directly interconnected through the multiset, the reactions and molecules being directly transferred from one ChWS to another one using a distributed multiset as detailed in [START_REF] Obrovac | On Distributing the Runtime of the Chemical Programming Model[END_REF]. Figure 3 provides a simple example where all ChWS are connected through a sequential workflow (modeled by arrows), but any workflow pattern could be applied, similarly.

Chemical Workflow Representation

In order to express all data and control dependencies of a workflow definition according to the chemical paradigm and to distribute the information among ChWSes, we use a series of chemical abstractions inspired by the work in [START_REF] Németh | Distributed workflow coordination: molecules and reactions[END_REF]. These abstractions allow representing a workflow definition with the HOCL language. Such a representation is given in Algorithm 1.

As a chemical expression, the whole solution represents the multiset containing all information. The solution itself is composed of as many sub-solutions as ChWSes. Each sub-solution represents a ChWS with its data and control dependencies with other ChWSes within the workflow definition. More formally, a ChWS is one molecule of the form ChW Si : . . . where ChWSi refers to the symbolic name given to the service whose connection details and physical position are hidden, as shown in Algorithm 1. The corresponding chemical representation for this workflow is presented in Figure 5. As we already mentioned, the solution contains as many sub-solutions as Web services. ChW S1 :

Inria

Algorithm 1 General chemical workflow representation

. . . to ChW S4 : . . . represent ChWSes in the solution. The relations between ChWSes are expressed through molecules of the form Dest:ChWSi with ChW Si being the destination ChWS where some information needs to be transferred. For instance, we can see in ChW S1 sub-solution that ChWS1 will transfer some information (the outcome of ChWS1) to ChWS2 and ChWS3 (Line 2.02).

2.01

// Multiset (Solution) Let us focus on the details of these dependencies. ChWS2 has a data dependency: it requires a molecule Result:ChWS1:value1 containing the result of S 1 to be invoked (second part of Line 2.03). The two molecules produced by the reaction represent the call to S 2 and their input parameters. They are expressed using a molecule of the form Call:Si, and a molecule Param: in 1 ,...,in n , where in 1 ,...,in n represent the input parameters to call the service Si. In Figure 5, this input parameter corresponds to the result of some previous service S j . ChWS3 works similarly.

Occasionally, on a particular service, data and control dependencies may differ. Consider ChWS4. As specified by Figure 4, ChWS4 needs to wait until ChWS2 and ChWS3 have been completed. This constitutes a control dependency known as synchronization. However, as we can see in line 2.05, the service S 4 is invoked only on value2 which is the result of S 2 . This constitutes a data dependency. The ChW S4 sub-solution contains one reaction rule translating those dependencies in chemical language (see line 2.05): the presence of molecules Result:ChWS2:value2 and Result:ChWS3:value3 inside the ChW S4 sub-solution expresses the fulfillment of the control dependencies, to start its own execution. In addition, a data dependency is also expressed in ChWS4: the result of S 2 is required to call S 4 . During the execution, as soon as Result:ChWS2:value2 and Result:ChWS3:value3 appear in the ChW S4 sub-solution, the local engine of ChWS4 will be able to perform the reaction that will produce two new molecules of the form Call:S4 and Param: (value2) to call the effective service S 4 on the input value2.

To sum up, one reaction rule can express both control and data dependencies. In contrast with the previous synchronization pattern, the simple data dependencies are enough to express the simple parallel split pattern of S 1 with S 2 and S 3 . Thanks to the implicit parallelism of the chemical execution model, the reaction rules inside ChW S2 and ChW S3 can be executed in parallel. Therefore, ChWS2 and ChWS3 will receive the result of S 1 from ChWS1 and the invocation of S 2 and S 3 will take place in parallel.

This fragment of HOCL code is the chemical representation of a workflow, that will be interpreted by chemical local engines, performing the decentralized execution of this workflow thanks to a set of generic rules we introduce in the next sections.

Generic Rules for Invocation and Transfer

As previously mentioned, to ensure the execution of a chemical workflow, additional chemical generic rules (i.e., independent of any workflow) must be defined. These rules are included in the chemical local engines and are responsible for the efficient execution of the workflow. We now review three of these generic rules, illustrated in Algorithm 2, responsible for these tasks, and that will be commonly encountered in the compositions presented later. The invokeServ rule encapsulates the actual invocation of services. When reacting, it invokes the Web Service S i , by consuming the tuples Call:Si representing the invocation itself, and Param: in 1 ,...,in n representing its input parameters, and generates the molecules containing the results of the invocation in the ChWSi sub-solution. The molecule Flag_Invoke is a flag whose presence in the solution indicates that the invocation can take place. The preparePass rule is used for preparing the messages to transfer the results to their destination services, that will later trigger the execution of the passInfo rule. Thus, the preparePass rule captures one molecule of the form ChWSi: Result:ChWSi: value , Dest:ChWSj, ω . Result:ChWSi: value is the result of S i , while Dest:ChWSj comes from the chemical specification of the workflow such as the one presented in Figure 5.

Rule passInfo transfers molecules of information between ChWSes. This rule reacts with a molecule ChWSi: Pass:d: ω 1 that indicates that some molecules (here denoted ω 1 ) from ChWSi needs to be transfer to d. These molecules, once inside the sub-solution of d will trigger the next step of the execution. Therefore, the molecule ω 1 will be transferred from sub-solution ChWSi to sub-solution ChWSj, when reacting with passInfo rule.

Thanks to these reaction rules, the execution of a chemical workflow is decentralized since each ChWS is able to execute rules using its embedded HOCL interpreter, each ChWS achieving the coordination related to the service it encapsulates.

Execution Example

To better understand how the coordination between chemical engines works, we here present a workflow example, illustrated in Figure 5, for which we focus on each step of the coordination logic. These steps are listed in Figures 6 (steps 1-3), 7 (steps 4-7) and 8 (steps 8-10). Recall that, thanks to the higher-order property, reaction rules react themselves with other molecules. An example composed by four ChWSes applying parallel split and synchronization patterns is illustrated in Figure 4. The execution is as follows: After ChWS1 completes, it forwards the result to ChWS2 and ChWS3 in parallel. Once ChWS2 and ChWS3 have completed, ChWS4 can start. Consider that each chemical local engine is responsible for the reactions taking place within its sub-solution in the multiset, thus respecting at runtime the decentralization designed. Indeed, for the sake of clarity, we only mention the molecules that take part in the logic of the coordination.

The first step (Lines 4.02-4.08) corresponds to the initial state of the multiset, illustrated in Figure 6. Initially, the only possible reaction is inside ChWS1, the invokeServ rule is triggered by the HOCL interpreter of ChWS1, producing the outcome molecule Result:ChWS1: val . This molecule represents the result of the invocation of S 1 . Then, the preparePass rule consumes the molecules Dest:destination and Result:ChWS1: val , preparing the parallel split. Therefore, it produces two new molecules for the distribution of this result to ChWS2 and ChWS3 (Lines 4.29-4.30). Finally, still through ChWS1, passInfo triggers it by transferring in parallel the outcome of ChWS1. Once the information is received by ChWS2 and ChWS3, the reactions (Lines 5.04 and 5.06) are triggered, in parallel, producing the needed molecules to invoke S 2 and S 3 . Thus, molecules of the form Call:Si and Param:(val) contained into ChWS2 and ChWS3 respectively, launch the invokeServ rule (Lines 5.03-5.05) that generates the result of S 2 and S 3 . Similarly to ChWS1, the molecules Result:ChWS2: val2 and Result:ChWS3: val3 react with the preparePass rule.

Inria

Finally, in ChWS2 and ChWS3, the passInfo rule propagates the molecule Pass:ChWS4: information to ChWS4 (Lines 5.26-5.27). The execution ends with steps in Figure 8, processed by ChWS4's local engine. Once the information from ChWS2 and ChWS3 is received by ChWS4, the reaction rule (Line 6.06) can react with results molecules to produce two new molecules for invoking service S 4 (Line 6.12). Finally, invokeServ rule will take place producing the final result Result:ChWS4: val4 . With this example, we have shown that local engines within ChWSes are co-responsible for applying workflow patterns, invoking services, and propagating the information to other ChWSes. The coordination is achieved as reactions become possible, in an asynchronous and decentralized manner.

Software Prototype

In this section, we discuss the implementation of a software prototype of our decentralized architecture. The prototype, illustrated by Figure 9, is written in Java and builds atop different instances of HOCL interpreters.

Global Design

As mentioned in Section 3.2, the workflow definition is written and interpreted as a chemical program by the chemical engine (HOCL interpreter). The multiset is initially fed with the HOCL specification of the workflow. The multiset acts as a shared space playing the role of a communication mechanism and a storage system. More precisely, As we detailed before, the workflow definition is comprised of one sub-solution per WS involved; the information in one sub-solution can only be accessed by the ChWS owner of/represented by that sub-solution.

On each ChWS, a local storage space acts as a temporary container for the sub-solution to be processed by the local HOCL interpreter. The interface between a ChWS and a concrete WS is realized through the service caller, which relies on the DAIOS framework [START_REF] Leitner | Daios: Efficient dynamic web service invocation[END_REF], which provides an abstraction layer allowing to establish dynamic connection to different flavors of services (SOAP Inria or RESTFul), while abstracting the target service's internals. ChWSes communicate with the multiset through the Java Message Service (JMS) publisher/subscriber modules. The multiset is encapsulated into a JMS server to allow concurrent reading and writing operations. Periodically, and independently from each other, ChWSes read their sub-solution from the multiset. The subsolution obtained is then locally processed by the ChWS's HOCL interpreter and then pushed back to the multiset for update.

Communications

As mentioned above, communication mechanisms are implemented with JMS. JMS modules are included into the ChWSes, and the multiset is a JMS server.

The publish/subscribe messaging model is used by the ChWSes and the multiset whereby message producers called publishers pushing each message to each interested party called subscribers. Initially, the Multiset PUBlisher pushes the content of each WSi solution to each ChWSes LIStener. On the ChWS's side, the ChWS LIStener receives the content of the ChWSi solution which will be copied into its local multiset. Once the HOCL interpreter is done with its execution, the ChWS PUBlisher pushes the content of its sub-solution into the Multiset LIStener.

Recall that this architecture is distributed, a JMS server into the multiset is needed to coordinate all these messages. Concretely, we use ActiveMQ (version 5.4.1) an implementation of the JMS 1.1 specification, which can be embedded in a Java application server. This ActiveMQ server allows to register and save all the message exchanges between subscribers and publishers. The message exchanged are stored in the server, allowing to be used in the future if a problem arises during the transaction.

Experimental Results

Our objective is here to better capture the behavior of a decentralized chemistry-based workflow system, when processing workflows with different characteristics regarding the number of tasks involved, the amount of data exchanged and the complexity of the coordination required. Experiments were conducted over the nation-wide Grid'5000 platform [START_REF] Bolze | Grid'5000: A large scale and highly reconfigurable experimental grid testbed[END_REF]. More specifically, these experiments were conducted on the parapide, paramount and paradent clusters, located in Rennes. The parapide cluster is composed of nodes equipped with two quad-core Intel Xeon X5570, 24 GB of RAM; the paramount cluster provides nodes with two quad-core Intel Xeon L5148 LV processors, 30 GB of RAM, and the paradent cluser is equipped with two quad-core Intel Xeon L5420 processors. All three clusters are furnished with 40GB InfiniBand Ethernet cards.

Workflows Considered

Three workflows containing 30, 60 and 100 tasks were designed inspired by the graph of the Montage workflow [START_REF] Berriman | Montage: A grid enabled engine for delivering custom science-grade mosaics on demand[END_REF], a classic astronomical image mosaic workflow processing large images of the sky. Montage appears to combine sequential and parallel flows, making it relevant for such experiments. Our variants of the Montage workflow are illustrated in Figure 10, Figure 11 and Figure 12, and are respectively referred to as Workflow30t, that comprises 30 tasks over 10 levels (the level of a task is defined as the length of the path leading to it),Workflow60t, that comprises 60 tasks dispatched over 13 levels, and Workflow100t made of 100 tasks of 19 levels. Our campaign has the following considerations:

1. Each task calls an actual web service.

2. Tasks at the same level have the same computation cost.

3. The results of these experiments are averaged over 10 runs.

4. Each task is run by one distinct machine on the Grid'5000 platform. Three different web services were built, presenting different rates of data exchanges, for one call of this service, namely 28 bytes for serviceA, 583 bytes for serviceB, and 3063 bytes for serviceC. The definitions used for each workflow are available online1 .

Inria

Managing Large Workflows

Let us first focus on the leftmost bar of the results of each workflow in Figure 13, i.e., the completion time of each workflow, but always using serviceA. A first result is that the execution times, for the Workflow30t and Workflow60t, are quite similar. When looking at the workflows, this can be explained by the fact that when the total number of tasks increases, the parallelism is also increased. There is a higher number of tasks running in parallel, and the number of levels for Workflow60t (13 levels) in comparison with the Workflow30t (10 levels) is not too high.

However, the Workflow100t performs less well than others, its graph shows a substantial increase of levels [START_REF] Obrovac | On Distributing the Runtime of the Chemical Programming Model[END_REF] and thus more sequentiality, thus increasing the workload of the workflow system responsible to coordinate the execution, as more patterns have to be applied.

Exchanging Data

For the second experiment, we have dealt with different amount of data exchange. We processed six workflows based on the Workflow30t graph, whose tasks are bounded to the same web service. Note that, for each workflow, we measured the performance using a set of web services exchanging different amount of data for their execution. This set of services is composed by the three previously-mentioned services and by three other services. Thus, experiments were conducted with services requiring respectively 28, 583, 3053, 5053, 9773, and 15000 bytes of data exchange. The performance obtained according to the rate of data exchange is illustrated in Figure 14. As we can see in Figure 14, the increase in data exchange among tasks provokes an increase of the execution time, suggests a linear degradation of the performance when the size of information exchanged increases. Nevertheless, no bottlenecks have been experienced, even if it may appear with higher data rate. The degradation occurs because the information exchanged is considered itself as a molecule in our chemical model, to be transferred and processed in the multiset.

Inria

Workflow's Complexity

We now focus on the evaluation of the workflow complexity. Informally, we consider as a complex workflow, a workflow having many patterns to be applied and a high rate of data exchange. The complexity also depends on the amount of data exchanged among tasks since these data have to be processed in applying some patterns. The results on the complexity can be deduced by looking at Figure 13.

A first observation is that the performance degradation among the three workflows binding their tasks to the different types of services. As we mentioned before, this difference is due to the increment of the amount of data exchange among tasks of any workflow. Thus, the Workflow30t using the serviceB or serviceA performs less well than the Workflow30t using the ServiceC. Secondly, the degree of complexity of the Workflow30t in comparison with the Workflow100t is high and leads to an important degradation which increases depending on the information transferred among the tasks. However, there is a slight improvement of the execution time for the Workflow60t against the Workflow30t, that is explained by the similarity of those workflows. Despite of the number of tasks participating in the Workflow60t, there is more parallelism and only a slight increases of sequentiality, thus reducing the execution time. Finally, Workflow100t containing tasks with the ServiceC presents an important increase of the execution time, coming from the significant increase of the size and processing time of the multiset.

Discussion

This series of experiments, by offering a proof of concept of the model, while showing its viability in actual deployments, highlights the benefits of a decentralized (chemistry-based) workflow system. Our workflow engine process large workflows with a reduced coordination overhead. However, in our architecture, while the coordination is executed locally on each ChWS (here the coordination is shared among the nodes), the multiset remains a space shared by every ChWSes leading to potential scalability issues. Following this idea, our approach may experience some performance bottleneck when the rate of data exchange becomes very high. One possible response to this problem is a mechanism based on data files to store molecules.

Recall, beyond performance or optimization considerations, that the chemical models provide all the needed abstractions to naturally express both data-driven and complex control-driven execution, including particular features like cancellation. Please refer to [START_REF] Fernández | Self-coordination of Workflow Execution Through Molecular Composition[END_REF] for more details. We consider the chemical abstraction as participating in the long term objective of improving the workflow execution models on emerging platform, like clouds, where the elasticity brings new modeling challenges.

Related Works

There is a vast literature related to the distributed execution of workflows. We observed two methods of distributed coordination approach. In the first one, nodes interact directly. In the second one, they use a shared space for coordination.

Earlier works proposed decentralized architectures where nodes achieve the coordination of a workflow through the exchange of messages [START_REF] Yan | Enacting business processes in a decentralised environment with p2p-based workflow support[END_REF][START_REF] Nanda | Decentralizing execution of composite web services[END_REF]. Recently, some works [START_REF] Binder | Decentralized orchestration of compositeweb services[END_REF][START_REF] Micillo | An agent-based approach for distributed execution of composite web services[END_REF][START_REF] Yu | Consistent and decentralized orchestration of BPEL processes[END_REF] shown the increasing interest in this type of coordination mechanism. In [START_REF] Binder | Decentralized orchestration of compositeweb services[END_REF], the authors introduce service invocation triggers, a lightweight infrastructure that routes messages directly from a producing service to a consuming one, where each service invocation trigger corresponds to the invocation of a service. In [START_REF] Micillo | An agent-based approach for distributed execution of composite web services[END_REF], an engine is proposed based on a peer-to-peer application architecture wherein nodes (similar to local-engines) are distributed across multiple computer systems, but appear to the users as a single entity. These nodes collaborate, in order to execute a composite Web service with every node executing a part of it. Lately, a continuation-passing style, where information on the remainder of the execution is carried in messages, has been proposed [START_REF] Yu | Consistent and decentralized orchestration of BPEL processes[END_REF]. Nodes interpret such messages and thus conduct the execution of services without consulting a centralized engine. However, this coordination mechanism implies a tight coupling of services in terms of spatial and temporal composition. Nodes need to know explicitly which other nodes they will potentially interact with, and when, to be active at the same time. Likewise, a distributed workflow system based on mobile libraries playing the role of engines was presented in [START_REF] Downes | Distributed radiotherapy simulation with the webcom workflow system[END_REF]. The authors, however, do not give much details about the coordination itself, and where the data and control dependencies are located.

Our works deal with the information exchange among ChWSes by writing and reading the multiset. Then, the communication can be completely asynchronous since the multiset guarantees the persistence of data and control dependencies. This makes our approach more relevant in a loosely-coupled services environment, and able to deal with dynamic changes in the workflow.

Another series of works rely on a shared space to exchange information between nodes of a decentralized architecture, more specifically called a tuplespace [START_REF] Buhler | Enacting BPEL4WS specified workflows with multiagent systems[END_REF][START_REF] Martin | A novel approach to decentralized workflow enactment[END_REF][START_REF] Sonntag | Process spacebased scientific workflow enactment[END_REF]. Its origin can be found in the coordination data-driven languages such as Linda [START_REF] Gelernter | Coordination languages and their significance[END_REF], as a parallel programming extension for programming languages for the purpose of separating coordination logic from program logic. Linda builds upon the notion of a tuplespace, which is a piece of memory shared by all interacting parties. Using tuplespace for coordination, the execution of a part of a workflow within each node is triggered when tuples, matching the templates registered by the respective nodes, are present in the tuplespace. In the same vein, works such as [START_REF] Nicola | KLAIM: a kernel language for agents interaction and mobility[END_REF], propose a distributed architecture based on Linda where distributed tuplespaces store data and programs as tuples, allowing mobile computations by transferring programs from one tuple to another. However, the Inria chemical paradigm allows an increased abstraction level while providing support for dynamics.

Based on this coordination method, works such as [START_REF] Buhler | Enacting BPEL4WS specified workflows with multiagent systems[END_REF], [START_REF] Martin | A novel approach to decentralized workflow enactment[END_REF] and [START_REF] Sonntag | Process spacebased scientific workflow enactment[END_REF] replace a centralized BPEL engine by a set of distributed, loosely coupled, cooperating nodes. In [START_REF] Buhler | Enacting BPEL4WS specified workflows with multiagent systems[END_REF] and [START_REF] Martin | A novel approach to decentralized workflow enactment[END_REF], the authors present a coordination mechanism where the data is managed using a tuplespace and the control is driven by asynchronous messages exchanged between nodes. This message exchange pattern for the control is derived from a Petri net expression of the workflow. In [START_REF] Martin | A novel approach to decentralized workflow enactment[END_REF], the workflow definition is transformed into a set of activities, that are distributed by passing tokens in the Petri net. However, while in these works, the tuplespace is only used to store data information, our coordination mechanism stores both control and data information in the multiset, which is made possible by the use of the chemical execution model for the coordination of all data and control dependencies.

Recently, a work [START_REF] Sonntag | Process spacebased scientific workflow enactment[END_REF] uses a shared tuplespace working as a communication infrastructure, the control and data dependencies exchange among processes to make the different nodes interact between them. The authors transform a centralized BPEL definition into a set of coordinated processes using the tuplespace as a communication space. In contrast, the use of BPEL as coordination language hinders from expressing dynamic and self-adaptive behaviors.

As a more general comment, to our knowledge, these works do not provide software prototypes and experimental validation of their proposal.

Conclusion

Most of today's approaches to the coordination of composite Web services are based on highly centralized architectures. Such systems present several drawbacks, mainly dealing with scalability, fault-tolerance, and privacy. In order to tackle these issues, it becomes today crucial to propose decentralized coordination mechanisms. However, current proposals for decentralized workflow coordination require tight coupling of services, and use workflow description languages that do not provide concepts for distributed workflow execution.

In this paper, we have proposed a high-level coordination mechanism allowing a distributed execution of composite Web services, based on the chemical metaphor. Our chemical programming paradigm expresses parallelism and autonomic behaviors naturally using a higher-order chemical language. We have introduced the notion of the chemical Web service, which encapsulates a Web service. Through a shared multiset containing the information on both data and control dependencies needed for coordination, chemical Web services are co-responsible for carrying out the execution of a workflow in the composite services in which they appear. Spatial and temporal composition of services is achieved dynamically through this shared multiset. Their coordination is decentralized and distributed among individual Web service's chemical engine executing a part of the workflow.

Through the deployment of a software prototype following these concepts, and its experimental validation over an actual platform, we have been able to provide a proof of concept while showing its viability and identifying its performance limitations for its future improvements.

2, 3 , 5 , 8 , 9 ,

 3589 max , one max = m, ω by ω

Figure 1 :

 1 Figure 1: The proposed architecture.

Figure 2 :

 2 Figure 2: Chemical workflow.

Figure 3 :

 3 Figure 3: Different points of view of the architecture.

  ChWSi: . . . // ChWS (Sub-solution)1.03 ChWSi+1: . . .

  Let us consider a simple workflow composed of the four services shown on Figure4. It is composed of four services S 1 , S 2 , S 3 and S 4 . In this example, after S 1 completes, S 2 and S 3 can be invoked in parallel. Once S 2 and S 3 have both completed, S 4 can be invoked.

Figure 4 :

 4 Figure 4: Simple workflow example.

Figure 5 :

 5 Figure 5: Chemical workflow representation.

InriaAAlgorithm 2

 2 Chemistry-Inspired Workflow Management System for a Decentralized Composite Service Execution11 Basic generic rules. 3.01 let invokeServ = replace ChWSi: Call:Si, Param: in1, . . . , inn , Flag_Invoke, ω , 3.02 by ChWSi: Result:ChWSi: value , ω 3.03 let preparePass = replace ChWSi: Result:ChWSi: value , Dest:ChWSj, ω 3.04 by ChWSi: Pass:ChWSj: Completed:ChWSi: value , ω 3.05 let passInfo = replace ChWSi: Pass:ChWSj: ω1 , ω2 , ChWSj: ω3 3.06 by ChWSi: ω2 , ChWSj: ω1, ω3

replaceChWS1:

  Dest:ChWS2,Dest:ChWS3, invokeServ, preparePass, passInfo, Call:S1, Param:in1 , 4.03 ChWS2: Dest:ChWS4, invokeServ, preparePass, passInfo, 4.04 replace Completed:ChWS1: val by Call:S2, Param:(val) , 4.05 ChWS3: Dest:ChWS4, invokeServ, preparePass, passInfo, 4.06 replace Completed:ChWS1: val by Call:S3 Param:(val) , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2) Dest:ChWS2,Dest:ChWS3, preparePass, passInfo, invokeServ, Call:S1, Param:in1 , 4.12 ChWS2: Dest:ChWS4, invokeServ, preparePass, passInfo, 4.13 replace Completed:ChWS1: val by Call:S2, Param:(val) , 4.14 ChWS3: Dest:ChWS4, invokeServ, preparePass, passInfo, 4.15 replace Completed:ChWS1: val by Call:S3 Param:(val) ,

replace

  Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2) 4.18

ChWS1: 21 ChWS2: 22 replace 23 ChWS3: 24 replacereplacereplace

 21222324 Dest:ChWS2,Dest:ChWS3, preparePass, passInfo, Result:ChWS1: val , 4.Dest:ChWS4, invokeServ, preparePass, passInfo, 4.Completed:ChWS1: val by Call:S2, Param:(val) , 4.Dest:ChWS4, invokeServ, preparePass, passInfo, 4.Completed:ChWS1: val by Call:S3 Param:(val) , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2) passInfo, Pass:ChWS2: Completed:ChWS1: val , Result:ChWS1: val , 4.30 Pass:ChWS3: Completed:ChWS1: val , 4.31 ChWS2: Dest:ChWS4, invokeServ, preparePass, passInfo, 4.32 replace Completed:ChWS1: val by Call:S2, Param:(val) , 4.33 ChWS3: Dest:ChWS4, invokeServ, preparePass, passInfo, 4.34 replace Completed:ChWS1: val by Call:S3 Param:(val) , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2)

Figure 6 :

 6 Figure 6: Workflow execution, steps 1-3.

replaceChWS1: 13 ChWS3:replace

 13 Dest:ChWS4, invokeServ, preparePass, passInfo, Completed:ChWS1: val , 5.04 replace Completed:ChWS1: val by Call:S2, Param:(val) , 5.05 ChWS3: Dest:ChWS4, invokeServ, preparePass, passInfo, Completed:ChWS1: val , 5.06 replace Completed:ChWS1: val by Call:S3, Param:(val) , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2) Result:ChWS1: val , 5.12 ChWS2: Dest:ChWS4, invokeServ, preparePass, passInfo, Call:S2, Param:(val) , 5.Dest:ChWS4, invokeServ, preparePass, passInfo, Call:S3, Param:(val) , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2)

5 . 18 ChWS1: 19 ChWS2: 20 ChWS3:replaceChWS2:replace

 5181920 Result:ChWS1: val , 5.Dest:ChWS4, Result:ChWS2: val2 , preparePass, passInfo , 5.Dest:ChWS4, Result:ChWS3: val3 , preparePass, passInfo , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2) Pass:ChWS4: Completed:ChWS2: val2 , passInfo, Result:ChWS2: val2 , 5.27 ChWS3: Pass:ChWS4: Completed:ChWS3: val3 , passInfo, Result:ChWS3: val3 , Completed:ChWS2: val2 , Completed:ChWS3: val3 by Call:S4, Param:(val2) 5.30

Figure 7 :

 7 Figure 7: Workflow execution, steps 4-7.

Figure 8 :

 8 Figure 8: Workflow execution, steps 8-10.

Figure 9 :

 9 Figure 9: Decentralized architecture.

Figure 10 :

 10 Figure 10: Workflow 30-task graph.

Figure 11 :

 11 Figure 11: Workflow 60-task graph.

Figure 12 :

 12 Figure 12: Workflow 100-task graph.

Figure 13 :

 13 Figure 13: Performance results, complexity of workflows.

Figure 14 :

 14 Figure 14: Performance results, data exchange.

RR n°7924

Fernández & Tedeschi & Priol

https://www.irisa.fr/myriads/members/hfernand/hocl/workflowsJournal RR n°7924

Publisher Inria Domaine de Voluceau -Rocquencourt BP 105 -78153 Le Chesnay Cedex inria.fr ISSN 0249-6399