Ling Qi

Amit Sehgal

Jean-Christophe Castaing

Jean-Paul Chapel
email: chapel@us.rhodia

Jérôme Fresnais

Jean-Francois Berret

Fabrice Cousin

J.-C Castaing

J.-P Chapel

J.-F Berret

Redispersible Hybrid Nanopowders: Cerium Oxide Nanoparticle Complexes with Phosphonated-PEG Oligomers

published or not. The documents may come   L'archive ouverte pluridisciplinaire

Metal-oxide nanocrystals such as cerium (CeO 2 ), iron (Fe 2 O 3 ), zirconium (ZrO 2 ) and titanium (TiO 2 ) oxides represent a particularly important class of inorganic nanoparticle systems widely used in the diverse fields above. Despite this diversity in chemistry and application these particles share some common features. Their synthesis usually occurs in very acidic (or basic) environments by precipitation of metallic salts. The result is a stabilized sol at low pH (typically < pH 2) via electrostatic repulsion between particles. The main drawback is a very acute sensitivity to any variation of physicochemical conditions in the aqueous solution. In order to increase their stability range, low molecular weight molecules or ligands like citric acid [START_REF] Biggs | Effects Of Citrate Adsorption On The Interactions Between Zirconia Surfaces[END_REF] or poly(acrylic acid) [START_REF] Sehgal | Precipitation-redispersion of cerium oxide nanoparticles with poly(acrylic acid): Toward stable dispersions[END_REF] are generally used. The COOH groups of the ligands form complexes with the surface hydroxyl groups of the nanoparticles. At sufficiently high pH where the carboxylic groups are ionized (> pH = 5), electrostatic stabilization of the sol occurs. The fundamental physical and chemical characteristics underlining the formation of the complexations are not straightforward since the complexations require some mechanical stress (shear, high energy ultrasounds) [START_REF] Desset | Redispersion of alumina particles in water[END_REF][START_REF] Desset | From powders to dispersions in water: Effect of adsorbed molecules on the redispersion of alumina particles[END_REF] to re-disperse the sol or a two step process (low pH aggregation -high pH re-dispersion [START_REF] Sehgal | Precipitation-redispersion of cerium oxide nanoparticles with poly(acrylic acid): Toward stable dispersions[END_REF] ). The electrosteric repulsion conveyed via the ligands (eg. carboxylic groups) though less sensitive to perturbations of pH and/ or ionic strength compared to the bare sols is still ionic and serves only to extend utility for limited application. Alternatively, the use of head-tail architecture has been shown recently to be an efficient strategy for the dispersion of alumina nanoparticles [START_REF] Studart | Colloidal stabilization of nanoparticles in concentrated suspensions[END_REF] (PEG tail and a gallol anchoring group) or the surface modification of yttrium oxide nanoparticles [START_REF] Traina | Surface modification of Y2O3 nanoparticles[END_REF] .

We report a facile complexation process giving rise to robust and versatile hybrid metal oxide nanoparticle sols with a well anchored neutral corona for wide applicability. This process obviates the necessity for specialized processing steps as precipitationredispersion. The choice of the complexing group(s), anchored on the particle surface, and the nature of the oligomeric tail, in the solvent, is of paramount importance. Among various anionic moieties it has been shown that phosphonic acid groups bind strongly to a variety of metal oxide surfaces at room temperature in aqueous solution [START_REF] Traina | Surface modification of Y2O3 nanoparticles[END_REF][START_REF] Gawalt | Bonding organics to Ti alloys: Facilitating human osteoblast attachment and spreading on surgical implant materials[END_REF] .

We also chose polyethylene glycol (PEG) groups that are widely used in biomedical applications to prevent non-specific adsorption of proteins [START_REF] Dalsin | Protein resistance of titanium oxide surfaces modified by biologically inspired mPEG-DOPA[END_REF] . An end grafted PEG layer may provide some biological stealth to the hybrid metal oxide nanosols [START_REF] Dobrovolskaia | Immunological properties of engineered nanomaterials[END_REF] .

Along these lines, we highlight the potential and versatility of phosphonic acid terminated PEG oligomers to functionalize rare earth oxide nanoparticles. Cerium oxide is chosen to illustrate this approach due to its growing importance in science and technology ranging from material science (catalysis, polishing, optics…) [START_REF] Yu | Ultraviolet electroluminescence from organic light-emitting diode with cerium(III)-crown ether complex[END_REF][START_REF] Hung | Preparation of mesoporous cerium oxide templated by tri-block copolymer for solid oxide fuel cell[END_REF][START_REF] Patsalas | Optical performance of nanocrystalline transparent Ceria films[END_REF][START_REF] Feng | Converting ceria polyhedral nanoparticles into single-crystal nanospheres[END_REF][START_REF] Suphantharida | Cerium oxide slurries in CMP. Electrophoretic mobility and adsorption investigations of ceria/sificate interaction[END_REF] to biomedical [START_REF] Tarnuzzer | Vacancy engineered ceria nanostructures for protection from radiation-induced cellular damage[END_REF][START_REF] Chen | Rare earth nanoparticles prevent retinal degeneration induced by intracellular peroxides[END_REF][START_REF] Schubert | Cerium and yttrium oxide nanoparticles are neuroprotective[END_REF] applications.

In the following section, we describe, characterize and model the complexation process and the resulting nanostructure of the hybrid particles. We then underscore two key attributes of the tailored sol: i) strong UV absorption capability after functionalization and ii) ability to re-disperse after freeze-drying as powder in aqueous or organic solvents in varying concentrations as singlet nanocolloids.

Results and discussion

Light scattering

