/Proton

IBM Proactive Technology Online

Primary LanguageJavaScript

#CEP - Complex Event Processing

License badge Documentation badge Docker badge Support badge

Introduction

IBM Proactive Technology Online (PROTON) is an open source complex event processing engine developed at IBM Research - Haifa. PROTON was developed as a research project and extended in the scope of the following EU projects: FINEST, FISPACE, FIWARE, SPEEDD, FERRARI, PSYMBIOSYS and DATABIO. It provides language primitives for defining, submitting, and executing event processing networks. The goal of the system is to respond to raw events and identify meaningful events within contexts. The system comes with a set of built-in operators (such as sequence, all, etc.) for determining CEP patterns. It also has extendable APIs for adding additional custom operators. The system comes with existing source/sink adapters, allowing it to extract raw events from files or pull them from RESTful services. It also provides extendable APIs for adding more adapter types.

Top

GEi overall description

This project is part of FIWARE.

Top

Build and Install

There are several options:

  • The Proton standalone version:
    • The Proton J2SE version, is which is just a simple Java app running the Proton engine. This can be found under ProtonJ2SE project.
    • The Proton web version provides a RESTful interface for sending events, as well as the admin app for managing Proton apps; Those are the ProtonOnWebServer and ProtonOnWebServerAdmin projects, respectively. This version of the engine is adapted to run on a web server. It allows users to push RESTful events to the engine in addition to pulling RESTful events options provided by the REST adapter. This version also provides REST APIs for managing the engine’s instance lifecycle, and to manage the definition repository.
  • The Proton web UI, provides an authoring environment for Proton applications; Those are the AuthoringTool and AuthoringToolWebServer projects.
  • Puppet installation script. Download and unzip the puppet.zip file. This folder is used for installation of the web version on new ubuntu machine with or without puppet installed on it. To run without puppet installed, run the script miscalleneous/CEP_Install_via_puppet.sh
  • The Proton on STORM version, which allows to run the engine in a distributed manner on multiple machines using the STORM infrastructure.

To work with artifacts

All build artifacts are in the [Proton github repository] (https://github.com/ishkin/Proton/tree/master/mvn-repo/com/ibm/hrl/proton). These can be used as dependencies in maven builds. In case you would like to work with simple artifacts, you can find these here

For standalone engines, use the [ProtonJ2SE artifact] (https://github.com/ishkin/Proton/tree/master/artifacts/ProtonJ2SE.zip). This is a .zip distribution, with ProtonJ2SE executable jar, launch script, sample, and docs directory.

For instructions on how to configure and install IBM Proactive Technology Online on Tomcat (web version), see the [Proton on Tomcat guide] (https://forge.fi-ware.org/plugins/mediawiki/wiki/fiware/index.php/CEP_GE_-_IBM_Proactive_Technology_Online_Installation_and_Administration_Guide)

Top

API Reference Documentation

Detailed online documentation for installation, testing, web authoring of rules and web APIs are located in https://readthedocs.org/projects/proactive-technology-online/builds/ Documentations is also available under the /documentation folder, and includes the Proton's User Guide (explaining the language building blocks and use of the authoring tool use) and Programmer's Guide (explaining possible extension points to the Proton's programming model)

Top

License

IBM Proactive Technology Online is licenced under the Apache Licence Version 2.0. For more information see the LICENCE.md

Top

Support

For working with source code, note that the projects are maven projects. They can be built using the "clean install" targets by running the mvn command on the parent pom (located in the "Proton”) directory. This command will build all the Proton projects.

In addition, by executing the "mvn deploy" command of the same parent pom after performing clean install, the target jars will be installed into a local repository named "mvn-repo" (/Proton/maven-repo).

Top