1. A method of interacting with a schema-defined service by a terminal device over a network, the method comprising: sending a request network message for establishing communication between the service and the terminal device; receiving in response to the request network message a component application program comprising a plurality of components, a first set of the components having metadata descriptors expressed in a structured definition language defining configuration information of the component application program and a second set of the components being expressed as a series of scripted instructions coupled to the metadata descriptors defining a workflow of the component application program the workflow comprising a workflow component for defining an action to be performed when messages arrive at the terminal device, the components being configured for provisioning by a runtime environment of the terminal device, the runtime environment using a template-based execution model or a metadata-based execution model, to produce an executable version of the component application program configuring the terminal device as a client of the service; wherein the execution of the executable version facilitates a subsequent exchange of data over the network between the service and the terminal device.