SWAMI for Developers:
The SWAMI project is a portal designed to meet the needs of Biology Workbench users, but at the same time, it is built on an architecture that is scalable and portable, so it can be used a point of departure in creating other Workbenches for other Biological sub groups. With this in mind, SWAMI project invested in creating a software package called the Workbench Framework. It is a pure JAVA implementation that is easy to install, easy to add to, and easy to maintain. A second portal, the CIPRES Portal V 2.0 has now been launched by our group using the Workbench Framework. We have employed open source or free-to-academic tools to minimize the barrier to entry for developers. We invite others to adopt and modify the Workbench Framework.
A key element of our project is to find ways to engage the community of biologist/developers, and to give non-developer biologists the opportunity to participate in the creation of the SWAMI portal. We recently released a tool that allows users to build and test their own interfaces in an instance of the NGBW [more information here]. Any interface constructed in this way can be presented in either SWAMI or CIPRES portal by providing a copy to our project. The interface will be supported by our group, and will be released publicly for others to use. It will also be compatible with PISE XML (with one or two minor adjustments).
A high level description of the Workbench Framework has been presented. The current implementation consists of a Core SDK that is highly generic in the way it manages data searching and tools. The SDK manages specific data sets and analytical tools using information recorded in a central registry. A schematic diagram of the SDK can be viewed here. The NGBW SDK is designed to be easily deployed in new environments, so that developers can customize its features to their home environment. Our goal is to engage with the community, rather than to hand down edicts. Accordingly, we are happy to receive input and advice on how we could do better, and are receptive to forming partnerships with other groups.
The Core architecture will support a wide variety of View Layers. We currently offer an interface based on Apache Struts2. It is served via a Tomcat installation, which meets our current needs with a minimum of overhead. The interfaces used in our view layer were derived from the PISE project XML documents. Our current process is to transform PISE XML into NGBW XML, which is then converted into .jsp pages. If we add a tool that does not have a PISE interface, we create the new interface in PISE XML format, and then pull it forward into NGBW format. The reason for this is pragmatic: our PISE XML interfaces will be returned to the PISE project, and will be more easily pulled forward into the Mobyle project. Our pages are XHTML/CSS compliant.
Our current RDBMS solution is MySQL, which is used for storing user data items. Currently we store data from public providers in flat file format, and index it using the Apache Lucene engine. The resulting indices are used for text string searching of the flat files. We are still considering data integration solutions using RDBMS, but so far the overhead in keeping data current in relational format has been too great for our resources.
Our routine development is done in a Subversion repository. Access to our software and to information about our software will be provided upon request. We can also provide APIs and assistance in mounting new tools in our workbench, or help you understand how to do it in yours. Documentation to help in such efforts is being created now, and will be posted here.