Striving for Versatility in Striving for Versatility in - - PowerPoint PPT Presentation

striving for versatility in striving for versatility in
SMART_READER_LITE
LIVE PREVIEW

Striving for Versatility in Striving for Versatility in - - PowerPoint PPT Presentation

Striving for Versatility in Striving for Versatility in Publish/Subscribe Publish/Subscribe Infrastructures Infrastructures Roberto S. Silva Filho and David F. Redmiles Roberto S. Silva Filho and David F. Redmiles {rsilvafi rsilvafi, ,


slide-1
SLIDE 1

1 1

Striving for Versatility in Striving for Versatility in Publish/Subscribe Publish/Subscribe Infrastructures Infrastructures

Roberto S. Silva Filho and David F. Redmiles Roberto S. Silva Filho and David F. Redmiles

{ {rsilvafi rsilvafi, , redmiles}@ics.uci.edu redmiles}@ics.uci.edu Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine Presented at SEM 2005 – September 4th, 2005

slide-2
SLIDE 2

2 2

Outline Outline

Motivation Motivation Versatility definition Versatility definition Approach Approach Architecture overview Architecture overview Case studies Case studies Conclusions and future work Conclusions and future work

slide-3
SLIDE 3

3 3

Motivation Motivation

The publish/subscribe communication style provides: The publish/subscribe communication style provides:

– – data, flow and timing decoupling between producers and data, flow and timing decoupling between producers and consumers of information consumers of information – – content content-

  • based filtering and communication

based filtering and communication

This mechanism is usually implemented by a logically This mechanism is usually implemented by a logically centralized infrastructure centralized infrastructure

– – intermediates the communication between publishers and intermediates the communication between publishers and subscribers in a distributed setting. subscribers in a distributed setting.

slide-4
SLIDE 4

4 4

Motivation (continuation) Motivation (continuation)

For such properties publish/subscribe middleware has For such properties publish/subscribe middleware has been used in different application domains such as: been used in different application domains such as:

– – software monitoring, groupware, workflow management software monitoring, groupware, workflow management systems, software development and deployment, mobile systems, software development and deployment, mobile applications and so on. applications and so on.

This wide range of applications have required different This wide range of applications have required different sets of services from the publish/subscribe infrastructure sets of services from the publish/subscribe infrastructure such as: such as:

– – Advanced event processing, guaranteed event delivery, Advanced event processing, guaranteed event delivery, transactions, event persistency, secure communication transactions, event persistency, secure communication channels, authentication, mobility support and many others channels, authentication, mobility support and many others

slide-5
SLIDE 5

5 5

Motivation (continuation) Motivation (continuation)

In order to implement a distributed event In order to implement a distributed event-

  • driven

driven application, two main alternatives exist: application, two main alternatives exist:

– – Use existing publish/subscribe infrastructures: Use existing publish/subscribe infrastructures:

Standardized one Standardized one-

  • size

size-

  • fits

fits-

  • all solutions: CORBA

all solutions: CORBA-

  • NS or JMS

NS or JMS Minimal content Minimal content-

  • based routers such as ELVIN, SIENA,

based routers such as ELVIN, SIENA, HERALD HERALD

– – Build new specialized pub/sub system Build new specialized pub/sub system

example: CASSIUS, GEM, YEAST and others. example: CASSIUS, GEM, YEAST and others.

slide-6
SLIDE 6

6 6

Motivation (continuation) Motivation (continuation)

Those strategies, however, suffer from a Those strategies, however, suffer from a fundamental problem: fundamental problem:

– – They are not They are not flexible flexible enough [c.f. enough [c.f. Parnas Parnas] : ] :

They are usually not designed for change and evolution, They are usually not designed for change and evolution, Nor to be expanded and contracted to address specific applicatio Nor to be expanded and contracted to address specific application n needs needs

Which results in: Which results in:

– – The need for direct source code modification of existing solutio The need for direct source code modification of existing solutions ns (when available) (when available) – – The implementation of additional features at the application lev The implementation of additional features at the application level el – – the build of new pub/sub infrastructures the build of new pub/sub infrastructures

resulting in the proliferation of incompatible proprietary resulting in the proliferation of incompatible proprietary infrastructures that are costly to evolve and maintain infrastructures that are costly to evolve and maintain

slide-7
SLIDE 7

7 7

Versatility Versatility

In other words, current publish/subscribe infrastructures In other words, current publish/subscribe infrastructures are not versatile enough to support their use in different are not versatile enough to support their use in different application domains. application domains. Our concept of versatility comprises a set of properties: Our concept of versatility comprises a set of properties:

– – Support for Evolution Support for Evolution

Extensibility Extensibility – – add new functionality to the existing set add new functionality to the existing set Programmability Programmability – – redefine software behavior redefine software behavior Reuse Reuse

– – Support for Variability (footprint configuration) Support for Variability (footprint configuration)

Static (build or design time) Static (build or design time) Dynamic (runtime) Dynamic (runtime)

– – Usability Usability

Considerations about workplace environment Considerations about workplace environment Nielsen Nielsen’ ’s attributes: s attributes: learnability learnability, efficiency, , efficiency, memorability memorability, few errors , few errors and satisfaction. and satisfaction.

– – Preserving middleware requirements of: Preserving middleware requirements of:

Scalability, interoperability, heterogeneity and communication Scalability, interoperability, heterogeneity and communication

slide-8
SLIDE 8

8 8

Our approach: Our approach: YANCEES, a versatile YANCEES, a versatile publish/subscribe infrastructure publish/subscribe infrastructure

slide-9
SLIDE 9

9 9

Approach main characteristics Approach main characteristics

Based on the use of extensible languages, plug Based on the use of extensible languages, plug-

  • ins and

ins and filters filters

– – combining language and infrastructure evolution combining language and infrastructure evolution – – with static and dynamic plug with static and dynamic plug-

  • in configurations

in configurations

Built upon a micro kernel architecture style Built upon a micro kernel architecture style

– – achieving interoperability and support for different event model achieving interoperability and support for different event models s and routing strategies and routing strategies

The architecture variability follows an extended version The architecture variability follows an extended version

  • f
  • f Rosenblum

Rosenblum and Wolf and Wolf’ ’s [24] publish/subscribe design s [24] publish/subscribe design dimensions dimensions The components are put together with the help of The components are put together with the help of runtime parsers and static configuration managers runtime parsers and static configuration managers

slide-10
SLIDE 10

10 10

Approach summary Approach summary

  • !"##
  • !"##
slide-11
SLIDE 11

11 11

Publish/subscribe design dimensions Publish/subscribe design dimensions

Extended version (see Protocol*) of Extended version (see Protocol*) of Rosenblum Rosenblum and Wolf and Wolf’ ’s model that s model that represent the variability dimensions in our approach represent the variability dimensions in our approach

Interaction protocols Interaction protocols: authentication, : authentication, manual roaming manual roaming Infrastructure protocols Infrastructure protocols: federation, : federation, replication, fault replication, fault-

  • tolerance

tolerance

  • ther kinds of interaction with
  • ther kinds of interaction with

the service the service

Protocol* Protocol*

tuple tuple-

  • based, record

based, record-

  • based, XML

based, XML documents documents Specifies how events are Specifies how events are represented represented

Event Event

client client-

  • side, server

side, server-

  • side

side defines where in the system defines where in the system (publishers/subscribers/routers) (publishers/subscribers/routers) the extensions are placed the extensions are placed

Resource Resource

push, pull, both, others. push, pull, both, others. specifies how notifications are specifies how notifications are delivered to subscribers delivered to subscribers

Notification Notification

content content-

  • based, topic

based, topic-

  • based, advanced

based, advanced event processing event processing specifies how subscribers specifies how subscribers express interest in subsets of express interest in subsets of events events

Subscription Subscription

Example Example Definition Definition Dimension Dimension

slide-12
SLIDE 12

12 12

"

  • $

"

  • "

$

" "

slide-13
SLIDE 13

13 13

"

  • $
  • $

"

  • "

$

" "

  • %&
  • #'
slide-14
SLIDE 14

14 14

"

  • $
  • $

"

  • "
  • $

"

  • "
  • %&
  • #'
  • (
  • #
  • plug-ins

legend

slide-15
SLIDE 15

15 15

"

  • $
  • $

"

  • "
  • $

"

  • "
  • %&
  • #'
  • (
  • #
  • plug-ins

legend filters

slide-16
SLIDE 16

16 16

"

  • $
  • $

"

  • "
  • $

"

  • "
  • %&
  • #'
  • (
  • #
  • plug-ins

legend filters protocols

slide-17
SLIDE 17

17 17

Variability dimensions summary Variability dimensions summary

Configuration managers that interpret configuration Configuration managers that interpret configuration descriptions descriptions Dynamic parsers Dynamic parsers Resource Resource Protocol plug Protocol plug-

  • ins

ins Protocol Protocol Extensible event representation Extensible event representation Filters Filters Event adapters and publish/subscribe cores Event adapters and publish/subscribe cores Event Event Extensible notification language Extensible notification language Notification plug Notification plug-

  • ins

ins Notification Notification Extensible subscription language Extensible subscription language Subscription plug Subscription plug-

  • ins

ins Subscription Subscription

Approach Approach Dimension Dimension

slide-18
SLIDE 18

18 18

Implementation details Implementation details

The application is in Java The application is in Java The extensible language used is XML ( The extensible language used is XML (XMLSchema XMLSchema) ) Events, Subscriptions and Notifications are all Events, Subscriptions and Notifications are all represented in XML, as well as the configuration represented in XML, as well as the configuration language. language.

– – Events can also be objects. Events can also be objects.

The interaction with the service (pub/sub API) is done The interaction with the service (pub/sub API) is done through RMI through RMI Protocol plug Protocol plug-

  • in interfaces are currently using RMI

in interfaces are currently using RMI Siena, Elvin and a custom topic Siena, Elvin and a custom topic-

  • based switcher were

based switcher were used as the basic pub/sub cores used as the basic pub/sub cores

slide-19
SLIDE 19

19 19

Example of dynamic parsing of Example of dynamic parsing of subscriptions subscriptions

Consider the following sequence detection subscription as an exa Consider the following sequence detection subscription as an example: mple: <subscribe> <subscribe> <sequence> <sequence> <or> <or> <filter> <filter> < <eq eq> <name> > <name> name name </name> </name> <value> <value> Roberto Roberto </name> </ </name> </eq eq> > </filter> </filter> <filter> <filter> … … </filter> </filter> </or> </or> <filter> <filter> … … </filter> </filter> </sequence> </sequence> <push> <push> </subscribe> </subscribe>

slide-20
SLIDE 20

20 20

!

  • )
  • $

!"##

filters adapters clients legend

slide-21
SLIDE 21

21 21

!

  • )
  • $

&

  • *

!"##

filters adapters clients legend

slide-22
SLIDE 22

22 22

  • )

!

  • )
  • $

