Information processing system, information processing device, information processing method, and program

The information processing system addresses the challenge of extensive development steps in image forming devices by associating application and screen information with components, enabling efficient integration and execution of processes with external services.

JP7782597B2Active Publication Date: 2025-12-09RICOH CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024025216
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-02-22
Publication Date
2025-12-09
Estimated Expiration
2035-09-14

AI Technical Summary

Technical Problem

Conventional image forming devices require extensive development steps to add or modify applications for cooperating with external services, especially when unique functions are involved, necessitating the installation of applications or modules.

Method used

An information processing system that includes a storage means for associating application identification information with screen information and components, allowing for the execution of processes using electronic data through a transmission and processing execution means, which combines components to execute series of processes without the need for dedicated applications on the image forming device.

Benefits of technology

Facilitates the development of applications for processing linked with external services by reducing the number of steps required for adding or modifying services, enabling seamless integration with external storage systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007782597000001
    Figure 0007782597000001
  • Figure 0007782597000002
    Figure 0007782597000002
  • Figure 0007782597000003
    Figure 0007782597000003
Patent Text Reader

Abstract

To provide an information processing system capable of supporting the development of an application for performing processing in cooperation with an external service, an information processing device, an information processing method, and a program.SOLUTION: In an information processing system, an image forming device 20 uses a service provided by a service providing system 10 via a browser 210. A PC terminal 30 adds a component such as a program and modules for performing prescribed processing to the service providing system 10 via a browser 310. The service providing system 10 comprises a service processing unit 110, a document service unit 150, a storage service cooperation unit 160, and an application information storage unit 190. The service processing unit comprises an application management unit 120, a logic processing unit 130, and a data I / F unit 140, and performs processing on various services according to a request from a browser of the image forming device.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system, an information processing device, an information processing method, and a program. [Background technology]

[0002] In recent years, a wide variety of external services have come to be provided by cloud computing, etc. For example, an external service that stores electronic data specified by a user in an external storage device is known.

[0003] Furthermore, for example, a technique is known in which an image forming apparatus scans an original and stores the acquired image data in an external storage (see, for example, Patent Document 1). As such, a technique in which an image forming apparatus and an external service cooperate to perform processing has been known for some time. Summary of the Invention [Problem to be solved by the invention]

[0004] However, in the above-mentioned conventional technology, in order to perform processing in cooperation with an external service, it is necessary to develop an application to be installed on the image forming device. Also, if an external service provides a unique function (a function not provided by other external services), it is necessary to develop a module, plug-in, etc. to utilize the unique function. Therefore, the number of steps required to add or modify an application to be installed on the image forming device can be large.

[0005] An embodiment of the present invention has been made in consideration of the above points, and aims to support the development of an application for performing processing in cooperation with an external service. [Means for solving the problem]

[0006] In order to achieve the above object, one embodiment of the present invention is an information processing system including one or more information processing devices, the information processing system including a first storage means for storing, for each application that executes a series of processes using electronic data by combining components that execute each of the series of processes, application identification information that identifies the application, information about the series of processes, and screen information of a screen that allows the user to specify the electronic data to be used in the series of processes, in association with each other; a second storage means for storing information about the components; and upon receiving a first request including the application identification information from one of one or more devices connected to the information processing system, storing the application identification information in the first storage means in association with the application identification information included in the first request. a transmission means for transmitting the screen information stored in the first storage means to the first device that made the request, and a processing execution means for, upon receiving a second request from the first device including information regarding electronic data specified by a user via a screen displayed on the first device based on the screen information transmitted by the transmission means, executing a series of processes based on information regarding the series of processes stored in the first storage means in association with the application identification information, using electronic data specified by information regarding the electronic data included in the second request, wherein the processing execution means combines components generated based on the information regarding the series of processes and information regarding the components, and executes the series of processes using the electronic data. [Effects of the Invention]

[0007] According to one embodiment of the present invention, it is possible to support the development of an application for performing processing linked with an external service. [Brief explanation of the drawings]

[0008] [Figure 1] 1 is a diagram illustrating a system configuration of an example of an information processing system according to a first embodiment. [Figure 2] 1 is a diagram illustrating an example of a hardware configuration of a service providing system and a PC terminal according to a first embodiment. [Figure 3]FIG. 1 is a diagram illustrating a hardware configuration of an example of an image forming apparatus according to a first embodiment. [Figure 4] FIG. 2 is a diagram illustrating an example of processing blocks of an information processing system according to the first embodiment. [Figure 5] FIG. 2 is a diagram illustrating an example of a common I / F and a specific I / F. [Figure 6] FIG. 10 is a diagram illustrating an example of a data definition. [Figure 7] FIG. 10 is a diagram illustrating an example of layout information. [Figure 8] FIG. 10 is a diagram illustrating an example of processing content. [Figure 9] FIG. 10 is a sequence diagram illustrating an example of the overall process of a scan delivery service according to the first embodiment. [Figure 10] FIG. 10 is a diagram illustrating an example of an application screen for using a scan delivery service. [Figure 11] FIG. 2 is a diagram illustrating an example of processing blocks of a logic processing unit according to the first embodiment. [Figure 12] FIG. 4 is a diagram illustrating an example of a component information table according to the first embodiment. [Figure 13] FIG. 10 is a diagram illustrating an example of a type conversion table. [Figure 14] FIG. 4 is a sequence diagram illustrating an example of a flow execution process according to the first embodiment. [Figure 15] FIG. 10 is a sequence diagram illustrating an example of a process of adding, updating, and deleting a component according to the first embodiment. [Figure 16] 10A and 10B are diagrams illustrating examples of a component edit screen, a component addition screen, and a component update screen. [Figure 17] FIG. 10 is a diagram illustrating an example of processing blocks of a logic processing unit according to a second embodiment. [Figure 18] FIG. 11 is a diagram illustrating an example of a component information table according to the second embodiment. [Figure 19] FIG. 10 is a sequence diagram illustrating an example of a flow execution process according to the second embodiment. [Figure 20]FIG. 11 is a diagram illustrating an example of processing blocks of a logic processing unit according to the third embodiment. [Figure 21] FIG. 13 is a diagram illustrating an example of a component information table according to the third embodiment. [Figure 22] FIG. 11 is a sequence diagram illustrating an example of a flow execution process according to the third embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[0010] [First embodiment] <System configuration> First, the system configuration of an information processing system 1 according to this embodiment will be described with reference to Fig. 1. Fig. 1 is a diagram showing the system configuration of an example of an information processing system according to the first embodiment.

[0011] The information processing system 1 shown in FIG. 1 includes a service providing environment E1, a user environment E2, and an external storage system 40, which are communicatively connected via a wide area network N1 such as the Internet.

[0012] The service providing environment E1 is a system environment that provides external services such as cloud services via the network N1. Note that, although this embodiment will be described using cloud services as a specific example of external services, this embodiment may also be applied to services provided via a network, such as services provided by an ASP (Application Service Provider) or web services.

[0013] The service providing environment E1 has a service providing system 10 realized by one or more information processing devices. The service providing system 10 provides predetermined services via a network N1. For example, the service providing system 10 provides a service (scan delivery service) in which an image forming device 20 in the user environment E2 scans an original, generates an electronic file, processes the electronic file using an OCR (Optical Character Reader), and stores the file in an external storage system 40. The service providing system 10 according to this embodiment provides such a scan delivery service.

[0014] However, the services provided by the service providing system 10 are not limited to this. For example, the service providing system 10 may provide a service (cloud print service) in which an electronic file stored in the external storage system 40 is printed by the image forming device 20 in the user environment E2.

[0015] The service providing system 10 may also provide a service in which, for example, an electronic file stored in the external storage system 40 is projected by a projector in the user environment E2. Furthermore, the service providing system 10 may provide a service in which an electronic file generated by scanning an original in the image forming device 20 is subjected to OCR processing, and then translated into a predetermined language (for example, from English to Japanese) and stored in the external storage system 40. In this way, the service providing system 10 according to this embodiment provides various services realized by a series of processes in cooperation with the external storage system 40.

[0016] All or part of the service providing system 10 may be installed in the user environment E2. That is, all or part of the information processing devices constituting the service providing system 10 may be included in the user environment E2.

[0017] The user environment E2 is, for example, a system environment in a company or the like that is a user that uses the image forming apparatus 20. The user environment E2 includes one or more image forming apparatuses 20 and one or more PC terminals 30, which are connected via a network such as a LAN (Local Area Network).

[0018] The image forming apparatus 20 according to this embodiment is a multifunction peripheral such as an MFP (Multifunction Peripheral) having a scanning function. Note that the image forming apparatus 20 may also have a printing function, a copying function, a fax communication function, etc. in addition to the scanning function.