To understand and model the adsorption of the oligomers onto the nanoceria particles, hybrid solutions are prepared as a function of the volume ratio X defined in equation 7 with an overall concentration c kept constant. The Rayleigh Ratios and hydrodynamic diameters are measured and plotted versus the mixing ratio X (Figure 1). X = 10 -4 corresponds to a solution containing PPEG oligomers only. X = 1000 corresponds to a solution containing bare nanoceria particles only. When X decreases from 1000 to 0.01, the size of the coated nanoceria increases gradually up to a critical value noted X P where it then saturates around D H = 13 nm. We interpret this result as the progressive coating of the particles by the oligomers until full coverage occurring at X P . By further decreasing X, the number of fully covered particles decreases until their number is too low to be detected by DLS (around X ~ 0.01). The normalized Rayleigh Ratio (normalization by the Rayleigh Ratio of the bare nanoceria R NP (X = ), as measured by SLS, is also monitored as a function of X. Here as well, one can clearly identify a critical ratio X equal to X P where the Rayleigh Ratio starts to decrease progressively with X. We interpret this result as the dilution of the fully covered particles by the free oligomers present in the bulk, in agreement with DLS results.

Figure 1. Raleigh ratio and hydrodynamic radius DH vs. X at low pH (pH = 1.5). The continuous line is a fit to the data using a non-stoichiometric model for adsorption (see the analysis section). In the white region the fully covered particles coexist with free PPEG oligomers.

To confirm the existence of a critical volume ratio at X P below which particles are fully covered, the pH of the solutions is raised (it should be recalled that bare nanoceria solutions start to aggregate at pH = 3 and precipitate above pH = 5) [START_REF] Nabavi | Surface Chemistry of Nanometric Ceria Particles in Aqueous Dispersions[END_REF] . At pH = 9, a solution made at X < X P remains stable suggesting that the steric repulsion generated by the PEG layer is sufficient enough to prevent the destabilization of the sol. This result is confirmed by a Rayleigh Ratio equal to the value found at pH = 1.5. Above X P , as expected, the solution begins to aggregate due to the lack of oligomers on the particles resulting in a very low steric hindrance.

Furthermore, a comprehensive description of the behavior of the coated particles as a function of pH and mixing ratio X is undertaken. A large number of different experimental conditions are gathered in Figure 3 representing the whole stability phase diagram of the CeO 2 -PPEG hybrid nanoparticles. As the pH is progressively increased, the solutions become destabilized at pH > 10.5. This critical upper stability limit is identical to the pK a of the (110) and the (111) facet of the ceria nanocrystal unit cell when the charge changes from zwitterionic to negative [START_REF] Nabavi | Surface Chemistry of Nanometric Ceria Particles in Aqueous Dispersions[END_REF] . We postulate desorption of the phosphonated-PEG at this pH due to the co-incidence of the transition to the aggregated state (see section 3.3). Another feature of this phase diagram is the existence of a general critical X = X P For all values of X > X P , the particle size increases progressively at a lower pH leading to early phase separation. To obtain more quantitative results on this system, the Rayleigh Ratios were measured at pH = 1.5 for both CeO 2 and CeO 2 -PPEG dispersions as a function of the CeO 2 weight fraction ( Figure 3).

The two slopes are different because the Rayleigh Ratio is proportional to K and M W , as shown in equation 11. The slopes of the linear regressions for the CeO 2 -PPEG and CeO 2 Rayleigh ratios versus the CeO 2 weight fraction are 0.1284 and 0.0743, respectively. The clear difference in the 2 slopes gives us the possibility to compute precisely the number of adsorbed PPEG chains per nanoceria. Using expression (1) described in a former publication [START_REF] Sehgal | Precipitation-redispersion of cerium oxide nanoparticles with poly(acrylic acid): Toward stable dispersions[END_REF] and values from Table 1 one finds 270 ± 30 phosphonate-PPEG per CeO 2 particle.

R CeO 2 PPEG R CeO 2 = K CeO 2 PPEG K CeO 2 1+ n ads M W PPEG M W CeO 2 2 (1)
The molecular weight of a hybrid nanoparticle is hence M w = 440 ± 30 Kg/mol. The organic layer represents 38 % of the total weight. The determination of the mutual diffusion coefficients for both dispersions at different weight fractions allows for the calculation of D 0 , the self-diffusion coefficient of the bare and coated nanoparticles (Figure 4). Careful DLS measurements are able to distinguish a different behavior for coated and non coated particles. Using the Stokes-Einstein relation, the hydrodynamic diameters D H of bare and PPEG coated nanoparticles were found to be D H = 9.2 nm and D H = 12.3 nm respectively. One can estimate a thickness of 1.6 nm for the PPEG corona. The theoretical fully extended contour length of the PPEG molecules is about 4.5 nm. The difference expresses the grafting density of the PPEG onto the particle (270 chains per particles or 1 chain/nm 2 ) typical for oligomers adsorbing onto nanoparticles [START_REF] Studart | Colloidal stabilization of nanoparticles in concentrated suspensions[END_REF] (the non spherical shape of the particle might also play a role). A monolayer of PPEG densely grafted (and fully stretched) would give a grafting density of 4 chains/nm 2 PPEG. The non-fully stretched configuration of the PPEG is however sufficient to provide a very good steric stabilization.

Non-stoichiometric model

In order to model the adsorption of the PPEG oligomers onto the particles two different mechanisms that generally describe how polymers coat nanoparticles have been considered. The mechanisms named stoichiometric (ST) [START_REF] Berret | Stoichiometry of electrostatic complexes determined by light scattering[END_REF] and non stoichiometric (NST) models [START_REF] Spalla | AGGREGATES THROUGH POLYMER BRIDGING[END_REF] (Figure 5) are described in the literature. The main difference between them only appears above X P (X > X P ) where the particles are no longer fully covered (shortage of oligomers). Two distinct mechanisms are likely. First, the coated nanoparticles coexist with non coated ones giving a number of oligomers/particle n ads constant throughout the X range (ST model). Second, all nanoparticles are equally covered (NST model) and n ads is hence a function of X. Below X P (X < X P ) where the two models merge, the coated nanoparticles coexist with free oligomers present in the bulk solution.

Above X P , the number of grafted oligomers progressively decreases toward bare particles (X = ). At Xp, all the oligomers present in the initial solution are adsorbed onto the particle.

From a closer look to the data of Figure 1, and within the experimental error of the light scattering technique, D H appears quite constant (around 13 nm) up to a value of X close to X P when it starts do drop smoothly until it reaches the value of the bare nanoceria particle (9.2 nm) at X = (extreme point on the right). This behavior suggests a NST model for the adsorption. In addition, no precipitation above X P is seen in the phase diagram (Figure 2) for pH < 4. This result is in contradiction with a ST model that would predict the coexistence between bare and coated particles leading to the aggregation of a portion of the sol. Therefore, a non-stoichiometric adsorption mechanism is selected to model the oligomer adsorption onto the nanoparticles. In what follows, the X-dependence of the scattered intensity will be modeled accordingly.

In the experiments described previously, the total concentration c of active matter (CeO 2 + PPEG) is kept constant. The respective nanoparticles and oligomers concentration are given by equation 7 regardless of any interaction between them. One can define the nominal number of oligomers/particle as n ads (X) = M w CeO 2 X M w PPEG . Below X P , n ads is equal to n ads (X p )and the solution contains fully coated nanoparticles (CeO 2 ) and free oligomers (PPEG). Above X P , n ads is a function of X and the solution contains only partially covered particles. The total scattering intensity expresses hence as the sum of different contributions. As a result, the Raleigh ratio normalized to its value at X

= ( R = K CeO 2 M W CeO 2 c ) reads as R ~(X < X p ) = K ~M X p X X p 1+ X ( ) + K ~1/ 2 + X p X p 2 x 1+ x (2)
The first term arises from the free oligomers present in the bulk and the second term to the fully covered particles. Similarly, at high X the contribution arises solely from the partially covered particles and the intensity goes as

R ~(X > X p ) = 1+ X X K ~1/ 2 + X 1+ X 2 (3)
where

K ~= K PPEG K CeO 2 and M = M W PPEG M W CeO 2
.

When X goes either to zero (only oligomers in the solution) or to infinity (only nanoparticles), the ratio tends, as expected, to K ~M or 1, respectively. The normalized Raleigh ratios do not depend on the total concentration c; therefore the expression should be valid at all concentration in the dilute regime. Equations 2 and 3 are used to fit the scattering data of Figure 1 with X P as the sole adjustable parameter. All other quantities such as the coupling constant K ~, the molecular weights of both oligomers and nanoparticles are known. The result of the fitting is shown in Figure 1 as a solid curve. The agreement between the model and the data is excellent. X P is found to be 1.65 leading to a number of oligomers/particle n ads (X p ) = 260 ± 30 in close agreement with the results found through the data of Figure 3.

SANS scattering

To complement light scatterings data, SANS is performed on both bare and PPEG-coated nanoparticles to investigate the nanostructure of the core-shell hybrid system (Figure 6). The scattered intensity I(q) of spherical objects can be decomposed into a structure factor S(q) and form factor P(q) . At sufficiently low concentration (< 1wt. %), the structure factor is equal to 1 (no interparticle interaction), the scattered intensity is proportional to the concentration and the q-dependence of the intensity reflects the form factor P(q) of the aggregates. Figure 6 shows the form factor of both bare and modified particles. Because the measurements of the scattered intensity are performed in H 2 O and D 2 O for the CeO 2 and PPEG-CeO 2 system respectively, the curves at high q can not be superimposed. The extra contribution to the scattered intensity due to the presence of the organic layer is, however, clearly seen at low q in the Guinier representation where R g q < 1 (inset Figure 6). Here, the logarithm of the intensity decreases linearly with q 2 and from the straight lines, we deduce a radius of gyration R g = 3.2 ± 0.1 nm for the bare nanoparticles and R g = 4.4 ± 0.1 nm for the PPEG coated ones. For homogeneous and monodisperse spheres of radius R, R = R H = 1.29 R g . In the present case, for the bare particles, we find R H /R g ~ 1.44. The discrepancy likely reflects the polydispersity in size of the cerium oxide particles. In the Porod representation (I(q) q 4 , not shown here), the first oscillation of the form factor shifts toward lower q after the coating (from 0.11 to 0.07) supporting the presence of the organic layer. However, due to polydispersity it is difficult to extract the radius R of the particles (q peak R = 4.57). In addition, from experiments performed with solutions having different We find ~CeO 2 = 4.99 10 10 cm -2 for the bare particles. In the case of coated ones the ratio gets rather through a minimum (because it is not possible to match jointly the particleand the organic shell) giving ~CeO 2 PPEG = 1.93 10 10 cm -2 .

Figure 6. SANS form factor P (q) for bare and coated nanoparticles in double logarithmic scale. Inset: Guinier representation of the intensity for the same samples (I(q) versus q 2 ). From the straight lines, the gyration radii for bare and coated nanoceria were calculated, Rg = 3.2 nm and 4.4 nm, respectively.

From the results gathered so far, the coated nanoparticles seem to have a hybrid core-shell structure. In that case, the intensity excess as q 0 due to the PPEG shell can be approximated by 12

I CeO 2 PPEG I CeO 2 q 0 = 1+ n ads PPEG D 2 O CeO 2 D 2 O v M PPEG v M CeO 2 2 (4)
The ratio on the left side of equation 4 was found experimentally. The intensity scattered by the coated ceria was 38 times that of bare particles in D 2 O.

Knowing ~CeO 2 , the molar volume of bare ceria v M CeO 2 can also be calculated from the intensity scattered as q 0 of a diluted ceria solution. The molar volume of a PPEG oligomer is estimated via its M w and a bulk density of 1.13 ( v M PEG ~ 910 [START_REF] Konstantatos | Ultrasensitive solutioncast quantum dot photodetectors[END_REF] ).The values of D 2 O ( = 6.33 10 10 cm -2 ) and PEG (= 0.84 10 10 cm -2 ) are classically computed according to their composition and density. Finally, one ends up with a number of adsorbed PPEG oligomers/particle n ads = 230 ± 30.

Both light and neutron scattering data are in very good agreement, confirming the consistency of our approach and the accuracy of the results. From quantitative scattering data we are able to deduce the main features of the core-shell nanostructure of the hybrid particles. The integrity and efficiency of the coating process is also highlighted. The PPEG functionalization does not alter the main specificities of the original sol e.g. singlet nanometer size cerium oxide particles and greatly expands its stability range up to pH = 9.

Adsorption isotherms

In order to evaluate the affinity of the phosphonated-PEG oligomers with the surface of cerium oxide nanoparticles, adsorption isotherms are measured on macroscopically flat CeO 2 model surfaces with the help of optical reflectometry. As seen in Figure 7, in both values of pH investigated the curves present a rather sharp increase of the adsorbed amount at very low concentration. This rapid flattening out of the adsorbed amount suggests a rather high affinity of the oligomers toward cerium oxide surface. The data of Figure 7 can be fitted using a Langmuir 15 model where the oligomers adsorbed amount

) (c , specifically kc c k c sat + = 1 ) ( ( 5 )
where sat is the maximum adsorbed amount, c is the (equilibrium) concentration of oligomers in the aqueous solution and k is the adsorption constant ( = k adsorption k desorption

). The fit gives values of sat = 1.8 mg/m 2 , k = 1.6 10 5 l/mol and sat = 0.8 mg/m 2 , k = 1.4 10 5 l/mol for pH = 1.5 and pH = 6.5 respectively. In both case k is quite large leading to small values for k desorption , consistent with a high affinity type of isotherm. The magnitudes of the adsorbed amounts are typical for organic matter adsorbing onto inorganic surfaces. The adsorbed amount (at pH = 1.5) computed from light scattering results (D H = 9.2 nm, 270 oligomers/NP) is equal to 1.1 mg/m 2 (assuming a spherical shape for the NP). Hence, both approaches agree reasonably well. In addition, due to a size comparable to a nanoparticle, an oligomer adsorbing on top of the ceria model surface does not see a homogeneous layer, but rather a compact set of nanoceria spheres with at most a 90 % coverage (in the case of an hexagonal close-packing). This layer develops a surface area of 2 R 2 number of particles (the surface area of hemispheres of radius R). The renormalized adsorbed amount is ~ 1 mg/m 2 in very good agreement with the value found through light scattering experiments.

The free energy of adsorption G ads of the PPEG oligomers on the ceria surface is estimated from the following expression:

G ads = k B T ln( k V water m ) (6)
where k B is the Boltzmann constant, T is the temperature, and V water m is the molar volume of water (0.018 L/mol) [START_REF] Studart | Rheology of concentrated suspensions containing weakly attractive nanoparticles[END_REF][START_REF] Lyklema | Fundamentals of Interface and Colloid Science[END_REF] .The adsorption free energies are found to be -16 k B T and -15.8 k B T for pH = 1.5 and pH = 6.5 respectively. Though the exact nature of the bond between PPEG and ceria is not known at this stage, the measured free energies might indicate an adsorption mechanism controlled by electrostatic interaction [START_REF] Studart | Colloidal stabilization of nanoparticles in concentrated suspensions[END_REF] . At pH = 1.5 the ceria nanoparticles are cationically charged (CeO-H 2 + ) and the PPEG are only slightly anionic (3%, pK 1 ~ 2.7). However, it has been reported [START_REF] Ulrich | Complexation of a weak polyelectrolyte with a charged nanoparticle. Solution properties and polyelectrolyte stiffness influences[END_REF][START_REF] Ulrich | Complex formation between a nanoparticle and a weak polyelectrolyte chain: Monte Carlo simulations[END_REF] in the literature that the presence of oppositely charged nanoparticles can affect considerably the acid-basic properties of weak polyacid by making group or chain ionization easier. Although we do not know at this stage how to quantify such mechanism, it can possibly apply in our system and explain the presence of a larger charge on the weak phosphonic acid at low pH leading to the strong adsorption measured. (6). The solid curve is the Langmuir fit to the data.

At pH = 6.5, close to its IEP, ceria nanoparticles are less cationic and PPEG oligomers are 50% anionically charged (pK 2 ~ 7.8). The lower amount measured at higher pH may be due to electrostatic repulsion between the charged oligomers while adsorbing onto the surface. At this pH, the presence of more than one charged group in the phosphonated head could possibly force the oligomers into a flatter configuration leading to a lower adsorbed amount as well. The acidbasic interaction between the hydroxyl groups (Ce-OH) of the ceria and the remaining phosphonic acid groups (O = P-(OH)) of the PPEG might also favor adsorption leading possibly to a Ce-O-P = O bond with the release of a H 2 O molecule. The reactivity of phosphonic acid groups toward metal oxide surfaces is known to correlate with its basicity [START_REF] Gao | Self-assembled monolayers of alkylphosphonic acids on metal oxides[END_REF] . In the case of yttrium oxide (Y 2 O 3 ) nanoparticles (yttrium and cerium are rare earth elements with similar electronegativity and ionic radii) [START_REF] Wang | Synergistic catalysis of carbon dioxide hydrogenation into methanol by yttria-doped ceria/gamma-aluminasupported copper oxide catalysts: effect of support and dopant[END_REF] the reaction ( esterification ) takes place at room temperature [START_REF] Traina | Surface modification of Y2O3 nanoparticles[END_REF] . Furthermore, the modified CeO 2 sol was able to withstand a week-long dialysis against pure water without aggregating, highlighting the robustness of the organic coating. It should be noted finally that at very high pH (> 11), the sol precipitates, as can be seen in the phase diagram of Figure 2 indicating possible hydrolysis of Ce-O-P bonds in the aggressive alkaline environment as the ceria surface changes character from zwitterionic to anionic [START_REF] Nabavi | Surface Chemistry of Nanometric Ceria Particles in Aqueous Dispersions[END_REF] . The adsorption results give evidence of the specificity of a phosphonated oligomer to create a robust metal oxide hybrid sol.

Benefits: UV absorption and Redispersible Nanopowders

The data and models offer a clear insight into the formulation process and the nanostructure of the modified hybrid nanoparticles, and translate into two valuable bulk properties of the new sol: UV absorption and the creation of redispersible nanopowders by freeze drying the nanosol.

One of the well known characteristic properties of cerium oxide particles is strong UV absorbance with minimal absorbance in the visible regime. However, given the large surface area once covered with an organic layer and the possibility to form metal-ligand charge transfer complexes this unique property may be adversely affected. We undertook UV-visible measurements in order to rule out this hypothesis. As seen in Figure 8, both bare and coated nanoceria have the same absorbance variation through the entire UVvisible region. This result is valuable because the robustness of the PPEG-Ceria nanoparticle sol that has been investigated in this work has direct impact for applications where anti-UV protection is needed. Another test for the robustness of the surface modification and the ability to prepare stable concentrated solutions was evaluated by drying the hybrid nanosol. A second important matter is the possibility to handle powders rather than solutions to improve the shelf life expectancy or simply to prepare solutions in a different solvent. For sake of comparison, the diffusion coefficients have been measured at a concentration of 0.1%. They have not been extrapolated to zero concentration leading to slightly smaller DH than in Table 1.

To further investigate this idea, we freeze-dried (Freezone model, Labconco, Kansas City, MO) bare and hybrid nanoceria solutions for 48 hours to remove any trace of the water. The phosphonated-PEG ceria solution was dialyzed (5K membrane) against DI water prior to freeze-drying, to remove any free PPEG oligomers present in the bulk.

Aliquots of the freeze dried powders so prepared when added to water showed a remarkable result that the hybrid nanosols appeared to readily redisperse to give clear solutions when compared to bare nanoparticles which evidenced a slightly milky appearance. Both powders were re-dispersed in aqueous solutions at pH = 1.5 for bare particles and DI water for stabilized particles and stirred overnight. Figure 9 shows the correlation functions measured with dynamic light scattering (at 90º) of the original and modified sol before and after re-dispersion. The distributions P(D) of the hydration diameters D H are also shown (inset Figure 9). After re-dispersion, the correlation function of the bare CeO 2 solution is clearly shifted toward longer times. As a result, the mean D H is shifted toward larger values together with a clear broadening of the distribution (D H = 26.8 ± 11.4 nm) compared to the small and slightly polydisperse particles in the original solution (D H = 8.5± 0.8 nm). Freeze drying the reactive bare CeO 2 particles would likely have led to some condensation between Ce-OH groups present on their surfaces giving rise to larger aggregates. In the case of passivated PPEG-CeO 2 particles, the freeze-drying process did not significantly change the original distribution indicating no change in the surface complexation of PPEG during the drying process. Both correlation functions are almost superimposed giving a very similar distribution of D H (D H = 12 ± 0.1.4 and D H = 12.7 ± 1.5). This redispersibility is only possible for compositions where X < X P . This hybrid metal oxide nanopowder has ability to overcome strong van der Waals attractions by hydration/solvation of the PPEG corona yielding singlet nanocolloids while the formation of the barrier coating at the particle interface protects against interparticle chemical condensation. This has clear implications for the utility of nanoceria providing clear cost and processing advantages in allowing shipping of nanopowders rather than dilute solutions and in the preparation of stable concentrated solutions for bulk applications.

The sol stability and redispersability were further extended through the choice of the complexing oligomer backbone. The hybrid metal oxide powder is also re-dispersible in certain organic solvents like ethanol, acetone or chloroform (not shown here) which is not the case for bare particles. These results may easily be extended to other nanoparticle systems. The complexation of nanoceria with end-functional PPEG to create true redispersible nanopowders in aqueous or certain organic solvents provides the framework for designing a truly versatile hybrid metal oxide sol with clear utility in a range of applications.

Concluding Remarks

The generation of robust and versatile phosphonated-PEG cerium oxide nanoparticles is highlighted through a detailed series of complementary experiments. From quantitative light and neutron scattering data we are able to obtain the main features of the CeO 2 -PPEG hybrid core-shell nanostructure and to model the adsorption mechanism (NST model). The microstructure is described in terms of molecular weight M w , hydrodynamic diameter D H and number of adsorbed oligomers per particle N ads . The characteristic evolution of the Raleigh ratio as a function of the mixing ratio is successfully described in term of non specific adsorption of oligomers onto nanoparticles. The NST model evidenced the presence of a critical ratio X P at which the particles are fully covered with an average number of chains N ads = 270. Beyond that threshold, the organic coating progressively diminishes, increasing the sensitiveness of the sol toward destabilization. In addition, the measurement of the free energy of adsorption G ads (~ -16 kT) has shown that electrostatic interaction is likely the main driving force the complexation which eventually increased the affinity of the phosphonate anchoring groups toward the CeO 2 surface.

The main specificities of the original sol are not altered during the functionalization phase leading to nanometer size cerium oxide particles covered with a well anchored layer of PEG chains. This solvating brush-like layer is sufficient to solubilize the particles and greatly expands the stability range of the original sol up to pH = 9. These results highlight the specificity of the terminus phosphonate group to create a robust metal oxide hybrid sol. Furthermore, tailoring the oligomer architecture with both a non interacting PEG tail and a mono-functional phosphonate head prevented colloidal bridging emphasizing the advantage of the current functionalization route over other ones using multisticker binding. Some direct benefits o f such hybrid sols are finally put forward. A fter functionalization, the y maintain a strong UV absorption capabilit y, a ver y valuable characteristic for applications where anti-UV protection is needed. Moreover, a fter freezedrying the h ybrid particle solution, the powder was able to re-disperse in dif ferent solvents without losing any o f its features conferring a great versatilit y and ease o f use of the CeO2-PPEG nanoparticles in dr y or wet conditions. Beside their bulk properties described in this paper, the hybrid nanoparticles present some very interesting interfacial properties that will be discussed in a forthcoming publication.

Materials and Methods

Oligomers and nanoparticles

The phosphonated poly(oxyalkene) investigated in this work is a proprietary oligomer (poly(oxy-1 2 ethanediyl) alpha-(3-phosphonopropyl) omega hydroxyl or 3phosphonopropyl alcohol ethoxylate-10 EO), produced by Rhodia Inc. and named hereafter phosphonated-PEG or PPEG (Figure 10). Titration curves with NaOH (1M) show the presence of two distinct pKas for this weak diacid at pKa 1 = 2.7 and pKa 2 = 7.8. The inorganic mineral oxide nanoparticle system investigated is a dispersion of cerium oxide nanocrystals, or nanoceria sol at pH 1.5. The synthetic procedure involves thermohydrolysis of an acidic solution of cerium-IV nitrate salt (Ce 4+ (NO 3 -) 4 ) at high temperature (70° C), that results in the homogeneous precipitation of a cerium oxide nanoparticle pulp (CeO 2 (HNO 3 ) 0.5 (H 2 O) 4 ) [START_REF] Chane-Ching | Preparing a dispersible, sol-forming cerium (IV) composition[END_REF] . The size of the particles was controlled by addition of hydroxide ions during the thermohydrolysis. High resolution transmission electron microscopy has shown that the nanoceria (bulk mass density = 7.1 g cm -3) consists of isotropic agglomerates of 2 -5 crystallites with typical size 2 nm and faceted morphologies. Wide-angle x-ray scattering has confirmed the crystalline fluorite structure of the nanocrystallites (see supplementary materials) [START_REF] Chen | Synthesis of nanocrystalline cerium oxide particles by the precipitation method[END_REF] . Image analysis performed on cryo-TEM images of single nanoparticles have shown a polydispersity index s = 0.15 ± 0.03 for the particles (s is defined as the ratio between the standard deviation and the average diameter) [START_REF] Berret | Stable oxide nanoparticle clusters obtained by complexation[END_REF] .

As synthesized, the cerium oxide nanosols are stabilized by combination of long range electrostatic forces and short range hydration interactions (including strongly bound or condensed nitrate ions). At such pH, the ionic strength arises from the residual nitrate counter-ions present in the solution and acidic protons. This ionic strength around 0.045 M gives a Debye screening length K D -1 ~ 1.5 nm. An increase of the pH or ionic strength (> 0.45 M) results in a reversible aggregation of the particles, and destabilization of the sols leading eventually to a macroscopic phase separation. Though the change in pH apparently reduces the effective surface charge of the particles, it also reduces the range of the electrostatic repulsion.

For this system, the destabilization of the sols occurs well below the point of zero charge of the ceria particles, pzc = 7.9 [START_REF] Nabavi | Surface Chemistry of Nanometric Ceria Particles in Aqueous Dispersions[END_REF] . The bare nanoceria particles have a zeta potential = + 30 mV and an estimated structural charge of Q CeO 2 = + 300 e. The charges are compensated by nitrate anions in the Stern and diffuse layers surrounding each particle.

Hybrid nanoparticles formulation

The pH of the PPEG solution is adjusted with reagentgrade nitric acid (HNO 3

c CeO 2 = cX 1+ X , c PPEG = c 1+ X (7)
Ammonium hydroxide (NH 4 OH) is used to adjust the pH of CeO 2 -PPEG dispersions in the range of 1.5 to 10. where R std and n Tol are the standard Rayleigh ratio and refractive index of toluene, I S and I Tol the intensities measured for the solvent and for the toluene in the same scattering configuration. Light scattering is used to determine the apparent molecular weight M w,app (the gyration radius R G was determined by neutron scattering) of colloids investigated here. In the regime of weak colloidal interactions, the Rayleigh ratio R(c) is found to follow concentration dependence:

Static and dynamic light scattering

Kc R (q,c) = 1 M w,app 1+ q 2 R g 2 3 + 2A 2 c ( 9
)
where K = 4 2 n 2 dn dc ( )

R (c) = K M w,app c (10)
This expression emphasizes the fact that for small sizes (< /20), the Rayleigh ratio does not depend on the wave-vector in the window 6 10 -4 -4 10 -3 Å -1 , characteristic for light scattering.

To accurately determine the size of the colloidal species, dynamic light scattering (DLS) was performed with concentration ranging from c = 0.01 wt. % -1 wt. %. In this range, the diffusion coefficient varies according to: D(c) = D 0 (1 + D 2 c), where D 0 is the selfdiffusion coefficient and D 2 is a virial coefficient of the series expansion. The sign of the virial coefficient, the type of interactions between the aggregates, either repulsive or attractive can be deduced. Here D 2 is positive (+ 10 -7 cm 2 •s -2 ), indicating a repulsive interparticle interaction. From the value of D(c) extrapolated at c = 0 (noted D 0 ), the hydrodynamic radius of the colloids is calculated according to the Stokes-Einstein relation, D H = k B T 3 S D 0 , where k B is the Boltzmann constant, T the temperature (T = 298 K) and S ( S = 0.89 10 -3 Pa.s) the solvent viscosity. The autocorrelation functions of the scattered light are interpreted using both the method of cumulants and the CONTIN fitting procedure provided by the instrument software.

UV-visible absorption spectrometry

A UV-visible spectrometer (SmartSpecPlus from BioRad) is used to measure the absorbance of bare and coated nanoceria dispersion in water. The absorbance is related to the nanoparticle concentration by the Beer-Lambert expression:

Abs = l c NP = logT ( 11
)
where l ( = 1 cm), is the optical length of the cell, c NP the nanoparticle concentration, the molar absorption coefficient (cm -1 μM -1 ), and T the transmission. In the following, the nanoparticle concentration will be expressed in wt. % or in μM of cerium oxide.

Optical reflectometry

The adsorption isotherms c ( ) of PPEG oligomers onto a cerium oxide model surface is monitored using optical reflectometry [START_REF] Fleer | Polymers at Interfaces[END_REF][START_REF] Dijt | Reflectometry as a tool for adsorption studies[END_REF] . Fixed angle reflectometry measures the reflectance at the Brewster angle on the flat substrate. A linearly polarized light beam is reflected by the surface and subsequently split into a parallel and a perpendicular component using a polarizing beam splitter. As material adsorbed at the substrate-solution interface, the intensity ratio S between the parallel and perpendicular components of the reflected light is varied. The change in S is related to the adsorbed amount through: t ( ) = 1 A s S t ( ) S 0 S 0 (12) where S 0 is the signal from the bare surface prior to adsorption.

c ( ) is constructed by taking the plateau value Plateau of a given t ( ) curve at different concentration c (c = 0.001 to 0.1 wt. %). A complete description of the stagnation point adsorption reflectometry device can be found in several references [START_REF] Dijt | Reflectometry as a tool for adsorption studies[END_REF][START_REF] Gage | Adsorption of Nanocolloidal SiO2 Particles on PEO Brushes[END_REF][43][START_REF] Iruthayaraj | Adsorption of Low Charge Density Polyelectrolyte Containing Poly(ethylene oxide) Side Chains on Silica: Effects of Ionic Strength and pH[END_REF][START_REF] Naderi | Adsorption Properties of Polyelectrolyte-Surfactant Complexes on Hydrophobic Surfaces Studied by QCM-D[END_REF][START_REF] Koutsopoulos | Adsorption of Trypsin on Hydrophilic and Hydrophobic Surfaces[END_REF] .

CeO 2 model surfaces. A thin layer of polystyrene ~ 100 nm is deposited on top of an HMDS (hexamethyldisilizane) functionalized silicon wafer by spin-coating a toluene solution (25 g/l) at 5000 rpm [START_REF] Qi | Stability and Adsorption Properties of Electrostatic Complexes: Design of Hybrid Nanostructures for Coating Applications[END_REF] . The surface is then dipped in a nanoceria solution (0.1 wt. %) containing 0.1 M NaNO 3 overnight. This results in the formation of a well packed nanoceria monolayer on top of the PS surface as seen by AFM imaging (not shown here). Bare particle adsorption on plastic surfaces will be described in a forthcoming publication. It should be noted that the receding water contact angle r on such model nanoceria surface was below 15º in contrast with a r = 85 º for the original PS surface.

Small-Angle Neutron Scattering

Small-Angle Neutron Scattering (SANS) spectra are measured on PAXY spectrometer (Laboratoire Leon Brillouin-LLB, Saclay, France). Two configurations are used (D = 1.35 and 6.70 m, both at = 6 Å), covering a q-range from 5 10 3 Å 1 to 0.2 Å 1 . Exposure times of 2 h and 1 h for the small and large angle configuration respectively are necessary to obtain a good statistics. Raw data are radially averaged. Standard corrections for sample volume, neutron beam transmission, empty cell signal subtraction, and detector efficiency have been applied to get the scattered intensities in absolute scale using standard LLB software.

Figure 2 .

 2 Figure 2. Stability phase diagram of the PPEG-CeO2 nanoparticles: hydrodynamic radius DH vs. X and pH. The grey region represents visible phase separation. Contours and colors (red to blue) indicate DH variation from 10 nm to 40 nm.

Figure 3 .

 3 Figure 3. Rayleigh Ratios of CeO 2 and CeO 2 -PPEG solutions versus the CeO 2 weight fraction.

Figure 4 .

 4 Figure 4. Mutual diffusion coefficient versus CeO2 weight fraction in CeO2 and CeO2-PPEG dispersions. The extrapolation of the straight lines at c = 0 gives D0.

2 =Figure 5 .

 25 Figure 5. Schematic representation for the nonstoichiometric adsorption mechanism of phosphonated-

  H 2 O/D 2 O volume ratios it is possible to measure the average scattering length density ( ~) of the bare and coated particles. The plot of I(q 0) / c as a function of the proportion of H 2 O in the (H 2 O+D 2 O) mixed solution gives a straight line (not shown here). The ratios that cancel out the intensity correspond to ~.

Figure 7 .

 7 Figure 7. Adsorption isotherms

Figure 8 .

 8 Figure 8. UV-visible spectra of bare and coated nanoceria.

Figure 9 .

 9 Figure 9. Re-dispersion in aqueous solutions of CeO2 and PPEG-CeO2 powders obtained by freeze-drying both stock solutions. a) Correlation functions of the original sol before and after freeze-drying and re-dispersion. The inset shows the derived hydrodynamic radii DH distribution. a) id. hybrid sol.For sake of comparison, the diffusion coefficients have been measured at a concentration of 0.1%. They have not been extrapolated to zero concentration leading to slightly smaller DH than in Table1.

