Claude Berrou
email: claude.berrou@enst-bretagne.fr

Alexandre Graell
email: alexandre.graell@enst-bretagne.fr

I Amat

Youssouf Ould
email: youssouf.ouldcheikh@enst-bretagne.fr

Cheikh Mouhamedou

Catherine Douillard
email: catherine.douillard@enst-bretagne.fr

Yannick Saouter
email: yannik.sauter@enst-bretagne.fr

A Graell I Amat

Adding a Rate-1 Third Dimension to Turbo Codes

à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

I. INTRODUCTION

Turbo Codes (TCs) are today mainly used in Automatic ReQuest (ARQ) systems, which do not usually require very low error rates. Target Frame Error Rates (FER) from 10 -2 to 10 -5 are typical for this kind of communication systems. Most of current commercial applications of TCs, such as Digital Video Broadcasting standard [START_REF]Interaction channel for satellite distribution systems[END_REF], and the 802.16a WiMAX standard for local and metropolitan area networks [START_REF]IEEE standard for local and metropolitan area networks[END_REF], are based on 8-state component encoders. While such codes offer performance close to the Shannon limit in the so-called waterfall region, they suffer from a flattening around FER 10 -5 , due to a poor minimum Hamming distance (MHD). In future system generations, lower error rates, down to 10 -8 , will be required to open the way to real-time and more demanding applications, such as TV broadcasting or videoconferencing. Therefore, state-of-the-art 8-state TCs are not suitable for these kind of applications, but more powerful coding schemes are required. At the same time, a reasonable complexity should be preserved.

Improving performance at very low error rates by raising the MHD may involve using component encoders with a larger number of states, devising more appropriate internal permutations, or increasing the dimension of the TC, i.e. the number of component encoders. More complex 16-state TCs have already been adopted in some standards. A very powerful TC based on 16-state components, achieving FERs down to 10 -7 for a wide range of code rates has been recently proposed in [START_REF] Douillard | Turbo Codes with Rate-m/(m + 1) Constituent Convolutional Codes[END_REF]. The price is paid in terms of complexity, which 1 A. Graell i Amat is supported by a Marie Curie Intra-European Fellowship within the 6th European Community Framework Programme. is doubled w.r.t. 8-state components TCs. Designing better permutations is another alternative to improve the minimum distance of TCs. Recently proposed DRP [START_REF] Crozier | High-performance Low-memory Interleaver Banks for Turbo-codes[END_REF] and ARP [START_REF] Berrou | Designing good permutations for turbo codes: towards a single model[END_REF] permutations are very simple models which allow to achieve very high distances. Devising better interleavers seems to be a very difficult and time consuming task. This paper addresses the third alternative to improve TCs performance, and proposes a three-dimension Turbo Code (3D-TC), simply derived from the classical TC by concatenating a post-encoder at its output. Thanks to the message passing (turbo) principle, it has become simple today to imagine various coding structures, by concatenating simple component codes, provided that their corresponding decoders are of the Soft-In/Soft-Out (SISO) type. Basically, there are two kinds of concatenation: serial and parallel. Mixed structures are also possible, like the ones proposed in [START_REF] Li | Product Accumulate Codes: A Class of Codes With Near-Capacity Performance and Low Decoding Complexity[END_REF] or [START_REF] Gonzalez | Serial/Parallel Turbo Codes for Low Error Rates[END_REF]. The 3D-TC we describe here is inspired by these contributions and calls for both parallel and serial concatenation.

The proposed code is very versatile and provides very low error rates for a wide range of block lengths and code rates. It significantly improves performance in the error floor w.r.t. the 8-state DB TC of the DVB-RCS standard, at the expense of a very small increase in complexity (less than 10%). Also, it compares favorably with respect to more complex 16-state TCs, and the LDPC code of the DVB-S2 standard.

II. THE ENCODING STRUCTURE

A block diagram of the proposed 3D Turbo Code is depicted in Fig. 1. The information sequence u of length k is grouped into couples of bits and encoded by the double-binary turbo encoder of the DVB-RCS standard [START_REF] Berrou | The Ten-Year-Old Turbo Codes are Entering into Service[END_REF]. The DVB-RCS Turbo Code is built from the parallel concatenation of two 8-state recursive systematic convolutional (RSC) codes, with generator polynomials 15 (recursivity), 13 (redundancy), and 7 (second input). Note that the internal permutation Π deals with messages of N = k/2 symbols. The overall code rate (before puncturing) is 1/2. In Fig. 1 we denote C u the upper encoder and C l the lower encoder. The corresponding parity sequences are denoted y u and y l , respectively.

A fraction λ (0 ≤ λ ≤ 1) of the parity bits stemming from each component encoder are post-encoded by a rate-1, third encoder. In the sequel, we shall refer to λ as the permeability rate. The bits to be post-encoded are chosen in a regular basis. For instance, if λ = 0.25 the permeability pattern is 1000 for both the upper and the lower encoders, i.e., every forth bit in y u and y l is post-encoded. Finally, the input sequence of the post-encoder is made of alternate y u and y l (surviving) parity bits. The number of parity bits which are fed to the post-encoder is given by:

P = 2λN = λk, (1)
The fraction 1 -λ of parity bits which is not re-encoded is sent directly to the channel or punctured to achieve the desired code rate.

