← Prev in month ← Prev in thread

[wsrp][interfaces]: Portal Usage Scenario

From
Michael Freedman <>
Date
2002-04-06T18:58:07+00:00
ID
Thread
[wsrp][interfaces]: Portal Usage Scenario
I have attached a short document describing a portal's possible usage pattern
for portlets using the terms we discussed last week.  Please comment/annotate
with new operations or suggested operations to remove.  Please don't
annotate with questions intended to clarify the behavior of the operation,
send these separately. The goal for this Thursday's meeting is to see if
we can agree on a preliminary usage pattern and collection of operations.
Hopefully we can then move into enumerating the questions we need to answer. 
In our discussion on Thursday, I expect we will need to classify at least
the operational aspects of the usage scenario along two axes:

Axis 1:  Is this a valid Portal operation?

Yes, we all agree this a valid operation

No, we all agree this is not a valid operation

Maybe, there is debate whether this is a valid operation.

Don't know, we need more information and discussion to understand the operation
before classifying it.

Axis 2: Should this operation be covered/enabled by our spec?

Yes, we all agree.

Yes, but it should be addressed in a later revision.

No, we all agree.

Maybe, there is debate whether we should address this.

Don't know, we need more information to decide.

It might be useful if each of you did your own classification (assuming
of course the usage scenario isn't grossly controversial).

    -Mike-

 

 
 

 

During our last conference call we defined some terms representing (potentially
logical) entities the portal communciates to bind and operate on a "producer",
aka a portlet.  This identification was meant to be the first step
in describing how a portal interacts with a portlet.  Though we haven't
reached full closure on the definitions I would like to take a stab at
describing how a portal operates on/with these.  I.e. a portal usage
pattern of a portlet.  The intent is to provide a strawman description
from which discussion can ensue until its refined suitably to satisfy us. 
I have tried to keep the terminolgy abstract as its not my intent to define
the way a mechanism is specifically provided.

 

Terms:

 
portlet service: the web service component that implements
WSRP.  From the portal's perspective this is the registration entity. 
I.e. the entity it binds to in order to expose a specific portlet capability.

portlet template: the design entity representing a (potentially
customized) portlet service used to create portlet instances.  From
the portal's perspective, once its bound to a portlet service, it will
expose a representation of this service, often in a portlet toolbox, which
allows users to create specific instances  (on a page).

portlet instance: a portlet on a page; or more generically a
portlet in the portal layout structure.  From a portal's perspective,
the portlet instance is the  realization of the portlet in the runtime
layout structure.  A portlet instance is derived from a portlet template. 
e.g. when adding a portlet to a page, the  user chooses a portlet
template (from the toolbox).  The template is used to "type" the instance
being created.

personalization data: a set of customized data settings for a
portlet instance. There is an 1 to N relationship between personalization
data and portlet instances.  1 set of personalizations may be shared
between multiple instances.

portlet template settings: a set of customized data settings
for a portlet template.

State 0:  Portlet Service Unknown
The portal has no knowledge that a portlet service exists.

State 1:  Portlet Service becomes known
The binding stage occurs once.  That is once a portlet
service is bound into a portal its is not rebound unless/until it goes
back to "State 0: Portlet Unknown".   It is possible to have
multiple binding to the same portlet service from the same portal. 
Each binding however is seen distinct from the other.

The bind process is begun by making the location of the portlet service
known
to the portal.  Where/how this location is introduced is undefined.
For example, it might be via browsing an UDDI or some other registry, direct
registration via URL, local deployment, etc.

Once knowing the location of the portlet service, the portal can activate
the service, acquire meta information about the service, and ultimately
communicate with it to provide the defined portlet function.  During
the "binding" phase, the portal will acquire the meta information it needs
to properly operate the service in an efficient manner.  During the
"binding" phase, it also registers itself with the portlet service. 
Registration is intended to among other things to allow portlets to :

establish the portal's identity

establish a trusted relationship with the portal (that can be maintained
in all subsequent calls)

initialize/adapt themselves properly to work with this specific portal

complete a subscription process

The end result of this stage is that the portal is set up and ready to
communicate with the portlet service to provide the portlet's function. 
The portlet service is set up and ready to receive communication from this
specific portal and provide the function.  I.e. from the portals perspective
the portlet is active and online.

At this point the portal [may] expose the bound portlet service to (a
subset of) its users by creating an initial portlet template in
its toolbox.

 
State 2: Portlet Service Active
"Active" implies being "online".  That is not only is
the portal ready to operate the portlet service, but the portlet
service is also available to receive these requests.  If at some
point during the portal's operation the portlet service becomes unavailable
or the portal decides to suspend communciation, the portlet is considered
"Inactive" or offline [see State 3].

While a portlet service is active, the portal exposes the full functional
breadth of the portlet.  For purposes of clarity the function description
is segmented to differentiate between the function supported on the portlet
template and the function supported on the portlet instance.

The portal allows one to operate on a portlet template as follows:

You can use a portlet template to create a portlet instance. 
The portlet template defines the initial settings of the portlet
instance.

You can modify the portlet template's settings to change its default/defined
behavior.  Such changes only impact future portlet instances created
from this template.  Prior instances are unaffected.

 You can copy a portlet template.  By copy it is meant
that a second portlet template comes into being (within the toolbox)
with its settings being a duplicate of the template it was copied from
(vs. the initial default settings defined by the portlet service).

You can delete the portlet template.

You can migrate a portlet template.  By migrate it is meant
that controlling portal can transfer the portlet template to another portal.

You can upgrade a portlet template to a new version.

The portal allows one to operate on a portlet instance as follows:

You can modify the portlet instance's settings to personalize its
behavior.  There are an arbitrary set of personalization levels defined
by the particular portal.  The levels are hierarchical.  The
deepest personalization level that has any overriding values controls the
user's view.  

You can copy a portlet instance.  By copy it is meant that
a second portlet instance comes into being with its personalization
data being a duplicate of the instance it was copied from.

You can clone a portlet instance.  By close it is meant that
a second portlet instance comes into being with its personalization
data being shared with the portlet it was cloned from.

You can convert a portlet instance into a portlet template.

You can migrate a portlet instance.  By migrate it is meant
that controlling portal can transfer the portlet instance to another
portal.

You can upgrade a portlet instance to a new version.

You can delete a portlet instance.

You can request a portlet instance render its portlet content.

You can request a portlet instance render a link reference to itself.

You can request a portlet instance render help information.

You can request a portlet instance render "about" information.

You can request a portlet instance render its personalization screen.

You can perform "actions" on a portlet instance.  [Mike --
this is a placeholder until I understand better what folks want/expect
actions to be and do]

You can send an event to a portlet instance.

State 3: Portlet Service Inactive
During the lifecycle of a portlet service being bound
with a  portal either the portlet service may become [temporarily]
unavailable or the portal may choose to suspend communication with the
portlet service.  When this occurs the portlet service is said
to be inactive or offline.  In this state all operations described
above are unavailable.  The only operation available is to request
the service be made active again.
Random state: Portlet Service upgraded
During the lifecycle of a portlet service it may come
to pass that the portlet meta-data that describes the portlet and how it
wishes to be managed by the portal may change.  The portlet service
is said to be upgraded.  The portal defines a [currently undefined]
mechanism for detecting an upgrade has occurred.  Upon detection it
is expected to:

update meta-data caches (if any).

honor the new settings where appropriate for existing anf new portlet
templates and instances.  [Note: the Metadata group should
define the effect of changing each value defined in the core meta data.]
← Prev in month ← Prev in thread