Image forming apparatus and program
The image forming apparatus optimizes access to external devices by bypassing the abstraction layer, using an access control program to directly access the device driver, thereby reducing overhead and enhancing efficiency and user convenience.
Patent Information
- Application Number
- JP2021110183
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-07-01
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2041-07-01
AI Technical Summary
Existing multi-layer architectures in image forming apparatuses incur performance decreases and resource overheads when accessing external devices due to the need to traverse multiple control APIs, affecting user convenience and efficiency.
An image forming apparatus with a multi-layer architecture that includes an abstraction layer, allowing direct access from the upper layer to the lower layer without going through the abstraction layer, using an access control program to relay access and store path information, thereby reducing overhead and improving efficiency.
This approach enhances access efficiency by minimizing load and access time, enabling direct device driver access and immediate status notification, thus improving user convenience and resource utilization.
Smart Images

Figure 0007707695000001 
Figure 0007707695000002 
Figure 0007707695000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to an image forming apparatus and a program, and more particularly to a technique for improving access efficiency to an external device connected to the image forming apparatus.
Background Art
[0002] In recent years, a multi-function peripheral (MFP) having various functions such as a printer function, a scanner function, a copy function, a facsimile function, a network function, and a BOX function has been continuously required to add various functions. Therefore, additional functions have been realized by installing an application program in the MFP.
[0003] The MFP is composed of various devices, and an application program for realizing an additional function may also need to access the devices constituting the MFP. For example, when reading and writing data to a USB (Universal Serial Bus) memory attached to the USB interface of the MFP, as illustrated in FIG. 10, the application program 1010 uses a library (Node Library in FIG. 10) 1020 installed in the MFP 10.
[0004] When an API (Application Program Interface; “fs_API” in FIG. 10) 1021 for accessing a file system for managing data stored in the USB memory or the like is included in the library 1020 as a method, the application program 1010 uses the method to request the USB interface driver 1031 incorporated in the operating system (OS) 1030 to read and write data to the USB memory.
[0005] In this way, data is read from and written to the USB memory. The same applies to USB devices other than the USB memory and devices other than USB devices.
[0006] Such application programs can reduce development costs by being shared regardless of the version of the multifunction peripheral, rather than being redeveloped every time the multifunction peripheral is upgraded. Similarly, it is desirable that they can be shared even if the models of the multifunction peripherals are different.
[0007] Therefore, a software architecture (multi-layer architecture) is adopted that standardizes the interfaces between parts that may differ depending on the version or model of the multifunction peripheral and the application programs that are to be shared among multifunction peripherals with different versions or models.
[0008] In a multi-layer architecture, the interfaces between layers are defined in advance. Therefore, depending on the differences in the version or model of the multifunction peripheral, only the necessary layers need to be developed or modified, and the other layers can be used as they are without being changed.
[0009] The multi-layer architecture of the multifunction peripheral is composed of three layers, namely, an application layer 1110, a device control layer 1120, and an operating system layer 1130, as shown in FIG. 11, for example. The application program 1111 that can be shared among different versions or models of the multifunction peripheral belongs to the application layer 1110.
[0010] The program 1122 for controlling various devices that make up the multifunction peripheral may be changed depending on the version or model of the multifunction peripheral, and thus belongs to the device control layer 1120. The operating system layer 1130 is the OS 1131 itself, but there may be changes such as the OS 1131 being upgraded or replaced. Also, the device driver incorporated into the OS 1131 may be changed in response to the addition or change of devices.
[0011] In addition, when the OS layer 1130 includes a Hardware Abstraction Layer (HAL), differences in hardware caused by the version or model of the multifunction device can be hidden from the kernel of the OS 1131 using the hardware abstraction layer.
[0012] Also, when accessing a USB memory as described above, it is necessary to specify an access path. In a multi-layer architecture, parameters such as the access path required when accessing an external device attached to a multifunction device such as a USB memory are also hidden so as not to affect the application program 1111. As a result, the application program 1111 can access the external device without using access parameters.
[0013] If the basic functions of the multifunction device are borne by the device control layer 1120 and the OS layer 1130, and additional functions are realized in the application layer 1110, the application layer 1110 can be shared among different versions and models of the multifunction device, thus reducing the cost of realizing additional functions.
[0014] Note that not only the interfaces between the layers are defined, but by providing an abstraction layer between the application layer 1110 and the device control layer 1120, the detailed implementation of the functions of other layers can also be hidden.
Prior Art Documents
Patent Documents
[0015]
Patent Document 1
Patent Document 2
Patent Document 3
Patent Document 4
[0016] As the application program 1111 belonging to the application layer 1110 as described above, for example, an application program 1111 that performs image processing on image data generated using the scanner function provided in the multifunction device or image data acquired via a communication network such as the Internet can also be considered.
[0017] By using such an application program 1111, the user of the multifunction device can perform desired image processing on the desired image data, and furthermore, can perform image formation using the image data on which the image processing has been performed. Therefore, it is possible to easily check the result by looking at the printed matter obtained by image formation, and even change the image processing to be applied to the image data as necessary.
[0018] Regarding the image data on which image processing has been performed using the application program 1111, the user may sometimes wish to temporarily attach a portable recording medium such as a USB memory to the multifunction device, save the image data on the recording medium, and take it home. In such a case, in a multifunction device adopting the multi-layer architecture as described above, the following problems occur.
[0019] That is, the OS layer 1130 incorporates a device driver for managing a device for accessing a recording medium, while the device control layer 1120 has an interface with the application layer 1110. Therefore, in order for the application program 1111 to save image data to the recording medium, first, it must access the device control layer 1120 using a predetermined interface and request the saving of the image data to the recording medium.
[0020] The device control layer 1120 that has received a request from the application layer 1110 performs interface processing for hiding the internal structure of the device control layer 1120 from the application layer 1110 and the original processing of the device control layer 1120, and then accesses the OS layer 1130 to execute the request. For this reason, it is necessary to go through a number of control APIs.
[0021] Due to such circumstances, when the application program 1111 saves image data to the recording medium, there is a problem that the performance decreases due to various overheads being added, resulting in a decrease in user convenience or unnecessary consumption of the resources of the multifunction device.
[0022] The present disclosure has been made in view of the above problems, and aims to provide an image forming apparatus and a program that have a multi-layer architecture that hides a lower layer structure from an upper layer and can suppress a decrease in performance when accessing a device from the upper layer.
Means for Solving the Problem
[0023] To achieve the above object, an image forming apparatus according to an aspect of the present disclosure is an image forming apparatus capable of detaching an external device, and includes a lower layer including an OS for managing the attached said external device, and an upper layer including an application for accessing the external device via the lower layer, and the lower layer and said via the lower layer said the upper layer including an application for accessing the external device, and the lower layer and said the lower layer andsaid intervening between the upper layer and said with respect to the upper layer said A computer that executes software of a multi-layer architecture including an abstraction layer that conceals the implementation of the lower layer, said The upper layer said can store path information for accessing an external device, said without going through the abstraction layer said access the lower layer, said using the path information said by accessing the external device, said of the upper layer said from the application said characterized by including an access control program that relays access to the external device.
[0024] In this case, the abstraction layer may include a device control program for controlling each part of the device.
[0025] Also, said the access control program said the path information, said may include a path information acquisition program that acquires the path information via the abstraction layer.
[0026] Also, said the path information acquisition program said when the access control program said of the upper layer said the application said accesses the external device, and said when the path information is not stored, said performs a process of acquiring the path information said characterized by causing the computer to execute it.
[0027] Also, said the abstraction layer said from the upper layer said without receiving a specification of the path information, said from the upper layer said a path information unnecessary interface for accessing the external device,said It may be provided to the upper layer.
[0028] Also, the path information unnecessary interface said from the upper layer said when accessing an external device said provides path information said to the upper layer, said and the path information acquisition program said using the path information unnecessary interface said may acquire the path information provided by accessing an external device. said
[0029] said Also, said the path information acquisition program said causes the path information unnecessary interface said to transfer the minimum amount of data necessary to provide path information said to and from an external device, and may thereby acquire the path information.
[0030] In this case, the minimum amount of data may be empty data.
[0031] said Also, said the upper layer may include a monitoring program for acquiring status information of an external device.
[0032] said said Also, said the monitoring program said may access the lower layer without going through the abstraction layer said to acquire the status information of an external device.
[0033] said said said Also, the monitoring program
[0034] may acquire the status information of the external device when a failure occurs during access to the external device. said The monitoring program may obtain the said status information of the external device from the hardware abstraction layer of the OS. said
[0035] Also, said the monitoring program may said access the lower layer via the abstraction layer said to obtain the said status information of the external device. said
[0036] Also, said the monitoring program may said obtain the said status information of the external device during access to the external device.
[0037] said The upper layer may include a status management program that controls access to the external device according to the said status information of the external device obtained by the monitoring program. said said
[0038] Also, said if the status management program determines from the status information that the access to the external device has received an interruption, the status management program may temporarily put the access to the external device on standby. said said
[0039] Also, said when the upper layer is in a case where the status management program temporarily puts the access to the external device on standby and the access is said a data transfer to the external device, the upper layer may include a temporary storage program that temporarily stores the data to be transferred to the external device by the access and said said said transfers the temporarily stored data to the external device when the status management program releases the standby state of the access to the external device. said said
[0040] Also, said the status management program said from the status information said if it is determined that the external device is either memory full, malfunctioning, or of unknown cause, access to the external device may be interrupted or stopped.
[0041] Also, the program according to one embodiment of the present disclosure is a program executed by a computer included in an image forming apparatus capable of detaching an external device, and includes a lower layer including an OS that manages the external device during attachment, said an upper layer including an application that accesses the external device via the lower layer, said and an abstraction layer that intervenes between the lower layer and the upper layer and said hides the implementation of the lower layer from the upper layer, and has a multi-layer architecture consisting of: said The upper layer said includes a saving step of saving path information for accessing the external device, said accesses the lower layer without going through the abstraction layer, said accesses the external device using the path information, and said includes an access control step of relaying access to the external device from the application of the upper layer, said and causes the computer to execute said a program characterized by the above. said said said said said said said
Advantages of the Invention
[0042] In this way, since the lower layer can be accessed from the upper layer without going through the abstraction layer, in terms of reducing the load required for access and shortening the access time compared to the case of going through the abstraction layer, access can be made more efficient.
[0043] For example, since direct access can be made to the device driver incorporated into the OS from the upper layer, when a malfunction occurs in an external device managed by the OS using the device driver, the upper layer can directly receive notification of the status information of the external device from the device driver.
[0044] Also, since the upper layer can store path information for accessing an external device, it can access the external device using the stored path information without having to obtain the path information via the abstraction layer each time it accesses the external device. In this sense, access to the external device can be made more efficient.
Brief Description of the Drawings
[0045]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Embodiments for Carrying Out the Invention
[0046] Hereinafter, embodiments of an image reading apparatus, an image reading program, an image processing apparatus, and an image processing program according to the present disclosure will be described with reference to the drawings, taking a multifunction peripheral (MFP) having an image reading function as an example. [1] Configuration of Image Forming Apparatus 1 The image forming apparatus 1 according to the present embodiment is a so-called multifunction peripheral (MFP), and has a plurality of functions such as a printer function, a scanner function, a copy function, a facsimile function, a network function, and a BOX function. As shown in FIG. 1, the image forming apparatus 1 includes an image forming unit 100, a paper feeding unit 110, an image reading unit 120, and an operation panel 130.
[0047] The image reading unit 120 includes a scanner unit 121 and an automatic document feeder (ADF) 122. When the image reading unit 120 reads an image from a document in a sheet-through manner, the image reading unit 120 feeds the documents one by one from the document stack placed on the document tray of the automatic document feeder 122 and conveys them to the reading position by the scanner unit 121.
[0048] The scanner unit 121 illuminates the reading surface of the document passing through the reading position, reads the reflected light with a line sensor, and generates image data line by line. The read document is sequentially discharged to the paper output tray.
[0049] Also, when reading an image from a document in the platen set method, the document is placed on the reading glass (not shown) of the scanner unit 121 with the reading surface facing the reading glass. The lower surface of the automatic document feeder 122 is a white plate, and by pressing the back surface of the document toward the reading glass, the reading surface of the document is pressed against the reading glass.
[0050] In this state, when the user of the image forming apparatus 1 operates the operation panel 130 to instruct the start of document reading, the scanner unit 121 scans the document line by line and generates image data.
[0051] The image forming unit 100 performs image forming processing by the electrophotographic method using the image data generated by reading an image from a document by the image reading unit 120, image data received from other devices such as a personal computer (PC) via a communication network (not shown) such as a LAN (Local Area Network) or the Internet, or image data stored using the BOX function.
[0052] That is, a laser beam modulated according to the image data is irradiated onto the uniformly charged surface of the photoreceptor (not shown) to form an electrostatic latent image, toner is supplied to the electrostatic latent image for development, and the obtained toner image is transferred to a recording sheet. Further, after thermally fixing the toner image carried on the recording sheet, the recording sheet on which the toner image is fixed is discharged to the paper output tray 101 to complete the image forming process.
[0053] The paper feed unit 110 includes a plurality of paper feed trays and can accommodate different types of recording sheets for each paper feed tray. The paper feed unit 112 supplies the recording sheet of the type specified by the user through instruction input using the search panel 130 or an image forming job to the image forming unit 111. The image forming unit 111 executes image forming processing as described above using the recording sheet supplied by the paper feed unit 110.
[0054] The operation panel 130 includes a touch panel, hard keys, a speaker, an LED (Light Emitting Diode), etc. The operation panel 130 presents information on the screen of the touch panel or the like to the user of the image forming apparatus 1. Further, the operation panel 130 receives an instruction input by causing the user to operate the touch panel, hard keys, etc. The instruction input from the user is, for example, an input for instructing reading of a document.
[0055] The user of the image forming apparatus 1 can also use additional functions realized by an application program by operating the operation panel 130. Further, this additional function includes a process of storing image data obtained by image processing using an application program in a recording medium (for example, a USB memory (USB flash drive. USB: Universal Serial Bus)).
[0056] The control unit 102 of the image forming unit 100 is a so-called computer, and executes software to monitor and control the operations of each part of the image forming apparatus 1. The software installed in the image forming apparatus 1 has a multi-layer architecture configuration, and as will be described later, the software that may differ depending on the version and model of the image forming apparatus, and the software (application program) shared among image forming apparatuses with different versions and models belong to different layers. [2] Hardware Configuration of Control Unit 102 Next, the hardware configuration of the control unit 102 will be described.
[0057] As shown in FIG. 2, the control unit 102 includes a CPU (Central Processing Unit) 201, a ROM (Read Only Memory) 202, a RAM (Random Access Memory) 203, an HDD (Hard Disk Drive) 204, and a NIC (Network Interface Card) 205, which are communicably connected to each other using an internal bus 206.
[0058] Connected to the internal bus 206 are a USB interface unit 211 and various devices 212 included in the image forming unit 100. The USB interface unit 211 is an interface for connecting USB devices such as a USB memory. Also, the CPU 201 can access the paper feed unit 110, the image reading unit 120, and the operation panel 130 via the internal bus 206.
[0059] When a reset signal is input, such as when the power of the image forming apparatus 1 is turned on, the CPU 201 reads out the boot program stored in the ROM 202 and starts up. Using the RAM 203 as a working storage area, it reads out and executes an OS (Operating System), a device control program, an application program, etc. from the HDD 204.
[0060] As will be described later, the RAM 203 is provided with an access path storage area 231 that stores an access path, which is path information for accessing a USB device 221, particularly a USB memory, attached to the USB interface unit 211. Instead of the RAM 203, the HDD 204 may be provided with the access path storage area 231.
[0061] Also, the HDD 204 is provided with an app log DB (Data Base) 241 for storing defect information generated when accessing a USB memory, and a temporary storage area 242 for temporarily accumulating data to be transferred to the USB memory. Instead of the HDD 204, the temporary storage area 242 may be provided in the RAM 203.
[0062] NIC205 performs processing for communicating with other devices via a communication network such as a LAN or the Internet.
[0063] In the following, as an example, the case where a USB memory is attached to the USB interface unit 221 as the USB device 221 will be described, but the same applies to the case where a USB device 221 other than the USB memory is attached to the USB interface unit 221. [3] Software Configuration of Control Unit 102 Next, the software configuration of the control unit 102 will be described.
[0064] As the software configuration of the control unit 102, a multitier architecture is adopted so that additional functions can be realized using a common application program even if the version or model of the image forming apparatus 1 is different.
[0065] As shown in FIG. 3, the multitier architecture 3 has a three-layer configuration including an application layer 310, a device control layer 320, and an operating system (OS) layer 330. (3-1) Application Layer 310 The application layer 310 includes an application program 311 and the like, and corresponds to the upper layer in the multitier architecture.
[0066] As described above, the application layer 310 belongs to the application program 311 for realizing additional functions for the image forming apparatus.
[0067] An inter-layer communication interface 312 on the application layer side is provided in the application layer 310 so that the application program 311 can access various devices constituting the image forming apparatus 1.
[0068] In this embodiment, the inter-layer communication interface 312 on the application layer side operates as a web server. The inter-layer communication interface 312 on the application layer side, in accordance with the HTTP (Hypertext Transfer Protocol), when receiving a request from the application program 311 as a web client, passes the request to the inter-layer communication interface 321 on the device control layer side described later.
[0069] The inter-layer communication interface 312 on the application layer side also, when receiving a response to the request from the inter-layer communication interface 312 on the device control layer side, notifies the application program 311 that is the source of the request of the response.
[0070] Thereby, the application program 311 can, for example, acquire image data for which a user has instructed image processing from the HDD 204 or the like.
[0071] The USB access control program 300 further belongs to the application layer 310. The USB access control program 300 is a program for relaying the access of the application program 311 to the device.
[0072] For this reason, the USB access control program 300 accesses the device without passing through the device control layer 320 from the application layer 310. In this embodiment, it is particularly used to relay the access of the application program 311 to the USB device 221 attached to the USB interface unit 211.
[0073] Note that, as will be described later, the USB access control program 300 can also request processing from the device control program group 322 via the inter-layer communication interface 321 on the device control layer side using the inter-layer communication interface 312 on the application layer side, similar to the application program 311. (3-2) Device Control Layer 320 The device control layer 320 is interposed between the application layer 310 and the OS layer 330. That is, the device control layer 320 corresponds to an abstraction layer in the multi-layer architecture and provides an interface to the application layer 310 that hides the implementation of the OS layer 330 and the device control layer 320 itself.
[0074] The device control program group 322 belongs to the device control layer 320. The device control program group 322 is a program that monitors the states of various devices constituting the image forming apparatus 1 and controls their operations.
[0075] By the device control program group 322, for example, regarding the image forming unit 100, the states of devices such as a motor that rotationally drives the photosensitive drum, a charging device that uniformly charges the outer peripheral surface (photosensitive surface) of the photosensitive drum, and an exposure device that forms an electrostatic latent image using laser light are monitored, and their operations are controlled.
[0076] The same applies to the devices constituting the paper feeding unit 110, the image reading unit 120, and the operation panel 130.
[0077] As described above, the device control layer 320 is provided with the inter-layer communication interface 321 on the device control layer side in order to receive requests from the application layer 310.
[0078] The inter-layer communication interface 321 on the device control layer side receives requests from the inter-layer communication interface 312 on the application layer side of the application layer 310 as a so-called Web API (Application Program Interface), and passes them on to the device control program group 322.
[0079] Also, when the inter-layer communication interface 321 on the device control layer side receives a response to a request from the device control program group 322, it returns the response to the inter-layer communication interface 312 on the application layer side.
[0080] The inter-layer communication interface 321 on the device control layer side has a common interface specification with the inter-layer communication interface 312 on the application layer side, regardless of the version or model of the image forming apparatus 1.
[0081] For this reason, differences in hardware due to the version or model of the image forming apparatus 1, differences in the device control program group 322, and differences in the OS 331 described later are hidden from the application program 311.
[0082] Therefore, even if the version or model of the image forming apparatus 1 is different, the common application program 311 can be used.
[0083] On the other hand, the device control program group 322 that exchanges requests and responses to requests with the inter-layer communication interface 321 on the device control layer side may be changed when the version or model of the image forming apparatus is different.
[0084] When the device control program group 322 is changed, the inter-layer communication interface 321 on the device control layer side changes the way of exchanging requests and responses to requests with the device control program group 322 in accordance with the change.
[0085] In this way, by changing the inter-layer communication interface 321 on the device control layer side, the common application program 311 can be used even if the versions and models of the image forming apparatuses are different. (3-3) OS layer 330 The OS layer 330 includes an OS 331 that manages various devices constituting the image forming apparatus 1 and external devices connected to the image forming apparatus 1 such as a USB memory, and corresponds to the lower layer in the multi-layer architecture.
[0086] Device drivers corresponding to respective various devices constituting the image forming apparatus 1 are incorporated in the OS 331.
[0087] The device control program group 322 can access a desired device by operating a device driver corresponding to the device by using system calls of the OS 331.
[0088] The device driver operates as a part of the kernel code of the OS 331.
[0089] The device drivers incorporated in the OS 331 also include a USB interface driver 332 for accessing the UBS interface unit 211.
[0090] The device control program group 322 can access the USB interface unit 211 by operating the USB interface driver 332 by using system calls of the OS 331 in the same manner as other devices for the USB interface unit 211.
[0091] In this embodiment, the OS layer 330 may include a hardware abstraction layer (HAL) (not shown). When the OS layer 330 includes the hardware abstraction layer, differences in hardware caused by the version or model of the multifunction device can be hidden from the OS kernel using the hardware abstraction layer.
[0092] However, as described above, when the application program 311 accesses the device via the device control layer 320 and the OS layer 330, many API (Application Programming Interface) calls, function calls, or the above-described hiding processes must be performed within the device control layer 320 and the OS layer 330.
[0093] Therefore, by using the USB access control program 300, the performance of device access by the application program 311 is improved. [4]USB Access Control Program 300 The USB access control program 300 will be described in more detail.
[0094] As shown in FIG. 4, the USB access control program 300 includes an access control unit 410, a temporary data storage processing unit 420, and a status management unit 430. The access control unit 410 includes an access path acquisition unit 411 and a monitoring unit 412. The status monitoring unit 430 includes a status notification unit 431. (4-1) Access Control Unit 410 When the access control unit 410 receives an access request for the USB device 221 from the application program 311, it accesses the USB interface unit 211 by operating the USB interface driver 332 using the system call of the OS 331 in the OS layer 330.
[0095] When a USB memory is connected to the USB interface unit 211, the application program 311 can write data to or read data from the USB memory via the USB access control program 300.
[0096] When the access control unit 410 accesses the USB memory using the system call of the OS 331, it is necessary to specify an access path. The access path acquisition unit 411 acquires the access path of the USB memory from the OS 331 via the device control layer 320 using the inter-layer communication interface 312 on the application layer side.
[0097] When the access path acquisition unit 411 acquires the access path of the USB memory, it stores it in the access path storage area 231 of the RAM 203. By doing so, when accessing the USB memory after the next time, the access control unit 410 can access the USB memory using the access path read from the access path storage area 231.
[0098] The monitoring unit 412 monitors the status of the USB memory by acquiring the status information of the USB memory using the system call of the OS 331. The monitoring unit 412 may acquire the status information of the USB memory from the hardware abstraction layer of the OS 331. When the monitoring unit 412 detects a problem related to the access to the USB memory, it notifies the temporary data accumulation processing unit 420 and the status management unit 430 to that effect.
[0099] The monitoring unit 412 may monitor problems related to access to the USB memory by repeatedly using the system call of the OS 331, or may confirm what problems have occurred at the timing when it receives a notification from the OS 331 that a problem related to access to the USB memory has occurred. (4-2) Temporary data accumulation processing unit 420 When the temporary data storage processing unit 420 detects a problem during data transfer to the USB memory that prevents the monitoring unit 412 from continuing the data transfer, it temporarily stores the data that has not been transferred to the USB memory in the temporary storage area 242 of the HDD 204.
[0100] After the problem is resolved, when the USB memory becomes ready to transfer data, the access control unit 410 reads the data stored in the temporary storage area 242 and transfers it to the USB memory. (4-3) Status management unit 430 The status management unit 430 obtains the status information of the USB memory from the monitoring unit 412 of the access control unit 410 and controls access to the USB memory according to the obtained status information. For example, when the status information of the USB memory is "interrupt", the access to the USB memory requested by the application program 311 is temporarily suspended.
[0101] Also, for example, when the status information of the USB memory is a status where data transfer with the USB memory cannot be continued, such as "memory full", "failure", or "unknown cause", the data transfer with the USB memory requested by the application program 311 may be interrupted or stopped.
[0102] The status notification unit 431 of the status management unit 430 notifies the application program 311 of the status information of the USB memory.
[0103] Also, the status management unit 430 records the status information of the USB memory in the application log DB 241. [5] Operation of the USB access control program 300 Next, taking the case of transferring data to and from a USB memory as an example, the operation of the USB access control program 300 will be described. Needless to say, when writing data to the USB memory, data is transferred from the image forming apparatus 1 to the USB memory. Also, when reading data from the USB memory, data is transferred from the USB memory to the image forming apparatus 1.
[0104] When the application program 311 transfers data to and from a USB memory attached to the USB interface unit 211, it requests access to the USB access control program 300.
[0105] In this case, the USB access control program 300 may provide an API with the same specifications as the inter-layer communication interface 312 on the application layer side as an API provided to the application program 311.
[0106] This API accepts an access path to the USB memory and accepts requests such as data transfer to the USB memory and data transfer from the USB.
[0107] This enables writing data to the USB memory and reading data from the USB memory. Also, a list of files stored in the USB memory may be returned, or a list of files belonging to a directory specified by the access path in a directory or folder in the USB memory may be returned. Also, deletion of files stored in the USB memory may be performed in units of files or units such as directories.
[0108] As shown in FIG. 5, when the access control unit 410 of the USB access control program 300 receives an access request from the application program 311 to the USB memory (S501: YES), the access path acquisition unit 411 checks whether an access path for accessing the USB memory is stored (S502).
[0109] An access path is an enumeration of directory names separated by delimiter characters such as slashes or backslashes according to the directory structure managed by the file system of the OS 331. The access path may include a file name at the end.
[0110] The access path for accessing the USB memory may be an absolute path representing the path from the root. Also, when the current directory is specified, it may be a relative path representing the path from the current directory.
[0111] The specification of the current directory may be received from the application program 311. Also, when the current directory is stored in the RAM 203 or the HDD 204, the stored current directory may be used.
[0112] As described above, the access path acquisition unit 411 can store the access path in the access path storage area 231. In step S502, the access path acquisition unit 411 checks whether an access path is stored in the access path storage area 231.
[0113] If the access path is not stored (S503: NO), the access path is acquired from the device control layer 320 (S504). In this case, using the inter-layer communication interface 312 on the application layer side as described above, the access path is requested from the device control program group 322 via the inter-layer communication interface 321 on the device control layer side.
[0114] The device control program group 322 uses the system call of the OS 331 to acquire the access path. When the device control program group 322 acquires the access path, it notifies the access path to the requesting application program 311 via the inter-layer communication interface 312 on the application layer side using the inter-layer communication interface 321 on the device control layer side.
[0115] When the access path acquisition unit 411 requests an access path using the inter-layer communication interface 312 on the application layer side, the following three request methods are conceivable. That is, when an API for acquiring the access path itself is prepared in the inter-layer communication interface 312 on the application layer side, the access path can be acquired using the API.
[0116] Also, when an API (path information unnecessary interface) that can transfer data to a USB memory without specifying an access path is prepared in the inter-layer communication interface 312 on the application layer side, for example, by specifying the minimum data size as the data size for which transfer is requested and requesting data transfer, the access path may be acquired.
[0117] In this case, the access path can be acquired by analyzing the return value and operation log of the API of the inter-layer communication interface 312 on the application layer side when data transfer is requested.
[0118] This operation log is managed by the device control program group 322 and is notified to the access path acquisition unit 411 of the USB access control program 300 via the inter-layer communication interface 321 on the device control layer side and the inter-layer communication interface 312 on the application layer side.
[0119] In particular, when it is possible to specify zero as the data size for which transfer is requested, the access path may be acquired by specifying zero as the data size and requesting data transfer. The smaller the data size of the data for which transfer is requested, the lower the processing load on the device control layer 320 and the OS layer 330 can be reduced in order to acquire the access path.
[0120] Also in this case, the access path can be obtained by analyzing the return value of the system call of the OS 331 and the operation log when a data transfer is requested. Further, it may be acceptable to accept a designation as to which of these acquisition methods is used to obtain the access path.
[0121] The designation of the access path acquisition method may be accepted from the application program 311. Alternatively, this designation may be stored in advance in a predetermined storage area of the ROM 202 or the HDD 204, and the stored designation may be referred to.
[0122] When there are pros and cons for each access path acquisition method, by accepting the designation, the access path acquisition unit 411 can obtain the access path using a desirable acquisition method.
[0123] When the access path acquisition unit 411 has obtained the access path, it stores the obtained access path in the access path storage area 231 (S505).
[0124] In this way, although it is necessary to use the inter-layer communication interface 312 on the application layer side to obtain the access path in the first access to the USB memory, when performing the second and subsequent accesses, the access path can be obtained by referring to the access path storage area 231.
[0125] Therefore, it becomes unnecessary to use the inter-layer communication interface 312 on the application layer side, and the overhead of the process for the access path acquisition unit 411 to obtain the access path is reduced, so that the access speed to the USB memory can be improved.
[0126] After storing the access path to the USB memory in the access path storage area 231 in step S505, the access control unit 410 accesses the USB memory using the newly acquired access path (S506). Also, when an access path is stored in the access path storage area 231 (S503: YES), the access control unit 410 accesses the USB memory using the access path stored in the access path storage area 231 (S506).
[0127] In this way, the access control unit 410 starts data transfer with the USB memory by directly using the system call of the OS 331 without going through the device control layer 320 (S507). Also, monitoring of the status of the USB memory is started (S508). That is, the monitoring unit 412 acquires the status of the USB memory, and the status management unit 430 executes processing according to the status of the USB memory.
[0128] After that, when it is detected that a problem has occurred with the access to the USB memory (S509: YES), access problem processing as described below is executed (S510). Regarding whether a problem has occurred with the access to the USB memory, as described above, the monitoring unit 412 may acquire the status of the USB memory by referring to the return value of the system call of the OS 331, and the status management unit 430 may make a determination based on the obtained status.
[0129] When no problem has occurred with the access to the USB memory (S509: NO), or after the completion of the access problem processing (S510), if the data transfer with the USB memory has not been completed (S511: NO), the process proceeds to step S509 while continuing the data transfer with the USB memory. When the data transfer with the USB memory is completed (S511: YES), the process proceeds to step S501 and waits for the next access request to the USB memory from the application program 311.
[0130] By doing so, it is possible to request direct access to the USB memory from the OS 331 without going through the device control layer 320, thus reducing the processing load and processing time for accessing the USB memory. [6] Access failure handling (S510) Next, the access failure handling (S510) executed by the USB access control program 300 will be described.
[0131] In the access failure handling (S510), as shown in FIG. 6, the monitoring unit 412 acquires failure information (S601). For example, when the system call of the OS 331 used by the access control unit 410 to perform data transfer with the USB memory returns a return value corresponding to the type of failure, the monitoring unit 412 can acquire the failure information from the return value.
[0132] Also, when the OS 331 has a system call that can acquire the status of the USB memory or the USB interface unit 211 from the USB interface driver 332, the monitoring unit 412 can use the system call to acquire the status of the USB memory or the USB interface unit 211, and the status management unit 430 may determine the type of failure from the acquired status information.
[0133] Examples of failures that may occur when performing data transfer with the USB memory include, for example, (a) The memory of the USB memory is full, (b) The data transfer with the USB memory is interrupted due to an access interrupt to the USB memory, (c) Since another task is using the USB memory, data transfer with the USB memory cannot be performed, (d) The USB memory is removed from the USB interface unit 211 during data transfer with the USB memory, (e) The USB memory has failed and data transfer with the USB memory cannot be continued (f) When there are multiple USB ports, the number of USB devices 221 attached to the USB ports is too large, resulting in power reduction and inability to perform data transfer with the USB memory. Examples include the above.
[0134] Since the monitoring unit 412 directly uses the system calls of the OS 331, even if there is no API for obtaining information regarding problems that occur when performing data transfer with the USB memory in the inter-layer communication interface 312 on the application layer side, the problem information can be obtained.
[0135] In this sense, there is no need to prepare an API for obtaining the problem information in the inter-layer communication interface 312 on the application layer side and the inter-layer communication interface 321 on the device control layer side.
[0136] Therefore, the inter-layer communication interface 312 on the application layer side and the inter-layer communication interface 321 on the device control layer side can be simplified, so that the processing load and processing time of the interfaces 312 and 321 can be reduced.
[0137] Also, even when the API is prepared in the inter-layer communication interface 312 on the application layer side, if the problem information is obtained using the system calls of the OS 331, the processing load and processing time for the acquisition can be reduced, so that the problem information can be obtained promptly.
[0138] When the monitoring unit 412 obtains the problem information, the status management unit 430 notifies the obtained problem information to the application program 311 that requested data transfer with the USB memory (S602). As a result, the application program 311 can notify the user of the image forming apparatus 1 of the notified problem information, or can re-perform the data transfer in order to ensure the data transfer with the USB memory.
[0139] As described above, the status management unit 430 records the defect information log in the application log DB 241. Instead of this, or in addition to this, the application program 311 may record the defect information received from the status management unit 430.
[0140] When recording log data in both the application program 311 and the USB access control program 300, compared with the case where only one of them records the log data, the software operation can be analyzed in more detail. By recording the log data in this way, it is helpful to speculate the cause of the defect by analyzing the log data, so it is useful.
[0141] Next, when the access control unit 410 is transferring data to the USB memory (S603: YES), the temporary data accumulation processing unit 420 temporarily stores the data to be transferred to the USB memory in the temporary accumulation area 242 (S604). Then, the monitoring unit 412 refers to the status of the USB memory using the system call of the OS 331 (S605).
[0142] If the status of the acquired USB memory is not Ready, that is, if it is not in a status where data transfer to the USB memory can be accepted (S606: NO), the process proceeds to step S605, and the monitoring unit 412 refers to the status of the USB memory again (S605).
[0143] If the status of the USB memory acquired by the monitoring unit 412 is Ready (S606: YES), the status management unit 430 determines that data transfer to the USB memory can be resumed, and causes the access control unit 410 to resume data transfer to the USB memory (S607).
[0144] In this case, the USB access control program 300 first transfers the data temporarily stored in the temporary storage area 242 to the USB memory. After that, the USB access control program 300 transfers the data newly requested for transfer from the application program 311 to the USB memory.
[0145] When resuming data transfer to the USB memory, return to the main routine.
[0146] In this way, since information such as the status of the USB memory can be obtained directly from the USB interface driver of the OS 331, the operation at the time of occurrence of a problem can be controlled by the same software behavior as in the case of a single-layer architecture. That is, fail-safe control can be performed in the same manner as in the case of a single-layer architecture.
[0147] Also, since the monitoring unit 412 can obtain the status of the USB memory and the status management unit 430 can grasp the status of the USB memory, the operation of USB access considering the status of the USB memory becomes possible in the application layer 310.
[0148] Also, when the application program 311 receives data from the cloud system and transfers it to the USB memory, especially when the amount of data to be transferred to the USB memory is large, even if the USB memory becomes unable to continue data transfer, the temporary data accumulation processing unit 420 temporarily accumulates the data in the temporary storage area 242, so the application program 311 can continue data transfer without being aware of the status of the USB memory.
[0149] If the fail-safe control is performed by the status management unit 430 when the USB memory cannot continue data transfer, it is not necessary to perform the fail-safe control for each application program 311. Therefore, the processing load, development cost, and program size of the application program 311 can be reduced. [7] Comparison with the prior art Next, the present embodiment is compared with the prior art.
[0150] Improving the access efficiency from the application program 311 to the USB memory in the image forming apparatus 1 is, in other words, improving the data writing efficiency in the information processing apparatus.
[0151] In order to achieve such an object, for example, when an access request to a storage device occurs in an information processing apparatus, depending on at least one of the attribute of the application program that requested the access and the size of the write data related to the access request, a prior art has been proposed in which one of the access methods of direct I / O and buffered I / O is selected to perform the access (see, for example, Patent Document 1).
[0152] However, when the access method is switched as in the above prior art, if it is necessary to pass through the abstraction layer when accessing the lower layer in the multi-layer architecture, the overhead generated by calling a large number of interfaces in the abstraction layer cannot be reduced.
[0153] Also, a prior art has been proposed to switch the data transfer path in order to prevent the data transfer by the application program from being inhibited by the data transfer by the operating system and the performance from deteriorating between the nodes constituting the parallel computer (see, for example, Patent Document 2).
[0154] According to this prior art, although the path for transferring data between nodes can be switched, when each node is equipped with software of a multi-layer architecture, the overhead in the abstraction layer when an application program transfers data cannot be reduced.
[0155] There is also a proposed prior art that resolves contention between data and commands during transfer by sending data and commands for controlling data transfer through separate paths not between nodes constituting a parallel computer but between a file server and network storage (see, for example, Patent Document 3).
[0156] According to this prior art, even if data and commands are transferred through separate paths between a file server and network storage, when the file server is equipped with software of a multi-layer architecture, the overhead in the abstraction layer when an application program transfers data cannot be reduced.
[0157] Furthermore, there is also a proposed prior art that minimizes the use of the processor, main memory, and system bus resources of a server computer and efficiently performs I / O processing by directly exchanging data between I / O devices such as network adapters and disk controllers (see, for example, Patent Document 4).
[0158] According to this prior art, although I / O processing can be made more efficient, nothing can be done to improve the efficiency of software processing in the abstraction layer up to I / O processing.
[0159] There is also a proposed prior art that speeds up file exchange and sharing by exchanging common-form information between multiple computers with different types of operating systems (see, for example, Patent Document 5).
[0160] This prior art can share the location information of data between computers, but it cannot reduce the overhead in the abstraction layer of individual computers.
[0161] On the other hand, the image forming apparatus 1 according to the present embodiment has a configuration different from the above prior art, in which an access control program 300 that accesses the lower layer without going through the abstraction layer from the upper layer is used to relay the access from the application program 311 to an external device.
[0162] With such a configuration, when the application program 311 accesses an external device, the overhead of the abstraction layer in the software of the multi-layer architecture can be avoided.
[0163] Therefore, the access from the application program 311 to the USB memory can be made more efficient.
[0164] In addition, since the access control program 300 can store the path information for accessing an external device, by accessing the external device using the stored path information, the overhead for acquiring the path information can also be reduced.
[0165] Also in this sense, the access from the application program 311 to the USB memory can be made more efficient. [8] Modification example As described above, the present disclosure has been described based on the embodiments, but it goes without saying that the present disclosure is not limited to the above-described embodiments, and the following modification examples can be implemented. (8-1) In the above embodiment, the case where the access failure process (S510) is executed when it is detected that a problem has occurred in the USB memory has been described as an example, but it goes without saying that the present disclosure is not limited to this, and instead, the following may be done.
[0166] For example, as shown by arrow 701 in FIG. 7, the monitoring unit 412 may obtain the status information of the USB memory using the inter-layer communication interface 312 on the application layer side and notify the status management unit 430.
[0167] That is, as shown in FIG. 8, when transferring data from the application program 311 to the USB memory (S801: YES), the status information of the USB memory is obtained via the device control layer 320 using the inter-layer communication interface 312 on the application layer side (S802).
[0168] When using the inter-layer communication interface 312 on the application layer side, the access control unit 410 can obtain the status information of the USB memory in parallel while performing data transfer with the USB memory using the system call of the OS 331.
[0169] The status information of the USB memory that can be obtained in this way is, for example, the storage capacity of the USB memory, the amount of data stored in the USB memory, information regarding the management and control of the USB memory, and the status information of the USB memory.
[0170] In this way, for example, as shown by arrow 702 in FIG. 7, when writing a large amount of data to the USB memory, the storage capacity of the USB memory and the amount of data stored in the USB memory can be referred to, so that it is possible to detect that the USB memory is approaching memory full before the memory full of the USB memory occurs.
[0171] Next, the monitoring unit 412 notifies the obtained status information to the status management unit 430 (S803). After that, if the data transfer to the USB memory has not been completed (S804: NO), the process proceeds to step S802 and the above process is repeated. Also, if the data transfer to the USB memory has been completed (S804: YES), the process proceeds to step S801 and waits for the next data transfer.
[0172] In this way, before a problem occurs in the USB memory, the monitoring unit 412 can acquire the status information of the USB memory and notify the status management unit 430.
[0173] Therefore, in the main routine of the USB access control program 300, as shown in FIG. 9, the status management unit 430 determines whether there is a possibility that a problem may occur in accessing the USB memory. If there is such a possibility (S908: YES), even if no actual problem has occurred, it can execute access problem processing (S910).
[0174] For example, when receiving an instruction to transfer a large amount of data from a large-capacity storage such as the cloud storage 710 to the USB memory, even if no problem has occurred in the USB memory, by the monitoring unit 412 acquiring the status information of the USB memory, the status management unit 430 can acquire the free capacity of the USB memory.
[0175] If it is determined that the free capacity of the USB memory is less than the amount of data instructed to be transferred, the status management unit 430 can warn the source of the data transfer instruction to that effect. By receiving the warning, the source of the data transfer instruction can replace the USB memory with insufficient free capacity with a USB memory having sufficient free capacity.
[0176] Furthermore, even if the data transfer instruction is maintained without replacing the USB memory despite the warning, after starting the data transfer to the USB memory, even if no problem has occurred in the USB memory, by the monitoring unit 412 acquiring the status information of the USB memory, the status management unit 430 can acquire the free capacity of the USB memory.
[0177] When the status management unit 430 detects that the memory of the USB memory is approaching full, before the memory of the USB memory becomes full, it can warn the source of the data transfer instruction that the free capacity of the USB memory currently installed in the image forming apparatus 1 is insufficient and data transfer cannot be continued.
[0178] Upon receiving this warning, the source can remove the USB memory with approaching full memory from the image forming apparatus 1 and install a USB memory with sufficient free capacity, and then transfer the untransferred data to the new USB memory. Therefore, it is possible to avoid the problem of the memory of the USB memory becoming full.
[0179] Also, in this case, if the data transfer to the USB memory is temporarily suspended and the data to be transferred to the USB memory is stored in the temporary storage area 242, the data transfer from the cloud storage to the application program 311 can continue regardless of the status of the USB memory.
[0180] Even if there is a warning that the USB memory is approaching full memory, if the source of the data transfer instructs to continue the data transfer without replacing the USB memory, a memory full, which is a problem of the USB memory, will occur. The processing when the memory becomes full is, for example, as described in the above embodiment. (8-2) In the above embodiment, the case of improving the access efficiency from the application program 311 to the USB memory connected to the image forming apparatus 1 has been described as an example. Needless to say, the present disclosure is not limited to this, and instead of this, or in addition to this, the following may be done.
[0181] A USB storage other than a USB memory, such as a USB hard disk, may be connected to the USB interface unit 211 and accessed from the application program 311.
[0182] In addition, you may connect an external authentication device such as a card reader or a biometric authentication device, or an imaging device (camera) that captures still images or moving images, to the USB interface unit 211 and access it from the application program 311.
[0183] As described above, you may connect an external device other than the USB memory to the USB interface unit 211 and access it from the application program 311.
[0184] In addition, you may provide an interface conforming to a standard other than USB in the image forming apparatus 1, and also when accessing an external device connected to the interface conforming to the standard other than USB from the application program 311, the access can be made more efficient by applying the present disclosure.
[0185] Examples of external devices connected to an interface conforming to a standard other than USB include, for example, an SD memory card, a multimedia card, and the like. (8-3) In the above-described embodiment, the case of making the access from the application program 311 to the external device connected to the image forming apparatus 1 more efficient has been described as an example. Needless to say, the present disclosure is not limited to this, and instead of this, or in addition to this, you may do as follows.
[0186] For example, when you want to perform control to access a resource or a device by taking timing from an application, or when you want to perform image adjustment at a level that is not normally used from an application, modifying the inter-layer communication interface 312 on the application layer side or the inter-layer communication interface 321 on the device control layer side to add functions or the like will impair the advantage of making the device control layer 320 an abstraction layer.
[0187] Even in this case, in order to control access to resources and devices by taking timing from the application or perform image adjustment at a level that is not normally used from the application, if an access control program that directly uses the system calls of the OS 331 is used, by not going through the device control layer 320, it is possible to improve access efficiency without impairing the advantage of using the device control layer 320 as an abstraction layer.
[0188] Therefore, for example, even if the inter-layer communication interface 312 on the application layer side does not have an interface for notifying the image forming apparatus 1 and external devices of an abnormality, the application program 311 can execute fail-safe abnormality control. (8-4) In the above embodiment, the case where the control unit 410 is a control board having a single CPU has been described as an example. Needless to say, the present disclosure is not limited to this, and instead, a control board having a plurality of CPUs may be used. Further, it may be divided into a plurality of circuit boards.
[0189] Regardless of the hardware configuration of the control unit 410, the effects can be obtained by applying the present disclosure. (8-5) In the above embodiment, the case where the image forming apparatus 1 is a multifunction machine has been described as an example. Needless to say, the present disclosure is not limited to this, and instead, a single-function machine such as a printer device, a scanner device, a copying device, or a facsimile device may be used.
[0190] By applying the present disclosure regardless of the image forming apparatus 1, the same effects can be obtained. (8-6) In the above, the image forming apparatus according to the present disclosure has been described. Needless to say, the present disclosure is not limited to this, and for example, it may be a processing method executed by the image forming apparatus. Further, it may be a program for causing a computer to execute the processing method. In addition, the program according to the present disclosure can be recorded on various computer-readable recording media such as magnetic disks (e.g., magnetic tapes, flexible disks), optical recording media (e.g., DVD-ROM, DVD-RAM, CD-ROM, CD-R, MO, PD), flash memory-based recording media, etc. It may be produced, transferred, etc. in the form of such a recording media, or may be transmitted and supplied via various wired and wireless networks including the Internet, broadcasting, telecommunications lines, satellite communications, etc. in the form of a program. (8-7) The present disclosure may be implemented by combining the above-described embodiments and modified examples.
Industrial Applicability
[0191] The image forming apparatus and program according to the present disclosure are useful as a technology for improving the access efficiency of an application program mounted on the image forming apparatus to an external device connected to the image forming apparatus.
Explanation of Signs
[0192] 1………Image forming apparatus 3………Multi-layer architecture 100…Image forming section 102…Control section 110…Paper feeding section 120…Image reading section 130…Operation panel 211…USB interface section 221…USB device (external device) 231…Access path storage area 241…Application program DB 242…Temporary storage area 300…Access control program 310…Application layer 311…Application program 312…Inter-layer communication interface on the application layer side 320…Device control layer 321…Inter-layer communication interface on the device control layer side 322…Device control program group 330…Operating system layer 331…Operating system 332…USB interface driver 410…Access control unit 411…Access path acquisition unit 412…Monitoring unit 420…Temporary data storage processing unit 430…Status management unit 431…Status notification unit
Claims
1. An image forming apparatus having a detachable external device, comprising: A lower layer including an OS for managing the external device during attachment; An upper layer including an application for accessing the external device via the lower layer; An abstraction layer interposed between the lower layer and the upper layer for hiding the implementation of the lower layer from the upper layer; A computer that executes software of a multi-layer architecture including: The upper layer can store path information for accessing the external device, access the lower layer without passing through the abstraction layer, and access the external device using the path information, thereby relaying access from the application in the upper layer to the external device. An access control program is included An image forming apparatus characterized by the above.
2. The abstraction layer includes a device control program for controlling each part of the device. The image forming apparatus according to claim 1, characterized by the above.
3. The access control program includes a path information acquisition program for acquiring the path information via the abstraction layer. The image forming apparatus according to claim 1 or 2, characterized by the above.
4. The path information acquisition program causes the computer to execute a process of acquiring the path information when the access control program causes the application in the upper layer to access the external device and the path information is not stored. The image forming apparatus according to claim 3, characterized by the above.
5. The abstraction layer provides a path information-free interface for allowing the upper layer to access the external device without receiving a specification of the path information from the upper layer. The image forming apparatus according to claim 3 or 4, characterized by the above.
6. The path information-free interface provides the path information to the upper layer when accessing the external device from the upper layer. The path information acquisition program acquires the path information provided by accessing the external device using the path information-free interface. The image forming apparatus according to claim 5, characterized by the above.
7. The path information acquisition program acquires the path information by transferring, between the external device and itself, the minimum amount of data required for the path information-free interface to provide the path information. The image forming apparatus according to claim 6, characterized in that...
8. The minimum amount of data is empty data The image forming apparatus according to claim 7, characterized in that...
9. The upper layer includes a monitoring program for acquiring status information of the external device The image forming apparatus according to any one of claims 1 to 8, characterized in that...
10. The monitoring program accesses the lower layer without going through the abstraction layer to acquire the status information of the external device The image forming apparatus according to claim 9, characterized in that...
11. The monitoring program acquires the status information of the external device when a failure occurs during access to the external device The image forming apparatus according to claim 10, characterized in that...
12. The monitoring program acquires the status information of the external device from the hardware abstraction layer of the OS The image forming apparatus according to claim 10 or 11, characterized in that...
13. The monitoring program accesses the lower layer via the abstraction layer to acquire the status information of the external device The image forming apparatus according to claim 9, characterized in that...
14. The monitoring program acquires the status information of the external device during access to the external device The image forming apparatus according to claim 13, characterized in that...
15. The upper layer includes a status management program for controlling access to the external device according to the status information of the external device acquired by the monitoring program The image forming apparatus according to any one of claims 9 to 14, characterized in that...
16. When it is determined from the status information that the access to the external device has received an interrupt, the status management program temporarily puts the access to the external device in a standby state The image forming apparatus according to claim 15, characterized in that...
17. When the upper layer is the case where the status management program temporarily puts the access to the external device in a standby state, and when the access is data transfer to the external device, the upper layer temporarily stores the data to be transferred to the external device by the access When the status management program releases the standby state for access to the external device, it includes a temporary storage program that transfers the temporarily stored data to the external device. The image forming apparatus according to claim 16, characterized in that.
18. When it is determined from the status information that the external device is either memory full, malfunctioning, or of unknown cause, the status management program interrupts or stops access to the external device. The image forming apparatus according to any one of claims 15 to 17, characterized in that.
19. A program executed by a computer included in an image forming apparatus capable of attaching and detaching an external device, A lower layer including an OS for managing the attached external device, An upper layer including an application for accessing the external device via the lower layer, An abstraction layer intervening between the lower layer and the upper layer and concealing the implementation of the lower layer from the upper layer, Adopting a multi-layer architecture consisting of, The upper layer is, A saving step of saving path information for accessing the external device, An access control step of accessing the lower layer without going through the abstraction layer and accessing the external device using the path information to relay access from the application in the upper layer to the external device, and causing the computer to execute. A program characterized in that.
Citation Information
Patent Citations
Network file server system and file managing method in the system
JP2000047952A
Inter-different kind computer high speed data exchange system and extent extraction and conversion program recording medium
JP2001084168A
San / nas integrated storage device
JP2004220216A
Parallel computer system and data transfer method
JP2007156851A
Image forming apparatus, image forming method and application program
JP2008234554A