head	1.7;
access;
symbols;
locks; strict;
comment	@# @;


1.7
date	2001.05.16.08.52.24;	author dlr;	state dead;
branches;
next	1.6;

1.6
date	2001.04.11.09.02.37;	author dlr;	state Exp;
branches;
next	1.5;

1.5
date	2001.04.06.20.57.38;	author dlr;	state Exp;
branches;
next	1.4;

1.4
date	2001.04.06.20.56.58;	author dlr;	state Exp;
branches;
next	1.3;

1.3
date	2001.04.06.20.32.25;	author leonardr;	state Exp;
branches;
next	1.2;

1.2
date	2001.04.06.20.27.42;	author leonardr;	state Exp;
branches;
next	1.1;

1.1
date	2001.04.06.20.19.37;	author dlr;	state Exp;
branches;
next	;


desc
@@


1.7
log
@This document is now out of date.
@
text
@		 ]|[ Cross JVM Communication API ]|[

interface ClusterMediator extends Remote
Implements cooperative behavior by coordinating Colleagues listed in
its registry.  Relays requests, etc.
    + void register(ClusteredColleague colleague) throws RemoteException
    + void unregister(ClusteredColleague colleague) throws RemoteException
    + void handleEvent(MediatedEvent event) throws RemoteException
    + void sendEvent(MediatedEvent event) throws RemoteException


interface ClusteredColleague extends Remote
Sends and receives events to and from the ClusterMediator, when it
would otherwise have communicated directly with other colleagues.
It's recommended that this interface implement a private final
implementation of a getMediator() method which returns the appropriate
ClusterMediator implementation.
    + void register() throws RemoteException
    + void unregister() throws RemoteException
    + void handleEvent(MediatedEvent event) throws RemoteException
    + void sendEvent(MediatedEvent event) throws RemoteException


interface ClusterSingletonMediator extends ClusterMediator
Mediates the allocation of a cluster resource which can be only allocated once.
    + ClusteredSingletonColleague getSingleton() throws RemoteException


interface ClusteredSingletonColleague extends ClusteredColleague
The single instance of a class across a cluster.
It's recommended that this interface implement a private final
implementation of a getSingleton() method which returns the appropriate
ClusteredSingleton implementation.
    + void setAsSingleton()

interface MediatedEvent extends Serializable
An event that should be relayed between colleagues.
    + Object getSource()
    + MediatedEvent getInResponseTo()


interface BroadcastEvent extends MediatedEvent
An event that should be relayed to all colleagues.


abstract class RespondableEvent extends EventObject implements MediatedEvent
An event possibly used in response to another event.
    + PollEvent(Object source, MediatedEvent inResponseTo)


class PollEvent extends RespondableEvent
An event used by a mediator to demand  proof of life and by a colleague to
provide that proof.


class CacheInvalidationEvent RespondableEvent
The colleague event indicating cache invalidation.


class CacheRegistryManager implements ClusterMediator
The manager of cache registries within a cluster.  Reflects cache
invalidation events to all known cache registries.
    - List colleagueRegistry


class CacheRegistry implements ClusteredColleague, Serializable
The registry of all object caches in a JVM.
    - Map cacheRegistry
    - void invalidate(CacheInvalidationEvent event)


class TaskRunnerMediator implements ClusterSingletonMediator
Enforces the existance of one and only one operational task runner thread.


class TaskRunnerService extends TurbineBaseService
    implements ClusteredSingletonColleague, Serializable
Potentially contains the single instance of the task runner thread for
a cluster.
    - TaskRunner taskRunnerThread
@


1.6
log
@Implement Serializable for transport over the wire via RMI.
@
text
@@


1.5
log
@This document defines an API.
@
text
@d66 1
a66 1
class CacheRegistry implements ClusteredColleague
d76 2
a77 1
class TaskRunnerService implements ClusteredSingletonColleague
@


1.4
log
@Added implementation recommendations.
@
text
@d1 1
a1 1
	       ]|[ Cross JVM Communication ]|[
@


1.3
log
@Replaced SingletonRecognitionEvent with ClusteredSingletonColleage.setAsSingleton.
@
text
@d15 3
d31 3
@


1.2
log
@Added unregister method to interface.
@
text
@d28 1
a28 1

a33 6


interface SingletonRecognitionEvent extends MediatedEvent
The event sent by a mediator when it decides to grant singleton status to a
colleague.
    + ClusteredSingletonColleague getRecognizedSingleton()
@


1.1
log
@The abstract API defining cross JVM communication.  Includes API
concretions for the TaskRunner and caching.
@
text
@d7 1
d16 1
@

