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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: Re: [sca-assembly] ISSUE 8: SCDL artifact resolution underspecified


Michael Rowley wrote:
>  
> 
> I just want to reiterate points made elsewhere on this thread, a little 
> closer to the original proposal text.  The following points should be 
> made in addition to the points made in this proposal text:
> 
> ·         All SCA definitions (composites, binding types, intents, etc) 
> should all be unique within a single “contribution context”, which is a 
> contribution and the exported definitions of all of its dependent 
> contributions.
> 

+1
Although we do need to clarify that 'contribution context' means the 
"home" contribution + location pointed to by the import stmt on a per NS 
basis.
This means that the import stmt pulls in the location only for the NS 
that the /import/@namespace attribute points to (not everything that is 
exported by the pointed contribution).
I assume this is what you meant as well.

> ·         If import/@location refers to a contribution, the identified 
> contribution MUST export the namespace that is being imported.
> 

One of the problems with the import statement as we have defined it is 
that it does not differentiate between different artifact types. For 
example, a WSDL, XSD, SCA composite can use the same namespace. In fact, 
a lot of folks do use the same NS for XSD and WSDL. Further complicating 
this is the fact that an XSD can be inlined within a WSDL and the 
WSDL/XSD don't have to have the same NS. I don't know how to solve the 
latter problem, but for the former either we say that we don't 
differentiate between artifact types (status quo with some added text 
explaining this -- you get everything) or we add another optional 
attribute to the import/export specifying the artifact type.

The location attribute for <import> is not restricted to a contribution, 
if this is kept as is I think this would obviate a need for scaLocation.

There was a opinion expressed (I forget who it was) that all the 
artifacts needed by the deployment must be available in the 
"contribution context". I don't believe we should say that. An 
implementation should be allowed to have predefined artifacts or well 
known artifacts made available to all contributions.

