Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97]...

60
Harnessing Events Harnessing Events ICS221 Software Engineering ICS221 Software Engineering Winter Quarter 2006 Winter Quarter 2006 Roberto Silveira Silva Filho Roberto Silveira Silva Filho [email protected] [email protected] Jan 31 Jan 31 st st , 2006. , 2006.

Transcript of Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97]...

Page 1: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events

ICS221 Software EngineeringICS221 Software EngineeringWinter Quarter 2006Winter Quarter 2006

Roberto Silveira Silva FilhoRoberto Silveira Silva [email protected]@ics.uci.edu

Jan 31Jan 31stst, 2006., 2006.

Page 2: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 22

OutlineOutline

�� Events and Software EngineeringEvents and Software Engineering�� BackgroundBackground�� Publish/subscribe interactionPublish/subscribe interaction

�� ApplicationsApplications�� ExpectationExpectation--Driven Monitoring (EDEM)Driven Monitoring (EDEM)�� Knowledge DepotKnowledge Depot�� CASSIUS (Awareness)CASSIUS (Awareness)

�� InfrastructuresInfrastructures�� Event Notification ServicesEvent Notification Services

�� SIENA (ContentSIENA (Content--based network)based network)�� Current ResearchCurrent Research

�� YANCEESYANCEES

�� ConclusionsConclusions

Page 3: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 33

EventsEvents

�� An An eventevent expresses:expresses:�� a state change (or transition) in a software system componenta state change (or transition) in a software system component�� or represents some temporal fact in the real worldor represents some temporal fact in the real world

�� Both the world and computational systems are in constant Both the world and computational systems are in constant transition, generating and consuming information.transition, generating and consuming information.

�� Events are computational representations of those temporal Events are computational representations of those temporal transitions and state changes.transitions and state changes.

�� EventEvent--driven applications respond to those computational and driven applications respond to those computational and environmental changes. environmental changes.

�� They are usually build according to the publish/subscribe They are usually build according to the publish/subscribe communication style or pattern. communication style or pattern.

Page 4: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 44

Publish/subscribe interactionPublish/subscribe interaction�� Also known as implicit invocationAlso known as implicit invocation�� Implemented by the Implemented by the Observer design patternObserver design pattern[Gamma et al. 95] [Gamma et al. 95]

Page 5: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 55

Publish/subscribe main Publish/subscribe main characteristicscharacteristics

�� OneOne--toto--many communicationmany communication

�� Loose coupling with respect to:Loose coupling with respect to:�� Time (asynchronous notifications)Time (asynchronous notifications)

�� Location (possibly distribution)Location (possibly distribution)

�� AnonymityAnonymity�� publishers (subjects) and subscribers (observers) do not publishers (subjects) and subscribers (observers) do not

need to know about each otherneed to know about each other

Page 6: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 66

Publish/subscribe benefitsPublish/subscribe benefits

�� Support for system evolutionSupport for system evolution�� publishers and subscribers can be easily added/removedpublishers and subscribers can be easily added/removed�� Subsystem independenceSubsystem independence

�� Dynamic changeDynamic change�� Potential for fault tolerancePotential for fault tolerance

�� Heterogeneous systems integrationHeterogeneous systems integration�� Multicast communication is inherent to the modelMulticast communication is inherent to the model

Page 7: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 77

ApplicationsApplications�� Software EngineeringSoftware Engineering

�� User Interface Analysis and Design (EDEM [HR98])User Interface Analysis and Design (EDEM [HR98])�� Testing (MONARC [Dias2004])Testing (MONARC [Dias2004])�� Architectural Styles (C2 [TMA+96] )Architectural Styles (C2 [TMA+96] )�� User interface toolkits (AWT for User interface toolkits (AWT for egeg.).)

�� AwarenessAwareness�� Organizational (Knowledge Depot [KRZ97])Organizational (Knowledge Depot [KRZ97])�� Integration (CASSIUS [KR01])Integration (CASSIUS [KR01])�� Presence (Portholes [GLT99])Presence (Portholes [GLT99])�� Security and collaboration (Impromptu [DePaula+05])Security and collaboration (Impromptu [DePaula+05])�� Software Development Workplace (Software Development Workplace (PalantPalantíírr [SNH03])[SNH03])

�� Workflow Management Systems (ex. JEDI [CN01])Workflow Management Systems (ex. JEDI [CN01])�� System integrationSystem integration�� And many othersAnd many others……

Page 8: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Event based applicationsEvent based applications

��EDEMEDEM

