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] XMLHttpRequest and WSRP 2.0 - where do we stand?


This does not work for "certain" implementations. Implementations will 
have to seriously think about changing the assumption that consumer is 
always *the* aggregator to be able to support modern web development 
techniques.

Subbu

Richard Jacob wrote:
> I think this doesn't work.
> - how would the state of the other portets be encoded in the imbedded
> portetl URLs?
> - how could the other portlets maintain their URLs (containing nav state)
> pointing to the "isolated" portlet?
> 
> The proposal would break a lot of things rather than fixing some use cases.
> We have to keep in mind that there *is* an aggregator which maintains
> states, navigations, etc.
> So if you go for an isolated portlet (is it a portlet then at all ;-) ) you
> could use resource URLs for that.
> 
> 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:richard.jacob@de.ibm.com
> 
> 
>                                                                            
>              Subbu Allamaraju                                              
>              <subbu@bea.com>                                               
>                                                                         To 
>              01/25/06 07:55 PM         OASIS WSRP TC                       
>                                        <wsrp@lists.oasis-open.org>         
>                                                                         cc 
>                                                                            
>                                                                    Subject 
>                                        Re: [wsrp] XMLHttpRequest and WSRP  
>                                        2.0 - where do we stand?            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> I'll be happy to discuss this further within the TC, but I don't think
> the proposal to add a param is partial. There are some details to be
> clarified in the spec on the semantics and update any implicit
> assumptions about aggregation. I will look into this further this week,
> and post to the TC.
> 
> I propose to discuss this during the next interfaces call.
> 
> Subbu
> 
> Rich Thompson wrote:
>> What would be gained by such a partial solution that the portlet
>> couldn't simply manage itself (perhaps with Producer assistance) by
>> using resource URLs and a queue of pending updates within a session?
>>
>> If the long-term solution is clear (i.e. just needs the details worked
>> out) and the partial solution brings a high value, then I could see
>> including the partial solution in v2. Otherwise I would favor leaving
>> the discussion to v3.
>>
>> Of course, another option would be to delay v2 until a relatively
>> complete solution is designed ...
>>
>> Rich
>>
>>
>> *Subbu Allamaraju <subbu@bea.com>*
>>
>> 01/25/06 12:09 PM
>>
>>
>> To
>>            OASIS WSRP TC <wsrp@lists.oasis-open.org>
>> cc
>>
>> Subject
>>            Re: [wsrp] XMLHttpRequest and WSRP 2.0 - where do we stand?
>>
>>
>>
>>
>>
>>
>>
>>
>> Thanks for your comments.
>>
>> As some of you might have noticed, there is a LOT of interest in the web
>> developer community in leveraging Ajax-style technologies. The key issue
>> with WSRP (and also the Portlet API in the Java-land) is that the
>> protocol prevents use of Ajax-style technologies in portlets. A few
>> people in the community have tried using XMLHttpRequest with WSRP and
>> the Portlet API, but could not make much progress.
>>
>> Taking one step at a time, the first and the key issue is guaranteeing
>> that a given render/action/resource URL would cause a consumer-driven
>> invocation and rendering of a single portlet.
>>
>> Here is a proposal. A new URL parameter, let us call it
>> "wsrp-aggregate", with a value of "false", would let portlets create
>> URLs that are guaranteed to cause a single portlet invocation.
>>
>> For example, to create an interaction URL to post some data via
>> XMLHttpRequest, a portlet would create a URL with wsrp-aggregate=false.
>>
>> The consumer will then invoke the phases of the portlet's lifecycle
>> (pbia, he, and getMarkup). Depending on how the consumer implements
>> support for events, it would either process events for all portlets on
>> the page, or store the events for later processing, or simply discard
>> events targeted for other portlets. Note that the current event model
>> makes no assumptions about page aggregation.
>>
>> IMO, other problems (see comments below) related to supporting
>> Ajax-style interactions are implementation specific. The key issue for
>> WSRP is to support such interactions within the protocol. Given the
>> popularity and interest in using Ajax in web apps, we should consider
>> taking the first steps towards supporting such interactions in V2, and
>> continue further work in V3 based on implementation experience.
>>
>> Regards,
>> Subbu
>>
>>
>> Rich Thompson wrote:
>>  >
>>  > While I would agree that supporting portlets which use AJAX-style
>>  > communications is an important use case, I think a full discussion of
>>  > the issues will not happen quickly. Some of the issues I see are:
>>  >
>>  > 1. While data oriented communications are reasonably supported via
>>  > resource URLs, interactions that impact portlet state cause problems,
>>  > such as:
>>  >  - inability to clone the portlet if enduring state changes
>>  >  - inability to communicate an updated navState back to the Consumer
>>  > (consider what happens if the page updates due to a user interaction
>>  > with a non-AJAX enabled portlet)
>>  >  - inability to leverage the new shared state models
>>
>> Right, and that was my motivation for bringing up this topic. Some of
>> the problems like page refresh and back buttons are fundamental to Ajax
>> style of interactions. As you may be aware, W3C Web API WG is looking
>> into these.
>>
>>  > 2. Portlet state cached in the browser. Key point here is that the
>>  > browser becomes part of the overall processing done by the portlet.
> Any
>>  > state held within the browser can easily be lost; consider, for
> example,
>>  > the impacts of a page refresh
>>
>> Right. The consumer will have to be smart enough to manage state such
>> that it is not lost due to a simple page refresh. A hard problem for the
>> consumer to solve, but not impossible. Given the strong interest in Ajax
>> among web developers, consumers will have to start considering these
>> problems.
>>
>>  > 3. Insufficient browser security model. This is already an issue with
>>  > composed pages (i.e. malicious portlet can activate an action link
> from
>>  > a different portlet) though the user would get a reasonable
> notification
>>  > by the page refreshing. If such a malicious portlet could also
> suppress
>>  > the notification to the user, this problem becomes severe.
>>
>> I don't know Ajax-style interactions open new security issues. I think
>> the security issues are more fundamental.
>>
>>  > 4. Coordination impacts. In order to preserve the concept of the page
>>  > reacting as a whole to user interactions, AJAX-style actions really
>>  > should use the full 3-steps of the protocol with the modification that
>>  > only the impacted portlets are rerendered. I think this drives the
> model
>>  > toward Consumer-control over such partial updates rather than asking
> the
>>  > sourcing portlet to update multiple places on the page.
>>
>> I agree. Consumers wanting to fully support such interactions will have
>> to find better ways to implement event coordination. Consumers can no
>> longer assume that all portlets participating in an event train are
>> being rendered in an aggregated page. Similar issues arise if a consumer
>> is implemented using iframes.
>>
>>  > #4 makes me think this ought to leverage the Consumer resource model,
>>  > which has been deferred to v3. If others agree, perhaps this can be
> the
>>  > early focus in the v3 discussions with the new ExtensionDescription
>>  > mechanism leveraged to apply whatever is defined back into v2.
>>  >
>>  > Rich
>>  >
>>  >
>>  > *Subbu Allamaraju <subbu@bea.com>*
>>  >
>>  > 01/24/06 12:58 PM
>>  >
>>  >
>>  > To
>>  >                  OASIS WSRP TC <wsrp@lists.oasis-open.org>
>>  > cc
>>  >
>>  > Subject
>>  >                  [wsrp] XMLHttpRequest and WSRP 2.0 - where we stand?
>>  >
>>  >
>>  >
>>  >
>>  >
>>  >
>>  >
>>  >
>>  > I have been investigating various use cases that developers are trying
>>  > to solve by using XMLHttpRequest in their applications, and how WSRP
>>  > stacks up against those use cases. I do find some limitations in the
>>  > protocol that make it hard to solve some use cases. I would like to
> find
>>  > out what people think.
>>  >
>>  > Most of the use cases that rely on XMLHttpRequest can be grouped into
>>  > two categories:
>>  >
>>  > a. Downloading data/markup: An example is auto-filling forms based on
>>  > what the user entered previously. This is similar to google-suggest.
>>  >
>>  > b. Submitting data: An example is a user login. Upon login, the
> browser
>>  > replaces the login form with another markup fragment. Netflix's movie
>>  > rating is another example.
>>  >
>>  > The first use case is idempotent, and URLs to download data/markup can
>>  > be created as resource URLs. Now that WSRP 2.0 provides the portlet's
>>  > context while fetching resources, developers can let portlets return
>>  > xml/markup.
>>  >
>>  > The second use case is typically non-idempotent. Portlets may want to
>>  > change their state while processing data. In some cases, portlets may
> be
>>  > affecting the state of other portlets either via spec-provided
>>  > coordination mechanisms or some producer-managed sharing.
>>  >
>>  > But it turns out that implementing the second use case is very tricky.
>>  > Let me jot down the key steps that a portlet might try:
>>  >
>>  > a. Create an action URL in the markup.
>>  >
>>  > b. Submit data to the this URL
>>  >
>>  > c. Update browser to use/render returned data/markup
>>  >
>>  > But these steps don't play well with WSRP. In most implementations,
> the
>>  > generated action URL points to an aggregated page which causes a pbia,
>>  > zero or more handleEvents, and one or more getMarkup calls.
>>  >
>>  > In the current use case, the portlet needs a URL that is guaranteed to
>>  > cause a pbia for the targeted portlet, and return markup for the same
>>  > portlet. That is, the consumer must not return an aggregated page for
>>  > this to work.
>>  >
>>  > The difficulty is that the protocol does not provide a way to create
>>  > such an interaction URL. The nature of the URL is completely up to
>>  > implementations. Implementations cannot solve it either since portlets
>>  > may be creating normal interaction URLs and these special portlet-only
>>  > URLs in the same markup fragment and producers/consumers can't
>>  > distinguish between these two.
>>  >
>>  > Currently, developers can work-around this use case only via resource
>>  > URLs. But resource URLs don't permit state changes, and so limit the
>>  > ability of portlets to handle the use case completely.
>>  >
>>  > I'm seeking comments from this group on how important these use cases
>>  > are for your implementations, and have any thoughts on supporting
> these
>>  > use cases.
>>  >
>>  > Regards,
>>  > 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
> 
> 
> 



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