Abderrahim Derouiche

Ghazi Bouaziz

Eric Campo

Damien Brulin

Antoine Piau

Empowering health in aging: innovation in undernutrition detection and prevention through comprenhensive monitoring

Keywords: Undernutrition, Biological Biomarkers, Digital Biomarkers, Elderly, Life Habits Monitoring, Health Data, e-Health

come   L'archive ouverte pluridisciplinaire

INTRODUCTION

People aged 65 and over living alone represent a considerable proportion of the population in the US (13%) and France (19.6%) [START_REF] Perez | Ageing and urban form in Aix-Marseille-Provence metropolis[END_REF]. However, monitoring undernutrition in the elderly has been little studied using technological devices. It is based on medical assessments using weighing, directed or semi-directed questionnaires [START_REF] Reber | Nutritional risk screening and assessment[END_REF]. Undernutrition is a pathological condition resulting from insufficient nutritional intake in relation to the body's energy expenditure. It is a major public health issue in the management of older people with chronic pathologies (up to 50% of elderly people) [START_REF] Volkert | Management of malnutrition in older patients -Current approaches, evidence and open questions[END_REF]. Indeed, it is associated with increased morbidity and mortality, risk of loss of autonomy, falls, infections and emergency hospitalizations [START_REF] Norman | Malnutrition in older adults-Recent advances and remaining challenges[END_REF]. In France, 400 000 elderly living at home suffer from undernutrition, so it is important to better understand the behaviors related to undernutrition. The use of digital biomarkers for the early detection of functional or cognitive decline is receiving increasing attention [START_REF] Piau | When will my patient fall? Sensor-based in-home walking speed identifies future falls in older adults[END_REF]. For example, sensor-derived mobility indicators have been studied to predict an upcoming fall in older people [START_REF] Schwenk | Sensor-derived physical activity parameters can predict future falls in people with dementia[END_REF]. Currently, the assessment of an individual's eating behavior relies on self-report measures and clinical tests. Although this methodology is necessary as a first step, it can be improved as it is limited by recall bias and by brief and mostly episodic assessments. Continuous real-time monitoring by a low-cost ambient sensors network can provide a more sensitive, objective and environmentally valid method to:

-Detect sub-clinical alteration in nutrition during chronic disease, prior to the onset of symptoms (allowing for targeted, personalized and more effective medicine, rather than one-size-fits-all medicine).

-Make a less biased assessment of treatment efficacy and side effects in a clinical trial after treatment modification.

-Remotely monitor the dynamics of recovery after hospitalization or surgery.

Figure 1. CART France [START_REF] Derouiche | Home Assessment of Physical and Physiological Parameters: Collaborative Research on Aging Using Technology[END_REF] As shown in Figure 1, the aim of the CART project, in which this work is involved, is to meet the constraints of digital analysis with a complementary clinical study. Clinical analysis includes a self-assessment examination to identify biological biomarkers, followed by their correlation with digital biomarkers by a clinical expert. In our study, we have implemented a part of this system in the homes of several elderly people living alone. This article presents a non-exhaustive literature review of related works in section 2. Section 3 aims to describe our system architecture. Section 4 presents some results obtained with an elderly person monitored for 3 months at home, followed by a discussion. Finally, the paper ends with a conclusion and some perspectives.

RELATED WORKS

Previous studies have shown distinct links between the physiological state and the biological state of a person, providing a strong clue to the detection of undernutrition [START_REF] Ferguson | Guide and position of the international society of nutrigenetics/nutrigenomics on personalised nutrition: Part 1 -Fields of precision nutrition[END_REF]. [START_REF] Busnel | Screening for undernutrition among older adults receiving home care: An estimation of the diagnostic accuracy of indicators available in the Resident Assessment Instrument-Home Care adapted for Switzerland[END_REF] proposed to estimate the diagnosis accuracy of the nutritional status score, body mass index and weight loss documented from the Resident Assessment Instrument -Home Care (RAI-HC). A sample of 267 home care recipients aged 65 years and older was assessed using the RAI-HC and the Mini Nutritional Assessment Short Form (MNA-SF). The result reveals that the diagnostic accuracy of the RAI-HC indicators was not sufficient for optimal screening regarding undernutrition in elderly home care recipients. Additional assessment with the MNA-SF is recommended to optimize early detection of individuals at risk for undernutrition. İlhan and colleagues (2018) proposed to investigate the reliability and validity of the Turkish version of the Simplified Nutritional Appetite Questionnaire (SNAQ) in geriatric outpatients. Cohen's kappa analysis showed fair to moderate agreement between the SNAQ and the MNA (κ=0.355, p<0.001). Female gender, illiteracy, functional dependence in activities of daily living was significantly associated with poor appetite. The SNAQ score was weakly correlated with the MNA-SF and MNA-LF scores (r=0.392 and r=0.380, respectively, p<0.0001 for both). [START_REF] Gambi | Food intake actions detection: An improved algorithm toward real-time analysis[END_REF] proposed an application for monitoring an individual's eating habits during a meal, with the eating actions being assessed through in-depth image analysis. To enhance algorithmic performance and efficiency, the author's concept involves automating the process to identify various food-related actions.

Hilde Lohne-Seiler and others (2014) introduced the ActiGraph GT1M accelerometer, which was used to measure Physical Activity (PA) over seven consecutive days. Additionally, a questionnaire was used to document self-reported health status. PA levels among Norwegian seniors varied with age. In general, the elderly population spends 66% of their time in a sedentary state, with only 3% engaging in moderate-to-vigorous physical activity (MVPA). Twenty-one percent of participants met the current Norwegian PA recommendations. Furthermore, PA levels were correlated with self-reported health status.

Minh Pham and colleagues (2016) introduced a new concept involving the use of a smart home. This framework consists of a 16x22-foot experimental area equipped with environmental sensors, home service robots, a human subject equipped with wearable sensors and mobile devices such as smartphones. All these components are interconnected by a home gateway. The model was seamlessly integrated into this gateway to categorize daily activities (such as sitting, standing, lying down, walking, going up and down stairs, jogging and running). The resulting labels were transmitted continuously and in real time to the cloud for monitoring purposes. Meanwhile, raw data, time-stamped acceleration, and angular rates, were uploaded to the cloud once every 24 hours, where they were stored for later analysis. The authors wanted to demonstrate the potential of their system by creating a hydration monitoring application. After extensive testing, the system achieved a remarkable 91.5% accuracy rate in classifying drinking activities using k-fold cross-validation. But the problem lies in the limited amount of physiological data available. [START_REF] Hoca | Association of Mini Nutritional Assessment with anthropometric measurements and muscle strength in elderly people: A neglected risk group[END_REF] assessed Body Mass Index (BMI) and muscle strength using a hand dynamometer. Elderly people with a BMI >= 30 kg/m 2 had significantly lower grip strength for the right and left hand than those with a BMI between 18.5 and 24.9 kg/m 2 and between 25 and 29.9 kg/m 2 . However, those with a BMI >= 30 kg/m 2 had significantly higher values for waist/hip ratio, waist/height ratio, body fat percentage, waist circumference, hip circumference, neck circumference, neck circumference and mid-upper arm circumference compared to those with a BMI of 18.5-24.9 kg/m 2 and 25-29.9 kg/m 2 . In addition, the authors observed a positive and statistically significant correlation between right-and left-hand grip strength and MNA score in women.