Figure 10 :

 10 Figure 10 : (a) Simplified sketch of the surface chemistry of cerium oxide nanoparticles: cationic protonated hydroxyl groups versus neutral hydroxyl groups. (b) Tailored phosphonated-PPEG chemical architecture for the adsorption onto nanoparticles: reactive phosphonate head + neutral PEG tail (c) Phosphonated-PEG corona around the particle: steric stabilization + PEG functionality.

  measurements are performed on a BI-9000AT Brookhaven spectrometer (incident wavelength 488 nm) and on a Zetasizer Nano ZS from Malvern. Rayleigh ratios R and hydrodynamic diameters are measured as a function of the concentration c. R is obtained from the scattered intensity I(c): R (q,c) = R std I

Table 1 :

 1 Molecular

	Specimen	dn/dc (cm 3 .g -1 )	K (632.8nm) (cm 2 .g -2 )	M w (g.mol -1 )	D H (nm)	R g (nm)
	PPEG	0.102	7.58 10 -8	624	-	-
	CeO 2	0.192	2.69 10 -7	269000	9.2	3.2±0.1 a
	CeO 2 -PPEG	0.154	1.72 10 -7	439000	12.3 4.4±0.1 a
			weight (Mw), refractive index
	increment (dn/dc), hydrodynamic diameter (DH), light
	scattering coupling constant K (at 6328 nm),
	characterizing PPEG oligomer, the nanoceria, and the
	PPEG coated nanoceria investigated in the present work. The gyration radii (Rg) were measured by SANS a .

