JP6690196B2 - Information processing system, information processing apparatus, and information processing method - Google Patents

Information processing system, information processing apparatus, and information processing method Download PDF

Info

Publication number
JP6690196B2
JP6690196B2 JP2015222330A JP2015222330A JP6690196B2 JP 6690196 B2 JP6690196 B2 JP 6690196B2 JP 2015222330 A JP2015222330 A JP 2015222330A JP 2015222330 A JP2015222330 A JP 2015222330A JP 6690196 B2 JP6690196 B2 JP 6690196B2
Authority
JP
Japan
Prior art keywords
component
information
unit
request
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015222330A
Other languages
Japanese (ja)
Other versions
JP2016154000A (en
Inventor
和徳 杉村
和徳 杉村
雄一郎 林
雄一郎 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to US15/042,492 priority Critical patent/US10122870B2/en
Priority to EP16155705.3A priority patent/EP3057303B1/en
Priority to EP20170721.3A priority patent/EP3739862B1/en
Publication of JP2016154000A publication Critical patent/JP2016154000A/en
Application granted granted Critical
Publication of JP6690196B2 publication Critical patent/JP6690196B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理システム、情報処理装置、及び情報処理方法に関する。   The present invention relates to an information processing system, an information processing device, and an information processing method.

近年、クラウドコンピューティング等により多種多様な外部サービスが提供されるようになった。例えば、ユーザにより指定された電子データを外部ストレージに保管する外部サービス等が知られている。   In recent years, a wide variety of external services have come to be provided by cloud computing and the like. For example, there is known an external service that stores electronic data designated by a user in an external storage.

また、例えば画像形成装置で原稿をスキャンして取得した画像データを外部ストレージに保管する技術が知られている(例えば特許文献1参照)。このように、画像形成装置と外部サービスとが連携して処理を行う技術が従来より知られている。   In addition, for example, a technique is known in which image data obtained by scanning an original with an image forming apparatus is stored in an external storage (see, for example, Patent Document 1). As described above, there is conventionally known a technique in which an image forming apparatus and an external service cooperate with each other to perform processing.

しかしながら、上記の従来技術においては、外部サービスと連携して処理を行うためには画像形成装置に搭載されるアプリケーションの開発が必要となる。また、ある外部サービスが固有の機能(他の外部サービスが提供していない機能)を提供するようになった場合には、この固有の機能を利用するためのモジュールやプラグイン等を開発する必要がある。したがって、画像形成装置に搭載されるアプリケーションの追加や修正等の開発に要する工数が大きくなる場合があった。   However, in the above-mentioned conventional technique, it is necessary to develop an application installed in the image forming apparatus in order to perform the processing in cooperation with the external service. Also, when a certain external service comes to provide a unique function (a function not provided by another external service), it is necessary to develop a module or plug-in to use this unique function. There is. Therefore, the number of man-hours required for development such as addition or modification of an application installed in the image forming apparatus may be large.

本発明の一実施形態は、上記の点に鑑みてなされたもので、外部サービスと連携した処理を行うためのアプリケーションの開発を支援することを目的とする。   An embodiment of the present invention has been made in view of the above points, and an object thereof is to support the development of an application for performing processing linked with an external service.

上記目的を達成するため、本発明の一実施形態は、1以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、該一連の処理を前記プログラムを組み合わせて実行するための一連の処理に関する情報とを関連付けて記憶する記憶手段と、前記情報処理システムに接続される1以上の機器のうちの一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む要求を受け付ける受付手段と、前記受付手段により受け付けた前記要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記要求に含まれる前記識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づいて、前記複数のプログラムのうちの1以上のプログラムを組み合わせて実行する処理実行手段とを有することを特徴とする。   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 and having a plurality of programs that respectively execute predetermined processes, and A storage unit that stores, for each application that executes processing in cooperation with an external service, identification information that identifies the application and information regarding a series of processing for executing the series of processing in combination with the program in association with each other. And a reception unit that receives a request including the identification information and information about electronic data used for the series of processes from one of the one or more devices connected to the information processing system, and the reception unit. The series of processes using electronic data based on information about the electronic data included in the received request, Processing execution means for executing a combination of one or more programs of the plurality of programs based on information about the series of processing stored in the storage means in association with the identification information included in the request. It is characterized by

本発明の一実施形態によれば、外部サービスと連携した処理を行うためのアプリケーションの開発を支援することができる。   According to an embodiment of the present invention, it is possible to support the development of an application for performing processing linked with an external service.

第1の実施形態に係る情報処理システムの一例の構成図である。It is a block diagram of an example of the information processing system which concerns on 1st Embodiment. 第1の実施形態に係るサービス提供システムの一例のハードウェア構成図である。It is a hardware block diagram of an example of the service provision system which concerns on 1st Embodiment. 第1の実施形態に係る画像形成装置の一例のハードウェア構成図である。1 is a hardware configuration diagram of an example of an image forming apparatus according to a first exemplary embodiment. 第1の実施形態に係る情報処理システムの一例の処理ブロック図である。It is a processing block diagram of an example of the information processing system which concerns on 1st Embodiment. 共通I/F及び固有I/Fの一例を説明するための図である。It is a figure for explaining an example of common I / F and peculiar I / F. データ定義の一例を説明するための図である。It is a figure for explaining an example of data definition. レイアウト情報の一例を説明するための図である。It is a figure for explaining an example of layout information. 処理内容の一例を説明するための図である。It is a figure for explaining an example of processing contents. 第1の実施形態に係るスキャン配信サービスの全体処理の一例のシーケンス図である。It is a sequence diagram of an example of the whole process of the scan delivery service which concerns on 1st Embodiment. スキャン配信サービスを利用するためのアプリ画面の一例を説明するための図である。It is a figure for explaining an example of an application screen for using a scan delivery service. 第1の実施形態に係るロジック処理部の一例の処理ブロック図である。It is a processing block diagram of an example of a logic processing unit according to the first embodiment. 型変換テーブルの一例を説明するための図である。It is a figure for explaining an example of a type conversion table. 第1の実施形態に係るOCRから配信実行までの処理の一例のシーケンス図である。FIG. 6 is a sequence diagram of an example of processing from OCR to delivery execution according to the first embodiment. 第1の実施形態に係るクラウドプリントサービスの全体処理の一例のシーケンス図である。It is a sequence diagram of an example of the overall processing of the cloud print service according to the first embodiment. クラウドプリントサービスを利用するためのアプリ画面の一例を説明するための図である。It is a figure for explaining an example of an application screen for using a cloud print service. 第1の実施形態に係るファイル取得実行から印刷変換までの処理の一例のシーケンス図である。FIG. 6 is a sequence diagram of an example of processing from file acquisition execution to print conversion according to the first embodiment. 第2の実施形態に係る情報処理システムの一例の処理ブロック図である。It is a processing block diagram of an example of the information processing system which concerns on 2nd Embodiment. 第2の実施形態に係るアプリ画面の表示処理の一例のシーケンス図である。It is a sequence diagram of an example of a display process of an application screen according to the second embodiment. 第3の実施形態に係る情報処理システムの一例の構成図である。It is a block diagram of an example of the information processing system which concerns on 3rd Embodiment. 第3の実施形態に係る情報処理システムの一例の処理ブロック図である。It is a processing block diagram of an example of the information processing system concerning a 3rd embodiment. 第3の実施形態に係るロジック処理部の一例の処理ブロック図である。It is a processing block diagram of an example of a logic processing part concerning a 3rd embodiment. コンポーネント管理テーブルの一例を説明するための図である。It is a figure for explaining an example of a component management table. 第3の実施形態に係る外部コンポーネント処理部の一例の処理ブロック図である。It is a processing block diagram of an example of the external component processing part concerning a 3rd embodiment. 型変換テーブルの一例を説明するための図である。It is a figure for explaining an example of a type conversion table. 第3の実施形態に係るOCRから配信実行までの処理の一例のシーケンス図である。It is a sequence diagram of an example of a process from OCR to delivery execution according to the third embodiment. 処理内容の他の例を説明するための図である。It is a figure for explaining other examples of processing contents. 第3の実施形態に係る外部コンポーネント処理の一例のシーケンス図である。It is a sequence diagram of an example of the external component processing concerning a 3rd embodiment. 第3の実施形態に係る処理内容の作成処理の一例のシーケンス図である。FIG. 16 is a sequence diagram of an example of a process content creation process according to the third embodiment. 処理内容の作成の一例を説明するための図である。It is a figure for explaining an example of creation of processing contents.

以下、本発明の実施形態について図面を参照しながら詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[第1の実施形態]
<システム構成>
図1は、第1の実施形態に係る情報処理システムの一例の構成図である。図1に示される情報処理システム1は、サービス提供環境E1、ユーザ環境E2、及び外部ストレージシステム30を含み、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
[First Embodiment]
<System configuration>
FIG. 1 is a configuration diagram of an example of an information processing system according to the first embodiment. The information processing system 1 shown in FIG. 1 includes a service providing environment E1, a user environment E2, and an external storage system 30, and is communicably connected via a wide area network N1 such as the Internet.

サービス提供環境E1は、ネットワークを介してクラウドサービス等の外部サービスを提供するシステム環境である。なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して本実施の形態が適用されてもよい。   The service providing environment E1 is a system environment that provides external services such as cloud services via a network. In the present embodiment, a cloud service will be described as a specific example of the external service. However, the present embodiment will be applied to a service provided via a network such as a service provided by an ASP (Application Service Provider) or a Web service. The form of may be applied.

サービス提供環境E1は、一台以上の情報処理装置で実現されるサービス提供システム10を有する。サービス提供システム10は、ネットワークを介して所定のサービスを提供する。例えば、サービス提供システム10は、ユーザ環境E2の画像形成装置20において原稿をスキャンして生成された電子ファイルを、OCR(Optical Character Reader)処理して、外部ストレージシステム30に保存するサービス(スキャン配信サービス)を提供する。また、例えば、サービス提供システム10は、外部ストレージシステム30に保存されている電子ファイルを、ユーザ環境E2の画像形成装置20で印刷するサービス(クラウドプリントサービス)を提供する。本実施形態では、サービス提供システム10は、このようなスキャン配信サービス及びクラウドプリントサービスを提供するものとして説明する。   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 a predetermined service via the network. For example, the service providing system 10 performs a OCR (Optical Character Reader) process on an electronic file generated by scanning an original in the image forming apparatus 20 of the user environment E2, and saves it in the external storage system 30 (scan delivery). Service). Further, for example, the service providing system 10 provides a service (cloud print service) for printing an electronic file stored in the external storage system 30 with the image forming apparatus 20 in the user environment E2. In the present embodiment, the service providing system 10 will be described as providing such a scan delivery service and a cloud print service.

ただし、サービス提供システム10により提供されるサービスは、これらに限られず、例えば、外部ストレージシステム30に保存されている電子ファイルを、ユーザ環境E2のプロジェクタで投影するサービス等であってもよい。また、画像形成装置20において原稿をスキャンして生成された電子ファイルを、OCR処理した後、所定の言語に翻訳(例えば、英語から日本語に翻訳)して、外部ストレージシステム30に保存するサービス等であってもよい。   However, the services provided by the service providing system 10 are not limited to these, and may be, for example, a service of projecting an electronic file stored in the external storage system 30 with a projector of the user environment E2. In addition, a service in which an electronic file generated by scanning a document in the image forming apparatus 20 is OCR processed, translated into a predetermined language (for example, translated from English into Japanese), and stored in the external storage system 30. And so on.

なお、サービス提供システム10の全部又は一部は、ユーザ環境E2に設置されていてもよい。すなわち、サービス提供システム10を構成する情報処理装置の全部又は一部は、ユーザ環境E2に包含されていてもよい。   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 that form the service providing system 10 may be included in the user environment E2.

ユーザ環境E2は、例えば画像形成装置20を使用するユーザである企業等におけるシステム環境である。ユーザ環境E2は、一台以上の画像形成装置20が例えばLAN(Local Area Network)等のネットワークを介して接続されている。   The user environment E2 is, for example, a system environment in a company that is a user who uses the image forming apparatus 20. In the user environment E2, one or more image forming apparatuses 20 are connected via a network such as a LAN (Local Area Network).

本実施形態に係る画像形成装置20は、プリント機能及びスキャン機能を有する画像形成装置である。なお、画像形成装置20は、プリント機能及びスキャン機能以外に、コピー機能やファックス(FAX)通信機能等を備える複合機等でもよい。   The image forming apparatus 20 according to the present embodiment is an image forming apparatus having a print function and a scan function. The image forming apparatus 20 may be a multi-function peripheral or the like having a copy function, a fax (FAX) communication function, and the like in addition to the print function and the scan function.

外部ストレージシステム30は、ネットワークを介してストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム30のストレージの記憶領域を貸し出すサービスである。本実施形態では、スキャン配信サービスにおいて、外部ストレージシステム30によって貸し出される記憶領域に、OCR処理された電子ファイルを保存(アップロード)する。また、本実施形態では、クラウドプリントサービスにおいて、外部ストレージシステム30によって貸し出される記憶領域から印刷対象となる電子ファイルを取得(ダウンロード)する。なお、以降では、複数の外部ストレージシステム30について、各々を区別するときは、「外部ストレージシステム30」、「外部ストレージシステム30」等と添え字を用いて記載する。また、外部ストレージシステム30によって提供されるサービスの名称を「ストレージサービスA」、ストレージシステム30によって提供されるサービスの名称を「ストレージサービスB」等とする。 The external storage system 30 is a computer system that provides a cloud service called a storage service (or online storage) via a network. The storage service is a service for lending a storage area of the storage of the external storage system 30. In the present embodiment, in the scan distribution service, the electronic file subjected to the OCR processing is saved (uploaded) in the storage area lent out by the external storage system 30. Further, in the present embodiment, in the cloud print service, an electronic file to be printed is acquired (downloaded) from the storage area lent by the external storage system 30. Note that, hereinafter, when distinguishing each of the plurality of external storage systems 30, they are described using subscripts such as “external storage system 30 1 ” and “external storage system 30 2 ”. Further, the name of the service provided by the external storage system 30 1 is “storage service A”, the name of the service provided by the storage system 30 2 is “storage service B”, and the like.

なお、外部ストレージシステム30は、複数台の情報処理装置によって実現されるシステムであってもよい。また、図1に示される情報処理システム1の構成は一例であって、他の構成であってもよい。例えば、上述したように、ユーザ環境E2は、画像形成装置20に加えて又は画像形成装置20に代えて、プロジェクタ、電子黒板等の各種機器を有していてもよい。   The external storage system 30 may be a system realized by a plurality of information processing devices. Further, the configuration of the information processing system 1 shown in FIG. 1 is an example, and other configurations may be used. For example, as described above, the user environment E2 may include various devices such as a projector and an electronic blackboard in addition to or in place of the image forming apparatus 20.

<ハードウェア構成>
≪サービス提供システム≫
図1に示されるサービス提供システム10は、例えば図2に示されるようなハードウェア構成を有する。図2は、第1の実施形態に係るサービス提供システムの一例のハードウェア構成図である。図2に示すサービス提供システム10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14とを有する。また、サービス提供システム10は、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、HDD(Hard Disk Drive)18とを有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
<Hardware configuration>
≪Service provision system≫
The service providing system 10 shown in FIG. 1 has a hardware configuration as shown in FIG. 2, for example. FIG. 2 is a hardware configuration diagram of an example of the service providing system according to the first embodiment. The service providing system 10 illustrated in FIG. 2 includes 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 includes a ROM (Read Only Memory) 15, a CPU (Central Processing Unit) 16, a communication I / F 17, and an HDD (Hard Disk Drive) 18. The respective pieces of hardware are connected by a bus B.

入力装置11は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置12は、ディスプレイ等を含み、サービス提供システム10による処理結果を表示する。なお、入力装置11及び/又は表示装置12は、必要なときにサービス提供システム10に接続して利用する形態であってもよい。   The input device 11 includes a keyboard, a mouse, a touch panel, etc., and is used by the user to input each operation signal. The display device 12 includes a display and the like, and displays the processing result by the service providing system 10. The input device 11 and / or the display device 12 may be in a form of being connected to the service providing system 10 and used when necessary.

通信I/F17は、サービス提供システム10をネットワークN1に接続するインタフェースである。これにより、サービス提供システム10は、通信I/F17を介してデータ通信を行うことができる。   The communication I / F 17 is an interface that connects the service providing system 10 to the network N1. Thereby, the service providing system 10 can perform data communication via the communication I / F 17.

HDD18は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、サービス提供システム10全体を制御する基本ソフトウェアであるOS(Operating System)、及びOS上において各種機能を提供するアプリケーションソフトウェア等がある。なお、サービス提供システム10は、HDD18に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。また、HDD18は、格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。   The HDD 18 is an example of a non-volatile storage device that stores programs and data. The stored programs and data include an OS (Operating System) that is basic software that controls the entire service providing system 10 and application software that provides various functions on the OS. The service providing system 10 may use a drive device (for example, a solid state drive: SSD) that uses a flash memory as a storage medium instead of the HDD 18. Further, the HDD 18 manages stored programs and data by a predetermined file system and / or DB.

外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。これにより、サービス提供システム10は、外部I/F13を介して記録媒体13aの読み取り及び/又は書き込みを行うことができる。記録媒体13aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。   The external I / F 13 is an interface with an external device. The external device includes a recording medium 13a and the like. Thereby, the service providing system 10 can read and / or write the recording medium 13a via the external I / F 13. The recording medium 13a includes a flexible disk, a CD, a DVD, an SD memory card, a USB memory and the like.

ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM15には、サービス提供システム10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。   The ROM 15 is a non-volatile semiconductor memory (storage device) 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) executed when the service providing system 10 is activated, OS settings, and network settings. The RAM 14 is a volatile semiconductor memory (storage device) that temporarily holds programs and data.

CPU16は、ROM15やHDD18等の記憶装置からプログラムやデータをRAM14上に読み出し、処理を実行することで、サービス提供システム10全体の制御や機能を実現する演算装置である。   The CPU 16 is an arithmetic unit that realizes control and functions of the entire service providing system 10 by reading programs and data from a storage device such as the ROM 15 and the HDD 18 onto the RAM 14 and executing processing.

本実施形態に係るサービス提供システム10は、上記のハードウェア構成を有することにより、後述するような各種処理を実現できる。   The service providing system 10 according to the present embodiment can realize various processes described below by having the above hardware configuration.

≪画像形成装置≫
図1に示される画像形成装置20は、例えば図3に示されるようなハードウェア構成を有する。図3は、第1の実施形態に係る画像形成装置の一例のハードウェア構成図である。図3に示す画像形成装置20は、コントローラ21と、操作パネル22と、外部I/F23と、通信I/F24と、プリンタ25と、スキャナ26とを有する。また、コントローラ21は、CPU211と、RAM212と、ROM213と、NVRAM214と、HDD215とを有する。ROM213は、各種プログラムやデータが格納されている。RAM212はプログラムやデータを一時保持する。NVRAM214は、例えば設定情報等が格納されている。また、HDD215は各種プログラムやデータが格納されている。
≪Image forming device≫
The image forming apparatus 20 shown in FIG. 1 has a hardware configuration as shown in FIG. 3, for example. FIG. 3 is a hardware configuration diagram of an example of the image forming apparatus according to the first embodiment. The image forming apparatus 20 illustrated in FIG. 3 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 has a CPU 211, a RAM 212, a ROM 213, an NVRAM 214, and an HDD 215. The ROM 213 stores various programs and data. The RAM 212 temporarily holds programs and data. The NVRAM 214 stores, for example, setting information and the like. Further, the HDD 215 stores various programs and data.

CPU211は、ROM213やNVRAM214、HDD215等からプログラムやデータ、設定情報等をRAM212上に読み出し、処理を実行することで、画像形成装置20全体の制御や機能を実現する。   The CPU 211 reads out programs, data, setting information, etc. from the ROM 213, NVRAM 214, HDD 215, etc. onto the RAM 212, and executes processing to realize the control and functions of the entire image forming apparatus 20.

操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、画像形成装置20は、外部I/F23を介して記録媒体23aの読み取り及び/又は書き込みを行うことができる。記録媒体23aにはICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。   The operation panel 22 includes an input unit that receives an input from the user and a display unit that displays. The external I / F 23 is an interface with an external device. The external device includes a recording medium 23a and the like. Thereby, the image forming apparatus 20 can read and / or write the recording medium 23a via the external I / F 23. The recording medium 23a includes an IC card, a flexible disk, a CD, a DVD, an SD memory card, a USB memory and the like.

通信I/F24は、画像形成装置20をネットワークN1に接続するインタフェースである。これにより、画像形成装置20は通信I/F24を介してデータ通信を行うことができる。プリンタ25は、印刷データを印刷するための印刷装置である。スキャナ26は原稿を読み取り画像ファイル(電子ファイル)を生成するための読取装置である。   The communication I / F 24 is an interface that connects the image forming apparatus 20 to the network N1. Thereby, the image forming apparatus 20 can perform data communication via the communication I / F 24. The printer 25 is a printing device for printing print data. The scanner 26 is a reading device for reading a document and generating an image file (electronic file).

本実施形態に係る画像形成装置20は、上記のハードウェア構成を有することにより、後述するような各種処理を実現できる。   The image forming apparatus 20 according to the present embodiment can realize various kinds of processing described below by having the above hardware configuration.

<ソフトウェア構成>
第1の実施形態に係る情報処理システム1は、例えば図4に示されるような処理ブロックにより実現することができる。図4は、第1の実施形態に係る情報処理システムの一例の処理ブロック図である。
<Software configuration>
The information processing system 1 according to the first embodiment can be realized by processing blocks as shown in FIG. 4, for example. FIG. 4 is a processing block diagram of an example of the information processing system according to the first embodiment.

