"Intelligent Environments: a manifesto"

We explain basic features of an emerging area called Intelligent Environments. We give a short overview on how it has developed, what is the current state of the art and what are the challenges laying ahead. The aim of the article is to make aware the Computer Science community of this new development, the differences with previous dominant paradigms and the opportunities that this area offers to the scientific community and society.

Here we explain how the area of Intelligent Environments (IE) has developed, what its core values are and how it differs from other areas. By "Environment" we refer here to any space in our surroundings. Although some people may also consider virtual environments here we mostly refer to Physical spaces, in all its diversity, e.g., house, building, street, a field, an area in the sea or space, etc. Our use of the word "Intelligent" applied to Environments mostly refers to Artificial Intelligence, as defined in [1]. An Intelligent Environment is one in which the actions of numerous networked controllers (controlling different aspects of an environment) is orchestrated by self-programming pre-emptive processes (e.g., intelligent software agents) in such a way as to create an interactive holistic functionality that enhances occupants experiences.

Historical development of the area
For centuries humans have witnessed scientific and technological leaps that changed the lives of their generation, and those to come, forever. We are no exception. In fact many of those advances are occurring now, in a more or less unperceivable way. Slowly and silently technology is becoming interwoven in our lives in the form of a variety of devices which are starting to be used by people of all ages and as part of their daily routine.
As predicted by M. Weiser [2], this technology is gradually disappearing from our cognitive front, as we increasingly take for granted its existence. But this fact alone could not justify a paradigm shift, as we claim in this manifesto.
The emergence of a new paradigm requires the convergence of various domains of human activity, many of which are not technological. It is true that numerous technological advances have taken place during the past two decades worldwide, mainly due to persistent efforts by researchers and systematic funding by governments and markets. Among these advances one could site: -Miniaturization of hardware components, and at the same time increase in processing power, performance and reliability and better storage management. Figure 1 shows how computers have become progressively available to humans.
-A multitude of different and reliable wireless network protocols, with the deployment of any required infrastructure.
-Large amount of information available, because of the widespread use of information sources (i.e. images from embedded cameras, location data from GPS, indentifers from RFID, user profiles stored in social computing applications, etc), and at the same time efficient knowledge extraction (i.e. for recognition of activity or prediction of intention, etc) and management and proliferation of semantic technologies (i.e. semantic web).
-Development of novel software platforms (i.e. grids, clouds, web 2.0, social computing), the associated middleware for all kinds of heterogeneous devices (from PCs to mobile phones to refrigerators) and the necessary development and end user tools.
-Ubiquitous contextual information, more accurate context representation, and higher order functions (such as adaptation, learning, etc) made possible -Multi-modal intuitive HCI (i.e. based on natural language, gestures, whole body movements, even emotions) paving the way to direct brain to computer interfaces. From top to bottom, initially many users shared a centralized system, then a personal computer became available to a single user, and currently each user (even non-computers specialist) has access to many computing devices, often without realizing. It is also important to note that developments in all of these technological areas not only have reached a level of maturity (i.e. they have been deployed outside labs, some of them with commercial success), but they are also converging to define the requirements of IEs. Still, these would not be enough if the society (where ultimately, IEs are deployed) was not ready for a paradigm shift. This is backed by facts such as: -The widespread user adoption of IE related applications, an indication that people are used in living with this kind of technology, although many concerns are still raised, especially regarding privacy.
-The commercial success that some of IE technological components already enjoy (i.e. mobile phones, ubiquitous cameras and sensors, social computing applications, cloud-based services, etc.) and the continuous investment made in this technology by public and private sector bodies.
-The impact of this technology has on all society sectors (i.e. education, health, employment, administration, entertainment, wellbeing, energy conservation, agriculture, etc) and the emergence of new ones (i.e. new jobs such as AAL expert or technician, smart home engineer, semantic information engineer etc).
This widespread availability of resources forms the technological layer for the realization of a new generation of systems that we refer here under the umbrella term of "Intelligent Environments".
Having the necessary technology is not enough for an area of science to flourish. Previous experiences of people with computers over recent decades have created an interesting context where people's expectations of these systems are growing and their fear of using them has decreased. A significant part of the way our societies work everyday have been adapted to the world's acceptance of existing technology. A new generation of technology consumers are coming and there is increasing appetite and education to make the adoption if IE's feasible.
The emergence of ubiquitous computing is perceived as the third wave in the evolution of computer technology [ref], because it signifies a move from large mainframes to ubiquitous computers in parallel with a move from a many users using one computer to many (embedded) computers being owned or used by one user. But the study of IEs requires a more complex approach, because many different axes of development have that led to their emergence: -Scale: it is expected that IEs will contain millions of networked computing devices (i.e. hence the need for ZibGee, IEEE 1451 and IPv6 standards) and at the same time call for universal adoption.
-Size: device components become small and invisible at an amazing pace, eventually reaching the molecule level.
-Performance: despite issues of synchronization, heterogeneity and management, individual component and collective system performance are increasing -Knowledge: the amount of information available for storage, processing and transmission is huge, but what's more important, the amount of knowledge also available for access, processing and transmission is growing fast, leading to a new era for AI.
-Proactiveness: a gradual shift from the reactive device to the proactive, even cognitive one, is witnessed.
-Dependability: this crucial for paradigm adoption factor marks the gradual increase of trust that people show in the new technology, partly as a result of the fault tolerance and autonomic behaviour of the massively distributed systems.

