Design Patterns from Biology for Distributed Computing