[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