Opened 11 years ago

Closed 11 years ago

#270 closed enhancement (duplicate)

Deprecate old servlets in petascope

Reported by: Dimitar Misev Owned by: Dimitar Misev
Priority: critical Milestone: 9.0
Component: petascope Version: 8.3
Keywords: Cc: Peter Baumann, Piero Campalani, abeccati
Complexity: Medium

Description

It's easiest if we maintain one endpoint = /petascope

That means we should check if the other endpoints offer any extra functionality not present at /petascope and integrate them into this one. Then we can announce that /petascope/wcps, /petascope/wcs2, etc. are deprecated and no longer maintained.

Change History (11)

comment:1 by Peter Baumann, 11 years ago

that new unified endpoint should not be named "petascope", but "rasdaman" or something else not so confusing for users.

comment:2 by Dimitar Misev, 11 years ago

it's not a new unified endpoint, it's what is mostly used now and which already integrates all the functionality. We just need to check for anything missing.

comment:3 by Piero Campalani, 11 years ago

WMS has its own entry point /petascope/wms? as well.
The only matter I see to a unified entry point is that we should make sure that any protocol request is identifiable.
The service value would be used to discern a WCS from a WMS request, some other trick can be used to discern a WCPS incoming request, but there's surely a robust way.

What is currently done is :

  • parse incoming URL;
    • if there is a service key-value pair, then handle in WCS;
    • otherwise, try to parse WCPS paramters;
  • if it fails && there is a body, then parse the body and check the root element;
    • if root = Envelope then is WCS2;
    • if root = ProcessCoveragesRequest then is WCPS;
    • if root = Transaction then is WCS-T;

[from src/main/java/petascope/PetascopeInterface.java]

(PetascopeInterface is quite a mess right now anyway, at some point we might also create new classes in the petascope package to multiplex the request into the different allowed protocols)

Finally, currently available servlets are:

$ cat petascope/src/main/webapp/WEB-INF/web.xml
[...]
    <servlet-mapping>
        <servlet-name>PetaScope Interface</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>wcpsServlet</servlet-name>
        <url-pattern>/wcps</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>wcstServlet</servlet-name>
        <url-pattern>/wcst</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Wcs2Servlet</servlet-name>
        <url-pattern>/wcs2</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>WmsServlet</servlet-name>
        <url-pattern>/wms</url-pattern>
    </servlet-mapping>

comment:4 by abeccati, 11 years ago

I'd say to keep endpoints for broad categories, since we are also going to add a new servlet for direct Rasdaman query which is not compatible with coverage service servlets. It could be better to keep an endpoint for coverage services if they have to be unified.

/coverages : serving WCS, WCPS and WCS-T (WPS to be exmined but I'd say it has its own interface root that is different from covs)
/rasdaman : direct rasql
/maps : serving wms (leaving room for other map services)

Common utils like URL decoding should be left to helper classes. draft Dev guide updated

comment:5 by abeccati, 11 years ago

The root servlet / should provide an overview of the service instance itself and point to the other endpoints available and services offered.

comment:6 by Peter Baumann, 11 years ago

Agreed that we need a new categorization, but these are three different levels:

  • coverages: a special category of geo data structures
  • rasdaman: a DBMS
  • maps: a special category of geo data structures, but along a different classification

Let's seek to find a proper distinction, then I'm all for it.

comment:7 by abeccati, 11 years ago

Probably its better to keep petascope clean of other levels then and let it only implement OGC WebService interfaces. For rasdaman over web we can go with a different application with its own war and endpoint.
In that way we have a consistent addressing of services (via the service parameter) and can indeed have the single /petascope endpoint.
The existing endpoints can be handled with redirects then.

comment:8 by abeccati, 11 years ago

Milestone: 9.0

comment:9 by abeccati, 11 years ago

Priority: majorcritical

comment:10 by Peter Baumann, 11 years ago

the service interface should be uniform and with a name of rasdaman (not petascope, that's confusing). We plan to do this in forthcoming version 9.0.

comment:11 by abeccati, 11 years ago

Complexity: Medium
Resolution: duplicate
Status: newclosed

In the end we chose to have separate endpoint but keep the levels, see #307 for further detail.
Resolving as duplicate = superseded

Note: See TracTickets for help on using tickets.