One of the main findings of previous studies is that weight loss is a fundamental marker. Other studies also suggest that albumin levels in laboratory tests may be related to undernutrition. Finally, the identification of biomarkers [START_REF] Panagoulias | Biomarker-based deep learning for personalized nutrition[END_REF] is also proving to be a tool for accurately prognosticating many diseases, classifying them by type and stage, and personalizing medical care.

Weight loss can be monitored by regular weighing. However, the person needs to be able to weigh themselves periodically and report their weight to attending physician. Another approach is to monitor mobility parameters while estimating energy expenditure based on the individual's self-reported daily routines and meal-related activities in the kitchen [START_REF] Mcclung | Dietary intake and physical activity assessment: current tools, techniques, and technologies for use in adult populations[END_REF].

PROPOSED SYSTEM

The proposed research is part of the regional Inspire program [START_REF] De Souto Barreto | The INSPIRE Research Initiative: A Program for GeroScience and Healthy Aging Research going from Animal Models to Humans and the Healthcare System[END_REF]. Inspire is a research platform dedicated to gerontological research on biological and healthy ageing to identify biomarkers, determine biological age and work on all marks of ageing. Inspire involves one thousand participants. The two main projects are ICOPE and CART.

ICOPE Mobile Application

As shown in Figure 2, Integrated Care for Older People (ICOPE) [START_REF] Tavassoli | Framework Implementation of the INSPIRE ICOPE-CARE program in collaboration with the World Health Organization (WHO) in the Occitania region[END_REF] is a mobile application launched by the World Health Organization (WHO) in 2019 for the integrated care of older people. This app measures intrinsic capacity which is the combination of different abilities (physical, mental and psychological) and functional ability. There are six domains of intrinsic capacity that can be measured: cognition, mobility, nutrition, mood, vision and hearing. To maintain the health of older people and to better identify risks before the frailty stage is reached, the application is used as a monitoring tool. It is based on five steps: 1 -Screening for decline in intrinsic capacity, 2 -Specialized assessment, 3 -Creating a personal care plan, 4 -Regular monitoring and 5 -Career and community integration. To monitor undernutrition, patients answered two questions about:

-Weight loss: have you unintentionally lost more than 3 kg over the last three months? -Appetite loss: have you experienced a loss of appetite? By answering these two questions, we can identify markers related to nutrition. We can also establish a link between nutrition and reduced mobility.

To better collect biological markers, an annual in-depth assessment and questionnaires is used.

CART France

Collaborative Aging Research using Technology (CART) Sensor Platform is an initiative developed by Oregon Center for Aging & Technology -ORCATECH to study various physical and physiological parameters [START_REF] Thomas | Home-based assessment of cognition and health measures: The collaborative aging research using technology (CART) initiative and international collaborations[END_REF]. CART France is a living lab project based on one hundred connected homes. ORCATECH's sensor platform proposes new ways to assess people with cognitive impairment. By using a huge amount of information about changes in health status, activity and functioning in a real-world setting, one can improve the ability to assess and provide personalized care. Differences between the French CART project and the U.S. CART project are the number of sensors used in both projects and the fact that the French CART project is focused on the nutritional status of individuals. As shown in Figure 3, the sensors used in CART France are physical and physiological sensors.

The project aims to combine the CART French data with clinical data to evaluate the relevance of numerical data to represent and predict an individual's health status.

The inclusion criteria for participants are as follows:

1-Over 75 years old 2-Living alone at home without assistance 3-Being robust 4-Having a computer and an Internet connection To retrieve the physical parameters, we used two types of passive infrared motion sensors and contact sensors installed at 3 distinct locations in the individual's home:

-the 1 st type of motion sensor is a wall sensor. It is used to detect the presence of the person in the room (one per monitored room).

-the 2 nd type of motion sensor is a line sensor; 4 of them are placed in the hallway to calculate the walking speed when the person moves between two rooms. This parameter has already been studied to predict falls [START_REF] Piau | When will my patient fall? Sensor-based in-home walking speed identifies future falls in older adults[END_REF].

-the 3 rd sensor is a contact sensor installed on the front door to detect the entry and exit of the person from the house.

The sensors are wireless and use ZigBee radio communication. To retrieve physiological parameters, other types of sensors such as an impedance scale and a connected smart watch are added. Detailed descriptions of the hub computer and sensors have been published previously [START_REF] Beattie | The collaborative aging research using technology initiative: An open, sharable, technology-agnostic platform for the research community[END_REF] [START_REF] Thomas | An ecologically valid, longitudinal, and unbiased assessment of treatment efficacy in Alzheimer disease (the EVALUATE-AD Trial): Proof-of-concept study[END_REF].

Finally, the CART France project [START_REF] Derouiche | Home Assessment of Physical and Physiological Parameters: Collaborative Research on Aging Using Technology[END_REF] signifies significant research undertaking with the capacity to greatly impact the advancement of healthy and independent aging. Nevertheless, it is crucial to comprehensively tackle ethical considerations throughout the project, ensuring the safeguarding of participants' rights and welfare.

Ethics and User Acceptance

French data Protection Authority (DPA) and Committee for the Protection of Persons concerned (CPP) approvals have been obtained before the beginning of installation phase. The introduction of passive technologies, including in-room passive sensors and activity-tracking sensors was unanimously approved by all participants. Most technologies operating unobtrusively, such as wall and line sensors and window and door sensors, were well-received in the opinion of residents. Emphasizing the importance of upholding residents' rights and preserving their dignity, participants reached a consensus on the need to protect personal and medical information, ensuring that it remains confidential and is not shared with third parties without their explicit consent.

System Architecture

The French CART project was launched in July 2022. In this section we will present one of the first installations using only presence sensors and a contact sensor to monitor physical activities. The positions of the sensors in the house are shown in Figure 4. -02 Contact sensors. Figure 5 shows the location of sensors in the home of a 77-year-old. Since the installation is done, we have been able to check, using a Raspberry Pi (RPi) control panel that all the sensors are working correctly, as shown in Figure 6. These sensors are connected to a hub (Rpi) via a personal area network (PAN).

