The Design of a Configurable, Extensible and Dynamic Notification - - PowerPoint PPT Presentation

the design of a configurable extensible and dynamic
SMART_READER_LITE
LIVE PREVIEW

The Design of a Configurable, Extensible and Dynamic Notification - - PowerPoint PPT Presentation

The Design of a Configurable, Extensible and Dynamic Notification Service Roberto S. Silva Filho Cleidson R. B. de Souza David F. Redmiles School of Information and Computer Science UCI - University of California, Irvine {rsilvafi, cdesouza,


slide-1
SLIDE 1

1

The Design of a Configurable, Extensible and Dynamic Notification Service

Roberto S. Silva Filho Cleidson R. B. de Souza David F. Redmiles

School of Information and Computer Science UCI - University of California, Irvine {rsilvafi, cdesouza, redmiles}@ics.uci.edu

slide-2
SLIDE 2

2

Outline

Motivation Problem Approach Design Examples Implementation Conclusions and Future work

slide-3
SLIDE 3

3

Project Motivation

The need for an event-based infrastructure

to:

support requirements from different application

domains

groupware, software monitoring, awareness, mobility...

support new functionality as necessary provide the right functionality set to each

application domain

provide a single model for different applications

slide-4
SLIDE 4

4

Application domains

What we wanted is a configurable event-notification

service that can be easily customized, and extensible to support different domains such as:

Mobility

pull, persistency, roaming protocol, authentication

Awareness

event persistency and typing, event validity (time-to-live),

event sequence detection, push and pull delivery; event source browsing (discovery)

Application monitoring

event sequence detection; event abstraction; browsing of

information sources and their events; event persistency; push and pull

slide-5
SLIDE 5

5

Problems with current event notification servers

Specialized approaches

Domain specific notification servers

such as Khronika, CASSIUS, JEDI, EBBA

Generic approaches

“one-size-fits-all”

such as READY, CORBA-NS

content-based

such as Siena, Elvin

Problem: poor or no support for extensibility

and configurability

slide-6
SLIDE 6

6

Our Approach

Provide a framework to support extensibility and

configurability of notification servers

Based on:

Plug-ins Extensible event, notification and subscription

languages

Extensible protocols Dynamic parsers Configuration managers Around a simple publish/subscribe core

slide-7
SLIDE 7

7

Our approach

Configurations are represented as sets of

plug-ins and a publish/subscribe core adapter

Plug-ins are used to extend the basic event

dispatcher functionality, notification mechanisms and protocols

Parsers convert subscriptions, notification

preferences and protocols into evaluation trees based on plug-in instances

Plug-ins can be downloaded, at runtime, if

not currently installed

slide-8
SLIDE 8

8

Adapter extension using plug-ins

<subscription> <followed-by> <filter>...</filter> <filter>...</filter> </followed-by> </subscription> <notification> <pull/> <notification>

Siena adapter Siena <filter> <filter> <subscription> <followed-by> Mapped to

subscribe Subscription evaluation tree XML subscription

Subscription manager dynamic parser

  • Approach valid to protocol, notification and protocol plug-ins too
slide-9
SLIDE 9

9

Our strategy

To address the problem based on the design

models proposed by [Cugola et al. 01] and inspired by [Rosemblum and Wolf 97].

In other words, provide a way to customize

and extend the following design models:

Event Subscription Notification Resource Protocol (introduced here)

slide-10
SLIDE 10

10

Notification, Subscription and Protocol Models

Event model

Example: Tuple-based, type-based, object-based

Subscription model

Example: sequence, abstraction, rules, content-

based queries, and so on…

Notification model

Example: push, pull, other notification policy…

slide-11
SLIDE 11

11

Event and Resource models

Resource model

Example: client side and server side plug-ins

Protocol model

Example: security, mobility, authentication…

All models are extended by:

Plug-ins Specific language definitions Managers that interpret the language with the

plug-ins.

slide-12
SLIDE 12

12

Architecture overview

Adapter Event Dispatcher

Subscription Manager Plug-in Manager Notification Manager Protocol Manager

Subscrip. Plug-in Notification plug-ins

  • Config. Manager

Protocol plug-ins events notifications subscriptions messages

slide-13
SLIDE 13

13

Subscription parsing example

<subscription> <followed-by> <filter>...</filter> <filter>...</filter> </followed-by> </subscription> <notification> <pull/> <notification> Queries: <followed-by> <filter> <pull> <subscription>

Builds expression Send results to subscribers

Event Adapter (Siena) Subscription Manager Plug-in manager Notification Manager

Pull plug-in factory Filter plug-in factory

Output buffer

notifies <pull> plug-in inst <subscription> plug-in inst <followed-by> Plug-in inst Filter inst Filter inst results

Followed-by plug-in factory

Install factory

slide-14
SLIDE 14

14

Extensibility summary

DESIGN DIMENSION HOW TO EXTEND EXAMPLES Subscription Model Extensible subscription language Provide feature specific event processing plug-ins Event aggregation Abstraction Sequence detection Event Model Extensible event representation language An event adapter for each dispatcher used Plug-in to handle the dispatcher specific event language Tuple based Record based Object based Notification Model Notification plug-ins (or filters) Extensible notification language that allows the definition of notification policies Push Pull (with persistency) Resource Model Server configuration language and configuration manager that allows the distribution of event processing to server-side or client-side plug-ins Centralized Partially distributed Protocol Model Extensible protocol language Protocol plug-ins and protocol manager to handle different protocols Security protocols Mobility protocols Configuration protocols

slide-15
SLIDE 15

15

Implementation Status

The following components are implemented:

Subscription manager Plug-in manager Event dispatcher adapter using Siena. Simple plug-ins: sequence detection, rules

The other components will be ready by the

end of summer

slide-16
SLIDE 16

16

Implementation status

Adapter Event Dispatcher

Subscription Manager Plug-in Manager Notification Manager Protocol Manager

Subscrip. Plug-in Notification plug-ins

  • Config. Manager

Protocol plug-ins events notifications subscriptions messages

slide-17
SLIDE 17

17

Conclusions

Extensibility needs to address issues in all the

models (notification, subscription, event, resource) discussed. This can be addressed by:

Runtime composition of plug-in instances Extensible languages Adapters (event dispatcher model)

Plug-ins can also be used to better distribute

processing through the components of the system.

slide-18
SLIDE 18

18

Conclusions

Configurability is provided by:

The installation of specific plug-ins Selection of plug-ins in a configuration

language

Dynamism:

Result of dynamic expression building Implemented by the installation of plug-ins

at runtime.

slide-19
SLIDE 19

19

Future work

Investigate the problems related to timing Improve the implementation Test by implementing different configurations Compare results with existing notification

servers such as CASSIUS and CORBA-NS

Analyze the benefits and weaknesses of this

approach

slide-20
SLIDE 20

20

Questions?

Research group: awareness.ics.uci.edu Project: www.ics.uci.edu/~rsilvafi

slide-21
SLIDE 21

21

References

  • G. Cugola, E. D. Nitto, and A. Fuggeta, "The Jedi

Event-Based Infrastructure and Its Application on the Development of the OPSS WFMS," IEEE Transactions

  • n Software Engineering, vol. 27, pp. 827-849, 2001.
  • D. S. Rosenblum

and A. L. Wolf, "A Design Framework for Internet-Scale Event Observation and Notification," presented at 6th European Software Engineering Conference/5th ACM SIGSOFT Symposium

  • n

the Foundations

  • f

Software Engineering, Zurich, Switzerland, 1997.