Opened 17 years ago

Closed 16 years ago

Last modified 16 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 Changed 16 years ago by Jari Häkkinen

Milestone: BASE 2.4BASE 2.3

Milestone BASE 2.4 deleted

comment:2 Changed 16 years ago by Jari Häkkinen

Milestone: BASE 2.4BASE 2.5

comment:3 Changed 16 years ago by Jari Häkkinen

Description: modified (diff)

comment:4 Changed 16 years ago by Nicklas Nordborg

Description: modified (diff)

comment:5 Changed 16 years ago by Martin Svensson

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

comment:6 Changed 16 years ago by Martin Svensson

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

comment:7 Changed 16 years ago by Martin Svensson

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

comment:8 Changed 16 years ago by Martin Svensson

(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 Changed 16 years ago by Martin Svensson

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

comment:10 Changed 16 years ago by base

contrinuation == continuation?

comment:11 Changed 16 years ago by Martin Svensson

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

of exported bioassay sets.

comment:12 Changed 16 years ago by Martin Svensson

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

comment:13 Changed 16 years ago by Martin Svensson

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

comment:14 Changed 16 years ago by Martin Svensson

(In [3839]) References #492 Updated javadoc

comment:15 Changed 16 years ago by Martin Svensson

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

comment:16 Changed 16 years ago by Martin Svensson

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

comment:17 Changed 16 years ago by Martin Svensson

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

comment:18 Changed 16 years ago by Martin Svensson

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

comment:19 Changed 16 years ago by Martin Svensson

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

comment:20 Changed 16 years ago by Martin Svensson

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

comment:21 Changed 16 years ago by Martin Svensson

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

comment:22 Changed 16 years ago by Martin Svensson

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

comment:23 Changed 16 years ago by Martin Svensson

(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 Changed 16 years ago by Martin Svensson

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

comment:25 Changed 16 years ago by Martin Svensson

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

comment:26 Changed 16 years ago by Martin Svensson

(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 Changed 16 years ago by Martin Svensson

Component: corewebservices

Documentation is a separate ticket: see ticket#809

comment:28 Changed 16 years ago by Nicklas Nordborg

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 Changed 16 years ago by Nicklas Nordborg

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 Changed 16 years ago by Martin Svensson

(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 Changed 16 years ago by Martin Svensson

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

comment:32 Changed 16 years ago by Nicklas Nordborg

(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 Changed 16 years ago by Nicklas Nordborg

(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 Changed 16 years ago by Martin Svensson

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 Changed 16 years ago by Nicklas Nordborg

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

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

comment:36 Changed 16 years ago by Nicklas Nordborg

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

axis2.xml is now installed in the correct folder.

comment:37 Changed 16 years ago by Nicklas Nordborg

(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.