Related concepts and basic principles
There are a number of related areas which have facilitated the development of Intelligent Environments. Many of these areas overlap but they also have significant differences, we will try to clarify how they relate to each other.
Pervasive/ubiquitous computing: studies the provision of distributed computational services which are contextaware and travel with the user seamlessly across different environments [2]. Ubiquitous computing is more broadly associated with Human-Computer Interaction whilst Pervasive computing as a stronger emphasis on devices, their networking and the processing of the data they produce.
Smart environments: an environment enriched with sensing devices, some of them with capability to store and process data locally. See for example [3] for a more comprehensive description [4].
Ambient intelligence: refers to the intelligent software that supports people in their daily lives by assisting them in a sensible way [5]. See [6][7][8] for a seminal paper and [9] for a more recent survey.
Intelligent environments: builds on all the previous concepts and aims at creating systems which integrate a Smart Environment with Ambient Intelligence and is based in the pervasive/ubiquitous availability of services.
See [10] for some up to date picture of work in the area.
In order to help characterizing what we interpret by Intelligent Environments we list below some key principles we believe every Intelligent Environment should aspire to have: P1) to be intelligent to recognize a situation where it can help. P2) to be sensible to recognize when it is allowed to offer help. P3) to deliver help according to the needs and preferences of those which is helping. P4) to achieve its goals without demanding from the user/s technical knowledge to benefit from its help. P5) to preserve privacy of the user/s. P6) to prioritize safety of the user/s at all times. P7) to have autonomous behaviour. P8) to be able to operate without forcing changes on the look and feel of the environment or on the normal routines of the environment inhabitants. P9) to adhere to the principle that the user is in command and the computer obeys, and not viceversa.
These principles summarize the aims of our area. An intelligent Environment has to have a proactive attitude, continuously reasoning on how to help the users of that environment. Identifying correctly when help is needed can be extremely difficult in many situations and heavily depends on the information that is available through the sensors, and the knowledge it has about the user. Knowledge about the related world is also very important to understand what the effects of the system can be on that world and what is realistically feasible to achieve on behalf of the user. The challenge is here to keep a balance between not missing an opportunity when the user expected assistance at the same time the system understands it does not have to assist the user in every action.
Being sensible demands recognizing the user, learning or knowing her/his preferences and the capability to exhibit empathy with the user's mood and current overall situation. Different users have different preferred modalities of interaction (e.g., auditory, visual, tactile, etc.), this is shaped by education or it could be affected by physical and cognitive capabilities. A system that wants to effectively engage with a user should be prepared to offer assistance in a variety of combinations.
Humans have different attitudes towards privacy, generally this is a sensitive issue for most people and as such it should be approached with care and implemented with the assumption that the user value privacy and is allowed to set up how the system should deal with issues that relate to privacy.
Safety is another important aspect a system will be forced to look after, given this systems primordial role is to assist humans, failing to preserve the safety of humans will render any such system worthless and unusable.
Systems in this area are expected to have a degree of autonomy, the more autonomy the better, provided this does not come at the cost of other principles like safety. The system should be able to inform itself by learning from previous experiences and its intelligence should help adaptation to different circumstances in such a way that it does not require continuous programming.
A fundamental principle to be observed is that users should be always in control and should be able to decline advice from the system, impose their preferences, undo previous decisions and actions from the system and even disconnect the system altogether if it is perceived inconvenient.
Systems of this type should be unobtrusively immersed in the environments we occupy on a daily basis. That is, their introduction should not come at the price of environment and humans which were part of that space having to adapt to or change their fundamental interactions and behaviours.
A delicate balance of the combination of those principles listed above is fundamental for this technology to thrive and to gain widespread acceptance. If a system overwhelms the user offering help, or delivers the wrong assistance or at a time or mode the user does not want it then users will soon get tired and switch the system off. Human assistants are capable to balance all these aspects, some more successfully than others and on that basis they are appreciated or not. Artificial systems should aim to master the subtle skills that distinguish successful human assistants and make them acceptable companions [11].

