Keywords

1 Introduction

The relevance of the Internet of Things (IoT) increases as more and more connected devices are developed. One of the general purposes of these devices is to make people’s life easier, simplifying tasks or executing them automatically.

For these systems to achieve their goals, they must fulfill their users’ needs. For that, they have to be manually configured by the users, who often do not have the necessary technical skills, with the consequent investment of time and frustration this can cause. This, which today may be a serious drawback, in the near future in which it is estimated to be 50–100 billion of smart devices [10], may be unmanageable. Likewise, it is not enough to configure the devices once at the beginning, but also users must reconfigure them as their habits and needs change.

These drawbacks may be addressed by developing software capable of adapting its behavior to the people’s needs.

Similar problems have already been detected by other researchers [5, 13]. Additionally, several research areas can contribute to solve them, specifically Context-Oriented Programming (COP), Ambient Intelligent (AmI) and Machine Learning (ML).

Therefore, the problem statement faced in this PhD. work is that the interactions between people and devices requires too much attention and time from people. With the growth predictions of IoT in the near future, this demand may become unmanageable.

The alignment of this proposal with ICSOC corresponds to the development of technology that allows the creation of services to be deployed in smartphones, attending to the people’s preferences and the environment that surrounds them.

The rest of the paper is structured as follows. Section 2 describes related fields and hypothesis about our proposal. Section 3 presents the main objectives of this research. Next, Sect. 4 shows the preliminary results. Finally, Sect. 5 details the evaluation plan of this research work.

2 Related Fields and Hypothesis

This work main hypothesis is the following: By using paradigms such as AmI, COP and ML; and smartphones, that learn about their owners habits and preferences, the interactions between users and IoT systems can be automatized according to the users’ preferences.

To address this, smartphones, in combination with the predictive models created through ML techniques, could be used to discover patterns of behavior. This can be done by using one of the most popular ML branches, Deep Learning (DL) [8], taking as input the data gathered by the smartphones about their owners’ activities.

By analyzing the information gathered by the smartphones’ sensors, we can identify what actions people are doing, at what time, where or when, and which IoT devices they interact with. In this way, we could be able to automate tasks, or predict future behaviors.

Several research works support this hypothesis. First, AmI tries to make everyday environments sensitive and adaptable to people [12]. However, AmI needs to know the users’ preferences to establish when a device should act. This is a complex problem when the needs of several people have to be analyzed, specially when their presence was not originally planned within the system.

Second, COP [6] allows software developers to define the behavior of the applications, allowing to activate or deactivate certain behaviors or functionalities depending on the contextual information. However, these programming models require the different behavior to be defined at design time [7]. Behavior depend on users’ needs and preferences, as well as changes over time. For this reason, it can be difficult and inefficient, to try to anticipate all possible behaviors at design time. Given this, the possibilities of adaptation of the software would be limited to a certain number of predefined contexts in the source code.

Third, the supervisors of this PhD. work are focusing on solutions to improve the integration between people and IoT systems through the use of smartphones, such as People as a Service (PeasS) [4] and Internet of People (IoP) [9].

Finally, attending aspects of human activity, Cook et al. [11], proposed an approach for recognizing complex activities of daily living, by using body-worn sensors and ambient sensors, to provide additional hidden context.

We are aware that there are many proposals for software development whose behavior is adapted to the context, but they do not cover in many cases the above mentioned problems. Thus, the research challenges that we address are several. First, the lack of a unified model of person-IoT interaction. IoT devices are produced by various manufacturers, each with their own interaction model. Second, the lack of an automatic negotiation model for the interaction between people and IoT devices according to the people’s preferences. Third, the absence of learning models of people’s preferences from their interactions with IoT devices. If these problems could be solved, a better integration of people in IoT environments would be obtained.

3 Research Objectives

In addition to the general objective that follows directly from the hypothesis above, this is to achieve a better integration of people with the IoT by making the devices learn about their owners. This thesis has the following specific objectives:

  1. (1)

    Design an architecture where people and connected devices are represented. The architecture must support the identification of the people and devices that are present in a situation, their connections and the automatic configuration of the devices’ behavior according to the preferences of the people. The main contribution to be derived from this objective will be an infrastructure that can contribute to the definition of a standard for connecting people with devices independently of the manufacturer.

  2. (2)

    Propose a learning model about people’s preferences. This model will be hosted on smartphones and must, therefore, meet the resource restrictions of these devices. It will be provided as a service from the smartphones to the architecture in order to make the preferences of all the involved people known. The main scientific contribution associated with this objective will be ML algorithms adapted to be executed in smartphones and prepared to manage an important and larger volume of data coming from a single person. By labeling these data at the beginning, we will study people’s routines, and use them to train DL models to predict people’s future routines.

  3. (3)

    Propose a programming model for the architecture. Based on the capabilities of each device, it is possible to develop software that will satisfy the people’s preferences. The main contribution associated with this objective will be a programming model that, besides allowing programming strategies for specific contexts, will allow strategies to emerge once a context occurs. Neither the context or the strategy will be defined at design time.