&

  • *

+**

  • !"##

filters adapters clients legend

slide-23
SLIDE 23

23 23

  • )
  • !
  • )
  • $

&

  • *

+**

  • *
  • +**
  • !"##

filters adapters clients legend

slide-24
SLIDE 24

24 24

  • )
  • !
  • )
  • $

#

  • &
  • *

+**

  • *
  • +**
  • !"##

! filters adapters clients legend

slide-25
SLIDE 25

25 25

How to extend YANCEES? How to extend YANCEES?

  • ,
  • "
  • ,
  • (
  • !"##
  • !"##
  • ,
  • 1. Define a language
  • 1. Define a language

extension using extension using XML Schema XML Schema

  • 2. Implement plug
  • 2. Implement plug-
  • ins and filters for

ins and filters for that extension that extension

  • 3. register plug
  • 3. register plug-
  • in in

in in the configuration the configuration file file

  • 4. Restart the server
  • 4. Restart the server

with the new with the new configuration configuration

plug-ins adapters legend filters protocols

slide-26
SLIDE 26

26 26

How does it compare to other approaches? How does it compare to other approaches? (e.g. Elvin, Siena or CORBA (e.g. Elvin, Siena or CORBA-

  • NS)

NS)

None of them are programmable. And they are not easily None of them are programmable. And they are not easily extensible. extensible. Siena and Elvin, for e.g., provide content Siena and Elvin, for e.g., provide content-

  • based routing

based routing and sequence detection with push notification only and sequence detection with push notification only CORBA CORBA-

  • NS allows the selection of notification (push,

NS allows the selection of notification (push, pull) and subscription policies to use (channel, topic). pull) and subscription policies to use (channel, topic). The event model is fixed (object The event model is fixed (object-

  • based) at runtime.

based) at runtime.

– – It is monolithic and no additional features can not be easily It is monolithic and no additional features can not be easily added to it or removed from it. added to it or removed from it.

slide-27
SLIDE 27

27 27

Three example applications and Three example applications and their configurations their configurations

Implementation of a peer Implementation of a peer-

  • to

to-

  • peer event

peer event bus for ad bus for ad-

  • hoc file sharing application

hoc file sharing application support for a software visualization tool support for a software visualization tool and network activity monitoring application and network activity monitoring application Implementation of an awareness server Implementation of an awareness server (CASSIUS equivalent) (CASSIUS equivalent)

slide-28
SLIDE 28

28 28

Peer Peer-

  • to

to-

  • peer file sharing tool

peer file sharing tool

YANCEES is used to provide a P2P event YANCEES is used to provide a P2P event bus that supports: bus that supports:

– – dynamic peer discovery dynamic peer discovery – – peer peer-

  • to

to-

  • peer publishing

peer publishing

slide-29
SLIDE 29

29 29

  • Different pie slices represent

Different pie slices represent peers in the network peers in the network Users can drag and drop files Users can drag and drop files to be shared to be shared Concentric circles define Concentric circles define different sharing levels different sharing levels Files placed in the center Files placed in the center are persistent and available to are persistent and available to all the members of the group all the members of the group Files outside the pie are not Files outside the pie are not shared and become invisible shared and become invisible to other peers to other peers Files blink with the peer Files blink with the peer color whenever someone reads color whenever someone reads

  • r modifies it
  • r modifies it

Impromptu: a peer Impromptu: a peer-

  • to

to-

  • peer, ad

peer, ad-

  • hoc, file sharing

hoc, file sharing application application

slide-30
SLIDE 30

30 30

  • !"
  • !"
  • #$% &'

(&!)$$" (&!)$$"

  • *

*

  • Impromptu architecture: peer

Impromptu architecture: peer-

  • to

to-

  • peer file

peer file sharing tool support sharing tool support

slide-31
SLIDE 31

31 31

  • !"##
  • !"##
  • plug-ins

adapters protocols legend filters

slide-32
SLIDE 32

32 32

  • !"##
  • !"##
  • plug-ins

adapters protocols legend filters

slide-33
SLIDE 33

33 33

  • !"##
  • !"##
  • +!
  • +!
  • plug-ins

adapters protocols legend filters $*

slide-34
SLIDE 34

34 34

  • !"##
  • !"##
  • (

$

  • $
  • +!
  • +!
  • plug-ins

adapters protocols legend filters $*

slide-35
SLIDE 35

35 35

  • !"##
  • !"##
  • $
  • $
  • +!
  • +!
  • $

*

  • (

$*

slide-36
SLIDE 36

36 36

Software and security visualization Software and security visualization

YANCEES addresses two different routing YANCEES addresses two different routing requirements: requirements:

– – Software visualization: support fast routing Software visualization: support fast routing – – Security visualization: content Security visualization: content-

  • based filtering

based filtering

slide-37
SLIDE 37

37 37

Software visualization tool Software visualization tool

+ ,

  • .
  • /
  • Application being monitored: web browser
slide-38
SLIDE 38

38 38

  • 1
  • Security visualization tool

Security visualization tool

slide-39
SLIDE 39

39 39

&* ' )/ 12$

  • YANCEES
  • +,
  • ",
slide-40
SLIDE 40

40 40

  • !"##
  • )

+**

  • +%

(

  • plug-ins

adapters protocols legend filters

slide-41
SLIDE 41

41 41

CASSIUS CASSIUS – – awareness awareness publish/subscribe server publish/subscribe server

CASSIUS pub/sub model provides: CASSIUS pub/sub model provides:

– – Event persistency Event persistency – – Event typing enforcing Event typing enforcing – – Pull notification delivery Pull notification delivery

CASSIUS also supports the following protocols: CASSIUS also supports the following protocols:

– – Event source discovery Event source discovery – – Event type hierarchy browsing Event type hierarchy browsing – – Authentication Authentication

slide-42
SLIDE 42

42 42

  • )

*. +**

  • +**
  • !
  • /
  • plug-ins

adapters protocols legend filters

slide-43
SLIDE 43

43 43

  • )

* *. " /0 '+-"

  • +**
  • +**
  • !
  • /
  • plug-ins

adapters protocols legend filters

slide-44
SLIDE 44

44 44

  • )