The material added to the classical turbo encoder, which we call the patch because it is placed just behind a pre-existing turbo encoder, is composed of:

• a parallel to serial (P/S) multiplexer which takes alternately the parity bits y 1 and y 2 to be re-encoded and groups them into a single block of P bits, • a permutation denoted Π' which permutes the parity bits before feeding them to the post encoder, • a rate-1 post-encoder whose output is denoted w. The value of λ to be chosen is a matter of trade-off between the convergence loss and the required MHD. Convergence designates the zone of the error rate vs. signal to noise ratio (SNR) curve where the error rate begins to decrease noticeably. Choosing a large value of λ penalizes the decoder from the convergence point of view. This results from the decoder associated with the post-encoder, which does not benefit from any redundant information at the first iteration and therefore multiplies the errors during the first processing. Let us assume for instance that the post-encoder is the wellknown accumulator (i.e. convolutional code with memory 1), depicted in Fig. 3(a). The associated decoder (the pre-decoder), without any extra information, doubles the errors at its input. From (1), the fraction θ of the codeword bits that are postencoded bits is:

θ = P n = λR, ( 2
)
where n is the codeword length and R is the coding rate of the 3D turbo code. The fraction θ q of the data processed by the component decoder of each code C q , (q = 1, 2), that is processed by the pre-decoder is: Then, if p is the probability of error at the channel output, the average probability of error p at each decoder intrinsic input is:

θ q = λR 1 + R . ( 3
) i n p u t o u t p u t i n p u t o u t p u t ( a ) ( c ) i n p u t o u t p u t ( b )
p = 2θ q p + (1 -θ q )p = (1 + θ q )p. (4)
Using (3) we get

p = 1 + (1 + λ)R 1 + R p (5)
i.e. the probability of error at each decoder intrinsic input is risen by a factor 1+(1+λ)R 1+R

, inducing a loss in convergence. On the other hand, a large value of λ will translate into a higher MHD.

The strategy for choosing the permeability rate λ ensues directly from (5):

1) for a given acceptable convergence loss and for the curve

p(E b N 0 ) (for instance, erfc(x) for a Gaussian channel), infer the value of p p = 1+(1+λ)R 1+R .
2) For a given coding rate, deduce the value of λ.

3) If the resulting MHD is not sufficient, increase p and go to [START_REF]Interaction channel for satellite distribution systems[END_REF]. Note that the rate of the 3D Tubo Code is necessarily upper bounded by 1 1+λ .

III. THE CHOICE OF THE POST-ENCODER

The choice of the post-encoder is crucial for code performance. It has to meet the following requirements:

1) Its decoder must be simple, adding little complexity to the classical turbo decoder, while being able to handle soft-in and soft-out information, 2) in order to prevent the decoder suffering from any side effects, because very low error rates are sought for, the post-code has to be a homogeneous block code, 3) at the first iteration (so, without any redundant input information), the pre-decoder associated with the rate-1 post-encoder must not exhibit too much error amplification, to prevent from a high loss in convergence. Possible candidates, low memory linear RSC codes which satisfy condition (1), are given in Fig. 2.

Condition (2) is compatible with the use of Circular RSC (CRSC) codes having memory 2. Circular convolutional codes (also called tail-biting codes), are such that any state of the encoder register is allowed as the initial state and that the encoding always starts and ends in the same state. This makes the convolutional code a perfect block code and prevents it from any side effects. Moreover, no rate loss is induced by terminating the code. Circular CCs have already been adopted

d i s 1 , i s 2 , i
Fig. 3. Linear Feedback Register (LFR) with memory 2 and recursivity polynomial 7 (octal).

in the DVB-RCS turbo code. Note that the code with memory 1 (the accumulate code, Fig. 2a) cannot be made circular by applying state mapping described in eqs. (14-15), and has to be discarded. Code (b) in Fig. 2 can easily be made circular, provided that the number of bits to be encoded is not a multiple of 3. On the other hand, at the first step of the iterative process, its decoder will (roughly) triple the number of errors of its input. Finally, code (c) has a corresponding decoder which only doubles the number of errors at the first step. Therefore, from the convergence point of view, it will be preferable to code (b). Code (b) cannot be made circular directly. However, a simple trick will allow us to use this code as a CRSC code, as explained below.

A. Generalities on CRSC Codes

Let s i and d i be the state of the encoder register, and the encoder data input, respectively, at discrete time i. The encoder state at time i + 1 is given by the following equation:

s i+1 = Gs i + d i , ( 6
)
where G is the state matrix of the linear feedback register (LFR). For instance, considering the LFR in Fig. 3, whose binary input is denoted d i , we have:

s i = s 1,i s 2,i , d i = d i 0 , G = 1 1 1 0 . ( 7
)
More generally, for a memory ν register, vectors s i and d i have ν components and G is of size ν × ν. After the encoding of the data sequence {d i }, of length P , the final state s p can be expressed as a function of initial state s 0 and {d i }:

s P = G P s 0 + P j=1 G P -j d j-1 . ( 8
)
If it is possible to find a circulation state, denoted s c , such that s c = s 0 = s P , this is given by:

