RE: [wsrp] Request scope support

From
Rich Thompson <>
Date
2006-01-19T15:50:24+00:00
ID
Thread
RE: [wsrp] Request scope support
Consider the following scenario:

1. User activates an action URL ->
pbia() on the Portlet

2. Markup served from something other
than gm() - e.g. a cache hit or network failure

3. User activates an action URL on a
different portlet

4. The other portlet generates events
which get distributed to the portlet -> he() on the Portlet

5. Rest of the steps like the "normal"
example

From the user's perspective, there would
be two request cycles, but the Producer is unable to determine this.

I think I here you raising the question
as to whether the Consumer can reasonably determine this such that the
proposed flag could be set and whether anything would be gained relative
to the Producer simply managing this scope entirely by leveraging things
like navState. I'm not sure which path is better and would like other perspectives
to comment on this as well.

Rich 

Richard Jacob <>

01/19/06 09:24 AM

To

Rich Thompson/Watson/IBM@IBMUS

cc



Subject

RE: [wsrp] Request scope support

Could you elaborate on "On the flip side, the
Producer can't tell whether a

new User Request Cycle starts between steps 1 & 2 above due to the

possibility that markup was served from a cache.".

I think I don't get your point here. How does cached content refer to the

transition from 1 to 2?

The consumer wouldn't present markup between 1&2 and both modify state
on

the producer, so potentially both would result in a new navState.

My assumption would be that he() starts a new JSF phases cycle anyway so

(because both modify state) so from the JSF's perpective, the request

scoped beans would need to be reinitialized anyway.

Mit freundlichen Gruessen / best regards,

        Richard Jacob

______________________________________________________

IBM Lab Boeblingen, Germany

Dept.8288, WebSphere Portal Server Development

WSRP Team Lead & Technical Lead

WSRP Standardization

Phone: ++49 7031 16-3469  -  Fax: ++49 7031 16-4888

Email: mailto:

                    
                     
                     
          

             Rich Thompson    
                     
                     

             <  
                     
                    

             m>        
                     
                     
    To 

                    
                  
          

             01/19/06 03:03 PM    
                     
               cc 

                    
                     
                     
          

                    
                     
                     
  Subject 

                    
                  RE: [wsrp]
Request scope support    

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

What I heard on the call yesterday was that this scope could at least be

mostly dealt with by Producer implementations supporting such a scope,
but

that there may be times when Consumer assistance would make a difference.

Consider some of the more complicated scenarios (note, these are common):

1. pbia()

2. he()

3. he()

4. gm()

5. gm()

6. gm() - different navState

As I typed the ID proposal, it became clear having the Consumer

differentiate that step 6 starts a new User Request Cycle would be

expensive (it requires the Consumer "remember" the most recent
navState

separately (especially if templates are in use), or at least process URLs

in a manner that recognizes the URL has a different navState). If one

throws in the bookmark/back button issue, the Consumer would have to

actually store the last navState used in order to determine whether a new

ID was required. I thought this would be too expensive of a requirement.

On the flip side, the Producer can't tell whether a new User Request Cycle

starts between steps 1 & 2 above due to the possibility that markup
was

served from a cache.

I tried to develop the boolean flag approach as a middle ground where the

burden of managing this scope stays at the Producer, but the Consumer

provides a simple indicator of times when it knows a new User Request Cycle

has started. This can help the Producer determine whether steps 2 &
3 are

in the same cycle as step 1, but leaves the thornier problem of step 6,

bookmarked URLs and the back button to the Producer.

Rich

                    
                     
                     
          

 "Mike Caffyn"              
                     
                     
  

 <>            
                     
            

                    
                     
                     
          

                    
                     
                     
       To 

 01/19/06 08:20 AM                
                   <-op

                    
                     
           en.org>      
       

                    
                     
                     
       cc 

                    
                     
                     
          

                    
                     
                     
  Subject 

                    
                     
           RE: [wsrp] Request   

                    
                     
           scope support      
 

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

                    
                     
                     
          

