Developing Tools for nanoHUB.org
Michael McLennan
Software Architect
Why bother uploading tools?
Most people just post their source code:
Users have to:
• Download
• Unpack
• Compile / Install
…oops! Something went wrong here
Hello,
I am grad student from Kazakhstan.
Your tool not compile for me. I get
errors. That’s a not very nice.
Hello,
I am grad student from Kazakhstan.
Your tool not compile for me. I get
errors. That’s a not very nice.
Hey, can you help me?
Hey, can you help me?
Deliver ANY Graphical Application via the Web
Maxwell’s
Daemon
Physical Machine
Virtual Machine
Content DatabaseRendering Farm
nanoHUB cluster
Violin
nanowire job
nanowire job
nanowire job
1011 10110101010110011001Case in point: Schred
366 Users Last 12 months
Rappture version Feb 06
Putting out Open Source
your code
/*
* ================================================= * AUTHOR: Michael McLennan, Purdue University
* Copyright (c) 2007 Purdue Research Foundation *
* See the file "license.terms" for information on * usage and redistribution of this file, and for a * DISCLAIMER OF ALL WARRANTIES.
* ================================================= */
…
/*
* ================================================= * AUTHOR: Michael McLennan, Purdue University
* Copyright (c) 2007 Purdue Research Foundation *
* See the file "license.terms" for information on * usage and redistribution of this file, and for a * DISCLAIMER OF ALL WARRANTIES.
* ================================================= */
…
Know where you stand
Overview of the process
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Registering your tool
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Start the process by filling
out a form that tells us
about your tool:
• Tool name/version • Who can run the tool? • Who can access the code?
Creating a project area
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
We create a project area
for your tool on our
developer site
• Wiki for project documentaton • Subversion source code control • Ticketing system for bugs
Your project area
NOTE: You may
have to log in to
see some buttons
Buttons to access
project functions:
• Wiki documentation • Source codeEditing wiki pages
Once logged in, you can edit
Wiki mark-up
Complete instructions in your project area at wiki/WikiFormatting
Creating wiki pages
Your project name
/wiki
section
Make up a name
Linking wiki pages
Create the page first, then link to it:
Or, create the link first, then click on the link to create the page:
Back to the process…
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
We create a project area
for your tool on our
developer site
• Wiki for project documentaton • Subversion source code control • Ticketing system for bugs
What’s happening?
Uploading your code
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Upload your code into a
nanoHUB workspace.
Compile, test, and commit
changes back to your
Using nanoHUB workspaces
Once your tool has been registered and created, you should be approved for workspace access. You’ll see workspaces listed on your “my nanoHUB” page:
svn checkout https://repo.nanohub.org/svn/app-yourtool/trunk app-yourtool cd app-yourtool/rappture
vi tool.xml rappture
svn checkout https://repo.nanohub.org/svn/app-yourtool/trunk app-yourtool cd app-yourtool/rappture
vi tool.xml rappture
See instructions in your project area at wiki/GettingStarted
See
workspace tutorial
Using nanoHUB workspaces
Once your tool has been registered and created, you should be approved for workspace access. You’ll see workspaces listed on your “my nanoHUB” page:
rappture vi tool.xml rappture … svn add tool.xml cd .. svn commit rappture vi tool.xml rappture … svn add tool.xml cd .. svn commit
What is Rappture?
Scientist
• R
apid
App
lication Infrastruc
ture
• Created by NCN in Nov 2004
• Open Source
•
Rappture tutorial
on nanoHUB
• Works with your favorite
programming language
Rappture
=
Simulation
Rappture works by defining the interface
XML interface description
<?xml version="1.0"?><run> <tool>
<title>Name of the tool</title> <about>Description and credits</about> <command> @tool/path/to/executable @driver </command> <limits> <cputime>900</cputime> <filesize>1000000</filesize> </limits> </tool> <input> ... </input> <output> ... </output> </run>
CNTbands
model
integer: n
integer: m
choice: sim method
…
curve: E-k diagram
curve: DOS
molecule: structure
Over 60 tools online at nanoHUB.org
Uploading your code
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Tool status page:
Uploading your code
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Tool status page:
Edit your tool information page
Installing your tool
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
We install your tool
• Latest code from Subversion • Compile, install
Testing your tool
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Testing your tool
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Updating your tool
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
We re-install your tool
• Latest code from Subversion • Compile, installTesting your tool—again
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Last step…
Registered Created Uploaded Installed Updated Published Retired Contribution form Approved User nanoHUB teamwaiting for…
We publish your tool
• Take one last look• Make sure that the tool works • Check the tool information page • Then, publish your tool
Your tool is published
Registered Created Uploaded Installed Updated Published Retired Contribution form ApprovedUser nanoHUB team waiting for…
Approved
Updating your tool
Registered Created Uploaded Installed Updated Published Retired Contribution form
User nanoHUB team waiting for…