Information Processing System, Service Provision System, and App Execution Method
The information processing system addresses data provision challenges by generating flows that include a temporary file save component, enabling external components to save data and display previews within the system.
Patent Information
- Application Number
- JP2021176843
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-10-28
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2041-10-28
AI Technical Summary
Conventional systems face challenges in providing data acquired from external sources to devices due to limitations in data storage areas, particularly for applications with restricted functions, which hinder the implementation of preview functions by external components.
An information processing system that generates an automatically generated flow incorporating a temporary file save component to enable external components to save data in a temporary file area, allowing preview functions without lifting storage restrictions.
Enables the provision of data from external sources to devices, facilitating the implementation of preview functions by external components within the system.
Smart Images

Figure 0007707862000001 
Figure 0007707862000002 
Figure 0007707862000003
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing system, a service providing system, and an app execution method.
Background Art
[0002] There is known a service that provides an application combining a plurality of functions (for example, scanning, saving to a folder, sending an email, etc.). The processing performed by such a service is called a workflow. There are workflows that use files, such as those that print files held by an external service system such as a storage server using a device such as an image forming apparatus.
[0003] There is known a technique for displaying a preview when printing a file using a device (see, for example, Patent Document 1). Patent Document 1 discloses a printing apparatus that acquires device information regarding a printing apparatus from an external server, generates an image showing a print preview of a document based on the acquired device information and the document to be printed, and displays the print preview image on a browser window.
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, the conventional technology has a problem that data acquired from the outside may not be provided to the device. One of the reasons is that when the processing included in the application is a predetermined type of processing with limited functions, the processing cannot use the data storage area prepared for storing the data acquired from the outside.
[0005] An object of the present invention is to provide an information processing system capable of providing data acquired from the outside to a device in view of the above problems.
Means for Solving the Problems
[0006] In view of the above problems, the present invention is an information processing system that executes an application including one or more processes in response to a request from a device, the information processing system including: a communication unit that receives a creation request for an application including one or more processes; a flow generation unit that generates a process flow in which a process of acquiring data from the outside and a process of storing the data in a storage area are added to a process of acquiring data from the outside based on the process included in the application; an application execution unit that executes the application and the process flow when execution of the application is requested; and a screen generation unit that provides the device with screen information for displaying the data in the storage area.
Effect of the Invention
[0007] It is possible to provide an information processing system capable of providing data acquired from the outside to a device.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Embodiments for Carrying Out the Invention
[0009] Hereinafter, as an example of the embodiments for carrying out the present invention, an information processing system and an application execution method performed by the information processing system will be described with reference to the drawings.
Examples
[0010] <Outline of Processing> First, referring to FIG. 1, the workflow will be supplemented. FIG. 1 is a diagram for explaining the relationship between the component 201 and the application 202. In the present embodiment, the application 202 is created by combining a plurality of components 201. The component 201 is a part of a program prepared as a functional or processing unit. As shown in FIG. 1(a), components for uploading and downloading files to various external service systems, and components 201 for performing OCR, stamping, and PDF-related processing on files are prepared.
[0011] Also, as shown in FIG. 1(b), the application 202 is created by arranging one or more components 201 in the execution order. When the application 202 is executed, the workflow is executed.
[0012] There are mainly two types of components 201: "internal components" and "external components". The internal component (an example of the first type of processing) has many functions available from the component, but is developed in-house by the information processing system. The external component (an example of the second type of processing) has limited available functions, but is developed by an application developer other than the developer of the information processing system (such products may be referred to as third-party products).
[0013] The function of previewing files saved by an external service system on a device can be relatively easily realized if it is an internal component. This is because in the preview function, the internal component can save the thumbnail image obtained from the external service system in the temporary file area and issue a URL for accessing the temporary file area to the device (application). The application previews by embedding the thumbnail image in the temporary file area in the user interface without authenticating to the external service system.
[0014] However, in the case of external components, since the save function is restricted to the temporary file area managed by the information processing system, thumbnail images cannot be saved in the temporary file area. For this reason, it was not easy for external components to implement a preview function. Note that the reason for restricting the functions of external components is to consider security and the like.
[0015] Therefore, in this embodiment, an internal component (a temporary file save component described later) that saves thumbnail images in the temporary file area is prepared. When an external component browses files or the like, the information processing system automatically generates an automatically generated flow incorporating the temporary file save component. The temporary file save component is executed when an application is executed and when an external component performs a preview display. By doing so, the information processing system can implement the preview function by an external component without lifting the restriction that thumbnail images cannot be saved from the external component to the temporary file area.
[0016] <Regarding terms> An application is a program that is executed on a device or an information processing apparatus for a user to receive a service. Applications include web applications that are executed in cooperation with a web browser and a server-side program, and native applications that are executed by an information processing apparatus without requiring a server (although communication may be performed). In the case of a web application, the application may be a workflow application that executes a series of processes in order.
[0017] An application includes one or more processes. A process may be information processing in which a certain degree of functions are grouped so that the application can output a target product. In this embodiment, the information processing executed by a component or the component corresponds to the process.
[0018] A processing flow refers to a plurality of processes being executed in a determined order or a plurality of processes. In some cases, a processing flow is referred to as a workflow.
[0019] File browsing refers to a method of displaying a list of files and the structure of folders on a display and accepting selections thereof. An example of a file browsing display is shown in FIG. 15.
[0020] Preview refers to simulating the result of an output and displaying it on a screen or the displayed image before actually performing some output on a computer or the like. An example of a preview image display is shown in FIG. 16.
[0021] <System Configuration> The system configuration of the service providing system 100 according to the present embodiment will be described with reference to FIG. 2. FIG. 2 is a diagram showing an example of the system configuration of the service providing system 100 according to the present embodiment.
[0022] The service providing system 100 shown in FIG. 2 includes an information processing system 10, a device 20, and a terminal device 30, and is communicably connected via a wide area network N1 such as the Internet. The service providing system 100 communicates with an external service system 40 which is an external system.
[0023] The information processing system 10 is realized by one or more information processing apparatuses, and provides various services realized by a series of processes in cooperation with an external service system 40 such as a cloud service via a network N1. Specific examples of the services provided by the information processing system 10 according to the present embodiment will be described later. The information processing system 10 may be realized by cloud computing or may be realized by a single information processing apparatus. Cloud computing refers to a form in which resources on a network are used without awareness of specific hardware resources. The information processing system 10 may exist on the Internet or may exist on-premises. Note that a series of processes are provided by one application, and a series of processes are also referred to as a "processing flow" or a "workflow".
[0024] The device 20 is various electronic devices used by users. The device 20 is, for example, an image forming apparatus such as an MFP (Multifunction Peripheral), a PC (Personal Computer), a projector, an electronic blackboard, a video conferencing terminal, a digital camera, or the like. The device 20 is connected to a network N2. A user can use the device 20 to utilize various services provided by the information processing system 10 or the external service system 40.
[0025] Hereinafter, when distinguishing each of a plurality of devices 20, they will be described with suffixes such as "device 201", "device 202", etc.
[0026] The terminal device 30 is, for example, a desktop PC, a notebook PC, a smartphone, a tablet terminal, or the like used by an administrator or a user. The terminal device 30 is connected to a network N2. The administrator or the user can operate the terminal device 30 to utilize various services provided by the information processing system 10 or the external service system 40, and can further perform application settings.
[0027] Hereinafter, when distinguishing between a plurality of terminal devices 30, they will be described with suffixes such as "terminal device 301" and "terminal device 302".
[0028] The external service system 40 is one or more information processing devices that provide services by executing an application via the network N1. Data storage, reading, etc. are performed by executing the application. "External" of the external service system 40 means a system different from the information processing system 10. It is often operated by different companies. For example, even for the same user, the accounts are different between the external service system 40 and the information processing system 10.
[0029] Examples of the external service system 40 include, for example, various cloud services, ASP (Application Service Provider), etc., and may include various external services provided via the network. For example, there is a storage service as an example of the service. The external service system 40 may exist on the Internet or on-premises.
[0030] Hereinafter, when distinguishing between a plurality of external service systems 40, they will be described as "external service system 401", "external service system 402", etc. shown in the figure.
[0031] <Hardware Configuration Example> Referring to FIG. 3, the hardware configurations of the information processing system 10 and the terminal device 30 according to the present embodiment will be described.
[0032] <<Information Processing System and Terminal Device>> FIG. 3 is a diagram showing a hardware configuration example of the information processing system 10 and the terminal device 30 according to the present embodiment. As shown in FIG. 3, the information processing system 10 and the terminal device 30 are constructed by a computer, and include a CPU 501, a ROM 502, a RAM 503, an HD (Hard Disk) 504, an HDD (Hard Disk Drive) controller 505, a display 506, an external device connection I / F (Interface) 508, a network I / F 509, a bus line 510, a keyboard 511, a pointing device 512, a DVD-RW (Digital Versatile Disk Rewritable) drive 514, and a media I / F 516.
[0033] Among these, the CPU 501 controls the operations of the entire information processing system 10 and the terminal device 30. The ROM 502 stores programs used for driving the CPU 501 such as the IPL. The RAM 503 is used as a work area for the CPU 501. The HD 504 stores various data such as programs. The HDD controller 505 controls the reading or writing of various data to and from the HD 504 according to the control of the CPU 501. The display 506 displays various information such as a cursor, a menu, a window, characters, or an image. The external device connection I / F 508 is an interface for connecting various external devices. The external devices in this case are, for example, a USB (Universal Serial Bus) memory, a printer, or the like. The network I / F 509 is an interface for performing data communication using the network N2. The bus line 510 is an address bus, a data bus, or the like for electrically connecting the components such as the CPU 501 shown in FIG. 3.
[0034] In addition, the keyboard 511 is a type of input means having a plurality of keys used for inputting characters, numerical values, various instructions, and the like. The pointing device 512 is a type of input means for selecting and executing various instructions, selecting a processing target, moving a cursor, and the like. The DVD-RW drive 514 controls reading or writing of various data with respect to the DVD-RW 513 as an example of a removable recording medium. Note that the DVD-RW drive 514 may be not limited to DVD-RW but may also be DVD-R or the like. The media I / F 516 controls reading or writing (storage) of data with respect to the recording medium 515 such as a flash memory.
[0035] <<Device>> FIG. 4 is a hardware configuration diagram of an image forming apparatus as an example of the device 20. As shown in FIG. 4, the image forming apparatus includes a controller 910, a short-range communication circuit 920, an engine control unit 930, an operation panel 940, and a network I / F 950.
[0036] Among these, the controller 910 includes a CPU 901 which is the main part of the computer, a system memory (MEM-P) 902, a north bridge (NB) 903, a south bridge (SB) 904, an ASIC (Application Specific Integrated Circuit) 906, a local memory (MEM-C) 907 which is a storage unit, an HDD controller 908, and an HD 909 which is a storage unit, and is configured to connect between the NB 903 and the ASIC 906 by an AGP (Accelerated Graphics Port) bus 921.
[0037] Among these, the CPU 901 is a control unit that performs overall control of the image forming apparatus. The NB 903 is a bridge for connecting the CPU 901, the MEM-P 902, the SB 904, and the AGP bus 921, and has a memory controller that controls reading and writing with respect to the MEM-P 902, a PCI (Peripheral Component Interconnect) master, and an AGP target.
[0038] MEM-P902 consists of a ROM902a which is a memory for storing programs and data for realizing each function of the controller 910, and a RAM902b which is used as a memory for developing programs and data, and a drawing memory during memory printing. Note that the program stored in the RAM902b may be configured to be provided by recording it in a file in an installable format or an executable format on a computer-readable recording medium such as a CD-ROM, CD-R, or DVD.
[0039] SB904 is a bridge for connecting the NB903, the PCI device, and the peripheral devices. The ASIC906 is an IC (Integrated Circuit) for image processing applications having hardware elements for image processing, and has the role of a bridge for connecting the AGP bus 921, the PCI bus 922, the HDD controller 908, and the MEM-C907 respectively. This ASIC906 includes a PCI target and an AGP master, an arbiter (ARB) forming the core of the ASIC906, a memory controller for controlling the MEM-C907, a plurality of DMACs (Direct Memory Access Controllers) for performing operations such as rotation of image data by means of hardware logic, etc., and a PCI unit for performing data transfer via the PCI bus 922 between the scanner unit 931, the printer unit 932, and the facsimile unit. Note that the ASIC906 may have a USB (Universal Serial Bus) interface and an IEEE1394 (Institute of Electrical and Electronics Engineers 1394) interface.
[0040] MEM-C907 is local memory used as a copy image buffer and a code buffer. HD909 is storage for accumulating image data, accumulating font data used at the time of printing, and accumulating forms. HD909 controls the reading or writing of data to HD909 according to the control of CPU901. The AGP bus 921 is a bus interface for a graphics accelerator card proposed to speed up graphic processing, and by directly accessing MEM-P902 with high throughput, the graphics accelerator card can be made faster.
[0041] In addition, the short-distance communication circuit 920 is provided with an antenna 920a of the short-distance communication circuit. The short-distance communication circuit 920 is a communication circuit such as NFC or Bluetooth (registered trademark).
[0042] Furthermore, the engine control unit 930 has a scanner unit 931, a printer unit 932, and a facsimile unit 933. Also, the operation panel 940 includes a panel display unit 940a such as a touch panel that displays current setting values, selection screens, etc. and receives inputs from the operator, and hard keys 940b including a numeric keypad that receives setting values of conditions related to image formation such as density setting conditions and a start key that receives a copy start instruction. The controller 910 controls the entire image forming apparatus, for example, controls drawing, communication, inputs from the operation panel 940, etc. The scanner unit 931 or the printer unit 932 includes an image processing part such as error diffusion and gamma conversion.
[0043] Note that the image forming apparatus can sequentially switch and select the document box function, copy function, printer function, and facsimile function by the application switching key on the operation panel 940. When the document box function is selected, the device 20 is in the document box mode, when the copy function is selected, it is in the copy mode, when the printer function is selected, it is in the printer mode, and when the facsimile mode is selected, it is in the facsimile mode.
[0044] Further, the network I / F 950 is an interface for data communication using the network N2. The short-range communication circuit 920 and the network I / F 950 are electrically connected to the ASIC 906 via the PCI bus 922.
[0045] <Regarding functions> Next, the functional configuration of the service providing system 100 according to the present embodiment will be described with reference to FIG. 5. FIG. 5 is a diagram showing an example of the functional configuration of the service providing system 100 according to the present embodiment.
[0046] <<Devices>> The device 20 includes a second communication unit 21, a display control unit 22, an operation reception unit 23, an image data generation unit 24, a facsimile processing unit 25, and an e-mail processing unit 26. Each of these functional units is a function or means realized by the CPU 901 shown in FIG. 4 executing instructions included in one or more programs installed in the device 20. For example, the second communication unit 21, the display control unit 22, and the operation reception unit 23 are realized by a web browser, and the others are realized by individual applications (native applications).
[0047] The second communication unit 21 transmits and receives various types of information to and from the information processing system 10. In the present embodiment, the second communication unit 21 receives screen information such as the screen information of the application list screen from the information processing system 10 and transmits an application execution request or the like to the information processing system 10.
[0048] The display control unit 22 interprets the screen information of various screens and displays it on the panel display unit 940a. The operation reception unit 23 receives various operations of the user on the various screens displayed on the panel display unit 940a.
[0049] When the application selected by the operation reception unit 23 generates image data, the image data generation unit 24 scans a document with the scanner unit 931 to generate image data. The facsimile processing unit 25 performs processing related to reception and transmission of facsimiles by the facsimile unit 933, and requests the information processing system 10 to execute an application that has been associated in advance when a facsimile is received. Note that the facsimile processing unit 25 may request an application corresponding to the facsimile transmission source (FAX number).
[0050] The e-mail processing unit 26 performs processing related to transmission and reception of e-mails, and requests the information processing system 10 to execute an application that has been associated in advance when an e-mail is received. Note that the e-mail processing unit 26 may request an application corresponding to the e-mail transmission source (e-mail address).
[0051] <<Terminal device>> The terminal device 30 includes a first communication unit 31, a display control unit 32, and an operation reception unit 33. Each of these functional units is a function or means realized by the CPU 501 executing instructions included in one or more programs installed in the terminal device 30. Note that this program may be a web browser or dedicated software.
[0052] The first communication unit 31 transmits and receives various types of information to and from the information processing system 10 or an external service system 40. In the present embodiment, screen information related to creation of an application is received from the information processing system 10, and application information set by the application administrator is transmitted to the information processing system 10.
[0053] The display control unit 32 interprets screen information of various screens and displays it on the display 506. The operation reception unit 33 receives various operations of the application developer on the various screens displayed on the display 506.
[0054] <<Information processing system>> The information processing system 10 includes a communication unit 11, a screen generation unit 12, a control unit 13, an external component management unit 14, and an authentication information storage unit 15. Each of these functional units is a function or means realized by the CPU 501 shown in FIG. 3 executing instructions included in one or more programs installed in the information processing system 10. Also, the authentication information storage unit 15 is constructed in the HD 504 etc. shown in FIG. 3.
[0055] The communication unit 11 transmits and receives various types of information between the terminal device 30 and the device 20. In the present embodiment, the communication unit 11 receives a creation request for an application from the terminal device 30. Also, at the time of execution of the application, the communication unit 11 transmits a list of applications to the device 20 or the terminal device 30 and receives an execution request for the application.
[0056] The screen generation unit 12 generates screen information to be displayed by the terminal device 30 at the time of creating an application, and generates screen information for the screen to be displayed by the device 20 at the time of executing the application. Note that the screen information is a program described in HTML, XML, a script language, CSS (Cascading Style Sheet), etc. Mainly, the structure of the web page is specified by HTML, the operation of the web page is defined by the script language, and the style of the web page is specified by CSS.
[0057] The authentication information storage unit 15 stores user authentication information in the external service system 40. The authentication information of the external service system 40 is associated with a user ID (user identification information) etc. in the information processing system 10. The authentication information shall be publicly known ones such as a user ID and password, an IC card number, biometric authentication information, etc. If single sign-on such as OAUTH is possible, the authentication information storage unit 15 may not be provided.
[0058] The control unit 13 will be described. The control unit 13 includes a component management unit 16, a temporary file area 19, a type determination unit 51, a flow necessity determination unit 52, and an application management unit 53.
[0059] The component management unit 16 manages the entities of internal components 17 (including the temporary file storage component 18). When an internal component 17 is called from the application management unit 53, the component management unit 16 calls and executes the internal component 17. The temporary file storage component 18 is incorporated into the automatic generation flow when an external component creates an application for preview display by file browsing. Since the temporary file storage component 18 is an internal component, it can access the temporary file area 19.
[0060] The application management unit 53 manages the configuration of the application (such as the execution order of components) and the correspondence between the application and the automatic generation flow. The application management unit 53 includes a flow generation unit 55 and an application execution unit 56. The flow generation unit 55 generates and manages an automatic generation flow corresponding to the application based on the judgment results of the flow necessity judgment unit 52 and the component type judgment unit. When executing the application, the application execution unit 56 calls the application and the components included in the automatic generation flow associated with the application.
[0061] The flow necessity judgment unit 52 judges whether the application needs to generate an automatic generation flow. The judgment criteria include whether a specific component is included or whether there is a component with a parameter specifying a specific input format, etc. As an example, components that generate an automatic generation flow include components related to file browsing. When an automatic generation flow is required, the flow necessity judgment unit 52 returns the identification information of the component for which the automatic generation flow is to be generated.
[0062] The type judgment unit 51 judges whether the component is an internal component or an external component based on the identification information of the component.
[0063] The temporary file area 19 is a storage area that holds the saved files for a certain period. After the expiration of the certain period, the files are automatically deleted. After the acquisition of the files, the information processing system 40 may automatically delete the temporary file area 19. The temporary file area 19 may be, for example, the RAM 503 or the HD 504. If it is managed by the information processing system 10, the temporary file area 19 may be outside the information processing system 10. The internal component 17 issues a URL to the file saved in the temporary file area 19. The information processing system 10 can access this URL without requiring the authentication information of the external service system 40.
[0064] The external component management unit 14 manages the entity of the external component 54. When a component is called from the application management unit 53, the external component management unit 14 calls and executes the external component 54.
[0065] <Image of access to the temporary file area> FIG. 6 is a diagram showing whether each functional unit can directly access the temporary file area 19 in the functional block diagram of FIG. 5. The external component 54 that operates while being stored in the external component management unit 14 does not have the authority to access the temporary file area 19. Therefore, when the external component displays a preview of the file, the temporary file storage component 18, which is the internal component 17, accesses the temporary file area 19.
[0066] <Automatically generated flow> FIG. 7 is a diagram schematically explaining the mechanism by which the flow generation unit 55 automatically generates an automatically generated flow. In FIG. 7, since the automatically generated flow displays a preview of the file, it is referred to as a preview flow.
[0067] FIG. 7(a) shows a list of internal components, and FIG. 7(b) shows a list of external components. FIG. 8 shows an example of an application creation screen.
[0068] The application developer specifies a component (which can be internal or external) that performs "file download" from the external service system 40, selects the file to be downloaded through file browsing, and uses it as an input during application execution, thereby generating application A211 and application B213. In response to the specification of the component that performs "file download" (in this embodiment, determined by the flow necessity determination unit 52), the flow generation unit 55 automatically generates a processing flow that operates during the preview of file selection. The automatically generated processing flow is referred to as an automatically generated flow, and in FIG. 7, the preview flows 212 and 214 correspond to it.
[0069] In FIG. 7(c), the ○○ download component 211a of application A211 is an internal component and is a component that performs "file download". Also, the ×× download component 213a of application B213 is an external component and is a component that performs "file download". Therefore, the preview flow 212 associated with application A211 and the preview flow 214 associated with application B213 are automatically generated.
[0070] When generating the automatically generated flow, the type determination unit 51 determines whether the "file download" component is an internal component or an external component, and the flow generation unit 55 changes the content of the automatically generated flow.
[0071] In the case of an internal component, the thumbnail acquisition component 212a prepared in advance is incorporated into the preview flow 212. The thumbnail acquisition component 212a of the internal component performs two processes: "acquire a thumbnail image from the external service system" and "save it in the temporary file area and acquire the URL". Therefore, the temporary file save component 18 is not incorporated into the preview flow 212 associated with application A211.
[0072] In the case of an external component, the thumbnail acquisition component 214a and the temporary file storage component 18 are incorporated. The thumbnail acquisition component 214a of the external component only performs the process of "acquiring a thumbnail image from an external service system", and the process of "saving it in the temporary file area and acquiring a URL" is entrusted to the temporary file storage component 18. Therefore, the temporary file storage component 18 is incorporated into the preview flow 214 associated with the application B213.
[0073] If the app developer can freely create an application incorporating the temporary file storage component 18, it is equivalent to giving the right to access the temporary file area 19. For this reason, the temporary file storage component 18 can only be incorporated into the automatically generated flow and cannot be freely used by the app developer.
[0074] Also, as shown in FIG. 8, the app creation screen has a file input type setting field 230. The user can set the file input type (input method) in the file input type setting field 230. The file input type setting field 230 is in the form of a pull-down menu and is displayed so that text input, selection from options, or file browsing, etc. can be selected. In FIG. 8, "file selection" corresponds to file browsing.
[0075] <Operation procedure> <<Generation of automatically generated flow>> FIG. 9 is an example of a sequence diagram for explaining the process when the information processing system 10 generates an automatically generated flow.
[0076] S1: The app developer operates the terminal device 30 to create an application. The application is created by the app developer arranging components in order for the GUI (Graphical User Interface) generated by the screen generation unit 12. The operation reception unit 33 of the terminal device 30 receives the execution order of the components, etc., and the first communication unit 31 requests the information processing system 10 for a creation request (registration request) of the application. The creation request of the application includes application information (identification information of components and execution order).
[0077] Note that a component has, as information, an input method that can be specified by the app developer for its own input parameters. For example, the input method is text input, selection from options, or file browsing, etc. The app developer specifies the input method of the parameters when creating the application. For an application where file browsing is specified, the judgment result of whether an automatically generated flow is required becomes necessary.
[0078] S2: The communication unit 11 of the information processing system 10 receives the registration request of the application and passes it to the app management unit 53.
[0079] S3: The flow generation unit 55 of the app management unit 53 inquires of the flow necessity judgment unit 52 whether an automatically generated flow is necessary by specifying the application information.
[0080] S4: The flow necessity judgment unit 52 judges whether the application information includes a component having a parameter input by file browsing.
[0081] S5: The flow necessity judgment unit 52 returns the judgment result (necessary, unnecessary), and when the judgment result is necessary, the identification information of the components for which an automatically generated flow is necessary to the app management unit 53.
[0082] S6: If the determination result requires it, the flow generation unit 55 designates the components for which an automatically generated flow is required and inquires of the type determination unit 51 about the type (internal / external) of the components for which an automatically generated flow is required.
[0083] S7: The type determination unit 51 determines whether the components for which an automatically generated flow is required are internal components or external components. The determination methods are as follows.
[0084] · The type determination unit 51 determines the presence or absence of functions (processes) implemented specifically for internal components.
[0085] · The type determination unit 51 determines the presence or absence of functions (processes) implemented specifically for external components.
[0086] · The type determination unit 51 obtains a list of internal components from the component management unit 16 and determines whether the components for which an automatically generated flow is required are included.
[0087] · The type determination unit 51 obtains a list of external components from the external component management unit 14 and determines whether the components for which an automatically generated flow is required are included.
[0088] S8: The type determination unit 51 returns the determination result (internal component, external component) to the application management unit 53.
[0089] S9: In the case of internal components, the flow generation unit 55 generates an automatically generated flow for internal components. The automatically generated flow for internal components does not include the temporary file storage component 18.
[0090] S10: The flow generation unit 55 registers the application created by the application developer and the automatically generated flow. That is, the identification information and execution order of the components of the application and the automatically generated flow are registered.
[0091] S11: In the case of an external component, the flow generation unit 55 generates an automatically generated flow for the external component. The automatically generated flow for the external component includes the temporary file storage component 18.
[0092] S12: The app management unit 53 registers the application created by the app developer and the automatically generated flow. That is, the identification information and execution order of the components of the application and the automatically generated flow are registered.
[0093] S13: When the determination result of the necessity of the automatically generated flow is unnecessary, the app management unit 53 registers the application created by the app developer. That is, the identification information and execution order of the components included in the application are registered.
[0094] <<Preview Display>> Subsequently, referring to FIG. 10, the case where an application including an internal component is executed will be described. Note that at the time of executing the application, it is not particularly determined whether it is an internal component or an external component. The app execution unit 56 may simply execute the components included in the automatically generated flow associated with the application in order.
[0095] FIG. 10 is a sequence diagram showing the procedure for an application including an internal component to display a preview of a file.
[0096] S21: The user executed an application on the device 20 that selects the file to be downloaded by file browsing and uses it as the input of the application. Assume that the user selected a file with this application. The operation reception unit 23 of the device 20 receives the selection of the file, and the second communication unit 21 specifies the file ID (identification information of the file) and user information and requests a preview from the information processing system. Note that the user information may be the user ID logged in to the device 20 or temporary identification information such as a token.
[0097] S22: The communication unit 11 of the information processing system 10 receives a preview request, and the screen generation unit 12 specifies the file ID, the identification information of the preview flow, and the user information and requests the app execution unit 56 to execute the preview flow. The preview flow is associated with the application for file browsing, and the identification information of the preview flow is also transmitted to the app execution unit 56.
[0098] S23: The app execution unit 56 starts the execution of the preview flow.
[0099] S24,S25: First, the app execution unit 56 specifies the user information and acquires the authentication information of the user in the external service system 40 from the authentication information storage unit 15.
[0100] S26: Next, the app execution unit 56 specifies the file ID and the authentication information of the external service system 40 and requests the component management unit 16 to execute the thumbnail acquisition component 212a included in the preview flow.
[0101] S27,S28: The component management unit 16 calls and executes the thumbnail acquisition component 212a. The thumbnail acquisition component 212a specifies the file ID and the authentication information of the external service system and acquires the thumbnail image of the file specified by the file ID from the external service system 40.
[0102] S29、S30: The thumbnail acquisition component 212a saves the thumbnail image in the temporary file area 19 and acquires the URL of the save destination.
[0103] S31: The component management unit 16 returns the URL to the app execution unit 56.
[0104] S32: The app execution unit 56 transmits the URL to the screen generation unit 12.
[0105] S33, S34: The screen generation unit 12 acquires the thumbnail image specified by the URL of the temporary file area 19 from the temporary file area 19.
[0106] S35: The screen generation unit 12 generates screen information for displaying the thumbnail image and transmits it to the device 20 via the communication unit 11. The second communication unit 21 of the device 20 receives the screen information, and the display control unit 22 displays the thumbnail image (preview image of the file). An example of the preview image is shown in FIG. 15.
[0107] Next, referring to FIG. 11, the case where an application including an external component is executed will be described. FIG. 11 is a sequence diagram showing the procedure for the application including the external component to display a file preview. In the description of FIG. 11, mainly the differences from FIG. 10 will be described. The processes of steps S41 to S45 may be the same as those of steps S21 to S25 in FIG. 10.
[0108] S46: Next, the application execution unit 56 designates the file ID and the authentication information of the external service system 40 and requests the external component management unit 14 to execute the thumbnail acquisition component 214a included in the automatically generated flow. The application execution unit 56 switches the request destination of the component to the component management unit 16 or the external component management unit 14 according to the identification information of the component.
[0109] S47, S48: The external component management unit 14 calls and executes the thumbnail acquisition component 214a. The thumbnail acquisition component 214a designates the file ID and the authentication information of the external service system 40 and acquires the thumbnail image of the file specified by the file ID from the external service system 40.
[0110] S49: The thumbnail acquisition component 214a returns the thumbnail image to the application execution unit 56.
[0111] S50: Next, the app execution unit 56 designates a thumbnail image and requests the component management unit 16 to execute the temporary file saving component 18 included in the preview flow.
[0112] S51, S52: The component management unit 16 calls and executes the temporary file saving component 18. The temporary file saving component 18 saves the thumbnail image in the temporary file area 19 and acquires the URL of the saving destination.
[0113] S53: The temporary file saving component 18 returns the URL to the app execution unit 56.
[0114] The processing of the subsequent steps S54 to S57 may be the same as the steps S32 to S35 in FIG. 10.
[0115] In this way, the application of this embodiment can display a file preview even if it includes external components.
[0116] <Main Effects> As described above, in this embodiment, a component (temporary file saving component 18) for saving a thumbnail image in the temporary file area 19 is prepared, and when creating an application for which an external component performs preview display, the information processing system 10 automatically generates an automatically generated flow including the temporary file saving component 18. The temporary file saving component 18 is executed only when an external component performs preview display. By doing so, the external component can realize the preview function without lifting the restriction that the external component cannot save the thumbnail image to the temporary file area 19.
Example
[0117] In this example, an information processing system 10 that generates an automatically generated flow incorporating the temporary file saving component 18 regardless of internal / external components will be described.
[0118] In this embodiment, it is assumed that the hardware configuration diagrams of FIGS. 3 and 4 and the functional block diagram shown in FIG. 5 described in the above embodiment can be used. However, in this embodiment, the type determination unit 51 becomes unnecessary.
[0119] <Operation Procedure> FIG. 12 is an example of a sequence diagram for explaining the process when the information processing system generates an automatically generated flow. In the description of FIG. 12, the differences from FIG. 9 will be mainly explained. The processes in steps S61 to S65 in FIG. 12 may be the same as the processes in steps S1 to S5 in FIG. 9. However, in FIG. 12, the type determination unit 51 does not determine whether the components that require an automatically generated flow are internal components or external components.
[0120] S66: If the determination result of whether an automatically generated flow is required is yes, the flow generation unit 55 generates an automatically generated flow common to internal components and external components (generates an automatically generated flow regardless of whether it is an internal component or an external component). This automatically generated flow includes the temporary file storage component 18.
[0121] S67: The flow generation unit 55 registers the application created by the app developer and the automatically generated flow. That is, the identification information and execution order of the components of the application and the automatically generated flow are registered.
[0122] S68: If the determination result of whether an automatically generated flow is required is no, the flow generation unit 55 registers the application created by the app developer. That is, the identification information and execution order of the components included in the application are registered.
[0123] <<Preview Display>> FIG. 13 is a sequence diagram showing the procedure for the application for which an automatically generated flow has been generated to display a file preview in this embodiment. In the description of FIG. 13, the differences from FIG. 10 will be mainly explained. The processes in steps S71 to S75 in FIG. 13 may be the same as the processes in steps S21 to S25 in FIG. 10.
[0124] S76: In the case of an internal component, the application execution unit 56 designates a file ID and authentication information of the external service system 40, and requests the component management unit 16 to execute the thumbnail acquisition component 212a included in the preview flow.
[0125] S77,S78: The component management unit 16 calls and executes the thumbnail acquisition component 212a. This thumbnail acquisition component 212a does not perform temporary file storage. The thumbnail acquisition component 212a designates a file ID and authentication information of the external service system 40, and acquires a thumbnail image of the file specified by the file ID from the external service system.
[0126] S79: The thumbnail acquisition component 212a returns the thumbnail image to the application execution unit 56.
[0127] S80: In the case of an external component, the application execution unit 56 designates a file ID and authentication information of the external service system 40, and requests the external component management unit 14 to execute the thumbnail acquisition component 214a included in the preview flow.
[0128] S81,S82: The external component management unit 14 calls and executes the thumbnail acquisition component 214a. The thumbnail acquisition component 214a designates a file ID and authentication information of the external service system 40, and acquires a thumbnail image of the file specified by the file ID from the external service system 40.
[0129] S83: The thumbnail acquisition component 214a returns the thumbnail image to the application execution unit 56.
[0130] S84: In either the case of an internal component or an external component, the application execution unit 56 designates the thumbnail image and requests the component management unit 16 to execute the temporary file storage component 18.
[0131] S85, S86: The component management unit 16 calls and executes the temporary file storage component 18. The temporary file storage component 18 stores the thumbnail image in the temporary file area 19 and obtains the URL of the storage destination.
[0132] S87: The component management unit 16 returns the URL to the application execution unit 56.
[0133] The processing of the subsequent steps S88 to S91 may be the same as the processing of the steps S32 to S35 in FIG. 10.
[0134] <<Main effects>> In this embodiment, a common automatic generation flow can be generated without determining whether the component that requires the automatic generation flow is an internal component or an external component. The automatic generation flow that uses the temporary file storage component 18 does not perform temporary file storage in the thumbnail acquisition component 212a (and also 214a) corresponding to the external service system 40. Therefore, by using the temporary file storage component 18 in the same way for both internal components and external components, the implementation work when creating the thumbnail acquisition component can be reduced.
Example
[0135] In Example 2, the flow generation unit 55 generated an automatic generation flow that uses the temporary file storage component 18 even for internal components. However, depending on the processing capacity of the information processing system 10, etc., there may be a case where it is desired to select a configuration in which the temporary file storage component 18 is not used for internal components. For example, there may be a case where it is desired to avoid an increase in processing time due to an increase in the number of accesses from the application management unit 53 to the component management unit 16.
[0136] Therefore, in this embodiment, an information processing system 10 will be described in which for each internal component, information can be selected as to whether to incorporate a temporary file storage component 18 into the automatic generation flow. For this reason, for internal components that use an external service system 40, when implementing a thumbnail acquisition component, the app developer selects and implements one of the following.
[0137] a Implement both the processes of "acquiring a thumbnail image from an external service system" and "saving it in the temporary file area 19 and acquiring a URL for access" b Implement only the process of "acquiring a thumbnail image from an external service system" By the type determination unit 51 determining which of the processes a and b the internal component is implementing (whether a process exists), the flow generation unit 55 determines whether to incorporate the temporary file storage component 18 into the automatic generation flow.
[0138] In this embodiment, it will be described assuming that the hardware configuration diagrams of FIGS. 3 and 4 and the functional block diagram shown in FIG. 5 described in the above embodiment can be used.
[0139] <Operation Procedure> FIG. 14 is an example of a sequence diagram for explaining the process when the information processing system 10 generates an automatic generation flow. In the description of FIG. 14, the differences from FIG. 12 will mainly be explained. The processes of steps S101 to S105 in FIG. 14 may be the same as the processes of steps S61 to S65 in FIG. 12.
[0140] S106: If the determination result as to whether an automatic generation flow is required is yes, the flow generation unit 55 designates a component and inquires of the type determination unit 51 about the type of component for which an automatic generation flow is required.
[0141] S107: The type determination unit 51 determines whether the component for which an automatic generation flow is required is a component that incorporates the temporary file storage component 18. The following are examples of the determination methods.
[0142] · Implement both the processes of "obtaining a thumbnail image from an external service system" and "saving it in the temporary file area 19 and obtaining a URL for access". → Do not incorporate the temporary file saving component 18. · Implement only the process of "obtaining a thumbnail image from an external service system". → Incorporate the temporary file saving component 18. S108: The type determination unit 51 returns the determination result (whether it has the process of saving to a temporary file) to the application management unit 53.
[0143] S109: When the component that requires an automatically generated flow has the process of saving to a temporary file, the flow generation unit 55 generates an automatically generated flow that does not include the temporary file saving component 18. Since some of the internal components implement the process of "saving in the temporary file area 19 and obtaining a URL for access", for some of the internal components, the flow generation unit 55 generates an automatically generated flow that does not include the temporary file saving component 18.
[0144] S110: The flow generation unit 55 registers the application created by the app developer and the automatically generated flow. That is, the identification information and execution order of the components of each of the application and the automatically generated flow are registered.
[0145] S111: When a component that requires an automatically generated flow does not have a process for saving temporary files, the flow generation unit 55 generates an automatically generated flow that includes the temporary file saving component 18. Since some of the internal components do not implement the process of "saving to the temporary file area 19 and obtaining a URL for access", for some of the internal components, the flow generation unit 55 generates an automatically generated flow that includes the temporary file saving component 18. Also, since all of the external components do not implement the process of "saving to the temporary file area 19 and obtaining a URL for access", for all of the external components, the flow generation unit 55 generates an automatically generated flow that includes the temporary file saving component 18.
[0146] S112: The flow generation unit 55 registers the application created by the app developer and the automatically generated flow. That is, the identification information and execution order of the components of the application and the automatically generated flow are registered.
[0147] S113: When the determination result of whether an automatically generated flow is required is not necessary, the flow generation unit 55 registers the application created by the app developer. That is, the identification information and execution order of the components included in the application are registered.
[0148] Note that the execution procedure of the automatically generated flow generated in this way is the same as that in FIGS. 10 and 11 of the first embodiment. That is, FIG. 10 is executed when the automatically generated flow including the temporary file saving component 18 is executed, and FIG. 11 is executed when the automatically generated flow not including the temporary file saving component 18 is executed.
[0149] <Main effects> According to this embodiment, the information processing system 40 can control whether to incorporate the temporary file saving component 18 for internal components. For example, it is possible to suppress an increase in processing time due to an increase in the number of accesses from the app execution unit 56 to the component management unit 16.
Example
[0150] In this embodiment, an information processing system 10 that generates an automatic generation flow including a temporary file storage component 18 will be described for purposes other than preview display.
[0151] As shown in FIG. 15, in addition to preview display, the temporary file storage component 18 can be used for, for example, the following purposes. FIG. 15 is an example of a file browsing screen displayed by the device 20. FIG. 16 shows an example of displaying a preview image of a file selected by file browsing. A preview button 221 is displayed on the file browsing screen in association with each file. By pressing the preview button 221 by the user, the device 20 can display a preview (thumbnail) 223 of the file.
[0152] Also, in the file browsing shown in FIG. 15, an icon 220 is displayed at the beginning of the file name. The external component acquires this file browsing icon 220 from the external service system 40 and stores it in the temporary file area 19 for use.
[0153] The file browsing uses an image prepared by the system (such as an OS) of the device 20 to display icons of folders and files. The temporary file storage component 18 can change this icon to a unique one held by the external service system 40. When adding a function to enable the display of the unique icon 220 of the external service system 40, the flow generation unit 55 incorporates the temporary file storage component 18 into the automatic generation flow in the same manner as the preview function.
[0154] The application execution unit 56 executes the automatic generation flow as follows.
[0155] The external component acquires an icon image from the external service system 40 → The temporary file storage component 18 stores the icon image in the temporary file area 19 and issues a URL → The screen generation unit 12 embeds the icon image in the file browsing screen.
[0156] Therefore, according to this embodiment, the temporary file storage component 18 enables the device 20 to display the image acquired from the external service system 40 as an icon.
[0157] <Other application examples> As described above, the best mode for carrying out the present invention has been described using examples. However, the present invention is not limited to such examples, and various modifications and substitutions can be made without departing from the gist of the present invention.
[0158] For example, the configuration example such as FIG. 5 is divided according to the main functions in order to facilitate the understanding of the processing by the terminal device 30, the device 20, and the information processing system 10. The present invention is not limited by the way of dividing the processing units and the names. The processing of the terminal device 30, the device 20, and the information processing system 10 can be further divided into more processing units according to the processing content. Also, one processing unit can be divided so as to include more processing.
[0159] Also, the device group described in the examples only shows one of a plurality of computing environments for implementing the embodiments disclosed in this specification. In one embodiment, the information processing system 10 includes a plurality of computing devices such as a server cluster. The plurality of computing devices are configured to communicate with each other via an arbitrary type of communication link including a network and a shared memory, and implement the processing disclosed in this specification.
[0160] Furthermore, the information processing system 10 can be configured to share the processing steps disclosed in the present embodiment, such as FIGS. 9 to 14, in various combinations. For example, the processes executed by a predetermined unit can be executed by a plurality of information processing devices included in the information processing system 10. Also, the information processing system 10 may be integrated into one server device or divided into a plurality of devices.
[0161] Each function of the embodiment described above can be realized by one or more processing circuits. Here, the "processing circuit" in this specification refers to a processor programmed to execute each function by software, such as a processor implemented by an electronic circuit, an ASIC (Application Specific Integrated Circuit) designed to execute each function described above, a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), and devices such as conventional circuit modules.
Description of Reference Numerals
[0162] 10 Information processing system 20 Device 30 Terminal device 40 External service system 100 Service providing system
Prior Art Documents
Patent Documents
[0163]
Patent Document 1
Claims
1. An information processing system that executes an application including one or more processes in response to a request from a device, a communication unit that receives a creation request for an application including one or more processes, a flow generation unit that generates a processing flow in which a process of acquiring data from the outside and a process of storing the data in a storage area are added to a process of acquiring data from the outside based on the processes included in the application, an application execution unit that executes the application and the processing flow when execution of the application is requested, a screen generation unit that provides the device with screen information for displaying the data in the storage area, characterized by comprising:
2. The information processing system according to claim 1, further comprising a flow necessity determination unit that determines whether to generate the processing flow according to whether the process included in the application is a process related to file browsing.
3. When the process included in the application for which the flow necessity determination unit determines to generate the processing flow is a type of process related to whether data can be stored in a storage area, the flow generation unit generates different processing flows, characterized in that the information processing system according to claim 2.
4. When the process included in the application for which the flow necessity determination unit determines to generate the processing flow is a first type in which data can be stored in the storage area, the flow generation unit generates a processing flow of acquiring data from the outside by the first type of process and storing the data in the storage area, When the process included in the application for which the flow necessity determination unit determines to generate the processing flow is a second type in which data cannot be stored in the storage area, the flow generation unit generates a processing flow in which the first type of process of storing the data in the storage area is added to the process of acquiring data from the outside by the second type of process, characterized in that the information processing system according to claim 3.
5. Regardless of whether the process included in the application for which it is determined to generate the processing flow is a first type in which data can be stored in a storage area or a second type in which data cannot be stored in a storage area, The information processing system according to claim 1 or 2, wherein the flow generation unit generates a processing flow in which the first type of processing for storing data in a storage area is added to the processing for acquiring data from the outside by the second type of processing.
6. When the flow generation unit generates a processing flow in which the first type of processing for storing data in a storage area is added to the processing for acquiring data from the outside by the second type of processing, the first type of processing issues a URL of the data in the storage area, The information processing system according to claim 4 or 5, wherein the screen generation unit generates screen information for displaying the data in the storage area specified by the URL.
7. The application included in the application in which the flow necessity determination unit determines to generate the processing flow includes a type determination unit that determines whether or not the processing has a function of storing data in a storage area, when the type determination unit determines that the processing has a function of storing data in the storage area, the flow generation unit generates a processing flow for acquiring data from the outside and storing the data in the storage area by the first type of processing having a function of storing data in the storage area, when the type determination unit determines that the processing does not have a function of storing data in the storage area, The information processing system according to claim 3, wherein the flow generation unit generates a processing flow in which the first type of processing for storing data in a storage area is added to the processing for acquiring data from the outside by the second type of processing that does not have a function of storing data in the storage area.
8. The application transmits a list of files acquired from the outside to the device, the processing flow stores a thumbnail of the file specified from the device in the storage area as the data, The information processing system according to any one of claims 1 to 7, wherein the screen generation unit provides the device with screen information for displaying the thumbnail stored in the storage area.
9. The application transmits a list of files acquired from the outside to the device, the processing flow stores an icon of the file specified from the device in the storage area as the data, The screen generation unit provides the device with screen information for displaying the icon stored in the storage area, according to any one of claims 1 to 7, in the information processing system described above.
10. A service providing system that communicates with an information processing system that executes an application including one or more processes in response to a request from a device, The information processing system, A communication unit that receives a creation request for an application including one or more processes, A flow generation unit that generates a processing flow in which a process of acquiring data from the outside and a process of storing the data in a storage area are added to a process of acquiring data from the outside based on the processes included in the application, An application execution unit that executes the application and the processing flow when a request to execute the application is received, A screen generation unit that provides the device with screen information for displaying the data in the storage area, and The device, A service providing system characterized in that the data is displayed based on the screen information received from the information processing system.
11. An application execution method performed by an information processing system that executes an application including one or more processes in response to a request from a device, A step in which a communication unit receives a creation request for an application including one or more processes, A step in which a flow generation unit generates a processing flow in which a process of acquiring data from the outside and a process of storing the data in a storage area are added to a process of acquiring data from the outside based on the processes included in the application, A step in which an application execution unit executes the application and the processing flow when a request to execute the application is received, A step in which a screen generation unit provides the device with screen information for displaying the data in the storage area, An application execution method characterized by comprising the steps of.
Citation Information
Patent Citations
Information processor, method for displaying printing preview and storage medium storing computer readable program
JP2002055801A
Information processing system, update method, information processor, and program
JP2018072948A
Information processing system, information processing device, and information processing method
JP2018205933A
Image application software providing a list of user selectable tasks
US20030161003A1
Desktop application fulfillment platform with multiple authentication mechanisms
US20180278602A1