The research computing platform is an environment that records the context surrounding our computations, projects, platform, ideas, and knowledge. Our goal is a public record of the state and evolution of the environment in which we conduct our research: documented processes that can be incorporated by research teams, influenced by research needs, and shared with peers. This environment is integral to the digital archive of our research effort. This is the research notebook.
RESTful Style Programming
At the core of the research computing platform is a collection of open source tools. Most of these tools have a web programmable interface that support a variety of functionality. The interfaces range from SOAP and XML-RPC to RESTful. The tool spaces which span the breadth of the research computing platform are:
- Resource management
- web APIs for vm register/start/stop via OpenNebula
- Project management
- web APIs to group management, mailing lists, Wordpress, Trac, MediaWiki and new code to tie them together
- Job Management
- web APIs from Galaxy to control workflows
These fairly well align with the Cloud paradigms of Infrastructure (I), Platform (P), and Application (A) as a Service, ie. the IaaS, PaaS, and AaaS.
The goal of our research computing platform is to allow these to be extended into whatever areas interest people and which they are willing to build out.
For example, developers can use these tools to build their own web services and expose them to the communities they want to support. Their users will need resource keys (akin to what you would use for Google or Facebook services, they could even run FB apps) if they are going to be resource intensive APIs or whatever. The sky is pretty much the limit here.
Here's a list of developer documentation on the available programmable interfaces for the core tools of the research computing platform
- OpenNebula Cloud API - offers two interfaces
- 1. OGF OCCI API
- RESTful service based on the Open Grid Forum (OGF) Open Cloud Computing Interface (OCCI) API specification. OCCI is a Protocol and API for all kinds of management tasks, including deployment, autonomic scaling and monitoring.
- 2. EC2 Query API
- a subset of the EC2 Query interface, enabling the creation of public clouds managed by OpenNebula