Describir: Formal Methods for Open Object-Based Distributed Systems