Distributed Object Patterns