US20070008583A1 - Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium - Google Patents
Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium Download PDFInfo
- Publication number
- US20070008583A1 US20070008583A1 US11/477,656 US47765606A US2007008583A1 US 20070008583 A1 US20070008583 A1 US 20070008583A1 US 47765606 A US47765606 A US 47765606A US 2007008583 A1 US2007008583 A1 US 2007008583A1
- Authority
- US
- United States
- Prior art keywords
- application
- control
- bundle
- information processing
- execution environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims description 56
- 238000003672 processing method Methods 0.000 title claims description 27
- 238000000034 method Methods 0.000 claims description 111
- 230000008569 process Effects 0.000 claims description 69
- 230000006870 function Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 12
- 239000000543 intermediate Substances 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 48
- 239000012190 activator Substances 0.000 description 46
- 230000007704 transition Effects 0.000 description 27
- 238000007726 management method Methods 0.000 description 26
- 230000007246 mechanism Effects 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 11
- 239000002131 composite material Substances 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/32561—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using a programmed control device, e.g. a microprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0094—Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception
Definitions
- the present invention generally relates to image forming apparatuses, information processing apparatuses, information processing methods, information processing programs and storage media, and more particularly to an image forming apparatus such as a copying apparatus, a printer, a scanner, a facsimile apparatus, a composite apparatus and a multi-function peripheral, an information processing apparatus such as a personal computer, an information processing method, a computer-readable information processing program, and a computer-readable storage medium such as a Secure Digital (SD) memory card.
- SD Secure Digital
- composite apparatuses and multi-function peripherals which have a copy function, a printer function, a scanner function and a facsimile function, have been reduced to practice and marketed.
- the composite apparatus or the multi-function peripheral functions as a copying apparatus or a printer
- images are printed on a printing medium such as paper.
- the composite apparatus or the multi-function peripheral functions as a copying apparatus or a scanner
- images are read from documents.
- the composite apparatus or the multi-function peripheral functions as a facsimile apparatus, images are exchanged with another equipment via a telephone line.
- Application programs (hereinafter simply referred to as an applications) that are implemented in the composite apparatuses or the multi-function peripherals were conventionally in C-language, but recently, there are composite apparatuses or multi-function peripherals that are implemented with applications in the Java (registered trademark) language.
- the applications in the Java language actually include various kinds of applications such as the Applet, Xlet, Servlet and JSP.
- an application management mechanism such as a platform, which manages these applications, is gradually becoming more and more complex. Because the complexity of the application management mechanism is undesirable both from the point of view of the equipment performance and from the point of view of the development efficiency, it is desirable to form the application management mechanism in an integrated or unified manner as much as possible.
- Another and more specific object of the present invention is to provide an image forming apparatus, an information processing apparatus, an information processing method, a computer-readable information processing program and a computer-readable storage medium, which can form an application management mechanism, which is configured to manage applications that are implemented in an image forming apparatus, in an integrated or unified manner.
- Still another object of the present invention is to provide an image forming apparatus having a plurality of application execution environments, comprising a control part in each of the application execution environments, configured to control an application executed in a corresponding application execution environment, wherein the control part in a first application execution environment controls an application executed in an other application execution environment via the control part of the other application execution environment.
- a further object of the present invention is to provide an information processing apparatus that functions as an emulator of an image forming apparatus and has application execution environments, comprising a control part in each of the application execution environments, configured to control an application executed in a corresponding application execution environment, wherein the control part controls an application executed in an other application execution environment of the information processing apparatus via the control part of the other application execution environment or, controls an application executed in an application execution environment of the image forming apparatus via the control part of the application execution environment of the image forming apparatus.
- Another object of the present invention is to provide an information processing method executed in an image forming apparatus having a plurality of application execution environments, comprising a first control procedure of a first application execution environment controlling an application executed in the first application execution environment; a second control procedure of a second application execution environment controlling an application executed in the second application execution environment, wherein the first control procedure controls the application executed in the second application execution environment via the second control procedure.
- Still another object of the present invention is to provide an information processing method executed in an information processing apparatus that functions as an emulator of an image forming apparatus and has a plurality of application execution environments, comprising a first control procedure of an application execution environment controlling an application executed in the application execution environment; and a second control procedure of the application execution environment controlling an application executed in an other application execution environment of the information processing apparatus via the other application execution environment or, controlling an application executed in an application execution environment of the image forming apparatus via the application execution environment of the image forming apparatus.
- Still another object of the present invention is to provide an image forming apparatus comprising a bundle control part configured to control a first application that is implemented as a bundle; and a control intermediating part configured to provide with respect to the bundle control part an interface identical to that of the first application, and to intermediate control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- a further object of the present invention is to provide an information processing apparatus that functions as an emulator of an image forming apparatus, comprising a bundle control part configured to control a first application that is implemented as a bundle; and a control intermediating part configured to provide with respect to the bundle control part an interface identical to that of the first application, and to intermediate control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- Another object of the present invention is to provide an information processing method executed by an image forming apparatus that comprises a bundle control part configured to control a first application that is implemented as a bundle, comprising providing, by a control intermediating part, an interface identical to that of the first application with respect to the bundle control part; and intermediating control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- Still another object of the present invention is to provide an information processing method executed by an information processing apparatus that functions as an emulator of an image forming apparatus and has a bundle control part configured to control a first application that is implemented as a bundle, comprising providing with respect to the bundle control part an interface identical to that of the first application by a control intermediating part; and intermediating control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- a further object of the present invention is to provide a computer-readable information processing program for causing a computer to execute any one of the information processing methods described above.
- Another object of the present invention is to provide a computer-readable storage medium which stores a program for causing a computer to execute any one of the information processing methods described above.
- an application management mechanism which is configured to manage applications that are implemented in an image forming apparatus, in an integrated or unified manner.
- FIG. 1 is a diagram showing a multi-function peripheral corresponding to an embodiment of the present invention
- FIG. 2 is a diagram showing a hardware structure of the multi-function peripheral shown in FIG. 1 ;
- FIG. 3 is a diagram showing an external appearance of the multi-function peripheral shown in FIG. 1 ;
- FIG. 4 is a diagram showing an operation panel
- FIG. 5 is a diagram showing a first example of management mechanisms for CSDK applications and JSDK applications
- FIG. 6 is a diagram showing a second example of the management mechanisms for the CSDK applications and the JSDK applications
- FIG. 7 is a diagram showing an example of a management mechanism for the JSDK applications in a case where no CSDK application exists
- FIG. 8 is a screen transition diagram showing operation screens displayed on a touch panel
- FIG. 9 is a diagram for explaining a JSDK platform and the JSDK application in more detail.
- FIG. 10 is a diagram conceptually showing a bundlizing state of Xlets by an Xlet bundle activator
- FIG. 11 is a state transition diagram of the bundle
- FIG. 12 is a state transition diagram of the Xlet
- FIG. 13 is a state transition diagram of the Xlet that is bundlized and managed
- FIG. 14 is a sequence diagram for explaining an installing process and an uninstalling process for the bundle
- FIG. 15 is a sequence diagram for explaining the installing process and the uninstalling process for the bundlized Xlet;
- FIG. 16 is a sequence diagram for explaining a starting process and a start cancelling process for the bundle
- FIG. 17 is a sequence diagram for explaining the starting process and the start cancelling process for the bundlized Xlet;
- FIG. 18 is a class diagram of the JSDK applications and the JSDK platform shown in FIG. 1 ;
- FIG. 19 is a class diagram related to a starting process of a JSDK system
- FIG. 20 is a diagram showing a personal computer corresponding to an embodiment of the present invention.
- FIG. 21 is a class diagram showing the JSDK applications and the JSDK platform within the personal computer
- FIG. 22 is a class diagram related to a starting process of a JSDK system.
- FIG. 23 is a class diagram related to another starting process of a JSDK system.
- FIG. 1 is a diagram showing a Multi-Function Peripheral (MFP) 101 corresponding to an embodiment of the present invention.
- the MFP 101 shown in FIG. 1 has various hardwares 111 , various softwares 112 , and an MFP starting part 113 .
- the hardwares 111 of the MFP 101 include an imaging part (or an image pickup part) 121 , a printing part 122 , and other hardwares 123 .
- the imaging part 121 is a hardware for reading images (image data) from documents.
- the printing part 122 is a hardware for printing images (image data) on printing media such as paper.
- the softwares 112 of the MFP 101 include various applications (application programs) 131 and various platforms 132 .
- the programs including the applications 131 and the platforms 132 are executed in parallel in units of processes by an Operating System (OS) such as UNIX (registered trademark).
- OS Operating System
- UNIX registered trademark
- the applications 131 include a copy application 141 for copying, a printer application 142 for printing, a scanner application 143 for scanning, a facsimile application 144 for facsimile communication, and a network file application 145 for network file.
- the applications 131 may be developed using an exclusive Software Developing Kit (SDK).
- SDK exclusive Software Developing Kit
- the application 131 that is developed using the SDK is referred to as an SDK application.
- the exclusive SDK may be a “CSDK” for developing the application 131 in the C-language or a “JSDK” for developing the application 131 in the Java (registered trademark) language.
- the application 131 that is developed using the CSDK is referred to as a “CSDK application”, and the application 131 that is developed using the JSDK is referred to as a “JSDK application”.
- the MFP 101 shown in FIG. 1 includes both a CSDK application 146 and a JSDK application 147 .
- the MFP 101 further includes a JSDK platform 148 which is provided as the software 112 for intermediating between the JSDK application 147 that is described in the Java language and the other softwares 112 .
- the MFP 101 has a plurality of execution environments including an execution environment for the CSDK application that is implemented in the C-language, an execution environment for the JSDK application that is implemented in the Java language and the like.
- the JSDK platform 148 is provided as a particular example of the execution environment for the JSDK application.
- the platforms 132 include various control services 151 , a system resource manager (SRM) 152 , and various handlers 153 .
- the control services 151 include a network control service (NCS) 161 , a facsimile control service (FCS) 162 , a delivery control service (DCS) 163 , an engine control service (ECS) 164 , a memory control service (MCS) 165 , an operation panel control service (OCS) 166 , a certification control service (CCS) 167 , a user directory control service (UCS) 168 , and a system control service (SCS) 169 .
- the handlers 153 include a facsimile control unit handler (FCUH) 171 and an image memory handler (IMH) 172 .
- a process of the NCS 161 intermediates a network communication.
- a process of the FCS 162 provides an API of the facsimile.
- a process of the DCS 163 carries out a control related to a distribution process of stored documents.
- a process of the ECS 164 carries out a control related to the imaging part 121 and the printing part 122 .
- a process of the MCS 165 carries out a control related to a memory and a hard disk drive (HDD).
- a process of the OCS 166 carries out a control related to an operation panel.
- a process of the CCS 167 carries out a control relate to an authentication process and an accounting process.
- a process of the UCS 168 carries out a control related to management of user information.
- a process of the SCS 169 carries out a control related to system management.
- a virtual application service (VAS) 135 is provided as a software 112 for intermediating between the applications 131 and the platforms 132 .
- the VAS 135 operates as a server process by regarding the application 131 as a client, and operates as a client process by regarding the platform 132 as a server.
- the VAS 135 has a rapping function for concealing the platforms 132 from the applications 131 , and has a role of absorbing differences in versions of the platforms 132 when the versions of the platforms 132 are upgraded.
- the MFP starting part 113 is first executed when the power is input to the MFP 101 .
- the OS such as the UNIX is started, and the applications 131 and the platforms 132 are started.
- These programs are stored in the HDD or the memory card, and are read from the HDD or the memory card and started in the memory.
- FIG. 2 is a diagram showing a hardware structure of the MFP 101 shown in FIG. 1 .
- the hardwares 111 of the MFP 101 include a controller 201 , an operation panel 202 , a facsimile control unit (FCU) 203 , the imaging part 121 and the printing part 122 .
- FCU facsimile control unit
- the controller 201 has a CPU 211 , an ASIC 212 , an NB 221 , an SB 222 , a MEM-P 231 , a MEM-C 232 , a HDD 233 , a memory card slot 234 , a network interface controller (NIC) 241 , an USB device 242 , an IEEE1394 device 2443 , and a Centronics device 244 .
- NIC network interface controller
- the CPU 211 is an integrated circuit (IC) for processing various information.
- the ASIC 212 is an IC for processing various images.
- the NB 221 is a north bridge for the controller 201 .
- the SB 222 is a south bridge for the controller 201 .
- the MEM-P 231 is a system memory of the MFP 101 .
- the MEM-C 232 is a local memory of the MFP 101 .
- the HDD 233 is a storage of the MFP 101 .
- the memory card slot 234 is a slot for setting a memory card 235 .
- the NIC 241 is a controller for network communication using a MAC address.
- the USB device 242 is a device that provides connection terminals in conformance with the USB standards.
- the IEEE1394 device 243 is a device that provides connection terminals in conformance with the IEEE1394 standards.
- the Centronics device 244 is a device that provides connection terminals in conformance with the Centronics specifications.
- the operation panel 202 is a hardware (operation part) for use by an operator to make inputs to the MFP 101 , and is also a hardware (display part) for use by the operator to obtain an output from the MFP 101 .
- FIG. 3 is a diagram showing an external appearance of the MFP 101 shown in FIG. 1 .
- FIG. 3 shows the position of the imaging part 121 , the position of the printing part 122 , and the position of the operation panel 202 .
- FIG. 3 further shows a document setting part 301 on which the documents to be read are set, a paper supply part 302 from which the printing media such as paper are supplied, and a paper eject part 303 to which the printed media such as paper are ejected.
- FIG. 4 is a diagram showing the operation panel 202 , a touch panel 311 , a ten-key 312 , a start button 313 , a reset button 314 , function keys 315 , and an initial setting button 316 are provided on the operation panel 202 .
- the touch panel 311 is a hardware (touch operation part) for use by the operator to make inputs to the MFP 101 by a touch-operation, and is also a hardware (screen display part) for use by the operator to obtain an output from the MFP 101 by a screen display.
- the ten-key 312 is a hardware for use by the operator to input numbers to the MFP 101 by a key (or button) operation.
- the start button 313 is a hardware for use by the operator to make a start operation by a button operation.
- the reset button 314 is a hardware for use by the operator to make a reset operation by a button operation.
- the function keys 315 are hardwares for use by the operator to display operation screens by the CSDK application 146 and the JSDK application 147 by a key (or button) operation.
- the initial setting button 316 is a hardware for use by the operator to display an initial setting screen by a button operation.
- the document setting part 301 is formed by an automatic document feeder (ADF) 321 , a flat bed 322 , and a flat bed cover 323 .
- the paper supply part 302 is formed by four paper supply trays.
- the paper eject part 303 is formed on a single paper eject tray.
- FIG. 5 is a diagram showing a first example of management mechanisms for the CSDK applications and the JSDK applications.
- the CSDK applications 146 are applications in the C-language
- the JSDK applications 147 are applications in the Java language.
- Each of the CSDK applications 146 and the JSDK applications 147 is executed as a thread.
- an SDK application service (SAS) 411 exists as a CSDK application 146 for controlling the other CSDK applications 146
- an SDK application service manager (SAS manager) 511 exists as a JSDK application 147 for controlling the other JSDK applications 147 .
- the SAS 411 and the SAS manager 511 carry out a starting control of the corresponding CSDK application 146 and JSDK application 147 , a start cancelling (including stopping) control, an installing control, an uninstalling control, an updating control and the like.
- the SAS 411 can not only control the CSDK applications 146 , but also control the JSDK applications 147 via the SAS manager 511 .
- the SAS 411 can directly control the CSDK applications 146 , and can also indirectly control the JSDK applications 147 via the SAS manager 511 .
- the application management mechanism for the CSDK applications 146 and the application management mechanism for the JSDK applications 147 are formed in an integrated or unified manner by providing the SAS 411 with a function capable of controlling the SAS manager 511 . Exchanges between the SAS 411 and the SAS manager 511 are made using a suitable protocol that may be simply used regardless of the developing language, such as the HyperText Transfer Protocol (HTTP) and the Simple Object Access Protocol (SOAP).
- HTTP HyperText Transfer Protocol
- SOAP Simple Object Access Protocol
- the fact that the base portion of the software of the MFP 101 is in the C-language is also one of the reasons why the function of controlling the SDK applications is preferably concentrated in the SAS 411 which is also in the C-language.
- FIG. 6 is a diagram showing a second example of the management mechanisms for the CSDK applications and the JSDK applications.
- those parts that are the same as those corresponding parts in FIG. 5 are designated by the same reference numerals, and a description thereof will be omitted.
- FIG. 6 shows a case where a plurality of JSDK platforms 148 are provided.
- the SAS manager 511 is provided for each of the JSDK platforms 148 .
- the SAS 411 controls the JSDK applications 147 on the each JSDK platform 148 via the SAS manager 511 of each JSDK platform 148 .
- the management mechanism for the SDK applications is also formed in the integrated and unified manner in the SAS 411 .
- FIG. 7 is a diagram showing an example of a management mechanism for the JSDK applications in a case where no CSDK application exists.
- FIG. 7 those parts that are the same as those corresponding parts in FIGS. 5 and 6 are designated by the same reference numerals, and a description thereof will be omitted.
- FIG. 7 shows the management mechanism for managing the control of the JSDK applications on each platform in an integrated and unified manner, for the case where no CSDK application exists and a plurality of JSDK platforms 148 exist.
- the SAS manager 511 that operates on one of the plurality of JSDK platforms 148 simply needs to control the JSDK applications 147 on the other JSDK platforms 148 in the integrated and unified manner, via the SAS managers 511 on the other JSDK applications 148 .
- FIG. 8 is a screen transition diagram showing operation screens displayed on the touch panel 311 shown in FIG. 4 .
- the operation screen B is an operation screen which regards the CSDK applications 146 and the JSDK application 147 as operation targets.
- a transition is made to an operation screen C.
- the operation screen C is an operation screen of the specified CSDK application 146 .
- the “JSDK application” is specified on the operation screen B, a transition is made to an operation screen D.
- the operation screen D is an operation screen that regards the JSDK application 147 , which is executed as a thread, as the operation target.
- a screen transition from the operation screen D to an operation screen E is carried out as a “switching” of the JSDK application 147 which occupies the display screen, only the JSDK application 147 that is being executed becomes a display target of the operation screen D, and the JSDK application 147 that is not being executed does not become the display target of the display screen D.
- a transition is made to the operation screen E.
- the operation screen E is an operation screen of the specified JSDK application 147 .
- the SCS 169 shown in FIG. 1 has the function of displaying the operation screen B shown in FIG. 8 and the function of making the screen transitions to the operation screens B, C and D shown in FIG. 8 .
- a screen manager 512 shown in FIG. 11 which will be described later has the function of displaying the operation screen D shown in FIG. 8 and the function of making the screen transition to the operation screen E shown in FIG. 8 .
- the CSDK application 146 or JSDK application 147 must also be started beforehand by a starting operation on a starting screen, if necessary.
- the SAS 414 and the SAS manager 511 carry out the installing control and the starting control of the CSDK application and JSDK application 147 in response to the installing operation on the installing operation screen and the starting operation on the starting screen.
- the SAS 414 and the SAS manager 511 similarly carry out the uninstalling control and the start cancelling control of the CSDK application 146 and the JSDK application 147 .
- FIG. 9 is a diagram for explaining the JSDK platform and the JSDK application in more detail.
- the JSDK platform 148 of this embodiment is in conformance with the Open Service Gateway initiative (OSGi) service platform.
- the OSGi service platform is a standardized technique of the OSGi alliance, that is an open software component-forming technique based on the Java language.
- the software in the Java language is implemented in the form of a software component called a “bundle”.
- the functions of such an equipment can be formed by the bundles, and the updating, customizing and maintenance of the functions of this equipment can be realized by downloading the bundles.
- an OSGi framework 403 and OSGi services 402 are provided to make the JSDK platform 148 function as an OSGi platform.
- the OSGi framework 403 manages and controls the bundles, including management of data and life cycles of the bundles.
- the OSGi services 402 form a library group that provides various services with respect to the bundles.
- FIG. 9 shows a state where a portion of the JSDK applications 147 is implemented as bundles 407 .
- each bundle 407 is to be implemented with a bundle activator 4071 .
- the bundle activator 4071 provides an interface with respect to the OSGi framework 403 for managing and controlling the bundles 407 .
- the OSGi framework 403 manages and controls each bundle 407 by calling the bundle activator 4071 of each bundle 407 .
- the bundles 407 are generally referred to as OSGi applications 401 .
- the applications other than the bundles are executable as the JSDK applications 147 .
- Xlets 406 are shown as examples of such applications that are other than the bundles and are executable as the JSDK applications 147 .
- JSDK system services 405 provide various services with respect to the Xlets 406 .
- the JSDK system services 405 include classes such as an Xlet bundle activator 404 , a multi Xlet manager 532 and an install manager 545 .
- the Xlet bundle activator 404 is a module for making the Xlets 406 appear as bundles with respect to the OSGi framework 403 .
- the multi Xlet manager 532 manages the life cycle and the like of each Xlet 406 .
- the install manager 545 manages the installing from an SD memory card and the Web and the uninstalling, with respect to the Xlets 406 .
- a CVM 555 shown in FIG. 9 is a virtual machine that realizes an execution environment of the Java.
- the Xlet bundle activator 404 Because the Xlets 406 are not implemented as bundles, the management and the like of the Xlets 406 cannot be made by the OSGi framework 403 as they are. But if separate management mechanisms were provided with respect to the applications that are implemented as the bundles 147 and the applications that are implemented as the Xlets 406 in the JSDK applications 147 , the structure of the JSDK platform 148 would become complex. Hence, it is desirable that the management and the like of all of the JSDK applications 147 can be made centrally by the OSGi framework 403 .
- the Xlet bundle activator 404 is provided so that the OSGi framework 403 can manage the Xlets 406 by an interface similar to that of the bundle 407 . More particularly, the Xlet bundle activator 404 provides, with respect to the OSGi framework 403 , an interface similar to the bundle activator 4071 that is implemented in each bundle 407 . In response to a calling of a target interface by the OSGi framework 403 , the Xlet bundle activator 404 calls an interface of the Xlet 406 corresponding to the target interface.
- the Xlet bundle activator 406 intermediates between the interface that is interpretable (or analyzable) by the OSGi framework 403 and the interface that is interpretable (or analyzable) by the Xlet 406 , so as to intermediate the life cycle management and the like of the Xlet 406 . Therefore, by the provision of the Xlet bundle activator 404 , the OSGi framework 403 centrally manages the JSDK applications 147 , regardless of whether the application is a bundle or an Xlet.
- FIG. 10 is a diagram conceptually showing a bundlizing state of Xlets by the Xlet bundle activator.
- the “bundlizing” refers to the forming of the Xlet 406 that is controllable by a control method similar to that for the bundle 407 , when viewed from the OSGi framework 403 .
- the OSGi framework calls a start ( ) method that is implemented in the bundle activator of the bundle when starting this bundle.
- the OSGi framework calls a stop ( ) method that is implemented in the bundle activator of this bundle.
- initXlet ( ), startXlet ( ), pauseXlet ( ), destroyXlet ( ) and the like are implemented in the Xlet as methods for controlling the life cycle including the starting and start cancelling.
- FIG. 10 shows a state where the differences of the interfaces are absorbed by the Xlet bundle activator 404 .
- the OSGi framework 403 calls the start ( ) method or the stop ( ) method of the Xlet bundle activator 404 , so as to request starting or start cancelling of the Xlet 406 .
- the Xlet bundle activator 404 realizes the start or start cancelling of the Xlet 406 , by calling the methods of the Xlet 406 such as the initXlet ( ), startXlet ( ), pauseXlet ( ) and destroyXlet ( ), in response to the calling of the start ( ) method or the stop ( ) method.
- the OSGi framework 403 can manage each of the JSDK applications 147 without having to be aware of whether the JSDK application 147 is implemented as the Xlet 406 or implemented as the bundle 407 .
- the structure in which the Xlet bundle activator 404 is implemented in the JSDK platform 148 is particularly convenient for a vendor of the JSDK applications 147 . This is because, the JSDK application 147 that is implemented as the existing Xlet 406 can be operated on the OSGi framework 403 without having to modify the JSDK application 147 that is implemented as the existing Xlet 406 , for example.
- FIG. 11 is a state transition diagram of the bundle.
- the states of the bundle include an installed state (INSTALLED), an uninstalled state (UNINSTALLED), an active state (ACTIVE), a resolved state (RESOLVED), a starting state (STARTING), a stopping state (STOPPING) and the like.
- the starting state refers to the state during the starting process
- the stopping state refers to the state during the start cancelling process.
- the state of the bundle undergoes a transition depending on the installing (install), uninstalling (uninstall), updating (update), starting (start), start cancelling or stopping (stop) and the like.
- the life cycle of the bundle is such a state transition of the bundle.
- the life cycle of the bundle is managed by the OSGi framework 403 .
- the installed state is a state immediately after the bundle is installed.
- the uninstalled state is a state immediately after the bundle is uninstalled.
- the active state is a state during which the bundle is started.
- the resolved state is a state during which the bundle is resolved, that is, the start cancelling is made.
- the stopping state is a state during which the starting process of the bundle is executed.
- the stopping state is a state during which the start cancelling process of the bundle is executed.
- FIG. 12 is a state transition diagram of the Xlet.
- the states of the Xlet include a loaded (or initialized) state (Loaded), a paused state (Paused), an active state (Active), and a destroyed (or end) state (Destroyed).
- the state of the Xlet undergoes a transition depending on the starting (initXlet), starting (startXlet), pausing (pauseXlet) and destroying (destroyXlet).
- the life cycle of the Xlet is such a state transition of the Xlet.
- the life cycle of the Xlet which is a JSDK application 147 , is managed by the JSDK platform 148 .
- the loaded state is a state immediately after generation of an Xlet instance.
- the paused state is a state during which the service providing is stopped.
- the active state is a state during which the service is provided.
- the destroyed state is a state immediately after the Xlet instance is destroyed. A transition to the loaded state or the destroyed state can only be made once, and transitions can be made an arbitrary number of times between the paused state and the active state.
- FIG. 13 is a state transition diagram of the Xlet that is bundlized and managed.
- the loaded state, the paused state, the active state and the destroyed state of the Xlet belong to the active state of the bundle.
- the loaded state, the paused state, the active state and the destroyed state of the Xlet exist as the active state of the bundle. Therefore, by mapping the state transitions of the Xlet 406 to the state transitions of the bundle, the Xlet 406 realizes state transitions similar to those of the bundle 407 on the OSGi framework 403 .
- FIG. 14 is a sequence diagram for explaining the installing process and the uninstalling process for the bundle.
- the SAS 411 When the SAS 411 accepts an instruction from the user to install a JSDK application 147 via the operation screen that is displayed on the touch panel 311 , the SAS 411 requests execution of the installing to the SAS manager 511 (step S 11 ), since the installing of the JSDK application 147 is controlled by the SAS manager 511 .
- the SAS manager 511 requests the install manager 545 to search for installable JSDK applications 147 from an installing source (for example, the Web site, the SD memory card or the like) that is selected on the operation screen (step S 12 ).
- the install manager 545 searches for the installable JSDK applications 147 , and returns a search result to the SAS manager 511 (step S 13 ).
- the SAS manager 511 requests installing of a bundle 407 to the OSGi framework 403 if the JSDK application 147 that is selected by the user from a list of JSDK applications 147 acquired as the search result is implemented as the bundle 407 (step S 14 ).
- the OSGi framework 403 requests installing of the bundle 407 which is the installing target, with respect to the bundle activator 4071 of the installing target bundle 407 (step S 15 ).
- the bundle 407 is installed into the MFP 101 based on the request from the OSGi framework 403 .
- the SAS 411 when the SAS 411 accepts an instruction from the user to uninstall a JSDK application 147 via the operation screen that is displayed on the touch panel 311 , the SAS 411 requests execution of the uninstalling to the SAS manager 511 (step S 21 ).
- the SAS manager 511 requests the install manager 545 to search for the JSDK applications 147 that are installed in the MFP 101 (step S 22 ).
- the install manager 545 searches for the installed JSDK applications 147 , and returns a search result to the SAS manager 511 (step S 23 ).
- the SAS manager 511 requests uninstalling of a bundle 407 to the OSGi framework 403 if the JSDK application 147 that is selected by the user from a list of JSDK applications 147 acquired as the search result is implemented as the bundle 407 (step S 24 ).
- the OSGi framework 403 requests uninstalling of the bundle 407 which is the uninstalling target, with respect to the bundle activator 4071 of the uninstalling target bundle 407 (step S 25 ).
- the bundle 407 is uninstalled from the MFP 101 based on the request from the OSGi framework 403 .
- FIG. 15 is a sequence diagram for explaining the installing process and the uninstalling process for the bundlized Xlet.
- steps S 31 through S 33 are the same as the steps S 11 through S 13 shown in FIG. 14 , and a description thereof will be omitted.
- the SAS manager 511 requests installing of an Xlet 406 to the install manager 545 if the JSDK application 147 that is selected by the user from a list of JSDK applications 147 acquired as the search result is implemented as the Xlet 406 (step S 34 ).
- the install manager 545 copies a class file of the Xlet bundle activator 404 so as to generate an Xlet bundle activator 404 with respect to the Xlet 406 that is the installing target (steps S 35 and S 36 ).
- the class file of the Xlet bundle activator 404 is required for each Xlet 406 , the implementing contents thereof may be used in common, and thus, the Xlet bundle activator 404 with respect to the installing target Xlet 406 is generated by simply copying the class file that is prepared in advance.
- the install manager 545 installs the Xlet 406 in the MFP 101 (step S 37 ).
- the SAS manager 511 requests installing of the bundlized Xlet 406 to the OSGi framework 403 (step S 38 ). This calling by the SAS manager 511 corresponds to the step S 14 shown in FIG. 14 .
- the OSGi framework 403 it is of no concern to the OSGi framework 403 whether or not the installing target is the Xlet 406 . Accordingly, the process executed by the OSGi framework 403 is similar to the case where the installing of the bundle 407 is requested. To the OSGi framework 403 , the Xlet bundle activator 404 in this case appears similarly to the bundle activator 4071 shown in FIG. 14 . Consequently, the OSGi framework 403 requests installing of the Xlet 406 to the Xlet bundle activator 404 (step S 39 ). However, since the Xlet 406 is already installed, the Xlet bundle activator 404 and not the Xlet 406 is installed.
- step S 41 and the subsequent steps indicate the uninstalling process of the Xlet 406 .
- steps S 41 through S 43 are the same as the steps S 21 through S 23 shown in FIG. 14 , and a description thereof will be omitted.
- the SAS manager 511 requests uninstalling of an Xlet 406 to the install manager 545 if the JSDK application 147 that is selected by the user from a list of JSDK applications 147 acquired as the search result is implemented as the Xlet 406 (step S 44 ).
- the install manager 545 uninstalls the Xlet 406 which is the uninstalling target (step S 45 ).
- the SAS manager 511 requests uninstalling of the bundlized Xlet 406 to the OSGi framework 403 (step S 46 ).
- This calling by the SAS manager 511 corresponds to the step S 24 shown in FIG. 14 .
- the process executed by the OSGi framework 403 is similar to the case where the uninstalling of the bundle 407 is requested.
- the Xlet bundle activator 404 in this case appears similarly to the bundle activator 4071 shown in FIG. 14 .
- the OSGi framework 403 requests uninstalling of the Xlet 406 to the Xlet bundle activator 404 (step S 47 ). However, since the Xlet 406 is already uninstalled, the Xlet bundle activator 404 and not the Xlet 406 is uninstalled.
- the installing and uninstalling processes of the bundle 407 and the installing and uninstalling processes of the Xlet 406 are carried out according to similar procedures, when viewed from the OSGi framework 403 .
- the calling with respect to the OSGi framework 403 (steps S 14 and S 24 ) in FIG. 14 and the calling with respect to the OSGi framework 403 (steps S 38 and S 46 ) in FIG. 15 are appropriately matched.
- the calling with respect to the OSGi framework 403 (steps S 15 and S 25 ) in FIG. 14 and the calling with respect to the OSGi framework 403 (steps S 39 and S 47 ) in FIG. 15 are appropriately matched.
- the OSGi framework 403 realizes the installing and uninstalling of the bundle 407 and the Xlet 406 without being concerned with the differences between the bundle 407 and the Xlet 406 .
- FIG. 16 is a sequence diagram for explaining the starting process and the start cancelling process for the bundle.
- the SAS 411 When the SAS 411 accepts an instruction from the user to start a JSDK application 147 via the operation screen that is displayed on the touch panel 311 , the SAS 411 requests execution of the starting to the SAS manager 511 (step S 51 ), since the starting of the JSDK application 147 is controlled by the SAS manager 511 .
- the SAS manager 511 requests the install manager 545 to search for the JSDK applications 147 that are installed in the MFP 101 (step S 52 ).
- the install manager 545 searches for the installed JSDK application 147 , and returns a search result to the SAS manager 511 (step S 53 ).
- the SAS manager 511 requests, with respect to the OSGi framework 403 , starting of a JSDK application 147 that is selected by the user from a list of JSDK applications 147 acquired as the search result (step S 54 ).
- the OSGi framework 403 starts the bundle 407 which is the starting target by calling the start ( ) method of the bundle activator 4071 of the starting target bundle 407 (step S 55 ).
- the SAS 411 when the SAS 411 accepts an instruction from the user to stop (make start cancelling) a JSDK application 147 via the operation screen that is displayed on the touch panel 311 , the SAS 411 requests execution of the stop (start cancelling) to the SAS manager 511 (step S 61 ).
- the SAS manager 511 requests the install manager 545 to search for the JSDK applications 147 that are installed in the MFP 101 (step S 62 ).
- the install manager 545 searches for the installed JSDK applications 147 , and returns a search result to the SAS manager 511 (step S 63 ).
- the SAS manager 511 requests stopping (start cancelling) of the JSDK application 147 that is selected by the user from a list of JSDK applications 147 acquired as the search result (step S 64 ).
- the OSGi framework 403 stops the bundle 407 which is the stopping target by calling the stop ( ) method of the bundle activator 4071 of the stopping target bundle 407 (step S 65 ).
- FIG. 17 is a sequence diagram for explaining the starting process and the start cancelling process for the bundlized Xlet.
- steps S 71 through S 74 are the same as the step S 51 through S 54 shown in FIG. 16 , and a description thereof will be omitted.
- the OSGi framework 403 calls the start ( ) method of the Xlet bundle activator 404 corresponding to the Xlet 406 that is the starting target (step S 75 ). But in this case, it is of no concern to the OSGi framework 403 whether or not the starting target is the Xlet 406 .
- the Xlet bundle activator 404 appears similarly to the bundle activator 401 shown in FIG. 16 , and the OSGi framework 403 simply calls the start ( ) method of the Xlet bundle activator 404 similarly to the step S 55 shown in FIG. 16 which calls the start ( ) method of the bundle activator 401 .
- the Xlet bundle activator 404 whose start ( ) method is called, requests the starting (generation) of the Xlet 406 by calling the createXlet ( ) method of the multi Xlet manager 532 (step S 76 ).
- the multi Xlet manager 532 initializes the Xlet 406 by calling the initXlet ( ) method of the Xlet 406 (step S 77 ), and further, starts the Xlet 406 by calling the startXlet ( ) method (step S 78 ).
- step S 81 and subsequent steps indicate a start cancelling process of the Xlet 406 .
- steps S 81 through S 84 are the same as the steps S 61 through S 64 shown in FIG. 16 , and a description thereof will be omitted.
- the OSGi framework 403 calls the stop ( ) method of the Xlet bundle activator 404 corresponding to the Xlet 406 that is the stopping target (step S 85 ). But in this case, it is of no concern to the OSGi framework 403 whether or not the stopping target is the Xlet 406 .
- the OSGi framework 403 simply calls the stop ( ) method of the Xlet bundle activator 404 similarly to the step S 65 shown in FIG.
- the Xlet bundle activator 404 which calls the stopping (descroying) of the Xlet 406 by calling the destroyXlet ( ) method of the multi Xlet manager 532 (step S 86 ).
- the multi Xlet manager 532 stops the Xlet 406 by calling the destroyXlet ( ) method of the Xlet 406 (step S 87 ).
- the starting process and the start cancelling process of the bundle 407 and the starting process and the start cancelling process of the Xlet 406 are carried out according to similar procedures, when viewed from the OSGi framework 403 .
- the calling with respect to the OSGi framework 403 (steps S 54 and S 64 ) in FIG. 16 and the calling with respect to the OSGi framework 403 (steps S 74 and S 84 ) in FIG. 17 are appropriately matched.
- the calling with respect to the OSGi framework 403 (steps S 55 and S 65 ) in FIG. 16 and the calling with respect to the OSGi framework 403 (steps S 75 and S 85 ) in FIG. 17 are appropriately matched.
- the OSGi framework 403 realizes the starting and start cancelling (or stopping) of the bundle 407 and the Xlet 406 without being concerned with the differences between the bundle 407 and the Xlet 406 .
- FIG. 18 is a class diagram of the JSDK applications 147 and the JSDK platform 148 shown in FIG. 1 .
- the JSDK applications 147 and the JSDK platform 148 are executed as a single process as a whole, on the same process.
- Each of the blocks within the JSDK applications 147 and the JSDK platform 148 is executed in parallel in units of threads (multi-thread) as threads on a single process.
- the JSDK applications 147 and the JSDK platform 148 are translated in a batch from source codes into byte codes by a Java compiler, and successively executed by a Java virtual machine.
- the JSDK applications 147 and the JSDK platform 148 are based on the “Foundation Profile” of the “Java 2 Micro Edition”.
- user applications 501 As shown in FIG. 18 , user applications 501 , the SAS manager 511 , the screen manager 512 and the like exist as the JSDK applications 147 .
- the user application 501 is a JSDK application 147 that is developed by the user (for example, the vendor) of the MFP 101 using the JSDK.
- the SAS manager 511 is a JSDK application 147 that controls the other JSDK applications 147 such as the user applications 501 .
- the screen manager 512 is a JSDK application 147 that displays operation screens having the other JSDK applications 147 such as the user applications 501 as the operation target.
- the user application 501 is a kind of an Xlet which is a Java application, comparable to stand-alone applications and applets.
- the SAS manager 511 and the screen manager 512 are Xlets (XletEx) that have been subjected to peculiar extensions.
- the JSDK platform 148 includes classes such as a JSDK environment 521 , an Xlet manager 531 , the multi Xlet manager 532 , a send manager 541 , an event manager 542 , a system event manager 543 , a panel manager 544 , the install manager 545 and a server/client manager 546 .
- the JSDK environment 521 is a class for executing a starting environment setting of the JSDK system that reflects the execution environment of the JSDK system.
- the Xlet manager 531 is a class for carrying out a 1:1 management of the Xlet. In this particular case, the life cycles and data of five Xlets are managed on a 1:1 basis by the corresponding five Xlet managers 531 .
- the multi Xlet manager 532 is a class for managing al of the Xlet managers 531 . In this particular case, all of the life cycles and data of the five Xlet managers 531 are managed by the single multi Xlet manager 532 .
- the life cycles and data of the “bundles” of the SAS manager 511 , the screen manager 512 , the JSDK environment 521 , the multi Xlet manager 532 , the send manager 541 , the event manager 542 , the system event manager 543 , the panel manager 544 , the install manager 545 and the server/client manager 546 are managed by the OSGi framework 403 .
- the system event manager 543 is a class for managing a system event from the platform 132 shown in FIG. 1 , such as a power mode.
- the panel manager 544 is a class for making an arbitration when one Xlet occupies the screen of the operation panel 202 .
- the install manager 545 is a class for managing the installing from the Web and the SD memory card and the uninstalling.
- a JSDK API 551 and a JSDK API 552 are used as APIs.
- One difference between the Xlet and the XletEx is that when accessing an object, the use of the JSDK API 551 and the access to the JSDK platform 148 is possible in the case of the XletEx.
- the MFP 101 shown in FIG. 1 further includes a JSDK session 553 and a native JSDK session 554 which form an interface for the C-language and the Java language, and the CVM 555 which is a Java virtual machine for executing the JSDK applications 147 and the JSDK platform 148 .
- FIG. 19 is a class diagram related to a starting process of the JSDK system.
- the OSGi framework 403 first generates the bundles forming the OSGi applications 401 and the ODGi services 402 (step S 1 ).
- the OSGi framework 403 generates the bundles forming the JSDK applications 147 and the JSDK platform 148 (step S 2 ).
- the JSDK environment 521 executes the starting environment setting of the JSDK system reflecting the execution environment of the JSDK system, such as generating the JSDK session 553 and the native JSDK session 554 (step S 3 ).
- the JSDK session 553 then generates the send manager 541 and the event manager 542 (step S 4 ).
- the SAS 411 and the SAS manager 511 participate in the starting process of the user application 501 .
- FIG. 20 is a diagram showing a personal computer (PC) corresponding to an embodiment of the present invention.
- a PC 701 shown in FIG. 20 is connected to the MFP 101 shown in FIG. 1 via a network 801 , and functions as an emulator of the MFP 101 shown in FIG. 1 .
- the PC 701 shown in FIG. 20 includes a main PC body 711 , a keyboard 712 , a mouse 713 , a display 714 and the like.
- the main PC body 711 includes a CPU, a ROM, a RAM, an NVRAM, an HDD, a MODEM, an NIC and the like.
- the keyboard 712 and the mouse 713 form a hardware (operation part) for use by the operator to make inputs to the MFP 101 , in place of the operation panel 202 .
- the display 714 forms a hardware (display part) for use by the operator to obtain an output from the MFP 101 , in place of the operation panel 202 .
- FIG. 21 is a class diagram showing the JSDK applications 147 and the JSDK platform 148 within the PC 701 shown in FIG. 20 .
- the JSDK applications 147 , the JSDK platform 148 , the OSGi applications 401 , the OSGi services 402 and the OSGi framework 403 which are similar to those of the MFP 101 shown in FIG. 1 , are provided within the PC 701 shown in FIG. 20 .
- the class diagram of the JSDK applications 147 and the JSDK platform 148 within the MFP 101 shown in FIG. 1 is shown in FIG. 18 described above. Accordingly, a description will only be given of the portions of FIG. 21 differing from FIG. 18 .
- the SAS 411 shown in FIG. 18 is replaced by a SAS emulator 611 shown in FIG. 21 .
- the panel manager 544 shown in FIG. 18 is replaced by a panel manager emulator 744 shown in FIG. 21 .
- the JSDK session 553 shown in FIG. 18 is replaced by an emulator JSDK session 753 shown in FIG. 21 .
- the native JSDK session 554 shown in FIG. 18 is replaced by an event emulator 754 shown in FIG. 21 .
- the CVM 555 shown in FIG. 18 is replaced by a JVM 755 shown in FIG. 21 .
- the SAS emulator 611 is a CSDK application 146 that controls other CSDK applications 146 , and can also control the JSDK applications 147 via the SAS manager 511 within the MFP 101 or the PC 701 , as indicated by arrows A and B in FIG. 21 .
- the panel manager emulator 744 is a class for emulating the panel manager 544 and converting an operation on the operation panel 202 into the operation of the keyboard 712 or the mouse 713 .
- the emulator JSDK session 753 is a class for executing a communication path establishing process.
- the event emulator 754 is a class for emulating the operation of the MFP 101 .
- the JVM 755 is a Java virtual machine for executing the JSDK applications 147 , the JSDK platform 148 , the OSGi applications 401 , the OSGi services 402 and the OSGi framework 403 .
- the starting process of the JSDK system within the PC 701 shown in FIG. 20 is similar to that shown in FIG. 19 .
- the PC 701 shown in FIG. 20 can remotely operate the MFP 101 shown in FIG. 1 , but when remotely operating the MFP 101 shown in FIG. 1 by the PC 701 shown in FIG. 20 , the starting process of the JSDK system within the MFP 101 shown in FIG. 1 is carried out as shown in FIG. 22 or FIG. 23 .
- FIG. 22 is a class diagram related to a starting process of the JSDK system
- FIG. 23 is a class diagram related to another starting process of the JSDK system.
- the JSDK environment 521 within the MFP 101 registers the JSDK platform 148 within the PC 701 (step S 3 ).
- the OSGi framework 403 within the MFP 101 registers the server/client manager 546 within the PC 701 (step S 4 ).
- the SAS emulator 611 within the PC 701 participates in the starting process of the user application 501 , and thus, in a step S 4 shown in FIG. 22 , the OSGi framework 403 within the MFP 101 registers the SAS emulator 611 within the PC 701 .
- the SAS 411 within the MFP 101 participates in the starting process of the user application 501 , and thus, in a step S 4 shown in FIG. 23 , the OSGi framework 403 within the MFP 101 does not register the SAS emulator 611 within the PC 701 .
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Facsimiles In General (AREA)
Abstract
Description
- 1. Field of the Invention
- The present invention generally relates to image forming apparatuses, information processing apparatuses, information processing methods, information processing programs and storage media, and more particularly to an image forming apparatus such as a copying apparatus, a printer, a scanner, a facsimile apparatus, a composite apparatus and a multi-function peripheral, an information processing apparatus such as a personal computer, an information processing method, a computer-readable information processing program, and a computer-readable storage medium such as a Secure Digital (SD) memory card.
- 2. Description of the Related Art
- Recently, composite apparatuses and multi-function peripherals, which have a copy function, a printer function, a scanner function and a facsimile function, have been reduced to practice and marketed. When the composite apparatus or the multi-function peripheral functions as a copying apparatus or a printer, images are printed on a printing medium such as paper. When the composite apparatus or the multi-function peripheral functions as a copying apparatus or a scanner, images are read from documents. In addition, when the composite apparatus or the multi-function peripheral functions as a facsimile apparatus, images are exchanged with another equipment via a telephone line.
- The applicant is aware of a Japanese Laid-Open Patent Application No. 2002-84383.
- Application programs (hereinafter simply referred to as an applications) that are implemented in the composite apparatuses or the multi-function peripherals were conventionally in C-language, but recently, there are composite apparatuses or multi-function peripherals that are implemented with applications in the Java (registered trademark) language. In addition, the applications in the Java language actually include various kinds of applications such as the Applet, Xlet, Servlet and JSP. For this reason, an application management mechanism, such as a platform, which manages these applications, is gradually becoming more and more complex. Because the complexity of the application management mechanism is undesirable both from the point of view of the equipment performance and from the point of view of the development efficiency, it is desirable to form the application management mechanism in an integrated or unified manner as much as possible.
- Accordingly, it is a general object of the present invention to provide a novel and useful image forming apparatus, information processing apparatus, information processing method, computer-readable information processing program and computer-readable storage medium, in which the problems described above are suppressed.
- Another and more specific object of the present invention is to provide an image forming apparatus, an information processing apparatus, an information processing method, a computer-readable information processing program and a computer-readable storage medium, which can form an application management mechanism, which is configured to manage applications that are implemented in an image forming apparatus, in an integrated or unified manner.
- Still another object of the present invention is to provide an image forming apparatus having a plurality of application execution environments, comprising a control part in each of the application execution environments, configured to control an application executed in a corresponding application execution environment, wherein the control part in a first application execution environment controls an application executed in an other application execution environment via the control part of the other application execution environment.
- A further object of the present invention is to provide an information processing apparatus that functions as an emulator of an image forming apparatus and has application execution environments, comprising a control part in each of the application execution environments, configured to control an application executed in a corresponding application execution environment, wherein the control part controls an application executed in an other application execution environment of the information processing apparatus via the control part of the other application execution environment or, controls an application executed in an application execution environment of the image forming apparatus via the control part of the application execution environment of the image forming apparatus.
- Another object of the present invention is to provide an information processing method executed in an image forming apparatus having a plurality of application execution environments, comprising a first control procedure of a first application execution environment controlling an application executed in the first application execution environment; a second control procedure of a second application execution environment controlling an application executed in the second application execution environment, wherein the first control procedure controls the application executed in the second application execution environment via the second control procedure.
- Still another object of the present invention is to provide an information processing method executed in an information processing apparatus that functions as an emulator of an image forming apparatus and has a plurality of application execution environments, comprising a first control procedure of an application execution environment controlling an application executed in the application execution environment; and a second control procedure of the application execution environment controlling an application executed in an other application execution environment of the information processing apparatus via the other application execution environment or, controlling an application executed in an application execution environment of the image forming apparatus via the application execution environment of the image forming apparatus.
- Still another object of the present invention is to provide an image forming apparatus comprising a bundle control part configured to control a first application that is implemented as a bundle; and a control intermediating part configured to provide with respect to the bundle control part an interface identical to that of the first application, and to intermediate control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- A further object of the present invention is to provide an information processing apparatus that functions as an emulator of an image forming apparatus, comprising a bundle control part configured to control a first application that is implemented as a bundle; and a control intermediating part configured to provide with respect to the bundle control part an interface identical to that of the first application, and to intermediate control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- Another object of the present invention is to provide an information processing method executed by an image forming apparatus that comprises a bundle control part configured to control a first application that is implemented as a bundle, comprising providing, by a control intermediating part, an interface identical to that of the first application with respect to the bundle control part; and intermediating control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- Still another object of the present invention is to provide an information processing method executed by an information processing apparatus that functions as an emulator of an image forming apparatus and has a bundle control part configured to control a first application that is implemented as a bundle, comprising providing with respect to the bundle control part an interface identical to that of the first application by a control intermediating part; and intermediating control of a second application that is not implemented as a bundle in response to a calling of the interface by the bundle control part.
- A further object of the present invention is to provide a computer-readable information processing program for causing a computer to execute any one of the information processing methods described above.
- Another object of the present invention is to provide a computer-readable storage medium which stores a program for causing a computer to execute any one of the information processing methods described above.
- According to the present invention, it is possible to form an application management mechanism, which is configured to manage applications that are implemented in an image forming apparatus, in an integrated or unified manner.
- Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings.
-
FIG. 1 is a diagram showing a multi-function peripheral corresponding to an embodiment of the present invention; -
FIG. 2 is a diagram showing a hardware structure of the multi-function peripheral shown inFIG. 1 ; -
FIG. 3 is a diagram showing an external appearance of the multi-function peripheral shown inFIG. 1 ; -
FIG. 4 is a diagram showing an operation panel; -
FIG. 5 is a diagram showing a first example of management mechanisms for CSDK applications and JSDK applications; -
FIG. 6 is a diagram showing a second example of the management mechanisms for the CSDK applications and the JSDK applications; -
FIG. 7 is a diagram showing an example of a management mechanism for the JSDK applications in a case where no CSDK application exists; -
FIG. 8 is a screen transition diagram showing operation screens displayed on a touch panel; -
FIG. 9 is a diagram for explaining a JSDK platform and the JSDK application in more detail; -
FIG. 10 is a diagram conceptually showing a bundlizing state of Xlets by an Xlet bundle activator; -
FIG. 11 is a state transition diagram of the bundle; -
FIG. 12 is a state transition diagram of the Xlet; -
FIG. 13 is a state transition diagram of the Xlet that is bundlized and managed; -
FIG. 14 is a sequence diagram for explaining an installing process and an uninstalling process for the bundle; -
FIG. 15 is a sequence diagram for explaining the installing process and the uninstalling process for the bundlized Xlet; -
FIG. 16 is a sequence diagram for explaining a starting process and a start cancelling process for the bundle; -
FIG. 17 is a sequence diagram for explaining the starting process and the start cancelling process for the bundlized Xlet; -
FIG. 18 is a class diagram of the JSDK applications and the JSDK platform shown inFIG. 1 ; -
FIG. 19 is a class diagram related to a starting process of a JSDK system; -
FIG. 20 is a diagram showing a personal computer corresponding to an embodiment of the present invention; -
FIG. 21 is a class diagram showing the JSDK applications and the JSDK platform within the personal computer; -
FIG. 22 is a class diagram related to a starting process of a JSDK system; and -
FIG. 23 is a class diagram related to another starting process of a JSDK system. - A description will be given of embodiments of embodiments of an image forming apparatus, an information processing apparatus, an information processing method, and information processing program and a storage medium according to the present invention, by referring to the drawings.
-
FIG. 1 is a diagram showing a Multi-Function Peripheral (MFP) 101 corresponding to an embodiment of the present invention. The MFP 101 shown inFIG. 1 hasvarious hardwares 111,various softwares 112, and anMFP starting part 113. - The
hardwares 111 of the MFP 101 include an imaging part (or an image pickup part) 121, aprinting part 122, andother hardwares 123. Theimaging part 121 is a hardware for reading images (image data) from documents. Theprinting part 122 is a hardware for printing images (image data) on printing media such as paper. - The
softwares 112 of the MFP 101 include various applications (application programs) 131 andvarious platforms 132. The programs including theapplications 131 and theplatforms 132 are executed in parallel in units of processes by an Operating System (OS) such as UNIX (registered trademark). - The
applications 131 include acopy application 141 for copying, aprinter application 142 for printing, ascanner application 143 for scanning, afacsimile application 144 for facsimile communication, and anetwork file application 145 for network file. - The
applications 131 may be developed using an exclusive Software Developing Kit (SDK). Theapplication 131 that is developed using the SDK is referred to as an SDK application. The exclusive SDK may be a “CSDK” for developing theapplication 131 in the C-language or a “JSDK” for developing theapplication 131 in the Java (registered trademark) language. Theapplication 131 that is developed using the CSDK is referred to as a “CSDK application”, and theapplication 131 that is developed using the JSDK is referred to as a “JSDK application”. TheMFP 101 shown inFIG. 1 includes both aCSDK application 146 and aJSDK application 147. TheMFP 101 further includes aJSDK platform 148 which is provided as thesoftware 112 for intermediating between theJSDK application 147 that is described in the Java language and theother softwares 112. In other words, theMFP 101 has a plurality of execution environments including an execution environment for the CSDK application that is implemented in the C-language, an execution environment for the JSDK application that is implemented in the Java language and the like. TheJSDK platform 148 is provided as a particular example of the execution environment for the JSDK application. - The
platforms 132 includevarious control services 151, a system resource manager (SRM) 152, andvarious handlers 153. Thecontrol services 151 include a network control service (NCS) 161, a facsimile control service (FCS) 162, a delivery control service (DCS) 163, an engine control service (ECS) 164, a memory control service (MCS) 165, an operation panel control service (OCS) 166, a certification control service (CCS) 167, a user directory control service (UCS) 168, and a system control service (SCS) 169. Thehandlers 153 include a facsimile control unit handler (FCUH) 171 and an image memory handler (IMH) 172. - A process of the
NCS 161 intermediates a network communication. A process of theFCS 162 provides an API of the facsimile. A process of theDCS 163 carries out a control related to a distribution process of stored documents. A process of theECS 164 carries out a control related to theimaging part 121 and theprinting part 122. A process of theMCS 165 carries out a control related to a memory and a hard disk drive (HDD). A process of theOCS 166 carries out a control related to an operation panel. A process of theCCS 167 carries out a control relate to an authentication process and an accounting process. A process of theUCS 168 carries out a control related to management of user information. A process of theSCS 169 carries out a control related to system management. - A virtual application service (VAS) 135 is provided as a
software 112 for intermediating between theapplications 131 and theplatforms 132. TheVAS 135 operates as a server process by regarding theapplication 131 as a client, and operates as a client process by regarding theplatform 132 as a server. TheVAS 135 has a rapping function for concealing theplatforms 132 from theapplications 131, and has a role of absorbing differences in versions of theplatforms 132 when the versions of theplatforms 132 are upgraded. - The
MFP starting part 113 is first executed when the power is input to theMFP 101. Hence, the OS such as the UNIX is started, and theapplications 131 and theplatforms 132 are started. These programs are stored in the HDD or the memory card, and are read from the HDD or the memory card and started in the memory. -
FIG. 2 is a diagram showing a hardware structure of theMFP 101 shown inFIG. 1 . Thehardwares 111 of theMFP 101 include acontroller 201, anoperation panel 202, a facsimile control unit (FCU) 203, theimaging part 121 and theprinting part 122. - The
controller 201 has aCPU 211, anASIC 212, anNB 221, anSB 222, a MEM-P 231, a MEM-C 232, aHDD 233, amemory card slot 234, a network interface controller (NIC) 241, anUSB device 242, an IEEE1394 device 2443, and aCentronics device 244. - The
CPU 211 is an integrated circuit (IC) for processing various information. TheASIC 212 is an IC for processing various images. TheNB 221 is a north bridge for thecontroller 201. TheSB 222 is a south bridge for thecontroller 201. The MEM-P 231 is a system memory of theMFP 101. The MEM-C 232 is a local memory of theMFP 101. TheHDD 233 is a storage of theMFP 101. Thememory card slot 234 is a slot for setting amemory card 235. TheNIC 241 is a controller for network communication using a MAC address. TheUSB device 242 is a device that provides connection terminals in conformance with the USB standards. TheIEEE1394 device 243 is a device that provides connection terminals in conformance with the IEEE1394 standards. TheCentronics device 244 is a device that provides connection terminals in conformance with the Centronics specifications. - The
operation panel 202 is a hardware (operation part) for use by an operator to make inputs to theMFP 101, and is also a hardware (display part) for use by the operator to obtain an output from theMFP 101. -
FIG. 3 is a diagram showing an external appearance of theMFP 101 shown inFIG. 1 .FIG. 3 shows the position of theimaging part 121, the position of theprinting part 122, and the position of theoperation panel 202.FIG. 3 further shows adocument setting part 301 on which the documents to be read are set, apaper supply part 302 from which the printing media such as paper are supplied, and apaper eject part 303 to which the printed media such as paper are ejected. - As shown in
FIG. 4 which is a diagram showing theoperation panel 202, atouch panel 311, a ten-key 312, astart button 313, areset button 314,function keys 315, and aninitial setting button 316 are provided on theoperation panel 202. Thetouch panel 311 is a hardware (touch operation part) for use by the operator to make inputs to theMFP 101 by a touch-operation, and is also a hardware (screen display part) for use by the operator to obtain an output from theMFP 101 by a screen display. The ten-key 312 is a hardware for use by the operator to input numbers to theMFP 101 by a key (or button) operation. Thestart button 313 is a hardware for use by the operator to make a start operation by a button operation. Thereset button 314 is a hardware for use by the operator to make a reset operation by a button operation. Thefunction keys 315 are hardwares for use by the operator to display operation screens by theCSDK application 146 and theJSDK application 147 by a key (or button) operation. Theinitial setting button 316 is a hardware for use by the operator to display an initial setting screen by a button operation. - The
document setting part 301 is formed by an automatic document feeder (ADF) 321, aflat bed 322, and aflat bed cover 323. Thepaper supply part 302 is formed by four paper supply trays. The paper ejectpart 303 is formed on a single paper eject tray. - [CSDK and JSDK]
-
FIG. 5 is a diagram showing a first example of management mechanisms for the CSDK applications and the JSDK applications. TheCSDK applications 146 are applications in the C-language, and theJSDK applications 147 are applications in the Java language. Each of theCSDK applications 146 and theJSDK applications 147 is executed as a thread. - In the
MFP 101 shown inFIG. 1 , an SDK application service (SAS) 411 exists as aCSDK application 146 for controlling theother CSDK applications 146, and an SDK application service manager (SAS manager) 511 exists as aJSDK application 147 for controlling theother JSDK applications 147. TheSAS 411 and theSAS manager 511 carry out a starting control of thecorresponding CSDK application 146 andJSDK application 147, a start cancelling (including stopping) control, an installing control, an uninstalling control, an updating control and the like. One of the reasons why the management mechanisms for theCSDK application 146 and theJSDK application 147 differ is because the developing languages used are different for theCSDK application 146 and theJSDK application 147. For example, when an attempt is made to directly control theJSDK application 147 by theSAS 411, it becomes necessary to call an interface in the Java language from source codes in the C-language, thereby requiring a high-level programming technique and processing contents that are troublesome and complex. In addition, even when the different execution formats of theCSDK application 146 and theJSDK application 147 are taken into consideration such as the execution of theCSDK application 146 as a process and the execution of theJSDK application 147 as a thread, it is more advantageous from the point of view of simplifying the management mechanism to provide separate application management mechanisms for theCSDK application 146 and for theJSDK application 147. - However, the
SAS 411 can not only control theCSDK applications 146, but also control theJSDK applications 147 via theSAS manager 511. In other words, theSAS 411 can directly control theCSDK applications 146, and can also indirectly control theJSDK applications 147 via theSAS manager 511. Accordingly, the application management mechanism for theCSDK applications 146 and the application management mechanism for theJSDK applications 147 are formed in an integrated or unified manner by providing theSAS 411 with a function capable of controlling theSAS manager 511. Exchanges between theSAS 411 and theSAS manager 511 are made using a suitable protocol that may be simply used regardless of the developing language, such as the HyperText Transfer Protocol (HTTP) and the Simple Object Access Protocol (SOAP). As a result, it becomes unnecessary to call an interface in the Java language from the source code in the C-language, and the problem of the troublesome and complex processing contents can be solved. Moreover, the fact that the base portion of the software of theMFP 101 is in the C-language is also one of the reasons why the function of controlling the SDK applications is preferably concentrated in theSAS 411 which is also in the C-language. -
FIG. 6 is a diagram showing a second example of the management mechanisms for the CSDK applications and the JSDK applications. InFIG. 6 , those parts that are the same as those corresponding parts inFIG. 5 are designated by the same reference numerals, and a description thereof will be omitted.FIG. 6 shows a case where a plurality ofJSDK platforms 148 are provided. In this case, theSAS manager 511 is provided for each of theJSDK platforms 148. Accordingly, theSAS 411 controls theJSDK applications 147 on the eachJSDK platform 148 via theSAS manager 511 of eachJSDK platform 148. In this case, the management mechanism for the SDK applications is also formed in the integrated and unified manner in theSAS 411. -
FIG. 7 is a diagram showing an example of a management mechanism for the JSDK applications in a case where no CSDK application exists. InFIG. 7 , those parts that are the same as those corresponding parts inFIGS. 5 and 6 are designated by the same reference numerals, and a description thereof will be omitted.FIG. 7 shows the management mechanism for managing the control of the JSDK applications on each platform in an integrated and unified manner, for the case where no CSDK application exists and a plurality ofJSDK platforms 148 exist. In this case, theSAS manager 511 that operates on one of the plurality ofJSDK platforms 148 simply needs to control theJSDK applications 147 on theother JSDK platforms 148 in the integrated and unified manner, via theSAS managers 511 on theother JSDK applications 148. -
FIG. 8 is a screen transition diagram showing operation screens displayed on thetouch panel 311 shown inFIG. 4 . InFIG. 8 , when thefunction key 315 shown inFIG. 4 is pushed on an operation screen A, a transition is made to an operation screen B. The operation screen B is an operation screen which regards theCSDK applications 146 and theJSDK application 147 as operation targets. When one of the “CSDK applications CSDK application 146. On the other hand, when the “JSDK application” is specified on the operation screen B, a transition is made to an operation screen D. The operation screen D is an operation screen that regards theJSDK application 147, which is executed as a thread, as the operation target. A screen transition from the operation screen D to an operation screen E is carried out as a “switching” of theJSDK application 147 which occupies the display screen, only theJSDK application 147 that is being executed becomes a display target of the operation screen D, and theJSDK application 147 that is not being executed does not become the display target of the display screen D. When one the “JSDK applications JSDK application 147. - The
SCS 169 shown inFIG. 1 has the function of displaying the operation screen B shown inFIG. 8 and the function of making the screen transitions to the operation screens B, C and D shown inFIG. 8 . Ascreen manager 512 shown inFIG. 11 which will be described later has the function of displaying the operation screen D shown inFIG. 8 and the function of making the screen transition to the operation screen E shown inFIG. 8 . When making acertain CSDK application 146 orJSDK application 147 the display target of the operation screen B or D shown inFIG. 8 , it is necessary to install theCSDK application 146 orJSDK application 147 beforehand by an installing operation on an installing operation screen. TheCSDK application 146 orJSDK application 147 must also be started beforehand by a starting operation on a starting screen, if necessary. The SAS 414 and theSAS manager 511 carry out the installing control and the starting control of the CSDK application andJSDK application 147 in response to the installing operation on the installing operation screen and the starting operation on the starting screen. The SAS 414 and theSAS manager 511 similarly carry out the uninstalling control and the start cancelling control of theCSDK application 146 and theJSDK application 147. - [OSGi]
-
FIG. 9 is a diagram for explaining the JSDK platform and the JSDK application in more detail. TheJSDK platform 148 of this embodiment is in conformance with the Open Service Gateway initiative (OSGi) service platform. The OSGi service platform is a standardized technique of the OSGi alliance, that is an open software component-forming technique based on the Java language. In an equipment implemented with the OSGi service platform, the software in the Java language is implemented in the form of a software component called a “bundle”. The functions of such an equipment can be formed by the bundles, and the updating, customizing and maintenance of the functions of this equipment can be realized by downloading the bundles. - In
FIG. 9 , anOSGi framework 403 andOSGi services 402 are provided to make theJSDK platform 148 function as an OSGi platform. TheOSGi framework 403 manages and controls the bundles, including management of data and life cycles of the bundles. The OSGi services 402 form a library group that provides various services with respect to the bundles. - Therefore, since the
JSDK platform 148 functions as the OSGi service platform, the applications that operate on theJSDK platform 148, that is, theJSDK applications 147, can be implemented as bundles.FIG. 9 shows a state where a portion of theJSDK applications 147 is implemented as bundles 407. On the OSGi service platform, eachbundle 407 is to be implemented with abundle activator 4071. Thebundle activator 4071 provides an interface with respect to theOSGi framework 403 for managing and controlling thebundles 407. In other words, theOSGi framework 403 manages and controls eachbundle 407 by calling thebundle activator 4071 of eachbundle 407. In this embodiment, thebundles 407 are generally referred to asOSGi applications 401. - In the
MFP 101 of this embodiment, the applications other than the bundles are executable as theJSDK applications 147. In this embodiment,Xlets 406 are shown as examples of such applications that are other than the bundles and are executable as theJSDK applications 147. In theJSDK platform 148 shown inFIG. 9 ,JSDK system services 405 provide various services with respect to theXlets 406. TheJSDK system services 405 include classes such as anXlet bundle activator 404, amulti Xlet manager 532 and an installmanager 545. - The
Xlet bundle activator 404 is a module for making theXlets 406 appear as bundles with respect to theOSGi framework 403. Themulti Xlet manager 532 manages the life cycle and the like of eachXlet 406. The installmanager 545 manages the installing from an SD memory card and the Web and the uninstalling, with respect to theXlets 406. - A
CVM 555 shown inFIG. 9 is a virtual machine that realizes an execution environment of the Java. - A more detailed description will now be given on the
Xlet bundle activator 404. Because theXlets 406 are not implemented as bundles, the management and the like of theXlets 406 cannot be made by theOSGi framework 403 as they are. But if separate management mechanisms were provided with respect to the applications that are implemented as thebundles 147 and the applications that are implemented as theXlets 406 in theJSDK applications 147, the structure of theJSDK platform 148 would become complex. Hence, it is desirable that the management and the like of all of theJSDK applications 147 can be made centrally by theOSGi framework 403. TheXlet bundle activator 404 is provided so that theOSGi framework 403 can manage theXlets 406 by an interface similar to that of thebundle 407. More particularly, theXlet bundle activator 404 provides, with respect to theOSGi framework 403, an interface similar to thebundle activator 4071 that is implemented in eachbundle 407. In response to a calling of a target interface by theOSGi framework 403, theXlet bundle activator 404 calls an interface of theXlet 406 corresponding to the target interface. In other words, theXlet bundle activator 406 intermediates between the interface that is interpretable (or analyzable) by theOSGi framework 403 and the interface that is interpretable (or analyzable) by theXlet 406, so as to intermediate the life cycle management and the like of theXlet 406. Therefore, by the provision of theXlet bundle activator 404, theOSGi framework 403 centrally manages theJSDK applications 147, regardless of whether the application is a bundle or an Xlet. -
FIG. 10 is a diagram conceptually showing a bundlizing state of Xlets by the Xlet bundle activator. The “bundlizing” refers to the forming of theXlet 406 that is controllable by a control method similar to that for thebundle 407, when viewed from theOSGi framework 403. - In the OSGi service platform, the OSGi framework calls a start ( ) method that is implemented in the bundle activator of the bundle when starting this bundle. In addition, when cancelling the start of the bundle, the OSGi framework calls a stop ( ) method that is implemented in the bundle activator of this bundle.
- On the other hand, initXlet ( ), startXlet ( ), pauseXlet ( ), destroyXlet ( ) and the like are implemented in the Xlet as methods for controlling the life cycle including the starting and start cancelling.
-
FIG. 10 shows a state where the differences of the interfaces are absorbed by theXlet bundle activator 404. In other words, theOSGi framework 403 calls the start ( ) method or the stop ( ) method of theXlet bundle activator 404, so as to request starting or start cancelling of theXlet 406. TheXlet bundle activator 404 realizes the start or start cancelling of theXlet 406, by calling the methods of theXlet 406 such as the initXlet ( ), startXlet ( ), pauseXlet ( ) and destroyXlet ( ), in response to the calling of the start ( ) method or the stop ( ) method. Hence, theOSGi framework 403 can manage each of theJSDK applications 147 without having to be aware of whether theJSDK application 147 is implemented as theXlet 406 or implemented as thebundle 407. - The structure in which the
Xlet bundle activator 404 is implemented in theJSDK platform 148 is particularly convenient for a vendor of theJSDK applications 147. This is because, theJSDK application 147 that is implemented as the existingXlet 406 can be operated on theOSGi framework 403 without having to modify theJSDK application 147 that is implemented as the existingXlet 406, for example. - State transitions of the bundle and the Xlet differ, and the differences also appear in the differences of the respective interfaces. Accordingly, it may be said that the bundlizing of the Xlet is realized if the state transitions of the bundle and the Xlet match. Next, a description will be given of how the state transitions of the bundle and the Xlet are matched in this embodiment.
-
FIG. 11 is a state transition diagram of the bundle. - The states of the bundle include an installed state (INSTALLED), an uninstalled state (UNINSTALLED), an active state (ACTIVE), a resolved state (RESOLVED), a starting state (STARTING), a stopping state (STOPPING) and the like. The starting state refers to the state during the starting process, and the stopping state refers to the state during the start cancelling process. The state of the bundle undergoes a transition depending on the installing (install), uninstalling (uninstall), updating (update), starting (start), start cancelling or stopping (stop) and the like. The life cycle of the bundle is such a state transition of the bundle. The life cycle of the bundle is managed by the
OSGi framework 403. - The installed state is a state immediately after the bundle is installed. The uninstalled state is a state immediately after the bundle is uninstalled. The active state is a state during which the bundle is started. The resolved state is a state during which the bundle is resolved, that is, the start cancelling is made. The stopping state is a state during which the starting process of the bundle is executed. The stopping state is a state during which the start cancelling process of the bundle is executed.
-
FIG. 12 is a state transition diagram of the Xlet. - The states of the Xlet include a loaded (or initialized) state (Loaded), a paused state (Paused), an active state (Active), and a destroyed (or end) state (Destroyed). The state of the Xlet undergoes a transition depending on the starting (initXlet), starting (startXlet), pausing (pauseXlet) and destroying (destroyXlet). The life cycle of the Xlet is such a state transition of the Xlet. The life cycle of the Xlet, which is a
JSDK application 147, is managed by theJSDK platform 148. - The loaded state is a state immediately after generation of an Xlet instance. The paused state is a state during which the service providing is stopped. The active state is a state during which the service is provided. The destroyed state is a state immediately after the Xlet instance is destroyed. A transition to the loaded state or the destroyed state can only be made once, and transitions can be made an arbitrary number of times between the paused state and the active state.
-
FIG. 13 is a state transition diagram of the Xlet that is bundlized and managed. - In a case where the Xlet is bundlized and managed, the loaded state, the paused state, the active state and the destroyed state of the Xlet belong to the active state of the bundle. In other words, the loaded state, the paused state, the active state and the destroyed state of the Xlet exist as the active state of the bundle. Therefore, by mapping the state transitions of the
Xlet 406 to the state transitions of the bundle, theXlet 406 realizes state transitions similar to those of thebundle 407 on theOSGi framework 403. - Next, a description will be given of how the installing and uninstalling processes and the starting and start cancelling processes of the
Xlet 406 and thebundle 407 are matched on theOSGi framework 403, by referring to sequence diagrams. - First, a description will be given of the installing and uninstalling processes.
FIG. 14 is a sequence diagram for explaining the installing process and the uninstalling process for the bundle. - When the
SAS 411 accepts an instruction from the user to install aJSDK application 147 via the operation screen that is displayed on thetouch panel 311, theSAS 411 requests execution of the installing to the SAS manager 511 (step S11), since the installing of theJSDK application 147 is controlled by theSAS manager 511. TheSAS manager 511 requests the installmanager 545 to search forinstallable JSDK applications 147 from an installing source (for example, the Web site, the SD memory card or the like) that is selected on the operation screen (step S12). The installmanager 545 searches for theinstallable JSDK applications 147, and returns a search result to the SAS manager 511 (step S13). TheSAS manager 511 requests installing of abundle 407 to theOSGi framework 403 if theJSDK application 147 that is selected by the user from a list ofJSDK applications 147 acquired as the search result is implemented as the bundle 407 (step S14). TheOSGi framework 403 requests installing of thebundle 407 which is the installing target, with respect to thebundle activator 4071 of the installing target bundle 407 (step S15). Thebundle 407 is installed into theMFP 101 based on the request from theOSGi framework 403. - On the other hand, when the
SAS 411 accepts an instruction from the user to uninstall aJSDK application 147 via the operation screen that is displayed on thetouch panel 311, theSAS 411 requests execution of the uninstalling to the SAS manager 511 (step S21). TheSAS manager 511 requests the installmanager 545 to search for theJSDK applications 147 that are installed in the MFP 101 (step S22). The installmanager 545 searches for the installedJSDK applications 147, and returns a search result to the SAS manager 511 (step S23). TheSAS manager 511 requests uninstalling of abundle 407 to theOSGi framework 403 if theJSDK application 147 that is selected by the user from a list ofJSDK applications 147 acquired as the search result is implemented as the bundle 407 (step S24). TheOSGi framework 403 requests uninstalling of thebundle 407 which is the uninstalling target, with respect to thebundle activator 4071 of the uninstalling target bundle 407 (step S25). Thebundle 407 is uninstalled from theMFP 101 based on the request from theOSGi framework 403. -
FIG. 15 is a sequence diagram for explaining the installing process and the uninstalling process for the bundlized Xlet. InFIG. 15 , steps S31 through S33 are the same as the steps S11 through S13 shown inFIG. 14 , and a description thereof will be omitted. - The
SAS manager 511 requests installing of anXlet 406 to the installmanager 545 if theJSDK application 147 that is selected by the user from a list ofJSDK applications 147 acquired as the search result is implemented as the Xlet 406 (step S34). The installmanager 545 copies a class file of theXlet bundle activator 404 so as to generate anXlet bundle activator 404 with respect to theXlet 406 that is the installing target (steps S35 and S36). In other words, although the class file of theXlet bundle activator 404 is required for eachXlet 406, the implementing contents thereof may be used in common, and thus, theXlet bundle activator 404 with respect to the installingtarget Xlet 406 is generated by simply copying the class file that is prepared in advance. Next, the installmanager 545 installs theXlet 406 in the MFP 101 (step S37). When theXlet 406 is installed in a normal manner, theSAS manager 511 requests installing of thebundlized Xlet 406 to the OSGi framework 403 (step S38). This calling by theSAS manager 511 corresponds to the step S14 shown inFIG. 14 . In this case, it is of no concern to theOSGi framework 403 whether or not the installing target is theXlet 406. Accordingly, the process executed by theOSGi framework 403 is similar to the case where the installing of thebundle 407 is requested. To theOSGi framework 403, theXlet bundle activator 404 in this case appears similarly to thebundle activator 4071 shown inFIG. 14 . Consequently, theOSGi framework 403 requests installing of theXlet 406 to the Xlet bundle activator 404 (step S39). However, since theXlet 406 is already installed, theXlet bundle activator 404 and not theXlet 406 is installed. - In
FIG. 15 , step S41 and the subsequent steps indicate the uninstalling process of theXlet 406. InFIG. 15 , steps S41 through S43 are the same as the steps S21 through S23 shown inFIG. 14 , and a description thereof will be omitted. TheSAS manager 511 requests uninstalling of anXlet 406 to the installmanager 545 if theJSDK application 147 that is selected by the user from a list ofJSDK applications 147 acquired as the search result is implemented as the Xlet 406 (step S44). The installmanager 545 uninstalls theXlet 406 which is the uninstalling target (step S45). When theXlet 406 is uninstalled in a normal manner, theSAS manager 511 requests uninstalling of thebundlized Xlet 406 to the OSGi framework 403 (step S46). This calling by theSAS manager 511 corresponds to the step S24 shown inFIG. 14 . In this case, it is of no concern to theOSGi framework 403 whether or not the uninstalling target is theXlet 406. Accordingly, the process executed by theOSGi framework 403 is similar to the case where the uninstalling of thebundle 407 is requested. To theOSGi framework 403, theXlet bundle activator 404 in this case appears similarly to thebundle activator 4071 shown inFIG. 14 . Consequently, theOSGi framework 403 requests uninstalling of theXlet 406 to the Xlet bundle activator 404 (step S47). However, since theXlet 406 is already uninstalled, theXlet bundle activator 404 and not theXlet 406 is uninstalled. - Therefore, in the
MFP 101 of this embodiment, the installing and uninstalling processes of thebundle 407 and the installing and uninstalling processes of theXlet 406 are carried out according to similar procedures, when viewed from theOSGi framework 403. In other words, the calling with respect to the OSGi framework 403 (steps S14 and S24) inFIG. 14 and the calling with respect to the OSGi framework 403 (steps S38 and S46) inFIG. 15 are appropriately matched. In addition, the calling with respect to the OSGi framework 403 (steps S15 and S25) inFIG. 14 and the calling with respect to the OSGi framework 403 (steps S39 and S47) inFIG. 15 are appropriately matched. Hence, it may be regarded that theOSGi framework 403 realizes the installing and uninstalling of thebundle 407 and theXlet 406 without being concerned with the differences between thebundle 407 and theXlet 406. - Next, a description will be given of the starting and start cancelling processes.
FIG. 16 is a sequence diagram for explaining the starting process and the start cancelling process for the bundle. - When the
SAS 411 accepts an instruction from the user to start aJSDK application 147 via the operation screen that is displayed on thetouch panel 311, theSAS 411 requests execution of the starting to the SAS manager 511 (step S51), since the starting of theJSDK application 147 is controlled by theSAS manager 511. TheSAS manager 511 requests the installmanager 545 to search for theJSDK applications 147 that are installed in the MFP 101 (step S52). The installmanager 545 searches for the installedJSDK application 147, and returns a search result to the SAS manager 511 (step S53). TheSAS manager 511 requests, with respect to theOSGi framework 403, starting of aJSDK application 147 that is selected by the user from a list ofJSDK applications 147 acquired as the search result (step S54). TheOSGi framework 403 starts thebundle 407 which is the starting target by calling the start ( ) method of thebundle activator 4071 of the starting target bundle 407 (step S55). - On the other hand, when the
SAS 411 accepts an instruction from the user to stop (make start cancelling) aJSDK application 147 via the operation screen that is displayed on thetouch panel 311, theSAS 411 requests execution of the stop (start cancelling) to the SAS manager 511 (step S61). TheSAS manager 511 requests the installmanager 545 to search for theJSDK applications 147 that are installed in the MFP 101 (step S62). The installmanager 545 searches for the installedJSDK applications 147, and returns a search result to the SAS manager 511 (step S63). With respect to theOSGi framework 403, theSAS manager 511 requests stopping (start cancelling) of theJSDK application 147 that is selected by the user from a list ofJSDK applications 147 acquired as the search result (step S64). TheOSGi framework 403 stops thebundle 407 which is the stopping target by calling the stop ( ) method of thebundle activator 4071 of the stopping target bundle 407 (step S65). -
FIG. 17 is a sequence diagram for explaining the starting process and the start cancelling process for the bundlized Xlet. InFIG. 17 , steps S71 through S74 are the same as the step S51 through S54 shown inFIG. 16 , and a description thereof will be omitted. - The
OSGi framework 403 calls the start ( ) method of theXlet bundle activator 404 corresponding to theXlet 406 that is the starting target (step S75). But in this case, it is of no concern to theOSGi framework 403 whether or not the starting target is theXlet 406. To theOSGi framework 403, theXlet bundle activator 404 appears similarly to thebundle activator 401 shown inFIG. 16 , and theOSGi framework 403 simply calls the start ( ) method of theXlet bundle activator 404 similarly to the step S55 shown inFIG. 16 which calls the start ( ) method of thebundle activator 401. TheXlet bundle activator 404, whose start ( ) method is called, requests the starting (generation) of theXlet 406 by calling the createXlet ( ) method of the multi Xlet manager 532 (step S76). Themulti Xlet manager 532 initializes theXlet 406 by calling the initXlet ( ) method of the Xlet 406 (step S77), and further, starts theXlet 406 by calling the startXlet ( ) method (step S78). - In
FIG. 17 , step S81 and subsequent steps indicate a start cancelling process of theXlet 406. InFIG. 17 , steps S81 through S84 are the same as the steps S61 through S64 shown inFIG. 16 , and a description thereof will be omitted. TheOSGi framework 403 calls the stop ( ) method of theXlet bundle activator 404 corresponding to theXlet 406 that is the stopping target (step S85). But in this case, it is of no concern to theOSGi framework 403 whether or not the stopping target is theXlet 406. TheOSGi framework 403 simply calls the stop ( ) method of theXlet bundle activator 404 similarly to the step S65 shown inFIG. 16 which calls the stop ( ) method of thebundle activator 401. TheXlet bundle activator 404, whose stop ( ) method is called, requests the stopping (descroying) of theXlet 406 by calling the destroyXlet ( ) method of the multi Xlet manager 532 (step S86). Themulti Xlet manager 532 stops theXlet 406 by calling the destroyXlet ( ) method of the Xlet 406 (step S87). - Therefore, in the
MFP 101 of this embodiment, the starting process and the start cancelling process of thebundle 407 and the starting process and the start cancelling process of theXlet 406 are carried out according to similar procedures, when viewed from theOSGi framework 403. In other words, the calling with respect to the OSGi framework 403 (steps S54 and S64) inFIG. 16 and the calling with respect to the OSGi framework 403 (steps S74 and S84) inFIG. 17 are appropriately matched. In addition, the calling with respect to the OSGi framework 403 (steps S55 and S65) inFIG. 16 and the calling with respect to the OSGi framework 403 (steps S75 and S85) inFIG. 17 are appropriately matched. Hence, it may be regarded that theOSGi framework 403 realizes the starting and start cancelling (or stopping) of thebundle 407 and theXlet 406 without being concerned with the differences between thebundle 407 and theXlet 406. -
FIG. 18 is a class diagram of theJSDK applications 147 and theJSDK platform 148 shown inFIG. 1 . TheJSDK applications 147 and theJSDK platform 148 are executed as a single process as a whole, on the same process. Each of the blocks within theJSDK applications 147 and theJSDK platform 148 is executed in parallel in units of threads (multi-thread) as threads on a single process. TheJSDK applications 147 and theJSDK platform 148 are translated in a batch from source codes into byte codes by a Java compiler, and successively executed by a Java virtual machine. TheJSDK applications 147 and theJSDK platform 148 are based on the “Foundation Profile” of the “Java 2 Micro Edition”. - [JSDK]
- As shown in
FIG. 18 ,user applications 501, theSAS manager 511, thescreen manager 512 and the like exist as theJSDK applications 147. - The
user application 501 is aJSDK application 147 that is developed by the user (for example, the vendor) of theMFP 101 using the JSDK. TheSAS manager 511 is aJSDK application 147 that controls theother JSDK applications 147 such as theuser applications 501. Thescreen manager 512 is aJSDK application 147 that displays operation screens having theother JSDK applications 147 such as theuser applications 501 as the operation target. - In this case, the
user application 501 is a kind of an Xlet which is a Java application, comparable to stand-alone applications and applets. TheSAS manager 511 and thescreen manager 512 are Xlets (XletEx) that have been subjected to peculiar extensions. - As shown in
FIG. 18 , theJSDK platform 148 includes classes such as aJSDK environment 521, anXlet manager 531, themulti Xlet manager 532, asend manager 541, anevent manager 542, asystem event manager 543, apanel manager 544, the installmanager 545 and a server/client manager 546. - The
JSDK environment 521 is a class for executing a starting environment setting of the JSDK system that reflects the execution environment of the JSDK system. - The
Xlet manager 531 is a class for carrying out a 1:1 management of the Xlet. In this particular case, the life cycles and data of five Xlets are managed on a 1:1 basis by the corresponding fiveXlet managers 531. Themulti Xlet manager 532 is a class for managing al of theXlet managers 531. In this particular case, all of the life cycles and data of the fiveXlet managers 531 are managed by the singlemulti Xlet manager 532. The life cycles and data of the “bundles” of theSAS manager 511, thescreen manager 512, theJSDK environment 521, themulti Xlet manager 532, thesend manager 541, theevent manager 542, thesystem event manager 543, thepanel manager 544, the installmanager 545 and the server/client manager 546 are managed by theOSGi framework 403. - The
system event manager 543 is a class for managing a system event from theplatform 132 shown inFIG. 1 , such as a power mode. Thepanel manager 544 is a class for making an arbitration when one Xlet occupies the screen of theoperation panel 202. The installmanager 545 is a class for managing the installing from the Web and the SD memory card and the uninstalling. - In the JSDK system shown in
FIG. 18 , aJSDK API 551 and aJSDK API 552 are used as APIs. One difference between the Xlet and the XletEx is that when accessing an object, the use of theJSDK API 551 and the access to theJSDK platform 148 is possible in the case of the XletEx. As elements related to the JSDK system shown inFIG. 18 , theMFP 101 shown inFIG. 1 further includes aJSDK session 553 and anative JSDK session 554 which form an interface for the C-language and the Java language, and theCVM 555 which is a Java virtual machine for executing theJSDK applications 147 and theJSDK platform 148. -
FIG. 19 is a class diagram related to a starting process of the JSDK system. In the starting process of the JSDK system, theOSGi framework 403 first generates the bundles forming theOSGi applications 401 and the ODGi services 402 (step S1). Next, theOSGi framework 403 generates the bundles forming theJSDK applications 147 and the JSDK platform 148 (step S2). Then, theJSDK environment 521 executes the starting environment setting of the JSDK system reflecting the execution environment of the JSDK system, such as generating theJSDK session 553 and the native JSDK session 554 (step S3). TheJSDK session 553 then generates thesend manager 541 and the event manager 542 (step S4). TheSAS 411 and theSAS manager 511 participate in the starting process of theuser application 501. - [Emulator]
-
FIG. 20 is a diagram showing a personal computer (PC) corresponding to an embodiment of the present invention. APC 701 shown inFIG. 20 is connected to theMFP 101 shown inFIG. 1 via anetwork 801, and functions as an emulator of theMFP 101 shown inFIG. 1 . - The
PC 701 shown inFIG. 20 includes amain PC body 711, akeyboard 712, amouse 713, adisplay 714 and the like. Themain PC body 711 includes a CPU, a ROM, a RAM, an NVRAM, an HDD, a MODEM, an NIC and the like. Thekeyboard 712 and themouse 713 form a hardware (operation part) for use by the operator to make inputs to theMFP 101, in place of theoperation panel 202. Thedisplay 714 forms a hardware (display part) for use by the operator to obtain an output from theMFP 101, in place of theoperation panel 202. -
FIG. 21 is a class diagram showing theJSDK applications 147 and theJSDK platform 148 within thePC 701 shown inFIG. 20 . TheJSDK applications 147, theJSDK platform 148, theOSGi applications 401, theOSGi services 402 and theOSGi framework 403, which are similar to those of theMFP 101 shown inFIG. 1 , are provided within thePC 701 shown inFIG. 20 . The class diagram of theJSDK applications 147 and theJSDK platform 148 within theMFP 101 shown inFIG. 1 is shown inFIG. 18 described above. Accordingly, a description will only be given of the portions ofFIG. 21 differing fromFIG. 18 . - First, the
SAS 411 shown inFIG. 18 is replaced by aSAS emulator 611 shown inFIG. 21 . Second, thepanel manager 544 shown inFIG. 18 is replaced by apanel manager emulator 744 shown inFIG. 21 . Third, theJSDK session 553 shown inFIG. 18 is replaced by anemulator JSDK session 753 shown inFIG. 21 . Fourth, thenative JSDK session 554 shown inFIG. 18 is replaced by anevent emulator 754 shown inFIG. 21 . Fifth, theCVM 555 shown inFIG. 18 is replaced by aJVM 755 shown inFIG. 21 . - The SAS emulator 611 is a
CSDK application 146 that controlsother CSDK applications 146, and can also control theJSDK applications 147 via theSAS manager 511 within theMFP 101 or thePC 701, as indicated by arrows A and B inFIG. 21 . Thepanel manager emulator 744 is a class for emulating thepanel manager 544 and converting an operation on theoperation panel 202 into the operation of thekeyboard 712 or themouse 713. Theemulator JSDK session 753 is a class for executing a communication path establishing process. Theevent emulator 754 is a class for emulating the operation of theMFP 101. TheJVM 755 is a Java virtual machine for executing theJSDK applications 147, theJSDK platform 148, theOSGi applications 401, theOSGi services 402 and theOSGi framework 403. - The starting process of the JSDK system within the
PC 701 shown inFIG. 20 is similar to that shown inFIG. 19 . In addition, thePC 701 shown inFIG. 20 can remotely operate theMFP 101 shown inFIG. 1 , but when remotely operating theMFP 101 shown inFIG. 1 by thePC 701 shown inFIG. 20 , the starting process of the JSDK system within theMFP 101 shown inFIG. 1 is carried out as shown inFIG. 22 orFIG. 23 .FIG. 22 is a class diagram related to a starting process of the JSDK system, andFIG. 23 is a class diagram related to another starting process of the JSDK system. - First, in place of the process of the step S3 shown in
FIG. 19 , theJSDK environment 521 within theMFP 101 registers theJSDK platform 148 within the PC 701 (step S3). Second, in place of the process of the step S4 shown inFIG. 19 , theOSGi framework 403 within theMFP 101 registers the server/client manager 546 within the PC 701 (step S4). - In
FIG. 22 , theSAS emulator 611 within thePC 701 participates in the starting process of theuser application 501, and thus, in a step S4 shown inFIG. 22 , theOSGi framework 403 within theMFP 101 registers theSAS emulator 611 within thePC 701. - In
FIG. 23 , theSAS 411 within theMFP 101 participates in the starting process of theuser application 501, and thus, in a step S4 shown inFIG. 23 , theOSGi framework 403 within theMFP 101 does not register theSAS emulator 611 within thePC 701. - The description given above in conjunction with
FIGS. 5 through 17 also holds true with respect to thePC 701 shown inFIG. 20 , similarly as in the case of theMFP 101 shown inFIG. 1 . But in this case, theSAS 411 is understood to correspond to theSAS manager 611. - This application claims the benefit of a Japanese Patent Applications No.2005-202151 filed Jul. 11, 2005, No.2005-202152 filed Jul. 11, 2005, No.2006-158706 filed Jun. 7, 2006 and No.2006-158707 filed Jun. 7, 2006, in the Japanese Patent Office, the disclosures of which are hereby incorporated by reference.
- Further, the present invention is not limited to these embodiments, but various variations and modifications may be made without departing from the scope of the present invention.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/564,424 US8767244B2 (en) | 2005-07-11 | 2012-08-01 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005202152 | 2005-07-11 | ||
JP2005202151 | 2005-07-11 | ||
JP2005-202152 | 2005-07-11 | ||
JP2005-202151 | 2005-07-11 | ||
JP2006158706A JP4843386B2 (en) | 2005-07-11 | 2006-06-07 | Apparatus, information processing method, information processing program, and recording medium |
JP2006-158706 | 2006-06-07 | ||
JP2006158707A JP2007048270A (en) | 2005-07-11 | 2006-06-07 | Image forming apparatus, information processing apparatus, information processing method, information processing program and recording medium |
JP2006-158707 | 2006-06-07 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/564,424 Continuation US8767244B2 (en) | 2005-07-11 | 2012-08-01 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070008583A1 true US20070008583A1 (en) | 2007-01-11 |
US8264717B2 US8264717B2 (en) | 2012-09-11 |
Family
ID=37618065
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/477,656 Active 2030-07-10 US8264717B2 (en) | 2005-07-11 | 2006-06-30 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
US13/564,424 Active US8767244B2 (en) | 2005-07-11 | 2012-08-01 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/564,424 Active US8767244B2 (en) | 2005-07-11 | 2012-08-01 | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
Country Status (1)
Country | Link |
---|---|
US (2) | US8264717B2 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1986413A1 (en) * | 2007-04-27 | 2008-10-29 | Ricoh Company, Ltd. | Image forming device, information processing method, and information processing program |
US20090217349A1 (en) * | 2008-02-21 | 2009-08-27 | Toshiyuki Terashita | Image forming apparatus, information processing method, and computer-readable recording medium storing information processing program |
US20090240810A1 (en) * | 2008-03-21 | 2009-09-24 | Chia-Jui Chang | Method of Digital Resource Management and Related Digital Resource Management System |
US20090282146A1 (en) * | 2008-05-08 | 2009-11-12 | Ricoh Company, Ltd. | Equipment management device, equipment management system, equipment management method, and recording medium |
US20110041144A1 (en) * | 2009-08-11 | 2011-02-17 | Ricoh Company, Ltd. | Image forming apparatus, program management system, program management method, and computer-readable storage medium |
US20110145843A1 (en) * | 2009-12-14 | 2011-06-16 | Ricoh Company, Ltd. | Image forming apparatus, function adding method, and computer-readable recording medium |
US20110164269A1 (en) * | 2010-01-06 | 2011-07-07 | Ricoh Company, Ltd. | Image processing apparatus, authentication system, and computer-readable storage medium |
US20110225600A1 (en) * | 2010-03-12 | 2011-09-15 | Ricoh Company, Ltd. | Electronic apparatus, information processing method, and recording medium storing information processing program |
US20120081754A1 (en) * | 2010-10-05 | 2012-04-05 | Seiko Epson Corporation | Electronic device, printer, status management method for an electronic device, and recording medium |
US20130042232A1 (en) * | 2011-08-08 | 2013-02-14 | Ricoh Company, Ltd. | Device, information processing method, and computer-readable storage medium |
US8681351B2 (en) | 2011-07-26 | 2014-03-25 | Ricoh Company, Ltd. | Image processing apparatus, display control method, and recording medium |
US9015628B2 (en) | 2010-07-22 | 2015-04-21 | Ricoh Company, Ltd. | Image forming apparatus and screen control method that displays a list screen |
US20150169197A1 (en) * | 2013-12-18 | 2015-06-18 | Konica Minolta Inc. | Screen generation device, remote operation device, remote control device, screen generation method, and screen generation program |
US9274776B2 (en) | 2010-09-16 | 2016-03-01 | Ricoh Company, Ltd. | Product, method, and apparatus for installing a second program based on a call from a first program |
US9307108B2 (en) | 2014-03-14 | 2016-04-05 | Ricoh Company, Ltd. | Information processing system and information processing method |
US20160360058A1 (en) * | 2015-06-05 | 2016-12-08 | Canon Kabushiki Kaisha | Image forming apparatus and method for deleting application |
US20170039215A1 (en) * | 2015-08-05 | 2017-02-09 | Canon Kabushiki Kaisha | Image forming apparatus and control method thereof |
EP2600601B1 (en) * | 2011-11-30 | 2019-02-20 | HP Printing Korea Co., Ltd. | Image forming device having a plurality of platforms and method for performing application thereof |
US10482233B2 (en) | 2015-03-20 | 2019-11-19 | Ricoh Company, Ltd. | Device, authentication system, authentication processing method, and computer program product |
US10614205B2 (en) | 2015-03-10 | 2020-04-07 | Ricoh Company, Ltd. | Device, authentication processing method, and computer program product |
US10789107B2 (en) | 2017-09-14 | 2020-09-29 | Ricoh Company, Ltd. | Information processing device, information processing system, and information processing method |
US11157608B2 (en) | 2018-03-15 | 2021-10-26 | Ricoh Company, Ltd. | Information processing system allowing a target device to process an operation request using a common API |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8264717B2 (en) * | 2005-07-11 | 2012-09-11 | Ricoh Company, Ltd. | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
JP2016130902A (en) | 2015-01-13 | 2016-07-21 | 株式会社リコー | Apparatus, information processing system, information processing method, and information processing program |
JP2017107307A (en) | 2015-12-08 | 2017-06-15 | 株式会社リコー | Apparatus, information processing system, information processing method, and program |
JP6834234B2 (en) | 2016-08-10 | 2021-02-24 | 株式会社リコー | Information processing equipment, information processing methods, and programs |
JP6891563B2 (en) | 2017-03-16 | 2021-06-18 | 株式会社リコー | Information processing systems, equipment, information processing equipment, information processing methods and programs |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6359306B1 (en) * | 1999-06-30 | 2002-03-19 | Kabushiki Kaisha Toshiba | Semiconductor device and method of manufacturing thereof |
US20030215256A1 (en) * | 2002-05-17 | 2003-11-20 | Canon Kabushiki Kaisha | Image forming apparatus, control method, and control program |
US20040185622A1 (en) * | 1999-04-22 | 2004-09-23 | Advanced Analogic Technologies, Inc. | Self-aligned trench transistor using etched contact |
US20050005200A1 (en) * | 2003-03-12 | 2005-01-06 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US20050226641A1 (en) * | 2004-02-17 | 2005-10-13 | Mitsuo Ando | Image forming apparatus, terminal apparatus, information processing method, information processing program and computer readable recording medium |
US20060082801A1 (en) * | 2004-10-18 | 2006-04-20 | Tsutomu Ohishi | Image forming apparatus, information processing method, information processing program and recording medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4149624B2 (en) | 1999-09-24 | 2008-09-10 | 株式会社東芝 | Object computer system |
JP3679349B2 (en) | 2000-07-05 | 2005-08-03 | 株式会社リコー | Image forming apparatus, image forming method, image forming program, and application program |
JP4198551B2 (en) | 2002-07-26 | 2008-12-17 | 株式会社リコー | Image forming apparatus and program execution method |
JP2004312711A (en) | 2003-03-25 | 2004-11-04 | Ricoh Co Ltd | Image forming apparatus and method for operating image forming apparatus by using remote application |
JP2004318459A (en) | 2003-04-16 | 2004-11-11 | Alpine Electronics Inc | Life time management method for native application in virtual system and computer program |
US8397224B2 (en) * | 2004-09-13 | 2013-03-12 | The Mathworks, Inc. | Methods and system for executing a program in multiple execution environments |
US8264717B2 (en) * | 2005-07-11 | 2012-09-11 | Ricoh Company, Ltd. | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium |
-
2006
- 2006-06-30 US US11/477,656 patent/US8264717B2/en active Active
-
2012
- 2012-08-01 US US13/564,424 patent/US8767244B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040185622A1 (en) * | 1999-04-22 | 2004-09-23 | Advanced Analogic Technologies, Inc. | Self-aligned trench transistor using etched contact |
US6359306B1 (en) * | 1999-06-30 | 2002-03-19 | Kabushiki Kaisha Toshiba | Semiconductor device and method of manufacturing thereof |
US20030215256A1 (en) * | 2002-05-17 | 2003-11-20 | Canon Kabushiki Kaisha | Image forming apparatus, control method, and control program |
US20050005200A1 (en) * | 2003-03-12 | 2005-01-06 | Vladimir Matena | Method and apparatus for executing applications on a distributed computer system |
US20050226641A1 (en) * | 2004-02-17 | 2005-10-13 | Mitsuo Ando | Image forming apparatus, terminal apparatus, information processing method, information processing program and computer readable recording medium |
US20060082801A1 (en) * | 2004-10-18 | 2006-04-20 | Tsutomu Ohishi | Image forming apparatus, information processing method, information processing program and recording medium |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8448193B2 (en) * | 2007-04-27 | 2013-05-21 | Ricoh Company, Ltd. | Image forming device, information processing method, and information processing program |
US20080271060A1 (en) * | 2007-04-27 | 2008-10-30 | Kunihiro Akiyoshi | Image forming device, information processing method, and information processing program |
US9645863B2 (en) | 2007-04-27 | 2017-05-09 | Ricoh Company, Ltd. | Image forming device, information processing method, and information processing program |
EP1986413A1 (en) * | 2007-04-27 | 2008-10-29 | Ricoh Company, Ltd. | Image forming device, information processing method, and information processing program |
US20090217349A1 (en) * | 2008-02-21 | 2009-08-27 | Toshiyuki Terashita | Image forming apparatus, information processing method, and computer-readable recording medium storing information processing program |
US20090240810A1 (en) * | 2008-03-21 | 2009-09-24 | Chia-Jui Chang | Method of Digital Resource Management and Related Digital Resource Management System |
US20090282146A1 (en) * | 2008-05-08 | 2009-11-12 | Ricoh Company, Ltd. | Equipment management device, equipment management system, equipment management method, and recording medium |
US9009280B2 (en) | 2008-05-08 | 2015-04-14 | Ricoh Company, Ltd. | Equipment management device, equipment management system, equipment management method, and recording medium |
US20110041144A1 (en) * | 2009-08-11 | 2011-02-17 | Ricoh Company, Ltd. | Image forming apparatus, program management system, program management method, and computer-readable storage medium |
US9286141B2 (en) | 2009-08-11 | 2016-03-15 | Ricoh Company, Ltd. | Image forming apparatus, program management system, program management method, and computer-readable storage medium |
US20110145843A1 (en) * | 2009-12-14 | 2011-06-16 | Ricoh Company, Ltd. | Image forming apparatus, function adding method, and computer-readable recording medium |
US8635633B2 (en) * | 2009-12-14 | 2014-01-21 | Ricoh Company, Ltd. | Image forming apparatus, function adding method, and computer-readable recording medium |
US20110164269A1 (en) * | 2010-01-06 | 2011-07-07 | Ricoh Company, Ltd. | Image processing apparatus, authentication system, and computer-readable storage medium |
US20110225600A1 (en) * | 2010-03-12 | 2011-09-15 | Ricoh Company, Ltd. | Electronic apparatus, information processing method, and recording medium storing information processing program |
US9218224B2 (en) | 2010-03-12 | 2015-12-22 | Ricoh Company, Ltd. | Electronic apparatus, information processing method, and recording medium storing information processing program |
US9015628B2 (en) | 2010-07-22 | 2015-04-21 | Ricoh Company, Ltd. | Image forming apparatus and screen control method that displays a list screen |
US9274776B2 (en) | 2010-09-16 | 2016-03-01 | Ricoh Company, Ltd. | Product, method, and apparatus for installing a second program based on a call from a first program |
US20120081754A1 (en) * | 2010-10-05 | 2012-04-05 | Seiko Epson Corporation | Electronic device, printer, status management method for an electronic device, and recording medium |
US8885205B2 (en) * | 2010-10-05 | 2014-11-11 | Seiko Epson Corporation | Electronic device, printer, status management method for an electronic device, and recording medium |
US9094559B2 (en) | 2011-07-26 | 2015-07-28 | Ricoh Company, Ltd. | Image forming apparatus and method |
US8681351B2 (en) | 2011-07-26 | 2014-03-25 | Ricoh Company, Ltd. | Image processing apparatus, display control method, and recording medium |
US9471261B2 (en) | 2011-07-26 | 2016-10-18 | Ricoh Company, Ltd. | Image processing apparatus, display control method, and recording medium |
US20130042232A1 (en) * | 2011-08-08 | 2013-02-14 | Ricoh Company, Ltd. | Device, information processing method, and computer-readable storage medium |
US8713561B2 (en) * | 2011-08-08 | 2014-04-29 | Ricoh Company, Ltd. | Device, information processing method, and computer-readable storage medium |
EP2600601B1 (en) * | 2011-11-30 | 2019-02-20 | HP Printing Korea Co., Ltd. | Image forming device having a plurality of platforms and method for performing application thereof |
US20150169197A1 (en) * | 2013-12-18 | 2015-06-18 | Konica Minolta Inc. | Screen generation device, remote operation device, remote control device, screen generation method, and screen generation program |
US10126907B2 (en) * | 2013-12-18 | 2018-11-13 | Konica Minolta, Inc. | Emulation of multifunction peripheral via remote control device based on display aspect ratios |
US9307108B2 (en) | 2014-03-14 | 2016-04-05 | Ricoh Company, Ltd. | Information processing system and information processing method |
US10614205B2 (en) | 2015-03-10 | 2020-04-07 | Ricoh Company, Ltd. | Device, authentication processing method, and computer program product |
US10482233B2 (en) | 2015-03-20 | 2019-11-19 | Ricoh Company, Ltd. | Device, authentication system, authentication processing method, and computer program product |
CN106250068A (en) * | 2015-06-05 | 2016-12-21 | 佳能株式会社 | Image processing system and the delet method of application |
US20160360058A1 (en) * | 2015-06-05 | 2016-12-08 | Canon Kabushiki Kaisha | Image forming apparatus and method for deleting application |
US9742948B2 (en) * | 2015-06-05 | 2017-08-22 | Canon Kabushiki Kaisha | Image forming apparatus and method for deleting application |
US20170039215A1 (en) * | 2015-08-05 | 2017-02-09 | Canon Kabushiki Kaisha | Image forming apparatus and control method thereof |
US9940334B2 (en) * | 2015-08-05 | 2018-04-10 | Canon Kabushiki Kaisha | Image forming apparatus and control method thereof |
US10789107B2 (en) | 2017-09-14 | 2020-09-29 | Ricoh Company, Ltd. | Information processing device, information processing system, and information processing method |
US11157608B2 (en) | 2018-03-15 | 2021-10-26 | Ricoh Company, Ltd. | Information processing system allowing a target device to process an operation request using a common API |
Also Published As
Publication number | Publication date |
---|---|
US8264717B2 (en) | 2012-09-11 |
US20120297397A1 (en) | 2012-11-22 |
US8767244B2 (en) | 2014-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8767244B2 (en) | Image forming apparatus, information processing apparatus, information processing method, information processing program and storage medium | |
US7533381B2 (en) | Image forming apparatus and method for operating image forming apparatus by using remote application | |
US7812978B2 (en) | Application executing method, information processing apparatus, image forming apparatus, terminal equipment, information processing method and computer-readable storage medium | |
JP4625343B2 (en) | Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium | |
US8392523B2 (en) | Image forming apparatus for determining the availability of application program interfaces | |
US9164865B2 (en) | Image processing apparatus, method, program, and computer readable recording medium for controlling operation switching and displaying at occurrence of error conditions | |
JP4843386B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
US9141374B2 (en) | Image forming device, information processing method, information processing program, and recording medium | |
US10296401B2 (en) | Apparatus and method that determine whether the apparatus can execute an application program | |
US20070064892A1 (en) | Image forming device, information processing method, information processing program, and recording medium | |
US20060140658A1 (en) | Image forming apparatus, install method, and computer readable recording medium where an install program is recorded | |
JP2007048270A (en) | Image forming apparatus, information processing apparatus, information processing method, information processing program and recording medium | |
JP5664692B2 (en) | Electronic device, image forming apparatus, information processing method, information processing program, and recording medium | |
JP5565439B2 (en) | Apparatus, information processing method, information processing program, and recording medium | |
JP4459033B2 (en) | Image forming apparatus, terminal apparatus, information processing method, information processing program, and recording medium | |
JP2005269439A (en) | Image forming apparatus, information processing method, information processing program, and recording medium | |
JP2005267447A (en) | Image forming apparatus and image forming method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: RICOH COMPANY, LTD., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ARAKI, RYOJI;REEL/FRAME:018201/0660 Effective date: 20060711 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |