Keywords

1 Introduction

End devices capabilities have increased tremendously. During the last few years, their storage and computational capabilities have increased in order to sense more information from the environment and execute more complex tasks. For instance, virtual assistants can identify what people are saying and interact with surrounding devices depending on their commands. This increase in the devices capacities has favoured the deployment of paradigms such as WoT (Web of Things), where they are integrated to the Web. This integration allows different devices to coordinate and their services to be consumed by any application; hence making them more accessible for applications and humans [7].

A constrained factor of these devices is the resource consumption (battery, data traffic, etc.). Many of these devices, such as mobile phones, smart speakers, humidity and temperature sensors, etc. are battery powered. Likewise, some of them have to interact using the mobile network, either because they are mobile or because of their specific situation, which entails a consumption of the data tariff. In the development of WoT applications integrating these devices, the correct management of these resources is crucial for user satisfaction. It is well known that resource consumption, is a factor determining the success of WoT applications [8].

The consumption of a WoT application is substantially determined by the architectural style applied. The most widely extended architecture used by these applications and devices is server-centric, in which end devices act as simple clients sending the sensed information to the cloud and getting the actions to execute from it. This architectural style makes sense for those devices that do not have enough capabilities for storing and computing the sensed information. Nevertheless, there are other emerging mobile-centric architectures [6] that exploit the capabilities of end devices to improve the user experience. For instance, reducing the response time by using data closer to, or even inside, the targeted device. Resource consumption is also a concern for these architectures [2]. Server and mobile-centric architectures could be similar to centralized and distributed architectures. Initially, one might think that the behaviors implemented with one, can not be achieved with the other. Our experience has shown us that similar behaviors can be obtained with both, but that their main difference lies in the resource consumption [4]. Thus, for a greater likelihood of success, the development life cycle of WoT applications should include an early analysis of the resource consumption of different architectural styles.

During the last few years, researchers have been working on defining methods for measuring in real-time the consumption of an application, conceptual frameworks guiding developers on an early estimation of the consumption or including activities in the development process for that specific purpose. Now, all these techniques should be incorporated by researchers and the WoT application development industry.

In this tutorial we will detail different architectural styles that can be used for the development of WoT applications, when and how the consumption of a mobile application should be estimated, which software tools could assist in this process and which tools could be used for the deployment of this application on both Cloud environments and end devices.

2 Tutorial Structure

This tutorial has a duration of half-day (three hours) including both lectures and practical activities. It is divided into three parts:

  • First, lectures will be focused on highlighting the importance of selecting a correct architectural style for improving the user experience. Different architectural styles will be detailed and a running example developed with the different styles will be shown to open a small debate about which style would be the most appropriate one.

  • Secondly, we will introduce the resource consumption of WoT applications as another dimensions that has to be taken into account during the architectural decision making process. To estimate this consumption, a new developed tool will be explained [3]. This tool allows developers to estimate and compare in early phases the resource consumption of an application. This tool is based on previous works of the presenters [4]. To use this tool, developers should have a basic knowledge of JSON [5], since it is the language used to provide information about the functionalities of the application and to obtain consumption estimates.

  • The last part of the tutorial will be focused on the deployment of WoT applications on smart devices (such as smart phones). To that end, we will explain how an application detailed using the OpenAPI standard [1] could be deployed on both a Cloud environment or an end device.

This tutorial and the related tools have not been previously presented in other conferences.

3 Learning Objectives

At the end of the tutorial, attendees will get knowledge on:

  • Architectural styles that can be applied to develop WoT applications.

  • Awareness about the resource consumption as an important dimension to take into account in this process.

  • Tools for estimating in an early phase the resource consumption.

  • Tools for deploying an initial design of a WoT application.

4 Intended Audience

The tutorial is designed for both industrial and academic attendees with an interest on developing WoT applications taking into account the resources they consume. The technical background desirable to follow the workshops is: being able to read JSON and YAML files. It will not be a requirement to know the OpenAPI specification, since the most important objects will be explained during the tutorial.

In order to participate in the hands-on part of the tutorial, a laptop with a text editor and a Web browser will be required.

5 Biographies of Presenters

During the last few years, the presenters have worked on measuring the resource consumption of mobile applications, proposing a conceptual framework that can be used by developers to get some early estimations [4]. In addition, the presenters also work in new mobile computational models for storing, computing and sharing the information gathered by an end device. Below, a brief biography of the presenters can be found.

Javier Berrocal is an associate professor in the Department of Informatics and Telematics System Engineering at the University of Extremadura (Spain) and co-founder of the company Gloin. He received a PhD degree (with European Mention) in 2014. His main research interests are Mobile Computing, Context-Awareness, Pervasive Systems, Internet of Things and Web of Things.

José García-Alonso is an associate professor in the Department of Informatics and Telematics System Engineering at the University of Extremadura (Spain) and co-founder of the Startups Gloin and Viable. He received a PhD degree (with European Mention) in 2014. His main research interests are eHealthCare, eldercare, Mobile Computing, Context-Awareness and Pervasive Systems.

Juan Manuel Murillo is a full professor of software engineering at the University of Extremadura and co-founder of the Startups Gloin and Viable. His research interests include software architectures, mobile computing and cloud computing.