Re: [wsrp][interfaces]: Actions vs. Events

From
Michael Freedman <>
Date
2002-04-24T22:05:03+00:00
ID
Thread
Re: [wsrp][interfaces]: Actions vs. Events
Rich,

   I like your idea that given we have many descriptions
on the table we should see if we can solidify the discussion by first defining
terms.  Once we have a good definition of terms we can then more effectively
discuss requirements. I think your definitions are a good start but might
be improved if made more concise.  What do you think of the following
definitions:

Action: a notification that your state has changed.
There is only one recipient of an action.  This recipient
is identified in the action request.  For example, a portlet encodes
an action in the URI of its form's "Submit" button.  This URI (the
action request) explicitly targets the receiver (this portlet instance).

Event: a notification that some state in the system (that you are
interested in) has changed.
There may be 0 to many recipients of an event.  The recipient
of an event is not identified in the event request.  Rather, event
recipients are managed (by an event manager).  An event request is
sent to/via the event manager which then dispatches the event notification
to interested parties.  I.e. the major differences between an action
an event is that event recipients are anonymous and a single event may
be dispatched to many portlets.
I believe the above clearly defines the differences between actions and
events from the point of view of the invoker.  However it doesn't
address whether the recipient needs to see actions differently from events
-- as "your state has changed" is just a subtype of "state has changed".  
I believe we answer this by articulating the requirements/constraints on
action handlers vs. requirements/constraints on event handlers.  
As this message is about terminology I will leave this discussion to another
message.

     -Mike-

Rich Thompson wrote:
I'm not sure limiting event types to those published
in meta-data would

suffice. Consider the case of a Producer that provides a redirection
to

other services that it has been instructed to instantiate (or maybe
just

"contain"). The events such a Producer would publish are dependent
on the

indirect providers and therefore can not be published statically. An

example of such a Producer could be a portal publishing a set of portlets

as a WSRP service for other portals to consume.

While I consider events to a important to both the WSIA and WSRP standards,

I would suggest not pushing them into the first versions of the standards

as the WSDL layer of the web services stack has these poorly defined
now

and there are efforts to clean up that portion of the WSDL spec.

Also, unless I missed it, I don't think I saw the terms action and event

being crisply defined. My suggestion:

      Action - A request to a Producer to
execute some functionality.

      Event - A notice from a Producer that
some logical transition has

occurred.

 

                     
Jeff Broberg

                     
<jbroberg@silvers        To:      
"Tamari, Yossi" <>,

                     
tream.com>               


                                              
cc:

                     
04/22/2002 11:40         Subject: 
RE: [wsrp][interfaces]: Actions vs. Events

                     
AM

                     
Please respond to

                     
jbroberg

 

 

my mistake, i meant it in the context of actions not events.

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

From: Tamari, Yossi [mailto:]

Sent: Monday, April 22, 2002 11:27 AM

To: ''

Subject: RE: [wsrp][interfaces]: Actions vs. Events

I do not know if I agree on this, since events are not generated by
the

user, but by other providers (in the context of the user).

Anyway, if a provider does not wish to process a certain event in a
certain

context, it can ignore the event in runtime.

I think that the overhead of implementing dynamic events may be bigger
than

the overhead of having ignored events.

            
Yossi.

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

From: Jeff Broberg [mailto:]

Sent: Monday, April 22, 2002 6:22 PM

To: Tamari, Yossi; 

Subject: RE: [wsrp][interfaces]: Actions vs. Events

I can imagine a scenario where the events that a provider allows for
a

particular user is context based, so that one individual may be able
to

perform some type of action while another can't.  So we could
define the

availalbe events in the metadata, but we may have to also allow this
info

to

be dynamically generated and discovered.

jeff

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

From: Tamari, Yossi [mailto:]

Sent: Monday, April 22, 2002 11:01 AM

To: 

Subject: RE: [wsrp][interfaces]: Actions vs. Events

My take on the registration issue is that the provider should include
the

list of events/properties that it wants to subscribe to in its metadata.

It seems to me like this list does not need to be dynamic since in
order to

process more events, more code needs to be written in the provider.

The place were loops may actually happen is when provider A raises event
X,

which causes provider B to raise event Y, which causes provider A to
raise

event X again (for example). There are different algorithms that can

prevent

this, and maybe we should leave this to the implementing portal. We
could

define that the same event can not be fired by the same provider more
then

once per request, and that the consumer is not required to continue

processing events if the chain is deeper than some constant number.
I would

like to hear other suggestions to solving this problem.

            
Yossi.

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

From: Carsten Leue [mailto:]

Sent: Monday, April 22, 2002 5:43 PM

To: Tamari, Yossi

Cc: 

Subject: RE: [wsrp][interfaces]: Actions vs. Events

I think that this would be a good solution for events to decouple the

portlets and solve the problems that the portlets might not "see" each

other through the firewalls. Furthermore it take the complexity of
managing

listeners away from the services to the portal. I still see a semantic

difference between actions and events but maybe we can unify that.
Some

open issues are from my point of view:

- visibility: per definition the portal has access to the service (e.g.

though a firewall). The same is not necessary true for the service
that may

be shielded from directly accessing the portal. If we unify actions
and

event we need

      - a way for the services to register/unregister
themselves as

listeners passively without initiating a communication to the portal
(e.g.

in the return values for the markup call)

      - is it also possible to trigger events
passively?

- chaining: a portlet that has been integrated in a portal might be

republished and reintegrated by another portal

      - register/unregister requests for listeneres
need to be delegated to

both portals

      - how can loops be avoided in such cases?

Best regards

Carsten Leue

-------

Dr. Carsten Leue

Dept.8288, IBM Laboratory Böblingen , Germany

Tel.: +49-7031-16-4603, Fax: +49-7031-16-4401

|---------+----------------------------->

|         |          
"Tamari, Yossi"   |

|         |          
<yossi.tamari@sapp|

|         |          
ortals.com>       |

|         |                            
|

|         |          
04/22/2002 03:31  |

|         |          
PM               
|

|         |          
Please respond to |

|         |          
"Tamari, Yossi"   |

|         |                            
|

|---------+----------------------------->

>

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

------------------------------------------------------------------|

  |

|

  |       To:      


|

  |       cc:

|

  |       Subject:  RE: [wsrp][interfaces]:
Actions vs. Events

|

  |

|

  |

|

>

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

------------------------------------------------------------------|

This is what I had in mind as well. If different producer want to

communicate directly, they can do this regardless of WSRP.

What is needed is some variation of a publish/subscribe (with data)

mechanism managed by the consumer.

            
Yossi.

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

From: PAVLIK,GREGORY (HP-NewJersey,ex2) [mailto:]

Sent: Monday, April 15, 2002 10:20 PM

To: 'Alan Kropp'; 'Carsten Leue'; 

Subject: RE: [wsrp][interfaces]: Actions vs. Events

that would be preferrable.

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

From: Alan Kropp [mailto:]

Sent: Monday, April 15, 2002 3:16 PM

To: 'Carsten Leue'; 

Subject: RE: [wsrp][interfaces]: Actions vs. Events

Hi Carsten,

On the subject of event handling, could we simplify the scenario a bit
by

allowing the portal to act as the intermediary in event propagation? 
I'm

thinking of a publish/subscribe model (somewhat like JMS), in portlets

which

support events "publish" those events to the portal, and portlets which

consume events inform the portal by subscribing for those event types. 
The

portal acts as the intermediary, and neither event producers or consumers

need know specifically about each other.

Alan

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

From: Carsten Leue [mailto:]

Sent: Monday, April 15, 2002 3:49 AM

To: 

Subject: [wsrp][interfaces]: Actions vs. Events

Hi - as promised in the interface call here is a definition of what
I would

define as "actions" and "events". We might use this as a starting point
for

the further discussion.

Both actions and events are notifications for a WSRP service.

1. Action:

Actions are notifications that are triggered by the user. During the

creation of markup the service encodes special URLs in the markup and

associates data to them.

The aggregator may need to rewrite the URLs to make them appear as
links

and redirect them to the aggregator. The end user can click on the
links to

trigger such an action. The aggregator then intercepts this and issues
a

call to the action handler defined in the WSRP interface together with
the

data the service encoded in the markup. As a reaction to this action
the

service may modify its state an regenerate its markup.

The following points are important in this scenario:

- the set of possible actions is defined by the server by embedding
them in

the markup

- the end user triggers the actions

- there is only one consumer of an action: the service that embedded
the

action into the markup

2. Event:

Events are launched programatically by components (the aggregator or
one of

the services). Events are not directly represented in the markup but
issued

by the components depending on their state (could be a timer, a system

event or as a reaction to an action). Events can either be broadcast
to all

services or to a set of registered services.

The following points are important in this scenario:

- the set of receivers of events (listeners) is dynamic

- if a service fires an event it needs to connect to the listeners.
This

might not always be possible due to firewall restrictions

- i becomes possible to halt the system by (accidentally) introducing

cycles in the event propagation

Following this definition event handling is much more complex and error

prone than action handling and the two serve different purposes: user

interaction and notification.

3. Relationship to WSRP

From my point of view we should clearly distinguish between action
handling

and event handling in WSRP. Event handling easily becomes very complex
and

is not always required to support portal/portlet interaction. Maybe
we

should separate event handling out into an optional interface. My

proposition would be to reuse the WSIA event handling interfaces for
this

but leave it up to the service to support this feature.

Action handling however is abosultely essential for user interaction.
For

this reason it makes sense for me to include this functionality into
the

base WSRP interface.

I added a PDF document to further clarify the distinction graphically.

(See attached file: Action vs Event.zip)

Best regards

Carsten Leue

-------

Dr. Carsten Leue

Dept.8288, IBM Laboratory Böblingen , Germany

Tel.: +49-7031-16-4603, Fax: +49-7031-16-4401

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>

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

To subscribe or unsubscribe from this elist use the subscription

manager: <http://lists.oasis-open.org/ob/adm.pl>