Fundamental areas
The area of Intelligent Environments supports its developments on the relative maturity and degree of success achieved in several well-known areas of Computer Science (see Figure 2). We explain below how these areas contribute to the realization of Intelligent Environments.

Sensors and Actuators
There is a wide range of sensors with varying capabilities, allowing the measurement of [12,13], for example: • strain and pressure, • position, direction, distance and motion, • light, radiation and temperature, • solids, liquids and gases, • identification information, including biometric data, • sound, and • images They provide a variety of different inputs, that can range from a simple on/off value, to values in numerical ranges (e.g., temperature, and weight of a person), to richer data like fingerprints, sound, pictures and video.
There is no single formula to combine sensors in an environment for a specific problem and current developments arrange them in an ad hoc manner to suit a specific application.
Networks and Middleware: each intelligent environment has usually a variety of distributed sensors which helps to understand the current status of the environment. This flow of data is channelled to the main system through a wired or wireless network. This process presents the first set of major challenges to the system designers: how to merge in real-time all the influx of information, how to cope with incomplete or corrupt information coming from malfunctioning sensors, how to present the information in a way that can be useful to other higher decision-making modules of the system, and how to manage a huge number of devices and sensors? These and other problems are usually dealt with by a layer of software commonly referred as middleware which 'digest' the data coming from sensors to make it more useful to other software layers on top of them. One important task typically assigned to the middleware layer of a system is to facilitate interoperability, that is, help parts of the system (devices, network, etc.) created by different providers to understand each other and converge into a representation that is understood by software at upper levels of the system architecture [14]. There is still much work to do in this area as there is no standard middleware, i.e., massively adopted by the community worldwide and there is still substantial work to be done to make middleware more useful, for example, being able to describe capabilities, rather than just functionality.
Pervasive/Ubiquitous Computing: is a technological paradigm centred on the dispersion of a variety of devices with, sometimes modest, computing capabilities. This paradigm explores the development of systems which departs from the desktop PC centred paradigm and supports a shift towards a model that follows the user where it goes, transparently across different physical locations. This paradigm is related to user-centred computing and highlights the value of concepts like Context-awareness [15], the capability of a system to understand the current situation in the environment, to keep tracks of its evolution and to relate this knowledge to modules within the system that produces proactive reactions.
Artificial Intelligence: Autonomous decision-making is one of the implicit expectations about any intelligent environment, they are precisely deployed to provide services in a similar way other humans will decide to provide in the same circumstances. To achieve this autonomous decision-making capability, systems will usually apply AI techniques which allow them to perform: • Learning and Activity Recognition: the system is capable to detect within the vast amount of data produced by sensor triggering specific patterns of human behaviour which are meaningful to the services that has to provide [16].
• Reasoning: cognitive inference is essential for the system to infer whether it has to act or not and what action(s) should be taken. A variety of methods exist here, ranging from systems which are more rule-based to those based in biologically inspired models [17].
• Autonomy and autonomicity: provides the system with fundamental independence which is essential to decide when the system should or can act. This independence is needed at all levels, from assisting the users, to energy preservation and other internal decision which are more related to ensuring delivery of service, for example, selfreconfiguration and self-healing [18,19].
• Embedded and distributed: data processing and reasoning are tasks which do not necessarily have to be centralized and given an intelligent environment is supported by a number of interconnected devices part of this responsibility can be passed to the increasingly computationally capable devices physically distributed in the environment. [20] describes the benefits that practical experience suggests can be obtained with this approach and the current limitations and challenges developers will face at deployment time.
Relevant to these intelligent systems is the use of (a) Multiagent systems provides a flexible paradigm to model the different levels of autonomy and dependency that each component can have in a Smart Environment [21][22][23], and (b) Robots: providing a valuable tool both as an interface and as an actuator within a smart environment. Robots can provide an element of socialization [24]. They can also be disguised in the way of a tool that users can benefit from like an intelligent wheelchair which can help navigate a house to users with mobility challenges [25].
Human-Computer Interaction: Weiser's initial vision was very emphatic on the requirement that technology only will be successful if it becomes adopted to the extent of not being noticed [2], very much the way we use a fridge or a washing machine nowadays. Humans should be able to use devices in a way that does not demand vast amounts of training and specialization, needless to say, most of what it is on offer today in the areas of AmI and SmE fall short of this expectation. It is also fair to say that there is a significant part of the community which is doing interesting progress and is working extremely hard to overcome limitations in this area. Gesture recognition [26], gaze tracking [27], facial expression recognition [28], emotion recognition [29], and spoken dialogue [30], either isolated or combined to form multi-modal interfaces [31], are some of a range of options becoming available to facilitate communication between humans and the system in a natural way.

