The following are two charts. The first is my understanding of the current API design for the end-user into LSST. This does not include L3 access. The second is a cleaned up proposal.
Concerns about the above design:
- 3 Groups Supporting 6 APIs into the System
- User must learn a minimum of 4 APIs or use pure VO
- Which APIs support SSO Login? All but QServ? Direct QServ is not designed to support SSO login.
- Who will have a VO table option? Only the VO? All HTTP based? VO and SUI Enhance?
- How are we going to manage parameter naming conventions?
- Are all the Slac & SUI APIs going to be REST Based? It appears the Image Meta Data Search will be. Is that a decision?
- Who supports backgrounding? Who should not background?
Comments:
- The SLAC layers are treated as primitive layers
- SSO and file formatting responsibilities are clear.
- Backgrounding for all services is handled in one place.
- The Users main entry point are the service layers
- While it would VO layer to use the main service layer it might have to interact with the primitive directly.
15 Comments
Kian-Tat Lim
Yes, the second picture is more along the lines of what Gregory and I were thinking, I believe, except the following:
Gregory Dubois-Felsmann
K-T wrote:
"from bypassing the service layer to directly access the primitives, particularly from code (which is what I guess you mean by L3 access not being included)."
I think - Trey should correct me if necessary - that Trey is talking only about callable interfaces here. So I think all the user accesses in his pictures are in principle "from code". Of course, the client-side LSST-provided code in a web GUI will very likely use the same callable interfaces.
Jacek Becla
Gregory Dubois-Felsmann
For this API discussion, let's be sure to distinguish "public" as in "open source" from "public" as in "general science users can invoke these APIs against production systems" (presumably at a DAC). Also, presumably all our APIs (i.e., in all the open source code) are well-documented (and therefore public in yet another sense), but perhaps there is a further level of user support provided for the "public for use against production systems" subset of the APIs (tutorials, hand-holding, ...?). I don't think we've been particularly clear about that.
Trey Roby
Jacek:
Gregory:
K-T:
Jacek Becla
One more thought, to me ImgServ and QServ should be in the same box, as they both deal with data stores (one db, one img). so I guess I'd move ImgServ to the left box, and rename that box to SLAC DB&Image API
Trey Roby
The problem with that is that the same layer has a http API and a database API. They could have two different forms to user validation.
I was thinking about this. Isn't ImageServ really a front-end to the butler?
Tatiana Goldina
What Level1 DB stands for? Is it going to store metadata for images? Vs. QServ, which stores metadata for catalogs?
Then ImageServ (Image Retrieve and Cutout Services) might need to access it too.
Jacek Becla
Level 1 = *real time nightly alert pipeline* products. That includes difference images and database catalog (that is updated in
real time every night)
Level 2 = products produced by annual *data release*
Level 3 = data produced (or brought from outside) *by users*
Tatiana Goldina
I am trying to understand where on the diagram above is the metadata store we were talking about last week.
Do I understand correctly, that QServ will be serving data from Level1 DB and Level 2 DB, ImageServ will be serving images (including difference images), using Metadata Store?
So Level1 DB and Metadata Store should be both in the left-most box?
Tatiana Goldina
Should we discuss it at our next (after New Year) data-access meeting?
There are several things that are not clear to me.
a. Which level 1 products will be accessible from qserv and which from metadata store?
b. For example, how do I search for calibrated science exposures that cover a particular area on the sky?
c. Another example: how do I find sources (timeseries of positions or magnitudes), associated with a given object?
ex. How do I find an image from which a given catalog source was extracted?
Kian-Tat Lim
Tatiana Goldina
Thank you very much for the thorough explanation. So should Metadata Store be among the SLAC DB API's (in addition to Level1 DB and QServ) or it's not there because it exists for performance optimization only, and its schema does not have to be published?
Gregory Dubois-Felsmann
Just to come back to this page for a moment: is it now accurate to say that the API page that's being elaborated in the Monday meetings represents the layer described as the "SLAC HTTP APIs" in the above diagrams?
Trey Roby
Yes, I think we have a working plan now. We still have not yet dealt with login or VO. However we have discussed delivering any SUI API functions (not sure what that would be yet) as part of the system.