Supporting Information Available:

WAXS and HR-TEM data for bare CeO 2 particles. This material is available free of charge via the Internet at http://pubs.acs.org.


Luc Hogie
email: luc.hogie@cnrs.fr

A Decentralized Web Service Infrastructure for the Interoperability of Applications in Multihop Dynamic Networks

Abstract-The advent of mobile computing has changed the shape of distributed computing. Mobile devices now have enough computational capabilities to take part of distributed computations. Thanks to their wireless networking interfaces, they can have direct interactions with their peers, self-organize in dynamic multi-hop networks, like the Internet of Things (IoT), the Edge, Mobile Ad hoc Networks (MANETs), etc. Such networks exhibit a number of inherent characteristics (mobility, unpredictability, scarce connections, etc) which make it difficult the use of their resources by (distributed) applications. Because existing middleware for distributed computing was most often designed to operate on clouds/grids/clusters, it can hardly be used in these networks. IDAWI belongs to a new class of middleware solutions which rely on decentralization to federate the resources of dynamic multi-hop networks, to the purpose of facilitating the design and implementation of distributed applications in networks of mobile devices. IDAWI goes further by proposing a collective stream-oriented computing model that matches the very nature of such networks. This permitted us to design, implement and describe in this article the architecture of a specific decentralized Web backend exposing as a whole the resources of a dynamic multi-hop network as a set of Web services. In order to profit from the stream-oriented and collective natures of IDAWI 's computation model, these Web services make a clever use of several standard Web technologies they rely on. All the concepts presented in this paper can be found in an Open Source reference implementation.

