1. A method, implemented using a computing system, for composing compound services, the method comprising: creating, using an electronic processor, a first definition of a first service, the first service including a first interface object, wherein the first definition of the first service is service independent and comprises a pseudocode representation; creating, using an electronic processor, a data exchange object that represents the first interface object of the first service, wherein the data exchange object comprises a pseudocode representation; creating, using an electronic processor, an association between the first interface object of the first service with the data exchange object, wherein creating the association between the first interface object of the first service with the data exchange object comprises creating the association when the first interface object of the first service is syntactically compatible with the data exchange object and is semantically compatible with the data exchange object; storing, using an electronic processor, the data exchange object, wherein the storing the data exchange object comprises storing the association between the first interface object of the first service with the data exchange object as part of the data exchange object itself; creating, using an electronic processor, a second definition of a second service, the second service including a second interface object, wherein the second definition of the second service comprises a pseudocode representation; determining, using an electronic processor, that the second interface object associates to the data exchange object; connecting, using an electronic processor, the second service to the first service through the data exchange object, wherein an output of the first service connects to an input of the data exchange object, and wherein an output of the data exchange object connects to an input of the second service; storing, using an electronic processor, the first definition; providing, using an electronic processor, to a user, access to the first definition, the data exchange object, and the association; receiving a user request to identify data exchange objects that are associated with a service, including data that identifies the first service; and identifying the data exchange object in response to the request.