画像形成装置20は、例えばCPU211等により実現されるブラウザ210を有する。画像形成装置20のユーザは、ブラウザ210を介して、サービス提供システム10により提供されるサービスを利用することができる。このように、本実施形態に係る画像形成装置20では、ブラウザ210が搭載されていればよく、サービスを利用するための専用のアプリケーションを開発等する必要がない。   The image forming apparatus 20 has a browser 210 realized by, for example, the CPU 211. The user of the image forming apparatus 20 can use the service provided by the service providing system 10 via the browser 210. As described above, the image forming apparatus 20 according to the present embodiment only needs to have the browser 210 installed, and does not need to develop a dedicated application for using the service.

サービス提供システム10は、サービス処理部110と、ドキュメントサービス部150と、ストレージサービス連携部160とを有する。これら各部は、例えばCPU16等により実現される。   The service providing system 10 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, for example, the CPU 16 or the like.

また、サービス提供システム10は、アプリ情報記憶部190を有する。このアプリ情報記憶部190は、HDD18により実現される。なお、アプリ情報記憶部190は、サービス提供システム10とネットワークを介して接続される記憶装置等により実現されてもよい。   The service providing system 10 also includes an application information storage unit 190. The application information storage unit 190 is realized by the HDD 18. The application information storage unit 190 may be realized by a storage device or the like connected to the service providing system 10 via a network.

サービス処理部110は、アプリ管理部120と、ロジック処理部130と、データI/F部140とを有する。   The service processing unit 110 includes an application management unit 120, a logic processing unit 130, and a data I / F unit 140.

アプリ管理部120は、アプリ情報記憶部190に記憶されているアプリ情報1000を管理する。アプリ管理部120は、ブラウザ210からの要求に応じて、アプリ情報1000に含まれる画面定義に基づくアプリ画面を返信する。これにより、画像形成装置20のブラウザ210には、サービス提供システム10により提供されるサービスを利用するためのアプリ画面が表示される。ここで、アプリ情報1000は、詳細は後述するが、上述したアプリ画面を画像形成装置20に表示させるための画面定義と、当該アプリ情報1000により実現されるサービスの処理内容とが記述された情報である。   The application management unit 120 manages the application information 1000 stored in the application information storage unit 190. The application management unit 120 returns an application screen based on the screen definition included in the application information 1000 in response to a request from the browser 210. As a result, an application screen for using the service provided by the service providing system 10 is displayed on the browser 210 of the image forming apparatus 20. Here, although the details of the application information 1000 will be described later, information in which a screen definition for displaying the above-described application screen on the image forming apparatus 20 and the processing content of the service realized by the application information 1000 are described. Is.

また、アプリ管理部120は、ロジック処理部130からの要求に応じて、アプリ情報1000に含まれる処理内容を返信する。処理内容は、詳細は後述するが、スキャン配信サービスやクラウドプリントサービス等を実現するための一連の処理が記述されている。なお、一連の処理は、「処理フロー」又は「フロー」とも称される。   The application management unit 120 also returns the processing content included in the application information 1000 in response to a request from the logic processing unit 130. Although the details of the processing will be described later, a series of processing for realizing a scan delivery service, a cloud print service, etc. is described. The series of processes is also referred to as a “process flow” or a “flow”.

ロジック処理部130は、ブラウザ210からの要求に応じて、アプリ管理部120から処理内容を取得する。そして、ロジック処理部130は、取得した処理内容に従ってドキュメントサービス部150又は/及びストレージサービス連携部160のファイル処理部170に対して、処理の実行を要求する。これにより、サービス提供システム10による各種サービスが、画像形成装置20に提供される。なお、ロジック処理部130の詳細な処理ブロックについては、後述の<処理の詳細>の中で説明する。   The logic processing unit 130 acquires the processing content from the application management unit 120 in response to the request from the browser 210. Then, the logic processing unit 130 requests the document service unit 150 and / or the file processing unit 170 of the storage service cooperation unit 160 to execute the process according to the acquired processing content. As a result, various services provided by the service providing system 10 are provided to the image forming apparatus 20. Detailed processing blocks of the logic processing unit 130 will be described in <Details of processing> described later.

データI/F部140は、ブラウザ210からの要求に応じて、ストレージサービス連携部160のデータ処理部180に対して、例えばフォルダ一覧の取得等を要求する。   In response to a request from the browser 210, the data I / F unit 140 requests the data processing unit 180 of the storage service cooperation unit 160 to obtain a folder list, for example.

ドキュメントサービス部150は、サービス提供システム10により提供されるサービスを実現するためのプログラム(モジュール)群である。ドキュメントサービス部150には、例えば、電子ファイルに対してOCR処理を実行するOCR処理151や電子ファイルを画像形成装置20が印刷可能なデータ形式(印刷データ)に変換する印刷変換処理152等が含まれる。ドキュメントサービス部150には、これら以外にも、例えば、電子ファイルの圧縮又は解凍するためのプログラム、電子ファイルのデータ形式を変換(例えばPDF形式に変換)するためのプログラム等、各種の処理を実行するプログラムが含まれていてもよい。   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, for example, an OCR process 151 that executes an OCR process on an electronic file, a print conversion process 152 that converts an electronic file into a data format (print data) printable by the image forming apparatus 20, and the like. Be done. In addition to these, the document service unit 150 executes various processes such as a program for compressing or decompressing an electronic file, a program for converting a data format of an electronic file (for example, a PDF format), and the like. The program to do may be included.

ストレージサービス連携部160は、ロジック処理部130及びデータI/F部140からの要求に応じて、外部ストレージシステム30に対して、各種処理の実行を要求する。ここで、サービス提供システム10は、外部ストレージシステム30毎に、ストレージサービス連携部160をそれぞれ有する。すなわち、サービス提供システム10は、外部ストレージシステム30に対して処理を要求するためのストレージサービスA連携部160、外部ストレージシステム30に対して処理を要求するためのストレージサービスB連携部160等を有する。このように、サービス提供システム10は、連携して処理を行う外部ストレージシステム30毎に、それぞれ対応するストレージサービス連携部160を有する。なお、以降では、複数のストレージサービス連携部160について、各々を区別するときは、上記のように「ストレージサービスA連携部160」、「ストレージサービスB連携部160」等と添え字を用いて記載する。 The storage service cooperation unit 160 requests the external storage system 30 to execute various processes in response to requests from the logic processing unit 130 and the data I / F unit 140. Here, the service providing system 10 has a storage service cooperation unit 160 for each external storage system 30. That is, the service providing system 10 includes the storage service A cooperation unit 160 1 for requesting the external storage system 30 1 for processing and the storage service B cooperation unit 160 for requesting the external storage system 30 2 for processing. Has 2 etc. As described above, the service providing system 10 has the storage service cooperation unit 160 corresponding to each external storage system 30 that performs processing in cooperation with each other. Note that, hereinafter, when distinguishing each of the plurality of storage service cooperation units 160, the subscripts such as “storage service A cooperation unit 160 1 ” and “storage service B cooperation unit 160 2 ” are used as described above. To describe.

ストレージサービス連携部160は、上述したように、ロジック処理部130からの要求を受け付けるファイル処理部170と、データI/F部140からの要求を受け付けるデータ処理部180とを有する。   As described above, the storage service cooperation unit 160 has the file processing unit 170 that receives a request from the logic processing unit 130 and the data processing unit 180 that receives a request from the data I / F unit 140.

ファイル処理部170は、外部ストレージシステム30に保存されている電子ファイルに対する操作(例えば、取得、保存、編集等)を行うためのAPI(Application Programming Interface)が定義された共通I/F171及び固有I/F172を有する。共通I/F171は、複数の外部ストレージシステム30間で共通に利用できるAPIであり、例えば図5(a)に示すようなAPIが挙げられる。換言すれば、ファイル処理部170の共通I/F171は、すべての外部ストレージシステム30が利用できるファイル操作に関する機能(例えば、ファイルの取得、保存等)を利用するためのAPI群である。一方、固有I/F172は、特定の外部ストレージシステム30において利用できるAPIであり、例えば図5(b)に示すようなAPIが挙げられる。換言すれば、ファイル処理部170の固有I/F172は、ある特定の外部ストレージシステム30において利用できるファイル操作に関する機能(例えば、ファイルの編集等)を利用するためのAPI群である。したがって、共通I/F171は、すべてのストレージサービス連携部160に対して同様に定義される一方、固有I/F172は、当該固有I/F172で定義されるAPIが利用可能な特定のストレージサービス連携部160に対して定義される。   The file processing unit 170 has a common I / F 171 and a unique I / F 171 in which an API (Application Programming Interface) for performing an operation (for example, acquisition, storage, editing, etc.) on an electronic file stored in the external storage system 30 is defined. / F172. The common I / F 171 is an API that can be commonly used among a plurality of external storage systems 30, and for example, an API as shown in FIG. In other words, the common I / F 171 of the file processing unit 170 is an API group for using functions related to file operations that can be used by all external storage systems 30 (for example, file acquisition and storage). On the other hand, the unique I / F 172 is an API that can be used in a specific external storage system 30, and for example, an API as shown in FIG. In other words, the unique I / F 172 of the file processing unit 170 is an API group for using a function related to file operation (for example, editing a file) that can be used in a specific external storage system 30. Therefore, the common I / F 171 is defined similarly to all the storage service cooperation units 160, while the unique I / F 172 is the specific storage service cooperation in which the API defined by the specific I / F 172 can be used. Defined for section 160.

一方、データ処理部180は、外部ストレージシステム30に保存されている電子ファイルの書誌情報等のメタデータ(例えば、ファイル一覧、フォルダ一覧等)を取得等するためのAPIが定義された共通I/F181及び固有I/F182を有する。共通I/F181は、複数の外部ストレージシステム30間で共通に利用できるAPIであり、例えば図5(c)に示すようなAPIが挙げられる。換言すれば、データ処理部180の共通I/F181は、すべての外部ストレージシステム30で利用できるメタデータ取得等の機能を利用するためのAPI群である。一方、固有I/F182は、ある特定の外部ストレージシステム30において利用できるAPIであり、例えば図5(d)に示すようなAPIが挙げられる。換言すれば、データ処理部180の固有I/F182は、ある特定の外部ストレージシステム30において利用できるメタデータ取得等の機能(例えば、画像ファイル一覧の取得等)を利用するためのAPI群である。したがって、共通I/F181は、すべてのストレージサービス連携部160に対して同様に定義される一方、固有I/F182は、当該固有I/F182で定義されるAPIが利用可能な特定のストレージサービス連携部160に対して定義される。   On the other hand, the data processing unit 180 defines a common I / O that defines an API for acquiring metadata such as bibliographic information of electronic files stored in the external storage system 30 (eg, file list, folder list, etc.). It has an F181 and a unique I / F182. The common I / F 181 is an API that can be commonly used by a plurality of external storage systems 30, and for example, an API as shown in FIG. In other words, the common I / F 181 of the data processing unit 180 is an API group for using functions such as metadata acquisition that can be used by all the external storage systems 30. On the other hand, the unique I / F 182 is an API that can be used in a specific external storage system 30, and for example, an API as shown in FIG. In other words, the unique I / F 182 of the data processing unit 180 is an API group for using functions such as metadata acquisition (eg, acquisition of image file list) that can be used in a specific external storage system 30. . Therefore, the common I / F 181 is defined similarly for all the storage service cooperation units 160, while the unique I / F 182 is the specific storage service cooperation in which the API defined by the specific I / F 182 can be used. Defined for section 160.

以上のように、本実施形態に係るサービス提供システム10は、連携して処理を行う外部ストレージシステム30毎に、それぞれストレージサービス連携部160を有する。このため、連携先となる外部ストレージシステム30が追加等する場合には、対応するストレージサービス連携部160をサービス提供システム10に追加等すればよい。したがって、連携先となる外部ストレージシステム30の追加等に伴う影響を局所化することができる。換言すれば、他の処理ブロック(サービス処理部110やドキュメントサービス部150等)に影響を与えることなく(すなわち、他の処理ブロックを修正等する必要なく)、連携先となる外部ストレージシステム30の追加等を行うことができる。これにより、連携先の外部ストレージシステム30の追加等の開発に要する工数を削減することができる。なお、ストレージサービス連携部160の追加等は、SDK(Software Development Kit)を用いて行うことができる。   As described above, the service providing system 10 according to the present embodiment has the storage service cooperation unit 160 for each external storage system 30 that performs processing in cooperation with each other. Therefore, when the external storage system 30 that is the cooperation destination is added, the corresponding storage service cooperation unit 160 may be added to the service providing system 10. Therefore, it is possible to localize the influence of the addition of the external storage system 30 as the cooperation destination. In other words, it does not affect other processing blocks (service processing unit 110, document service unit 150, etc.) (that is, it is not necessary to modify other processing blocks) and Additions can be made. This can reduce the number of man-hours required for development such as addition of the external storage system 30 of the cooperation destination. The storage service cooperation unit 160 can be added by using an SDK (Software Development Kit).

また、ストレージサービス連携部160は、共通I/F171と固有I/F172とを異なるモジュール等で定義している。また、共通I/F171及び固有I/F172で定義されるAPIは、「ストレージサービス名」を指定することで利用することができる(すなわち、「ストレージサービス名」が可変部分となっている)。したがって、連携先の外部ストレージシステム30を追加する場合には、他のストレージサービス連携部160に定義されている共通I/F171を再利用することができる。換言すれば、連携先の外部ストレージシステム30を追加する場合には、当該追加する外部ストレージシステム30の固有I/F172のみ開発すればよい。これにより、連携先の外部ストレージシステム30の追加等の開発に要する工数をさらに削減することができる。なお、このことは共通I/F181と固有I/F182に関しても同様である。   Further, the storage service cooperation unit 160 defines the common I / F 171 and the unique I / F 172 by different modules or the like. The API defined by the common I / F 171 and the unique I / F 172 can be used by designating the "storage service name" (that is, the "storage service name" is a variable part). Therefore, when the external storage system 30 of the cooperation destination is added, the common I / F 171 defined in the other storage service cooperation unit 160 can be reused. In other words, when adding the external storage system 30 of the cooperation destination, only the unique I / F 172 of the external storage system 30 to be added needs to be developed. As a result, the number of man-hours required for development such as addition of the external storage system 30 of the cooperation destination can be further reduced. The same applies to the common I / F 181 and the unique I / F 182.

アプリ情報記憶部190は、アプリ情報1000を記憶する。アプリ情報1000は、アプリ画面を画像形成装置20に表示させるための画面定義と、サービスを実現するため一連の処理を示す処理内容とが記述された情報であり、アプリ情報1000を一意に識別するためのアプリID毎に、アプリ情報記憶部190に記憶されている。本実施形態では、クラウドサービスAと連携したスキャン配信サービスを実現するためのアプリ情報を「アプリ情報1000」とし、このアプリ情報1000のアプリID「app001」とする。また、本実施形態では、クラウドサービスAと連携したクラウドプリントサービスを実現するためのアプリ情報を「アプリ情報1000」、このアプリ情報1000のアプリIDを「app002」とする。 The application information storage unit 190 stores the application information 1000. The application information 1000 is information in which a screen definition for displaying an application screen on the image forming apparatus 20 and processing contents indicating a series of processing for realizing a service are described, and the application information 1000 is uniquely identified. It is stored in the application information storage unit 190 for each application ID. In the present embodiment, the application information for realizing the scan delivery service in cooperation with the cloud service A is “application information 1000 1 ”, and the application ID “app001” of this application information 1000 1 is used. Further, in this embodiment, the application information for realizing the cloud print service in cooperation with the cloud service A is “application information 1000 2 ”, and the application ID of this application information 1000 2 is “app002”.

ここで、アプリ情報1000の画面定義に含まれるデータ定義及びアプリ情報1000の画面定義に含まれるデータ定義を、それぞれ図6(a)及び図6(b)に示す。データ定義は、画像形成装置20のブラウザ210により操作パネル22等に表示されるアプリ画面の入力欄(入力ボックス)や選択欄(選択ボックス)等を構成するための情報が記述されている。例えば、図6(a)におけるデータ定義部1101では、ユーザがスキャンにより生成される電子ファイルのファイル名を入力するための入力欄を構成するための情報が記述されている。また、データ定義部1102では、ストレージサービスAにおける保存先フォルダを選択するための選択欄を構成するための情報が記述されている。なお、データ定義部1102の「data_source」には選択欄の各選択要素(ここでは、保存先候補のフォルダ名及びフォルダID)の取得先のURL(Uniform Resource Locator)が記述されている。 Here, the data definition included in the screen definition of the application information 1000 1 and the data definition included in the screen definition of the application information 1000 2 are shown in FIGS. 6A and 6B, respectively. The data definition describes information for configuring an input field (input box), a selection field (selection box), etc. of the application screen displayed on the operation panel 22 or the like by the browser 210 of the image forming apparatus 20. For example, in the data definition unit 1101 in FIG. 6A, information for forming an input field for the user to input the file name of an electronic file generated by scanning is described. Further, in the data definition section 1102, information for forming a selection field for selecting a storage destination folder in the storage service A is described. The “data_source” of the data definition unit 1102 describes the URL (Uniform Resource Locator) of the acquisition destination of each selection element (here, the folder name and folder ID of the storage destination candidate) in the selection field.

次に、アプリ情報1000の画面定義に含まれるレイアウト情報及びアプリ情報1000の画面定義に含まれるレイアウト情報を、それぞれ図7(a)及び図7(b)に示す。レイアウト情報は、画像形成装置20のブラウザ210により操作パネル22等に表示されるアプリ画面に表示される文字(入力欄の表示名称等)、入力欄や選択欄の表示位置等の情報が記述されている。例えば、図7(a)におけるレイアウト定義部1301では、データ定義における「"data_id":1」(すなわち、データ定義部1101)の表示位置及び表示名称の情報が記述されている。これにより、具体例は後に示すが、アプリ画面には、表示名称が「ファイル名」である入力欄が、1番目の位置に表示される。また、レイアウト定義部1302では、データ定義における「"data_id":2」(すなわち、データ定義部1102)の表示位置及び表示名称の情報が記述されている。これにより、具体例は後に示すが、アプリ画面には、表示名称が「保存先フォルダ選択」である選択欄が、2番目の位置に表示される。 Next, the layout information included in the screen definition of the application information 1000 1 and the layout information included in the screen definition of the application information 1000 2 are shown in FIGS. 7A and 7B, respectively. The layout information describes information such as characters (display name of input field) displayed on the application screen displayed on the operation panel 22 or the like by the browser 210 of the image forming apparatus 20, display position of the input field or selection field, and the like. ing. For example, in the layout definition unit 1301 in FIG. 7A, information on the display position and display name of ““ data_id ”: 1” (that is, the data definition unit 1101) in the data definition is described. As a result, although a specific example will be shown later, an input field whose display name is “file name” is displayed at the first position on the application screen. In the layout definition section 1302, information on the display position and display name of ““ data_id ”: 2” (that is, the data definition section 1102) in the data definition is described. As a result, although a specific example will be shown later, a selection field having a display name of “select storage folder” is displayed at the second position on the application screen.

次に、アプリ情報1000の処理内容及びアプリ情報1000の処理内容を、それぞれ図8(a)及び図8(b)に示す。処理内容は、サービス提供システム10により提供されるサービスを実現するために、ドキュメントサービス部150やストレージサービス連携部160に要求する一連の処理が記述されている。例えば、図8(a)に示す処理内容には、本実施形態に係るスキャン配信サービスを実現するための一連の処理(すなわち、スキャンされた電子ファイルをOCR処理した後、ストレージサービスAの指定されたフォルダに配信する一連の処理)が記述されている。また、図8(b)に示す処理内容には、本実施形態に係るクラウドプリントサービスを実現するための一連の処理(すなわち、ストレージサービスAから取得した電子ファイルを印刷データに変換した後、画像形成装置20に送信する一連の処理)が記述されている。これらの処理内容についての詳細については、後述する。 Next, the processing content of the application information 1000 1 and the processing content of the application information 1000 2 are shown in FIGS. 8A and 8B, respectively. The processing content describes a series of processing requested to the document service unit 150 and the storage service cooperation unit 160 in order to realize the service provided by the service providing system 10. For example, in the processing content shown in FIG. 8A, a series of processing for realizing the scan delivery service according to the present embodiment (that is, the storage service A is designated after the OCR processing of the scanned electronic file is performed). A series of processes for delivering to a folder) is described. Further, the processing content illustrated in FIG. 8B includes a series of processing for realizing the cloud print service according to the present embodiment (that is, after converting an electronic file acquired from the storage service A into print data, an image is displayed). A series of processes to be transmitted to the forming device 20) is described. Details of these processing contents will be described later.

以上のように、本実施形態に係るサービス提供システム10は、画像形成装置20にアプリ画面を表示させるための画面定義と、サービスを実現するための一連の処理内容とが記述されたアプリ情報1000を利用してサービスを提供する。このため、サービス提供システム10により提供されるサービスを追加等する場合には、アプリ情報記憶部190にアプリ情報1000を追加等すればよい。また、アプリ情報1000を追加するには、上述したように、画面定義と処理内容とを記述すればよいため、簡易に開発することができる。したがって、サービスの追加・変更等に伴う開発工数を削減させることができるとともに、例えばサードベンダー等によるサービスの追加・変更等を容易に行うことができる。   As described above, in the service providing system 10 according to the present embodiment, the application information 1000 in which the screen definition for displaying the application screen on the image forming apparatus 20 and the series of processing contents for realizing the service are described. Use to provide services. Therefore, when adding a service provided by the service providing system 10, the application information 1000 may be added to the application information storage unit 190. Further, in order to add the application information 1000, since it is sufficient to describe the screen definition and the processing content as described above, the application information 1000 can be easily developed. Therefore, it is possible to reduce the development man-hours associated with the addition / modification of the service, etc., and to easily add / modify the service by, for example, a third vendor.

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。
<Details of processing>
Next, details of the processing of the information processing system 1 according to the present embodiment will be described.

