Oleg Davidyuk

Nikolaos Georgantas

Valérie Issarny

Jukka Riekki

MEDUSA: Middleware for End-User Composition of Ubiquitous Applications

Activity-oriented computing (AOC) is a paradigm promoting the run-time realization of applications by composing ubiquitous services in the user's surroundings according to abstract specifications of user activities. The paradigm is particularly well-suited for enacting ubiquitous applications. However, there is still a need for end-users to create and control the ubiquitous applications because they are better aware of their own needs and activities than any existing context-aware system could ever be. In this chapter, we give an overview of state of the art ubiquitous application composition, present the architecture of the MEDUSA middleware and demonstrate its realization, which is based on existing open-source solutions. On the basis of our discussion on state of the art ubiquitous application composition, we argue that current implementations of the AOC paradigm are lacking in end-user support. Our solution, the MEDUSA middleware, allows end-users to explicitly compose applications from networked services, while building on an activity-oriented computing infrastructure to dynamically realize the composition.

Introduction

Ubiquitous computing as envisioned by Mark [START_REF] Weiser | The Computer for the 21st Century[END_REF] emphasizes the interaction of users with smart spaces composed of humans and multiple networked computing devices. This vision has been empowered by continuing progress in various relevant fields of research, such as wireless communication, mobile computing, mobile sensing and human-computer interaction (HCI). Firstly, wireless communication standards (e.g., WiFi and Bluetooth) have enabled users to access smart spaces using their mobile terminals and portable devices. Secondly, efficient low-powered CPUs make mobile terminals capable of running software platforms which support advanced interoperability between different devices. In addition, mobile sensing technologies, like RFID and GPS, make ubiquitous applications context-aware and they also enable alternative HCI interfaces based on, e.g., physical contact [START_REF] Nokia | Point&Find API for mobile phones[END_REF]. However, despite all these technical developments, the user-centric nature of ubiquitous computing should not be neglected.

An important new trend in ubiquitous computing research is activity-oriented computing (AOC) [START_REF] Masuoka | Task Computing -the Semantic Web meets Pervasive Computing[END_REF][START_REF] Ben Mokhtar | COCOA: COnversation-based Service Composition in PervAsive Computing Environments with QoS Support[END_REF]Sousa, Schmerl, Steenkiste & Garlan, 2008a). This paradigm adopts a user-centric perspective and assumes that smart spaces are aware of user needs and activities and reactively, or even proactively, satisfy user demands by composing and deploying the appropriate services and resources. User activities consist of the users' everyday tasks and they can be abstractly described in terms of (i) the situation (context) where the tasks take place, (ii) the system functionalities required for accomplishing the activities, and (iii) user preferences relating to QoS, privacy, security or other non-functional requirements. The system then dynamically realizes the activities by composing the applications according to the activity descriptions.

Under the AOC paradigm, the research community concentrates on introducing autonomic systems, which are self-manageable, self-configurable and adaptive, and therefore do not require user involvement. However, as pointed out by [START_REF] Hardian | Exposing Contextual Information for Balancing Software Autonomy and User Control in Context-Aware Systems[END_REF] and confirmed through user evaluation and usability tests (Davidyuk, Sánches, Duran & Riekki, 2008a;[START_REF] Vastenburg | Measuring User Experiences of Prototypical Autonomous Products in a Simulated Home Environment[END_REF], involving users in application control is essential for ensuring the user acceptance of autonomous products, especially in home or office automation domains. The AOC approach also has another drawback which limits its applicability. Application composition in AOC systems is performed by matching user activity descriptions with the networked services and resources discovered in the vicinity of the user according to the chosen criteria. Although some prototypes allow end-users to adjust the criteria at run-time (Davidyuk, Selek, Duran & Riekki, 2008b;Sousa et al, 2008a), the composition is limited to predefined activity descriptions (i.e. templates), which are complex structures and are not supposed to be understood or modified by end-users. Thus, users are neither able to customize the existing applications nor able to create their own smart space applications.

To address the aforementioned limitations of AOC systems, we present MEDUSA, a middleware solution which enables user-driven application composition in smart spaces. MEDUSA enables end-users to create simple applications from available ubiquitous resources discovered in the vicinity of the users. The applications are composed on the users' handheld devices. MEDUSA employs an end-user approach to programming applying it to the Ambient Intelligence (AmI) and ubiquitous computing domains [START_REF] Kawsar | Deploy Spontaneously: Supporting End-Users in Building and Enhancing a Smart Home[END_REF][START_REF] Mavrommati | End User Tools for Ambient Intelligence Environments: An Overview[END_REF][START_REF] Mavrommati | End-User Programming Tools in Ubiquitous Computing Applications[END_REF][START_REF] Sousa | uDesign: End-User Design Applied to Monitoring and Control Applications for Smart Spaces[END_REF]. The design of the MEDUSA middleware builds on our years of experience in developing middleware interoperability solutions, e.g., [START_REF] Amigo | Project web site[END_REF] and [START_REF] Plastic ; Preuveneers | Automated Context-Driven Composition of Pervasive Services to Alleviate Non-Functional Concerns[END_REF] as well as RFID-based user interfaces for smart spaces (Davidyuk et al, 2008a;Davidyuk, Sanches, Duran & Riekki, 2009;[START_REF] Riekki | RFID and Smart Spaces[END_REF]. This chapter describes the design rationale for the MEDUSA middleware architecture and it organized as follows. Section 2 surveys the background of ubiquitous application composition focusing on developments in AOC research, thus providing an overview of the key aspects relating to the specification of ubiquitous applications, the middleware support of dynamic application realization and end-user involvement. Section 3 then introduces MEDUSA, which empowers end-users to participate in application development and further leverages existing open-source middleware solutions for the actual realization of application composition. Finally, Section 4 concludes with a summary of the contribution of this study and our plans for future research.

Related Work

Before presenting related work, we first introduce the notion of application composition, which here refers to the process of building applications by assembling services offered by computing devices embedded in the environment. As shown in Figure 1, the application composition process generally involves two separate actors, the end-user and the service provider. The role of the service provider is to develop and publish services which provide some functionalities through a well-defined interface. The enduser's role is to create applications and utilize (i.e., interact with) applications. Some authors further separate the roles of application users and application developers, thus assuming that applications are developed and used by different persons [START_REF] Masuoka | Task Computing -the Semantic Web meets Pervasive Computing[END_REF][START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]Sousa et al, 2008a). Others do not consider the end-user role at all and suggest a view in which only application developers are involved in the application composition process [START_REF] Paluska | Structured decomposition of adaptive applications[END_REF].

The application composition process relies on descriptions of applications and services. An application description specifies the abstract services the application is composed of and the relationships between them (i.e. control and data flows). The application composer is responsible for decision-making in the application composition process. The application composer uses application descriptions and possible composition criteria (preferences, fidelity constraints, costs and so on) provided by the end-user as inputs and chooses available services which satisfy the given criteria. The selection of services is supported by a service discovery protocol, which is responsible for the matchmaking functionality (i.e., for matching service discovery requests against the service descriptions stored in the service registry). Since the discovered set of services may potentially contain redundant instances, the application composer optimizes (i.e., further reduces) the service set and produces an application configuration (i.e., application composition plan), which satisfies the criteria given earlier. Different application configurations may be produced depending on the criteria and the situation in the environment. After this, the application is instantiated and executed by the runtime environment. During execution, the application can be adapted (i.e. recomposed) according to user defined adaptation policies. These policies are formal rules which trigger predefined actions when the application or user context changes.

To date, several studies supporting ubiquitous application composition have been presented. They focus on service provisioning issues [START_REF] Chantzara | Designing a Quality-Aware Discovery Mechanism for Acquiring Context Information[END_REF][START_REF] Nakano | Effective Web-Service Creation Mechanism for Ubiquitous Service Oriented Architecture[END_REF][START_REF] Takemoto | A Service-Composition and Service-Emergence Framework for Ubiquitous-Computing Environments[END_REF], context-aware adaptation (Preuveneers & Berbers, 2005a;[START_REF] Hesselman | Discovery and Composition of Services for Context-Aware Systems[END_REF][START_REF] Jianqi | Integrating UPnP in a Development Environment for Service-Oriented Applications[END_REF][START_REF] Bottaro | Pervasive Service Composition in the Home Network[END_REF][START_REF] Bottaro | Context-Aware Service Composition in a Home Control Gateway[END_REF][START_REF] Handte | Supporting Pluggable Configuration Algorithms in PCOM[END_REF][START_REF] Rouvoy | Composing Components and Services Using a Planning-Based Adaptation Middleware[END_REF][START_REF] Rouvoy | MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments[END_REF], service validation and trust [START_REF] Bertolino | The PLASTIC Framework and Tools for Testing Service-Oriented Applications[END_REF][START_REF] Bertolino | Online Validation of Service Oriented Systems in the European Project TAS3[END_REF][START_REF] Buford | Composition Trust Bindings in Pervasive Computing Service Composition[END_REF], service communication path optimization [START_REF] Kalasapur | Personalized Service Composition for Ubiquitous Multimedia Delivery[END_REF], automatic application code generation [START_REF] Nakazawa | Galaxy: a Service Shaping Approach for Addressing the Hidden Service Problem[END_REF]) and distributed user interface deployment [START_REF] Rigole | A Component-Based Infrastructure for Pervasive User Interaction[END_REF]. Several design styles for developing adaptive ubiquitous applications through composition have also been suggested [START_REF] Paluska | Structured decomposition of adaptive applications[END_REF][START_REF] Saif | A Case for Goal-oriented Programming Semantics[END_REF][START_REF] Sousa | uDesign: End-User Design Applied to Monitoring and Control Applications for Smart Spaces[END_REF]. Some of the most promising research deals with the activity-oriented computing approach [START_REF] Masuoka | Task Computing -the Semantic Web meets Pervasive Computing[END_REF]Ben Mokhtar et al 2007;Sousa et al, 2008a). These solutions focus on decoupling the end-user tasks from their system-level realization, i.e., they let the end-users concentrate on the tasks or activities they need, rather than ask them to specify how they want these tasks to be performed by the system. User tasks are simple everyday activities (e.g., in the home or office environment), which can be achieved by compositing an application. AOC solutions take a user-centric approach to application composition by suggesting that users explicitly provide descriptions to the system via dedicated task composition and control interfaces (Davidyuk et al, 2008a;[START_REF] Messer | InterPlay: A Middleware for Seamless Device Integration and Task Orchestration in a Networked Home[END_REF][START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]. Other approaches assume that the descriptions are provided to the system implicitly through user context recognition facilities [START_REF] Ranganathan | Pervasive Autonomic Computing Based on Planning[END_REF] or that user task descriptions are developed by application developers [START_REF] Beauche | Automated Service Composition with Adaptive Planning[END_REF]Ben Mokhtar et al, 2007).

