About
SWAMI for Developers:
The SWAMI project is designed to meet the needs of Users. At the same time, it is designed to be scalable and portable. Accordingly, it is a pure JAVA implementation that is easy to install, easy to add to, and easy to maintain. We employ open source or free-to-academic tools whenever possible, to minimize the barrier to entry for developers. A high level description of our goals 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.