Tags:
create new tag
view all tags

AstroGrid Tutorials

Click here to view this page as a pdf document.

Introduction

This userguide provides step-by-step instructions on how to create and run a simple workflow through an AstroGrid portal. The worked examples in this guide use the MySQL database and portal hosted on the eSDO (msslxx) project machine at MSSL.

What is AstroGrid ?

AstroGrid is a virtual observatory which provides access to a vast collection of astrophysical, solar, and solar terrestrial databases and software tools via the Internet. Access is via one of the AstroGrid portals - internet websites that allow the user to elect from the library of astrophysical databases and software components and build these into "workflows".

Workflows can range from a simple query for a list of URLs, to complex tasks such as the popular 'Solar Moviemaker' application.

Figure 1 provides a schematic overview of the AstroGrid architecture. The sequence of events that occur when a workflow is executed are as follows.

  • The user logs on to one of the AstroGrid portals.
  • The user creates a new/loads an existing 'workflow'.
  • The portal verifies that any service referenced in the workflow (Datacenter CEA or Commandline CEA tool) is listed in the registry to which it is connected.
  • The user submits the workflow to the Job Execution Service (JES) as a 'job'.
  • The JES doublechecks with the registry that all referenced services are available.
  • The JES passes input parameters specified in the workflow to the requested services.
  • Services pass back output parameters to the JES. These may form the final result or the next stage of the workflow.
  • Process continues unless and error is encountered or all steps in the job have been completed.
  • Final output results written to the specified area of MySpace.

The various AstroGrid components and services depicted may reside on a single server, or may be hosted on a variety of servers hundreds of miles apart; in either case the AstroGrid architecture is transparent to the user.


Logging into an AstroGrid portal

In addition to the eSDO portal hosted at MSSL, there are other U.K. based AstroGrid portals available, including Leicester University's 'Cadairidris' and 'Zhumulangma' machines. Once an account has been created with a specific community, the user should be able to log on to any AstroGrid portal with the same username, password, and community name.

Figure 2 below shows a typical AstroGrid portal login page.

Anyone wishing to access an AstroGrid portal must have a valid login account. An account can be requested by clicking-on the 'register' link on the login page of the chosen portal and filling in the necessary details. These will be forwarded to the portal administrator, who is responsible for the creation of new accounts.

Once an account has been created the user can login into the portal as follows:

  1. Open a web browser to an AstroGrid portal, such as http://msslxx.mssl.ucl.ac.uk:8080/astrogrid-portal.
  2. Fill out the login form 'Username', 'Password' and 'Community' fields.
  3. Click-on the 'login' button and wait for the portal home page to be displayed.


Queries

A fundamental part of any workflow is the database query, the results of which may form one of the the inputs to the next step of a workflow. Queries are written in standard SQL syntax but are converted to and saved in a special XML format called ADQL for workflow transmission.

The database on the eSDO server (msslxx.mssl.ucl.ac.uk) contains two tables ('trace' and 'mdi') with fields storing the filename, location and time/dates of TRACE and SOHO-MDI files downloaded for January 2002. The following example shows how to create a simple query that will extract the pathnames of selected files listed in the 'mdi' table.It will be used at a later stage as part of a simple workflow.

Creating a query

  1. Click-on the 'Queries' button on the toolbr and verify the 'Query Editor' page is displayed.
  2. Type a query into the 'Data Query Builder' scratchpad area, e.g. SELECT m.location FROM mdi as m where m.date >= "2002-01-01 00:00:00" and m.date < "2002-01-01 02:00:00"

Note: the "Execute Query" button is not enabled. To submit your query, save it to MySpace as detailed in the next section, and then load the query into a workflow.

Saving a query

  1. Click-on the 'Save to MySpace' button below the scratchpad and verify the 'MySpace Microbrowser' pop-up is displayed.
  2. Browse for appropriate sub-directory. Note - these are MySpace directories, not directories on your local machine or network. Click "Up" to go up a directory, or click "New folder" to create a new folder under the current directory. Alternatively, click the yellow folder icon next to a directory name in the microbrowser to select that directory.
  3. Highlight existing file or enter the name of a new file in 'File Name:' field.
  4. Click-on 'Save' and verify 'MySpace Microbrowser' pop-up removed.
  5. Click on the "MySpace" button at the top of the page. Use the MySpace Explorer to confirm that the query has been saved in MySpace.