Index Terms-Decentralised systems, overlay networks, middleware, edge, fog, IoT, Java, distributed computing, idawi Today, thanks to the advances of micro-electronics, devices of very diverse natures are capable to perform computations. The computational landscape, previously consisting of only computers in grids or managed clusters, has been augmented by newcomers. Indeed, mobile devices, such as laptops/tablets/smartphones, which were previously restricted to personal computing applications, now have computational capabilities that enable them to take part of computationintensive distributed applications. In particular, considering the computational power, laptops are now on par with midrange fixed workstations, and tablets and smartphones have no less than half of their power. In this context, smartphones are particularly worth considering. Indeed, billions of them have been sold in years, making them the most common computing devices on the planet today. All these computation-able devices are very heterogeneous in terms of capacity, speed, memory, mobility, as well as in their ability to interact with other devices. Those in cloud/clusters usually communicate with each other via both Infiniband and IP-over-Ethernet. While Infiniband provides computers in clusters with a high-throughput low-latency communication media, IP connects them to the Internet (and distant clusters), via optical fiber connections. Mobile devices all use broadband 4/5G or Wi-Fi to connect to routers, and they can themselves behave as routers by sharing their connection via Wi-Fi. Also, they all use Bluetooth to communicate with the devices of the IoT. Finally, the less known the Wi-Fi ad hoc mode and Bluetooth enables them to have direct P2P connections to each other. This paper considers such networks formed out of the diversity of devices and networking technologies, that serve as the hardware infrastructure of IoT application, Edge computing, etc.

