1. A computer-readable storage medium storing computer-executable program instructions which, when executed by a processor, cause the processor to perform a method comprising: providing a first definition of an object, the object including first data elements and first attributes associated with the first data elements; providing first operations executable on the first data elements; extending the first definition of the object with a second definition, the second definition comprising second attributes for association with the first data elements and second operations executable on the first data elements; receiving from a client a request to execute an operation from the first operations or the second operations, the request having input parameters; checking the request against the first definition and the second definition; executing, with a set of parameters associated with the input parameters, the operation on the first data elements, the operation resulting in output parameters; sending the output parameters to a customer extension provider, the customer extension provider being associated with the second definition; receiving, from the customer extension provider, modified parameters comprising the output parameters modified by the customer extension provider; and sending the modified output parameters to the client.