Loading a query

Existing queries can be viewed and modified by loading them into the query scratchpad.

  1. Click-on the 'Queries' button on the toolbar.
  2. Click-on the 'Load from MySpace' button below the scratchpad and verify the 'MySpace Microbrowser' pop-up is displayed.
  3. Highlight the 'Name' of the newly created query.
  4. Click-on 'Open' on the pop-up. Verify the pop-up is removed and the selected query is displayed in the scratchpad area.
  5. Modify and save as required.


Workflows

The workflow allows the user to construct a complex sequence of astrophysical software processes: for example, querying a database, passing the results to external software applications for processing and then sending the output to the MySpace virtual filestore. These activities may be supplemented with inbuilt workflow commands, such as For and While loops, and a powerful scripting language called 'Groovy', a shorthand version of the Java programming language.

Two worked examples are provided: a simple workflow designed to query a database and write the results to the user's MySpace area, and a more complex workflow that combines query and filecopy routines. In either case, the user should proceed straight to the 'Saving a workflow' section of this tutorial after creating the workflow of their choice.

Creating a simple workflow

The following example shows how to construct a simple workflow using the query created previously to extract a list of filenames held in the eSDO database 'mdi' table and return these in VOTABLE (XML) format for storage in MySpace. The workflow will be created from scratch and should appear similar to the one shown in Figure 5.

  • Figure 4 - AstroGrid Workflow Editor page (new workflow shown):
    AGWorkflowEditor.jpg

  1. Click-on the 'Workflows' button on the toolbar.
  2. Verify the 'Workflow Editor' page is displayed as in Figure 4.
  3. Verify that 'new workflow' is displayed in the 'Name:' box. Go to step 6. _If there is a workflow already loaded, i.e. 'Name:' field reads something other than 'new workflow', then go to step 4.
  4. Move the mouse cursor to the 'File' dropdown menu below the toolbar and select 'New'.
  5. Click-on 'OK' on the "Any unsaved workflow information will be removed..." pop-up.
  6. Move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  7. Select 'Insert step' -> 'here' and click-on left mouse button. Verify 'Step' appended to 'Sequence'.
  8. Click-on 'Step' (highlighted with yellow box) and verify Step/Task panel is displayed at the bottom of the webpage.
  9. Click-on the '--Select task--' dropdown menu, move cursor to chosen task (highlighted in blue) and click-on again. For this example, select "esdo.mssl.ucl.ac.uk/esdo-pal/ceaApplication : adql". If you don't see this tool in the application list, type "esdo.mssl.ucl.ac.uk/esdo-pal/ceaApplication" in the box next to 'Task Name' and press the enter key - a red error message will be displayed if the tool name is not recognized.
  10. Add optional 'Step name:' (optional but provides useful documentation).
  11. Add optional 'Description:' (optional but provides useful documentation).
  12. Leave 'var name:' blank.
  13. Click-on the 'Update step details' button and wait for the webpage to refresh.
  14. Click-on workflow 'Step' and verify a step parameters box is displayed with 'VOTABLE' and 'Query' shown as input parameters, and 'Result' as output parameter.
  15. Click-on the 'Browse' button alongside the 'Query' input parameter and verify the 'MySpace Microbrowser' page is displayed.
  16. Find and highlight the query created earlier and click-on the 'Select' button. You can also type in the MySpace reference of a previously created query. Example: "ivo//esdo.mssl.ucl.ac.uk/UserName#queries/my_query"
  17. Verify that the 'MySpace Microbrowser' pop-up is removed and the query input parameter now displays the MySpace pathname of the selected query.
  18. Enter an output file in the ouput parameter field. You can use the 'MySpace Microbrowser' - browse to the appropriate sub-directory and create a new results file by entering a filename and clicking "New", or highlight an existing results file and click "select" (old data will be overwritten). You can also manually entering the full MySpace pathname of a file. Example: "ivo://esdo.mssl.ucl.ac.uk/UserName#VOTable/my_query_results"
  19. Click-on 'Update parameter values' and allow the webpage to refresh.
  20. Add meaningful name and description to the Workflow Editor task 'Name:' and 'Description:' fields.
  21. Click-on 'update workflow details' button alongside the 'Name:' and 'Description:' fields. Allow webpage to refresh. Note: The type and number of parameters displayed are specific to this application. Other applications may use different parameters.

  • Figure 5 - AstroGrid Workflow Editor (with simple query workflow shown) page :
    AGWorkflowEditor2.jpg

