Towards Green IoT: Strategies to build energy efficient client applications
With this summer job, you will:
– discover green IT,
– improve your software engineering skills,
– work in an academia research team and maybe produce a research article
Information and communication technology (ICT) represent 10% of the worldwide electricity consumption, and 4% of CO2 emission. In this context, green computing is becoming an important concern for every software developer.
The rapid expansion of the Internet of Things (IoT), the explosion of data traffic and the increasing number of mobile devices are the major causes of the growth of ICT energy consumption see this report).
In this internship, we target energy awareness in IoT software deployed on mobile devices.
The IoT has rapidly evolved in recent years as an umbrella term for smart objects, services, and applications connected through the Internet. It is made of smart sensors, actuators, gateways, IoT platforms, and mobile devices.
IoT platforms have been proposed in this context to deal with the high degree of hardware and software heterogeneity in IoT environments, thus abstracting away the specificities of devices, promoting interoperability, and leveraging IoT application development.
Goal of this internship
With this internship, we aim at evaluating the energy consumption on the client side of IoT applications connected to IoT platforms. The final objectives are to provide energy-awareness for IoT application developers, highlight some good practices for the
IoT developers and propose a formula that could calculate the energy consumption of the IoT client application.
We use a watt-meter with a software API to measure software energy consumption on the mobile devices.
One of our purpose is to evaluate the cost of IoT applications in terms of energy consumption. We will evaluate different interaction patterns (i.e. synchronous calls and publish/subscribe, grouping interactions).
A first work on this subject has been realized by ASR students the results are summarized here. The results still need to be consolidated.
- Document yourself on the green computing issue for example read the lean ICT report
- Discover the Yocto-watt-meter and get some experimental results
- Produce a testing software, and produce some experimental file results, use those results to produce graphs automatically
- Define the experimental process on a real IoT system with sensors and emulated sensors, IoT platform and IoT applications
- Produce the architecture of the Distributed system (deployment choices, framework choices, software)
- Produce the testing IoT application both on laptop and on mobile phones
- Drive the tests and analysis and make propositions about good practice to write IoT applications
- Produce a report
– Language: Java
– Agile methodology
– Git repository
– Build automation with Apache maven
– yocto watt-meter (see manual)
–yocto sensors (CO2, Light, Weather) (example of java library for the CO2 sensor)
– IoT platforms and client middleware
– OM2M an implementation of the OneM2M standard:
– Fiware-Orion an IoT platform supported by the European Community
– IoTvar middleware to easily declare IoT variables (optional)
We are looking for a candidate:
– Fond of java programming and software engineering (testing, design patterns)
– With a marked preference for automation (for build, reporting, documenting, testing) rather than “clickodrom”
– With good communication skills
Distributed Systems, Software Engineering and Middleware
Institut Polytechnique de Paris