Distributed computing is inherently complex. The advent of mobile devices made it even more complex, for it introduced new constraints and new possibilities. To deal with them, we need to change the way we envisage distributed applications today, by rethinking the middleware that support them. Indeed, existing middleware for distributed computing (like ProActive [START_REF] Caromel | Peer-to-peer for computational grids: mixing clusters and desktop machines[END_REF], MPI, JXTA, JMS (Jakarta Messaging API), ActiveMQ [START_REF] Estrada | Comparing scalability of message queue system: Zeromq vs rabbitmq[END_REF], JGroups [START_REF] Ban | Adding group communication to java in a non-intrusive way using the ensemble toolkit[END_REF], RMI, and Akka) is most often tailored to grids, clouds or clusters. Middleware now needs to take into serious consideration the development of applications for networks involving mobile devices, like Mobile Ad hoc Networks (MANETs), the IoT (Internet of Things), Delay Tolerant Networks (DTNs), the Edge, etc. Existing middleware was not designed to operate on these networks, and it poorly accommodates their intrinsic properties. To solve this problem, more flexible models and elastic tools have been proposed by Researchers, like JavaCà&Là (JCL) [START_REF] De Souza Cimino | A middleware solution for integrating and exploring iot and HPC capabilities[END_REF], GoPrime [START_REF] Caporuscio | Goprime: A fully decentralized middleware for utility-aware service assembly[END_REF], Paral-lelTheater [START_REF] Nigro | Parallel theatre: An actor framework in java for high performance computing[END_REF], ActorEdge [START_REF] Aske | An actor-based framework for edge computing[END_REF], and EmbJXTAChord [START_REF] Battaglia | A novel jxta-based architecture for implementing heterogenous networks of things[END_REF]. But in spite of their numerous good features, in particular their wise use of decentralization as a solution to dynamics/mobility, these Research tools are often designed to solve particular scientific problems, which make them hardly usable out-of-thebox in projects involving practical distributed computations. Adapting one of them would be a cumbersome work that has no guarantee of success, as their source codes, when they are fully available, are always very hard to embrace. To increase difficulty, there is no consensus on the tool that is the most appropriate to start this work from.

Because of this, in order to meet the requirements of our lab applied Research projects in the fields of graph algorithms [START_REF] Trolliet | Interest clustering coefficient: a new metric for directed networks like twitter[END_REF], networking [START_REF] Coudert | Feasibility study on distributed simulations of BGP[END_REF], decentralized protocols [START_REF] Hogie | Mobile ad hoc networks: Modelling, simulation and broadcast-based applications[END_REF] for MANETs and more recently the IoT, etc, we had initiated the design and development of a new middleware called IDAWI [START_REF]IDAWI: a decentralised middleware for achieving the full potential of the iot, the fog, and other difficult computing environments[END_REF] [START_REF]Idawi: a middleware for distributed applications in the IOT, the fog and other multihop dynamic networks[END_REF]. In IDAWI, we have designed, implemented and arranged together many features like a structuring componentoriented application model in the style of SOA, and automatic decentralized deployment system [START_REF]A service-oriented middleware enabling decentralised deployment in mobile multihop networks[END_REF], etc, as well as a flexible stream-oriented collective computational model suited to the requirements of IoT applications, and which is automatically accessible to other applications via its Web interface. This feature empowers IDAWI with deep ability to interoperate with other tools, which is what this article is about.

This article tackles the problem of providing an unified framework exposing the resources of mobile multi-hop net-works (like the IoT) to applications. To solve it, we propose an innovative decentralized Web service infrastructure, relying on the IDAWI framework, to which it exploits many base features such as its decentralized nature, SOA (Service Oriented Architecture) design, and collective computing model. This Web-service infrastructure exposes to exogenous applications the resources of the underlying dynamic multi-hop network as a unified set of Web services, which can be used regardless of where they are called from in the network: the system provides agnosticism to location. Unlike usual Web services which conform to the RPC (Remote Procedure Call) model, the system we propose makes a clever use of existing Web standard technologies to achieve a stream-oriented mode of operation, conforming the execution model of the IDAWI framework.

All ideas and algorithms presented here have been implemented in the Open Source IDAWI middleware.

Section I describes the concepts within IDAWI which are required to comprehend the Web service infrastructure that is then presented in Section II.

I. THE IDAWI MIDDLEWARE

IDAWI is an innovative framework for distributed computing in mobile multi-hop networks, like the IoT, the Edge, MANETs, etc. It synergizes powerful concepts found in existing tools, and many ideas we introduced all along its design and development. As a result, its Open Source Java reference implementation exhibits a number of unique features which constitute effective solutions to problems not solved by existing middleware, like automatic decentralized deployment, operation through firewalls/NATs, and stream-based Web interfacing, hence this article.

The source code of IDAWI is available at https://i3s.univ-cotedazur.fr/ ∼ hogie/idawi/ In a few words, the polished object-oriented design of IDAWI proposes a SOA-like application model atop a fully decentralized component system. It proposes flexible collective message-oriented communication and computation models through an API supporting both reactive (asynchronous) and imperative (synchronous) programming. In order to avoid confusions, instead of introducing a specific taxonomy for our elements of design, we foster the reuse of the concepts familiar to Web-services communities, when possible.

IDAWI proposes a structuring model of distributed applications: meaning that applications must conform to a certain organization defined by a specific Object-Oriented model (OO). This ensures consistency of application source codes, it severely reduces the risk of design errors (as most design work is in the middleware), and it enables the development of highlevel functionalities such as "deployment" which cannot be implemented if applications do not follow a standard pattern. This structuring model is described in the coming sections.

A. An overlay network of components IDAWI defines a component model. Components represent business entities. They form a multi-hop overlay network providing agnosticism of the underlying network topology. In this overlay, two given components are neighbors if they do have direct interactions. Any two components can be neighbors unless the underlying network infrastructure prevents it. This may happen in the presence of NATs/firewalls, or because of inherent constraints of wireless technologies like a limited range, hidden nodes, etc. Two non-neighbors must then rely on intermediary nodes to communication, which then behave as routers. This overlay network of components is then multi-hop by nature. It can be seen as a dynamic mixed multi-graph.

In the usual use case, there will be only one component per device. The role of this component is then to represent its host device: it acts as an agent. But, in order to enable the simulation of large systems, components can deploy other components in their Java Virtual Machine (JVM) or in any other JVM in the same device. Emulation can then be achieved by deploying multiple components to specific devices whose role is to simulate parts of a large system.

B. An application model in the style of SOA Components expose their functionality via services. A service holds data and implements functionality about the specific concern it is about. Services must communicate with other services in other components by sending/receiving messages. To this purpose, services have message queues. Services can communicate with other services in the same component using shared memory.

Services are the standard way to incorporate functionality in an IDAWI system. In this regard, an application consists of a set of services. System-level functionality is also brought by specific built-in services like transport and routing services, which enable components to send messages to their neighbors, and to forward messages not targeted to them. Other built-in system services endow components with abilities to deploy other components, to shut down the entire system, to provision/discover services, to execute map/reduce computations, etc.

Services expose their functionality via operations. Operations constitute the only way to execute code in an IDAWI system. An operation is a routine that can be triggered remotely from any other one in the system. Just like a method, it has an ID. This ID is a literal, whose validity is hence guaranteed by the compiler. While a method is fed by a list of parameters before its starts, an operation takes as input a queue of messages. This queue provides a running operation with new input (messages) on-the-fly. Similarly, while a method returns a value after it has completed, an operation does not: instead it (can) send output messages while it executes.

This example shows the standard form for declaring an operation: A specific kind of operation, called typed operation makes more natural the expression of operations which conform to the RPC model. The parameter list of these operations provides a specification for their input. This makes it possible automatic conversion of input data. For example, in our usecase, parameters coming as a list of strings from an URL can be automatically converted to instances of the types expected by the operation. This is an example of declaring a typed operation: Operations execute in parallel, in a JVM-local pool of threads. The number of threads in this pool can be set by the application. The default is "as many threads as the CPU cores". This rule of thumb provides excellent scalability (in the number of simultaneously running operations).

C. A many-to-many message-based communication model

At the lowest layer, (running) operations communicate by explicitly sending/receiving messages of a bounded size. Sending a message is always asynchronous (non-blocking). It provides no guarantee of reception. A message has a probabilistically unique random 64-bit numerical ID. It carries a content (which can be anything), the route it took so far, the ID of the target queue, and routing-specific information like the recipients components, parameters, etc. When a message arrives at destination, it is delivered into a message queue. Queue are then fetched by running operations, in a synchronous fashion.

A message queue is a thread-safe container of messages exposing the following primitives: size() gets the number of messages currently in the queue; take(timeout) retrieves and removes the first message in the queue, waiting until the timeout expires if the queue was empty; and add(timeout) tries to add a message to the queue, possibly waiting (until the timeout expires) for an available slot. The use of finite timeouts ensures that no deadlocks will occur in the system.

IDAWI comes with a default routing protocol which suits the very nature of mobile multi-hop networks: it defines a destination address as a triplet (C, e, d) where C is a set of component names (if C is not defined, the address is considered to be a broadcast address); e is the expiration date of the message, and d is the maximum number of hops allowed to travel. This routing protocol is intrinsically multicast/broadcast. Unicast comes naturally when one single target component is specified in the set of recipient names. This routing scheme permits components to send messages to any/any set of/all components up to a given distance, and reachable before a given deadline. In order to address node mobility and scarce connectivity, messages are not dropped after they are forwarded. Instead, they are stored until they expire, and they reconsidered for re-emission each time a new neighbor connects.

D. A collective computation model

IDAWI defines an innovative computing model, based atop the communication model described herein before, from which it inherits the collective nature. It defines a special message called the exec message, whose reception triggers the execution of a particular operation. Just like any message, the exec message can be targeted to multiple components. This enables redundancy and parallelism.

