npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mapek

v0.0.3

Published

NodeJs framework to implement autoadaptative software with simple MAPEK loops

Downloads

3

Readme

MAPEK-FRAMEWORK

The first framework to implement a MAPE-K Loop. This project enable the community to create auto-adaptative systems based on a simple version of the MAPE-K Loop.

Information about auto-adaptative software and the MAPE-K loop: http://www.uio.no/studier/emner/matnat/ifi/INF5360/v12/undervisningsmateriale/MAPE-K%20adap%20control%20loop.pdf

This framework is avaiable as an npm module: https://www.npmjs.com/package/mapek

Getting started

It's mandatory to create a .ini or .properties file and pass it the path when instantiating a mapekloop This framework automatically creates a REST api wich only supports:

  • POST http://..../monitor and a JSON in the body of the request

Calling this api fires a monitor event with the JSON received in the REST interface. Furthermore it's possible to easily pass data from the monitor phase to the process phase.

It's also possible to create networks of MAPE-K loops with the configuration file and the network module.

Example of use

First of all

npm install --save mapek 

And then

var mapek = require("mapek");

var loop = mapek.node("mapek.properties");
var network = loop.network;


loop.monitor(function(data, next){
    console.log("Monitoring "+JSON.stringify(data));
    data.modified = true; //for example
    //calling next we can send data to process phase
    next(data);
});

loop.process(function(data){
   //do something with the data
   //for example, this sends the JSON called data to the monitor phase of anotherMapekLoop
   network.send("anotherMapekLoop",data);
});

//in the configuration file
[rest]
port=8080
[network]
anotherMapekLoop.hostname=localhost
anotherMapekLoop.port=9999

There is a couple of example implementations in the samples folder.

Future plans

  • create a cloud service to share the configurations
  • improve the properties system
  • Implement a generic repository to enable diferent types of databases
  • add more phases to the loop(analysis,execute)

About

This project was created initially with research purposes, but can be extended and improved with the help and support of the community.