Information processing system and apparatus for generating and reproducing a description file corresponding to an editing instruction application
By combining the system's description files with the regenerated applications, the compatibility issues of application installation mechanisms on information processing devices are resolved, enabling rapid customization and management of custom applications to meet customer needs.
Patent Information
- Application Number
- CN202210847075.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-07-12
- Filing Date
- 2022-07-07
- Publication Date
- 2026-11-06
- Estimated Expiration
- 2042-07-07
AI Technical Summary
In the existing technology, the application installation mechanism on information processing devices has compatibility issues caused by version mismatch, making it difficult to quickly respond to customized applications required by customers.
By using the creation system and a combination of description files and regeneration applications, custom applications can be generated, enabling rapid customization and management of information processing devices, including the configuration of control circuits, processors, and memory to acquire, output, and generate description files and applications.
It enables rapid customization and management of applications on information processing devices, adapts to changes in customer needs, and avoids compatibility issues caused by version incompatibility.
Smart Images

Figure CN115617413B_ABST
Abstract
Description
Technical Field
[0001] One aspect of the disclosed embodiments relates to a system for editing applications to be installed on an information processing device. In particular, this disclosure relates to an authoring system. Background Technology
[0002] Mechanisms for extending functionality by installing applications onto information processing devices such as MFPs are known. Japanese Patent Application Publication No. 2016-24701 discusses a technique for managing applications installed on information processing devices using application identifiers (IDs).
[0003] Different customers using information processing devices have different needs. Applications, such as those discussed in Japanese Patent Application Publication No. 2016-24701, are sometimes tailored and provided to specific customers in practice. Personnel such as service staff and sales representatives may want to customize applications and provide them to customers in order to respond quickly to their needs.
[0004] In mechanisms that combine multiple pieces of data, incompatibility between the data (such as version mismatch) can cause errors. Summary of the Invention
[0005] One aspect of the embodiments is directed to a system capable of appropriately managing custom applications based on description files and application data.
[0006] According to one aspect of this disclosure, an information processing system is configured to provide combined information in which a description file defining an operation process and a reproduction application configured to reproduce the description file are combined as a combined application to be executed by an image processing device. The information processing system includes one or more control circuits, each control circuit having a processor and a memory containing instructions that, when executed by the processor, cause the processor to function as an acquisition unit, an output unit, a receiving unit, and a generation unit. The acquisition unit is configured to acquire definition information from the reproduction application. The output unit is configured to output screen information to a display based on the definition information. The receiving unit is configured to receive editing instructions corresponding to the screen information. The generation unit is configured to generate a description file corresponding to the reproduction application based on the editing instructions.
[0007] According to another aspect of this disclosure, an information processing apparatus is configured to edit combined information, in which a description file defining an operation process and a regeneration application configured to regenerate the description file are combined as a combined application to be executed by an image processing apparatus. The information processing apparatus includes one or more control circuits, each control circuit having a processor and a memory, the memory containing instructions that, when executed by the processor, cause the processor to function as an acquisition unit, an output unit, a receiving unit, and a generation unit. The acquisition unit is configured to acquire definition information from the regeneration application. The output unit is configured to output screen information to a display based on the definition information. The receiving unit is configured to receive editing instructions corresponding to the screen information. The generation unit is configured to generate a description file corresponding to the regeneration application based on the editing instructions.
[0008] Further features of this disclosure will become clear from the following description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description
[0009] Figure 1 It is a diagram of the diagram creation system.
[0010] Figure 2A This is a diagram showing the software configuration of the graphic design system. Figure 2B This is a diagram illustrating the hardware configuration of the server device used in the authoring system.
[0011] Figure 3A This is a diagram illustrating the hardware configuration of a multi-functional peripheral device (MFP). Figure 3B This is a diagram illustrating the software configuration of MFP.
[0012] Figure 4 This is a diagram illustrating the software hierarchy of MFP.
[0013] Figure 5A This is a diagram illustrating the hardware configuration of a client terminal. Figure 5B This is a diagram illustrating the software configuration of the description editor to be executed by the client terminal.
[0014] Figure 6 This is a diagram showing the web browser that displays the description editor.
[0015] Figure 7A This is an image depicting the screen of the editor. Figure 7B This is a screenshot showing the execution screen of a custom application on MFP.
[0016] Figure 8 This is a sequence diagram illustrating the processes that will be performed between the software modules describing the editor.
[0017] Figure 9This is a diagram illustrating the usage process of the illustration creation system.
[0018] Figure 10 This is a diagram illustrating the data structure of a custom application.
[0019] Figure 11A and 11B It is a diagram describing the illustration.
[0020] Figure 12 This is a diagram illustrating the structure of a regenerative application.
[0021] Figure 13A and 13B This is a diagram illustrating information about customizable components.
[0022] Figure 14 This diagram illustrates the software module configuration of the editor's framework emulator control unit.
[0023] Figure 15 This is a sequence diagram illustrating the processes to be executed in the frame simulator control unit.
[0024] Figure 16 This is a flowchart illustrating the character stringdrawing process to be performed by the frame simulator control unit.
[0025] Figure 17 It is a diagram that illustrates customizable component information, including model dependency information.
[0026] Figure 18 This is a flowchart illustrating the setting parameter display process to be performed by the description editor. Detailed Implementation
[0027] Exemplary embodiments will now be described in detail with reference to the accompanying drawings. The scope of this disclosure is not limited to the configurations described in the exemplary embodiments. Modifications can be made by omitting or replacing parts of the configuration or processing with equivalents within the scope where similar effects can be obtained. Depending on the context and application, the system or apparatus can be implemented in various ways. For example, as an information processing apparatus, an image forming apparatus such as a printer, scanner, fax machine, copier, or a multifunction peripheral device (MFP) with the functions of these devices can be used. Alternatively, as an information processing apparatus, an electronic device such as a personal computer or mobile terminal can be used. In the following, the term "unit" can refer to a software context, a hardware context, or a combination of software and hardware contexts. In a software context, the term "unit" refers to a function, application, software module, function, routine, instruction set, or program that can be executed by a programmable processor (such as a microprocessor, central processing unit (CPU), or specially designed programmable device or controller). Memory contains instructions or programs that, when executed by the CPU, cause the CPU to perform operations corresponding to the unit or function. In a hardware context, the term "unit" refers to a hardware element, circuit, component, physical structure, system, module, or subsystem. It may include mechanical, optical, or electrical components, or any combination thereof. It may include active (e.g., transistors) or passive (e.g., capacitors) components. It may include semiconductor devices having a substrate and other material layers (having various conductivity concentrations). It may include a CPU or programmable processor capable of executing programs stored in memory to perform specified functions. It may include logic elements (e.g., AND, OR) implemented by transistor circuits or any other switching circuits. In the combination of software and hardware scenarios, the terms "unit" or "circuit" refer to any combination of software and hardware scenarios as described above.
[0028] Creation System
[0029] Figure 1 The illustration shows an authoring system 0101 according to an exemplary embodiment. The authoring system 0101 is an information processing system that provides functionality for use on a multifunction peripheral device (MFP) 0203 (see [link]). Figure 2A This is an editing environment for custom applications executed on [the platform]. In this exemplary embodiment, the authoring system 0101 enables relevant personnel, such as service personnel and sales representatives, to customize applications. This allows for the rapid provision of custom applications that meet customer needs. It also allows for the appropriate management of the increasing types of custom applications as customer needs grow.
[0030] The authoring system 0101 is built on a general cloud service and can be accessed from various devices via a network. Login for all administrators and users using the authoring system 0101 is managed through a user authentication mechanism. More specifically, each administrator and user performs a user authentication process using a user ID and password upon initiating use of the authoring system 0101. In this exemplary embodiment, functionality provided by the general cloud service is used as the user authentication mechanism, and its detailed description will be omitted. Alternatively, the authoring system 0101 may include proprietary user authentication functionality.
[0031] The creation system 0101 includes a tenant issuance site 0106, and multiple tenants can be created depending on the intended use. Figure 1 The diagram illustrates the status of at least tenants A (0107), B (0108), and C (0109). For example, by accessing the tenant publishing site 0106 from a client terminal via a web browser, system administrator 0102 can create tenants for group sales companies among various companies. Alternatively, system administrator 0102 can publish tenants to system integrators instead of group sales companies.
[0032] In the case of publishing tenants, one or more administrators are assigned to each of the tenants to manage the tenant. Figure 1 The illustration shows an example where there is at least a Tenant A Manager 0103 managing Tenant A (0107), a Tenant B Manager 0104 managing Tenant B (0108), and a Tenant C Manager 0105 managing Tenant C (0109). A Tenant Manager can set or delete another Tenant Manager.
[0033] Each tenant administrator can access the tenants they manage from a client terminal via a web browser to create multiple accounts for users using the tenant. Figure 1 The illustration shows an example where tenant A, administrator 0103, has created accounts for technical sales personnel ranging from technical sales personnel A1 (0110) and technical sales personnel A2 (0111) to technical sales personnel An (0112) (n is a natural number). A description pool for storing descriptions is allocated to each account. In this example, the description is a file (description file) that describes the behavior (operation process) of a custom application and can be created using authoring system 0101. The configuration of the custom application and the details of the description file will be described below.
[0034] Figure 1The diagram illustrates the status of description pools allocated to the corresponding accounts of technical sales personnel ranging from technical sales personnel A1 (0110) and technical sales personnel A2 (0111) to technical sales personnel An (0112). More specifically, description pools ranging from description pool A1 (0113) and description pool A2 (0114) to description pool An (0115) (n is a natural number) are allocated to the corresponding accounts. Although in Figure 1 Not shown, but Tenant B manager 0104 and Tenant C manager 0105 can create user accounts appropriately in their respective tenants, similar to Tenant A manager 0103. Furthermore, each tenant manager can allow a single description to be shared among multiple accounts within a tenant by deploying a shared description pool within the tenant. Figure 1 The illustration shows an example in which a shared description pool A (0116) is arranged in tenant A (0107) to share a description in tenant A (0107). As a similar configuration for sharing a description in a tenant, shared description pools B (0117) and C (0118) are arranged in tenant B (0108) and tenant C (0109), respectively.
[0035] In this exemplary embodiment, it is assumed that the shared description pool is configured such that all accounts in the tenant can read and write descriptions. Depending on the account, the settings of the shared description pool can be changed to restrict writing or reading. Alternatively, the authoring system 0101 may include a shared description pool accessible from accounts in all tenants. And in this case, depending on the account, the shared description pool can be configured to impose restrictions.
[0036] <System Usage Flow>
[0037] Reference Figure 9 Describe the main usage flow of the creation system 0101. Figure 9 The diagram illustrates the usage process of the creation system 0101.
[0038] In step S901, system administrator 0102 performs tenant creation processing and regeneration application registration processing on authoring system 0101. In authoring system 0101, information about regeneration applications used for custom applications, as well as information about ordinary applications, is registered. These applications are managed based on uniquely identifiable information to distinguish them from other applications. In step S902, system user 0202 accesses web tools using client terminal 0240 based on tenant information. In step S903, client terminal 0240 obtains web tools from authoring system 0101 via the network.
[0039] In steps S904 to S907, in response to an instruction from system user 0202, client terminal 0240 uses a web tool to perform description generation and description registration processing. Step S904 involves custom settings and description generation. Step S905 involves performing operation checks and simulation. Step S906 involves sending the description. In step S907, upon receiving the description, authoring system 0101 registers the description. Description 0219 registered in authoring system 0101 (see...) Figure 2A It is managed based on uniquely identifiable information to distinguish it from other descriptions. See below for reference. Figure 15 The description describes the generation process and the registration process.
[0040] In step S908, the client terminal 0240 sends an installation code release request to the authoring system 0101 for the custom application to be used with the registered description 0219.
[0041] In step S914, the authoring system 0101, having received the installation code release request, appends 0211 (see below) to the description signature. Figure 2A The signature key information 0218 (see) is used in the signature key information. Figure 2A The signature information is appended to description 0219. The signature key information 0218 differs from the key information to be used to append the signature to the regeneration application described below. See system developer 0201 (see...). Figure 2A In the development environment, the key information to be used to attach signatures to regeneration applications is managed.
[0042] In step S915, the authoring system 0101 packages the custom application 0212 as described below (see...). Figure 2A The description of the signature and the regeneration of the signature are packaged in the application.
[0043] In step S909, the authoring system 0101 installs the code publishing system 0214 (see...). Figure 2A The installation code is released in ), and the packaged custom application is registered with the custom application delivery system 0213 (see ). Figure 2A The installation code was sent from system user 0202 to customer 0230 via communication tools such as telephone or email.
[0044] In step S910, when customer 0230 enters the installation code into MFP 0203, MFP 0203 sends the installation code to authoring system 0101.
[0045] In step S911, the authoring system 0101 provides the MFP 0203 with a custom application corresponding to the received installation code via the custom application delivery system 0213.
[0046] In step S912, the custom application received by MFP 0203 is installed. Upon successful installation, in step S913, the application is executed, enabling customer 0230 to use the functions provided by the application.
[0047] <Software Configuration of the Creation System>
[0048] Next, the software configuration of the creation system 0101 will be described. Figure 2A The illustration shows the software configuration of the creation system 0101.
[0049] exist Figure 2A In the middle, the creation system 0101, tenant A (0107), technical salesperson A1 (0110) as user account, and description pool A1 (0113) and Figure 1 The same as those shown.
[0050] The creation system 0101 includes software modules such as front-end resources 0204, back-end programs 0205, and regeneration application resources 0206.
[0051] Front-end resource 0204 stores resources such as the description editor 0207, the framework simulator 0208, and the installation code release screen 0209. Each of these resources is operated on a web browser used when a user accesses the authoring system 0101, using a program written in a language such as JavaScript.
[0052] Description Editor 0207 is a program (editor) that operates on a web browser when users of each tenant create and edit descriptions. Descriptions created using Description Editor 0207 can be stored in a description pool associated with the user's account. Figure 2A The illustration shows an example of system user 0202 (technical salesperson A1) logging into authoring system 0101 and accessing front-end resource 0204. Figure 2A The illustration also shows the state in which description 0219, created by system user 0202 (technical salesperson A1) using description editor 0207 included in front-end resource 0204, is stored in description pool A1 (0113). As described above, description pool A1 (0113) is associated with technical salesperson A1 (0110), who is a user account created in tenant A (0107).
[0053] The Frame Emulator 0208 is a program invoked to examine the behavior of descriptions being created (edited) or already created on the Description Editor 0207. The Frame Emulator 0208 is configured to operate on a web browser. The Frame Emulator 0208 simulates the operation of an application frame in a device and visualizes the behavior of the custom application, including the created description, by outputting the behavior as screen information.
[0054] Installation code release screen 0209 is a program used to display installation code on a user's web browser, which is then used to install custom applications onto a device.
[0055] Backend program 0205 stores programs such as description number management 0210, description signature appending 0211, custom application packaging 0212, custom application delivery system 0213, and installation code distribution system 0214.
[0056] Each program stored in the backend program 0205 is hosted on a cloud server device 0220 of the authoring system 0101 (see...). Figure 2B It executes and works collaboratively with the program of front-end resource 0204.
[0057] Description Number Management 0210 is a program used to issue unique serial numbers that identify each individual description. Description Number Management 0210 is invoked when a user begins creating a new description using the Description Editor 0207. It is also invoked when a user deletes a previously created description. If the description to be deleted is not intended for use in a custom application, Description Number Management 0210 performs processes such as returning the serial number assigned when the description was created to a reusable state.
[0058] Description signature appender 0211 is a procedure used to append a signature to a description to ensure that the description cannot be tampered with. For example, it's used when generating an installation package for a custom application that includes the created description. Description signature appender 0211 includes the signing key information 0218 to be used when appending the signature. Figure 2A The illustration shows an example where description signature appending 0211 appends a signature to description 0219 stored in description pool A1 (0113).
[0059] Custom Application Packaging 0212 is a program used to create installation packages for custom applications. In the installation package, a description of the signature generated by 0211, along with the specific repurposed application described below, is combined into a single package. Creating the installation package allows the custom application to be installed on the desired device. The package data structure of the installation package will be described in detail below.
[0060] Custom application delivery system 0213 is a system program that delivers installation packages of one or more custom applications pre-associated with the installation code published on the installation code release screen 0209 to the device. The installation packages of one or more custom applications will also be referred to below as one or more custom application archives. When the custom application delivery system 0213 receives a delivery request with the installation code from the device, the custom application delivery system 0213 sends the installation package archive of the custom application associated with the installation code to the device. Figure 2A The illustration shows an example where the MFP0203, used as a device, is connected to the backend program 0205 of the authoring system 0101, and the installation package of the custom application is sent sequentially to the MFP0203.
[0061] The Installation Code Distribution System 0214 is a program that operates in conjunction with the Installation Code Distribution Screen 0209 and distributes installation codes corresponding to one or more custom applications selected by the user. The Installation Code Distribution System 0214 internally maintains a table indicating the relationship between the selected one or more custom applications (i.e., the installation package files of the custom applications) and the distributed installation codes. Details of this are described below.
[0062] The installation package files for one or more custom applications can be generated on demand or pre-generated.
[0063] When an installation package file needs to be generated on demand, the custom application packaging 0212 generates the installation package file after the custom application delivery system 0213 receives a delivery request with the installation code from the device. Conversely, when an installation package file needs to be generated in advance, the custom application packaging 0212 generates the installation package file when the installation code distribution system 0214 releases the installation code. The generated installation package file, along with a table indicating its relationship to the released installation code, is maintained in the installation code distribution system 0214.
[0064] Regenerated Application Resource 0206 stores signed applications. These signed applications are used to regenerate the described application and are also pre-signed packages. Regenerated applications are applications that regenerate, play, or view various custom application UIs based on the created description. The number of regenerated applications managed by Regenerated Application Resource 0206 is not limited to one. For example, multiple regenerated applications can be managed separately for each version. Figure 2AThe illustration shows an example of regenerated applications (each with a pre-attached signature) whose storage range extends from regenerated application ver1 (0215) and regenerated application ver2 (0216) to regenerated application verN (0217) (N is a natural number). Corresponding signatures ranging from "Signature 1" and "Signature 2" to "Signature N" (N is a natural number) are attached to the corresponding regenerated applications. Each of these signatures is signature data called an electronic signature (specifically a digital signature), and different signature data is attached for each application data. As signature data, the cryptographic hash value of the corresponding application data, encrypted using a cryptographic key, is used. The signature data is provided as a set along with the application data body to ensure that the application data is provided by an authorized vendor and is not tampered with. Each of the regenerated applications is developed by system developer 0201. The signature is pre-attached to the regenerated application in the development environment of system developer 0201, where the key information used to attach the signature is strictly managed. Then, system developers 0201 promptly upload their respective regenerated applications, each with a pre-attached signature, to the regenerated application resource 0206. Furthermore, each regenerated application stored in the regenerated application resource 0206 includes information on customizable components. When starting to create a description using the description editor 0207, the user selects a version from the regenerated application's versions. The description editor 0207 then retrieves the customizable component information unique to the selected version of the regenerated application. This eliminates the need for the description editor 0207 to statically maintain information such as menu items used in customization.
[0065] <Server Device>
[0066] The description will be used to implement the referenced Figure 2A The hardware configuration of the described authoring system 0101 is described in terms of both software and hardware configuration. Because the authoring system 0101 is constructed in the cloud, it is configured to distribute the load across multiple devices. In this exemplary embodiment, for ease of description, the case in which the authoring system 0101 uses a server device 0220 to perform processing will be described. Figure 2B The illustration shows the hardware configuration of the server device 0220 used in the creation system 0101.
[0067] Server device 0220 is an information processing device for implementing authoring system 0101, and includes a controller unit or control circuit 250. The controller unit 250 includes a central processing unit (CPU) 252, random access memory (RAM) 253, hard disk drive (HDD) 255, read-only memory (ROM) 256, and network interface (I / F) 257. The CPU 252, RAM 253, HDD 255, ROM 256, and network I / F 257 are interconnected via a system bus 259.
[0068] CPU 252 controls the operation of server device 0220 and operates based on a program loaded into RAM 253. Essentially, RAM 253 stores a program containing instructions that, when executed by CPU 252, cause CPU 252 to perform the operations described below. As mentioned above, these operations may correspond to functions, units, or modules. ROM 256 is a boot ROM and stores the system boot program. Network I / F 257 connects to a local area network (LAN) and controls the input and output of various types of information via the network. HDD 255 stores various programs including system software. The program stored in HDD 255 is loaded into RAM 253, causing CPU 252 to control the operation of server device 0220 based on the program.
[0069] Regarding the account information of the aforementioned administrators and users, and regarding... Figure 2A The information for each tenant represented by tenant A (0107) shown in the diagram is stored and managed on HDD 255. Figure 2A The front-end resource 0204, back-end program 0205, and regeneration application resource 0206 shown are also stored on HDD 255. Although in Figure 2B Not shown in the figure, but referenced for implementation. Figure 1 The user authentication mechanism described for administrators and users is also stored on HDD 255. When server device 0220 starts up, the program for implementing the user authentication mechanism is automatically loaded into RAM 253 and executed by CPU 252. For example, when... Figure 2A When system developer 0201 or system user 0202 (technical salesperson A1) accesses authoring system 0101 and attempts to log in, the login request is sent to the user authentication program via network I / F 257. The user authentication program then displays a login screen on the web browser of the personal computer (PC) used by system developer 0201 or system user 0202 (technical salesperson A1). The description editor 0207 and other programs stored in front-end resource 0204 are also stored on HDD 255. For example, when system user 0202 (technical salesperson A1) logs in to authoring system 0101 and accesses the Uniform Resource Locator (URL) of description editor 0207, the access request is sent to server device 0220 via network I / F 257. The description editor 0207, as a program, then returns to the web browser of the PC used by system user 0202 (technical salesperson A1) for operation on the web browser. Similar processing is performed for the framework simulator 0208 and the installation code release screen 0209.
[0070] Description number management 0210 and other programs stored in backend program 0205 are also stored on HDD 255. As described above, backend program 0205 is driven in cooperation with the programs of frontend resource 0204. In response to a drive request, each module such as description number management 0210 stored in backend program 0205 is loaded from HDD 255 into RAM 253 and executed by CPU 252.
[0071] <mfp>
[0072] MFP 0203 is an information processing device for processing information, an image processing device for processing images, and an image forming device for forming images onto a sheet. Figure 3A The diagram illustrates the hardware configuration of the MFP 0203. Figure 3B The diagram illustrates the software configuration of MFP 0203.
[0073] The MFP 0203 includes a controller unit or control circuit 300, a printer 395, a scanner 370, an operation unit 312, and a universal serial bus (USB) storage device 314. The controller unit 300 performs control to use the printer 395 to print and copy image data generated by the scanner 370 reading document images. The scanner 370 is an image reading unit, circuit, or device that reads images from documents. The printer 395 is an image forming unit, circuit, or device that forms images onto sheet (paper). The operation unit 312 is a receiving unit that receives instructions from the user and also a display unit that displays information to the user.
[0074] The controller unit 300 includes a CPU 301. The CPU 301 boots the operating system (OS) 401 (see [link to ROM]) using a boot program stored in ROM 303. Figure 4 ).
[0075] On OS 401, CPU 301 executes programs stored in storage device 304, thereby performing various types of processing. The execution of CPU 301 is similar to that of CPU 252 described above. RAM 302 is used as the working area of CPU 301. RAM 302 provides the working area and also provides an image storage area for temporarily storing image data. Storage device 304 stores programs and image data.
[0076] CPU 301 is communicatively connected to the component via system bus 307.
[0077] The components include ROM 303, RAM 302, operation unit I / F 306, network I / F 310, USB host I / F 313, and image bus I / F 305. Operation unit I / F 306 is an interface to operation unit 312, which includes a touch panel, and outputs image data to be displayed on operation unit 312. Operation unit I / F 306 also sends information input by the user via operation unit 312 to CPU 301. Network I / F 310 is an interface for connecting MFP 0203 to a LAN. USB host I / F 313 is an interface unit for communicating with USB storage device 314. USB host I / F 313 is also an output unit for storing data stored in storage device 304 into USB storage device 314. USB host I / F 313 also inputs data from USB storage device 314 and sends the data to CPU 301. USB storage device 314 is an external storage device for storing data and is detachably attached to USB host I / F 313. Multiple USB devices, including USB storage device 314, can be connected to USB host I / F 313. Real-time clock (RTC) 315 controls the current time. The time information controlled by RTC 315 is used, for example, to record job submission times. Image bus I / F 305 is a bus bridge for connecting system bus 307 and image bus 308, which transmits image data at high speeds and converts the data format. Image bus 308 includes a Peripheral Component Interconnect (PCI) bus or a bus compliant with IEEE 1394. Device I / F 320, scanner image processing unit 380, and printer image processing unit 390 are provided on image bus 308. Scanner 370 and printer 395 are connected to device I / F 320, and device I / F 320 performs synchronous / asynchronous conversion of image data. Scanner image processing unit 380 corrects, processes, or edits input image data. The printer image processing unit 390 performs processing on the printed image data suitable for the printer 395, such as correction or resolution conversion.
[0078] Figure 3B Each module shown is implemented by the CPU 301 loading the program stored in the storage device 304 into the RAM 302 and executing the program. Figure 3B The diagram illustrates the software configuration of MFP0203.
[0079] MFP 0203 includes servlet service 354, user interface (UI) control unit 353, application management unit 352, storage control unit 356, application execution control unit 355, standard function control unit 351, timer management unit 359, and job execution history control unit 357 as software modules.
[0080] The servlet service 354 is a module that receives Hypertext Transfer Protocol (HTTP) access requests when a request is sent via network I / F 310, and then assigns processing to a module (application management unit 352 or standard function control unit 351) based on the accessed URL.
[0081] UI control unit 353 is a module that displays the screen on operation unit 312, receives operations from the user, and notifies the appropriate module (application management unit 352 or standard function control unit 351) of information about the operation. Application management unit 352 manages extended application 440 (see...). Figure 4 The module for installation and startup.
[0082] The application execution control unit 355 is a module that controls the execution of the extended application 440 launched by the application management unit 352. More specifically, the application execution control unit 355 controls... Figure 4 The virtual machine (VM) thread 415, VM system service 420, VM 430, and extended application 440 are shown in the figure.
[0083] The storage control unit 356 is a module that records and manages the program and setting information of the extended application 440.
[0084] The application execution control unit 355 accesses the storage control unit 356 and reads the program. Furthermore, each module accesses the storage control unit 356 and references and sets settings.
[0085] The standard function control unit 351 is a module that controls the copying and faxing functions, which are standard functions of the MFP 0203, and performs other controls within the MFP 0203 (e.g., control of the USB host I / F 313). The standard function control unit 351 also manages the executed copying or faxing functions as jobs and requests the job execution history control unit 357 to record the job execution results. The job execution history control unit 357 requests the storage control unit 356 to record the job execution results as history so that the results can be stored in the storage device.
[0086] The timer management unit 359 obtains information about the current time from the RTC 315, detects the elapsed time, and notifies the application management unit 352 of the elapsed time. In response to the notification from the timer management unit 359, the application management unit 352 requests the application execution control unit 355 to perform application timer processing.
[0087] The relationship between OS 401, VM 430, and extended application 440 will be described in detail. Figure 4 The diagram illustrates the software hierarchy of MFP 0203.
[0088] Native programs 410 for controlling image processing units such as printers, fax machines, and scanners operate on OS 401. VMs 430 also operate on OS 401 as the execution environment for extended applications 440. Each of the VMs 430 is a module that interprets and executes a corresponding program for controlling an extended application 440. Extended applications 440 operate on VMs 430. Programs operating on each of the VMs 430 operate in response to commands specific to the VMs 430, which are different from commands that operate on CPU 301. These commands are called bytecode. On the other hand, commands specific to CPU 301 are called native code. Each of the VMs 430 sequentially interprets and processes bytecode, causing both native code and bytecode to operate on CPU 301. VMs 430 are classified into types that directly and sequentially interpret and process bytecode, and types that convert bytecode into native code and execute native code. The VM 430 according to this exemplary embodiment is of the former type, but may be of the latter type.
[0089] Generally, if CPUs are of different types, the commands executed on those CPUs are incompatible. Similarly, if VMs are of different types, the commands executed on those VMs are incompatible. In this exemplary embodiment, it is assumed that the extended application 440 is described in Lua, but it could be described in another language. The script described in Lua is converted into Lua-specific bytecode, and this bytecode is executed on each of the Lua-specific VMs 430. Since the Lua-specific bytecode is different from the command code that CPU 301 can directly execute, the Lua-specific bytecode cannot be directly executed by CPU 301. The Lua-specific VMs 430 are configured by the command code of CPU 301 as software modules that sequentially interpret and execute the Lua-specific bytecode. The Lua-specific VMs 430 can be configured as dedicated hardware for interpreting and executing the Lua-specific bytecode.
[0090] The native program 410 includes a native thread 414 for controlling image processing units such as printers, fax machines, and scanners, and a VM thread 415 for running VM 430. There are VM threads 415 corresponding to the number of VMs 430. In this example, three VM threads 415 are generated: VM thread A-1 (411), VM thread A-2 (412), and VM thread B-1 (413).
[0091] VM system service 420 is a utility library shared by extended applications 440. The development speed of each of the extended applications 440 can be improved by calling the functions of VM system service 420 from each of the extended applications 440. Furthermore, VM system service 420 can access each module of MFP 0203. VM system service 420 includes a standard VM system service 421, which is the minimum required for VM operation, and an extended VM system service 422, which accesses each module of MFP 0203 and provides OS functionality. Standard VM system service 421 includes the functionality of loading extended applications 440. Each VM 430 executes an application programming interface (API) specified by bytecode in its corresponding extended application 440, causing the VM system service 420 associated with the API to be called. A drawing API for performing desired drawing on the screen of operating unit 312, and a job control API for issuing requests for performing desired jobs such as copy jobs or scan jobs in MFP 0203, are provided to extended VM system service 422.
[0092] VM 430 executes extended application 440. VM 430 is created for the corresponding thread of extended application 440. Figure 4 In this process, VMs A-1 (431) and A-2 (432) are generated to run two threads in extended application A (441). Furthermore, in Figure 4 In this process, a VM B-1 (433) is generated to run a thread in the extended application B (442).
[0093] On the main menu screen to be displayed on the operation unit 312 of the MFP 0203, an icon for each of the extended applications 440 is displayed. If the operation unit I / F 306 detects a user selection of an icon via the operation unit 312, then the operation unit I / F 306 sends a notification of the detection to the CPU 301. Upon receiving the notification, the CPU 301 launches one of the extended applications 440 corresponding to the icon selected by the user.
[0094] In the following description, the mechanism (VM system services 420 and VM 430) used to run extended application 440 on MFP 0203 will be referred to as the application framework.
[0095] <Client Terminal>
[0096] As a representative of a general client terminal accessing the authoring system 0101, client terminal 0240 used by system user 0202 will be described. The configuration of client terminal 0240, which will be described next, can be applied to client terminals used by system administrator 0102, tenant A administrator 0103, tenant B administrator 0104, tenant C administrator 0105, or system developer 0201. Figure 5A The diagram illustrates the hardware configuration of client terminal 0240.
[0097] Client terminal 0240 is an external terminal (information processing terminal) for accessing authoring system 0101. Client terminal 0240 includes a controller unit or control circuit 500, an operation unit or circuit 510, and a display unit or circuit 512. The controller unit 500 is connected to the hardware components via system bus 509 to exchange information with them. The controller unit 500 loads programs such as an OS or web browser recorded on ROM 506 or HDD 505 into RAM 503. The loaded programs are processed sequentially by CPU 502. The operation unit 510 is a receiving unit that receives user operations. The operation unit 510 is connected to operation unit I / F 501 and notifies CPU 502 of information about user operations received by operation unit 510 via operation unit I / F 501. Information about user operations is processed by a program operating on CPU 502. Therefore, the user's operation is processed, and the result of the operation is displayed on the display unit 512 connected to the display unit I / F 504, or sent to the network connected to the network I / F 507.
[0098] In this exemplary embodiment, a web browser is executed on the client terminal 0240, and access is made via the web browser. Figure 1 The authoring system 0101 shown is illustrated. The client terminal 0240 can be a general PC or a mobile terminal such as a smartphone.
[0099] Next, we will describe the situation where client terminal 0240 executes the description editor on a web browser. Figure 6 This is a block diagram of the web browser 601 that displays the description editor 604.
[0100] Web browser 601 is software used to connect to a web server and is capable of displaying web pages, executing programs, etc. Web browser 601 can execute JavaScript VM 603 on web browser native program 602, which is used to run web browser 601. JavaScript VM 603 is a program used to run JavaScript on web browser 601.
[0101] The description editor 604 is a program written in JavaScript, and is Figure 2A The example shown is a description editor 0207. Description editor 604 executes on a JavaScript VM 603. Description editor 604 is a program that provides an application editing environment.
[0102] The description editor 604 also functions as an application framework emulator 605. The application framework emulator 605 performs simulations of application frameworks used to execute programs written in languages other than JavaScript on the web browser 601. The application framework emulator 605 is... Figure 2A The example shown is a framework emulator 0208. In this exemplary embodiment, the application framework emulator 605 performs a simulation of an execution environment in the same language as the application running on the MFP 0203. Furthermore, the application framework emulator 605 includes a VM emulator 606 and a VM system service emulator 607. These emulators simulate JavaScript. Figure 4 The operation of VM 430 and VM system service 420 shown is a program written in JavaScript.
[0103] Regeneration application 608 is a user-defined application (regeneration procedure) that describes operations. Regeneration application 608 is configured similarly to an application to be executed on the application framework in MFP 0203. Figure 6 The illustration shows the configuration of the regeneration application 608 executed on the application framework emulator 605. The regeneration application 608 includes a customizable information control 610, which handles queries from the VM system service 420 regarding customizable component information. The regeneration application 608 also includes a customizable information definition 611 and a description regeneration control 609 for descriptions provided during regeneration.
[0104] Description 612 is data containing customized information edited by the user in a format reproducible by the reproducible application 608. If the user specifies editing details (issues an editing command) on the editing screen provided by the description editor 604, then the description editor 604 generates description 612. The description editor 604 then reproduces description 612 using the reproducible application 608 operating on the application framework emulator 605. Consequently, a screen for inspecting the customized application's operation is provided to the user on the web browser 601.
[0105] In this exemplary embodiment, JavaScript is used as the programming language describing editor 604, but editor 604 can be written in code that can be executed directly on another web browser (e.g., WebAssembly).
[0106] The regeneration application 608 to be executed by the description editor 604 does not have to be exactly the same as the regeneration application to be executed on MFP0203. For example, an operation check application obtained by extracting the parts directly related to the description regeneration control that are directly related to the customization from the regeneration application can be loaded.
[0107] Next, we will describe the editor 604 error in detail. Figure 5B The illustration shows the software configuration of the description editor 604 to be executed by client terminal 0240.
[0108] The description editor 604 is a program downloaded from the server device 0220 via a predetermined URL accessed through a web browser 601 and then executed on the web browser 601, and is written in JavaScript. The description editor 604 includes a general control unit 551, a screen configuration unit 552, a frame simulator control unit 556, a server communication unit 557, a description generation unit 555, a custom component information management unit 553, and a custom component information editing unit 554.
[0109] The overall control unit 551 is a block that controls the overall description editor 604. The overall control unit 551 operates collaboratively with other blocks to control the description editor 604. The screen configuration unit 552 is a block that controls the screen configuration of the description editor 604. The screen configuration unit 552 updates the configuration. Figure 7A The screen 700 shown displays Hypertext Markup Language (HTML) elements and Cascading Style Sheets (CSS) (screen information). The screen configuration unit 552 also receives user input and notifies the overall control unit 551 of the user's input (editing operation). In response to the notification, the overall control unit 551 performs appropriate control. The notification indicates the display area 701 for the application screen image (see...). Figure 7A In the event of an operation being performed, the overall control unit 551 notifies the frame emulator control unit 556 of the operation information. For example, if a user clicks on the display area 701 of the application screen image, the frame emulator control unit 556 is notified that a predetermined point on the application execution screen has been clicked. The frame emulator control unit 556 is a block that executes the regeneration application 608 for regeneration customization (description 612) on the Web. Because the regeneration application 608 is configured to operate on the application framework in MFP 0203, the regeneration application 608 cannot be executed directly on the web browser 601. The frame emulator control unit 556 performs a simulation of the regeneration application 608 designed for MFP 0203 to be executed on the Web. The frame emulator control unit 556 receives notifications of screen operation information from the overall control unit 551 and notifies the regeneration application 608 to be executed in the frame emulator control unit 556 of the operation information. The regeneration application 608, having received the notification, performs a screen update corresponding to the operation. The screen update is implemented by the screen drawing API in the application framework. The frame simulator control unit 556 replaces the screen drawing API with the image rendering API in the web browser 601, and... Figure 7A The application display screen is shown in display area 701 of the application screen image shown. The customizable component information management unit 553 obtains customizable component information from the regenerated application 608, converts the obtained information into a format usable by the description editor 604, and stores the information in blocks. Based on this component information, the screen configuration unit 552 configures the component list 702 (see...). Figure 7A ) and display area 706 for displaying customized settings information (see Figure 7A The custom component information editing unit 554 manages the current settings information for the custom component. Based on this settings information, the screen configuration unit 552 configures the display area 706 for displaying the custom settings information. The description generation unit 555 generates a block of description 612 based on the current settings information held by the custom component information editing unit 554. Description 612 is then provided to the regeneration application 608 via the frame simulator control unit 556. Therefore, the regeneration application 608 regenerates description 612, thus updating... Figure 7A The application screen image shown is displayed in area 701.
[0110] Server communication unit 557 controls communication with server device 0220. Communication with server device 0220 includes storing component setting information held by custom component information editing unit 554 into server device 0220, and downloading the regeneration application 608 to be executed by frame simulator control unit 556. This allows editing functionality suitable for regeneration application 608 to be provided without altering description editor 604, even if the customizable component information in regeneration application 608 fluctuates or operational changes occur.
[0111] <Description Edit>
[0112] First, the execution screen of the description editor 604, which is used to create custom applications, will be displayed. Figure 7A The illustration shows screen 700, which describes editor 604. Screen 700 is displayed in web browser 601 when a user accesses authoring system 0101 from web browser 601 and begins customizing the application. Screen 700 is configured with HTML elements, JavaScript, and CSS downloaded from server device 0220. The result obtained by web browser 601 interpreting these and performing screen rendering is displayed. In this exemplary embodiment, a case where a custom application is created in response to a customer's request, making it easy to select a copy execution button, will be described as an example. Multiple items (objects) are arranged on screen 700, providing the user with an application editing environment. The main components of screen 700 will be described next.
[0113] Display area 701 is an image display area used to display an execution image of an application (the application being edited) that reflects information customized by the user. In this exemplary embodiment, an example in which display area 701 is configured using an HTML canvas element will be described, but it can be configured using another renderable HTML element. Such a configuration allows the user to perform customization while viewing display area 701 and checking whether the desired customization is being performed.
[0114] Component list 702 is a dropdown display object used to show a list of customizable (addable) display components. Users select desired components from component list 702 and add the selected components, allowing users to customize the application by adding components. Examples of editable components include buttons with associated functionality, title information, and message information.
[0115] Because the results of adding components are immediately reflected in display area 701, users can easily confirm the status of the customized application.
[0116] Display area 706 is a custom settings information display area used to display the currently configured components and the settings information within those components. Figure 7A The illustration shows the state of the title component 703, message component 704, and button component 705 set in display area 706. Users can customize the components by editing information about them displayed in display area 706. For example, suppose the string "Custom Application" displayed in title component 703 is edited to read as "Test Application". In this case, the edited string is reflected in display area 701, and the area displaying the string "Custom Application" is updated to display the string "Test Application". The size or layout of the components can also be changed by editing the parameters of each component.
[0117] Next, we will describe the execution flow of editor 604. Figure 8 This is a sequence diagram illustrating the processes to be executed between the software modules of the description editor 604. Each process is implemented by the controller unit 500. More specifically, each process is implemented by the CPU 502 retrieving the program of the web browser 601 from the ROM 506, loading the program into the RAM 503, and executing the description editor 604 via the JavaScript VM 603.
[0118] In describing the execution flow of editor 604, firstly, in step S800, the overall control unit 551 sends a screen configuration request to the screen configuration unit 552. The screen configuration unit 552 configures, for example... Figure 7A The image shows the editing screen of screen 700. At this time, because the information on customizable components is not yet determined, the component list 702 and the display area 706 for displaying customization settings information are configured to be empty. In step S801, the overall control unit 551 sends a regeneration application download request to the server communication unit 557. In response to the request, the server communication unit 557 downloads the regeneration application 608 from the server device 0220. In step S802, the server communication unit 557 sends the regeneration application 608 to the overall control unit 551. In step S803, the overall control unit 551 sends a regeneration application execution request to the frame emulator control unit 556. In response to the request, the frame emulator control unit 556 executes the regeneration application 608. In step S804, the overall control unit 551 sends a customizable component information acquisition request to the frame emulator control unit 556. In step S805, in response to the request, the frame simulator control unit 556 sends a customizable component information acquisition request to the regeneration application 608 and returns the customizable component information (customizable information definition 611) acquired from the regeneration application 608 to the overall control unit 551. In step S806, the overall control unit 551 sends the acquired customizable component information to the customizable component information management unit 553. The customizable component information management unit 553 converts the received information into a data format usable by the description editor 604. In step S807, the overall control unit 551 sends a screen update request to the screen configuration unit 552. In this step, because the customizable component information has been determined, the information is reflected in the component list 702 and the display area 706 for displaying customization settings information, allowing the user to customize the component. In step S808, the user selects a component from the component list 702 and adds the selected component. In step S809, the screen configuration unit 552 receives a notification of the change (addition) and sends information about the user's operation to the overall control unit 551. In step S810, the overall control unit 551 notifies the customized component information editing unit 554 of the changed setting value. In step S811, the customized component information editing unit 554 confirms the setting value and sends the current setting value to the overall control unit 551. In step S812, the overall control unit 551 requests the description generation unit 555 to generate a description 612 based on the current setting value. In step S813, the description generation unit 555 generates a description 612 corresponding to the current setting value and sends the description 612 to the overall control unit 551. In step S814, the overall control unit 551 sends the notification of description 612 to the frame emulator control unit 556. The frame emulator control unit 556 regenerates the description 612 using the regeneration application 608. Consequently, the display area 701 of the application screen image is updated.Finally, in step S815, the overall control unit 551 sends a storage request to the server communication unit 557 for storing the edited customized component setting information. In response to the request, the server communication unit 557 requests the server device 0220 to store the customized component setting information. Thus, the customized application information set by the user is stored in the server device 0220. When the user customizes the application again, the stored information is loaded, allowing the user to customize the application in a state where the information edited by the user has been reflected.
[0119] Next, we will describe the component information and description 612. Figure 13A and Figure 13B The combination shows an overall diagram of customizable component information. Figure 13B yes Figure 13A The continuation. Figure 13A and 13B The illustration shows that Figure 8 Examples of customizable information definitions 611 obtained in steps S804 to S805. Customizable information definition 611 is information maintained in the regenerated application 608 and can change depending on the version of the regenerated application 608. The description editor 604 can update the version of the regenerated application 608 by accessing the regenerated application resource 0206. If the version of the regenerated application 608 and the version of description 612 are different from each other (incompatible), this can cause errors. To solve this problem, in this exemplary embodiment, customizable information definition 611, which serves as the basis for description 612, is obtained from the regenerated application 608. This prevents incompatibility between the version of the regenerated application 608 and the version of description 612.
[0120] In application customization, the description editor 604 queries the regeneration application 608 to obtain customizable information definition 611. In this exemplary embodiment, customizable information definition 611 is represented in JavaScript Object Markup (JSON) format, which is highly compatible with web browsers, but another format can be used. Customizable component information (customizable information definition 611) includes graphical user interface (GUI) component information 1301 and job component information 1302.
[0121] GUI component information 1301 indicates information about customizable GUI components in regeneration application 608. GUI component information 1301 includes information group 1303 and information group 1304.
[0122] Information group 1303 is an information group about the GUI component in the title, and includes component ID 1305, localize 1306, attrib 1307, localize 1309, and data_type 1310. GUI component information 1301 includes component ID 1305 for identifying the component, localize 1306 indicating the component's name, and attrib 1307 indicating settings information about the component. Component ID 1305 is the component's identifier and specifies a unique string among all components. This string is used by the description editor 604 and in the regeneration application 608, and is not displayed on the GUI. Localize 1306, indicating the component's name, is used in... Figure 7A The information displayed in component list 702 is shown below. The localize 1306, indicating the component name, maintains information about the component name for each language, and is displayed based on the language settings of web browser 601. The attrib 1307, indicating settings information about the component, includes item information to be set in the component. Because information group 1303 is an information group about the GUI component's title, attrib 1307 includes settings information about the title as item information. The settings information about the title includes a settings ID 1308 for identifying the settings information, a localize 1309 indicating the name of the settings information, and a data_type 1310 indicating the type of the settings value. The settings ID 1308 is an identifier for the settings information and is a unique string specified in information group 1303. The same string can be used in different information groups, such as information group 1304.
[0123] The string in setting ID 1308 is information to be used by the description editor 604 and in the regeneration application 608, and will not be displayed on the GUI. The localize 1309, indicating the name of the setting information, is the information to be displayed in the title component 703 of the component's setting information in the display area 706 used to display customized setting information. The localize 1309, indicating the name of the setting information, maintains the name of the setting information for each language and is the information to be displayed based on the language settings of the web browser 601. The data_type 1310, indicating the type of the setting value, specifies the data type that can be set as the setting value. "string" set in data_type 1310 indicates that any string can be set. data_type 1310 includes "position" 1311, indicating information about the display position of the GUI component. data_type 1310 includes "change_panel" 1312, used to move to another panel when a button is pressed. data_type 1310 includes "int_100" 1315 for entering the number of copies in a copy job and "select" 1316 for selecting data from a predefined list of items. The data_type 1310, indicating the type of the setting value, is information about the supported types predetermined by the description editor 604 and the reproducing application 608. Depending on the component, the setting information may include multiple entries. For example, information group 1303 includes a single setting entry, while information group 1304 includes three setting entries.
[0124] The job component information 1302 has an information structure similar to that of the GUI component information 1301.
[0125] In this example, job component information 1302 holds information indicating settings related to the number of copies and color mode of the copy job. Job identification ID 1313 is an identifier used to identify the job, and "attrib" 1314 indicates customizable parameter information about the job. In this example, the number of copies and color mode are customizable parameters. "data_range" 1317 indicates candidates that can be set to a specific color mode. Information about the candidates includes a candidate ID 1318 and a localize 1319 indicating the candidate's name.
[0126] Based on the above information, the screen configuration unit 552 determines how to enable the user to set customizable component information, and constructs an appropriate settings screen based on the determination.
[0127] Next, we will describe what will be based on Figure 13A and 13B The customizable information definition 611 shown in the diagram constructs the structure of the description 612 generated by the description editor 604. Figure 11A and Figure 11B The combination illustrates the overall description 612. Figure 11B yes Figure 11A The continuation. Figure 11A and 11B An example illustrating 612 is shown. More specifically, Figure 11A and 11B The diagram illustrates the relationship between and Figure 7A The example shown is a description of 612 corresponding to the customized application settings information on screen 700. In other words, Figure 11A and 11B The illustration depicts a description 612 corresponding to an application that displays a copy execution confirmation screen and executes a copy job in response to pressing the OK button. In this exemplary embodiment, description 612 is written in JSON format, which is highly compatible with web browsers. Another format may be used as the format for description 612.
[0128] Description 612 is roughly divided into panel information 1101 and panel information 1102. Panel information 1101 stores component information and customization information about 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 about each component includes component ID information 1104, component settings information 1105, component parameter information 1106, component parameter data type 1107, and component parameter data 1108. Component ID information 1104 is identification information indicating the component corresponding to the customization information. In this example, component ID information 1104 indicates customization information about the "title" component. Component settings information 1105 indicates settings information about the component. Component parameter information 1106 indicates customization information about the component's parameters. Component parameter data type 1107 indicates the data type of the component parameters. Component parameter data 1108 indicates the set value of the component parameters. When "string" is set in component parameter data type 1107, information about localized strings is specified as the setting value.
[0129] As can be seen, the title component information 1103 indicates the "title" component and the "title" parameter, and specifies the localized string "custom application" as the parameter setting value. Custom information is similarly set in the message component information 1109, the OK button component information 1110, and the cancel button component information 1111.
[0130] Panel information 1102 stores information used for executing a job. In job execution component information 1112, "execute_job" is specified as the component used to execute the job. Information about job execution component information 1112 includes a job identification ID 1114 indicating the job to be executed and job parameters 1115 as parameter setting values. Because this example describes an application used to perform a copy job, "copy" is specified in job identification ID 1114. In job parameters 1115, parameters used when executing the job can be registered. In this example, copy quantity information 1116 and color mode 1117 are registered.
[0131] The example of description 612 described above is read by description regeneration control 609 of regeneration application 608. Then, regeneration application 608 configures the screen corresponding to description 612 and performs screen transitions or job execution control depending on user operation.
[0132] <Frame Simulator>
[0133] Next, the frame simulator control unit 556 will be described in detail. Figure 14 The diagram illustrates the software block configuration of the frame simulator control unit 556.
[0134] The frame simulator control unit 556 is a simulation program used to inspect the operation of an application to an MFP 0203 design on the Web. The frame simulator control unit 556 is regenerated on a web browser 601. Figure 4 The VM system services 420 and VM 430 shown above implement the above functions.
[0135] VM system service emulator unit 1401 is a block that replaces VM system service 420 and performs control to connect the application and web browser 601 environment to the MFP 0203 design. VM system service emulator unit 1401 includes description API emulator unit 1402, job control API emulator unit 1403, description control unit 1404, user operation control unit 1405, and customizable component information control unit 1406.
[0136] The drawing API emulator unit 1402 is a block that performs processing to replace the API used by the application to draw the screen with the image rendering API in the web browser 601. The job control API emulator unit 1403 is a block that simulates the control of jobs such as copying or scanning jobs in an image forming apparatus. The job control API emulator unit 1403 only simulates the behavior of the API and does not actually perform the job. The description control unit 1404 is a block that receives the description 612 generated by the description generation unit 555 and notifies the application of the description 612. In response to the notification, the application regenerates the description 612. The user operation control unit 1405 is a block that receives notification of screen operation information from the overall control unit 551 and notifies the application of the screen operation information. The customizable component information control unit 1406 is a block that notifies the overall control unit 551 of customizable component information sent from the application. The VM emulator unit 1407 is a block that interprets and executes the application.
[0137] Next, the processes to be performed by the frame simulator control unit 556 will be described in detail, assuming the above configuration is used. Figure 15 It is a diagram. Figure 8 The diagram shows the sequence of internal processes of the frame simulator control unit 556, which are executed between the overall control unit 551 and the frame simulator control unit 556. Each process is implemented by the controller unit 500. More specifically, each process is implemented by the CPU 502 retrieving the program of the web browser 601 from the ROM 506, loading the program into the RAM 503, and executing the description editor 604 via the JavaScript VM 603.
[0138] In step S1501, when a request to obtain customizable component information is sent from the overall control unit 551, the customizable component information control unit 1406 receives the request. The processing in step S1501 is related to... Figure 8 The processing corresponds to step S804.
[0139] In step S1502, the customizable component information control unit 1406 sends a request to the application executing in the VM emulator unit 1407 to obtain customizable component information (customizable information definition 611). Upon receiving the request, in step S1503, the application executing in the VM emulator unit 1407 sends the customizable information definition 611 in response.
[0140] In step S1504, the customizable component information control unit 1406 notifies the overall control unit 551 of the customizable information definition 611 obtained from the application.
[0141] In step S1505, when the notification of description 612 is sent from the overall control unit 551, the description control unit 1404 receives the notification. The processing in step S1505 is related to... Figure 8 The processing in step S814 corresponds to this. In step S1506, the description control unit 1404 sends the notification described in 612 to the application that is executing in the VM emulator unit 1407.
[0142] In step S1507, in response to the notification, the application executing in the VM emulator unit 1407 reads description 612 and executes the screen drawing API to display the screen set in description 612.
[0143] The drawing API is executed by the drawing API simulator unit 1402 and is replaced by the drawing API in the web browser 601.
[0144] In step S1508, when a notification of operation information is sent from the overall control unit 551, the user operation control unit 1405 receives the notification. The processing in step S1508 is related to... Figure 8 The processing corresponds to step S809.
[0145] In step S1509, the user operation control unit 1405 sends a notification of operation information to the application executing in the VM emulator unit 1407. In response to the notification, the application executing in the VM emulator unit 1407 performs processing appropriate to the user's operation. If the user's operation is a screen update operation (e.g., a screen transition command), in step S1510, a screen drawing notification is sent to the drawing API emulator unit 1402, and the screen drawing API is executed. If the user's operation is a job submission operation, in step S1511, a job submission notification is sent to the job control API emulator unit 1403, and the job submission API is executed.
[0146] As described above, the processing performed by the overall control unit 551 and the frame simulator control unit 556 enables various processes to be performed between the description editor 604 and the application. These processes include acquiring customizable component information, notifying users of changed descriptions, regenerating changed descriptions, and performing operational checks on the application during regeneration.
[0147] <Drawing API>
[0148] As described above, the description editor 604 provides an operational inspection environment to the user editing the application by executing the application on the web browser 601 and displaying the details of the execution in the display area 701. The display area 701 is drawn by the drawing API emulator unit 1402. A string drawing API is a program used to render a specified string with specified attributes (e.g., color or size). The drawing API emulator unit 1402 emulates the drawing of the application screen on the web browser 601. Therefore, the reproducibility of the application screen in the display area 701 depends on the processing method used by the drawing API emulator unit 1402.
[0149] The processing methods used by the API simulator unit 1402 include the following three methods.
[0150] The first method uses the fonts and rendering methods provided by the web browser to draw the image. In this method, the drawing API simulator unit 1402 uses the string drawing API provided by JavaScript. The advantage of the first method is that the drawing time is short because the drawing API simulator unit 1402 only executes the string drawing API provided by JavaScript. On the other hand, the disadvantage of the first method is that the appearance of the image displayed on the description editor 604 may differ from the appearance of the image displayed on the MFP 0203. This is due to the fact that the font data and rendering methods used during rendering are different from those used by the MFP 0203. Furthermore, since the font data and rendering methods vary depending on the web browser used, the first method can be said to be environment-dependent.
[0151] The second method is to use the same font and rendering method as MFP 0203 to draw the image. The advantage of this method is that it allows the drawn string to closely resemble the string drawn by MFP 0203. However, the disadvantage is the longer drawing time, because the rendering method used by MFP 0203 needs to be simulated in JavaScript.
[0152] The third method uses the fonts used in MFP 0203 and the rendering methods provided by the web browser to depict the image. The third method has hybrid characteristics between the first and second methods.
[0153] In this exemplary embodiment, given the characteristics of the method described above, the user can switch between three modes provided for string drawing processing. More specifically, the method of drawing the image using a font and rendering method provided by a web browser is provided as the first mode. The method of drawing the image using a font used by MFP 0203 and rendering method provided by a web browser is provided as the second mode. The method of drawing the image using a font used by MFP 0203 and the same rendering method used by MFP 0203 is provided as the third mode.
[0154] With this configuration, during the normal operation of the editor 604, simple checks can be performed using the first mode, which involves light-load operations. During the final operational checks, a third mode can be used to perform precise checks, such as whether a string is not highlighted. In other words, according to this exemplary embodiment, the optimal drawing method can be selected depending on the situation.
[0155] To achieve the above control, string drawing processing is performed. Figure 16 The process shown in the flowchart. Figure 16 This is a flowchart illustrating the string drawing process to be performed by the frame simulator control unit 556. Figure 16 Each process is implemented by the controller unit 500. More specifically, each process is implemented by the CPU 502 retrieving the program of the web browser 601 from the ROM 506, loading the program into the RAM 503, and executing the description editor 604 via the JavaScript VM 603.
[0156] In step S1601, the drawing API emulator unit 1402 identifies the currently selected string drawing mode. If the currently selected string drawing mode is the first mode ("Mode 1" in step S1601), the process proceeds to step S1602. If the currently selected string drawing mode is the second mode ("Mode 2" in step S1601), the process proceeds to step S1603. If the currently selected string drawing mode is the third mode ("Mode 3" in step S1601), the process proceeds to step S1604. In step S1602, the drawing API emulator unit 1402 draws the screen using the font and rendering method provided by the web browser 601. In step S1603, the drawing API emulator unit 1402 draws the screen using the font used by MFP 0203 and the rendering method provided by the web browser 601. In step S1604, the drawing API simulator unit 1402 draws the screen using the font used by MFP 0203 and the same rendering method used by MFP 0203.
[0157] A dedicated button or switch (not shown) is placed on screen 700 to allow the string drawing mode to be changed at any time.
[0158] <Custom Application>
[0159] Detailed description Figure 9 The custom application mentioned in step S912. The description registered in the authoring system 0101 is packaged in step S915, provided as a custom application to MFP 0203 in step S911, and installed on MFP 0203 in step S912. After installing the custom application, the regeneration application is executed in MFP 0203, reading the description based on the script and regenerating the information specified in the description. The execution screen of the custom application is as follows. Figure 7B As shown in the figure. Figure 7B The illustration shows the execution screen 750 of a custom application on the MFP 0203. Execution screen 750 is the same as the screen displayed in display area 701 during description editing. The execution screen 750 shows the custom application operating normally. The processes related to custom application installation will be described in detail.
[0160] This describes the structure of the installation package to be provided by the authoring system 0101 to MFP 0203. Figure 10 The diagram illustrates the data structure of installation package 1000.
[0161] Installation package 1000 is package data that includes a signature description 1052 and a signature application 1001.
[0162] The signed application 1001 includes a regenerated application 1002 and an application signature 1003. The regenerated application 1002 includes a script 1004, resources 1005, and metadata 1006. In this exemplary embodiment, the regenerated application 1002 is the same as the regenerated application 608 maintained by the description editor 604.
[0163] The signature description 1052 includes description 1053, description metadata 1054, and description signature 1055. Description 1053 is generated by the description editor 604 and is data defining the behavior of the application customized by the user. (The above has been referenced.) Figure 11A and 11B The details of description 1053 are described. Description metadata 1054 indicates the customized application's identifier (description identifier), version information, and application name. Description signature 1055 is signature data used to guarantee the integrity of description 1053 and description metadata 1054. Description signature 1055 is generated using a different signature key than the signature key used for application signature 1003. The signature key is held by the authoring system 0101, and description signature 1055 is generated by appending 0211 to the description signature as signature data.
[0164] The process for installing the above-mentioned installation package 1000 onto the MFP 0203 will be described in detail. Figure 12 The diagram illustrates the structure of a regenerated application 1201 stored in storage device 304 of the MFP 0203 after a custom application is installed onto the MFP 0203. The regenerated application 1201 includes application data 1202 and an application signature 1203. Application data 1202 includes scripts 1204, resources 1205, and metadata 1206. Scripts 1204 include an information control section 1207 and a regeneration control section 1208. Resources 1205 include definitions 1209. During the application installation process to be performed by the MFP 0203, each piece of data in the installation package 1000 is read and reconfigured on storage device 304 of the MFP 0203. More specifically, scripts 1004 in the installation package 1000 are configured as script 1204. Resources 1005 in the installation package 1000 are configured as post-installation resources 1205.
[0165] Furthermore, metadata 1206 is stored as information (identifier) to uniquely identify the installed application. In other words, metadata 1206 is used to distinguish the installed application from other applications installed on MFP 0203. Metadata 1206 is also used to identify whether an application needs to be upgraded in the event of an application version upgrade.
[0166] <Note>
[0167] As described above, the authoring system 0101 provides an environment in which applications can be easily edited and delivered. This enables personnel such as service staff and technical sales personnel to create custom applications. Therefore, applications that meet customer expectations can be delivered quickly.
[0168] In this exemplary embodiment, the customizable information definition 611 is obtained from the regeneration application 608 and used by the description editor 604. This prevents incompatibility between the version of the description 612 based on the customizable information definition 611 and the version of the regeneration application 608 that regenerates the description 612.
[0169] In this exemplary embodiment, the mode of describing the API simulator unit 1402 can be changed by the description editor 604. This allows the description editor 604 to be used in an optimal describing method depending on the situation.
[0170] (Modified example)
[0171] In the exemplary embodiments described above, the definition of the copying function has been described as an example of customizable information definition 611. In a modified example, the definition of scan to USB (the job of scanning a document image and storing the resulting data in a USB storage device) will be described as an example of customizable information definition 611.
[0172] Figure 17 The illustration shows an example of a customizable information definition 611 for scanning to a USB (a job that scans document images and stores the resulting data in a USB storage device). Information 1701 and 1702 define information about supported document sizes. In this example, focus is on information 1703 and 1704. The MFP 0203 types include a compact type that can be placed on a desk and a large type that can be placed in an office space (such as an office automation (OA) space). The large type is capable of scanning documents such as A3-sized documents, while the compact type does not support A3-sized documents in some cases. As mentioned above, since the range of supported sizes varies depending on the MFP 0203 executing the application, there is a possibility that the user might incorrectly set the parameters. To avoid this, the description editor 604 is notified that the parameters depend on the execution environment. This notification is achieved by using information 1703 and 1704 as environment-dependent information. Information 1703 indicates that the A3 document size is environment-dependent, and information 1704 indicates that the A4 document size is not environment-dependent. Parameters without such environment-dependent information are considered environment-independent parameters.
[0173] Such environment dependency information is used as follows. Figure 18 This is a flowchart illustrating the processes performed when the screen configuration unit 552 generates a specific HTML element. This HTML element contains screen information about the screen displaying parameters that can be set in the customizable project. Figure 18 Each process is implemented by the controller unit 500. More specifically, each process is implemented by the CPU 502 retrieving the program of the web browser 601 from the ROM 506, loading the program into the RAM 503, and executing the description editor 604 via the JavaScriptVM 603.
[0174] First, in step S1801, the screen configuration unit 552 refers to environment dependency information regarding parameters included in the screen to be displayed. If the parameter is not environment-dependent ("No" in step S1801), the process proceeds to step S1802. If the parameter is environment-dependent ("Yes" in step S1801), the process proceeds to step S1803. In step S1802, because the parameter can be used without environment dependency, the screen configuration unit 552 generates HTML elements for normal display, rather than for emphasis display. In step S1803, to notify the user that the parameter is environment-dependent, the screen configuration unit 552 generates HTML elements for emphasis display.
[0175] <Note>
[0176] As mentioned above, in the modified example, environment dependency information is used in customizable information definition 611.
[0177] This allows for the provision of custom applications that can function properly, even if the custom application is installed on devices with various configurations.
[0178] The exemplary embodiments of this disclosure can also be implemented by providing a program for implementing one or more functions according to the exemplary embodiments above to a system or device via a network or storage medium, and causing one or more processors in the computer of the system or device to read and execute the program. The exemplary embodiments of this disclosure can also be implemented by circuitry (e.g., an application-specific integrated circuit (ASIC)) for implementing one or more functions according to the exemplary embodiments above. Furthermore, the storage device described as an HDD in the exemplary embodiments can be replaced by a semiconductor storage device such as a solid-state drive (SSD). The exemplary embodiments of this disclosure can be applied to systems comprising multiple devices, or to devices comprising a single device.
[0179] This disclosure is not limited to the exemplary embodiments described above. Various modifications can be made based on the spirit of this disclosure. These modifications are included within the scope of this disclosure. As customizable information definition 611, definition information regarding other scanning functions (such as the function of sending data via email and the function of storing data in a network storage device), fax functions, printing functions, or main unit setting functions can be used. Furthermore, the user can be prompted to select a definition from multiple candidates to be used by the description editor 604.
[0180] In the exemplary embodiments described above, an example has been described in which regeneration application resource 0206 manages multiple regeneration applications based on versions. However, regeneration application resource 0206 can manage multiple regeneration applications using different classification methods instead of versions. For example, regeneration applications for printing functions and regeneration applications for scanning functions can be managed separately. In this case, description editor 604 needs to obtain function-specific regeneration applications corresponding to the functions that the user wants to customize, and extract customizable information definition 611 from the regeneration applications. In this case, the definition for printing functions is extracted from the regeneration application for printing functions, and the definition for scanning functions is extracted from the regeneration application for scanning functions.
[0181] Other embodiments
[0182] Embodiments of this disclosure can also be implemented by a computer that reads and executes computer-executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be more fully referred to as a 'non-transitory computer-readable storage medium') to perform one or more functions of the above embodiments and / or includes one or more circuits (e.g., application-specific integrated circuits (ASICs)) for performing one or more functions of the above embodiments, and by a method performed by a computer of the system or device by, for example, reading and executing computer-executable instructions from the storage medium to perform one or more functions of the above embodiments and / or controlling one or more circuits to perform one or more functions of the above embodiments. The computer may include one or more processors (e.g., a central processing unit (CPU), a microprocessor unit (MPU)) and may include separate computers or networks of separate processors to read and execute computer-executable instructions. The computer-executable instructions may be provided to the computer, for example, from a network or storage medium. The storage medium may include, for example, a hard disk, random access memory (RAM), read-only memory (ROM), storage devices for distributed computing systems, optical discs (such as CDs, DVDs, or Blu-ray discs). TM One or more of the following: flash memory devices, memory cards, etc.
[0183] The embodiments of the present invention can also be implemented by providing software (programs) that perform the functions of the above embodiments to a system or device via a network or various storage media, and the computer or central processing unit (CPU) or microprocessor unit (MPU) of the system or device reads out and executes the program.
[0184] While this disclosure has been described with reference to exemplary embodiments, it is to be understood that this disclosure is not limited to the disclosed exemplary embodiments. The scope of the appended claims is to be given the broadest interpretation in order to cover all such modifications and equivalent structures and functions.< / mfp>
Claims
1. An information processing system configured to provide combined information, wherein a description document defining an operation process and a regeneration application configured to regenerate the description document are combined as a combined application to be executed by an image processing device, the information processing system comprising: One or more control circuits, each control circuit having a processor and a memory, the memory containing instructions that, when executed by the processor, cause the processor to function as: An acquisition unit is configured to acquire definition information from the regeneration application, wherein the definition information is included in the regeneration application and indicates one or more components that can be customized through the description file and one or more setting items of the one or more components; An output unit configured to output screen information to a display based on the definition information, wherein the screen information is information for receiving edits to at least one of the one or more components indicated by the definition information and the one or more setting items; A receiving unit, configured to receive editing instructions corresponding to the screen information; as well as A generation unit is configured to generate a description file corresponding to the regeneration application based on the editing instructions and the definition information, wherein the description file includes customized information corresponding to the one or more components and can be regenerated by the regeneration application.
2. The information processing system according to claim 1, wherein the combined application is installed on the image processing device based on package data including the regeneration application and the description file.
3. The information processing system according to claim 1, wherein the acquisition unit, output unit, receiving unit, and generation unit are provided by a program to be executed on a web browser of the information processing terminal.
4. The information processing system according to claim 1, wherein the screen information includes information for performing an operation check on the application being edited.
5. The information processing system according to claim 1, wherein the screen information includes information about components that can be added to the application being edited.
6. The information processing system according to claim 1, wherein the screen information includes information for editing display components to be used by the application being edited.
7. The information processing system of claim 1, wherein the instructions, when executed by the processor, further cause the processor to function as a regeneration unit, the regeneration unit being configured to regenerate the generated description file using the regeneration application.
8. The information processing system of claim 1, wherein the regeneration application is a program based on a language different from the language used to access the authoring system or in a web browser.
9. The information processing system according to claim 8, wherein the different language is Lua.
10. The information processing system according to claim 1, wherein the description file is data described in JavaScript Object Markup (JSON) format.
11. The information processing system of claim 2, wherein the package data includes information about the version of the regeneration application.
12. The information processing system of claim 1, wherein the instructions, when executed by the processor, further cause the processor to function as a modification unit, the modification unit being configured to change the drawing mode of information used to perform an operation check of the application being edited.
13. The information processing system according to claim 1, wherein the definition information includes environment dependency information.
14. The information processing system of claim 1, wherein the image processing apparatus includes an image forming unit configured to form an image on a sheet.
15. The information processing system of claim 1, wherein the image processing device includes an image reading circuit configured to read an image from a document.
16. The information processing system according to claim 1, further comprising: A server device configured to communicate with the image processing device; as well as An information processing device configured to communicate with the server device.
17. An information processing apparatus configured to edit combined information, wherein a description file defining an operation process and a regeneration application configured to regenerate the description file are combined as a combined application to be executed by an image processing apparatus, the information processing apparatus comprising: One or more control circuits, each control circuit having a processor and a memory, the memory containing instructions that, when executed by the processor, cause the processor to function as: An acquisition unit is configured to acquire definition information from the regeneration application, wherein the definition information is included in the regeneration application and indicates one or more components that can be customized through the description file and one or more setting items of the one or more components; An output unit configured to output screen information to a display based on the definition information, wherein the screen information is information for receiving edits to at least one of the one or more components indicated by the definition information and the one or more setting items; A receiving unit, configured to receive editing instructions corresponding to the screen information; as well as A generation unit is configured to generate a description file corresponding to the regeneration application based on the editing instructions and the definition information, wherein the description file includes customized information corresponding to the one or more components and can be regenerated by the regeneration application.
Citation Information
Patent Citations
Server device, information processing device, method for controlling server device, method for controlling information processing device, and program
JP2016024701A
Methods and systems for dynamic runtime generation of customized applications
CN106233250A
Server device and information processing unit and control method
JP2019012364A
Program and system
JP2020077438A
