Git Product home page Git Product logo

predictiveworks / works-stream Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 979 KB

This project complements Apache Spark Streaming with hand-picked streaming receivers for Eclipse Ditto, Fiware Context Broker, Fleet (DM), Eclipse Paho, HiveMQ, OpenCTI, Google PubSub, Server Sent Events, ThingsBoard and Zeek Sensor.

License: Apache License 2.0

Scala 100.00%
apache-spark streaming mqtt server-sent-events eclipse-ditto eclipse-paho hivemq opencti osquery zeek

works-stream's Introduction

Works Stream

This project complements Apache Spark Streaming with hand-picked streaming receivers.

Eclipse Ditto

Eclipse Ditto is a technology in the IoT implementing a software pattern called digital twins. A digital twin is a virtual, cloud based, representation of his real world counterpart (real world Things, e.g. devices like sensors, smart heating, connected cars, smart grids, EV charging stations etc).

The technology mirrors potentially millions and billions of digital twins residing in the digital world with physical Things. This simplifies developing IoT solutions for software developers as they do not need to know how or where exactly the physical Things are connected.

With Ditto a thing can just be used as any other web service via its digital twin.

Eclipse Ditto adds a semantic layer to the MQTT 3.1.1 and MQTT 5 and ease the analysis of MQTT based device reading.

Works Stream is a library to connect to an Eclipse Ditto service and register for both, twin events and live messages. Events and messages are published as an Apache Spark event stream.

PredictiveWorks. uses Work Stream to consume twin events and live messages with a Google CDAP streaming source as a starting point for complex real-time event processing covering descriptive, diagnostic, predictive and prescriptive analytics.

Works Stream

MQTT

Works Stream supports access to the Internet of Things leveraging semantic layers like Eclipse Ditto and FIWARE (see below) that provide a common data model and format to abstract from the protocol layer.

Works Stream, however, is not restricted to semantic IoT layer and also supports handpicked IoT protocols. The most important one is MQTT (version 3.1, 3.1.1 and 5).

Works Stream

Eclipse Paho

Eclipse Paho ships with an approved client for MQTT 3.1 and MQTT 3.1.1, and Works Stream can be used to publish events from respective MQTT brokers as an Apache Spark event stream.

HiveMQ

HiveMQ is an MQTT broker, and a client based messaging platform designed for the fast, efficient and reliable movement of data to and from connected IoT devices. It uses the MQTT protocol for instant, bi-directional push of data between devices and the enterprise system.

HiveMQ supports the MQTT 3.1, MQTT 3.1.1 and MQTT 5 specification.

Server Sent Events (SSE)

Internet of Things

FIWARE brings a curated framework of open source software components to accelerate and ease the implementation of smart IoT platforms and solutions.

The main components comprise and information hub, the FIWARE Context Broker, and a set of IoT Agents (IOTA) to interact with devices via widely used IoT protocols and bridge between multiple message formats and a common NGSI v2 and NGSI-LD based format.

From an analytics perspective, it is to connect to a (single) Context Broker and receive device notification in real-time and in NGSI format, instead of interacting with plenty of individual data sources.

Just to name a few IoT protocols supported by the FIWARE framework:

  • ISOXML
  • LoRaWAN
  • LWM2M over CoaP
  • MQTT
  • OPC-UA
  • Sigfox

FIWARE is not restricted to these protocols, and also provides an agent library to build custom IoT Agents.

PredictiveWorks. ships with FIWARE Beat, a standalone Akka based Http(s) service to subscribe to a FIWARE Context Broker, receive Broker notification in NSGI, and publish these notifications as Server Sent Events.

Works Stream is a library to receive SSE from a Http(s) service and publish these events as an Apache Spark event stream.

PredictiveWorks. uses Work Stream to consume SSE with a Google CDAP streaming source as a starting point for complex real-time event processing covering descriptive, diagnostic, predictive and prescriptive analytics.

Works Stream

Threat Intelligence

OpenCTI is a unified open source platform for all levels of Cyber Threat Intelligence. A major goal is to build and provide a powerful knowledge base for cyber threat intelligence and cyber operations.

OpenCTI ships with a variety of connectors to widely known threat intelligence data sources like AlienVault, CrowdStrike, FireEye and MISP, MITRE ATT&CK and more.

PredictiveWorks ships with OpenCTI Beat, as standalone Akka based Http(s) service to consume the OpenCTI events stream (SSE), applies moderate event transformations and republishes the threat feed as Server Sent Events.

This approach enables Works Stream to consume both, events from IoT devices and threat intelligence.

Then OpenCTI threat events can be consumed with a Google CDAP streaming source and revealed to complex event analytics.

Works Stream

works-stream's People

Contributors

predictiveworks avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.