At Codemotion Rome 2019, Gabriele Provinciali, Oracle Solution Architect, presented Proxima City, a project focused on IoT and microservices to improve our city and lifestyle. Proxima City could be the new frontier of services for smart cities.
Introduction
On 22 and 23 March 2019, Codemotion hosted one of the most hotly-anticipated events regarding coding. During the conference, project managers, software architects and developers benefited from the fantastic panelists. Various industry professionals attended the conference as speakers to provide valuable knowledge on the subjects of IoT, software development, leadership and teamwork methods, blockchain, etc. Among many companies, Oracle presented several ideas, including its own solution for a programmable smart city.
Smart City: the Proxima Project
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 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 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“
Development
After underlining the guidelines of the project, let’s move on to analysing its development.
In order to respond to concrete needs based on real data, the team immediately created an SDK useful in communicating actual physical world events.
In fact, the project would not have been effective had it been limited only to responding to simulated events.
Once the SDK was developed, 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
Smart Cities and Edge Computing
The edge computing environment was created with Arduino – small hardware made up of electronic cards with microcontrollers – planted in Lego. Each Arduino is 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. In addition, industrial sensors have also been added to offer the most holistic service possible. The communication protocol used to allow the Arduino and industrial sensors to exchange data with the Raspberry Pi is the common MQTT. In fact, the Arduino, given their minimal computational power, rely on a Raspberry Pi that acts as a gateway for the cloud environment. To offer a better monitoring service for the Edge environment, an analytical dashboard has also been designed.
The guidelines for the development of the Edge part were very clear; the team had to guarantee an architectural style:
- Inspired by microservices
- Independent
- Heterogeneous
These guidelines have been fundamental to achieve the set objectives. The team had to avoid exposing itself to the domino effect of technical problems that would have caused huge scalability problems.
Cloud Environment
The cloud environment was managed with the implementations shown in the image:
- Iot cloud service for data collection
- Kafka for the creation of a chronological tape of events
- Stream analytics: for data indexing
- Autonomous DWH: for the creation of final reports
- Visual Builder: to help create the User Interface
Conclusion
The Oracle team succeeded in developing a programmable smart city in just one month. After taking a quick look at the software architecture, we can move on to interesting applications for citizens, city leaders and stakeholders.
In addition to the useful dashboards for reading data analysis, the designed microservices are useful to monitor temperature and air quality, managing parking lots and garbage, finding the nearest services and shaded areas and many other uses.
Although the project was born as a parallel activity, it was a huge success. The city of Lego was exhibited in Singapore, Dubai, London, Stockholm, Brussels and Paris. Soon it will be shown during the Oracle event to specify that its services are NOD: Not Only a Database.