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?
• Reduce Communication Cost
• React locally to events
• Collaborate with related devices
3. 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
4. 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.
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
• 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.
7. History
Apache Quarks was renamed to Apache Edgent in July 2016 due to the name not being unique enough.
8. 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.
9. Environment
• Runs on edge device, Raspberry Pi or Android.
• Currently Java based, may support other languages as more
developers get involved.
14. 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
15. 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