RE: [wsrp-interfaces] Questions regarding getPortletDescription()

From
Rich Thompson <>
Date
2004-06-04T14:49:06+00:00
ID
Thread
RE: [wsrp-interfaces] Questions regarding getPortletDescription()
This is a much narrower question, but
definitely worthy of addressing as we approach v2. Any volunteers to draft
a Feature Proposal for retrieving a single, but full portlet description
(i.e. independent of UserContext)?

Rich 

"Coco, Christopher"
<> 

06/03/2004 08:44 PM

To

"Michael Freedman"
<>, <>

cc

Subject

RE: [wsrp-interfaces] Questions
regarding getPortletDescription()

I wondered the same, but
it was agreed some time ago that a null userContextKey was

meant to be a guest user
and the Producer would respond as such.

 

Christopher

-----Original Message-----

From: Michael Freedman [mailto:]

Sent: Thursday, June 03, 2004 5:35 PM

To: 

Subject: Re: [wsrp-interfaces] Questions regarding getPortletDescription()

I forget, can  the consumer pass a null userContext
to getPortletDescription to "guarantee" the same semantic as
calling getServiceDescription?  If a userContext must be passed we
may have just invented a difference in the meaning of passing a null userContextKey
vs wsrp:minimal.

     -Mike-

Coco, Christopher wrote:

Like Subbu said, right now
if a Consumer wants to reread the portlet description

for a POP, they have to
get the entire ServiceDescription and search for the POP's

portlet description. While
it seems nice to say that we expect the Consumer to

cache the ServiceDescription
and thus not request it very often, the use cases

we are talking about are
not when the Consumer just wants the ServiceDescription

for the sake of getting
the ServiceDescription. There are more times when the 

Consumer wants to update
only some subset of POPs metadata, and because of the 

issues Scott has raised
(the getPortletDescription() is sensitive to the UserContext), 

if the Consumer wants the
"full" POP description it must request the entire 

ServiceDescription again
as this is assured to have the "full" POP description. 

 

Getting the "full"
POP description from the ServiceDescription seems to be inefficient 

and it would be better if
the Consumer could request the "full" POP description by 

using the getPortletDescription()
call (i.e. irrespective of a user).

 

Christopher

-----Original Message-----

From: Michael Freedman [mailto:]

Sent: Thursday, June 03, 2004 4:07 PM

To: 

Subject: Re: [wsrp-interfaces] Questions regarding getPortletDescription()

First off on the question of  "This makes me
wonder if I should completely ignore what’s found in the ServiceDescription
to avoid using incorrect information."  I would advise the opposite.
 getServiceDescription() defines the complete function of a portlet.
 If you are choosing to pass the additional context information to
getPortletDescription() then you are in effect checking with the producer
what subset of this complete function this particular context can use.
 Because all producers must be defensive an assume they will be called
to do things in inappropriate contexts a consumer can safely try any operation
directly [without checking first] and then deal with the resulting fault/denial.
 And given getPortletDescription is an extra roundtrip in general
its more advisable to not call it and just try the operation.  That
being said there may be some circumstances in some consumers where its
considered important to prevent the user from invoking function that isn't
available -- for example one might want to restrict the view of a toolbox
of portlets that can be added to a "page" to only those portlets
this user can access/see.  This feature allows us to meet this type
of [hopefully limited] use case.

As for the comments about cumbersome, can you describe the use cases that
are making this cumbersome?  I recall we expected the consumer would
[generally] be caching this information hence getServiceDescription would
not be called very often.  

     -Mike-

Coco, Christopher wrote:

I agree that this process is cumbersome and not necessarily
desirable.

Christopher

-----Original Message-----

From: Subbu Allamaraju [mailto:]

Sent: Thursday, June 03, 2004 2:21 PM

To: 

Subject: Re: [wsrp-interfaces] Questions regarding

getPortletDescription()

This is a good point, and I agree that there is scope for confusion.

On a related note, based on the implementation experience, I wish there

is a getPortletDescription operation on the Service Description 

interface. Right now, if a consumer wants to find out the description of

a POP, it must get the complete service description and look for the 