The critical step involves establishing the positioning of sensors within the household. This entails providing precise data for each room, as depicted in Figure 7. Utilizing the sensor map not only helps us pinpoint sensor locations but also provides accurate data regarding the specific sensor placement. This, in turn, enables us to ascertain the appropriate type of indicator required for each location.

Data Collection and Analysis

Up until now, we have collected 12 months of data. The objective is to determine the life pattern of this person by correlating these data with the medical data from the weekly questionnaire and the ICOPE application. The collection and analysis of declarative data from the ICOPE mobile application are conducted in parallel to our study by the Hospital. The questionnaire covers mobility, sight, hearing, memory, nutritional status and morale and will be useful for the specialist to merge with digital biomarkers.

The analysis described here is based on a naive approach that does not consider noise factors such as early triggering of sensors, transmission delay, or missing events, but it is sufficient to give a basic idea of their functionality. The data is stored in a database that includes all data collected from all sensors. The obtained dataset is used to identify any walking speed during movement, based on the activation sequences of the four ceiling-mounted motion sensors (1, 2, 3, 4 or 4, 3, 2, 1). These activations were arranged in chronological order based on timestamps, ensuring that all sensors were activated. Figure 8 shows the event logs in the database including homeid, stamp (date&time), areaid (room), itemid (sensors) and event (Wall or sensor line sensors, 0: No Presence | 1: Presence. Contact (door) sensors, 0: Closed | 1: Open.).

. Then, we only keep the information necessary for the analysis (stamp, areaid, events). On the other hand, to make correct and fast calculations, data filtering becomes highly beneficial when working with Unix time to represent time intervals. Employing Unix time as the timestamp format streamlines the task of comparing and filtering events, facilitating smooth operations based on their temporal attributes as shown in Figure 10. Given the inter-individual variability in the physical activity intensity and duration, total energy expenditure can be estimated by multiplying resting energy expenditure by a factor reflecting the intensity of an individual's physical activity. This physical activity level factor (PAL) has been determined for many activities of daily living, including sedentary, occupational and sports activities [START_REF] Westerterp | Physical activity and physical activity induced energy expenditure in humans: Measurement, determinants, and effects[END_REF].

𝑃𝐴𝐿 = 𝑇𝑜𝑡𝑎𝑙𝐸𝑛𝑒𝑟𝑔𝑦𝐸𝑥𝑝𝑒𝑛𝑑𝑖𝑡𝑢𝑟𝑒 𝐵𝑎𝑠𝑒𝑙𝑀𝑒𝑡𝑎𝑏𝑜𝑙𝑖𝑐𝑅𝑎𝑡𝑒

The Basel Metabolism Rate (BMR) is obtained by the following basal metabolic rate formula:

-Men: BMR=88.362+ (13,397×weight in kg) + (4,799×height in cm) - (5,677×age in years) -Women: BMR=447.593+ (9,247×weight in kg) + (3,098×height in cm) - (4,330×age in years)

Total energy expenditure=PAL×BMR

Establishing predefined rules for food-related activities is an essential step in understanding and analyzing the nutritional behaviors of individuals. These rules make it possible to categorize and identify specific activities and behaviors associated with food consumption and preparation. A sequence of events or conditions that corresponds to a food-related activity is established:

• It begins when a person enters the kitchen or opens the refrigerator or cupboard.

• If the person opens the fridge or cupboard after entering the kitchen, we consider this as a part of the eating activity. • The activity ends when the individual is no longer in the kitchen or dining room. Once these rules have been applied to our dataset, we can calculate correlations and analyze how different rooms and mobility patterns are related to eating-related activities (Figure 11). Steps to create our correlation matrix:

• Create a New Variable: Start by adding a new category in the dataset to represent activities related to nutrition. This variable will be assigned values based on specific criteria, using a systematic approach. • Organize the Data: Once the nutrition-related variable is established, we organize the data by selecting the essential columns needed for calculating presence, occupancy rates, and mobility. These columns typically include "areaid," "event," "timestep," and the newly created variable for nutrition-related activities

(2)

(1)

• Calculate Presence and Occupancy: we Determine how often different rooms (such as the kitchen, dining pantry, fridge, and dining room) are used for nutrition-related activities. This is done by grouping the data based on the room's identification ("areaid") and finding the average frequency of events in each room. • Assess Mobility: Evaluate how mobile individuals are within each room of the house.

This is achieved we use the same grouping method as in the previous step, calculating the average level of activity within each room. • Create a Correlation Matrix: Build a correlation matrix to visually represent the relationships between presence, occupancy rates, and mobility in each room. This matrix helps identify patterns and connections among these factors. The process is carried out monthly in order to perform a more comprehensive analysis and monitor trends over a longer period. This means that the steps described are carried out at regular intervals. This consistent frequency will provide an overview of the progression of nutritionrelated activities, presence, occupancy, and mobility over time.

By analyzing the correlation matrix, we will be able to determine which rooms are most closely associated with nutrition-related activities and how the mobility of individuals at home is linked to these activities.

The correlation matrix between presence and occupancy rates and mobility for each room can be calculated using Pearson's correlation formula [START_REF] Sedgwick | Pearson's correlation coefficient[END_REF].

Pearson Correlation(A, B) = ∑ (A i -A ̅ ) (B i -B ̅ ) n i=1 √∑ (A i -A ̅ ) 2 ∑ (B i -B ̅ ) 2 n i=1 n i=1
A i , B i ∶ A and B values for observation i. A, ̅ B ̅ : the means of variables A and B, respectively. n is the total number of observations.

(3)

RESULTS AND DISCUSSION

Figure 12 shows an example of different events in each room of the house for 3 months data for the subject selected in this paper. To better illustrate each of them, we represent each room by a histogram as shown in Figure 13. Each room contains events from which we can well distinguish the different activities of daily living [START_REF] Mlinac | Assessment of activities of daily living, self-care, and independence[END_REF], thus identifying a life pattern of that person. Finally, this will give us the ability to identify personalized digital biomarkers.

Figure 12. All the events that occurred in the house for 3 months Figure 13. All events that occurred in area 63 (Hallway) 3 months

We can also conclude that the use of infrared motion sensors not only detect the various activities of the person but it can also show the lifestyle which we can, associated to other parameters, allow to develop a specific model for that person. It can also be used to calculate caloric expenditure. Considering the following characteristics (age 77 years, sex: male, height 165 cm, weight 60 kg and work: writer), the BMR of this subject is: 𝐵𝑀𝑅𝑀𝑒𝑛 = 88.362 + (13.397×60) + (4.7988×165) -(5,677 × 77) = 1246.855 Cal.

