EWAI ARCHITECTURE

EWAI is composed of four parts (subsystems), all of which work together;

  1. EWAI-SERVER: This is the server component which offers a streaming data store for the IOT DER PTD (Power Telemetry Data) message packets and which also exposes REST and GraphQL APIs which applications can use to send in PTD data messages and retrieve datasets.

  2. EWAI-LISTEN: A message subscriber process which consumes the IOT DER PTD message stream from EW-Messaging and forwards the messages to EWAI-SERVER via REST API for validation and storage. EWAI-SERVER performs the message schema, signature, and role validations.

  3. EWAI-MARKET: A Web3 dApp marketplace prototype which allows the creation (publishing) and consumption (searching, purchasing) of clean energy datasets for analysis. This is a fork of the Ocean Protocol V3 Marketplace, whereby the EWAI energy data assets can be published via Ocean Protocol data tokens.. The EWAI-MARKET code is in a separate repo here. You should familiarize yourself first therefore with Ocean Protocol, as understanding how Ocean works will be necessary also.

  4. EWAI-GEN: A IOT PTD message generator/simulator which can create IOT PTD data packet messages (and test message stream files) and also send them to EW-Messaging for subsequent reception by EWAI-LISTEN. It can also serve as an example for IOT vendors to use in integrating with EWAI.

The architecture and relationship of these components is shown in the diagram below:

Note: While a DB data store is being used in this prototype (one per EWAI instance), future projects may look to utilize some form of fully decentralized distributed database/data-store. That is beyond the scope of this project currently. The operator of each EWAI instance needs to act as custodian of the data in this implementation. Note however that before data from a DER/DID gets into the EWAI instance database, it had to be prior provisioned, permissioned and authenticated via EW-Messaging and EW-Switchboard role and claim authorizations.

An EWAI deployment consists of an EWAI-SERVER instance paired with an EWAI-MARKET (along with supporting EnergyWeb components, see Prerequisites).