When it is executed, an operation is provided with a message queue that it uses to receive input data. This enables operations to receive multiple messages at runtime. As there is no theoretical limit in the number of messages a queue can accept, operations can have unbounded input. An operation can produce output (intermediary results, final result, warnings, exceptions, progress information, etc) at any time by sending messages. Just like their input, operations output is unbounded. In most cases, output will be sent to the sender of the exec message, whose return address is carried by the exec message. But output messages can be sent to any queue in the distributed component-system. To receive output messages, the caller creates a new local queue, called the return queue that aims at storing messages from the running operation(s). This message queue can play the role of a future. Here again, other running operations may obtain the address of the return queue, and send directly messages to it. A running operation may execute another one. This enables composition of services and workflows.

From a programmatic point of view, The exec() primitive makes it easy the remote execution of operations. It takes as input the address of the operation to execute, as well as, optionally, the address of a return queue and initial input data. Just like sending a message (which it does behind the scene), calling exec() is asynchronous, but synchronicity can be achieved by invoking synchronous primitives on the return queue. Calling exec() then immediately returns a proxy to the remotely running operation. This proxy features the address of the (remote) input queue of the running operation, as well as a reference to the aforementioned return queue.

If the operation address describes multiple components, the operation will be executed on all of them. In this case, the caller may receive output messages from these multiple executions. To deal with that, the collect algorithm can be used to demultiplex messages according to where they come from.

E. The collect algorithm

As described in Section I-C, obtaining messages can be done using the synchronous (blocking) take(timeout) and size() primitives of queues, which enable iterating over queues' content. The collect algorithm introduces an higherlevel approach by proposing an asynchronous/reactive/eventdriven API.

Its design is inspired by the iterator API in the HPPC library [START_REF]Hppc: High performance primitive collections for java[END_REF], and by the stream APIs in the Java standard library. More precisely, in order to enable an efficient way to iterate over a container of primitive values, HPPC iterators do not return "boxed" objects, instead they return a single same object, called cursor which carries (as one of its attribute) the primitive value of the current element in the iteration process. Following the elegant style of functional programming, the stream API of Java proposes a way to iterate over the elements in a stream by each time invoking a user code written in the form of a lambda.

The collect algorithm employs these two ideas to what it does: enabling the iteration over message lists. Every time a new message is discovered in a queue, the algorithm calls a business code provided by the developer. Instead of receiving a reference to the current message, this code receives as input a reference to the collector itself (which stands as its "cursor"), whose current state provides the (modifiable) list of messages collected so far as well as technical information on how the algorithm performs (timings). The collector also exposes its parameters, which can be altered on-the-fly. This enables a deep control of the runtime of the collect process.

The parameters of the collect algorithm are the following:

• endDate indicates the deadline at which the algorithm will stop waiting for new messages • timeout the longest tolerated duration when waiting for the next message • stop a boolean value for stopping the collect process before endDate • blackList a set of components whose messages are simply ignored • deliverP rogress set if progress messages should be delivered • deliverError set if error messages should be delivered • deliverEOT set if EOT messages should be delivered In order to illustrate the use of the collect() algorithm, let us consider a few examples. Let q be a queue of messages. The following call to the collect algorithm prints every single messages until the queue expires. 14 q . c o l l e c t ( c -> System . o u t . p r i n t l n ( " new m e s s a g e : " + c . m e s s a g e s . l a s t ( ) ) ) ;

This second example only obtain the three first messages: Third, let us consider a toy example in which each reception of a message alters the timeout parameter by imposing that the next message needs to arrive at least as fast as the current one. This last example obtains data frames from many source components and reconstructs the merge data stream out of them, by paying attention to not duplicate frames. A frame is assumed to have an ID and to carry data. This collect process stops when 1000 frames have been received. v a r r e c e i v e d F r a m e s = new HashSet<Long >() ; q . c o l l e c t ( i n i t i a l D u r a t i o n , i n i t i a l T i m e o u t , c -> { v a r f = ( Frame ) c . m e s s a g e s . l a s t ( ) . c o n t e n t ;

}

The collect algorithm is the essence of IDAWI. It uses many concepts the framework relies on, it gives full access to the platform functionality via a coherent interface. The rest of this article will explain the techniques which have been employed to translate the behavior of the collect algorithm to the world of Web services.

II. A WEB INTERFACE TO THE collect ALGORITHM

In IDAWI, services are automatically exposed to the Web via services conforming to Web standards, using standard Web technologies. This is done by a specific built-in service whose it is the specific concern.

Web services endpoints in other systems usually work in a RPC fashion: their input data are carried by the URL that triggered them, similarly to a function/method that accepts a list of parameters, and they respond (a result or an error) in the form of a JSON document. IDAWI departs from this idea. The aim of its Web interface is to reflect the operation of its native services, and in particular to translate the "stream of messages"-oriented behavior of the collect() algorithm to the Web. Thus, it enables to:

• process streams of data • trigger any operation on any component • feed it on-the-fly • obtain responses as they get delivered • terminate it Each service is identified by a specific URL path. The path specifies the target components, as well as the ID of the operation which is to be invoked on these components. Once the service is running, it can be fed on-the-fly via POST by a stream of data. Responses then are obtained by using an ad hoc protocol called Idawi Web Protocol (IWebP) over Server Side Events (SSE). Because there may be multiple responses coming from multiple components, or because components may not reply as expected, the question of service termination arises. IDAWI solves it by specifying the termination condition in the URL of the Web service.

A. An IDAWI service

The Web functionality in IDAWI is provided by a native service, available by default in each component. When a component activates this service, it becomes a gateway: the component will be able to receive HTTP requests from Web clients and translate them to IDAWI's world. To do that this service executes an HTTP server on the device which hosts the component. Executing the Web service entails the execution of an operation into the component system: every operation in the system can be invoked from the Web. The most crucial notion here is that the request is received by the HTTP service of a specific component, but the component that will do the computation can be any component in the system, according to what the routing section of the URL specifies. A gateway component is in reality just an entry point to the entire distributed system. It plays the role of a bidirectional translator from/to the Web. This concept is illustrated by Fig. 3.

Except if it is described as one that will do the computation, the gateway component does not play any other role than translating and relaying input/output data. Whichever gateway is used, the result reported to the Web client will be the same. The only difference will be the way the input/output is routed within the component system.

There is no fundamental need that all components expose the Web service/behave as a gateway. Only one is enough if this meets the need of the software ecosystem the user application lives in. This said, more gateways are present, more flexibility and redundancy will be exhibited.

B. Passing data

The HTTP standard defines two ways to pass data to Web services: either encoded in the URL, or provided as POST data. The latter allows running operations to be fed at runtime with new input.

1) Structure of the URL: The minimal URL for executing an operation that has no parameter, on one single component, follows this pattern: http://host_name/api/r/s/o Where:

• r is the routing information (targets, parameters, etc) • s the ID of the recipient service on this component • o the ID of the recipient operation on this service In the following, the prefix http://host name/api/ will be purposely omitted in all URLs.

The second path element of the URL describes the input and parameters from the routing protocol that will be used to deliver the message to components. The syntax of this path element depends on the routing algorithm used by the gateway component. Different routing protocols would use a different language to describe the delivery process. When using blind broadcasting, the path element must be left empty as blind broadcast has no parameters nor specific destination. For example, when using the default routing protocol which comes as a built-in service in IDAWI, the following URL requests the execution of the o operation on service s of both components c 1 and c 2 .

c1,c2/s

Currently, targeting multiple components can only be achieved by mentioning their names in the URL. Specifying no name at all implies the parallel execution of the operation on all reachable components (broadcast). The maximum distance from the source, as well as the deadline for message lifetime are not yet supported by the parser. We are currently working on defining a better Domain Specific Language (DSL) for the expression of routing rules within a single URL path. In parallel, we are studying the relevance of using base64 URLs or of triggering an operation by sending POST data. In the latter situation, the initial URL-based HTTP call would do nothing but waiting for execution information from POST).

The third path element provides the name of the target service. Here the fully qualified name of the service class is expected. The fourth path element gives the name of target operation is that service. The simple name of the operation inner class is the service class is expected.

Subsequent path elements constitute the parameters of the service as a list of strings. They apply when the target operation is typed (see Section I-B. In the case of a non-typed operation, the exec message carries no initial input. Input is then transferred to the running service via new messages, out of the POST data the gateway receives from the Web client. A call to a typed service then follows this pattern: c/s/o/p1/p2/.../pN There is a type mismatch between URL path elements, which are strings, and the parameters of a typed operation which are instances of particular classes. To solve this problem, the Web service benefits from the flexibility of the IDAWI middleware: just before executing, operations attempt to convert the parameters they are given to instances of the types they expect (as defined by their signature). In the specific case of the Web system, parameters always are strings, so recipient operations need to be able to convert from strings to objects. All primitive types and many common classes are supported by default, and application can provide specific converters from string to the specific types their operations need.

Finally, the query section of the URL is used to pass information to the Web server-not to the running service. In particular, it is used to set the initial values for the:

• duration for the whole collect process • the timeout for receiving the next message For example: c/s/o/\?duration=10\?timeout=1

2) Using POST data: IDAWI's operations have native support for streams, as they accept an unlimited number of input messages. In order to reflect this feature into the Web API, the web service accepts data via POST. POST data arrives in the form of a binary input stream. As the content of IDAWI messages must be bounded in size, this stream of binary is cut into chunks of a fixed size. The Web service then embeds each of these chunks into a message that is sent to the running operation.