s c = I + G P -1 P j=1 G P -j d j-1 , ( 9
)
where I is the ν × ν identity matrix. Note that s c exists if and only if I + G P is invertible. This condition is never satisfied for some matrices G, whatever P . This is the case of the encoders of Fig. 2(a) and Fig. 2(c), which have G = [START_REF]Interaction channel for satellite distribution systems[END_REF] and G = 1 0 0 1 , respectively. For other matrices, I + G P is invertible if P is not a multiple of the period L of the LFR, defined by G L = I. For instance, the LFR in Fig. 2(b) has L = 3. Therefore, I + G P is not invertible for P = 3m, being m and integer. In such cases, the encoder cannot directly be made circular. Before the encoding of {d i }, the knowledge of s c requires a preliminary step. The encoder is first set up in the all-zero state, and then fed by the data sequence {d i }. The final state is denoted s 0 P . From (8), we have

s 0 P = P j=1 G P -j d j-1 , (10)
and, from (9), s c can be related to s 0 P by:

s c = I + G P -1 s 0 P . ( 11
)
Finally, the encoder being initialized to the circulation state, the encoding process can really start to provide the redundancy sequence.

B. The post-encoder with generator polynomial 5

The encoder of Fig. 2(c) can be made circular by introducing some modifications in the principle above. Let us transform the final state given by (8) into:

s P = As P , ( 12
)
where

A = 1 1 0 1 if P odd A = 1 1 1 0 if P even (13)
We then have:

s P = AG P s 0 + A P j=1 G P -j d j-1 , (14)
Under these conditions, a circulation state (s c = s 0 = s P ) always exists, and it is given by:

s c = B P j=1 G P -j d j-1 = Bs 0 p , (15)
with

B = I + AG P -1 A (16)
Note that, because of G = 0 1 1 0 , and thanks to the values assigned to A, I + AG P is always invertible. The encoding procedure can now be described by the following steps:

1) set up the encoder at the all-zero state. Feed it with {d i } and compute the final state s 0 P , 2) calculate s c through (15) and (16), 3) encode {d i } starting from s c . If needed, use (12) to transform the final state, in order to verify that the result is s c . The decoding process has to take transformation (12) into account. This is done by an exchange of metrics after having i n p u t o u t p u t Fig. 4. The non-linear encoder derived from the encoder of Fig. 2(c).

processed address i = P , during the forward recursion, and after having processed address i = 1, during the backward recursion, when the MAP algorithm, or a simplified version, is employed. Table 1 provides the corresponding values of s p and s p , obtained through (12) and the corresponding values of s 0 p and s c , obtained through (15). We can observe that only 2 (if P is odd) or 3 (if P is even) metrics need to be swapped during the decoding process, at the extremity of the block, which represents a very small additional complexity for the 4-state decoder.

For short block sizes (k < 1000 bit) and for medium sizes (1000 < k < 5000) with low rates, the linear post-encoder of Fig. 2(c) was chosen. However, for large blocks (5000 > k) and for medium sizes with high rates, the 3D-TC with post-encoder (c) shows a flattening around FER=10 -6 , due to a poor minimum distance. In these cases, the post-encoder was turned into the non-linear encoder depicted in Fig. 4. In Fig. 5 we report the EXIT curves for the linear post-encoder of Fig. 2(c) and the non-linear encoder of Fig. 4. When no a-priori information is available at the input of the pre-decoder (i.e. first iteration) the Mutual Information (MI) at its output is higher for the linear post-encoder. In fact, the linear postencoder doubles the the number of error at the first iteration, while the non-linear post-encoder multiplies the the number of error by a factor 3-4. Therefore, the properties of this code do not seem very appropriate with respect to condition (3) in the choice of the post-encoder. However, the two curves in Fig. 5 cross around input MI 0.3. For high input MI the behavior of the non-linear code is better, indicating a better behavior in the floor region. The non-linear encoder contributes to increase the MHD of the 3D-TC, with favorable consequences in the cases cited above.

IV. PERMUTATIONS Π AND Π

The proposed 3D-TC is characterized by two permutations, denoted Π and Π . Π is the internal permutation of the DB-TC. Here, we consider Π to be of the Almost Regular Permutation (ARP) type, as described in [?]. The ARP permutation is a generalization of the permutation model used in the DVB-RCS turbo code. A second permutation Π is used to spread the parity bits before post-encoding. We assume Π to be the simplest one. Denote i (1 ≤ i ≤ P ) and j (1 ≤ j ≤ P ) the address in the natural order and in the permuted order, respectively. Then, Π is defined by the following congruence relation: i = Π (j) = P 0 j + i 0 mod P, (17) where i 0 is the starting index, and mcd(P 0 , P ) = 1.

Note that the two permutations assumed in this paper are based on very simple models, enabling large degrees of parallelism.

V. DECODING THE 3D TURBO CODE

The decoding of the 3D TC calls for the classical turbo procedure, as depicted in Fig. 6, in the logarithmic domain. As for standard TCs, the two 8-state SISO decoders (DEC1 and DEC2) exchange extrinsic information on the systematic bits (A, B in Fig. 1) of the received codeword. Also, they must provide the 4-state SISO pre-decoder (PRE-DEC) with extrinsic information on the post-encoded parity bits. In turn, the pre-decoder feeds the 8-state decoders with extrinsic information on these parity bits.

