Patterns for Concurrent and Networked Objects