[oslc-core] Comments on OSLCCoreSpecDRAFT (resend)
Steve K Speicher
sspeiche at us.ibm.com
Mon Mar 15 09:06:14 EDT 2010
(Ignore previous send, was in middle of drafting my comments and had email
issues)
These comments are on this document
http://open-services.net/bin/view/Main/OSLCCoreSpecDRAFT
1) In "Design Considerations", I might add a few other points:
- "simplest things that work" for key integration scenarios
- "loosely coupled" - perhaps this is implied by "Build on the WWW",
though a key point is to allow versions and implementations to evolve,
while things "still work"
2) In "Glossary of terms" you reference the home page of w3.org, wouldn't
it be more appropriate and helpful to reference directly the document that
defines these terms?
3) In "Glossary of terms" there is a reference to "Application Lifecycle
Management (ALM) product ", since we have a PLM-ALM topic, should we
expand this to be something more open. A nit.
4) For "OSLC Query Resource" you mention "list of links", I assume this
means "list of URIs"? Perhaps it should say this as links isn't in the
glossary.
5) For "URI Query Parameters", this should also include "oslc.prefix" to
allow for defining namespace prefixes
6) Terminology inconsistency, in "Resource Creation" you refer to
"Creation Resource" instead of "OSLC Creation Resource". This occurs in a
few other places.
7) In section "Unknown properties and content", it is unclear why a client
MUST preserve all unknown content? What does preserve mean here?
I think this is saying that OSLC Services are allowed to extend the
resource definitions, providing properties from other namespaces, which
the clients much not lose in transmission (updates)
8) In "OSLC Properties", I'm not sure I understand the need for
"oslc:etag": is there some use cases that could be provided why this OSLC
Property is needed? I have the use cases for the others already known but
they are not explicitly stated.
8a) In "Resource Removal"....is service provider required to make this a
hard or soft delete? A GET after a DELETE should result in what status
code?
Here's what we did for CM
http://open-services.net/bin/view/Main/CmRestApiV1#Delete_a_change_request
8b) In "Dublin Core Properties", it should refer to which set of DC
properties these are derived (namespace), namely: The Dublin Core Metadata
Terms namespace - http://purl.org/dc/terms/
Also, why is dc:creator an "In-Line Resource" and not just resource
link, of which it can be inlined?
What is dc:contributor used for? Can you give an example of what it
would be in the context of RTC Work Item attributes? According to DC, it
says "An entity responsible for making contributions to the resource." so
is it implied to be what we refer to as an Owner or Assigned To?
9) In "Service Resources", it would be good to have some additional
information:
- how service discovery works
- nested service resources
#Creation_Resources
10) In "Creation Resources", it would be useful to identify what HTTP
status codes one would get back and why : missing required fields,
etc....See
http://open-services.net/bin/view/Main/CmRestApiV1#Create_a_new_change_request
11) In sub-section "unknown properties and conent", would it not be more
appropriate for the service provider to reject the request if it receives
unknown content. It seems odd that a client would be under the impression
it is sending properties, server says it create resource and client can't
locate those properties. I guess I don't understand what use case this is
trying to solve, seems like it adds ambiguity to the service.
#Query_Resources
12) General comment, not limited to Query's usage of dc:title, is
representing alternative translations and how they'd be represented. For
example, Accept-Language on requests and Content-Language on response.
13) I don't fully undertand what this looks like, like where are the
resource links? Perhaps some examples in this section would help.
14) In section "Forming a Query Resource URI", it is not clear what the
first paragraph is saying. I think some of what it is saying is what we
put in the CM spec:
If this parameter (oslc.query) is omitted, the server MAY respond with:
* a page of results
* reject the request with a HTTP response code of 403 Forbidden.
* all results
#Resource_Shape_Resources
15) For Property "oslc:preserveUnknown", is the default value "false"?
Since it is "at-most-one", it implies its optional.
16) There is no definition of what "olsc:when" is used for. Likewise, it
is unclear the purpose of "oslc:RdfTypeTest"
17) For "Resource: Property" there should be default values for some of
these: oslc:readOnly, oslc:maxSize?, oslc:occurs
#OSLC_Defined_Resource_Prepresentations
18) Read my lips, "No new content-types" (sorry chouldn't hold myself
back)says:
"those who are defining new OSLC Services are strongly discouraged from
introducing new content-types. OSLC Services MUST not define new
content-types. " This seems the say no and maybe.
It seems hard to believe that we can predict that there will never be a
case to add a new content type. Perhaps the rationale of no new content
types should be given and how specs should follow that guidance.
19) In "JSON Representation", I think the first example doesn't have the
multi-valued property as an array, it should be:
{
"qname" : "oslc_fm:FooReport",
"uri" : "http://example.com/data/9D764F35AD1",
"dc:title": "Foo Report for development organization",
"oslc_fm:measurement" : [
{
"qname" : "oslc_fm:FooMeasurement",
"dc:title" : "Foo Measurement for Accounting System UI Module",
"oslc_fm:Index" : "34.55"
},
{
"qname" : "oslc_fm:FooMeasurement",
"dc:title" : "Foo Measurement for Accounting System POS Module",
"oslc_fm:Index" : "28.41"
},
{
"qname" : "oslc_fm:FooMeasurement",
"dc:title" : "Foo Measurement for Accounting System AX5 Module",
"oslc_fm:Index" : "30.08"
}
]
}
20) For "OSLC Form Based Authentication" I know this is a problem, but it
seems to me to be a stretch to be able to solve this in the first core
spec. Perhaps something could be done via service discovery.
Misc comments
21) It would be good to clarify the usage of HTTP status codes: success or
error code handling: when 400 vs 404 vs 409. This were useful in the
definition of CM 1.0 spec.
22) Resource modifications and etag handling, it would be good to clarify
usage of etag, 412 status codes and If-Match header:
See
http://open-services.net/bin/view/Main/CmRestApiV1#Update_a_change_request
23) lack of error message formats. A problem we found is that often
clients would make a request for a JSON resource and get an error message
in XML. It would be ideal to define a way that JSON errors be returned.
Also, that there is a basic format for these error messages. See
http://open-services.net/bin/view/Main/CmRestApiV1?sortcol=table;table=up#Error_Status_Information
Thanks,
Steve Speicher | IBM Rational Software | (919) 254-0645
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20100315/ca2a6eea/attachment-0003.html>
More information about the Oslc-Core
mailing list