Because DEC1 and DEC2 are quaternary 8-state decoders processing N = k/2 couples of bits and the pre-decoder is a binary 4-state decoder processing P = λk data, the relative computational complexity added by the latter is very small. For instance, with λ = 1/4, the additional complexity is only 6%. To this, however, some extra-functions must be added to the classical turbo decoder, the main one being the calculation of the extrinsic information on parity bits to be fed to the predecoder. Overall, the additional complexity, compared to the classical turbo decoder, is less than 10% for λ = 1/4.

VI. SIMULATION RESULTS

The performance of the 3D-TC was assessed by means of simulation. In Figs. 8 and9 we report frame error rate results for two typical block sizes, 188 and 57 bytes, respectively, and coding rates 1/4, 1/2 and 4/5. In all simulations λ = 1/4 and a maximum of 8 iterations are assumed. The component decoding algorithm is the simple Max-Log-MAP algorithm (also called the dual Viterbi algorithm). Note that for global coding rate 1/4, the component double-binary encoder in Fig. 1 has to output three parity bits. Fig. 7 depicts the block diagram of the best 8-state encoder that was found to provide three outputs.

The proposed code shows excellent performance for both short and medium block sizes. In particular, for information block size 188 bytes (see Fig. 8) only 0.8 dB loss is observed with respect to the sphere packing bound at 10 -7 for all rates. For comparison purpose, the performance of the original DVB-RCS TC is also reported for rates 1/2 and 4/5. As expected, in most cases (except for R = 4/5) the 3D-TC shows a small convergence loss at high error rates with respect to the DVB-RCS TC. On the other hand, the error floor is significantly improved. The largest gain is obtained for 188 bytes and R = 1/2 (about 1.4 dB at FER= 10 -7 ). The performance of the 3D 8-state TC is comparable to that of much more complex 16-state TCs, such as the one described in [START_REF] Douillard | Turbo Codes with Rate-m/(m + 1) Constituent Convolutional Codes[END_REF], also reported in the Figs. 8 and9 for rates 1/2 and 4/5. For a block length of 188, the 3D-TC looses 0.1 dB in convergence w.r.t. the 16state double-binary Turbo Code in [START_REF] Douillard | Turbo Codes with Rate-m/(m + 1) Constituent Convolutional Codes[END_REF]. However, the proposed code improves the 16-state TC in the error floor. A similar behavior is observed in Fig. 9 for a block length of 57 bytes. The proposed code also shows very good performance for large block lengths. In Fig. 10 the bit error rate performance (BER) of the proposed 3D-TC is compared with that of the DVB-S2 standard LDPC code [START_REF]European Telecommunications Standards Institude (ETSI). Digital Video Broadcasting (DVB) Second generation framing structure for broadband satellite applications[END_REF], for coding rates 1/2 and 8/9 and a coded block length of 8000 bytes. Here, λ = 1/8 and 12 iterations are assumed for the 3D-TC. Similar performance are observed for the two codes. To the best of our knowledge, this is the first time that a (modified) turbo code achieves such a performance for a long block and a 8/9 coding rate. Finally, in Fig. 11 performance comparison is given w.r.t. the 16-state TC adopted in the 3GPP2 standard. An information block length of 12288 bits and 8 iterations are assumed for the two codes. Very similar performance are observed in the waterfall region. However, the proposed 3D-TC significantly improves the 3GPP2 code in the floor. No flattening is observed at FER 10 -5 . Also note that the complexity of the proposed code is noticeably lower.

VII. CONCLUSIONS

In this paper, we presented a modified turbo code combining the features of parallel and serial concatenation in order to obtain increased Hamming minimum distances compared to those of classical turbo codes. The simulation results corroborate the interest of this approach. Frame error rates down to 10 -7 are obtained near the theoretical limits without the use of any outer block code, such as BCH or Reed-Solomon codes. This characteristic makes this new code, called 3D turbo code (3D-TC), very versatile from the standpoint of block size and coding rate. Furthermore, the component decoding algorithm (Max-Log-MAP) is simple and does not require the knowledge of the channel. Finally, the internal permutations of the 3D-TC are based on very simple models enabling large degrees of parallelism, if needed.

Fig. 1 .

 1 Fig. 1. The proposed 3D Turbo Code: two fractions λ of the parity bits stemming from both component encoders are grouped by a parallel to serial (P/S) multiplexer, permuted by permutation Π and re-encoded by a rate-1 post-encoder.

Fig. 2 .

 2 Fig. 2. Possible linear post-encoder candidates, with memory 1 or 2.

  Fig.2(c) Non-linear code of Fig.4

Fig. 5 .Fig. 6 .

 56 Fig. 5. EXIT curves for the linear and non-linear post-encoders.

2 ; 3 Fig. 7 .Fig. 8 .

 2378 Fig. 7. The component double-binary encoder with three outputs.

Fig. 9 .Fig. 10 .

 910 Fig.9. Performance, in Frame Error Rate, of the 3D-TC with λ = 1/4 for k = 57 bytes, R = 1/4, 1/2 and 4/5 (linear post-encoder) and comparison with the DVB-RCS TC. All simulations used the Max-Log-MAP algorithm with 8 iterations. TL: theoretical limit (sphere packing bound).