��Knowledge DepotKnowledge Depot

��CASSIUSCASSIUS

Page 9: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 99

BackgroundBackground

�� Software Design ExpectationsSoftware Design Expectations�� Expectations influence designs, designs embody expectations Expectations influence designs, designs embody expectations �� Mismatches between expectations and how applications are actuallMismatches between expectations and how applications are actually y

used can lead to breakdowns.used can lead to breakdowns.�� Identification and resolution of mismatches can help improve fitIdentification and resolution of mismatches can help improve fit

between design and usebetween design and use

�� Identifying mismatches entails observing actual use and comparinIdentifying mismatches entails observing actual use and comparing it g it against expectations.against expectations.

�� ExpectationExpectation--Driven Event MonitoringDriven Event Monitoring�� techniques to enable largetechniques to enable large--scale incorporation of usage data and user scale incorporation of usage data and user

feedback in SW development, to help uncover mismatches and improfeedback in SW development, to help uncover mismatches and improve ve the designthe design--use fit.use fit.

Page 10: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1010

ApproachApproach�� ExpectationExpectation--Driven Event Monitoring (EDEM)Driven Event Monitoring (EDEM)

Page 11: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1111

ApproachApproach�� DevelopersDevelopers

�� design applications and identify usage expectationsdesign applications and identify usage expectations�� create agents to collect usage data and user feedbackcreate agents to collect usage data and user feedback

�� AgentsAgents�� deployed over the Internet to run on user computers (via deployed over the Internet to run on user computers (via

HTTP)HTTP)�� perform abstraction, selection, reduction, contextperform abstraction, selection, reduction, context--capture as capture as

needed to allow actual use to be compared against expectationsneeded to allow actual use to be compared against expectations�� report data and feedback to developers (via Ereport data and feedback to developers (via E--mail)mail)

�� Data and feedbackData and feedback�� inform further evolution of expectations, application, and inform further evolution of expectations, application, and

agentsagents

Page 12: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1212

Usage scenarioUsage scenario�� A cargo query formA cargo query form

Page 13: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1313

AgentsAgents�� Agents monitor use and collect Agents monitor use and collect

data unobtrusively data unobtrusively

�� Agents may post messages Agents may post messages (optional)(optional)

Page 14: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1414

UsersUsers�� Users may learn more about Users may learn more about

expectations (optional)expectations (optional)

�� Users may provide feedback Users may provide feedback (optional)(optional)

Page 15: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1515

Agent AuthoringAgent Authoring�� An agent that fires when the An agent that fires when the ““ mode of travelmode of travel”” section is editedsection is edited

} Trigger

} Guard

} Actions