Creating a more complex workflow

In this example we take our previous workflow a stage further by using pathnames returned from a query and supplying these as input to an application which extracts the listed files from a datastore on the eSDO msslxx server and copies them to MySpace. The workflow will be created from scratch and should appear similar to the one shown in Figure 6.

Step 1: Load query.

  1. Click-on the 'Workflows' button on the toolbar. Verify the 'Workflow Editor' page is displayed.
  2. Ensure that a 'new workflow' is displayed in the 'Name:' box.
  3. Move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  4. Select 'Insert step' -> 'here' and click-on left mouse button. Verify 'Step' appended to 'Sequence'.
  5. Click-on 'Step' (highlighted with yellow box) and verify Step/Task panel is displayed at the bottom of the webpage.
  6. Click-on the '--Select task--' dropdown menu, move cursor to chosen task (highlighted in blue) and click-on again. For this example, select "esdo.mssl.ucl.ac.uk/esdo-pal/ceaApplication : adql". If you don't see this tool in the application list, type "esdo.mssl.ucl.ac.uk/esdo-pal/ceaApplication" in the box next to 'Task Name' and press the enter key - a red error message will be displayed if the tool name is not recognized.
  7. Add optional 'Step name:' (provides useful documentation).
  8. Add optional 'Description:' (provides useful documentation).
  9. Type 'source' into 'Var. name:' field.
  10. Click-on the 'Update step details' button and wait for the webpage to refresh.
  11. Click-on workflow 'Step'. Verify a step parameters box is displayed with 'VOTABLE' and 'Query' shown as input parameters, and 'Result' as output parameter.
  12. Click-on the 'Browse' button alongside the 'Query' input parameter and verify the 'MySpace Microbrowser' page is displayed.
  13. Find and highlight the query created earlier and click-on the 'Select' button. You can also type in the MySpace reference of a previously created query. Example: "ivo://esdo.mssl.ucl.ac.uk/UserName#queries/my_query".
  14. Click on the tick box alongside the input parameter field if it is not already ticked.
  15. Verify that the 'MySpace Microbrowser' pop-up is removed and the query input parameter now displays the MySpace pathname of the selected query.
  16. Ensure the ouput parameter field is left blank and the tick box is unticked.
  17. Click-on 'Update parameter values' and allow the webpage to refresh.

Step 2: Transform the query results into filenames to grab.

  1. With 'Step' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  2. Select 'Insert logic' -> 'Set' -> 'after' and click-on left mouse button. Verify 'Set:' is appended to the workflow immediately after 'Step'.
  3. Click-on 'Set' (highlighted with yellow box) and verify 'Set:' panel is displayed at the bottom of the webpage.
  4. Add 'file' to the 'Name:' field and set the 'Value' field to a nominal value, e.g. 'abc'.
  5. Click-on 'update set details' and allow the webpage to refresh.
  6. With 'Set' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  7. Select 'Insert logic' -> 'Set' -> 'after' and click-on left mouse button. Verify 'Set:' is appended to the workflow immediately after previous 'Set' .
  8. With 'Set' highlighted add 'urls' to the 'Name:' field and set the 'Value' field to a nominal value, e.g. 'abc'.
  9. Click-on 'update set details' button and allow the webpage to refresh. _The 'Set' command allows the user to declare and initialize variables for use in workflow scripts. At present it isn't possible to assign more than one variable to each 'Set' command, so several 'Set' command are required if multiple variables are to be used._
  10. With 'Set' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  11. Select 'Insert logic' -> 'Script' -> 'after' and click-on left mouse button.
  12. Verify 'Script:' is appended to the workflow immediately after previous 'Set'.
  13. Click-on 'Script' (highlighted with yellow box) and verify 'Script:' panel is displayed at the bottom of the webpage.
  14. Add the following text to the 'Body:' field of the panel:

    if (source.size() > 0){
    print ("Run script");
    print "\n";
    votable = source.Result;
    parser = new XmlParser();
    nodes = parser.parseText(votable);
    urls = nodes.depthFirst().findAll{it.name() == 'TD'}.collect{it.value()}.flatten();
    }
    This script takes any filenames returned by the query and stores them in a variable called urls (defined earlier in the workflow). The 'Script' command allows the user to use 'Groovy', a powerful shorthand Java programming language that provides the user with access to and control over many aspects of the JES. For more information, please refer to the AstroGrid Job Management User Guide at http://www.astrogrid.org/maven/docs/HEAD/jes/astrogrid-workflow-userguide.pdf

  15. Click-on 'update script details' button and allow the webpage to refresh.