[0019] The PC terminal 30 according to this embodiment is an information processing device used for developing programs for the service providing system 10 to provide various services. A user can use the PC terminal 30 to add programs, modules, etc. that execute predetermined processes to the service providing system 10.

[0020] The external storage system 40 is a computer system that provides a cloud service called a storage service (or online storage) via the network N1.

[0021] The storage service is a service that rents out a storage area of ​​the storage of the external storage system 40. In this embodiment, in the scan delivery service, an electronic file that has undergone OCR processing is saved (uploaded) in the storage area rented out by the external storage system 40.

[0022] In the following description, when distinguishing between the multiple external storage systems 40, they will be referred to using subscripts such as "external storage system 401" and "external storage system 402." The name of the service provided by the external storage system 401 will be "storage service A," and the name of the service provided by the external storage system 402 will be "storage service B," etc.

[0023] The external storage system 40 may be a system realized by a plurality of information processing devices. The configuration of the information processing system 1 shown in Fig. 1 is merely an example, and other configurations may be used. For example, the user environment E2 may include various devices such as a projector, an electronic whiteboard, etc., in addition to or instead of the image forming device 20.

[0024] <Hardware configuration> <Service provision system, PC terminal> The hardware configuration of the service providing system 10 and the PC terminal 30 will be described with reference to Fig. 2. Fig. 2 is a diagram showing an example of the hardware configuration of the service providing system and the PC terminal according to the first embodiment. Note that the service providing system 10 and the PC terminal 30 have similar hardware configurations, and therefore, hereinafter, the hardware configuration of the service providing system 10 will be mainly described.

[0025] The service providing system 10 has an input device 11, a display device 12, an external I / F 13, and a RAM (Random Access Memory) 14. The service providing system 10 also has a ROM (Read Only Memory) 15, a CPU (Central Processing Unit) 16, a communication I / F 17, and an HDD (Hard Disk Drive) 18. Each of these pieces of hardware is connected to a bus B.

[0026] The input device 11 includes a keyboard, a mouse, a touch panel, etc., and is used by the user to input various operation signals. The display device 12 includes a display, etc., and displays the processing results of the service providing system 10. The input device 11 and the display device 12 may be connected to the bus B when necessary.

[0027] The communication I / F 17 is an interface that connects the service providing system 10 to the network N1. This allows the service providing system 10 to perform data communication via the communication I / F 17.

[0028] The HDD 18 is a non-volatile storage device that stores programs and data, including an OS (Operating System), which is basic software that controls the entire service providing system 10, and application software that provides various functions on the OS.

[0029] The service providing system 10 may use a drive device using a flash memory (for example, a solid state drive (SSD)) instead of or in addition to the HDD 18. The HDD 18 manages stored programs and data using a predetermined file system and / or DB.

[0030] The external I / F 13 is an interface with an external device. The external device may be a recording medium 13a or the like. This allows the service providing system 10 to read and / or write data from and to the recording medium 13a via the external I / F 13. The recording medium 13a may be a flexible disk, a CD, a DVD, an SD memory card, a USB memory, or the like.

[0031] The ROM 15 is a non-volatile semiconductor memory that can retain programs and data even when the power is turned off. The ROM 15 stores programs and data such as a BIOS (Basic Input / Output System), OS settings, and network settings that are executed when the service providing system 10 is started up. The RAM 14 is a volatile semiconductor memory that temporarily retains programs and data.

[0032] The CPU 16 is a computing device that controls the entire service providing system 10 and realizes its functions by reading programs and data from the ROM 15, HDD 18, etc. onto the RAM 14 and executing the processes.

[0033] The service providing system 10 and the PC terminal 30 according to this embodiment have the above hardware configuration and are therefore able to perform various processes as will be described later.

[0034] Image forming device The hardware configuration of the image forming apparatus 20 will be described with reference to Fig. 3. Fig. 3 is a diagram showing the hardware configuration of an example of the image forming apparatus according to the first embodiment.

[0035] The image forming apparatus 20 includes a controller 21, an operation panel 22, an external I / F 23, a communication I / F 24, a printer 25, and a scanner 26. The controller 21 also includes a CPU 211, a RAM 212, a ROM 213, an NVRAM 214, and an HDD 215.

[0036] The ROM 213 stores various programs and data. The RAM 212 temporarily holds programs and data. The NVRAM 214 stores, for example, setting information. The HDD 215 stores various programs and data.

[0037] The CPU 211 reads programs, data, setting information, etc. from the ROM 213, NVRAM 214, HDD 215, etc. onto the RAM 212 and executes the processes, thereby realizing the overall control and functions of the image forming apparatus 20.

[0038] The operation panel 22 includes an input unit that accepts input from a user and a display unit that displays information. The external I / F 23 is an interface with an external device. The external device may include a recording medium 23a. This allows the image forming apparatus 20 to read from and / or write to the recording medium 23a via the external I / F 23. The recording medium 23a may include an IC card, a flexible disk, a CD, a DVD, an SD memory card, a USB memory, etc.

[0039] The communication I / F 24 is an interface that connects the image forming apparatus 20 to the network N1. This allows the image forming apparatus 20 to perform data communication via the communication I / F 24. The printer 25 is a printing device that prints print data. The scanner 26 is a reading device that reads an original document and generates an image file (electronic file).

[0040] The image forming apparatus 20 according to this embodiment has the above hardware configuration and can therefore perform various processes as will be described later.

[0041] <Software configuration> Next, processing blocks of the information processing system 1 according to this embodiment will be described with reference to Fig. 4. Fig. 4 is a diagram showing processing blocks of an example of an information processing system according to the first embodiment.

[0042] 4 has a browser 210 executed by, for example, a CPU 211. A user of the image forming apparatus 20 can use the services provided by the service providing system 10 via the browser 210. In this way, the image forming apparatus 20 according to this embodiment only needs to be equipped (installed) with the browser 210, and does not need to be equipped with a dedicated application for using the services.

[0043] 4 has a browser 310 executed by, for example, the CPU 16. A user of the PC terminal 30 can add programs, modules, etc. that execute predetermined processes (i.e., "components" to be described later) to the service providing system 10 via the browser 310. As a result, in the service providing system 10 according to this embodiment, it is possible to add services that are realized by the components added from the PC terminal 30.

[0044] Here, a component is a module or the like for executing one process included in a series of processes for realizing a service provided by the service providing system 10.

[0045] 4 includes a service processing unit 110, a document service unit 150, and a storage service cooperation unit 160. Each of these units is realized by processing that is executed by the CPU 16 of one or more programs installed in the service providing system 10.

[0046] The service providing system 10 also has an application information storage unit 190. The application information storage unit 190 can be realized by the HDD 18. Note that the application information storage unit 190 may also be realized by a storage device or the like connected to the service providing system 10 via the network N1.

[0047] The service processing unit 110 executes processing related to various services in response to a request from the browser 210 of the image forming apparatus 20. The service processing unit 110 includes an application management unit 120, a logic processing unit 130, and a data I / F unit 140.

[0048] The application management unit 120 manages application information 1000 stored in the application information storage unit 190. In response to a request from the browser 210 of the image forming apparatus 20, the application management unit 120 returns an application screen based on a screen definition included in the application information 1000. As a result, the browser 210 displays an application screen on the operation panel 22 of the image forming apparatus 20 for using a service provided by the service providing system 10.

[0049] Here, the application information 1000 includes a screen definition for displaying the application screen on the image forming apparatus 20 and processing content for realizing the service used from the application screen. Note that the application information 1000 may include multiple screen definitions and multiple processing content.

[0050] In addition, in response to a request from the logic processing unit 130, the application management unit 120 replies with the processing content included in the application information 1000. The processing content describes a series of processes (a series of processes is also referred to as a "processing flow") for realizing a service provided by the service providing system 10.

[0051] In response to a request from the browser 210 of the image forming apparatus 20, the logic processing unit 130 acquires processing content via the application management unit 120. Then, the logic processing unit 130 executes a series of processes based on the acquired processing content.

[0052] That is, the logic processing unit 130 executes a series of processes based on the processing contents by requesting the document service unit 150 and / or the file processing unit 170 of the storage service cooperation unit 160 to execute processing according to the processing contents. In this way, the service providing system 10 according to this embodiment can provide various services to the image forming apparatus 20. The detailed processing blocks of the logic processing unit 130 will be described later.

[0053] In response to a request from the browser 210 of the image forming apparatus 20, the data I / F unit 140 makes a predetermined request (for example, a request to acquire a folder list) to the data processing unit 180 of the storage service cooperation unit 160.

