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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp message

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


Subject: Re: [wsrp] Caching of resources


Good start.  Can you explain the comment:
Note that this portlet url parameter only impacts Consumer URL rewriting as the templates related to resource URIs have to allow for resources to access the excluded state/functionality.

Also a suggested fixes:
The line : If both the wsrp-cacheableResource and wsrp-requiresRewrite portlet URL parameters are set to true, the Consumer MUST parse the resource for the purpose of rewriting namespace prefixing as per [Section 10.3].

should be changed to cover namespace prefixing AND resourceURL rewriting.  A note would have to be included that either the cacheableResource token is ignored in these subsequent resourceURLs or something else in formal recognization of this error condition.
-Mike-

Rich Thompson wrote:

Here is the proposal I promised to draft:



Rich



Cacheable Resources

6.3.1 Caching of resources

For performance reasons the Consumer might prefer to cache resources across a series of requests. The Producer passes information about the cacheability of the resource representation in the cacheControl structure returned in a MarkupContext structure. The Consumer can infer from this information when it may cache the resource and when the cached resource needs to be invalidated and updated by a new call to getResource. All of the cache semantics described in [Section 6.2.1] applies to the caching of resources as well.

In addition to Consumer caching, both browser and web-based caching may apply to the resource. Since resources can contain URLs which need to be written using either the template or Consumer URL rewriting techniques discussed in [Section 10.2], the URI used by the browser to fetch the resource will likely contain state information which virtually guarantees the resource will not be retrieved from the cache on subsequent accesses. [Section 10.2.1.1.3.6] defines the wsrp-cacheableResource portlet URL parameter for the purpose of increasing the hit ratio for the browser and web caches of appropriate resources.

10.2.1.1.3.6 wsrp-cacheableResource

This boolean (default value is false) provides an indication to the Consumer that it can limit the amount of state it places on the URI for the resource such that the likelihood of a subsequent browser access being served from a browser/web cache is increased. This portlet url parameter can only be set to true if the resource contains no URIs referring back to the portlet and if the resource, when served using the getResource operation, does not require the Consumer to supply the navigationalContext structure. When the wsrp-cacheableResource portlet url parameter has a value of true, the Consumer SHOULD NOT include any navigationalContext structure on a related invocation of the getResource operation.

Note that this portlet url parameter only impacts Consumer URL rewriting as the templates related to resource URIs have to allow for resources to access the excluded state/functionality.

If both the wsrp-cacheableResource and wsrp-requiresRewrite portlet URL parameters are set to true, the Consumer MUST parse the resource for the purpose of rewriting namespace prefixing as per [Section 10.3].

10.2.3 Extended BNF Description of URL formats

These definitions utilize the syntax defined in ISO/IEC 14977 [21]

ConsumerURL = BeginToken (RenderURL | ActionURL | ResourceURL | ExtensionURL) EndToken

BeginToken = "wsrp_rewrite?"

EndToken = "/wsrp_rewrite"

RenderURL = "wsrp-urlType=render" {("&" | "&") (CommonPair | RenderPair)}

ActionURL = "wsrp-urlType=blockingAction" {("&" | "&") (CommonPair | ActionPair)}

ResourceURL = "wsrp-urlType=resource" {("&" | "&") (CommonPair | ResourcePair)}

WSRPURLTypes = "render" | "blockingAction" | "resource"

ExtensionURL = "wsrp-urlType=" (Text - WSRPURLTypes) {("&" | "&") (ExtensionPair)}

CommonPair = CommonTextPair | CommonBooleanPair

CommonTextPair = CommonTextName "=" Text

CommonTextName = "wsrp-fragmentID" | "wsrp-extensions"

CommonBooleanPair = CommonBooleanName "=" BooleanValue

CommonBooleanName = "wsrp-secureURL"

RenderPair = RenderTextName "=" Text

RenderTextName = "wsrp-mode" | "wsrp-windowState" | "wsrp-navigationalState" | "wsrp-navigationalValues"

ActionPair = ActionTextName "=" Text

ActionTextName = "wsrp-interactionState" | RenderTextName

ResourcePair = (ResourceTextName "=" Text) | (ResourceBooleanName "=" BooleanValue)

ResourceTextName = "wsrp-url" | "wsrp-resourceID" | "wsrp-resourceState"

ResourceBooleanName = "wsrp-requiresRewrite" | "wsrp-preferOperation" | wsrp-cacheableResource"

ExtensionPair = Text "=" Text

Text = { "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" | "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" | "%" }

BooleanValue = (("true" | "1") | ("false" | "0"))

 

ProducerURLTemplate = {{Text} {ReplacementToken}}

ReplacementToken = "{" CommonTextName | RenderTextName | ActionTextName | ResourceTextName | CommonBooleanName | ResourceBooleanName | ParameterName "}"

ParameterName = "wsrp-urlType" | "wsrp-portletHandle" | "wsrp-userContextKey" | "wsrp-portletInstanceKey" | "wsrp-sessionID"



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