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


Help: OASIS Mailing Lists Help | MarkMail Help

sdo message

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

Subject: SDO 3 Core and Optional Features

As follow-up to the discussion we had today about possibly making some of 
the features of SDO 3 optional, the basic idea is if somebody wants to 
create an SDO implementation that only supports specific clients (use 
cases), some of the features (like the ones I listed below) may 
essentially amount to dead code, i.e., they would never be used. Ideally, 
the spec would formally acknowledge (i.e., identify) these potentially 
unneeded features. If the spec doesn't label these features as optional, 
then implementations will either need to implement the whole spec, or in 
the case where it's too much effort, simply choose to not be spec 
compliant. The latter would reduce the number of compliant SDO 
implementations which, I think, would reduce the value of the spec. Making 
parts optional would still leave them as specified compliance points, the 
only difference is that an implementation which doesn't want to compete in 
a certain application space, would not be forced to comply with those 
parts of the spec. An implementation could be described as compliant, but 
not complete. I think lowering the bar (cost of entry) for more 
application-specific tuned SDO implementations, would result in more SDO 
implementations, which would help increase SDO acceptance overall.

Here is a first pass at how IBM looks at the SDO functionality (current 
thinking anyway).

1. SDO Core Functionality - Required
     - this includes everything in the specification that is clearly 
defined and not specifically called out as one of the optional features 
2. Dynamic MetaData Creation - Optional
     - this is essentially the TypeHelper.define() method. It's never used 
in situations where XML Schema is always used to define MetaData.
3. XSD generation - Optional
     - in situations where XMLSchema is always used to define metadata, 
XSDHelper.generate() is uninteresting. At best it would reproduce the 
schema which the user already has, at worst it produces a different schema 
which is not really the "correct" one.
4. ChangeSummary standard serialization format - Optional
     - the spec-defined serialization format is inefficient and is only 
important if we wish to interoperate between implementations. This may be 
part of a potentially bigger interoperability feature, but other than 
ChangeSummary format, the rest of the XML structure is well defined in 
XMLSchema. As a result, it's possible for an implementation that doesn't 
support ChangeSummary interoperability to still be interoperable for any 
data graph that doesn't use ChangeSummary.
5. Some aspects of Static SDO - Optional? (maybe)
     - Not sure what the spec actually requires today. Does it require a 
static code generator? Some of the new features that we're discussing 
lately, related to annotations, JAXB, etc. - which of these things are 
required by all implementations and which may be optional features?
6. The new Key support - Optional? (maybe)
     - Is the new key support intended to support RDB scenarios, or are 
there other use cases. If it's not really applicable to XSD-based models, 
an XML focused implementation won't require it - it would never be used.

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