What is ISMA? The “Intelligent Service Management Agent” the force behind Space Wars, that runs all calculations for the game, as well as the NPCs, and some administrative tasks.

The way ISMA is set up, it allows adding more modules which can expand functionality. As an example, the function required for Space Wars are in a module an d called, when needed or requested.

It is also possible to run multiple instances of ISMA next to each other on the same server, no hacks required. And to expand availability, it can be run in a cluster.

Details

ISMA is written in Perl and the modules can be configured in the configuration. Every instance has its own configuration, which overrules the settings in the master configuration.

The tasks for ISMA are defined in a YAML-File. (At some points, the rest of the configuration will be moved there as well.) You can define what function runs at which time. It is also possible to direct functions to a cluster node, all nodes in the cluster or to the local instance only.

Features

Available now:

  • Run multiple instances of ISMA on the same server.
  • Schedule tasks.
  • Work in a cluster.
  • Send mail from within ISMA.
  • Interface with a MySQL server.
  • Send all logs to one node for centralised logging.
  • Send notifications using Pushover.

Upcoming:

  • Masterless cluster: Every node can be a master to prevent downtime.
  • Improved scheduling of tasks.
  • Improved deployment of tasks.

Dependencies

  • Ubuntu 16.04:
    • liblist-moreutils-perl
    • libexperimental-perl
    • libyaml-perl