2 Fig. 11 .

 211 Fig.11. Performance, in Bit Error Rate, of the 3D-TC with l = 1/8 for n = 8000 bytes, R = 1/2 and 8/9 (non-linear post-encoder) and comparison with the DVB-S2 LDPC code performance. The number of iterations was 12 for the 3D-TC (using the Max-Log-MAP algorithm) and 50 for the LDPC. The LDPC performance was obtained from an FPGA (courtesy of TurboConcept) while the 3D-TC decoder operated on real channel values (i.e. no quantization).


Marcello De Michele

Daniel Raucoules

Michael Foumelis

Digital elevation models of volcanic plumes

teaching and research institutions in France or abroad, or from public or private research centers.

Digital elevation models of volcanic plumes

Marcello de Michele, Daniel Raucoules, Michael Foumelis. BRGM, Natural Risks Division, 3 av. C. Guillemin, Orléans, France.

The routine retrieval of both height and velocity of volcanic clouds is a key issue in volcanology. The injection altitude is a crucial parameter that controls the ash/gas dispersion in the atmosphere and their impact and lifetime around the globe. Plume height information is critical for ash dispersion modelling and air traffic security. Moreover, the understanding of the volcanic system itself greatly relies on the knowledge of the volcanic cloud height, as ash/gas emission rates are related to the state of pressurization of the magmatic chamber. (e.g. [START_REF] Hreinsdottir | Volcanic plume height correlated with magma pressure change at Grímsvötn volcano, Iceland[END_REF].

The height reached by a volcanic eruption column, together with the atmospheric wind regime, controls the dispersal of tephra.

Column height is itself a function of vent radius, gas exit velocity, gas content of eruption products, and efficiency of conversion of thermal energy contained in juvenile material to potential and kinetic energy during the entrainment of atmospheric air [START_REF] Wilson | The control of volcanic column heights by eruption energetics and dynamics[END_REF].

  Conventional photogrammetric restitution based on satellite imagery using MISR has been proposed to precisely retrieving volcanic clouds heights by removing the the plume own velocity that induces an apparent parallax. Recent approaches, based on photogrammetric analysis of image pairs, use the observation of parallax shifts (apparent movement in the projection plane). Photogrammetric methods can have a substantial advantage over other techniques for measuring cloud top heights due to requiring fewer metadata and assumptions about atmospheric conditions Merucci et al. (2016). However, clouds can move very rapidly (e.g. >50 ms) and so, if images are not acquired simultaneously, additional estimates of cloud motion are also required (de Michele et al., 2016; Nelson et al., 2013; Urai, 2004). The Multiangle Imaging Spectro Radiometer (MISR) has been utilized to retrieve volcanic clouds top height, optical depth, type, and shape of the finest particles for several eruptions (e. g. Flower and Kahn, 2017). When the along-track disparity includes contributions from parallax due to height and from real displacement due to alongtrack wind, the wind-corrected plume height can still be retrieved by inputting the wind direction, which is easily recognizable on a volcanic cloud. These pioneering methods apply to one particular instrument at medium resolution (275m for MISR). de Michele et al. (2016) pushes this methods forward by generalizing a complementary solution that virtually applies to all high resolution satellites that present a lag between two spectral bands (figure 1).

Figure 1 .

 1 Figure 1. Geometrical considerations and formulas. Oh = pixel offsets due to height ; Oe = epipolar offset ; Op2e = perpendicular-to-epipolar offset;  = angle between the plume and the satellite azimuth direction.

Figure 2 .

 2 Figure 2. SPOT image of Mt. Etna flank eruption, 20 July 2001.

Figure 3 .

 3 Figure 3. Plume Elevation Model of the Mt. Etna flank eruption, 20 July 2001. The grey scale indicate the height. It goes from zero (black) to 6 km (white).


Oussama Kassem
email: oussama.zein@enst-bretagne.fr

Yvon Kermarrec
email: yvon.kermarrec@enst-bretagne.fr

Description and composition of services for distant learning and research activities

Keywords: composition of services, service description, service discovery, service composition

In this paper, we present our approach to describe and compose services for distant learning and research activities. In this context, we propose a metadata model for indexing services with three dimensions: it can be viewed as learning resources, as services that contribute and help researchers to perform their tasks in a community and as services with a large scope. This model can be used by clients (learners/teachers or researchers) to query and discover services via for example a trader we have developed. We extend the functionality of the trader to be a composition engine enabling learners/researchers to compose several services or resources that can help them in their distant learning and research activities. We use the documents (databases, web documents, etc.) as an application for our approach of service description. For this purpose, we have decided to add an interface to the document. This allows documents to be reused and shared by using the approaches defined for web services.

Introduction and Context

Many different approaches for describing, managing and providing learning resources have been developed over the years to accomodate the massive flow of information of the internet like Dublin Core [START_REF] Powell | Dublin Core in RDF[END_REF] and LOM (Learning Object Metadata) [START_REF]IEEE. Draft standard for learning object metadata[END_REF]. Nevertheless, a clear understanding and consensus about what constitutes a learning resource has not yet been reached. Even though, we can find analogies with software engineering.

These approaches provide a set of properties that characterize a learning resource. These properties can be used by clients (learners/teachers) to discover e-learning services via UDDI [3] or a trader we have developed [START_REF] Zein | An Elaborate and Flexible Trader Based on Ontologies[END_REF].

In this paper, we propose to extend the nature of a learning resource to be a service and to make it accessible via through an interface, as it is the case for a learning service. In this context, our proposal is to make a learning resource not only as a downloadable thing-that is only executed on the client machine with no interaction with servers with during execution time-but also as a service accessible by an interface. We define a metadata model for learning services description which can be stored in UDDI or in our trader [START_REF] Zein | An Elaborate and Flexible Trader Based on Ontologies[END_REF]. We have used ontologies [START_REF] Gruber | A Translation Approach to Portable Ontology Specifications[END_REF] to index and store this model as for our previous R&D activities. An ontology is a consensus between clients and service providers, so they can cooperate and share a common vocabulary. Clients and providers that can be teachers or students can use this model to query and publish learning services through ontologies.

We extend the metadata model to make a client not only a learner or a teacher but also a researcher (a PhD student, a professor, etc.) to do distant research. In this context, a researcher can publish his services (software, tools, simulation results, etc.) that can contribute and help other researchers in their research. So, how can we describe these services to make possible the distant research between researchers?

In a previous work [START_REF] Zein | Static, semidynamic and dynamic composition of services in distributed systems[END_REF], we have extended the functionalities of our trader to be a composition engine that allows combining several services into one service based on their behavior. We have proposed three models of composition: static, semi-dynamic and dynamic. Based on these approaches and the metadata model we propose to describe e-learning services, we present in this paper how clients (learners/teachers or researchers) can benefit from the functionalities of many services to get the appropriate results in their distant learning and research activities and access resources made available by them in the community. We use the documents as an application domain for our approach of description and discovery of services for distant learning and research. We describe a document with a service by adding to it an interface. This allows clients to use the same type of interface to interact with different documents (databases, web documents, etc.) and allows documents to be reused and shared by using the approaches defined for web services. This paper is organized as follows. Section 2 presents our proposal of a metadata model that describes and characterizes learning and research services. Section 3 illustrates our proposal of ontology managing interfaces that allow clients and servers to query and advertise learning services based on the underlying use of ontologies. Section 4 presents the service behavior description. Section 5 illustrates our approach allowing the service composition when a service search is unsuccessful. Section 6 presents an application using our approach to describe documents. Section 7 presents our related work. Finally, the conclusion raises issues and presents our future work in section 8.

Our Proposed Metadata Model

In this section, we present our metadata model to describe learning services. We propose to describe a learning service with three dimensions: as learning resources, as services that contribute and help researchers to perform their tasks in a community and as general purpose services. This model provides a set of properties that characterizes learning services. In the next sections, we build an ontology which is constituted of concepts to describe and store the learning service properties.

Dimension 1: learning resource

We have based our model on Dublin Core [START_REF] Powell | Dublin Core in RDF[END_REF] and IEEE LOM [START_REF]IEEE. Draft standard for learning object metadata[END_REF] to ensure compatibility with existing platforms and to allow the description of a learning resource in general. They define a set of elements like:

• Title: the name given to the resource by its creator.

• Creator: The person(s) or organization(s) primarily responsible for the intellectual content of the resource.

• Subject: the topic of the resource, or keywords or phrases that describe the subject or content of the resource.

• Description: a textual description of the content of the resource, including abstracts in the case of document and objects and content descriptions in the case of visual resources.

• Publisher: the person(s) or organization(s) in addition to those specified in the Creator element who have made significant intellectual contributions to the resource but whose is secondary to the individuals or entities specified in the Creator element (for example, editors).

• Date: the date the resource was made available in its present form.

• Language: language(s) of the intellectual content of the resource.

• Format: the data representation of the resource, such as text/html, Postscript file, JPEG image and so on.

• Rights: the content of this element is intended to be a link (a URL for example) to a copyright notice, a rights-management statement and so on.

Dimension 2: research resource

Our investigation is to describe services that contribute and help researchers to collaborate, to work together and to exchange the information in their research activities. A service can be a software (a program/application or a component), a document and so on that is provided by a researcher (the author) and can be used by other researchers to help them in their research activities. For this purpose, we must describe the context of the component precisely and we have identified three major fields: the research areas covered by the service, the researchers and the type of service (software, document) provided and so on.

A research area can be described by:

• Indexes: key words that describe the research area.

• References: a set of papers, documents and URLs that are useful in the research area.

• Links: which are towards other areas and topics which are linked to the research area.

• Description: a short textual description of the research area.

A researcher (the author of the service) can be described by:

• Personal information: name, email, phone number(s), web site, CV, etc.

• Quality and title: PhD thesis, professor or engineer for example.

• Research areas: the list of the research areas.

• Teaching areas: the list of the teaching areas.

• Publications: references to the published papers.

• Department: to which the researcher is attached.

These indexes can have default values according to provider profile.

A department can be described by:

• Name: of the department and the university or organization to which the department is attached.

• Address: the location of the department.

• Description: a short description of the department.

• Research areas: the list of the research orientations of the department.

• List of researchers attached to the department.

• Research groups constituted in the department.

A service type can be a learning resource, a software, a program, a document and so on.

Dimension 3: service with a large scope

We have based our proposal on [START_REF] Dumas | Towards a semantic framework for service description[END_REF], [START_REF] Merz | Catalogue and Service Architecture[END_REF], [START_REF] Ng | Heterogeneous product description in electronic commerce[END_REF], [10] to describe a service with a large scope. We can identify a service by a set of characteristics like: delivery systems (in the case of learning services), payment and pricing, location, quality of service, requesting and delivery channels (PDA, mobile phone, etc.), helping tools (chatting room, mailing list, etc.) and so on.

We present some of these properties:

• Provider and Location: the Provider defines the characteristics of the service provider including his name and his address (e.g. the name of his city, street names, postal codes, and country codes, etc.). The Location determines the service location like a company address or an URL address, and so on.

• Request and delivery channels: with the introduction of the internet and new communication devices (mobile phones, pagers, etc.), there has been an increase in the number of request and delivery channels available to consumers. A channel is the means by which a user requests a service or receives the resulting output from a service. These are referred to as the request and delivery channels respectively.

• Payment and pricing: payment is the business process defined by the service provider for collecting the price of the service from the consumer. It can be conducted in single or multiple stages (i.e. installments), using various mediums (e.g. direct cash exchange, credit or debit card, cheque, direct debit, account, etc.). Payment can be made before delivery, at delivery, after delivery, or any combination of the above. Pricing is the charge for the service being provided. It is largely at the discretion of the service provider and as such, we consider a service to have a nominal price.

Pricing and payment can include the identifier of the entity to which the payment is addressed, which can be different from the identifier of the service provider. They include the payment channel. This is the method used for conducting the payment (e.g. internet, email, post and phone, etc.).

• Environment : it determines the characteristics of the environment used to exploit the service like the bandwidth and which many appear as requirements.

• Delivery system: like visio-conference in the case of learning resources.

• Helping tools: the tools (like chatting room, mailing list and so on) that help clients to use the service.

The clients and service providers of our metadata model can be students (dimensions 1 and 3), teachers (dimensions 1, 2 and 3), researchers (dimensions 2 and 3).

The metadata model provides a complete vision about learning service description since it allows clients and servers to query and advertise services using in learning, research and as general purpose services. This model extends services to be used by researchers/teachers and not only by teachers. It is flexible because it is compatible with existing approaches like IEEE LOM, Dublin Core and DAML-S.

Ontology Managing Interfaces

We have used our earlier approach [START_REF] Zein | An Elaborate and Flexible Trader Based on Ontologies[END_REF] for service discovery based on ontologies. We have selected ontologies because they make it possible to provide a shared consensus that can help share/reuse. In this approach for the ontology managing, we have used a tool named Ontobroker [START_REF] Fensel | Ontobroker : The very high idea[END_REF] which is a result of a european research program that allows managing ontologies. It consists of a query interface for formulating queries and an inference engine to derive new facts.

We first create an ontology describing the properties of learning services that we have defined in Section 2. We can use the facilities and the structures provided by an ontology like the inheritance relationships to construct the metadata model for our service. If the metadata are more structured by an ontology, the queries can benefit of the ontology organization: they are more flexible and more powerful. By using ontologies, we can benefit from all the power of the logic of first order.

The following example is a concept in the ontology written in F-Logic, to describe the location of the service provider:

Provider_address [ city_name =>> STRING; street_name =>> STRING; postal_code =>> INTEGER; country_code =>> INTEGER . . . ].
We have implemented the tools that allow us to manage an ontology and we have defined the following interfaces:

-Importing function: it is used by clients. It takes a query written in a logic language (e.g., F-Logic) as the input, it makes a request to Ontobroker for the service required and returns the matching service offers to the client.

-Exporting function: it is used by service providers to index and describe services. It allows a Fact to be added to the ontology. A service offer is an instance of a service. It is described by a fact. To add it to the ontology, a service provider can call this function.

-A function is defined to delete a fact from an ontology.

Service behavior description

SDL [START_REF]Specification and Description Language (SDL)[END_REF] and Interface Automata [START_REF] Alfaro | Interface Automata[END_REF] have been designed to specify and to describe the functional behavior of telecommunication systems. It describes a process behavior by an automaton which can then be exploited to validate the specification. Therefore, based on SDL and Interface Automata, we describe the service behavior via a finite state machine automaton") that models the allowed operation sequences. Invocation of the service must satisfy these sequences. For example, a seller may require a buyer to log in before ordering something. Thus, we can describe valid sequences of operation invocations. The interactions between the service operations occur through message exchanges. These messages are the inputs and the outputs of the operations. We can describe the automaton representing the service behavior as: a black box which conveys a relation between its inputs and its outputs (external behavior) and as a white box which indicates the required interactions between the service operations to provide outputs from given inputs (internal behavior).

The automaton describing the service behavior is composed of a set of states and transitions between the states. Each service operation is defined by a state. For a current state, the successor state belongs to the set of its matching states: i.e., the output of the current state can be connected to the input of its next. Therefore, a transition connects a state to one of its valid next state. An interaction between operations can be performed only if it is defined in the automaton.

Service composition

The composition of services is critical since it provides novel services and novel functionalities to the client. By combining services, the client (a learner/teacher or a researcher) can obtain a desired output from a given input not provided by any service but by several combined services. In our approach, we consider that two services can be composed if an ouput of one is equal to an input of the other one. Figure 1 shows an example of two services that are composed in figure 2. We describe each service by an automaton. The service "tex_transf" has an operation "latex" that transforms a "tex" file into a "dvi" file. This operation has one input ("tex") and two outputs ("dvi" and "error"). The service "dvi_transf" has the operation "dvips" that transforms a "dvi" file into a "ps" file. Therefore, This operation has an input "dvi" and an output "ps". These two services can be composed because they have a same input/output ("dvi"). Figure 2 describes the composed service that provides novel functionality. As a black box this composed service one input ("tex") and outputs ("error", "dvi", "ps"). As a white box, it has two operations : "latex" and "dvips". The interactions between them are presented in Figure 2.

We have proposed three models of service composition [START_REF] Zein | Static, semidynamic and dynamic composition of services in distributed systems[END_REF]: static that allows to combine service offers defined at compile-time, semi-dynamic that allows to combine service types (a service offer is an instance of a service type) defined at compile-time and dynamic which allows to combine services defined at run-time.

Application

We present an application we have developed using our approach to discover and describe documents. It allows documents to be reused and shared by using the approaches defined for web services. A client can discover a document which is downloadable on the client machine with no interaction with its provider. A document doesn't have an interface. This approach is used in the semantic web domain. Our idea is to direct and view a document as a service, i.e., a document accessible via through an interface. This allows clients to use the same type of interface to interact with different documents (web documents, databases, etc.). In this context, we can add an interface to the document that allows clients to read, write and modify a document. We describe a document with our proposed metadata (Section 2) as :

• A learning resource: title, version, etc. We can use the metadata proposed by Dublin Core [START_REF] Powell | Dublin Core in RDF[END_REF] to describe documents.

• A service helping researchers : it includes the description of the research area of the document, the description of its author, and so on.

• A service in general: it includes delivery and request channels, payment and pricing and so on.

• By behavior: we describe the inputs/outputs of a document. We consider that a document doesn't have an input. A client doesn't need inputs to interact with a document. The output of a document can be its content. Figure 3 describes the document behavior with an automaton. The three operations (read, write, modify) don't have inputs ("*") and can provide as outputs the content of the document after reading, writing or modifying.

Related Work

Many different approaches for describing and discovering services have been developed. For example, DAML-S [10] provides a set of characteristics that allows describing a service. This description addresses only the static properties of a service. It does not describe the behavior of a service and its interface. In our approach of service indexing, we have used this description as a reference to characterize a service by static properties. Our approach is more powerful than DAML-S since it provides complementary properties describing the service by its behavior and its interface. These properties can be used by clients to query and find a service in distributed systems.

To discover a service, we can select for example UDDI which, is a registry that allows a Web service to be discovered via a yellow page style of search. It allows a service to be discovered by querying only its static properties. It provides a static schema for service description and the service provider cannot modify this schema or create databases to advertise its services offers. Then, in our approach, each service provider can define its databases and can advertise its service offers by using their static properties, their behaviors and their interfaces. The clients use the same interface to query these three levels of service description. So, the service indexing and discovery become more sophisticated.

Many different approaches for service composition have been developed like [START_REF] Yang | Tackling the Challenges of Service Composition in E-Marketplaces[END_REF], [START_REF] Pistore | Planning and monitoring web service composition[END_REF], [START_REF] Berardi | Automatic service composition based on behavioral description[END_REF] but it is not clear that they compose services based on their behaviors. Our approach of semi-dynamic [START_REF] Zein | Static, semidynamic and dynamic composition of services in distributed systems[END_REF] composition model is the first one that exceeds the performance and complexity problem of the dynamic composition model.

Perspectives and Conclusions

In this paper, we have presented our current related work in the indexing and searching of learning and research services. For this latter operation, we have proposed a metadata model for describing learning services. The current model that we have proposed, describes a learning service with three dimensions: as a learning resource, as a service that contribute and help researchers and as a general service. This model is a powerful one since it provides a complete description of learning services and extends services to be used by researchers/teachers and not only by teachers. It is flexible because it ensures compatibility with existing approaches like IEEE LOM, Dublin Core and DAML-S. The clients and the servers of this metadata model can be teachers, researchers and students. We have implemented this model with ontologies, consisting of concepts representing the characteristics of a service. Flexibility is introduced since the ontology and its content can be changed and adapted to usage.

We have presented a trader we designed and developed: it is based on ontologies and knowledge representation. It allows a service provider to advertise a learning service offer and a client to discover a learning service by querying its three dimensions of description. By using ontologies and a logic language, the service discovery is more flexible. This requires that the ontology be designed with care and user intention in mind.

Based on SDL and Interface Automata, we can describe the service behavior which enables the client to use the service discovered and to understand how the invocation of the service operations needs to be performed. Based on the service behavior description and the trader, we have presented in this paper an approach that allows the com-position of services in distributed systems. This approach is a powerful one since it allows the client to benefit from the functionalities of more than one service to get novel functionalities and novel services.

As perspectives, we will propose an approach of trader federation to compose services. In this context, when a client queries a service from a trader and this service doesn't exist, the trader can interact with other traders to search and compose services to satisfy the client's request. So, this approach will allow the composition of services located on different traders.

Figure 2 .

 2 Figure 1. Example of two services

Figure 3 .

 3 Figure 3. An automaton describing the document behavior