Challenging Aspects of IEs
There is a variety of problems that makes Intelligent Environments interesting and at the same time difficult to implement. We try to explain some of them in this section.

Users
Users are at the center of Intelligent Environments, in that respect this area overlap with the efforts of the scientific community focused on Person-Centric Computing [32,33]. The system should be able to help people of all ages and educational backgrounds, crucially those who do not have IT knowledge. Figure 3 shows a caricature that is often used in our area to represent the dangers of pushing technology in an insensitive way. praxis.cs.usyd.edu.au/~peterris). This represent the opposite of the predominant philosophy in our area, a mere accumulation of technology will overwhelm users. The introduction of technology has to be sensitive to the user and abide to the principle that the human is the master and the computer the slave and not the other way round [34]. This principles have been emphasized from the very beginning [2] highlighting the importance that unobtrusiveness and transparency of these services have for its success. Relevant here is also the differentiation made in [35] between System-Oriented, (Importunate Smartness) Systems takes/imposes decisions (e.g., "smart" fridge orders food, sometimes non sensibly) and People-Oriented (Empowering Smartness) Systems which make suggestions (e.g., fridge advises on feasible meals according to fridge content).
Intelligent Environments should also be aware of and be sensitive to multiple users in the same environment.
These multiple users may coexist, may be interacting, may be cooperating, or may even be conflicting interests.
Systems also have to be resilient enough to cope with users which will try to use the system in unexpected ways and with the richness and variability of human's behaviour on a daily basis.

Environments
The spaces where these systems can be deployed are very diverse. There are closed spaces with relatively well defined boundaries and others which do not have well defined boundaries which we can call open spaces. All of them can be roughly defined by the area (physical space) that the sensors can sense. Examples of closed spaces are: houses, offices, hospitals, classrooms, and cars. Examples of open spaces are: streets, bridges and car parks (for example for surveillance), fields (for agriculture), air (for airplanes) and sea (for underwater pollution measurement and tsunami early warning system). These environments are usually rich, complex, unpredictable, possibly generating substantial 'noisy' data, unstructured and sometimes highly dynamic (i.e., they change continuously or at least often).

