Re: [wsrp] Extension Proposals for F2F

From
Rich Thompson <>
Date
2008-03-07T14:07:30+00:00
ID
Thread
Re: [wsrp] Extension Proposals for F2F
Could you prepare both a 1 slide summary
(for use in the overview/prioritization discussion) and a discussion-oriented
slide set for each proposal?

To make sure I have a basic understanding:

1. We have had quite a bit of discussion
in the past, effort is to press toward completion

2. Goal is a Consumer moving from using
a test Producer to using the equivalent Production Producer. WSRP v2 now
supports moving the customized portlets, but if there were customized registration
properties, there is no in-protocol means for moving these.

3. How to use XHR with the WSRP protocol
has been an interesting discussion in the past. Lets make sure we fully
develop what can be done with the current protocol (i.e. primer section)
before we launch too far into extension ideas. Also, I will try and bring
a summary of what is happening in the OpenAjax discussions so that our
discussions can hopefully move toward leveraging their efforts as well.

Rich 

From:
Nathan E Lipke <>

To:
wsrp <>

Date:
03/06/08 04:31 PM

Subject:
[wsrp] Extension Proposals for F2F

I would like to discuss the following proposals:

1.        Finish
the Multiphase Render proposal (HEAD section markup)

2.        Export
Registration Properties - Allow a complete propagation of a producer.

Currently it is not possible to recreate a producer's
registration on a different producer

Use case - Propagate a producer from staging to production

Staging Producer Setup

Register with a staging producer, with registration properties

Configure some portlets

Export from Staging

Export the the Registration Properties

Export the configured portlets

Import to Production

Register the producer, using the exported properties

Import the portlets3.
       Make WSRP portlets
more XMLHttpRequest (Ajax) friendly

This is currently more of a discussion point than a set
of specific extensions

We have found issues with the following:

WSRP URLs are not rewritable

resource URLs

resource-id

wsrp-url

both

Perform Blocking Interaction

There is no way to tell the consumer to not send other
markup (other portlets and page markup)

There is no way for the consumer to tell the producer
this is an XHR request

May require different handling by the producer and/or
portlet

There is no way for the producer to determine if multiple
requests are part of a single client-consumer request

What to do when there's IPC - Should other portlets' markup
be processed

Events

Shared Parameters

Use Cases:1.
       Simple Type Ahead
(no portlet state required)

The user starts type and matching words automatically
appear in the text box

E.g. Type "Co" and "Colorado" is entered
for you

The portlet sends a XHR to a resource URL

Via the wsrp-url

A GET parameter is tacked on to the URL

The response is XML or JSON which the client-script process
and places in the text box2.
       Type ahead based
on a portlet's navigational state

Type "Ha" and "Hamburger" appear in
box (based on a previously entered value)

The portlet sends a XHR to a resource URL

 Via resource id 

A Get parameter is tacked on to the URL

The response is XML or JSON which the client-script process
and places in the text box3.
       Wizard Style Forms

The user enters form values and presses "Next",
the next page of the wizard appears

The portlet sends a XHR to a performBlockingInteraction
URL

Parameters may be

GET parameters tacked on the URL

POST parameters in the stream

The portlet saves its navigational state to include the
new parameters and its place in the form

The response is HTML which the client uses DOM manipulation
to update the page 

div.innerHTML = request.responseText

On a page refresh the portlet will return the HTML (via
getMarkup) with user on the same page  and previously submitted values
are accounted for4.    
   Table Manipulation

The user adds rows to a table, the page keeps track of
the: sum, user average and company average

The user enters a number and presses "Add"

The table updates displaying a row for the new number
and updates the sum and averages

A parameter may be

a GET parameter tacked on the URL

a POST parameter in the stream

The portlet saves its navigational state to include the
value

The portlet calculates the sum and averages and returns
their values as JSON or XML

The response is JSON or XML which the client uses DOM
manipulation to update

data = "eval("("" + request.responseText +
")")

sumNode.innerHTML = "<b>" + data.sum + "</b>"

userAvgNode.innerHTML = "<b>" + data.userAvg + "</b>"

companyAvgNode.innerHTML = "<b>" + data.companyAvg + "</b>"

On a page refresh the portlet will return the HTML (via
getMarkup) with the user's data and the current sums and averages

Notice: This email message, together with any attachments, may contain
information of BEA Systems, Inc., its subsidiaries and affiliated entities,
that may be confidential, proprietary, copyrighted and/or legally privileged,
and is intended solely for the use of the individual or entity named in
this message. If you are not the intended recipient, and have received
this message in error, please immediately return this by email and then
delete it.