E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis

Slides:



Advertisements
Similar presentations
17 HTML, Scripting, and Interactivity Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and.
Advertisements

Easy to use Ability to attach policies/procedures to call types Ability to schedule calls in advance Officer safety alerts Robust search capabilities.
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,
Remote Procedure Call (RPC)
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 20 – March 25, 2010.
The Web Warrior Guide to Web Design Technologies
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
Seyed Mohammad Ghaffarian ( ) Computer Engineering Department Amirkabir University of Technology Fall 2010.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Introduction to Operating Systems – Windows process and thread management In this lecture we will cover Threads and processes in Windows Thread priority.
Hands-On Microsoft Windows Server 2003 Networking Chapter 7 Windows Internet Naming Service.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
Advanced UDP Sockets© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer.
Fundamentals of Python: From First Programs Through Data Structures
11 MAINTAINING THE OPERATING SYSTEM Chapter 5. Chapter 5: MAINTAINING THE OPERATING SYSTEM2 CHAPTER OVERVIEW Understand the difference between service.
1 TouchDevelop Chapter 8-10 Presenter: Jing Xu. 2 Outline Interactions Game Board Tiles and Printing.
CSE 381 – Advanced Game Programming 3D Game Architecture.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Server-side Scripting Powering the webs favourite services.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
Firewall and Internet Access Mechanism that control (1)Internet access, (2)Handle the problem of screening a particular network or an organization from.
An Introduction to Software Architecture
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 4-1 of…
Jozef Goetz, Application Layer PART VI Jozef Goetz, Position of application layer The application layer enables the user, whether human.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
Module 10: Monitoring ISA Server Overview Monitoring Overview Configuring Alerts Configuring Session Monitoring Configuring Logging Configuring.
Software Design The Dynamic Model Design Sequence Diagrams and Communication Diagrams Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
CHAPTER TEN AUTHORING.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Guandong Wang, Zhenning Hu, Zhenghui Xie Department of.
Proactor Pattern Venkita Subramonian & Christopher Gill
Cohesion and Coupling CS 4311
Automated Scheduling and Operations for Legacy Applications.
Games Development 2 Review & Revision Strategy CO3301 End of Semester 1.
ECEN “Internet Protocols and Modeling”, Spring 2012 Course Materials: Papers, Reference Texts: Bertsekas/Gallager, Stuber, Stallings, etc Class.
Cairngorm Microarchitecture. Pronunciation Cairngorm (kârn gôrm) n. yellowish-brown variety of quartz, especially found in Scottish Cairngorm mountain.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Dynamic Host Configuration Protocol (DHCP)
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS212: Object Oriented Analysis and Design Lecture 34: UML Activity and Collaboration diagram.
CSE 332: Design Patterns Review: Design Pattern Structure A design pattern has a name –So when someone says “Adapter” you know what they mean –So you can.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Interactive Programming Alice. Control of flow Control of flow -- how the sequence of actions in a program is controlled. What action happens first, what.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
1 A Look at the Application Authorized users can access Communicator! NXT from any Internet-capable computer via the Web.
Windows Vista Configuration MCTS : Internet Explorer 7.0.
Event Handling Patterns Asynchronous Completion Token
Sockets and Beginning Network Programming
Chapter 3 Internet Applications and Network Programming
Games Development 2 semester 1 Review & Revision
Section 17.1 Section 17.2 Add an audio file using HTML
Event driven architectures
Distribution and components
Distributed web based systems
Working at a Small-to-Medium Business or ISP – Chapter 7
Working at a Small-to-Medium Business or ISP – Chapter 7
Chapter 14 User Datagram Protocol (UDP)
Working at a Small-to-Medium Business or ISP – Chapter 7
The Client Server Model
Design and Implementation
Chapter 40 Remote Method Invocation
Half-Sync/Half-Async (HSHA) and Leader/Followers (LF) Patterns
Chapter 46 Remote Method Invocation
Chapter 46 Remote Method Invocation
Chris Gill CSE 522S – Advanced Operating Systems
Message Passing Systems Version 2
Presentation transcript:

E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis Event Handling Pattern Languages Thanks to Carol Brickman for raising the UDP and simulation server issues covered here Thanks to Doug Schmidt for timer expiration example (ace-users post)

Review: What is a Pattern Language? A narrative that composes patterns –Not just a catalog of the patterns –Reconciles design forces among patterns –Provides an ordered outline for design steps Not necessarily a procedure (details may be unspecified) A generator for a complete design –Patterns may leave consequences –Other patterns can resolve them –Generative designs resolve all forces Internal tensions don ’ t “ pull design apart ”

Pattern Language I: Logging Server Want to collect and record system events –For example, printer out of paper, new clients, etc. Events from many clients to a central server Want to add event-specific processing –And add new processing flexibly From

Pattern Language I: Logging Server Design forces –Server needs to add/remove logging features dynamically –Logging actions are short lived, and event driven Solution –Apply Reactor to manage registration and dispatching Consequences –Need a way to match events to particular logging actions Reactor Handler

Pattern Language I: Logging Server Design forces –Need a way to match events to particular logging actions –Clients can specify what events they will report Solution –Apply ACT to identify the kinds of handlers to create Consequences –Need to define how ACT is handled –Need to create correct handlers for the ACT Reactor Handler ACT

Pattern Language I: Logging Server Design forces –Need to define how ACT is handled –Need to create correct handlers for the ACT –Clients (dynamic) need to tell server when they join Solution –Apply Acceptor/Connector with server taking passive role and clients taking active role in connection establishment Consequences –Reactive logging with dynamic connection establishment and dynamic identification/creation of events/handlers Reactor Acceptor Connector Handler ACT

Pattern Language I: Logging Server One subtle design/implementation issue remains –How to pass ACT to acceptor so it knows what kind of handler to create? Could use the new socket for additional handshaking between the connector and the acceptor –Like in lab 0 where client and server exchanged names –However, this lengthens the time spent in acceptor upcall Another option –Acceptor binds a separate UDP port –Client connectors can “ mail ” it ACTs via UDP –Need to add retry, etc. above UDP level (see Stevens UNP)

(  ) Pattern Language II: Simulation Server Scripted simulation server (physics, avionics, etc.) –Each simulation has (possibly distinct) set of clients –Clients may observe, provide control actions, inputs, etc. –Similar to previous pattern language, except last pattern

Pattern Language II: Simulation Server Design forces –Clients are static and passive (known set of simulation components) –Server is dynamic and active (runs different simulation scenarios) –Server (dynamic) needs to tell clients when to start, reset, run, etc. Solution –Apply Acceptor/Connector with clients taking passive role and server taking active role in connection establishment (reverse of lab 1 roles) Consequences –Similarly reactive simulation but with dynamic connection establishment triggered by server Client 2 Server Listening port Client 1 Listening port

Pattern Language II: Simulation Server Design forces –Simulation client or server logic may need to respond to passage of time –Reactor can dispatch handlers when timers expire –How can application pass data to handler, and vice versa? Solution –Apply ACT pattern (pass address: schedule call ’ s timer_act parameter); Consequences –Arbitrary data structure can pass between application and handler –Creates a critical section (access to data structure) if multi-threaded Code that schedules Timer Handler Timer Queue Timer ACT data structure

(  ) Pattern Language III: Data Streams Want to coordinate groups of different data streams –For example, display multiple streams consistently locally Water temperatures and flow rates across a river basin Video frames from multiple cameras tracking an animal Poker hands dealt from multiple games at once –Also, may pass-through streams to other endsystems Apply ACT to identify each stream ’ s source, id, etc. –Lets end-user switch among streams transiting endsystem –Lets end-user buffer/write related messages together Need high throughput for content rich data streams –Apply Proactor to manage registration and dispatching Need to update streaming topology dynamically –Apply Acceptor/Connector to set up remote connections –May involve both active and passive roles on an endsystem

Concluding Remarks A single pattern is often insufficient –May leave unresolved design consequences Understand how patterns fit together –How one may reconcile forces from another … – … and/or leave/introduce un-reconciled forces Successful pattern languages in a context can generate complete designs –Weave patterns together coherently There are many more pattern languages than patterns (cardinality argument)