1. A method comprising: providing to a client a definition of an object representing attributes of a first collection of data elements and an operation on the first collection, each data element having attributes and the operation in common with other data elements from the first collection, the definition comprising an effect of executing the operation on a second collection of data elements; receiving from a client a request to execute the operation on one or more data elements from the first collection; executing the operation on one or more data elements from the first collection; and updating a copy of one or more data elements from the second collection according to the effect of executing the operation.