Information processing system, information processing device, and program
The system addresses the challenge of identifying custom applications by utilizing description files and application data to create a proper identification mechanism, enhancing the management and customization of these applications on information processing devices.
Patent Information
- Application Number
- JP2021125160
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-07-30
- Publication Date
- 2025-04-28
- Estimated Expiration
- 2041-07-30
AI Technical Summary
Existing systems struggle to properly identify custom applications on information processing devices, as they often reuse general-purpose playback applications, making it difficult to distinguish custom applications based on information from the playback applications alone.
The system registers identification information for description files and combination information for playback applications, allowing for the proper identification of custom applications by using description files and application data, and outputs list information that includes identification details for both combination and non-combination applications.
This solution enables the effective identification and management of custom applications on information processing devices, ensuring appropriate handling and customization according to customer needs.
Smart Images

Figure 0007669226000001 
Figure 0007669226000002 
Figure 0007669226000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a system for editing an application to be installed in an information processing device. The information processing device may be, for example, an image forming device such as a printer, a scanner, a FAX, a copier, or a multifunction device thereof. Alternatively, the information processing device may be an electronic device such as a personal computer or a mobile terminal. [Background technology]
[0002] A mechanism for expanding the functions of an information processing device such as an MFP by installing an application therein is known. Patent Document 1 discloses a technique for managing applications installed in the information processing device using an ID or the like. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2016-2470 A Summary of the Invention [Problem to be solved by the invention]
[0004] Customers who use information processing devices have a variety of needs. Therefore, it is desirable to provide functions that meet the needs of the customers in the form of applications. In addition, it is desirable for related parties such as service personnel and sales personnel to customize applications and provide them to customers so that customer requests can be quickly responded to.
[0005] Therefore, the inventor of the present application is studying a mechanism for providing customized applications (custom applications) by combining description information as easily editable description data with a general-purpose playback application. Since the number of types of such custom applications increases in proportion to the number of customer requests, it is desirable to build an environment in which they can be appropriately managed.
[0006] In particular, since the custom application having the above-mentioned configuration reuses a general-purpose playback application, it is difficult to properly identify the custom application using only information that can be obtained from the general-purpose playback application. It is desirable for the image forming apparatus to be able to properly identify such a custom application.
[0007] An object of the present invention is to provide an information processing device capable of appropriately identifying a custom application based on a description file and application data. [Means for solving the problem]
[0008] The present invention is characterized in that, in an information processing device, it has a means for registering combination information of a description file in which an operating procedure is defined and a playback application that plays the same as a combined application, a means for registering a non-combined application that does not use the description file, and a means for outputting list information including identification information of the combined application and identification information of the non-combined application, and in that in the list information, identification information of the description file is used as the identification information of the combined application. Effect of the Invention
[0009] According to the present invention, it is possible to provide an information processing device capable of appropriately identifying a custom application based on a description file and application data. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is a diagram illustrating an authoring system. [Diagram 2] Fig. 2(A) is a diagram showing the software configuration of the authoring system, and Fig. 2(B) is a diagram showing the hardware configuration of a server device used in the authoring system. [Diagram 3]Fig. 3A is a diagram showing the hardware configuration of the MFP, and Fig. 3B is a diagram showing the software configuration of the MFP. [Figure 4] FIG. 2 is a diagram showing a hierarchical structure of software in an MFP. [Diagram 5] Fig. 5A is a diagram showing the hardware configuration of a client terminal, and Fig. 5B is a diagram showing the software configuration of a description editor executed by the client terminal. [Figure 6] FIG. 2 shows the hierarchical structure of software relating to a description editor. [Figure 7] Fig. 7(A) is a diagram showing a description editor screen, and Fig. 7(B) is a diagram showing an execution screen of a custom application in the MFP. [Figure 8] FIG. 2 illustrates the sequence between software modules of a description editor. [Figure 9] FIG. 2 is a diagram showing a usage flow of the authoring system. [Figure 10] FIG. 2 illustrates a data structure of a custom application. [Figure 11] FIG. [Figure 12] Fig. 12(A) is a diagram for explaining installation of a custom application, and Fig. 12(B) is a diagram for explaining installation of a normal application. [Figure 13] FIG. 11 is a diagram illustrating an installation flow of an application. [Figure 14] Fig. 14(a) is a diagram showing application meta information, and Fig. 14(b) is a diagram showing description meta information. [Figure 15] Fig. 15(a) is a diagram showing an application management screen, and Fig. 15(b) is a diagram showing an application management screen in a comparative example. [Figure 16] FIG. 13 is a diagram showing an application details screen. [Figure 17] FIG. 13 is a diagram showing a flow of application management. [Figure 18] FIG. 11 is a flowchart showing a process of acquiring application information. [Figure 19] FIG. 13 is a diagram illustrating installation of a custom application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Hereinafter, the embodiment of the present invention will be described in detail with reference to the drawings. Note that the scope of the present invention is not limited to the configurations described in the embodiments. As long as the same effect is obtained, modifications such as replacing part of the configuration or part of the processing with an equivalent or omitting it may be made.
[0012] (Example) <Authoring System> FIG. 1 is a diagram for explaining an authoring system. The authoring system 0101 is an information processing system that provides an editing environment for custom applications executed by the MFP 0203. In this embodiment, the authoring system 0101 is used to enable relevant parties such as service personnel and sales representatives to customize applications. This makes it possible to quickly provide custom applications that meet customer requests. In addition, it is possible to appropriately manage the number of custom applications, the number of which increases with each customer request.
[0013] The authoring system 0101 is a system built on a general-purpose cloud service, and can be accessed from various devices via a network. All administrators and users who use the authoring system 0101 are managed by logging in through a user authentication mechanism. That is, when the administrator and users start using the authoring system 0101, they perform a user authentication procedure using a user ID, password, etc. In this embodiment, a function provided by a general-purpose cloud service is used as the user authentication mechanism, and a detailed description thereof will be omitted. The authoring system 0101 may also have its own user authentication function.
[0014] The authoring system 0101 is equipped with a tenant issuing site 0106, and can create multiple tenants according to the purpose. Fig. 1 shows a state in which at least tenant A (0107), tenant B (0108), and tenant C (0109) have been issued. For example, the system administrator 0102 can create tenants for group sales companies in each country by accessing the tenant issuing site 0106 from the client terminal 0240 via a web browser. Tenants may be issued to system integrators instead of group sales companies.
[0015] When a tenant is issued, one or more administrators are assigned to each tenant. Figure 1 shows an example in which there is at least a tenant A administrator 0103 who manages tenant A (0107), a tenant B administrator 0104 who manages tenant B (0108), and a tenant C administrator 0105 who manages tenant C (0109). A tenant administrator of one tenant can set or delete another tenant administrator.
[0016] A tenant administrator can access a tenant that he manages from a client terminal 0240 via a web browser and create multiple user accounts that use that tenant. FIG. 1 shows an example in which the tenant A administrator 0103 has created accounts ranging from technical sales A1 (0110), technical sales A2 (0111) to technical sales An (0112). A description pool that stores descriptions is assigned to each account. Here, a description is a file (description file) that describes the behavior of a custom application (operation procedure, screen configuration, screen transition, job execution), and can be created using the authoring system 0101. The configuration and description of a custom application will be described in detail later.
[0017] FIG. 1 shows that description pools are assigned to accounts from technical sales A1 (0110), technical sales A2 (0111) to technical sales An (0112). Each account is assigned description pool A1 (0113), description pool A2 (0114) to description pool An (0115) (n is a natural number). Although omitted in FIG. 1, Tenant B administrator and Tenant C administrator can also appropriately create accounts for users in each tenant. In addition, the tenant administrator can allow one description to be shared by multiple accounts in the tenant by placing a shared description pool in the tenant. FIG. 1 shows an example in which a shared description pool A (0116) is placed in Tenant A (0107) to share a description in Tenant A (0107). As a similar configuration for sharing descriptions within a tenant, a shared description pool B (0117) is arranged within tenant B (0108), and a shared description pool C (0118) is arranged within tenant C (0109).
[0018] In this embodiment, it is assumed that the shared description pool is set so that all accounts in the tenant can read and write. The setting of the shared description pool may be changed so that writing and reading are restricted according to the account. The authoring system 0101 may also be provided with a shared description pool that is accessible by all tenant accounts. Restrictions according to the account may also be set for this shared description pool.
[0019] <System usage flow> The main usage flow of the authoring system will be explained using Figure 9. Figure 9 is a diagram showing the usage flow of the authoring system.
[0020] In step 901 (hereinafter, referred to as S901, etc.), the system administrator 0102 performs tenant creation processing and playback application registration processing in the authoring system 0101. In addition to playback applications for custom applications, information on normal applications is registered in the authoring system 0101. These applications are managed so that they can be distinguished from other applications based on uniquely identifiable information. In S902, the system user 0202 uses the client terminal 0240 to access the WEB tool based on the tenant information. The client terminal 0240 acquires the WEB tool from the authoring system 0101 via the network.
[0021] In response to an instruction from the system user 0202, the client terminal 0240 performs description generation and registration processing using a WEB tool (S904 to S907). The description registered in the authoring system 0101 is managed so as to be distinguishable from other descriptions based on uniquely identifiable information. Details of the description generation and registration processing will be described later with reference to FIG. 14.
[0022] In S908, the client terminal 0240 transmits to the authoring system 0101 a request to issue an installation code for the custom application that uses the registered description.
[0023] The authoring system 0101 that has received the install code issue request in S914 assigns signature information to the description 0219 by using the signature key information 0218 in description signature assignment 0211, which will be described later. Note that the signature key information 0218 is different from key information used to sign a playback application, which will be described later. The key information used to sign a playback application is managed in the development environment of the system developer 0201.
[0024] In S915, the authoring system 0101 performs packaging processing of the signed description and the signed playback application in the custom application packaging 0212, which will be described later.
[0025] In S909, the authoring system 0101 issues an installation code in the installation code issuing system 0214, and registers the packaged custom application in the custom application distribution system 0213. The issued installation code is transmitted from the user 0202 to the customer 0230 by a communication means such as telephone or email.
[0026] In step S910 , when the customer 0230 inputs the installation code into the MFP 0203 , the MFP 0203 transmits the installation code to the authoring system 0101 .
[0027] In step S911 , the authoring system 0101 provides the MFP 0203 with a custom application corresponding to the received installation code in the custom application distribution system 0213 .
[0028] In step S912, the MFP 0203 that has received the custom application installs the custom application. When the installation is completed normally, the application is executed in step S913, and the functions provided by the application become available to the customer 0230.
[0029] <Authoring system software configuration> Next, a description will be given of the software configuration of the authoring system 0101. Fig. 2(A) is a diagram showing the software configuration of the authoring system.
[0030] In this figure, the authoring system 0101, tenant A (0107), technical sales A1 (0110) which is a user account, and description pool A1 (0113) are the same as those in FIG.
[0031] The authoring system 0101 comprises software modules such as a front-end resource 0204 , a back-end program 0205 , and a playback application resource 0206 .
[0032] The front-end resource 0204 contains resources such as a description editor 0207, a framework emulator 0208, and an installation code issuing screen 0209. Each resource is a program written in JavaScript or the like, and runs on a web browser that a user uses to access the authoring system 0101.
[0033] The description editor 0207 is a program (editing program) that runs on a web browser when a user of each tenant creates and edits a description. A description created with the description editor 0207 can be saved in a description pool linked to a user account. FIG. 2 shows an example in which a user, technical sales A1 (0202), logs in to the authoring system 0101 and accesses the front-end resource 0204. Also, a description 0219 created by the user, technical sales A1 (0202), using the description editor 0207 stored in the front-end resource 0204 is saved in the description pool A1 (0113). As described above, the description pool A1 (0113) is linked to a user account, technical sales A1 (0110), created in the tenant A (0107).
[0034] The framework emulator 0208 is a program that is called when checking the behavior of a description that is being created (edited) or has already been created in the description editor 0207 within the same editor. The framework emulator 0208 is configured to run on a Web browser. The framework emulator 0208 emulates the operation of an application framework on a device, and visualizes the behavior of a custom application that includes a created description by outputting it as screen information.
[0035] The installation code issuing screen 0209 is a program that displays, on the user's web browser, an installation code that is used when installing a custom application on a device.
[0036] The back-end program 0205 accommodates a description number management 0210, a description signature assignment 0211, a custom application packaging 0212, a custom application distribution system 0213, an installation code issuing system 0214, and the like.
[0037] Each program contained in the back-end program 0205 is executed on a server device 0220 on the cloud where the authoring system 0101 is hosted, and operates in cooperation with each program of the front-end resource 0204.
[0038] The description number management 0210 is a program that issues a unique serial number to identify each description. The description number management 0210 is called when a user starts creating a new description using the description editor 0207. It is also called when the user discards a description that was created in the past. If the description to be discarded is not being used as a custom application, the description number management 0210 is responsible for processing such as returning the serial number assigned when the description was created to a reusable state.
[0039] The description signature assignment 0211 is a program that assigns a signature to a description to ensure that the description has not been tampered with. The signature is assigned, for example, when an installation package of a custom application that includes the created description is generated. The description signature assignment 0211 includes signature key information 0218 used for the signature. FIG. 2 shows an example in which a description 0219 stored in the description pool A1 (0113) is cited in the description signature assignment 0211.
[0040] The custom application packaging 0212 is a program that creates an installation package for a custom application. In the installation package, the signed description generated by the description signature assignment 0211 and a specific playback application, which will be described later, are combined into one. By creating an installation package, it becomes possible to install the custom application on any device. The structure of the installation package will be described in detail later.
[0041] The custom application distribution system 0213 is a system program that distributes to a device one or more installation packages of custom applications that are linked in advance to an installation code issued on the installation code issue screen 0209. Here, the installation packages of one or more custom applications are referred to as a custom application installation package archive. When the custom application distribution system 0213 receives a distribution request accompanied by an installation code from a device, it transmits to the device an installation package archive of the custom application that is linked to the installation code. FIG. 2 shows an example in which the MFP 0203 is connected as a device to the back-end program 0205 of the authoring system 0101, and the installation packages of the custom applications are sequentially transmitted to the MFP 0203.
[0042] The installation code issuing system 0214 is a program that operates in cooperation with the installation code issuing screen 0209 and issues an installation code for one or more custom applications selected by the user. The installation code issuing system 0214 also holds an internal table that indicates the relationship between the selected one or more custom applications (i.e., the installation package archives of the custom applications) and the issued installation codes. Details will be described later.
[0043] Here, the installation package archive of the custom application may be configured to be generated on demand, or may be configured to be generated in advance. If configured to be generated on demand, it is generated by the custom application packaging 0212 after the custom application distribution system 0213 receives a distribution request accompanied by the installation code from the device. On the other hand, if configured to be generated in advance, it is generated by the custom application packaging 0212 when the installation code issuing system 0214 issues an installation code. Then, it is stored together with a table indicating the relationship with the issued installation code inside the installation code issuing system 0214.
[0044] The playback application resource 0206 accommodates a signed application, which is an application for playing the created description and is a package to which a signature has been added beforehand. The playback application resource 0206 does not necessarily manage one playback application. For example, a plurality of playback applications may be managed, such as by managing each version separately. FIG. 2 shows an example in which playback applications ver1 (0215), ver2 (0216) to verN (0217) to which a signature has been added beforehand are stored. Corresponding signatures "signature 1", "signature 2" to "signature N" are added to each playback application. Each playback application is developed by the system developer 0201. In addition, the signature of the playback application is added beforehand in the development environment of the system developer 0201, where key information used for the signature is strictly managed. Then, the playback application to which a signature has been added beforehand is uploaded to the playback application resource 0206 by the system developer 0201 as appropriate. In addition, each playback application stored in the playback application resource 0206 has customizable information. A user selects a version of a playback application when starting to create a description with the description editor 0207. Then, the description editor 0207 obtains customizable information specific to the playback application from the selected version of the playback application. This eliminates the need for the description editor 0207 to statically hold information such as menu items required for customization.
[0045] <Server device> The hardware configuration for executing the software configuration of the authoring system described in Fig. 2(A) will be described. The authoring system 0101 is a system constructed on the cloud, and is configured to distribute the load using multiple devices. For simplicity of explanation, this embodiment will describe a case where processing is performed by one server device 0220. Fig. 2(B) is a diagram showing the hardware configuration of a server device used in the authoring system.
[0046] The server device 0220 is an information processing device for executing the authoring system, and includes a controller unit 250. The controller unit 250 includes a CPU 252, a RAM 253, a HDD 255, a ROM 256, and a network I / F 257. The CPU 252, the RAM 253, the HDD 255, the ROM 256, and the network I / F 257 are connected via a system bus 259.
[0047] The CPU 252 controls the operation of the server device and operates based on a program stored in the RAM 253. The ROM 256 is a boot ROM and stores a boot program for the system. The network I / F 257 is connected to a LAN and controls input and output of various information via the network. The HDD 255 stores various programs including system software. The programs stored in the HDD 255 are loaded into the RAM 253, and the CPU 252 controls the operation of the server device 0220 based on these programs.
[0048] The account information of the administrator and the user, and information on each tenant represented by the tenant A (0107) shown in FIG. 2A are all stored and managed on the HDD 255. The front-end resource 0204, the back-end program 0205, the playback application resource 0206, and the like shown in FIG. 2A are also stored on the HDD 255. In addition, although not shown, a program for realizing the system of user authentication of the administrator and the user described in the explanation of FIG. 1 is also stored on the HDD 255. The program for realizing the system of user authentication is automatically loaded on the RAM 253 when the server device 0220 is started, and is executed by the CPU 252. For example, when the system developer 0201 or the user (technical sales A1) 0202 shown in FIG. 2A accesses the authoring system 0101 and attempts to log in, the request is transmitted to the user authentication program via the network I / F 257. Then, the user authentication program displays a login screen on the web browser of the PC or the like used by the system developer 0201 or the user (technical sales A1) 0202. The description editor 0207 contained in the front-end resource 0204 and the like are also stored on the HDD 255. For example, when a user (technical sales A1) 0202 logs into the authoring system 0101 and accesses the URL of the description editor, the request is transmitted to the server device 0220 via the network I / F 257. The program of the description editor 0207 is then returned to the web browser of the PC used by the user (technical sales A1) 0202 and runs on the web browser. Similar processing is performed for the framework emulator 0208 and the installation code issue screen 0209.
[0049] The description editor 0207 and the like contained in the back-end program 0205 are also held on the HDD 255. As described above, the back-end program 0205 is driven in cooperation with each program of the front-end resource 0204. When a request to drive each module, including the description number management 0210 contained in the back-end program 0205, is received, the module is loaded from the HDD 255 onto the RAM 253 and executed by the CPU 252.
[0050] <mfp> The MFP0203 is an information processing device that processes information, an image processing device that processes images, and an image forming device that forms images on sheets. Fig. 3(A) is a diagram showing the hardware configuration of the MFP. Fig. 3(B) is a diagram showing the software configuration of the MFP.
[0051] The MFP0203 includes a controller unit 300, a printer 395, a scanner 370, an operation unit 312, and a USB storage 314. The controller unit 300 performs control to realize a copy function in which image data read by the scanner 370 is printed out by the printer 395. The scanner 370 is an image reading unit that reads an image from a document. The printer 395 is an image forming unit that forms an image on a sheet (paper). The operation unit 312 is a receiving unit that receives instructions from a user and a display unit that displays information to the user.
[0052] The controller unit 300 includes a CPU 301 , and the CPU 301 starts up an operating system (OS) by a boot program stored in a ROM 303 .
[0053] The CPU 301 runs programs stored in the storage 304 on this OS, thereby executing various processes. The RAM 302 is used as a working area for the CPU 301. The RAM 302 provides a working area as well as an image memory area for temporarily storing image data. The storage 304 stores the programs and image data.
[0054] To the CPU 301, ROM 303, RAM 302, operation unit I / F (operation unit interface) 306, network I / F (network interface) 310, USB host I / F 313, and image bus I / F (image bus interface) 305 are connected via a system bus 307. The operation unit I / F 306 is an interface with an operation unit 312 having a touch panel, and outputs image data to be displayed on the operation unit 312 to the operation unit 312. The operation unit I / F 306 also sends information input by a user on the operation unit 312 to the CPU 301. The network I / F 310 is an interface for connecting the MFP 0203 to a LAN. The USB host I / F 313 is an interface unit that communicates with a USB storage 314. The USB host I / F 313 is an output unit for storing data stored in the storage 304 in the USB storage 314. The USB host I / F 313 also receives data stored in a USB storage 314 and transmits it to the CPU 301. The USB storage 314 is an external storage device that stores data and is detachable from the USB host I / F 313. A plurality of USB devices including the USB storage 314 can be connected to the USB host I / F 313. The RTC 315 controls the current time. The time information controlled by the RTC 315 is used for recording the time of job input, etc. The image bus I / F 305 is a bus bridge that connects the system bus 307 and an image bus 308 that transfers image data at high speed and converts the data format. The image bus 308 is configured by a PCI bus or IEEE3394, etc. A device I / F 320, a scanner image processing unit 380, and a printer image processing unit 390 are provided on the image bus 308. A scanner 370 and a printer 395 are connected to the device I / F 320, which performs synchronous / asynchronous conversion of image data. A scanner image processing unit 380 corrects, processes, and edits input image data. A printer image processing unit 390 corrects, converts resolution, and the like, depending on the printer 395, for print output image data.
[0055] The CPU 301 loads a program stored in the storage 304 into the RAM 302 and executes the program to realize each module in Fig. 3. Fig. 3B is a diagram showing the software configuration of the MFP.
[0056] The MFP 0203 includes, as its software configuration, a servlet service 354, a UI control unit 353, an application execution control unit 355, a storage control unit 356, an application execution control unit 355, a standard function control unit 351, and a timer management unit 359.
[0057] The servlet service 354 receives a request when it is accessed via the network I / F 310 via HTTP, and is a module that distributes processing to a module (application management unit 352 or standard function control unit 351) depending on the accessed URL.
[0058] The UI control unit 353 is a module that displays a screen on the operation unit 312, accepts operations from the user, and notifies the operation information to an appropriate module (the application management unit 352 or the standard function control unit 351). The application management unit 352 is a module that manages the installation and startup of the installed extension application 440.
[0059] The application execution control unit 355 is a module that controls the execution of an application started by the application management unit 352. Specifically, the application execution control unit 355 controls the VM thread 415, the VM system service 420, the VM 430, and the extended application 440.
[0060] The storage control unit 356 is a module that records and manages the programs of the extension application 440 and setting information.
[0061] The application execution control unit 355 accesses the storage control unit 356 to read out the application program. In addition, each module accesses the storage control unit 356 to refer to and set setting values.
[0062] The standard function control unit 351 is a module that controls the standard functions of the MFP 0203, such as copying and faxing, and other controls necessary for the MFP 0203 (for example, control of the USB host path I / F 313). The standard function control unit 351 also manages executed copying, faxing, and the like as jobs, and requests a job execution history control unit 357 to record the execution results of the jobs. The job execution history control unit 357 requests a storage control unit 356 to record the history in order to leave the execution results of the jobs in the storage as history.
[0063] The timer management unit 359 obtains current time information from the RTC 315, detects that a specified time has passed, and notifies the application management unit 352. Upon receiving the notification from the timer management unit 359, the application management unit 352 requests the application execution control unit 355 to execute timer processing of the application.
[0064] The relationship between the OS, VM, and applications will now be described in detail with reference to Figure 4, which shows the hierarchical structure of software in the MFP.
[0065] A native program 410 for controlling an image processing unit such as a printer, a fax, or a scanner runs on the OS 401, which is an operating system. A virtual machine (VM) 430, which is an execution environment of an extended application 440, runs on the OS 401, which is an operating system. The VM 430 is a module that understands and executes a program that controls the extended application 440. The extended application 440 always runs on the VM 430. A program that runs on the VM 430 runs on an instruction dedicated to the VM 430, unlike an instruction that runs on the CPU 301. This instruction is called a bytecode. On the other hand, an instruction dedicated to the CPU is called a native code. The VM interprets and processes this bytecode one by one, so that the native code and the bytecode of the VM run on the CPU 301. There are two types of VMs: one that interprets and processes the bytecode one by one as it is, and one that converts the bytecode into a native code and executes it. The VM 430 in this embodiment is the former type, but may be the latter type. Generally, when the type of CPU is different, the instructions that run on the CPU are not compatible, and when the VM is different, the instructions that run on the VM are not compatible. In this embodiment, it is assumed that the extended application is configured in the Lua language, but other languages may be used. The Lua language converts a script written in the Lua language into a bytecode dedicated to the Lua language, and executes it on a VM 430 dedicated to the Lua language. Of course, the bytecode of the Lua language is different from the instruction code that the CPU 301 can directly execute, so the bytecode of the Lua language cannot be directly executed by the CPU 301. The VM 430 for the Lua language is configured with the instruction code of the CPU 301 as a software module that sequentially interprets and executes the bytecode of the Lua language. Of course, it may be configured as dedicated hardware that interprets and executes the bytecode of the Lua language.
[0066] The native program 410 includes a native thread 414 for controlling an image processing unit such as a printer, a fax machine, or a scanner, and a VM thread 415 for running the VM 430. The number of VM threads corresponds to the number of VMs 430. Here, three threads are generated: a VM thread A-1 (411), a VM thread A-2 (412), and a VM thread B-1 (413).
[0067] The VM system service 420 is a utility library commonly used by each extended application 440. The development speed of the extended application 440 can be accelerated by calling the function of the VM system service 420 from the extended application 440. The VM system service 420 can access each module of the MFP0203. The VM system service 420 includes a standard VM system service 421 that operates at a minimum level as a VM, and an extended VM system service 422 that provides access to each module of the MFP0203 and OS functions. The standard VM system service 421 also includes a function of loading the extended application 440. The VM system service 420 is called by the VM 430 executing an API specified by a bytecode in the extended application 440. The extended VM system service 422 includes a drawing API that performs arbitrary drawing on the screen of the operation unit 312 and a job control API that requests the execution of an arbitrary job such as copying or scanning of the MFP0203.
[0068] The VM 430 executes an extended application 440. A VM 430 is generated for each thread of the extended application 440. In this diagram, a VM A-1 (431) and a VM A-2 (432) are generated for running two threads in an extended application A 441. Also, in this diagram, a VM B-1 is generated for running one thread in an extended application B (442).
[0069] Furthermore, an icon for each extended application 440 is displayed on the main menu screen displayed on the operation unit 312 of the MFP 0203. When the operation unit I / F 306 detects through the operation unit 312 that the user has selected this icon, the operation unit I / F 306 transmits a notification to the CPU 301. The CPU 301, which has received the notification, starts up the extended application 440 selected by the user.
[0070] In the following description, this mechanism (VM system service 420, VM 430) for running the extension application 440 on the MFP 0203 will be referred to as an application framework.
[0071] <Client terminal> As a representative of general client terminals appearing in this system, the client terminal 0240 used by the user 0202 will be described. The configuration described here may be applied to client terminals used by the system administrator 0102, the tenant A administrator 0103, the tenant B administrator 0104, the tenant C administrator 0105, the system developer 0201, etc. Fig. 5(A) is a diagram showing the hardware configuration of a client terminal.
[0072] The client terminal 0240 is an external terminal that accesses the authoring system 0101. The client terminal 0240 includes a controller unit 500, an operation unit 510, and a display unit 512. The controller unit 500 is connected to each piece of hardware via a system bus 509 and exchanges information. The controller unit 500 loads a program such as an OS or a Web browser recorded in a ROM 506 or a HDD 505 into a RAM 503. The loaded program is processed sequentially by a CPU 502. The operation unit 510 is a reception unit that receives user operations. The operation unit 510 is connected to an operation unit IF 501, and user operation information received by the operation unit 510 is notified to the CPU 502 through the operation unit IF 501. This operation information is processed by a program running on the CPU 502. This causes the user's operation to be processed, and the operation result is displayed on a display unit 512 connected to a display unit IF 504, or is notified to a network connected to a network IF 507.
[0073] In this embodiment, a web browser is executed on this client terminal 0240, and the web browser is used to access the authoring system 0101 shown in Fig. 1. This client terminal 0240 may be a general PC or a mobile terminal such as a smartphone.
[0074] Next, a case will be described in which the client terminal 0240 executes a description editor on a Web browser. Fig. 6 is a block diagram of a Web browser displaying the description editor.
[0075] The web browser 601 is software for connecting to a web server, and can display web pages and execute programs. The web browser 601 can execute JavaScript VM 603 on a web browser native program 602, which is a native program for running the web browser itself. The JavaScript VM 603 is a program for running JavaScript on the web browser.
[0076] The description editor 604 is a program written in JavaScript, and is an example of the description editor 0207 introduced in Fig. 2. The description editor 604 runs on the JavaScript VM 603. The description editor 604 is a program that provides an editing environment for an application.
[0077] The description editor 604 also functions as an Application Framework Emulator 605. The application framework emulator 605 executes emulation of an application framework for executing a program in a language different from JavaScript on a browser. The application framework emulator 605 is an example of the framework emulator 0208 introduced in FIG. 2. In this embodiment, the application framework emulator 605 emulates an execution environment in the same language as the language of an application executed on the MFP 0203. The application framework emulator 605 also includes a VM system service emulator 606 and a VM emulator 607. These are programs that emulate the operations of the VM 430 and the VM system service 420 in FIG. 2 on JavaScript and are configured in JavaScript.
[0078] The playback application 608 is an application (playback program) that operates based on a description customized by the user. The playback application 608 is configured similarly to an application that runs on the application framework of the MFP0203. FIG. 6 shows the playback application 608 running on the application framework emulator 605. The playback application 608 includes a customizable information control 610 that processes customizable information inquiries from the VM system service. The playback application 608 also includes a customizable information definition 611 and a description playback control 609 that plays a given description.
[0079] Description 612 is data that holds customization information edited by the user in a format that can be played back by a playback application. When the user instructs the editing contents on the editing screen provided by description editor 604, description editor 604 generates description 612. Description editor 604 plays back description 612 generated by playback application 608 running on application framework emulator 605. As a result, a screen for checking the operation of the customized application is provided to the user on the Web browser.
[0080] In this embodiment, JavaScript is used as the programming language that configures the description editor 604, but it may also be configured using other code that can be directly executed on a web browser, such as WebAssembly.
[0081] Furthermore, the playback application executed by the description editor 604 does not have to be completely the same as the playback application executed by the MFP 0203. For example, a configuration may be used in which an operation check application is loaded that is an extracted portion of the description playback control that is directly related to customization of the playback application.
[0082] Next, a detailed description will be given of the description editor 604. Fig. 5B is a diagram showing the software configuration of the description editor executed by the client terminal.
[0083] The description editor 604 is a program written in JavaScript that is downloaded from a server by a web browser when the web browser accesses a predetermined URL and executed within the web browser. The description editor 604 includes an overall control unit 551, a screen configuration unit 552, a framework emulator control unit 556, a server communication unit 557, a description generation unit 555, a customized part information management unit 553, and a customized part information editing unit 554.
[0084] The overall control unit 551 is a component that controls the entire description editor. The overall control unit 551 controls the description editor 604 by operating in cooperation with each block. The screen configuration unit 552 is a component that controls the screen configuration of the description editor 604. The screen configuration unit 552 updates the HTML element and css (screen information) that configure the screen shown in FIG. 7. In addition, the screen configuration unit 552 accepts a user's operation and notifies the overall control unit 551 of the operation content (editing operation). The overall control unit 551 receives the operation notification and performs appropriate control. If the operation notification is operation information for the display area 701 of the application screen image, the overall control unit 551 notifies the framework emulator control unit 556 of the operation information. For example, when the display area 701 of the application screen image is clicked, information indicating that a predetermined place on the application execution screen has been clicked is notified to the framework emulator control unit 556. The framework emulator control unit 556 is a component that executes a playback application that plays a customized description on the Web. Since the playback application is configured to run on the application framework in the MFP0203, it cannot be executed directly on the Web browser. This framework emulator performs emulation to execute an application for the MFP0203 on the Web. This framework emulator control unit 556 receives a screen operation notification from the overall control unit 551 and notifies the application executed in the emulator. The application that receives the operation information updates the screen in response to the operation. This screen update is realized by a screen drawing API in the application framework. This API is replaced by an image rendering API in the Web browser by the framework emulator, and the display screen of the application is displayed in the display area 701 of the application screen image in FIG. 7. The customized part information editing unit 554 is configured to obtain customizable part information from the playback application, convert the information into a format that can be used by the description editor 604, and hold the information.Based on this part information, the screen configuration unit 552 configures a parts list 702 and a display area 706 for customized setting information. The customized part information management unit 553 is configured to manage the setting information of the currently set customized parts. Based on this information, the screen configuration unit 552 configures the display area 706 for customized setting information. The description generation unit 555 is configured to generate a description based on the current setting information held in the customized part information editing unit 554. This description is notified to the playback application through the framework emulator control unit 556. As a result, the playback application plays the description, and the display area 701 of the application screen image in FIG. 6 is updated. The server communication unit 557 controls communication with the server. The communication with the server includes communication for saving the part setting information held in the customized part information editing unit 554 in the server, and downloading the playback application to be executed by the framework emulator control unit 556. As a result, even if the customizable information of the playback application increases or decreases, or the operation is changed, an editing function suited to the playback application can be provided without changing the description editor 604.
[0085] <Description Management> A detailed description will now be given of the generation and registration of the description mentioned in S904 to S907 of Fig. 9. Fig. 14 is a diagram showing a detailed flow of description generation (S904 to S907).
[0086] In the flow of FIG. 14, an access is received from a web browser of a client terminal 0240. Then, the authoring system 0101 provides the description editor 0207 and the framework emulator 0208, which are the front-end resources 0204, to the client terminal 0240 (S903). When creating a new description, the description editor 0207 sends a new description creation notification to the description number management 0210, which is the back-end program 0205 of the authoring system 0101 (S1401). Upon receiving the notification, the description number management 0210 generates identifier information that does not overlap with identifier information of existing applications and identifier information of existing descriptions (S1402). Next, the back-end program 0205 identifies the tenant of the system user 0202 from the access information and determines the description storage destination (S1403). Next, the back-end program 0205 acquires version information of the playback application corresponding to the description to be created (S1404). Next, the back-end program 0205 generates meta data from the identifier information so far, the version information of the playback application, etc. (S1405), and transmits it to the description editor of the client terminal 0240 (S1406). When editing an existing description, the description editor transmits a description read request to the description pool A1 (0113) (S1410). Then, the authoring system 0101 transmits the specified description and meta data to the description editor (S1411). When creating a new description based on an existing description, the meta data is created in the same manner as in the flow when creating a new description (S1401 to S1406).
[0087] After a description is newly created or loaded, the description editor and framework emulator customize the description and check its operation (S1421 to S1424). Customizing the description will be described in detail later.
[0088] After customizing the description, the system user 0202 saves the customized description (S1407). The description editor that receives the save operation sends the description to the authoring system 0101 (S1408). The authoring system 0101 saves the description in the corresponding save destination (S1409).
[0089] <Edit description> First, the execution screen of the description editor for creating a custom application will be described. FIG. 7(A) is a diagram showing the screen of the description editor. When a user accesses the authoring system 0101 with a Web browser and starts customizing an application, a screen 700 is displayed in the Web browser. The screen 700 is composed of HTML, JavaScript, and css downloaded from a server, and the Web browser interprets them and displays the results of rendering the screen. In this embodiment, a custom application that makes it easier to select the Copy execution button in response to a customer's request will be described as an example. A plurality of items (objects) are arranged on the screen 700, and an application editing environment is provided to the user. The main components of the screen 700 will be described below.
[0090] The display area 701 is an image display area for displaying an execution image of an application (an application being modified) reflecting the contents customized by the user. In this embodiment, an example in which this area is configured by the canvas element of HTML will be described, but this area may be configured by using other HTML elements that can be rendered. With such a configuration, the user can perform customization while checking whether the desired customization has been performed by looking at the display area 701.
[0091] The parts list 702 is a pull-down display object that displays a list of customizable (addable) display parts. The user can customize the application by adding parts by selecting and adding desired parts from this parts list 702. Examples of editable parts include buttons that can be associated with functions, title information, message information, etc.
[0092] The result of adding a part is immediately reflected in the display area 701, so the user can easily check the customization status.
[0093] The display area 706 is a customization setting information display area that displays the currently set parts and the information set for those parts. In FIG. 7(A), the settings of a title part 703, a message part 704, and a button part 705 are displayed. The user can customize the parts by editing the information of the parts displayed in the display area 706. For example, suppose that the character string "Custom Application" displayed in the title part 703 is edited to "Test Application". Then, the edit is reflected in the display area 701, and the part that says "Custom Application" is updated to "Test Application". It is also possible to change the size and layout of a part by editing the parameters of the part.
[0094] Next, the execution flow of the description editor will be described. Fig. 8 is a diagram showing the sequence between the software modules of the description editor. Each process is realized by the controller unit 500. In detail, the CPU 502 obtains the program of the web browser 601 from the ROM 506 and loads it in the RAM 503, and executes the description editor 604 via the JavaScript VM 603, thereby realizing each process.
[0095] In the execution flow of the description editor 604, first, the overall control unit 551 requests the screen configuration unit 552 to configure a screen (S800). The screen configuration unit 552 configures an edit screen as shown in FIG. 7(A). At this time, the parts list 702 and the display area 706 of the customization setting information are configured in an empty state because customizable part information is undefined. Next, the overall control unit 551 requests the server communication unit 557 to download a playback application (S801). In response to this request, the server communication unit 557 downloads the playback application from the server. The server communication unit 557 notifies the overall control unit 551 of the downloaded playback application (S802). The overall control unit 551 requests the framework emulator control unit 556 to execute the playback application (S803). The framework emulator control unit 556 executes the requested playback application. Next, the overall control unit 551 requests the framework emulator control unit 556 to send customizable part information (S804). The framework emulator control unit 556 receives this request, requests the playback application for customizable part information, and returns the acquired customizable part information to the overall control unit 551 (S805). The overall control unit 551 notifies the customized part information management unit 553 of the acquired customizable part information (S806). The customized part information management unit 553 converts the notified information into a data format for handling by the description editor. Next, the overall control unit 551 requests the screen configuration unit 552 to update the screen (S808). Since the customizable part information has been determined here, the information is reflected in the parts list 702 and the display area 706 of the customized setting information, and the user is able to customize. Next, the user adds a part from the parts list 702 (S808). The screen configuration unit 552 receives this change notification, and notifies the overall control unit 551 of user operation information (S809). The overall control unit 551 notifies the customized part information editing unit that the setting value has been changed (S810). The customized part information editing unit checks the set values and notifies the overall control unit 551 of the current set values (S811).The overall control unit 551 requests the description generation unit 555 to generate a description from the current setting values (S812). The description generation unit 555 generates a description corresponding to the current setting values and notifies the overall control unit 551 (S813). The overall control unit 551 notifies the framework emulator control unit 556 of the description (S814). The framework emulator control unit 556 plays the description with a playback application, and the display area 701 of the application screen image is updated. Finally, the overall control unit 551 requests the server communication unit 557 to save the edited customized part setting information (S815). In response to this, the server communication unit 557 requests the server to save the customized part setting information. This causes the customization information of the application set by the user to be saved in the server. When the user customizes the application next time, this information is loaded, and customization can be performed from a state where the information edited by the user is reflected.
[0096] Next, the structure of the description will be described. FIG. 11 is a diagram showing the description. FIG. 11 shows an example of a description corresponding to the application setting information customized in FIG. 7(A). That is, it shows a description corresponding to an application that displays a copy execution confirmation screen and executes a copy job when OK is pressed. In this embodiment, the contents of the description are written in a JSON format that is highly compatible with web browsers. Other formats may be used as the description format.
[0097] The description is broadly composed of panel information 1101 and 1102. The panel information 1101 stores information on parts and customization information for each part. The part information includes title part information 1103, message part information 1109, OK button part information 1110, and cancel button part information 1111. The customization information for each part includes part ID information 1104, part setting information 1105, part parameter information 1106, part parameter data type 1107, and part parameter data 1108. The part ID information 1104 is identification information indicating which part the customization information is for. In this example, it indicates that the customization information is for the "title" part. The part setting information 1105 indicates the setting information for that part. The part parameter information 1106 indicates the customization information for the parameters of the part. The part parameter data type 1107 indicates the data type of the part parameter. The part parameter data 1108 indicates the setting value of the part parameter. If data_type is "string", localized string information is specified.
[0098] Therefore, it can be seen that the title part in the title part information 1103 has a title parameter, and the parameter setting value is set to the localized character string "Custom Application." Similarly, each customization information is set for the message part information 1109, the OK button part information 1110, and the cancel button part information 1111.
[0099] Panel information 1102 stores information for executing a job. In job execution part information 1112, "execute_job" is specified as a part for executing a job. Information about this job execution part information 1112 includes a job identification ID 1114 indicating what job is to be executed, and job parameters 1115 of that job as parameter setting values. Since this example is an application that executes copies, "copy" is specified in the job identification ID 1114. Parameters for executing that job can be registered in the job parameters 1115. Here, number of copies information 1116 and color mode 1117 are registered.
[0100] The description given as an example in the above description is read by, for example, the description playback control 609 of the playback application. Then, the playback application creates a screen according to the description, and performs screen transitions and job execution control according to user operations.
[0101] <Installation of custom applications> The custom application creation process mentioned in S912 of FIG. 9 will be described in detail. The description registered in the authoring system 0101 is packaged (S915), provided to the MFP 0203 as a custom application (S911), and installed (S912). When the custom application is installed, a playback application is executed in the MFP 0203, the description is read by a script, and the information specified in the description is played back. An execution screen is displayed as shown in FIG. 7(B). FIG. 7(B) is a diagram showing the execution screen of the custom application in the MFP. This execution screen is the same as that displayed in the display area 701 when the description was edited, and it can be seen that it is operating normally. The process related to the installation of the custom application will be described in detail below.
[0102] First, there will be described the structure of an installation package that the authoring system 0101 provides to the MFP 0203. Fig. 10 is a diagram showing the data structure of an installation package.
[0103] The installation package 1000 is package data that includes a signed description 1052 and a signed application 1001 .
[0104] The signed application 1001 comprises a playback application 1002 consisting of a script 1004, resources 1005, and meta information 1006, and an application signature 1003. In this embodiment, the same playback application as that held by the description editor 604 is used.
[0105] On the other hand, the signed description 1052 is composed of a description 1053, description meta information 1054, and a description signature 1055. The description 1053 is generated by a description editor, and is data that defines the behavior of an application customized by a user. The details of the description 1053 are as described with reference to FIG. 11. The description meta information 1054 is information that indicates an identifier (description identifier), version information, and application name of the customized application. The description signature 1055 is signature data for guaranteeing the integrity of the description 1053 and the description meta information 1054. This description signature 1055 is generated by using a signature key different from that of the application signature 1003. This signature key is held in the authoring system 0101, and the description signature 1055, which is signature data, is generated by the description signature assignment 0211.
[0106] The detailed process of installing the above-mentioned install package 1000 on the MFP0203 will be described. FIG. 12(A) is a diagram showing an application structure held in the storage of the MFP after a custom application is installed on the MFP, and the corresponding install package. The left side of FIG. 12(A) is the install package 1000, and the right side of FIG. 12(A) is the installed custom application 1200. The configuration of the install package 1000 is as described above. In contrast, the installed custom application 1200 is composed of a script 1201, a resource 1202, a description 1203, main meta information 1204, and sub-meta information 1205. In the application installation process executed by the MFP0203, each data in the install package 1000 is read out and reconstructed on the storage of the MFP0203. Specifically, the script 1004 in the install package is arranged as the script 1201. The resource 1005 in the install package is arranged as the resource 1202 after installation. Moreover, description 1053 in the installation package is arranged as post-installation description 1203. In addition, application meta information 1006 is stored in the storage section of main meta information 1204 as information (application identifier) for uniquely identifying the installed application. Moreover, description meta information 1054 is stored in the storage section of sub-meta information 1205.
[0107] The main meta information 1204 is information used to distinguish the custom application from other applications installed in the MFP 0203. The sub-meta information is information (identifier) for uniquely identifying the contents of the custom application. In this manner, the custom application 1200 is a combination application that combines the information of the signed application 1001 and the signed description 1052.
[0108] For reference, installation of a normal application will also be described. Fig. 12B is a diagram showing the application structure held in the storage of the MFP after a normal application is installed on the MFP, and the corresponding installation package. The left side of Fig. 12(B) is the install package 1220, and the right side of Fig. 12(B) is the installed normal application 1230. The installed normal application 1230 is composed of a script 1231, a resource 1232, and main meta information 1233. In this way, when the normal application is installed, it does not include information corresponding to the description 1203 or information corresponding to the sub meta information 1205. In this way, the normal application 1230 is a non-combined application.
[0109] Next, the control processing executed when installing an application package will be described. Fig. 13 is a diagram showing the installation flow of an application package. The processing in Fig. 13 indicates the processing of the application management section 352. That is, each processing is realized by the controller unit 300. In detail, the processing is realized by the CPU 301 expanding a program stored in the ROM 303 or storage 304 into the RAM 302 and processing it.
[0110] First, in S1302, the application management unit 352 transmits an installation request by any installation means.
[0111] In the case of installation from the custom application distribution system 0213 (S1311), the application management unit 352 starts the custom application installer in S1312. In S1313, the application management unit 352 accepts input of an installation code by the system user 0202 or the user of the MFP 0203. This corresponds to S910. The application management unit 352 transmits an installation request to the custom application distribution system 0213 using the input installation code. An example of a method for inputting the installation code is input using a software keyboard of the operation unit 312. However, the installation code may be input using another method. For example, a configuration may be used in which Web page data provided by the MFP 0203 is accessed by an information processing device such as a PC, and the contents input using the keyboard are transmitted to the MFP 0203. The installation code may also be input by reading a paper on which the installation code or information corresponding to the installation code is written by the scanner 370.
[0112] In the case of installing a normal application (S1315), the application management unit 352 launches an application installer in S1316. In S1317, the application management unit 352 accepts a selection of an application to be installed from the user of the MFP 0203. The application management unit 352 transmits an installation request for the selected application to the application server.
[0113] In the case of installation using a pre-installed application (S1319), the application management unit 352 executes the pre-installer. In S1320, the started pre-installer transmits an installation request to the internal storage. The application management unit 352 receives an installation package of the application as a response to the installation request in S1303. In S1304, the application management unit 352 determines the application type of the application included in the received installation package.
[0114] If the application type cannot be identified (identification failure), the application management unit 352 determines that the installation has failed and ends with an error.
[0115] If the application type is a normal application (first type), the application management unit 352 verifies the application in S1305. In the verification, the application signature 1003 is used to check whether the script 1004, the resource 1005, and the meta information 1006 of the application contain any unauthorized information.
[0116] If the verification fails (verification failed), the application management unit 352 determines that the installation has failed and ends the process with an error. If the verification is successful (verification successful), the application management unit 352 installs the application in S1306.
[0117] If the application type is an application created by the authoring system 0101 (second type), the application management unit 352 verifies the application in S1305. In the verification, the application signature 1003 of the playback application is used to confirm that the description 1053 and description meta information 1054 of the playback application are not invalid.
[0118] If the verification fails (verification failure), the installation fails and the process ends with an error. If the verification succeeds (verification success), the application management unit 352 verifies in S1308 using the description signature 1055 that the description 1303 and the description meta information 1304 do not contain any incorrect information. If the verification fails (verification failure), the application management unit 352 determines that the installation has failed and ends the process with an error. If the verification succeeds (verification success), the application management unit 352 performs the meta information adjustment process in S1309. In the case of a custom application, there are two types of meta information. Therefore, an adjustment is made to store the meta information 1006 of the playback application as the main meta information 1204 and the meta information of the description meta information 1054 as the sub meta information 1205. The application management unit 352 installs the playback application and the description in S1310.
[0119] <meta information> Details of the meta information will be described. FIG. 14(A) is a diagram showing the details of the application meta information. FIG. 14(B) is a diagram showing the details of the description meta information. The application meta information 1006 and the description meta information 1054 are information held as files in JSON format.
[0120] As shown in Fig. 14(A), meta information 1006 includes serial 1402 for identifying the application, and name 1403, which is a representative name. Meta information 1006 also includes version 1404, which is version information of the application, and author 1405, which indicates the author of the application. Meta information 1006 also includes localizedName 1406, which is the name of the application localized in each language. LocalizedName 1406 is information used for display on an application management screen, which will be described later. If information on localizedName 1406 is not stored, name 1403, which is a representative name, is used as the information to be displayed.
[0121] As shown in Fig. 14(B), meta information 1054 includes serial 1452 for identifying the description, and name 1453 which is a representative name. Meta information 1054 also includes version 1454 which is version information of the description, and author 1455 which indicates the author of the description. Meta information 1054 also includes localizedName 1456 which is the name of the application localized in each language. LocalizedName 1456 is information used for display on an application management screen, which will be described later. If information on localizedName 1456 is not stored, then name 1453 which is a representative name is used as the information to be displayed.
[0122] <Application Management> As described above, various applications such as normal applications and custom applications can be installed in the MFP0203. In other words, various applications such as normal applications and custom applications can be registered in the MFP0203. Therefore, it is desirable that the MFP0203 can appropriately manage each application even in a situation where these applications are mixed. In this embodiment, a case will be described in which the servlet service 354 of the MFP0203 provides page information for application management to an external device. This page information is read into the WEB browser 601 executed by the client terminal 0240 and output as screen information. Note that the method using the servlet service 354 is one example of a method for managing applications. As other methods, a method of managing applications using a dedicated program installed in the client terminal 0240 or a method of managing applications using the operation unit 510 of the MFP0203 may be adopted. Next, a flow of application management will be described.
[0123] FIG. 17 is a diagram showing the flow of application management.
[0124] In step S1701, the client terminal 0240 that has accepted an instruction from a user makes a request to the servlet service 354 to access a web page.
[0125] In S1702, the servlet service 354 that has accepted the access request provides top page information to the client terminal 240. When providing the page information, an authentication procedure such as requesting input of a user ID and password may be performed.
[0126] In S1703, the client terminal 240 that has received the TOP page information outputs (displays) screen information of the TOP page (not shown).
[0127] In S1704, the client terminal 240 subsequently receives an instruction from the user to transition to the application management page and requests the servlet service 354 to send the application management page.
[0128] In S1705, the servlet service 354 requests the application management unit 352 for application information.
[0129] In S1706, the application management unit 352 executes an application information acquisition process, the details of which will be described later.
[0130] In S 1707 , the application management unit 352 transmits the application information to the servlet service 354 .
[0131] In S1708, the servlet service 354 transmits the application management page information to the client terminal 240.
[0132] In S1709, the client terminal 240 outputs screen information based on the application management page information, and then accepts a user instruction to specify an application.
[0133] In S1710, the client terminal 240 requests the application details page.
[0134] In S1711, the client terminal 240 requests the application management unit 352 for detailed application information.
[0135] In S1712, the application management unit 352 executes detailed information acquisition processing. In this embodiment, main meta information is acquired for each installed application. In addition, if the application is a custom application, sub meta information is also acquired.
[0136] In S1713, the application management unit 352 transmits the application detail information to the client terminal 240.
[0137] In S1714, application details page information is provided to the client terminal 240.
[0138] In S1715, the client terminal 240 outputs screen information based on the application detail information.
[0139] <Screen> The screen information of the application management page displayed in S1709 will be described.
[0140] Fig. 15(a) is a diagram showing an application management screen, and Fig. 15(b) is a diagram showing an application management screen in a comparative example.
[0141] As shown in FIG. 15(a), an application management screen 1551 displays list information that can list identification information (name information) of applications installed in the MFP 203. Application information includes the application name, version, status, operation, etc. On this screen, the user can select an enable / disable button or an initialize button arranged corresponding to each application. Selecting the enable / disable button switches the corresponding application between an enabled state and an disabled state. Selecting the initialize button can initialize the settings of the corresponding application.
[0142] On the application management screen 1551, information displayed as the application name is usually information obtained from the application meta information of each application.
[0143] Specifically, the names of normal applications such as "Print standard documents," "Sorting and scanning," and "Display notifications" are displayed.
[0144] However, in this embodiment, for custom applications, information obtained from description meta information is used, as shown in description name 1552. Here, for simplicity's sake, descriptions are written as "description A", "description B", etc., but in reality, specific names stored in the descriptions, such as "custom copy application" and "custom scan application", are displayed.
[0145] Similarly, as shown in version 1553, information obtained from description meta information is used for custom applications. This is a measure to solve problems caused by the configuration of custom applications. As shown in FIG. 15(B), when description meta information is not used for a custom application, meta information of a playback application is used such as application name 1502 and version 1503. As described above, a playback application is a general-purpose application for a custom application for executing processing based on a description. Therefore, even if two different custom applications are installed, the application information is application name 1502 and version 1503, which are both information of the playback application. In this case, since it is not possible to distinguish between custom applications, it is not possible to appropriately manage the custom applications by disabling or initializing them. Therefore, in this embodiment, description meta information is used instead of application meta information to provide an appropriate application management screen.
[0146] Furthermore, on the application management screen 1551, each application name is a link. Therefore, by selecting an application name, it is possible to transition to a details screen of the corresponding application. FIG. 16 is a diagram showing the application details screen. When "description A" is selected on the application management screen 1551, transition to application details screen 1601 occurs. On application details screen 1601, detailed information of a custom application having description A is displayed. The detailed application information may be checked for the purpose of identifying the cause when a defect occurs in a custom application. For example, a customer making an inquiry about a defect checks this screen and notifies customer service of the name and version information of the description, and the name and version of the application.
[0147] The detailed information on the application details screen 1601 includes a name 1604 of description A, version information 1602, and middleware information (the name and version information of the playback application) 1603.
[0148] <App information acquisition process> The application information acquisition process will be described as a process for solving the problems caused by the configuration of the above-mentioned custom application. Fig. 18 is a flowchart showing the application information acquisition process. Each step is executed by the application management unit 352. In detail, the process is realized by the CPU 301 expanding a program stored in the ROM 303 or storage 304 into the RAM 302 and processing it.
[0149] In S1801, the application management unit 352 determines the type of application for which meta information is to be obtained next. If the application type is the first type, i.e., a normal application, the application management unit 352 proceeds to S1802. If the application type is the second type, i.e., a custom application, the application management unit 352 proceeds to S1803.
[0150] In S1802, the application management unit 352 acquires the main meta information 1233 and sets it as data to be used in the response. As described above, meta information of the application is stored in the main meta information 1233. After that, the application management unit 352 advances the process to S1804.
[0151] In S1803, the application management unit 352 acquires the sub-meta information and sets it as data to be used in the response. As described above, the description meta information is stored in the sub-meta information 1205. After that, the application management unit 352 advances the process to S1804.
[0152] In S1804, the application management unit 352 checks whether meta information has been acquired for all installed applications. If there is an application for which meta information has not yet been acquired (NO), the application management unit 352 returns the process to S1801. If meta information has been acquired for all applications (YES), the application information acquisition process ends. Thereafter, the data set as response data is transmitted to the servlet service in S1707. Note that the configuration may be such that meta information is transmitted to the servlet service each time it is acquired.
[0153] <Notes> As described above, the authoring system 0101 provides an environment in which applications can be easily edited and distributed. This allows personnel such as service personnel and technical sales personnel to create custom applications, making it possible to quickly provide applications that customers desire.
[0154] Furthermore, the MFP 203 manages description information (particularly identifiers) separately from playback application information (particularly identifiers).The description name and description name are displayed in place of the application name and application version.This configuration allows custom applications to be properly managed with the same operability as normal applications.
[0155] (Other Examples) In the embodiment described above, the configuration has been described in which application meta information is stored in the main meta information 1233, and description meta information is stored in the sub-meta information 1205. However, as long as the custom application can be appropriately managed using the description meta information, the method of managing the meta information may be different.
[0156] For example, as shown in FIG. 19, after storing the meta information of the application, the meta information of the description may be overwritten. FIG. 19 is a diagram for explaining another example of installation of a custom application. In FIG. 19, the application meta information 1006 is stored, and then, a process is performed to overwrite a part or all of this information with the description meta information 1054. By such a process, the MFP 203 is in a state where the composite meta information is stored. The reason why the application meta information 1006 is temporarily stored is to unify the format of the meta information with that of the normal application. In this example, the composite meta information 1901 is treated in the same way as the main meta information 1233 of the normal application. That is, in S1706, the composite meta information 1901 is acquired as the application information without performing the determination process as in FIG. 18. In the composite meta information 1901, the application meta information 1006 is deleted by the overwriting process. Therefore, in preparation for a situation in which the information in the application meta information 1006 must be used, the application meta information 1006 may be configured to be stored in the backup meta information 1902 .
[0157] In the above embodiment, a custom application generated in a large-scale authoring system is taken as an example of a management target. However, the environment in which the custom application is provided does not have to be a large-scale authoring system. If a custom application consisting of a playback application and a description can be provided, the custom application may be provided using a program installed in a PC.
[0158] In the above embodiment, an example was described in which the name and version of the description are displayed in addition to the name and version of the playback application on the details screen. However, other information may be used as meta information to be displayed. For example, information such as the revision number or build number of the application or description may be used. In addition, the contact information of the developer of the application or description may be displayed.
[0159] The present invention can also be realized by a process in which a program for realizing one or more functions of the above-mentioned embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. It can also be realized by a circuit (e.g., ASIC) for realizing one or more functions. The storage described as an HDD in the embodiments may be replaced with a semiconductor storage such as an SSD.
[0160] The present invention may be applied to a system made up of multiple devices, or to an apparatus made up of a single device.
[0161] The present invention is not limited to the above-described embodiment, and various modifications are possible based on the spirit of the present invention, and are not excluded from the scope of the present invention.
[0162] The abbreviations appearing in the examples have the following meanings.
[0163] API stands for Application Programming Interface.
[0164] ASIC stands for Application Specific Integrated Circuit.
[0165] CPU stands for Central Processing Unit.
[0166] CSS stands for Cascading Style Sheets.
[0167] FAX stands for Facsimile.
[0168] HDD stands for Hard Disk Drive.
[0169] HTML stands for Hypertext Markup Language.
[0170] HTTP stands for Hyper Text Transfer Protocol.
[0171] IEEE stands for Institute of Electrical and Electronics Engineers.
[0172] JSON stands for JavaScript Object Notation.
[0173] LAN stands for Local Area Network.
[0174] MFP stands for Multi Function Peripheral.
[0175] OS stands for Operating System.
[0176] PC stands for personal computer.
[0177] PCI stands for Peripheral Component Interconnect.
[0178] RAM stands for Random-Access Memory.
[0179] ROM stands for Read Only Memory.
[0180] RTC stands for Real-Time Clock.
[0181] SSD stands for Solid State Drive.
[0182] UI stands for User Interface.
[0183] URL stands for Uniform Resource Locator.
[0184] USB stands for Universal Serial Bus.
[0185] VM stands for Virtual Machine. [Explanation of symbols]
[0186] 0203 MFP (information processing device) 0240 Client terminal (external device) 608 Playback Application 612 Description (description file) 1200 Custom Applications 1230 Normal Application 1006 Application meta data (application identifier) 1054 Description meta data (description identifier)< / mfp>
Claims
1. An information processing device, a means for registering, as a combination application, combination information of a description file in which an operation procedure is defined and a playback application for playing the description file; means for registering a non-combined application that does not use the description file; a means for outputting list information including identification information of the combined application and identification information of the non-combined application, 2. The information processing apparatus according to claim 1, wherein, in the list information, identification information of the description file is used as identification information of the combined application.
2. The information processing apparatus according to claim 1 , wherein the list information is screen information that enables a list of name information relating to a plurality of applications installed in the information processing apparatus.
3. 3. The information processing apparatus according to claim 1, wherein the list information is screen information that enables a user to view version information relating to a plurality of applications installed in the information processing apparatus.
4. 4. The information processing apparatus according to claim 1, wherein the list information is displayed on an external device connected to the information processing apparatus via a network.
5. 5. The information processing apparatus according to claim 4, wherein the list information is provided to the external device as Web page data.
6. 4. The information processing apparatus according to claim 1, wherein the list information is displayed on a display unit provided in the information processing apparatus.
7. A first combined application and a second combined application can be registered as the combined application, a playback application included in the first combined application and a playback application included in the second combined application have the same application identifier; 7. The information processing apparatus according to claim 1, wherein a description file included in the first combined application and a description file included in the second combined application have different description identifiers.
8. 8. The information processing apparatus according to claim 1, wherein the combined application is a program that is installed in the information processing apparatus based on package data including the playback application and the description file.
9. 9. The information processing apparatus according to claim 1, further comprising: a means for storing an application identifier of the playback application in a first storage section and a description identifier of the description file in a second storage section in the installation process of the combined application.
10. 10. The information processing apparatus according to claim 1, further comprising: a means for storing an application identifier of the playback application in a first storage section and a description identifier of the description file in a second storage section in the installation process of the combined application.
11. 10. The information processing apparatus according to claim 1, further comprising: a means for performing registration processing of the combined application by using a description identifier of the description file instead of an application identifier of the playback application in the installation processing of the combined application.
12. 10. The information processing apparatus according to claim 1, further comprising: a registering unit for registering a description identifier of the description file in accordance with a format of an application identifier of the playback application in the process of installing the combined application.
13. 10. The information processing apparatus according to claim 1, further comprising: a means for overwriting an application identifier of the playback application with a description identifier of the description file after the application identifier of the playback application is stored in the installation process of the combined application.
14. 14. The information processing apparatus according to claim 1, wherein the description file is data described in a JSON format.
15. 15. The information processing apparatus according to claim 1, further comprising an image forming unit that forms an image on a sheet.
16. 16. The information processing apparatus according to claim 1, further comprising an image reading unit for reading an image from a document.
17. A program executed by an information processing device, registering, as a combined application, combination information of a description file in which an operation procedure is defined and a playback application for playing the description file; registering a non-combined application that does not use the description file; outputting list information including identification information of the combined application and identification information of the non-combined application; The program, wherein in the list information, identification information of the description file is used as identification information of the combined application.
18. An information processing system, a means for registering, as a combination application, combination information of a description file in which an operation procedure is defined and a playback application for playing the description file; means for registering a non-combined application that does not use the description file; a means for outputting list information including identification information of the combined application and identification information of the non-combined application, An information processing system, wherein in the list information, identification information of the description file is used as identification information of the combined application.
Citation Information
Patent Citations
Image forming apparatus
JP2012221201A
Information processing system, information processing apparatus, information processing method, and program
JP2015176306A
Game machine
JP2016002470A
Image forming apparatus, setting value input receiving method, and program
JP2019160226A
Management device
JP2020177433A