(57)【要約】【課題】一連の処理の実行をリトライする。【解決手段】所定の処理を実行するプログラムを有する情報処理システムであって、電子データを用いた一連の処理毎に、プログラム識別情報と、実行順とが定義されたフロー情報を、フロー識別情報と関連付けて記憶する記憶手段と、電子データに関する情報と、フロー識別情報とを受信する受信手段と、前記記憶手段に記憶されているフロー情報のうち、前記受信手段により受信された前記フロー識別情報と関連付けて記憶されているフロー情報を取得する取得手段と、取得された前記フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムそれぞれを、前記実行順に従って実行させることで、前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段と、を有し、前記実行手段は、前記一連の処理でエラーが発生した場合、該一連の処理の実行をリトライする。【選択図】図４
2018032193.tif 000002
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、
電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する第１の記憶手段と、
前記情報処理システムに接続される１以上の機器のうちの一の機器から、電子データに関する情報と、フロー識別情報とを受信する受信手段と、
前記第１の記憶手段に記憶されているフロー情報のうち、前記受信手段により受信された前記フロー識別情報と関連付けて前記第１の記憶手段に記憶されているフロー情報を取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記受信手段により受信された前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段と、を有し、
前記実行手段は、
前記一連の処理でエラーが発生した場合、該一連の処理の実行をリトライする、情報処理システム。
【請求項２】
前記実行手段は、
前記一連の処理のそれぞれの処理を実行する前記プログラムのうちの一のプログラムにより実行される処理でエラーが発生した場合、前記プログラムそれぞれを、前記実行順に従って最初から実行させることで、前記一連の処理の実行をリトライする、請求項１に記載の情報処理システム。
【請求項３】
前記フロー情報に定義されている前記プログラム識別情報のちの一のプログラム識別情報と、該一のプログラム識別情報により識別される一のプログラムにより実行される処理でエラーが発生した場合に前記一連の処理の実行をリトライするか否かを示す第１のリトライ可否情報とが関連付けて記憶された第２の記憶手段を有し、
前記実行手段は、
前記一連の処理のそれぞれの処理を実行する前記プログラムのうちの一のプログラムにより実行される処理でエラーが発生した場合、該一のプログラムを識別するプログラム識別情報と関連付けて前記第２の記憶手段に記憶されている前記第１のリトライ可否情報が、前記一連の処理の実行をリトライすることを示すものである場合、前記一連の処理の実行をリトライする、請求項２に記載の情報処理システム。
【請求項４】
前記実行手段は、
前記一連の処理でエラーが発生した場合、該一連の処理の実行をリトライした回数が所定の上限回数未満であるか否かを判定し、前記リトライした回数が前記上限回数未満である場合、前記一連の処理の実行をリトライする、請求項１乃至３の何れか一項に記載の情報処理システム。
【請求項５】
前記上限回数は、前記一の機器のユーザにより設定された値、又は前記フロー情報に定義された値である、請求項４に記載の情報処理システム。
【請求項６】
前記エラーを示すエラーコードと、該エラーが発生した場合に前記一連の処理の実行をリトライさせるか否かを示す第２のリトライ可否情報とが関連付けて記憶された第３の記憶手段を有し、
前記実行手段は、
前記一連の処理でエラーが発生した場合、該エラーを示すエラーコードと関連付けて前記第３の記憶手段に記憶されている前記第２のリトライ可否情報が、前記一連の処理の実行をリトライさせることを示すものである場合、前記一連の処理の実行をリトライする、請求項１乃至５の何れか一項に記載の情報処理システム。
【請求項７】
前記実行手段は、
電子データに対して、該電子データのデータ型を所定のデータ型に変換する型変換手段を１以上有し、
前記電子データのデータ型を、前記型変換手段により前記プログラムが処理可能なデータ型に変換した後、前記プログラムに処理を実行させることにより、前記電子データを用いた前記一連の処理を実行する、請求項１乃至６の何れか一項に記載の情報処理システム。
【請求項８】
前記実行順は、前記フロー情報において前記プログラム識別情報が定義されている順である、請求項１乃至７の何れか１項に記載の情報処理システム。
【請求項９】
所定の処理をそれぞれ実行する複数のプログラムを有する情報処理装置であって、
電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する第１の記憶手段と、
前記情報処理装置に接続される１以上の機器のうちの一の機器から、電子データに関する情報と、フロー識別情報とを受信する受信手段と、
前記第１の記憶手段に記憶されているフロー情報のうち、前記受信手段により受信された前記フロー識別情報と関連付けて前記第１の記憶手段に記憶されているフロー情報を取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記受信手段により受信された前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段と、を有し、
前記実行手段は、
前記一連の処理でエラーが発生した場合、該一連の処理の実行をリトライする、情報処理装置。
【請求項１０】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する第１の記憶手段を有する情報処理システムに用いられる情報処理方法において、
前記情報処理システムに接続される１以上の機器のうちの一の機器から、電子データに関する情報と、フロー識別情報とを受信する受信手順と、
前記第１の記憶手段に記憶されているフロー情報のうち、前記受信手順により受信された前記フロー識別情報と関連付けて前記第１の記憶手段に記憶されているフロー情報を取得する取得手順と、
前記取得手順により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記受信手順により受信された前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手順と、を有し、
前記実行手順は、
前記一連の処理でエラーが発生した場合、該一連の処理の実行をリトライする、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
近年、複数の機能（例えば、スキャンやプリント、メール配信等）を組み合わせた機能を提供するサービスが知られるようになった。例えば、スキャンにより生成された電子データをメール配信するサービス等が知られている。このようなサービスは、各機能を実現する１以上の処理が一連の処理として実行されることにより実現される。
【０００３】
また、１以上の処理を一連の処理として表した処理情報等が含まれる指示書に基づいて、当該一連の処理を実行する画像形成装置が知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術においては、例えば、一連の処理でエラー等が発生した場合、当該一連の処理の実行をリトライすることができなかった。したがって、例えば画像形成装置のユーザは、再度、当該一連の処理を実行させるための操作を行う必要があった。
【０００５】
本発明の一実施形態は、上記の点に鑑みてなされたもので、一連の処理の実行をリトライすることを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一実施形態は、１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上の前記プログラムを識別するプログラム識別情報と、１以上の前記プログラムの実行順とが定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する第１の記憶手段と、前記情報処理システムに接続される１以上の機器のうちの一の機器から、電子データに関する情報と、フロー識別情報とを受信する受信手段と、前記第１の記憶手段に記憶されているフロー情報のうち、前記受信手段により受信された前記フロー識別情報と関連付けて前記第１の記憶手段に記憶されているフロー情報を取得する取得手段と、前記取得手段により取得された前記フロー情報に定義されている前記プログラム識別情報により識別される前記プログラムそれぞれを、前記フロー情報に定義されている前記実行順に従って実行させることで、前記受信手段により受信された前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段と、を有し、前記実行手段は、前記一連の処理でエラーが発生した場合、該一連の処理の実行をリトライする。
【発明の効果】
【０００７】
本発明の一実施形態によれば、一連の処理の実行をリトライすることができる。
【図面の簡単な説明】
【０００８】
【図１】第一の実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【図２】第一の実施形態に係るサービス提供システムの一例のハードウェア構成を示す図である。
【図３】第一の実施形態に係る機器の一例のハードウェア構成を示す図である。
【図４】第一の実施形態に係る情報処理システムの一例の機能構成を示す図である。
【図５】第一の実施形態に係るロジック処理部の一例の機能構成を示す図である。
【図６】型変換情報テーブルの一例を示す図である。
【図７】処理フロー情報の一例を示す図である。
【図８】第一の実施形態に係る「スキャン  Ｔｏ  メール配信」サービスの全体処理の一例を示すシーケンス図である。
【図９】画面情報の一例を示す図である。
【図１０】アプリ画面の一例を示す図である。
【図１１】第一の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【図１２】第一の実施形態に係る処理フローの実行処理の他の例を示すシーケンス図である。
【図１３】処理フロー情報の他の例を示す図である。
【図１４】第二の実施形態に係るロジック処理部の一例の機能構成を示す図である。
【図１５】エラーコード情報テーブルの一例を示す図である。
【図１６】第二の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【図１７】エラー情報の一例を示す図である。
【図１８】エラーコード情報テーブルの他の例を示す図である。
【図１９】第三の実施形態に係るロジック処理部の一例の機能構成を示す図である。
【図２０】フロー進捗情報テーブルの一例を示す図である。
【図２１】第三の実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１０】
［第一の実施形態］
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る情報処理システム１の一例のシステム構成を示す図である。
【００１１】
図１に示す情報処理システム１は、サービス提供システム１０と、機器２０とを含み、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１２】
サービス提供システム１０は、一台以上の情報処理装置で実現され、ネットワークＮ１を介して、種々の機能をそれぞれ実現する複数の処理のうちの１以上の処理を組み合わせた一連の処理により実現される各種のサービスを提供する。
【００１３】
ここで、機能とは、文書ファイルや画像ファイル等の電子ファイルに関する機能である。機能には、例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、ＯＣＲ（Optical Character Recognition）処理、加工や圧縮・解凍、リポジトリへの格納等が挙げられる。
【００１４】
本実施形態に係るサービス提供システム１０が提供するサービスの具体例については後述する。なお、以降では、一連の処理を「処理フロー」とも表す。
【００１５】
機器２０は、ユーザが使用する各種の電子機器である。すなわち、機器２０は、例えば、ＭＦＰ（Multifunction Peripheral）等の画像形成装置、ＰＣ（パーソナルコンピュータ）、プロジェクタ、電子黒板、デジタルカメラ等である。ユーザは、機器２０を用いて、サービス提供システム１０が提供する各種のサービスを利用することができる。
【００１６】
なお、以降では、複数の機器２０について、各々を区別するときは、「機器２０１」、「機器２０２」等と添え字を用いて記載する。
【００１７】
また、図１に示す情報処理システム１の構成は一例であって、他の構成であっても良い。例えば、本実施形態に係る情報処理システム１には、電子データの入力及び出力の少なくとも一方を行う各種機器が含まれ、これらの機器がサービス提供システム１０により提供されるサービスを利用しても良い。
【００１８】
＜ハードウェア構成＞
次に、本実施形態に係る情報処理システム１に含まれるサービス提供システム１０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係るサービス提供システム１０の一例のハードウェア構成を示す図である。
【００１９】
図２に示すサービス提供システム１０は、入力装置１１と、表示装置１２と、外部Ｉ／Ｆ１３と、ＲＡＭ（Random Access Memory）１４とを有する。また、サービス提供システム１０は、ＲＯＭ（Read Only Memory）１５と、ＣＰＵ（Central Processing Unit）１６と、通信Ｉ／Ｆ１７と、ＨＤＤ（Hard Disk Drive）１８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００２０】
入力装置１１は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１２は、ディスプレイ等を含み、サービス提供システム１０による処理結果を表示する。なお、入力装置１１及び表示装置１２の少なくとも一方は、必要なときにサービス提供システム１０に接続して利用する形態であっても良い。
【００２１】
通信Ｉ／Ｆ１７は、サービス提供システム１０をネットワークＮ１に接続するインタフェースである。これにより、サービス提供システム１０は、通信Ｉ／Ｆ１７を介して通信を行うことができる。
【００２２】
ＨＤＤ１８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１８に格納されるプログラムやデータには、サービス提供システム１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。
【００２３】
なお、サービス提供システム１０は、ＨＤＤ１８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１８は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。
【００２４】
外部Ｉ／Ｆ１３は、外部装置とのインタフェースである。外部装置には、記録媒体１３ａ等がある。これにより、サービス提供システム１０は、外部Ｉ／Ｆ１３を介して記録媒体１３ａの読み取りや書き込みを行うことができる。記録媒体１３ａには、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２５】
ＲＯＭ１５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ＲＯＭ１５には、サービス提供システム１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２６】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００２７】
本実施形態に係るサービス提供システム１０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００２８】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０の一例のハードウェア構成を示す図である。
【００２９】
図３に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３０】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３１】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３２】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３３】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００３４】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３５】
＜サービス提供システムが提供するサービス＞
ここで、本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【００３６】
本実施形態に係るサービス提供システム１０は、機器２０において原稿をスキャンして生成された電子ファイル（画像ファイル）をＯＣＲ処理して、ユーザにより指定されたメールアドレス宛にメール配信するサービスを提供する。
【００３７】
以降では、本実施形態に係るサービス提供システム１０は、上述したサービス（「スキャン  Ｔｏ  メール配信」サービス）を提供するものとして説明する。
【００３８】
ただし、サービス提供システム１０が提供するサービスは、これに限られない。サービス提供システム１０は、例えば、機器２０において原稿をスキャンして生成された電子ファイルを圧縮して、リポジトリへ格納するサービスを提供しても良い。また、サービス提供システム１０は、例えば、機器２０において原稿をスキャンして生成された電子ファイルを加工（例えば、当該電子ファイルに所定の文言を付加）して、ファクシミリ送信するサービスを提供しても良い。
【００３９】
また、例えば、機器２０が電子黒板等である場合には、本実施形態に係るサービス提供システム１０は、電子黒板である機器２０により生成された電子ファイルを加工して、メール配信するサービス等を提供しても良い。
【００４０】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、本実施形態に係る情報処理システム１の一例の機能構成を示す図である。
【００４１】
図４に示す機器２０は、例えばＣＰＵ３１等により実行されるウェブブラウザ２１０（以降では、単に「ブラウザ２１０」と表す。）を有する。機器２０のユーザは、ブラウザ２１０を用いて、サービス提供システム１０が提供するサービスを利用することができる。
【００４２】
このように、本実施形態に係る機器２０には、ブラウザ２１０が搭載されていれば良い。したがって、本実施形態に係る機器２０では、例えば、サービス提供システム１０が提供するサービスを利用するための専用のアプリケーションプログラム等を搭載する必要がない。
【００４３】
図４に示すサービス提供システム１０は、入出力サービス処理部１１０と、Ｗｅｂサービス処理部１２０と、ドキュメントサービス部１３０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００４４】
また、サービス提供システム１０は、アプリ情報記憶部１４０と、画面情報記憶部１５０とを有する。これら各記憶部は、ＨＤＤ１８により実現可能である。なお、アプリ情報記憶部１４０及び画面情報記憶部１５０の少なくとも一方が、サービス提供システム１０とネットワークを介して接続される記憶装置等により実現されていても良い。
【００４５】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２とを有する。
【００４６】
アプリ管理部１１１は、アプリ情報記憶部１４０に記憶されているアプリ情報１０００を管理する。なお、アプリ情報１０００とは、一連の処理により実現されるサービスを提供するためのアプリケーションである。すなわち、サービス提供システム１０が提供する各種のサービスは、アプリ情報１０００により提供される。
【００４７】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００とは、アプリ情報１０００により提供されるサービスを実現する一連の処理が定義された情報である。
【００４８】
ロジック処理部１１２は、Ｗｅｂサービス処理部１２０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、ロジック処理部１１２は、アプリ管理部１１１から取得した処理フロー情報１１００に基づいて、当該アプリ情報１０００が提供するサービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システム１０は、各種のサービスを提供することができる。なお、ロジック処理部１１２の詳細については後述する。
【００４９】
Ｗｅｂサービス処理部１２０は、サービス提供システム１０が提供するサービスを、ユーザがブラウザ２１０を用いて利用するための処理を行う。すなわち、Ｗｅｂサービス処理部１２０は、ブラウザ２１０に対してＷｅｂアプリケーション（アプリ情報１０００）を提供するアプリケーションサーバとして機能する。ここで、Ｗｅｂサービス処理部１２０は、画面構成部１２１と、アプリ実行部１２２とを有する。
【００５０】
画面構成部１２１は、ブラウザ２１０からの要求に応じて、画面情報記憶部１５０に記憶されている画面情報２０００を返信する。なお、画面情報２０００とは、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）が定義された情報である。画面情報２０００は、例えば、ＨＴＭＬ（HyperText Markup Language）、ＸＨＴＭＬ（Extensible HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、ＪａｖａＳｃｒｉｐｔ（登録商標）等のブラウザ２１０が解釈可能な形式でアプリ画面が定義されている。
【００５１】
これにより、機器２０の操作パネル２２には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００５２】
アプリ実行部１２２は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に対して、アプリケーション（アプリ情報１０００）の実行要求を送信する。
【００５３】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ここで、ドキュメントサービス部１３０は、ＯＣＲ処理部１３１と、メール配信部１３２とを有する。
【００５４】
ＯＣＲ処理部１３１は、電子ファイル（画像ファイル）に対してＯＣＲ処理を行う。メール配信部１３２は、電子ファイルを添付したメールを作成して、当該メールを指定されたメールアドレス宛に配信する。
【００５５】
なお、ドキュメントサービス部１３０は、例えば、電子ファイルのデータ形式を所定のデータ形式に変換するデータ変換部、電子ファイルを圧縮又は解凍する圧縮・解凍部等を有していても良い。
【００５６】
このように、ドキュメントサービス部１３０には、一連の処理（処理フロー）に含まれる所定の処理を実行する種々の機能部が含まれる。したがって、ドキュメントサービス部１３０は、これら種々の機能を提供するプログラム（モジュール）群により実現される。
【００５７】
アプリ情報記憶部１４０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１４０に記憶されている。なお、アプリ情報１０００には、更に、当該アプリ情報１０００のアプリケーション名（アプリ名）が関連付けられていても良い。
【００５８】
ここで、アプリ情報１０００には、処理フロー情報１１００が含まれる。例えば、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００には、当該サービスを実現する一連の処理が定義された処理フロー情報１１００が含まれる。すなわち、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００には、スキャンにより生成された電子ファイルをＯＣＲ処理した後、指定されたメールアドレス宛にメール配信する処理が定義された処理フロー情報１１００が含まれる。
【００５９】
なお、アプリ情報１０００には、２以上の処理フロー情報１１００が含まれていても良い。例えば、「スキャン  Ｔｏ  メール配信」を提供するアプリ情報１０００には、英語でＯＣＲ処理した後、メール配信する処理が定義された処理フロー情報１１００と、日本語でＯＣＲ処理した後、メール配信する処理が定義された処理フロー情報１１００とが含まれていても良い。
【００６０】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。なお、処理フロー情報１１００の詳細については後述する。
【００６１】
画面情報記憶部１５０は、画面情報２０００を記憶する。画面情報２０００は、アプリＩＤと関連付けて画面情報記憶部１５０に記憶されている。なお、画面情報２０００の詳細については後述する。
【００６２】
なお、入出力サービス処理部１１０、Ｗｅｂサービス処理部１２０、ドキュメントサービス部１３０、アプリ情報記憶部１４０、及び画面情報記憶部１５０は、それぞれが異なる情報処理装置により実現されていても良い。特に、Ｗｅｂサービス処理部１２０及び画面情報記憶部１５０をアプリケーションサーバとして、一台の情報処理装置で実現しても良い。
【００６３】
ここで、ロジック処理部１１２の詳細な機能構成について、図５を参照しながら説明する。図５は、本実施形態に係るロジック処理部１１２の一例の機能構成図である。
【００６４】
図５に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。また、ロジック処理部１１２は、型変換情報テーブル３０００を有する。
【００６５】
フロー実行部３０１は、アプリ実行部１２２からアプリケーションの実行要求を受信すると、当該実行要求に対応する処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００６６】
また、フロー実行部３０１は、一連の処理（処理フロー）でエラー等が発生した場合、当該一連の処理（処理フロー）の実行をリトライするか否かを判定する。そして、フロー実行部３０１は、当該一連の処理（処理フロー）をリトライすると判定した場合、当該一連の処理（処理フロー）の実行をリトライする（すなわち、フロー実行部３０１は、再度、当該一連の処理を実行する。）。
【００６７】
ここで、処理フロー情報１１００に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
【００６８】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００６９】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、ＯＣＲコンポーネント１３１０と、メール配信コンポーネント１３２０とが含まれる。
【００７０】
ＯＣＲコンポーネント１３１０は、電子ファイルをＯＣＲ処理するためのコンポーネントである。ＯＣＲコンポーネント１３１０は、ドキュメントサービス部１３０のＯＣＲ処理部１３１にＯＣＲ処理を要求することにより、電子ファイルのＯＣＲ処理を行う。
【００７１】
メール配信コンポーネント１３２０は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。メール配信コンポーネント１３２０は、ドキュメントサービス部１３０のメール配信部１３２にメール配信処理を要求することにより、指定されたメールアドレス宛にメールを配信する。
【００７２】
なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルのデータ形式を所定のデータ形式に変換するための変換コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【００７３】
また、コンポーネント群３０３には、外部サービスを利用する各種のコンポーネントが含まれていても良い。すなわち、コンポーネント群３０３には、例えば、外部サービス（例えばクラウド型のストレージサービス等）を利用するためのコンポーネント、外部サービスから認証情報を取得するためのコンポーネント等の各種のコンポーネントが含まれていても良い。
【００７４】
更に、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩ（Application Programming Interface）であり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【００７５】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【００７６】
型変換管理部３０４は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部３０４は、コンポーネントからの要求に応じて、例えば図６に示す型変換情報テーブル３０００を参照して、型変換群３０５に含まれる型変換を生成する。
【００７７】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ（例えばＲＡＭ１４上）に展開することである。
【００７８】
なお、データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【００７９】
ここで、型変換情報テーブル３０００について、図６を参照しながら説明する。図６は、型変換情報テーブル３０００の一例を示す図である。
【００８０】
図６に示す型変換情報テーブル３０００は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル３０００に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【００８１】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０が含まれる。なお、型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換するための第２の型変換等が含まれる。
【００８２】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換の型変換処理を実行するためのＡＰＩとが含まれる。
【００８３】
このように、各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【００８４】
ここで、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００に含まれる処理フロー情報１１００について、図７を参照しながら説明する。図７は、「スキャン  Ｔｏ  メール配信」サービスを実現する一連の処理が定義された処理フロー情報１１００の一例を示す図である。
【００８５】
図７に示す処理フロー情報１１００は、「スキャン  Ｔｏ  メール配信」サービスを実現する一連の処理（処理フロー）が定義された情報である。
【００８６】
図７に示す処理フロー情報１１００には、当該処理フロー情報１１００を識別するフローＩＤ１１０１と、当該処理フロー情報１１００に基づく一連の処理（処理フロー）の名称を示すフロー名１１０２とが含まれる。また、図７に示す処理フロー情報１１００には、一連の処理（処理フロー）に含まれる各処理の処理内容が定義されたフロー詳細１１０３が含まれる。
【００８７】
フロー詳細１１０３には、処理フローに含まれる各処理をそれぞれ定義した処理定義１１０４と、処理定義１１０５とが含まれる。また、処理定義１１０４及び処理定義１１０５には、処理を実行するコンポーネントのコンポーネント名を示す「"ｃｏｍｐｏｎｅｎｔ"」と、当該コンポーネントに対するパラメータ情報が定義される「"ｐａｒａｍｅｔｅｒｓ"」とが含まれる。
【００８８】
具体的には、処理定義１１０４の「"ｃｏｍｐｏｎｅｎｔ"」には、ＯＣＲコンポーネント１３１０のコンポーネント名「"ｏｃｒ"」が定義されている。また、処理定義１１０４の「"ｐａｒａｍｅｔｅｒｓ"」には、パラメータ名「"ｌａｎｇｕａｇｅ"」のパラメータ情報と、パラメータ名「"ｏｕｔｐｕｔＴｙｐｅ"」のパラメータ情報とが定義されている。
【００８９】
更に、パラメータ名「"ｌａｎｇｕａｇｅ"」のパラメータ情報には、ＯＣＲ処理の言語が英語である事を示す「"Ｅｎｇｌｉｓｈ"」がパラメータ値として定義されている。同様に、パラメータ名「"ｏｕｔｐｕｔＴｙｐｅ"」のパラメータ情報には、ＯＣＲ処理後のファイル形式がＰＤＦ形式であることを示す「"ｐｄｆ"」がパラメータ値として定義されている。
【００９０】
同様に、処理定義１１０５の「"ｃｏｍｐｏｎｅｎｔ"」には、メール配信コンポーネント１３２０のコンポーネント名「"ｍａｉｌ"」が定義されている。また、処理定義１１０５の「"ｐａｒａｍｅｔｅｒｓ"」には、パラメータ名「"ｆｒｏｍ"」のパラメータ情報と、パラメータ名「"ｔｏ"」のパラメータ情報と、パラメータ名「"ｆｉｌｅｎａｍｅ"」のパラメータ情報とが定義されている。
【００９１】
更に、パラメータ名「"ｆｒｏｍ"」のパラメータ情報には、送信元メールアドレスを示す「"ｈｏｇｅ＠ｈｕｇａ．ｃｏｍ"」がパラメータ値として定義されている。同様に、パラメータ名「"ｔｏ"」のパラメータ情報には、送信先メールアドレスが設定されていないことを示す「ｎｕｌｌ」がパラメータ値として定義されている。また、同様に、パラメータ名「"ｆｉｌｅｎａｍｅ"」のパラメータ情報には、メールに添付するファイル（添付ファイル）のファイル名が設定されていないことを示す「ｎｕｌｌ」がパラメータ値として定義されている。
【００９２】
このように、処理フロー情報１１００には、一連の処理（処理フロー）を構成する各処理の処理定義が定義されている。これにより、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に含まれる各処理定義に従って、各コンポーネントによる処理を行うことで、アプリ情報１０００により提供されるサービスを実現する一連の処理を実行することができる。
【００９３】
なお、図７に示す処理フロー情報１１００に含まれる各処理定義に定義された処理は、上から順に実行される。すなわち、図７に示す処理フロー情報１１００に基づく一連の処理では、処理定義１１０４に定義された処理、処理定義１１０５に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報１１００には、例えば、各処理定義に定義された処理の実行順を示す情報が定義されていても良い
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。以降では、機器２０のユーザが、「スキャン  Ｔｏ  メール配信」サービスを利用する場合の全体的な処理について、図８を参照しながら説明する。図８は、本実施形態に係る「スキャン  Ｔｏ  メール配信」サービスの全体処理の一例を示すシーケンス図である。
【００９４】
まず、機器２０のブラウザ２１０は、「スキャン  Ｔｏ  メール配信」サービスのアプリ画面を表示させるための操作（表示操作）を受け付ける（ステップＳ８０１）。
【００９５】
機器２０のブラウザ２１０は、当該表示操作を受け付けると、「スキャン  Ｔｏ  メール配信」サービスのアプリ画面を表示するための画面情報の取得要求を、Ｗｅｂサービス処理部１２０の画面構成部１２１に送信する（ステップＳ８０２）。なお、当該取得要求は、例えば、ＨＴＴＰ（Hypertext Transfer Protocol）リクエストであり、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００のＵＲＬ（Uniform Resource Locator）が指定される。このとき、当該取得要求には、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００のアプリＩＤが含まれていても良い。
【００９６】
Ｗｅｂサービス処理部１２０の画面構成部１２１は、画面情報の取得要求を受信すると、当該取得要求に指定されているＵＲＬに対応するアプリＩＤと関連付けられている画面情報２０００を画面情報記憶部１５０から取得する（ステップＳ８０３）。そして、Ｗｅｂサービス処理部１２０の画面構成部１２１は、画面情報記憶部１５０から取得した画面情報２０００をブラウザ２１０に返信する。すなわち、画面構成部１２１は、画面情報記憶部１５０から取得した画面情報２０００を含むＨＴＴＰレスポンスをブラウザ２１０に返信する。なお、このとき、画面構成部１２１は、当該ＵＲＬに対応するアプリＩＤもブラウザ２１０に返信する。
【００９７】
ここで、「スキャン  Ｔｏ  メール配信」サービスのアプリ画面を表示するための画面情報２０００について、図９を参照しながら説明する。図９は、「スキャン  Ｔｏ  メール配信」サービスのアプリ画面を表示するための画面情報２０００の一例を示す図である。
【００９８】
図９に示す画面情報２０００は、ＨＴＭＬ形式で定義された情報であり、見出し定義２００１と、ファイル名入力欄定義２００２と、送信先メールアドレス入力欄定義２００３と、上限リトライ回数入力欄定義２００４と、スキャン実行ボタン定義２００５とが含まれる。このように、画面情報２０００は、ＨＴＭＬタグ等のブラウザ２１０が解釈可能な形式によりアプリ画面が定義されている。これにより、ブラウザ２１０は、図９に示す画面情報２０００に基づいて、後述するアプリ画面２１００を表示することができる。
【００９９】
次に、機器２０のブラウザ２１０は、画面構成部１２１から画面情報２０００を受信すると、当該画面情報２０００に基づいて、例えば図１０に示すアプリ画面２１００を表示する（ステップＳ８０４）。
【０１００】
図１０に示すアプリ画面２１００は、図９に示す画面情報２０００に基づいて、ブラウザ２１０により表示された画面である。図１０に示すアプリ画面２１００には、タイトル２１０１と、ファイル名入力欄２１０２と、送信先メールアドレス入力欄２１０３と、上限リトライ回数入力欄２１０４と、スキャン実行ボタン２１０５とが含まれる。
【０１０１】
ここで、タイトル２１０１は、例えば、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００のアプリ名である。ファイル名入力欄２１０２は、メールに添付する電子ファイル（すなわち、スキャンにより生成された電子ファイルをＯＣＲ処理した電子ファイル）のファイル名をユーザが指定する入力エリアである。また、送信先メールアドレス入力欄２１０３は、メールの配信先となるメールアドレスをユーザが指定する入力エリアである。更に、上限リトライ回数入力欄２１０４は、一連の処理（処理フロー）でエラー等が発生した場合に、当該一連の処理（処理フロー）の実行をリトライする回数の上限（上限リトライ回数）をユーザが指定する入力エリアである。
【０１０２】
なお、タイトル２１０１及びファイル名入力欄２１０２は、見出し定義２００１及びファイル名入力欄定義２００２をブラウザ２１０がそれぞれ解釈することにより表示される。また、同様に、送信先メールアドレス入力欄２１０３及び上限リトライ回数入力欄２１０４は、送信先メールアドレス入力欄定義２００３及び上限リトライ回数入力欄定義２００４をブラウザ２１０がそれぞれ解釈することにより表示される。更に、スキャン実行ボタン２１０５は、スキャン実行ボタン定義２００５をブラウザ２１０が解釈することにより表示される。
【０１０３】
このように、本実施形態に係るサービス提供システム１０は、機器２０のブラウザ２１０からの要求に応じて、ＨＴＭＬ形式等のブラウザ２１０が解釈可能な形式で定義された画面情報２０００を返信する。そして、機器２０は、サービス提供システム１０から返信された画面情報２０００に基づいて、サービスを利用するためのアプリ画面２１００を表示する。したがって、ユーザは、一般的なブラウザ２１０が搭載された機器２０を用いて、サービス提供システム１０が提供するサービスを利用することができる。
【０１０４】
なお、上記のステップＳ８０３において、画面構成部１２１は、画面情報記憶部１５０から画面情報２０００を取得するものとしたが、これに限られない。画面構成部１２１は、例えば、アプリ情報１０００に基づいて、画面情報２０００を生成しても良い。
【０１０５】
すなわち、画面構成部１２１は、例えば、アプリ管理部１１１を介して、画面情報の取得要求に含まれるアプリＩＤに関連付けられているアプリ情報１０００をアプリ情報記憶部１４０から取得する。そして、画面構成部１２１は、アプリ情報１０００に含まれる情報（例えば、アプリ名、処理フロー情報１１００に定義されているパラメータ情報等）を、予め記憶されている画面情報の雛形に対して定義することで、画面情報２０００を生成しても良い。
【０１０６】
ここで、図１０に示すアプリ画面２１００において、ユーザにより、ファイル名入力欄２１０２、送信先メールアドレス入力欄２１０３、及び上限リトライ回数入力欄２１０４にそれぞれファイル名、メールアドレス、及び上限リトライ回数が指定されたものとする。そして、図１０に示すアプリ画面２１００において、ユーザにより、スキャン実行ボタン２１０５が押下され、スキャン実行操作がなされたものとする。
【０１０７】
すると、機器２０のブラウザ２１０は、ユーザ指定情報及びスキャン実行操作を受け付ける（ステップＳ８０５）。なお、ユーザ指定情報とは、ファイル名入力欄２１０２、送信先メールアドレス入力欄２１０３、及び上限リトライ回数入力欄２１０４にそれぞれ指定されたファイル名、メールアドレス、及び上限リトライ回数である。
【０１０８】
例えば、ファイル名入力欄２１０２に「ｔｅｓｔ．ｐｄｆ」、送信先メールアドレス入力欄２１０３に「ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ」、上限リトライ回数入力欄２１０４に「３」が指定されたとする。この場合、ユーザ指定情報には、例えば、「"ｔｏ"："ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ"」と、「"ｆｉｌｅｎａｍｅ"："ｔｅｓｔ．ｐｄｆ"」と、「"ｒｅｔｒｙ"："３"」とが含まれる。
【０１０９】
次に、機器２０のブラウザ２１０は、スキャン実行操作を受け付けると、スキャナ２６により原稿を読み取って、電子ファイル（画像ファイル）を生成する（ステップＳ８０６）。
【０１１０】
次に、機器２０のブラウザ２１０は、電子ファイルが生成されると、アプリケーションの実行要求を、Ｗｅｂサービス処理部１２０のアプリ実行部１２２に送信する（ステップＳ８０７）。
【０１１１】
なお、当該実行要求は、例えば、ＨＴＴＰリクエストであり、「スキャン  Ｔｏ  メール配信」サービスを実現する一連の処理が定義された処理フロー情報１１００のフローＩＤと、上記のステップＳ８０６で生成された電子ファイルと、ユーザ指定情報とが含まれる。
【０１１２】
ただし、アプリケーションの実行要求には、フローＩＤに代えて、例えば、アプリ情報１０００のＵＲＬ、上記のステップＳ８０４で表示したアプリ画面２１００の画面ＩＤ、スキャン実行ボタン２１０５のボタンＩＤ等が含まれていても良い。すなわち、アプリケーションの実行要求には、フローＩＤに代えて、後述するステップＳ８０８でフローＩＤに変換することができる種々の識別情報が含まれていても良い。
【０１１３】
Ｗｅｂサービス処理部１２０のアプリ実行部１２２は、アプリケーションの実行要求を受信すると、当該要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ８０８）。なお、アプリ実行部１２２は、例えば、アプリ情報１０００のＵＲＬ、アプリ画面２１００の画面ＩＤ、スキャン実行ボタン２１０５のボタンＩＤ等がアプリケーションの実行要求に含まれている場合には、これらの識別情報をフローＩＤに変換する。
【０１１４】
次に、入出力サービス処理部１１０のロジック処理部１１２は、アプリケーションの実行要求を受信すると、フロー実行部３０１により、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ８０９）。なお、当該取得要求には、フローＩＤが含まれる。
【０１１５】
アプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローＩＤにより識別される処理フロー情報１１００をアプリ情報記憶部１４０から取得する（ステップＳ８１０）。
【０１１６】
そして、アプリ管理部１１１は、アプリ情報記憶部１４０から取得した処理フロー情報１１００をロジック処理部１１２に返信する。ここで、以降では、アプリ管理部１１１は、図７に示す処理フロー情報１１００をロジック処理部１１２に返信したものとして説明する。
【０１１７】
次に、ロジック処理部１１２は、アプリ管理部１１１から処理フロー情報１１００を受信すると、当該処理フロー情報１１００に基づく処理フローの実行処理を行う（ステップＳ８１１）。すなわち、ロジック処理部１１２は、「スキャン  Ｔｏ  メール配信」サービスを実現する一連の処理（処理フロー）の実行処理を行う。なお、処理フローの実行処理の詳細については後述する。
【０１１８】
そして、ロジック処理部１１２は、処理フローの実行処理の処理結果を、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。これにより、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に基づく一連の処理（処理フロー）により実現される各種のサービス（例えば、「スキャン  Ｔｏ  メール配信」サービス）を提供することができる。
【０１１９】
なお、図８に示す「スキャン  Ｔｏ  メール配信」サービスの全体処理では、ブラウザ２１０は、Ｗｅｂサービス処理部１２０を介して、アプリケーションの実行要求をロジック処理部１１２に送信しているが、これに限られない。ブラウザ２１０は、例えば、画面情報２０００に定義されたＪａｖａＳｃｒｉｐｔ等に基づいてＷｅｂＡＰＩを呼び出すことにより、Ｗｅｂサービス処理部１２０を介さずに、直接、アプリケーションの実行要求をロジック処理部１１２に送信しても良い。
【０１２０】
ここで、以降では、「スキャン  Ｔｏ  メール配信」サービスを実現する処理フローの実行処理（図８のステップＳ８１１の処理）の詳細について説明する。
【０１２１】
まず、「スキャン  Ｔｏ  メール配信」サービスを実現する処理フローが正常に終了に場合について、図１１を参照しながら説明する。図１１は、本実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【０１２２】
まず、フロー実行部３０１は、図８のステップＳ８０９でアプリ管理部１１１から返信された処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１１０１）。すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００の処理定義１１０４の「"ｃｏｍｐｏｎｅｎｔ"」に定義されている「"ｏｃｒ"」を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１２３】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、当該取得要求に含まれる「"ｏｃｒ"」に対応するＯＣＲコンポーネント１３１０を生成する（ステップＳ１１０２）。なお、ＯＣＲコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１２４】
そして、コンポーネント管理部３０２は、生成したＯＣＲコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、ＯＣＲコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１２５】
フロー実行部３０１は、ＯＣＲコンポーネント１３１０が返信されると、コンポーネントの処理実行要求を、当該ＯＣＲコンポーネント１３１０に送信する（ステップＳ１１０３）。なお、コンポーネントの処理実行要求には、データと、パラメータ情報とが含まれる。
【０１２６】
ここで、上記のステップＳ１１０３において、データとは、データ型「ＩｎｐｕｔＳｔｒｅａｍ」として、アプリ実行部１２２から受信した電子ファイル（アプリケーションの実行要求に含まれる電子ファイル）である。すなわち、フロー実行部３０１は、アプリ実行部１２２から受信した電子ファイルを、単に「データ」として（データ型を意識することなく）、ＯＣＲコンポーネント１３１０に送信する。以降では、このようにデータ型を意識しない電子ファイル等を、単に「データ」と表す。
【０１２７】
また、上記のステップＳ１１０３において、パラメータ情報とは、図７に示す処理フロー情報１１００の処理定義１１０４の「"ｐａｒａｍｅｔｅｒｓ"」に定義されている各パラメータ情報である。すなわち、上記のステップＳ１１０３におけるコンポーネントの処理実行要求には、パラメータ情報「"ｌａｎｇｕａｇｅ"："Ｅｎｇｌｉｓｈ"」と、パラメータ情報「"ｏｕｔｐｕｔＴｙｐｅ"："ｐｄｆ"」とが含まれる。
【０１２８】
ＯＣＲコンポーネント１３１０は、コンポーネントの処理実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１１０４）。なお、当該型変換要求には、データと、ＯＣＲコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１２９】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１１０５）。
【０１３０】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０１３１】
すると、型変換管理部３０４は、図６に示す型変換情報テーブル３０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ１１０６）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０１３２】
次に、型変換管理部３０４は、型変換処理の実行要求を第１の型変換１４１０に送信する（ステップＳ１１０７）。なお、当該実行要求には、データが含まれる。
【０１３３】
第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ１１０８）。そして、第１の型変換１４１０は、データ型が変換されたデータを型変換管理部３０４に返信する。その後、型変換管理部３０４は、第１の型変換１４１０からデータを受信すると、当該データをＯＣＲコンポーネント１３１０に送信する。
【０１３４】
ＯＣＲコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、当該データに対して処理を実行する（ステップＳ１１０９）。
【０１３５】
すなわち、ＯＣＲコンポーネント１３１０は、ドキュメントサービス部１３０のＯＣＲ処理部１３１により、当該データ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」）により示される電子ファイルに対してＯＣＲ処理を行う。このとき、ＯＣＲコンポーネント１３１０は、ＯＣＲ言語を「英語」として、当該電子ファイルに対してＯＣＲ処理を行った上で、ＯＣＲ処理後の電子ファイルのデータ形式を「ＰＤＦ」とする。
【０１３６】
そして、ＯＣＲコンポーネント１３１０は、処理結果を示すデータをフロー実行部３０１に返信する。なお、ここで返信されるデータは、ＯＣＲコンポーネント１３１０によりＯＣＲ処理された電子ファイルを示すデータ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」）である。
【０１３７】
次に、フロー実行部３０１は、図８のステップＳ８０９でアプリ管理部１１１から返信された処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１１１０）。すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００の処理定義１１０５の「"ｃｏｍｐｏｎｅｎｔ"」に定義されている「"ｍａｉｌ"」を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１３８】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、当該取得要求に含まれる「"ｍａｉｌ"」に対応するメール配信コンポーネント１３２０を生成する（ステップＳ１１１１）。なお、メール配信コンポーネント１３２０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１３９】
そして、コンポーネント管理部３０２は、生成したメール配信コンポーネント１３２０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、メール配信コンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１４０】
フロー実行部３０１は、メール配信コンポーネント１３２０が返信されると、コンポーネントの処理実行要求を、当該メール配信コンポーネント１３２０に送信する（ステップＳ１１１２）。なお、コンポーネントの処理実行要求には、データと、パラメータ情報とが含まれる。
【０１４１】
ここで、上記のステップＳ１１１２において、データとは、ＯＣＲコンポーネント１３１０から返信されたデータ（すなわち、ＯＣＲ処理された電子ファイルを示すデータ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」））である。
【０１４２】
また、上記のステップＳ１１１２において、パラメータ情報とは、図７に示す処理フロー情報１１００の処理定義１１０５の「"ｐａｒａｍｅｔｅｒｓ"」に定義されている各パラメータ情報である。
【０１４３】
すなわち、上記のステップＳ１１１２におけるコンポーネントの処理実行要求には、パラメータ情報「"ｆｒｏｍ"："ｈｏｇｅ＠ｈｕｇａ．ｃｏｍ"」と、パラメータ情報「"ｔｏ"；ｎｕｌｌ」と、パラメータ情報「"ｆｉｌｅｎａｍｅ"；ｎｕｌｌ」とが含まれる。また、上記のステップＳ１１１２におけるコンポーネントの処理実行要求には、アプリ実行部１２２から受信したユーザ指定情報「"ｔｏ"："ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ"」と、ユーザ指定情報「"ｆｉｌｅｎａｍｅ"："ｔｅｓｔ．ｐｄｆ"」とが含まれる。
【０１４４】
メール配信コンポーネント１３２０は、コンポーネントの処理実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１１１３）。なお、当該型変換要求には、データと、メール配信コンポーネント１３２０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１４５】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１１１４）。
【０１４６】
ここで、型変換要求に含まれるデータのデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」であり、指定されたデータ型も「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【０１４７】
すると、型変換管理部３０４は、型変換要求に含まれるデータをメール配信コンポーネント１３２０に返信する。このように、データ型のチェック（ステップＳ１１１４の処理）において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部３０４は、型変換の生成を行わない。
【０１４８】
メール配信コンポーネント１３２０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、当該データに対して処理を実行する（ステップＳ１１１５）。すなわち、メール配信コンポーネント１３２０は、ドキュメントサービス部１３０のメール配信部１３２により、パラメータ情報を用いて、当該データにより示される電子ファイルを添付したメールを配信する。
【０１４９】
より具体的には、メール配信コンポーネント１３２０は、まず、パラメータ情報にユーザ指定情報を定義して、「"ｔｏ"："ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ"」及び「"ｆｉｌｅｎａｍｅ"："ｔｅｓｔ．ｐｄｆ"」とする。次に、メール配信コンポーネント１３２０は、メール配信部１３２により、送信元メールアドレスが「ｈｏｇｅ＠ｈｕｇａ．ｃｏｍ」であり、当該データにより示される電子ファイルのファイル名を「ｔｅｓｔ．ｐｄｆ」とした電子ファイルを添付したメールを作成する。最後に、メール配信コンポーネント１３２０は、メール配信部１３２により、作成したメールを「ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ」宛に配信（送信）する。
【０１５０】
そして、メール配信コンポーネント１３２０は、処理結果を示すデータをフロー実行部３０１に返信する。なお、ここで返信されるデータは、例えば、メール配信コンポーネント１３２０により正常にメールが配信されたことを示す情報等である。
【０１５１】
以上のように、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に基づいて、各コンポーネントによる処理をそれぞれ行うことで、一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システム１０は、当該一連の処理により実現される各種のサービスを提供することができる。
【０１５２】
次に、「スキャン  Ｔｏ  メール配信」サービスを実現する処理フローでエラー等が発生する場合について、図１２を参照しながら説明する。図１２は、本実施形態に係る処理フローの実行処理の他の例を示すシーケンス図である。以降では、ＯＣＲコンポーネント１３１０によるＯＣＲ処理でエラー等が発生する場合について説明する。なお、図１２のステップＳ１１０１〜ステップＳ１１０８の処理は、図１１のステップＳ１１０１〜ステップＳ１１０８の処理と同様であるため、その説明を省略する。
【０１５３】
ステップＳ１１０８に続いて、ＯＣＲコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、パラメータ情報を用いて、当該データに対して処理を実行する（ステップＳ１２０１）。ここで、本ステップの処理の実行中に、例えば、一時的なメモリ不足等により、エラーが発生したものとする。
【０１５４】
この場合、ＯＣＲコンポーネント１３１０は、処理結果としてエラー情報をフロー実行部３０１に返信する。
【０１５５】
フロー実行部３０１は、エラー情報を受信すると、アプリ実行部１２２から受信した上限リトライ回数と、処理フロー情報１１００に基づく一連の処理の実行をリトライした回数（リトライ回数）とに基づいて、リトライ可否を判定する（ステップＳ１２０２）。すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）のリトライ回数が、上限リトライ回数に達しているか否かを判定する。
【０１５６】
フロー実行部３０１は、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）のリトライ回数が、上限リトライ回数に達していない場合、リトライ回数に「１」を加算する（ステップＳ１２０３）。
【０１５７】
そして、ステップＳ１２０３に続いて、フロー実行部３０１は、再度、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行処理を行う（ステップＳ８１１）。すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行をリトライする。
【０１５８】
なお、フロー実行部３０１は、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）の実行をリトライする場合には、既に生成されているコンポーネント（すなわち、この場合、ＯＣＲコンポーネント１３１０）の生成は行わなくても良い。
【０１５９】
このように、本実施形態に係るサービス提供システム１０は、サービスを実現する一連の処理でエラー等が発生した場合、当該一連の処理の実行をリトライする。これにより、本実施形態に係るサービス提供システム１０では、例えば、一時的なメモリ不足やネットワークの一時的な瞬断等によるエラー等が発生した場合であっても、自動的に一連の処理（処理フロー）を再実行することができる。
【０１６０】
したがって、本実施形態に係る情報処理システム１によれば、機器２０のユーザは、一連の処理（処理フロー）で上記のようなエラー等が発生した場合には、当該一連の処理の実行操作を再度行う必要がない。
【０１６１】
一方で、フロー実行部３０１は、図７に示す処理フロー情報１１００に基づく一連の処理（処理フロー）のリトライ回数が、上限リトライ回数に達している場合、処理を終了する。
【０１６２】
ここで、図１２のステップＳ１２０２において、フロー実行部３０１は、アプリ実行部１２２から受信した上限リトライ回数（すなわち、ユーザにより指定された上限リトライ回数）と、リトライ回数とに基づいて、リトライ可否を判定したが、これに限られない。上限リトライ回数は、例えば、処理フロー情報１１００に定義されていても良い。
【０１６３】
すなわち、例えば、図１３に示すように、処理フロー情報１１００には、上限リトライ回数定義１３０１が定義されていても良い。
【０１６４】
この場合、上記のステップＳ１２０２において、フロー実行部３０１は、処理フロー情報１１００の上限リトライ回数定義１３０１に定義されている上限リトライ回数と、リトライ回数とに基づいて、リトライ可否を判定しても良い。これにより、ユーザは、例えば図１０に示すアプリ画面２１００において、上限リトライ回数を指定してなくても良くなる。
【０１６５】
［第二の実施形態］
次に、第二の実施形態について説明する。第二の実施形態は、一連の処理（処理フロー）で発生したエラーを識別するエラーコードに基づいて、リトライ可否を判定するものである。これにより、第二の実施形態では、一連の処理（処理フロー）で発生したエラーに応じて、リトライ可否を判定することができるようになる。
【０１６６】
なお、第二の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
【０１６７】
＜機能構成＞
まず、本実施形態に係るサービス提供システム１０のロジック処理部１１２の機能構成について、図１４を参照しながら説明する。図１４は、本実施形態に係るロジック処理部１１２の一例の機能構成を示す図である。
【０１６８】
本実施形態に係るロジック処理部１１２は、エラーコード情報テーブル４０００を有する点が第一の実施形態と異なる。
【０１６９】
ここで、エラーコード情報テーブル４０００について、図１５を参照しながら説明する。図１５は、エラーコード情報テーブル４０００の一例を示す図である。
【０１７０】
図１５に示すエラーコード情報テーブル４０００は、データ項目として、エラーコードと、エラー内容と、リトライ可否とを有する。エラーコードは、コンポーネントで発生したエラーを識別する識別情報である。エラー内容は、エラーコードにより識別されるエラーの内容である。リトライ可否は、エラーコードにより識別されるエラーが発生した場合に、一連の処理（処理フロー）をリトライさせるか否かを示す情報である。
【０１７１】
例えば、エラーコード「ｉｎｖａｌｉｄ＿ｉｎｐｕｔ＿ｐａｒａｍｅｔｅｒ」により識別されるエラーは、エラー内容「入力されたパラメータ情報が不正」、リトライ可否「ｆａｌｓｅ」である。このため、フロー実行部３０１は、エラーコード「ｉｎｖａｌｉｄ＿ｉｎｐｕｔ＿ｐａｒａｍｅｔｅｒ」により識別されるエラーがコンポーネントで発生した場合、一連の処理の実行をリトライしない。
【０１７２】
一方で、例えば、エラーコード「ｎｅｔｗｏｒｋ＿ｔｉｍｅｏｕｔ」により識別されるエラーは、エラー内容「外部サービスへの接続がタイムアウトした」、リトライ可否「ｔｒｕｅ」である。このため、フロー実行部３０１は、エラーコード「ｎｅｔｗｏｒｋ＿ｔｉｍｅｏｕｔ」により識別されるエラーがコンポーネントで発生した場合、一連の処理の実行をリトライする。
【０１７３】
このように、本実施形態に係るサービス提供システム１０は、一連の処理でエラー等が発生した場合に、エラーコード情報テーブル４０００を参照することで、当該一連の処理のリトライ可否を判定する。
【０１７４】
＜処理の詳細＞
次に、「スキャン  Ｔｏ  メール配信」サービスを実現する処理フローでエラー等が発生する場合について、図１６を参照しながら説明する。図１６は、本実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。以降では、ＯＣＲコンポーネント１３１０によるＯＣＲ処理でエラー等が発生する場合について説明する。なお、図１６のステップＳ１１０１〜ステップＳ１１０８及びステップＳ１２０１の処理は、図１２のステップＳ１１０１〜ステップＳ１１０８及びステップＳ１２０１の処理と同様であるため、その説明を省略する。
【０１７５】
ステップＳ１２０１に続いて、フロー実行部３０１は、エラー情報を受信すると、図１５に示すエラーコード情報テーブル４０００を参照して、処理フロー情報１１００に基づく一連の処理のリトライ可否を判定する（ステップＳ１６０１）。
【０１７６】
ここで、フロー実行部３０１は、例えば図１７に示すようなエラー情報をＯＣＲコンポーネント１３１０から受信する。図１７は、エラー情報の一例を示す図である。
【０１７７】
図１７に示すエラー情報には、エラーコードを示す「"ｅｒｒｏｒＣｏｄｅ"」と、発生したエラーのオプション情報を示す「"ｏｐｔｉｏｎ"」と、エラーの発生原因を示す「"ｃａｕｓｅ"」と、エラーの発生時刻を示す「"ｔｉｍｅｓｔａｍｐ"」とが含まれる。
【０１７８】
したがって、フロー実行部３０１は、エラーコード情報テーブル４０００において、受信したエラー情報に含まれる「"ｅｒｒｏｒＣｏｄｅ"」の値に対応するリトライ可否の値を参照することで、処理フロー情報１１００に基づく一連の処理のリトライ可否を判定する。
【０１７９】
このように、本実施形態に係るサービス提供システム１０は、サービスを実現する一連の処理でエラー等が発生した場合、コンポーネントから返信されたエラー情報に含まれるエラーコードからリトライ可否を判定することができる。したがって、本実施形態に係るサービス提供システム１０によれば、一連の処理で発生したエラーに応じて、当該一連の処理の実行をリトライするか否かを判定することができるようになる。
【０１８０】
なお、上記のステップＳ１６０１において、フロー実行部３０１は、上限リトライ回数に基づいてリトライ可否を判定（図１２のステップＳ１２０２の処理）した上で、エラーコードからリトライ可否を判定しても良い。すなわち、フロー実行部３０１は、例えば、リトライ回数が上限リトライ回数に達していない場合に、上記のステップＳ１６０１の判定を行うようにしても良い。
【０１８１】
ここで、図１６のステップＳ１６０１において、フロー実行部３０１は、図１５に示すエラーコード情報テーブル４０００を参照して、処理フロー情報１１００に基づく一連の処理のリトライ可否を判定した。しかし、「リトライ可」と判定された場合であっても、コンポーネントの処理に用いるパラメータ情報の更新が必要となる場合がある。
【０１８２】
例えば、外部サービスの認証情報を示すパラメータ情報がコンポーネントの処理に必要である場合において、当該認証情報の有効期限切れによりエラーが発生した場合である。このような場合、フロー実行部３０１は、当該パラメータ情報の更新をコンポーネントに要求した上で、一連の処理の実行をリトライする必要がある。
【０１８３】
そこで、フロー実行部３０１は、上記のステップＳ１６０１において、図１８に示すエラーコード情報テーブル４０００Ａを参照して、処理フロー情報１１００に基づく一連の処理のリトライ可否を判定しても良い。
【０１８４】
図１８に示すエラーコード情報テーブル４０００Ａは、データ項目として、更に、パラメータ情報更新要否と、対象パラメータ情報とを有する。
【０１８５】
これにより、フロー実行部３０１は、上記のステップＳ１６０１において、「リトライ可」と判定した場合において、該当のパラメータ情報更新要否が「ｔｒｕｅ」である場合には、対象パラメータ情報の更新をコンポーネントに要求する。そして、フロー実行部３０１は、対象パラメータ情報の更新が完了した場合に、一連の処理（処理フロー）の実行をリトライする。
【０１８６】
例えば、フロー実行部３０１は、エラーコードが「ａｕｔｈ＿ｔｉｃｋｅｔ＿ｅｘｐｉｒｅｄ」である場合、対象パラメータ情報「ｔｉｃｋｅｔ」（すなわち、パラメータ名が「ｔｉｃｋｅｔ」のパラメータ情報）の更新をコンポーネントに要求する。そして、フロー実行部３０１は、対象パラメータ情報「ｔｉｃｋｅｔ」の更新が完了した場合に、一連の処理（処理フロー）の実行をリトライする。
【０１８７】
［第三の実施形態］
次に、第三の実施形態について説明する。第三の実施形態は、一連の処理（処理フロー）の進捗状況に基づいて、リトライ可否を判定するものである。
【０１８８】
なお、第三の実施形態の説明では、主に、第一の実施形態との相違点について説明し、第一の実施形態と実質的に同様の機能構成を有する箇所及び実質的に同様の処理を実行する箇所は、適宜、その説明を省略する。
【０１８９】
＜機能構成＞
まず、本実施形態に係るサービス提供システム１０のロジック処理部１１２の機能構成について、図１９を参照しながら説明する。図１９は、本実施形態に係るロジック処理部１１２の一例の機能構成を示す図である。
【０１９０】
本実施形態に係るロジック処理部１１２は、フロー進捗情報テーブル５０００を有する点が第一の実施形態と異なる。
【０１９１】
ここで、フロー進捗情報テーブル５０００について、図２０を参照しながら説明する。図２０は、フロー進捗情報テーブル５０００の一例を示す図である。
【０１９２】
図２０に示すフロー進捗情報テーブル５０００は、データ項目として、フローＩＤと、コンポーネント名と、リトライ可否とを有する。フローＩＤは、処理フロー情報１１００を識別する識別情報である。コンポーネント名は、コンポーネントを識別する識別情報である。リトライ可否は、フローＩＤで識別される処理フロー情報１１００に基づく一連の処理において、当該フローＩＤに対応付けられたコンポーネントの処理でエラーが発生した場合に、当該一連の処理をリトライさせるか否かを示す情報である。
【０１９３】
例えば、フローＩＤ「ｆｌｏｗ００１」には、コンポーネント名「ｏｃｒ」と、リトライ可否「ｔｒｕｅ」とが対応付けられている。このため、フロー実行部３０１は、フローＩＤ「ｆｌｏｗ００１」で識別される処理フロー情報１１００に基づく一連の処理において、ＯＣＲコンポーネント１３１０の処理でエラーが発生した場合には、当該一連の処理の実行をリトライする。
【０１９４】
一方で、例えば、フローＩＤ「ｆｌｏｗ００１」には、コンポーネント名「ｍａｉｌ」と、リトライ可否「ｆａｌｓｅ」とが対応付けられている。このため、フロー実行部３０１は、フローＩＤ「ｆｌｏｗ００１」で識別される処理フロー情報１１００に基づく一連の処理において、メール配信コンポーネント１３２０の処理でエラーが発生した場合には、当該一連の処理の実行をリトライしない。
【０１９５】
このように、本実施形態に係るサービス提供システム１０は、一連の処理でエラー等が発生した場合に、フロー進捗情報テーブル５０００を参照することで、当該一連の処理のリトライ可否を判定する。
【０１９６】
＜処理の詳細＞
次に、「スキャン  Ｔｏ  メール配信」サービスを実現する処理フローでエラー等が発生する場合について、図２１を参照しながら説明する。図２１は、本実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。以降では、ＯＣＲコンポーネント１３１０によるＯＣＲ処理でエラー等が発生する場合について説明する。なお、図２１のステップＳ１１０１〜ステップＳ１１０８及びステップＳ１２０１の処理は、図１２のステップＳ１１０１〜ステップＳ１１０８及びステップＳ１２０１の処理と同様であるため、その説明を省略する。
【０１９７】
ステップＳ１２０１に続いて、フロー実行部３０１は、エラー情報を受信すると、図２０に示すフロー進捗情報テーブル５０００を参照して、処理フロー情報１１００に基づく一連の処理のリトライ可否を判定する（ステップＳ２１０１）。すなわち、フロー実行部３０１は、フロー進捗情報テーブル５０００において、当該処理フロー情報１１００のフローＩＤと、エラー情報の送信元のコンポーネントのコンポーネント名とに対応するリトライ可否の値を参照する。そして、フロー実行部３０１は、当該値（ｔｕｒｅ又はｆａｌｓｅ）に応じて、当該処理フロー情報１１００に基づく一連の処理のリトライ可否を判定する。
【０１９８】
このように、本実施形態に係るサービス提供システム１０は、サービスを実現する一連の処理でエラー等が発生した場合、当該一連の処理が定義された処理フロー情報１１００のフローＩＤと、エラー情報の送信元のコンポーネントのコンポーネント名とからリトライ可否を判定することができる。したがって、本実施形態に係るサービス提供システム１０によれば、一連の処理（処理フロー）の進捗状況（どこまで処理が進んでいるか）に応じて、リトライ可否を判定することができる。
【０１９９】
＜まとめ＞
以上のように、第一の実施形態に係る情報処理システム１では、各種のサービスを実現する一連の処理でエラー等が発生した場合、当該一連の処理の実行をリトライする。このため、第一の実施形態に係る情報処理システム１によれば、機器２０のユーザは、各種のサービスを実現する一連の処理でエラーが発生した場合でも、再実行操作等の行うことなく、当該一連の処理の再実行を行うことができるようになる。
【０２００】
また、第二の実施形態に係る情報処理システム１では、各種のサービスを実現する一連の処理でエラー等が発生した場合、発生したエラーに応じて、当該一連の処理の実行をリトライする。このため、第二の実施形態に係る情報処理システム１では、例えば、リトライすべきでないエラー等が発生した場合には、当該一連の処理の実行をリトライしないようにすることができる。
【０２０１】
更に、第三の実施形態に係る情報処理システム１では、各種のサービスを実現する一連の処理でエラー等が発生した場合、当該一連の処理の進捗状況に応じて、当該一連の処理の実行をリトライする。このため、第三の実施形態に係る情報処理システム１では、例えば、リトライすべきない処理が実行された後にエラー等が発生した場合には、当該一連の処理の実行をリトライしないようにすることができる。
【０２０２】
本発明は、具体的に開示された上記の各実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２０３】
１          情報処理システム
１０        サービス提供システム
２０        機器
１１０      入出力サービス処理部
１１１      アプリ管理部
１１２      ロジック処理部
１２０      Ｗｅｂサービス処理部
１２１      画面構成部
１２２      アプリ実行部
１３０      ドキュメントサービス部
１４０      アプリ情報記憶部
１５０      画面情報記憶部
３０１      フロー実行部
３０２      コンポーネント管理部
３０３      コンポーネント群
３０４      型変換管理部
３０５      型変換群
１０００    アプリ情報
１１００    処理フロー情報
２０００    画面情報
３０００    型変換情報テーブル
【先行技術文献】
【特許文献】
【０２０４】
【特許文献１】特許第４０３９１９１号公報
【図１】
2018032193.tif 000003
【図２】
2018032193.tif 000004
【図３】
2018032193.tif 000005
【図４】
2018032193.tif 000006
【図５】
2018032193.tif 000007
【図６】
2018032193.tif 000008
【図７】
2018032193.tif 000009
【図８】
2018032193.tif 000010
【図９】
2018032193.tif 000011
【図１０】
2018032193.tif 000012
【図１１】
2018032193.tif 000013
【図１２】
2018032193.tif 000014
【図１３】
2018032193.tif 000015
【図１４】
2018032193.tif 000016
【図１５】
2018032193.tif 000017
【図１６】
2018032193.tif 000018
【図１７】
2018032193.tif 000019
【図１８】
2018032193.tif 000020
【図１９】
2018032193.tif 000021
【図２０】
2018032193.tif 000022
【図２１】
2018032193.tif 000023