Next, we discuss related work in the context of three key issues, namely, the specification language, middleware support and end-user involvement.

Specification Language

The specification language is the cornerstone of the application composition process as it essentially serves the following purposes: (i) it enables service providers to advertise the properties of their services, both the functional and the non-functional properties; (ii) it enables the discovery of networked services by matching the service specifications with query requests sent by consumers; and (iii) it helps in arranging the discovered services in order of priority according to their non-functional properties and optimization criteria.

The solution presented by [START_REF] Paluska | Structured decomposition of adaptive applications[END_REF] suggests a design style called "goal-oriented programming" and a proprietary scripting language for describing composite applications. The solution is centered around application developers who create applications by describing the goals and the techniques corresponding to these goals. The goals are abstract decision points which determine the application's structure and behavior by describing the functionalities required by certain parts of the application. Each goal is described in terms of quality parameters, which are used to evaluate whether or not the goal has been reached. The techniques are specified as programming scripts which describe ways of achieving goals, e.g., by using certain hardware instances. The scripts introduced by the techniques do not directly implement application functionalities. Instead, what they provide is rather an abstraction of the existing component modules and ubiquitous devices required by the application. The structure of resulting application resembles trees; this is due to the planning algorithm which is used to optimize the set of techniques.

Most of the work on dynamic composition uses proprietary XML-based specification languages bound to particular application domains (e.g., office automation, web services and mobile services). The structure of these specifications has two features: it is fixed (i.e., adding a new property requires redesigning the language) and it resembles a tree because XML is used. An XML-based specification is used, for instance, by [START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]2008a) for describing user activities. In their paper, Sousa et al (2008a) present an example activity that describes the services and the service properties required to review a movie clip. Their example consists of two services, namely "play Video" and "edit Text". The properties of these services are "material" (i.e., required files) and "service state" (i.e., video playback position, video dimensions etc.). Sousa's specification supports two types of attributes: numeric (integer) values and enumerations (i.e., sets of integer or string values). Although XML-based languages allow the tailoring of specifications to certain problems (or application domains), they themselves do not contain any interpretation of the concepts (i.e., semantic meaning of attributes, values, etc), instead they leave this task to the system or the application. This means that the interpretation of XML-based specifications depends on the application or system logic, which can potentially create ambiguity if two different systems interpret the same specification differently.

In addition to XML-based models, multiple service specification standards exist, such as Web Services Description Language (WSDL)1 and YAWL2 . Although they have been used successfully in many existing systems, none of these languages has been accepted as a global standard in the application composition domain. Therefore, systems using different description languages may be incompatible with each other due to the diversity of their service and application descriptions. This is also known as semantic heterogeneity [START_REF] Halevy | Why Your Data Wont Mix[END_REF] and it occurs because service description languages in general support different concepts (i.e., the service descriptions vary content-wise) and they may specify the same concepts in different ways. For example, service behavior can be modeled using multiple techniques, such as process modeling (e.g., BPEL3 ) and conversations (e.g., WSCL4 ).

Another alternative to the XML-based approach to specifications is the ontology-based approach which also solves the problem of semantic heterogeneity. This approach models applications, services, their properties and possible relationships between them using a common theory (also called the "upper ontology"), thus enabling the participating parties to reason and match service concepts, even if their descriptions do not comply in syntax.

Several ontology-based languages have been suggested for service descriptions, such as Web Service Ontology (OWL-S)5 and Web Services Modeling Framework (WSMF)6 . These languages have been used frequently, especially in dynamic application composition systems [START_REF] Hesselman | Discovery and Composition of Services for Context-Aware Systems[END_REF][START_REF] Lee | Web-Based Semantic Pervasive Computing Services[END_REF]Ben Mokhtar et al, 2007;Preuveneers & Berbers, 2005a;[START_REF] Preuveneers | Semantic and Syntactic Modeling of Component-Based Services for Context-Aware Pervasive Systems Using OWL-S[END_REF][START_REF] Ranganathan | Pervasive Autonomic Computing Based on Planning[END_REF]. For example, iCOCOA (Ben Mokhtar et al, 2007) uses an OWL-S based semantic language for specifying user activities, services and their properties. iCOCOA particularly focuses on dynamic service properties and models service behavior using workflows. Thus, each service is modeled as a set of service operations which are interconnected with control and data relationships. In addition, iCOCOA also describes service QoS properties using qualitative and quantitative attributes.

