Setting up an OpenFLUID marketplace

From OpenFLUID

Jump to: navigation, search

Contents

Overview

OpenFLUID Market allows to distribute OpenFLUID "wares" over the network (local network or internet). Currently, only distribution of simulation functions is enabled, distribution of models and OpenFLUID-builder extensions should be available in the future.


Technically, OpenFLUID Market relies on a client/server system, using http, https or file protocol. The server side is called Marketplace where packages are available. The client side is called Market client, which downloads packages from Marketplaces into a local Market-bag. A Market client can connect to various Marketplaces in order to retreive packages.

Simulation functions can then be used to build models, as they are accessible from the Market-bag.

OpenFLUID Market features are available for the versions 1.6.2 and above.

OpenFLUID-Market client application
OpenFLUID-Market client application


Setting up a Marketplace

Marketplace site

A Marketplace is a structured disk tree, accessible through its URL. It hosts packages and associated meta-informations.
A web server (e.g. apache) must be used for http or https access, with correct configuration and permissions.


Marketplace information file

The Marketplace information file is a key-value file, giving information about the Marketplace. It must be called OpenFLUID-Marketplace and must be placed in the root directory of the Marketplace.


This file must contain the following keys in a section called openfluid-marketplace:

  • name : the explicit name of the Marketplace
  • description : a more detailed description of the Marketplace
  • contact : the name of the person to contact, followed by its email adress between chevrons (the email adresse is optional)


Simulation functions packages

Simulation functions packages are .tar.gz archive, containing source or binary simulation functions.
Package names are defined using the following convention <functionID>_<OpenFLUIDversion>_<OSplatform>.ofpk, with:

  • <functionID> : ID of the packaged simulation function
  • <OpenFLUIDversion> : version number of the OpenFLUID framework, checked for compatibility
  • <OSplatform> : OS platforms for which the package has been built. This can be linux-i386, linux-x86-64, win32, win64 for binary packages, or src for source packages

Source

A source package contains source code and CMake build configuration for the packages simulation function. It is unarchived, built and installed in dedicated directories. A CMakeLists.txt file must be present at the root of the package archive.


Binary

A binary package contains an already built simulation function for a given OS. A binary package is usually made of a .sompi, .dllmpi or .dylibmpi file. It is unarchived "as-is" in the dedicated directory.


Licenses files

Licenses files are text files containing the licences contents, referenced by packages in Catalog files (see below). These files must be named with the name of the license and the .txt extension.


Catalog files

Catalog file lists available packages for a given OpenFLUID version. Catalog file names are defined using the following convention Catalog_<OpenFLUIDversion>, where <OpenFLUIDversion> is the version number of OpenFLUID compatible with packages listed in the Catalog file.

A Catalog file is a key-value file, where each section is an ID of a simulation function. Each section can contain the following keys:

  • name : the name of the simulation function
  • description : the description of the simulation function
  • version : the version of the simulation function
  • authors : the author(s) of the simulation function
  • arch.<OSplatform>.file : the file name for the given <OSplatform>
  • arch.<OSplatform>.license : the specific license for the given <OSplatform>
  • arch.<OSplatform>.depends : dependencies for the given <OSplatform> (this is only informative, and is not automatically checked)
  • arch.src.buildoptions : build options passed to the CMake tool in case of source package


Example

The example below is about a market place delivering simulation functions packages for OpenFLUID version 1.6.2 and (future) version 1.7.0.
In this example, three different functions are available:

  • example.func.A
  • example.func.B
  • example.func.C

Some functions are available as binary package, some as source package, and some functions are available in both packages types.

File tree

/licenses
   GPLv3.txt
   GPLv3-OF.txt
   INRA-wosrc.txt
/linux-i386
   example.func.A_1.6.2_linux-i386.ofpk
   example.func.B_1.6.2_linux-i386.ofpk
   example.func.A_1.7.0_linux-i386.ofpk
   example.func.B_1.7.0_linux-i386.ofpk
/linux-x86-64
   example.func.A_1.6.2_linux-x86-64.ofpk
   example.func.B_1.6.2_linux-x86-64.ofpk
/src
   example.func.A_1.6.2_src.ofpk
   example.func.B_1.6.2_src.ofpk
   example.func.C_1.6.2_src.ofpk
   example.func.A_1.7.0_src.ofpk
   example.func.B_1.7.0_src.ofpk
/win32
   example.func.A_1.7.0_win32.ofpk
   example.func.B_1.7.0_win32.ofpk
OpenFLUID-Marketplace
Catalog_1.6.2
Catalog_1.7.0


OpenFLUID-Marketplace file

[openfluid-marketplace]
name = Example of OpenFLUID-Market
description = This OpenFLUID-Marketplace is an example for OpenFLUID community website
contact = John Doe <joh.doe@foobar.org>


Catalog files

Catalog_1.6.2 file

[example.func.A]
name = example function A
arch.src.file = example.func.A_1.6.2_src.ofpk
arch.src.license=GPLv3
arch.linux-i386.file = example.func.A_1.6.2_linux-i386.ofpk
arch.linux-i386.license=INRAwosrc
arch.linux-x86-64.file = example.func.A_1.6.2_linux-x86-64.ofpk
arch.linux-x86-64.license=INRAwosrc
description = bla bla bla...
authors = Fabre JC.
version = 11.03


[example.func.B]
name = example function B
arch.src.file = example.func.B_1.6.2_src.ofpk
arch.src.license=GPLv3
arch.linux-i386.file = example.func.B_1.6.2_linux-i386.ofpk
arch.linux-i386.license=INRAwosrc
arch.linux-x86-64.file = example.func.B_1.6.2_linux-x86-64.ofpk
arch.linux-x86-64.license=INRAwosrc
description = 
authors = Fabre JC., Louchart X., Moussa R.


[example.func.C]
name = example function C
arch.src.file = example.func.C_1.6.2_src.ofpk
arch.src.license=GPLv3-OF
description = 
authors = Fabre JC., Louchart X.


Catalog_1.7.0 file

[example.func.A]
name = example function A
arch.src.file = example.func.A_1.7.0_src.ofpk
arch.src.license=GPLv3
arch.linux-i386.file = example.func.A_1.7.0_linux-i386.ofpk
arch.linux-i386.license=INRAwosrc
arch.linux-win32.file = example.func.A_1.7.0_linux-win32.ofpk
arch.linux-win32.license=INRAwosrc
description = bla bla bla...
authors = Fabre JC.
version = 11.03


[example.func.B]
name = example function B
arch.src.file = example.func.B_1.7.0_src.ofpk
arch.src.license=GPLv3
arch.linux-i386.file = example.func.B_1.7.0_linux-i386.ofpk
arch.linux-i386.license=INRAwosrc
arch.linux-win32.file = example.func.B_1.7.0_linux-win32.ofpk
arch.linux-win32.license=INRAwosrc
description = 
authors = Fabre JC., Louchart X., Moussa R.



Personal tools