Information processing system, information processing method, and program
The system addresses the challenge of managing and customizing applications in information processing devices by using a cloud-based authoring system to generate and install custom applications, ensuring efficient and timely meeting of customer needs.
Patent Information
- Application Number
- JP2021114971
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-07-12
- Publication Date
- 2025-08-19
- Estimated Expiration
- 2041-07-12
AI Technical Summary
Existing information processing devices lack a mechanism to efficiently manage and customize applications to meet diverse customer needs, and there is a need for a system that can appropriately manage custom applications based on description files and application data.
An information processing system that includes means for acquiring definition information, outputting screen information, receiving edit instructions, and generating a description file, allowing for the installation of custom applications on devices using package data with version information, and is managed through a cloud-based authoring system accessible to service personnel and sales representatives.
Enables quick customization and management of applications to meet customer requests, ensuring appropriate handling of increasing application types and versions, and facilitating efficient distribution and installation of custom applications.
Smart Images

Figure 0007725271000001 
Figure 0007725271000002 
Figure 0007725271000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a system for editing applications to be installed on an information processing device, which may be, for example, an image forming device such as a printer, scanner, fax machine, copier, or multifunction peripheral thereof, or may be, for example, a personal computer, mobile terminal, or other electronic device. [Background technology]
[0002] A mechanism for installing applications in an information processing device such as an MFP to extend its functions is known. Patent Document 1 discloses a technique for managing applications installed in the information processing device using application IDs and the like. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2016-2470 Summary of the Invention [Problem to be solved by the invention]
[0004] Customers who use information processing devices have a wide range of needs. Therefore, it is desirable to provide functions that meet customer needs in the form of applications. Furthermore, it would be ideal if relevant parties such as service personnel and sales representatives could customize applications and provide them to customers so that customer requests can be met promptly.
[0005] Therefore, the inventors of the present application are studying a mechanism for providing customized applications by combining description information as easily editable descriptive data with a general-purpose playback application. In a mechanism for combining and using multiple data, errors can occur depending on the correspondence between the data, such as differences in version, so it is desirable to be able to operate it appropriately.
[0006] Another object of the present invention is to provide a system that can appropriately manage custom applications based on description files and application data. [Means for solving the problem]
[0007] The present invention relates to an information processing system that provides a combination application to be executed by an image processing device, the combination application being a playback application for playing a description file in which an operation procedure is defined and information on the description file, the information processing system including: means for acquiring definition information from the playback application; means for outputting screen information based on the definition information; means for receiving an edit instruction corresponding to the screen information; and means for generating a description file corresponding to the playback application based on the edit instruction. The combined application is installed on the image processing device based on package data including the playback application and the description file, and the package data includes version information of the playback application. It is characterized by the following. [Effects of the Invention]
[0008] According to the present invention, a system can be provided that can appropriately manage custom applications based on description files and application data. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 is a diagram illustrating an authoring system. [Figure 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. [Figure 3]Fig. 3(A) is a diagram showing the hardware configuration of the MFP, and Fig. 3(B) is a diagram showing the software configuration of the MFP. [Figure 4] FIG. 2 is a diagram showing the hierarchical structure of software in an MFP. [Figure 5] Fig. 5(A) is a diagram showing the hardware configuration of a client terminal, and Fig. 5(B) is a diagram showing the software configuration of a description editor executed by the client terminal. [Figure 6] FIG. 1 is a diagram showing the hierarchical structure of software related 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. 1 illustrates the sequence between software modules of a description editor. [Figure 9] FIG. 1 is a diagram showing a usage flow of an authoring system. [Figure 10] FIG. 10 illustrates a data structure of a custom application. [Figure 11] FIG. 1 is a diagram showing a description. [Figure 12] FIG. 1 illustrates the structure of a playback application. [Figure 13] FIG. 10 illustrates customizable information. [Figure 14] FIG. 2 is a diagram illustrating the software module configuration of an application framework emulator control unit of the description editor. [Figure 15] FIG. 10 is a diagram showing a processing sequence within an application framework emulator. [Figure 16] FIG. 10 is a diagram illustrating a flow of a character string drawing process of an application framework emulator. [Figure 17] FIG. 10 is a diagram showing customizable information including model-dependent information. [Figure 18]FIG. 10 is a diagram showing a flow of a setting parameter display process of the description editor. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, the embodiments of the present invention will be described in detail with reference to the accompanying drawings. Note that the scope of the present invention is not limited to the configurations described in the embodiments. Modifications such as replacing part of the configuration or part of the processing with equivalents or omitting them may be made within the scope of obtaining similar effects.
[0011] (Example) <Authoring System> FIG. 1 is a diagram illustrating 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 enables applications to be customized by relevant parties such as service personnel and sales representatives. This makes it possible to quickly provide custom applications that meet customer requests. In addition, it is possible to appropriately manage the increasing number of custom applications as the number of types increases with each customer request.
[0012] 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 through login by a user authentication mechanism. That is, when administrators and users start using the authoring system 0101, they go through 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. Note that the authoring system 0101 may also have its own user authentication function.
[0013] The authoring system 0101 is equipped with a tenant issuing site 0106, which allows multiple tenants to be created depending on the purpose. Figure 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 via a web browser on the client terminal 0240. Tenants may also be issued to system integrators rather than group sales companies.
[0014] When a tenant is issued, one or more administrators are assigned to manage it. 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.
[0015] A tenant administrator can access the tenant he manages from a client terminal 0240 via a web browser and create multiple user accounts for that tenant. Figure 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). Each account is assigned a description pool in which descriptions are stored. A description is a file (description file) that describes the behavior (operational procedure) of a custom application, and can be created using the authoring system 0101. Details of the configuration and descriptions of custom applications will be described later.
[0016] FIG. 1 shows that a description pool is assigned to each of the accounts, from Technical Sales A1 (0110), Technical Sales A2 (0111), to Technical Sales An (0112). Each account is assigned a description pool A1 (0113), description pool A2 (0114), to description pool An (0115) (n is a natural number). Although not shown in FIG. 1, Tenant B administrator and Tenant C administrator can also create user accounts for each tenant as appropriate. Furthermore, by placing a shared description pool within a tenant, the tenant administrator can allow one description to be shared among multiple accounts within the tenant. FIG. 1 shows an example in which a shared description pool A (0116) is placed within Tenant A (0107), allowing descriptions to be shared within Tenant A (0107). As a similar configuration for sharing descriptions within a tenant, a shared description pool B (0117) is placed in tenant B (0108), and a shared description pool C (0118) is placed in tenant C (0109).
[0017] In this embodiment, it is assumed that the shared description pool is set to allow all accounts in the tenant to read and write. The setting of the shared description pool may be changed so that writing and reading are restricted depending on the account. The authoring system 0101 may also have a shared description pool that is accessible to all tenant accounts. Restrictions may also be set for this shared description pool depending on the account.
[0018] <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.
[0019] 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 obtains the WEB tool from the authoring system 0101 via the network.
[0020] 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 using FIG. 14.
[0021] 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.
[0022] The authoring system 0101, which has received the install code issuance request in S914, assigns signature information to the description 0219 by using the signature key information 0218 in the description signature assignment 0211, which will be described later. Note that the signature key information 0218 is different from the key information used to sign the playback application, which will be described later. The key information used to sign the playback application is managed in the development environment of the system developer 0201.
[0023] 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.
[0024] 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 means of communication such as telephone or email.
[0025] In step S910, the customer 0230 inputs the installation code into the MFP 0203, and the MFP 0203 transmits the installation code to the authoring system 0101.
[0026] 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.
[0027] In step S912, the MFP 0203 that has received the custom application installs the custom application. When the installation is completed successfully, the application is executed in step S913, and the functions provided by the application become available to the customer 0230.
[0028] <Authoring system software configuration> Next, we will explain the software configuration of the authoring system 0101. Figure 2(A) shows the software configuration of the authoring system.
[0029] 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.
[0030] 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 .
[0031] 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 the web browser that the user uses to access the authoring system 0101 (on the web browser).
[0032] The description editor 0207 is a program (editing program) that runs on a web browser when users of each tenant create and edit descriptions. Descriptions created with the description editor 0207 can be saved in a description pool linked to the user account. Figure 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. It also shows how 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 mentioned above, the description pool A1 (0113) is linked to the user account, technical sales A1 (0110), created in tenant A (0107).
[0033] 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. The framework emulator 0208 is configured to run on a web browser. The framework emulator 0208 emulates the operation of the application framework on the device and visualizes the behavior of the custom application that includes the created description by outputting it as screen information.
[0034] The installation code issuing screen 0209 is a program that displays, on the web browser used by the user, an installation code that is used when installing a custom application on a device.
[0035] 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.
[0036] 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 .
[0037] 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.
[0038] 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 for a custom application that includes the created description is generated. The description signature assignment 0211 includes signing key information 0218 used for signing. 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.
[0039] The custom application packaging 0212 is a program that creates an installation package for a custom application. The installation package combines the signed description generated by the description signature assignment 0211 and a specific playback application (described later). By creating an installation package, it becomes possible to install the custom application on any device. The structure of the package data of the installation package will be described in detail later.
[0040] The custom application distribution system 0213 is a system program that distributes to a device one or more custom application installation packages that are pre-linked to the 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 the custom application installation package archive linked to the installation code to the device. Figure 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 custom application installation packages are sequentially transmitted to the MFP 0203.
[0041] The installation code issuance system 0214 is a program that operates in cooperation with the installation code issuance screen 0209 and issues installation codes for one or more custom applications selected by the user. The installation code issuance system 0214 also internally stores a table that shows the relationship between the one or more selected custom applications (i.e., the installation package archives of the custom applications) and the issued installation codes. Details will be described later.
[0042] Here, the installation package archive for 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 an 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. The installation package archive is then stored in the installation code issuing system 0214 together with a table indicating its relationship with the issued installation code.
[0043] The playback application resource 0206 accommodates signed applications, which are applications for playing back created descriptions and are packages to which a signature has been added in advance. The playback application resource 0206 does not necessarily manage a single playback application. For example, multiple 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), and verN (0217), each of which has a pre-signed signature, are accommodated. Each playback application is assigned a corresponding signature, "Signature 1," "Signature 2," and "Signature N." Each playback application is developed by the system developer 0201. The signature of the playback application is assigned in advance in the system developer 0201's development environment, where key information used for the signature is strictly managed. The pre-signed playback applications are then uploaded to the playback application resource 0206 by the system developer 0201 as appropriate. In addition, each playback application accommodated in the playback application resource 0206 includes customizable information. The user selects the version of the playback application when starting to create a description in the description editor 0207. The description editor 0207 then 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 store information such as menu items required for customization.
[0044] <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 built on the cloud, and is configured to distribute the load across multiple devices. For simplicity of explanation, this embodiment will describe a case where processing is performed by a single server device 0220. Fig. 2(B) is a diagram showing the hardware configuration of a server device used in the authoring system.
[0045] 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, RAM 253, HDD 255, ROM 256, and network I / F 257 are connected via a system bus 259.
[0046] 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 system boot program. The network I / F 257 is connected to a LAN and controls the 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.
[0047] The account information of the administrator and users described above, as well as information about each tenant, such as Tenant A (0107) shown in FIG. 2A, are all stored and managed on the HDD 255. The front-end resource 0204, back-end program 0205, and playback application resource 0206 shown in FIG. 2A are also stored on the HDD 255. In addition, although not shown, programs for implementing the user authentication mechanism for the administrator and users described in the explanation of FIG. 1 are also stored on the HDD 255. The program for implementing the user authentication mechanism is automatically loaded into the RAM 253 when the server device 0220 is started and 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. The user authentication program then displays a login screen on the web browser of a 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 is also stored on the HDD 255. For example, when a user (technical sales A1) 0202 logs in to 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 description editor 0207 program 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 issuance screen 0209.
[0048] The description editor 0207 and other programs contained in the back-end program 0205 are also stored on the HDD 255. As described above, the back-end program 0205 is run in cooperation with each program in the front-end resource 0204. When requested to run, each module, including the description number management 0210 contained in the back-end program 0205, is loaded from the HDD 255 onto the RAM 253 and executed by the CPU 252.
[0049] <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. Figure 3(A) is a diagram showing the hardware configuration of the MFP. Figure 3(B) is a diagram showing the software configuration of the MFP.
[0050] 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 controls the printer 395 to print out image data read by the scanner 370. The scanner 370 is an image reading unit that reads an image from an original. The printer 395 is an image forming unit that forms an image on a sheet (paper). The operation unit 312 is a reception unit that receives instructions from a user and a display unit that displays information to the user.
[0051] The controller unit 300 includes a CPU 301 , which starts up an operating system (OS) using a boot program stored in a ROM 303 .
[0052] The CPU 301 runs programs stored in the storage 304 on this OS, thereby performing various processes. The RAM 302 is used as the work area for the CPU 301. The RAM 302 provides the work area as well as an image memory area for temporarily storing image data. The storage 304 stores the programs and image data.
[0053] The CPU 301 is communicably connected to each component via a system bus 307. The components are ROM 303, RAM 302, an operation unit I / F (operation unit interface) 306, a network I / F (network interface) 310, a USB host I / F 313, and an image bus I / F (image bus interface) 305. 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 via 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 for communicating 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 data formats. The image bus 308 is configured using a PCI bus, IEEE 3394, or the like. 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 so on for print output image data according to the printer 395.
[0054] The CPU 301 loads a program stored in the storage 304 into the RAM 302 and executes the program, thereby realizing each module in Fig. 3. Fig. 3B is a diagram showing the software configuration of the MFP.
[0055] 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.
[0056] The servlet service 354 receives a request when it is accessed via HTTP via the network I / F 310. The servlet service 354 is a module that distributes processing to a module (application management unit 352 or standard function control unit 351) depending on the accessed URL.
[0057] 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 appropriate module (the application management unit 352 or the standard function control unit 351) of the operation information. The application management unit 352 is a module that manages the installation and launch of the installed extension application 440.
[0058] The application execution control unit 355 is a module that controls the execution of an application started by the application management unit 352. Specifically, it controls the VM thread 415, the VM system service 420, the VM 430, and the extended application 440.
[0059] The storage control unit 356 is a module that records and manages the programs of the extension application 440 and setting information.
[0060] The application execution control unit 355 accesses the storage control unit 356 to read out the application program. Each module also accesses the storage control unit 356 to refer to and set setting values.
[0061] 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 required 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, etc. as jobs, and requests the job execution history control unit 357 to record the execution results of the jobs. The job execution history control unit 357 requests the storage control unit 356 to record the history in order to leave the execution results of the jobs in storage as history.
[0062] The timer management unit 359 acquires 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 for the application.
[0063] The relationship between the OS, VM, and applications will now be described in detail. Figure 4 shows the software layer structure of the MFP.
[0064] A native program 410 for controlling an image processing unit such as a printer, fax machine, or scanner runs on the OS 401, which is an operating system. A virtual machine (VM) 430, which is an execution environment for an extended application 440, also 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 running on the VM 430 runs using instructions specific to the VM 430, unlike instructions running on the CPU 301. These instructions are called bytecodes. Meanwhile, instructions specific to the CPU are called native codes. The VM sequentially interprets and processes these bytecodes, allowing the native codes and VM bytecodes to run on the CPU 301. There are two types of VMs: one that sequentially interprets and processes bytecodes as they are, and one that converts bytecodes into native codes and executes them. The VM 430 in this embodiment is the former type, but it may also be the latter type. Generally, different types of CPUs have incompatible instructions, and different VMs have incompatible instructions. In this embodiment, it is assumed that the extended application is written in the Lua language, but other languages are also acceptable. The Lua language converts scripts written in the Lua language into bytecodes specific to the Lua language and executes them on a VM 430 specific to the Lua language. Of course, the Lua bytecodes are different from the instruction codes directly executable by the CPU 301, and therefore the Lua bytecodes cannot be directly executed by the CPU 301. The Lua VM 430 is configured with instruction codes of the CPU 301 as a software module that sequentially interprets and executes the Lua bytecodes. Of course, it may also be configured as dedicated hardware for interpreting and executing the Lua bytecodes.
[0065] The native program 410 contains a native thread 414 for controlling image processing units such as a printer, fax machine, and 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: VM thread A-1 (411), VM thread A-2 (412), and VM thread B-1 (413).
[0066] The VM system service 420 is a utility library shared by each extended application 440. By calling the functions of the VM system service 420 from the extended application 440, the development speed of the extended application 440 can be accelerated. The VM system service 420 can also access each module of the MFP 0203. The VM system service 420 includes a standard VM system service 421 that performs the minimum operation as a VM, and an extended VM system service 422 that accesses each module of the MFP 0203 and provides OS functions. The standard VM system service 421 also includes a function for loading the extended application 440. When the VM 430 executes an API specified by the bytecode in the extended application 440, the VM system service 420 associated with the API is called. The extended VM system service 422 includes a drawing API for performing arbitrary drawing on the screen of the operation unit 312 and a job control API for requesting the execution of arbitrary jobs such as copying and scanning on the MFP 0203.
[0067] The VM 430 executes the extended application 440. A VM 430 is generated for each thread of the extended application 440. In this diagram, VM A-1 (431) and VM A-2 (432) are generated to run two threads in the extended application A 441. Also, in this diagram, VM B-1 is generated to run one thread in the extended application B (442).
[0068] Additionally, the main menu screen displayed on the operation unit 312 of the MFP 0203 displays an icon for each extended application 440. When the operation unit I / F 306 detects via the operation unit 312 that the user has selected one of these icons, the operation unit I / F 306 transmits a notification to the CPU 301. Upon receiving the notification, the CPU 301 starts up the extended application 440 selected by the user.
[0069] In the following description, this mechanism (VM system service 420, VM 430) that runs the extension application 440 on the MFP 0203 will be referred to as an application framework.
[0070] <Client terminal> As a representative of the general client terminals appearing in this system, the client terminal 0240 used by the user 0202 will be described. Note that the configuration described here may also be applied to client terminals used by the system administrator 0102, tenant A administrator 0103, tenant B administrator 0104, tenant C administrator 0105, system developer 0201, etc. Fig. 5(A) is a diagram showing the hardware configuration of a client terminal.
[0071] The client terminal 0240 is an external terminal (information processing 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 with the hardware. The controller unit 500 loads a program, such as an OS or a web browser, stored in a ROM 506 or a HDD 505 into a RAM 503. The loaded program is sequentially processed 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. The user operation is processed in this way, 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.
[0072] 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.
[0073] Next, a case will be described in which the client terminal 0240 executes the description editor on a Web browser. Fig. 6 is a block diagram of a Web browser displaying the description editor.
[0074] 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.
[0075] 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 applications.
[0076] 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 other than 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 written in JavaScript that emulate the operations of the VM 430 and VM system service 420 in FIG. 2 on JavaScript.
[0077] The playback application 608 is an application (playback program) that operates based on a description customized by the user. The playback application 608 has the same configuration as an application that runs on the application framework of the MFP 0203. 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 queries from the VM system service. The playback application 608 also includes a customizable information definition 611 and a description playback control 609 that plays back a given description.
[0078] The 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 (gives an editing instruction) the editing content on an editing screen provided by the description editor 604, the description editor 604 generates the description 612. The description editor 604 plays back the generated description 612 in a playback application 608 running on an application framework emulator 605. This provides the user with a screen on a web browser for checking the operation of the customized application.
[0079] 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.
[0080] Furthermore, the playback application executed by the description editor 604 does not have to be completely identical to the playback application executed by the MFP 0203. For example, it may be configured to load an operation checking application that extracts only the description playback control portion that is directly related to customizing the playback application.
[0081] 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.
[0082] 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. It includes 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.
[0083] The overall control unit 551 is configured to control the entire description editor. The overall control unit 551 operates in cooperation with each block to control the description editor 604. The screen configuration unit 552 is configured to control the screen configuration of the description editor 604. The screen configuration unit 552 updates the HTML elements and CSS (screen information) that configure the screen shown in FIG. 7. It also accepts user operations 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, if the display area 701 of the application screen image is clicked, information indicating that a specific location on the application execution screen has been clicked is notified to the framework emulator control unit 556. The framework emulator control unit 556 is configured to execute a playback application on the Web that plays back customized descriptions. Because the playback application is configured to run on an application framework within the MFP 0203, it cannot be executed directly on a web browser. This framework emulator performs emulation to run applications for the MFP 0203 on the web. This framework emulator control unit 556 receives screen operation notifications from the overall control unit 551 and notifies the application running in the emulator. The application that receives the operation information updates the screen in response to the operation. This screen update is achieved by a screen drawing API within the application framework. This API is replaced by an image rendering API within the web browser by the framework emulator, and the application display screen is displayed in the application screen image display area 701 in Figure 7. The customized component information editing unit 554 is configured to obtain customizable component information from the playback application, convert that information into a format usable by the description editor 604, and store the converted information.Based on this component information, the screen configuration unit 552 configures a component list 702 and a display area 706 for customization setting information. The customized component information management unit 553 manages the setting information of currently set customized components. Based on this information, the screen configuration unit 552 configures the display area 706 for customization setting information. The description generation unit 555 generates a description based on the current setting information held in the customized component information editing unit 554. This description is notified to the playback application via the framework emulator control unit 556. The playback application then plays the description, and the display area 701 for the application screen image in FIG. 6 is updated. The server communication unit 557 controls communication with the server. Communication with the server includes communication for saving the component setting information held in the customized component information editing unit 554 to the server and downloading the playback application to be executed by the framework emulator control unit 556. This allows for an editing function tailored to the playback application to be provided without modifying the description editor 604, even if the customizable information of the playback application is increased or decreased, or if its operation is changed.
[0084] <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 description editor screen. When a user accesses the authoring system 0101 using 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 the server, and the web browser interprets them and displays the results of rendering the screen. In this embodiment, an example will be described in which a custom application that makes it easier to select the Copy execution button is created in response to a customer request. Multiple items (objects) are arranged on the screen 700, providing the user with an application editing environment. The main components of the screen 700 will be described below.
[0085] The display area 701 is an image display area for displaying an execution image of an application (an application being modified) that reflects the content customized by the user. In this embodiment, an example in which this area is configured using the HTML canvas element will be described, but this area may also be configured using other HTML elements that can be rendered. With this configuration, the user can perform customization while checking the display area 701 to see if the desired customization has been performed.
[0086] 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. Editable parts include, for example, buttons that can be linked to functions, title information, message information, etc.
[0087] The results of adding a part are immediately reflected in the display area 701, so the user can easily check the customization status.
[0088] The display area 706 is a customization setting information display area that displays the currently set components and the information set for those components. FIG. 7(A) shows how a title component 703, a message component 704, and a button component 705 are set. The user can customize components by editing the information of the components displayed in the display area 706. For example, suppose the user edits the character string "Custom Application" displayed in the title component 703 to "Test Application." This edit is then reflected in the display area 701, and the part that reads "Custom Application" is updated to "Test Application." It is also possible to change the size and layout of a component by editing its parameters.
[0089] Next, the execution flow of the description editor will be described. Figure 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 or the like, loads it into the RAM 503, and executes the description editor 604 via the JavaScript VM 603, thereby realizing each process.
[0090] 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 the editing screen as shown in FIG. 7A. At this time, the parts list 702 and the customization setting information display area 706 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 customizable part information from the framework emulator control unit 556 (S804). Upon receiving this request, the framework emulator control unit 556 requests customizable component information from the playback application and returns the acquired customizable component information to the overall control unit 551 (S805). The overall control unit 551 notifies the customized component information management unit 553 of the acquired customizable component information (S806). The customized component information management unit 553 converts the notified information into a data format suitable for use by the description editor. Next, the overall control unit 551 requests the screen configuration unit 552 to update the screen (S808). Since the customizable component information has been determined, the information is reflected in the component list 702 and the customization setting information display area 706, enabling customization by the user. Next, the user adds a component from the component 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 component 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 using a playback application, thereby updating the display area 701 of the application screen image. Finally, the overall control unit 551 requests the server communication unit 557 to save the edited customized component setting information (S815). In response, the server communication unit 557 requests the server to save the customized component setting information. This saves the customization information for the application set by the user in the server. The next time the user customizes the application, this information is loaded, allowing customization to be performed from a state reflecting the information edited by the user.
[0091] Next, component information and descriptions will be described. FIG. 13 shows an example of a definition 611 of customizable component information acquired in steps S804 and S805 of FIG. 8. This information is held in the playback application 608, and its contents may differ depending on the version of the playback application 608. The description editor 604 can update the version of the playback application 608 by accessing the playback application resource 0206. If the versions of the playback application 608 and the description 612 are different (incompatible), this can cause an error. However, in this embodiment, the definition 611, which is the basis of the description 612, is acquired from the playback application 608. This makes it possible to prevent the occurrence of a situation in which the versions of the playback application 608 and the description 612 are incompatible.
[0092] When customizing an application, the description editor 604 queries the playback application 608 and acquires this definition information. In this embodiment, the definition 611 is expressed in JSON format, which is highly compatible with web browsers, but other formats may also be used. Examples of customizable component information include GUI component information 1301 and job component information 1302.
[0093] The GUI component information 1301 indicates information about GUI components that can be customized by the playback application. The GUI component information 1301 includes information group 1303 and information group 1304.
[0094] The information group 1303 is a group of information relating to GUI components of the title, and includes a component ID 1305, localize 1306, attrib 1307, localize 1309, and data_type 1310. The GUI component information includes a component ID 1305 for identifying the component, localize 1306 indicating the component name, and attrib 1307 indicating the component setting information. The component ID 1305 is a component identifier, and a unique character string is assigned to every component. This character string is used in the description editor 604 and the playback application, and is not displayed on the GUI. The component name localize 1306 is information displayed in the component list 702 in FIG. 7A. The component name information localize 1306 holds the component name for each language, and is displayed according to the language setting of the Web browser. The component setting information attrib 1307 includes information on the items to be set for that component. Since the information group 1303 is an information group about the GUI component of the title, attrib 1307 has setting information of the title name as item information. The setting information of the title includes a setting ID 1308 that identifies the setting information, localize 1309 that indicates the name of the setting information, and data_type 1310 that indicates the setting value type of the setting information. The setting ID 1308 is an identifier of the setting, and is assigned a unique character string within the information group 1303. Note that the same character string may be used in different information groups, for example, in the information group 1304.
[0095] The character string of the setting ID 1308 is used in the description editor 604 and the playback application 608, and is information that is not displayed on the GUI. The setting name localize 1306 is information that is displayed in the title component 703 of the setting information of each component in the display area 706 of the customization setting information. The component name information localize 1309 holds the setting name for each language and is information that is displayed according to the language setting of the Web browser. The setting value type data_type 1310 indicates the data type that can be set for this setting value. In this case, "string" is set. This "string" indicates that any character string can be set. This data_type includes "position" 1311 that indicates the display position information of the GUI component. This data_type includes "change_panel" 1312 that moves to another panel when a button is pressed. This data_type includes "int_100" 1315 for inputting the number of copies for a copy job and "select" 1316 for selecting data from predetermined items. This setting value type data_type 1310 is information that determines in advance what types are supported between the description editor 604 and the playback application 608. Some components may have multiple pieces of setting information. For example, information group 1303 has one piece of setting information, while information group 1304 has three pieces of setting information.
[0096] Job part information 1302 has the same information structure as GUI part information 1301. In this example, it holds information indicating the number of copies and color mode setting values for a copy job. It has a job identification ID 1313 that identifies the job. "attrib" 1314 indicates customizable parameter information for that job. In this example, the number of copies and color mode are customizable parameters. "data_range" 1317 is information that indicates settable color mode candidates. The candidate information has a candidate ID 1318 and localize 1319 that indicates the candidate name.
[0097] Based on the information described above, the screen configuration unit 552 determines how the user should set customizable information, and creates a setting screen suitable for that purpose.
[0098] Next, the structure of a description generated by the description editor 604 that creates a screen based on the definition 611 in FIG. 13 will be described. FIG. 11 is a diagram showing a 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 content of the description is written in a JSON format (JSON format) that is highly compatible with web browsers. Other formats may also be used as the description format.
[0099] The description is broadly composed of panel information 1101 and 1102. Panel information 1101 stores component information and customization information for each component. Component information includes title component information 1103, message component information 1109, OK button component information 1110, and cancel button component information 1111. Customization information for each component includes component ID information 1104, component setting information 1105, component parameter information 1106, component parameter data type 1107, and component parameter data 1108. Component ID information 1104 is identification information that indicates which component the customization information pertains to. In this example, it indicates that the customization information is for the "title" component. Component setting information 1105 indicates the setting information for that component. Component parameter information 1106 indicates customization information for the component parameters. Component parameter data type 1107 indicates the data type of the component parameter. Component parameter data 1108 indicates the setting value of that component parameter. If data_type is "string", localized string information is specified.
[0100] Therefore, it can be seen that the "title" component has a "title" parameter in the title component information 1103, and the setting value of that parameter is set to the localized character string "Custom Application." Similar customization information is set for message component information 1109, OK button component information 1110, and cancel button component information 1111.
[0101] Panel information 1102 stores information for executing a job. Job execution component information 1112 specifies "execute_job" as the component for executing the job. Information about this job execution component information 1112 includes a job ID 1114 indicating what job is to be executed, and job parameters 1115 for that job as parameter setting values. Since this example is an application that executes copies, "copy" is specified as the job ID 1114. Parameters for executing the job can be registered in the job parameters 1115. Here, number of copies information 1116 and color 1117 are registered.
[0102] The description given as an example in the above explanation is read by, for example, the description playback control 609 of the playback application 608. Then, the playback application creates a screen according to the description and controls screen transitions and job execution in response to user operations.
[0103] <Framework emulator> Next, the framework emulator control unit 556 will be described in detail. Fig. 14 is a diagram showing the software block configuration of the framework emulator control unit 556. The framework emulator control unit 556 is an emulation program for checking the operation of applications for the MFP0203 on the Web. The framework emulator control unit 556 realizes the above-mentioned functions by reproducing the VM system service 420 and VM 430 shown in Fig. 2 on the Web browser.
[0104] The VM system service emulator unit 1401 is configured to replace the VM system service 420, and controls the linking of applications for the MFP 0203 with the web browser environment. The VM system service emulator unit 1401 includes a drawing API emulator unit 1402, a job control API emulator unit 1403, a description control unit 1404, a user operation control unit 1405, and a customizable part information control unit 1406.
[0105] The drawing API emulator unit 1402 is configured to replace the API used by the application for screen drawing with an image rendering API in the Web browser. The job control API emulator unit 1403 is configured to execute emulation of job control of an imaging device, such as copying or scanning. Note that the job control API emulator unit 1403 only executes emulation of API behavior and does not actually execute jobs. The description control unit 1404 is configured to receive a description generated by the description generation unit 555 and notify the application. The application receives this notification and plays the description. The user operation control unit 1405 is configured to receive screen operation information notification from the overall control unit 551 and notify the application. The customizable component information control unit 1406 is configured to notify the overall control unit 551 of customizable component information notified by the application. The VM emulator unit 1407 is configured to interpret and execute the application.
[0106] Next, based on the above-mentioned configuration, detailed processing related to the framework emulator control unit 556 will be described. Fig. 15 is a sequence diagram showing processing within the emulator control unit in processing between the overall control unit 551 and the emulator control unit 556 in Fig. 8. Each processing is realized by the controller unit 500. In detail, each processing is realized by the CPU 502 acquiring the program of the web browser 601 from the ROM 506 or the like and loading it into the RAM 503, and executing the description editor 604 via the JavaScript VM 603.
[0107] When a customizable part information request comes from the overall control unit 551, the customizable part information control unit 1406 receives it (S1501). This process corresponds to S804 in FIG.
[0108] The customizable part information control unit 1406 requests customizable part information (customizable information definition 611) from the application running in the VM emulator unit 1407 (S1502). Upon receiving this acquisition request, the running application responds with the customizable part information definition 611 (S1503).
[0109] The customizable part information control unit 1406 notifies the overall control unit 551 of the customizable part information definition 611 acquired from the application.
[0110] Thereafter, when a description notification is transmitted from the overall control unit 551, the description control unit 1404 receives it. This process corresponds to S814 in Fig. 8. The description control unit 1404 notifies the application running in the VM emulator unit 1407 of the description (S1506).
[0111] The running application that receives this notification reads the description and executes the screen drawing API to display the screen set in the description. This API is executed by the drawing API emulator unit 1402 and is replaced by the drawing API in the web browser.
[0112] Thereafter, when an operation information notification is transmitted from overall control unit 551, user operation control unit 1405 receives it (S1508). This process corresponds to S809 in FIG.
[0113] The user operation control unit 1405 notifies the application running in the VM emulator unit 1407 of the operation information (S1509). The running application that receives this notification executes processing according to the user operation. If the accepted user operation is an operation that requires a screen update (for example, a screen transition instruction), a screen drawing notification is sent to the drawing API emulator unit 1402, and the screen drawing API is executed (S1510). If the accepted user operation is an operation to submit a job, a job submission notification is sent to the job control API emulator unit 1403, and the job submission API is executed (S1511).
[0114] As explained above, various processes are possible between the description editor 604 and the application through the processing of the overall control unit 551 and the emulator control unit 556. These processes include obtaining customizable information, notifying the changed description, playing the changed description, and checking the operation of the application during playback.
[0115] <Drawing API> As described above, the description editor 604 executes an application on a Web browser and displays the execution content in the display area 701, thereby providing a user who is editing the application with an environment for checking its operation. The display area 701 is drawn by the drawing API emulator unit 1402. The character string drawing API is a program that serves to render a specified character string with specified attributes (color, size, etc.). The drawing API emulator unit 1402 executes emulation of the application screen drawing on the Web browser. Therefore, the reproduction accuracy of the application screen in the display area 701 depends on the processing method of the drawing API emulator unit 1402.
[0116] The drawing API emulator unit 1402 can perform processing in the following three ways.
[0117] The first method is to draw using a font and a rendering method provided by the browser. In this method, the drawing API emulator unit 1402 uses a character string drawing API provided by JavaScript. This method has the advantage of shortening the time required for drawing, since the character string drawing API provided by JavaScript can be executed as is. However, it has the disadvantage of causing a situation in which the appearance of the screen displayed by the description editor 604 differs from the appearance of the screen displayed by the MFP 0203. This is because the font data and rendering method used for rendering differ from those used by the MFP 0203. Furthermore, because the font data and rendering method can change depending on the web browser used, this method is environment-dependent.
[0118] The second method is to draw the fonts used by the MFP0203 using the same rendering method as the MFP0203. This method has the advantage of being able to produce text rendering results that are close to those of the MFP0203. However, it has the disadvantage of taking longer to draw because the rendering method used by the MFP0203 must be emulated in JavaScript.
[0119] The third method is to use the browser's rendering method to render the fonts used by the MFP0203. This method has characteristics between the first and second methods.
[0120] In this embodiment, taking into account the characteristics of each method described above, three modes are provided for character string rendering processing, allowing the user to switch between them. That is, a first mode is provided in which rendering is performed using a font provided by the browser and a rendering method provided by the browser. A second mode is provided in which fonts used by the MFP0203 are rendered using a rendering method provided by the browser. A third mode is provided in which fonts used by the MFP0203 are rendered using the same rendering method as the MFP0203.
[0121] With this configuration, during normal operation of the description editor 604, a simple check can be performed using the first mode, which requires less effort. Furthermore, when performing a final check of the operation, an accurate check can be performed using the third mode, such as checking whether or not any character strings are overflowing. In other words, according to this embodiment, it is possible to select the optimal drawing method depending on the situation.
[0122] To achieve the above, the character string drawing process performs the processing of the flowchart shown in Fig. 16. Fig. 16 is a diagram showing the flow of the character string drawing process of the application framework emulator. Note that each process in Fig. 16 is realized by the controller unit 500. In detail, the CPU 502 obtains a program for the web browser 601 from the ROM 506 or the like, loads it into the RAM 503, and executes the description editor 604 via the JavaScript VM 603, thereby realizing each process.
[0123] In S1601, the drawing API emulator unit 1402 checks the current character string drawing mode. If the current character string drawing mode is the first mode, the drawing API emulator unit 1402 proceeds to S1602. If the current character string drawing mode is the second mode, the drawing API emulator unit 1402 proceeds to S1603. If the current character string drawing mode is the third mode, the drawing API emulator unit 1402 proceeds to S1604. In S1602, the drawing API emulator unit 1402 draws the screen using the font and rendering method provided by the browser. In S1603, the drawing API emulator unit 1402 draws the font used by the MFP 0203 using the rendering method provided by the browser. In S1604, the drawing API emulator unit 1402 draws the font used by the MFP 0203 using the same rendering method as the MFP 0203.
[0124] Although not shown, by placing a dedicated button or switch on the screen 700, the character string drawing mode can be changed at any time.
[0125] <Custom Application> The custom application mentioned in S912 of FIG. 9 will now 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). Once the custom application is installed, a playback application is executed on 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 on the MFP. This execution screen 750 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 now be described in detail.
[0126] The following describes the structure of an installation package that the authoring system 0101 provides to the MFP 0203. Figure 10 shows the data structure of an installation package.
[0127] The installation package 1000 is package data that includes a signed description 1052 and a signed application 1001 .
[0128] The signed application 1001 includes 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.
[0129] On the other hand, the signed description 1052 is made up 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. Details of the description 1053 have been described using 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 that guarantees the integrity of the description 1053 and the description meta information 1054. This description signature 1055 is generated using a signature key that is different from 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.
[0130] The detailed process of installing the above-described installation package 1000 on the MFP 0203 will be described below. FIG. 12 shows an application structure held in the storage of the MFP after a custom application has been installed on the MFP, and the corresponding installation package. The left side of FIG. 12 shows the installation package 1000, and the right side shows the installed application 1200. The configuration of the installation package 1000 is as described above. In contrast, the installed application 1200 is made up of a script 1201, resources 1202, a description 1203, meta information 1204, and second meta information 1205. In the application installation process executed by the MFP 0203, each piece of data in the installation package 1000 is read and reconstructed on the storage of the MFP 0203. Specifically, the script 1004 in the installation package is arranged as the script 1201. The resource 1005 in the installation package is arranged as the resource 1202 after installation. Also, the description 1053 in the installation package is arranged as the description 1203 after installation.
[0131] Additionally, meta information 1204 is stored as information (identifier) for uniquely identifying the installed application. That is, the meta information 1204 is information used to distinguish the installed application from other applications installed on the MFP 0203. Alternatively, the meta information 1204 is information used to identify the application to be upgraded when an application is upgraded.
[0132] <Notes> As explained above, the authoring system 0101 provides an environment in which applications can be easily edited and distributed, allowing personnel such as service personnel and technical sales personnel to create custom applications, thereby enabling applications desired by customers to be provided promptly.
[0133] Furthermore, in this embodiment, the definition 611 is obtained from the playback application 608 and used in the description editor 604. This makes it possible to prevent the occurrence of a situation in which the version of the description 612 based on the definition 611 does not correspond to the version of the playback application that plays back the description 612.
[0134] Furthermore, in this embodiment, the mode of the drawing API emulator unit 1402 can be changed in the description editor 604. This allows the description editor 604 to be used in the most suitable drawing method depending on the situation.
[0135] (Variation) In the above embodiment, an example has been described in which a definition relating to a copy function is used as an example of the customizable information definition 611. In the modified example, an example will be described in which a definition relating to ScanToUSB (a job for scanning an original image and storing the data in a USB) is used as an example of the customizable information definition 611.
[0136] FIG. 17 shows an example of a definition 611 indicating customizable information for ScanToUSB (a job that scans an original image and stores the data on a USB). Information 1701 and information 1702 define supported original size information. Noteworthy here are information 1703 and information 1704. MFPs come in compact types that can be placed on a desk, and larger types that are placed in office OA corners. Larger types can scan originals up to A3 size, while compact types may not be able to scan A3 or similar documents. If the supported range of values differs depending on the MFP 0203 running the application, the user may set parameters incorrectly. To avoid this, the description editor 604 is notified that the parameter depends on the execution environment. This is achieved by the environment-dependent information in information 1703 and information 1704. Information 1703 indicates that the A3 original size is environment-dependent, while information 1704 indicates that the A4 original size is not environment-dependent. Note that a parameter that does not have this environment-dependent information itself indicates that it is not environment-dependent.
[0137] Such environment-dependent information is used as follows. Figure 18 is a diagram showing the processing flow when the screen configuration unit 552 generates a specific HTML element. This HTML element is screen information for a screen that displays parameters that can be set for customizable items. Note that each process in Figure 18 is realized by the controller unit 500. In detail, each process is realized by the CPU 502 obtaining the program of the web browser 601 from the ROM 506 or the like and loading it into the RAM 503, and then executing the description editor 604 via the JavaScript VM 603.
[0138] First, in S1801, the screen configuration unit 552 checks the environment-dependent information of the parameters included in the screen to be displayed. If there is no environment-dependent information, the screen configuration unit 552 proceeds to S1802, and if there is environment-dependent information, the screen configuration unit 552 proceeds to S1803. In S1802, since the parameter can be used without environment dependency, the screen configuration unit 552 generates an HTML element for normal display without highlighting. In S1803, the screen configuration unit 552 generates an HTML element for highlighting to inform the user that the parameter is environment-dependent.
[0139] <Notes> As described above, in the modified example, environment-dependent information is handled in definition 611. This makes it possible to provide a custom application that can operate appropriately even when various types of models with various configurations are expected as installation destinations.
[0140] (Other Examples) The present invention can also be realized by supplying a program that realizes one or more of the functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that realizes one or more functions. Furthermore, the storage described as an HDD in the embodiments may be replaced with semiconductor storage such as an SSD. The present invention can be applied to a system consisting of multiple devices, or to an apparatus consisting of a single device.
[0141] 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. The definition 611 of customizable information may also include definition information for other scan functions (such as a function for sending by email or storing in network storage), a fax function, a print function, and a device setting function. Furthermore, the user may be able to select the definition to be used in the description editor 604 from among multiple candidates.
[0142] In the above embodiment, the playback application resource 0206 manages multiple playback applications according to their versions. However, the playback application resource 0206 may manage multiple playback applications using a classification method other than the version. For example, a playback application for the print function and a playback application for the scan function may be managed separately. Then, the description editor 604 acquires a playback application for each function corresponding to the function the user wishes to customize, and extracts the definition 611. At this time, a definition for the print function is extracted from the playback application for the print function, and a definition for the scan function is extracted from the playback application for the scan function.
[0143] The abbreviations used in the examples have the following meanings: API stands for Application Programming Interface. ASIC stands for Application Specific Integrated Circuit. CPU stands for Central Processing Unit. CSS stands for Cascading Style Sheets. FAX stands for Facsimile. GUI stands for Graphical User Interface. HDD stands for Hard Disk Drive. HTML stands for Hyper Text Markup Language. HTTP stands for HyperText Transfer Protocol. IEEE stands for Institute of Electrical and Electronics Engineers. JSON stands for JavaScript Object Notation. LAN stands for Local Area Network. MFP stands for Multi Function Peripheral. OS stands for Operating System. PCI stands for Peripheral Component Interconnect. PC stands for Personal Computer. RAM stands for Random-Access Memory. ROM stands for Read Only Memory. RTC stands for Real-Time Clock. SSD stands for Solid State Drive. UI stands for User Interface. URL stands for Uniform Resource Locator. USB stands for Universal Serial Bus. VM stands for Virtual Machine. [Explanation of symbols]
[0144] 0101 Authoring system (information processing system) 0220 Server device (information processing device) 0203 MFP (Image Processing Device) 0240 Client terminal (information processing terminal) 0207 Description Editor (editing program) 608 Playback Application 611 Customizable Information Definition (Definition Information) 612 Description (description file)< / mfp>
Claims
1. An information processing system that provides a combination of a playback application for playing a description file in which an operation procedure is defined and the description file as a combined application to be executed by an image processing device, means for obtaining definition information from a playback application; means for outputting screen information based on the definition information; means for receiving an editing instruction corresponding to the screen information; means for generating a description file corresponding to the playback application based on the editing instructions; and The information processing system is characterized in that the combined application is installed on the image processing device based on package data including the playback application and the description file, and the package data includes version information of the playback application.
2. The information processing system described in Claim 1, characterized in that the acquiring means, the outputting means, the accepting means, and the generating means are provided by a program executed on a web browser of an information processing terminal.
3. An information processing system as described in claim 1 or 2, characterized in that the screen information includes information for checking the operation of the application being edited.
4. An information processing system described in any one of claims 1 to 3, characterized in that the screen information includes component information that can be added to the application being edited.
5. An information processing system described in any one of claims 1 to 4, characterized in that the screen information includes information for editing display components used in the application being edited.
6. An information processing system as described in any one of claims 1 to 5, characterized in that it has a means for playing back the generated description file using the playback application.
7. An information processing system described in any one of claims 1 to 6, characterized in that the playback application is a program based on a language other than JavaScript.
8. An information processing system as described in Claim 7, characterized in that the different language is the Lua language.
9. An information processing system described in any one of claims 1 to 8, characterized in that the description file is data described in JSON format.
10. The information processing system according to claim 3, further comprising a means for changing the drawing mode of the information for performing the operation check.
11. An information processing system described in any one of claims 1 to 10, characterized in that the definition information includes environment-dependent information.
12. An information processing system described in any one of claims 1 to 11, characterized in that the image processing device is provided with an image forming unit that forms an image on a sheet.
Citation Information
Patent Citations
Information processing method, information processor and recording medium in which information processing program is recorded
JP2002108634A
Image information processor and customization program generation method
JP2008004105A
Apparatus and system for processing information, customizing method, and program
JP2011154474A
Game machine
JP2016002470A
Server device and information processing unit and control method
JP2019012364A