[Nsi-wg] Overly complex discovery WSDL

John MacAuley john.macauley at surfnet.nl
Tue Nov 27 08:38:54 EST 2012


I understand the comments on the query.  i was conflicted as well.  I am also wondering if I meant AND :-)

The original Discovery response was the ServicesType structure, but based on the Chicago OGF/GLIF feedback I wrapped it with the NsaDiscoveryType to remove the need for the header.  Other than this minor change it is the exact same as discussed in the last three or four OGF.

Now with this said, let us focus on the "9 levels deep" comment.  This is probably the result of my specific XSD style.  I like to wrap any multi-valued elements in a list type for containment.  For example, the ServicesType wrapping the ServiceType, and the VersionsType wrapping the VersionType.  Removing this containment can reduce the nesting by a few levels without any loss of data structure.  However, this is the pattern I followed in the NSI-CS so I also followed it here.

If you are partial to flatness, I could change everything to OWL and model though assertions and relationships.  I certainly LOVE that model ;-)

John.

On 2012-11-27, at 4:50 AM, Henrik Thostrup Jensen <htj at nordu.net> wrote:

> Hi
> 
> I've been looking at the discovery WSDL, and was a bit amazed with how complicated it turned up being. Now I have not been very active in NSI for the last couple of months, and have missed a couple of meeting, but I think we've ended up with something a lot more complex than what we discussed in Oxford and the mailing lists.
> 
> For the request it looks like this:
> 
> queryNsaRequest :: QueryNsaRequestType
>    queryNsaRequest :: RequestType
>    filter :: FilterType *
>        nsaId :: NsaIdType *
>        serviceType :: xsd:string *
> 
> This is my own notation. Sorry if it is tricky to read. For the request it possibly to define summary of detailed request, but I haven't found any documentation on what should be returned for what. Secondly it is possible to have multiple filters, each specifying multiple nsaIds and serviceTypes. The parameters for each filter should be ORed, however there does not appear to be any documentation for how to deal with multiple filters. It also appears to be complete and utterly overkill as most NSAs will host 2 or 3 services.
> 
> Now, for the response:
> 
> queryNsaResponse :: QueryNsaResponseType
>    discovery :: NsaDiscoveryType *
>        # nsaId
>        # softwareVersion
>        # startTime
>        # currentTime
>        services :: ServicesType *
>            service :: ServiceType
>                #other :: any
>                description :: xsd:string
>                versions :: VersionsType *
>                    version :: VersionType
>                        # name
>                        # version
>                        # endpoint
>                        # wsdl
>                        # url
>                        # other :: any
>                        other :: any *
>                        capabilities :: CapabilitiesType *
>                            capability ft:TypeValuePairType
>                                # type :: xsd:string !
>                                # targetNamespace :: xsd:anyURI
>                                value :: xsd:string *
>                                other :: any *
> 
> Here we are dealing with a datastructure potentially 9 levels deep. Arguably, some of this is due to the ackward way XML/WSDL handles lists, but there are still 4 levels of nested lists. I won't go into any details here.
> 
> I am not trying to do a witch-hunt on John here. In fact he may just have been listening to everyone, but what we ended up with here is pretty bad, and is in my opion very far from what we discussed in Oxford. I think we need to setup some review of WSDLs as well in order to ensure that these things do not spin out of control like this.
> 
> Anyways, something to talk about tomorrow :-).
> 
> 
>    Best regards, Henrik
> 
> Henrik Thostrup Jensen <htj at nordu.net>
> Software Developer, NORDUnet
> 
> _______________________________________________
> nsi-wg mailing list
> nsi-wg at ogf.org
> https://www.ogf.org/mailman/listinfo/nsi-wg



More information about the nsi-wg mailing list