1. A computer program product, tangibly embodied in an information carrier, for developing applications, the computer program product being operable to cause data processing apparatus to interact with data conforming to a data model, the data model comprising: an object node class including a key identifier, the object node class representing data types; an association class associated with the object node class, the association class representing an association between instances of the object node class; and an object class associated with an object composition, the object composition defined by a data structure of instances of the object node class and associations between the instances of the object node class represented by the association class.