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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp-markup message

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


Subject: Re: [wsia][wsrp-markup] URL writing


A few questions and ideas regarding URL rewriting/writing.

1.  Resource URLs

    a.  Single entity with multiple resource locations

A single entity may want to provide resource references to multiple
resources located in different locations, even across servers.

The current assumption is that the producer provides the base URI for all
resources coming from that producer.  The base URI is then pre-pended to the
resource location provided in the resource URL (wsia:resource).  This method
does not allow for relative URLs or serving up resources from multiple
locations.

A possible solutions to this problem is:
The base URI can be set within a URL token parameter, such as wsia:baseURI.
The base URI will default to the base URI provided by the producer in the
response (or possibly at registration time?).  The entity can then override
the base URI within the URL token (wsia:baseURI).

I also think that some fully qualified resources will also have to be
proxied by the consumer.  In this case the resource location (wsia:resource)
is fully qualified and a base URI should not be pre-pended to the location.

    b. Caching

Each resource may be cached by the consumer.  The entity should be able to
indicate if a resource should or shouldn't be cached.  Perhaps a wsia:cache
parameter?  This tells the consumer two things:  If the resource should be
retrieved from cache, and if the resource should be placed in the cache if
the resource is not already cached.  By default the consumer should be
allowed to cache the resource.  The consumer should not cache the resource
if the URL explicitly sets caching to false (wsia:cache=false).

    c. Rewriting

The consumer will have the opportunity to pre-parse the resource and rewrite
any URL tokens (consumer URL rewriting only) before serving the resource.
Most resources will not need to be pre-parsed.  I think that only resources
that the entity explicitly specifies should be rewritten.  For example
resource URLs with wsia:rewriteResource=true must be rewritten by the
consumer.

2.  Namespacing

Why is wsia:name required?  Isn't it up to the consumer to provide a
namespace based on the entity handle, session, or whatever?  I am not sure I
understand this parameter, Rich, can you expand on this?

Thanks,
Chris

-------------------------

Consumer URL writing:
   If these take the form of:

            {marker}name1=value1&name2=value2 ... {marker}

   I think we can keep a simple, yet flexible form through namespaced
attribute names; eg.:
* wsia:urlType - Available values include 'action', 'render', 'resource',
'namespace'
* wsia:resource - When urlType is resource, this specifies the resource.
* wsia:name - When urlType is namespace, this specifies the name to be
processed
* wsia:markupParams - What should be fed back the entity as markupParams
* .....
  Any names not in the reserved set are treated as clientParameters for
action & render urlTypes.

Carsten will forward a proposed marker for efficient parsing of the markup
stream.

Producer URL writing:
The key here is to have a simple templating scheme (no regular expression
parser required!) that also provides flexibility in how the Consumer
contructs its URLs. If each template takes the form:


http://www.Consumer.com/path?wsia:entity={entityHandle}&wsia:mParams={markup
Params}  ...

where:
Everything outside of a { } pair MUST be viewed by the Producer as a
constant (ie. it is up to the Consumer as to what part of the URL it is in).
What is inside each { } pair is a name which (along with the { } pair) MUST
be replaced with its cooresponding value (the empty string if it has no
value). Interesting names include:
* entityHandle
* markupParams
* sessionID
* clientParameters
* ...

There will need to be a reserved property name for each of the urlTypes used
for Consumer writing; namely:
  wsia:ActionTemplate
  wsia:RenderTemplate
  wsia:ResourceTemplate

For namespacing, a non-template property:
   wsia:NameSpacingPrefix



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


Powered by eList eXpress LLC