Step 3: Send filenames as input to MDI data transfer tool.

  1. With 'Script' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  2. Select 'Insert loop' -> 'For loop' -> 'after' and click-on left mouse button. Verify 'For:' is appended to the workflow immediately after 'Script:'.
  3. Click-on 'For' (highlighted with yellow box) and verify 'For loop:' panel is displayed at the bottom of the webpage.
  4. Add 'x' to the 'Var:' field, and '${urls}' to the 'Items:' field.
  5. Click-on 'update for loop details' button and allow the webpage to refresh.
The 'For' command causes the workflow to execute the workflow commands that follow it in a loop. The size of the loop is defined by the variable assigned to the 'Items:' field; in this example, it is the number of pathnames stored in the 'urls' variable.
  1. With 'For' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  2. Select 'Insert sequence' -> 'after' and click-on left mouse button.
  3. Verify 'Sequence:' is appended to the workflow immediately after 'For:'.
  4. With 'Sequence:' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  5. Select 'Insert logic' -> 'Script' -> 'here' and click-on left mouse button.
  6. Verify 'Script:' is appended to the workflow immediately after 'Sequence:'.
  7. Click-on 'Script' (highlighted with yellow box) and verify 'Script:' panel is displayed at the bottom of the webpage.
  8. Add the following text to the 'Body:' field of the panel:
    count = urls.size();
    file = x;
    print "url is ... " + x + "\n";
    StringTokenizer st = new StringTokenizer(file, "/");
    while (st.hasMoreTokens()) {
    file = st.nextToken();
    }
    print "\n";
    jes.info(x);
    concatStep = jes.getSteps().find {it.getName() == 'GrabSDOFiles'};
    inputs = concatStep.getTool().getInput();
    inputs.clearParameter();
    p = jes.newParameter();
    p.setName('InputFiles');
    p.setIndirect(true);
    p.setValue(x);
    inputs.addParameter(p);

    This script takes the next pathname in the 'urls' array and uses this as the input to the final step of the workflow. It also parses the pathname according to the '/' delimiter and stores the result in the variable 'file'. This variable forms the output of the final step of the workflow step.

  9. Click-on 'update script details' button and allow the webpage to refresh.
  10. With 'Script' still highlighted, move cursor to 'Edit' dropdown menu on the 'Workflow Editor'.
  11. Select 'Insert Step' -> 'after' and click-on left mouse button. Verify 'Step' appended to 'Script'.
  12. Click-on 'Step' (highlighted with yellow box) and verify Step/Task panel is displayed at the bottom of the webpage.
  13. Click-on the '--Select task--' dropdown menu, move cursor to chosen task. For this example, select 'esdo.mssl.ucl.ac.uk/GrabSDOFiles'. If you don't see this tool in the application list, type 'esdo.mssl.ucl.ac.uk/GrabSDOFiles' in the box next to 'Task Name' and press the enter key - a red error message will be displayed if the tool name is not recognized.
  14. Add 'GrabSDOFiles' to 'Step name:' field.
  15. Add optional 'Description:'.
  16. Leave 'Var. name:' field blank.
  17. Click-on the 'Update step details' button and wait for the webpage to refresh.
  18. Click-on workflow 'Step'. Verify a step parameters box is displayed with one input field and one output field shown.
  19. Add 'InputFiles' to the input parameter field. This is the variable written into by the previous script so care must be taken to ensure that it matches exactly the spelling of the script variable (case sensitive).
  20. Add 'ivo://esdo.mssl.ucl.ac.uk/UserName#VOTable/${file}' to the output parameter field.
  21. Add name and description to the Workflow Editor task 'Name:' and 'Description:' fields.
  22. Click-on 'update workflow details' button alongside the 'Name:' and 'Description:' fields. Allow webpage to refresh.

  • Figure 6 - AstroGrid Workflow Editor (with file copy workflow shown) page :
    AGWorkflowEditor3.jpg