≪スキャン配信サービスの全体処理≫
まず、画像形成装置20のユーザが本実施形態に係るスキャン配信サービスを利用する場合の全体的な処理について説明する。図9は、第1の実施形態に係るスキャン配信サービスの全体処理の一例のシーケンス図である。
<< Overall processing of scan delivery service >>
First, the overall processing when the user of the image forming apparatus 20 uses the scan distribution service according to this embodiment will be described. FIG. 9 is a sequence diagram of an example of overall processing of the scan distribution service according to the first embodiment.

まず、画像形成装置20のユーザは、ブラウザ210を用いて、サービス提供システム10により提供されるサービスの一覧を取得するための操作を行う。すると、画像形成装置20は、サービスの一覧の取得要求をサービス提供システム10のサービス処理部110に送信する(ステップS901)。そして、サービス処理部110のアプリ管理部120は、当該取得要求を受信すると、サービス提供システム10により提供されるサービスの一覧を画像形成装置20に送信する。これにより、画像形成装置20のブラウザ210により、画像形成装置20の操作パネル22にサービス提供システム10により提供されるサービスの一覧が表示される。なお、サービスの一覧には、サービス提供システム10により提供されるサービスのサービス名と、このサービスを実現するためのアプリ情報1000のアプリIDとが含まれる。   First, the user of the image forming apparatus 20 uses the browser 210 to perform an operation for acquiring a list of services provided by the service providing system 10. Then, the image forming apparatus 20 transmits a service list acquisition request to the service processing unit 110 of the service providing system 10 (step S901). Then, when the application management unit 120 of the service processing unit 110 receives the acquisition request, the application management unit 120 transmits a list of services provided by the service providing system 10 to the image forming apparatus 20. As a result, the browser 210 of the image forming apparatus 20 displays a list of services provided by the service providing system 10 on the operation panel 22 of the image forming apparatus 20. The list of services includes the service name of the service provided by the service providing system 10 and the application ID of the application information 1000 for realizing this service.

ユーザは、画像形成装置20の操作パネル22に表示されたサービスの一覧から、自身が利用を所望するサービスを選択する。すると、ブラウザ210は、選択されたサービスを実現するためのアプリ情報1000のアプリIDをアプリ管理部120に送信する(ステップS902)。ここでは、ユーザによりサービス名「スキャン配信サービス」の利用が選択されたものとする。したがって、ブラウザ210は、アプリ情報1000のアプリID「app001」をアプリ管理部120に送信する。 The user selects a service he / she desires 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 for realizing the selected service to the application management unit 120 (step S902). Here, it is assumed that the user has selected to use the service name “scan delivery service”. Therefore, the browser 210 transmits the application ID “app001” of the application information 1000 1 to the application management unit 120.

そして、アプリ管理部120は、ブラウザ210から受け取ったアプリID「app001」のアプリ情報1000に含まれる画面定義に基づきHTML(HyperText Markup Language)形式のアプリ画面を生成し、ブラウザ210に送信する。 Then, the application management unit 120 generates an HTML (HyperText Markup Language) format application screen based on the screen definition included in the application information 1000 1 of the application ID “app001” received from the browser 210, and transmits it to the browser 210.

ブラウザ210は、アプリ管理部120からアプリ画面を受け取ると、表示用情報の取得をデータI/F部140に要求する(ステップS903)。ここで表示用情報とは、例えばアプリ画面の選択欄の各選択要素のことである。すなわち、本実施形態では、ブラウザ210は、スキャン配信の配信先(保存先)となるストレージサービスAのフォルダの一覧の取得を、データI/F部140に要求する。このような要求は、図6(a)のデータ定義部1102に記述されている「"data_source"」に定義されているURL「http://sample.xxx.co.jp/service-a/data/folders」にHTTPリクエストを送信することで行うことができる。なお、当該URLのうち、「http://sample.xxx.co.jp」の部分がサービス提供システム10のホスト名、「/service-a/data/folders」の部分がストレージサービス連携部160におけるAPI(すなわち、図5に示すAPI)の指定となる。   Upon receiving 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). Here, the display information is, for example, each selection element in the selection field of the application screen. That is, in the present embodiment, the browser 210 requests the data I / F unit 140 to obtain a list of folders of the storage service A that is the delivery destination (save destination) of scan delivery. Such a request is issued by the URL “http://sample.xxx.co.jp/service-a/data” defined in ““ data_source ”” described in the data definition unit 1102 of FIG. 6A. This can be done by sending an HTTP request to "/ folders". In the URL, the part “http://sample.xxx.co.jp” is the host name of the service providing system 10, and the part “/ service-a / data / folders” is the storage service cooperation unit 160. The API (that is, the API shown in FIG. 5) is designated.

次に、データI/F部140は、ブラウザ210から表示用情報の取得要求を受け付けると、当該要求を対応するストレージサービス連携部160のデータ処理部180に送信する(ステップS904)。本実施形態では、データI/F部140は、上記のURLに含まれる「service-a」(ストレージサービス名)に基づき、当該要求を、ストレージサービスA連携部160のデータ処理部180に送信する。 Next, when the data I / F unit 140 receives a display information acquisition request from the browser 210, the data I / F unit 140 transmits the request to the corresponding data processing unit 180 of the storage service cooperation unit 160 (step S904). In the present embodiment, the data I / F unit 140 sends the request to the data processing unit 180 1 of the storage service A cooperation unit 160 1 based on “service-a” (storage service name) included in the above URL. Send.

データ処理部180は、データI/F部140から要求を受け付けると、当該要求に含まれるURLに基づき、対応する処理要求を外部ストレージシステム30に送信する(ステップS905)。すなわち、データ処理部180は、データI/F部140から受け付けた要求に含まれるURLに基づき、共通I/F181又は固有I/F182に定義されているAPIを利用して、該当の外部ストレージシステム30に処理を要求する。本実施形態では、上記のURLに含まれる「/service-a/data/folders」に基づき、データ処理部180は、共通I/F181に定義されているAPIを用いて、ストレージサービスAにフォルダ一覧の取得を要求する。すると、ブラウザ210は、ストレージサービスA連携部160を介して、フォルダ一覧を受信する。フォルダ一覧は、本実施形態のスキャン配信サービスにおいて、電子ファイルの保存先の候補となるストレージサービスAのフォルダ名及びフォルダID等の情報である。 Upon receiving the request from the data I / F unit 140, the data processing unit 180 transmits a corresponding processing request to the external storage system 30 based on the URL included in the request (step S905). That is, the data processing unit 180 uses the API defined in the common I / F 181 or the unique I / F 182 based on the URL included in the request received from the data I / F unit 140, and the corresponding external storage system. 30 request processing. In the present embodiment, based on “/ service-a / data / folders” included in the above URL, the data processing unit 180 uses the API defined in the common I / F 181 to list folders in the storage service A. Request to get Then, the browser 210 receives the folder list via the storage service A cooperation unit 160 1 . The folder list is information such as the folder name and folder ID of the storage service A that is a candidate for the storage destination of the electronic file in the scan distribution service of this embodiment.

次に、ブラウザ210は、ステップS902でアプリ管理部120から受け取ったアプリ画面及びフォルダ一覧に基づき、例えば図10(a)に示すようなアプリ画面2000を、操作パネル22に表示させる(ステップS906)。   Next, the browser 210 displays the application screen 2000 as shown in FIG. 10A on the operation panel 22 based on the application screen and the folder list received from the application management unit 120 in step S902 (step S906). .

ここで、図10(a)で示すスキャン配信サービスを利用するためのアプリ画面2000は、ファイル名入力欄2001と、保存先フォルダ選択欄2002と、スキャン実行ボタン2003とから構成されている。このうち、ファイル名入力欄2001及び保存先フォルダ選択欄2002は、図10(b)に示すように、それぞれHTMLソースコード2101及び2102で記述されている。このようなHTMLソースコード2101及び2102は、アプリ管理部120により、図6(a)に示すデータ定義部1101及び1102並びに図7(b)に示すレイアウト定義部1301及び1302に基づいて生成される。ただし、HTMLソースコード2102に指定されている「option」の設定値は、外部ストレージシステム30から取得したフォルダ一覧に基づき、ブラウザ210で設定される。このように、アプリ画面2000は、アプリ情報1000の画面定義に基づきアプリ管理部120で生成されたHTMLに対して、外部ストレージシステム30から取得したフォルダ一覧の情報を設定することで生成される。 Here, the application screen 2000 for using the scan delivery service shown in FIG. 10A includes a file name input field 2001, a save destination folder selection field 2002, and a scan execution button 2003. Of these, the file name input field 2001 and the save destination folder selection field 2002 are described by HTML source codes 2101 and 2102, respectively, as shown in FIG. Such HTML source codes 2101 and 2102 are generated by the application management unit 120 based on the data definition units 1101 and 1102 shown in FIG. 6A and the layout definition units 1301 and 1302 shown in FIG. 7B. . 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 30. In this way, the application screen 2000 is generated by setting the information of the folder list acquired from the external storage system 30 1 to the HTML generated by the application management unit 120 based on the screen definition of the application information 1000 1. It

次に、ユーザは、図10(a)のアプリ画面2000において、ファイル名入力欄2001に所望のファイル名を入力して、保存先フォルダ選択欄2002から所望の保存先フォルダを選択する。そして、画像形成装置20のスキャナ26に原稿をセットして、スキャン実行ボタン2003を押下する(ステップS907)。ここで、ユーザはファイル名入力欄2001にファイル名「test」を入力し、保存先フォルダ選択欄2002から「FolderB」を選択して、スキャン実行ボタン2003を押下したものとする。これにより、画像形成装置20のスキャナ26により原稿が読み取られ、ファイル名「test」の電子ファイルが生成される(ステップS908)。   Next, the user inputs a desired file name in the file name input field 2001 on the application screen 2000 of FIG. 10A and selects a desired save destination folder from the save destination folder selection field 2002. Then, the document is set on the scanner 26 of the image forming apparatus 20 and the scan execution button 2003 is pressed (step S907). Here, it is assumed that the user inputs the file name “test” in the file name input field 2001, selects “FolderB” from the save destination folder selection field 2002, and presses the scan execution button 2003. As a result, the document is read by the scanner 26 of the image forming apparatus 20 and an electronic file with the file name “test” is generated (step S908).

すると、ブラウザ210は、スキャン配信サービスの処理の実行要求をロジック処理部130に送信する(ステップS909)。ここで、当該実行要求には、アプリID「app001」と、上記のステップS908で生成された電子ファイルと、選択された保存先フォルダ「FolderB」のフォルダID「folder_id_b」とが含まれる。   Then, the browser 210 sends a request to execute the process of the scan delivery service to the logic processing unit 130 (step S909). Here, the execution request includes the application ID “app001”, the electronic file generated in step S908, and the folder ID “folder_id_b” of the selected save destination folder “FolderB”.

そして、ロジック処理部130は、処理の実行要求を受け付けると、アプリ管理部120を介して、当該処理の実行要求に含まれるアプリIDのアプリ情報1000から処理内容を取得し、当該処理内容に従って処理を実行する(ステップS910)。すなわち、本実施形態に係るスキャン配信サービスでは、当該処理の実行要求に含まれる電子ファイルに対してOCR処理を行った後、ストレージサービスAのフォルダ「FolderB」に対して当該OCR処理後の電子ファイルを配信(アップロード)する。このステップS910の処理の詳細については、後述する。ここでは、ロジック処理部130は、OCR処理後の電子ファイルと、フォルダ「FolderB」のフォルダID「folder_id_b」とを含む配信実行の要求を、ストレージサービスA連携部160のファイル処理部170に送信したものとして説明を続ける。 Then, when the logic processing unit 130 receives the process execution request, the logic processing unit 130 acquires the process content from the application information 1000 of the application ID included in the process execution request via the application management unit 120, and performs the process according to the process content. Is executed (step S910). That is, in the scan delivery service according to the present embodiment, after the OCR process is performed on the electronic file included in the execution request of the process, the electronic file after the OCR process is performed on the folder “FolderB” of the storage service A. Is delivered (uploaded). Details of the process of step S910 will be described later. Here, the logic processing unit 130 requests the file processing unit 170 1 of the storage service A cooperation unit 160 1 to execute a delivery execution request including the electronic file after OCR processing and the folder ID “folder_id_b” of the folder “FolderB”. The explanation is continued assuming that it has been sent.

ファイル処理部170は、ロジック処理部130から配信実行の要求を受け付けると、共通I/F171又は固有I/F172に定義されているAPIを利用して、該当の外部ストレージシステム30に処理を要求する(ステップS911)。具体的には、本実施形態では、ファイル処理部170の共通I/F171に定義されているストレージサービスAにファイルを保存するためのAPI「/service-a/process/folder」を用いて、当該電子ファイルをフォルダ「FolderB」に配信(アップロード)する。そして、電子ファイルのアップロードが完了すると、処理結果がブラウザ210に表示される。これにより、本実施形態に係るスキャン配信サービスが完了する。 Upon receiving the distribution execution request from the logic processing unit 130, the file processing unit 170 uses the API defined in the common I / F 171 or the unique I / F 172 to request the external storage system 30 for processing. (Step S911). Specifically, in the present embodiment, by using the API "/ service-a / process / folder" to save the file in the storage service A that is defined in a common I / F171 1 file processing unit 170 1 , Distribute (upload) the electronic file to the folder "FolderB". Then, when the upload of the electronic file is completed, the processing result is displayed on the browser 210. This completes the scan distribution service according to the present embodiment.

≪OCRから配信実行までの処理≫
次に、図9のステップS910の処理の詳細について説明する。この処理は、主に、ロジック処理部130により実行される。したがって、図9のステップS910の処理の詳細について説明するに前に、ロジック処理部130の詳細な処理ブロックについて説明する。図11は、第1の実施形態に係るロジック処理部の一例の処理ブロック図である。ロジック処理部130は、フロー実行部131と、コンポーネント管理部132と、コンポーネント群133と、型変換管理部134と、型変換群135とを有する。また、ロジック処理部130は、型変換テーブル3000を利用する。
≪Process from OCR to delivery execution≫
Next, details of the processing in step S910 in FIG. 9 will be described. This processing is mainly executed by the logic processing unit 130. Therefore, before describing the details of the processing in step S910 in FIG. 9, the detailed processing blocks of the logic processing unit 130 will be described. FIG. 11 is a processing block diagram of an example of the logic processing unit according to the first embodiment. 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. Further, the logic processing unit 130 uses the type conversion table 3000.

フロー実行部131は、ブラウザ210からスキャン配信サービスの処理の実行要求を受け付けると、アプリ管理部120を介して、アプリ情報1000から処理内容を取得する。そして、フロー実行部131は、取得した処理内容に従ってコンポーネントに対して処理の実行を要求する。なお、ここで、コンポーネントとは、各種処理を実行するためのプログラム(モジュール)であり、例えばクラスや関数等で定義される。   When the flow execution unit 131 receives a request to execute the process of the scan distribution service from the browser 210, the flow execution unit 131 acquires the processing content from the application information 1000 via the application management unit 120. Then, the flow execution unit 131 requests the component to execute the process according to the acquired process content. Here, the component is a program (module) for executing various processes, and is defined by, for example, a class or a function.

コンポーネント管理部132は、フロー実行部131からの要求に応じて、コンポーネントの生成を行う。なお、コンポーネントの生成とは、例えばクラスで定義されたコンポーネントを、メモリ(例えばRAM14)上に展開することを意味する。   The component management unit 132 generates a component in response to a request from the flow execution unit 131. The generation of a component means, for example, expanding a component defined by a class on a memory (for example, the RAM 14).

コンポーネント群133は、コンポーネントの集合である。コンポーネント群133には、外部ストレージシステム30に電子ファイルを配信するための配信コンポーネント1331、外部ストレージシステム30から電子ファイルを取得するための取得コンポーネント1332が含まれる。また、コンポーネント群133には、電子ファイルにOCR処理を行うためのOCRコンポーネント1333、電子ファイルを印刷データに変換するための印刷変換コンポーネント1334が含まれる。   The component group 133 is a set of components. The component group 133 includes a distribution component 1331 for distributing an electronic file to the external storage system 30 and an acquisition component 1332 for acquiring an electronic file from the external storage system 30. Further, the component group 133 includes an OCR component 1333 for performing OCR processing on an electronic file and a print conversion component 1334 for converting an electronic file into print data.

さらに、これらの各コンポーネントは、コンポーネント共通I/F1330を有する。コンポーネント共通I/F1330は、各コンポーネントに対して共通に定義されたAPIであり、コンポーネントを生成するためのAPIと、コンポーネントに対して処理の実行を要求するためのAPIとが含まれる。このように、各コンポーネントがコンポーネント共通I/F1330を有するようにすることで、コンポーネントの追加等に伴う影響を局所化することができる。換言すれば、フロー実行部131及びコンポーネント管理部132に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、コンポーネントの追加等の開発に要する工数を削減することができる。   Further, each of these components has a component common I / F 1330. The component common I / F 1330 is an API commonly defined for each component, and includes an API for generating a component and an API for requesting the component to execute a process. In this way, by making each component have the component common I / F 1330, it is possible to localize the effect of adding a component or the like. In other words, components can be added without affecting the flow execution unit 131 and the component management unit 132. As a result, the number of man-hours required for development such as addition of components can be reduced.

型変換管理部134は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め定まっている。したがって、型変換管理部134は、コンポーネントからの要求に応じて、図12に示すような型変換テーブル3000を参照して、型変換群135に定義されている型変換を生成する。そして、型変換管理部134は、生成された型変換に対して型変換処理の実行を要求する。ここで、型変換とは、データ型の型変換処理を実行するためのプログラム(モジュール)であり、例えばクラスや関数等で定義される。   The type conversion management unit 134 manages the type conversion of data types. Here, each component has a predetermined data type that it can handle. Therefore, the type conversion management unit 134 generates the type conversion defined in the type conversion group 135 by referring to the type conversion table 3000 shown in FIG. 12 in response to a request from the component. Then, the type conversion management unit 134 requests the generated type conversion to execute the type conversion process. Here, the type conversion is a program (module) for executing the data type type conversion process, and is defined by, for example, a class or a function.

なお、型変換の生成とは、例えばクラスで定義された型変換を、メモリ(例えばRAM14)上に展開することを意味する。また、データ型には、例えば、ストリームデータを示すデータ型「InputStream」、記憶装置等に格納されている電子ファイルのパス(アドレス)を示す「LocalFilePath」、電子ファイルの実体を示す「File」等が挙げられる。   The generation of the type conversion means, for example, expanding the type conversion defined by the class on the memory (for example, the RAM 14). The data type includes, for example, a data type “InputStream” indicating stream data, “LocalFilePath” indicating a path (address) of an electronic file stored in a storage device, “File” indicating the substance of the electronic file, and the like. Is mentioned.

型変換群135は、型変換の集合である。型変換群135には、データ型「InputStream」を「LocalFilePath」に変換する第1の型変換1351、「LocalFilePath」を「File」に変換する第2の型変換1352等が含まれる。   The type conversion group 135 is a set of type conversions. The type conversion group 135 includes a first type conversion 1351 for converting the data type “InputStream” into “LocalFilePath”, a second type conversion 1352 for converting “LocalFilePath” into “File”, and the like.

さらに、これらの各型変換は、型変換共通I/F1350を有する。型変換共通I/F1350は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換に対して処理の実行を要求するためのAPIとが含まれる。このように、各型変換が型変換共通I/F1350を有するようにすることで、型変換の追加等に伴う影響を局所化することができる。換言すれば、型変換管理部134に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、型変換の追加等の開発に要する工数を削減することができる。   Further, 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 execution of processing for the type conversion. Be done. As described above, by providing each type conversion with the type conversion common I / F 1350, it is possible to localize the influence caused by the addition of the type conversion. In other words, it is possible to add components without affecting the type conversion management unit 134. This can reduce the number of man-hours required for development such as addition of type conversion.

続いて、図9のステップS910の処理の詳細について、図13を用いて説明する。図13は、第1の実施形態に係るOCRから配信実行までの処理の一例のシーケンス図である。   Next, details of the processing in step S910 in FIG. 9 will be described with reference to FIG. FIG. 13 is a sequence diagram of an example of processing from OCR to delivery execution according to the first embodiment.

まず、フロー実行部131は、ブラウザ210からスキャン配信サービスの処理の実行要求を受け付ける(ステップS1301)。ここで、当該実行要求には、アプリID「app001」と、図9のステップS908で生成された電子ファイルと、選択された保存先フォルダ「FolderB」のフォルダID(保存先)とが含まれる。ここで、当該電子ファイルは、データ型が「InputStream」(すなわち、ストリームデータ)としてブラウザ210から渡されるものとする。   First, the flow execution unit 131 receives an execution request for processing of the scan delivery service from the browser 210 (step S1301). Here, the execution request includes the application ID “app001”, the electronic file generated in step S908 of FIG. 9, and the folder ID (save destination) of the selected save destination folder “FolderB”. Here, it is assumed that the electronic file is passed from the browser 210 as a data type “InputStream” (that is, stream data).

フロー実行部131は、当該実行要求を受け付けると、アプリ管理部120に処理内容の取得を要求する(ステップS1302)。ここで、当該処理内容の取得要求には、アプリID「app001」が含まれる。そして、フロー実行部131は、アプリ管理部120からアプリID「app001」に対応するアプリ情報1000に含まれる処理内容を取得する。すなわち、フロー実行部131は、図8(a)に示す処理内容を取得する。 When receiving the execution request, the flow execution unit 131 requests the application management unit 120 to acquire the processing content (step S1302). Here, the process ID acquisition request includes the application ID “app001”. Then, the flow execution unit 131 acquires the processing content included in the application information 1000 1 corresponding to the application ID “app001” from the application management unit 120. That is, the flow execution unit 131 acquires the processing content shown in FIG.

