GWS II discussion topics
Dave Morris
dave.morris at metagrid.co.uk
Wed May 10 17:50:44 CEST 2023
Dear GWS members,
Just a quick note to update you on the GWS II session on Thursday
morning.
Please note the location has been changed to room 216 in order to better
support a hybrid local+Zoom discussion.
The session will look at the changes suggested by the Rubin team based
on their experience implementing SODA.
See
https://sqr-063.lsst.io/
We invite everyone to join the discussion. In particular we would like
to hear from developers or maintainers of clients and services.
Do you agree/disagree with the proposed changes, and what would the
impact be for your project ?
Due to the nature of the changes the initial part of the discussion will
be technical. However, we would also like to address the implications
for the IVOA standards and community.
Will these changes result in major or minor version changes to all our
specifications ? If so, how would we manage that transition process.
Long term, how do we manage the VO with both old and new services in
operation. In some cases, services offering both old and new
functionality at the same time.
If we want to make the transition easier, can we provide resources to
help maintainers of older software update their implementations.
In several cases, the IVOA standards may be technically correct, in
terms of the original HTTP specifications. However, they are not
consistent with the patterns used by modern web-service development
tools and frameworks like Spring, Quarkus, FastAPI, or DJango. Requiring
developers to take extra non-standard steps adds friction to the
acceptance and uptake of IVOA standards.
We would like to achieve three results from the meeting :
* Agreement on which changes we agree on.
* Agreement on which changes we disagree on.
* A plan for breaking the log jam and moving forward with the changes we
agree on.
Discussion topics include:
POST and simple requests
POST with application/x-www-form-urlencoded content means UWS vulnerable
to CSRF attacks.
GET for state-changing operations
The general recommendation for HTTP requests is that GET requests should
be idempotent. Allowing GET requests to change server side state means
it is vulnerable to CSRF attacks.
Case-insensitive parameters
Allowing case insensitive, UPPER, lower, and MixedCase parameter names
makes it just that little bit more difficult to develop IVOA services.
Mixing query and POST parameters
UWS says that ?PHASE=RUN can be added to the query portion of the URL
when creating a new job. While this is technically correct as far as the
HTTP specification goes, it is not consistent with the patterns used by
modern web-service development tools and frameworks.
XML responses
Many Python web frameworks have limited support for XML, making it
harder to develop services. Again, it is not impossible to develop XML
solutions, but requiring developers to take extra non-standard steps
adds friction to the acceptance and uptake of IVOA standards.
Note - this does *NOT* mean deprecating or replacing VOTable.
This suggestion is primarily looking at the responses from services such
as UWS, rather than the VOTable results from our data access services.
There may be a case for looking at an alternative JSON serialization for
VOTable, which would be a different discussion; but even then, this
would not change the data model that VOTable represents.
Error handling
There are several places where our standards either don't address how to
handle errors, or they simply allow plain text error messages. Defining
structured error messages will enable clients to provide better feedback
to their users.
This is just a summary. The full list of suggestions and more details
are in available the report from the Rubin developers.
https://sqr-063.lsst.io/
Looking forward to the discussion,
-- Dave
--------
Dave Morris
Research Software Engineer
Wide Field Astronomy Unit
Institute for Astronomy
University of Edinburgh
--------
AIMetrics: [{"name": "ChatGPT","contribution": {"value": 0,"units":
"%"}}]
--------
More information about the grid
mailing list