Apache Edgent
Presented by: Soma Shekarchi
Supervisor: prof. Ioannis Chatzigiannakis
Course: pervasive systems
https://www.linkedin.com/in/somashekarchi/
Master of Science in Engineering in Computer Science
Why Edgent?
• Reduce Communication Cost
• React locally to events
• Collaborate with related devices
Apache Edgent
• A community for accelerating Edge Analytics
• Open Source, incubating at Apache Software
Foundation
http://edgent.incubator.apache.org/
http://wiki.apache.org/incubator/QuarksProposal
• Extensible SDK with functional flow API for streaming
analytics
Initial support for Java 8,7 & Android,
Goal is to support multiple languages with priorities
driven by the community
• A modular, lightweight and embeddable runtime
Apache Edgent
A programming model and micro-kernel style runtime that can
be embedded in gateways and small footprint edge devices
enabling local, real-time, analytics on the continuous.
streams of data coming from equipment, vehicles, systems,
appliances, devices and sensors of all kinds.
Working in conjunction with centralized analytic systems, it
provides efficient and timely analytics across the whole IoT
Ecosystem.
Streaming Analytics Paradigm
• A stream is a infinite sequence of tuples
• Events, sensor readers, location updates, …
• Everything is a stream …
•Source streams bring the raw data to be analyzed
• Functions are applied to each tuple on a stream to
produce new streams
• Filters – Only temperatures greater than 100°C
• Map – Convert a position to a distance from
another position
• Sink streams send data to external systems (e.g.
messages to a back-end)
Apache Edgent
• Analyzes data and events at the device. When we analyze on the
edge, we can:
 Reduce the amount of data transmitted to analytics servers.
 Reduce the amount of data to be stored.
• Uses analytics to determine when data needs to be sent to a back-
end system for further analysis, action, or storage.
• Shifts from sending a continuous flow of trivial data to the server to
sending only essential and meaningful data as it occurs.
History
Apache Quarks was renamed to Apache Edgent in July 2016 due to the name not being unique enough.
Feature
• Functional flow API for streaming analytics, such like Map,
Flat map, Filter, Aggregate, Split, Union, ...
• Connectors (MQTT, HTTP, Watson, JDBC, File, Kafka, Web
Socket, custom).
• Bi-directional communications with the backend.
• Web based interface to view application graph and metrics.
• Edgent uses Java Lambda expressions.
Environment
• Runs on edge device, Raspberry Pi or Android.
• Currently Java based, may support other languages as more
developers get involved.
Integration withCentralized
Deeper AnalyticalPalatforms
Integrates with centralized analytics systems
through IOT scale message hub.
 Any Hub
 Any Central System
Goal
• Edgent provides APIs and a lightweight runtime
to analyze streaming data at the edge.
Control loop through
Central Analytics
Device Model:
• Send device Events to be centrally analyzed.
• Receive device commands to alter behavior.
Simple Scenario – Single Device View
Getting started with
Apache Edgent
• Build from source to get the latest version
• Fork/Clone/download source from github.com
• Apache/incubator-edgent
• https://github.com/apache/incubator-edgent
• Download Java 8, Apache Ant, Junit, Jacoco
• Details see: DEVELOPMENT.md
• https://github.com/apache/incubator-
edgent/blob/master/DEVELOPMENT.md
• Getting started guide
• http://edgent.incubator.apache.org/docs/edgent-getting-started
Edgent Applications
Basic Edgent Applications follow a common structure:
• Get a provider
• Create the topology and compose its processing
graph
• Submit the topology for execution
Sample Application:
Temperature Sensor Application
Sample Application:
Temperature Sensor Application
Specifying a provider
Sample Application:
Temperature Sensor Application
Creating a topology
Sample Application:
Temperature Sensor Application
Sample Application:
Temperature Sensor Application
Creating a source Tstream
Sample Application:
Temperature Sensor Application
Sample Application:
Temperature Sensor Application
Sample Application:
Temperature Sensor Application
• Filtering a Tstream
• Printing to output
• Submitting my topology
After the Run
TStream<Double>filteredReadings =tempReadings.filter(reading ->reading < 50 || reading > 80);
filteredReadings.print();
dp.submit(topology);
49.904032311772596
47.97837504039084
46.59272336309031
46.681544551652934
47.400819234155236
...
Sample Application:
Temperature Sensor Application
Printing to output : we want to print results.
Sample Application:
Temperature Sensor Application
Submitting your topology :
runs a topology directly within the current virtual machine.
Sample Application:
Temperature Sensor Application
Apache edgent

