Skip to content

Latest commit

 

History

History
133 lines (79 loc) · 174 KB

Architecture.md

File metadata and controls

133 lines (79 loc) · 174 KB

Overview diagram

Diagram made with draw.io, original file.

See also this discussion on the forum.

Note: this files has a couple of dead links. Needs some attention to get it more useful.

Network elements

The full network has several elements. In order of how they are connected they are:

  1. Nodes (IoT devices)
  2. Gateways
  3. Routers
  4. Handlers
  5. App servers

Nodes (IoT devices)

Nodes are the IoT devices you create. They are any device with LoRa(WAN) capabilities connected to one or more gateways.

Responsibilites:

  • Send / Receive data using LoraWAN.

Connects to:

  • Gateways, 1 or more.

Details on Nodes.

Gateways

Gateways are on the other side of the wireless connection. Spread across different locations they provide you with coverage and relay your data for you.

Responsibilities:

  • Provide LoRa(WAN) service within it's range.
  • Relay between Nodes and Routers.

Connects to:

  • Nodes, 0 or more.
  • Routers, 1 or more.

Details on Gateways.

Routers

Routers locate the Handler that a Node wishes to send messages to and relays to them.

Responsibilities:

  • Locate the Handler associated with a Node.
  • Verify message integrity with transport layer key.
  • Relay messages to and from the Handlers.
  • ... (Please correct this if wrong)

Connects to:

  • Gateways, 0 or more.
  • Handlers, 0 or more.

Details on Routers.

Handlers

Handlers receive messages from the network, do the final decryption, format it nicely and possibly archive it.

Responsibilities:

  • En-/decrypt with the application layer key.
  • Check message integrity and deduplicate.
  • Format the data (from binary to key/value pairs).
  • Archive the data and provide an API to access it.
  • Stream the data to App servers.

Connects to:

  • Routers, 1 or more.
  • App servers, 0 or more.

Details on Handlers.

App servers

These are the servers that run your application. They are not part of the network infrastructure, but rather a part of what you're building.

Responsibilities:

  • Process the data your devices sent.

Connects to:

  • Handlers, normally 1 (can be more).

[Details on App servers](App servers).

Using external handlers

As you can see in the architecture diagram, it's possible use external handlers or run your own.

Handlers have access to the private key needed to decrypt your messages. That means, they can read your data.

If you are not willing to trust a 3rd party with handling your data, you can set up your own handler in a secure environment. This way you have full control over your data.

However if you're just looking to prototype a new application it will save you the hassle of setting up your own handler by using a 3rd party service (by The Things Network or anyone else).