We were requested to develop a Web application (Proof-of-Concept) for managing INSA's rooms . This application must allow automatic closing windows, doors, turning on heating, turning off lights ... etc. This application relies on software services, sensors, and actuators. The goal is to retrieve data from sensors and analyze them to enable taking decisions.
Through software services (microservices), the application retrieves data of sensors (temperature, presence, ...), and according to the values of the retrieved data, actions on actuators can be triggered. The application is based on microservices and implements the followings scenarios.
Each sensor and actuator is a micro service and thus, we have identified 3 categories of microservices: Sensors, Actuators and others.
Temperature
Presence
CO2-Humidity
Light
AC - Heater
Doors
Windows
Alarms
Lights
Controller
Database
Clock
We use the presence sensor to determine if we should activate an actuator or not. For instance, we won’t turn on the lights if no one is in the room. Every scenario are led by the presence sensor. For now, doors and windows are controlled together. The most important microservices is the controller that will managed every scenarios.
Respectively, each actuators and sensors share the following architecture. If you want to know the details about how each sensor and actuator are controlled you can check my report on my Github page (link available below).
We use a simple node-red flow to tests our scenarios. Between each scenarios we reset our sensors. We defined 5 scenarios in our flow:
Here is the node-red flow we use for our tests.
We also made a demonstration video available along the flow in my Github repo.
This section describes the context of the subject, my accomplishments and a summary of the skills I have acquired.
The course runs from November to January and is evaluated in the form of a project. I realized this project in collaboration with GENEAU Téo and KHALED Walid.
The work done during this project is to be put in parallel with Software Engineering which approaches the project organization with Jira. The biggest problem for this project is its very uneven distribution in the time schedule, which makes the work very difficult. This subject is evaluated by a report that you can find below.
Before the practical works for the project, there are tutorials allowing us to learn the concepts. These tutorials are very well guided and therefore carried out and allowed me to progress very quickly because almost all the problems I encountered were referenced in the tutorial.
To go back to the schedule, we had two sessions placed less than a day apart and another one three weeks later, all in four practical work sessions. Moreover, this last session is placed just before the portfolio oral.
Despite this big problem, I was still able to understand all the concepts of the course.
This subject uses the courses and projects in Java realized in the last years but more mainly in the courses of the subject themselves.
I am now able to set up microservices and deploy them on servers. I know how to start from scenarios and to imagine an application responding to these scenarios.
This section presents a comprehensive analysis of all the knowledge and skills acquired during this experiences
Know how to define a Service Oriented Architecture
Deploy an SOA with web services
Deploy and configure an SOA using SOAP
Deploy and configure an SOA using REST
Integrate a process manager in an SOA