Another OWL-S based specification language is used by CODAMOS middleware (Preuveneers & Berbers, 2005a;[START_REF] Preuveneers | Semantic and Syntactic Modeling of Component-Based Services for Context-Aware Pervasive Systems Using OWL-S[END_REF]. The main focus of the CODAMOS middleware is the hierarchical composition of service-based mobile systems, in which each service can consist of a sequence (i.e., a hierarchy) of other services. The CODAMOS specification defines the functional and non-functional properties of the services and relationships between them, i.e., connectors. The connectors link services and provide communication channels within the composed structures of the services. The non-functional properties of the services include contracts specifying user requirements and context and service control interfaces.

The language used for the application and service specification has a significant impact on middleware support in dynamic application composition. This point is discussed further in the next section.

Middleware Support

We distinguish between two important middleware functionalities in the dynamic composition of ubiquitous applications: (i) the application composer, which realizes the application by implementing a matching or a planning algorithm to choose the necessary services and (ii) the functionality that enables the interoperability of the service discovery, the service descriptions and the service communication.

Application composer. The application composer implements an algorithm to select service instances which realize the application. The algorithm performs either a matching or a planning function. Matching algorithms select appropriate services simply by matching the attributes of the services. In contrast, planning algorithms perform optimization and select the set of services which best satisfies a certain criteria. Planning algorithms are usually applied to systems in which finding a solution requires significant time and computing resources.

Application composition by matching is used in the iCOCOA (Ben Mokhtar et al, 2007), InterPlay [START_REF] Messer | InterPlay: A Middleware for Seamless Device Integration and Task Orchestration in a Networked Home[END_REF], PCOM (Handte et al, 2005), CASE [START_REF] Hesselman | Discovery and Composition of Services for Context-Aware Systems[END_REF], USON [START_REF] Takemoto | A Service-Composition and Service-Emergence Framework for Ubiquitous-Computing Environments[END_REF], Galaxy [START_REF] Nakazawa | Galaxy: a Service Shaping Approach for Addressing the Hidden Service Problem[END_REF] and SesCo (Kalaspur et al, 2005) projects. For example, iCOCOA suggests an application composition engine that uses semantic reasoning as well as a QoS attribute-and a conversation-based matching algorithm. The algorithm dynamically integrates the available service instances into the application according to the service behavior and application QoS constraints.

Several solutions use planning algorithms for application composition [START_REF] Beauche | Automated Service Composition with Adaptive Planning[END_REF][START_REF] Chantzara | Designing a Quality-Aware Discovery Mechanism for Acquiring Context Information[END_REF]Preuveneers & Berbers, 2005a;[START_REF] Ranganathan | Pervasive Autonomic Computing Based on Planning[END_REF][START_REF] Rouvoy | MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments[END_REF][START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]Sousa et al 2008a). For example, [START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]Sousa et al ( , 2008a) ) and [START_REF] Ranganathan | Pervasive Autonomic Computing Based on Planning[END_REF] use similar planning approaches to compose applications and particularly to address fault-tolerance issues. Their application composition engines take the goal description of an abstract user into account, in addition to the user's current context and preferences, in order to find a sequence of actions which leads to the best realization of the user activity. The resulting sequence (or plan) has to be executed by the application framework to ensure that none of the executions fail because of resource unavailability. This is done by dynamically monitoring the execution of the plan and the resources.

The composition mechanism of MUSIC [START_REF] Rouvoy | Composing Components and Services Using a Planning-Based Adaptation Middleware[END_REF][START_REF] Rouvoy | MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments[END_REF]) uses a utility-based planning algorithm, which relies on the normalized utility function determined by the required properties of the application and its current execution context. The utility function defines the relevancy of the QoS properties and reflects the application state (i.e. deployed or running), which affects the way particular QoS properties are estimated. This planning algorithm is also capable of negotiating QoS values directly with service providers during planning.

Another project, CODAMOS (Preuveneers & Berbers, 2005a), uses the Protégé reasoning tool to take the capacities of the client devices into consideration during planning. The algorithm estimates the resource capacities of the client devices and composes the applications accordingly. The algorithm uses the backtracking approach to optimization, i.e., it cuts down on the user preferences if it does not find any suitable solutions which fit the required device set. CODAMOS is a particularly interesting project, as their algorithm optimizes the structure and the functionality of the application according to the available devices, instead of optimizing the set of services to meet the application QoS requirements.

Middleware interoperability.

According to Ben Mokhtar (2007), dynamic application composition requires two types of middleware interoperability, that is, among service discovery and among service communication protocols. As discussed in 2.1, the former relates to overcoming semantic heterogeneity and can be addressed through the semantic description of services and composite applications. The latter requires adequate mapping among heterogeneous middleware protocols.

A number of solutions have been proposed recently to address the interoperability issues of the service discovery and communication functionalities. For example, MUSDAC [START_REF] Raverdy | A Multi-Protocol Approach to Service Discovery and Access in Pervasive Environments[END_REF] and ubiSOAP [START_REF] Caporuscio | ubiSOAP: A Service Oriented Middleware for Ubiquitous Networking[END_REF] use auxiliary service components to translate messages sent between different service discovery networks. An instance of such a service is added to each service discovery network enabling the clients to use multiple protocols at the same time. [START_REF] Siebert | Universal Adaptor: A Novel Approach to Supporting Multi-Protocol Service Discovery in Pervasive Computing[END_REF] and [START_REF] Bromberg | INDISS: Interoperable Discovery System for Networked Services[END_REF], on the other hand, suggest a universal adaptor approach which implements both client and server-side functionalities for discovering services and for mapping the primitives used by the universal adaptor with the primitives used by various service discovery systems.

Similarly, the ANSO architecture (Bottaro et al, 2007;[START_REF] Jianqi | Integrating UPnP in a Development Environment for Service-Oriented Applications[END_REF] suggests using adaptive adaptors to target service discovery heterogeneity issues. ANSO uses the UPnP service discovery protocol and provides explicit mappings of other protocols for UPnP in order to integrate sensors, computing devices and web services into one coherent and manageable network. Unlike other solutions, the ANSO service discovery engine generates a separate proxy component for each service instance which needs to use some other protocol than UPnP. Each time the service providers register a new service, ANSO dynamically generates a proxy using Java reflection (i.e. the bytecode generation technique) which implements the service discovery protocol required by the service instance. The proxies also provide access to the service functionalities.

Application composition also needs another kind of interoperability which is related to service communication protocols. Service communication interoperability is required because service instances may use incompatible communication protocols, such as Bluetooth and Wi-Fi. This kind of interoperability has been addressed in particular by the AmIi (Georgantas, Issarny, Ben Mokhtar, Bromberg, Bianco, Thomson, Ravedy, Urbeita & Cardoso, 2009) and ubiSOAP [START_REF] Caporuscio | ubiSOAP: A Service Oriented Middleware for Ubiquitous Networking[END_REF] solutions. Although AmIi is a middleware solution which focuses on semantic interoperability, it also provides interoperability among heterogeneous RPC-protocols. For this reason AmIi introduces a proprietary AmIi-COM communication mechanism, which is based on runtime protocol translation. Similar to AmIi, the ubiSOAP middleware addresses communication interoperability. It implements a custom SOAP protocol to enable service communication in wireless networks. We discuss these two solutions in Section 3.3.

End-User Involvement

In ubiquitous computing, end-users rarely play an active role. This is best demonstrated by research in context-aware application composition in which users do not explicitly interact with the system (i.e., through a user interface), but rather influence the decisions made by the system passively, i.e., through sensors which autonomously capture the users' preferences, their behavior, current needs and other parameters. For this reason, end-user involvement in ubiquitous computing is very limited and often non-existing.

However, end-user involvement has been more extensively studied in AOC research. The AOC systems assume that application composition is performed on the basis of predefined activity templates that are developed by application programmers, thus restricting the role of the end-users in composing applications (or activities) to simply matching the templates. This is simultaneously, both a major drawback and a contradiction in the AOC approach, because, on one side, the AOC promises to support end-user activities, but on the other side it restricts the user choice to activity templates that are predefined by the system. Thus, studies on end-user involvement in AOC have mainly focused on interfaces used to customize user activity templates.

For example, [START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]Sousa et al ( , 2008a) ) present a set of user interfaces for customizing activity templates and specifying end-user preferences. These preferences define the constraints and requirements that are taken into account by the application composer, which chooses the service instances for the corresponding user activity. The example shows a user activity template, which includes the following tasks: editing text, browsing the Web and editing a spreadsheet. Users can associate each of these single tasks with specific material (filename or address). Sousa's user interfaces also support multiple dimensions of application QoS requirements and the particular value of each dimension is represented by the slider position. The user chooses the QoS dimension (e.g., latency) and then adjusts the position of the slider to define the value intervals "bad", "moderate", "good" and "excellent". Fig. 2. Physical user interface for providing user preferences used by Davidyuk et al (2008a).

In our previous study, we suggested another approach to collect user preferences based on physical interfaces (Davidyuk et al, 2008a). In this approach, users specify their preferences by touching the appropriate RFID tags. An example of such an interface, the interface of a ubiquitous movie player application, is shown in Figure 2. This interface allows the users to choose the quality of the video they want to play with the application, which can be "very low", "low", "medium" or "high". For example, in order to choose the maximum quality, users need to touch (i.e. read the tag using a mobile terminal) the corresponding RFID tag labeled "high". Although we find that Sousa's interfaces are more flexible in terms of the value ranges of the captured preferences, RFID-based interfaces demonstrate a higher usability and also require less learning effort.

