Event-driven programming
Events are data elements. Each event is a collection of attribute-value pairs that capture the state (or changes to state) of real-world or computer-based objects. Events consist of data and temporal attributes that represent the what, when, and where of an object. This can be the state of an object or the interaction of objects at a particular time. Real world examples of events include:
Stock market trades and quotes
RFID signals
Satellite telemetry data
Card swipes at a turnstile
ATM transactions
Network activities/faults
Troop movement on a battlefield
Activity on a website
Electronic funds transfers
SCADA alerts (Supervisory Control and Data Acquisition)
Processing events requires event-driven programming. The hallmarks of event-driven programming include the following:
Program execution does not flow sequentially from beginning to end. There is no standard starting point.
Program execution happens in response to the arrival of events. Some external source pushes the events into your program.
Events arrive in asynchronous messages.
There are two main bodies of code: code that analyzes incoming events to determine if the events are of interest and code that performs actions when events of interest are found.
There are a lot of similarities between GUI programming and event driven programming. For example, in a GUI program you typically write code that responds to mouse clicks.