[Biojava-dev] Biojava and webservices

Simon Foote simon.foote at nrc-cnrc.gc.ca
Mon Jun 16 15:30:30 EDT 2003


Hi Guys,

To add further to this discussion, I've been working a lot with BioSQL 
recently and have implemented a web application/service for 
browsing/searching a BioSQL database.  It's in a beta stage right now, 
and appears to work fine under our loads.  Not sure how it will perform 
under heavy loads.

In order to do this efficiently, I modified the BioSQLSequenceDB 
implementation to allow the use of an external database pooling system 
(instead of the simple one built into biojava).  This does in fact speed 
up the data access when compared to the existing pooling system.

The only gotcha to this, is I'm not sure of the biojava take on 
including external libraries.  In this case, its based on the apache 
commons-dbcp and commons-pool packages.  I did notice a commons-cli.jar 
package in the biojava distribution, so I'm guessing it has been done.

The changes I've made are basically:

1) Replaced the JDBCConnectionPool class with a JDBCPoolingDataSource 
(backed the the commons-dbcp and -pool packages)

2) Modified BioSQLSequenceDB to contain 2 constructors:
        BioSQLSequenceDB(dbDriver, dbURL, dbUser, dbPass, biodatabase, 
create)
             - this one creates a datasource using the 
JDBCPoolingDataSource class, then initializes the biodatabase
       BioSQLSequenceDB(dataSource, biodatabase, create)
             - this one takes an existing datasource and just 
initializes the biodatabase
 Note: in order for this not break exisiting code, I would have to add a 
3rd constructor that doesn't take the dbDriver and then within the 
DbHelper class, have that set the driver based on the dbURL (this would 
work 99% of the time, probably would only fail with those using 
non-standard drivers)

3) Made changes to all the biosql classes for getting connections from 
pool.takeConnection() to dataSource.getConnection()

4) Made changes to all the biosql classes for closing connections from 
pool.putConnection(conn) to conn.close()

I only just finished doing and testing this within the last hour, so 
probably still needs work, although it has worked for all the browsing 
and searching tests I've thrown at it so far.

Thoughts,
Simon Foote

-- 
Bioinformatics Specialist
Institute for Biological Sciences
National Research Council of Canada
[T] 613-990-0561  [F] 613-952-9092
simon.foote at nrc-cnrc.gc.ca


Carlisia P. Campos wrote:

>Hi Mark,
>
>Alright. I am at the very initial phase and should be done in two 
>months. I will be deploying it on my server so when it's done I'll let 
>you know and you can try it. I will most definitely give you all the 
>code and documentation, so in the case you try it and find it 
>interesting you can extend/maintain it for biojava. If in the mean time 
>you think of something super interesting that you would like to see 
>deployed as a web service pls let me know and I'll try to get it in.
>
>Best,
>--Carlisia
>
>
>On Sunday, June 15, 2003, at 03:15  AM, Schreiber, Mark wrote:
>
>  
>
>>Hi Carlista -
>>
>>I for one would be very interested. I think if you posted an example 
>>we could put it in the repository as an example or on the biojava in 
>>anger web page.
>>
>>- Mark
>>
>>
>>-----Original Message-----
>>From:	Carlisia Campos [mailto:carlisia at bu.edu]
>>Sent:	Sat 14/06/2003 10:02 a.m.
>>To:	biojava-dev at biojava.org
>>Cc:	
>>Subject:	[Biojava-dev] Biojava and webservices
>>
>>Hello there,
>>
>>
>>I am working on a school project for my masters degree at Boston 
>>University and
>>decided to use biojava as a basis for it. My project involves 
>>developing a set
>>of web services that "serves" results of method calls to biojava over 
>>http. I
>>don't intend to develop web services for the entire biojava API, but 
>>enough to
>>put together a nice sample application.
>>
>>If you have any interest in this please let me know. I would love to 
>>donate
>>whatever I develop to you if you think it is useful. I am looking to 
>>find out
>>if there is anything in specific you would like to see deployed, or 
>>any other
>>insight you wish to provide as I start thinking about what in specific 
>>I am
>>going to implement.
>>
>>Best regards,
>>--Carlisia Campos
>>_______________________________________________
>>biojava-dev mailing list
>>biojava-dev at biojava.org
>>http://biojava.org/mailman/listinfo/biojava-dev
>>
>>
>>
>>=======================================================================
>>Attention: The information contained in this message and/or attachments
>>from AgResearch Limited is intended only for the persons or entities
>>to which it is addressed and may contain confidential and/or privileged
>>material. Any review, retransmission, dissemination or other use of, or
>>taking of any action in reliance upon, this information by persons or
>>entities other than the intended recipients is prohibited by AgResearch
>>Limited. If you have received this message in error, please notify the
>>sender immediately.
>>=======================================================================
>>
>>    
>>
>
>::carlisia::
>::www.carlisia.com::6178174587 at mobile.att.net::
>
>_______________________________________________
>biojava-dev mailing list
>biojava-dev at biojava.org
>http://biojava.org/mailman/listinfo/biojava-dev
>  
>




More information about the biojava-dev mailing list