Krymnos / IDP

University project
0 stars 0 forks source link

Provenance System Architecture #21

Closed mukrram-bajwa closed 6 years ago

mukrram-bajwa commented 6 years ago

Data Provenance for IoT Measurement Delivery

An IOT measurement delivery pipeline consists of a set of sensors which generates measurements, which propagate along a path of several nodes. These nodes differ in several dimensions. To cope with heterogeneity of these nodes, I tried to make the architecture of the provenance system as generic as possible. The architectural diagram is depicted below: iot_cp_final There are several components which constitute the final architecture and can be seen in several dimensions and are explained below:

Storage:

On the left most of the figure, there are sensors which capture the measurements and then comes the first gateway with short-term limited capacity storage then intermediary storage and at the last long-term storage with much more storage capacity compared to the previous components of the system.

Running Processes:

Our architecture consists of three type of processes: Provenance daemon, Data sender daemon and Data receiver daemon.

Provenance daemon

It runs on each node of the pipeline and as the name suggest its sole purpose is to capture provenance of the data and store it to the provenance database.

Data sender daemon

It runs on all nodes of the pipeline except the last as it doesn't have to send anything from there.

Data receiver daemon

It runs on all nodes of the pipeline except the first node of the pipeline. For simplicity and clarity, three daemons are shown separately in the architecture diagram and can be the threads running in parallel.

User Interaction:

We will also develop a frontend system. The user can query and see the visualizations using it. A simplified user interaction diagram is shown below where the provenance system is represented as a black box. system interaction

Krymnos commented 6 years ago

Hey some feedback, it is true that you say the first node of the pipeline has no receiver, but that first node is the sensor. The first gateway does have a receiver deamon because it receives from the sensor. Otherwise nice overview. I would like to merge it into the requirements doc to have everything in one file

mukrram-bajwa commented 6 years ago

Yes, you are right. I did it explicitly because the sole purpose of the first node is to capture/receive sensor value and that is different from the receiver daemon running on the other nodes as that only receives data from the sender of the previous node. Otherwise, for simplicity. I can put one there as well.