OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [regrep - RIM draft 02 comment] Compendium


Hi,


I've aggregated my comments regarding the latest RIM revision. Three
levels of severity are distinguished:

MAJOR    - significant impact, should be resolved
MINOR    - inconsistency that might hinder implementation or
            interoperability
ADVISORY - an editorial tweak, correction, or clarification

Again, no CRITICAL issues to report :-)


1 [MAJOR] RepositoryItem and ExtrinsicObject

   In section 1.5, replace occurrences of RegistryObject with
   ExtrinsicObject, since this is the actual type that serves as a proxy
   for repository items that reflect some specified content (media) type.

   Perhaps add a few words about using ExternalLink objects to reference
   items located in external repositories maintained by a third party.
   Or is this gambit frowned upon?


2 [MINOR] In 2.5.6 a lid is required, but not in the schema. Modify
   rim.xsd accordingly, and update the specification text such that
   within a publication request the submitter must specify either (i)
   a temporary (dummy) value that is subsequently replaced by the
   registry, or (ii) an absolute URI assigned by some other naming
   authority.

3 [MAJOR] In 2.5.9 the basic lifecycle of a registry object is ambiguous
   and should be clarified with a simple state diagram (also in terms of
   the canonical events listed in 7.1.2.1).

   e.g.

             approval          deprecated            deleted
   Submitted -------> Approved ---------> Deprecated ------> Withdrawn

   What triggers a state transition? Presumably a user can explicitly
   approve, deprecate, or delete objects. In which case the registry
   must not ignore the attribute in a request (which contravenes the spec
   directives).


4 [MINOR] In 2.7.1 the id and home attributes are specified for
   ObjectRef, but these are inherited from Identifiable and are therefore
   redundant here.


5 [ADVISORY] In 2.8.1 perhaps change values to type Set<LongName>
   instead of Bag, since duplicate values don't appear to be meaningful
   in this context.


6 [ADVISORY] In 2.8.3 append the following sentence: "The slotType
   attribute may also be used to indicate the type or value domain for
   the slot value(s)."


7 [MINOR] In 2.9.1 the default value for mimeType is
   "application/octet-stream". But what if there is no corresponding
   repository item? In this case, presumably the mimeType attribute
   is empty (i.e., there is no default value). Or would this absence be
   signalled by omitting ContentVersionInfo?


8 [MINOR] In 2.9.4 append the following sentence: "The value
   should be a registered MIME media type."


9 [MAJOR] In 3.6.1 (and elsewhere) ObjectRef is used as the type for
   many attributes. However, rim.xsd employs simple URIs (referenceURI)
   almost exclusively, rather than ObjectRefType (a complex type that
   maps to the ObjectRef class).

   The ObjectRef datatype in 2.2 has the same name as the RIM class. No
   packages are defined, so this is somewhat confusing. Perhaps rename
   the "ObjectRef" datatype in 2.2 so it doesn't clash with the class,
   or reuse one of the other simple URI-based types, like UUID.


10 [MINOR] In 4.2.4 the path attribute is required to be generated on
   retrieval. But according to the production rules in 4.2.5 this cannot
   be set if there is no value for the code attribute (which is
   optional). Suggest that the specification text be amended such that
   the path attribute is not required to be set, OR a looser directive
   to include the path only if codes are available.


11 [ADVISORY] In 5, "Responsible party information" might be a more
   apt designation, since we're concerned not just with the origin
   of an item but with identifying the owner and/or responsible party
   (person and/or organization--this may differ from the creator or
   source).

   "This chapter describes the classes that enable the description of
   the parties responsible for creating, publishing, or maintaining a
   RegistryObject or RepositoryItem."


12 [ADVISORY] In 5.3.5, the primaryContact for an Organization should
   reference a Person, as the contact need not be a registered User.


13 [ADVISORY] In 5.5.6, consider replacing stateOrProvince attribute
   with the more general attribute countrySubdivision (after ISO 3166-2).


14 [MINOR] In 5.6.5, shouldn't the number attribute at least be
   required? Currently _all_ attributes of TelephoneNumber are optional.


15 [ADVISORY] In 7.2.4, a default value for notificationInterval is
   specified but this does not appear in rim.xsd:

   <attribute name="notificationInterval" type="duration"
              use="optional" default="P1D" />

16 [ADVISORY] In 7.4.1, the type of the <any> attribute of
   QueryExpression should be anyType.


17 [ADVISORY] In 7.7.3, amend the last sentence as follows: "The
   registry MUST include Identifiable or RegistryObject instances as Set
   elements depending upon the notificationOption specified for the
   Subscription."


18 [MINOR] In 8.1, since a registry is itself a service it would be
   sensible for Registry to extend Service instead of RegistryObject.
   This would then permit bindings to be associated with affiliated
   registries. Otherwise, how are they located?


19 [MAJOR] Section 9 refers to XACML 1.0, but XACML 2.0 is the current
   standard. Should this section be updated accordingly?


20 [MINOR] Section 9 says much about policy _definition_ but rather
   little about policy _enforcement_. It seems to imply the existence of
   an embedded policy engine that evaluates relevant policies and renders
   appropriate access control decisions. That is, a registry is assumed
   to function as both a Policy Enforcement Point (PEP) _and_ a Policy
   Decision Point (PDP). If this is the case, it should be made explicit
   in the preamble for section 9.

   Alternatively, these functions could be distributed. For example, a
   registry could invoke a remote PDP using SAML (AuthzDecisionQuery) and
   enforce the resulting authorization decision.


-- 
Richard Martell         Public PGP key: <http://www.galdosinc.com/pgp/>
Galdos Systems, Inc.      tel: +1 604-484-2765  |  fax: +1 604-484-2755

Opinions, conclusions, recommendations, and other information presented
in this message are not given or necessarily endorsed by my employer or
firm. If the digital signature is invalid, I did not send this message.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]