Based on the lifestyle of the person in the house, we can classify this person in the PAL category between [1.4 and 1.69], which means he has a low-activity lifestyle, we typically retain only the lower bounds of the Physical Activity Level (PAL) range to simplify calculations and obtain a more conservative estimate of energy expenditure. The lower bound of PAL represents the minimum level of activity required to maintain basic bodily functions, such as respiration and digestion, in the absence of additional physical activity. The equation (2) gives:

𝑇𝑜𝑡𝑎𝑙 𝐸𝑛𝑒𝑟𝑔𝑦 𝐸𝑥𝑝𝑒𝑛𝑑𝑖𝑡𝑢𝑟𝑒 = 1.4×1 246.855 𝑐𝑎𝑙 = 1745.597 Cal.
From the results of the weekly questionnaire, we can theoretically identify the lifestyle of the participants and validate this study by cross-referencing the activity records. To enhance the visualization of nutritional status, one strategy involves expanding the sensor network by integrating contact sensors into commonly used kitchen fixtures, such as dining cupboards and microwaves. We focus primarily on nutrition-related activities, which lead us to target areas associated with dietary practices, the eating cupboard, kitchen, fridge, and dining room, as shown in Figure 14. The objective is to enhance tracking capabilities by introducing supplementary sensors in the kitchen while upholding the existing level of comfort and without disrupting the routines of participants during the experiment, a feature already provided by the CART experiment.

However, the results of our analysis slightly approximate the amount of daily energy spent in the home only. If we wish to calculate total daily energy expenditure, we must include other types of sensors, such as a smartwatch or a smart scale, to monitor the total amount of activity inside and outside the home. Several indicators are valuable metrics for assessing physical activity, dietary habits, and in-home mobility, contributing to more effective health management and improved quality of life. They are commonly used in research, personalized healthcare, and home behavior analysis.

Those we have selected are: 1 -Total Energy Expenditure is frequently used in conjunction with mobility data to obtain a more comprehensive understanding of an individual's physical activity and energy requirements.

2 -Kitchen Presence and Occupancy Rates for Nutritional Activities This metric is used to comprehend and evaluate dietary behaviors. It involves monitoring the presence in the kitchen and the time spent in this area during nutrition-related activities, such as meal preparation.

3 -In-Home Mobility is a versatile metric with applications spanning healthcare, safety, personalized care, and research. Its value lies in its ability to provide deeper insights into how individuals move and interact within their home environment, ultimately leading to enhanced health management and quality of life.

Beyond the indicators, we have calculated a correlation matrix, focusing on the links between the different 'areaid'. This matrix allows us to identify correlations between different areas of the home. In particular, it can provide valuable information on eating-related activities and in-home mobility. For instance, with respect to kitchen indicators, our attention can be directed toward activities like meal preparation and the time spent in the kitchen. When it comes to in-home mobility, we can focus on activities such as transitioning between rooms and the associated behaviors .and on how nutrition-related activities and mobility interact, evolve, and influence occupants' habits over time. By using the correlation matrix in conjunction with mobility data, we aim to obtain a more comprehensive perspective on an individual's physical activity and energy requirements. -When activity in one room increases, activity in another room also increases, and vice versa.

-In the context of food-related activities, this could mean that some rooms are systematically used to prepare, eat, or store food.

Values Close to -1 (Negative Correlation):

-A value close to -1 indicates a strong negative correlation.

-When activity in one room increases, activity in another room decreases, and vice versa.

-In the context of food-related activities, this could mean that some rooms are used in opposition to food-related tasks, such as people avoiding certain rooms when cooking or eating.

Values Close to 0 (Low Correlation):

-A value close to 0 suggests a weak or no correlation.

-There is little or no relationship between activity in one room and activity in another.

-In the context of food-related activities, this may indicate that some rooms are relatively independent of feeding-related tasks.

In summary, by scrutinizing the correlations between specific rooms and activities linked to nutrition, we can ascertain which rooms display pronounced associations with these nutrition-related activities, whether positively or negatively. Additionally, we can identify rooms that maintain a lesser influence from nutrition-related tasks. These findings contribute to a deeper understanding of behavioral patterns related to nutrition within a particular household environment.

When these factors are combined, they define a novel digital biomarker. This biomarker can be harnessed as part of an alert system designed to detect subtle shifts in behavior, a validation process that greatly benefits from the insights of a healthcare professional.

CONCLUSION

In conclusion, our paper has introduced a new system developed as part of the CART initiative, from regional research projects at the Toulouse University Hospital in France. This system is designed to comprehensively monitor various aspects of health and well-being. It collects data to follow, detect and predict health status over the time, with an emphasis on identifying nutrition-related behaviors.

By gathering information on individuals' daily habits, including their presence in specific rooms like the kitchen and their use of household appliances such as the refrigerator, we have established the foundations for assessing nutritional behaviors. This foundation is reinforced by the crossing of three key indicators: total energy expenditure, presence and occupancy rates of rooms for nutritional activities, and the mobility of individuals at home. Analysis of the correlation matrix leads to several conclusions:

-Identify key rooms: Rooms with a strong positive correlation with food-related activities are likely to be at the heart of food preparation and consumption. These may include the kitchen or dining room.

-Identify avoidance habits: Rooms with a strong negative correlation may indicate areas where people tend to avoid food-related activities. For example, if the bedroom or home office show a strong negative correlation, this may indicate that people avoid eating or cooking in these areas.

-Understanding mobility: The correlation matrix can also reveal the link between people's mobility at home and food-related activities. If, for example, there is a strong positive correlation between activity in the kitchen and the dining room, this suggests that people move between these rooms when they eat.

Merging these indicators creates an innovative digital biomarker. The combination of digital data and clinical assessments, such as biannual nutritional evaluations and measurements of physical and physiological parameters, offers a promising approach to improving the diagnosis and prevention of situations at risk of undernutrition. This combined approach enables us to better understand individuals' adherence to recommendations and provides a global perspective closer to physiological conditions, thus advancing our ability to improve overall health and well-being.

Figure 2 .

 2 Figure 2. ICOPE Mobile application

Figure 3 .

 3 Figure 3. Overview of devices in the CART France project

