DeveloperGuide

Guide for Algorithm Module Developers

IMPORTANT! This developer guide is deprecated! The new Developer Guide will be published in end of 2014. The new way to integrate algorithms into the Cloud'N'Sci.fi marketplace is much simpler than what is presented below. New version will be published in GitHub soon...

This guide is targeted for software developers interested in creating algorithm modules to Cloud'N'Sci.fi. Each algorithm module should implement a data processing step which has well-specified input and output and does something useful to the data. Moreover, algorithm modules should be as general-purpose as possible to maximize applicability in algorithm architectures aiming to solve real-world data refining needs.

Cloud'N'Sci.fi algorithm modules can be practically anything from a short script to some really complex data processing method. Their common properties are:

  • Modules read input data from a given directory
  • Modules write output data into a given directory
  • Output data is somehow refined from the input data
  • Both input and output data are well-specified

Although modules may implement some really sophisticated algorithms (as understood by the academic world), they do not satisfy the Cloud'N'Sci.fi definition of an algorithm due to lack of direct benefit to customers. Therefore, in Cloud'N'Sci.fi terminology they are just 'modules' which are used to build 'algorithms'. In practice, algorithm modules and data flows are managed by a Cloud'N'Sci.fi system component called the Scilego Server.

One of the key design goals of the Cloud'N'Sci.fi system has been to make development and integration of algorithm modules as easy and flexible as possible. We believe that minimal development overhead maximizes the number of developers joining the fun which brings the best modules into the system. The more modules we have, the more solutions can be built of them. Each practical solution makes the system more attractive to customers and application developers which directly increases algorithm developer incomes.

In order to ease module development, we have defined a set of simple rules that each algorithm module must satisfy. Obey those rules to make your module compatible with the Cloud'N'Sci.fi system.

The rules for algorithm module developers.

Complete algorithm module integration example with Java source code can be found on the the WonderSorting algorithm pages.

Algorithm Module Packaging

As defined in rules 3-14, algorithm modules should be packaged and delivered to Cloud'N'Sci as a single zip-file. The image below shows the file structure of a proper algorithm module.