Installing Snap4City: Appliances, Virtual Machines/Containers ready to use on your premise for Smart City and IOT Applications

Snap4City platform can be used from this portal, and a number of services can be provided as Smart City IOT as a Service, SCIaaS, platform. Therefore, if you are interested in using Snap4City from this portal you do not need to perform any installation on your computer.

On the contrary, this page is dedicated to who would like to perform a local installation on premise or cloud. In fact, in this page you can find the instructions for the installation and a number of Snap4City configurations. Snap4City is 100% open source, license free solution, and the Appliances that you can download from this page are license free. You can download and install Snap4City tools on premise or on cloud as you like, by starting from the following Appliances and/or from the GITHUB/DISIT sources (Source Code and licenses). In the following figures, the deploy of Snap4City solution from small business to large scalable cases are presented. The configurations are listed and coded with a letter to simplify the identification of the configuration. While other mixed solutions and intermedium configurations are also possible. In addition, some of the tools we are mentioning/providing in the following configurations can be substituted with your legacy tools. For example your CKAN, your GIS, ArcGIS server, etc., etc. For shortening your deploy and/or installation activities we have created a number of Virtual Machines, VM/Container, Appliances. They are VM to be put in execution on some VMplayer VMware workstation or Vcenter Vsphere VMware infrastructure, or Docker/Containers. They are presented from the smaller and simpler solution to the more capable and wide deploy. For each of them an incremental description and user manual for installation. The since tools can also be downloaded from GITHUB/DISIT.

How to proceed:
Revise the 7 Configurations models proposed from A:Alone to F:FullPlatform+LivingLab, but they can be customized as you like.
From this page you are guided to identify the most suitable configuration according to their needs;
Once the most suitable Configuration has been identified, you can:
i.Download and deploy the Appliances provided as Virtual Machines or Containers for the dsired configuration, or
ii.Download and install modules from GITHUB according to the recipes for  VM/Container and the user manual of the single tools, or
iii.Mixt of the above (i) and (ii) approaches.
IOT Edge can be created by (1) installing Node-RED, (2) adding Snap4City library of Nodes from the Palette Manager of Node-RED, (3) registering device or messages on Snap4City (cloud or your local installation): https://nodered.org/docs/user-guide/editor/palette/manager

Configuration Kind

Min #VM / Docker