Figure 4 .

 4 Figure 4. Typical house architectureThe exact number of each type of sensor required (in a total set of 13 sensors) is: -04 Line sensors in the living room; -08 Wall sensors (one per room).-02 Contact sensors. Figure5shows the location of sensors in the home of a 77-year-old. Since the installation is done, we have been able to check, using a Raspberry Pi (RPi) control panel that all the sensors are working correctly, as shown in Figure6. These sensors are connected to a hub (Rpi) via a personal area network (PAN).The critical step involves establishing the positioning of sensors within the household. This entails providing precise data for each room, as depicted in Figure7. Utilizing the sensor map not only helps us pinpoint sensor locations but also provides accurate data regarding the specific sensor placement. This, in turn, enables us to ascertain the appropriate type of indicator required for each location.

Figure 5 .

 5 Figure 5. Example of sensors installation in a house

Figure 8 .

 8 Figure 8. Data Collection with area identification

Figure 10 .

 10 Figure 10. Filtering of all events by areaid

Figure 11 .

 11 Figure 11. Flowchart of the correlation matrix creation and calculation process

Figure 14 .

 14 Figure 14. Transitions between rooms

Figure 15 .

 15 Figure 15. Presence and Occupancy Rates in Food-Related Activities

Figure 16 .

 16 Figure 16. Correlation matrix between areas (areaid)


Loïc Osanno

Laure Farnault

Julien Colle

Geoffroy Venton

Raphaelle Fanciullino

Study of the pharmacokinetic variability of azacytidine

à 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.

Loïc Osanno, Laure Farnault, Julien Colle, Geoffroy Venton, Raphaelle Fanciullino ❖ It would be interesting to consider CDA activity relative to pathology.

❖ A goal could be to correlate pharmacokinetics with response ▪ Azacytidine (Vidaza®) is a nucleosid analog subcutaneously administered at a protocol dose of 75mg/m² 7d/28d.

▪ Metabolized by a highly polymorphic enzyme, cytidine deaminase (CDA).

▪ Investigate the CDA status and pharmacokinetics of Azacytidine.

❖

  The results show significant pharmacokinetic variability of Azacytidine for the same dose protocol. ❖ We do not observe overexposure in PM patients.


Muhammad -Ludovic Khan

Henrio

Khan Muhammad

Ludovic Henrio

First-class Futures: a Study of Update Strategies

Keywords: distributed systems, future, future update strategies, active objects, asynchronous communications systèmes distribués, future, stratégies pour mise à jour les futures, objet active, communication asynchrone

Futures enable an efficient and easy to use programming paradigm for distributed applications. A natural way to benefit from distribution is to perform asynchronous invocations to methods or services. Upon invocation, a request is en-queued at the destination side and the caller can continue its execution. But a question remains: "what if one wants to manipulate the result of an asynchronous invocation?" First-class futures provide a transparent and easy-to-program answer: a future acts as the placeholder for the result of an asynchronous invocation and can be safely transmitted between processes while its result is not needed. Synchronization occurs automatically upon an access requiring the result. As references to futures disseminate, a strategy is necessary to propagate the result of each request to the processes that need it. This report studies the efficient transmission of results: it presents three main strategies in a semi-formal manner, and provides a cost analysis with some experiments to determine the efficiency of each strategy.

Introduction

Futures are language constructs that improve concurrency in a natural and transparent way. A future is used as a place holder for a result of a concurrent computation [START_REF] Robert | Multilisp: A language for concurrent symbolic computation[END_REF][START_REF] Yonezawa | Modelling and programming in an object-oriented concurrent language ABCL/1[END_REF]. Once the computation is complete and a result (called future value) is available, the placeholder is replaced by the result. Access to an unresolved future is a blocking operation. As results are only awaited when they are really needed, computation is parallelized in a somehow optimal way. The future creation can be transparent or explicit. With explicit futures, specific language constructs are necessary to create the futures and to fetch the result. Transparent futures, on the other hand, are managed by the underlying middleware and the program syntax remains unchanged; futures have the same type as the actual result. Some frameworks allow futures to be passed to other processes. Such futures are called First class futures [START_REF] Caromel | A Theory of Distributed Object[END_REF]. In this case additional mechanisms to update futures are required not only on the creating node, but also on all nodes that receive a future. First class futures offer greater flexibility in application design and can significantly improve concurrency both in object-oriented and procedural paradigms like workflows [START_REF] Tretola | Activity pre-scheduling for run-time optimisation of grid workflows[END_REF][START_REF] Tretola | Extending semantics of web services to support asynchronous invocation and continuation[END_REF]. They are particularly useful in some design patterns for concurrency, such as master-worker and pipeline.

Our work analyzes several future update strategies; it can be considered as an extension of [START_REF] Caromel | A Theory of Distributed Object[END_REF] and [START_REF] Ranaldo | Analysis of different future objects update strategies in proactive[END_REF] through a language-independent approach that makes it applicable to various existing frameworks that support first class futures. The experiments are performed with the ProActive library [START_REF] Caromel | ProActive: an integrated platform for programming and running applications on grids and P2P systems[END_REF], which is a middleware providing first-class futures. Our main contributions are: a semi-formal eventlike notation to model the future update strategies, and a description of three different update strategies using this notation (Section 3); a cost-analysis of the presented protocols (Section 3.5); some experimental results carried out with the ProActive library (Section 4).

Related works

Futures, first introduced in Multilisp [START_REF] Robert | Multilisp: A language for concurrent symbolic computation[END_REF] and ABCL/1 [START_REF] Yonezawa | Modelling and programming in an object-oriented concurrent language ABCL/1[END_REF] are used as constructs for concurrency and data flow synchronization. Languages/frameworks that make use of explicit constructs for creating futures include Multilisp [START_REF] Robert | Multilisp: A language for concurrent symbolic computation[END_REF][START_REF] Flanagan | The semantics of future and an application[END_REF], λ-calculus [START_REF] Niehren | A concurrent lambda calculus with futures[END_REF], SafeFuture API [START_REF] Welc | Safe futures for java[END_REF] and ABCL/f [START_REF] Taura | Abcl/f: A futurebased polymorphic typed concurrent object-oriented language -its design and implementation[END_REF]. In contrast, futures are created implicitly in frameworks like ASP [START_REF] Caromel | A Theory of Distributed Object[END_REF][START_REF] Caromel | Asynchronous and deterministic objects[END_REF], AmbientTalk [START_REF] Dedecker | Ambient-oriented programming in ambienttalk[END_REF] and ProActive [START_REF] Caromel | ProActive: an integrated platform for programming and running applications on grids and P2P systems[END_REF]. This implicit creation corresponds to asynchronous invocation. A key benefit of the implicit creation is that no distinction is made between local and remote operations in the program. Additionally, the futures can be accessed explicitly or implicitly. In case of explicit access, operations like claim and get, touch are used to access the future [START_REF] Broch Johnsen | Creol: a type-safe object-oriented model for distributed concurrent systems[END_REF][START_REF] Broch | An asynchronous communication model for distributed concurrent objects[END_REF][START_REF] Taura | Abcl/f: A futurebased polymorphic typed concurrent object-oriented language -its design and implementation[END_REF]. For implicit access, operations that need the real value of an object are called strict operations, and automatically trigger an access to the future. Accessing a future that has not been updated, results in a wait-by-necessity, which blocks the accessing process.

