1. An image processing apparatus comprising: a hardware resource that includes at least one of an image forming unit, a read unit, and a display unit; a control layer; an external API (application program interface) program; and an application group including one or more application programs stored in an application layer, wherein the hardware resource, the control layer, the external API program and the application group are arranged in such a hierarchical architecture that the control layer is superordinate to the hardware resource, and the application group including the one or more application programs and the external API program are superordinate to the control layer, the control layer includes a first API for receiving, with use of a predefined function, a first request relating to image processing from the external API program and a second request relating to image processing from the one or more application programs, and controls, on receiving either of the first and second requests, the hardware resource to perform image processing based on the received request, and the external API program includes a second API for receiving a third request relating to image processing from an external source, converts the received third request to a command supported by the first API, and passes the command as the first request to the control layer, bypassing the one or more application programs of the application group stored in the application layer; wherein commands, parameters, and syntax for controlling the hardware resource are released to the public for incorporation by external users into software supported by the second API.