Skip to content

o1host/Cirrocumulus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Cirrocumulus

Cirrocumulus is an agent-based (cloud) infrastructure management system. Each agent, running on a host, is responsible for its own problem and cooperates with the rest via XMPP as a transport and FIPA-ACL messages as a protocol.

Dependencies

Cirrocumulus uses Bundler for each agent’s dependencies. Among others, they depend on Sexpistol gem (for S-EXP parsing). This gem should be specially patched because of unconvenient handling of strings.

Installation

At first install bundler:

gem install bundler

Dependencies for each agent are stored in Gemfile files. Navigate to corresponding directory and run bundle. For example, for xen agent:

cd lib/xen
bundle

To start an agent, just do:

cd lib
ruby <agentname>/<agentname>_control.rb start

If you don’t want to daemonize an agent, use ‘run’ insted of ‘start’.

Technical

Message structure

Each message is serialized in XML. It contains routing information, action type and content. Content always is an s-expression.

Message structure looks like:

<fipa-message
  receiver="optional receiving agent identifier"
  ontology="domain, e.g. cirrocumulus-vps, cirrocumulus-xen"
  act="request|query-ref|query-if|inform|failure">
  <content>
    (s-expression)
  </content>
</fipa-message>

Action types

  • request - asks receiver to perform some action, described in content

  • query-ref - query receiver for some information

  • query-if - asks receiver, if given proposition in content is true or false

Releases

No releases published

Packages

No packages published