Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 1.48 KB

File metadata and controls

45 lines (33 loc) · 1.48 KB

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