Perception of the system
All intelligent environments are embedded in a world they have to act upon. The understanding the system has of the environment where is operating is directly proportional to the quantity and quality of its perceptive capability. In current systems that amounts to the sensing network that is connected to. This sensing network informs but at the same time oversimplifies reality.
The impact of the sensing network in an intelligent environment is huge. The intelligent system at the core of an Intelligent Environment base most of its decision-making on the perceived current situation which is composed out of the information perceived in real-time through the sensors. Sensors allow the system to perceive what happens in a place without a human being necessarily being there. But how accurate and useful this perception is? As a metaphor to understand how distorted the sensed perception of the world is we can think of driving on a foggy day (Figure 4). We are able to see part of the landscape around us, but we do not see all objects, we see some objects partially occluded and we see others in their entirety but fuzzy. To illustrate the practical implications of this impoverished depiction of reality that sensors bring to the system let us compare them with the richest sensing machine we know: humans. A pressure sensor can sense whether there is certain weight over it, so we can put it on a chair or a sofa and use it to sense whether someone is sitting but that information alone will not tell us univocally whether there is a person or a dog on the sofa and if we know a person is there we do not know whether the person is awake or has fainted. So often several sensors have to be combined in order to support the accurate understanding of a simple aspect of reality. Part of the problem is that underlying these systems there are requirements of achieving aims whilst keeping costs and computational complexity low ( Figure 5). On the other hand there are richer means to gather input data, for example an array of video cameras distributed in various places of a building or a team of robots equipped with cameras and other advanced sensing devices can move around an area and provide 'in situ' understanding of a dynamic environment quite close to what humans in the place may be able to perceive. This however will still have a cost and require such computational skills to process the rich input which very few can afford and which, despite constant progress in the area, is far from being accessible to the masses. At the same time, the richer the more information a device can extract per time unit, the more invasive and resisted on privacy grounds. Figure 5. Opposing forces, each one pulling in a different direction, the resulting system is a compromise of these. The next section explains how people working in this area applies all the knowledge gained through decades of advances in different fields of Computer Science to allow a system to understand as best as possible an environment and provide valuable decision-making to benefit people that interacts with that environment.

Applications
The range of possible applications for Ambient Intelligence and Smart Environments is vast and we can look at the future of the area with expectation and hope that it will bring to everyday life a range of available solutions.
Here we list some emerging applications driven by the demand of users, companies and governmental organizations: • Health-related applications. Hospitals can increase the efficiency of their services by monitoring patients' health and progress by performing automatic analysis of activities in their rooms. They can also increase safety by, for example, only allowing authorized personnel and patients to have access to specific areas and devices.
Health can be decentralized and made accessible at home through telecare and telehealth services in what it is commonly termed Ambient Assisted Living [36][37][38].
• Transportation. Transport is already benefiting from technology including satellite services, GPS-based spatial location, vehicle identification, image processing and other technologies to make transport more fluent and hence more efficient and safe. This progress is starting to emerge in the form of Smart Cars and Smart Road Network infrastructure [39,40].
• Education. Education-related institutions may use technology to create smart classrooms where the modes of learning are enhanced by technology that support students and lecturers inside and outside the classroom [41].
• Production-oriented places. Companies can use RFID sensors to tag different products and track them along the production and commercialization processes. This allows identifying the product path from production to consumer and helps improving the process by providing valuable information for the company on how to react to favourable demand and unusual events like products that become unsuitable for sale [42].
• Smart offices. They have been also the centre of attention and some interesting proposals aim at equipping offices with ways to assist their employees to perform their tasks more efficiently [43,44].
• Intelligent supermarkets: work has been conducted recently to develop the supermarkets of the future, where objects can interchange with customers auditory and visual information on its characteristics and interpret how customers move objects in what is a simplified version of a sign language between the customer and the shelf containing the objects [45].
• Energy Conservation: smart homes were the most prominent early examples of products advertised as intelligent environments which can primarily help house occupants to manage lighting and temperature automatically on behalf of the user. Part of the marketing implied they will provide a more efficient managing of those resources. People worldwide is taking those issues much more seriously today and Intelligent Environments can be one important instrument to achieve those goals [46].
• Entertainment: fun is perceived as an important part of human lives. Many houses contain now a wide range of devices to provide entertainment and fun for a diversity of ages. The sophistication of these games can be highly enhanced by technology which provides more immersive experiences, an important feature in modern gaming [47].