Saving a workflow

  1. Move cursor to 'File' dropdown menu on the 'Workflow Editor', then click-on 'Save'. Verify that the 'MySpace Microbrowser' pop-up is displayed.
  2. Select appropriate sub-directory for the workflow, type in a suitable name into the 'File Name:' field and click-on 'Save'. Verify that the 'MySpace Microbrowser' pop-up is removed.

Workflow is now saved in MySpace and is ready to be loaded and submitted as a job.

Loading/Submitting a Workflow

  1. Move the cursor to the 'File' dropdown menu on the 'Workflow Editor' and click-on 'Open'. Verify the 'MySpace Microbrowser' pop-up is displayed.
  2. Find and highlight the workflow created earlier and click-on the 'Open' button. You may also type in the file name. (Example: "ivo://esdo.mssl.ucl.ac.uk/UserName#Workflows/my_workflow".)
  3. Allow webpage to refresh and verify that the selected workflow is displayed.
  4. Move the cursor to the 'File' dropdown menu on the Workflow Editor and click-on 'Submit' and allow the webpage to refresh.
  5. Verify 'Workflow Editor' displays the message: 'Workflow successfully submitted to JES; ...'.
  6. Once job has completed, a VOTable file containing the query results should appear in your MySpace VOTable area.
NOTE: CURRENTLY RESULTS ARE NOT BEING SAVED TO MYSPACE! - ECA, 17 May

Checking Job Status

  1. Click-on on either the 'job monitor' link on the 'Workflow Editor' or 'Jobs' button on the toolbar. Verify 'Job monitor' page is displayed.
  2. Verify job submitted is listed and 'Status' reads either 'ERROR', 'RUNNING' or 'COMPLETED'.
  3. When job has finished, i.e. status reads 'ERROR' or 'COMPLETED', click-on 'Job ID'. Verify workflow is displayed showing success/failure of each stage.
  4. Click-on 'Workflow transcript'. Verify 'Workflow transcript' page is displayed with details of the complete job transaction.

Deleting a Job

  1. Return to the 'Job Monitor' page by clicking-on the 'Jobs' button on the toolbar.
  2. Click-on 'delete-job' alongside the workflow previously submitted. Allow the webpage to refresh and verify the job removed from the list.


Other MySpace commands

MySpace features several file commands that can be applied to any file stored there, be it a query, workflow or an output file of any description.

Copy/Paste a file

  1. Browse for appropriate file or sub-directory in MySpace and highlight.
  2. Click on 'Copy'.
  3. Click on 'Paste' and verify that 'Copy. Please supply a new name for the file' pop-up displayed.
  4. Enter new filename and click-on 'OK'. Verify pop-up removed and new file displayed.

Deleting a file or sub-directory

  1. Browse for appropriate file or sub-directory in MySpace highlight.
  2. Click-on 'Delete'. Verify 'Confirm Deletion' pop-up displayed.
  3. Click-on 'OK'. Verify pop-up removed and selected file deleted.

Uploading a file

Files of any format can be transferred to 'MySpace' from other sources, e.g. local machine or website, by using the upload facility.

From the desktop

  1. Click-on 'From the desktop...' button.
  2. Click-on 'Browse...' button. Verify filebrowser pop-up is displayed.
  3. Browse for appropriate file and double-click. Selected file is displayed in the 'Path:' field.
  4. Click-on 'Go' button. Verify 'Supply a new name for the uploaded file' pop-up is displayed.
  5. Enter new filename (optional) and click-on 'OK'. Verify pop-up removed and new file displayed.