[0054] The document service unit 150 is a group of programs (modules) for realizing the services provided by the service providing system 10. The document service unit 150 includes an OCR processor 151 that performs OCR processing on electronic files. Note that the document service unit 150 may also include various programs, such as a translation processing program that translates a document file (electronic file) written in a predetermined language into another predetermined language.

[0055] In response to requests from the logic processing unit 130 and the data I / F unit 140, the storage service cooperation unit 160 requests the external storage system 40 to execute various processes.

[0056] Here, the service providing system 10 according to this embodiment has a storage service coordinating unit 160 for each external storage system 40. That is, the service providing system 10 has a storage service A coordinating unit 1601 for requesting the external storage system 401 to execute processing, a storage service B coordinating unit 1602 for requesting the external storage system 402 to execute processing, etc. In this way, the service providing system 10 has a storage service coordinating unit 160 corresponding to each external storage system 40 that performs processing in cooperation with the service providing system 10.

[0057] In the following description, when the plurality of storage service collaboration units 160 are to be distinguished from one another, they will be referred to as a "storage service A collaboration unit 1601," a "storage service B collaboration unit 1602," and so on.

[0058] As described above, the storage service collaboration unit 160 includes the file processing unit 170 that receives requests from the logic processing unit 130, and the data processing unit 180 that receives requests from the data I / F unit 140.

[0059] The file processing unit 170 has a common I / F 171 and a specific I / F 172 that define an API (Application Programming Interface) for performing operations (e.g., acquisition, saving, editing, etc.) on electronic files stored in the external storage system 40.

[0060] The common I / F 171 is an API that can be used in common among a plurality of external storage systems 40, such as the API shown in Fig. 5(a). In other words, the common I / F 171 of the file processing unit 170 is a group of APIs for using functions related to file operations (for example, obtaining and saving files) that can be used by all external storage systems 40.

[0061] On the other hand, the specific I / F 172 is an API that can be used in a specific external storage system 40, such as the API shown in Fig. 5(b). In other words, the specific I / F 172 of the file processing unit 170 is a group of APIs for using functions related to file operations (for example, editing a file) that can be used in a specific external storage system 40.

[0062] Therefore, the common I / F 171 is defined in the same way for all storage service collaboration units 160. On the other hand, the specific I / F 172 is defined individually for the storage service collaboration unit 160 corresponding to the specific external storage system 40 that can use the API defined by the specific I / F 172.

[0063] In addition, the data processing unit 180 has a common I / F 181 and a specific I / F 182 that define an API for obtaining metadata such as bibliographic information of electronic files stored in the external storage system 40 (e.g., file list, folder list, etc.).

[0064] The common I / F 181 is an API that can be used in common among a plurality of external storage systems 40, such as the API shown in Fig. 5(c). In other words, the common I / F 181 of the data processing unit 180 is a group of APIs for using functions such as metadata acquisition that can be used in all external storage systems 40.

[0065] On the other hand, the specific I / F 182 is an API that can be used in a specific external storage system 40, such as the API shown in Fig. 5(d). In other words, the specific I / F 182 of the data processing unit 180 is a group of APIs for using functions such as metadata acquisition (for example, acquisition of a list of image files) that can be used in a specific external storage system 40.

[0066] Therefore, the common I / F 181 is defined in the same way for all storage service collaboration units 160. On the other hand, the specific I / F 182 is defined individually for the storage service collaboration unit 160 corresponding to the specific external storage system 40 that can use the API defined by the specific I / F 182.

[0067] As described above, the service providing system 10 according to this embodiment has a storage service collaboration unit 160 corresponding to each external storage system 40 that performs processing in collaboration with the external storage system 40. Therefore, in the information processing system 1 according to this embodiment, when an external storage system 40 to be a collaboration destination is added, it is sufficient to add, to the service providing system 10, a storage service collaboration unit 160 corresponding to the external storage system 40.

[0068] Therefore, the service providing system 10 according to this embodiment can localize the impact of adding a linked external storage system 40. In other words, adding a linked external storage system 40 can be performed without affecting other processing blocks (such as the service processing unit 110 and the document service unit 150) (i.e., without the need to modify other processing blocks).

[0069] As a result, in the service providing system 10 according to this embodiment, it is possible to reduce the number of steps required for development such as adding a linked external storage system 40. The storage service linking unit 160 can be added using an SDK (Software Development Kit).

[0070] In addition, in the storage service cooperation unit 160, the common I / F 171 and the specific I / F 172 are realized by different modules, etc. Furthermore, the APIs defined by the common I / F 171 and the specific I / F 172 can be used by specifying a "storage service name" (external service name) (that is, the "storage service name" (external service name) is a variable part).

[0071] Therefore, when adding a linked external storage system 40, it is possible to reuse the common I / F 171 defined in other storage service linking units 160. In other words, when adding a linked external storage system 40, it is only necessary to develop the specific I / F 172 of the external storage system 40 to be added. This makes it possible to further reduce the number of steps required for development such as adding a linked external storage system 40 in the service providing system 10 according to this embodiment. The same applies to the common I / F 181 and specific I / F 182 of the data processing unit 180.

[0072] The application information storage unit 190 stores application information 1000 for providing various services. The application information 1000 includes a screen definition for displaying an application screen on the image forming device 20 and processing content that describes a series of processes for realizing a service used from the application screen. The application information 1000 is also assigned an application ID for uniquely identifying the application information 1000. Hereinafter, the application ID of the application information 1000 for providing a scan delivery service in cooperation with storage service A is assumed to be "app001."

[0073] Here, a data definition included in the screen definition of the application information 1000 for providing a scan delivery service in cooperation with the storage service A will be described with reference to Fig. 6. Fig. 6 is a diagram showing an example of the data definition.

[0074] The data definition 1100 shown in Figure 6 describes information for configuring input fields (input boxes) and selection fields (selection boxes) of an application screen displayed on the operation panel 22, etc. by the browser 210 of the image forming device 20.

[0075] Specifically, a data definition section 1101 included in a data definition 1100 shown in Fig. 6 describes information for configuring an input field for inputting the file name of an electronic file generated by scanning. Also, a data definition section 1102 included in the data definition shown in Fig. 6 describes information for configuring a selection field for selecting a destination folder in storage service A.

[0076] In the "data_source" of the data definition section 1102, a URL (Uniform Resource Locator) from which each selection element in the selection field (here, the folder name and folder ID of the storage destination candidate) is obtained is described.

[0077] Next, layout information included in the screen definition of the application information 1000 for providing a scan delivery service in cooperation with the storage service A will be described with reference to Fig. 7. Fig. 7 is a diagram showing an example of layout information.

[0078] The layout information 1200 shown in FIG. 7 describes information such as characters (such as display names of input fields) on the application screen displayed on the operation panel 22, etc. by the browser 210 of the image forming device 20, as well as the display positions and display names of input fields, selection fields, etc.

[0079] Specifically, layout definition section 1201 included in layout information 1200 shown in FIG. 7 describes information on the display position and display name of "data_id":1 (i.e., data definition section 1101) in the data definition 1100. As a result, an input field with the display name "File name" is displayed in the first position on the application screen. Also, layout definition section 1202 included in layout information 1200 describes information on the display position and display name of "data_id":2 (i.e., data definition section 1102) in the data definition 1100. As a result, a selection field with the display name "Select destination folder" is displayed in the second position on the application screen.

[0080] Next, the processing content of the application information 1000 for providing the scan delivery service in cooperation with the storage service A will be described with reference to Fig. 8. Fig. 8 is a diagram showing an example of the processing content.

[0081] The process content 1300 shown in FIG. 8 describes a series of processes for realizing a scan delivery service in cooperation with storage service A.

[0082] Specifically, a flow ID definition section 1301 included in processing content 1300 shown in Fig. 8 describes a flow ID "flow001" which is identification information for uniquely identifying the processing content 1300. Furthermore, processing definition sections 1302 and 1303 shown in Fig. 8 define a series of processing contents for realizing a scan delivery service linked with storage service A.

[0083] That is, the process definition section 1302 describes the process content for OCR processing of the electronic file generated by scanning. Also, the process definition section 1303 describes the process content for delivering the electronic file after OCR processing to storage service A. In this way, the process content included in the app information 1000 describes the content of one or more processes that constitute a series of processes in cooperation with the external storage system 40.

[0084] As described above, the service providing system 10 according to this embodiment has the app information 1000, which includes a screen definition for displaying an app screen on the image forming apparatus 20 and processing content describing a series of processes (processing flow) for realizing the service. The service providing system 10 according to this embodiment provides various services to the image forming apparatus 20 using the app information 1000. Therefore, when adding a service provided by the service providing system 10, it is sufficient to add the app information 1000 to the app information storage unit 190.