*

* (

  • *.
  • " /0

'+-"

  • +**
  • +**
  • !
  • /

$

  • #

*

  • $
  • plug-ins

adapters protocols legend filters

slide-45
SLIDE 45

45 45

Conclusions Conclusions

slide-46
SLIDE 46

46 46

Advantages of the approach Advantages of the approach

Configurability Configurability: The combination of : The combination of plug plug-

  • ins and extensible languages

ins and extensible languages provide coherent composition of interdependent features; provide coherent composition of interdependent features;

– – the subset of language extensions and plug the subset of language extensions and plug-

  • ins also define the

ins also define the footprint footprint of the

  • f the

server. server.

Extensibility Extensibility: new features can be provided by extending the language and : new features can be provided by extending the language and implementing new plug implementing new plug-

  • ins and filters

ins and filters Reuse Reuse: plug : plug-

  • ins can depend on one another, speeding up the development

ins can depend on one another, speeding up the development process process Support for multiple infrastructures Support for multiple infrastructures: the microkernel approach allows : the microkernel approach allows different publish/subscribe cores to be installed at the same ti different publish/subscribe cores to be installed at the same time me Variability Variability: plug : plug-

  • ins can be installed at load time (configuration file) and

ins can be installed at load time (configuration file) and runtime (downloaded as needed). They are also allocated accordin runtime (downloaded as needed). They are also allocated according to the g to the application needs application needs Multiple event models Multiple event models: adapters to different pub/sub cores permit multiple : adapters to different pub/sub cores permit multiple event representations to co event representations to co-

  • exist.

exist.

slide-47
SLIDE 47

47 47

Drawbacks Drawbacks

Performance: Performance:

– – In our experiments, the XML technology (subscription and notific In our experiments, the XML technology (subscription and notification ation parsing) adds an extra 100 ms to the subscription process (but t parsing) adds an extra 100 ms to the subscription process (but this is a his is a

  • ne time cost)
  • ne time cost)

– – The plug The plug-

  • in hierarchy adds an extra 50 ms to the notifications routing

in hierarchy adds an extra 50 ms to the notifications routing time (but the throughput is compatible with Siena and Elvin ~800 time (but the throughput is compatible with Siena and Elvin ~8000 events/second) due to our buffering strategy events/second) due to our buffering strategy

Framework costs: Framework costs:

– – Initial generalization and implementation Initial generalization and implementation – – Initial learning curve (not much worse than more advanced pub/su Initial learning curve (not much worse than more advanced pub/sub b systems as CORBA systems as CORBA-

  • NS)

NS)

Non Non-

  • functional requirements are not so easy to implement (need to

functional requirements are not so easy to implement (need to extend many points in the system, AOP may help) extend many points in the system, AOP may help)

slide-48
SLIDE 48

48 48

Future work Future work

Address usability issues Address usability issues

– – Achieve a balance between model complexity and its Achieve a balance between model complexity and its extensibility extensibility

Study the use AOP for non Study the use AOP for non-

  • functional

functional requirements requirements Study the use of rule Study the use of rule-

  • based patterns for more

based patterns for more complex event processing complex event processing Perform usability case studies Perform usability case studies

slide-49
SLIDE 49

49 49

Questions/Comments? Questions/Comments?