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

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsrp-interfaces message

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


Subject: Re: [wsia] RE: [wsrp-interfaces] [wsrp][interfaces]Statemanagement/paramet ers



I think Carsten is bringing up very good points here.

Regards.

Alejandro


Carsten Leue wrote:
  > My comments are embedded in <cl> tags.
  >
  >
  > Best regards
  > Carsten Leue
  >
  > -------
  > Dr. Carsten Leue
  > Dept.8288, IBM Laboratory Böblingen , Germany
  > Tel.: +49-7031-16-4603, Fax: +49-7031-16-4401
  >
  >
  >
  > |---------+----------------------------->
  > |         |           Michael Freedman  |
  > |         |           <Michael.Freedman@|
  > |         |           oracle.com>       |
  > |         |                             |
  > |         |           07/23/2002 11:55  |
  > |         |           PM                |
  > |---------+----------------------------->
  >
 
 >--------------------------------------------------------------------------------------------------------------------------------------------------|
  >   |

           |
  >   |       To:

           |
  >   |       cc:       interfaces
<wsrp-interfaces@lists.oasis-open.org>, wsrp-wsia
<wsia@lists.oasis-open.org>                                         |
  >   |       Subject:  Re: [wsia] RE: [wsrp-interfaces]
[wsrp][interfaces] Statemanagement/paramet   ers
                          |
  >   |

           |
  >   |

           |
  >
 
 >--------------------------------------------------------------------------------------------------------------------------------------------------|
  >
  >
  >
  > Q: How are we going to distinguish between the two? [action params and
  > navigational params]
  > A: One way to distinguish between the two is via namespacing most likely
  > prefixing one parameter type (the action params?)
  >
  > Q: Will developers be confused?
  > A: Maybe.  Depends on whether we can articulate the differences between
  > these two types of parameters and whether container implementations
make it
  > easy to do the right thing by providing a [good] utility
  > method  for constructing URLs in the markup.  The thing is if we go
to the
  > alternative -- only allow action parameters in an encoded Action URL and
  > then let perform action return the navigational parameters
  > [generally a subset of the action parameters] it will also be
confusing for
  > our developers as we should only allow "blocking" actions to return such
  > markupParams as otherwise we force the consumer to block
  > all rendering anyway (so it can get these markup parameters and rewrite
  > into all generated URLs on the page).
  >
  > <cl> Maybe I am confused here. If we do not allow an action in the
general
  > case to return the new navigational state (the result of the action),
what
  > would the action be good for? In your scenation when the action link
  > contains both the new markup parameters and action parameters, would 
that
  > mean that when the portlet writes an action link it would have to
  > precalculate the possible outcome of all actions it encodes and put this
  > new state as markup parameters in the link?
  > The only other way I see what actions could do is updating session or
  > backend state that would not be reflected in the markup parameters?
  > Am I missing something?
  > I would say that the option to precalculate all state and encode the
result
  > in the actions is not feasible for perfomance resons.
  > </cl>
  >
  > Q: Does this model require rewriting all existing portlet to support it
  > (since the container cannot do this for the portlet)? Yes and no.  I
  > believe WSRP will already require all existing portlet to be
  > rewritten because of the URL writing rules whether or not we say