[0085] Furthermore, adding the application information 1000 to the service providing system 10 according to this embodiment can be easily developed by simply describing the screen definition and processing content. Therefore, the service providing system 10 according to this embodiment can reduce the number of development steps required for adding or changing a service, and can easily add or change services by, for example, a third vendor.

[0086] <Processing details> Next, the details of the processing of the information processing system 1 according to this embodiment will be described.

[0087] <<Overall processing of scan distribution service>> The overall process when a user of the image forming device 20 uses the scan delivery service according to this embodiment will be described with reference to Fig. 9. Fig. 9 is a sequence diagram showing an example of the overall process of the scan delivery service according to the first embodiment.

[0088] First, the user of the image forming apparatus 20 uses the browser 210 to perform an operation to acquire a list of services provided by the service providing system 10. Then, the image forming apparatus 20 transmits a request to acquire the list of services to the service processing unit 110 of the service providing system 10 (step S901). Upon receiving the request, the application management unit 120 of the service processing unit 110 transmits the list of services provided by the service providing system 10 to the image forming apparatus 20. As a result, the list of services provided by the service providing system 10 is displayed on the operation panel 22 of the image forming apparatus 20 by the browser 210.

[0089] The list of services includes, for example, the service name of the service provided by the service providing system 10, the application ID of the application information 1000 for providing the service, and the flow ID of the processing content for realizing the service.

[0090] The user selects a service that the user wishes to use from the list of services displayed on the operation panel 22 of the image forming apparatus 20. Then, the browser 210 transmits the application ID of the application information 1000 corresponding to the service selected by the user and the flow ID of the processing content to the application management unit 120 (step S902).

[0091] In this embodiment, it is assumed that the user has selected to use the "scan delivery service in cooperation with storage service A." Therefore, the browser 210 transmits the application ID "app001" and the flow ID "flow001" to the application management unit 120.

[0092] The application management unit 120 then generates an application screen in HTML (HyperText Markup Language) format based on the screen definition included in the application information 1000 of the application ID “app001” received from the browser 210 and returns the generated screen to the browser 210.

[0093] When the browser 210 of the image forming apparatus 20 receives the application screen from the application management unit 120, the browser 210 requests the data I / F unit 140 to acquire display information (step S903).

[0094] Here, the display information refers to, for example, each selection element in a selection field on the application screen. That is, in this embodiment, the browser 210 requests the data I / F unit 140 to acquire a list of folders in storage service A, which is the distribution destination (save destination) of the scan distribution service.

[0095] A request to acquire display information can be made by sending an HTTP request to the URL "http: / / sample.xxx.co.jp / service-a / data / folders" defined in "data_source" described in the data definition section 1102 of FIG.

[0096] In the URL, the "http: / / sample.xxx.co.jp" portion is the host name of the service providing system 10, and the " / service-a / data / folders" portion is the API specification in the storage service collaboration unit 160 (that is, the API shown in FIG. 5).

[0097] Next, when the data I / F unit 140 receives a request to acquire display information from the browser 210, it transmits the request to the data processing unit 180 of the corresponding storage service cooperation unit 160 (step S904). That is, the data I / F unit 140 transmits the request to the data processing unit 1801 of the storage service A cooperation unit 1601 based on "service-a" (storage service name) included in the above URL.

[0098] When the data processing unit 180 receives the request to acquire display information from the data I / F unit 140, it transmits a processing request based on the URL included in the acquisition request to the external storage system 40 (step S905). That is, based on the URL included in the acquisition request received from the data I / F unit 140, the data processing unit 180 uses the API defined in the common I / F 181 or the specific I / F 182 to request the relevant external storage system 40 to perform processing.

[0099] More specifically, based on " / service-a / data / folders" included in the above URL, the data processing unit 1801 uses the API defined in the common I / F 1811 to request the external storage system 401 to acquire a folder list. Then, the browser 210 of the image forming apparatus 20 acquires the folder list via the storage service A cooperation unit 1601. The folder list contains information such as folder names and folder IDs of storage service A that are candidates for storage destinations for electronic files in the scan delivery service according to this embodiment.

[0100] Next, the browser 210 displays, on the operation panel 22, an application screen 2000 such as that shown in FIG. 10(a) based on the application screen received from the application management unit 120 and the folder list received from the external storage system 40 (step S906).

[0101] 10(a), an application screen 2000 for using the scan delivery service includes a file name input field 2001, a destination folder selection field 2002, and a scan execution button 2003. Of these, the file name input field 2001 and the destination folder selection field 2002 are written in HTML source codes 2101 and 2102, respectively, as shown in FIG. 10(b). Such HTML source codes 2101 and 2102 are generated by the application management unit 120 based on the data definition sections 1101 and 1102 shown in FIG. 6 and the layout definition sections 1201 and 1202 shown in FIG. 7.

[0102] However, the setting value of "option" specified in the HTML source code 2102 is set by the browser 210 based on the folder list acquired from the external storage system 40. In this way, the application screen 2000 is generated by setting the information of the folder list acquired from the external storage system 40 to the HTML generated by the application management unit 120 based on the screen definition included in the application information 1000.

[0103] Next, on the application screen 2000 of Fig. 10(a), the user inputs a desired file name in a file name input field 2001 and selects a desired destination folder from a destination folder selection field 2002. Then, the user places an original on the scanner 26 of the image forming apparatus 20 and presses the scan execution button 2003. The browser 210 of the image forming apparatus 20 then accepts these operations (step S907).

[0104] Here, it is assumed that the user inputs the file name "test" in the file name input field 2001, selects "FolderB" from the destination folder selection field 2002, and presses the scan execution button 2003. Then, the document is read by the scanner 26 of the image forming device 20, and an electronic file with the file name "test" is generated (step S908).

[0105] Next, the browser 210 of the image forming apparatus 20 transmits a process execution request for the scan delivery service to the logic processing unit 130 (step S909). Here, the execution request includes the application ID "app001", the flow ID "flow001" of the process content 1300 included in the application information 1000 of the application ID, the generated electronic file, and the folder ID "folder_id_b" of the selected destination folder "FolderB".

[0106] When the logic processing unit 130 receives a process execution request from the browser 210, it performs a flow execution process to execute a series of processes based on the process content corresponding to the application ID and flow ID included in the process execution request (step S910). This realizes a scan delivery service linked with storage service A. Details of the flow execution process will be described later.

[0107] Then, the logic processing unit 130 transmits the processing result of the flow execution process to the browser 210 of the image forming apparatus 20 (step S911), thereby completing the scan delivery service according to this embodiment.

[0108] <<Flow execution process>> Next, details of the flow execution process in step S910 in Fig. 9 will be described. The flow execution process is mainly executed by the logic processing unit 130. Therefore, before describing the details of the flow execution process, detailed processing blocks of the logic processing unit 130 will be described with reference to Fig. 11. Fig. 11 is a diagram showing processing blocks of an example of a logic processing unit according to the first embodiment.

[0109] The logic processing unit 130 includes a flow execution unit 131, a component management unit 132, a component group 133, a type conversion management unit 134, and a type conversion group 135. The logic processing unit 130 also uses a component information table 3000 and a type conversion table 4000.

[0110] When the flow execution unit 131 receives a process execution request from the browser 210 of the image forming apparatus 20, it acquires the process content from the application information 1000 via the application management unit 120. Then, the flow execution unit 131 requests acquisition of a component that executes one of the processes included in the series of processes according to the content of the series of processes described in the acquired process content. Furthermore, the flow execution unit 131 requests the acquired component to execute the process.

[0111] The component management unit 132 generates a component in response to a component acquisition request from the flow execution unit 131. Note that generating a component means, for example, expanding a component defined by a class into a memory (for example, RAM 14).

[0112] The component management unit 132 includes a component determination unit 1321 , an existing component generation unit 1322 , an additional component generation unit 1323 , and a component registration unit 1324 .

[0113] In response to a component acquisition request from the flow execution unit 131, the component determination unit 1321 refers to the component information table 3000 and determines whether the component related to the acquisition request is an existing component or an additional component.

[0114] Here, an existing component refers to a component that is pre-installed in the service providing system 10. On the other hand, an added component refers to a component that is registered in the component information table 3000 by a user via the PC terminal 30. In other words, an added component is a component that is developed by a user and added to the service providing system 10.

[0115] In this way, the service providing system 10 according to this embodiment allows users to add components developed by the user, etc. Therefore, the user can describe a series of processes realized using the added components as processing content, thereby enabling the user to develop application information 1000 that provides various services.