Creol [START_REF] Broch | An asynchronous communication model for distributed concurrent objects[END_REF] allows for explicit control over data-flow synchronizations. In [START_REF] Frank | A complete guide to the future[END_REF], Creol has been extended to support first class futures even if the access is still explicit (using get and await). ASP [START_REF] Caromel | A Theory of Distributed Object[END_REF] and ProActive [START_REF] Caromel | ProActive: an integrated platform for programming and running applications on grids and P2P systems[END_REF], have transparent firstclass futures. Thus, the synchronization is transparent and data-flow oriented.

INRIA

In AmbientTalk, futures are also first-class and transparently manipulated; but the future access is a non-blocking operation: it is an asynchronous call that returns another future. This avoids the possibility of a dead lock as there is no synchronization. In AmbientTalk a future contains a mailbox to store the received invocations, which are treated upon future update. This significantly differs from the approach adopted in frameworks like [START_REF] Broch | An asynchronous communication model for distributed concurrent objects[END_REF] where access to a future is blocking. All processes interested in the future are registered as observers. When the result for the future is computed, all the registered observers are notified, thus the future update strategy in AmbientTalk is closed to the eagermessage based strategy presented here. [START_REF] Welc | Safe futures for java[END_REF] provides a safe extension to Java futures, but with explicit creation and access.

This report presents future update strategies, with more details than in [START_REF] Caromel | A Theory of Distributed Object[END_REF]; it also analyzes the cost of each strategy. This work is language independent, and can be applied to any frameworks supporting first class futures, e.g. [START_REF] Frank | A complete guide to the future[END_REF][START_REF] Dedecker | Ambient-oriented programming in ambienttalk[END_REF].

Modeling Different Future Update Strategies

This section gives a semi-formal definition for the three main future update strategies. Strategies are called eager when all the references to a future are updated as soon as the future value is calculated. They are called lazy if futures are only updated upon need, which minimizes communications but might increase the time spent waiting for the future value. Two eager and one lazy strategies are presented here: eager forward-based (following the future flow), eager message-based (using a registration mechanism, also called home-based in [START_REF] Ranaldo | Analysis of different future objects update strategies in proactive[END_REF]), and lazy message based. One could also consider a lazy forward-based strategy, but as it is extremely inefficient, we do not discuss it here.

General Notation

This section presents a brief overview of the various notation and entities that we use to model the future update strategies. We denote by A the set of processes (also called activities); α, β, . . . ∈ A range over processes. F denotes the set of future identifiers, each future identifier is of the form f α→β , which represents the future f created by the activity α, and being calculated by β. As each object needs to keep track of the futures it has received, we make use of some local lists for this purpose. There is one future list for each activity α. It represents the location where the futures are stored in local memory. FL α : F → P(Loc) Locations, called loc in the following and of type Loc, refer to the in-memory position of the future. To keep track of activities to which a future is to be sent, a future recipient list is stored in each process. FR δ : F → P(A) γ ∈ FR δ (f α→β ) if the future value for f α→β has to be sent from δ to γ. It should be noted that each f α→β can be mapped to several locations in FL or several activities in FR. FR and FL are initialized to empty mapping on all processes. We use an event like notation to define the different strategies. Operations triggered by the strategies, and events triggered by the rest of the middleware are described respectively in bellow. Events are indexed by the activity on which they occur, or α → β for a communication from α to β.

Operations

Register Future -Reg: F × B × F → P(B) We define an operation Reg that is given a future, a process and a mapping F → P(B) (either FL when B = Loc, or FR when B = A). Reg γ (f α→β , b, L) replaces the list L by the list L ′ defined as follows:

L ′ (f α ′ →β ′ 2 ) = L(f α→β ) ∪ {b} if f α ′ →β ′ 2 = f α→β L(f α ′ →β ′ 2 )
else The Reg operation replaces the old mapping L with a new one containing the additional mapping. An example of its usage could be Reg γ (f α→β , loc, FL γ ) which adds to the FL γ list, a new location loc associated to future f α→β .

Locally Update future with value -Update: Loc × V alue Once the value for a given future is received, this operation is triggered to update all corresponding local futures with this value. The operation U pdate γ (f α→β , v) replaces, in the activity γ, each reference to the future f α→β by the value v. Remember the set of locations of these references is FL γ (f α→β ).

Clear future from list -Clear: F × F → P(B)

The clear operation Clear(f α→β , L) removes the entry for future f α→β from the list L; it replaces the list L by the list L ′ defined by:

L ′ (f α ′ →β ′ 2 ) = L(f α ′ →β ′ 2 ) if f α ′ →β ′ 2 = f α→β ∅ else
It will be used after a future update to clear entries for the updated future.

Send future value: SendValue: F × Loc × V alue Send operation is used when a process needs to send the value of a computed future to another process in order to update the future there. SendValue δ→γ (f α→β , loc, v) sends the value v for the future f α→β from δ to γ. Sending a future value can trigger send future reference events, SendRef , for all the future references contained in the value v. The exact details of this operation depend on the strategy and appear in Sections 3.2, 3.3, and 3.4

Events

Future update strategies react to events, triggered by the application or the middleware, presented below.

Create future: Create: F × Loc Create α (f α→β , loc) is triggered when α creates a future that will be calculated by the process β. The semantics of this event is similar for all strategies: it registers the future in the future list FL of the creating process. Send future reference: SendRef: F × Loc SendRef δ→γ (f α→β , loc) occurs when the process δ sends the future reference f α→β to γ and the future is stored at the location loc on the receiver side. The exact details of this operation depend on the strategy and will be described in Sections 3.2, 3.3, and 3.4.

Create α (f α→β , loc) Reg α (f α→β , loc, FL α ) INRIA H A B C D E F f:M() Legend SendRef(f) SendValue(v)
Future computed: FutureComputed: F × V alue F utureComputed β (f α→β , val) occurs when the value val of future f α→β has been computed by β. Reactions to this event will be described below.

