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] Clearification: Resource URLs and markup params, etc.



We should be careful to do a full look at this question as well as the deeper dives into particular sub-questions.

As to modes & windowstates, the spec is relatively clear as to what these are. Section 6.9 has the following relative to modes (6.10 has the equivalent for windowStates):
"They are referred to as modes and should be thought of as how the Consumer is managing the interaction with the End-User. Portlets may request mode changes either through parameters on a link that an End-User activates or by returning a newMode in a BlockingInteractionResponse. The Consumer MUST respect requests to change the mode outside of exceptional circumstances (e.g. access control restrictions), but the Portlet must not depend on such a request being respected.

During getMarkup, handleEvents and performBlockingInteraction invocations the Consumer indicates to the Portlet its current mode via the MarkupParams data structure"

I read this as stating that mode refers to how the Consumer is presenting the Portlet's markup to the End-User. The Portlet has two opportunities to request changes with the Consumer encouraged to respect such requests whenever it can. However, in all cases the value sent in the MarkupParams data structure MUST be the one the Consumer is actually using.


As to Title (i.e. the preferredTitle field), the key for me is that only the Consumer knows how this is being used (if it is used at all) and, from a WSRP protocol point of view, the Consumer is not involved in any client-side processing as a result of resource url activation. As a result, no matter how the title is used, the Consumer can not update its representation of the title's value. However, we place no requirement on the Consumer to use this value and therefore do not need to make any special comments relative to returning it in a response from getResource.

As to session, I agree that getMarkup already introduces the problem of a late notification that a new session now exists. What would people think about adding text to 6.1.13 (MarkupResponse definition) describing how a stateless Consumer would need to write any new session information to a cookie since it is likely too late to place that information onto all URLs within the page (I suppose the other option is to require Consumer URL rewriting and delay all rewriting until responses have been received from all Portlets ... I would not favor describing this option in the spec)?

Just to not loose potential spec changes suggested so far (does this list miss any??):
  1. Clarify difference in the semantics of getMarkup and getResource: Consumer request related to page aggregation vs client request related to need for additional information.
  2. Add sentence(s) to MarkupResponse.sessionContext (6.1.13) describing how a stateless Consumer can handle such late knowledge of a new Portlet session.
  3. 6.9/6.10 should note that HandleEventsResponse can also return newMode and newWindowState (see above quote from 6.9).


Rich


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

02/21/06 06:04 AM

To
Subbu Allamaraju <subbu@bea.com>
cc
WSRP TC <wsrp@lists.oasis-open.org>
Subject
Re: [wsrp] Clearification: Resource URLs and markup params, etc.





Subbu Allamaraju <subbu@bea.com> wrote on 02/21/2006 05:50:37 AM:

> >       - wsrp-mode and wsrp-windowState portlet url parameters. I would
> > note the descriptions of these explicitly state that they apply to
> > render and blockingAction urlTypes. I think maintaining the integrity
of
> > the aggregated page requires that these not be supported on resource
> > URLs, unless someone can point out how a Consumer's decorations could
be
> > changed or how it would actually place a Portlet into maximize
> > windowState as a result of a resource URL activation.
>
> My interpretation is that, these parameters apply to the portlet
> processing the request, and not necessarily to the consumer applying
> decorations to the markup returned. When a URL contains a parameter with
> a specific window state, the consumer is merely asking the producer to
> generate markup or resource reflecting that window state. I don't see a
> requirement in the spec to change the window state or mode of the
> portlet, although that's what typical portal-consumers may do.
>
huh?
We explicitly say that an URL invocation of a render/pbia URL includes the
request to change the mode/window state.
Therefor I would say the contrary: Consumers should honor this (or be
strongly advised to do so) otherwise
the user experience will suffer. It seems strange for me to ignore the
request. I mean we're trying to define a common aggregated UI behavior and
this certainly contradicts it.

