1. Data processing apparatus in which a core program object interacts with and controls operation of a plurality of plug-in program objects operable to carry out data processing tasks, said apparatus providing for communication between said core program object and each such data processing task: (i) a synchronous interface to allow interaction between said core program object and a plug-in program object operable to carry out that task; and (ii) an asynchronous interface to allow interaction between said core program object and a hardware device operable to carry out that task.