GO Core Services Lifecycle
In the software group we are transitioning to a system where core GO capabilities are available as web services. The general template for rolling out services is:
1) Core implementation.
- Typically in java.
- Can be directly incorporated within other java applications.
At this stage we can sometimes provide a simple command line interface if there is demand, although this is less useful if there is a dependency on the postgres gold database.
We can also run the script centrally as a cron and deposit the resulting report somewhere.
2) Programmatic Web Service.
- Standard URLs for obtaining data (typically in JSON format)
- Can be called remotely from any application.
Deployment follows two stages - test deployment at Berkeley and Stanford, followed by production deployment.
We can sometimes provide scripts that call the web service if there is demand. (advanced users can write their own or simply use "wget", "curl" or their browser)
3) Web front-end
- Intended for end-users (consortium members or general users)
- Generally a lightweight user interface layer on top of the web services.
In general this will be in two stages - alpha test servers in Berkeley followed by beta testing and production at Stanford (which will be the one with the geneontology.org URL). I will call this 3a, 3b, 3r.