
h2. Functionality
* Event storage (temporary and/or permanently) through:
** Put/Get API to populate “synchronously” the store with, for example,
data from a given database
** Publish/Subscribe API to allow higher scalability
* Quality of Service corresponding to Event Level Agreements
** Number of notifications delivered to subscribers per time unit
** Event delivery ordering (or at least out-of-order detection) in order to
guarantee fairness regarding a notification point of view, events should
better be delivered in a preserved order
** Event delivery guarantee even in case of non-robust or malicious nodes
* Flexibility, elasticity, portability, easiness for someone to deploy and to use.
h2. Technical Requirements
The Event Cloud requires Java 6 or higher to run. On some node deployments, specific network ports needs to be open to enable communication with external entities. The source code is publicly available from [http://eventcloud.inria.fr]
h2. Components Architecture
!eventcloud-architecture.png|align=center!
* Provided interfaces:
** SubscribeApi: Used to subscribe asynchronously to events from a
given stream
** PublishApi: Used to push events asynchronously into a specified
stream
** PutGetApi: Used to store and retrieve historical events from a given
stream
** EventCloudManagementApi: Manages the event clouds (e.g. to create
a stream, to configure the elasticity of a stream, etc.)
** EventCloudMonitoringApi: Manages the specified stream in nonfunctional ways such as monitoring data (hardware like the memory
consumption but also virtual like the number of subscriptions)
* Required interfaces:
** NotifyApi: Used to notify the subscribers about some events which a
subscription (e.g. to push matching events from a stream to the DCEP
for the subscriptions registered by the DCEP or from an Event Cloud to
the DSB for the subscriptions registered by the DSB).
h2. Movie
{center}
{widget:url=http://www.youtube.com/watch?list=HL1339754569&v=vWVKqEfYeVQ&feature=player_detailpage|width=630|height=380}
{center}
This movie shows the creation and the deployment of an eventcloud with one associated publish and subscribe proxy. These proxies are used to communicate with the eventcloud. SoapUi is used to simulate the clients that interact with the proxies. First a subscription is sent from the subscribe proxy. Then, two events are published from the publish proxy. Each event from a different source. The first one is supposed to be refused by the social filter whereas the second is accepted. At the end the eventcloud logs are analyzed to popup a small swing application that displays the events which have been handled. This graphical applications also shows all the necessary details to understand why the event has been accepted or refused.