Limitations in current systems
During the last decade or so, this area has increasingly attracted interest, effort and resources. Still the complexities associated with the limitations of the technological infrastructure and its relation to the variety of humans they are supposed to serve is considerable. Below we try to explain the dimension of this gap through some features which can make a substantial difference on technology adoption.

Accurate context-awareness
An intelligent environment needs to made decisions that benefit the environment inhabitants. Naturally, the decision needs to take into account the context of the current situation. Computationally, context may refer to network connectivity, communication costs, and resource availability. The user context may include the user's profile (demographic, gender, preferences, habits) as well as current location, task, and social situation. The environment context may capture internal features such as lighting and temperature levels as well as the current state outside the environment. Also important, time context includes the hour of the day, day of the week, season, and year [48]. By combining heterogeneous sources of information including the user location, automatically-recognized activity, and online information (e.g., Facebook), an intelligent environment can build and use a contextual picture of the situation to reason about and act to improve the current situation.
While context-awareness is crucial for intelligent environments to provide effective decisions and actions, a danger is focusing on a too narrow understanding of the context recognition problem. Sensor data fusion techniques can combine disparate sources of information into a concise, usable contextual description [49]. An intelligent environment should seamlessly adapt to changing context or behaviors at an individual, social group, or community level. Intelligent environments deal with massive amounts of data and highly complex situations.
As a result, they also need to make decisions based on insufficient, incomplete and noisy data samples.

Balancing preferences and needs
Preferences (e.g., on meals, entertainment, house environmental conditions) and needs (e.g., medicine and schedules) distinguish us from one another and we even change some of those often due to unforeseen circumstances (e.g., weather) or to our own decision (e.g., we want to see ourselves slimmer). On one side it will be unpractical to design each system from scratch in an ad hoc manner for each person, on the other hand, a "one size fits all" approach to Intelligent Environment development will clearly not address all specific preferences and needs of each user. One option ahead is to create a generic system and then to personalize it, ideally the system should have a learning system which can learn how to serve the user better. However, the capability of the system to recognize, learn and update preferences and needs dynamically is a crucial problem still to be tackled.

"Mindreading"
Related to the problem described above is the problem of how the system can obtain an updated understanding of the preferences and needs of a user at any given moment. Some users may not be willing to speak to the system or to use any keyboard or device to explicitly indicate that the current situation (e.g., bad mood or in the presence of visits) advises against interruptions or that on the contrary a suggestion from the system may be welcomed (e.g., on a new film that has been released). Is there any way a system can understand whether the user is in more of a receptive or introverted mood? Can for example, the activities performed in the last hour and the way they were performed (e.g., slamming doors), biometric data (e.g., perspiration and pulse captured by a watch or ECG measured by a wearable t-shirt), and body language observed (e.g., through video cameras that focus on face gestures) be used to understand the emotional status of the user? So far all these research is reporting some moderated success on achieving specific technical goals [50][51][52][53] but they have not yet been used in a holistic and comprehensive manner that is meaningful to the field and to a real practical (e.g., commercial) application.

