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.
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.
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’.
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>
-
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