The InterPlay middleware [START_REF] Messer | InterPlay: A Middleware for Seamless Device Integration and Task Orchestration in a Networked Home[END_REF] provides several user interfaces for querying device and content information and for obtaining the status of user activities at home. This interface set also includes a work interface for activity composition similar to the one in Sousa's study, which uses a verb-subject-device template. In order to compose an activity, users perform three steps in this interface: (i) they choose an action from the "play", "print" and "show" options, then (ii) they choose a material (i.e., content type) from the "movie", "music" and "photo" options and finally (iii) they choose the target device they want to use to watch the content. However, the template only allows the user to choose one device instance per user activity. If a user needs to compose an activity from two device instances, then this kind of template will not support it.

Summary

Our review of dynamic application composition solutions can be summarized by stating that in the related work the XML-based service specification languages are primarily used. These languages are easier to design than, e.g. ontology-based alternatives, but they neither allow reasoning nor encoding interpretation (i.e., meaning) of specification concepts. Thus, XMLbased specifications may cause semantic heterogeneity (i.e., ambiguity) issues. Therefore, we consider the ontology-based specification approach as the most promising solution for supporting application composition. Such an approach does not require global agreement among service providers and consumers on a specification standard, thus different legacy specification standards can be supported by mapping them to a common ontology. In addition, this approach offers greater flexibility and expressiveness compared to XML-based specification languages. Still, there is one argument against using ontologies in specifications: they increase the overall latencies, because the ontologies need to be processed. As can be seen from Table 1, only a few of the discussed ubiquitous application composition solutions deal with middleware interoperability. Supporting interoperability is the cornerstone functionality, which allows an application composition system to utilize services that are specified in different service description languages and use various communication protocols. Since the large number of existing (and well-established) service discovery protocols, service description languages and service communication protocols make the adoption of one unique solution a rather unrealistic scenario, then supporting middleware interoperability is an essential requirement for making an application composition system truly ubiquitous.

Solution

Specification

Composer

End-user involvement has been studied in the context of ubiquitous application composition by [START_REF] Sousa | Task-Based Adaptation for Ubiquitous Computing[END_REF]Sousa et al ( , 2008a) ) and [START_REF] Messer | InterPlay: A Middleware for Seamless Device Integration and Task Orchestration in a Networked Home[END_REF]. However, these two approaches assume that application composition is performed on the basis of predefined activity templates (i.e., application descriptions), which are developed by professional programmers. As a result, endusers are not able to create their own applications and activities according to their own needs. Ideally, applications should be created by the end-users themselves, as they are the ones with indepth knowledge of their own needs and activities. Involving users in the process of creating applications would result in a better understanding of how the applications should be created and what services should be used. In addition, it would give the users a feeling of having more control over the environment, which is an important factor in ensuring user acceptability of prototypes as demonstrated by Davidyuk et al (2008a).

MEDUSA Middleware

In this section we discuss our earlier research on application composition and explain how our findings motivated the development of the MEDUSA middleware.

In our previous work on ubiquitous application composition we have developed two system prototypes which were used in building our example applications (Davidyuk et al, 2008a;Davidyuk et al, 2008b;[START_REF] Davidyuk | CADEAU: Collecting and Delivering Multimedia Information in Ubiquitous Environments[END_REF]. These prototypes include a proprietary service discovery protocol, an application composition algorithm and support composite multimedia applications using the application deployment and messaging facilities of the REACHES framework [START_REF] Sánchez | Controlling Multimedia Players using NFC Enabled mobile phones[END_REF]. The prototypes use a mobile terminal as a remote control unit which allows the users to create audio/video playlists by touching physical objects associated with certain multimedia files (Davidyuk et al, 2008a;[START_REF] Davidyuk | CADEAU: Collecting and Delivering Multimedia Information in Ubiquitous Environments[END_REF]. The applications in both prototypes have fixed structures, i.e. composition is performed using predefined application templates.

We also conducted a user study to evaluate the feasibility of the first prototype, which relied on an autonomic algorithm to compose applications. We reported this study in Davidyuk et al (2008a). The end-user involvement in that prototype was very limited and focused on application-related issues, such as choosing multimedia content and specifying preferences over it. As the result, we observed that the user acceptance of the autonomous application composition was very low, because the users were bound by the decisions made by the algorithm. Thus, a key finding was that end-user control in application composition is necessary.

We used the results from the feasibility test as a base for designing our second prototype, CADEAU [START_REF] Davidyuk | CADEAU: Collecting and Delivering Multimedia Information in Ubiquitous Environments[END_REF] which focuses on end-user control in application composition. Unlike the first prototype, CADEAU allows the user to choose service instances (more specifically, services that represent real devices) manually by touching or interactively. In other words, the users are able to choose the most appropriate means of interaction according to their needs and the situation at hand. However, the prototype restricts application composition to simply matching the predefined application descriptions with the services discovered according to a given criteria. Therefore, the matching approach to composition forces the end-users to rely on applications designed by application developers, instead of giving them the possibility to create their own applications in a do-it-yourself fashion.

The main goals of the MEDUSA middleware are related to providing end-user support for the creation and customization of applications and for controlling the composition process according to user needs. To achieve these goals, MEDUSA utilizes a composition tool for encoding user intent into applications and a set of control interfaces. These interfaces are based on our previous work [START_REF] Davidyuk | CADEAU: Collecting and Delivering Multimedia Information in Ubiquitous Environments[END_REF]. Another important issue addressed by MEDUSA is interoperability between heterogeneous devices, networks and platforms. Achieving interoperability is a prerequisite for building an open application composition system, as the services constituting an application need to be able to discover each other, exchange information and indeed interpret this information meaningfully. This is especially important if the environment, in which the application composition system operates, consists of services implemented and deployed by independent providers (Ben Mokhtar, Raverdy, Urbeita & Speicys Cardoso, 2008).

The following section introduces the overall architecture of the MEDUSA middleware (Section 3.1) paying special attention to end-user support (Section 3.2) and interoperability (Section 3.3).

MEDUSA Middleware Architecture

Fig. 3. MEDUSA conceptual architecture.

The architecture of MEDUSA is decomposed into the following layers; including end-user support and communication management in ubiquitous computing environment (see Figure 3):

1)

The communication interoperability layer uses a common network interface to both integrate and hide the underlying multi-radio networking technologies. The layer contains two entities, namely multi-radio networking and multi-protocol network management [START_REF] Caporuscio | ubiSOAP: A Service Oriented Middleware for Ubiquitous Networking[END_REF]. The first one effectively manages the nodes' multi-radio facilities using a cross-network addressing scheme and provides point-to-point and multicast communication primitives. Whereas, the second entity is responsible for multiprotocol network management, communication mobility and multi-network routing. In other words, it handles the mobility of the nodes to the upper layers in a transparent manner and also enables messages to be routed across nodes physically located in different networks. The realization of this layer is further discussed in Section 3.3.

2)

The key role of the service interoperability layer is to enable semantic and syntactic interoperability between different service providers and consumers without imposing them to use a specific standard. Interoperability is achieved using a common service description model, which specifies the mapping function between the service concepts and the functionalities provided by the platform nodes [START_REF] Ben Mokhtar | Semantic Middleware for Service-Oriented Pervasive Computing[END_REF]. In addition to this, the layer is also responsible for the service discovery, which stores descriptions of available services and performs matchmaking (i.e. searches for service descriptions in the repository matching the service query). The MEDUSA service discovery supports various legacy service discovery protocols through pluggins. This enables interoperability as presented by [START_REF] Georgantas | Middleware Architecture for Ambient Intelligence in the Networked Home[END_REF]. The application composition engine employs multiple composition algorithms to produce application configurations, which are optimized using QoS requirements and user-defined criteria (Davidyuk et al, 2008b). We describe the realization of this layer in Section 3.3.

3)