フロー実行部131は、取得した処理内容に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1303)。より具体的には、フロー実行部131は、図8(a)に示す処理内容の「From("file:input")」の次に指定されている「.to("process:ocr")」に基づき、OCRコンポーネント1333の取得を、コンポーネント管理部132に要求する。   The flow execution unit 131 requests the component management unit 132 to acquire the component according to the acquired processing content (step S1303). More specifically, the flow execution unit 131 specifies ".to (" process: ocr ")" next to "From (" file: input ")" of the processing content shown in FIG. Based on the above, the component management unit 132 is requested to acquire the OCR component 1333.

コンポーネント管理部132は、OCRコンポーネント1333の取得要求を受け付けると、OCRコンポーネント1333を生成する(ステップS1304)。OCRコンポーネント1333の生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。そして、OCRコンポーネント1333が生成されると、コンポーネント管理部132は、OCRコンポーネント1333をフロー実行部131に返却する。これは、例えば、コンポーネント管理部132は、OCRコンポーネント1333が展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返却する。   Upon receiving the acquisition request for the OCR component 1333, the component management unit 132 generates the OCR component 1333 (step S1304). The OCR component 1333 can be generated using the API for generating the component defined in the component common I / F 1330. Then, when the OCR component 1333 is generated, the component management unit 132 returns the OCR component 1333 to the flow execution unit 131. For example, the component management unit 132 returns to the flow execution unit 131 the address on the memory (for example, the RAM 14) in which the OCR component 1333 is expanded.

フロー実行部131は、生成されたOCRコンポーネント1333に対して、データを指定して処理の実行を要求する(ステップS1305)。なお、ここで指定されるデータは、データ型が「InputStream」としてブラウザ210から渡される電子ファイルである。すなわち、フロー実行部131は、ブラウザ210からデータ型「InputStream」として渡される電子ファイルを、単に「データ」として(データ型を意識することなく)、OCRコンポーネント1333に渡して処理の実行を要求する。図13では、このようにデータ型を意識することなく渡される電子ファイル等を、単に「データ」と表す。   The flow execution unit 131 requests the generated OCR component 1333 to execute the process by designating the data (step S1305). The data specified here is an electronic file passed from the browser 210 with a data type of “InputStream”. That is, the flow execution unit 131 passes the electronic file passed from the browser 210 as the data type “InputStream” to the OCR component 1333 as “data” (without being aware of the data type) and requests the execution of the process. . In FIG. 13, an electronic file or the like that is passed without being aware of the data type in this way is simply referred to as “data”.

OCRコンポーネント1333は、型変換管理部134に対して、型変換を要求する(ステップS1306)。ここで、当該型変換要求には、データと、OCRコンポーネント1333が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。   The OCR component 1333 requests the type conversion management unit 134 to perform type conversion (step S1306). Here, the type conversion request includes data and designation of “LocalFilePath” indicating a data type that can be handled by the OCR component 1333.

型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1307)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」であるから、一致しないものと判断される。   The type conversion management unit 134 checks whether or not the data type of the data included in the received type conversion request matches the designated data type (step S1307). Here, since the data type of the data included in the received type conversion request is “InputStream”, and the specified data type is “LocalFilePath”, it is determined that they do not match.

すると、型変換管理部134は、型変換テーブル3000を参照して、「InputStream」を「LocalFilePath」に変換するための型変換を特定して(ここでは、第1の型変換1351が特定される)、当該特定された型変換を生成する(ステップS1308)。   Then, the type conversion management unit 134 refers to the type conversion table 3000 to specify the type conversion for converting “InputStream” into “LocalFilePath” (here, the first type conversion 1351 is specified). ), The specified type conversion is generated (step S1308).

そして、型変換管理部134は、生成された第1の型変換1351に対して、データを指定して型変換処理の実行を要求する(ステップS1309)。そして、第1の型変換1351は、指定されたデータのデータ型を「InputStream」から「LocalFilePath」に変換して(ステップS1310)、当該変換後のデータを型変換管理部134に返信する。その後、型変換管理部134は、型変換後のデータをOCRコンポーネント1333に送信する(ステップS1311)。   Then, the type conversion management unit 134 requests the generated first type conversion 1351 to execute the type conversion process by designating the data (step S1309). Then, the first type conversion 1351 converts the data type of the designated data from “InputStream” to “LocalFilePath” (step S1310), and returns the converted data to the type conversion management unit 134. After that, the type conversion management unit 134 transmits the data after the type conversion to the OCR component 1333 (step S1311).

OCRコンポーネント1333は、型変換後のデータを受け取ると、処理を実行する(ステップS1312)。すなわち、データ型「LocalFilePath」のデータ(すなわち、パス又はアドレス)により示される電子ファイルに対して、OCR処理を実行する。ここで、より具体的には、OCRコンポーネント1333は、ドキュメントサービス部150のOCR処理151に処理を要求し、OCR処理151が当該電子ファイルに対して処理を実行する。そして、OCRコンポーネント1333は、データをフロー実行部131に返信する。なお、ここで、返信されるデータは、OCR処理後の電子ファイルを示すパス又はアドレスである(すなわち、返信されるデータのデータ型は「LocalFilePath」である。)。   The OCR component 1333, upon receiving the data after the type conversion, executes the process (step S1312). That is, the OCR process is executed on the electronic file indicated by the data (that is, the path or the address) of the data type “LocalFilePath”. Here, more specifically, the OCR component 1333 requests the OCR process 151 of the document service unit 150 to perform the process, and the OCR process 151 executes the process on the electronic file. Then, the OCR component 1333 returns the data to the flow execution unit 131. Here, the returned data is a path or address indicating the electronic file after the OCR processing (that is, the data type of the returned data is "LocalFilePath").

次に、フロー実行部131は、取得した処理内容に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1313)。より具体的には、フロー実行部131は、図8(a)に示す処理内容の「.to("process:ocr")」の次に指定されている「.to("storage:send_to_folder?type=service-a")」に基づき、配信コンポーネント1331の取得を、コンポーネント管理部132に要求する。なお、ここで、指定されている処理内容のうち「?type=service-a」の部分はオプションパラメータであり、配信コンポーネント1331の処理によるデータのアップロード先のストレージサービスが「ストレージサービスA」であることを示している。また、ここで、上記の指定されている処理内容に、上記のステップS1301の実行要求に含まれる保存先(保存先フォルダのフォルダID)をオプションパラメータとして付加して「.to("storage:send_to_folder? type=service-a&targetfolder=folder_id_b")」としてもよい。同様に、ファイル名をオプションパラメータとしてさらに付加して「.to("storage:send_to_folder? type=service-a&targetfolder=folder_id_b&filename=test.pdf")」としてもよい。   Next, the flow execution unit 131 requests the component management unit 132 to acquire the component according to the acquired processing content (step S1313). More specifically, the flow execution unit 131 uses the ".to (" storage: send_to_folder? Type "specified after the" .to ("process: ocr") "of the processing content shown in FIG. = service-a ")", and requests the component management unit 132 to acquire the distribution component 1331. It should be noted that the portion of “? Type = service-a” in the designated processing content is an optional parameter, and the storage service of the data upload destination by the processing of the distribution component 1331 is “storage service A”. It is shown that. Further, here, the storage destination (folder ID of the storage destination folder) included in the execution request of step S1301 is added as an optional parameter to the specified processing content, and ".to (" storage: send_to_folder ? type = service-a & targetfolder = folder_id_b ")". Similarly, the file name may be further added as an optional parameter to be ".to (" storage: send_to_folder? Type = service-a & targetfolder = folder_id_b & filename = test.pdf ")".

コンポーネント管理部132は、配信コンポーネント1331の取得要求を受け付けると、配信コンポーネント1331を生成する(ステップS1314)。配信コンポーネント1331の生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。そして、配信コンポーネント1331が生成されると、コンポーネント管理部132は、配信コンポーネント1331をフロー実行部131に返却する。これは、例えば、コンポーネント管理部132は、配信コンポーネント1331が展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返却する。   Upon receiving the acquisition request for the distribution component 1331, the component management unit 132 generates the distribution component 1331 (step S1314). The distribution component 1331 can be generated using the API for generating the component defined in the component common I / F 1330. Then, when the distribution component 1331 is generated, the component management unit 132 returns the distribution component 1331 to the flow execution unit 131. For example, the component management unit 132 returns the address on the memory (for example, the RAM 14) in which the distribution component 1331 is expanded to the flow execution unit 131.

フロー実行部131は、生成された配信コンポーネント1331に対して、データを指定して処理の実行を要求する(ステップS1315)。なお、ここで指定されたデータのデータ型は「LocalFilePath」である。   The flow execution unit 131 requests the generated distribution component 1331 to execute the process by specifying the data (step S1315). The data type of the data specified here is "LocalFilePath".

配信コンポーネント1331は、型変換管理部134に対して、型変換を要求する(ステップS1316)。ここで、当該型変換要求には、データと、配信コンポーネント1331が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。   The distribution component 1331 requests the type conversion management unit 134 to perform type conversion (step S1316). Here, the type conversion request includes data and designation of “LocalFilePath” indicating a data type that the distribution component 1331 can handle.

型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1317)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」であるから、一致するものと判断される。そして、型変換管理部134は、型変換要求に含まれていたデータを、そのまま配信コンポーネント1331に送信する(ステップS1318)。このように、データ型チェック(ステップS1317の処理)で両者のデータ型が一致する場合には、型変換管理部134は型変換の生成を行わない。   The type conversion management unit 134 checks whether the data type of the data included in the received type conversion request matches the designated data type (step S1317). Here, since the data type of the data included in the received type conversion request is “LocalFilePath” and the designated data type is also “LocalFilePath”, it is determined that they match. Then, the type conversion management unit 134 directly transmits the data included in the type conversion request to the distribution component 1331 (step S1318). In this way, when the data type checks (the process of step S1317) match the two data types, the type conversion management unit 134 does not generate the type conversion.

配信コンポーネント1331は、型変換管理部134からデータを受け取ると、処理を実行する(ステップS1319)。すなわち、本実施形態では、配信コンポーネント1331は、ストレージサービスA連携部160のファイル処理部170に対して、共通I/F171として定義されているファイル保存のAPIを用いて、データの配信実行を要求する。より具体的には、配信コンポーネント1331は、ストレージサービスA連携部160のファイル処理部170に対して、図5(a)に示されるようにAPIとして「service-a/process/folder」を用いてデータの配信実行を要求する。これにより、ストレージサービスAのフォルダ「FolderB」に、ファイル名「test」の電子ファイル(スキャンにより生成された電子ファイルに対してOCR処理した電子ファイル)が保存される。そして、処理結果がフロー実行部131を介して、ブラウザ210に送信される。 Upon receiving the data from the type conversion management unit 134, the distribution component 1331 executes processing (step S1319). That is, in this embodiment, the distribution component 1331, the file processing unit 170 1 of the Storage Service A linkage unit 160 1, using the API of the file storage that is defined as a common I / F171 1, the distribution of the data Request execution. More specifically, the distribution component 1331 sends “service-a / process / folder” as an API to the file processing unit 170 1 of the storage service A cooperation unit 160 1 as shown in FIG. 5A. Use to request delivery of data. As a result, the electronic file with the file name “test” (the electronic file obtained by performing the OCR process on the electronic file generated by the scan) is stored in the folder “FolderB” of the storage service A. Then, the processing result is transmitted to the browser 210 via the flow execution unit 131.

≪クラウドプリントサービスの全体処理≫
次に、画像形成装置20のユーザが本実施形態に係るクラウドプリントサービスを利用する場合の全体的な処理について説明する。図14は、第1の実施形態に係るクラウドプリントサービスの全体処理の一例のシーケンス図である。
<< Overall processing of cloud print service >>
Next, an overall process when the user of the image forming apparatus 20 uses the cloud print service according to this embodiment will be described. FIG. 14 is a sequence diagram of an example of overall processing of the cloud print service according to the first embodiment.

まず、画像形成装置20のユーザは、ブラウザ210を用いて、サービス提供システム10により提供されるサービスの一覧を取得するための操作を行う。すると、画像形成装置20は、サービスの一覧の取得要求をサービス提供システム10のサービス処理部110に送信する(ステップS1401)。そして、サービス処理部110のアプリ管理部120は、当該取得要求を受信すると、サービス提供システム10により提供されるサービスの一覧を画像形成装置20に送信する。   First, the user of the image forming apparatus 20 uses the browser 210 to perform an operation for acquiring a list of services provided by the service providing system 10. Then, the image forming apparatus 20 transmits a service list acquisition request to the service processing unit 110 of the service providing system 10 (step S1401). Then, when the application management unit 120 of the service processing unit 110 receives the acquisition request, the application management unit 120 transmits a list of services provided by the service providing system 10 to the image forming apparatus 20.

ユーザは、画像形成装置20の操作パネル22に表示されたサービスの一覧から、自身が利用を所望するサービスを選択する。すると、ブラウザ210は、選択されたサービスを実現するためのアプリ情報1000のアプリIDをアプリ管理部120に送信する(ステップS1402)。ここでは、ユーザによりサービス名「クラウドプリントサービス」の利用が選択されたものとする。したがって、ブラウザ210は、アプリ情報1000のアプリID「app002」をアプリ管理部120に送信する。 The user selects a service he / she desires 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 for realizing the selected service to the application management unit 120 (step S1402). Here, it is assumed that the user has selected to use the service name “cloud print service”. Therefore, the browser 210 transmits the application ID of the application information 1000 2 "app002" to the application management unit 120.

そして、アプリ管理部120は、ブラウザ210から受け取ったアプリID「app002」のアプリ情報1000に含まれる画面定義に基づきHTML形式のアプリ画面を生成し、ブラウザ210に送信する。 The application management unit 120 generates the application screen in HTML format based on the screen definition included in the application information 1000 and second application ID "app002" received from the browser 210, sends to the browser 210.

ブラウザ210は、アプリ管理部120からアプリ画面を受け取ると、表示用情報の取得をデータI/F部140に要求する(ステップS1403)。本実施形態では、ブラウザ210は、クラウドプリントサービスを用いた印刷対象の候補となるストレージサービスAの電子ファイルの一覧の取得を、データI/F部140に要求する。このような要求は、図6(b)のデータ定義部1201に記述されている「"data_source"」に定義されているURL「http://sample.xxx.co.jp/service-a/data/files」にHTTPリクエストを送信することで行うことができる。   Upon receiving the application screen from the application management unit 120, the browser 210 requests the data I / F unit 140 to acquire display information (step S1403). In the present embodiment, the browser 210 requests the data I / F unit 140 to obtain a list of electronic files of the storage service A that are candidates for printing using the cloud print service. Such a request is issued by the URL "http://sample.xxx.co.jp/service-a/data" defined in "" data_source "" described in the data definition section 1201 of FIG. 6B. This can be done by sending an HTTP request to "/ files".

次に、データI/F部140は、ブラウザ210から表示用情報の取得要求を受け付けると、当該要求を対応するストレージサービス連携部160のデータ処理部180に送信する(ステップS1404)。   Next, when the data I / F unit 140 receives a display information acquisition request from the browser 210, the data I / F unit 140 transmits the request to the corresponding data processing unit 180 of the storage service cooperation unit 160 (step S1404).

データ処理部180は、データI/F部140から要求を受け付けると、当該要求に含まれるURLに基づき、対応する処理要求を外部ストレージシステム30に送信する(ステップS1405)。本実施形態では、データ処理部180は、上記のURLに含まれる「/service-a/data/files」に基づき、ストレージサービスAにファイル一覧の取得を要求する。すると、ブラウザ210は、ストレージサービスA連携部160を介して、ファイル一覧を受信する。ファイル一覧は、本実施形態のクラウドプリントサービスにおいて、印刷対象の候補となるストレージサービスAに保存されている電子ファイルのファイル名及びファイルID等の情報である。 Upon receiving the request from the data I / F unit 140, the data processing unit 180 sends a corresponding processing request to the external storage system 30 based on the URL included in the request (step S1405). In the present embodiment, the data processing unit 180 requests the storage service A to acquire a file list based on “/ service-a / data / files” included in the above URL. Then, the browser 210 receives the file list via the storage service A cooperation unit 160 1 . The file list is information such as file names and file IDs of electronic files stored in the storage service A that is a print target candidate in the cloud print service of the present embodiment.

次に、ブラウザ210は、ステップS1402でアプリ管理部120から受け取ったアプリ画面及びファイル一覧に基づき、例えば図15(a)に示すようなアプリ画面4000を、操作パネル22に表示させる(ステップS1406)。   Next, the browser 210 displays an application screen 4000 as shown in FIG. 15A on the operation panel 22 based on the application screen and file list received from the application management unit 120 in step S1402 (step S1406). .

ここで、図15(a)で示すクラウドプリントサービスを利用するためのアプリ画面4000は、印刷対象のファイルを選択するためのファイル選択欄4001と、プリント実行ボタン4002とから構成されている。このうち、ファイル選択欄4001は、図15(b)に示すように、HTMLソースコード4101で記述されている。このようなHTMLソースコード4101は、アプリ管理部120により、図6(b)に示すデータ定義部1201及び図7(b)に示すレイアウト定義部1401に基づいて生成される。ただし、HTMLソースコード4101に指定されている「option」の設定値は、外部ストレージシステム30から取得したファイル一覧に基づき、ブラウザ210で設定される。   Here, the application screen 4000 for using the cloud print service shown in FIG. 15A includes a file selection field 4001 for selecting a file to be printed and a print execution button 4002. Of these, the file selection field 4001 is described by the HTML source code 4101 as shown in FIG. Such an HTML source code 4101 is generated by the application management unit 120 based on the data definition unit 1201 shown in FIG. 6B and the layout definition unit 1401 shown in FIG. 7B. However, the setting value of “option” specified in the HTML source code 4101 is set by the browser 210 based on the file list acquired from the external storage system 30.

次に、ユーザは、図15(a)のアプリ画面4000のファイル選択欄4001から所望のファイルを選択して、プリント実行ボタン4002を押下する(ステップS1407)。ここで、ユーザはファイル選択欄4001から「FileA」を選択して、プリント実行ボタン4002を押下したものとする。   Next, the user selects a desired file from the file selection field 4001 on the application screen 4000 of FIG. 15A and presses the print execution button 4002 (step S1407). Here, it is assumed that the user selects “FileA” from the file selection field 4001 and presses the print execution button 4002.

すると、ブラウザ210は、クラウドプリントサービスの処理の実行要求をロジック処理部130に送信する(ステップS1408)。ここで、当該実行要求には、アプリID「app002」と、ファイル選択欄4001から選択されたファイル「FileA」のファイルID「file_id_a」とが含まれる。   Then, the browser 210 transmits an execution request for the processing of the cloud print service to the logic processing unit 130 (step S1408). Here, the execution request includes the application ID “app002” and the file ID “file_id_a” of the file “FileA” selected from the file selection field 4001.

そして、ロジック処理部130は、処理の実行要求を受け付けると、アプリ管理部120を介して、当該処理の実行要求に含まれるアプリIDのアプリ情報1000から処理内容を取得し、当該処理内容に従って処理を実行する(ステップS1409)。すなわち、本実施形態に係るクラウドプリントサービスでは、ストレージサービスAから印刷対象の電子ファイルを取得(ダウンロード)した後、当該電子ファイルを画像形成装置20が印刷可能な印刷データに変換(印刷変換)する。このステップS1409の処理の詳細については、後述する。ここでは、ロジック処理部130は、ファイル「FileA」のファイルID「file_id_a」を含むファイル取得実行の要求を、ストレージサービスA連携部160のファイル処理部170に送信したものとして説明を続ける。 Then, when the logic processing unit 130 receives the process execution request, the logic processing unit 130 acquires the process content from the application information 1000 of the application ID included in the process execution request via the application management unit 120, and performs the process according to the process content. Is executed (step S1409). That is, in the cloud print service according to the present embodiment, after acquiring (downloading) the electronic file to be printed from the storage service A, the electronic file is converted into print data printable by the image forming apparatus 20 (print conversion). . Details of the process of step S1409 will be described later. Here, the description will be continued assuming that the logic processing unit 130 has transmitted a file acquisition execution request including the file ID “file_id_a” of the file “FileA” to the file processing unit 170 1 of the storage service A cooperation unit 160 1 .

ファイル処理部170は、ロジック処理部130からファイル取得実行の要求を受け付けると、共通I/F171又は固有I/F172に定義されているAPIを利用して、該当の外部ストレージシステム30に処理を要求する(ステップS1410)。具体的には、本実施形態では、ファイル処理部170の共通I/F171に定義されているストレージサービスAにファイルを取得するためのAPI「/service-a/process/file」を用いて、ファイル「FileA」を取得(ダウンロード)する。そして、ロジック処理部130は、取得したファイル「FileA」を、画像形成装置20で印刷可能なデータ形式である印刷データに変換した後、画像形成装置20に送信する。 When the file processing unit 170 receives a file acquisition execution request from the logic processing unit 130, the file processing unit 170 uses the API defined in the common I / F 171 or the unique I / F 172 to request the external storage system 30 for processing. Yes (step S1410). Specifically, in the present embodiment, by using the API "/ service-a / process / file" for acquiring the file to the storage service A that is defined in a common I / F171 1 file processing unit 170 1 , Get (download) the file "FileA". Then, the logic processing unit 130 converts the acquired file “FileA” into print data that is a data format that can be printed by the image forming apparatus 20, and then transmits the print data to the image forming apparatus 20.

画像形成装置20のプリンタ25は、ロジック処理部130から印刷データを受け取ると、当該印刷データを印刷する(ステップS1411)。これにより、本実施形態に係るクラウドプリントサービスが完了する。   Upon receiving the print data from the logic processing unit 130, the printer 25 of the image forming apparatus 20 prints the print data (step S1411). This completes the cloud print service according to the present embodiment.

≪ファイル取得実行から印刷変換までの処理≫
次に、図14のステップS1409の処理の詳細について説明する。図16は、第1の実施形態に係るファイル取得から印刷変換までの処理の一例のシーケンス図である。
≪Process from file acquisition execution to print conversion≫
Next, details of the processing in step S1409 in FIG. 14 will be described. FIG. 16 is a sequence diagram of an example of processing from file acquisition to print conversion according to the first embodiment.

まず、フロー実行部131は、ブラウザ210からクラウドプリントサービスの処理の実行要求を受け付ける(ステップS1601)。ここで、当該実行要求には、アプリID「app002」と、選択された印刷対象のファイルのファイルID「file_id_a」とが含まれる。ここで、当該ファイルIDは、データ型が「InputStream」(すなわち、ストリームデータ)としてブラウザ210から渡されるものとする。   First, the flow execution unit 131 receives an execution request for cloud print service processing from the browser 210 (step S1601). Here, the execution request includes the application ID “app002” and the file ID “file_id_a” of the selected file to be printed. Here, the file ID is passed from the browser 210 as a data type “InputStream” (that is, stream data).

フロー実行部131は、当該実行要求を受け付けると、アプリ管理部120に処理内容の取得を要求する(ステップS1602)。ここで、当該処理内容の取得要求には、アプリID「app002」が含まれる。そして、フロー実行部131は、アプリ管理部120からアプリID「app002」に対応するアプリ情報1000に含まれる処理内容を取得する。すなわち、フロー実行部131は、図8(b)に示す処理内容を取得する。 When the flow execution unit 131 receives the execution request, the flow execution unit 131 requests the application management unit 120 to acquire the processing content (step S1602). Here, the process ID acquisition request includes the application ID “app002”. The flow execution unit 131 acquires the processing content included in the application information 1000 2 corresponding the application management unit 120 to the application ID "app002". That is, the flow execution unit 131 acquires the processing content illustrated in FIG.

フロー実行部131は、取得した処理内容に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1603)。より具体的には、フロー実行部131は、図8(b)に示す処理内容の「From("file:input")」の次に指定されている「.to("storage:receive_file?type=service-a")」に基づき、取得コンポーネント1332の取得を、コンポーネント管理部132に要求する。なお、ここで、指定されている処理内容のうち「?type=service-a」の部分はオプションパラメータであり、取得コンポーネント1332の処理の電子ファイルの取得(ダウンロード)先ストレージサービスが「ストレージサービスA」であることを示している。また、ここで、上記の指定されている処理内容に、上記のステップS1601の実行要求に含まれる印刷対象のファイルである「FileA」のファイルIDをオプションパラメータとして付加して「.to("storage:receive_file?type=service-a&targetfile=file_id_a")」としてもよい。   The flow execution unit 131 requests the component management unit 132 to acquire the component according to the acquired processing content (step S1603). More specifically, the flow execution unit 131 specifies ".to (" storage: receive_file? Type = "specified next to" From ("file: input") "in the processing content shown in FIG. 8B. Based on "service-a") ", the component management unit 132 is requested to acquire the acquisition component 1332. It should be noted that the portion of “? Type = service-a” of the designated processing content is an optional parameter, and the storage service of the electronic file acquisition (download) of the processing of the acquisition component 1332 is “storage service A. ". Further, here, the file ID of "FileA" which is the file to be printed included in the execution request of step S1601 is added to the specified processing content as an optional parameter to ".to (" storage : receive_file? type = service-a & targetfile = file_id_a ")".

コンポーネント管理部132は、取得コンポーネント1332の取得要求を受け付けると、取得コンポーネント1332を生成する(ステップS1604)。取得コンポーネント1332の生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。そして、取得コンポーネント1332が生成されると、コンポーネント管理部132は、取得コンポーネント1332をフロー実行部131に返却する。これは、例えば、コンポーネント管理部132は、OCRコンポーネント1333が展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返却する。   Upon receiving the acquisition request for the acquisition component 1332, the component management unit 132 generates the acquisition component 1332 (step S1604). The acquisition component 1332 can be generated using the API for generating the component defined in the component common I / F 1330. Then, when the acquisition component 1332 is generated, the component management unit 132 returns the acquisition component 1332 to the flow execution unit 131. For example, the component management unit 132 returns to the flow execution unit 131 the address on the memory (for example, the RAM 14) in which the OCR component 1333 is expanded.

フロー実行部131は、生成された取得コンポーネント1332に対して、データを指定して処理の実行を要求する(ステップS1605)。なお、ここで指定されるデータは、データ型が「InputStream」としてブラウザ210から渡された、印刷対象のファイルのファイルIDである。すなわち、フロー実行部131は、ブラウザ210からデータ型「InputStream」として渡されるファイルIDを、単に「データ」として(データ型を意識することなく)、取得コンポーネント1332に渡して処理の実行を要求する。図16では、このようにデータ型を意識することなく渡されるファイルIDや電子ファイル等を、単に「データ」と表す。   The flow execution unit 131 requests the generated acquisition component 1332 to execute the process by designating the data (step S1605). The data specified here is the file ID of the file to be printed, which is passed from the browser 210 as the data type “InputStream”. That is, the flow execution unit 131 passes the file ID passed as a data type “InputStream” from the browser 210 to the acquisition component 1332 as “data” (without being aware of the data type) and requests execution of the process. . In FIG. 16, the file ID, the electronic file, and the like that are thus passed without being aware of the data type are simply represented as “data”.

取得コンポーネント1332は、型変換管理部134に対して、型変換を要求する(ステップS1606)。ここで、当該型変換要求には、データと、取得コンポーネント1332が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。   The acquisition component 1332 requests the type conversion management unit 134 to perform type conversion (step S1606). Here, the type conversion request includes the data and the designation of “LocalFilePath” indicating the data type that the acquisition component 1332 can handle.

型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1607)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」であるから、一致しないものと判断される。   The type conversion management unit 134 checks whether or not the data type of the data included in the received type conversion request matches the designated data type (step S1607). Here, since the data type of the data included in the received type conversion request is “InputStream”, and the specified data type is “LocalFilePath”, it is determined that they do not match.

すると、型変換管理部134は、型変換テーブル3000を参照して、「InputStream」を「LocalFilePath」に変換するための型変換を特定して(ここでは、第1の型変換1351が特定される)、当該特定された型変換を生成する(ステップS1608)。   Then, the type conversion management unit 134 refers to the type conversion table 3000 to specify the type conversion for converting “InputStream” into “LocalFilePath” (here, the first type conversion 1351 is specified). ), The specified type conversion is generated (step S1608).

そして、型変換管理部134は、生成された第1の型変換1351に対して、データを指定して型変換処理の実行を要求する(ステップS1609)。そして、第1の型変換1351は、指定されたデータのデータ型を「InputStream」から「LocalFilePath」に変換して(ステップS1610)、当該変換後のデータを型変換管理部134に返信する。その後、型変換管理部134は、型変換後のデータを取得コンポーネント1332に送信する(ステップS1611)。   Then, the type conversion management unit 134 requests the generated first type conversion 1351 to execute the type conversion process by specifying the data (step S1609). Then, the first type conversion 1351 converts the data type of the designated data from “InputStream” to “LocalFilePath” (step S1610), and returns the converted data to the type conversion management unit 134. After that, the type conversion management unit 134 transmits the data after the type conversion to the acquisition component 1332 (step S1611).

取得コンポーネント1332は、型変換後のデータを受け取ると、処理を実行する(ステップS1612)。すなわち、本実施形態では、取得コンポーネント1332は、ストレージサービスA連携部160のファイル処理部170に対して、共通I/F171として定義されているファイル取得のAPIを用いて、ファイル取得実行を要求する。より具体的には、取得コンポーネント1332は、ストレージサービスA連携部160のファイル処理部170に対して、図5(a)に示されるようにAPIとして「service-a/process/file」を用いてファイル取得の実行を要求する。これにより、ストレージサービスAからファイルID「file_id_a」の電子ファイルが取得(ダウンロード)される。取得コンポーネント1332により取得された電子ファイルは、データとしてフロー実行部131に送信される。 When the acquisition component 1332 receives the data after the type conversion, the acquisition component 1332 executes the process (step S1612). That is, in this embodiment, the acquisition component 1332, the file processing unit 170 1 of the Storage Service A linkage unit 160 1, using the API of the file acquisition defined as a common I / F171 1, file acquisition run To request. More specifically, the acquisition component 1332 sends “service-a / process / file” as an API to the file processing unit 170 1 of the storage service A cooperation unit 160 1 as shown in FIG. 5A. Use to request execution of file acquisition. As a result, the electronic file with the file ID “file_id_a” is acquired (downloaded) from the storage service A. The electronic file acquired by the acquisition component 1332 is transmitted to the flow execution unit 131 as data.

次に、フロー実行部131は、取得した処理内容に従ってコンポーネントの取得を、コンポーネント管理部132に要求する(ステップS1613)。より具体的には、フロー実行部131は、図8(b)に示す処理内容の「.to("storage:receive_file? type=service-a")」の次に指定されている「.to("process:conv")」に基づき、印刷変換コンポーネント1334の取得を、コンポーネント管理部132に要求する。   Next, the flow execution unit 131 requests the component management unit 132 to acquire the component according to the acquired processing content (step S1613). More specifically, the flow execution unit 131 specifies the next ".to (" storage: receive_file? Type = service-a ")" of the processing content shown in FIG. 8B. Based on “process: conv”) ”, the component management unit 132 is requested to acquire the print conversion component 1334.

コンポーネント管理部132は、印刷変換コンポーネント1334の取得要求を受け付けると、印刷変換コンポーネント1334を生成する(ステップS1614)。印刷変換コンポーネント1334の生成は、コンポーネント共通I/F1330に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。そして、印刷変換コンポーネント1334が生成されると、コンポーネント管理部132は、印刷変換コンポーネント1334をフロー実行部131に返却する。これは、例えば、コンポーネント管理部132は、印刷変換コンポーネント1334が展開されたメモリ(例えばRAM14)上のアドレスを、フロー実行部131に返却する。   Upon receiving the acquisition request for the print conversion component 1334, the component management unit 132 generates the print conversion component 1334 (step S1614). The print conversion component 1334 can be generated using the API for generating the component defined in the component common I / F 1330. Then, when the print conversion component 1334 is generated, the component management unit 132 returns the print conversion component 1334 to the flow execution unit 131. For example, the component management unit 132 returns to the flow execution unit 131 the address on the memory (for example, the RAM 14) in which the print conversion component 1334 is expanded.

フロー実行部131は、生成された印刷変換コンポーネント1334に対して、データを指定して処理の実行を要求する(ステップS1615)。なお、ここで指定されたデータのデータ型は「LocalFilePath」である。   The flow execution unit 131 requests the generated print conversion component 1334 to execute processing by designating data (step S1615). The data type of the data specified here is "LocalFilePath".

印刷変換コンポーネント1334は、型変換管理部134に対して、型変換を要求する(ステップS1616)。ここで、当該型変換要求には、データと、印刷変換コンポーネント1334が扱うことができるデータ型を示す「File」の指定とが含まれる。   The print conversion component 1334 requests the type conversion management unit 134 to perform type conversion (step S1616). Here, the type conversion request includes the data and the designation of “File” indicating the data type that the print conversion component 1334 can handle.

型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS1617)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「LocalFilePath」である一方、指定されたデータ型は「File」であるから、一致しないものと判断される。   The type conversion management unit 134 checks whether the data type of the data included in the received type conversion request matches the designated data type (step S1617). Here, the data type of the data included in the received type conversion request is “LocalFilePath”, while the specified data type is “File”, so it is determined that they do not match.

すると、型変換管理部134は、型変換テーブル3000を参照して、「LocalFilePath」を「File」に変換するための型変換を特定して(ここでは、第2の型変換1352が特定される)、当該特定された型変換を生成する(ステップS1618)。   Then, the type conversion management unit 134 refers to the type conversion table 3000 to specify the type conversion for converting “LocalFilePath” into “File” (here, the second type conversion 1352 is specified). ), And the specified type conversion is generated (step S1618).

そして、型変換管理部134は、生成された第2の型変換1352に対して、データを指定して型変換処理の実行を要求する(ステップS1619)。そして、第2の型変換1352は、指定されたデータのデータ型を「LocalFilePath」から「File」に変換して(ステップS1620)、当該変換後のデータを型変換管理部134に返信する。その後、型変換管理部134は、型変換後のデータを印刷変換コンポーネント1334に送信する(ステップS1621)。   Then, the type conversion management unit 134 requests the generated second type conversion 1352 to execute the type conversion process by specifying the data (step S1619). Then, the second type conversion 1352 converts the data type of the designated data from “LocalFilePath” to “File” (step S1620), and returns the converted data to the type conversion management unit 134. After that, the type conversion management unit 134 transmits the type-converted data to the print conversion component 1334 (step S1621).

印刷変換コンポーネント1334は、型変換後のデータを受け取ると、処理を実行する(ステップS1622)。すなわち、データ型「File」のデータ(すなわち、電子ファイル)を、画像形成装置20が印刷可能なデータ形式である印刷データに変換する処理を実行する。ここで、より具体的には、印刷変換コンポーネント1334は、ドキュメントサービス部150の印刷変換処理152に処理を要求し、印刷変換処理152がデータ(電子ファイル)に対して処理を実行する。そして、印刷変換コンポーネント1334は、フロー実行部131を介して、印刷データを画像形成装置20に返信する。   The print conversion component 1334, upon receiving the data after the type conversion, executes the process (step S1622). That is, a process of converting data of the data type “File” (that is, an electronic file) into print data that is a data format that the image forming apparatus 20 can print is executed. Here, more specifically, the print conversion component 1334 requests the print conversion processing 152 of the document service unit 150 to perform processing, and the print conversion processing 152 executes the processing on the data (electronic file). Then, the print conversion component 1334 returns the print data to the image forming apparatus 20 via the flow execution unit 131.

[第2の実施形態]
次に、第2の実施形態に係る情報処理システム1について説明する。第2の実施形態に係る情報処理システム1に含まれるサービス提供システム10は、ブラウザ210が搭載されていない画像形成装置20からの要求も受け付ける点が第1の実施形態と異なる。なお、以降では、第1の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第1の実施形態と同一の符号を用いて、その説明を省略する。
[Second Embodiment]
Next, the information processing system 1 according to the second embodiment will be described. The service providing system 10 included in the information processing system 1 according to the second embodiment is different from the first embodiment in that it also receives a request from the image forming apparatus 20 in which the browser 210 is not installed. Note that, hereinafter, the portions having substantially the same functions and the portions performing the same processing as those in the first embodiment will be denoted by the same reference numerals as those in the first embodiment, and the description thereof will be omitted.

<ソフトウェア構成>
第2の実施形態に係る情報処理システム1は、例えば図17に示されるような処理ブロックにより実現することができる。図17は、第2の実施形態に係る情報処理システムの一例の処理ブロック図である。
<Software configuration>
The information processing system 1 according to the second embodiment can be realized by a processing block as shown in FIG. 17, for example. FIG. 17 is a processing block diagram of an example of the information processing system according to the second embodiment.

画像形成装置20は、例えばCPU211等により実現されるブラウザ210又はクライアントアプリケーション220を有する。ここで、ブラウザ210はHTMLを解釈できる一方で、クライアントアプリケーション220はHTMLを解釈することができないものとする。したがって、本実施形態に係るクライアントアプリケーション220は、サービス提供システム10から受け取ったデータ定義に基づきアプリ画面を生成して、表示させる。   The image forming apparatus 20 has a browser 210 or a client application 220 realized by, for example, the CPU 211. Here, it is assumed that the browser 210 can interpret HTML, but the client application 220 cannot interpret HTML. Therefore, the client application 220 according to the present embodiment generates and displays the application screen based on the data definition received from the service providing system 10.

サービス提供システム10は、アプリ管理部120Aの機能が異なる点、及び、さらに要求判断部121を有する点が第1の実施形態と異なる。   The service providing system 10 is different from that of the first embodiment in that the function of the application management unit 120A is different and that the request determination unit 121 is further included.

要求判断部121は、画像形成装置20から受け取った情報に基づき、送信元がブラウザ210か又はクライアントアプリケーション220かを判断する。   The request determination unit 121 determines whether the transmission source is the browser 210 or the client application 220 based on the information received from the image forming apparatus 20.

アプリ管理部120Aは、要求判断部121の判断結果に応じて、画像形成装置20に対してアプリ画面又はデータ定義を返信する。すなわち、アプリ管理部120Aは、要求判断部121により送信元がクライアントアプリケーション220であると判断された場合は、当該画像形成装置20に対して、データ定義を返信する。   The application management unit 120A returns the application screen or the data definition to the image forming apparatus 20 according to the determination result of the request determination unit 121. That is, when the request determination unit 121 determines that the transmission source is the client application 220, the application management unit 120A returns the data definition to the image forming apparatus 20.

<処理の詳細>
次に、第2の実施形態に係る情報処理システム1の処理の詳細について説明する。第2の実施形態では、図9を用いて説明したスキャン配信サービスの全体処理及び図14を用いて説明したクラウドプリントサービスの全体処理において、画像形成装置20にアプリ画面を表示させるまでの処理が異なる。したがって、第2の実施形態では、サービス一覧の取得からアプリ画面の表示までの処理について説明する。図18は、第2の実施形態に係るアプリ画面の表示処理の一例のシーケンス図である。
<Details of processing>
Next, details of the processing of the information processing system 1 according to the second embodiment will be described. In the second embodiment, in the overall processing of the scan distribution service described with reference to FIG. 9 and the overall processing of the cloud print service described with reference to FIG. 14, the processing up to displaying the application screen on the image forming apparatus 20 is performed. different. Therefore, in the second embodiment, processing from acquisition of the service list to display of the application screen will be described. FIG. 18 is a sequence diagram of an example of an application screen display process according to the second embodiment.

まず、画像形成装置20のユーザは、ブラウザ210又はクライアントアプリケーション220を用いて、サービス提供システム10により提供されるサービスの一覧を取得するための操作を行う(ステップS1801)。すると、サービス処理部110の要求判断部121は、サービス提供システム10により提供されるサービスの一覧を、アプリ管理部120Aから取得して(ステップS1802)、画像形成装置20に送信する。これにより、画像形成装置20の操作パネル22には、サービス提供システム10により提供されるサービスの一覧が表示される。   First, the user of the image forming apparatus 20 uses the browser 210 or the client application 220 to perform an operation for acquiring a list of services provided by the service providing system 10 (step S1801). Then, the request determination unit 121 of the service processing unit 110 acquires a list of services provided by the service providing system 10 from the application management unit 120A (step S1802) and sends the list to the image forming apparatus 20. As a result, a list of services provided by the service providing system 10 is displayed on the operation panel 22 of the image forming apparatus 20.

ユーザは、画像形成装置20の操作パネル22に表示されたサービスの一覧から自身が利用を所望するサービスを選択する。すると、ブラウザ210又はクライアントアプリケーション220は、選択されたサービスを実現するためのアプリ情報1000のアプリIDを要求判断部121に送信する(ステップS1803)。   The user selects a service he / she desires to use from the list of services displayed on the operation panel 22 of the image forming apparatus 20. Then, the browser 210 or the client application 220 transmits the application ID of the application information 1000 for realizing the selected service to the request determination unit 121 (step S1803).

すると、要求判断部121は、送信元がブラウザ210か又はクライアントアプリケーション220かを判断する(ステップS1804)。これは、要求判断部121は、例えば、User Agentに基づき判断することができる。以降では、要求判断部121により送信元がブラウザ210であると判断された場合、ステップS1805の処理が実行される一方、送信元がクライアントアプリケーション220であると判断された場合、ステップS1806及びS1807の処理が実行される。   Then, the request determination unit 121 determines whether the transmission source is the browser 210 or the client application 220 (step S1804). This can be determined by the request determination unit 121 based on, for example, User Agent. After that, when the request determination unit 121 determines that the transmission source is the browser 210, the process of step S1805 is executed, while when it is determined that the transmission source is the client application 220, steps S1806 and S1807 are performed. The process is executed.

要求判断部121により送信元がブラウザ210であると判断された場合、要求判断部121は、アプリ管理部120Aに対してHTMLのアプリ画面の取得を要求する(ステップS1805)。なお、当該要求には、上記のステップS1803で選択されたサービスを実現するためのアプリ情報1000のアプリIDが含まれる。すると、アプリ管理部121Aは、当該要求に含まれるアプリIDのアプリ情報1000に含まれる画面定義に基づきHTML形式のアプリ画面を生成し、要求判断部121を介して、ブラウザ210に送信する。   When the request determination unit 121 determines that the transmission source is the browser 210, the request determination unit 121 requests the application management unit 120A to acquire the HTML application screen (step S1805). The request includes the application ID of the application information 1000 for realizing the service selected in step S1803 described above. Then, the application management unit 121A generates an HTML-format application screen based on the screen definition included in the application information 1000 of the application ID included in the request, and transmits the HTML-format application screen to the browser 210 via the request determination unit 121.

一方、送信元がクライアントアプリケーション220であると判断された場合、要求判断部121は、アプリ管理部120Aに対してJSON(JavaScript Object Notation)形式等の汎用的なデータ形式でデータ定義の取得を要求する(ステップS1806)。なお、当該要求には、上記のステップS1803で選択されたサービスを実現するためのアプリ情報1000のアプリIDが含まれる。すると、アプリ管理部121Aは、当該要求に含まれるアプリIDのアプリ情報1000に含まれるデータ定義を、要求判断部121を介して、JSON形式でクライアントアプリケーション220に送信する。このように、画像形成装置20にHTMLを解釈することができないクライアントアプリケーション220が搭載されている場合、サービス提供システム10は、画面定義に含まれるデータ定義のみを返信する。そして、画像形成装置20のクライアントアプリケーション220は、受け取ったJSON形式のデータ定義に基づき、アプリ画面を生成する(ステップS1807)。   On the other hand, when it is determined that the transmission source is the client application 220, the request determination unit 121 requests the application management unit 120A to acquire the data definition in a general-purpose data format such as JSON (JavaScript Object Notation) format. Yes (step S1806). The request includes the application ID of the application information 1000 for realizing the service selected in step S1803 described above. Then, the application management unit 121A transmits the data definition included in the application information 1000 of the application ID included in the request to the client application 220 in the JSON format via the request determination unit 121. As described above, when the image forming apparatus 20 includes the client application 220 that cannot interpret HTML, the service providing system 10 returns only the data definition included in the screen definition. Then, the client application 220 of the image forming apparatus 20 generates an application screen based on the received JSON format data definition (step S1807).

そして、画像形成装置20は、操作パネル22にアプリ画面を表示させる(ステップS1808)。ここで、画像形成装置20にブラウザ210が搭載されている場合は、上記のステップS1805で受け取ったHTML形式のアプリ画面を表示させる。一方、画像形成装置20にクライアントアプリケーション220が搭載されている場合は、上記のステップS1807で生成したアプリ画面を表示させる。このようにすることで、画像形成装置20には必ずしもブラウザ210が搭載されている必要はなくなる。したがって、ユーザは、画像形成装置20に、サービス提供システム10により提供されるサービスを利用するための任意のクライアントアプリケーション220を搭載させることができる。   Then, the image forming apparatus 20 displays the application screen on the operation panel 22 (step S1808). Here, when the browser 210 is installed in the image forming apparatus 20, the HTML format application screen received in step S1805 is displayed. On the other hand, when the client application 220 is installed in the image forming apparatus 20, the application screen generated in step S1807 is displayed. By doing so, the browser 210 does not necessarily have to be installed in the image forming apparatus 20. Therefore, the user can install the arbitrary client application 220 for using the service provided by the service providing system 10 in the image forming apparatus 20.

[第3の実施形態]
次に、第3の実施形態に係る情報処理システム1について説明する。第3の実施形態に係る情報処理システム1は、サードベンダー等により開発されたコンポーネントを用いた処理内容により実現されるサービスを提供できる点が第1の実施形態と異なる。また、第3の実施形態に係る情報処理システム1は、画像形成装置20のブラウザ210を用いて、ユーザが処理内容を作成することができる点が第1の実施形態と異なる。
[Third Embodiment]
Next, the information processing system 1 according to the third embodiment will be described. The information processing system 1 according to the third embodiment is different from the first embodiment in that it can provide a service realized by the processing content using a component developed by a third vendor or the like. Further, the information processing system 1 according to the third embodiment is different from the first embodiment in that the user can create processing contents by using the browser 210 of the image forming apparatus 20.

なお、以降では、サードベンダー等により開発されたコンポーネントを「外部コンポーネント」、サービス提供システム10に予め組み込まれているコンポーネント(すなわち、第1の実施形態及び第2の実施形態で説明したコンポーネント)を「内部コンポーネント」と表して区別する。さらに、内部コンポーネントと外部コンポーネントとを区別しないときは、単に、「コンポーネント」と表す。   In the following, a component developed by a third vendor or the like will be referred to as an “external component”, and a component pre-installed in the service providing system 10 (that is, a component described in the first and second embodiments). The term "internal component" is used to distinguish them. Furthermore, when no distinction is made between internal components and external components, they are simply expressed as "components".

また、以降では、第1の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第1の実施形態と同一の符号を用いて、その説明を省略する。   Further, hereinafter, the portions having substantially the same functions and the portions performing the same processing as those in the first embodiment will be denoted by the same reference numerals as those in the first embodiment, and the description thereof will be omitted.

<システム構成>
図19は、第3の実施形態に係る情報処理システムの一例の構成図である。図19に示される情報処理システム1のサービス提供環境E1は、外部コンポーネント管理装置40を含む。
<System configuration>
FIG. 19 is a configuration diagram of an example of an information processing system according to the third embodiment. The service providing environment E1 of the information processing system 1 shown in FIG. 19 includes an external component management device 40.

外部コンポーネント管理装置40は、一台以上の情報処理装置で実現され、外部コンポーネントを管理する。このように、本実施形態に係る情報処理システム1では、サービス提供システム10とは異なる装置である外部コンポーネント管理装置40において外部コンポーネントを管理する。このため、例えば、外部コンポーネントが重大なバグを有していた場合等における影響を外部コンポーネント管理装置40に局所化させることができる。   The external component management device 40 is realized by one or more information processing devices and manages external components. As described above, in the information processing system 1 according to the present embodiment, the external component management device 40, which is a device different from the service providing system 10, manages external components. For this reason, for example, the influence when the external component has a serious bug can be localized in the external component management device 40.

なお、図19では、サービス提供環境E1に一の外部コンポーネント管理装置40が含まれる例を示したが、これに限られない。サービス提供環境E1には、複数の外部コンポーネント管理装置40が含まれていてもよい。例えば、サービス提供環境E1には、A社が開発した外部コンポーネントを管理する外部コンポーネント管理装置40、B社が開発した外部コンポーネントを管理する外部コンポーネント管理装置40等が含まれていてもよい。 Note that FIG. 19 shows an example in which the service providing environment E1 includes one external component management device 40, but the present invention is not limited to this. The service providing environment E1 may include a plurality of external component management devices 40. For example, the service providing environment E1 may include an external component management device 40 1 that manages external components developed by Company A, an external component management device 40 2 that manages external components developed by Company B, and the like. .

<ソフトウェア構成>
第1の実施形態に係る情報処理システム1は、例えば図20に示されるような処理ブロックにより実現することができる。図20は、第3の実施形態に係る情報処理システムの一例の処理ブロック図である。
<Software configuration>
The information processing system 1 according to the first embodiment can be realized by processing blocks as shown in FIG. 20, for example. FIG. 20 is a processing block diagram of an example of the information processing system according to the third embodiment.

サービス提供システム10のサービス処理部110は、アプリ管理部120Aと、ロジック処理部130Aと、処理内容作成部122とを有する。   The service processing unit 110 of the service providing system 10 includes an application management unit 120A, a logic processing unit 130A, and a processing content creation unit 122.

処理内容作成部122は、ブラウザ210からの要求に応じて、処理内容を作成するための画面(処理内容の作成画面)を作成する。   The processing content creation unit 122 creates a screen for creating processing content (processing content creation screen) in response to a request from the browser 210.

アプリ管理部120Aは、処理内容作成部122からの要求に応じて、処理内容の作成画面において作成された処理内容をアプリ情報記憶部190に記憶させる。これにより、ユーザが作成した処理内容により示される一連の処理で実現されるサービスが追加される。   The application management unit 120A stores the processing content created on the processing content creation screen in the application information storage unit 190 in response to the request from the processing content creation unit 122. As a result, the service realized by the series of processes indicated by the process contents created by the user is added.

ロジック処理部130Aは、アプリ管理部120Aから取得した処理内容により示される一連の処理において、外部コンポーネントにより実行される処理がある場合、当該処理の実行を外部コンポーネント処理部410に要求する。なお、ロジック処理部130Aの詳細な処理ブロックについては後述する。   If there is a process executed by an external component in the series of processes indicated by the process content acquired from the application management unit 120A, the logic processing unit 130A requests the external component processing unit 410 to execute the process. The detailed processing blocks of the logic processing unit 130A will be described later.

外部コンポーネント管理装置40は、外部コンポーネント処理部410を有する。外部コンポーネント処理部41は、例えば、外部コンポーネント管理装置40が備えるCPUにより実現される。   The external component management device 40 has an external component processing unit 410. The external component processing unit 41 is realized by, for example, a CPU included in the external component management device 40.

外部コンポーネント処理部410は、ロジック処理部130Aからの要求に応じて、外部コンポーネントを実行する。なお、外部コンポーネント処理部410の詳細な処理ブロックについては後述する。   The external component processing unit 410 executes the external component in response to the request from the logic processing unit 130A. The detailed processing blocks of the external component processing unit 410 will be described later.

次に、本実施形態に係るロジック処理部130Aの詳細な処理ブロックについて説明する。図21は、第3の実施形態に係るロジック処理部の一例の処理ブロック図である。   Next, detailed processing blocks of the logic processing unit 130A according to the present embodiment will be described. FIG. 21 is a processing block diagram of an example of the logic processing unit according to the third embodiment.

本実施形態に係るロジック処理部130Aは、フロー実行部131Aと、コンポーネント管理部132Aとを有する。また、本実施形態に係るロジック処理部130Aのコンポーネント群133には、外部コンポ連携コンポーネント1335が含まれる。さらに、本実施形態に係るロジック処理部130Aは、コンポーネント管理テーブル5000を利用する。   The logic processing unit 130A according to this embodiment includes a flow execution unit 131A and a component management unit 132A. Further, the component group 133 of the logic processing unit 130A according to the present embodiment includes an external component cooperation component 1335. Furthermore, the logic processing unit 130A according to the present embodiment uses the component management table 5000.

フロー実行部131Aは、アプリ管理部120Aから取得した処理内容に従ってコンポーネントの取得をコンポーネント管理部132Aに要求する。このとき、フロー実行部131Aは、処理内容に基づいて、後述するコンポーネント名を指定して、コンポーネントの取得を要求する。   The flow execution unit 131A requests the component management unit 132A to acquire a component according to the processing content acquired from the application management unit 120A. At this time, the flow execution unit 131A requests the acquisition of the component by designating the component name described below based on the processing content.

コンポーネント管理部132Aは、フロー実行部131Aからの要求に応じて、コンポーネント管理テーブル5000を参照し、当該要求に係るコンポーネントが内部コンポーネント又は外部コンポーネントのいずれであるかを判定する。そして、コンポーネント管理部132Aは、当該要求に係るコンポーネントが外部コンポーネントである場合、外部コンポ連携コンポーネント1335を生成する。   The component management unit 132A refers to the component management table 5000 in response to the request from the flow execution unit 131A and determines whether the component related to the request is an internal component or an external component. Then, when the component related to the request is an external component, the component management unit 132A generates the external component cooperation component 1335.

コンポーネント群133に含まれる外部コンポ連携コンポーネント1335は、外部コンポーネント管理装置40の外部コンポーネント処理部410と処理の連携を行うためのコンポーネントである。外部コンポ連携コンポーネント1335は、外部コンポーネント処理部410に対して、外部コンポーネントの処理の実行を要求する。なお、外部コンポ連携コンポーネント1335は、コンポーネント共通I/F1330を有する。   The external component cooperation component 1335 included in the component group 133 is a component for performing a process cooperation with the external component processing unit 410 of the external component management device 40. The external component cooperation component 1335 requests the external component processing unit 410 to execute the processing of the external component. The external component cooperation component 1335 has a component common I / F 1330.

ここで、コンポーネント管理テーブル5000は、図22に示すようなデータ項目を有している。図22は、コンポーネント管理テーブルの一例を説明するための図である。   Here, the component management table 5000 has data items as shown in FIG. FIG. 22 is a diagram for explaining an example of the component management table.

図22に示すコンポーネント管理テーブル5000は、データ項目として、コンポーネントIDと、コンポーネント名と、ホスト名とを有する。コンポーネントIDは、コンポーネントを一意に識別する識別情報である。コンポーネント名は、コンポーネントの名称である。なお、本実施形態では、コンポーネント名は、コンポーネントに対して一意に付与されているものとする。   The component management table 5000 shown in FIG. 22 has a component ID, a component name, and a host name as data items. The component ID is identification information that uniquely identifies the component. The component name is the name of the component. In this embodiment, the component name is uniquely given to the component.

ホスト名は、コンポーネントを管理している装置を識別する情報である。すなわち、例えば、内部コンポーネントには、ホスト名「localhost」が関連付けられており、サービス提供システム10で管理されていることが示されている。一方、例えば、外部コンポーネントには、ホスト名「server2.com」が関連付けられており、当該ホスト名の外部コンポーネント管理装置40で管理されていることが示されている。   The host name is information that identifies the device that manages the component. That is, for example, it is shown that the host name “localhost” is associated with the internal component and is managed by the service providing system 10. On the other hand, for example, the external component is associated with the host name “server2.com” and is shown to be managed by the external component management device 40 having the host name.

このように、コンポーネント管理テーブル5000では、コンポーネント毎に、当該コンポーネントが管理されている装置のホスト名が関連付けられている。なお、処理内容作成部122は、コンポーネント管理テーブル5000からコンポーネントの一覧を取得することで、処理内容の作成画面を作成する。   As described above, in the component management table 5000, the host name of the device in which the component is managed is associated with each component. The processing content creation unit 122 creates a processing content creation screen by acquiring a list of components from the component management table 5000.

次に、外部コンポーネント処理部410の詳細な処理ブロックについて説明する。図23は、第3の実施形態に係る外部コンポーネント処理部の一例の処理ブロック図である。   Next, detailed processing blocks of the external component processing unit 410 will be described. FIG. 23 is a processing block diagram of an example of the external component processing unit according to the third embodiment.

外部コンポーネント処理部410は、要求受付部411と、コンポーネント管理部412と、外部コンポーネント群413と、型変換管理部414と、型変換群415とを有する。また、外部コンポーネント処理部410は、型変換テーブル6000を利用する。   The external component processing unit 410 includes a request receiving unit 411, a component management unit 412, an external component group 413, a type conversion management unit 414, and a type conversion group 415. Further, the external component processing unit 410 uses the type conversion table 6000.

要求受付部411は、ロジック処理部130Aからの要求を受け付けると、コンポーネント管理部412に対して、外部コンポーネントの生成を要求する。そして、要求受付部411は、外部コンポーネントが生成されると、当該外部コンポーネントに対して処理の実行を要求する。   Upon receiving the request from the logic processing unit 130A, the request receiving unit 411 requests the component management unit 412 to generate an external component. Then, when the external component is generated, the request receiving unit 411 requests the external component to execute the process.

コンポーネント管理部412は、要求受付部411からの要求に応じて、外部コンポーネントの生成を行う。   The component management unit 412 generates an external component in response to the request from the request reception unit 411.

外部コンポーネント群413は、外部コンポーネントの集合である。外部コンポーネント群413には、サードベンダー等により開発された各種の外部コンポーネントが含まれる。例えば、外部コンポーネント群413には、外部ストレージシステム30に電子ファイルを配信するための配信αコンポーネント4131、電子ファイルを印刷データに変換するための印刷変換βコンポーネント4132が含まれる。   The external component group 413 is a set of external components. The external component group 413 includes various external components developed by a third vendor or the like. For example, the external component group 413 includes a distribution α component 4131 for distributing an electronic file to the external storage system 30 and a print conversion β component 4132 for converting an electronic file into print data.

また、これらの各外部コンポーネントは、コンポーネント共通I/F4130を有する。コンポーネント共通I/F4130は、各外部コンポーネントに対して共通に定義されたAPIであり、外部コンポーネントを生成するためのAPIと、外部コンポーネントに対して処理の実行を要求するためのAPIとが含まれる。   Further, each of these external components has a component common I / F 4130. The component common I / F 4130 is an API commonly defined for each external component, and includes an API for generating an external component and an API for requesting the external component to execute a process. .

型変換管理部414は、データ型の型変換を管理する。ここで、外部コンポーネントは、自身が扱えるデータ型が予め定まっている。したがって、型変換管理部414は、外部コンポーネントからの要求に応じて、図24に示すような型変換テーブル6000を参照して、型変換群415に定義されている型変換を生成する。そして、型変換管理部414は、生成された型変換に対して型変換処理の実行を要求する。   The type conversion management unit 414 manages the type conversion of data types. Here, the external component has a predetermined data type that it can handle. Therefore, the type conversion management unit 414 generates the type conversion defined in the type conversion group 415 by referring to the type conversion table 6000 as shown in FIG. 24 in response to a request from the external component. Then, the type conversion management unit 414 requests execution of the type conversion process for the generated type conversion.

型変換群415は、型変換の集合である。型変換群415には、データ型「InputStream」を「LocalFilePath」に変換する第1の型変換4151、「LocalFilePath」を「File」に変換する第2の型変換4142等が含まれる。   The type conversion group 415 is a set of type conversions. The type conversion group 415 includes a first type conversion 4151 for converting the data type “InputStream” into “LocalFilePath”, a second type conversion 4142 for converting “LocalFilePath” into “File”, and the like.

また、これらの各型変換は、型変換共通I/F4150を有する。型変換共通I/F4150は、各型変換に対して共通に定義されたAPIであり、型変換を生成するためのAPIと、型変換に対して処理の実行を要求するためのAPIとが含まれる。   Further, each of these type conversions has a type conversion common I / F 4150. The type conversion common I / F 4150 is an API commonly defined for each type conversion, and includes an API for generating a type conversion and an API for requesting execution of processing for the type conversion. Be done.

<処理の詳細>
次に、本実施形態に係る情報処理システム1の処理の詳細について説明する。本実施形態では、スキャン配信サービスを実現する一連の処理に、外部コンポーネントにより実行される処理が含まれる場合について説明する。すなわち、本実施形態に係るスキャン配信サービスは、内部コンポーネントにより実行される処理と、外部コンポーネントにより実行される処理とで構成される一連の処理により実現されるものとする。
<Details of processing>
Next, details of the processing of the information processing system 1 according to the present embodiment will be described. In the present embodiment, a case will be described in which a series of processes for realizing the scan delivery service include processes executed by an external component. That is, the scan delivery service according to the present embodiment is realized by a series of processes including a process executed by an internal component and a process executed by an external component.

≪OCRから配信実行までの処理≫
図25は、第3の実施形態に係るOCRから配信実行までの処理の一例のシーケンス図である。まず、ステップS2501の処理は、図13を用いて説明したステップS1301の処理と同様であるため、その説明を省略する。
≪Process from OCR to delivery execution≫
FIG. 25 is a sequence diagram of an example of processing from OCR to delivery execution according to the third embodiment. First, since the process of step S2501 is the same as the process of step S1301 described with reference to FIG. 13, the description thereof will be omitted.

フロー実行部131Aは、ブラウザ210からスキャン配信サービスの実行要求を受け付けると、アプリ管理部120Aに処理内容の取得を要求する(ステップS2502)。ここで、本実施形態では、フロー実行部131Aにより、図26に示す処理内容が取得されたものとする。   When the flow execution unit 131A receives the scan distribution service execution request from the browser 210, the flow execution unit 131A requests the application management unit 120A to acquire the processing content (step S2502). Here, in the present embodiment, it is assumed that the flow execution unit 131A has acquired the processing content illustrated in FIG.

フロー実行部131Aは、取得した処理内容に従ってコンポーネントの取得を、コンポーネント管理部132Aに要求する(ステップS2503)。より具体的には、フロー実行部131は、図26に示す処理内容の「From("file:input")」の次に指定されている「.to("process:ocr")」に基づき、コンポーネント名が「ocr」であるコンポーネントの取得を、コンポーネント管理部132Aに要求する。   The flow execution unit 131A requests the component management unit 132A to acquire the component according to the acquired processing content (step S2503). More specifically, the flow execution unit 131, based on ".to (" process: ocr ")" specified next to "From (" file: input ")" in the processing content shown in FIG. The component management unit 132A is requested to acquire the component whose component name is "ocr".

コンポーネント管理部132Aは、コンポーネントの取得要求を受け付けると、コンポーネント管理テーブル5000を参照して、当該取得要求に係るコンポーネントが内部コンポーネント又は外部コンポーネントのいずれであるかを判定する(ステップS2504)。   Upon receiving the component acquisition request, the component management unit 132A refers to the component management table 5000 and determines whether the component related to the acquisition request is an internal component or an external component (step S2504).

すなわち、コンポーネント管理部132Aは、コンポーネント管理テーブル5000において、当該取得要求に含まれるコンポーネント名に関連付けられているホスト名が「localhost」であるか否かを判定する。そして、コンポーネント管理部132Aは、当該ホスト名が「localhost」である場合、当該取得要求に係るコンポーネントは内部コンポーネントであると判定する。一方、コンポーネント管理部132Aは、当該ホスト名が「localhost」でない場合、当該取得要求に係るコンポーネントは外部コンポーネントであると判定する。   That is, the component management unit 132A determines whether the host name associated with the component name included in the acquisition request in the component management table 5000 is “localhost”. Then, the component management unit 132A determines that the component related to the acquisition request is an internal component when the host name is “localhost”. On the other hand, the component management unit 132A determines that the component related to the acquisition request is an external component when the host name is not "localhost".

ここで、コンポーネント管理テーブル5000において、コンポーネント名「ocr」に関連付けられているホスト名は「localhost」である。したがって、コンポーネント管理部132Aは、当該取得要求に係るコンポーネントは内部コンポーネントであると判定する。   Here, in the component management table 5000, the host name associated with the component name “ocr” is “localhost”. Therefore, the component management unit 132A determines that the component related to the acquisition request is an internal component.

コンポーネント管理部132Aは、コンポーネントの取得要求に係るコンポーネントが内部コンポーネントであると判定された場合、当該取得要求に含まれるコンポーネント名に対応する内部コンポーネントを生成する(ステップS2505)。すなわち、コンポーネント管理部132Aは、当該取得要求に含まれるコンポーネント名「ocr」に対応するOCRコンポーネント1333を生成する。   When the component related to the component acquisition request is determined to be the internal component, the component management unit 132A generates an internal component corresponding to the component name included in the acquisition request (step S2505). That is, the component management unit 132A generates the OCR component 1333 corresponding to the component name “ocr” included in the acquisition request.

そして、コンポーネント管理部132Aは、生成されたOCRコンポーネント1333をフロー実行部131Aに返却する。   Then, the component management unit 132A returns the generated OCR component 1333 to the flow execution unit 131A.

続くステップS2506〜ステップS2513の処理は、図13を用いて説明したステップS1305〜ステップS1312の処理と同様であるため、その説明を省略する。   The processes of subsequent steps S2506 to S2513 are similar to the processes of steps S1305 to S1312 described with reference to FIG. 13, and thus description thereof will be omitted.

次に、フロー実行部131Aは、取得した処理内容に従ってコンポーネントの取得を、コンポーネント管理部132Aに要求する(ステップS2514)。より具体的には、フロー実行部131Aは、図26に示す処理内容の「.to("process:ocr")」の次に指定されている「.to("storage:send_to_folderα?type=service-b")」に基づき、コンポーネント名が「send_to_folderα」であるコンポーネントの取得を、コンポーネント管理部132Aに要求する。なお、ここで指定されている処理内容のうち「?type=service-b」の部分は、オプションパラメータであり、コンポーネント名「send_to_folderα」のコンポーネントの処理によるデータのアップロード先が「ストレージサービスB」であることを示している。   Next, the flow execution unit 131A requests the component management unit 132A to acquire the component according to the acquired processing content (step S2514). More specifically, the flow execution unit 131A determines that ".to (" storage: send_to_folderα? Type = service- "specified next to" .to ("process: ocr") "in the processing content shown in FIG. Based on "b") ", the component management unit 132A is requested to acquire the component whose component name is" send_to_folder α ". In addition, the part of "? Type = service-b" in the processing contents specified here is an optional parameter, and the upload destination of data by the processing of the component with the component name "send_to_folderα" is "Storage service B". It indicates that there is.

コンポーネント管理部132Aは、コンポーネントの取得要求を受け付けると、コンポーネント管理テーブル5000を参照して、当該取得要求に係るコンポーネントが内部コンポーネント又は外部コンポーネントのいずれであるかを判定する(ステップS2515)。   Upon receiving the component acquisition request, the component management unit 132A refers to the component management table 5000 and determines whether the component related to the acquisition request is an internal component or an external component (step S2515).

すなわち、コンポーネント管理部132Aは、コンポーネント管理テーブル5000において、当該取得要求に含まれるコンポーネント名に関連付けられているホスト名が「localhost」であるか否かを判定する。そして、コンポーネント管理部132Aは、当該ホスト名が「localhost」である場合、当該取得要求に係るコンポーネントは内部コンポーネントであると判定する。一方、コンポーネント管理部132Aは、当該ホスト名が「localhost」でない場合、当該取得要求に係るコンポーネントは外部コンポーネントであると判定する。   That is, the component management unit 132A determines whether the host name associated with the component name included in the acquisition request in the component management table 5000 is “localhost”. Then, the component management unit 132A determines that the component related to the acquisition request is an internal component when the host name is “localhost”. On the other hand, the component management unit 132A determines that the component related to the acquisition request is an external component when the host name is not "localhost".

ここで、コンポーネント管理テーブル5000において、コンポーネント名「send_to_folderα」に関連付けられているホスト名は「server2.com」である。したがって、コンポーネント管理部132Aは、当該取得要求に係るコンポーネントは外部コンポーネントであると判定する。   Here, in the component management table 5000, the host name associated with the component name “send_to_folder α” is “server2.com”. Therefore, the component management unit 132A determines that the component related to the acquisition request is an external component.

コンポーネント管理部132Aは、コンポーネントの取得要求に係るコンポーネントが外部コンポーネントであると判定された場合、外部コンポ連携コンポーネント1335を生成する(ステップS2516)。   When it is determined that the component related to the component acquisition request is the external component, the component management unit 132A generates the external component cooperation component 1335 (step S2516).

このように、本実施形態に係るサービス提供システム10は、コンポーネントの取得要求に係るコンポーネントが外部コンポーネントである場合、外部コンポ連携コンポーネント1335を生成する。   In this way, the service providing system 10 according to the present embodiment generates the external component cooperation component 1335 when the component related to the component acquisition request is the external component.

そして、コンポーネント管理部132Aは、生成された外部コンポ連携コンポーネント1335をフロー実行部131Aに返却する。   The component management unit 132A then returns the generated external component cooperation component 1335 to the flow execution unit 131A.

フロー実行部131Aは、生成された外部コンポ連携コンポーネント1335に対して、データを指定して処理の実行を要求する(ステップS2517)。なお、ここで指定されたデータのデータ型は「LocalFilePath」である。   The flow execution unit 131A requests the generated external component cooperation component 1335 to execute the process by designating the data (step S2517). The data type of the data specified here is "LocalFilePath".

外部コンポ連携コンポーネント1335は、型変換管理部134に対して、型変換を要求する(ステップS2518)。ここで、当該型変換要求には、データと、外部コンポ連携コンポーネント1335が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。   The external component cooperation component 1335 requests the type conversion management unit 134 to perform the type conversion (step S2518). Here, the type conversion request includes data and designation of “LocalFilePath” indicating a data type that the external component cooperation component 1335 can handle.

型変換管理部134は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2519)。ここでは、受け取った型変換要求に含まれるデータのデータ型は「LocalFilePath」であり、指定されたデータ型も「LocalFilePath」であるから、一致するものと判断される。そして、型変換管理部134は、型変換要求に含まれていたデータを、そのまま外部コンポ連携コンポーネント1335に送信する(ステップS2520)。   The type conversion management unit 134 checks whether the data type of the data included in the received type conversion request matches the designated data type (step S2519). Here, since the data type of the data included in the received type conversion request is “LocalFilePath” and the designated data type is also “LocalFilePath”, it is determined that they match. Then, the type conversion management unit 134 transmits the data included in the type conversion request as it is to the external component cooperation component 1335 (step S2520).

外部コンポ連携コンポーネント1335は、型変換管理部134からデータを受け取ると、処理を実行する(ステップS2521)。すなわち、外部コンポ連携コンポーネント1335は、コンポーネント名「send_to_folderα」と、データとを含む処理の実行を、ホスト名「server2.com」で示される外部コンポーネント管理装置40の外部コンポーネント処理部410に要求する。なお、当該実行要求には、上記で説明したアップロード先のストレージサービスを示すオプションパラメータ「?type=service-b」も含まれる。   Upon receiving the data from the type conversion management unit 134, the external component cooperation component 1335 executes processing (step S2521). That is, the external component cooperation component 1335 requests the external component processing unit 410 of the external component management device 40 indicated by the host name “server2.com” to execute the process including the component name “send_to_folderα” and the data. The execution request also includes the optional parameter “? Type = service-b” indicating the storage service of the upload destination described above.

次に、外部コンポーネント処理部410は、外部コンポ連携コンポーネント1335から処理の実行要求を受け取ると、当該実行要求に応じて、外部コンポーネント処理を実行する(ステップS2522)。そして、外部コンポーネント処理部410は、処理結果を示すデータを返信する。   Next, when the external component processing unit 410 receives a process execution request from the external component cooperation component 1335, the external component processing unit 410 executes the external component process according to the execution request (step S2522). Then, the external component processing unit 410 returns data indicating the processing result.

ここで、上記のステップS2522の処理の詳細について説明する。図27は、第3の実施形態に係る外部コンポーネント処理の一例のシーケンス図である。   Here, details of the processing in step S2522 described above will be described. FIG. 27 is a sequence diagram of an example of external component processing according to the third embodiment.

まず、要求受付部411は、ロジック処理部130A(より詳細には、外部コンポ連携コンポーネント1335)から処理の実行要求を受け付ける(ステップS2701)。なお、当該実行要求には、外部コンポーネントのコンポーネント名「send_to_folderα」と、データと、オプションパラメータ「?type=service-b」とが含まれる。   First, the request receiving unit 411 receives a process execution request from the logic processing unit 130A (more specifically, the external component cooperation component 1335) (step S2701). The execution request includes the component name “send_to_folderα” of the external component, the data, and the optional parameter “? Type = service-b”.

なお、処理内容にオプションパラメータが指定されていない場合は、処理の実行要求にオプションパラメータは含まれない。また、当該実行要求に含まれるデータは、データ型が「InputStream」として渡されるものとする。   If the optional parameter is not specified in the processing content, the optional parameter is not included in the process execution request. The data type of the data included in the execution request is passed as "InputStream".

要求受付部411は、処理の実行要求を受け付けると、当該実行要求に含まれるコンポーネント名「send_to_folderα」の外部コンポーネントの取得を、コンポーネント管理部412に要求する(ステップS2702)。   Upon receiving the process execution request, the request reception unit 411 requests the component management unit 412 to acquire the external component having the component name “send_to_folderα” included in the execution request (step S2702).

コンポーネント管理部412は、外部コンポーネントの取得要求を受け付けると、当該取得要求に含まれるコンポーネント名「send_to_folderα」に対応する配信αコンポーネント4131を生成する(ステップS2703)。配信αコンポーネント4131の生成は、コンポーネント共通I/F4130に定義されたコンポーネントを生成するためのAPIを用いて行うことができる。   Upon receiving the acquisition request for the external component, the component management unit 412 generates a delivery α component 4131 corresponding to the component name “send_to_folderα” included in the acquisition request (step S2703). The distribution α component 4131 can be generated using the API for generating the component defined in the component common I / F 4130.

そして、コンポーネント管理部412は、生成された配信αコンポーネント4131を要求受付部411に返却する。これは、例えば、コンポーネント管理部412は、配信αコンポーネント4131が展開されたメモリ上(例えばRAM)上のアドレスを、要求受付部411に返却する。   Then, the component management unit 412 returns the generated distribution α component 4131 to the request reception unit 411. For example, the component management unit 412 returns to the request reception unit 411 the address on the memory (for example, RAM) where the distribution α component 4131 is expanded.

要求受付部411は、生成された配信αコンポーネント4131に対して、データを指定して処理の実行を要求する(ステップS2704)。   The request receiving unit 411 requests the generated distribution α component 4131 to execute the process by designating the data (step S2704).

配信αコンポーネント4131は、処理の実行要求を受け取ると、型変換管理部414に対して、型変換を要求する(ステップS2705)。ここで、当該型変換要求には、データと、配信αコンポーネント4131が扱うことができるデータ型を示す「LocalFilePath」の指定とが含まれる。   Upon receiving the process execution request, the distribution α component 4131 requests the type conversion management unit 414 to perform type conversion (step S2705). Here, the type conversion request includes data and designation of “LocalFilePath” indicating a data type that can be handled by the delivery α component 4131.

型変換管理部414は、受け取った型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする(ステップS2706)。受け取った型変換要求に含まれるデータのデータ型は「InputStream」である一方、指定されたデータ型は「LocalFilePath」であるから、一致しないものと判断される。   The type conversion management unit 414 checks whether or not the data type of the data included in the received type conversion request matches the designated data type (step S2706). Since the data type of the data included in the received type conversion request is "InputStream" and the specified data type is "LocalFilePath", it is determined that they do not match.

すると、型変換管理部414は、型変換テーブル6000を参照して、「InputStream」を「LocalFilePath」に変換するための型変換を特定して(ここでは、第1の型変換4151が特定される)、当該特定された型変換を生成する(ステップS2707)。   Then, the type conversion management unit 414 refers to the type conversion table 6000 to specify the type conversion for converting “InputStream” into “LocalFilePath” (here, the first type conversion 4151 is specified). ), And the specified type conversion is generated (step S2707).

そして、型変換管理部414は、生成された第1の型変換4151に対して、データを指定して型変換処理の実行を要求する(ステップS2708)。すると、第1の型変換4151は、指定されたデータのデータ型を「InputStream」から「LocalFilePath」に変換して(ステップS2709)、当該変換後のデータを型変換管理部414に返信する。   Then, the type conversion management unit 414 requests the generated first type conversion 4151 to execute the type conversion process by designating the data (step S2708). Then, the first type conversion 4151 converts the data type of the designated data from "InputStream" to "LocalFilePath" (step S2709), and returns the converted data to the type conversion management unit 414.

その後、型変換管理部414は、型変換後のデータを配信αコンポーネント4131に送信する(ステップS2710)。   After that, the type conversion management unit 414 transmits the type-converted data to the distribution α component 4131 (step S2710).

配信αコンポーネント4131は、型変換管理部414からデータを受け取ると、処理を実行する(ステップS2711)。すなわち、本実施形態では、配信αコンポーネント4131は、ストレージサービスBに対して、データの配信を実行する。   Upon receiving the data from the type conversion management unit 414, the distribution α component 4131 executes the process (step S2711). That is, in this embodiment, the distribution α component 4131 executes data distribution to the storage service B.

なお、配信αコンポーネント4131は、ストレージサービスB連携部160を介さずに、ストレージサービスBに対してデータを配信する。このように、外部コンポーネントは、内部コンポーネントと異なり、ストレージサービス連携部160やドキュメントサービス部150を用いずに、例えば配信処理やOCR処理等の各種の処理を実行する。ただし、これに限られず、外部コンポーネントは、内部コンポーネントと同様に、ストレージサービス連携部160やドキュメントサービス部150に処理要求を行うことで、各種の処理を実行しても良い。 Incidentally, the distribution α component 4131, not through the storage service B cooperation unit 160 2, to deliver data to the storage service B. Thus, unlike the internal component, the external component does not use the storage service cooperation unit 160 or the document service unit 150, but executes various processes such as distribution process and OCR process. However, the invention is not limited to this, and the external component may execute various processes by making a processing request to the storage service cooperation unit 160 or the document service unit 150, similarly to the internal component.

そして、配信αコンポーネント4131は、処理結果を示すデータ返信する。これにより、本実施形態に係るスキャン配信サービスが提供される。   Then, the distribution α component 4131 returns data indicating the processing result. As a result, the scan distribution service according to this embodiment is provided.

このように、本実施形態に係るサービス提供システム10は、処理内容に外部コンポーネントにより実行される処理が含まれる場合、当該外部コンポーネントを管理する外部コンポーネント管理装置40に処理の実行を要求する。そして、サービス提供システム10とは異なる装置である外部コンポーネント管理装置40において外部コンポーネントが実行される。   In this way, the service providing system 10 according to the present embodiment requests the external component management device 40 that manages the external component to execute the process when the process content includes the process executed by the external component. Then, the external component is executed in the external component management device 40 which is a device different from the service providing system 10.

したがって、例えば、サードベンダー等により開発された外部コンポーネントに重大なバグや不具合等が存在していた場合でも、当該バグや不具合等による影響を外部コンポーネント管理装置40内に局所化させることができる。換言すれば、サービス提供システム10は、外部コンポーネントのバグや不具合等に伴う影響を受けることなく、サービスの提供を継続することができるようになる。   Therefore, for example, even if there are serious bugs or defects in an external component developed by a third vendor or the like, the effects of the bugs or defects can be localized in the external component management device 40. In other words, the service providing system 10 can continue to provide the service without being affected by a bug or a defect of the external component.

なお、本実施形態では、外部コンポーネント管理装置40において外部コンポーネントが管理されるものとしたが、例えば、外部コンポーネントの品質が確保された後は、当該外部コンポーネントをサービス提供システム10で管理するようにしてもよい。   In the present embodiment, the external component is managed by the external component management device 40. However, for example, after the quality of the external component is secured, the service providing system 10 manages the external component. May be.

≪処理内容の作成処理≫
次に、例えば、アプリ情報1000の開発者等のユーザが、当該アプリ情報1000に含まれる処理内容を作成する処理について説明する。図28は、第3の実施形態に係る処理内容の作成処理の一例のシーケンス図である。
≪Process creation process≫
Next, for example, a process in which a user such as a developer of the application information 1000 creates the processing content included in the application information 1000 will be described. FIG. 28 is a sequence diagram of an example of a process content creation process according to the third embodiment.

まず、画像形成装置20のユーザは、ブラウザ210を用いて、処理内容の作成画面を表示するための操作を行う。すると、画像形成装置20のブラウザ210は、処理内容の作成画面の取得を、処理内容作成部122に要求する(ステップS2801)。   First, the user of the image forming apparatus 20 uses the browser 210 to perform an operation for displaying a process content creation screen. Then, the browser 210 of the image forming apparatus 20 requests the processing content creation unit 122 to acquire the processing content creation screen (step S2801).

処理内容作成部122は、コンポーネント管理テーブル5000からコンポーネントの一覧(例えば、コンポーネント名の一覧)を取得して、図29(a)に示すような処理内容の作成画面7000を作成する(ステップS2802)。そして、処理内容作成部122は、作成した処理内容の作成画面7000をブラウザ210に返信する。   The processing content creation unit 122 acquires a component list (for example, a list of component names) from the component management table 5000 and creates a processing content creation screen 7000 as shown in FIG. 29A (step S2802). . Then, the processing content creation unit 122 returns the created processing content creation screen 7000 to the browser 210.

ここで、図29(a)に示す処理内容の作成画面7000は、アプリID表示欄7010と、コンポーネント表示欄7020と、処理内容作成欄7030とが含まれる。   Here, the process content creation screen 7000 shown in FIG. 29A includes an application ID display field 7010, a component display field 7020, and a process content creation field 7030.

アプリID表示欄7010は、作成する処理内容が含まれるアプリ情報1000のアプリIDが表示される。このアプリIDは、例えば、上記のステップS2801でユーザにより指定されてもよい。   The application ID display field 7010 displays the application ID of the application information 1000 including the processing content to be created. This application ID may be designated by the user in step S2801 described above, for example.

コンポーネント表示欄7020は、それぞれのコンポーネントを示すアイコン(表示部品)が一覧で表示されている。このようなコンポーネントを示すアイコンの一覧は、コンポーネント管理テーブル5000から取得されたコンポーネント名に基づいて作成される。処理内容作成欄7030は、ユーザが処理内容を作成するための領域であり、例えば、コンポーネント表示欄7020に含まれるコンポーネントを示すアイコンをドラッグアンドドロップすることで、処理内容を作成することができる。   In the component display field 7020, a list of icons (display components) indicating the respective components is displayed. A list of icons indicating such components is created based on the component names acquired from the component management table 5000. The processing content creation field 7030 is an area for the user to create processing content, and the processing content can be created by dragging and dropping an icon indicating a component included in the component display field 7020, for example.

ここで、ユーザは、ブラウザ210を用いて、コンポーネント表示欄7020に含まれる取得コンポーネントと、印刷変換βコンポーネントとを、この順で、処理内容作成欄7030にドラッグアンドドロップしたものとする。すると、図29(b)に示すように処理内容の作成画面7100の処理内容作成欄7110には、処理内容を模式的に示すフロー図7120が作成される。フロー図7120は、内部コンポーネントである取得コンポーネントを実行した後、外部コンポーネントである印刷変換βコンポーネントを実行する処理内容を示している。   Here, it is assumed that the user uses the browser 210 to drag and drop the acquisition component and the print conversion β component included in the component display field 7020 to the processing content creation field 7030 in this order. Then, as shown in FIG. 29B, a flow diagram 7120 schematically showing the processing content is created in the processing content creation field 7110 of the processing content creation screen 7100. The flowchart 7120 shows the processing contents of executing the print conversion β component, which is an external component, after executing the acquisition component, which is an internal component.

これにより、ユーザにより処理内容が作成される。しかも、このとき、ユーザは、処理内容に含まれる一連の処理を実行するコンポーネントが、内部コンポーネントであるか外部コンポーネントであるかを意識することなく、処理内容を作成することができる。したがって、ユーザは、容易に処理内容を作成することができる。   As a result, the processing content is created by the user. Moreover, at this time, the user can create the processing content without being aware of whether the component that executes the series of processing included in the processing content is an internal component or an external component. Therefore, the user can easily create the processing content.

画像形成装置20のブラウザ210は、ユーザにより処理内容が作成されると、作成された処理内容を受け付ける(ステップS2803)。そして、画像形成装置20のブラウザ210は、作成された処理内容の保存を処理内容作成部122に要求する(ステップS2804)。なお、当該保存要求には、アプリIDと、ユーザにより作成された処理内容とが含まれる。   When the user creates the processing content, the browser 210 of the image forming apparatus 20 receives the created processing content (step S2803). Then, the browser 210 of the image forming apparatus 20 requests the processing content creation unit 122 to save the created processing content (step S2804). The save request includes the application ID and the processing content created by the user.

サービス処理部110の処理内容作成部122は、処理内容の保存要求を受け取ると、当該保存要求をアプリ管理部120Aに転送する(ステップS2805)。次に、アプリ管理部120Aは、処理内容の保存要求を受け取ると、当該保存要求に含まれる処理内容をアプリIDと関連付けてアプリ情報記憶部190に保存する(ステップS2806)。そして、アプリ管理部120Aは、保存結果を返信する。これにより、ユーザにより作成された処理内容がアプリ情報記憶部190に記憶される。   When the processing content creation unit 122 of the service processing unit 110 receives the processing content storage request, it transfers the storage request to the application management unit 120A (step S2805). Next, when the application management unit 120A receives the processing content storage request, the application management unit 120A stores the processing content included in the storage request in the application information storage unit 190 in association with the application ID (step S2806). Then, the application management unit 120A returns the storage result. As a result, the processing content created by the user is stored in the application information storage unit 190.