C. Obtaining values

HTTP responses do not have to specify the size of the body they carry. More technically, the HTTP standard does not impose the server to specify a Content-Length. In theory, this feature enables the client to receive a stream of data, until the connection gets closed, or the client, which has agreed upon an application-specific protocol, receives End Of Transmission (EOT). Unfortunately, most Web clients have been designed to receive a single bounded response from Web services, and available APIs are also designe that way. It turns out that the most client-side Web APIs make it impossible to deal with multiple responses from the service. This is surprising as their essentially reactive (event-driven) nature is particularly well suited to dealing with multiple responses. Moreover, they propose no way to deal with the HTTP response in a synchronous fashion.

This technical restriction has been a serious problem as IDAWI operations are likely to multiple output messages. An obvious solution to this problem is to use Websockets. But these have a number of disadvantages. First they require their specific support by the Web server, but as far as our knowledge, there is no Web server for Java that is both lightweight and Websocket-compliant, so we could hardly have it working within IDAWI. Second Websockets requires the Web client to open a second connection to the Web server. In our case where the networking infrastructure is likely to have firewalls and NATs, opening an additional Web connection could be impossible.

Another solution is to use a less known Web API called Server Side Events (SSE). SSE enables servers to send events back to clients, which are then notified in a reactive way. The MIME type associated to such events is text/event-stream, which indicates that events are made of text. More specifically, an SSE event is a sequence of lines. In order to enable the transfer of binary data back to the client, we define a IDAWI SSE Event (ISSE) as an SSE event consisting of 2 elements:

• a JSON header specifying:

the semantics (a description) the syntax of the body a boolean indicating if the body is transcoded in base64

• a body, encoding the content of the message in a given syntax An example event containing a result from the running operation. d a t a : { s e m a n t i c s : " r e s u l t " , s y n t a x : " J a c k s o n JSON"} d a t a : { v a l u e : " 4 2 " , n b i t e r a t i o n s : "100"} An example event indicating that the running operation has almost completed. d a t a : { s e m a n t i c s : " p r o g r e s s r a t i o " , s y n t a x : " t e x t "} d a t a : 0 . 9

This last example illustrates the ability to provide binary data in a space-efficient format. A binary image is sent back to d a t a : { s e m a n t i c s : " r e s u l t " , s y n t a x : " JPEG " , b a s e 6 4 =" t r u e "} d a t a : GDTGEIERISEVDSVZGIERGIERIGER110CFKSEF995KJSDFKER d a t a : MMSD65ZDFZEDFGGDFKZEIZE675Z49ZFDSAZJMMSD65ZDFZED d a t a : 110CFKSEF995KJSDFKER9ZFDSAZJMMSD65ZDFZEDFGGDFKZE 1) Output format: The exec messages generated by the gateway component (on request from the Web client) carry the address of the return queue on this gateway component. The enables output messages of the running operation to be transferred back to the gateway. Upon the reception of such output message, the gateway component will transcode it to a text or binary output format and pass it to the Web client via an ISSE. In order to provide the Web client with maximum information, it is the message itself that will be passed, not just its content.

IDAWI has an object-oriented design. In this regard, a message is an object. But Java objects have no existence in the Web. In order to convert messages to something that can be manipulated by the Web client, IDAWI relies on serialization. Wikipedia gives a very accurate definition of it: "serialization [...] is the process of translating a data structure or object state into a format that can be stored [...] or transmitted [...] and reconstructed later (possibly in a different computer environment)". IDAWI has built-in support to serialize its internal messages to the following text formats: Google JSON (GSON), Jackson JSON, JSONEx JSON, Jackson XML, TOML, YAML. It also supports the following binary formats: native Java serialization format (SER) and FST. The output format can be set by the client by specifying the name of the serializer in the query string of the URL. Unfortunately, the binary formats can hardly be used out of the Java world and none of the serialization tools we tried enable a seamless automatic serialization of any Java object. To solve this problem, we designed and implemented a specific Java→JSON serializer called Jaseto [START_REF]The jaseto json serializer for java objects[END_REF]. Jaseto focuses on a specific-yet classic-application of serializers: exposing object models to Web applications written in JavaScript, using JSON encoding. To this particular purpose, Jaseto features programmatic customization API (many other tools annotationbased descriptive approaches), which enables highly flexible and deeper customization abilities; and it supports cyclic aggregation, making it possible to serialize graphs. Jaseto does not consider deserialization as it does not aim a generating Java objects out of JSON texts.

2) Stopping a running Web service: In the RPC model, a procedure is known to have completed once it has returned a value. This assumption cannot be used in IDAWI as:

• an execution request may trigger the same service on multiple components, in parallel • any single execution on one component may return multiple values, thus the gateway may receive multiple messages from multiple components • it is possible that some (maybe all) output messages never reach the gateway component Because of this, the gateway has no way to determine if a request it had triggered has completed or not. To solve this problem, the termination condition of the collect algorithm can be specified in the URL. It can hence be defined by the Web client. Unfortunately, the textual expression of a termination condition into a URL is severely constrained, and defining a programmatic control of when the collect algorithm should stop collection, IDAWI proposes a number of predefined termination conditions, such as:

• wait an EOT message from all the component mentioned in the routing section • stop when the first result is received • stop when the first message is received • stop when the first error is received • never stop In any case, the collect algorithm will run until its initial deadline has been reached or the timeout on message reception has not been satisfied.

III. CONCLUSION

Dynamic multi-hop networks, like Edge networks and the IoT, exhibit a number of inherent characteristics (like mobility, unpredictability, scarce connections, etc) which make it difficult the use of the resources by distributed applications. We presented in this article an advanced Web service infrastructure to solves this problem. It relies on the architecture of the IDAWI middleware whose key ideas is to use decentralization to federate resources, to rely on a component-oriented design in the style of SOA, and to run collective "stream of messages"-oriented asynchronous communication and computation model. We managed to translate these features to the Web world by using/extending appropriate Web standard technologies. The ideas presented in this article have all been validated by a reference implementation which has been incorporated into the Open Source code of IDAWI.

Current and future works include the implementation of a graphical demonstrator for the Web service functionality, the definition of a better DSL (Domain Specific Language) for deeper expressiveness of routing rules, the reuse of IWebP on top of POST to provide running operations with new structured input on-the-fly (currently only streams of byte are supported), as well as the deployment of IDAWI-powered applications onto recent Android devices.

Fig. 1 .

 1 Fig.1. An example of a network consisting of mobile nodes communicating with each other through wireless links (dotted lines). They 4G broadband connection enables them to connect to a gateway to the Internet, giving them access to frontals of clouds/grids/clusters whose worker nodes are protected by a firewall.

  p u b l i c c l a s s M y O p e r a t i o n e x t e n d s O p e r a t i o n { @Override p u b l i c v o i d e x e c ( MessageQueue i n p u t ) { r e p l y T o (m, " some o u t p u t " ) ; } }

8 p 12 }

 812 u b l i c c l a s s M y O p e r a t i o n e x t e n d s T y p e d O p e r a t i o n { 9 p u b l i c i n t sum ( i n t a , d o u b l e b ) { 10 r e t u r n a + b ; 11 }

15 q

 15 . c o l l e c t ( c -> { 16 System . o u t . p r i n t l n ( " new m e s s a g e : " + c . m e s s a g e s . l a s t ( ) ) ; 17 c . s t o p = c . m e s s a g e s . s i z e ( ) == 3 ; 18 }) ;

  19 q . c o l l e c t ( c -> { 20 i f ( c . m e s s a g e s . s i z e ( ) > 1 ) { 21 v a r newMsg = c . m e s s a g e s . l a s t ( ) ; 22 v a r p r e v i o u s M s g = c . m e s s a g e s . l a s t ( 1 ) ; 23 c . t i m e o u t = newMsg . r e c e p t i o n D a t e -p r e v i o u s M s g . r e c e p t i o n D a t e ;

  i f ( ! r e c e i v e d F r a m e s . c o n t a i n s ( f . i d ) ) { r e c e i v e d F r a m e s . add ( f . i d ) ; p i p e . w r i t e ( f r a m e . d a t a ) ; } c . s t o p = r e c e i v e d F r a m e s . s i z e ( ) == 1 0 0 0 ; }) ;

Fig. 2 .

 2 Fig.2. Gateway components A, K and G run the Web service. An HTTP client (such as a browser) connected to gateway component A will be able, through A, to execute operations on any component in the system. Here, E and M are targeted. Note that M can be reached (via the overlay network) even though it is protected by a firewall. The client can then query M via HTTP just like if it were directly connected to it. The bold edges indicate the path of the operation execution request initiated by A.

Fig. 3 .

 3 Fig. 3. Components A, B and C form an overlay. A and C run the Web service so they are gateways, translating requests from the Web clients to component B, as specified by the second element of the path of the URL.

ACKNOWLEDGMENT

I am grateful to all of those with whom I have had the pleasure to work since the beginning of this project, and especially to Master's students Saad el din Ahmed and Eliel Wotobe for their work on the JavaScript frontend.