CSCI 444 / CIS 644
Event Driven Programming
Outline
I. What is an event driven system?
II. What is event driven programming?
III. Course Overview
I. What is an event driven system?
• An event is an occurrence of interest
– Events take place at a particular time
• An event driven system is a computer
system where events are a driving force
– Events from the user (mouse click)
– Internal events (variable assignment, timers)
– Events from other computing systems (any
message arriving across the network)
Examples of Event Driven Systems
• Vending Machines
• Cruise Control System in a car
• TV
• Any modern windowing program
– e.g. PowerPoint
What are the events associated with each of
these?
II. Event Driven Programming
• Fundamentally a different paradigm from
procedural (or OOP or functional or logic)
programming
– System is made of objects
– System spends much of its time in stasis
– Events occur that propagate through the
system and then it returns to statis
Basic Event Driven Programming
Model
Event Source Event Handler
System Objects
notifies
modifies
What makes this model unique?
1. Loose Coupling between source and
handler
– Runtime registration
– Multicasting
– Multiplexing
– Separate Compilation
– Inverted Semantics
Differences continued
2. State based control
• Behavior of system depends on its state
• E.g. Coke machine only delivers pop after
enough money has been inserted
• Good ways and bad ways to implement this
Differences continued
3. Concurrent and Distributed processing
• If a handler takes too much time, other
events might be delayed/lost
• One solution is to have handler execute is a
separate thread.
• Concurrency concerns now become important.
• E.g. what happens is multiple events arrive in
rapid sequence? Might there be multiple threads
executing in the same handler?
Concurrent and Distributed
Processing - continued
• Distributed Processing
– Source and Handler might be on different
computing systems entirely.
– E.g. a web browser makes a request for a
web page from a server.
– Client / Server computing is fairly well
understood. There are many other models,
however.
Course Outline
• Java Event Driven Programming
• Component Based Programming in Java
• Concurrent and Distributed Event
Programming
• Software Engineering Event Driven
Systems

Introduction.ppt

  • 1.
    CSCI 444 /CIS 644 Event Driven Programming
  • 2.
    Outline I. What isan event driven system? II. What is event driven programming? III. Course Overview
  • 3.
    I. What isan event driven system? • An event is an occurrence of interest – Events take place at a particular time • An event driven system is a computer system where events are a driving force – Events from the user (mouse click) – Internal events (variable assignment, timers) – Events from other computing systems (any message arriving across the network)
  • 4.
    Examples of EventDriven Systems • Vending Machines • Cruise Control System in a car • TV • Any modern windowing program – e.g. PowerPoint What are the events associated with each of these?
  • 5.
    II. Event DrivenProgramming • Fundamentally a different paradigm from procedural (or OOP or functional or logic) programming – System is made of objects – System spends much of its time in stasis – Events occur that propagate through the system and then it returns to statis
  • 6.
    Basic Event DrivenProgramming Model Event Source Event Handler System Objects notifies modifies
  • 7.
    What makes thismodel unique? 1. Loose Coupling between source and handler – Runtime registration – Multicasting – Multiplexing – Separate Compilation – Inverted Semantics
  • 8.
    Differences continued 2. Statebased control • Behavior of system depends on its state • E.g. Coke machine only delivers pop after enough money has been inserted • Good ways and bad ways to implement this
  • 9.
    Differences continued 3. Concurrentand Distributed processing • If a handler takes too much time, other events might be delayed/lost • One solution is to have handler execute is a separate thread. • Concurrency concerns now become important. • E.g. what happens is multiple events arrive in rapid sequence? Might there be multiple threads executing in the same handler?
  • 10.
    Concurrent and Distributed Processing- continued • Distributed Processing – Source and Handler might be on different computing systems entirely. – E.g. a web browser makes a request for a web page from a server. – Client / Server computing is fairly well understood. There are many other models, however.
  • 11.
    Course Outline • JavaEvent Driven Programming • Component Based Programming in Java • Concurrent and Distributed Event Programming • Software Engineering Event Driven Systems