Prerequisite

Obtain NES for Local Deployment

Clone the current Nebulastream (NES) branch 1601. Build instructions for both the docker image as well as the source build can be found here. If you build from source, make sure to add

-DNES_USE_MQTT=1

to the cmake configuration. This is necessary, since our UI uses an MQTT broker to retrieve query data from NES.

Install an MQTT Broker

As MQTT Broker, we use Mosquitto.

Get the UI ready to start

Clone the current master branch of this repository.

Prior to running our nebulastream UI, you need to install the following packages:

npm

e.g. via

sudo apt install npm
create-react-app

e.g. via

sudo npm -g install create-react-app

Obtain NES City

Go to nebulastream-smart-city-demo and clone the master branch.

Before running install the following node packages:

npm install express
npm install mqtt

Alternatively, execute the scripts/installNpmPackages.js shell script.

Locally deploying NES and UI

Start Mosquitto Broker

To start the mosquitto broker simply use:

mosquitto -c [Path-To-nebulastream-ui]/nebulastream-ui/mosquitto/mosquitto.conf

The mosquitto broker will then use path 9001 for data transmission via websockets which is needed for our UI.

Start NES City

To start NES City simply run the scriptsAndConfigs/startDemoTown.js with Node:

node scriptsAndConfigs/startDemoTown.js

You can then view the city at http://localhost:3001

NES Configurations for UI

First start a coordinator. Recommended configuration parameters:

--coordinatorPort=1200 --restPort=8000

If you change the restPort, you also have to change the port the UI is connecting to later on in the UI settings.

Then start a worker. Recommended configuration parameters:

--coordinatorPort=1200
--rpcPort=1204
--dataPort=1400
--physicalStreamName=patients
--logicalStreamName=nesCityHospital
--sourceConfig=tcp://127.0.0.1:1885;client;user;demoTownSensorData;JSON;milliseconds;0
--sourceType=MQTTSource
--numWorkerThreads=3
--numberOfTuplesToProducePerBuffer=1
--bufferSizeInBytes=128

More information on starting/stopping NES and available configurations.

Start Nebulastream UI

In the project directory, you can run:

npm start

Runs the app in the development mode.

Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.

Starting order full Demo

1. Start UI and Nes City

2. Start NES Coordinator and make sure the UI is connected to the coordinator

3. Create a logical stream for the data coming from NES City by submitting the following to the JSON field in the UI's Stream Catalog page:

{ "streamName": "nesCityHospital", "schema": 
"Schema::create()->addField(\"type\",DataTypeFactory::createFixedChar(12))->addField(\"hospitalId\",INT64)->addField(\"stationId\",INT64)
->addField(\"patientId\",INT64)->addField(\"time\",UINT64)->addField(\"healthStatus\",INT8)->addField(\"healthStatusDuration\",INT64)
->addField(\"recovered\",BOOLEAN)->addField(\"death\",BOOLEAN);" }

4. Start a worker with above configurations.

Enjoy exploring the capabilities of our UI!

 
how_to_run_nes_demo_locally.txt · Last modified: 2021/08/12 09:02 by nes
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki