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] Public review comments: Caching of resources - clarificationneeded



The broadening of this topics to include non-caching and non-http headers helps me significantly. Basically I see three potential answers to the underlying question:

1. Introduce a "transportHeaders" field in ClientData and the various response structures. The semantics would be defined such that the Consumer would be encouraged to forward transport headers as appropriate (e.g. not forwarding those consumed by the Consumer or those reflected elsewhere in the protocol). This would support headers flowing from the browser to reach the Producer, allow for action/event processing to update those headers prior to event/render processing and eventual flow back to the browser (and would also work for the straight-through case of resource URLs :} ). While defining these in the protocol would increase the chance of them reaching the Producers, I see two significant problems; 1) The headers would be removed from processing by other intermediaries (the target of many headers) and 2) those Consumers which start streaming their portion of the response to the browser prior to receiving the response from all Portlets would be unable to copy the headers returned from gM() to the browser (not sure how big a problem this is as such Consumers have to compute caching headers before receiving Portlet sourced caching info already).

2. Add a statement to the spec encouraging Consumer to "appropriately copy" received headers. This reflects the Consumers role as an intermediary, allows for the potential impact of a protocol change between how the request is received from the User and how it is forwarded to the Portlet, and leaves the headers in the domain where they were defined such that any other intermediary understanding them can receive them in the expected manner.

3. Defer statements related to #2 to a section in the Primer discussing the intermediary role of the Consumer.

Rich



Richard Jacob <richard.jacob@de.ibm.com>

07/24/2006 09:40 AM

To
Subbu Allamaraju <subbu@bea.com>
cc
Rich Thompson/Watson/IBM@IBMUS, wsrp <wsrp@lists.oasis-open.org>
Subject
Re: [wsrp] Public review comments: Caching of resources - clarification needed





I tend to agree with Rich,
this seems really to outline a nice extension for HTTP headers (going even
beyond pure caching). And I agree that there is a lot of value of utilizing
existing WEB caching infrastructure where possible.
I would argue for such an extension for the following reasons:
- the cache control headers should not only apply to gR() but also to gM()
- other (HTTP headers) might be also of interest. We have a lot of
customers seeking for the ability to forward request headers to
producers...
- other transport specific information (even non-HTTP) might be of interest

So a generic "header" framework/extension would fit better here.

Mit freundlichen Gruessen / best regards,

       Richard Jacob
______________________________________________________
IBM Lab Boeblingen, Germany
Dept.8288, WebSphere Portal Server Development
WSRP Technical Lead
WSRP Standardization
Phone: ++49 7031 16-3469  -  Fax: ++49 7031 16-4888
Email: mailto:richard.jacob@de.ibm.com


                                                                         
            Subbu Allamaraju                                              
            <subbu@bea.com>                                              
                                                                       To
            07/24/06 03:26 PM         Rich Thompson <richt2@us.ibm.com>  
                                                                       cc
                                      wsrp <wsrp@lists.oasis-open.org>    
                                                                  Subject
                                      Re: [wsrp] Public review comments:  
                                      Caching of resources -              
                                      clarification needed                
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         
                                                                         




Rich Thompson wrote:
>
> I would agree that Subbu's use case relates to http headers rather than
> mime attributes and is much more related to CacheControl than it is to
> the proposed ResourceContext. The one other consideration I would toss
> into the discussion is that we have tried to keep the protocol transport
> agnostic whenever possible. I'm not sure there are significant
> advantages to add a transport specific field for this rather than an
> extension related to fuller support for http caching headers.

Resources are going to be served over some transport protocol, with the
most common (99%?) being HTTP. We also need to consider scenarios that
strongly rely on HTTP for caching, ranges etc. One example is a portlet
serving a large report which would benefit from using range headers.

Two arguments for a generic structure

- Support non-cache related headers
- Mimic the work done for uploadContext in WSRP 1.0.

Subbu

>
> Rich
>
>
> *Richard Jacob <richard.jacob@de.ibm.com>*
>
> 07/24/2006 08:58 AM
>
>
> To
>            Stefan Hepper <sthepper@hursley.ibm.com>
> cc
>            wsrp <wsrp@lists.oasis-open.org>
> Subject
>            Re: [wsrp] Public review comments: Caching of resources -
clarification
> needed
>
>
>
>
>
>
>
>
> I would argument that if want to mimic/forward HTTP1.1 cache directives
> also via WSRP that these headers should become part of the WSRP cache
> control structure.
> Why should the cache directive header only apply to gR() and not gM()?
> I would also like to note that the consumer most likely will manipulate
the
> headers accoring to its needs. It can't be a simple copying of the WSRP
> forwarded headers to the HTTP headers of the overall HTTP response.
> Why is that? Because the Consumer is providing an aggregated resource
(the
> page) to the browser (I agree that most likely not in the gR() case) and
> thus other factors might influence the resulting/aggregated cache header.
> The easiest example is the expiry header which needs to be computed from
> the aggregates on the page, most likely the smallest one will win.
> The same is true for the no-store/no-cache/private headers and certainly
> for the others, too.
>
> Mit freundlichen Gruessen / best regards,
>
>        Richard Jacob
> ______________________________________________________
> IBM Lab Boeblingen, Germany
> Dept.8288, WebSphere Portal Server Development
> WSRP Technical Lead
> WSRP Standardization
> Phone: ++49 7031 16-3469  -  Fax: ++49 7031 16-4888
> Email: mailto:richard.jacob@de.ibm.com
>
>
>
>             Stefan Hepper
>             <sthepper@hursley
>             .ibm.com>                                                  To
>                                       wsrp <wsrp@lists.oasis-open.org>

>             07/24/06 06:15 AM                                          cc
>
>                                                                   Subject
>                                       Re: [wsrp] Public review comments:

>                                       Caching of resources -

>                                       clarification needed

>
>
>
>
>
>
>
>
>
>
> Why is the new struct called mimeAttributes? How is this related to MIME?
>
> Stefan
>
> Subbu Allamaraju wrote:
>  > I tried to map possible WSRP resource caching options to HTTP, and
there
>  > are some gaps to be filled.
>  >
>  > Consider the following parties in a scenario:
>  >
>  > UA <-----> Consumer <------> Producer <-------> Resource
>  >
>  > Of the arrows above, the first and third are done over HTTP.
>  >
>  > Let' say, the resource set a Last-Modified header in response to the
>  > first request. The producer cannot faithfully transmit this info to
the
>  > consumer. The Consumer can make up a header with the current time
(i.e.
>  > Last-Modified header received by the UA is the current consumer time).
>  >
>  > In a future request, the UA sends an If-Modified-Since header, but
>  > again, the consumer cannot transmit this info to the producer. The
>  > producer will not receive this header, and therefore will fetch and
>  > serve the resource again.
>  >
>  > This is just one scenario. There are several headers that are not
>  > mappable between WSRP resource API and HTTP. The only thing that can
be
>  > mapped well are the following:
>  >
>  > ETag -------> validateTag
>  > no-cache ---> no expires and no validateTag
>  > public -----> forAll userScope
>  > private ----> forUser userScope
>  >
>  > There are few key caching header values like "max-age" are useful for
>  > browser/proxy caching, and certain headers like "no-store" influence
>  > user experience as well as the way browsers expire responses. For
>  > instance "Cache-control: no-cache" is not the same as "Cache-Control:
>  > no-cache no-store" and the consumer needs some help from the protocol
to
>  > be able to set these headers correctly reflecting the intent of the
>  > producer.
>  >
>  > I propose to add the following field to ResourceParams and
>  > ResourceContext structure (based on Richard's proposal to decouple
>  > getResource input/output from getMarkup input/output).
>  >
>  > [0] NamedString  mimeAttributes[]
>  >
>  > This will let the producer and consumer carry the intent of the
>  > portlet/resource and UA respectively.
>  >
>  > Since resources could be large, portlets may like to rely on range
>  > headers as well, and the above proposal addresses such needs.
>  >
>  > Subbu
>  >
>  >
>  > Subbu Allamaraju wrote:
>  >> In WSRP 2.0, it is not clear how a producer/consumer would manage
>  >> caching of resources such that intermediate entities such as caching
>  >> proxies, and also user agents can participate in HTTP 1.1 style of
>  >> caching.
>  >>
>  >> With the WSRP 1.0 style, the resource originator could set caching
>  >> headers like Etag, and Last-Modified. Intermediaries/user agents
could
>  >> then cache resources by following these headers, and also supplying
>  >> If-Modified-Since/If-Not-Modified-Since and Etag headers.
>  >>
>  >> How do these headers map to the input/output of the getResource
>  >> operation? I can see that the Etag header could be mapped to
>  >> validateTag, but what about other caching headers? Who is responsible
>  >> for generating these headers and how do these headers map to WSRP
2.0?
>  >>
>  >> Subbu
>  >>
_______________________________________________________________________
>  >> Notice:  This email message, together with any attachments, may
contain
>  >> information  of  BEA Systems,  Inc.,  its subsidiaries  and
affiliated
>  >> entities,  that may be confidential,  proprietary,  copyrighted
and/or
>  >> legally privileged, and is intended solely for the use of the
individual
>  >> or entity named in this message. If you are not the intended
recipient,
>  >> and have received this message in error, please immediately return
this
>  >> by email and then delete it.
>  >>
>  >> ---------------------------------------------------------------------
>  >> To unsubscribe from this mail list, you must leave the OASIS TC that
>  >> generates this mail.  You may a link to this group and all your TCs
in
>  >> OASIS
>  >> at:
>  >>
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>  >
>  >
_______________________________________________________________________
>  > Notice:  This email message, together with any attachments, may
contain
>  > information  of  BEA Systems,  Inc.,  its subsidiaries  and
affiliated
>  > entities,  that may be confidential,  proprietary,  copyrighted
and/or
>  > legally privileged, and is intended solely for the use of the
individual
>  > or entity named in this message. If you are not the intended
recipient,
>  > and have received this message in error, please immediately return
this
>  > by email and then delete it.
>  >
>  > ---------------------------------------------------------------------
>  > To unsubscribe from this mail list, you must leave the OASIS TC that
>  > generates this mail.  You may a link to this group and all your TCs in
>  > OASIS
>  > at:
>  > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>  >
>  >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  You may a link to this group and all your TCs in
> OASIS
> at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  You may a link to this group and all your TCs in
OASIS
> at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>
>

_______________________________________________________________________
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it.

---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  You may a link to this group and all your TCs in
OASIS
at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php






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