How to Design and Develop Smart Solutions with Snap4City: Introduction
Snap4City based on Explainable Artificial Intelligence provides smart solutions for the city users and decision support systems for operators simplifying and synergically improve the life in city and lands, coping with SDG and 15 MinCityIndexes. Effective ready to use solutions for: mobility and transport, environment, energy, industry, justice, …
Snap4City covers full Digital Twins, from Smart Data Models, High Level Types, to the 3D for the whole city and single building at low costs; enabling the creation of diffuse smart city solutions and Living Lab on cloud and/or on premise, on which stakeholders can easily adopt a plethora of solutions via an almost no coding platform. The Snap4City full stack platform is 100% open source, official from FIWARE, EOSC, Node-RED, etc.
According to scenarios analyzed in developing several smart applications and tools into the multitenant large infrastructure of Snap4City, a best practice has been derived for the development of smart solutions for operators, final users, city users and decision makers. The Smart Solutions are characterized by:
- coping a large number of data types, exploiting unified data models and tool, such as: IoT devices (sensors and actuators, may be based on Smart Data Models, IoT Device Models, etc.), POI (Point of Interest), typical time trends, KPI, heatmaps, constrained scenarios, traffic flows, personal data, user profiles, maps, orthomaps, shapes, GIS data, trajectories, origin destination maps, scenarios, etc.; They need to be indexed according to their semantic relationships (spatial, geographical and temporal) to facilitate the search and extraction of new knowledge for smart applications;
- highly dynamic smart city solutions, from simple (data rendering of info and statistic data) to complex (early warning, predictions, prescriptions, optimization, what-if analysis and simulations) without limiting the flexibility by relegating logic in coding;
- controlling and managing the status of the processes and data flows using the same tool and interface. This means that it must be easy to pass: (i) from a data to the processes involved in their production/exploitation, and (ii) from the process/dashboard/application/analytics to the specific data exploited and/or produced, while the API identification is a too generic access;
- Interoperating with a large range of third-party applications, which can provide data, retrieve data, intrinsically integrated in the data and process workflow, and perform data analytics, etc.
The above requirements aim at creating a support to be exploited during the whole application life cycle (development, maintenance, exploitation/extension and change) in the dynamic and collaborative environment based on microservices for smart city, and it can be extended in other domains. This would allow the Operators to optimize the services and (cons)training the developers to exploit data and services rather than reinventing a solution from zero for each new application development. These requirements motivated the research, and the modelling of the solution described in this paper. Thus, reducing the time to develop by reducing the time to (i) identify and exploiting the patterns developed by other developers, and to (ii) identify the relationships to solve the problems. This makes a multi-application framework easy to evolve and scale.
The design and development of these solution is much more complex than classic software developments approaches, and thus the development life cycle has been updated. Peculiar aspects of these distributed and data intensive solutions (which can belong to the cyber-physical solutions) are the need of: (i) fast proto-typing, (ii) collaborative activities exploiting and reusing the same component by multiple developers, (iii) integrating data flow and control flow in event driven, (iv) presence data analytic in the development life cycle, (v) front-end tools which request further data analytic and sophisticated business logic, etc.
Thus, the Development Life Cycle involves several specialized tools such as those for creating flows and dashboards, etc. For this purpose, in most cases the Snap4City and Snap4Industry developers adopt strongly dynamic microcycles and microservices, exploiting Snap4Tech tools and supporting multiple applications and solutions at the same time, the requirement analysis has to cope with a number of aspects: data ingestion, business logic, data analytics, storage, business intelligence and interactive user interface, also integrating other third-party tools at any level.
We suggest you read the TECHNICAL OVERVIEW: https://www.snap4city.org/download/video/Snap4City-PlatformOverview.pdf