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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ubl message

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


Subject: Re: [ubl] Discussion of substitution groups


On Mon, 18 Jul 2005 16:08:50 +0100, CRAWFORD, Mark <MCRAWFORD@lmi.org>  
wrote:

> But if our schema follow our NDRs and are created from models as
> expressed in the spreadsheets, why do we need to use substitution groups
> at all?

Sorry I'm a little late in responding to this thread.  In the SSC group,  
we spent a lot of time, during the UBL 1.1 days, looking at pros and cons  
of different methods of managing minor versioning.  In particular, we were  
looking at ways of being able to provide some reasonable proof or  
guarantee that a new minor version of the UBL Schemas really is backwards  
compatible with the previous major/minor version.  Before we finished this  
discussion, it was decided that we would skip 1.1. and go straight to 2.0,  
so we never really brought this discussion back to the main group.

There are two key issues around backwards compatibility: how does UBL  
satisfy itself that new minor version Schemas are backwards compatible,  
and how does UBL convince its users that new minor version Schemas are  
backwards compatible?  The latter is the more difficult question.   
Although the UBL models (spreadsheets) are the source of the definitions,  
the Schemas are the deliverable that users really use, so it is at the  
Schema level that users will judge whether the Schemas appear to be  
backwards compatible.  The one advantage that the Scheme  
extension/restriction/redefine/substitution constructs have is that they  
make explicit how the new Schema version is derived from the previous one,  
so you only have to examine the changes to assess backwards  
compatibility.  If you just generate the full Schemas anew each time, you  
get into the difficult area of trying to do diffs between full Schemas,  
something that tools don't give you any help to do (none that I've seen,  
anyway).

Mind you, generating minor version Schemas as "deltas" on top of the  
previous major/minor version isn't without some problems either, since it  
suggests that the spreadsheets also need to express deltas, and that isn't  
entirely straightforwards either, particular if you have multiple minor  
versions, and need to track which fields were created or changed in which  
minor versions.

There other ways that people sometimes deal with the backwards  
compatibility issues, but the question is whether they are applicable to  
UBL.  For example, a comprehensive set of test examples can provided a  
sufficiently good regression test of backwards compatibility, good enough  
to satisfy users.  However, we don't have such a set of test examples  
right now.  I've also worked on a project where the Schemas were generated  
 from a model, and in that case I could trace backwards compatibility, at  
the level that was important to my users, by "compiling" the Schemas into  
Java and checking (by compilation) that each new minor version interface  
was a valid extension of the previous.  However, I don't see this method  
being suitable either.  I just wanted to point out that there are various  
mechanisms one can use to establish backwards compatibility; we need to  
find at least 1 that works for UBL.

It seems to me that UBL has a good set of design rules for creating new  
major versions of models/Schemas.  However, I do see that there is still a  
lot to do in order to provide the necessary support for minor versions,  
which is something we never had much opportunity to test until we  
(temporarily) started 1.1, and which we won't really have an opportunity  
to get to grips to until we do have to release a 2.1, 3.1, whatever.  My  
experience is that you always learn lessons from doing backwards  
compatible minor versions that you won't have foreseen when doing the  
initial major version.  It's the normal flow of things, but we have to be  
prepared for the idea that it might require some changes to the NDRs as  
they stand now.

Anyway, I hope this provides some context as to why these issues are  
coming up, and weren't necessarily resolved when the NDRs were done for  
1.0.  Ultimately, UBL needs to agree on a solution for backwards  
compatible minor versions that (a) satisfy's UBL's needs to have a  
workable process, and (b) provides sufficient confidence to its users that  
minor versions really are backwards compatible.

Cheers, Tony.
-- 
Anthony B. Coates
London Market Systems Limited
33 Throgmorton Street, London, EC2N 2BR, UK
http://www.londonmarketsystems.com/
mailto:abcoates@londonmarketsystems.com
Mobile/Cell: +44 (79) 0543 9026
[MDDL Editor (Market Data Definition Language), http://www.mddl.org/]
[FpML Arch WG Member (Financial Products Markup Language),  
http://www.fpml.org/]
-----------------------------------------------------------------------
This Email may contain confidential information and/or copyright material  
and is intended for the use of the addressee only.  Any unauthorised use  
may be unlawful. If you receive this Email by mistake please advise the  
sender immediately by using the reply  facility in your e-mail software.   
Email is not a secure method of communication and London Market Systems  
Limited cannot accept responsibility for the accuracy or completeness of  
this message or any attachment(s). Please examine this email for virus  
infection, for which London Market Systems Limited accepts no  
responsibility. If verification of this email is sought then please  
request a hard copy. Unless otherwise stated any views or opinions  
presented are solely those of the author and do not represent those of  
London Market Systems Limited.


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