> ·         When an exported definition is imported by another 
> contribution, any QNames that exist in the definition of the exported 
> definition will be resolved in the context of the installed contribution 
> in which the export occurs (not in the context of the importing 
> contribution).
> 
>  
> 
> Note that this last point was discussed on the thread discussing the 
> resolution to issue 17, but on today’s call, we agreed to move the 
> discussion to the topic of issue 8.  I’ll also note that this rule is 
> contentious.  Others believe it should be the opposite.
> 
>  
> 
> Michael
> 
>  
> 
> ------------------------------------------------------------------------
> 
> *From:* Michael Rowley [mailto:mrowley@bea.com]
> *Sent:* Tuesday, February 05, 2008 3:33 PM
> *To:* sca-assembly@lists.oasis-open.org
> *Subject:* RE: [sca-assembly] ISSUE 8: SCDL artifact resolution 
> underspecified
> 
>  
> 
>  
> 
> The current specification says a few things about resolving QNames to 
> SCDL artifacts.  One of the most explicit is the following:
> 
> 
>       *12. *6.4 get QName Definition
> 
> In order to make sense of the domain-level composite (as returned by get 
> Domain-Level Composite), it must be possible to get the definitions for 
> named artifacts in the included composites.  This functionality takes 
> the supplied URI of an installed contribution (which provides the 
> context), a supplied qualified name of a definition to look up, and a 
> supplied symbol space (as a QName, eg wsdl:PortType).  *The result is a 
> single definition, in whatever form is appropriate for that definition 
> type.*
> 
> Note that this, like all the other domain-level operations, is a 
> conceptual operation.  Its capabilities should exist in some form, but 
> not necessarily as a service operation with exactly this signature.
> 
>  
> 
> The sentence that I’ve made bold is the most relevant.  However, the 
> spec does not say what QNames that you should be able to find the 
> definition for (i.e. when it should return non-null).  I believe we 
> should add the following sentence to this section:
> 
>  
> 
> *Any XML definition that is present in the identified contribution or is 
> one of the exported definitions from its dependent contributions is 
> available in this way.*
> 
> Another section that deals with artifact resolution is the following 
> (included here, so you don’t have to fish around the spec):
> 
>  
> 
> 
>     *12.3 Installed Contribution*
> 
> As noted in the section above, the contents of a contribution should not 
> need to be modified in order to install and use it within a domain.  An 
> /installed contribution/ is a contribution with all of the associated 
> information necessary in order to execute /deployable composites/ within 
> the contribution. 
> 
> An installed contribution is made up of the following things:
> 
> ·         Contribution Packaging – the contribution that will be used as 
> the starting point for resolving all references
> 
> ·         Contribution base URI
> 
> ·         Dependent contributions: a set of snapshots of other 
> contributions that are used to resolve the import statements from the 
> root composite and from other dependent contributions
> 
> o         Dependent contributions may or may not be shared with other 
> installed contributions.
> 
> o         When the snapshot of any contribution is taken is 
> implementation defined, ranging from the time the contribution is 
> installed to the time of execution
> 
> ·         Deployment-time composites. 
> These are composites that are added into an installed contribution after 
> it has been deployed.  This makes it possible to provide final 
> configuration and access to implementations within a contribution 
> without having to modify the contribution.  These are optional, as 
> composites that already exist within the contribution may also be used 
> for deployment.
> 
>  
> 
> *Installed contributions provide a context in which to resolve qualified 
> names (e.g. QNames in XML, fully qualified class names in Java).  *
> 
> If multiple dependent contributions have exported definitions with 
> conflicting qualified names, the algorithm used to determine the 
> qualified name to use is implementation dependent.  Implementations of 
> SCA may also generate an error if there are conflicting names.
> 
>  
> 
> Again, I’ve put the most important sentence in bold.  For clarity, we 
> should add the following to the end of the section:
> 
>  
> 
> *If a qualified name is uniquely defined for a symbol space within an 
> installed contribution then no additional information SHOULD be required 
> in order to resolve that qualified name to its definition.*
> 
>  
> 
> I believe that the section titled “Artifact Resolution” can be deleted, 
> as I believe that everything that it says is already said in the 
> “Installed Contribution” section or the section titled “12.5 Use of 
> Existing (non-SCA) Mechanisms for Resolving Artifacts”.
> 
>  
> 
> *RATIONALE:*
> 
>  
> 
> I believe that SCA should do whatever it can to simplify the life of an 
> application developer.  Unfortunately, many XML technologies have 
> complex QName resolution rules and as a result, the maintenance of the 
> many wsdlLocation, schemaLocation and similar attribute values becomes 
> untenable for the average application developers.
> 
>  
> 
> One can see how the industry got into this situation.  The existing XML 
> specifications didn’t have anything like SCA’s concept of an “installed 
> contribution”, so they could not define a scope in which logical QNames 
> could uniquely resolve to definitions.  However, we do have such a 
> concept, and we should take advantage of it to make life easier for our 
> users.  They should be able to use logical names only.  Physical names 
> are brittle.  Finding things is what computers are good at (and fast 
> at).  Users shouldn’t have to.
> 
>  
> 
> Naturally, we don’t live in isolation so we have to honor the XML 
> mechanisms that already exist.  And we do (in the section about 
> “Existing Mechanisms”).  But we can discourage their use within an SCA 
> domain, since we have a simpler alternative.
> 
>  
> 
> Michael
> 
>  
> 
> ------------------------------------------------------------------------
> 
> *From:* Martin Chapman [mailto:martin.chapman@oracle.com]
> *Sent:* Monday, October 08, 2007 9:48 AM
> *To:* sca-assembly@lists.oasis-open.org
> *Subject:* [sca-assembly] ISSUE 8: SCDL artifact resolution underspecified
> 
>  
> 
> Logged: http://www.osoa.org/jira/browse/ASSEMBLY-8
> 
>     -----Original Message-----
>     *From:* Blohm, Henning [mailto:henning.blohm@sap.com]
>     *Sent:* Friday, October 05, 2007 8:01 PM
>     *To:* sca-assembly@lists.oasis-open.org
>     *Subject:* [sca-assembly] NEW ISSUE: SCDL artifact resolution
>     underspecified
> 
>     TARGET: Assembly specification, section "SCA Artifact Resolution"
>     (1.10.2.1)
> 
>     DESCRIPTION: Resolution of SCDL artifacts is currently specified
>     only as far as cross-contribution export/import is concerned. As far
>     as QName to SCDL artifact resolution within a contribution is
>     concerned the specification does not say what is the exact scope of
>     such resolution nor how to extend/modify that scope.
> 
>     Choosing the whole contribution as resolution scope may be
>     prohibitive considering that contributions may be large and
>     distributed (across different execution environments) so that deep
>     traversal of all contribution resources for scdl artifacts may
>     easily introduce a severe performance problem and easily get out of
>     control from a developer perspective.
> 
>     As an analogy, suppose the group would perceive a contribution
>     format that would encompass java ee applications together with OSGi
>     bundles. Chosing a contribution wide resolution scope would
>     correspond to chosing a contribution wide class loading scheme
>     (which I assume all agree is highly undesirable).
> 
>     On the other hand, if the resolution scope is not the whole
>     contribution, it is necessary to allow specification of locations
>     within a contribution.
> 
>     PROPOSAL:
> 
>     - use sca-contribution / import as a means to implement a namespace
>     -> location mapping also for contribution-local artifacts
> 
>     - support an scaLocation attribute to be used for namespace ->
>     location mapping from within SCDL artifacts
> 


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