Wait-by-necessity: Wait: A This event is triggered when a process accesses an unresolved future. This corresponds to get or touch operation in [START_REF] Broch Johnsen | Creol: a type-safe object-oriented model for distributed concurrent systems[END_REF][START_REF] Broch | An asynchronous communication model for distributed concurrent objects[END_REF][START_REF] Taura | Abcl/f: A futurebased polymorphic typed concurrent object-oriented language -its design and implementation[END_REF]. For the two eager strategies it simply causes the process to be blocked until the value is received. For the lazy strategy, this event retrieves the future value, see Section 3.4.

Eager Forward-Based Strategy

In this strategy, each process remembers the nodes to which it has forwarded the future. When the value is available, it is sent to all such nodes. The list of processes to which a process β should send the future value for f α→β is FR β (f α→β ). It is the list of processes to which β has sent the future reference. Figure 1 shows an example illustrating this strategy. Process A makes an asynchronous call on process H and receives the future f A→H . A then passes this future to B, which in turn passes the future to C, D and E. Finally C passes the future to F . Each time a future is forwarded, i.e. upon a SendRef message, the forwarding process δ adds the destination to its FR δ (f A→H ). When the result for f A→H is available, it is communicated to A using SendValue message. A then forwards the update on B (FR A (f A→H ) = {B}). B can make concurrent updates on C, E and D (FR B (f A→H ) = {C, E, D}). Finally, the occurrence in F is updated by C (FR F (f A→H ) = {C}).

Send Future Reference

When a process δ sends a future f α→β to a process γ, the sender registers the destination process in FR δ , and the destination process registers the location of the future in FL γ .

SendRef δ→γ (f α→β , loc) Reg δ (f α→β , γ, F R δ ); Reg γ (f α→β , loc, FL γ )

Future Computed

Once the value of a future f α→β has been computed at process β, it is immediately sent to all the processes that belong to FR β (f α→β ). This will trigger chains of SendValue operations. Once the future value have been sent, the future recipient list is no longer useful:

FutureComputed β (f α→β , value) ∀ δ ∈ FR β (f α→β ), SendValue β→δ (f α→β , value) Clear β (f α→β , FR β ))

Send Future Value

When a future value is received, the receiver first updates all the local references, and then sends the future value to all the processes to which it had forwarded the future (the processes in its FR list). The operation is recursive, because the destination process of SendValue may also need to update further futures. This operation can potentially trigger the SendRef operation in case of nested futures. The future locations and future recipient lists for this future are not anymore needed after those step:

SendValue δ→ǫ (f α→β , value) ∀ loc ∈ FL ǫ (f α→β ), Update ǫ (loc, value), Clear ǫ (f α→β , FL ǫ ) ∀ γ ∈ FR ǫ (f α→β ), SendValue ǫ→γ (f α→β , value), Clear ǫ (f α→β , FR ǫ )

Eager Message-based Strategy

In eager message-based strategy, the process β, computing the future value, is responsible for updating all nodes which receive a future. Opposed to forwardbased strategy where futures updates are performed in a distributed manner, here all updates are performed by same process β (home) in a centralized manner. Whenever, a process δ forwards a future to another process γ, it sends a message SendRegReq to the home process β, and updates the list of future recipients FR β . FR β (f α→β ) contains the set of processes to which f α→β has been forwarded. Figure 2 shows an example of this strategy. When A forwards the future to process B a registration message SendRegReq is sent from A to H, registering B in FR H . Similarly we have a registration message sent to H from B adding C, E, and D to FR H ; finally we have

FR H (f A→H ) = {A, B, C, D, E, F }.
Once the future result is available, H uses the SendValue message to communicate the value to all processes in FR H (f A→H ).

Send Future Reference

In the message-based strategy when a future f α→β is forwarded by a process δ to a process γ, a registration message is sent to the process that will compute the future, β.

SendRef δ→γ (f α→β , γ, loc) Reg β (f α→β , γ, FR β ); Reg γ (f α→β , loc, FL γ )

The registration Reg β (f α→β , γ, FR β ) is performed using a communication addressed to the home process β, and is called SendRegReq in Figure 2. Once the execution is completed and the value is available in β, the process β sends the value to all the processes in FR β (f α→β ).

INRIA H A B C D E F f:M() Legend SendRef(f) SendValue(v) SendRegReq()
FutureComputed β (f α→β , val) ∀ δ ∈ FR β (f α→β ) SendValue β→δ (f α→β , val); Clear β (f α→β , FR β )

Send Future Value

Contrarily to forward-based strategy, there is no need to forward the future value when received, only local references are updated, and then the FL list can be cleared.

SendValue β→γ (f α→β , val) ∀ loc ∈ FL γ (f α→β ) Update γ (loc, val); Clear γ (f α→β , FL γ )
The received future value may contain other futures as well. In this case, it can potentially trigger the send future reference operation.

Lazy Message-based Strategy

The lazy strategy differs from the eager strategies in the sense that future values are only transmitted when absolutely required. When a process accesses a unresolved future, the access triggers the update. This strategy is somewhat similar to message-based strategy except the futures are updated only when and if necessary. In addition, each process now needs to store all the future values that it has computed. For this, we introduce another list, FV that stores these values: FV : F → P(V alue). FV β (f α→β ), if defined, contains a singleton, which is the future value of f α→β . Compared to Figure 2, in the lazy strategy only the processes that require the future value register in FR H , FR H (f A→H ) = {C, D} if only C and D access the future. When the result is available, H communicates it to processes in FR H (f A→H ). In addition, the value is stored in FV H (f A→H ). If the future value is required later, it will be retrieved from FV H (f A→H ).

Send future reference

This strategy does not require registration with home process when forwarding a future. Incoming futures are registered in F L γ on the receiver. Once the value is received, all local references can be updated.

SendRef δ→γ (f α→β , γ, loc) Reg γ (f α→β , loc, FL γ )

Wait-by necessity

Wait-by-necessity is triggered when the process tries to access the value of the future. We register the waiting process at β:

If the future has already been computed by β, the value is transmitted immediately. Otherwise, the request is added to the Future receivers list of β.

SendRegReq γ→β (f α→β , γ) SendValue β→γ (f α→β , val) if FV β (f α→β ) = {val} Reg β (f α→β , γ, FR β ) if f α→β / ∈ dom(FV β )

Future Computed

When a result is computed, the value is stored in the future value list. Moreover, if there are pending requests for the value, then the value is sent to all the awaiting processes.

F utureComputed β (f α→β , val) ∀ δ ∈ FR β (f α→β )SendValue β→δ (f α→β , val) Clear β (f α→β , FR β ); Reg β (f α→β , val, FV β )

Send Future Value

The SendV alue operation is the same as for the eager message-based strategy:

