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



I did not include this as even the portlet's own navState would drop the cacheability of the resource significantly. The flip side is that use of gR for view fragments will increase as AJAX use grows, but this just means those are somewhat less cacheable than they are natively (i.e. if they depend on portlet navState, then they won't be very cacheable to start with).

Rich



Stefan Hepper <sthepper@hursley.ibm.com>

02/27/2007 07:52 PM

To
wsrp@lists.oasis-open.org
cc
Subject
Re: [wsrp] Caching of resources





Hi Rich,
good start, but I've some questions:
- why don't we allow access to the nav state? I think encoding the
current nav state of only this portlet in the URL does not hurt caching
as the nav state cannot be changed by a gR call
- why don't we allow to have other resource URLs in the response of
cachable resource markup?

Stefan

Rich Thompson wrote:
>
> Here is the proposal I promised to draft:
>
>
>
> Rich
> ------------------------------------------------------------------------
>
> Next change
>
>
>       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]
> <#_MarkupCaching> 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] <#_URL_Considerations>, 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]
> <#_wsrp-cacheableResource> 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] <#__Toc77>.
>
>
>       10.2.3 Extended BNF Description of URL formats
>
> These definitions utilize the syntax defined in ISO/IEC 14977 ^[21]
> <#_ftn21>
>
> ConsumerURL = BeginToken (RenderURL | ActionURL | ResourceURL |
> ExtensionURL) EndToken
>
> BeginToken = "wsrp_rewrite?"
>
> EndToken = "/wsrp_rewrite"
>
> RenderURL = "wsrp-urlType=render" {("&" | "&amp;") (CommonPair |
> RenderPair)}
>
> ActionURL = "wsrp-urlType=blockingAction" {("&" | "&amp;") (CommonPair |
> ActionPair)}
>
> ResourceURL = "wsrp-urlType=resource" {("&" | "&amp;") (CommonPair |
> ResourcePair)}
>
> WSRPURLTypes = "render" | "blockingAction" | "resource"
>
> ExtensionURL = "wsrp-urlType=" (Text - WSRPURLTypes) {("&" | "&amp;")
> (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]