> >        - title: This is another case of the Portlet having opportunity
> > to impact the Consumer generated portion of the page during page
> > aggregation and therefore doesn't apply to resource url processing
>
> I think, this interpretation is specific to what the consumer is doing
> with the markup or resource. If the consumer is aggregating the response
> into a page that has windows-like titlebars, it might use the title in
> the manner you suggest. Other usages of this field are possible. For
> example, a special purpose consumer may be displaying resources in popup
> browser windows, and use the title in the browser title bar.
>
> >        - sessionID: I am willing to debate this one as I can see a
> > number of good use cases for the Portlet returning a new session, but
> > how a stateless Consumer could handle it is important.
>
> I agree that the stateless consumer use cases break down with sessionID
> returned from getMarkup or getResource. As Mike points out, we have this
> problem with getMarkup itself.
>
> > In summary, perhaps we need to more explicitly state the semantic
> > difference between these operations. Do people generally agree with the

> > semantics I have described above? Do people have other proposals which
> > keep the stateless Consumer supported? Are people willing to throw out
> > the stateless Consumer design point statements?
>
> Is it impossible to keep the consumer stateless? Perhaps not. To be
> truely stateless, consumer can't just push various pieces of state into
> the markup when the page is getting generated on the server side and
> expect the state to ramain constant.
I think currently they can because the render result is a result of the
Consumer processing. Therefor the Consumer has the control.

> IMO, consumers will have to rely on
> browser side gimmicks to support state updates that happen after the
> page aggregation started (with getMarkup), or even much later (with
> getResource).
Well, things brings us again to AJAX style.
But this breaks the "rule" that the Cosumer is in control and that the page
state is opaque/mainted by the consumer.
Now you seem to imply that portlets/resources can manipulate the overall
page state. I think this isn't true with what WSRP defines today and to
enable that we would need to drop some level of opaqueness of the overall
state.