Coping with multiple occupancy
Working with one user has proved difficult enough to produce reliable affordable systems capable to serve a person. Some advances have been made and some prototypes have been deployed and are currently being tested but it is clear there is still a long way to go. Things get more difficult when the system is supposed to deliver differentiated services to more than one user in the same environment. The first problem is identifying each one of the users at all times. Current technology is such that univocally identifying a person is proportional to the cost and complexity of the identification mechanisms. Let us assume the user wears an ID tag which can be read by a device approaching meaningful points like doors or objects of daily use. This imply the replication of reading devices all along the house to know where the user is and to deliver meaningful services according to the context (e.g., location, time, etc.). This still leave us with the problem that each user may confuse the tags and the system will deliver services to the wrong person. Other technologies can be used, e.g., face recognition through cameras, but they also have negative side effects, e.g., privacy.
An intelligent environment can rely on these biometric approaches to identifying individuals in a space. An alternative approach is to draw from behaviometrics. In this case the environment performs identification by recognizing the movement or behavioral patterns that are typically associated with a specific individual. Using behavior to classify individuals into groups (e.g., friends, threats, salesmen) is a skill all humans possess.
Designing intelligent environments to make the same kind of prediction is a natural extension of sensor-based systems [54]. Another typical problem arising when more than one user co-exist in an environment is described in the next section.
Humans have lot in common but it is very difficult to find two human beings with exactly the same preferences and needs. Whether it is on T.V. channels or meals, diversions will arise. How the system should react to those situations? can an artificial system become an effective mediator amongst humans? What happens when all alternatives to reach an agreement fail, will the system give priority to one human, based, for example, on a social hierarchy? [55] This is again an important issue because if some user or group of users find often their needs and preferences are not favored against those of other co-habitants then they will probably feel unsatisfied and consider the system useless.

Deploying reliable systems
Intelligent Environments are designed to assist and support people, in some cases are intended to take care of people in vulnerable situations, the potential for disaster when a system fails is high. Assuming systems should be developed to perfection is naive, companies are decided to exploit this market and the best we can do is to create and make available methodologies and tools that can be easily incorporated to the development process facilitating adoption by industry. There are reports which eloquently explain how the complexity of the software needed to govern these systems can easily develop hidden complex interactions which create instability within the behaviour of the system [56]. Doing nothing and passing the responsibility to the user (which usually is not technically prepared to thoroughly assess what is being installed in an environment) is unethical. This is an aspect our community should take very seriously given the potential to harm other humans.
Software Engineering has been working on these areas for long but the systems we consider here have a mix of sensors, networks, intelligent software, human-computer interfaces and users which makes thorough testing and verification to exceed the complexity traditional techniques and tools can cope with. It is difficult to test contextaware software in comparison with other software, because the former needs to be tested in its target contexts to develop reliable systems. A solution is to run such software with contexts e.g., locations and local-area networks, by emulating context or migrating software to the target locations [57]. Also, we often need formal methodologies to simulate or verify intelligent environments to confirm whether they can satisfy the specifications.

Ethical dimension
Systems which are designed to serve humans have to do so in a sensitive way. This area which aspires to be so intimately connected with our daily lives has to take this dimension very seriously.

Privacy
The more a system knows about us the more is able to serve us as we would like. The system may know we like chocolate ice cream because we have told the system explicitly or because we allowed the system to infer that from the last two months purchases from the supermarket. If we have not told the system we hate pistachio flavoured ice cream then the system may one day incur in what we consider a wrong decision.
We have discussed above the limitations of simple sensors and how they feed the decision-making modules with a simplified perception of reality. From all the data gathering devices we have available, video cameras are the most successful ones in the sense they provide us with fuller and crisper information about the fragment of the environment they are observing. Cameras provide more information that is useful but also have the potential to absorve information the user may not like to be captured by a camera. To illustrate the point think about extreme situations like having a camera in your own bathroom or bedroom at home. Sure there are many other situations where cameras can be used and indeed are being used. What is acceptable or not acceptable to share changes enormously with cultural values and the situation being observed. Some users are happy to give up some degree of privacy in return for increased safety; some humans will never accept a camera recording their daily life activities.
Researchers and developers have to work out systems which adapt to the different degrees of sensitivity users may have when blending technology with daily life affairs.

