[Biojava-dev] Plans for next biojava release - modularization

Scooter Willis HWillis at scripps.edu
Mon May 11 13:50:58 UTC 2009


Andreas

Another theme that should be considered is providing a multi-thread
version of any module with long run time. This would have a couple
elements. A progress listener interface should be standard where core
code would update progress messages to listeners that can be used by
external code to display feedback to the user. I did this with the
Neighbor Joining code for tree construction and it provides needed
feedback in a GUI. If not the user gets frustrated because they don't
know the code they are about to execute may take 10 minutes or 8 hours
to complete and they think the software is not working. The reverse is
also true for canceling an operation where you want to have core code
stop processing a long running loop. Once the code has completed then
the listener interface for process complete is called allowing the next
step in the external code to continue. The developer would have the
choice to call the "process" method or run it in a thread and wait for
the callback complete method to be called. 

This is the first step in the ability to have the core/long running
processes take advantage of multiple threads to complete the
computational task faster. Not all code can be parallelized easily but
if the algorithm can take advantage of running in parallel then it
should. This then opens up a couple of cloud computing frameworks that
extend the multi-threaded concepts in Java across a cluster
http://www.terracotta.org/. If we put an emphasis on having code that
runs well in a thread we are one step closer to an architecture that can
run in a cloud. The computational problems are only going to get bigger
and with Amazon EC2 and http://www.eucalyptus.com/ approaches
computational IO cycles are going to be cheap as long as the
software/libraries can easily take advantage of it.

Thanks

Scooter

-----Original Message-----
From: biojava-dev-bounces at lists.open-bio.org
[mailto:biojava-dev-bounces at lists.open-bio.org] On Behalf Of Andreas
Prlic
Sent: Monday, May 11, 2009 12:27 AM
To: biojava-dev
Subject: [Biojava-dev] Plans for next biojava release - modularization

Hi biojava-devs,

It is time to start working on the next biojava release.  I  would
like to modularize the current code base and apply some of the ideas
that have emerged around Richard's "biojava 3" code. In principle the
idea is that all changes should be backwards compatible with the
interfaces provided by the current biojava 1.7 release.  Backwards
compatibility shall only be broken if the functionality is being
replaced with something that works better, and gets documented
accordingly. For the build functionality I would suggest to stick with
what Richard's biojava 3 code base already is providing. Since we will
try to be backwards compatible all code development should be part of
the biojava-trunk and the first step will be to move the ant-build
scripts to a maven build process. Following this procedure will allow
to use e.g. the code refactoring tools provided by Eclipse, which
should come in handy.

The modules I would like to see should provide self-contained
functionality and cross dependencies should be restricted to a
minimum. I would suggest to have the following modules:

biojava-core: Contains everything that can not easily be modularized
or nobody volunteers to become a module maintainer.
biojava-phylogeny: Scooter expressed some interested to provide such a
module and become package maintainer for it.
biojava-structure: Everything protein structure related. I would be
package maintainer.
biojava-blast: Blast parsing is a frequently requested functionality
and it would be good to have this code self-contained. A package
maintainer for this still will need to be nominated at a later stage.
Any suggestions for other modules?

Let me know what you think about this.

Andreas
_______________________________________________
biojava-dev mailing list
biojava-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/biojava-dev




More information about the biojava-dev mailing list