(57)【要約】【課題】一連の処理を行うためのアプリケーション開発を支援する。【解決手段】第１のプログラムと、該第１のプログラムからの処理の実行要求に応じて所定の処理を実行する１以上の第２のプログラムとを含むプログラム群を記憶するプログラム記憶手段と、該アプリを識別する識別情報と、一連の処理を構成する各処理を実行する１以上の第２のプログラムを定義した一連の処理に関する情報とを関連付けて記憶するアプリ情報記憶手段と、機器から前記識別情報と、電子データに関する情報とを含む要求を受け付ける受付手段と、前記電子データを用いた前記一連の処理を前記識別情報に関連付けられている前記一連の処理に関する情報に定義された１以上の第２のプログラムにそれぞれ対応する第１のプログラムそれぞれが、該１以上の第２のプログラムのうちの対応する前記第２のプログラムに処理の実行を要求するで実行する処理実行手段と、を有する。【選択図】図６
2017130189.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含み、電子データを用いた一連の処理を実行する情報処理システムであって、
所定の機能を提供する第１のプログラムと、該第１のプログラムからの処理の実行要求に応じて前記機能を実現する所定の処理を実行する１以上の第２のプログラムとを含むプログラム群を、前記機能毎に記憶するプログラム記憶手段と、
前記一連の処理を実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、前記一連の処理を構成する各処理を実行する１以上の第２のプログラムを定義した一連の処理に関する情報とを関連付けて記憶するアプリ情報記憶手段と、
前記情報処理システムに接続される１以上の機器のうちの一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む要求を受け付ける受付手段と、
前記受付手段により受け付けた前記要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記要求に含まれる前記識別情報に関連付けて前記アプリ情報記憶手段に記憶されている前記一連の処理に関する情報に定義された１以上の第２のプログラムにそれぞれ対応する第１のプログラムそれぞれが、該１以上の第２のプログラムのうちの対応する前記第２のプログラムに処理の実行を要求することにより実行する処理実行手段と、
を有する情報処理システム。
【請求項２】
前記処理実行手段は、
さらに、前記電子データのデータ型を所定のデータ型に変換するための型変換処理を実行する型変換手段を１以上有し、
前記一連の処理に関する情報に定義された１以上の第２のプログラムにそれぞれ対応する第１のプログラムそれぞれが、該１以上の第２のプログラムのうちの対応する前記第２のプログラムに処理の実行を要求し、
前記型変換手段により前記電子データのデータ型を前記第２のプログラムが処理可能なデータ型に変換した後、該第２のプログラムが所定の処理を実行することにより、前電子データを用いた一連の処理を実行する、請求項１に記載の情報処理システム。
【請求項３】
前記第２のプログラムは、外部サービスに関する処理を実行するプログラムを含み、
前記外部サービスに関する処理を実行するプログラムは、
外部サービスに対して電子データをアップロードする処理を実行するプログラム及び外部サービスから電子データをダウンロードする処理を実行するプログラムを少なくとも含む、請求項１又は２に記載の情報処理システム。
【請求項４】
前記外部サービス毎に、複数の前記外部サービスに対して共通に定義された共通ＡＰＩと、前記外部サービス毎に固有に定義された固有ＡＰＩとを含む外部サービス連携手段を有し、
前記外部サービスに関する処理を実行するプログラムは、
前記共通ＡＰＩ又は前記固有ＡＰＩを用いて、前記外部サービスに関する処理を実行する、請求項３に記載の情報処理システム。
【請求項５】
前記共通ＡＰＩは、複数の前記外部サービスのいずれもが共通に提供する機能を利用するためのＡＰＩであり、
前記固有ＡＰＩは、複数の前記外部サービスのうちの特定の外部サービスが提供する機能を利用するためのＡＰＩである、請求項４に記載の情報処理システム。
【請求項６】
外部サービスに関する処理を実行するプログラムは、
前記共通ＡＰＩ又は前記固有ＡＰＩの可変部分に、前記外部サービスを識別する外部サービス識別情報を指定することにより、該指定された外部サービス識別情報に対応する外部サービスと連携して前記外部サービスに関する処理を実行する、請求項４又は５に記載の情報処理システム。
【請求項７】
前記アプリケーションには、前記一の機器から送信された電子データを前記外部サービスにアップロードするアプリケーションを少なくとも含む、請求項１ないし６のいずれか１項に記載の情報処理システム。
【請求項８】
電子データを用いた一連の処理を実行する情報処理装置であって、
所定の機能を提供する第１のプログラムと、該第１のプログラムからの処理の実行要求に応じて前記機能を実現する所定の処理を実行する１以上の第２のプログラムとを含むプログラム群を、前記機能毎に記憶するプログラム記憶手段と、
前記一連の処理を実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、前記一連の処理を構成する各処理を実行する１以上の第２のプログラムを定義した一連の処理に関する情報とを関連付けて記憶するアプリ情報記憶手段と、
前記情報処理装置に接続される１以上の機器のうちの一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む要求を受け付ける受付手段と、
前記受付手段により受け付けた前記要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記要求に含まれる前記識別情報に関連付けて前記アプリ情報記憶手段に記憶されている前記一連の処理に関する情報に定義された１以上の第２のプログラムにそれぞれ対応する第１のプログラムそれぞれが、該１以上の第２のプログラムのうちの対応する前記第２のプログラムに処理の実行を要求することにより実行する処理実行手段と、
を有する情報処理装置。
【請求項９】
１以上の情報処理装置を含み、電子データを用いた一連の処理を実行する情報処理システムであって、所定の機能を提供する第１のプログラムと、該第１のプログラムからの処理の実行要求に応じて前記機能を実現する所定の処理を実行する１以上の第２のプログラムとを含むプログラム群を、前記機能毎に記憶するプログラム記憶手段と、前記一連の処理を実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、前記一連の処理を構成する各処理を実行する１以上の第２のプログラムを定義した一連の処理に関する情報とを関連付けて記憶するアプリ情報記憶手段とを有する情報処理システムに用いられる情報処理方法において、
前記情報処理システムに接続される１以上の機器のうちの一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む要求を受け付ける受付手順と、
前記受付手順により受け付けた前記要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記要求に含まれる前記識別情報に関連付けて前記アプリ情報記憶手段に記憶されている前記一連の処理に関する情報に定義された１以上の第２のプログラムにそれぞれ対応する第１のプログラムそれぞれが、該１以上の第２のプログラムのうちの対応する前記第２のプログラムに処理の実行を要求することにより実行する処理実行手順と、
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
近年、複数の機能（例えば、スキャンやプリント、外部サービスへのアップロード等）を組み合わせた機能を提供するサービスが知られるようになった。例えば、スキャンにより生成された電子データを外部サービスにアップロードするサービス等が知られている。このようなサービスは、各機能を実現する１以上の処理が一連の処理として実行されることにより実現される。
【０００３】
また、１以上の処理を一連の処理として表した処理情報等が含まれる指示書に基づいて、当該一連の処理を実行する画像形成装置が知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術においては、一連の処理を行うためには画像形成装置に搭載されるアプリケーションの開発が必要となる場合がある。このような場合、機能の追加や削除等に応じて、画像形成装置に搭載されるアプリケーションの追加や修正等が必要となることがあった。
【０００５】
したがって、画像形成装置に搭載されるアプリケーションの開発に要する工数が大きくなる場合があった。
【０００６】
本発明の一実施形態は、上記の点に鑑みてなされたもので、一連の処理を行うためのアプリケーション開発を支援することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一実施形態は、１以上の情報処理装置を含み、電子データを用いた一連の処理を実行する情報処理システムであって、所定の機能を提供する第１のプログラムと、該第１のプログラムからの処理の実行要求に応じて前記機能を実現する所定の処理を実行する１以上の第２のプログラムとを含むプログラム群を、前記機能毎に記憶するプログラム記憶手段と、前記一連の処理を実行するアプリケーション毎に、該アプリケーションを識別する識別情報と、前記一連の処理を構成する各処理を実行する１以上の第２のプログラムを定義した一連の処理に関する情報とを関連付けて記憶するアプリ情報記憶手段と、前記情報処理システムに接続される１以上の機器のうちの一の機器から前記識別情報と、前記一連の処理に用いる電子データに関する情報とを含む要求を受け付ける受付手段と、前記受付手段により受け付けた前記要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を、前記要求に含まれる前記識別情報に関連付けて前記アプリ情報記憶手段に記憶されている前記一連の処理に関する情報に定義された１以上の第２のプログラムにそれぞれ対応する第１のプログラムそれぞれが、該１以上の第２のプログラムのうちの対応する前記第２のプログラムに処理の実行を要求することにより実行する処理実行手段と、を有する。
【発明の効果】
【０００８】
本発明の一実施形態によれば、一連の処理を行うためのアプリケーション開発を支援することができる。
【図面の簡単な説明】
【０００９】
【図１】第一の実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【図２】第一の実施形態に係るサービス提供システムの一例のハードウェア構成を示す図である。
【図３】第一の実施形態に係る機器の一例のハードウェア構成を示す図である。
【図４】第一の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【図５】共通Ｉ／Ｆ及び固有Ｉ／Ｆの一例を示す図である。
【図６】第一の実施形態に係るロジック処理部の一例の機能構成を示す図である。
【図７】型変換情報テーブルの一例を示す図である。
【図８】処理フロー情報の一例を示す図である。
【図９】第一の実施形態に係るスキャン配信サービスの全体処理の一例を示すシーケンス図である。
【図１０】画面情報の一例を示す図である。
【図１１】アプリ画面の一例を示す図である。
【図１２】第一の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【図１３】第二の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【図１４】第三の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【図１５】第四の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【図１６】第四の実施形態に係るスキャン配信サービスの全体処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１１】
［第一の実施形態］
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る情報処理システム１の一例のシステム構成を示す図である。
【００１２】
図１に示す情報処理システム１は、サービス提供システム１０と、機器２０と、外部ストレージシステム３０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１３】
サービス提供システム１０は、一台以上の情報処理装置で実現され、ネットワークＮ１を介して、クラウドサービス等の外部サービスと連携した一連の処理により実現される各種のサービスを提供する。
【００１４】
本実施形態に係るサービス提供システム１０が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【００１５】
なお、本実施形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、これに限られない。本実施形態は、例えば、ＡＳＰ（Application Service Provider）によって提供されるサービスやＷｅｂサービス等のネットワークを介して提供される各種の外部サービスに関して適用されても良い。
【００１６】
機器２０は、ユーザが使用する各種の電子機器である。すなわち、機器２０は、例えば、ＭＦＰ（Multifunction Peripheral）等の画像形成装置、ＰＣ（パーソナルコンピュータ）、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器２０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００１７】
なお、以降では、複数の機器２０について、各々を区別するときは、「機器２０１」、「機器２０２」等と添え字を用いて記載する。
【００１８】
外部ストレージシステム３０は、ネットワークＮ１を介してストレージサービス（又はオンラインストレージ）と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム３０のストレージの記憶領域を貸し出すサービスである。
【００１９】
なお、以降では、複数の外部ストレージシステム３０について、各々を区別するときは、「外部ストレージシステム３０１」、「外部ストレージシステム３０２」等と添え字を用いて記載する。また、外部ストレージシステム３０１により提供されるストレージサービスの名称を「ストレージＡ」、外部ストレージシステム３０１により提供されるストレージサービスの名称を「ストレージＢ」等とする。
【００２０】
なお、外部ストレージシステム３０は、複数台の情報処理装置によって実現されるシステムであっても良い。
【００２１】
また、図１に示す情報処理システム１の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム１には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム１０により提供される各種サービスを利用しても良い。
【００２２】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるサービス提供システム１０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係るサービス提供システム１０の一例のハードウェア構成を示す図である。
【００２３】
図２に示すサービス提供システム１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４とを有する。また、サービス提供システム１０は、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１６と、通信Ｉ／Ｆ１７と、ＨＤＤ（Hard Disk Drive）１８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００２４】
入力装置１１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１２は、ディスプレイ等を含み、サービス提供システム１０による処理結果を表示する。なお、入力装置１１及び表示装置１２の少なくとも一方は、必要なときにサービス提供システム１０に接続して利用する形態であっても良い。
【００２５】
通信Ｉ／Ｆ１７は、サービス提供システム１０をネットワークＮ１に接続するインタフェースである。これにより、サービス提供システム１０は、通信Ｉ／Ｆ１７を介して通信を行うことができる。
【００２６】
ＨＤＤ１８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１８に格納されるプログラムやデータには、サービス提供システム１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２７】
なお、サービス提供システム１０は、ＨＤＤ１８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１８は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。
【００２８】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。これにより、サービス提供システム１０は、外部Ｉ／Ｆ１３を介して記録媒体１３ａの読み取りや書き込みを行うことができる。記録媒体１３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２９】
ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、サービス提供システム１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００３０】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００３１】
本実施形態に係るサービス提供システム１０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３２】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０の一例のハードウェア構成を示す図である。
【００３３】
図３に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３４】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３５】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３６】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３７】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００３８】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３９】
＜サービス提供システムが提供するサービス＞
ここで、本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【００４０】
本実施形態に係るサービス提供システム１０は、例えば、機器２０において原稿をスキャンして生成された電子ファイルのデータ形式を、ＰＤＦ（Portable Document Format）形式に変換して、外部ストレージシステム３０に保存するサービスを提供する。
【００４１】
本実施形態に係るサービス提供システム１０は、このようにスキャンして生成された電子ファイルをＰＤＦ形式に変換して外部ストレージシステム３０に配信（スキャン配信）するサービスを提供するものとして説明する。以降では、このようなサービスを「スキャン配信サービス」とも表す。なお、本実施形態では、機器２０において原稿をスキャンして生成された電子ファイルのデータ形式をＰＤＦ形式に変換する場合について説明するが、これに限られず、当該電子ファイルのデータ形式を任意のデータ形式に変換しても良い。
【００４２】
ただし、サービス提供システム１０が提供するサービスは、これに限られない。サービス提供システム１０は、例えば、外部ストレージシステム３０に保存されている電子ファイルを、機器２０で印刷するサービス（クラウドプリントサービス）を提供しても良い。また、サービス提供システム１０は、機器２０において原稿をスキャンして生成された電子ファイルを、ＯＣＲ（Optical Character Reader）処理して、外部ストレージシステム３０に保存するサービスを提供しても良い。
【００４３】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、第一の実施形態に係る情報処理システム１の一例の機能構成を示す図である。
【００４４】
本実施形態に係る機器２０は、例えばＣＰＵ３１等により実行されるブラウザ２１０を有する。機器２０のユーザは、ブラウザ２１０を介して、サービス提供システム１０が提供するサービスを利用することができる。このように、本実施形態に係る機器２０では、ブラウザ２１０が搭載されていれば良い。
【００４５】
本実施形態に係るサービス提供システム１０は、入出力サービス処理部１１０と、Ｗｅｂサービス処理部１２０と、ドキュメントサービス部１３０と、外部サービス連携部１４０とを有する。これら各部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００４６】
また、本実施形態に係るサービス提供システム１０は、アプリ情報記憶部１５０と、画面情報記憶部１６０を有する。これら各記憶部は、ＨＤＤ１８により実現可能である。なお、アプリ情報記憶部１５０及び画面情報記憶部１６０の少なくとも一方が、サービス提供システム１０とネットワークを介して接続される記憶装置等により実現されていても良い。
【００４７】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２と、データＩ／Ｆ部１１３とを有する。
【００４８】
アプリ管理部１１１は、アプリ情報記憶部１５０に記憶されているアプリ情報１０００を管理する。なお、アプリ情報１０００とは、サービス提供システム１０が各種のサービスを提供するためのアプリケーションである。すなわち、サービス提供システム１０が提供する各種のサービスは、アプリ情報１０００により提供される。
【００４９】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００には、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義されている。
【００５０】
ロジック処理部１１２は、Ｗｅｂサービス処理部１２０からの要求に応じて、アプリ管理部１１１から処理フロー情報１１００を取得する。そして、ロジック処理部１１２は、取得した処理フロー情報１１００に基づいて、サービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係る情報処理システム１では、サービス提供システム１０により各種のサービスが提供される。なお、ロジック処理部１１２の詳細については後述する。
【００５１】
データＩ／Ｆ部１１３は、Ｗｅｂサービス処理部１２０からの要求に応じて、外部サービス連携部１４０のデータ処理部１４２に各種の要求を行う。例えば、データＩ／Ｆ部１１３は、外部サービス連携部１４０のデータ処理部１４２にフォルダ一覧の取得要求を行う。
【００５２】
Ｗｅｂサービス処理部１２０は、ブラウザ２１０からの要求に応じて、画面情報記憶部１６０に記憶されている画面情報２０００を返信する。なお、画面情報２０００は、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）を表示させるための情報であり、例えばＨＴＭＬ（HyperText Markup Language）等の形式で定義されている。
【００５３】
これにより、機器２０の操作パネル２２には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００５４】
また、Ｗｅｂサービス処理部１２０は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に各種の要求を行う。例えば、Ｗｅｂサービス処理部１２０は、ブラウザ２１０からの要求に応じて、スキャン配信サービスの処理実行要求を入出力サービス処理部１１０のロジック処理部１１２に行う。
【００５５】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる処理を実行するためのプログラム（モジュール）群である。ドキュメントサービス部１３０には、電子ファイルのデータ形式をＰＤＦ形式に変換するＰＤＦ変換部１３１が含まれる。
【００５６】
なお、ドキュメントサービス部１３０には、これ以外にも、例えば、電子ファイルを機器２０で印刷可能なデータ形式（印刷データ）に変換する印刷変換部、電子ファイルを圧縮又は解凍する圧縮／解凍処理部等の各種のプログラムが含まれていても良い。
【００５７】
外部サービス連携部１４０は、ロジック処理部１１２やデータＩ／Ｆ部１１３からの要求に応じて、外部ストレージシステム３０に各種の要求を行う。
【００５８】
本実施形態に係るサービス提供システム１０は、外部ストレージシステム３０毎に、当該外部ストレージシステム３０に対応する外部サービス連携部１４０を有する。すなわち、本実施形態に係るサービス提供システム１０は、外部ストレージシステム３０１に各種の要求を行うための外部サービス連携部１４０１、外部ストレージシステム３０２に各種の要求を行うための外部サービス連携部１４０２等を有する。
【００５９】
このように、本実施形態に係るサービス提供システム１０は、当該サービス提供システム１０と連携して処理を行う外部ストレージシステム３０毎に、それぞれ対応する外部サービス連携部１４０を有する。なお、以降では、複数の外部サービス連携部１４０について、各々を区別するときは、上記のように、「外部サービス連携部１４０１」、「外部サービス連携部１４０２」等と添え字を用いて記載する。
【００６０】
ここで、外部サービス連携部１４０は、ロジック処理部１１２からの要求を受信するファイル処理部１４１と、データＩ／Ｆ部１１３からの要求を受信するデータ処理部１４２とを有する。
【００６１】
ファイル処理部１４１は、外部ストレージシステム３０に保存されている電子ファイルに対する操作（例えば、取得、保存、編集等）を行うためのＡＰＩ（Application Programming Interface）が定義された共通Ｉ／Ｆ１４１１及び固有Ｉ／Ｆ１４１２を有する。
【００６２】
共通Ｉ／Ｆ１４１１は、複数の外部ストレージシステム３０間で共通に利用できるＡＰＩであり、例えば図５（ａ）に示すＡＰＩが挙げられる。すなわち、ファイル処理部１４１の共通Ｉ／Ｆ１４１１は、全ての外部ストレージシステム３０が利用できるファイル操作に関する機能（例えば、電子ファイルの取得、保存等）を利用するためのＡＰＩ群である。
【００６３】
一方、固有Ｉ／Ｆ１４１２は、特定の外部ストレージシステム３０において利用できるＡＰＩであり、例えば図５（ｂ）に示すＡＰＩが挙げられる。すなわち、ファイル処理部１４１の固有Ｉ／Ｆ１４１２は、特定の外部ストレージシステム３０において利用できるファイル操作に関する機能（例えば、電子ファイルの編集等）を利用するためのＡＰＩ群である。
【００６４】
したがって、共通Ｉ／Ｆ１４１１は、全ての外部サービス連携部１４０に対して同様に定義される。一方で、固有Ｉ／Ｆ１４１２は、当該固有Ｉ／Ｆ１４１２で定義されるＡＰＩが利用可能な特定の外部ストレージシステム３０に対応する外部サービス連携部１４０に対して定義される。
【００６５】
また、データ処理部１４２は、外部ストレージシステム３０に保存されている電子ファイルの書誌情報等のメタデータ（例えば、ファイル一覧やフォルダ一覧等）を取得等するためのＡＰＩが定義された共通Ｉ／Ｆ１４２１及び固有Ｉ／Ｆ１４２２を有する。
【００６６】
共通Ｉ／Ｆ１４２１は、複数の外部ストレージシステム３０間で共通に利用できるＡＰＩであり、例えば図５（ｃ）に示すＡＰＩが挙げられる。すなわち、データ処理部１４２の共通Ｉ／Ｆ１４２１は、全ての外部ストレージシステム３０で利用できるメタデータ取得等の機能（例えば、ファイル一覧やフォルダ一覧の取得等）を利用するためのＡＰＩ群である。
【００６７】
一方、固有Ｉ／Ｆ１４２２は、特定の外部ストレージシステム３０において利用できるＡＰＩであり、例えば図５（ｄ）に示すＡＰＩが挙げられる。すなわち、データ処理部１４２の固有Ｉ／Ｆ１４２２は、特定の外部ストレージシステム３０において利用できるメタデータ取得等の機能（例えば、画像ファイル一覧の取得等）を利用するためのＡＰＩ群である。
【００６８】
したがって、共通Ｉ／Ｆ１４２１は、全ての外部サービス連携部１４０に対して同様に定義される。一方で、固有Ｉ／Ｆ１４２２は、当該固有Ｉ／Ｆ１４２２で定義されるＡＰＩが利用可能な特定の外部ストレージシステム３０に対応する外部サービス連携部１４０に対して定義される。
【００６９】
このように、本実施形態に係るサービス提供システム１０は、当該サービス提供システム１０と連携して処理を行う外部ストレージシステム３０毎に、それぞれの外部ストレージシステム３０に対応する外部サービス連携部１４０を有する。このため、例えば、サービス提供システム１０の連携先となる外部ストレージシステム３０を追加や削除（以降、「追加等）と表す。）する場合には、この外部ストレージシステム３０に対応する外部サービス連携部１４０を追加等すれば良い。
【００７０】
したがって、本実施形態に係るサービス提供システム１０では、連携先となる外部ストレージシステム３０の追加等に伴う影響を局所化することができる。換言すれば、本実施形態に係るサービス提供システム１０では、他の機能構成（例えば、入出力サービス処理部１１０やＷｅｂサービス処理部１２０等）に影響を与えることなく、連携先となる外部ストレージシステム３０の追加等を行うことができる。
【００７１】
このため、本実施形態に係るサービス提供システム１０では、当該サービス提供システム１０の連携先となる外部ストレージシステム３０を追加等した場合における開発工数を削減することができる。なお、外部サービス連携部１４０の追加等は、ＳＤＫ（Software Development Kit）を用いて行うことができる。
【００７２】
また、外部サービス連携部１４０は、共通Ｉ／Ｆ１４１１と固有Ｉ／Ｆ１４１２とを異なるモジュール等により実現している。また、共通Ｉ／Ｆ１４１１と固有Ｉ／Ｆ１４１２で定義されるＡＰＩは、外部サービス名を指定することで利用することができる（すなわち、「外部サービス名」が可変部分となっている。）。
【００７３】
したがって、本実施形態に係るサービス提供システム１０では、当該サービス提供システム１０の連携先となる外部ストレージシステム３０を追加する場合には、他の外部サービス連携部１４０に含まれる共通Ｉ／Ｆ１４１１を再利用することができる。換言すれば、連携先となる外部ストレージシステム３０を追加する場合には、固有Ｉ／Ｆ１４１２のみ開発すれば良い。これにより、本実施形態に係るサービス提供システム１０では、連携先となる外部ストレージシステム３０を追加する場合における開発工数をさらに削減することができる。なお、このことは共通Ｉ／Ｆ１４２１と固有Ｉ／Ｆ１４２２に関しても同様である。
【００７４】
アプリ情報記憶部１５０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を一意に識別するアプリＩＤと関連付けてアプリ情報記憶部１５０に記憶されている。
【００７５】
ここで、アプリ情報１０００には、１以上の処理フロー情報１１００が含まれる。例えば、スキャン配信サービスを提供するアプリ情報１０００には、ストレージＡにスキャン配信するサービスを実現する処理フロー情報１１００１、ストレージＢにスキャン配信するサービスを実現する処理フロー情報１１００２等が含まれる。
【００７６】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。なお、処理フロー情報１１００の詳細については後述する。
【００７７】
画面情報記憶部１６０は、画面情報２０００を記憶する。画面情報２０００は、アプリＩＤと、アプリ情報１０００において処理フロー情報１１００を一意に識別するフローＩＤとに関連付けて画面情報記憶部１６０に記憶されている。なお、画面情報２０００の詳細については後述する。
【００７８】
ここで、ロジック処理部１１２の詳細な機能構成について、図６を参照しながら説明する。図６は、第一の実施形態に係るロジック処理部１１２の一例の機能構成を示す図である。
【００７９】
本実施形態に係るロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。また、本実施形態に係るロジック処理部１１２は、型変換情報テーブル３０００を利用する。
【００８０】
フロー実行部３０１は、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０から処理実行要求を受信すると、アプリ管理部１１１からアプリ情報１０００に含まれる処理フロー情報１１００を取得する。そして、フロー実行部３０１は、取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００８１】
ここで、処理フロー情報１１００に基づく一連の処理は、コンポーネントにより生成されるオペレーションが実行する処理を組み合わせることにより実現される。
【００８２】
なお、コンポーネントとは、１以上のオペレーションを生成するとともに、生成したオペレーションに処理の実行を要求するプログラム（モジュール）であり、例えばクラスや関数等で定義される。また、オペレーションとは、所定の処理を実行するプログラム（モジュール）であり、例えばコンポーネントのサブクラスやサブ関数（サブルーチン）等で定義される。なお、オペレーションは、コンポーネントと同様に、クラスや関数等で定義されても良い。
【００８３】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを返信する。
【００８４】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、ＰＤＦ変換オペレーション１３１１を生成するための変換コンポーネント１３１０が含まれる。また、コンポーネント群３０３には、ストレージＡ配信オペレーション１３２１やストレージＢ配信オペレーション１３２２を生成するための配信コンポーネント１３２０が含まれる。
【００８５】
ここで、ＰＤＦ変換オペレーション１３１１は、電子データのデータ形式をＰＤＦ形式に変換する処理を行うためのプログラム（モジュール）である。また、ストレージＡ配信オペレーション１３２１は、ストレージＡの指定されたフォルダに電子ファイルを保存（アップロード）する処理を行うためのプログラム（モジュール）である。同様に、ストレージＢ配信オペレーション１３２２は、ストレージＢの指定されたフォルダに電子ファイルを保存（アップロード）する処理を行うためのプログラム（モジュール）である。
【００８６】
このように、コンポーネント及びオペレーションをそれぞれ異なるプログラムとすることで、各オペレーション間で共通する処理はコンポーネントが行うようにすることができる。例えば、ストレージＡ配信オペレーション１３２１及びストレージＢ配信オペレーション１３２２で共通する処理（例えば、外部サービスの認証処理）を配信コンポーネント１３２０が行うようにすることができる。
【００８７】
コンポーネント群３０３に含まれる各コンポーネントは、例えば、サービス提供システム１０の起動時に、コンポーネント管理部３０２により生成される。なお、コンポーネントの生成とは、例えばクラスで定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００８８】
なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、ストレージＡから指定された電子ファイルを取得（ダウンロード）する処理を行うストレージＡ取得オペレーションを生成するための取得コンポーネント等が含まれる。
【００８９】
ここで、本実施形態では、コンポーネント群には、機能（例えば、「外部サービスへの配信」機能や「ＰＤＦ変換」機能）毎に、当該機能を提供するコンポーネントが含まれるものとしたが、これに限られない。すなわち、コンポーネント群３０３には、例えば、ストレージＡ配信オペレーションやストレージＡ取得オペレーション等を生成するためのストレージＡコンポーネントが含まれていても良い。このように、コンポーネント群３０３には、外部サービス毎に、当該外部サービスにアップロードやダウンロードする処理を行うオペレーションを生成するコンポーネントが含まれていても良い。
【００９０】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩであり、コンポーネントを生成するためのＡＰＩと、オペレーションを生成して処理の実行を要求するためのＡＰＩとが含まれる。
【００９１】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、コンポーネントの追加等に伴う開発工数を削減することができる。
【００９２】
なお、コンポーネント管理部３０２は、例えばサービス提供システム１０の起動時に、コンポーネント共通Ｉ／Ｆ１３００により、コンポーネント群３０３に含まれる各コンポーネントを生成する。
【００９３】
型変換管理部３０４は、データ型の型変換を管理する。ここで、各オペレーションは、自身が扱えるデータ型が予め定まっている。したがって、型変換管理部３０４は、オペレーションからの要求に応じて、例えば図７に示す型変換情報テーブル３０００を参照して、型変換群３０５に含まれる型変換を生成する。
【００９４】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換とは、データ型の型変換処理を実行するプログラム（モジュール）であり、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスで定義された型変換を、メモリ（例えばＲＡＭ１４）上に展開することである。
【００９５】
ここで、データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【００９６】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する第１の型変換１４１０が含まれる。なお、型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換する第２の型変換等が含まれる。
【００９７】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換に対して処理の実行を要求するためのＡＰＩとが含まれる。
【００９８】
このように、各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【００９９】
ここで、本実施形態に係るスキャン配信サービスを実現する一連の処理（処理フロー）が定義された処理フロー情報１１００について、図８を参照しながら説明する。図８は、処理フロー情報の一例を示す図である。
【０１００】
図８に示す処理フロー情報１１００には、本実施形態に係るスキャン配信サービスを実現する一連の処理（処理フロー）を構成する各処理を示す処理定義が定義されている。なお、処理定義は、「コンポーネント名：オペレーション名？オプションパラメータ」の形式で定義される。
【０１０１】
図８に示す処理フロー情報１１００は、フローＩＤ１１０１と、処理定義１１０２と、処理定義１１０３とを含む。
【０１０２】
フローＩＤ１１０１は、アプリ情報１０００において処理フロー情報１１００を一意に識別する識別情報である。
【０１０３】
処理定義１１０２には、「ｃｏｎｖｅｒｓｉｏｎ：ｐｄｆ」が定義されており、変換コンポーネント１３１０のＰＤＦ変換オペレーション１３１１の処理を実行することが定義されている。
【０１０４】
処理定義１１０３には、「ｓｅｎｄ＿ｔｏ＿ｓｔｏｒａｇｅ：ｓｔｏｒａｇｅＡ」が定義されており、配信コンポーネント１３２０のストレージＡ配信オペレーション１３２１の処理を実行することが定義されている。
【０１０５】
また、処理定義１１０３には、オプションパラメータ「ｔａｒｇｅｔｆｏｌｄｅｒ=ｆｏｌｄｅｒ1」及び「ｆｉｌｅｎａｍｅ=ｓａｍｐｌｅ」が定義されている。すなわち、処理定義１１０３には、ストレージＡのフォルダ「ｆｏｌｄｅｒ1」に、ファイル名「ｓａｍｐｌｅ」で電子ファイルを保存（アップロード）することが定義されている。
【０１０６】
このように、処理フロー情報１１００には、当該処理フロー情報１１００のフローＩＤと、１以上の処理定義とが含まれる。これにより、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に含まれる処理定義に従った処理を各オペレーションにより実行することで、サービスを実現する一連の処理を実行することができる。
【０１０７】
なお、図８に示す処理フロー情報１１００に定義された各処理の実行順は、上から順に実行される。すなわち、図８に示す処理フロー情報１１００に基づく一連の処理（処理フロー）では、処理定義１１０２に定義された処理、処理定義１１０３に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報１１００には、例えば、各処理の実行順を示す情報が定義されていても良い。
【０１０８】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。以降では、機器２０のユーザが、ストレージＡにスキャン配信するスキャン配信サービスを利用する場合の全体的な処理について、図９を参照しながら説明する。図９は、第一の実施形態に係るスキャン配信サービスの全体処理の一例を示すシーケンス図である。
【０１０９】
まず、機器２０のブラウザ２１０は、スキャン配信サービスのアプリ画面の表示操作を受け付ける（ステップＳ９０１）。
【０１１０】
機器２０のブラウザ２１０は、当該表示操作を受け付けると、アプリ画面の表示要求をＷｅｂサービス処理部１２０に送信する（ステップＳ９０２）。すると、Ｗｅｂサービス処理部１２０は、当該アプリ画面を表示させるための画面情報２０００を画面情報記憶部１６０から取得し、ブラウザ２１０に返信する。
【０１１１】
ここで、スキャン配信サービスのアプリ画面を表示させるための画面情報２０００について、図１０を参照しながら説明する。図１０は、画面情報の一例を示す図である。
【０１１２】
図１０に示す画面情報２０００は、ＨＴＭＬ形式で定義された情報である。画面情報２０００には、ファイル名を入力するテキストボックスを表示するＩＮＰＵＴタグ２００１と、保存先フォルダの選択欄を表示するＳＥＬＥＣＴタグ２００２と、スキャン実行するためのボタンを表示するＢＵＴＴＯＮタグ２００３とが含まれる。
【０１１３】
これにより、後述するように、画面情報２０００のＳＥＬＥＣＴタグ２００２に、外部ストレージシステム３０から取得したフォルダ一覧に含まれる各フォルダの情報を選択要素として定義することで、スキャン配信サービスのアプリ画面がされる。
【０１１４】
機器２０のブラウザ２１０は、画面情報２０００を受信すると、アプリ画面の表示用情報の取得要求をＷｅｂサービス処理部１２０に送信する（ステップＳ９０３）。
【０１１５】
なお、表示用情報とは、例えば、アプリ画面の選択欄に含まれる各選択要素のことである。本実施形態では、スキャン配信サービスにおける電子ファイルの配信先（保存先）となるストレージＡのフォルダ一覧を選択要素として取得する。
【０１１６】
Ｗｅｂサービス処理部１２０は、アプリ画面の表示用情報の取得要求を受信すると、当該取得要求をデータＩ／Ｆ部１１３に送信する（ステップＳ９０４）。
【０１１７】
データＩ／Ｆ部１１３は、当該取得要求を受信すると、ストレージＡのフォルダ一覧の取得要求を、外部サービス連携部１４０のデータ処理部１４２に送信する（ステップＳ９０５）。なお、データＩ／Ｆ部１１３は、フォルダ一覧の取得要求を、ストレージＡ（外部ストレージシステム３０１）に対応する外部サービス連携部１４０１のデータ処理部１４２に送信する。
【０１１８】
外部サービス連携部１４０のデータ処理部１４２は、フォルダ一覧の取得要求を受信すると、外部ストレージシステム３０にフォルダ一覧の取得要求を送信して、フォルダ一覧を取得する（ステップＳ９０６）。そして、データ処理部１４２は、取得したフォルダ一覧を、データＩ／Ｆ部１１３及びＷｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。
【０１１９】
なお、データ処理部１４２は、データＩ／Ｆ部１１３からフォルダ一覧の取得要求を受信すると、共通Ｉ／Ｆ１４２１又は固有Ｉ／Ｆ１４２２に定義されたＡＰＩを利用して、該当の外部ストレージシステム３０にフォルダ一覧の取得を要求する。すなわち、データ処理部１４２は、例えば、「ｓｔｏｒａｇｅＡ／ｄａｔａ／ｆｏｌｄｅｒｓ」として共通Ｉ／Ｆ１４２１に定義されているＡＰＩを用いて外部ストレージシステム３０１からフォルダ一覧の取得を要求する。
【０１２０】
機器２０のブラウザ２１０は、フォルダ一覧を受信すると、画面情報２０００と、当該フォルダ一覧とに基づいて、アプリ画面を操作パネル２２に表示させる（ステップＳ９０７）。すなわち、ブラウザ２１０は、図１０に示す画面情報２０００のＳＥＬＥＣＴタグ２００２に、例えば、フォルダ一覧に含まれる各フォルダＩＤを値（ＶＡＬＵＥ）としてＯＰＴＩＯＮタグに定義した上で、画面情報２０００に基づくアプリ画面を表示させる。
【０１２１】
これにより、機器２０の操作パネル２２には、ブラウザ２１０により、図１１に示すアプリ画面２１００が表示される。図１１は、アプリ画面の一例を示す図である。
【０１２２】
図１１に示すアプリ画面２１００は、ストレージＡにスキャン配信するスキャン配信サービスを利用するための画面である。アプリ画面２１００には、電子ファイルのファイル名を入力するためのテキストボックス２１０１と、ストレージＡの保存先フォルダを選択するための選択欄２１０２と、スキャン実行するためのスキャンボタン２１０３とが含まれる。
【０１２３】
機器２０のブラウザ２１０は、ユーザによりテキストボックス２１０１にファイル名が入力され、かつ、選択欄２１０２から保存先フォルダが選択された上で、スキャンボタン２１０３が押下されると、当該操作を受け付ける（ステップＳ９０８）。
【０１２４】
次に、機器２０のブラウザ２１０は、当該操作を受け付けると、スキャナ２６により原稿を読み取って、テキストボックス２１０１に入力されたファイル名が付与された電子ファイル（画像ファイル）を生成する（ステップＳ９０９）。
【０１２５】
次に、機器２０のブラウザ２１０は、電子ファイルが生成されると、当該電子ファイルと、選択欄２１０２から選択された保存先フォルダのフォルダＩＤとを含む処理フローの実行要求をＷｅｂサービス処理部１２０に送信する（ステップＳ９１０）。
【０１２６】
Ｗｅｂサービス処理部１２０は、処理フローの実行要求を受信すると、当該実行要求に、ストレージＡにスキャン配信するスキャン配信サービスを提供するアプリ情報１０００のアプリＩＤと、当該サービスを実現する処理フロー情報１１００のフローＩＤとを含める。そして、Ｗｅｂサービス処理部１２０は、電子ファイルと、保存先フォルダのフォルダＩＤと、アプリＩＤと、フローＩＤとを含む処理フローの実行要求をロジック処理部１１２に送信する（ステップＳ９１１）。
【０１２７】
ここで、Ｗｅｂサービス処理部１２０は、例えば、アプリ画面２１００やスキャンボタン２１０３に関連付けられているアプリＩＤ及びフローＩＤを取得して、処理フローの実行要求に含めれば良い。すなわち、ブラウザ２１０は、例えば、アプリ画面２１００やスキャンボタン２１０３の識別情報（例えば、画面ＩＤやボタンＩＤ等）を含む処理フローの実行要求をＷｅｂサービス処理部１２０に送信する。そして、Ｗｅｂサービス処理部１２０は、当該識別情報に関連付けられたアプリＩＤ及びフローＩＤを取得して、当該アプリＩＤ及びフローＩＤを処理フローの実行要求に含めれば良い。
【０１２８】
ただし、これに限られず、例えば、ステップＳ９１０において、ブラウザ２１０により、上記のアプリＩＤ及びフローＩＤを含む処理フローの実行要求がＷｅｂサービス処理部１２０に送信されても良い。
【０１２９】
次に、ロジック処理部１１２は、処理フローの実行要求を受信すると、処理フローの実行処理を行う（ステップＳ９１２）。すなわち、ロジック処理部１１２は、当該実行要求に含まれるアプリＩＤ及びフローＩＤに対応する処理フロー情報１１００を取得して、当該処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。なお、処理フローの実行処理の詳細については後述する。
【０１３０】
そして、ロジック処理部１１２は、当該一連の処理の処理結果をブラウザ２１０に返信する。
【０１３１】
これにより、本実施形態に係る情報処理システム１では、サービス提供システム１０により、処理フロー情報１１００に基づく一連の処理（処理フロー）により実現される各種のサービスが提供される。
【０１３２】
以降では、図９のステップＳ９１２の処理の詳細について、図１２を参照しながら説明する。図１２は、第一の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【０１３３】
フロー実行部３０１は、処理フローの実行要求を受信すると、当該実行要求からアプリＩＤ及びフローＩＤを取得する。そして、フロー実行部３０１は、当該アプリＩＤ及びフローＩＤを含む処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ１２０１）。すると、アプリ管理部１１１は、当該取得要求に含まれるアプリＩＤ及びフローＩＤに対応する処理フロー情報１１００をアプリ情報記憶部１５０から取得して、フロー実行部３０１に返信する。
【０１３４】
ここで、以降では、アプリ管理部１１１は、図８に示す処理フロー情報１１００をフロー実行部３０１に返信したものとして説明する。なお、図８に示す処理フロー情報１１００におけるオプションパラメータ「ｔａｒｇｅｔｆｏｌｄｅｒ=ｆｏｌｄｅｒ1」及び「ｆｉｌｅｎａｍｅ=ｓａｍｐｌｅ」は、例えば、処理フロー情報の取得要求に含まれる保存先フォルダのフォルダＩＤ及びファイル名に基づいて、アプリ管理部１１１により定義される。ただし、当該オプションパラメータは、フロー実行部３０１により定義されても良い。
【０１３５】
次に、フロー実行部３０１は、アプリ管理部１１１から受信した処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１２０２）。すなわち、フロー実行部３０１は、図８に示す処理フロー情報１１００の処理定義１１０２を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１３６】
すると、コンポーネント管理部３０２は、処理定義１１０２のコンポーネント名「ｃｏｎｖｅｒｓｉｏｎ」に対応する変換コンポーネント１３１０をフロー実行部３０１に返信する。なお、コンポーネント管理部３０２は、例えば、変換コンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信すれば良い。
【０１３７】
次に、フロー実行部３０１は、コンポーネント管理部３０２から変換コンポーネント１３１０が返信されると、図８に示す処理フロー情報１１００の処理定義１１０２を指定した処理実行要求を変換コンポーネント１３１０に送信する（ステップＳ１２０３）。
【０１３８】
ここで、当該処理実行要求には、ブラウザ２１０から受信した電子ファイルを示すデータ（データ型「ＩｎｐｕｔＳｔｒｅａｍ」）が含まれる。このように、フロー実行部３０１は、ブラウザ２１０から受信した電子ファイルを、「データ」として（データ型を意識することなく）、変換コンポーネント１３１０に送信する。以降では、このようにデータ型を意識することなく送信される電子ファイル等を「データ」と表す。
【０１３９】
変換コンポーネント１３１０は、処理実行要求を受信すると、当該処理実行要求に指定された処理定義１１０２のオペレーション名「ｐｄｆ」に対応するＰＤＦ変換オペレーション１３１１を生成する（ステップＳ１２０４）。
【０１４０】
変換コンポーネント１３１０は、ＰＤＦ変換オペレーション１３１１を生成すると、処理実行要求を当該ＰＤＦ変換オペレーション１３１１に送信する（ステップＳ１２０５）。なお、変換コンポーネント１３１０は、ステップＳ１２０３においてフロー実行部３０１から受信した処理実行要求をＰＤＦ変換オペレーション１３１１に送信すれば良い。
【０１４１】
ＰＤＦ変換オペレーション１３１１は、処理実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１２０６）。ここで、当該型変換要求には、処理実行要求に含まれるデータと、ＰＤＦ変換オペレーション１３１１が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１４２】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか中をチェックする（ステップＳ１２０７）。
【０１４３】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０１４４】
すると、型変換管理部３０４は、型変換情報テーブル３０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」のデータをデータ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０を生成する（ステップＳ１２０８）。
【０１４５】
型変換管理部３０４は、第１の型変換１４１０を生成すると、型変換処理の実行要求を当該第１の型変換１４１０に送信する（ステップＳ１２０９）。ここで、当該実行要求には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」のデータが含まれる。
【０１４６】
第１の型変換１４１０は、型変換処理の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ１２１０）。そして、第１の型変換１４１０は、型変換後のデータを型変換管理部３０４に返信する。
【０１４７】
型変換管理部３０４は、型変換後のデータを受信すると、当該データをＰＤＦ変換オペレーション１３１１に送信する（ステップＳ１２１１）。
【０１４８】
ＰＤＦ変換オペレーション１３１１は、型変換管理部３０４から受信したデータに対して処理を実行する（ステップＳ１２１２）。すなわち、ＰＤＦ変換オペレーション１３１１は、ドキュメントサービス部１３０のＰＤＦ変換部１３１により、当該データにより示される電子ファイルのデータ形式をＰＤＦ形式に変換する。
【０１４９】
そして、ＰＤＦ変換オペレーション１３１１は、処理結果を示すデータを、変換コンポーネント１３１０を介して、フロー実行部３０１に返信する。なお、ここで返信されるデータは、ＰＤＦ変換オペレーション１３１１によりＰＤＦ形式に変換された電子ファイルを示すデータ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」）である。
【０１５０】
次に、フロー実行部３０１は、ステップＳ１２０１においてアプリ管理部１１１から受信した処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１２１３）。すなわち、フロー実行部３０１は、図８に示す処理フロー情報１１００の処理定義１１０３を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１５１】
すると、コンポーネント管理部３０２は、処理定義１１０３のコンポーネント名「ｓｅｎｄ＿ｔｏ＿ｓｔｏｒａｇｅ」に対応する配信コンポーネント１３２０をフロー実行部３０１に返信する。なお、コンポーネント管理部３０２は、例えば、配信コンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信すれば良い。
【０１５２】
次に、フロー実行部３０１は、コンポーネント管理部３０２から配信コンポーネント１３２０が返信されると、図８に示す処理フロー情報１１００の処理定義１１０３を指定した処理実行要求を配信コンポーネント１３２０に送信する（ステップＳ１２１４）。
【０１５３】
ここで、当該処理実行要求には、ＰＤＦ変換オペレーション１３１１による処理結果を示すデータ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」）が含まれる。
【０１５４】
配信コンポーネント１３２０は、処理実行要求を受信すると、当該処理実行要求に指定された処理定義１１０３のオペレーション名「ｓｔｏｒａｇｅＡ」に対応するストレージＡ配信オペレーション１３２１を生成する（ステップＳ１２１５）。
【０１５５】
配信コンポーネント１３２０は、ストレージＡ配信オペレーション１３２１を生成すると、処理実行要求を当該ストレージＡ配信オペレーション１３２１に送信する（ステップＳ１２１６）。なお、配信コンポーネント１３２０は、ステップＳ１２１４においてフロー実行部３０１から受信した処理実行要求をストレージＡ配信オペレーション１３２１に送信すれば良い。
【０１５６】
ストレージＡ配信オペレーション１３２１は、処理実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１２１７）。ここで、当該型変換要求には、処理実行要求に含まれるデータと、ストレージＡ配信オペレーション１３２１が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１５７】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１２１８）。
【０１５８】
ここで、型変換要求に含まれるデータのデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」であり、指定されたデータ型も「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【０１５９】
すると、型変換管理部３０４は、型変換要求に含まれるデータをストレージＡ配信オペレーション１３２１に送信する（ステップＳ１２１９）。このように、データ型のチェック（ステップＳ１２１８の処理）において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部３０４は、型変換の生成を行わない。
【０１６０】
ストレージＡ配信オペレーション１３２１は、型変換管理部３０４から受信したデータに対して処理を実行する（ステップＳ１２２０）。すなわち、ストレージＡ配信オペレーション１３２１は、外部サービス連携部１４０１のファイル処理部１４１により、当該データにより示される電子ファイル（ＰＤＦ形式の電子ファイル）を、外部ストレージシステム３０１の指定されたフォルダに保存する。
【０１６１】
より具体的には、ストレージＡ配信オペレーション１３２１は、例えば、「ｓｔｏｒａｇｅＡ／ｐｒｏｃｅｓｓ／ｆｏｌｄｅｒ」として共通Ｉ／Ｆ１４１１に定義されているＡＰＩを用いて、外部ストレージシステム３０１に電子ファイルを保存する。
【０１６２】
そして、ストレージＡ配信オペレーション１３２１は、処理結果を示すデータを、配信コンポーネント１３２０を介して、フロー実行部３０１に返信する。なお、ここで返信されるデータは、ストレージＡ配信オペレーション１３２１により外部ストレージシステム３０１に電子ファイルが保存されたことを示すデータである。
【０１６３】
以上により、本実施形態に係る情報処理システム１では、サービス提供システム１０が提供する各種のサービスを実現する一連の処理（処理フロー）が実行される。このとき、本実施形態に係るサービス提供システム１０は、コンポーネントにより生成されたオペレーションが各処理を実行することで、一連の処理を実行する。
【０１６４】
したがって、本実施形態に係るサービス提供システム１０では、オペレーションにより実行される処理を組み合わせることで、様々なサービスを提供することができる。このため、例えば、アプリケーション（アプリ情報１０００）の開発者等は、コンポーネント名と、オペレーション名とを処理フロー情報１１００に定義することで、様々なサービスを提供するアプリケーションを簡易に開発することができる。
【０１６５】
［第二の実施形態］
次に、第二の実施形態について説明する。第二の実施形態に係るサービス提供システム１０では、一連の処理に含まれる各処理を実行する際に、この処理の実行に必要なコンポーネント及びオペレーションを生成する点が第一の実施形態と異なる。したがって、第二の実施形態に係るサービス提供システム１０では、当該サービス提供システム１０の起動時にコンポーネントを生成しないものとする。
【０１６６】
これにより、第二の実施形態に係るサービス提供システム１０では、処理フローの実行に必要なコンポーネントが生成されるため、メモリ（例えば、ＲＡＭ１４）等のハードウェア資源を効率的に利用することができる。
【０１６７】
なお、第二の実施形態において、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。
【０１６８】
＜処理の詳細＞
以降では、本実施形態に係る処理フローの実行処理の詳細について、図１３を参照しながら説明する。図１３は、第二の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【０１６９】
フロー実行部３０１は、アプリ管理部１１１から処理フロー情報１１００を受信すると、当該処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１３０１）。
【０１７０】
なお、フロー実行部３０１は、図８に示す処理フロー情報１１００をアプリ管理部１１１から受信したものとする。この場合、フロー実行部は、図８に示す処理フロー情報１１００の処理定義１１０２を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１７１】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、当該取得要求に含まれる処理定義１１０２のコンポーネント名「ｃｏｎｖｅｒｓｉｏｎ」に対応する変換コンポーネント１３１０を生成する（ステップＳ１３０２）。
【０１７２】
次に、変換コンポーネント１３１０は、コンポーネント管理部３０２により生成されると、処理定義１１０２のオペレーション名「ｐｄｆ」に対応するＰＤＦ変換オペレーション１３１１を生成する（ステップＳ１３０３）。
【０１７３】
そして、コンポーネント管理部３０２は、生成した変換コンポーネント１３１０をフロー実行部３０１に返信する。
【０１７４】
フロー実行部３０１は、コンポーネント管理部３０２から変換コンポーネント１３１０が返信されると、図８に示す処理フロー情報１１００の処理定義１１０２を指定した処理実行要求を変換コンポーネント１３１０に送信する（ステップＳ１３０４）。ここで、当該処理実行要求には、ブラウザ２１０から受信した電子ファイルを示すデータが含まれる。
【０１７５】
変換コンポーネント１３１０は、フロー実行部３０１から処理実行要求を受信すると、当該処理実行要求をＰＤＦ変換オペレーション１３１１に送信する（ステップＳ１３０５）。
【０１７６】
以降のステップＳ１２０６〜ステップＳ１２１２の処理は、第一の実施形態と同様であるため、その説明を省略する。
【０１７７】
フロー実行部３０１は、ステップＳ１２０１においてアプリ管理部１１１から受信した処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１３０６）。すなわち、フロー実行部３０１は、図８に示す処理フロー情報１１００の処理定義１１０３を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１７８】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、当該取得要求に含まれる処理定義１１０３のコンポーネント名「ｓｅｎｄ＿ｔｏ＿ｓｔｏｒａｇｅ」に対応する配信コンポーネント１３２０を生成する（ステップＳ１３０７）。
【０１７９】
次に、配信コンポーネント１３２０は、コンポーネント管理部３０２により生成されると、処理定義１１０４のオペレーション名「ｓｔｏｒａｇｅＡ」に対応するストレージＡ配信オペレーション１３２１を生成する（ステップＳ１３０８）。
【０１８０】
そして、コンポーネント管理部３０２は、生成した配信コンポーネント１３２０をフロー実行部３０１に返信する。
【０１８１】
フロー実行部３０１は、コンポーネント管理部３０２から配信コンポーネント１３２０が返信されると、図８に示す処理フロー情報１１００の処理定義１１０３を指定した処理実行要求を配信コンポーネント１３２０に送信する（ステップＳ１３０９）。ここで、当該処理実行要求には、ＰＤＦ変換オペレーション１３１１による処理結果を示すデータが含まれる。
【０１８２】
配信コンポーネント１３２０は、フロー実行部３０１から処理実行要求を受信すると、当該処理実行要求をストレージＡ配信オペレーション１３２１に送信する（ステップＳ１３１０）。
【０１８３】
以降のステップＳ１２１７〜ステップＳ１２２０の処理は、第一の実施形態と同様であるため、その説明を省略する。
【０１８４】
以上により、本実施形態に係る情報処理システム１では、サービス提供システム１０が提供する各種のサービスを実現する一連の処理（処理フロー）が実行される。このとき、本実施形態に係るサービス提供システム１０は、一連の処理に含まれる各処理を実行する際に、この処理の実行に必要なコンポーネント及びオペレーションを生成する。
【０１８５】
これにより、本実施形態に係るサービス提供システム１０では、処理フローの実行に不要なコンポーネント及びオペレーションは生成されない。したがって、本実施形態に係るサービス提供システム１０では、メモリ（例えば、ＲＡＭ１４）等のハードウェア資源を効率的に利用することができるようになる。
【０１８６】
［第三の実施形態］
次に、第三の実施形態について説明する。第三の実施形態に係るサービス提供システム１０では、処理フローを実行する際に、当該処理フローの実行に必要なコンポーネント及びオペレーションを生成する点が第二の実施形態と異なる。
【０１８７】
これにより、第三の実施形態に係るサービス提供システム１０では、第二の実施形態と同様に、メモリ（例えば、ＲＡＭ１４）等のハードウェア資源を効率的に利用することができる。
【０１８８】
なお、第三の実施形態において、第二の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第二の実施形態と同一の符号を用いて、その説明を省略する。
【０１８９】
＜処理の詳細＞
以降では、本実施形態に係る処理フローの実行処理の詳細について、図１４を参照しながら説明する。図１４は、第三の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【０１９０】
フロー実行部３０１は、アプリ管理部１１１から処理フロー情報１１００を受信すると、当該処理フロー情報１１００に基づいて、コンポーネントの生成要求をコンポーネント管理部３０２に送信する（ステップＳ１４０１）。
【０１９１】
なお、フロー実行部３０１は、図８に示す処理フロー情報１１００をアプリ管理部１１１から受信したものとする。この場合、フロー実行部３０１は、処理定義１１０２及び処理定義１１０３を含むコンポーネントの生成要求をコンポーネント管理部３０２に送信する。
【０１９２】
コンポーネント管理部３０２は、コンポーネントの生成要求を受信すると、当該生成要求に含まれる処理定義１１０２のコンポーネント名「ｃｏｎｖｅｒｓｉｏｎ」に対応する変換コンポーネント１３１０を生成する（ステップＳ１４０２）。
【０１９３】
次に、変換コンポーネント１３１０は、コンポーネント管理部３０２により生成されると、処理定義１１０２のオペレーション名「ｐｄｆ」に対応するＰＤＦ変換オペレーション１３１１を生成する（ステップＳ１４０３）。
【０１９４】
また、コンポーネント管理部３０２は、コンポーネントの生成要求に含まれる処理定義１１０３のコンポーネント名「ｓｅｎｄ＿ｔｏ＿ｓｔｏｒａｇｅ」に対応する配信コンポーネント１３２０を生成する（ステップＳ１４０４）。
【０１９５】
次に、配信コンポーネント１３２０は、コンポーネント管理部３０２により生成されると、処理定義１１０３のオペレーション名「ｓｔｏｒａｇｅＡ」に対応するストレージＡ配信オペレーション１３２１を生成する（ステップＳ１４０５）。
【０１９６】
そして、コンポーネント管理部３０２は、各コンポーネントが生成されると、コンポーネントが生成されたことを示す生成結果をフロー実行部３０１に返信する（ステップＳ１４０６）。
【０１９７】
以降のステップＳ１２０２、ステップＳ１３０４及びステップＳ１３０５、ステップＳ１２０６〜ステップＳ１２１３、ステップＳ１３０９及びステップＳ１３１０、並びにステップＳ１２１７〜ステップＳ１２２０の処理は、第二の実施形態と同様であるため、その説明を省略する。
【０１９８】
以上により、本実施形態に係る情報処理システム１では、サービス提供システム１０が提供する各種のサービスを実現する一連の処理（処理フロー）が実行される。このとき、本実施形態に係るサービス提供システム１０は、一連の処理（処理フロー）を実行する際に、この一連の処理の実行に必要なコンポーネント及びオペレーションを生成する。
【０１９９】
これにより、本実施形態に係るサービス提供システム１０では、第二の実施形態と同様に、処理フローの実行に不要なコンポーネント及びオペレーションは生成されない。したがって、本実施形態に係るサービス提供システム１０では、メモリ（例えば、ＲＡＭ１４）等のハードウェア資源を効率的に利用することができるようになる。
【０２００】
なお、第二の実施形態及び第三の実施形態では、コンポーネント及びオペレーションを生成するタイミングが第一の実施形態と異なる場合について説明したが、コンポーネント及びオペレーションを生成するタイミングは、これらに限られない。例えば、サービス提供システム１０は、当該サービス提供システム１０の起動時に、全てのコンポーネント及びオペレーションを生成しても良い。また、例えば、サービス提供システム１０は、処理フローを実行する際に、この処理フローの実行に必要なコンポーネントを生成し、この処理フローに含まれる各処理を実行する際に、オペレーションを生成しても良い。
【０２０１】
さらに、サービス提供システム１０は、例えば、生成されたコンポーネントやオペレーションが利用されずに所定の時間経過した場合、利用されていないコンポーネントやオペレーションを削除（すなわち、メモリを開放）しても良い。
【０２０２】
［第四の実施形態］
次に、第四の実施形態について説明する。第四の実施形態に係る情報処理システム１では、機器２０が、ブラウザ２１０に代えて、クライアントアプリケーションを有する点が第一の実施形態と異なる。
【０２０３】
なお、第二の実施形態において、第一の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第一の実施形態と同一の符号を用いて、その説明を省略する。
【０２０４】
＜機能構成＞
まず、本実施形態に係る情報処理システム１の機能構成について、図１５を参照しながら説明する。図１５は、第四の実施形態に係る情報処理システム１の一例の機能構成を示す図である。
【０２０５】
本実施形態に係る機器２０は、例えばＣＰＵ３１等により実行されるクライアントアプリケーション２２０を有する。クライアントアプリケーション２２０は、例えば、サービス提供システム１０が提供するサービスを利用するために開発された専用のアプリケーション等である。
【０２０６】
また、本実施形態に係るサービス提供システム１０は、Ｗｅｂサービス処理部１２０と、画面情報記憶部１６０を有しない。
【０２０７】
＜処理の詳細＞
次に、本実施形態に係るスキャン配信サービスの全体的な処理について、図１６を参照しながら説明する。図１６は、第四の実施形態に係るスキャン配信サービスの全体処理の一例を示すシーケンス図である。
【０２０８】
まず、機器２０のクライアントアプリケーション２２０は、スキャン配信サービスのアプリ画面の表示操作を受け付ける（ステップＳ１６０１）。
【０２０９】
機器２０のクライアントアプリケーション２２０は、当該表示操作を受け付けると、アプリ画面の表示用情報の取得要求をデータＩ／Ｆ部１１３に送信する（ステップＳ１６０２）。
【０２１０】
以降のステップＳ９０５及びステップＳ９０６の処理は、第一の実施形態と同様であるため、その説明を省略する。
【０２１１】
機器２０のクライアントアプリケーション２２０は、フォルダ一覧を受信すると、当該フォルダ一覧に基づいて、アプリ画面を操作パネル２２に表示させる（ステップＳ１６０３）。これにより、機器２０の操作パネル２２には、クライアントアプリケーション２２０により、図１０に示すアプリ画面２１００が表示される。
【０２１２】
以降のステップＳ９０８及びステップＳ９０９の処理は、第一の実施形態と同様であるため、その説明を省略する。
【０２１３】
機器２０のクライアントアプリケーション２２０は、スキャン実行により電子ファイルが生成されると、処理フローの実行要求をロジック処理部１１２に送信する（ステップＳ１６０４）。ここで、当該実行要求には、生成された電子ファイルと、選択された保存先フォルダのフォルダＩＤと、スキャン配信サービスを提供するアプリ情報１０００のアプリＩＤと、当該サービスを実現するための処理フロー情報１１００のフローＩＤとが含まれる。
【０２１４】
以降のステップＳ９１２の処理は、第一の実施形態と同様であるため、その説明を省略する。
【０２１５】
以上により、本実施形態に係る情報処理システム１では、クライアントアプリケーション２２０が搭載された機器２０を用いて、サービス提供システム１０が提供するサービスを利用することができる。
【０２１６】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２１７】
１        情報処理システム
１０      サービス提供システム
２０      機器
３０      外部ストレージシステム
１１０    入出力サービス処理部
１１１    アプリ管理部
１１２    ロジック処理部
１１３    データＩ／Ｆ部
１２０    Ｗｅｂサービス処理部
１３０    ドキュメントサービス部
１３１    ＰＤＦ変換部
１４０    外部サービス連携部
１４１    ファイル処理部
１４２    データ処理部
１５０    アプリ情報記憶部
１６０    画面情報記憶部
２１０    ブラウザ
１０００  アプリ情報
１１００  処理フロー情報
１４１１  共通Ｉ／Ｆ
１４１２  固有Ｉ／Ｆ
１４２１  共通Ｉ／Ｆ
１４２２  固有Ｉ／Ｆ
２０００  画面情報
【先行技術文献】
【特許文献】
【０２１８】
【特許文献１】特許第４０３９１９１号公報
【図１】
2017130189.tif 000003
【図２】
2017130189.tif 000004
【図３】
2017130189.tif 000005
【図４】
2017130189.tif 000006
【図５】
2017130189.tif 000007
【図６】
2017130189.tif 000008
【図７】
2017130189.tif 000009
【図８】
2017130189.tif 000010
【図９】
2017130189.tif 000011
【図１０】
2017130189.tif 000012
【図１１】
2017130189.tif 000013
【図１２】
2017130189.tif 000014
【図１３】
2017130189.tif 000015
【図１４】
2017130189.tif 000016
【図１５】
2017130189.tif 000017
【図１６】
2017130189.tif 000018