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 (setnew public params)
- From: Rich Thompson <richt2@us.ibm.com>
- To: wsrp-interfaces@lists.oasis-open.org
- Date: Fri, 22 Jul 2005 09:47:54 -0400
in-line
Rich
"Mike Caffyn"
<mike@netunitysoftware.com>
07/22/05 09:38 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) |
|
Would this mean that a _wsrp_rewrite and
rewrite template contains something like wsrp-parameters=(encoded name=value&name=value...)
where the parameters specified would set some consumer held parameter state
and then forwarded on to the appropriate portlets.
Rich -> yes
If the render URL is used and they are shared
parameters wouldn't the consumer have to be careful in calling portlets,
since it may effect other portlets interested in the parameter value. i.e.
order and which portlets i.e. to update cache
Rich -> It means that
Consumers have to decode the URL before invoking any portlets so that any
shared PPs can be sent to all interested portlets.
----- Original Message -----
From: Rich
Thompson
To: wsrp-interfaces@lists.oasis-open.org
Sent: Friday, July 22, 2005 8:16 AM
Subject: RE: [wsrp-interfaces] Fw: [wsrp] Additional
use cases for issue #44 (set new public params)
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]