The user-centric layer provides functionality for creating and customizing applications and interfaces. The functionality can be used to control the composition of applications at run-time, and it can be used by end-users to encode their intents into the applications before they are composed by the application composition engine. In addition, end-users can utilize this functionality to control the composition process and to adapt applications at run-time by providing information on their preferences and by choosing the service instances that constitute the application. The MEDUSA end-user support is explained in further detail in the following section.

End-User Support

The functionality of the user-centric layer is provided by the end-user application composition tool and the application control interfaces. The composition tool helps users to arrange services into applications according to their own needs. We assume that each ubiquitous environment provides a set of cards which are associated with the service instances available in the environment. These cards can be issued, e.g., by the administrator who is responsible for maintaining and installing the actual services. Thus, each service is represented with a square paper card with a graphical icon on one side and an RFID tag attached the other side. A sticker with an RFID tag used in our prototype and an example set of cards representing a file server, a display, a remote controller, and an audio service are shown in Figure 4. Each of these RFID tags contains a web link to its service description which can be read by touching the card with an RFID-equipped mobile phone, as shown in Figure 4.B. Users can arrange the cards into different structures or sequences (an example sequence is shown in Figure 4.C), which are then read by touching them with a remote controller. In addition to sequences, other structures are also supported, however, they require connection cards to combine different parts of application structures. The main advantage of using a physical RFID-based interface for application composition is that it enables user cooperation and collaboration in designing ubiquitous applications, which would be difficult to realize using a traditional desktop-based user interface.

Once the application structure is provided to the system by touching service cards, endusers have to specify control and data dependencies between the services they have chosen through the mobile phone UI. This step can be supported using a mobile phone-based assistant, e.g. the office assistant in MS Word, which will guide the users through the application composition process. So, for example, if the users designed an application which is not complete structure-wise, the assistant would suggest how to complete the application using e.g., information from a database with existing application descriptions. Similar approach is used by [START_REF] Wisner | A Framework for End-User Programming of Smart Homes Using Mobile Devices[END_REF] for programming smart homes. We have tested our approach with a prototype composition tool and an initial set of cards. Figure 5 shows test subjects jointly implementing an application using a mobile phone. Two users participated in the preliminary experiment which lasted 1.5 hours. The users were asked to design abstract applications using the given service cards. In addition, they were allowed to use service cards they thought up themselves, if necessary. Altogether six applications were designed for multiple domains and several additional services were suggested during the experiment. The application domains included home, office, hospital and learning environments. We learned three lessons from this experiment. First, the graphical designs of the tags (i.e. icons) have to be self-explanatory and very intuitive for the users, and match their technical background. Secondly, we found that our set of service cards for application composition should be further extended. Thirdly, our composition tool needs a mechanism to motivate users to build applications, because motivation is necessary to balance the effort needed to learn to use the tool.

When the users develop applications using the composition tool, the applications only exists as abstract descriptions which have to be realized by service instances. In other words, the services constituting an application have to be connected at run-time to the service instances available in the environment. This task is performed by the application composer and it can be controlled by users through a set of user interfaces, which have two functions: (i) they allow users to choose among the possible application configurations (i.e. they are able to map the application descriptions to the service instances) suggested by the application composition engine; (ii) they permit users to directly choose service instances which are physically available in the environment. MEDUSA offers four different control interfaces, which enable different degrees of user involvement in controlling the application composition. The MEDUSA middleware supports the following interfaces: manual, semi-manual, mixedinitiative and automatic. The interfaces are shown in Figure 6 where they are arranged according to the level of user involvement and system autonomy they provide.

The manual interface assumes that the users have full control over application composition. Thus, the application composition engine is not utilized at all. The users can choose service instances by touching them with their mobile phone, as shown in Figure 7 (left). The interface is based on RFID technology and each service instance has an RFID tag attached to it. Each occasion when the tag is touched it uniquely identifies the service instance associated with the tag. Non-visual resources, i.e., abstract services or services located in a hard to reach places (e.g., on the ceiling) are represented with RFID-based control panels. Figure 7 (right) shows an example of such a control panel for a multimedia projector service. The application is started once the user has chosen all the necessary service instances. The semi-manual interface does not require users to choose manually all the services. The users can select some services by touching while the application composition engine will complete the application configuration by assigning the missing services automatically. The advantage of this interface is that in the fact only a part of the application configuration will be realized by the system. Thus, the users can choose the most important services in their opinion, and leave the less important decisions to be made automatically by the system.

The mixed-initiative interface restricts user control to the options suggested by the application composer. However, the users can always switch to another control interface if they are not satisfied with the options suggested by the system. The options are dynamically produced and ordered according to user defined criteria into a list of application configurations starting with the most attractive one. The list also shows the service instances required by each application. Before the application starts, the user can browse through the application configuration list and identify the services used by clicking the phone's soft buttons. This feature is essential if users need to validate the configuration of the application before starting it.

The autonomic interface uses the application composer to start and run an application configuration without distracting the user. This interface assumes that the user does not want to control the application composition.

MEDUSA Middleware Interoperability

The MEDUSA communication interoperability layer is realized using ubiSOAP [START_REF] Caporuscio | ubiSOAP: A Service Oriented Middleware for Ubiquitous Networking[END_REF]. The ubiSOAP communication middleware is specifically designed for resourcelimited portable ubiquitous devices which can be interconnected through multiple wireless links (i.e. Bluetooth, Wi-Fi, GPRS, etc). This feature is essential for MEDUSA, because the front-end functionality of the middleware is intended for mobile phones. In addition, ubiSOAP adopts Web Service standards as a baseline for implementing ubiquitous services, extends the standard SOAP protocol with group messaging connectivity and supports node mobility. ubiSOAP has been implemented into two SOAP engines, Axis27 and CSOAP8 , which demonstrates that ubiSOAP allows legacy applications to communicate using the standard SOAP protocol. This feature guarantees the compatibility of MEDUSA with thousands of existing online services.

