In Snap4City, the arrival of a new entity/data model does not imply for the developer to adequate the storage structure, but to model it on the Entity/IoT Directory once. Once a new Entity Model is registered, any instance can be directly deployed, and specific data loaded. Entities/Data entering in the platform can be automatically (i) stored (in Figure 3: Open Search), (ii) semantically indexed, (iii) directly sent to the user interface, or to data analytics for stream processing. The same data flows work as data driven coming from dashboards to data streams for acting and sending commands, alarms, etc., in the platform and/or to external devices via brokers or processes. Data stored (in some cases, the storage is called data shadow) can be browsed by using the Entity Inspector/Manager, for all the entity/data types managed in the platform. From simple data entities to IoT devices, maps, heatmaps, flow, matrices, 3D interactive representations, scenarios, etc., as needed by the DT.
The Big Data Storage is managed by multiple solutions:
- Knowledge Base, KB, (based on Km4City ontology) implemented as an RDF store (Virtuoso) which is an index for geospatial, relational, and temporal aspects. The KB can be federated, for example for federating different KB or different organizations. Whenever a new data model (Entity Instance or Model) is registered in the system, the registration is performed into the KB. Different instances of the KB can be federated via Smart City API by creating a mutual connection among cities/areas of the network, if the single installation wants to share, and deciding what to share.
- Time series from Entity Instances / IoT Devices and MyKPI are automatically feed into the storage Open Search cluster (which is the new name of Open Distro for Elastic Search of AWS) for storing and indexing data.
- The Entity Instances / IoT Devices need to be registered into Entity Directory / IoT Directory, which in turn automatically registers them on Knowledge Base for reasoning.
- The MyKPI can be also stored into some SQL database.
- Heatmaps, Orthomaps, Traffic Flows Maps, and Maps are managed by the Heatmap Server which is a GIS (for example GeoServer or ArcGIS if you have one installed with WMS facilities) and can distribute the maps according to WMS/WFS protocols towards Web and Mobiles App and Dashboards. They can be loaded from Processing Logic / IoT App using specific API.
- Origin Destination Matrices are managed by the OD/ODM Manager and represented into the Multi Data Map widget in dashboards. They can be loaded from Processing Logic / IoT App using specific API.
- Internal Buildings 3D Shapes, and Floors are managed and distributed by BIM Server. Standard BIM tools are used for editing and interchange in IFC formats with standard tools such as AutoDesk Revit, etc. Buildings and Floors are shown in dashboards for their integration with maps and time trends of IoT devices. The BIM are managed on Snap4City by the BIM Manager and can be loaded from the user interface using IFC format.
- 3D City Representation can be loaded according to different components from which they are composed such as: image patterns, building shapes, 3D shapes, LIDAR data, traffic flows, POI, IoT Devices, etc. [DigitalTwin1], [DigitalTwin2], [GeneratingDigitalTwin]. They need to be loaded in agreement with the snap4city platform manager into the Dashboard area.
The Storage of Snap4City is organized as follows:
High Level Type data |
Ingestion kind: MicroServices, API |
Storage |
Distribution tool API |
Entity / IoT Devices (time series) |
Proc.Logic / IoT App, special Python, Brokers |
OpenSearch, KB |
Smart City API, Orion Broker |
MyKPI (time series) |
OpenSearch (or SQL) |
||
POI |
OpenSearch, KB |
||
Heatmaps (time series) |
Proc.Logic / IoT App, Python, |
GeoServer |
API for WFS, WMS |
Maps |
API and user interface |
GeoServer |
API for WFS, WMS |
GIS data |
API and user interface |
GeoServer |
API for WFS, WMS |
Traffic Flow (time series) |
Proc.Logic / IoT App, Rstudio, Python |
GeoServer, Traffic Flow Manager, KB |
Traffic Flow Manager, API for WFS, WMS |
OD Matrices (time series) |
Proc.Logic / IoT App, Python |
GeoServer, OD Manager |
|
Trajectories |
Proc.Logic / IoT App, Python |
OpenSearch, KB |
|
TV CAM |
Registering and IoT Device |
OpenSearch, KB |
|
BIM view |
BIM Server, IFC |
BIM Server, KB BIM Manager |
BIM Manager |
3D City Model |
Python |
GeoServer, OpenSearch, KB |
Smart City API, API for WFS, WMS; HTTPS |