[0116] When the component determination unit 1321 determines that the component related to the component acquisition request is an existing component, the existing component generation unit 1322 generates the existing component related to the acquisition request.

[0117] When the component determining unit 1321 determines that the component related to the component acquisition request is an additional component, the additional component generating unit 1323 generates the additional component related to the acquisition request.

[0118] The component registration unit 1324 registers the added component in the component information table 3000 in response to a request from the browser 310 of the PC terminal 30. Furthermore, the component registration unit 1324 updates or deletes the added component registered in the component information table 3000 in response to a request from the browser 310 of the PC terminal 30.

[0119] The component information table 3000 will now be described with reference to Fig. 12. Fig. 12 is a diagram showing an example of component information according to the first embodiment.

[0120] 12 manages information about each component (component information) for each component. The component information includes the component name, version, parameters, and file as data items.

[0121] The component name is information about the component. The version is the version of the component. Each component is uniquely identified by the component name and version.

[0122] The parameters are input parameters for the components. For example, the parameters of a component (a distribution component described later) for distributing an electronic file to the external storage system 40 include the folder ID of the destination folder in the external storage system 40.

[0123] The file is an electronic file for generating a component (hereinafter, this electronic file will be referred to as a "generated file") stored in a data format such as JAR (Java Archive). Therefore, in this embodiment, the data item "file" of the component information of an added component stores the generated file of the added component. On the other hand, the data item "file" of the component information of an existing component does not store the generated file.

[0124] 12, the component information table 3000 stores no generated file in the data item "file" of the component information for the component name "ocrA" and version "v1." On the other hand, the component information table 3000 stores the generated file of the component in the data item "file" of the component information for the component name "ocrB" and version "v2."

[0125] 12, the component information of the component name "ocrA" and version "v1" is the component information of an existing component, while the component information of the component name "ocrB" and version "v2" is the component information of an added component.

[0126] The component group 133 is a collection of existing components and additional components. The component group 133 includes an OCRA component 1331 that corresponds to component information with a component name of "ocrA" and a version of "v1." The component group 133 also includes an OCRB component 1332 that corresponds to component information with a component name of "ocrB" and a version of "v2."

[0127] Similarly, component group 133 includes delivery A component 1333 corresponding to component information with component name "uploadA" and version "v1." Component group 133 also includes delivery B component 1334 corresponding to component information with component name "uploadB" and version "v1."

[0128] In this way, the component group 133 is a collection of components corresponding to the component information managed in the component information table 3000 .

[0129] Furthermore, each component included in the component group 133 has a component common I / F 1330. The component common I / F 1330 is an API defined commonly for each component, and includes an API for generating a component and an API for requesting the component to execute processing.

[0130] In this way, by each component having the component common I / F 1330, it is possible to localize the impact of adding a component, etc. In other words, it is possible to add a component, etc. without affecting the flow execution unit 131, the component management unit 132, other components, etc. This makes it possible to reduce the number of steps required for development, such as adding a component.

[0131] The type conversion management unit 134 manages type conversion of data types. Here, the data types that each component can handle are predetermined. Therefore, in response to a request from a component, the type conversion management unit 134 references the type conversion table 4000 and generates a type conversion that meets the request.

[0132] Here, the type conversion table 4000 will be described with reference to Fig. 13. Fig. 13 is a diagram showing an example of the type conversion table.

[0133] 13 manages information related to type conversion (type conversion information). The type conversion information has, as data items, a data type before conversion, a data type after conversion, and a type conversion to be generated. As a result, for example, when a request to convert the data type of "InputStream" to the data type of "LocalFilePath" is received from a component, the type conversion management unit 134 generates a first type conversion 1351, which will be described later.

[0134] Then, the type conversion management unit 134 requests the execution of type conversion processing for the generated type conversion. Here, the type conversion is a module or the like for executing type conversion processing of a data type, and is defined by, for example, a class, a function, or the like.

[0135] Note that generating a type conversion means, for example, expanding a type conversion defined in a class onto a memory (for example, RAM 14). In addition, examples of data types include "InputStream" which indicates stream data, "LocalFilePath" which indicates the path (address) of an electronic file stored in a storage device, and "File" which indicates the entity of an electronic file.

[0136] The type conversion group 135 is a set of type conversions. The type conversion group 135 includes a first type conversion 1351 that converts the data type "InputStream" to "LocalFilePath". In addition to the first type conversion 1351, the type conversion group 135 also includes, for example, a second type conversion that converts "LocalFilePath" to "File".

[0137] Furthermore, each of these type conversions has a type conversion common I / F 1350. The type conversion common I / F 1350 is an API commonly defined for each type conversion, and includes an API for generating a type conversion and an API for requesting the type conversion to execute processing. In this way, by having each type conversion have the type conversion common I / F 1350, the impact of adding a type conversion, etc. can be localized. In other words, components can be added, etc. without affecting the type conversion management unit 134. This reduces the number of man-hours required for development, such as adding a type conversion.

[0138] Next, the flow execution process in step S910 in Fig. 9 will be described in detail with reference to Fig. 14. Fig. 14 is a sequence diagram showing an example of the flow execution process according to the first embodiment.

[0139] First, when the flow execution unit 131 receives a process execution request for the scan delivery service from the browser 210, it requests the application management unit 120 to acquire the process content (step S1401). Here, the request to acquire the process content includes the application ID "app001" and the flow ID "flow001".

[0140] Then, the flow execution unit 131 acquires the process content of the flow ID "flow001" included in the application information 1000 corresponding to the application ID "app001" from the application management unit 120. That is, the flow execution unit 131 acquires the process content 1300 shown in FIG.

[0141] The flow execution unit 131 requests the component management unit 132 to acquire a component in accordance with the acquired process content 1300 (step S1402). More specifically, the flow execution unit 131 requests the component management unit 132 to acquire a component with the component name "ocrB" and version "v2" based on the description in the process definition section 1302 of the process content 1300 shown in FIG. 8.

[0142] When the component management unit 132 receives a component acquisition request, the component determination unit 1321 determines whether the component related to the acquisition request is an existing component or an additional component (step S1403). That is, the component determination unit 1321 refers to the component information table 3000 and determines whether a generated file of the component is stored in the data item "file" of the component information of the component name "ocrB" and version "v2".

[0143] If the data item "file" of the component information contains a generated file of the component, the component determination unit 1321 determines that the component related to the acquisition request is an additional component. On the other hand, if the data item "file" of the component information does not contain a generated file of the component, the component determination unit 1321 determines that the component related to the acquisition request is an existing component.

[0144] In this embodiment, the component generated file is stored in the data item “file” in the component information table 3000 for the component name “ocrB” and version “v2.” Therefore, the component determination unit 1321 determines that the component related to the acquisition request is an added component.

[0145] If the component determining unit 1321 determines that the component related to the acquisition request is an additional component, it transmits the acquisition request to the additional component generating unit 1323 (step S1404).

[0146] Next, upon receiving the acquisition request, the additional component generation unit 1323 acquires the generated file of the component from the component information table 3000 based on the component name "ocrB" and version "v2" (step S1405). That is, the additional component generation unit 1323 acquires the generated file stored in the data item "file" of the component information of the component name "ocrB" and version "v2".

[0147] Next, the additional component generation unit 1323 generates an additional component based on the acquired generation file (step S1406). That is, the additional component generation unit 1323 generates an OCRB component 1332 based on the generation file acquired from the component information of the component name "ocrB" and version "v2". Note that the generation of the OCRB component 1332 can be performed, for example, by executing a generation file in JAR format and using an API for generating a component defined in the component common I / F 1330.

[0148] Then, when the OCRB component 1332 is generated, the additional component generation unit 1323 returns the OCRB component 1332 to the flow execution unit 131. For example, the additional component generation unit 1323 may return to the flow execution unit 131 the address in memory (for example, RAM 14) where the OCRB component 1332 is deployed.

[0149] Next, the flow execution unit 131 specifies data and requests the generated OCRB component 1332 to execute processing (step S1407). The data specified here is an electronic file passed from the browser 210 as the data type "InputStream."

[0150] That is, the flow execution unit 131 passes the electronic file passed from the browser 210 as the data type "InputStream" simply as "data" (without regard to the data type) to the OCRB component 1332 and requests that it execute processing. In Fig. 14, such electronic files passed without regard to the data type are simply referred to as "data".

[0151] Next, when the OCRB component 1332 receives a request to execute a process specifying data, it requests the type conversion management unit 134 to convert the data type (step S1408). Here, the type conversion request includes the data and a specification of "LocalFilePath" that indicates a data type that the OCRB component 1332 can handle.