<まとめ>
以上のように、第1の実施形態に係る情報処理システム1によれば、サービス提供システム10は外部サービスと連携したサービスを画像形成装置20に提供することができる。また、サービス提供システム10は、連携先の外部サービスの追加・変更等を容易に行うことができる。さらに、サービス提供システム10は、画像形成装置20に提供するサービスの追加・変更等(すなわち、アプリ情報1000の追加・変更等)を容易に行うことができる。これらにより、第1の実施形態に係るサービス提供システム10は、サービスの追加・変更等に伴う開発・維持に要する工数を削減することができる。
<Summary>
As described above, according to the information processing system 1 according to the first embodiment, the service providing system 10 can provide the image forming apparatus 20 with a service linked with an external service. Further, the service providing system 10 can easily add / change the external service of the cooperation destination. Further, the service providing system 10 can easily add / change the service provided to the image forming apparatus 20 (that is, add / change the application information 1000). As a result, the service providing system 10 according to the first embodiment can reduce the number of man-hours required for development / maintenance associated with addition / change of service.

さらに、第2の実施形態に係る情報処理システム1によれば、サービス提供システム10は、ブラウザ210が搭載されていない画像形成装置20に対してもサービスを提供することができる。したがって、第2の実施形態に係るサービス提供システム10によれば、一般にブラウザが搭載されていない多様な電子機器に対してサービスを提供することができる。   Furthermore, according to the information processing system 1 according to the second embodiment, the service providing system 10 can provide the service even to the image forming apparatus 20 in which the browser 210 is not installed. Therefore, according to the service providing system 10 according to the second embodiment, it is possible to provide a service to various electronic devices that are not generally equipped with a browser.

また、第3の実施形態に係る情報処理システム1によれば、サードベンダー等により開発された外部コンポーネントを、サービス提供システム10とは異なる装置である外部コンポーネント管理装置40で管理及び実行させることができる。これにより、例えば、外部コンポーネントにバグや不具合が存在する等、外部コンポーネントの品質が十分でない場合においても、バグや不具合等に伴う影響を外部コンポーネント管理装置40に局所化させることができる。   Further, according to the information processing system 1 according to the third embodiment, an external component developed by a third vendor or the like can be managed and executed by the external component management device 40 which is a device different from the service providing system 10. it can. As a result, for example, even when the quality of the external component is not sufficient, such as when the external component has a bug or a defect, it is possible to localize the effect of the bug or the defect in the external component management device 40.

したがって、第3の実施形態に係る情報処理システム1によれば、例えば、外部コンポーネントのバグや不具合等に伴いサービス提供システム10の処理能力が低下、又はサービス提供システム10が停止するような事態等を防止することができる。   Therefore, according to the information processing system 1 according to the third embodiment, for example, the processing capability of the service providing system 10 is reduced or the service providing system 10 is stopped due to a bug or a defect of an external component. Can be prevented.

なお、アプリ情報記憶部190は、記憶手段の一例である。アプリ管理部120は、第1の送信手段の一例である。ロジック処理部130は、処理実行手段の一例である。   The application information storage unit 190 is an example of a storage unit. The application management unit 120 is an example of a first transmission unit. The logic processing unit 130 is an example of a process executing unit.

本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。   The present invention is not limited to the above specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.

1 情報処理システム
10 サービス提供システム
20 画像形成装置
30 外部ストレージシステム
110 サービス処理部
120 アプリ管理部
130 ロジック処理部
131 フロー実行部
132 コンポーネント管理部
133 コンポーネント群
134 型変換管理部
135 型変換群
140 データI/F部
150 ドキュメントサービス部
151 OCR処理
152 印刷変換処理
160 ストレージサービス連携部
170 ファイル処理部
180 データ処理部
190 アプリ情報記憶部
1000 アプリ情報
3000 型変換テーブル
1 information processing system 10 service providing system 20 image forming apparatus 30 external storage system 110 service processing unit 120 application management unit 130 logic processing unit 131 flow execution unit 132 component management unit 133 component group 134 type conversion management unit 135 type conversion group 140 data I / F section 150 Document service section 151 OCR processing 152 Print conversion processing 160 Storage service cooperation section 170 File processing section 180 Data processing section 190 Application information storage section 1000 Application information 3000 type conversion table

特開2014−032659号公報JP, 2014-032659, A

Claims (14)

1以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、
電子データを用いた一連の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、該一連の処理を前記プログラムを組み合わせて実行するための一連の処理に関する情報とを関連付けて記憶する記憶手段と、
前記情報処理システムに接続される1以上の機器のうちの一の機器から前記識別情報を含む第1の要求を受信すると、前記第1の要求の送信元がブラウザ又はクライアントアプリケーションのいずれであるかを判定する判定手段と、
前記判定手段により前記第1の要求の送信元がブラウザであると判定された場合は前記一の機器に搭載された前記ブラウザが前記識別情報に対応する画面を表示するためのHTML形式の画面情報を前記一の機器に送信し、前記判定手段により前記第1の要求の送信元がクライアントアプリケーションであると判定された場合は前記一の機器に搭載された前記クライアントアプリケーションが前記識別情報に対応する画面を表示するための情報を汎用的な形式で前記一の機器に送信する送信手段と、
前記一の機器上に表示された前記画面上での操作に応じて前記一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む第2の要求を受け付ける受付手段と、
前記受付手段により受け付けた前記第2の要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記第2の要求に含まれる前記識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づいて、前記複数のプログラムのうちの1以上のプログラムを組み合わせて実行する処理実行手段と
を有する情報処理システム。
An information processing system including a plurality of programs, each of which includes one or more information processing devices and executes a predetermined process,
For each application that executes a series of processes using electronic data in cooperation with an external service, identification information for identifying the application, and information regarding a series of processes for executing the series of processes by combining the programs. A storage means for storing in association with
When a first request including the identification information is received from one of the one or more devices connected to the information processing system, whether the source of the first request is a browser or a client application. Determination means for determining
When the determination unit determines that the transmission source of the first request is a browser, HTML-format screen information for the browser installed in the one device to display a screen corresponding to the identification information. To the one device, and when the determination unit determines that the transmission source of the first request is a client application, the client application installed in the one device corresponds to the identification information. Transmitting means for transmitting information for displaying a screen to the one device in a general-purpose format,
Receiving means for receiving a second request including the identification information and information about electronic data used for the series of processes from the one device in response to an operation on the screen displayed on the one device. ,
The series of processes using electronic data based on the information regarding the electronic data included in the second request received by the receiving unit is stored in the storage unit in association with the identification information included in the second request. An information processing system, comprising: a processing execution unit that executes a combination of one or more programs of the plurality of programs based on the stored information about the series of processes.
前記処理実行手段は、
さらに、前記電子データのデータ型を所定のデータ型に変換する型変換手段を1以上有し、
前記電子データを用いた前記一連の処理を、前記一連の処理に関する情報に基づいて、前記1以上のプログラムと、前記型変換手段とを組み合わせて、前記型変換手段により前記電子データのデータ型を前記プログラムが処理可能な所定のデータ型に変換した後、該プログラムが処理を実行することにより実行する、請求項1記載の情報処理システム。
The processing execution means,
Furthermore, it has one or more type conversion means for converting the data type of the electronic data into a predetermined data type,
The series of processes using the electronic data is combined with the one or more programs and the type conversion unit based on information about the series of processes, and the data type of the electronic data is determined by the type conversion unit. The information processing system according to claim 1, wherein the program is executed by executing a process after the program is converted into a predetermined data type that can be processed.
前記複数のプログラムは、外部サービスに関する処理を実行するプログラムを含み、
前記外部サービスに関する処理を実行するプログラムは、
外部サービスに対して電子データをアップロードする処理を実行するプログラム及び外部サービスから電子データをダウンロードする処理を実行するプログラムを少なくとも含む、請求項1又は2記載の情報処理システム。
The plurality of programs includes a program that executes a process related to an external service,
The program that executes the process related to the external service is
The information processing system according to claim 1, further comprising at least a program that executes a process of uploading electronic data to an external service and a program that executes a process of downloading electronic data from the external service.
前記外部サービス毎に、複数の前記外部サービスに対して共通に定義された共通APIと、前記外部サービス毎に固有に定義された固有APIとを含む外部サービス連携手段を有し、
前記外部サービスに関する処理を実行するプログラムは、
前記共通API又は前記固有APIを用いて、前記外部サービスに関する処理を実行する、請求項3に記載の情報処理システム。
An external service cooperation unit including a common API commonly defined for each of the external services and a unique API uniquely defined for each external service,
The program that executes the process related to the external service is
The information processing system according to claim 3, wherein the common API or the unique API is used to execute a process related to the external service.
前記共通APIは、複数の前記外部サービスのいずれもが共通に提供する機能を利用するためのAPIであり、
前記固有APIは、複数の前記外部サービスのうちのいずれかの外部サービスが提供する機能を利用するためのAPIである、請求項4記載の情報処理システム。
The common API is an API for using a function commonly provided by all of the plurality of external services,
The information processing system according to claim 4, wherein the unique API is an API for utilizing a function provided by any one of the plurality of external services.
前記外部サービスに関する処理を実行するプログラムは、
前記共通API又は前記固有APIの可変部分に、外部サービスの識別情報を指定することにより該指定された識別情報に対応する外部サービスに対して前記外部サービスに関する処理を実行する、請求項4又は5記載の情報処理システム。
The program that executes the process related to the external service is
The process relating to the external service is executed for the external service corresponding to the specified identification information by specifying the identification information of the external service in the variable part of the common API or the unique API. Information processing system described.
前記情報処理システムは、所定の処理をそれぞれ実行する複数の外部プログラムを有する外部システムと接続され、
前記処理実行手段は、
前記電子データを用いた前記一連の処理を、前記一連の処理に関する情報に基づいて、前記1以上のプログラムと、前記外部プログラムとを組み合わせて実行し、
前記プログラムは前記情報処理システムに予め組み込まれているプログラムであり、前記外部プログラムは前記情報処理システムと通信ネットワークを介して接続される外部装置で管理されているプログラムである、請求項1ないし6のいずれか1項に記載の情報処理システム。
The information processing system is connected to an external system having a plurality of external programs that respectively execute predetermined processes,
The processing execution means,
Executing the series of processes using the electronic data based on information about the series of processes by combining the one or more programs and the external program ,
7. The program is a program installed in advance in the information processing system, and the external program is a program managed by an external device connected to the information processing system via a communication network. The information processing system according to any one of 1.
前記処理実行手段は、
前記一連の処理に含まれる一の処理が前記外部プログラムにより実行される処理か否かを判定する判定手段を有し、
前記判定手段により前記一の処理が前記外部プログラムにより実行される処理であると判定された場合、該外部プログラムによる処理を前記外部システムに要求する、請求項7に記載の情報処理システム。
The processing execution means,
A determination unit that determines whether or not one process included in the series of processes is a process executed by the external program,
The information processing system according to claim 7, wherein when the determination unit determines that the one process is a process executed by the external program, the external system is requested to perform the process by the external program.
前記処理実行手段により実行された前記一連の処理の結果を、前記一の機器に送信する送信手段を有する、請求項1ないし8のいずれか1項に記載の情報処理システム。   The information processing system according to any one of claims 1 to 8, further comprising a transmission unit that transmits a result of the series of processes executed by the process execution unit to the one device. 前記アプリケーションは、前記一の機器から送信された電子データを前記外部サービスに対してアップロードするアプリケーションを少なくとも含む、請求項1ないし9のいずれか1項に記載の情報処理システム。   The information processing system according to claim 1, wherein the application includes at least an application that uploads electronic data transmitted from the one device to the external service. 前記アプリケーションは、前記外部サービスに蓄積されている電子データをダウンロードして前記一の機器に送信するアプリケーションを少なくとも含む、請求項9に記載の情報処理システム。   The information processing system according to claim 9, wherein the application includes at least an application that downloads electronic data accumulated in the external service and transmits the electronic data to the one device. 前記送信手段は、前記外部サービスからダウンロードした電子データを、前記一連の処理の結果として前記一の機器に送信する、請求項11に記載の情報処理システム。   The information processing system according to claim 11, wherein the transmitting unit transmits the electronic data downloaded from the external service to the one device as a result of the series of processes. 所定の処理をそれぞれ実行する複数のプログラムを有する情報処理装置であって、
電子データを用いた一連の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、該一連の処理を前記プログラムを組み合わせて実行するための一連の処理に関する情報とを関連付けて記憶する記憶手段と、
前記情報処理装置に接続される1以上の機器のうちの一の機器から前記識別情報を含む第1の要求を受信すると、前記第1の要求の送信元がブラウザ又はクライアントアプリケーションのいずれであるかを判定する判定手段と、
前記判定手段により前記第1の要求の送信元がブラウザであると判定された場合は前記一の機器に搭載された前記ブラウザが前記識別情報に対応する画面を表示するためのHTML形式の画面情報を前記一の機器に送信し、前記判定手段により前記第1の要求の送信元がクライアントアプリケーションであると判定された場合は前記一の機器に搭載された前記クライアントアプリケーションが前記識別情報に対応する画面を表示するための情報を汎用的な形式で前記一の機器に送信する送信手段と、
前記一の機器上に表示された前記画面上での操作に応じて前記一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む第2の要求を受け付ける受付手段と、
前記受付手段により受け付けた前記第2の要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記第2の要求に含まれる前記識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づいて、前記複数のプログラムのうちの1以上のプログラムを組み合わせて実行する処理実行手段と
を有する情報処理装置。
An information processing apparatus having a plurality of programs that respectively execute predetermined processes,
For each application that executes a series of processes using electronic data in cooperation with an external service, identification information for identifying the application, and information regarding a series of processes for executing the series of processes by combining the programs. A storage means for storing in association with
When the first request including the identification information is received from one of the one or more devices connected to the information processing device, the sender of the first request is a browser or a client application. Determination means for determining
When the determination unit determines that the transmission source of the first request is a browser, HTML-format screen information for the browser installed in the one device to display a screen corresponding to the identification information. To the one device, and when the determination unit determines that the transmission source of the first request is a client application, the client application installed in the one device corresponds to the identification information. Transmitting means for transmitting information for displaying a screen to the one device in a general-purpose format,
Receiving means for receiving a second request including the identification information and information about electronic data used for the series of processes from the one device in response to an operation on the screen displayed on the one device. ,
The series of processes using electronic data based on the information regarding the electronic data included in the second request received by the receiving unit is stored in the storage unit in association with the identification information included in the second request. An information processing apparatus comprising: a processing execution unit that executes one or more programs of the plurality of programs in combination based on the stored information about the series of processing.
1以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理を外部サービスと連携して実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、該一連の処理を前記プログラムを組み合わせて実行するための一連の処理に関する情報とを関連付けて記憶する記憶手段を有する情報処理システムに用いられる情報処理方法において、
前記情報処理システムに接続される1以上の機器のうちの一の機器から前記識別情報を含む第1の要求を受信すると、前記第1の要求の送信元がブラウザ又はクライアントアプリケーションのいずれであるかを判定する判定手順と、
前記判定手順により前記第1の要求の送信元がブラウザであると判定された場合は前記一の機器に搭載された前記ブラウザが前記識別情報に対応する画面を表示するためのHTML形式の画面情報を前記一の機器に送信し、前記判定手順により前記第1の要求の送信元がクライアントアプリケーションであると判定された場合は前記一の機器に搭載された前記クライアントアプリケーションが前記識別情報に対応する画面を表示するための情報を汎用的な形式で前記一の機器に送信する送信手順と、
前記一の機器上に表示された前記画面上での操作に応じて前記一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む第2の要求を受け付ける受付手順と、
前記受付手順により受け付けた前記第2の要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記第2の要求に含まれる前記識別情報に関連付けて前記記憶手段に記憶されている前記一連の処理に関する情報に基づいて、前記複数のプログラムのうちの1以上のプログラムを組み合わせて実行する処理実行手順と
を有する情報処理方法。
An information processing system including a plurality of programs each of which executes one or more information processing apparatuses, each of which executes a predetermined process, wherein a series of processes using electronic data is executed for each application to be executed in cooperation with an external service. In an information processing method used in an information processing system having a storage unit that stores identification information for identifying an application and information related to a series of processes for executing the series of processes by combining the programs,
When a first request including the identification information is received from one of the one or more devices connected to the information processing system, whether the source of the first request is a browser or a client application. A determination procedure for determining
If it is determined by the determination procedure that the transmission source of the first request is a browser, screen information in HTML format for the browser installed in the one device to display a screen corresponding to the identification information. Is transmitted to the one device, and when it is determined by the determination procedure that the transmission source of the first request is a client application, the client application installed in the one device corresponds to the identification information. A transmission procedure for transmitting information for displaying a screen to the one device in a general-purpose format,
An acceptance procedure for accepting a second request including the identification information and information about electronic data used for the series of processes from the one device in response to an operation on the screen displayed on the one device. ,
The series of processes using electronic data based on the information about the electronic data included in the second request received by the receiving procedure is stored in the storage unit in association with the identification information included in the second request. An information processing method, comprising: a process execution procedure of executing one or more programs of the plurality of programs in combination based on the stored information about the series of processes.
JP2015222330A 2015-02-16 2015-11-12 Information processing system, information processing apparatus, and information processing method Active JP6690196B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/042,492 US10122870B2 (en) 2015-02-16 2016-02-12 Information processing system, information processing apparatus, and information processing method
EP16155705.3A EP3057303B1 (en) 2015-02-16 2016-02-15 Information processing system, information processing apparatus, and information processing method
EP20170721.3A EP3739862B1 (en) 2015-02-16 2016-02-15 Information processing system, information processing apparatus, and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015027292 2015-02-16
JP2015027292 2015-02-16

Publications (2)

Publication Number Publication Date
JP2016154000A JP2016154000A (en) 2016-08-25
JP6690196B2 true JP6690196B2 (en) 2020-04-28

Family

ID=56760543

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015222330A Active JP6690196B2 (en) 2015-02-16 2015-11-12 Information processing system, information processing apparatus, and information processing method

Country Status (1)

Country Link
JP (1) JP6690196B2 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445489B2 (en) 2015-09-18 2019-10-15 Ricoh Company, Ltd. Information processing system, information processing apparatus, and method for processing information
JP6859620B2 (en) 2015-10-14 2021-04-14 株式会社リコー Information processing system, information processing device, information processing method, and information processing program
EP3156903A1 (en) 2015-10-14 2017-04-19 Ricoh Company, Ltd. Information processing system, information processing apparatus, method for processing information, and recording medium
JP6724630B2 (en) 2015-10-30 2020-07-15 株式会社リコー Information processing system, information processing apparatus, information processing method, and information processing program
US10348926B2 (en) 2016-01-20 2019-07-09 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
US9961225B2 (en) 2016-02-05 2018-05-01 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
JP6772578B2 (en) 2016-02-05 2020-10-21 株式会社リコー Information processing system, information processing device, and information processing method
US10516791B2 (en) 2016-03-04 2019-12-24 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method for executing an iteration of one or more processes
US10768975B2 (en) 2016-03-04 2020-09-08 Ricoh Company, Ltd. Information processing system, information processing apparatus, and information processing method
JP6701961B2 (en) 2016-05-27 2020-05-27 株式会社リコー Information processing system, information processing apparatus, information processing method, and program
US11748173B2 (en) 2019-07-19 2023-09-05 Ricoh Company, Ltd. Information processing system, information processing method, and storage medium for controlling virtual server that executes program
US11310372B2 (en) 2019-12-27 2022-04-19 Ricoh Company, Ltd. Service providing system, information processing system, and information processing method for transmitting data to application with authority to store in external service system
JP7044122B2 (en) * 2019-12-27 2022-03-30 株式会社リコー Service provision system, information processing system, information processing method, program
JP2021129252A (en) 2020-02-14 2021-09-02 株式会社リコー Apparatus, processing execution system, processing execution method, and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014127066A (en) * 2012-12-27 2014-07-07 Ricoh Co Ltd Information processor, information processing system, and program
JP2014170525A (en) * 2013-02-06 2014-09-18 Ricoh Co Ltd Information process system
JP5817766B2 (en) * 2013-03-21 2015-11-18 富士ゼロックス株式会社 Information processing apparatus, communication system, and program

Also Published As

Publication number Publication date
JP2016154000A (en) 2016-08-25

Similar Documents

Publication Publication Date Title
JP6690196B2 (en) Information processing system, information processing apparatus, and information processing method
EP3739862B1 (en) Information processing system, information processing apparatus, and information processing method
JP6859620B2 (en) Information processing system, information processing device, information processing method, and information processing program
US10250771B2 (en) Information processing system, information processing apparatus, and information processing method
US20180060131A1 (en) Information processing system, information processing apparatus, and information processing method
EP3543851A1 (en) Setup system, method, and computer-readable medium for multifunction peripheral devices for parameter-based integration of external services
JP5786464B2 (en) Web server, printing apparatus, printing system, and web server program
JP6756270B2 (en) Information processing system, information processing device, information processing method, and program
JP4090806B2 (en) Image information processing apparatus and application installation method
JP2017142766A (en) Information processing system, information processing apparatus, and information processing method
US9244637B2 (en) Server apparatus, communication apparatus, and computer-readable medium storing programs therefor
EP3288234B1 (en) Information processing apparatus, information processing system, information processing method, and carrier means
US20190026257A1 (en) Information processing apparatus, information processing method and information processing system
JP6900864B2 (en) Information processing system, information processing device and information processing method
US20170208203A1 (en) Information processing system, information processing apparatus, and information processing method
JP7167541B2 (en) Information processing system, information processing method, and program
JP7444208B2 (en) Information processing system, information processing device, information processing method, and program
JP6673047B2 (en) Information processing system, information processing apparatus, and information processing method
JP4340704B2 (en) Image information processing apparatus and application installation method
JP6753489B2 (en) Information processing system, information processing device, information processing method, and program
JP6544133B2 (en) INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING METHOD
JP5655726B2 (en) Image information processing apparatus, image information processing system, image information processing method, program, and recording medium
JP6536308B2 (en) INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM
JP2020205579A (en) Information processing system, processing execution method, service providing system, and program
JP7027846B2 (en) Input / output devices, programs and information processing systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200310

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200323

R151 Written notification of patent or utility model registration

Ref document number: 6690196

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151