Team:Berkeley/Clotho/Plugin Platform

From 2010.igem.org

Plugin Architecture



Clotho provides a plugin framework for the development of new tools. As illustrated by the picture below, Clotho plugins are built on top of the Clotho API, and are able to use functionality provided by this API. Clotho in turn uses functionality from other libraries below it. The plugin framework is built on the Netbeans Platform ([http://netbeans.org netbeans.org]), which manages the plugin environment. This includes checking that all the dependencies of a plugin are satisfied before it is launched, managing all the files that may be necessary for a plugin to function correctly, as well as actually loading the executable code for each plugin into Clotho at runtime. The Hibernate library provides a structured interface to external databases and is discussed in more detail on the Data Model page.

High level schematic of the Clotho architecture. The Clotho API servers as a bridge between the more general frameworks and the plugins. This allows Clotho to provide an interface with domain specific functionality that tools made for synthetic biology can leverage.

Clotho classifies plugins into eight distinct categories: ClothoAlgorithm, ClothoConnection, ClothoFormat, ClothoGrammar, ClothoPlugin, ClothoTool, ClothoViewer, and ClothoWidget. These categories are based on the different types of functionality a plugin can provide. For example, a ClothoConnection provides connections to a database, while a ClothoTool is a tool built on the Clotho platform. Plugins are discovered and loaded dynamically when Clotho starts. For more information about how to write a plugin, what functionality the Clotho API provides, and to download plugins for your own use, visit the [http://clothocad.org clothocad.org].