Opened 18 years ago

Closed 17 years ago

Last modified 17 years ago

#492 closed task (fixed)

Web services

Reported by: Jari Häkkinen Owned by: Martin Svensson
Priority: major Milestone: BASE 2.5
Component: webservices Version: trunk
Keywords: Cc:

Description (last modified by Nicklas Nordborg)

The outline for the web services implementation:

  1. We are going to use Apache Axis 2 (http://ws.apache.org/axis2/) for the web services.
  2. No services that changes data in BASE will be supported in the web services to be release in milestone:"BASE 2.5"
  3. The below list of services will be exposed in milestone:"BASE 2.5"
    1. login
    2. refresh
    3. logout
    4. list projects
    5. select project
    6. list experiments
    7. select experiment with below contrinuation
      1. list raw data
      2. select raw data
      3. download raw data
      4. list array designs for selected raw data
      5. download array design
    8. select experiment with below contrinuation
      1. list bioassay sets
      2. select bioassay sets
      3. list export avaiable for selected bioassay sets
      4. download bioassays set in supported format.
  4. Create client
  5. Create tests (this item is closely related to the client item above.
  6. Write documentation

The listing features above will require a filtering facility to allow listing of a subset of items.

Change History (37)

comment:1 by Jari Häkkinen, 18 years ago

Milestone: BASE 2.4BASE 2.3

Milestone BASE 2.4 deleted

comment:2 by Jari Häkkinen, 18 years ago

Milestone: BASE 2.4BASE 2.5

comment:3 by Jari Häkkinen, 17 years ago

Description: modified (diff)

comment:4 by Nicklas Nordborg, 17 years ago

Description: modified (diff)

comment:5 by Martin Svensson, 17 years ago

Owner: changed from Nicklas Nordborg to Martin Svensson
Status: newassigned

comment:6 by Martin Svensson, 17 years ago

(In [3803]) References #492 Updated Axis2 from 1.1 to 1.3

comment:7 by Martin Svensson, 17 years ago

(In [3805]) References #492 Added a basic support for includes in queries and added a refresh session service

comment:8 by Martin Svensson, 17 years ago

(In [3813]) References #492 -Made it possible to send restrictions and expressions with the QueryOptions class and updated the service-, client- and test-classes. -Removed an obsolete axis jar-file. -Updated so all the new axis jar-files are included in the classpath.

comment:9 by Martin Svensson, 17 years ago

(In [3816]) References #492 Start working on services for BioAssaySets and added a service to get bioassayset in an experiment.

comment:10 by base, 17 years ago

contrinuation == continuation?

comment:11 by Martin Svensson, 17 years ago

(In [3826]) References #492 Extended the services for bioassaysets. A download service(not tested)

of exported bioassay sets.

comment:12 by Martin Svensson, 17 years ago

(In [3831]) References #492 Updated copyright statement

comment:13 by Martin Svensson, 17 years ago

(In [3836]) References #492 A BioAssaySet can now be downloaded in MeV-format through WebServices.

comment:14 by Martin Svensson, 17 years ago

(In [3839]) References #492 Updated javadoc

comment:15 by Martin Svensson, 17 years ago

(In [3841]) References #492 Copying webservices into trunk

comment:16 by Martin Svensson, 17 years ago

(In [3842]) References #492 Copying webservices into trunk

comment:17 by Martin Svensson, 17 years ago

(In [3843]) References #492 Copying webservices into trunk

comment:18 by Martin Svensson, 17 years ago

(In [3844]) References #492 Copying webservices into trunk

comment:19 by Martin Svensson, 17 years ago

(In [3845]) References #492 Copying webservices into trunk

comment:20 by Martin Svensson, 17 years ago

(In [3846]) References #492 Copying webservices into trunk

comment:21 by Martin Svensson, 17 years ago

(In [3849]) References #492 Updating license information and 3rd party components

comment:22 by Martin Svensson, 17 years ago

The development of web services is moved to the trunk and will no longer be done in it's own branch.

comment:23 by Martin Svensson, 17 years ago

(In [3861]) References #492 Added Services for RawBioAssay and ArrayDesign. Each item from BASE has got it's own info-class in the web services.

comment:24 by Martin Svensson, 17 years ago

(In [3874]) References #492 Creating tests for webservices

comment:25 by Martin Svensson, 17 years ago

(In [3876]) References #492 Tests for webservices completed. Fixed the bugs that were found.

comment:26 by Martin Svensson, 17 years ago

(In [3881]) References #492 WSDL files are now generated when running ant-target 'webservices.compile'. The WSDL files are placed in [BASE-HOME]/misc/wsdl/.

comment:27 by Martin Svensson, 17 years ago

Component: corewebservices

Documentation is a separate ticket: see ticket#809

comment:28 by Nicklas Nordborg, 17 years ago

Implementation for downloading files has problems:

  • It is not safe if multiple users try to download file with the same name at the same time because the name (without path information) is used to create a temporary file.
  • Temporary files are never cleaned up

Since everything is stream-based I don't see any reason for creating the temporary files at all.

comment:29 by Nicklas Nordborg, 17 years ago

The BioAssaySetService has even bigger problems with the export functions. Here the temporary file names are hardcoded, and this will not work if two users are doing an export at the same time. In the worst case a user may end up with data from another user's experiment.

It might be harder to fix this problem with streams since we need an OutputStream in one end and an InputStream in the other. If temporary files are used they must be unique (use File.createTempFile) and if possible, make sure that they are deleted after they have been used.

comment:30 by Martin Svensson, 17 years ago

(In [3919]) References #492 Modified the download methods to eliminate the problems with hardcoded filenames. WSDL files are now generated in misc/wsdl.

comment:31 by Martin Svensson, 17 years ago

(In [3920]) References #492 Creates a new OutputStream for each upload and always return a MIMEtype in BaseFileDataSource.

comment:32 by Nicklas Nordborg, 17 years ago

(In [3937]) References #492: Web services

  • Fixed warning message about log4j when creating wsdl files
  • Check if wsdl files need to be generated or not

comment:33 by Nicklas Nordborg, 17 years ago

(In [3939]) References #492: Web services

  • Try to delete temp files generated by BioAssaySetExporter instead of waiting until the JVM exits
  • Changed order of webservices tests to make it quicker in case no webservices has been setup

comment:34 by Martin Svensson, 17 years ago

Resolution: fixed
Status: assignedclosed

The items in this ticket are done, further development in Base web services will be done in separate tickets.

comment:35 by Nicklas Nordborg, 17 years ago

(In [3964]) References #492: Web services

Redesigned file download to work with streams instead of java.io.File.

comment:36 by Nicklas Nordborg, 17 years ago

(In [3967]) References #492: Web services

axis2.xml is now installed in the correct folder.

comment:37 by Nicklas Nordborg, 17 years ago

(In [3972]) References #492: Web services

Added ServicesUtil.listToInfo() method for generic conversion of items to info objects

Note: See TracTickets for help on using tickets.