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] | [List Home]


Subject: Re: [wsrp-interfaces] Fw: [wsrp] Additional use cases for issue #44(set new public params)


Good question. I don't remember discussing the question of scoping at 
the time the use case was brought up. It seems that the scoping of 
changes to atleast one user interaction was a consequence of how the 
proposal was addressing communication of state changes to the consumer.

One of the use cases for broader sharing is to allow a consumer managed 
shared context for data - very much like a few portlets in a group 
sharing session state.

Subbu

Rich Thompson wrote:
> 
> I think it might be time to pull this discussion back out of the 
> abstract space and relook at the use cases we have accepted as compelling.
> 
> Stefan & Richard have posted some use cases that clearly would benefit 
> from PPs being settable on URLs and need a PP scope of at least the user 
> interaction ... including all portlets accessed during the processing of 
> the user interaction. Could you post use cases requiring broader scopes? 
> I presume that if we find them compelling, my answer to Mike's previous 
> inquiry about requiring Consumers to support PPs may need to change.
> 
> Rich
> 
> 
> *Subbu Allamaraju <subbu@bea.com>*
> 
> 07/25/05 09:06 AM
> 
> 	
> To
> 	wsrp-interfaces@lists.oasis-open.org
> cc
> 	
> Subject
> 	Re: [wsrp-interfaces] Fw: [wsrp] Additional use cases for issue #44 
> (set new public params)
> 
> 
> 	
> 
> 
> 
> 
> 
> Stefan,
> 
> This is question of scoping.
> 
> As we have been debating, there are two options to let portlets update
> some shared state (public params). The first option is to let portlets
> encode such change in URLs, and the second is to let producers return
> new public params within SOAP.
> 
> Apart from the encoding rules, these options influence scoping of this
> shared state that consumers can implement. If you go with the first
> option, consumers will have to limit this shared state to a user's
> session or just a few portlets on a given page. IMO, this is restrictive.
> 
> However, if you go with the second option, consumer has more choice.
> Consumers can implement wider scoping of this shared state.
> 
> Subbu
> 
> 
> Stefan Hepper wrote:
>  > I think this is mixing sematics. Anything that requires a pbia is ment
>  > to be a resource state change. For resource changes you need a blocking
>  > semantic. Navigational state and public params in my mind define the
>  > view state of the portlet and changing this state does not require a
>  > pbia nor a non-blocking action. The new parameters or state can just be
>  > provided to the portlet.
>  >
>  > This also relates to the W3C standard about GET and POST:
>  >
>  > "    * Use GET if:
>  >            o The interaction is more like a question (i.e., it is a safe
>  > operation such as a query, read operation, or lookup).
>  >      * Use POST if:
>  >            o The interaction is more like an order, or
>  >            o The interaction changes the state of the resource in a way
>  > that the user would perceive (e.g., a subscription to a service), or
>  >            o The user be held accountable for the results of the
>  > interaction."
>  >
>  > I don't see why it is necessary to pay the penalty of an action for
>  > changing PPs.
>  >
>  > Stefan
>  >
>  >
>  >
>  > Subbu Allamaraju wrote:
>  >  > Rich Thompson wrote:
>  >  >
>  >  >>
>  >  >> My comment was that requiring action processing is always possible,
>  >  >> but why would we require it in this case and not for
>  >  >> mode/windowState/navState changes?
>  >  >
>  >  >
>  >  > I agree, but the difference is the encoding rules.
>  >  >
>  >  > Subbu
>  >  >
>  >  >>
>  >  >> Rich
>  >  >>
>  >  >>
>  >  >> *Subbu Allamaraju <subbu@bea.com>*
>  >  >>
>  >  >> 07/22/05 09:48 AM
>  >  >>
>  >  >>    
>  >  >> To
>  >  >>     wsrp-interfaces@lists.oasis-open.org
>  >  >> cc
>  >  >>    
>  >  >> Subject
>  >  >>     Re: [wsrp-interfaces] Fw: [wsrp] Additional use cases for issue
>  >  >> #44 (set new public params)
>  >  >>
>  >  >>
>  >  >>    
>  >  >>
>  >  >>
>  >  >>
>  >  >>
>  >  >>
>  >  >>
>  >  >> Thinking aloud, can't we map render URL use cases to use pbia? The
>  >  >> reason for changing the value of a paramter could be the result of a
>  >  >> user interaction, which can then compute new values and return with
>  > pbia
>  >  >> response.
>  >  >>
>  >  >> Subbu
>  >  >>
>  >  >>
>  >  >> Rich Thompson wrote:
>  >  >>  >
>  >  >>  > It is possible to drive every style of update through action
>  >  >> processing,
>  >  >>  > but I think that short changes the advantages of using render URLs
>  >  >> where
>  >  >>  > they are appropriate.
>  >  >>  >
>  >  >>  > New navState can be specified on each URL (including render
>  > URLs), why
>  >  >>  > should not the Portlet be able to specify the shared version 
> (PPs)?
>  >  >>  >
>  >  >>  > Rich
>  >  >>  >
>  >  >>  >
>  >  >>  > *"Andre Kramer" <andre.kramer@eu.citrix.com>*
>  >  >>  >
>  >  >>  > 07/22/05 08:02 AM
>  >  >>  >
>  >  >>  >                   > To
>  >  >>  >                  Rich Thompson/Watson/IBM@IBMUS,
>  >  >> <wsrp-interfaces@lists.oasis-open.org>
>  >  >>  > cc
>  >  >>  >                   > Subject
>  >  >>  >                  RE: [wsrp-interfaces] Fw: [wsrp] Additional use
>  >  >> cases for issue #44
>  >  >>  > (set new public params)
>  >  >>  >
>  >  >>  >
>  >  >>  >                   >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  > After reading your previous email, I was driving towards a similar
>  >  >>  > recommendation for Portlets to “re-fresh” public parameters by
>  >  >> return on
>  >  >>  > each WSRP interaction so that a consumer is more likely to forward
>  >  >>  > values that have been recently actively returned and I agree this
>  >  >> means
>  >  >>  > Portlets have to maintain/store public param values e.g. in
>  >  >> navigational
>  >  >>  > state. But, with such advice, I see no reason to have public
>  >  >> parameters
>  >  >>  > to visibly appear on URLs (rewrite expressions or templates) at
>  >  >> all. Why
>  >  >>  > introduce a new encoding and (in markup) transport mechanism 
> when it
>  >  >>  > seems a preferable Web Service (in SOAP response) encoding and
>  >  >> transport
>  >  >>  > is already available and recommended?
>  >  >>  >   > Regards,
>  >  >>  > Andre
>  >  >>  >   >
>  >  >>  >
>  >  >>
>  > ------------------------------------------------------------------------
>  >  >>  >
>  >  >>  > *From:* Rich Thompson [mailto:richt2@us.ibm.com] *
>  >  >>  > Sent:* 22 July 2005 12:24*
>  >  >>  > To:* wsrp-interfaces@lists.oasis-open.org*
>  >  >>  > Subject:* Re: [wsrp-interfaces] Fw: [wsrp] Additional use 
> cases for
>  >  >>  > issue #44 (set new public params)
>  >  >>  >   >
>  >  >>  > The Interfaces SC discussion raised the question about the 
> scope of
>  >  >> PPs
>  >  >>  > set in this manner. Namely; does the Portlet need to keep
>  >  >> specifying the
>  >  >>  > PPs on all subsequent requests or can it depend on the Consumer to
>  >  >>  > resupply those values in the future (i.e. some scope, like
>  >  >> user-session,
>  >  >>  > becomes mandated).
>  >  >>  >
>  >  >>  > I think we should be careful to leave scoping questions up to the
>  >  >>  > Consumer, but if PPs are to function as a coordination model,
>  > then we
>  >  >>  > also have to discourage Portlets from setting all PPs on every
>  > URL. A
>  >  >>  > model where Portlets are encouraged to store current PP values
>  >  >>  > (preferably in navState) for use as default values should the
>  > Consumer
>  >  >>  > not supply a value on a subsequent invocation and only do PP 
> setting
>  >  >>  > when a value needs to change accomplishes this. It removes
>  > setting the
>  >  >>  > value each time such that coordination happens in a more 
> reasonable
>  >  >>  > manner while also providing for reasonable user experience, even
>  > when
>  >  >>  > the Consumer does not support and PP scope beyond the user
>  >  >> interaction.
>  >  >>  >
>  >  >>  > Note: We could consider a model where Portlets MUST encode all
>  > PPs on
>  >  >>  > all URLs such that this supplies the scope, rather than the 
> Consumer
>  >  >>  > determining the scope, but that this fails as the Portlet 
> might not
>  >  >> have
>  >  >>  > access to all PPs (security and privacy reasons).
>  >  >>  >
>  >  >>  > Rich
>  >  >>  >
>  >  >>  > *Rich Thompson/Watson/IBM@IBMUS*
>  >  >>  >
>  >  >>  > 07/07/05 11:54 AM
>  >  >>  >
>  >  >>  >                   > To
>  >  >>  >                  wsrp-interfaces@lists.oasis-open.org
>  >  >>  > cc
>  >  >>  >                   > Subject
>  >  >>  >                  [wsrp-interfaces] Fw: [wsrp] Additional use cases
>  >  >> for issue #44 (set
>  >  >>  > new public params)
>  >  >>  >
>  >  >>  >
>  >  >>  >   >
>  >  >>  >
>  >  >>  >                     >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  > Reposting, as requested ...
>  >  >>  > ----- Forwarded by Rich Thompson/Watson/IBM on 07/07/05 11:52 AM
>  > -----
>  >  >>  >
>  >  >>  >                    *Rich Thompson/Watson/IBM@IBMUS*
>  >  >>  >
>  >  >>  > 06/15/05 09:24 AM
>  >  >>  >
>  >  >>  >                         >       To:        WSRP TC
>  >  >> <wsrp@lists.oasis-open.org>
>  >  >>  >       cc:         >       Subject:        Re: [wsrp] 
> Additional use
>  >  >> cases for issue #44 (set
>  >  >>  > new public params)
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  > I had taken a to-do from the Interfaces SC to develop (in
>  > conjunction
>  >  >>  > with Stefan, Richard and Mike) a proposal for this portion of 
> Issue
>  >  >> #44.
>  >  >>  > Here is that proposal: *_
>  >  >>  >
>  >  >>  > Philosophy:_* Since Public Parameters (PP) are another aspect of
>  >  >>  > Consumer managed state that is exposed to Portlets (the other two
>  > are
>  >  >>  > modes and windowState), Portlets should be able to request
>  > changes to
>  >  >>  > PPs in much the same way as they do modes and windowStates (on 
> URLs
>  >  >> and
>  >  >>  > in responses from pbia and handleEvents). *_
>  >  >>  >
>  >  >>  > On URLs: (2 issues)_*
>  >  >>  > 1. Need to encode 3 pieces of information (request to set a 
> PP, the
>  >  >>  > PPname and the PPvalue) into 2 places (name=value) when using a
>  >  >>  > querystring and deal with the reduced set of characters allowed
>  > in the
>  >  >>  > path portion ('=' is not allowed). Templates also introduce an 
> issue
>  >  >>  > with how to encode multiple PPs ... preferably with the Template
>  > only
>  >  >>  > having a single placeholder.
>  >  >>  > -Proposal:
>  >  >>  > 1. All public parameters specified on a URL are concatenated 
> in the
>  >  >> form
>  >  >>  > of "PPname1=PPvalue1&PPname2=PPvalue2".
>  >  >>  > 2. The resulting string is URL encoded (changes '=' into %3D 
> and '&'
>  >  >>  > into %26) to make it valid in both the querystring and path
>  >  >> portions of
>  >  >>  > a URL.
>  >  >>  > 3. This URL encoded string becomes the value for the
>  >  >>  > wsrp-publicParameter URL parameter, regardless of whether template
>  >  >>  > processing or Consumer URL rewriting is in use.
>  >  >>  >
>  >  >>  > 2. How to encode complex PPvalues? I suggest serializing the
>  >  >> PPvalue to
>  >  >>  > XML and URL encoding this XML. The Consumer would then receive
>  > the PP,
>  >  >>  > recognize it is of a complex type (based on PPname) and decode the
>  >  >>  > PPvalue to get the XML. *_
>  >  >>  >
>  >  >>  > On Operation responses:_*
>  >  >>  > 1. Return PP requests via a field much as newMode and 
> newWindowState
>  >  >>  > request updates to those aspects of Consumer managed state. 
> Suggest
>  >  >> this
>  >  >>  > field be of type QNamedStringArray, though it could be an array of
>  >  >>  > NamedString if we do not want to introduce a usage of a type from
>  > the
>  >  >>  > 'extra' namespace.
>  >  >>  >
>  >  >>  > Rich
>  >  >>  >
>  >  >>  > *Michael Freedman <michael.freedman@oracle.com>*
>  >  >>  >
>  >  >>  > 05/24/05 07:55 PM
>  >  >>  >
>  >  >>  >                   >
>  >  >>  >
>  >  >>  > To
>  >  >>  >                  WSRP TC <wsrp@lists.oasis-open.org>
>  >  >>  > cc
>  >  >>  >                   > Subject
>  >  >>  >                  Re: [wsrp] Additional use cases for issue #44 
> (set
>  >  >> new public params)
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >                     >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  >  >>  > I too am interested in hearing people's current opinions.  Our 
> early
>  >  >>  > coordination discussions considered this carefully.  It was
>  > decided at
>  >  >>  > that time to not support two coordination models that delivered
>  >  >>  > equivalent function.  Though I pushed strongly for such a 
> parameter
>  >  >>  > style mechanism, the subcomittee preferred Events because it not
>  > only
>  >  >>  > allowed state to be transferred but also actions.  The current
>  > public
>  >  >>  > parameter model was introduced by me later and was crafted
>  >  >> specifically
>  >  >>  > to not step on the the toes of Events.   >
>  >  >>  > To extend this conversation I would like to pose:
>  >  >>  > 1.        We consider whether publicParameters should be QNames so
>  >  >> they
>  >  >>  > can be shared/reused across producers.  Note: this is likely 
> needed
>  >  >>  > whether we stick with events or add the ability to encode a public
>  >  >>  > parameter directly in the URL.
>  >  >>  > 2.        We consider adding a new "defined event" called
>  >  >>  > publicParameterValueChanged.  The payload of this event would 
> be the
>  >  >>  > QName of the parameter and an Object any holding the parmeter 
> value
>  >  >>  > [though it might be nice to support our Any/String optional pair
>  > style
>  >  >>  > here].
>  >  >>  > 3.        We consider defining the meaning of publicParameter 
> whose
>  >  >>  > capability contains the value "required" as meaning that normal
>  >  >> usage of
>  >  >>  > this portlet requires the consumer to provide this value.  The
>  > portlet
>  >  >>  > would still have to deal with situations in which this wasn't
>  > provided
>  >  >>  > but likely an end-user would consider this usage
>  > crufty/abnormal.  For
>  >  >>  > example if a portlet required a CustID parameter and didn't 
> receive
>  >  >> one
>  >  >>  > it could display a view that asks for a custID.  The key here by
>  >  >> saying
>  >  >>  > "required" [we can choose a different capability name] the 
> consumer
>  >  >> can
>  >  >>  > distinguish between those public parameters that have a secondary
>  >  >> impact
>  >  >>  > on the portlet [optional] and those that have a primary or 
> important
>  >  >>  > impact [required].
>  >  >>  > -Mike-
>  >  >>  >
>  >  >>  > Stefan Hepper wrote:
>  >  >>  > Hi,
>  >  >>  > I've some use cases that may be a good match for the ability 
> to set
>  >  >> new
>  >  >>  > public parameters by the producer and to encode public 
> parameters in
>  >  >>  > URls by the producer.
>  >  >>  >
>  >  >>  > 1. displaying content based on a specific product id:
>  >  >>  > - Portlet A allows to select a product from a list
>  >  >>  > - User clicks on a specific product
>  >  >>  > - Portlet B renders details of this product
>  >  >>  > - Portlet C renders currently available number of items on 
> stock for
>  >  >>  > this product
>  >  >>  > - user wants to bookmark this result in order to come back to
>  > product
>  >  >>  > tomorrow
>  >  >>  >
>  >  >>  > implementation with events:
>  >  >>  > Portlet A encodes the customer selection URLs as POST action links
>  >  >>  > Portlet A receives a performBlockingInteraction call
>  >  >>  > Portlet A returns event productID=10
>  >  >>  > Portlet B receive a blocking handleEvents call for 
> productID=10 and
>  >  >>  > returns new navigational state
>  >  >>  > Portlet C receive a blocking handleEvents call for 
> productID=10 and
>  >  >>  > returns new navigational state
>  >  >>  >
>  >  >>  > implementation with public params:
>  >  >>  > Portlet A encodes the product selection URLs as GET render links
>  > with
>  >  >>  > the productID as public param
>  >  >>  > Portlet A receives a render call with the public param 
> productID=10
>  >  >>  > Portlet B receives a render call with the public param 
> productID=10
>  >  >>  > Portlet C receives a render call with the public param 
> productID=10
>  >  >>  >
>  >  >>  > which would be much more efficient and also consistent with 
> the W3C
>  >  >>  > architecture as links that do only change view state should be
>  > encoded
>  >  >>  > as GET links.
>  >  >>  >
>  >  >>  >
>  >  >>  > 2. display content based on a specific customer id
>  >  >>  >
>  >  >>  > 3. display content based on the selected state of a map
>  >  >>  > portlet A displays a map of USA
>  >  >>  > portlet B displays information on the selected state (# people
>  >  >>  > registered, capital, ...)
>  >  >>  > portlet C displays all IBM labs in that state
>  >  >>  >
>  >  >>  > and many more.
>  >  >>  >
>  >  >>  >
>  >  >>  > This would allow to have some gobal navigational state that can
>  > be set
>  >  >>  > via URLs by portlets. Also portlets may want to set new public
>  >  >> params as
>  >  >>  > a result of an blocking interaction or a handle event call.
>  >  >>  >
>  >  >>  >
>  >  >>  > What do you think?
>  >  >>  >
>  >  >>  >
>  >  >>  > Stefan
>  >  >>  >
>  >  >>  >
>  >  >>  >
>  > ---------------------------------------------------------------------
>  >  >>  > 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
>  >  >>  >
>  >  >>
>  >  >>
>  >  >
>  >  >
>  >
>  >
> 
> 



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