Pattern-Oriented Software Architectures for Concurrent and Networked Software