The next section shows our architecture, detailing how through the context and the user profiles, it could facilitate the handling of IoT devices.

4 Preliminary Results

This work has already achieved some preliminary results regarding the objective 1. In particular, an outline of the architecture supporting the concept of Situational-Context (SC) has been presented. In [1], SC is defined as the composition of the virtual profiles of all entities involved in a given situation. The objective of a situation is to achieve the highest level of comfort possible for all participating entities. This is achieved by satisfying the greatest possible number of goals based on the available skills. Understanding by entities in a situation both: smart objects, and users represented through their smartphone.

According to [1], entities have two fundamental properties: goals and skills. Goals can be understood as an entity need that must be satisfied. For example, a user may need to turn on a lamp when a room is dark. Skills are those capabilities that can solve certain goals. For example, a lamp has the ability to increase the luminosity of a room. Thus, we work in a distributed environment, where the entities collaborate with each other to meet their goals.

Related to the above and to objective 3, the programming model aims to establish a new way of developing software for IoT systems. To do this, this model must be based on an architecture that allows defining the entities of a context. The architecture would be designed according to the Service-Oriented Computing paradigm. Figure 1 represents the components of the architecture:

Fig. 1.
figure 1

Components of the proposed architecture

  • Connectivity Manager: Establishes the links between entities in a context. It sends and receives information from other entities by invoking services. This information is relative to goals, skills, history, etc. Communication between entities can be done using protocols like Bluetooth or WiFi. This is still undefined.

  • Entity Manager: Entity’s goals and skills will be defined, as well as its particular information, activity history or privilege level in the context. It will also have services that interpret data from the environment, through internal sensors, to be used in combination with the information provided by other entities when developing strategies.

    • History Service: It storages the activity history. These activities are the result of interactions that have occurred in the past with other entities, why they interacted, when, where, what specific situation was being produced, etc. Thanks to this, further activities could be predicted.

  • Context Manager: It is responsible for creating/updating the contextual map. It will also be in charge of activating or deactivating strategies.

    • Contextual Map: Each entity will have its own contextual map based on the entities’ goals and skills that surround it. So, each entity can know what goals can be solved with their skills. For instance, if a light has the ability to illuminate a room, it must be aware that it can do it.

  • ML Manager: Covering the objective 2, it is responsible for the entity learning. Two types of learning can be differentiated. The first, individual, where the entity will learn from its own routines. The second, collective, in which the entity will learn from the entities that surround it within the context, with the aim of solving goals that their skills allow.

    • Strategies Definition: It analyzes the goals and skills to determine what goals can be addressed by the capabilities available in the contextual map. In addition, it must be consider that a goal could be solved using several different strategies.

    • ML Performer: It analyzes the activity history of the entity, allowing the system to learn and detect patterns of behavior, with the aim of automating tasks in the future.

From this architecture, software developers for IoT systems could work on new solutions. These solutions can use the goals and skills of different entities to provide new strategies to solve goals, or use the communication and learning mechanisms of the architecture, to add new skills to existing systems.

5 Evaluation Plan

Although this doctoral work is still in an initial state, we have developed some proofs of concept that validate SC in IoT environments. Besides, there are preliminary works to deal with the exchange of information at the network [3].

Our proposal may seem ambitious, however, as stated above, this work is still in an initial state. The full scope of the work will be discovered during its development. First, the architecture development. This task will focus on the development of services for the exchange of information between entities and strategies resolution for one and many users. We expect to achieve this in the second quarter of 2018. Second, a learning model, that will pursue executing ML algorithms in smartphones and to predict future actions based on the users’ activities. It is planned that this task will provide valid results by the end of 2018. Next, the programming model. This will include a skills and abilities standardization through an ontology and using ML for strategies resolution. This task will be extended throughout 2019.

The case studies associated with these tasks will be developed under the 4IE project. A three years European project focused on gerontology [2].

In conclusion, the architecture and programming model that this thesis proposes will try to take full advantage of the features that IoT devices offer, while facilitating the task of developing software adaptable to them.