[0152] When the type conversion management unit 134 receives a type conversion request, it checks whether the data type of the data included in the type conversion request matches the specified data type (step S1409). Here, the data type of the data included in the received type conversion request is "InputStream", while the specified data type is "LocalFilePath", so it is determined that they do not match.

[0153] Then, the type conversion management unit 134 refers to the type conversion table 4000, identifies a type conversion for converting "InputStream" to "LocalFilePath" (here, the first type conversion 1351 is identified), and generates the identified type conversion (step S1410).

[0154] Next, the type conversion management unit 134 requests the generated first type conversion 1351 to execute type conversion processing by specifying data (step S1411). In response, the first type conversion 1351 converts the data type of the specified data from "InputStream" to "LocalFilePath" (step S1412) and returns the converted data to the type conversion management unit 134. The type conversion management unit 134 then returns the converted data to the OCRB component 1332 (step S1413).

[0155] When the OCRB component 1332 receives the data after type conversion, it executes processing (step S1414). That is, it executes OCR processing on the electronic file indicated by the data (i.e., path or address) of the data type "LocalFilePath." More specifically, the OCRB component 1332 requests processing from the OCR processing 151 of the document service unit 150, and the OCR processing 151 executes processing on the electronic file.

[0156] Then, when the execution of the process is completed, the OCRB component 1332 returns data to the flow execution unit 131. The returned data is a path or address indicating the electronic file after the OCR process (i.e., the data type of the returned data is "LocalFilePath").

[0157] Next, the flow execution unit 131 requests the component management unit 132 to acquire a component in accordance with the acquired process content 1300 (step S1415). More specifically, the flow execution unit 131 requests the component management unit 132 to acquire a component with the component name "uploadA" and version "v1" based on the description in the process definition section 1303 next to the process definition section 1302 of the process content 1300 shown in FIG. 8.

[0158] When the component management unit 132 receives a component acquisition request, the component determination unit 1321 determines whether the component related to the acquisition request is an existing component or an additional component (step S1416). That is, the component determination unit 1321 refers to the component information table 3000 and determines whether a generated file of the component is stored in the data item "file" of the component information of the component name "uploadA" and version "v1".

[0159] If the data item "file" of the component information contains a generated file of the component, the component determination unit 1321 determines that the component related to the acquisition request is an additional component. On the other hand, if the data item "file" of the component information does not contain a generated file of the component, the component determination unit 1321 determines that the component related to the acquisition request is an existing component.

[0160] In this embodiment, the component information table 3000 does not store a generated file of the component in the data item “file” in the component information of the component name “uploadA” and version “v1.” Therefore, the component determination unit 1321 determines that the component related to the acquisition request is an existing component.

[0161] If the component determining unit 1321 determines that the component related to the acquisition request is an existing component, it transmits the acquisition request to the existing component generating unit 1322 (step S1417).

[0162] Next, upon receiving the component acquisition request, the existing component generation unit 1322 generates an existing component related to the acquisition request (step S1418). That is, the existing component generation unit 1322 generates a delivery A component 1333 based on the component name "uploadA" and version "v1". The delivery A component 1333 can be generated using an API for generating a component defined in the component common I / F 1330.

[0163] Then, when the delivery A component 1333 is generated, the existing component generation unit 1322 returns the delivery A component 1333 to the flow execution unit 131. For example, the existing component generation unit 1322 can return to the flow execution unit 131 the address on the memory (e.g., RAM 14) where the delivery A component 1333 is deployed.

[0164] Next, the flow execution unit 131 specifies data and requests the generated delivery A component 1333 to execute processing (step S1419). The data specified here is the electronic file after OCR processing returned from the OCRB component 1332 with the data type "LocalFilePath".

[0165] Next, when the delivery A component 1333 receives a request to execute a process specifying data, it requests the type conversion management unit 134 to convert the data type (step S1420). Here, the type conversion request includes the data and a specification of "LocalFilePath" that indicates a data type that the delivery A component 1333 can handle.

[0166] When the type conversion management unit 134 receives a type conversion request, it checks whether the data type of the data included in the type conversion request matches the specified data type (step S1421). In this case, the data type of the data included in the received type conversion request is "LocalFilePath", and the specified data type is also "LocalFilePath", so it is determined that they match.

[0167] Then, the type conversion management unit 134 transmits the data included in the type conversion request as is to the delivery A component 1333 (step S1422). In this way, if the data types of both match in the data type check (processing of step S1421), the type conversion management unit 134 does not generate a type conversion.

[0168] Upon receiving the data from the type conversion management unit 134, the delivery A component 1333 executes the processing (step S1423).

[0169] That is, the delivery A component 1333 requests the file processing unit 1701 of the storage service A coordinating unit 1601 to execute data delivery using a file saving API defined as the common I / F 1711. More specifically, the delivery A component 1333 requests the file processing unit 1701 of the storage service A coordinating unit 1601 to execute data delivery using "service-a / process / folder" as the API shown in Fig. 5(a). As a result, an electronic file with the file name "test" (an electronic file obtained by OCR processing of an electronic file generated by scanning) is saved in the folder "FolderB" of storage service A.

[0170] Then, when the execution of the process is completed, the delivery A component 1333 returns data to the flow execution unit 131. The returned data is, for example, a processing result indicating that the electronic file has been successfully delivered to storage service A. This completes the execution of a series of processes in cooperation with storage service A based on the process content 1300 in the service providing system 10 according to this embodiment.

[0171] As described above, the service providing system 10 according to this embodiment determines whether a component that executes one process included in a series of processes for realizing a service is an existing component or an additional component. Then, the service providing system 10 according to this embodiment generates the existing component or the additional component depending on the determination result.

[0172] As described above, the service providing system 10 according to this embodiment can utilize various components that are developed and distributed in, for example, a JAR format. Therefore, for example, a developer of the application information 1000 can describe, as processing content, the content of a series of processes configured by processes executed by various components including additional components. Therefore, the service providing system 10 according to this embodiment can provide a variety of services realized by a series of processes including processes executed by additional components.

[0173] ≪Component addition, update, and deletion processing≫ Next, processing for adding an additional component to the service providing system 10 according to this embodiment, updating an additional component, and deleting an additional component will be described with reference to Fig. 15. Fig. 15 is a sequence diagram showing an example of processing for adding, updating, and deleting a component according to the first embodiment.

[0174] First, a user such as a component developer performs a display operation of a component edit screen using the browser 310 of the PC terminal 30. Then, the browser 310 accepts the display operation and displays, for example, a component edit screen 5000 shown in Fig. 16(a) on the display device 12 (step S1501).

[0175] 16(a) is a screen for adding (registering), updating, and deleting additional components. The component editing screen 5000 includes an add button 5010 for registering a new component in the component information table 3000, an update button 5020 for updating a registered additional component, and a delete button 5030 for deleting the component.

[0176] When the user selects the add button 5010 on the component edit screen 5000, the browser 310 accepts the operation and displays, for example, a component addition screen 5100 shown in FIG. 16(b) (step S1502).

[0177] The component addition screen 5100 shown in FIG. 16(b) is a screen for adding (registering) a component, and includes a component name field 5110, a file field 5120, a browse button 5130, and a register button 5140.

[0178] The user enters the component name of the additional component to be registered in component name field 5110, specifies the generated file of the additional component in file field 5120, and then presses register button 5140 to register the additional component. Browser 310 then accepts the registration operation (step S1503). Note that the user may also specify the generated file in file field 5120 by pressing browse button 5130 to display a list of storage locations for the generated file, and then selecting the desired generated file from the list.

[0179] When the browser 310 receives the operation to register an additional component, it requests the component management unit 132 to register the component (step S1504). The component registration request includes the component name specified in the component name column 5110 and the generated file specified in the file column 5120.

[0180] When the component management unit 132 receives the component registration request, the component registration unit 1324 creates component information based on the component name and generated file included in the registration request. Then, the component registration unit 1324 registers the created component information in the component information table 3000 (step S1504). As a result, the additional component is registered in the service providing system 10 according to this embodiment.

[0181] If the component information table 3000 does not contain a component name identical to the component name included in the registration request, the component registration unit 1324 sets the data item "version" to "v1" and creates component information. On the other hand, if the component information table 3000 contains a component name identical to the component name included in the registration request, the component registration unit 1324 creates component information by assigning the latest version to the data item "version."