>
> Subbu
>
> >
> > Rich
> >
> >
> > *Subbu Allamaraju <subbu@bea.com>*
> >
> > 02/15/06 11:48 AM
> >
> >
> > To
> >    WSRP TC <wsrp@lists.oasis-open.org>
> > cc
> >
> > Subject
> >    Re: [wsrp] Clearification: Resource URLs and markup params, etc.
> >
> >
> >
> >
> >
> >
> >
> >
> > The issue of a producer returning two sessionIDs in parallel requests
is
> > possible, and I don't know if the spec can help either the consumer or
> > the producer.
> >
> > One way of avoiding returning new sessionIDs is to somehow tie
> > initCookie with sessionIDs, and raise InvalidCookie fault when there is
> > a need to return new sessionID. It is possible to design a producer to
> > tie init cookies to sessions, and never return sessionIDs.
> >
> > We have had a number of discussions on this topic in the past, and the
> > solutions are not always pretty.
> >
> > Subbu
> >
> > Stefan Hepper wrote:
> >  >
> >  > Subbu Allamaraju wrote:
> >  >> On the question of modes and states, I don't see why a portlet
should
> >  >> not specify mode and window state params on a resource URL. The
> >  >> resource generated may depend on the window state and mode.
> >  >>
> >  >> The real question is whether the mode and window state specified in
a
> >  >> resource URL applies to  subsequent getMarkup/pbia/he calls or not.
> >  >> The spec leaves this open. It also leaves the same question open
for
> >  >> normal action and render URLs.
> >  >>
> >  >
> >  > right, I think that needs to be clearified.
> >  >
> >  >> On your point on session, the question is not whether a portlet can
> >  >> return a new sessionID or not, but how it relates to the sessionID
> >  >> returned via a getMarkup/pbia/he. If a producer chooses to return a
> >  >> new sessionID, I would expect the consumer to use that in
subsequent
> >  >> calls. This is because, from the consumer's point, getResource is
just
> >  >> another request for a portlet.
> >  >>
> >  >> I can see at least one use case for returning a new sessionID. That
is
> >  >> when a portlet is generating the resource, e.g. to generate some
> >  >> response for an Ajax request. It should be able to create new
session
> >  >> either when there is no session currently, or when the current
session
> >  >> expired.
> >  >>
> >  >
> >  > what happens if you make a parallel render call in that case?
Shouldn't
> >  > the spec that in that case that the session id returned by both
calls
> >  > must be the same (like in the JSR 168 case where different portlets
of
> >  > the same web app can create a new session in parallel at render
time)?
> >  >
> >  >> On the question of title, my interpretation is that the title
returned
> >  >> via any operation applies to the current markup returned, and it is
up
> >  >> to the consumer to treat it as a new title replacing the current
one,
> >  >> or use it just for that rendition of the markup/resource. So, I
don't
> >  >> an issue.
> >  >>
> >  >
> >  > Still sounds confusing to me that the spec states for title:
> >  > " The title the Portlet would prefer to be used in any decoration of
the
> >  > markup."
> >  > what are decorations for resources?
> >  >
> >  > Stefan
> >  >
> >  >> Subbu
> >  >>
> >  >> Stefan Hepper wrote:
> >  >>> Subbu Allamaraju wrote:
> >  >>>> Stefan Hepper wrote:
> >  >>>>> I've some questions regarding the resource URLs. From the
current
> >  >>>>> version of the spec it is not clear to me how getResource and
> >  >>>>> getMarkup relate to each other.
> >  >>>>> - What happens if I specific new nav params, new portlet mode /
> >  >>>>> window state on the resource URL? Will they be valid for the
next
> >  >>>>> getMarkup call?
> >  >>>>
> >  >>>> Should they be? I think the semantics are the same as that of a
> >  >>>> render URL.
> >  >>>
> >  >>> Depends if we say that getResource and getMarkup are related or
not.
> >  >>> I think they they should be related and that there should be only
one
> >  >>> set of portlet mode, window state, nav params, per POP. I also
think
> >  >>> that we should not allow a resource URL to change this state, that
> >  >>> doesn't make sense to me.
> >  >>>
> >  >>>>
> >  >>>>> - What are the semantics for portlet mode and window state when
> >  >>>>> rendering a resource? What portlet mode and window state will
the
> >  >>>>> portlet receive if nothing is specified?
> >  >>>>
> >  >>>> I would assume that this is up to the resource handler or the
> >  >>>> producer or portlet.
> >  >>>>
> >  >>>
> >  >>> You mean that the result may be different per mode or window
state? I
> >  >>> can see use cases for this, but think that the spec should state
that
> >  >>> the getResource calls gets the current portlet mode and window
state.
> >  >>>
> >  >>>>> - Can you specify navigational state on a resource URL? (yes I
> >  >>>>> assume based on the current spec)
> >  >>>>
> >  >>>> Yes
> >  >>>>
> >  >>>>> - Why can the getResource call create a new session?
> >  >>>>
> >  >>>> It might, if the consumer does not include the current sessionID.
> >  >>>>
> >  >>>
> >  >>> Why would a getResource call need to create a session? What would
be
> >  >>> the use case?
> >  >>>
> >  >>>> Could you elaborate on why you think getResource and getMarkup
are
> >  >>>> not related. As far as the context provided by the consumer is
> >  >>>> concerned, they are similar. The only difference is on the
semantics
> >  >>>> of the response.
> >  >>>>
> >  >>>
> >  >>> When reading the spec again I could not find a sentence saying
that
> >  >>> they are related. I think this needs to be clarified.
> >  >>>
> >  >>> Another thing I noted is that the getResource operation is allowed
to
> >  >>> change the portlet title. I think that does not really make sense.
> >  >>> What is the use case for allowing to change the title in
getResource?
> >  >>>
> >  >>> Stefan
> >  >>>
> >  >>>> Subbu
> >  >>>>
> >  >>>>
> >  >>>
> >  >>>
> >  >>>
> >  >>>
---------------------------------------------------------------------
> >  >>> 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
> >
> >
> > ---------------------------------------------------------------------
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




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