E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University, St. Louis From Concurrent to Networked Software Systems
Events, Connections, and Concurrency Over the rest of the semester we’ll look at how to manage multiple (e.g., distributed) programs –So far we’ve considered one program’s threads –Now we’ll look at multiple programs at once Event handling becomes a key topic –Especially within concurrency and synchronization We’ll start off very simply, then refine rapidly –Single threaded, basic connection establishment –Single threaded handling of multiple connections –Multi-threaded handling of multiple connections –Finally, runtime service access & (re-)configuration
C++ Network Programming Libraries There are a number of good external libraries for C++ network programming (but with varying capabilities) –E.g., the Qt framework –Some of the libraries’ features (e.g., from boost) could be added to the standard libraries in a later C++ standard We’ll focus on two prominent full-featured ones –The ADAPTIVE Communication Environment (ACE TM ) –Boost.Asio (and other boost libraries) You’ll install ACE for today’s studio exercises –Please use the on-line resources listed in the studio page –Please let me know if you run into disk quota issues (I’ve asked to have your disk quotas increased to 4GB)
A Few Optional Book Suggestions Boost.Asio C++ Network Programming by John Torjo –Available from or Amazon.com The ACE Programmer’s Guide by Stephen D. Huston, James CE Johnson, and Umar Syyid –Available from or Amazon.com C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns, by Douglas C. Schmidt and Stephen D. Huston –Available from or Amazon.com C++ Network Programming Volume 2 Systematic Reuse with ACE and Frameworks, by Douglas C. Schmidt and Stephen D. Huston –Available from or Amazon.com