The entity represented by an application object may be a physical device. For example, suppose an application is required to access a particular type of external data input device such as an MICR reader. The definition of the protocols and specialized access routines necessary to interact with such a device can be encapsulated within an application object, and the various actions performed by the device on behalf of the application (such as getting the next MICR document) then become the methods associated with that object. The application thus regards the MICR reader as an object to which it passes messages in order to perform actions; the results of those actions are then conveyed back to the application, also by way of messages.