[0182] Furthermore, the component registration unit 1324 acquires information about the input parameters of the added component from the generation file included in the registration request, and creates component information by setting the information about the input parameters in the data item "parameter." Note that if the component registration unit 1324 cannot acquire information about the input parameters from the generation file due to, for example, a different data format, the component registration unit 1324 may display a screen on the PC terminal 30 that prompts the user to specify information about the input parameters.

[0183] When the user selects the update button 5020 associated with the component name and version of the additional component that the user desires to update on the component edit screen 5000, the browser 310 accepts the operation and displays a component update screen 5200, for example, as shown in FIG. 16(c) (step S1506).

[0184] The component update screen 5200 shown in FIG. 16( c ) is a screen for updating an additional component, and includes a file field 5210 , a browse button 5220 , and an update button 5230 .

[0185] The user specifies a generated file in file field 5210, and then presses update button 5230 to update the added component. Browser 310 then accepts the update operation (step S1507). Note that the user may also specify a generated file in file field 5210 by pressing browse button 5220 to display a list of storage locations for generated files, and then selecting the desired generated file from the list.

[0186] When the browser 310 receives the operation to update the added component, it requests the component management unit 132 to update the component (step S1508). The component update request includes the component name and version associated with the update button 5020 selected by the user, and the generated file specified in the file field 5210.

[0187] When the component management unit 132 receives the component update request, the component registration unit 1324 updates the component information registered in the component information table 3000 (step S1509). That is, the component registration unit 1324 overwrites and updates the data item "file" of the component information corresponding to the component name and version included in the registration request with the generated file included in the registration request. This updates the added component registered in the service providing system 10 according to this embodiment.

[0188] Note that the service providing system 10 according to this embodiment may not perform an update of an additional component if the update would cause a series of processes based on the processing content included in the application information 1000 to be unable to be executed normally. Alternatively, in this case, the service providing system 10 may register the updated component information in the component information table 3000 while leaving the component information before the update.

[0189] Furthermore, in the service providing system 10 according to this embodiment, if a series of processes using the additional component to be updated is currently being executed, the additional component to be updated can be updated after the execution of the series of processes is completed.

[0190] When the user selects the delete button 5030 associated with the component name and version of the additional component that the user wishes to delete on the component edit screen 5000, the browser 310 accepts the operation (step S1510).

[0191] When the browser 310 receives the operation to delete the added component, it requests the component management unit 132 to delete the component (step S1511). The request to delete the component includes the component name and version associated with the delete button 5030 selected by the user.

[0192] When the component management unit 132 receives the component deletion request, the component registration unit 1324 deletes the component information registered in the component information table 3000 (step S1512). That is, the component registration unit 1324 deletes the component information corresponding to the component name and version included in the deletion request from the component information table 3000. As a result, the added component registered in the service providing system 10 according to this embodiment is deleted.

[0193] As described above, in the service providing system 10 according to this embodiment, additional components can be registered from the PC terminal 30 or the like. Therefore, users such as developers of the application information 1000 can register additional components used in the application information 1000 that they have developed in the service providing system 10. Therefore, the service providing system 10 according to this embodiment can provide a variety of services.

[0194] Furthermore, in the service providing system 10 according to this embodiment, registered additional components can be updated or deleted from the PC terminal 30, etc. This allows users such as developers of the application information 1000 to update additional components used by the application information 1000, thereby enabling flexible development of the application information 1000.

[0195] Furthermore, in the service providing system 10 according to this embodiment, additional components can be used by registering generated files that are developed and distributed in, for example, a JAR format. Therefore, in the service providing system 10 according to this embodiment, additional components can be registered, updated, and deleted without affecting existing components. In other words, in the service providing system 10 according to this embodiment, additional components can be dynamically registered, updated, and deleted without the need to stop the service providing system 10.

[0196] [Second embodiment] Next, an information processing system 1 according to a second embodiment will be described. In the second embodiment, whether the component to be executed in the flow execution process is an existing component or an added component is determined in a manner different from that of the first embodiment. Note that, hereinafter, parts having substantially the same functions and parts performing the same processes as those in the first embodiment will be denoted by the same reference numerals as those in the first embodiment, and descriptions thereof will be omitted.

[0197] <Software configuration> The processing blocks of the logic processing unit 130 of the service providing system 10 included in the information processing system 1 according to the present embodiment will be described with reference to Fig. 17. Fig. 17 is a diagram showing processing blocks of an example of a logic processing unit according to the second embodiment.

[0198] The component management unit 132 of the logic processing unit 130 according to this embodiment includes a component determination unit 1321 A. Furthermore, the logic processing unit 130 according to this embodiment uses a component information table 3000A.

[0199] In response to a component acquisition request, the component determination unit 1321A refers to the component information table 3000A and determines whether the component related to the acquisition request is an existing component or an additional component.

[0200] The component information table 3000A will now be described with reference to Fig. 18. Fig. 18 is a diagram showing an example of a component information table according to the second embodiment.

[0201] 18 further includes a component class as a data item. The component class is a class that indicates whether the component information is component information of an existing component or component information of an added component. Therefore, the component determination unit 1321A according to this embodiment can determine whether the component related to the component acquisition request is an existing component or an added component by referring to the component class of the component information.

[0202] <Processing details> Next, the details of the processing of the information processing system 1 according to this embodiment will be described.

[0203] <<Flow execution process>> Hereinafter, the flow execution process according to this embodiment will be described with reference to Fig. 19. Fig. 19 is a sequence diagram showing an example of the flow execution process according to the second embodiment. Note that the description of the parts that perform the same processes as in the flow execution process according to the first embodiment will be omitted.

[0204] When the component management unit 132 receives a component acquisition request, the component determination unit 1321A determines whether the component related to the acquisition request is an existing component or an added component (step S1901). That is, the component determination unit 1321A refers to the component information table 3000A and determines whether the data item "component classification" of the component information for the component name "ocrB" and version "v2" is "existing" or "addition."

[0205] If the data item "component classification" of the component information is "addition", the component determination unit 1321A determines that the component related to the acquisition request is an added component. On the other hand, if the data item "component classification" of the component information is "existing", the component determination unit 1321A determines that the component related to the acquisition request is an existing component.

[0206] In this embodiment, in the component information table 3000A, the component information of the component name “ocrB” and the version “v2” has the data item “component classification” as “added.” Therefore, the component determination unit 1321A determines that the component related to the acquisition request is an added component.

[0207] When the component management unit 132 receives a component acquisition request, the component determination unit 1321A determines whether the component related to the acquisition request is an existing component or an added component (step S1902). That is, the component determination unit 1321A references the component information table 3000A and determines whether the data item "component classification" of the component information for the component name "uploadA" and version "v1" is "existing" or "addition."

[0208] In this embodiment, in the component information table 3000A, the component information with the component name “uploadA” and version “v1” has the data item “component classification” as “existing.” Therefore, the component determination unit 1321A determines that the component related to the acquisition request is an existing component.

[0209] As described above, the service providing system 10 according to this embodiment determines whether the component related to the acquisition request is an existing component or an additional component by referring to the data item "component classification" of the component information. This makes it easier for the service providing system 10 according to this embodiment to determine whether the component is an existing component or an additional component.

[0210] [Third embodiment] Next, an information processing system 1 according to a third embodiment will be described. In the third embodiment, existing components are also generated based on a generated file in the flow execution process. Note that, hereinafter, the same reference numerals as in the second embodiment are used for parts having substantially the same functions and parts performing the same processes as in the second embodiment, and descriptions thereof will be omitted.

[0211] <Software configuration> The processing blocks of the logic processing unit 130 of the service providing system 10 included in the information processing system 1 according to the present embodiment will be described with reference to Fig. 20. Fig. 20 is a diagram showing processing blocks of an example of a logic processing unit according to the third embodiment.

[0212] The component management unit 132 of the logic processing unit 130 according to this embodiment includes an existing component generation unit 1322A. Furthermore, the logic processing unit 130 according to this embodiment uses a component information table 3000B.

[0213] When the component determination unit 1321A determines that the component related to the component acquisition request is an existing component, the existing component generation unit 1322A generates the existing component related to the acquisition request. At this time, the existing component generation unit 1322A obtains a generation file of the existing component from the component information table 3000B, and generates the existing component based on the obtained generation file.

[0214] Here, the component information table 3000B will be described with reference to Fig. 21. Fig. 21 is a diagram showing an example of a component information table according to the third embodiment.

[0215] 21, the component information table 3000B stores the generated file in the data item "file" of the component information of the existing component. In this way, the component information table 3000B according to this embodiment also manages the generated files of the existing components.

[0216] <Processing details> Next, the details of the processing of the information processing system 1 according to this embodiment will be described.

[0217] <<Flow execution process>> Hereinafter, the flow execution process according to this embodiment will be described with reference to Fig. 22. Fig. 22 is a sequence diagram showing an example of the flow execution process according to the third embodiment. Note that the description of the parts that perform the same processes as those in the flow execution process according to the second embodiment will be omitted.

[0218] When the existing component generation unit 1322A receives a component acquisition request, it acquires the generated file of the component from the component information table 3000B based on the component name "uploadA" and version "v1" (step S2201). That is, the existing component generation unit 1322A acquires the generated file stored in the data item "file" of the component information of the component name "uploadA" and version "v1".

[0219] Next, the existing component generation unit 1322A generates an existing component based on the acquired generation file (step S2202). That is, the existing component generation unit 1322A generates the delivery A component 1333 based on the generation file acquired from the component information of the component name "uploadA" and version "v1". Note that the delivery A component 1333 can be generated, for example, by executing the generation file in JAR format and using an API for generating a component defined in the component common I / F 1330.

[0220] Then, when the delivery A component 1333 is generated, the existing component generation unit 1322A returns the delivery A component 1333 to the flow execution unit 131. For example, the existing component generation unit 1322A can return to the flow execution unit 131 the address on the memory (for example, RAM 14) where the delivery A component 1333 is deployed.

[0221] As described above, in the service providing system 10 according to this embodiment, existing components are generated based on the generation files stored in the component information table 3000 B. This allows the service providing system 10 according to this embodiment to manage existing components and additional components in the same way.

[0222] The present invention is not limited to the specifically disclosed embodiments above, but various modifications and variations are possible without departing from the scope of the claims. [Explanation of symbols]

[0223] 1. Information Processing Systems 10 Service provision system 20 Image forming device 30 PC terminals 40 External Storage Systems 110 Service Processing Department 120 App Management Department 130 Logic Processing Unit 131 Flow Execution Unit 132 Component Management Department 133 Components 134 Type Conversion Management Unit 135 Type Conversion Group 140 Data I / F section 150 Document Services Department 151 OCR processing 160 Storage Service Collaboration Department 170 File Processing Unit 180 Data Processing Unit 190 Application information storage unit 1000 App Information 1321 Component discrimination unit 1322 Existing Component Generation Unit 1323 Additional Component Generation Unit 1324 Component Registration Unit 3000 Component Information Table 4000 type conversion table [Prior art documents] [Patent documents]

[0224] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-032659

Claims

1. An information processing system including one or more information processing devices, a first storage means for storing, for each application that executes a series of processes using electronic data by combining components that execute the series of processes, application identification information that identifies the application, information about the series of processes, and screen information of a screen that allows the user to specify the electronic data to be used in the series of processes, in association with each other; a second storage means for storing information about the component; The components include a first component and a second component that utilizes data generated by processing of the first component; a transmitting means configured to, when receiving a first request including the application identification information from one of one or more devices connected to the information processing system, transmit to the one device that originated the request the screen information that is stored in the first storage means in association with the application identification information included in the first request, the screen information including information on a configuration for accepting settings related to processing of the second component; a processing execution means for, when receiving from the first device a second request including information regarding electronic data specified by a user via a screen displayed on the first device based on the screen information transmitted by the transmission means, executing a series of processes based on information regarding the series of processes stored in the first storage means in association with the application identification information, using electronic data specified by the information regarding the electronic data included in the second request; and The processing execution means an information processing system that combines components generated based on information relating to the series of processes and information relating to the components, and executes the series of processes using the electronic data based on the settings;

2. the first component is a component registered by a user, and the second component is a component pre-installed in the information processing system, The processing execution means a determination means for determining whether to generate the first component or the second component for each of the series of processes based on information about the series of processes and information about the component; 2. The information processing system according to claim 1, wherein the first component or the second component generated in accordance with the result of the determination by the determination means is combined to execute the series of processes using the electronic data.

3. The determination means 3. The information processing system according to claim 2, wherein the information relating to the component determines that the first component is to be generated if a generation file for generating the component is included in the information relating to the component.

4. The processing execution means a first generating means for generating the first component; and second generating means for generating the second component, When the determining means determines that the first component is to be generated, the first generating means generates the first component; 4. The information processing system according to claim 3, wherein when the determining means determines that the second component should be generated, the second generating means generates the second component.

5. 5. The information processing system according to claim 4, wherein the first generating means generates the first component based on the generation file included in the information relating to the component.

6. The processing execution means 6. The information processing system according to claim 5, further comprising a registration means for, upon receiving a third request including a generated file specified by a user via a screen displayed on the device, storing information regarding a component including the generated file included in the third request in the second storage means and registering a first component generated by the generated file.

7. The processing execution means one or more type conversion means for converting a data type of electronic data into a predetermined data type; 7. An information processing system according to claim 1, wherein the data type of the electronic data is converted by the type conversion means into a data type that can be processed by the component, and then the series of processes using the electronic data are executed by executing the processing of the component.

8. The components include a component that executes processing related to an external service; The component that executes processing related to the external service includes:

8. The information processing system according to claim 1, further comprising at least a component that executes a process of uploading electronic data to an external service.

9. An information processing device, a first storage means for storing, for each application that executes a series of processes using electronic data by combining components that execute the series of processes, application identification information that identifies the application, information about the series of processes, and screen information of a screen that allows the user to specify the electronic data to be used in the series of processes, in association with each other; a second storage means for storing information about the component; The components include a first component and a second component that utilizes data generated by processing of the first component; a transmitting means configured to, when receiving a first request including the application identification information from one of one or more devices connected to the information processing device, transmit to the one device that is the request source the screen information that is stored in the first storage means in association with the application identification information included in the first request, the screen information including information on a configuration for accepting settings related to processing of the second component; a processing execution means for, when receiving from the first device a second request including information regarding electronic data specified by a user via a screen displayed on the first device based on the screen information transmitted by the transmission means, executing a series of processes based on information regarding the series of processes stored in the first storage means in association with the application identification information, using electronic data specified by the information regarding the electronic data included in the second request; and The processing execution means an information processing device that combines components generated based on information relating to the series of processes and information relating to the components, and executes the series of processes using the electronic data based on the settings.

10. An information processing method for use in an information processing system including one or more information processing devices, the information processing system including a first storage means for storing, for each application that executes a series of processes using electronic data by combining components that execute each of the series of processes, app identification information that identifies the application, information about the series of processes, and screen information for a screen that allows the user to specify the electronic data to be used in the series of processes, in association with each other, and a second storage means for storing information about the components, the components including a first component and a second component that uses data generated by the processing of the first component, a transmission step of transmitting, when a first request including the application identification information is received from one of one or more devices connected to the information processing system, the screen information stored in the first storage means in association with the application identification information included in the first request, the screen information including information on a configuration for accepting settings related to processing of the second component, to the one device that has made the request; a processing execution step of, when a second request including information on electronic data specified by a user via a screen displayed on the first device based on the screen information transmitted in the transmission step is received from the first device, executing a series of processes based on information on the series of processes stored in the first storage means in association with the application identification information, using electronic data specified by the information on the electronic data included in the second request; and The processing execution procedure includes: an information processing method that combines components generated based on information relating to the series of processes and information relating to the components, and executes the series of processes using the electronic data based on the settings.

11. An information processing device having a first storage means for storing, for each application that executes a series of processes using electronic data by combining components that execute each of the series of processes, app identification information that identifies the application, information about the series of processes, and screen information of a screen that allows the user to specify the electronic data to be used in the series of processes, in association with each other, and a second storage means for storing information about the components, wherein the components include a first component and a second component that uses data generated by the processing of the first component; a transmission step of transmitting, when a first request including the application identification information is received from one of one or more devices connected to the information processing device, the screen information stored in the first storage means in association with the application identification information included in the first request, the screen information including information on a configuration for accepting settings related to processing of the second component, to the one device that has made the request; a process execution step of, when a second request including information regarding electronic data specified by a user via a screen displayed on the first device based on the screen information transmitted in the transmission step is received from the first device, executing a series of processes based on information regarding the series of processes stored in the first storage means in association with the application identification information, using electronic data specified by the information regarding the electronic data included in the second request. Execute The processing execution procedure includes: a program that combines components generated based on information about the series of processes and information about the components, and executes the series of processes using the electronic data based on the settings;

Citation Information

Patent Citations

  • Communication terminal device

    JP2001169065A

  • Information processor, image processor, application execution method and application execution program

    JP2009134695A

  • Information processing system, information processing apparatus, equipment, and information processing method and program

    JP2014032659A

  • Information processing apparatus, information processing system, information processing method, and program

    JP2014095986A

  • Information processor, information processing system, and program

    JP2014127066A