1. Apache Edgent
Presented by: Soma Shekarchi
Supervisor: prof. Ioannis Chatzigiannakis
Course: pervasive systems
Master of Science in Engineering in Computer Science
3. Apache Edgent
• A community for accelerating Edge Analytics
• Open Source, incubating at Apache Software
• Extensible SDK with functional flow API for streaming
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
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
• 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.
• Functional flow API for streaming analytics, such like Map,
Flat map, Filter, Aggregate, Split, Union, ...
• Connectors (MQTT, HTTP, Watson, JDBC, File, Kafka, Web
• Bi-directional communications with the backend.
• Web based interface to view application graph and metrics.
• Edgent uses Java Lambda expressions.
• Runs on edge device, Raspberry Pi or Android.
• Currently Java based, may support other languages as more
developers get involved.
14. Getting started with
• Build from source to get the latest version
• Fork/Clone/download source from github.com
• Download Java 8, Apache Ant, Junit, Jacoco
• Details see: DEVELOPMENT.md
• Getting started guide
15. Edgent Applications
Basic Edgent Applications follow a common structure:
• Get a provider
• Create the topology and compose its processing
• Submit the topology for execution