Skip to content

Latest commit

 

History

History
106 lines (72 loc) · 2.91 KB

README.adoc

File metadata and controls

106 lines (72 loc) · 2.91 KB

feedbackcontrol4j Java library

Apache License 2 download latest bb00bb Build Status

Introduction

feedbackcontrol4j is a small, standalone java library.

Implement feedback control in your applications.Main entities are Controller, Controllable, Sensor, Filter, ControlLoop, …​

For further reading I can recommend Feeback Control for computer Systems from Philipp K. Janert.

Examples

Use cases

  • "self adaptive" behaviour of your application instead of "classic", manual configuration

    • number of workers / threads / vm’s / …​

    • size of cache

    • number of database connections

    • number of "hot spares"

  • implementing "flow control" between producer and consumer

  • manage CPU load

  • …​

Requirements

To use this library you need

  • Java 8 or later

Installation

Usage in Gradle, Maven, …​

Gradle based build

Add the following dependency in your gradle build file:

repositories {
   mavenCentral()
}

dependencies {
    compile 'ch.petikoch.libs:feedbackcontrol4j:x.y.z' // replace x.y.z with the real version

    // or "latest" release, for the braves:
    //compile 'ch.petikoch.libs:feedbackcontrol4j:+'
}

Maven based build

Add jtwfg as dependency to your pom.xml:

        <dependency>
            <groupId>ch.petikoch.libs</groupId>
            <artifactId>feedbackcontrol4j</artifactId>
            <version>x.y.z</version> <!-- replace x.y.z with the real version -->
            <!-- or latest release, for the braves
            <version>RELEASE</version>
            -->
        </dependency>

Support

Please use GitHub issues and pull requests for support.

How to build the project

To run a build of the feedbackcontrol4j project on your machine, clone the git repo to your local machine and start the gradle based build using the gradle wrapper from the shell/command line:

> ./gradlew build

Motivation

Feedback control is IMHO in "enterprise" software development still pretty new (2015), but very promising.

I didn’t find any "ready-to-go" library for the JVM to implement custom feedback control closed loops, so I started with this work here.

Best regards,

Signature