Project

General

Profile

Task #884

Story #922: Fully implement new ObjectLocationList and NodeList schemas & related artifacts

clarify semantics for ObjectLocationList schema

Added by Matthew Jones over 13 years ago. Updated over 13 years ago.

Status:
Closed
Priority:
Immediate
Assignee:
Category:
Documentation
Target version:
Start date:
2010-10-07
Due date:
% Done:

100%

Milestone:
CCI-0.6
Product Version:
*
Story Points:
Sprint:

Description

The schema for ObjectLocationList is specified here:
http://mule1.dataone.org/ArchitectureDocs/Types.html#Types.ObjectLocationList

This schema is confusing and imprecise and needs to be clarified. The schema is particularly unclear about the 'node' field, which it defines as:

node
A node identifier. Currently, this should be the node name + base path. For example, a Member Node with domain name “mn1.dataone.org” that serves content from /mn would be identified as mn1.dataone.org/mn

This definition conflates three different fields as if they were one (identifier, baseUrl, and name). These three separate concepts are used in the node registry definitions, and should be reused here. This use of the term node should be changed to match the semantics of the 'baseUrl' field in the node registry. We can also consider adding in an 'identifier' field to provide the node identifier. The Node name may also be useful for clients that want to present a choice of download locations that is more human readable . So I suggest the following new data structures for ObjectLocationList and ObjectLocation:

message ObjectLocationList {
required IdentifierType identifier = 1;
repeated ObjectLocation locations = 2;
}

message ObjectLocation {
required string name = 1;
required NodeReference identifier = 2;
required string baseUrl = 3;
required string url = 4;
}

If these design changes are made, then the java and python client stacks and all MN and CN implementations of resolve() would need to be modified suitably, so separate tasks would need to be entered for those component changes.


Related issues

Blocks Infrastructure - Task #774: implement Node Registry lookup for resolve function Closed 2010-10-11

History

#1 Updated by Rob Nahf over 13 years ago

check to make sure NodeList schema has name, identifier, baseURL as required elements / attributes. Making these required may also simplify error handling for resolve - don't want to have to handle null baseURL.

#2 Updated by Rob Nahf over 13 years ago

  • Parent task set to #922
  • Milestone set to CCI-0.6
  • Target version deleted (CCI-0.6)

#3 Updated by Dave Vieglais over 13 years ago

  • Start date set to 2010-10-07
  • Tracker changed from Bug to Task

#4 Updated by Rob Nahf over 13 years ago

  • Status changed from New to In Progress

#5 Updated by Rob Nahf over 13 years ago

To-do: incorporate latest changes into the documentation.

#6 Updated by Rob Nahf over 13 years ago

  • Status changed from In Progress to Closed

updated documentation: example OLLs in the REST API page and ObjectLocationLists section in Data Types page. (reflecting consensus decision of url and baseURL in the OLL.)

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)