Opened 11 years ago

Closed 8 years ago

Last modified 8 years ago

#286 closed feature (fixed)

RasqlServlet - web interface for rasql queries

Reported by: Dimitar Misev Owned by: Bang Pham Huu
Priority: major Milestone: 9.3
Component: petascope Version: development
Keywords: Cc: Peter Baumann
Complexity: Medium

Description

We need a RasqlServlet in petascope which would expose rasql on the web.

The WCPSServer can be mostly copied, special care is needed regarding user credentials however.

Change History (20)

comment:1 by Peter Baumann, 11 years ago

first idea for a GET/KVP binding:

…?user=xxx&password=xxx&query=select…

with a multipart return type.

comment:2 by abeccati, 11 years ago

I'd say to keep it out of petascope since its on a different level: petascope implements OWS-based endpoints and WCPS should not be applicable for direct rasdaman query.

Why not have it as a separate servlet into applications which produces its own deployable war?

This will also improve on endpoints consolidation for petascope

comment:3 by Dimitar Misev, 11 years ago

That doesn't sound good to me

  • it's not worth maintaining a separate project that would be more or less one servlet of 100 lines of code
  • we can easily reuse a lot of established functionality in petascope, separate project would mean a lot of code duplication

This endpoint would be separate from WCPS and the rest, could be available at /petascope/rasql or /petascope/rasdaman, so I don't see interference.

comment:4 by Peter Baumann, 11 years ago

…and the insert/update/delte functionality is guarded by the login (still, we might have a configuration parameter which disables it by default, for security).

comment:5 by abeccati, 11 years ago

Code duplication, if any, should then be factored out to a jar to be put into tomcat libs so that all deployed servlets can use it. Can we make a quick estimate on that?

More importantly, we have to keep clear scope definition and separation of functionality if we aim at a clean and maintainable design. I just not see factoring in that feature to fit with petascope's aim of being a WCS/WCPS implementation.

Same reason here: http://rasdaman.eecs.jacobs-university.de/trac/rasdaman/ticket/270

in reply to:  5 comment:6 by Dimitar Misev, 11 years ago

Replying to abeccati:

I just not see factoring in that feature to fit with petascope's aim of being a WCS/WCPS implementation.

When did we define that aim, sounds a bit restricting? So far I thought of petascope as a web-frontend of rasdaman (be it via OGC standards or something else).

The RasqlServlet will be around 100 lines or so. A separate war will require

  • refactor common functionality between the two projects into a separate jar (third project)
  • set up Makefiles for building
  • probably introduce new configuration files

The differences between separate project vs. within petascope implementation

  • servlet available at /rasql vs /petascope/rasql (or similar), which to the end user makes no difference whatsoever
  • separate project linked via common jar, vs. separate package (petascope.rasql) using directly petascope code, again making no difference

comment:7 by abeccati, 11 years ago

Milestone: 8.4Future

comment:8 by abeccati, 11 years ago

Type: enhancementfeature

comment:9 by Dimitar Misev, 11 years ago

Complexity: Very Hard

I submitted an initial version of this and will most likely work some more on it.

comment:10 by Dimitar Misev, 11 years ago

Complexity: Very HardHard

comment:11 by Dimitar Misev, 11 years ago

Initial version provided in changeset:f0e48ec

TODO: uploading data, for doing insert and partial updates via the web interface.

TODO2: add tests to source:systemtest/testcases_petascope

Last edited 11 years ago by Dimitar Misev (previous) (diff)

comment:12 by Dimitar Misev, 8 years ago

Cc: pbaumann,abeccati → pbaumann, abeccati
Resolution: fixed
Status: newclosed

comment:13 by Peter Baumann, 8 years ago

where can I find material for documentation?

comment:14 by Dimitar Misev, 8 years ago

Milestone: Future9.1.x
Resolution: fixed
Status: closedreopened

comment:15 by Dimitar Misev, 8 years ago

Owner: changed from abeccati to Vlad Merticariu
Status: reopenedassigned

I think Vlad worked last on it, and could provide information for the documentation.

comment:16 by Bang Pham Huu, 8 years ago

Complexity: HardMedium
Milestone: 9.1.x9.3
Owner: changed from Vlad Merticariu to Bang Pham Huu
Version: 8.3development

at the point when Dimitar closed this ticket, there is a RasqlServlet class in petascope which I see the code can support to return the data (text/binary) from Rasql Query, so we need to add some test cases in systemtest for this servlet

(this servlet is documented in rasql query guide page 113), however the example is not correct, it should be:

domain:[port]/rasdaman/rasql?query

http://www.acme.com/rasdaman?
query=select%20rgb.red+rgb.green%20from%20rgb
&username=rasguest
&password=rasguest

comment:17 by Peter Baumann, 8 years ago

Cc: abeccati removed

comment:18 by Peter Baumann, 8 years ago

good idea to provide solid tests!
BTW, I am still lacking documentation input.

in reply to:  18 comment:19 by Bang Pham Huu, 8 years ago

Resolution: fixed
Status: assignedclosed

Replying to pbaumann:

good idea to provide solid tests!
BTW, I am still lacking documentation input.

I added the documentation for Rasql Servlet here http://rasdaman.org/wiki/Clients#Rasqlquerylanguageaccess (with the submitted patch, it can support to upload file to collection)

comment:20 by Peter Baumann, 8 years ago

excellent, well done!

Note: See TracTickets for help on using tickets.