Sorry I also missed the call, I agree with Richard and Andre. It seems
the

producer/portlet should be able to handle this request cycle without the

consumer providing help. In normal operations the portlet would that either

the request cycle started with a pbia() or he() and can reload that

information during the render or be able to work with stored cache from
the

pbia() or he(). As Andre points out this method could run into problems

during networking related issues, but due to optional nature of many

interfaces/action/reactions in wsrp this could effect any type of portlet

depending on the consumer.

For example an complex request lifecycle to a portlet may have been:

1. Pbia()

2. He()

3. He()

4. Render()

If the pbia() fails due to networking problems I would assume this would
be

reported and the user would re-execute? If either 2 or 3 he() fails the

user

would be non the wiser and the render would happen as if no event happened.

If the render() fails, the consumer may use cache to display the previous

markup? There seems to be lots of areas where the page could be

inconsistent. Does refreshing the page cause the lifecycle to happen again?

I'm not totally sure I understand the issue with the back button and

bookmark in relationship to lifecycle and adding helper id.

-Mike

-----Original Message-----

From: Richard Jacob [mailto:]

Sent: Thursday, January 19, 2006 7:14 AM

To: 

Subject: Fw: [wsrp] Request scope support

I think the current proposal strenghtens my arguments I made yesterday.

It's not quite easy to implement such a message correlation on the consumer

side and the value it gives seems quite limited to me.

We seem already to have troubles to clearly define what such a cycle would

be, what it would mean and at the same time keep the features that WSRP
and

JSR168 offers in terms of bookmarkability back button support, etc.

If we defined the requestCycle flag what would the difference really be
in

letting the Producer set internally flag (without the protocol need to

transfer it). The Producer can easily conduct the same information on the

incomming request, i.e. if a pbia() or he() occurs on a portlet instance

(use the portletInstanceKey here) then it can consider it a new request

cycle.

I don't see the value in the protocol support to mimic this behavior.

Unfortunalty JSFdoesn't fit well into our model simply because it doesn't

clearly seperate action processing from rendering.

Now we seem to try to "retrofit" our protocol in such a manner
that it can

act as a single phase protocol.

I think consequently this might break our intended behavior which we might

not have foreseen yet, examples here are cachability, back button,

bookmarks.

Mit freundlichen Gruessen / best regards,

       Richard Jacob

______________________________________________________

IBM Lab Boeblingen, Germany

Dept.8288, WebSphere Portal Server Development WSRP Team Lead & Technical

Lead WSRP Standardization

Phone: ++49 7031 16-3469  -  Fax: ++49 7031 16-4888

Email: mailto:

            Rich Thompson

            <

            m>        
                     
                     
    To

                    
                 

            01/18/06 11:09 PM    
                     
               cc

                    
                     
                     
 Subject

                    
                 [wsrp] Request
scope support

For those not on the Interfaces SC call today, the use cases regarding

Producers who have a concept of a user-request scope needing some support

from Consumers was discussed. There was a building consensus toward having

the Consumer supply an ID which changes only on action or event processing,

though most wanted to see a proposal in the context of the spec and think

through what the impacts of those changes would be on reasonable Consumer

implementations before deciding whether or not to include such support
in

v2. I agreed to draft such a proposal, but had a problem with the scenario

of a End-User jumping to a different state of the page. This can easily

happen via a bookmark, but also may happen when the browser's back button

is

pushed. This caused me to change the proposal to a style where the Consumer

indicates to the Producer when it knows a new requestCycle is starting
via

a

boolean rather than being more definitive by supplying an ID. I left the

original attempt in (with a strike through the text) so that people can

easily consider that option as well.

Rich [attachment "RequestID_proposal.doc" deleted by Richard

Jacob/Germany/IBM]

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

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

--------------------------------------------------------------------- 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