SendValue β→γ (f α→β , val) ∀ loc ∈ FL γ (f α→β ) Update γ (loc, val); Clear γ (f α→β , FL γ )

Cost Analysis of Update Strategies

In this section, we present a simple model for analyzing the cost of updating futures using different strategies. For the purpose of our analysis, we assume that futures are forwarded over a simple tree like configuration of activities.

The cost analysis focuses on the time necessary for updates and does not consider the computation time which is too much application dependent. We do not measure the time necessary to require a result because this measure has a different meaning for each strategy. Thus, for message-based strategies, we suppose that, all the registration requests have been received when the result is computed. Our analysis focuses on a tree T consisting of N activities; depth of T is D(T ). We assume that all nodes have the same degree d. If the degree is not constant, d is the average degree of the nodes in T , and the cost is approximated. At each node, the maximum number of concurrent updates a process can perform is given by k (size of thread pool). Additionally, for lazy strategy, only l processes (nodes) out of N make use of future values. In order to update future values on various nodes in T , values must be serialized-deserialized at appropriate nodes. The time spent in serializing-deserializing for one transfer is denoted by t s , while t f is the time required for transferring the serialized INRIA result. Additionally, t r is the time for registering a process as a future recipient (for the lazy strategy). Using these notations, we aim to approximate: a) the total number of messages needed to update a future, b) The total time needed to update a given future f α→β at all N processes, c) T w : the time for a given node/process γ to receive a result.

The following table presents a summary of the cost evaluation. In eager-forward strategy the responsibility of future update is distributed among all intermediate nodes. This can be a important consideration in environments where the bandwidth available is limited. On the other hand, this implies that future update time is dependent on the number of intermediate nodes that must be traversed. Each intermediate node requires serializationdeserialization. As can be observed from the model, the value of t s plays a important role. In case of huge data sizes, t f can become significantly large.

In message-based strategy the responsibility to update the future values is centralized at computing node. This can potentially over-load the process and available bandwidth. On the other hand, all updates are carried out by a single process, thus results need to be serialized only once if group communication mechanisms are employed. Also, the update time is independent from the location of the node, and all nodes receive future update in a relatively constant time. This can be an important consideration in scenarios where the t s is relatively large and the depth of the tree is significant.

For lazy strategy, the registration requests can arrive at any time, before or after future value has been computed. The main drawback of this strategy is that, since registration is performed only when needed, the access to a future necessarily waits for one registration request plus the time to update a future. This introduces additional delay compared to the approximation above, and to the eager strategies. Lazy strategy can greatly reduce the number of messages exchanged. This can be a benefit in environments where network charge is an important consideration, or when future references spread but only a few nodes need the value. In counterpart, this strategy is costly in memory because future values must be stored indefinitely at the computing node.

Experimental Evaluation

We conducted an experimentation with a real system in order to validate the cost estimation proposed in the previous section. To this end, we adopted ProActive version 3.90. ProActive is based on the notion of active objects, abstracting processes with a unique thread and message queue. We used a cluster of 11 nodes equipped with Intel(R) Xeon(TM) CPUs at 2.80GHz with 1 GB RAM running Linux kernel 2.6.9. The cluster nodes are connected via a Gigabit Ethernet link. To measure the various parameters of interest, we deployed an application featuring a tree topology where each node is an active object. For the scope of the analysis, we kept the number of nodes making strict operations constant. In addition, only the leaf nodes of the tree make use of future values. It should be noted that we have implemented the messagebased approaches using java RMI, instead of a multicast api; this affects the performance of message-based and lazy strategy. The graph in Figure 3 compares the time needed to update futures for the evaluated strategies. Experiments are realized over trees of varying heights. Lazy strategy takes less time to update the futures since much less updates have to be made than for the two eager strategies. As expressed in Section 3.5 the experience shows that update time required for lazy and eager messagebased strategies is roughly independent of the height of the tree. Eager-forward based strategy can take advantage of concurrent updates. On the other hand, it also gets more time to reach the bottom of high trees as shown by the shape of the graph. As the height of the tree increases, overheads increases due to time spent at intermediate nodes. As a result, at height 7, the time needed for updates is higher. Note that for height 1, both eager strategies perform in a similar way because in that case both algorithms are roughly identical.

Figure 4 shows the time necessary to update a future along a simple chain of processes. Time taken by the lazy strategy is again constant and is very small because only one update is made (for the leaf node). It can be easily observed from the graph that forward-based and message-based strategies scale in a linear manner. There is no parallelization of the updates, neither for the forward-based strategy, nor for the message-based (as it is implemented in a single threaded manner). Future updates in eager forward-based strategy go through a number of intermediate steps before arriving at the last node in the chain. This introduces and additional delay for forward-based strategy. In message-based strategies, all updates are performed by same node in single step. Thus the update time is relatively constant.

Conclusion

This report presented a study of the three main strategies for updating first class futures. We build upon the work presented in [START_REF] Caromel | A Theory of Distributed Object[END_REF][START_REF] Ranaldo | Analysis of different future objects update strategies in proactive[END_REF] to model and evaluate each of the protocols, along with experimental results. Our main contributions are: Semi-formal event-like notation. We present and use a general (language independent) notation for modeling future update strategies. Consequently, other frameworks involving first class futures can directly benefit from our work.

Cost analysis of the strategies. For better understanding of the strategies and the relative costs (in terms of number of messages and time) involved, we present a simplified cost analysis of the protocols. This helps in understanding which strategy is more suitable for a given application.

Experimental results. We implemented the different strategies in the ProActive middleware and experimentally verified the results of our analysis.

We hope this article will help answering to the non-trivial question: "Which is the best future update strategy"? There is no single best strategy, rather the strategy should be adopted based on the application requirements, to summarize:

• Eager forward-based strategy is more suitable for scenarios where the number of intermediate nodes is relatively small and the future value is not too big. Also, the distributed nature of future updates results in less overloading at any specific node.

• Eager message-based strategy is more adapted for process chains since it ensures that all updates are made in relatively constant time. Due to its centralized nature, it may require more bandwidth and resources at the process that computes the future.

• Lazy strategy is better suited for cases where the number of processes that require future value is significantly less than total number of processes. Considerable savings in network load can be achieved but this has to be balanced against the additional delay inherent in the design of lazy approach. Also, all computed results have to be stored which requires more memory resources.

Figure 1 :

 1 Figure 1: Future-update in eager forward-based strategy

Figure 2 :

 2 Figure 2: Future-update in eager message-based strategy 3.3.2 Future Computed

Figure 3 :

 3 Figure 3: Comparison of strategies for a tree configuration

Figure 4 :

 4 Figure 4: Comparison of strategies for a pipe configuration

RR n°7113