there are
  > two types of parameters or one.
  >
  > <cl> I agree </cl>
  >
  > Q: How do we support this model when we already know that this will not
  > work with some browsers/devices (because the URLs will tend to be long,
  > especially if we don't support stateless stateful portlets...)?
  > A: Though the model allows navigational parameters/action parameters be
  > entirely maintained in the links that go all the way back to the client
  > this isn't required.  A consumer is free to maintain this
  > information in memory as part of a URL rewriting mechanism.  I would
expect
  > that some portals will choose to run with minimal state [the
parameters are
  > sent back to the client] whereever possible -- i.e. on
  > the desktop, and support the URL rewrite/parameter caching technique for
  > wireless/small sized device situations.  Such portals would be oen that
  > believed most of their requests were desktop requests -- hence
  > seek an optimal/scalable solution in this environment.
  >
  > <cl> Definitely. I would assume that only very few portals will
encode the
  > navigational state of all portlet on a page in the URL that gets back to
  > the client. The URL will soon become much too large, so every portal 
will
  > need to implement state management for its portlets.
  > What worries me a bit is that we make a lot of design compromizes to
fulfil
  > a possibility that will not be the normal use case. What does the group
  > think?
  > </cl>
  >
  >     -Mike-
  >
  > "Tamari, Yossi" wrote:
  >
  >
  >>Hi Mike,
  >>
  >>Regarding "action parameters and navigational parameters coexist in a
  >
  > link and can be distinguished by the portal":
  >
  >>How are we going to distinguish between the two? This could very easily
  >
  > become confusing for developers.
  >
  >>Does this model require rewriting all existing portlet to support it
  >
  > (since the container cannot do this for the portlet)? If this is the
case I
  > would say this is a huge drawback.
  >
  >>How do we support this model when we already know that this will not 
work
  >
  > with some browsers/devices (because the URLs will tend to be long,
  > especially if we don't support stateless stateful portlets...)?
  >
  >>        Yossi.
  >>
  >>-----Original Message-----
  >>From: Michael Freedman [mailto:Michael.Freedman@oracle.com]
  >>Sent: Friday, July 19, 2002 6:42 PM
  >>To: interfaces; wsrp-wsia
  >>Subject: [wsrp-interfaces] [wsrp][interfaces] State
  >>management/parameters
  >>
  >>Folks,
  >>   At the F2F I took on the task to clarify the proposed support for
  >>"stateless" entities.  In the meantime a discussion has ensued regarding
  >>whether sessionId can be collapsed into the markupParams.  This message
  >>provides an overall analysis of the general question of state management
  >>and its relationship to the protocol.  Based on this a particular
  >>usage/semantic pattern is proposed.  Its intent is to clarify both of
  >>the above issues.  Please let me know what you think.
  >>
  >>Through various discussions/analysis 4 types of state can be defined.
  >>The first three are well understood web application states/styles.  The
  >>last is a new one that comes into existence because of the way our
  >>protocol works:
  >>1) Navigational (URL) state -- this is state represented as parameters
  >>in the query strings of links that establish the "navigational context"
  >>of a page.  I.e. this is the state that allows a link to encode the
  >>state of a page so it may be bookmarked, refreshed, navigated to via
  >>next/back.  An example of this is the amazon.com link that references
  >>the page that describes a specific book. The parameters for this
  >>reference are part of the link making it bookmarkable/navigatable etc.
  >>2) Session state -- this is user application state that doesn't vary as
  >>you navigate.  An example is your shopping cart in amazon.com.  The
  >>items in your shopping cart don't change as you use the next/prev
  >>buttons or redisplay.  Unlike navigational (URL) state, session state is
  >>not represented/maintained by the client, rather it is maintained by the
  >>server.  The client merely has a reference to this state.  This
  >>reference is typically in a cookie but can also be a URL parameter
  >>itself.
  >>3) Action (transient) state -- this is state passed on requests that is
  >>meant to be processed (submitted) and then tossed -- though the
  >>processing usual results in changes to either session or navigational
  >>state.  The example for this is form submission.
  >>4) Request (transient) state -- this is intermediate state meant to be
  >>created during action processing and used in the next render call of the
  >>portlet.  I.e. in our protocol a single user action results in two calls
  >>to the portlet performAction and getMarkup.  These two calls occur
  >>across 2 (connectionless) SOAP calls.  How does a portlet create
  >>transient state in an action that is can access in the following render
  >>while not needing to clean it up because it is recollected after the
  >>"request" completes?  I.e. in the servlet model during a single request
  >>logic can attach transient request state for later logic via request
  >>Attributes.  How does this work between an action/render pair in our
  >>protocol?  Answer: invent/support request state.
  >>
  >>How should our protocol present the above styles/usages?
  >>1) Navigational (URL) state is represented by query string parameters
  >>added to links generated by the portlet in its response to getMarkup (or
  >>redirects from performAction).  Such parameters are presented by the
  >>Portal on subsequent use to both a portlet's performAction [if an action
  >>url] and getMarkup calls as request parameters (in the RequestContext).
  >>They are always resubmitted on redisplay.
  >>2) Action state is represented distinctly from navigational state by URL
  >>parameters added to action links generated by the portlet in its
  >>response to getMarkup.  I.e. action parameters and navigational
  >>parameters coexist in a link and can be distinguished by the portal.
  >>Action parameters are only presented by the Portal on subsequent use to
  >>a portlet's performAction.  They are not presented to getMarkup.  They
  >>are passed to performAction as interactionParams.
  >>3) Session state is maintained by the portlet as needed and reacquired
  >>on request by reference (i.e. a sessionID is passed to all portlet APIs
  >>including performAction and getMarkup so it reattach to its in memory
  >>state) [See below for note on why I suggest we don't support having the
  >>Portal maintain this state on behalf of the portlet and resupply on each
  >>request].
  >>4) Request state is an opaque value returned by a performAction call to
  >>the Portal and based to [only] the next getMarkup of that entity.  This
  >>state is represented by the markupParams returned by performAction and
  >>passed to the next getMarkup.  getMarkup wouldn't return markupParams --
  >>its navigational parameters/state would be encoded in its response
  >>links.
  >>
  >>Note:  In the F2F we discussed supporting "stateless" portlets.  At the
  >>time we attempted to model not only "stateless" portlets as those that
  >>limit themselves to be represented merely by navigational state (URL
  >>parameters) but also session state.  I.e. one form of markupParams was
  >>to allow a portlet to package its session state and return it to the
  >>Portal for later submission rather then keep this information in memory
  >>and merely return a reference (sessionID).  I recommend we do not add
  >>this functionality to version 1 of the specification [though we could
  >>discuss dropping altogether from further consideration].  There are
  >>three reasons for this recommendation:
  >>     a) this "function" is not currently readily modelled in the web
  >>world.  Returning session state to the client prevents effective
  >>bookmarking/navigation.
  >>     b) adding this function complicates the API -- as sessionID covers
  >>the session state case why worry now about supporting a new/extra model?
  >>
  >>     c) having the portal maintain the session state vs a session
  >>reference has negative performance/scalability implications.  When a
  >>portal is running in a load balanced environment state managed on behalf
  >>of the portlet/entity must be maintained in a manner so all nodes see a
  >>common/consistent view of this state.  In such a world writes (the time
  >>when state returned by the portlet has changed and needs to be rewritten
  >>to the shared state manager) are generally expensive.  Session
  >>references rarely change (are good).  Session state changes frequently
  >>(often on every request) and is therefore bad.
  >>
  >>        -Mike-
  >>
  >>----------------------------------------------------------------
  >>To subscribe or unsubscribe from this elist use the subscription
  >>manager: <http://lists.oasis-open.org/ob/adm.pl>
  >>
  >>----------------------------------------------------------------
  >>To subscribe or unsubscribe from this elist use the subscription
  >>manager: <http://lists.oasis-open.org/ob/adm.pl>
  >
  >
  >
  > ----------------------------------------------------------------
  > To subscribe or unsubscribe from this elist use the subscription
  > manager: <http://lists.oasis-open.org/ob/adm.pl>
  >
  >
  >
  >
  > ----------------------------------------------------------------
  > To subscribe or unsubscribe from this elist use the subscription
  > manager: <http://lists.oasis-open.org/ob/adm.pl>






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


Powered by eList eXpress LLC