At this year's Codemotion Rome, Gabriele Provinciali, Oracle Solution Architect, has presented Proxima City, a project focused on smart city IoT and microservices to improve our city and lifestyle. Let's take a look how Proxima City could be the new frontier of services for smart cities:
The origins of Proxima
The PROXIMA city project was created by software architect Gabriele Provinciali and his team. On a sultry day in July, perhaps thinking about the quickest, freshest route to the parking lot, an Oracle development team thought about the usefulness of developing an interconnected smart city prototype. Once the decision to start the project was taken, the team gave itself some well-defined rules:
• If you proposed it, do it
• If you do it, failure is accepted
• If you don’t know how to do it, RTFM
• If you aren’t having fun, don’t do it
Having set the general guidelines of the game, the team kicked off the project on August 2, delivering it less than four weeks later.
Provinciali and his team built a Lego model of an envisioned smart city that could improve the lifestyle of its citizens. Their goal was not simply the realisation of a prototype, but the development of both hardware and software that could be mobile and reallocated.
We asked the PM team what was the greatest difficulty they encountered:
“One of the obstacles we have faced is precisely the conception and realisation of integrated Use Cases, rooted in the real world, and in which people could recognize themselves as citizens, users or customers. People who visit Proxima City are attracted to Lego buildings, but at the end of the path they have a clearer idea of the value that technology can generate for all interlocutors "
Developing an SDK for Robust Smart City Operations
In order to respond to concrete needs based on real data, the team created an SDK useful in communicating actual physical world events.- The project would not have been effective had it been limited only to responding to simulated events.
Provinciali and his team decided that the most effective way to develop PROXIMA was to use a microservice architecture, rather than a monolith. For non-technicians, the microservices architecture involves a greater complexity in the development and a greater initial effort, favouring the scalability and the programmability of services, since everyone communicates autonomously.
To achieve this goal and foster the speed of communication between sensors and software and between software themselves, Provinciali decided to push forward an architecture with two separate environments:
• An edge computing part useful for reducing latency in data processing that allows real-time responses and bandwidth saving.
• A cloud computing aspect for the storage and processing of actual data, which makes the dialogue of data different microservices possible.
The Power of the Edge with Arduino and Raspberry Pi
The edge computing environment was created with Arduino – small hardware made up of electronic cards with microcontrollers – planted in Lego. Each Arduino was connected with the relevant sensors. The hardware was used to generate events that could then be sent to the cloud for the purpose of enrichment. Industrial sensors were also added to offer the most holistic service possible and the use of a Raspberry Pi was incorporated.
The MQTT communication protocol was used to allow the Arduino and industrial sensors to exchange data with the Raspberry Pi. The Arduinos, given their minimal computational power, rely on the Raspberry Pi that acts as a gateway for the cloud environment. To provide a better monitoring service for the Edge environment, an analytical dashboard was also designed. While this is something of a proof of concept, the compelling use cases already evidenced in smart city initiatives mean than we can expect to see a roll out across cities in the future.
Take a look at the slides and if you speak Italian, you can take a look at Gabriele's presentation