Agents {

Page 16: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1616

Event SpecificationEvent Specification�� Detecting when the user selects Detecting when the user selects ““ AIRAIR”” as the as the ““ mode of travelmode of travel””

Widgets { Events}

Page 17: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1717

ArchitectureArchitecture

Agent Specs saved w/ URL

Development Computer

Java Virtual Machine

EDEMActive Agents

ApplicationUI Components

Top Level Window& UI Events

Property Queries

Property Values HTTPServer

DevelopmentComputer

AgentSpecs

EDEMServer

CollectedData

User Computer

Java Virtual Machine

EDEMActive Agents

ApplicationUI Components

Top Level Window& UI Events

Property Queries

Property Values

Agent Specs loaded via URL

Agent Reports sent via E-mail

Page 18: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1818

Reference Architecture (see ACM Reference Architecture (see ACM Computing Surveys)Computing Surveys)

SystemModel of

UI & App:

ComponentsEvents

PropertiesMethods

Obj Obj Obj

Obj Obj Obj

Obj Obj Obj

Obj

Obj

DataCapture

Abstraction, Selection, Context,

Reduction

DataPackaging

DataAnalysis

DataPrep

DataTransport

AnalystModel of

UI & App:

Features,Dialogs, Controls,

User-Supplied Values, User

Tasks

Mapping

Page 19: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 1919

Instrumentation intertwined w/ app

Reference Architecture Reference Architecture Traditional InstrumentationTraditional Instrumentation

SystemModel of

UI & App:

ComponentsEvents

PropertiesMethods

Obj Obj Obj

Obj Obj Obj

Obj Obj Obj

Obj

Obj

DataCapture

Abstraction, Selection, Context,

Reduction

DataPackaging

DataAnalysis

DataPrep

DataTransport

AnalystModel of

UI & App:

Features,Dialogs, Controls,

User-Supplied Values, User

Tasks

Mapping

Page 20: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2020

Event monitoring infrastructure

Expectation Agents

Reference Architecture (EDEM)Reference Architecture (EDEM)

SystemModel of

UI & App:

ComponentsEvents

PropertiesMethods

Obj Obj Obj

Obj Obj Obj

Obj Obj Obj

Obj

Obj

DataCapture

Abstraction, Selection, Context,

Reduction

DataPackaging

DataAnalysis

DataPrep

DataTransport

AnalystModel of

UI & App:

Features,Dialogs, Controls,

User-Supplied Values, User

Tasks

Mapping

“Pluggable” Data Abstraction, Selection, Context-Capture, and

Reduction

Page 21: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2121

EDEM EDEM -- ConclusionsConclusions

�� Usage expectationsUsage expectations�� help guide data collectionhelp guide data collection

�� raise awareness of implications of design decisionsraise awareness of implications of design decisions

�� Agent architectureAgent architecture�� abstraction, selection, reduction inabstraction, selection, reduction in--context and prior to reportingcontext and prior to reporting

�� independent evolution of instrumentation and applicationindependent evolution of instrumentation and application

�� CombinedCombined�� higher quality data (v. beta tests) with less restrictions on evhigher quality data (v. beta tests) with less restrictions on evaluation aluation

size, scope, location, duration (v. usability tests)size, scope, location, duration (v. usability tests)

�� a complementary source of usage and usability informationa complementary source of usage and usability information

Page 22: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2222

Other Possible ApplicationsOther Possible Applications�� Use of longUse of long--term information about user and usersterm information about user and users’’ behavior to behavior to

supportsupport�� adaptive UI and application behavioradaptive UI and application behavior

�� ““ smartersmarter”” delivery of help/suggestions/assistancedelivery of help/suggestions/assistance

�� Support for monitoring of other software systems that demandsSupport for monitoring of other software systems that demands�� InstrumentationInstrumentation: event and state information can be easily : event and state information can be easily ““ tappedtapped””

�� AbstractionAbstraction: low: low--level data must be related to higher level concepts of level data must be related to higher level concepts of interestinterest

�� ScaleScale: available information exceeds that which can practically be co: available information exceeds that which can practically be collectedllected

�� EvolutionEvolution: data collection needs evolve over time more quickly than : data collection needs evolve over time more quickly than applicationapplication

Page 23: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Awareness in Awareness in OrganizationsOrganizations

Knowledge Depot [KRZ97]Knowledge Depot [KRZ97]

CASSIUS [KR01]CASSIUS [KR01]

Page 24: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2424

Knowledge Depot [KRZ97]Knowledge Depot [KRZ97]

�� ProblemProblem: In large organizations, users want to be informed : In large organizations, users want to be informed about different topicsabout different topics

�� information overloadinformation overload�� Many eMany e--mailsmails�� Many mailing listsMany mailing lists�� That have no structureThat have no structure

�� Approach: Approach: Knowledge depotKnowledge depot�� Categorization:Categorization:Organize messages according to topicsOrganize messages according to topics

�� A message can be in more than one topicA message can be in more than one topic�� A topic is a filter in the message contentA topic is a filter in the message content

�� Summarization:Summarization:Send topic summaries periodicallySend topic summaries periodically�� Visual programming (subscription)Visual programming (subscription)

Page 25: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2525

Knowledge Depot InterfaceKnowledge Depot Interface

Page 26: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

CASSIUS Awareness Server [KR01]CASSIUS Awareness Server [KR01]

Collecting and combining Collecting and combining information from different sourcesinformation from different sources

Page 27: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2727

CASSIUSAwareness

Server

Physical Environments (Portholes, Active Badges) Complex tools: Portholes

Simple desktop widgets

Mobile Awareness

Ambient Fixtures [ishii]Shared Artifacts

(Papers, spreadsheets, databases)

Virtual Environments(MUDs, chat rooms)

Awareness ToolsInformation Sources

Mobile Workers(Customer Rep, Support Staff)

Writer Developer PrinterDocument

Page 28: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2828

Two Tradeoffs in SubscriptionTwo Tradeoffs in Subscription

�� Subscription DetailSubscription Detail--Variety TradeoffVariety Tradeoff�� Many details but low variety (e.g. active badges)Many details but low variety (e.g. active badges)�� Few details but high variety (e.g. Few details but high variety (e.g. MUDsMUDs))�� What can I subscribe to and how to manage my What can I subscribe to and how to manage my

subscriptions?subscriptions?

�� Lack of ConfigurabilityLack of Configurability�� Delivery of information fixed (e.g. by application Delivery of information fixed (e.g. by application

programmer)programmer)�� However context frequently changesHowever context frequently changes�� How can I change my application subscription to How can I change my application subscription to

include/exclude this new/old information?include/exclude this new/old information?

Page 29: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 2929

CASSIUS providesCASSIUS provides

�� Awareness information router and integrator. Awareness information router and integrator. �� Events are collected from many sources using HTTP Events are collected from many sources using HTTP

protocolprotocol

�� Ability to define event hierarchies of event sourcesAbility to define event hierarchies of event sources�� EndEnd--user runtime change of subscriptionsuser runtime change of subscriptions

�� GUI that supports event hierarchy browsing and GUI that supports event hierarchy browsing and subscription editionsubscription edition

�� Support for mobility and subscription change:Support for mobility and subscription change:�� Persistent notifications Persistent notifications

�� Can be retrieved later (pull)Can be retrieved later (pull)

�� Persistent subscriptions Persistent subscriptions �� can also be modified (updated)can also be modified (updated)

Page 30: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3030

CASSIUS serverAWACSSimulator

Gauges

CASSIUS [KR01]CASSIUS [KR01]Interchangeability and the DetailInterchangeability and the Detail--Variety TradeoffVariety Tradeoff

Page 31: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3131

Managing SubscriptionsManaging Subscriptions

Page 32: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Impromptu: security Impromptu: security awareness in collaborationawareness in collaboration

See [See [DePaulaDePaulaet al. 05]et al. 05]

Page 33: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3333

Security in Collaboration Security in Collaboration -- ProblemProblem

�� TradeTrade--offsoffs�� Secure Secure ���� useful and trustableuseful and trustable�� Theoretically secure Theoretically secure ���� effectively secureeffectively secure

�� As security and privacy mechanisms fade into As security and privacy mechanisms fade into the background, the harder it becomes for the background, the harder it becomes for people to understand the result of their actions people to understand the result of their actions and whether they will cause privacy and and whether they will cause privacy and security problemssecurity problems

Page 34: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3434

ApproachApproach

�� Making certain privacy and security Making certain privacy and security mechanisms in networked environment visible mechanisms in networked environment visible so as to reveal the consequences of peopleso as to reveal the consequences of people’’ s s actionsactions

�� ImpromptuImpromptu�� A test bed application to assess the combination of A test bed application to assess the combination of

activity and configuration with awareness in an adactivity and configuration with awareness in an ad--hoc collaboration environmenthoc collaboration environment

Page 35: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3535

circles represent different sharing levels: view, read-only, read-write,

persistent

invisible file

group persistent

files

Pie sections represent

different users

Test bed: Impromptu Test bed: Impromptu -- interfaceinterface�� Different pie slices representDifferent pie slices represent

peers in the networkpeers in the network

�� Users can drag and drop filesUsers can drag and drop files

to be sharedto be shared

�� Concentric circles defineConcentric circles define

different sharing levelsdifferent sharing levels

�� Files placed in the centerFiles placed in the center

are persistent and available toare persistent and available to

all the members of the groupall the members of the group

�� Files outside the pie are notFiles outside the pie are not

shared and become invisibleshared and become invisible

to other peersto other peers

�� Files blink with the peer Files blink with the peer

color whenever someone readscolor whenever someone reads

or modifies itor modifies it

Page 36: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3636

Impromptu P2P file sharing [Impromptu P2P file sharing [DePaulaDePaula et al. 2005]et al. 2005]

Web-DAV file sharingFile access and GUI events

Web Folder

Event bus

Web Folder

Event bus

Web Folder

Event bus

Web Folder

Event bus

Page 37: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3737

local web folder

group file repositoryweb folder proxy

mDNSlocal web folder

group file repositoryweb folder proxy

mDNSPeer discovery protocol

VIRTUAL WEB FOLDER

WEB-DAV protocol

event bus event busVIRTUAL PUB/SUB BUS

rep. events rep. eventsPeer publishing of events

fileaccess

fileaccess

Impromptu Impromptu -- architecturearchitecture

Page 38: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Event Notification Event Notification ServicesServices

Page 39: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 3939

Event Notification ServersEvent Notification Servers

�� Distributed implementation of the Publish/Subscribe Distributed implementation of the Publish/Subscribe patternpattern

�� Better decoupling of publishers and subscribersBetter decoupling of publishers and subscribers�� OneOne--toto--many and manymany and many--toto--many communicationmany communication�� Better anonymity of publishers and subscribersBetter anonymity of publishers and subscribers�� Can provide event filtering and additional services to Can provide event filtering and additional services to

support different applicationssupport different applications�� Examples:Examples:

�� Elvin [FM99] Elvin [FM99] �� Siena [CRW01]Siena [CRW01]�� Many othersMany others……

Page 40: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4040

EE--N Services General ModelN Services General Model

�� Publishers generate events (messages)Publishers generate events (messages)

�� SubscribersSubscribers�� announce interest on events using subscriptionsannounce interest on events using subscriptions

�� receive notifications when events match the subscriptionreceive notifications when events match the subscription

EventNotificationService

publishnotify

subscribe

subscriber

publisher

publisher

m1m2

m3

m2m1 m3

events

notifications

Logically centralized

Page 41: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4141

Siena [CRW01] Siena [CRW01] ContentContent--based networkbased network

�� ChallengesChallenges�� InternetInternet--scale contentscale content--based routing networkbased routing network�� TradeTrade--off: expressiveness versus scalabilityoff: expressiveness versus scalability

�� SolutionSolution�� TopologyTopology: general graph of routers: general graph of routers�� AlgorithmAlgorithm: subscription forwarding : subscription forwarding

(advertisement) and merging (based on coverage)(advertisement) and merging (based on coverage)�� RoutingRouting: based on shortest path (hops): based on shortest path (hops)

Page 42: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4242

Siena overviewSiena overview

Page 43: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4343

Siena main featuresSiena main features

�� A network of contentA network of content--based routers that providebased routers that provide�� InternetInternet--scale distributionscale distribution

�� ContentContent--based filtering (subscription) capabilitybased filtering (subscription) capability�� Events are represented as (attribute/value) pairs.Events are represented as (attribute/value) pairs.

�� Filter capabilityFilter capability�� Content operators as > < == <= and >=Content operators as > < == <= and >=

�� String matching: String matching: ‘‘ ** ’’

�� Basic types: string, Basic types: string, intint, long, , long, booleanboolean, double., double.

�� Those benefits result in some open issuesThose benefits result in some open issues……

Page 44: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4444

InternetInternet--scale contentscale content--based routing: based routing: open problems [Rosenblum2003,2005]open problems [Rosenblum2003,2005]

�� There is no killer application to Siena (yet)There is no killer application to Siena (yet)�� Most applications are localized (clustered)Most applications are localized (clustered)�� Who really needs internetWho really needs internet--scale events?scale events?

�� How to add security to contentHow to add security to content--based routing?based routing?�� How to route events based on their content without reading its cHow to route events based on their content without reading its content?ontent?�� How to prevent denial of service attacks? Subscribe to How to prevent denial of service attacks? Subscribe to ‘‘ ** ’’ (all events), (all events),

for example.for example.

�� Mobility of publishers and subscribersMobility of publishers and subscribers�� How to recalculate the routing?How to recalculate the routing?�� Where to store the notifications while subscribers are offWhere to store the notifications while subscribers are off--line?line?

Page 45: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Generalized Generalized infrastructuresinfrastructures

Page 46: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4646

Can notification servers as Siena Can notification servers as Siena support all applications?support all applications?

�� The answer is The answer is NO!NO!�� Siena focus on scalability and routing issuesSiena focus on scalability and routing issues

�� Many of the awareness, monitoring and collaboration Many of the awareness, monitoring and collaboration features are not supported:features are not supported:

�� mobility and event source hierarchy browsing, pull notification,mobility and event source hierarchy browsing, pull notification,endend--user runtime subscription change (CASSIUS)user runtime subscription change (CASSIUS)

�� Advanced event processing as aggregation and abstraction (EDEM)Advanced event processing as aggregation and abstraction (EDEM)

�� Event summarization capability (EDEM, Knowledge Depot)Event summarization capability (EDEM, Knowledge Depot)

�� PeerPeer--toto--peer support (Impromptu)peer support (Impromptu)

�� And many othersAnd many others……

Page 47: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4747

YANCEES [SDR03]YANCEES [SDR03]

Research questions:Research questions:�� Can we build a flexible (extensible and configurable) Can we build a flexible (extensible and configurable)

infrastructure to support all those applications?infrastructure to support all those applications?�� How flexible should it be?How flexible should it be?�� What are the tradeWhat are the trade--offs involved?offs involved?

�� In other words, can we build a flexible pub/sub In other words, can we build a flexible pub/sub service that supports different application service that supports different application requirements?requirements?

�� Our prototype: YANCEES Our prototype: YANCEES �� Yet Another Configurable and Extensible Event ServiceYet Another Configurable and Extensible Event Service

Page 48: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4848

YANCEES current approachYANCEES current approach

�� Separate a pub/sub infrastructure into its basic design Separate a pub/sub infrastructure into its basic design dimensions:dimensions:�� Notification, Subscription, Routing, Event representation Notification, Subscription, Routing, Event representation

and Protocolsand Protocols

�� Combine:Combine:�� Extensible languages (XML) and plugExtensible languages (XML) and plug--insins�� FiltersFilters�� AdaptersAdapters

�� Thorough a configuration managerThorough a configuration manager�� Over a common frameworkOver a common framework

Page 49: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 4949

Publish/subscribe design dimensionsPublish/subscribe design dimensions

Interaction protocolsInteraction protocols: authentication, : authentication, manual roamingmanual roaming

Infrastructure protocolsInfrastructure protocols: federation, : federation, replication, faultreplication, fault--tolerancetolerance

other kinds of interaction with the other kinds of interaction with the serviceservice

ProtocolProtocol

tupletuple--based, recordbased, record--based, XML based, XML documents, edocuments, e--mail textmail text

Specifies how events are Specifies how events are representedrepresented

EventEvent

clientclient--side (as EDEM), serverside (as EDEM), server--side (as side (as CASSIUS)CASSIUS)

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

ResourceResource

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

NotificationNotification

contentcontent--based, topicbased, topic--based, advanced event based, advanced event processingprocessing

specifies how subscribers express specifies how subscribers express interest in subsets of eventsinterest in subsets of events

SubscriptionSubscription

ExampleExampleDefinitionDefinitionDimensionDimension

Page 50: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5050

Approach summaryApproach summary

plug-ins, filters

and adapters

existing pub/sub

infrastructures

startup-time

builder

notification, event and

subscription languages

(XMLSchema)

domain-specific

YANCEES

instance

YANCEES corearchitecture

description

Page 51: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5151

YANCEES FrameworkYANCEES Framework

YANCEES pub/sub

Pub/sub

core

Publisher

plug-in prot

Client stub

plug-infilter filter

filter

plug-in

plug-in plug-in

Subscriber

Client stub

plug-in

plug-in

filter

Page 52: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5252

How to extend YANCEES? How to extend YANCEES?

XML

Schema

XML

Schemas

original

models

extension

plug-in plug-in

plug-in

matches

original

component set

plug-in

+

plug-in and filters

matching

extension

Config

file

filter

filter prot

+

adapter

configuration

describing

new components

startup

builder

domain-specific

YANCEES

instance

YANCEES

core+

1. Define a language 1. Define a language extension using extension using XML SchemaXML Schema

2. Implement plug2. Implement plug--ins and filters for ins and filters for that extensionthat extension

3. register plug3. register plug--in in in in the configuration the configuration filefile

4. Restart the server 4. Restart the server with the new with the new configurationconfiguration

plug-insadapters

lege

nd

filters

protocols

Page 53: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5353

Positive Experiences (so far)Positive Experiences (so far)

�� Different applications were supportedDifferent applications were supported�� Event monitoring (Swirl)Event monitoring (Swirl)

�� PeerPeer--toto--peer collaboration (Impromptu)peer collaboration (Impromptu)

�� The ability to add The ability to add input and output filtersinput and output filtersand to and to change the change the event matching algorithmsevent matching algorithmsand and protocol protocol plugplug--insins make it easy to customize the infrastructuremake it easy to customize the infrastructure

�� However, there are costsHowever, there are costs……

Page 54: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5454

Current IssuesCurrent Issues�� Framework costs:Framework costs:

�� Initial generalization and implementationInitial generalization and implementation�� Initial learning curve (not much worse than more advanced pub/suInitial learning curve (not much worse than more advanced pub/sub b

systems as CORBAsystems as CORBA--NS)NS)

�� Performance:Performance:�� The XML extensibility and the framework add extra overhead (arouThe XML extensibility and the framework add extra overhead (around nd

100 ms)100 ms)

�� InterdependenciesInterdependencies�� Hard to coHard to co--evolve the subscription language with the infrastructureevolve the subscription language with the infrastructure�� Crosscutting concernsCrosscutting concerns

�� Event model imposes a data coupling in all dimensionsEvent model imposes a data coupling in all dimensions

�� Usability:Usability:�� XML is not a good subscription languageXML is not a good subscription language�� Depending on the feature to be added, too many points need to beDepending on the feature to be added, too many points need to be

adapted/extendedadapted/extended

Page 55: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5555

Future workFuture work

�� ReRe--think (design) the architecturethink (design) the architecture�� Restrict the variability dimensionsRestrict the variability dimensions�� Modularize the main concernsModularize the main concerns�� Automate language extension and programmingAutomate language extension and programming

�� Apply separation of concerns techniques:Apply separation of concerns techniques:�� AOPAOP�� Agent technologyAgent technology�� Automatic subscription generatorsAutomatic subscription generators�� othersothers……

�� Improve overall usabilityImprove overall usability

Page 56: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5656

ConclusionsConclusions

�� EventEvent--based interaction provide an interesting paradigm for based interaction provide an interesting paradigm for software engineeringsoftware engineering�� DecouplingDecoupling�� IntegrationIntegration�� AnonymityAnonymity�� Multicast communicationMulticast communication

�� Different applications can benefit from this paradigm. Some Different applications can benefit from this paradigm. Some examples: EDEM, Awareness, Groupware and Software examples: EDEM, Awareness, Groupware and Software EngineeringEngineering

�� Many issues are still open:Many issues are still open:�� EventEvent--based infrastructures (Siena, YANCEES)based infrastructures (Siena, YANCEES)�� EventEvent--based interaction (usability, integration, application support)based interaction (usability, integration, application support)

Page 57: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Questions / commentsQuestions / comments

Page 58: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

ReferencesReferences

Page 59: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 5959

ReferencesReferences�� [JL01] H. A. Jacobsen and F. [JL01] H. A. Jacobsen and F. LlibartLlibart. Tutorial on Publish/subscribe Systems. Tutorial . Tutorial on Publish/subscribe Systems. Tutorial

delivered at the 17th International Conference on Data Engineeridelivered at the 17th International Conference on Data Engineering, April 2001, Heidelberg, ng, April 2001, Heidelberg, Germany. Presentation:http://www.eecg.toronto.edu/~jacobsen/courGermany. Presentation:http://www.eecg.toronto.edu/~jacobsen/courses/icde01/sld001.htmses/icde01/sld001.htm

�� [GHJV95] Gamma, E., Helm, R., Johnson, R. & [GHJV95] Gamma, E., Helm, R., Johnson, R. & VlissidesVlissides, J. (1995). Design Patterns: , J. (1995). Design Patterns: Elements of Reusable ObjectElements of Reusable Object--Oriented Software. Reading Mass., Addison Wesley.Oriented Software. Reading Mass., Addison Wesley.

�� [CRW01] Antonio [CRW01] Antonio CarzanigaCarzaniga, David S. , David S. RosenblumRosenblum, and Alexander L. Wolf, Design and , and Alexander L. Wolf, Design and Evaluation of a WideEvaluation of a Wide--Area Event Notification Service, ACM Transactions on Computer Area Event Notification Service, ACM Transactions on Computer Systems, vol. 9, no. 3, August 2001, pp. 332Systems, vol. 9, no. 3, August 2001, pp. 332--383. 383.

�� [HR98] Hilbert, D., Redmiles, D. An Approach to Large[HR98] Hilbert, D., Redmiles, D. An Approach to Large--Scale Collection of Application Scale Collection of Application Usage Data Over the Internet, Proceedings of the Twentieth InterUsage Data Over the Internet, Proceedings of the Twentieth International Conference on national Conference on Software Engineering (ICSE '98, Kyoto, Japan), IEEE Computer SocSoftware Engineering (ICSE '98, Kyoto, Japan), IEEE Computer Society Press, April 19iety Press, April 19--25, 25, 1998, pp. 1361998, pp. 136--145.145.

�� [TMA+96] R. Taylor, N. [TMA+96] R. Taylor, N. MedvidovicMedvidovic, K. Anderson, E.J. Whitehead, J. Robbins. "A , K. Anderson, E.J. Whitehead, J. Robbins. "A ComponentComponent-- and Messageand Message--Based Architectural Style for GUI Software," IEEE Transactions Based Architectural Style for GUI Software," IEEE Transactions on Software Engineering, June 1996. on Software Engineering, June 1996.

�� [SNH03] Anita [SNH03] Anita SarmaSarma, Zahra , Zahra NorooziNorooziand Andrand Andréé van van derderHoekHoek , , PalantPalantíírr: Raising : Raising Awareness among Configuration Management Workspaces . In ProceedAwareness among Configuration Management Workspaces . In Proceedings of Twentyings of Twenty--Fifth Fifth International Conference on Software International Conference on Software Engineering,ppEngineering,pp444444--454, May 2003, Portland, Oregon. 454, May 2003, Portland, Oregon.

�� [KR01] [KR01] Kantor, M., Redmiles, D. Creating an Infrastructure for UbiquitoKantor, M., Redmiles, D. Creating an Infrastructure for Ubiquitous Awareness, Eight IFIP us Awareness, Eight IFIP TC 13 Conference on HumanTC 13 Conference on Human--Computer Interaction (INTERACT 2001Computer Interaction (INTERACT 2001--Tokyo, Japan), July 2001, Tokyo, Japan), July 2001, pp. 431pp. 431--438.438.

Page 60: Harnessing Events - RSS Winter2006rsilvafi/ics221/Harnessing Events... · Knowledge Depot [KRZ97] Problem : In large organizations, users want to be informed about different topics

Harnessing EventsHarnessing Events 6060

References (cont)References (cont)�� [DePaula+05] [DePaula+05] DePaulaDePaula, R., Ding, X., Dourish, P., , R., Ding, X., Dourish, P., NiesNies, K., , K., PilletPillet, B., Redmiles, D., , B., Redmiles, D., RenRen, J., , J.,

Rode, J., and Silva Filho, R. S. In the Eye of the Beholder: A Rode, J., and Silva Filho, R. S. In the Eye of the Beholder: A VisualizationVisualization--based Approach based Approach to Information System Security. International Journal of Humanto Information System Security. International Journal of Human--Computer Studies Computer Studies -- Special Special Issue on HCI Research in Privacy and Security, Vol. 63 , Issue Issue on HCI Research in Privacy and Security, Vol. 63 , Issue 11--2, pp. 52, pp. 5--24. July 2005.24. July 2005.

�� [SDR03] [SDR03] Silva Filho R. S., De Souza C. R. B., Redmiles D. F. The DesignSilva Filho R. S., De Souza C. R. B., Redmiles D. F. The Designof a Configurable, of a Configurable, Extensible and Dynamic Notification Service. in Proc. Second IntExtensible and Dynamic Notification Service. in Proc. Second International Workshop on ernational Workshop on Distributed EventDistributed Event--Based Systems (DEBS'03), In conjunction with The ACM SIGMOD/PODSBased Systems (DEBS'03), In conjunction with The ACM SIGMOD/PODSConference, San Diego, CA, USA, pp.1Conference, San Diego, CA, USA, pp.1--8, June 8th, 2003.8, June 8th, 2003.

�� [CN01] [CN01] CugolaCugola, G., E. D. Nitto, et al. (2001). "The Jedi Event, G., E. D. Nitto, et al. (2001). "The Jedi Event--Based Infrastructure and Its Based Infrastructure and Its Application on the DeApplication on the De--velopmentvelopmentof the OPSS WFMS." IEEE Transactions on Software of the OPSS WFMS." IEEE Transactions on Software Engineering 27(9): 827Engineering 27(9): 827--849.849.

�� [Rosenblum2003] [Rosenblum2003] RosenblumRosenblum, D. , D. Some Open Problems in Publish/Subscribe NetworkingSome Open Problems in Publish/Subscribe Networking(keynote presentation at DEBS'03)(keynote presentation at DEBS'03)

�� [Rosenblum2005] [Rosenblum2005] RosenblumRosenblum, D. , D. ContentContent--Based Publish/Subscribe: A ReBased Publish/Subscribe: A Re--AssessmentAssessment(keynote presentation at DOA 2005) (keynote presentation at DOA 2005)

�� [FM99] Fitzpatrick, G., T. Mansfield, et al. 1999. Augmenting th[FM99] Fitzpatrick, G., T. Mansfield, et al. 1999. Augmenting the workaday world with e workaday world with Elvin, Proceedings of 6th European Conference on Computer SupporElvin, Proceedings of 6th European Conference on Computer Supported Cooperative Work ted Cooperative Work ECSCW'99, 431ECSCW'99, 431--450.450.

�� [GLT99] [GLT99] GirgensohnGirgensohn, A., Lee, A., Turner, T. Being in Public and Reciprocity: Desig, A., Lee, A., Turner, T. Being in Public and Reciprocity: Design for Portholes n for Portholes and User Preference, In Humanand User Preference, In Human--Computer Interaction INTERACT '99, IOS Press, pp. 458Computer Interaction INTERACT '99, IOS Press, pp. 458--465, 465, 1999.1999.