the design of a configurable extensible and dynamic
play

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,


  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 1

  2. Outline � Motivation Problem � Approach � Design � Examples � Implementation � Conclusions and Future work 2

  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 3

  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 4

  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 5

  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 6

  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 7

  8. Adapter extension using plug-ins Subscription evaluation tree <subscription> XML subscription <subscription> Mapped to <followed-by> <followed-by> <filter>...</filter> <filter>...</filter> subscribe Subscription </followed-by> manager <filter> <filter> </subscription> dynamic parser <notification> < pull /> Siena adapter <notification> Siena Approach valid to protocol, notification and protocol plug-ins too � 8

  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) 9

  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 … 1 0

  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. 11

  12. Architecture overview Notification Protocol Subscrip. events plug-ins Plug-in Protocol plug-ins Manager Config. Manager Subscription notifications Manager Notification subscriptions Adapter Manager Event Plug-in Dispatcher Manager messages 1 2

  13. Subscription parsing example notifies <subscription> <subscription> <followed-by> plug-in inst Subscription <filter>...</filter> Builds <filter>...</filter> Manager expression </followed-by> <followed-by> </subscription> results Plug-in inst <notification> < pull /> <pull> <notification> plug-in inst Filter inst Filter inst Queries: <followed-by> <filter> <pull> Event Adapter (Siena) Notification <subscription> Plug-in Manager manager Send results to subscribers Install factory Filter Pull Followed-by plug-in plug-in plug-in Output buffer factory factory factory 1 3

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

  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 1 5

  16. Implementation status Notification Protocol Subscrip. events plug-ins Plug-in Protocol plug-ins Manager Config. Manager Subscription notifications Manager Notification subscriptions Adapter Manager Event Plug-in Dispatcher Manager messages 1 6

  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. 1 7

  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. 1 8

  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 1 9

  20. Questions? � Research group: awareness.ics.uci.edu � Project: www.ics.uci.edu/~rsilvafi 20

  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 on 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 on the Foundations of Software Engineering, Zurich, Switzerland, 1997. 21

Recommend


More recommend