Multiple stakeholders
Sensors available in an intelligent environment may be owned and managed by different organizations or people.
When such sensors in a space acquire information on targets, e.g., people, the information may be held by the targets or the administrators of the space, rather than the owners or operators of the sensors. That is, intelligent environment s tend to have multiple stakeholders. Before using information from intelligent environment s, we must adjust interests among all potential stakeholders. This problem becomes serious when IEs are supported in public spaces, e.g., office buildings and streets. Furthermore, we need to limit free riders in intelligent environment s, where a free rider is someone who consumes a resource without paying for it, or pays less than the full cost. This is an economic problem in the sense that it leads to the excessive use of a common property resource. However, if too many people do this, users cannot be provided with services from intelligent environments. Intelligent environments need mechanisms to limit free riders. On the other hand, when an emergent situation, e.g., fire and disaster, intelligent environment s should assign much resources and services for some specified users, e.g., rescue teams. Since intelligent environments become social infrastructures in future, researchers and developers have to solve multiple stakeholder problems, including free rider problems.

Safety
Sensors record information about our daily activities and there is technology that can mine the recorded data to extract patterns of behaviour. The idea being that negative behaviours can be indentified and discouraged and positive ones encouraged and reinforced. But what happens if all that private information fall in the wrong hands?
There have been many incidents where sensitive digital information from governments and military forces around the world has been forgotten in a pen drive, CD or laptop at an airport or a train. We can get many unwanted calls per week because a company (e.g., bank or electronics shop where we bought something in installments) stored our personal details in a PC and the company that do back-ups sells the information (most probably without the bank's or shop's knowledge) to SPAM making companies?
It is not unlikely then that the same can happen to sensitive private data and our habits and illnesses can be accessible to groups of people who are eager to take profit of that knowledge. Both economic and personal safety can be compromised as a result of personal data falling in the wrong hands. As a result, users will become more and more aware of this and extra measures have to be provided to bring peace of mind to the early adopters of this technology. If the market is labeled as unsafe by the users then all those involved will lose a fantastic opportunity to benefit society.
Given the inherent intrinsic complexity of systems of this anture and given the extrinsic complexity of humans expectations from technology, these systems will unavoidably fail from time to time in some way or another.
[58] alerts of this situation and advocates for all the different stakeholders to emphasize the need to give safety a higher status in the agenda. Four first steps are proposed: a) A more formal software engineering approach to systems design, b) enhanced understanding of human-computer interaction, c) a partnership between the technical level and human, d) a higher ethical dimension. It is also recognized they are not a solution but only a first step in the right direction.

Conclusions
We have provided an account of a new emerging area, one that can have an important role in a transition towards computing devices supporting our daily life to an extent not experimented before.
There are still considerable challenges, which we highlighted above. There are technological limitations both in hardware, which is currently based on limited and unreliable sensors and networks, as well as in software, forced to make good decisions out of a limited perception of reality, and to deal with a number of users with different needs and preferences.
Privacy and safety concerns also have to be carefully considered for these systems to be adopted. At the core of these systems there is a paradox where for us to be served best, the system needs to know more about our daily life, which in turn makes us more vulnerable to system failure.
On the other hand there are important benefits for humanity if this technological enterprise succeeds. Also, a scientific point of view it is an interesting catalyst for blending efforts from different areas of Computer Science which have achieved relative success and maturity (AI, HCI, communications, etc.). An intelligent environment necessarily needs a multi-disciplinary approach, this includes as well the professional expertise incumbent to the application area, hence a Smart Home to support independent living may require the involvement of social workers, nurses and architects. This is a very interesting source of applications that has an impact on society yet has well defined physical boundaries (e.g., a Smart Home or a Smart Car) where to deploy specific services (e.g., order shopping for me, wake me up if I show signs of falling asleep when driving).
The area is well suited for incremental development, i.e., adding services gradually as the system and user needs unfold. Whilst previous AI research was predominantly inspired by challenges that benefited either a few in very specific places (e.g., expert systems) or all humanity in a very indirect way (e.g., space exploration), this technology can potentially allow us to achieve a variety of benefits for many humans as the services address comfort, economy, safety and other concerns of humans daily living experience in the environments where they live and work.
Still these applications present reasonable challenges (solutions are feasible for the state of the art in a relatively short term) and are a new inspiration for CS professionals to produce something tangible for society which still demands ingenuity and responsible development. This is hopefully the era when computing is finally blended in our lives not to benefit the few but the masses, not in rare occasions but continuously.