Skip to content. | Skip to navigation

Personal tools
Log in

DIstributed Computing Environments (DICE) Team
We are a group of computer scientists and IT experts from the Department of Computer Science AGH and ACC Cyfronet AGH. We are a curiosity- and research-driven team, specializing in large-scale distributed computing, HPC, Web and Cloud technologies. We develop new methods, tools and environments and we apply these solutions in e-Science, healthcare and industrial domains.

You are here: Home Projects Projects full descriptions Mapper-files MaMe Administrator Manual

MaMe Administrator Manual


MAPPER Memory (MaMe) main responsibility is to provide rich, semantics-aware persistence store for other components to record information. The MaMe registry is meant to deliver its functionality based on a well-defined domain model which includes all important elements of MAPPER metadata defined in MML: scale modules, mappers and filters, together with their ports, implementations and other constituting elements and attributes. Thanks to MaMe, other tools may store, publish and share common registry of such elements throughout the entire project.

Another component of MaMe registry concerns the repository of xMML application descriptions. The main objective of this effort is to deliver the users a persistent and shareable storage for constructed multiscale application descriptions in the form of xMML documents.

Finally, MaMe serves a web user interface for project administrators and applications developers. They are able to use it for setting up their multi-scale application modules and parts.

The following document describes how to setup your own installation of MaMe, together with its persistent database and its web interface.

This documentation assumes the possession of the working knowledge of linux, web server stack configuration and Ruby environment.


MaMe is essentially a web application, written in Ruby language, running inside an environment typical for webapps, on top of a MongoDB database system. It has a typical three-tier setup, with the presentation layer relying on a regular web server. Therefore many of the installation steps below will be quite familiar for anyone who has deployed a web application before.


On the target server you need to set up (probably as the root user):

  • Ruby 1.8.7 programming environment,
  • Apache2 web server, preferably with Phusion Passenger (though a different setup is also possible, with reverse proxies or dedicated servers such as Thin),
  • SVN command-line client,
  • dedicated user account for MaMe installation – we'll assume it's mame.


MongoDB Setup

Log in as the mame user and do the following:

  1. Download a MongoDB release (the latest release is the 2.2 branch, however MaMe is tested with 1.8 branch, so this one is preferred) suitable for your architecture and machine OS.
  2. Uncompress the MongoDB release.
  3. Create a directory dedicated to MaMe data – let's assume it's ~mame/data .
  4. Go to the bin subdirectory of the uncompressed MongoDB release and create a start shell script with the following contents:

nohup <PATH_TO_MONGO>/bin/mongod --dbpath <PATH_TO_DATA_DIR> & > log

Running the script should start the mongod database process. You may also include execution of this script in your machine's startup procedure (e.g., booting sequence init scripts), so in case your server suffers an unexpected cold restart, MaMe will be ready to work with no manual intervention needed.


MaMe Setup

Log in as the mame user and do the following:

  1. Create a dedicated directory for MaMe application, for instance ~mame/mame.
  2. gem install following Ruby gems in following versions (you may use --no-ri and --no-rdoc switches for faster procedure):
    • bson, bson_ext and mongo, all in 1.1.5 version
    • mongo_mapper in 0.8.6 version (should also fetch some dependencies)
    • sinatra 1.2.6 (will probably also fetch rack – if not, install it in 1.3.5 version)
    • haml, yajl-ruby (probably the newest versions will do)
    • rack-flash 0.1.1.

Now, having the basics covered, download the following gems:

and install them with the gem install command, starting with sint_upper_model. This will give us the domain model of MaMe ready. Now, we need to get the MaMe codebase itself. Use the open SVN access (MaMe is 100% open source):

svn checkout --username anonsvn

to get the sources in the deployment directory (the password is the same as the user name: anonsvn). The following two steps should conclude the installation:

  1. In ~mame/mame/conf-sintool.yml add the name of the target server as the last entry (similar to previous ones) – the name must be the same as the one yield by the hostname command issued on the target machine.
  2. create a hidden ~mame/.mame directory right in the mame user home and put there a single passes.rb file with the following content (don't forget about the double quotes around strings):
    • USER = <user_name>: the login name to be used for MaMe authentication
    • PASS = <password>: the password to be used for MaMe authentication.


Web Server Setup

Now we need to make your web server run MaMe properly and dispatch any HTTP calls correctly. Again as an administrator superuser, you have to add these lines to the /etc/apache2/sites-available/default Apache2 configuration file (please note your Linux/Apache2 distribution may use different file for this):

alias /mame/ "/var/www/mame/"
RackBaseURI /mame
<Directory /var/www/mame>
AllowOverride all
Options -MultiViews

Now, the final part is the symbolic link in the /var/www directory:

ln -s <MAME_USER_HOME>/mame/public mame

Now, navigate to the MaMe URL (http://target.machine/mame) with your browser and see the results. In order to learn the interface and the functionality of MaMe, please consult MaMe User Manual provided alongside this document.


Copyright owner of MAPPER Memory is DIstributed Computing Environments (DICE) Team who makes it available to public under open source MIT license .

The MaMe domain model and the web interface are being developed by the Academic Computer Centre Cyfronet AGH and are partially funded by the MAPPER project, RI-261507.

NOTE! This web site uses cookies and similar technologies (if you do not change the browser settings, you agree to this).

cyfronet agh