40 likes | 56 Views
Learn to manage concurrent, distributed programs efficiently. Dive into event handling, synchronization, & network programming principles. Discover powerful libraries like ACE & Boost Asio.
E N D
E81 CSE 532S: Advanced Multi-Paradigm Software Development From Concurrent to Networked Software Systems Chris Gill Department of Computer Science and Engineering Washington University, St. Louis cdgill@cse.wustl.edu
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 http://qt-project.org • 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 (ACETM) http://www.dre.vanderbilt.edu/~schmidt/ACE.html • Boost.Asio (and other boost libraries) http://www.boost.org • 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 www.packtpub.com or Amazon.com • The ACE Programmer’s Guide by Stephen D. Huston, James CE Johnson, and Umar Syyid • Available from www.riverace.com/acebooks or Amazon.com • C++ Network Programming Volume 1 Mastering Complexity with ACE and Patterns, by Douglas C. Schmidt and Stephen D. Huston • Available from www.riverace.com/acebooks or Amazon.com • C++ Network Programming Volume 2 Systematic Reuse with ACE and Frameworks, by Douglas C. Schmidt and Stephen D. Huston • Available from www.riverace.com/acebooks or Amazon.com