Coder Social home page Coder Social logo

jlleitschuh / epos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 52north/epos

0.0 2.0 0.0 736 KB

EPOS provides event stream processing components using a powerful and extensible encoding/decoding architecture.

License: GNU General Public License v2.0

Java 100.00%

epos's Introduction

52°North EPOS Build Status

EPOS provides event stream processing components using a powerful and extensible encoding/decoding architecture.

Introduction

The 52°North Sensor Event Service established the use of event streams for complex event processing. While the architecture showed its potential, additional use cases appeared where the specific SES interface was a significant overhead. This project narrows the event pattern components developed within the SES down to its core functionality and allows its inclusion into other software. In particular, it can help to enable Publish/Subscribe functionality for data provisioning web services.

The current development snapshot of the SES uses this components and will include it in prior releases, starting with version 1.3.0.

Stream Processing

The stream processing and pattern matching features are heavily based on Esper.

Extending EPOS

EPOS provides two interfaces which allow easy extension of the framework

  • org.n52.epos.transform.EposTransformer
  • org.n52.epos.filter.FilterInstantiationRepository

The EposTransformer interface provides methods for transformation of every kind of input into an EposEvent instance. A realization shall determine at runtime if it supports the given input by returning a boolean for the supportsInput(Object input) method. If true, the EposEvent transform(Object input) is called in which the realization processes the given object.

The FilterInstantiationRepository can be used to implement additional filters. There are two basic types of filters which are then combined as a Rule:

  • org.n52.epos.filter.ActiveFilter
  • org.n52.epos.filter.PassiveFilter

A realization of FilterInstantiationRepository can be considered as a transformer of a Filter representation (e.g. an XPath configuration) into the internal EposFilter instance. An example is the org.n52.epos.engine.filter.XPathFilterRepository.

Implementations of the above described interfaces need to be exposed via Java's ServiceLoader pattern (META-INF/services/"interface-as-filename", e.g. see this example).

Building

mvn clean install does the basic job. This includes integration-level tests to ensure the stable behavior of the stream processing.

Naming

EPOS has no special meaning or is an abbreviation. If desperately required, one could use "Event Processing Open-closed Suite" as the complete project name.

epos's People

Contributors

matthesrieke 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.