particular portlet. This is cumbersome for both the consumer and the 

producer. Did we ever discuss this during 1.0?

Regards,

Subbu

Goldstein, Scott wrote:

  

Thanks, again, for the info Rich.

 

It might be worth considering changing the language of the 

getPortletDescription() section to clarify expected behavior.  The

existence of the UserContext parameter together with the statements:

 

“This operation allows a Producer to provide information about the 

Portlets it offers in a contextsensitive

manner.”

 

and

 

“Consumers may choose to alter how they interact with a Portlet based
on 

the metadata

contained in the returned PortletDescriptionResponse.”

 

leads me to believe, as a Consumer developer, that the content returned

from this operation will be different than that in the 

ServiceDescription.  This makes me wonder if I should completely ignore

what’s found in the ServiceDescription to avoid using incorrect information.

 

Scott

 

 

 

------------------------------------------------------------------------

*From:* Rich Thompson [mailto:]

*Sent:* Thursday, June 03, 2004 3:26 AM

*To:* 

*Subject:* RE: [wsrp-interfaces] Questions regarding getPortletDescription()

 

Agreed.

Rich

*"Coco, Christopher" <>*

06/02/2004 08:10 PM

                

To

                

"Goldstein, Scott" <>,
Rich 

Thompson/Watson/IBM@IBMUS, <>

cc

                

 

Subject

                

RE: [wsrp-interfaces] Questions regarding getPortletDescription()

 

 

                

 

 From my understanding, as long as the call is for a POP as CCPs aren't

listed in the ServiceDescription.

 

Christopher

-----Original Message-----*

From:* Goldstein, Scott *

Sent:* Wednesday, June 02, 2004 5:08 PM*

To:* Rich Thompson; *

Subject:* RE: [wsrp-interfaces] Questions regarding getPortletDescription()

Thanks for the info, Rich.

 

So, just to be completely clear, in the case that the metadata is not 

updated in any fashion by the producer, if I were to call 

getPortletDescription() with a UserContext containing all of the 

Producers’ user categories, I would be guaranteed to receive the same

structure as if I had called getServiceDescription().  Correct?

 

Scott

 

 

 

------------------------------------------------------------------------

*From:* Rich Thompson [mailto:]
*

Sent:* Wednesday, June 02, 2004 8:57 AM*

To:* *

Subject:* Re: [wsrp-interfaces] Questions regarding getPortletDescription()

 

Thanks for your persistence ... sometimes as we get busy we hope that 

others will supply the answers :}

The data in GetPortletDescriptionResponse is the same that is included

in the array returned by getServiceDescription() with a few caveats. The

data is allowed to change (portlet data updated, user access rights, 

etc) and most Producers will only return data from 

getServiceDescription() for their POPs while getPortletDescription() can

be invoked against any portletHandle.

Rich

*"Goldstein, Scott" <>*

06/02/2004 11:31 AM

                

 

To

                

<>

cc

                

 

Subject

                

[wsrp-interfaces] Questions regarding getPortletDescription()

 

 

 

                

 

I haven’t received a reply to my message I sent out last week, so I 

thought I would try to resend it.  If you have any answers to the

questions below, please reply.  Thanks.

 

 

 

I have the following questions regarding the getPortletDescription() 

operation:

 

1.        How does the data returned in the PortletDescriptionResponse

relate to the portlet description contained within the 

ServiceDescription?  Must they be identical?  Or, can the producer

change the data based on the user context.  For instance, could the

producer not specify a particular supported mode if the user is not an

admin?

2.        If the answer to #1 is that they can be different,
then is 

there a way to ensure, when calling this method, that the 

PortletDescription returned would be equal to that in the 

ServiceDescription?  Perhaps by sending all of the possible User 

Categories?

3.        If the answer to #1 is that they must be
the same, then is the 

only use of the UserContext attribute to allow the producer to throw an

AccessDenied Fault?  Will passing all user categories avoid this?

 

Essentially, I’m trying to understand the intended use of 

getPortletDescription() and if it can be used as an optimization to 

update portlet meta data without having to retrieve the full service 

description.

 

Thanks for the information.

 

Scott