Waylay architecture is composed of the following components:
- Cloud Broker (WebSockets and REST)
- Cloud Persisted Cache
- Time series Database
- Resource Metadata Model Database
- Rule Engine with advanced stream based correlation and formula processing
- REST server
- CEP functional nodes
- Waylay IDE (web based)
- SDK and Templates (for sensors, actuators, rules)
- Waylay Sandbox - Cloud Functions
- ETL tool
- OAuth2 server (Hoard) and Collector framework (see SDK)
- Collector framework for OAuth2 based smart connected devices
- Time Series Analytics
- Azure IoT Hub support (see integrations)
- Aws IoT Hub support (see integrations)
- Google IoT Hub support (see integrations)
- BI analytics and ML support
Waylay Broker stores and distribute messages. It is important to mention that Waylay Rule engine is protocol agnostic. That means that different protocols are terminated at the Broker. Broker supports different protocols: HTTP(S) and WebSockets.
HTTP(S), WebSockets are appropriate choice for cloud-to-cloud or intra-cloud integration. In case of HTTP(S) integration, you will always need waylay API key and secret.
Cloud persisted cache REST interface
You can always retrieve up to the last 100 messages for every resource over the REST calls.
Time series database REST interface
Waylay automatically stores metric data in the time series database. Via REST interface you can retrieve raw data or aggregated data (per interval with aggregation metrics e.g. avg, mean, max, stdev etc).
Resource metadata with REST interface
Provisioning API allows you to associate metadata with resource. Resources are either discovered by Waylay (as soon as data is pushed towards Waylay Broker) or you can as well create them using REST call. Next to the resource CRUD related calls, waylay also allows you to create ResourceType entities, and let you link resource to a type using metadata. As soon as a resource is linked to a resource type, all metadata values of that type are linked to that resource. Resource can still overwrite any specific attribute in its metadata model. More about this you can find here
Waylay’s rule engine is the most advanced rule engine on the market today. It is based on Bayesian Inference probablistic programming using smart agent concept, with granted patent US20160125304. More about the engine can be found here, “how to” videos are located on this link, and finally different rule patterns are explained here: rule patterns.
SDK and templates (sensors, actuators, rules)
In waylay, sensors, actuators and rules are nothing more than small snippets of JSON files. They can be re-used between different templates. Out of the box, in PaaS offering, waylay supports only node.js based actuators and sensors (very similar approach to AWS lambda architecture). For OEM deployments, we as well provide java SDK.
There are many sensors, actuators and templates that we support out of the box. They are all open source and ready for use by all.
Every piece of the waylay functionality is exposed over the REST interface! Among others, that includes:
- test & create & update sensors, actuators and templates
- execution of actuators and sensors
- instantiation of tasks with or without templates
- sensors/actuators/tasks and templates versioning and migration
- real time updates of the rule engine outcomes together with realtime data (using HTML5 Server-Sent Events)
There is often a need to integrate waylay with external systems that make use of webhooks or similar technologies. Most of the times, it is not possible to alter the way the webhook payload is defined. In waylay, there is already possibility to use payload transformation functions to adjust or decode payloads before they enter in the waylay “ecosystem”. This is accomplished through so-called transformers. Transformers assume that the system being integrated has the capability to define a method signature that matches the waylay definition of REST transform functions. If that is not possible, webscripts come the rescue. One particular use case for webscripts is in the context of integration between LPWAN back-end servers and Waylay as described more in detail in LPWAN intergration document
ETL (Extract, Transform, Load)
ETL dumps Timeseries Data and (resources) Metadata in csv and avro format. In order to export data, the customer must provide AWS S3 or Google Object store endpoints. Export can be done on daily, weekly or monthly basis.
Time Series Analytics
REST exposed interfaces (based on time series data) for:
- Anomaly detection
- Time to target functions (e.g. battery drain etc.)