CSCI 444 / CIS 644 Event Driven Programming. Outline I.What is an event driven system? II.What is event driven programming? III.Course Overview.

Slides:



Advertisements
Similar presentations
Executional Architecture
Advertisements

JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
Programming Paradigms and languages
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
WHAT IS AN OPERATING SYSTEM? An interface between users and hardware - an environment "architecture ” Allows convenient usage; hides the tedious stuff.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Lecture 2: Do you speak Java?. From Problem to Program Last Lecture we looked at modeling with objects! Steps to solving a business problem –Investigate.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.
Lock Inference for Systems Software John Regehr Alastair Reid University of Utah March 17, 2003.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Chapter 4: Threads. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Chapter 4: Threads Overview Multithreading.
Replication and Consistency CS-4513 D-term Replication and Consistency CS-4513 Distributed Computing Systems (Slides include materials from Operating.
Lecture 8 Epidemic communication, Server implementation.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
Client/Server Architectures
Software Architecture
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
CS 0004 –Lecture 1 Wednesday, Jan 5 th, 2011 Roxana Gheorghiu.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
How does Robocode work? In short it is a framework
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
JavaScript II ECT 270 Robin Burke. Outline JavaScript review Processing Syntax Events and event handling Form validation.
Operating System Concepts Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
Operating Systems Lecture 2 Processes and Threads Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard. Zhiqing Liu School of.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 14 Threads 2 Read Ch.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
University of Washington Exceptional Control Flow The Hardware/Software Interface CSE351 Winter 2013.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
Feb 15, 2001CSCI {4,6}900: Ubiquitous Computing1 Announcements.
12-Jun-16 Event loops. 2 Programming in prehistoric times Earliest programs were all “batch” processing There was no interaction with the user Input Output.
University of Washington Roadmap 1 car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Car c = new Car(); c.setMiles(100);
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Chapter 4: Threads.
CS 325: Software Engineering
Event loops 16-Jun-18.
Chapter 5: Threads Overview Multithreading Models Threading Issues
Chapter 4: Multithreaded Programming
Event driven architectures
Web Software Model CS 4640 Programming Languages for Web Applications
Part 3 Design What does design mean in different fields?
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Event loops.
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Chapter 6 – Architectural Design
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Starting Design: Logical Architecture and UML Package Diagrams
Software models - Software Architecture Design Patterns
Remote Procedure Call (RPC) Neil Tang 11/26/2008
Event loops 17-Jan-19.
Event loops 17-Jan-19.
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Multithreaded Programming
Visual Programming Lecture 1.
Event loops 8-Apr-19.
Event loops.
Chapter 4: Threads.
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Event loops.
Event loops 19-Aug-19.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

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 SourceEvent 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