IOT Broker int (any# and kind)

IOT Broker Ext (any# and kind)

MAP WMS web

KBSM semantic engine reasoner

IOT APP, MicroServices #Containers

Storage & IOT Data Shadow

SSO, Roles LDAP

IOT Security full stack end2end

Dash + Wizard, widgets, Data Inspector

GIS input WFS WMS

GIS output WFS WMS

Heatmaps WMS

Mob. App & Micro Apps.

ASCAPI Smart City API, Federated

Living Lab
Support

Optional services supported by the configuration

A: Alone

1

 

X

X

 

1 mf

Small

X

X

X

X

 

 

 

(x)

 

ETL, DG, CM

B: Basic

2

X

X

X

 

1 mf

Small

X

X

X

X

 

 

 

(x)

 

ETL, DG, CM

C: CityStart

3-4

X

X

X

X

1 mf

Small

X

X

X

X

X

X

X

X

 

ETL, DG, R, CM, Eng

D: DataCity

5-6

X

X

X

X

70

Medium

X

X

X

X

X

X

X

X

 

ETL, DG, R, CM, Eng, LL

E: ExtensiveCity

6-8+

X

X

X

X

70

Scalable

X

X

X

X

X

X

X

X

 

ETL, DG, R, CM, Eng, LL

F: FullPlatform

12-14+

X

X

X

X

Scalable

Scalable

X

X

X

X

X

X

X

X

 

ETL, DG, R, RS, CM, Eng, LL

F: FullPlatform + LivingLab

13-15+

X

X

X

X

Scalable

Scalable

X

X

X

X

X

X

X

X

X

ETL, DG, R, RS, CM, Eng

mf: multiple flows for each IOT App; + means that may depend on the volume you would  like to manage in flow and storage.
In the following configurations you:
have: Multiple IOT Brokers; unlimited number of data sources; interoperability support; KB
may have: HA, DRS, FT, Balancing, cloning and configuring additional VM/Containers;
may pass at the next configuration without reinstalling the VM/Containers;
may have VM or Containers, please ask to Snap4City@disit.org;
--may add one or more Optional Services as VM/Containers: ETL, DataGate, Routing, Engager, Data Analytics, etc. etc.
From Configuration E:ExtensiveCity and upper, the number of VMs/Containers depends on the volume of DataStorage and on the volume of Data Stream in input.
These two aspects are managed by two independent clusters of VMs/containers and thus they scale independently each other. This allows to satisfy any different combination of volumes in streams and data storage.
We suggest using Living Lab support only on FullPlatform, while it can be installed on Smaller Configurations with some limitations in terms of features

Legenda of the above table for Optional Services

Eeach VM is provided configured with large footprint as 16/24 cores 2.2 Ghz, 16-24 GB Ram, 500 GB HD in thin provisioning, with 25-40 GB HD used at the start, in most cases Debian, this initial size is only cautelative to get maximum performances, while the minimum footprint is much smaller (please note that configurations A and B can be executed on 4 cores, 4 GB Ram, 44Gbyte HD free space).
to estimate the needed CPU, RAM, Storage for each configuration it is easy from the #of VM in the configuration.
In solutions, with a very large number of users on the Front End: Smart City API (mobile App users, Dashboard users, a frontend balancer and more FrontEnd servers would be needed). Please note that the Smart City API are also used by DataAnalytics processes and by MicroServices in the IOT Applications.
Typically a thousand of simultaneous users on the front end can be sustained for each VM/Container
More precise estimations can be performed by knowing the actual workload

A: Alone) For Small Size Business, for example an industry 4.0 application you can need to install only one VM: Snap4CityMAIN, ContainerCompose "Alone".

it may be used to create dashboards exploting data coming from external third party IOT brokers, from external data stores / databases of several kinds (ODBC, JDBC, Mongo, RDF, etc.), etc. Please note that the solution released as VM allows you to test also Smart IOT Application, since Snap4CityMAIN includes one IOT App on which you can load/design multiple flows.

Therefore, 1 (one) VM, one Container Compose with multiple Containers and you can start using.

Snap4CityMAIN (also called dashboard) includes the Snap4City Dashboard Builder and a full starting Snap4City environment for small size businesses as well as for large solutions. Snap4CityMAIN includes tools configured for supporting features in a Snap4City local environment on your premise, so that with limitations only on configuration aspects to make the VM consistent and capable to be executed and provide Snap4City services in your network. it can be the seeding of a larger and scalable solution on your premise. Snap4CityMAIN  can be replicated to create a cluster in balance. The database can be shared from the frist Snap4CityMAIN while it cam be also extracted and put in some network storage.

What you can do with ALONE configuration you can:

Alone Configuration: Snap4CityMAIN Virtual Machine

Snap4CityMAIN VM can b found on: https://www.snap4city.org/download/video/StartSNAP4CITYVM/StartSNAP4CITYVM-V1-2.rar  

The suggested VM player is: https://www.snap4city.org/download/video/vm/VMware-player-12.1.0-3272444.exe

Documentation for installation can be found  on HOW TO: configure/install StartSNAP4CITYVM: starting appliance of Snap4City  and the VM appliance Snap4CityMAIN includes tools as:

Alone Configuration: Snap4CityMAIN Docker Containers

The Docker version is called "Alone" and is available in beta testing version from: https://github.com/disit/snap4city-docker/tree/master/Alone  The configuration in terms of user names and password is the same of the VM described above: HOW TO: configure/install StartSNAP4CITYVM: starting appliance of Snap4City,  On  the other hand, the Container Compose includes the details of the ports used that should not conflict with the host or server in which you deploy it, so t hat you can change in the file in case of conflict. In addition, you have to insert into the hosts file of your operating system: <your-host-ip> dashboard keycloak wsserver iotapp personaldata
This will allow all processes to refer to compoments: dashboard, keycloak, wsserver, iotapp, personaldata, as localhost by using their names and internal mapping. The same if you have other computers in the same network. Please note that, if you are going to make the solution public you have to provide a domain name, etc., and change the configuration according to your setup.

The cerate group of contaiers are put in execution by the Container Compose and in particular each of them are accessible from Docker HUB and include:

B: Basic) Addressing  a relevant number of IOT devices/ IOT brokers in your smart city or industry 4.0, a few smart Applications with multiple  flows

If you have a relevant number of IOT Devices you need to have several IOT brokers. They can be registered with their devices into the Snap4City IOT Directory in the Snap4CityMAIN. Moreover, you may need to implement and thus provide some of those IOT Brokers. You can do that by using one or more IOTOBSF, which includes an IOT Orion Broker supporting NGSI and other protocols see :https://www.snap4city.org/drupal/node/467 for Mutual Authentication. In the context of IOT for Industry applications, you may need to have some intelligence and IOT Applications located on the field, as well as on premise. For example in factory in the case of Industry 4.0, on the farm in the case of smart farm, etc. This smart tools can be IOT Applications working on IOT Edge. This configuration alloow have them connected to the Smart4CityMAINVM, thus sending data to the solution at MyKPI, via IOT brokers, etc. see below the list of  the IOT Edge solutions on Snap4City with Security support. You may have IOT brokers and/or IOT Edge, both solutions or  only one, depending on your data and preferences. Please note that the solution allows you to test also Smart IOT Application, since Snap4CityMAIN includes one IOT App on which you can load/design multiple flows.

Therefore, 1 (one) VM + N IOT broker VM and you can start using.

C: CityStart) Addressing  a relevant number of GeoLocated Points of Interest, PIN on maps, and eventually heatmaps, a Small Smart City with a few smart applications on cloud and many on edge

If you need to manage a relevant number of city entities located on maps, we suggest you the following minimal configuration which includes KBSSM modeling a knowledge base for street graphs which can be feed with OSM graph or with your GIS as well (also included into it). You can exploit maps from GIS solutions (see https://www.snap4city.org/drupal/node/368) or you can exploit the Knowledge Base approach which is more powerful in terms of semantic relationships among city entities. To this end you need to have KBSSM appliance into your platform. If the workload on Smart City API become very high the  KBSSM  can be cloned to create a cluster and a balancer. The first KBSSM may keep the storage and share with partners. Please note that the solution allows you to test also Smart IOT Application, since Snap4CityMAIN includes one IOT App on which you can load/design multiple flows.

Therefore, at the minimum, 2 (two) VM and you can start using. If you have also Geoserver 3 VM. if you have a huge amount of mobile apps exploiting the Smart City data or you have to provide dashboard towards a large number of users, you may need to create a balanced workload, etc.