***************** ** GINNUNGAGAP ** ***************** Ginnungagap(*) is a middleware written in C++ which supports RMI, migration of objects, grouping of objects, and core-node selection. It includes basic server functionality. An test application, named Niflheim, which uses Ginnungagap, is included. ******************************* * THE IDEA BEHIND GINNUNGAGAP * ******************************* With this middleware it is possible to group the objects used by one or more clients. With core-node selection algorithms, one can search for nodes that are better physically placed than the current one. Since our middleware supports migration, it is then possible to move the entire group of objects to the new, better placed server (transparently during run-time). This way we can lower the aggregate latency from the clients to the objects they need. *************** * LATEST CODE * *************** The latest version of this code can be found at: http://github.com/geirr/ginnungagap ******************************* * OVERVIEW OF THE SOURCE CODE * ******************************* lib/ginnungagap: This is the main middleware source code niflheim: This is the test application source code niflheim/src/ggg: This folder contains the test application's bindings to the middleware ************* * COMPILING * ************* Just run the compile.sh script, and the middleware and test application will be built in a directory called `build'. All the binaries can then be found in the directory: build/niflheim/src ******************** * RUNNING NIFLHEIM * ******************** Please see the file: niflheim/README ************************** * NEEDED TOOLS/LIBRARIES * ************************** * CMake * e2fsprogs libraries (for uuidgen) * GNU c library (for xdr) * Boost::Graph To install these on a debian/ubuntu compatible system, use the following command: sudo apt-get install libc-dev uuid-dev cmake libboost-graph-dev *********** * LICENCE * *********** See the file COPYING. ******** * NOTE * ******** Since I didn't know C++ when I started this project (my background is from C), some of the old code is quite ugly, and not in the spirit of C++. Please see the TODO file for some of the most important code changes that need to be done. * Ginnungagap: A term from Old Norse mythology, Ginnungagap is what exists before the world is created; it is envisioned as an enormously wide gap, filled with energies but lacking form or order.
geirr/ginnungagap
A C++ middleware which supports RMI, object migration and core-node selection
C++GPL-2.0