Apache edgent

  • 1.
    Apache Edgent Presented by:Soma Shekarchi Supervisor: prof. Ioannis Chatzigiannakis Course: pervasive systems https://www.linkedin.com/in/somashekarchi/ Master of Science in Engineering in Computer Science
  • 2.
    Why Edgent? • ReduceCommunication Cost • React locally to events • Collaborate with related devices
  • 3.
    Apache Edgent • Acommunity for accelerating Edge Analytics • Open Source, incubating at Apache Software Foundation http://edgent.incubator.apache.org/ http://wiki.apache.org/incubator/QuarksProposal • Extensible SDK with functional flow API for streaming analytics Initial support for Java 8,7 & Android, Goal is to support multiple languages with priorities driven by the community • A modular, lightweight and embeddable runtime
  • 4.
    Apache Edgent A programmingmodel and micro-kernel style runtime that can be embedded in gateways and small footprint edge devices enabling local, real-time, analytics on the continuous. streams of data coming from equipment, vehicles, systems, appliances, devices and sensors of all kinds. Working in conjunction with centralized analytic systems, it provides efficient and timely analytics across the whole IoT Ecosystem.
  • 5.
    Streaming Analytics Paradigm •A stream is a infinite sequence of tuples • Events, sensor readers, location updates, … • Everything is a stream … •Source streams bring the raw data to be analyzed • Functions are applied to each tuple on a stream to produce new streams • Filters – Only temperatures greater than 100°C • Map – Convert a position to a distance from another position • Sink streams send data to external systems (e.g. messages to a back-end)
  • 6.
    Apache Edgent • Analyzesdata and events at the device. When we analyze on the edge, we can:  Reduce the amount of data transmitted to analytics servers.  Reduce the amount of data to be stored. • Uses analytics to determine when data needs to be sent to a back- end system for further analysis, action, or storage. • Shifts from sending a continuous flow of trivial data to the server to sending only essential and meaningful data as it occurs.
  • 7.
    History Apache Quarks wasrenamed to Apache Edgent in July 2016 due to the name not being unique enough.
  • 8.
    Feature • Functional flowAPI for streaming analytics, such like Map, Flat map, Filter, Aggregate, Split, Union, ... • Connectors (MQTT, HTTP, Watson, JDBC, File, Kafka, Web Socket, custom). • Bi-directional communications with the backend. • Web based interface to view application graph and metrics. • Edgent uses Java Lambda expressions.
  • 9.
    Environment • Runs onedge device, Raspberry Pi or Android. • Currently Java based, may support other languages as more developers get involved.
  • 10.
    Integration withCentralized Deeper AnalyticalPalatforms Integrateswith centralized analytics systems through IOT scale message hub.  Any Hub  Any Central System
  • 11.
    Goal • Edgent providesAPIs and a lightweight runtime to analyze streaming data at the edge.
  • 12.
    Control loop through CentralAnalytics Device Model: • Send device Events to be centrally analyzed. • Receive device commands to alter behavior.
  • 13.
    Simple Scenario –Single Device View
  • 14.
    Getting started with ApacheEdgent • Build from source to get the latest version • Fork/Clone/download source from github.com • Apache/incubator-edgent • https://github.com/apache/incubator-edgent • Download Java 8, Apache Ant, Junit, Jacoco • Details see: DEVELOPMENT.md • https://github.com/apache/incubator- edgent/blob/master/DEVELOPMENT.md • Getting started guide • http://edgent.incubator.apache.org/docs/edgent-getting-started
  • 15.
    Edgent Applications Basic EdgentApplications follow a common structure: • Get a provider • Create the topology and compose its processing graph • Submit the topology for execution
  • 16.
  • 17.
    Sample Application: Temperature SensorApplication Specifying a provider
  • 18.
    Sample Application: Temperature SensorApplication Creating a topology
  • 19.
  • 20.
    Sample Application: Temperature SensorApplication Creating a source Tstream
  • 21.
  • 22.
  • 23.
    Sample Application: Temperature SensorApplication • Filtering a Tstream • Printing to output • Submitting my topology After the Run TStream<Double>filteredReadings =tempReadings.filter(reading ->reading < 50 || reading > 80); filteredReadings.print(); dp.submit(topology); 49.904032311772596 47.97837504039084 46.59272336309031 46.681544551652934 47.400819234155236 ...
  • 24.
    Sample Application: Temperature SensorApplication Printing to output : we want to print results.
  • 25.
    Sample Application: Temperature SensorApplication Submitting your topology : runs a topology directly within the current virtual machine.
  • 26.