Figure 8 shows the two-layered architecture of ubiSOAP (for details please refer to [START_REF] Caporuscio | ubiSOAP: A Service Oriented Middleware for Ubiquitous Networking[END_REF]. The lower layer is the ubiSOAP connectivity layer which selects the network based on user policies, as users may require the utilization of a certain type of network for personal reasons. This layer also identifies and addresses the applications in the networking environment. The upper layer is the ubiSOAP communication layer which extends the use of the standard SOAP protocol for messaging between the participating services by introducing SOAP multi-network multi-radio point-to-point transport and group (multicast) transport protocols. The upper MEDUSA service interoperability layer is realized by adopting the AmIi (Ambient Intelligence interoperability) service description model [START_REF] Georgantas | Middleware Architecture for Ambient Intelligence in the Networked Home[END_REF] and the interoperable ambient service discovery [START_REF] Ben Mokhtar | Semantic Middleware for Service-Oriented Pervasive Computing[END_REF]. AmIi is a semantic-based solution which achieves conceptual interoperability between heterogeneous service platforms. This type of interoperability is required from service providers wanting to register services using different service discovery protocols, which in turn use different service description languages. AmIi relies on the interoperable service description model the multi-protocol service discovery engine. The former enables mapping between the heterogeneous service description languages, thus providing conformance on both a syntactical and a semantic level. As a result, the service descriptions, which were originally written in languages such as UPnP or WSDL, can be translated into corresponding interoperable service descriptions. As shown in Figure 9, the AmIi service description model captures both functional (i.e. interface-related) and non-functional (e.g., QoS) service properties in addition to conveying information on service behavior and service grounding. The latter specifies how the service can be accessed using a legacy communication protocol. The service behavior is modeled using a workflow language e.g. BPEL. However, the model also supports other alternatives. The functional and nonfunctional properties are either specified with a reference to an existing ontology or they may contain embedded semantic descriptions. The interoperable service discovery function provided by AmIi is achieved using distributed service repositories which support legacy service discovery protocols. This means that each repository runs a set of plugins (i.e., proxies) associated with various service discovery protocols. The legacy service discovery protocols are then able to exchange service descriptions with the repositories and answer query requests. However, such a mechanism requires the translation of all the service descriptions into one interoperable format, which may potentially increase the latency of the discovery protocol. Therefore, the interoperable ambient service discovery also supports a plugin for registering and querying the service descriptions directly in the interoperable format.

The application composition engine in MEDUSA is realized using the composition algorithms initially introduced in Davidyuk et al (2008b). These optimization algorithms are based on the theories of evolutionary and genetic computing and they are used to optimize application configurations (i.e. set of services that constitute the application). The algorithms perform the optimization on the basis of user specified criteria (the nearest, the fastest or the cheapest option) and user preferences (fidelity and QoS requirements). For example, an application configuration can be optimized in order to minimize the overall application bandwidth consumption and to maximize the QoS properties of interest. These algorithms are generic and support (i) customizable criteria which may include multiple simultaneous optimization goals and (ii) various application QoS property types which can be added and removed from the service descriptions as needed at run-time.

Conclusions

The vision of activity-oriented computing advocates the development of systems which are explicitly aware of user needs and activities. These activities consist of the users' everyday tasks (e.g., in a home or office environment), which are abstractly described in terms of the situation in which the activities take place, the required system functionalities for accomplishing the activities, and the user preferences such as fidelity, privacy, or using other non-functional requirements. These activities are dynamically realized by the system composing the applications according to the users' activity descriptions. Although existing AOC systems are autonomous and rarely involve users in the actual application composition, we argue that enduser support in such systems should not be neglected.

To address this issue, we present MEDUSA, our middleware solution for end-user application composition with a two-fold goal: (i) enabling end-user application development and controlling the composition of applications at run-time; and (ii) solving issues relating to the interoperability of service communication and service discovery, thus promising to integrate thousands of already existing services. We discussed the middleware architecture, its functionality and also presented realizations of MEDUSA utilizing the open-source solutions ubiSOAP and AmIi. MEDUSA end-user support helps avoid predefined activity descriptions, which are used in most of the related work. The end-user composition tool supports users who do not have advanced technical skills. The tool relies on mobile terminals and RFID-based physical interfaces. These technologies were found very promising in terms of usability and user acceptance (Davidyuk et al, 2008a).

One lesson learned from this work is that end-users have a need to create their own services, thus the role of the end-user has to expand into the role of a service developer. Our plan is to achieve this change iteratively, in a few steps. For example, at first our system will allow an exporting functionality which enables user-composed applications to be exported as services, so that these applications can be used to compose other applications.

In the future we are planning on experimenting with the middleware and the end-user composition tool. In addition to conducting performance measurements, we will evaluate our solution with a series of user experiments in order to assess factors relating to user acceptance and usability. It would also be interesting to study what kinds of applications the end-users usually compose and what kinds of services they typically need in different situations.

We are also planning on making the service cards from thick cardboard or pieces of wood, thus the cards would resemble pieces of a jigsaw puzzle. By making different cutout interfaces we will restrict the ways in which the services can be combined together. This is necessary because some services may not be permitted to combine directly, but they can be combined using an auxiliary service in between.

Fig. 1 .

 1 Fig. 1. Generic application composition process.

Fig. 4 .

 4 Fig. 4. Sticker with RFID tag (A), RFID reader (B), and set of service cards (C).

Fig. 5 .

 5 Fig. 5. Two MEDUSA users jointly developing an application.

Fig. 6 .

 6 Fig. 6. MEDUSA end-user control interfaces.

Fig. 7 .

 7 Fig. 7. User selecting a service instance (left), and example service control panel (right).

Fig. 8 .

 8 Fig. 8. ubiSOAP architecture. Adapted from Caporuscio et al (2009).

Fig. 9 .

 9 Fig. 9. AmIi Service Description Model (AMSD), adapted from Ben Mokhtar (2007).

Table 1 .

 1 Comparison of related work.

	Interope-	End-User
	rability	Involvement

http://www.w3.org/TR/wsdl

http://www.yawl-system.com/

http://docs.oasis-open.org/wsbpel/

http://www.w3.org/TR/wscl10/

http://www.daml.org/services/owl-s/1.0/

http://www.wsmo.org

available from http://ws.apache.org/axis2/

available from http://www-rocq.inria.fr/arles/download/ozone/

Acknowledgements

This work has been funded by Tekes (National Technology Agency of Finland) under UBICOM technology program, GETA (Finnish Graduate School in Electronics, Telecommunications and Automations) and Nokia Foundation.

The authors would like to thank personnel of ARLES team in INRIA, especially Animesh Pathak, Pushpendra Singh, Elena Kuznetsova and Sneha Godbole for their valuable comments and ideas regarding the functionality of the MEDUSA middleware and the content of this chapter.

Keywords

Service-oriented and ubiquitous computing, ambient intelligence, end-user and interaction design, application composition.

Authors

Oleg Davidyuk received his MSc degree in Information Technology from Lappeenranta University of Technology, Finland, in 2004. He is currently working towards his PhD degree in MediaTeam Oulu Research Group in University of Oulu, Finland. His research include application and service composition, user interaction design, middleware and ubiquitous computing. Oleg's publications can be found at www.mediateam.oulu.fi/publications/?search=davidyuk.

Nikolaos Georgantas received his Ph.D. in 2001 in Electrical and

Computer Engineering from the National Technical University of Athens. He is currently a researcher at INRIA with the ARLES research projectteam. His research interests relate to distributed systems, middleware, ubiquitous computing systems and service and network architectures for telecommunication systems. He is or has been involved in a number of European projects and several industrial collaborations.

Valérie Issarny got her PhD and "Habilitation à diriger des recherches" in computer science from the University of Rennes I, France, in 1991 and 1997 respectively. She currently holds a "Directeur de recherche" position at INRIA. Since 2002, she is the head of the INRIA ARLES research project-team at INRIA-Rocquencourt. Her research interests relate to distributed systems, software engineering, mobile wireless systems, middleware and ubiquitous computing. Further information about Valérie's research interests and her publications can be obtained from http://wwwrocq.inria.fr/arles/members/issarny.html. Jukka Riekki is professor at the University of Oulu, in the Department of Electrical and Information Engineering. He leads together with his colleague the Intelligent Systems Group. His main research interests are in context-aware systems serving people in their everyday environment. Currently he studies in several projects physical user interfaces, context recognition, and service composition. In these projects he cooperates with research groups from China, Japan, and Sweden. He is a member of IEEE.


Jean Colombani

Jacques Bert

Holographic interferometry for the study of liquids

Keywords: holographic interferometry, liquids, diffusion

Holography is an optical technique enabling to record phase objects. Holographic interferometry uses this faculty to make a phase object interfere with a memory of itself at a preceding time, recorded on a hologram. Interference fringes therefore inform on any variation of the phase of the object. For the study of liquids, these phase changes can result from the evolution of temperature or concentration (via the index of refraction). This access to the real-time evolution of concentration can be used to measure diffusion coefficients, Soret coefficients or dissolution coefficients. Temperature fringes can be used to study convectives flows.

Introduction

The expression "holographic interferometry" has a double etymologic origin: "holography" derives from the greek words oλoς and γραφǫιν, meaning "to write all", whereas the term "interferometry" comes from the latin words inter, ferire and metrum, meaning literally "a measure of the hits inbetween". We are going to try, along this article, to give a more explicit definition of this powerful optical technique.

Holography was invented in 1948 by Dennis Gabor (1900Gabor ( -1979)), a hungarian-british physicist, just before its arrival at the Imperial College in London. His first motivation was the reconstruction of wavefront in electron microscopy [1]. He received the Nobel prize in physics in 1971 "for his invention and development of the holographic method".

But the burst of the possible applications of holography appeared in optics. Leith and Upatnieks, from the Radar Laboratory of the University of Michigan, benefitted from the recently developped laser technology to achieve the reconstruction of light wavefront, thus enabling threedimensional photography in 1962 [2].

In the following, we will first describe briefly the basic concepts of holography and holographic interferometry and then focus on known applications of this technique to the study of transparent liquids properties.

Principle of holographic interferometry

To choose a model of light waves relevant for the description of holography, the following approximations are made. The frequency of light (∼ 10 15 Hz) is not accessible to classical detector, which measure time-averaged values, so a timeless model is enough. Monochromatic light will be needed, so a one-wavelength model is considered. Linear polarisation is preferable, so a scalar representation is sufficient. Therefore to understand the basic principle of holography, light can be viewed as a mere complex amplitude U = A exp(iφ), with A the real amplitude and φ the phase. This phase is linked to the optical pathlength δ via φ = 2πδ/λ. The optical pathlength contains information on the transmitting medium : δ = n × e (e the depth and n the index of refraction).

Classical optical detectors like eyes or cameras are solely sensible to the light intensity

I = ǫv|U | 2 ∼ |U | 2 = A 2 (
ǫ the permittivity and v the wave velocity). So the phase cannot be registered and the information it contains is lost by these sensors. Therefore, indices of refraction and 3D vision are not accessible directly with photography, video, . . .

To remedy this lack, Gabor has appealed to Young's theory of interference. The main idea of this theory published in 1801 lies in the fact that when two beams superimpose in one point, their complex amplitude must be summed up, not their intensity, as thought before. This explains that a combination of lights can result in darkness. Therefore, in the case of two beams of complex amplitudes U 1 = A 1 exp(iφ 1 ) and U 2 = A 2 exp(iφ 2 ) crossing in one point, the resulting intensity is

I ∼ |U 1 + U 2 | 2 = A 2 1 + A 2 2 + 2A 1 A 2 cos(φ 1 -φ 2 )
. One notices that this expression includes a φ 1 -φ 2 term, thus containing information on the phases. So if the phase of one of the two beams is known, the other can be deduced. Here lies the basic principle of holography : the detector is illuminated by the beam coming from the object PLUS by a reference beam with a known phase. Thereby the recorded interference pattern contains the phase difference φ 1 -φ 2 between the two beams, and so informations on the index of refraction and 3D topography of the object [START_REF] Vest | Holographic interferometry[END_REF].

Classical holography is performed in two steps :

A recording step A photographic plate is illuminated by the object beam and a reference beam (generally a plane or spherical wave) of a coherent light. The interference pattern between the two beams is recorded through grey levels on the plate and is called the hologram. This pattern contains a 'coding' of the object phase.

A reconstruction step The object is removed and the plate is developped and illuminated by the reference beam only. The diffraction of the reference beam by the interference pattern on the plate provides a 'decoding' of the recorded object phase. Therefore, when observing through the hologram, a 3D picture of the object can be viewed. A hologram should be viewed as a hole in a wall behind which the object stands rather than as a photograph. For instance, if the plate is broken in two parts, the whole object can still be observed with each part of the hologram alone but with different angles of view, like when hiding half of a hole in a wall.

Holographic interferometry uses the opportunity of recording phase objects to make an object interfere with a memory of itself at a preceding time (registered in the hologram). According to Vest [START_REF] Vest | Holographic interferometry[END_REF], the application of holography to interferometry was first suggested by Horman [START_REF] Horman | [END_REF] and Gabor et al. [5] and developped simultaneously in several laboratories during the year 1965. The first application of this technique to fluids was the visualization of gas flows [6]. The experiment proceeds as follows :

• At a reference time t 0 , the investigated object is illuminated with the object and reference beams and the hologram is recorded.

• Subsequently both the reference beam -in order to obtain the reconstruction of the object wave at t 0 -and object beam -creating the object wave at time tare switched on briefly (double exposure holographic interferometry) or continueously (real-time holographic interferometry). At the object position, one can then virtually find both the illuminated object at present time and its 3D memory at t 0 , reconstructed by the diffraction of the reference beam by the hologram. If a change in the optical pathlength has occured, interference fringes appear (cf. Figure 1). This optical pathlength evolution may result from a motion of the object or from a modification of its index of refraction due to a change in a thermodynamic parameter. So a real-time map of the temperature, concentration, pressure, stress,. . . can be deduced from the fringe pattern [START_REF] Vest | Holographic interferometry[END_REF].

This technique is less experimentally demanding than classical interferometry because all optical defects between the laser and the hologram (except in the optical cell) remain unchanged at time t 0 and t, and therefore compensate. Furthermore the data analysis is straightforward.

But it should be mentionned that, like for all interferometry measurements, the initial conditions -recorded in the reference hologram-must be reliably known. Indeed interferograms give only informations on the evolution of the system since these initial conditions.

Nowadays, classical holographic interferometry is progressively supplanted by digital holographic interferometry [7]. In this alternative technique, the holographic plate is replaced by a Charge-Coupled Device (CCD) camera. During the recording step the interference pattern of the object and reference beams is recorded through grey levels by the CCD sensor. During the reconstruction step, the diffraction of the reference beam by the recorded interference pattern is carried out numerically instead of physically. This process has numerous advantages: no need of the time-consuming step of photographic plate development, easy change of the initial time t 0 , straightforward access to the object phase . . . But its drawbacks are not to be underestimated: small size of the sensor chips compared to photographic plates (so smaller investigated objects), small resolution of the sensor compared to photographic plates, subtle calculations, . . . Our experimental setup, used in all the below-mentionned studies, has been chosen for its simplicity (no use of goniometer, auxiliary fringes, reference zone in the hologram, . . . ) and is strictly the same for each application:

• a green 100 mW laser;

• two equivalent beams containing a microscope objective/pinhole/convergent lens set expanding and filtering the beams;

• the object inserted in one of the two beams;

• a hologram at the interceipt of the two beams;

• a CCD camera behind the hologram, recording the interferograms.

As a summary, holographic interferometry enables to perform interference between objects separated in time instead of interference between objects separated in space with classical interferometry. We will now turn to the experiments performed in our university, which cover the most encountered applications of this technique to the study of liquids.

One of our purposes in presenting these examples is to demonstrate the versatility of a simple holographic interferometry device, enabling to perform diffusion, dissolution, convection, . . . studies without any change in the optical apparatus. Another purpose is to stress on the quantitative measurements accessible in all the cases listed below, whereas holographic interferometry is often used to get a qualitative picture of the transfers in fluids.

Possible applications in liquids 3.1 Diffusion

Diffusion is perhaps the most investigated phenomenon in liquids with holographic interferometry and was used in physicochemistry, biology, geology, . . . . Historically, the first liquid diffusion studies were carried out a few years only after the invention of the technique [8,9,10,11]. Soon very simple versions of the holointerferometric device dedicated to liquid diffusion appeared [12], still in use nowadays [13]. Our setup is similar to this simplified device.

We present here two possible procedures to access to the diffusion coefficient-one in a homogeneous protein solution and one in an immiscible mixture-representative of the possibilities of the technique. We stress that we are concerned in this article with dynamic phenomena in liquids but similar measurements are also performed in gases [14] and gas-liquid systems [15].

Interdiffusion

To measure the diffusion coefficient D of an aqueous protein solution at a given concentration c 0 , the following process has been used. First, half of an optical cell has been filled with a solution at a slightly lower concentration c 0 -δc/2. Then the reference hologram has been recorded. Subsequently, the remainder of the cell was filled with a solution at a slightly larger concentration c 0 + δc/2. The two mixtures interdiffuse and their two concentrations progressively change. This evolution induces a refraction index modification, so interference fringes appear. Two adjacent fringes show a 2π phase evolution, corresponding to a concentration evolution δc = λ/(e(∂n/∂c)), where λ is the laser wavelength, e the optical pathlength in the cell and ∂n/∂c the refraction index evolution with concentration of the solution. Starting from the ends of the cell (where concentration is still unchanged), the concentration profile can then be gradually computed from fringe to fringe.

Considering that D remains constant in the small investigated concentration range δc, the solution of Fick's law of diffusion in this geometry gives the following expression of the concentration evolution with space and time:

c(z, t) = c 0 + δc 2 erfc z 2 √ Dt ( 1
)
where z is the vertical coordinate and z = 0 the interface between the two solutions. A fit of the experimental concentration curves at all times with this formula gives the value of D at c 0 [16]. This procedure was inspired by diffusion experiments by holointerferometry in an aqueous electrolyte [17].

Diffusion through a meniscus

In this case, our goal was to obtain values of the diffusion coefficient of the two phases in an immiscible binary mixture, namely water/isobutyric acid. This system exhibits a miscibility gap with an upper critical point at T c = 27.05 • C. The reference hologram is taken at a temperature below T c , so in the inhomogeneous regime, with the lighter phase standing above the heavier one. Then temperature is abruptly increased by a few tenth of degrees. The equilibrium concentration of the two phases therefore change (see phase diagram in Figure 3). The new equilibrium concentrations are reached via the diffusion of water and acid through the meniscus. Fringes accordingly move from the meniscus toward the ends of the cell until the two phases become homogeneous again as shown in Figure 4. As above, the real-time concentration profile c(z) can be computed thanks to the knowledge of the concentration difference between two fringes δc = λ/(e(∂n/∂c)). Again the fit of the experimental concentration curves with a theoretical law of the kind of Equation 1brings the diffusion coefficient of the two phases at the final temperature [18].

Soret effect

This effect, also called thermal diffusion, is a second-order transport phenomenon, discovered by Charles Soret in 1879: when a homogeneous binary mixture of concentration c is submitted to a thermal gradient ∇T , a heat flux arises (direct transport, Fourier's law) PLUS a matter flux tending to separate the two components [19]. During the course of a Soret experiment, a concentration ∇c builds in, leading to an opposite matter flux due to Fick's diffusion. When the Fick and Soret flows exactly compensate, a steady state is reached characterized by the Soret coefficient

S T = 1 c(1-c) ∇c∞ ∇T = D ′ D (D ′ thermal diffusion coefficient and D diffusion coefficient).
Soret experiments are made delicate by the existence of the thermal gradient, which is liable to induce convective disturbing currents. Holographic interferometry provides a mean to simultaneously measure S T and check the absence of convection. But unlike diffusion, studies of the Soret effect by holointerferometry are rare and we were the first ones to carry out such measurements since the pioneering works of Becsey et al. [20] and Sanchez et al. [21,22]. Our device is a simplified version of theirs, without the use of auxiliary fringes.

During an experiment, a hologram of an homogeneous sample of the investigated liquid mixture is first recorded. Then a vertical thermal gradient is imposed, leading to temperature fringes quickly appearing. Subsequently, concentration fringes slowly settle due to the Soret effect. The total concentration difference between the top and bottom of the cell can be computed with ∆c = N c λ/(e(∂n/∂c)) (N c total number of concentration fringes in the cell). Therewith, the evolution of the concentration gradient between the two ends of the cell with time can be drawn, ∇c ∞ estimated and S T calculated. Figure 5 shows an example of the fringe pattern evolution during a Soret experiment (∆T = 6 • C) in a concentrated aqueous solution of lithium chloride [23,24].

Convection

The three above-mentionned studies have benefitted from the holographic concentration cartography to access to quantitative transport coefficients in the liquid. Besides one can also make use of the two-dimensional concentration or temperature field gain information about the flows in the liquid. This has been done since the beginning of the study of liquids with holointerferometry, the phase defect cancellation of this technique (see Section 2) permitting to investigate easily large samples [START_REF] Vest | Holographic interferometry[END_REF]. Numerous studies of this kind are still performed nowadays, looking at heat or matter nondiffusive fluxes.

For instance, at the end of a Soret experiment, the liquid mixture exhibits a thermal and a solutal gradient, which result in a vertical density gradient. From a hydrodynamic point of view, if the resulting density distribution shows a smaller density at the top than at the bottom of the cell, the liquid remains always stable and heat transfer proceeds by diffusion. In the opposite case (smaller density at the bottom), for slight gradients the liquid remains quiet, by above a threshold, an instability develops and convection arises in the cell.

In the case of the experiment mentioned above, the solution was heated from below, which has an unstabilizing influence, but the Soret coefficient was negative, indicating that the salt migrates toward the hot end of the cell, i.e., toward the cell bottom, which has a stabilizing influence. The hydrodynamic behaviour of the mixture in the applied temperature and concentration fields can be summarized in a stability diagram.

In a holographic interferometry experiment, the gradients are visualized through fringes. In a diffusive state, isotherms (so temperature fringes) stay perpendicular to the thermal gradient (so horizontal). In a convective state, a roll of flowing liquid develops, leading to a distorsion of the isotherms (so of the temperature fringes), as shown in Figure 6.

Thereby, the stability diagram of the liquid has been determined: depending on the thermal and solutal gradients, the liquid shows a diffusive, oscillatory convective (roll changing periodically of rotation direction) or stationary convective regime (cf. Figure 7) [23,24]. The oscillatory behaviour is a consequence of the competing influence of the stabilizing (concentration) and unstabilizing (temperature) fields. In the stationary convective regime, for increasing temperature gradients, other rolls appear in corners of the cell, leading to complex convective patterns (cf. Figure 8).

Dissolution

We are now going to consider the possible interest of this technique for the study of chemical reactions. Since the beginning of the technique [25] and up to now [26], solution chemistry, electrochemistry, corrosion study or crystal growth investigation appeal to holographic interferometry potentialities to measure quantitative transfer rates at solid-liquid interfaces. For instance the study of dissolution is particularly appropriate. Holographic interferometry enables indeed a simultaneous measurement of the dissolution coefficient, diffusion coefficient and solubility of the material. During an experiment, the reference hologram of the pure liquid is recorded and a sample of the dissolving solid is subsequently introduced in the cell. The solid reacts at the solidliquid interface and then diffuses in the liquid. The resulting concentration change in the liquid is visualized via concentration fringes (cf. Figure 9). Using again the expression of the molality evolution between contiguous fringes δm = λ(e(∂n/∂m)), the molality profile in the whole cell can be plotted, as shown in Figure 10.

To evaluate the analytical expression of the substance molality m (or other concentration unit) in the liquid, Fick's equation ∂m ∂t z = D ∂ 2 m ∂z 2 t must be solved with relevant boundary conditions. At the dissolving interface, the boundary condition equalizes the dissolution flux and the diffusion flux. In order to obtain an analytical mathematical expression, the liquid-air meniscus is considered as being infinitely distant from the reaction. The resulting integration leads to :

m(z, t) = m sat erfc z 2 √ Dt -exp(hz + h 2 Dt)erfc z 2 √ Dt + h √ Dt . (2)
In this equation, the parameter h = kβ/(Dρm sat ) has been introduced with k the dissolution coefficient, β a geometrical parameter, D the diffusion coefficient, ρ the density, m sat the solubility and L the total diffusing length (height of the experimental cell). The best fit of the experimental molality profiles with this theoretical expression brings the expected m sat , D and k values [START_REF] Colombani | Holographic interferometry study of the dissolution and diffusion of gypsum in water[END_REF].

Conclusion

Holographic interferometry makes use of the capacity of wavefront reconstruction of holography to perform interferences between the same phase object at different times. This possibility gives access to the real time evolution of the 2D field (integrated along the optical path) of refraction index in liquids. The cartography of all parameters influencing the refraction index is thus accessible, temperature and concentration essentially. The possible use of this investigation method of liquids are mainly: measurement of kinetic coefficients (mass diffusion, thermal diffusion, dissolution) and visualization of flows. The continuous progress in digital holographic interferometry still expands the possible contexts of utilisation of this technique.

List of Figures

12 Figure 1 :

 121 Figure 1:

Figure 4 :

 4 Figure 4:

Figure 5 :

 5 Figure 5:

Figure 6 :

 6 Figure 6:

Figure 7 :

 7 Figure 7:

Figure

  Figure

  Figure

Figure 10 :

 10 Figure 10:

  Schematics of holographic interferometry principle. . . . . . . . . . . . . . . . . . . 9 2 Concentration fringes during the interdiffusion process of two slightly different concentrations of an aqueous bovine serumalbumin solution 15, 32, 53, 62 and 71 min. after the beginning of the experiment. . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Phase diagram of the water/isobutyric acid mixture. The initial concentrations of the two phases and the final concentrations after a temperature increase are also shown. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4 Concentration fringes in a critical water/isobutyric acid mixture due to the reequilibration of the concentration in the two phases via diffusion across the meniscus 15, 90, 180, 330, 570 and 3000 minutes after an abrupt increase of the temperature from 24.7 to 24.9 • C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5 Concentration fringes due to the Soret effect in (LiCl,H 2 O) 2, 48, 100, 170 and 241 minutes after applying a 6

Corresponding author, tel.: +33 472448570, fax.: +33 472432925, Jean.Colombani@lpmcn.univ-lyon1.fr

Acknowledments

We acknowledge CNES (french space agency) for financial support.