harnessing events - rss winter2006rsilvafi/ics221/harnessing events... · knowledge depot [krz97]...
TRANSCRIPT
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.
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
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.
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]
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
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
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……
Event based applicationsEvent based applications
��EDEMEDEM
��Knowledge DepotKnowledge Depot
��CASSIUSCASSIUS
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.
Harnessing EventsHarnessing Events 1010
ApproachApproach�� ExpectationExpectation--Driven Event Monitoring (EDEM)Driven Event Monitoring (EDEM)
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
Harnessing EventsHarnessing Events 1212
Usage scenarioUsage scenario�� A cargo query formA cargo query form
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)
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)
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 {
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}
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
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
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
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
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
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
Awareness in Awareness in OrganizationsOrganizations
Knowledge Depot [KRZ97]Knowledge Depot [KRZ97]
CASSIUS [KR01]CASSIUS [KR01]
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)
Harnessing EventsHarnessing Events 2525
Knowledge Depot InterfaceKnowledge Depot Interface
CASSIUS Awareness Server [KR01]CASSIUS Awareness Server [KR01]
Collecting and combining Collecting and combining information from different sourcesinformation from different sources
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
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?
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)
Harnessing EventsHarnessing Events 3030
CASSIUS serverAWACSSimulator
Gauges
CASSIUS [KR01]CASSIUS [KR01]Interchangeability and the DetailInterchangeability and the Detail--Variety TradeoffVariety Tradeoff
Harnessing EventsHarnessing Events 3131
Managing SubscriptionsManaging Subscriptions
Impromptu: security Impromptu: security awareness in collaborationawareness in collaboration
See [See [DePaulaDePaulaet al. 05]et al. 05]
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
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
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
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
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
Event Notification Event Notification ServicesServices
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……
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
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)
Harnessing EventsHarnessing Events 4242
Siena overviewSiena overview
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……
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?
Generalized Generalized infrastructuresinfrastructures
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……
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
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
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
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
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
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
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……
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
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
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)
Questions / commentsQuestions / comments
ReferencesReferences
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.
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.