From the web

  1. Click-on 'From the web...' button. Verify 'URL: field is displayed.
  2. Enter valid URL and click-on 'Go' button. Verify 'Supply a new name for the uploaded file' pop-up is displayed.
  3. Enter new filename (optional) and click-on 'OK'. Verify pop-up removed and new file displayed.

    Non-valid URLs will result in a file of zero bytes length being added to MySpace. The file will take the name of the suffix of the incorrect URL.

Viewing file contents

The contents of files stored in MySpace may be viewed.

  1. Highlight the 'Name' of the file.
  2. Click-on the 'Properties' button and verify the 'File Properties' pop-up is displayed.
  3. Click-on the 'Path:'link on the pop-up and verify the contents the file are displayed in the pop-up.

    The pop-up viewer will display the contents of text files and recognised binary file formats (.fits, .mpg). If a non-recognised format is encountered, however, the user will be prompted to select a suitable application for viewing the file.

  4. Close the pop-up.

  • Figure 8 - AstroGrid MySpace file contents viewed:
    AGMySpaceExplorer2.jpg

The Registry

In order for a datacenter or software application to be used by the AstroGrid community it has first to be 'registered', i.e. details about the service it provides are uploaded in XML format to one of the servers dedicated to this task called a 'Registry'.

There are several registries hosted in the U.K, shared by the various portals. These include the registry hosted on the eSDO project, and 'Hydra' and 'Galahad' at Leicester and Cambridge Universities respectively.

Although each portal communicates with just one registry, different registries share their information through a process called "harvesting". This is an automatic cross-checking process whereby registries "inform" each other of any services that may have been added or modified recently. In this way the various registries keep in sync with one another, thus ensuring all AstroGrid users have access to the latest datacenters/software tools.

At present services cannot be deleted from an AstroGrid registry. However, the 'status' property within the XML body of a service can be changed to 'deleted', which results in it being listed in lighter text than its active neighbours and signifying that it is no longer supported.


Abbreviations

CEA Commandline Execution Architecture
JES Job Execution Service
MSSL Mullard Space Science Laboratory
SDO Solar Dynamics Observatory

-- MikeSmith - 16 May 2005

-- ElizabethAuden - 17 May 2005

Topic attachments
I Attachment History Action Size Date Who Comment
JPEGjpg AGHome.jpg r1 manage 155.0 K 2005-05-16 - 12:35 MikeSmith  
JPEGjpg AGJobMonitor.jpg r1 manage 163.4 K 2005-05-16 - 12:35 MikeSmith  
JPEGjpg AGJobMonitor2.jpg r1 manage 111.0 K 2005-05-16 - 12:35 MikeSmith  
JPEGjpg AGLogin.jpg r1 manage 74.6 K 2005-05-16 - 12:16 MikeSmith  
JPEGjpg AGMySpaceExplorer.jpg r1 manage 79.9 K 2005-05-16 - 12:36 MikeSmith  
JPEGjpg AGMySpaceExplorer2.jpg r1 manage 145.6 K 2005-05-16 - 12:36 MikeSmith  
JPEGjpg AGOverview.jpg r1 manage 149.0 K 2005-05-16 - 12:43 MikeSmith  
JPEGjpg AGQueryEditor.jpg r1 manage 137.2 K 2005-05-16 - 12:28 MikeSmith  
JPEGjpg AGWorkFlowTranscript.jpg r1 manage 164.1 K 2005-05-16 - 12:37 MikeSmith  
JPEGjpg AGWorkflowEditor.jpg r1 manage 89.7 K 2005-05-16 - 12:37 MikeSmith  
JPEGjpg AGWorkflowEditor2.jpg r1 manage 141.8 K 2005-05-16 - 12:37 MikeSmith  
JPEGjpg AGWorkflowEditor3.jpg r1 manage 119.5 K 2005-05-18 - 15:18 MikeSmith  
JPEGjpg Slide3.jpg r1 manage 149.0 K 2005-05-10 - 09:47 MikeSmith  
Edit | Attach | Watch | Print version | History: r14 < r13 < r12 < r11 < r10 | Backlinks | Raw View | More topic actions
Topic revision: r14 - 2005-10-10 - ElizabethAuden
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback