Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Creating and Adding a New Tool

  1. Developer (Gregory Jansen) Developer downloads BrownDog development environment in docker container (in dockerhub, link on BD webpage)
    • Contains running Clowder instance, Polyglot instance, basic development tools, mabye even an IDE configured and ready to go
    • Contains a bare-bones extractor ready to be modified for a new tool (with comments suggesting where to edit) (Rui Liu has started this)
    • Contains a bare-bones converter ready to be modified for a new tool (with comments suggesting where to edit)
    • Formerly Rob's work. Gregory Jansen to drive out this step.
  2. Developer (Gregory Jansen) Developer installs tool, creates interface script(s)
  3. Developer (Gregory Jansen) Developer creates dockerfile
    • For extractors this should contain only the tool, its dependencies, and the extractor
    • For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script
  4. Developer (Rui Liu) Developer submits tool to Tools Catalog (using BrownDog account)
    • Interface script(s), dockerfile, sample input, sample output
    • Through web interface
    • Through script in development environment (probably the ideal way)
  5. Admin (Inna Zharnitsky) Admin presses button which deploys tool in a seperate Clowder/Polyglot sandbox, passes in the given input file, and checks the obtained output file against what is provided
  6. Admin (Rui Liu) Admin selects instances to deploy interface on
    • e.g. dts-dev or dts
    • selects minimum number of instances to provision (e.g. 5 instances)
    • presses button to deploy
  7. Admin (Sandeep Puthanveetil Satheesan) Admin receives status page showing number of tools deployed and where, load on each tool, etc...

Using a Tool

  • (Luigi Marini) API Gateway with keys and tokens (uses Crowd credentials)
  • (Jong Lee) Simple web interface (requires BrownDog account) Luigi Marini 's API work applies here
    • Web form with field box for file URL or upload
    • Tool selection dropdown box (means of selecting a specific tool)
    • Output select dropdown box (means of allowing system to select tool)
      • Clowder will run all relevant extractors (obtained by selecting "json" as the output)
      • Polyglot will use I/O-graph
    • Suggetions pane will update below
      • REST API performing this same operation
      • Python code in Jupyter lab notebook
      • R code
      • Matlab code
      • curl commands
    Everyone with a client will need to describe how this will apply (jupyter, R, etc)