(57)【要約】【課題】一連の処理の実行前に機器を認証する。【解決手段】所定の処理を実行するプログラムを有する情報処理システムであって、電子データを用いた一連の処理毎に、プログラム識別情報と、実行順とが定義されたフロー情報を、識別情報と関連付けて記憶する記憶手段と、一の機器から、電子データに関する情報と、前記フロー識別情報と、認証情報とを含む要求を受信する受信手段と、前記要求に含まれる前記認証情報に基づいて、前記一の機器の認証を行う認証手段と、前記認証が成功した場合、前記第要求に含まれる前記フロー識別情報と関連付けく前記フロー情報を取得する取得手段と、前記フロー情報に定義されている前記プログラム識別情報に識別されるプログラムそれぞれを、前記実行順に従って実行させることで、前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段とを有する。【選択図】図９
2020123388.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）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００２６】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００２７】
本実施形態に係るサービス提供システム１０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００２８】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０の一例のハードウェア構成を示す図である。
【００２９】
図３に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３０】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３１】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３２】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３３】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００３４】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３５】
＜サービス提供システムが提供するサービス＞
ここで、本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【００３６】
本実施形態に係るサービス提供システム１０は、機器２０において原稿をスキャンして生成された電子ファイル（画像ファイル）をＯＣＲ処理して、ユーザにより指定されたメールアドレス宛にメール配信するサービスを提供する。
【００３７】
以降では、本実施形態に係るサービス提供システム１０は、上述したサービス（「スキャン  Ｔｏ  メール配信」サービス）を提供するものとして説明する。
【００３８】
ただし、サービス提供システム１０が提供するサービスは、これに限られない。サービス提供システム１０は、例えば、機器２０において原稿をスキャンして生成された電子ファイルを圧縮して、リポジトリへ格納するサービスを提供しても良い。また、サービス提供システム１０は、例えば、機器２０において原稿をスキャンして生成された電子ファイルを加工（例えば、当該電子ファイルに所定の文言を付加）して、ファクシミリ送信するサービスを提供しても良い。
【００３９】
また、例えば、機器２０が電子黒板等である場合には、本実施形態に係るサービス提供システム１０は、電子黒板である機器２０により生成された電子ファイルを加工して、メール配信するサービス等を提供しても良い。
【００４０】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、本実施形態に係る情報処理システム１の一例の機能構成を示す図である。
【００４１】
図４に示す機器２０は、例えばＣＰＵ３１等により実行されるクライアントアプリケーション２１０を有する。クライアントアプリケーション２１０は、サービス提供システム１０が提供するサービスを利用するためのアプリケーションプログラムである。ユーザは、機器２０にインストールされたクライアントアプリケーション２１０を用いて、サービス提供システム１０が提供する「スキャン  Ｔｏ  メール配信」サービスを利用することができる。なお、クライアントアプリケーション２１０には、当該クライアントアプリケーション２１０を識別するアプリＩＤが付与されている。
【００４２】
図４に示すサービス提供システム１０は、入出力サービス処理部１１０と、認証サービス部１２０と、ドキュメントサービス部１３０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００４３】
また、図５に示すサービス提供システム１０は、アプリ情報記憶部１４０と、ジョブ情報記憶部１５０と、参照情報記憶部１６０とを有する。これら各記憶部は、ＨＤＤ１８を用いて実現可能である。なお、これら各記憶部のうちの少なくとも一の記憶部が、サービス提供システム１０とネットワークＮ１を介して接続される記憶装置等を用いて実現されていても良い。
【００４４】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２と、ジョブ管理部１１３とを有する。
【００４５】
アプリ管理部１１１は、アプリ情報記憶部１４０に記憶されているアプリ情報１０００と、参照情報記憶部１６０に記憶されている参照情報を管理する。
【００４６】
なお、アプリ情報１０００とは、一連の処理により実現されるサービスを提供するためのアプリケーションである。すなわち、サービス提供システム１０が提供する各種のサービス（例えば、「スキャン  Ｔｏ  メール配信」サービス）は、アプリ情報１０００により提供される。また、参照情報とは、クライアントアプリケーション２１０やアプリ情報１０００等が、他のクライアントアプリケーション２１０やアプリ情報１０００等により実行されたジョブの情報（ジョブ情報）を参照可能であるか否かを判定するための情報である。
【００４７】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００とは、アプリ情報１０００により提供されるサービスを実現する一連の処理が定義された情報である。
【００４８】
ロジック処理部１１２は、クライアントアプリケーション２１０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、ロジック処理部１１２は、アプリ管理部１１１から取得した処理フロー情報１１００に基づいて、当該アプリ情報１０００が提供するサービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システム１０は、各種のサービス（例えば、「スキャン  Ｔｏ  メール配信」サービス）を提供することができる。
【００４９】
ジョブ管理部１１３は、ジョブ情報記憶部１５０に記憶されているジョブ情報を管理する。なお、ジョブ情報とは、ジョブに関する各種情報（例えば、ジョブの作成日や状態等）が含まれる情報である。また、ジョブとは、各種のサービスを実現する一連の処理（処理フロー）を１つの実行単位とした概念である。
【００５０】
認証サービス部１２０は、クライアントアプリケーション２１０が入出力サービス処理部１１０に各種要求を行う際に、様々な認証方式により認証を行う。
【００５１】
ドキュメントサービス部１３０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ここで、ドキュメントサービス部１３０は、ＯＣＲ処理部１３１と、メール配信部１３２とを有する。
【００５２】
ＯＣＲ処理部１３１は、電子ファイル（画像ファイル）に対してＯＣＲ処理を行う。メール配信部１３２は、電子ファイルを添付したメールを作成して、当該メールを指定されたメールアドレス宛に配信する。
【００５３】
なお、ドキュメントサービス部１３０は、例えば、電子ファイルのデータ形式を所定のデータに変換するデータ変換部、電子ファイルを圧縮又は解凍する圧縮・解凍部等を有していても良い。
【００５４】
このように、ドキュメントサービス部１３０には、一連の処理（処理フロー）に含まれる所定の処理を実行する種々の機能部が含まれる。したがって、ドキュメントサービス部１３０は、これら種々の機能を提供するプログラム（モジュール）群により実現される。
【００５５】
アプリ情報記憶部１４０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１４０に記憶されている。したがって、アプリＩＤは、クライアントアプリケーション２１０及びアプリ情報１０００を識別する識別情報である。
【００５６】
ここで、アプリ情報１０００には、処理フロー情報１１００が含まれる。例えば、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００には、当該サービスを実現する一連の処理が定義された処理フロー情報１１００が含まれる。すなわち、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００には、スキャンにより生成された電子ファイルをＯＣＲ処理した後、指定されたメールアドレス宛にメール配信する処理が定義された処理フロー情報１１００が含まれる。
【００５７】
なお、アプリ情報１０００には、２以上の処理フロー情報１１００が含まれていても良い。例えば、「スキャン  Ｔｏ  メール配信」を提供するアプリ情報１０００には、英語でＯＣＲ処理した後、メール配信する処理が定義された処理フロー情報１１００Ａと、日本語でＯＣＲ処理した後、メール配信する処理が定義された処理フロー情報１１００Ｂとが含まれていても良い。
【００５８】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。処理フロー情報１１００には、当該処理フロー情報１１００を識別するフローＩＤが付与されている。なお、処理フロー情報１１００の詳細については後述する。
【００５９】
ジョブ情報記憶部１５０は、ジョブ情報を記憶する。参照情報記憶部１６０は、参照情報を記憶する。ジョブ情報及び参照情報の詳細については後述する。
【００６０】
なお、入出力サービス処理部１１０、認証サービス部１２０、及びドキュメントサービス部１３０は、それぞれが異なる情報処理装置により実現されていても良い。
【００６１】
ここで、ロジック処理部１１２の詳細な機能構成について、図５を参照しながら説明する。図５は、本実施形態に係るロジック処理部１１２の一例の機能構成図である。
【００６２】
図５に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、型変換管理部３０４と、型変換群３０５とを有する。また、ロジック処理部１１２は、型変換情報テーブル３０００を有する。
【００６３】
フロー実行部３０１は、認証サービス部１２０を介して、クライアントアプリケーション２１０からアプリケーションの実行要求を受信すると、当該実行要求に対応するアプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００６４】
ここで、処理フロー情報１１００に基づく一連の処理は、当該一連の処理に含まれる各処理を実行するためのコンポーネントを組み合わせることにより実行される。なお、コンポーネントは、所定の機能を実現する処理を実行するためのプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。
【００６５】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００６６】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、ＯＣＲコンポーネント１３１０と、メール配信コンポーネント１３２０とが含まれる。
【００６７】
ＯＣＲコンポーネント１３１０は、電子ファイルをＯＣＲ処理するためのコンポーネントである。ＯＣＲコンポーネント１３１０は、ドキュメントサービス部１３０のＯＣＲ処理部１３１にＯＣＲ処理を要求することにより、電子ファイルのＯＣＲ処理を行う。
【００６８】
メール配信コンポーネント１３２０は、指定されたメールアドレス宛にメール配信するためのコンポーネントである。メール配信コンポーネント１３２０は、ドキュメントサービス部１３０のメール配信部１３２にメール配信処理を要求することにより、指定されたメールアドレス宛にメールを配信する。
【００６９】
このように、各コンポーネントは、ドキュメントサービス部１３０を利用して、所定の機能を実現する処理を実行する。なお、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルのデータ形式を所定のデータ形式に変換するための変換コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等の各種のコンポーネントが含まれる。
【００７０】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩ（Application Programming Interface）であり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【００７１】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【００７２】
型変換管理部３０４は、データ型の型変換を管理する。ここで、各コンポーネントは、自身が扱えるデータ型が予め決まっている。したがって、型変換管理部３０４は、コンポーネントからの要求に応じて、例えば図６に示す型変換情報テーブル３０００を参照して、型変換群３０５に含まれる型変換を生成する。
【００７３】
そして、型変換管理部３０４は、生成された型変換に型変換処理の実行を要求する。なお、型変換は、データ型の型変換処理を実行するプログラムやモジュール等により実現され、例えばクラスや関数等で定義される。また、型変換の生成とは、例えばクラスや関数等で定義された型変換を、メモリ（例えばＲＡＭ１４上）に展開することである。
【００７４】
なお、データ型には、例えば、ストリームデータを示すデータ型「ＩｎｐｕｔＳｔｒｅａｍ」、記憶装置等に格納されている電子ファイルのパス（アドレス）を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」、及び電子ファイルの実体を示す「Ｆｉｌｅ」等が挙げられる。
【００７５】
ここで、型変換情報テーブル３０００について、図６を参照しながら説明する。図６は、型変換情報テーブルの一例を示す図である。
【００７６】
図６に示す型変換情報テーブル３０００は、データ項目として、変換前のデータ型と、変換後のデータ型と、生成する型変換とを有する。すなわち、型変換情報テーブル３０００に格納されている型変換情報は、変換前のデータ型及び変換後のデータ型毎に、当該変換前のデータ型を、当該変換後のデータ型に変換するための型変換が関連付けられた情報である。
【００７７】
型変換群３０５は、型変換の集合である。型変換群３０５には、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための第１の型変換１４１０が含まれる。なお、型変換群３０５には、これ以外にも、例えば、データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」を「Ｆｉｌｅ」に変換するための第２の型変換等が含まれる。
【００７８】
また、型変換群３０５に含まれる各型変換は、型変換共通Ｉ／Ｆ１４００を有する。型変換共通Ｉ／Ｆ１４００は、各型変換に対して共通に定義されたＡＰＩであり、型変換を生成するためのＡＰＩと、型変換の型変換処理を実行するためのＡＰＩとが含まれる。
【００７９】
このように、各型変換が型変換共通Ｉ／Ｆ１４００を有することで、型変換の追加等に伴う影響を局所化することができる。すなわち、例えば、型変換管理部３０４等に影響を与えることなく、型変換の追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、型変換の追加等に伴う開発工数を削減することができる。
【００８０】
ここで、ジョブ管理部１１３の詳細な機能構成について、図７を参照しながら説明する。図７は、本実施形態に係るジョブ管理部１１３の一例の機能構成を示す図である。
【００８１】
図７に示すジョブ管理部１１３は、ジョブ情報管理部４０１と、アクセス制御部４０２とを有する。
【００８２】
ジョブ情報管理部４０１は、ロジック処理部１１２からジョブ情報の登録要求を受信すると、ジョブ情報を作成して、ジョブ情報記憶部１５０に記憶する。これにより、ジョブ情報がサービス提供システム１０に登録される。
【００８３】
また、ジョブ情報管理部４０１は、アクセス制御部４０２からジョブ情報の取得要求を受信すると、ジョブ情報をジョブ情報記憶部１５０から取得する。そして、ジョブ情報管理部４０１は、取得したジョブ情報をアクセス制御部４０２に返信する。
【００８４】
アクセス制御部４０２は、認証サービス部１２０を介して、クライアントアプリケーション２１０からジョブ情報の参照要求を受信すると、ジョブの情報取得要求をジョブ情報管理部４０１に送信する。
【００８５】
また、アクセス制御部４０２は、ジョブ情報管理部４０１からジョブ情報が返信されると、アプリ管理部１１１を介して、参照情報に含まれるアプリＩＤ（後述する参照可能アプリＩＤ）を取得する。そして、アクセス制御部４０２は、ジョブ情報管理部４０１から返信されたジョブ情報をクライアントアプリケーション２１０が参照可能か否かを判定するためのアクセス権チェックを行う。
【００８６】
なお、参照情報には、クライアントアプリケーション２１０又はアプリ情報１０００のアプリＩＤと、当該クライアントアプリケーション２１０又はアプリ情報１０００が参照可能な他のアプリケーションのアプリＩＤ（参照可能アプリＩＤ）が関連付けられている。
【００８７】
これにより、クライアントアプリケーション２１０等が、他のアプリケーション（他のクライアントアプリケーション２１０や他のアプリ情報１０００）のジョブ情報を参照する場合のアクセス制御が行われる。
【００８８】
ここで、「スキャン  Ｔｏ  メール配信」サービスを提供するアプリ情報１０００に含まれる処理フロー情報１１００について、図８を参照しながら説明する。図８は、処理フロー情報１１００の一例を示す図である。
【００８９】
図８に示す処理フロー情報１１００は、「スキャン  Ｔｏ  メール配信」サービスを実現する一連の処理（処理フロー）が定義された情報である。すなわち、図８に示す処理フロー情報１１００には、フローＩＤ１１０１と、「スキャン  Ｔｏ  メール配信」サービスを実現する一連の処理を構成する各処理をそれぞれ示す処理定義１１０２及び処理定義１１０３とが定義されている。
【００９０】
フローＩＤ１１０１は、図８に示す処理フロー情報１１００を識別するフローＩＤである。
【００９１】
処理定義１１０２及び処理定義１１０３は、「コンポーネント名：処理内容？オプションパラメータ」の形式で定義される。なお、オプションパラメータは、例えば、コンポーネント名及び処理内容で示されるコンポーネントが処理を行うのに必要である場合に限り、定義されていれば良い（すなわち、オプションパラメータの定義は任意である。）。また、複数のオプションパラメータを定義する場合には、オプションパラメータ同士を「＆」で結合することにより定義する。
【００９２】
処理定義１１０２には、「ｏｃｒ：ｏｃｒ＿ｐｒｏｃｅｓｓ」が定義されている。これは、ＯＣＲコンポーネント１３１０によりＯＣＲ処理を行うこと意味している。なお、処理定義１１０２には、オプションパラメータは定義されていない。
【００９３】
処理定義１１０３には、「ｍａｉｌ：ｓｅｎｄ」が定義されている。これは、メール配信コンポーネント１３２０によりメール配信処理を行うことを意味している。
【００９４】
また、処理定義１１０３には、「？ｍａｉｌ＿ａｄｄｒｅｓｓ＝ｎｕｌｌ＆ｆｉｌｅｎａｍｅ＝ｎｕｌｌ」が定義されている。これは、「ｍａｉｌ＿ａｄｄｒｅｓｓ」に指定されたメールアドレス宛に、「ｆｉｌｅｎａｍｅ」に指定されたファイル名の電子ファイルをメール配信することを意味している。なお、図８に示す例では、「ｍａｉｌ＿ａｄｄｒｅｓｓ」及び「ｆｉｌｅｎａｍｅ」には値が指定されていない（すなわち、ｎｕｌｌである。）。
【００９５】
このように、処理フロー情報１１００には、一連の処理（処理フロー）を構成する各処理の処理定義が定義されている。これにより、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に含まれる各処理定義に従って、各コンポーネントによる処理を行うことで、アプリ情報１０００により提供されるサービスを実現する一連の処理を実行することができる。
【００９６】
なお、図８に示す処理フロー情報１１００に含まれる各処理定義に定義された処理は、上から順に実行される。すなわち、図８に示す処理フロー情報１１００に基づく一連の処理では、処理定義１１０２に定義された処理、処理定義１１０３に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報１１００には、例えば、各処理定義に定義された処理の実行順を示す情報が定義されていても良い。
【００９７】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。まず、機器２０のユーザが、「スキャン  Ｔｏ  メール配信」サービスを利用する場合の全体的な処理について、図９を参照しながら説明する。図９は、サービス利用の全体処理の一例を示すシーケンス図である。
【００９８】
まず、クライアントアプリケーション２１０は、例えば図１０に示すサービス利用画面２１００を表示する（ステップＳ９０１）。このようなサービス利用画面２１００は、例えば、ユーザがサービス利用画面２１００の表示操作を行うことにより表示される。
【００９９】
図１０に示すサービス利用画面２１００には、ファイル名入力欄２１０１と、メールアドレス入力欄２１０２と、スキャン実行ボタン２１０３とが含まれる。
【０１００】
ファイル名入力欄２１０１は、メールに添付する電子ファイル（すなわち、スキャンにより生成された電子ファイルをＯＣＲ処理した電子ファイル）のファイル名をユーザが指定する入力エリアである。メールアドレス入力欄２１０２は、メールの配信先となるメールアドレスをユーザが指定する入力エリアである。スキャン実行ボタン２１０３は、原稿のスキャンを実行して、サービスの利用を開始するためのボタンである。
【０１０１】
ここで、図１０に示すサービス利用画面２１００において、ユーザにより、ファイル名入力欄２１０１及びメールアドレス入力欄２１０２にファイル名及びメールアドレスが指定された上で、スキャン実行ボタン２１０３を押下してスキャン実行操作がなされたものとする。
【０１０２】
すると、クライアントアプリケーション２１０は、原稿をスキャナ２６で読み取ることで画像ファイル（スキャン画像ファイル）を作成する（ステップＳ９０２）。
【０１０３】
ここで、クライアントアプリケーション２１０は、認証サービス部１２０との間の認証方式が「アプリ認証」である場合、クライアントＩＤとクライアントシークレットとを含む処理フローの実行要求を認証サービス部１２０に送信する（ステップＳ９０３）。
【０１０４】
なお、クライアントＩＤは、例えば、クライアントアプリケーション２１０のアプリＩＤである。また、クライアントシークレットは、クライアントＩＤに対するパスワード等である。すなわち、処理フローの実行要求には、認証情報として、クライアントＩＤとクライアントシークレットとが含まれている。
【０１０５】
また、処理フローの実行要求には、フローＩＤ、スキャン画像ファイル、及びユーザ指定情報も含まれる。なお、ユーザ指定情報とは、ファイル名入力欄２１０１及びメールアドレス入力欄２１０２にそれぞれ指定されたファイル名及びメールアドレスである。
【０１０６】
例えば、ファイル名入力欄２１０１に「ｔｅｓｔ．ｐｄｆ」、メールアドレス入力欄２１０２に「ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ」が指定されたとする。この場合、ユーザ指定情報は、「ｍａｉｌ＿ａｄｄｒｅｓｓ＝ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ」と、「ｆｉｌｅｎａｍｅ＝ｔｅｓｔ．ｐｄｆ」とを含む情報である。
【０１０７】
次に、認証サービス部１２０は、処理フローの実行要求を受信すると、当該実行要求に含まれるクライアントＩＤ及びクライアントシークレットに基づいて、アプリ認証を行う（ステップＳ９０４）。すなわち、認証サービス部１２０は、当該実行要求に含まれるクライアントＩＤ及びクライアントシークレットの組が、予め決められたクライアントＩＤ及びクライアントシークレットの組と一致するか否かを判定することで、アプリ認証を行う。
【０１０８】
そして、認証サービス部１２０は、アプリ認証に成功した場合、処理フローの実行要求をロジック処理部１１２に送信する（ステップＳ９０５）。なお、処理フローの実行要求には、フローＩＤと、スキャン画像ファイルと、ユーザ指定情報と、アプリＩＤとが含まれる。
【０１０９】
なお、認証サービス部１２０は、上記のステップＳ９０４でアプリ認証に失敗した場合、例えば、アプリ認証に失敗したことを示す通知をクライアントアプリケーション２１０に返信する。
【０１１０】
クライアントアプリケーション２１０は、認証サービス部１２０との間の認証方式が「ユーザ認証」である場合、テナントＩＤと、ユーザＩＤと、パスワードとを含む処理フローの実行要求を認証サービス部１２０に送信する（ステップＳ９０６）。
【０１１１】
なお、テナントＩＤは、例えば、クライアントアプリケーション２１０が搭載された機器２０のユーザが属するグループや会社等の組織を識別する識別情報である。また、ユーザＩＤは、例えば、クライアントアプリケーション２１０が搭載された機器２０のユーザを識別する識別情報である。すなわち、処理フローの実行要求には、認証情報として、テナントＩＤと、ユーザＩＤと、パスワードとが含まれている。
【０１１２】
テナントＩＤ、ユーザＩＤ、及びパスワードは、例えば、図１０に示すサービス利用画面２１００において、ユーザにより入力されても良い。なお、処理フローの実行要求には、上記と同様に、フローＩＤ、スキャン画像ファイル、及びユーザ指定情報も含まれる。
【０１１３】
次に、認証サービス部１２０は、処理フローの実行要求を受信すると、当該実行要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードに基づいて、ユーザ認証を行う（ステップＳ９０７）。すなわち、認証サービス部１２０は、当該実行要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードの組が、予め決められたテナントＩＤ、ユーザＩＤ、及びパスワードの組と一致するか否かを判定することで、ユーザ認証を行う。
【０１１４】
そして、認証サービス部１２０は、ユーザ認証に成功した場合、処理フローの実行要求をロジック処理部１１２に送信する（ステップＳ９０８）。なお、処理フローの実行要求には、フローＩＤと、スキャン画像ファイルと、ユーザ指定情報と、ユーザＩＤとが含まれる。
【０１１５】
なお、認証サービス部１２０は、上記のステップＳ９０７でユーザ認証に失敗した場合、例えば、ユーザ認証に失敗したことを示す通知をクライアントアプリケーション２１０に返信する。
【０１１６】
クライアントアプリケーション２１０は、認証サービス部１２０との間の認証方式が「アクセストークン認証」である場合、アクセストークンを含む処理フローの実行要求を認証サービス部１２０に送信する（ステップＳ９０９）。
【０１１７】
なお、アクセストークンは、例えば、ＯＡｕｔｈによる認証に用いられるトークンである。すなわち、処理フローの実行要求には、認証情報として、アクセストークンが含まれている。なお、処理フローの実行要求には、上記と同様に、フローＩＤ、スキャン画像ファイル、及びユーザ指定情報も含まれる。
【０１１８】
次に、認証サービス部１２０は、処理フローの実行要求を受信すると、当該実行要求に含まれるアクセストークンに基づいて、アクセストークン認証を行う（ステップＳ９１０）。すなわち、認証サービス部１２０は、当該実行要求に含まれるアクセストークンが正当であるか否かを判定することで、アクセストークン認証を行う。
【０１１９】
そして、認証サービス部１２０は、アクセストークン認証に成功した場合、処理フローの実行要求をロジック処理部１１２に送信する（ステップＳ９１１）。なお、処理フローの実行要求には、フローＩＤ、スキャン画像ファイル、ユーザ指定情報、及びアクセストークンに関連付けられたユーザＩＤが含まれる。
【０１２０】
なお、認証サービス部１２０は、上記のステップＳ９１０でアクセストークン認証に失敗した場合、例えば、アクセストークン認証に失敗したことを示す通知をクライアントアプリケーション２１０に返信する。
【０１２１】
最後に、ロジック処理部１１２は、処理フローの実行処理を行う（ステップＳ９１２６）。すなわち、ロジック処理部１１２は、当該実行要求に含まれるフローＩＤの処理フロー情報１１００に基づく一連の処理を実行する。
【０１２２】
そして、ロジック処理部１１２は、処理フローの実行処理の処理結果をクライアントアプリケーション２１０に返信する。これにより、本実施形態に係るサービス提供システム１０は、機器２０に対して、「スキャン  Ｔｏ  メール配信」サービスを提供することができる。
【０１２３】
ここで、クライアントアプリケーション２１０と認証サービス部１２０との間の認証方式が「アプリ認証」、「ユーザ認証」、又は「アクセストークン認証」のいずれであるかは、例えば、クライアントアプリケーション２１０毎に予め決められている。したがって、クライアントアプリケーション２１０は、例えば、認証方式の指定を含む処理フローの実行要求を認証サービス部１２０に送信する。ただし、例えば、図１０に示すサービス利用画面２１００において、いずれの認証方式を利用するかをユーザが選択することができても良い。
【０１２４】
以上のように、本実施形態に係る情報処理システム１では、サービス提供システム１０が機器２０に対してサービスを提供する前に、種々の認証方式により機器２０との間で認証を行う。すなわち、本実施形態に係る情報処理システム１では、機器２０に搭載されたクライアントアプリケーション２１０が一連の処理を実行させる前に、当該クライアントアプリケーション２１０の認証を行う。これにより、本実施形態に係るサービス提供システム１０は、正当な利用者（機器２０に搭載されたクライアントアプリケーション２１０又は機器２０のユーザ）に限り、サービスを提供することができる。
【０１２５】
以降では、処理フローの実行処理（図９のステップＳ９１２の処理）の詳細について、図１１を参照しながら説明する。図１１は、本実施形態に係る処理フローの実行処理の一例を示すシーケンス図である。
【０１２６】
フロー実行部３０１は、処理フローの実行要求を受信すると、ジョブ情報の登録要求をジョブ情報管理部４０１に送信する（ステップＳ１１０１）。ここで、クライアントアプリケーション２１０と認証サービス部１２０との間の認証方式が「アプリ認証」であった場合、ジョブ情報の登録要求には、アプリＩＤと、フローＩＤとが含まれる。一方、クライアントアプリケーション２１０と認証サービス部１２０との間の認証方式が「ユーザ認証」又は「アクセストークン認証」であった場合、ジョブ情報の登録要求には、ユーザＩＤと、フローＩＤとが含まれる。
【０１２７】
ジョブ情報管理部４０１は、ジョブ情報の登録要求を受信すると、ジョブ情報を作成して、ジョブ情報記憶部１５０に記憶する（ステップＳ１１０２）。そして、ジョブ情報管理部４０１は、登録結果をフロー実行部３０１に返信する。これにより、ジョブ情報がサービス提供システム１０に登録される。なお、ジョブ情報管理部４０１から返信される登録結果には、ジョブＩＤが含まれる。
【０１２８】
ここで、ジョブ情報記憶部１５０に記憶されたジョブ情報について、図１２を参照しながら説明する。図１２は、ジョブ情報の一例を示す図である。
【０１２９】
図１２に示すように、ジョブ情報は、ジョブＩＤと、アプリ名と、フローＩＤと、作成日と、状態と、アプリＩＤと、ユーザＩＤとを有する。
【０１３０】
ジョブＩＤは、ジョブを識別する識別情報である。アプリ名は、アプリＩＤに対応するアプリケーション（クライアントアプリケーション２１０又はアプリ情報１０００）の名称である。フローＩＤは、ジョブ情報の登録要求に含まれるフローＩＤである。作成日は、ジョブ情報が作成された年月日である。
【０１３１】
状態は、ジョブの状態である。状態には、例えば、ジョブが実行される前であることを示す「ａｃｃｅｐｔｅｄ」、ジョブが実行中であることを示す「ｐｒｏｃｅｓｓｉｎｇ」がある。また、状態には、例えば、ジョブの実行中にエラーが発生したことを示す「ｅｒｒｏｒ」、ジョブの実行が正常終了したことを示す「ｃｏｍｐｌｅｔｅｄ」等がある。なお、ジョブ情報管理部４０１は、状態を「ａｃｃｅｐｔｅｄ」としてジョブ情報を作成する。
【０１３２】
アプリＩＤは、ジョブ情報の登録要求に含まれていたアプリＩＤである。なお、ジョブ情報の登録要求にアプリＩＤが含まれない場合（すなわち、クライアントアプリケーション２１０と認証サービス部１２０との間の認証方式が「アプリ認証」であった場合）、アプリＩＤは、設定されない。
【０１３３】
ユーザＩＤは、ジョブ情報の登録要求に含まれていたユーザＩＤである。なお、ジョブ情報の登録要求にユーザＩＤが含まれない場合（すなわち、クライアントアプリケーション２１０と認証サービス部１２０との間の認証方式が「ユーザ認証」又は「アクセストークン認証」であった場合）、ユーザＩＤは、設定されない。
【０１３４】
このように、ジョブ情報管理部４０１は、ジョブＩＤ、アプリ名、フローＩＤ、作成日、状態、アプリＩＤ、及びユーザＩＤ等が含まれるジョブ情報を作成する。そして、ジョブ情報管理部４０１は、作成したジョブ情報をジョブ情報記憶部１５０に記憶させる。
【０１３５】
次に、フロー実行部３０１は、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ１１０３）。なお、処理フロー情報の取得要求には、フローＩＤが含まれる。
【０１３６】
アプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローＩＤの処理フロー情報１１００をアプリ情報記憶部１４０から取得する（ステップＳ１１０４）。そして、アプリ管理部１１１は、アプリ情報記憶部１４０から取得した処理フロー情報１１００をフロー実行部３０１に返信する。ここで、以降では、アプリ管理部１１１は、図８に示す処理フロー情報１１００をフロー実行部３０１に返信したものとして説明する。
【０１３７】
次に、フロー実行部３０１は、アプリ管理部１１１から返信された処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１１０５）。すなわち、フロー実行部３０１は、図８に示す処理フロー情報１１００の処理定義１１０２に定義されている「ｏｃｒ：ｏｃｒ＿ｐｒｏｃｅｓｓ」を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１３８】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、当該取得要求に含まれる「ｏｃｒ：ｏｃｒ＿ｐｒｏｃｅｓｓ」に対応するＯＣＲコンポーネント１３１０を生成する（ステップＳ１１０６）。なお、ＯＣＲコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１３９】
そして、コンポーネント管理部３０２は、生成したＯＣＲコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、ＯＣＲコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１４０】
フロー実行部３０１は、ＯＣＲコンポーネント１３１０が返信されると、コンポーネントの処理実行要求を、当該ＯＣＲコンポーネント１３１０に送信する（ステップＳ１１０７）。なお、コンポーネントの処理実行要求には、データと、パラメータとが含まれる。
【０１４１】
ここで、ステップＳ１１０７において、データとは、データ型「ＩｎｐｕｔＳｔｒｅａｍ」として、認証サービス部１２０から受信した電子ファイル（処理フローの実行要求に含まれるスキャン画像ファイル）である。すなわち、フロー実行部３０１は、処理フロー実行要求に含まれるスキャン画像ファイルを、単に「データ」として（データ型を意識することなく）、ＯＣＲコンポーネント１３１０に送信する。以降では、このようにデータ型を意識しない電子ファイル等を、単に「データ」と表す。
【０１４２】
また、処理定義１１０２にはオプションパラメータが定義されていないため、ステップＳ１１０７において、パラメータには、ｎｕｌｌが指定される。
【０１４３】
ＯＣＲコンポーネント１３１０は、コンポーネントの処理実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１１０８）。なお、当該型変換要求には、データと、ＯＣＲコンポーネント１３１０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１４４】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１１０９）。
【０１４５】
ここで、型変換要求に含まれるデータのデータ型は「ＩｎｐｕｔＳｔｒｅａｍ」である一方、指定されたデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致しないものと判断する。
【０１４６】
すると、型変換管理部３０４は、型変換情報テーブル３０００を参照して、データ型「ＩｎｐｕｔＳｔｒｅａｍ」を「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換するための型変換を特定する（ここでは、第１の型変換１４１０が特定される。）。そして、型変換管理部３０４は、特定した第１の型変換１４１０を生成する（ステップＳ１１１０）。なお、第１の型変換１４１０の生成は、型変換共通Ｉ／Ｆ１４００を用いて行うことができる。
【０１４７】
次に、型変換管理部３０４は、型変換処理の実行要求を第１の型変換１４１０に送信する（ステップＳ１１１１）。なお、当該実行要求には、データが含まれる。
【０１４８】
第１の型変換１４１０は、型変換の実行要求を受信すると、当該実行要求に含まれるデータのデータ型を「ＩｎｐｕｔＳｔｒｅａｍ」から「ＬｏｃａｌＦｉｌｅＰａｔｈ」に変換する型変換処理を行う（ステップＳ１１１２）。そして、第１の型変換１４１０は、データ型が変換されたデータを型変換管理部３０４に返信する。
【０１４９】
型変換管理部３０４は、第１の型変換１４１０からデータを受信すると、当該データをＯＣＲコンポーネント１３１０に送信する（ステップＳ１１１３）。
【０１５０】
ＯＣＲコンポーネント１３１０は、型変換管理部３０４からデータを受信すると、当該データに対して処理を実行する（ステップＳ１１１４）。すなわち、ＯＣＲコンポーネント１３１０は、ドキュメントサービス部１３０のＯＣＲ処理部１３１により、当該データ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」）により示されるスキャン画像ファイルのＯＣＲ処理を行う。
【０１５１】
そして、ＯＣＲコンポーネント１３１０は、処理結果を示すデータをフロー実行部３０１に返信する。なお、ここで返信されるデータは、ＯＣＲコンポーネント１３１０によりＯＣＲ処理されたスキャン画像ファイルを示すデータ（データ型「ＬｏｃａｌＦｉｌｅＰａｔｈ」）である。
【０１５２】
次に、フロー実行部３０１は、処理フロー情報１１００に基づいて、コンポーネントの取得要求をコンポーネント管理部３０２に送信する（ステップＳ１１１５）。すなわち、フロー実行部３０１は、図８に示す処理フロー情報１１００の処理定義１１０３に定義されている「ｍａｉｌ：ｓｅｎｄ」を含むコンポーネントの取得要求をコンポーネント管理部３０２に送信する。
【０１５３】
コンポーネント管理部３０２は、コンポーネントの取得要求を受信すると、当該取得要求に含まれる「ｍａｉｌ：ｓｅｎｄ」に対応するメール配信コンポーネント１３２０を生成する（ステップＳ１１１６）。なお、メール配信コンポーネント１３２０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１５４】
そして、コンポーネント管理部３０２は、生成したメール配信コンポーネント１３２０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、メール配信コンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１５５】
フロー実行部３０１は、メール配信コンポーネント１３２０が返信されると、コンポーネントの処理実行要求を、当該メール配信コンポーネント１３２０に送信する（ステップＳ１１１７）。なお、コンポーネントの処理実行要求には、データと、パラメータとが含まれる。
【０１５６】
ここで、ステップＳ１１１７において、パラメータには、処理定義１１０３のオプションパラメータ「ｍａｉｌ＿ａｄｄｒｅｓｓ＝ｎｕｌｌ＆ｆｉｌｅｎａｍｅ＝ｎｕｌｌ」と、ユーザ指定情報とが含まれる。
【０１５７】
メール配信コンポーネント１３２０は、コンポーネントの処理実行要求を受信すると、型変換要求を型変換管理部３０４に送信する（ステップＳ１１１８）。なお、当該型変換要求には、データと、メール配信コンポーネント１３２０が扱うことができるデータ型を示す「ＬｏｃａｌＦｉｌｅＰａｔｈ」の指定とが含まれる。
【０１５８】
型変換管理部３０４は、型変換要求を受信すると、当該型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するか否かをチェックする（ステップＳ１１１９）。
【０１５９】
ここで、型変換要求に含まれるデータのデータ型は「ＬｏｃａｌＦｉｌｅＰａｔｈ」であり、指定されたデータ型も「ＬｏｃａｌＦｉｌｅＰａｔｈ」である。したがって、型変換管理部３０４は、型変換要求に含まれるデータのデータ型と、指定されたデータ型とが一致するものと判断する。
【０１６０】
すると、型変換管理部３０４は、型変換要求に含まれるデータをメール配信コンポーネント１３２０に送信する（ステップＳ１１２０）。このように、データ型のチェック（ステップＳ１１１８の処理）において、データのデータ型と、指定されたデータ型とが一致すると判断された場合には、型変換管理部３０４は、型変換の生成を行わない。
【０１６１】
メール配信コンポーネント１３２０は、型変換管理部３０４からデータを受信すると、パラメータに基づいて、当該データに対して処理を実行する（ステップＳ１１２１）。すなわち、メール配信コンポーネント１３２０は、ドキュメントサービス部１３０のメール配信部１３２により、当該データにより示される電子ファイルを、パラメータに基づいて、メール配信する。
【０１６２】
より具体的には、メール配信コンポーネント１３２０は、まず、パラメータに含まれるオプションパラメータにユーザ指定情報を定義して「ｍａｉｌ＿ａｄｄｒｅｓｓ＝ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ＆ｆｉｌｅｎａｍｅ＝ｔｅｓｔ．ｐｄｆ」とする。次に、メール配信コンポーネント１３２０は、メール配信部１３２により、当該データにより示される電子ファイル（すなわち、ＯＣＲ処理後のスキャン画像ファイル）のファイル名を「ｔｅｓｔ．ｐｄｆ」とした電子ファイルを添付したメールを作成する。最後に、メール配信コンポーネント１３２０は、メール配信部１３２により、作成したメールを「ｈｏｇｅ＠ｈｏｇｅｈｏｇｅ．ｃｏ．ｊｐ」宛に配信（送信）する。
【０１６３】
そして、メール配信コンポーネント１３２０は、処理結果を示すデータをフロー実行部３０１に返信する。なお、ここで返信されるデータは、例えば、メール配信コンポーネント１３２０により正常にメールが配信されたことを示す情報等である。
【０１６４】
フロー実行部２０１は、メール配信コンポーネント１３２０からデータを受信すると、ジョブ情報の更新要求をジョブ情報管理部４０１に送信する（ステップＳ１１２２）。なお、ジョブ情報の更新要求には、上記のステップＳ１１０２で返信されたジョブＩＤが含まれる。
【０１６５】
ジョブ情報管理部４０１は、ジョブ情報の更新要求を受信すると、ジョブ情報記憶部１５０に記憶されているジョブ情報のうち、当該更新要求に含まれるジョブＩＤのジョブ情報を更新する（ステップＳ１１２３）。すなわち、ジョブ情報管理部４０１は、当該ジョブＩＤのジョブ情報に含まれる状態を、「ｃｏｍｐｌｅｔｅｄ」に更新する。これにより、ジョブの実行が正常終了したことが管理される。
【０１６６】
以上のように、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に基づいて、各コンポーネントによる処理をそれぞれ行うことで、一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システム１０は、当該一連の処理により実現されるサービスを提供することができる。
【０１６７】
なお、例えば、一連の処理の実行中にエラー等が発生した場合、フロー実行部３０１は、ジョブ情報の更新要求をジョブ情報管理部４０１に送信して、ジョブ情報の状態を「ｅｒｒｏｒ」に更新する。
【０１６８】
以降では、クライアントアプリケーション２１０がジョブ情報を参照する場合について説明する。クライアントアプリケーション２１０は、ジョブ情報を参照することで、例えば、エラー原因の解析等を行うことができるようになる。
【０１６９】
まず、ジョブ情報の参照が可能なアプリケーション（他のクライアントアプリケーションやアプリ情報１０００）を登録する処理について、図１３を参照しながら説明する。図１３は、参照可能アプリケーションの登録処理の一例を示すシーケンス図である。
【０１７０】
まず、クライアントアプリケーション２１０は、参照可能アプリケーションの登録要求を認証サービス部１２０に送信する（ステップＳ１３０１）。このような登録要求は、例えば、ユーザが参照可能アプリケーションの登録操作を行うことにより送信することができる。
【０１７１】
なお、参照可能アプリケーションの登録要求には、クライアントアプリケーション２１０のアプリＩＤと、ジョブ情報を参照することが可能なアプリケーションのアプリＩＤ（参照可能アプリＩＤ）と、テナントＩＤと、ユーザＩＤと、パスワードとが含まれる。
【０１７２】
認証サービス部１２０は、参照可能アプリケーションの登録要求を受信すると、当該登録要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードに基づいて、ユーザ認証を行う（ステップＳ１３０２）。すなわち、認証サービス部１２０は、当該登録要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードの組が、予め決められたテナントＩＤ、ユーザＩＤ、及びパスワードの組と一致するか否かを判定することで、ユーザ認証を行う。
【０１７３】
そして、認証サービス部１２０は、ユーザ認証に成功した場合、参照可能アプリケーションの登録要求をアプリ管理部１１１に送信する（ステップＳ１３０３）。なお、参照可能アプリケーションの登録要求には、クライアントアプリケーション２１０のアプリＩＤと、参照可能アプリＩＤとが含まれる。
【０１７４】
アプリ管理部１１１は、参照可能アプリケーションの登録要求を受信すると、当該登録要求に含まれるアプリＩＤと参照可能ＩＤとを関連付けた参照情報を作成し、参照情報記憶部１６０に記憶する（ステップＳ１３０４）。そして、アプリ管理部１１１は、登録結果をクライアントアプリケーション２１０に返信する。これにより、参照情報がサービス提供システム１０に登録される。
【０１７５】
ここで、参照情報記憶部１６０に記憶された参照情報について、図１４を参照しながら説明する。図１４は、参照情報の一例を示す図である。
【０１７６】
図１４に示すように、参照情報は、アプリＩＤと、参照可能アプリＩＤとを有する。アプリＩＤは、ジョブ情報の参照を行うアプリケーション（クライアントアプリケーション２１０又はアプリ情報１０００）のアプリＩＤである。参照可能アプリＩＤは、ジョブ情報を参照することが可能な他のアプリケーション（クライアントアプリケーション２１０又はアプリ情報１０００）のアプリＩＤである。
【０１７７】
このように、参照情報記憶部１６０に記憶されている参照情報には、アプリＩＤと、当該アプリＩＤのアプリケーションがジョブ情報を参照することができる他のアプリケーションのアプリＩＤとが関連付けられている。これにより、後述するように、クライアントアプリケーション２１０が、他のクライアントアプリケーション２１０又はアプリ情報１０００のジョブ情報を参照する場合のアクセス制御を行うことができる。
【０１７８】
次に、クライアントアプリケーション２１０やアプリ情報１０００等がジョブ情報を参照する場合の処理について、説明する。まず、認証サービス部１２０との間の認証方式が「アプリ認証」であるクライアントアプリケーション２１０がジョブ情報を参照する場合の処理について、図１５を参照しながら説明する。図１５は、ジョブ情報の参照処理の一例を示すシーケンス図である。
【０１７９】
まず、クライアントアプリケーション２１０は、ジョブ情報の参照要求を認証サービス部１２０に送信する（ステップＳ１５０１）。このような参照要求は、例えば図１６に示すジョブ情報の参照画面３１００において、ユーザがジョブＩＤ入力欄３１０１にジョブＩＤを入力した上で、参照ボタン３１０２を押下することにより行うことができる。
【０１８０】
なお、ジョブ情報の参照要求には、ジョブＩＤ入力欄３１０１に入力されたジョブＩＤと、クライアントシークレットとが含まれる。
【０１８１】
認証サービス部１２０は、ジョブ情報の参照要求を受信すると、当該参照要求に含まれるクライアントＩＤ及びクライアントシークレットに基づいて、アプリ認証を行う（ステップＳ１５０２）。すなわち、認証サービス部１２０は、当該参照要求に含まれるクライアントＩＤ及びクライアントシークレットの組が、予め決められたクライアントＩＤ及びクライアントシークレットの組と一致するか否かを判定することで、アプリ認証を行う。
【０１８２】
そして、認証サービス部１２０は、アプリ認証に成功した場合、ジョブ情報の参照要求をアクセス制御部４０２に送信する（ステップＳ１５０３）。なお、ジョブ情報の参照要求には、ジョブＩＤと、アプリＩＤとが含まれる。
【０１８３】
なお、認証サービス部１２０は、上記のステップＳ１５０２でアプリ認証に失敗した場合、例えば、アプリ認証に失敗したことを示す通知をクライアントアプリケーション２１０に返信する。
【０１８４】
アクセス制御部４０２は、ジョブ情報の参照要求を受信すると、ジョブ情報の取得要求をジョブ情報管理部４０１に送信する（ステップＳ１５０４）。なお、ジョブ情報の取得要求には、ジョブＩＤが含まれる。
【０１８５】
ジョブ情報管理部４０１は、ジョブ情報の取得要求を受信すると、当該取得要求に含まれるジョブＩＤのジョブ情報をジョブ情報記憶部１５０から取得する（ステップＳ１５０５）。例えば、ジョブ情報の取得要求に含まれるジョブＩＤが「ジョブ４」である場合、ジョブ情報管理部４０１は、ジョブＩＤ「ジョブ４」のジョブ情報をジョブ情報記憶部１５０から取得する。なお、ジョブ情報の取得要求に複数のジョブＩＤが含まれる場合、ジョブ情報管理部４０１は、複数のジョブ情報をジョブ情報記憶部１５０から取得する。
【０１８６】
そして、ジョブ情報管理部４０１は、取得したジョブ情報をアクセス制御部４０２に返信する。
【０１８７】
次に、アクセス制御部４０２は、アクセス権のチェックを行う（ステップＳ１５０６）。すなわち、アクセス制御部４０２は、ジョブ情報の参照要求に含まれるアプリＩＤと、上記のステップＳ１５０２で取得されたジョブ情報に含まれるアプリＩＤとが一致するか否かを判定する。
【０１８８】
そして、アクセス制御部４０２は、ジョブ情報の参照要求に含まれるアプリＩＤと、上記のステップＳ１５０２で取得されたジョブ情報に含まれるアプリＩＤとが一致すると判定した場合、ジョブ情報をクライアントアプリケーション２１０に返信する。
【０１８９】
一方、アクセス制御部４０２は、これらのアプリＩＤが一致しないと判定した場合、参照可能アプリＩＤの取得要求をアプリ管理部１１１に送信する（ステップＳ１５０８）。なお、参照可能アプリＩＤの取得要求には、ジョブ情報の参照要求に含まれるアプリＩＤが含まれる。
【０１９０】
なお、上記のステップＳ１５０２で複数のジョブ情報が取得された場合、これらのジョブ情報のうち、上記のステップＳ１５０６でアプリＩＤが一致しないと判定されたジョブ情報について、ステップＳ１５０８以降の処理を行えば良い。
【０１９１】
次に、アプリ管理部１１１は、参照可能アプリＩＤの取得要求を受信すると、当該取得要求に含まれるアプリＩＤの参照情報を取得する（ステップＳ１５０８）。そして、アプリ管理部１１１は、取得した参照情報に含まれる参照可能アプリＩＤをアクセス制御部４０２に返信する。
【０１９２】
次に、アクセス制御部４０２は、アクセス権のチェックを行う（ステップＳ１５０９）。すなわち、アクセス制御部４０２は、上記のステップＳ１５０２で取得されたジョブ情報含まれるアプリＩＤと、参照可能アプリＩＤのうちの少なくとも一の参照可能アプリＩＤとが一致するか否かを判定する。
【０１９３】
そして、アクセス制御部４０２は、当該アプリＩＤと、参照可能アプリＩＤのうちの少なくとも一の参照可能アプリＩＤとが一致すると判定した場合、ジョブ情報をクライアントアプリケーション２１０に返信する。
【０１９４】
一方、アクセス制御部４０２は、当該アプリＩＤと、全ての参照可能アプリＩＤとが一致しないと判定した場合、ジョブ情報の参照が許可されていないことを示す通知をクライアントアプリケーション２１０に返信する。したがって、この場合、クライアントアプリケーション２１０は、ジョブ情報を参照することができない。
【０１９５】
クライアントアプリケーション２１０は、アクセス制御部４０２からジョブ情報が返信された場合、例えば図１６に示すジョブ情報の参照画面３１００のジョブ情報欄３１０３にジョブ情報を表示する（ステップＳ１５１０）。これにより、クライアントアプリケーション２１０は、当該クライアントアプリケーション２１０のアプリＩＤが含まれるジョブ情報と、参照可能アプリＩＤが含まれるジョブ情報とを表示することができる。したがって、機器２０のユーザは、クライアントアプリケーション２１０により表示されたジョブ情報を参照することで、例えば、エラーが発生したジョブのエラー原因解析等を行うことができるようになる。
【０１９６】
このように、本実施形態に係る情報処理システム１では、機器２０に搭載されたクライアントアプリケーション２１０がジョブ情報を参照する際に、当該ジョブ情報を参照する権限があるか否かを判定する。これにより、本実施形態に係る情報処理システム１では、サービス提供システム１０は、参照権限があるジョブ情報に限り、クライアントアプリケーション２１０に表示させることができる。
【０１９７】
次に、認証サービス部１２０との間の認証方式が「ユーザ認証」であるクライアントアプリケーション２１０がジョブ情報を参照する場合の処理について、図１７を参照しながら説明する。図１７は、ジョブ情報の参照処理の他の例（その１）を示すシーケンス図である。
【０１９８】
まず、クライアントアプリケーション２１０は、ジョブ情報の参照要求を認証サービス部１２０に送信する（ステップＳ１７０１）。なお、ジョブ情報の参照要求には、ジョブＩＤと、テナントＩＤと、ユーザＩＤと、パスワードとが含まれる。テナントＩＤ、ユーザＩＤ、及びパスワードは、例えば図１６に示すジョブ情報の参照画面３１００において、ユーザにより入力等されても良い。
【０１９９】
認証サービス部１２０は、ジョブ情報の参照要求を受信すると、当該参照要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードに基づいて、ユーザ認証を行う（ステップＳ１７０２）。すなわち、認証サービス部１２０は、当該参照要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードの組が、予め決められたテナントＩＤ、ユーザＩＤ、及びパスワードの組と一致するか否かを判定することで、ユーザ認証を行う。
【０２００】
そして、認証サービス部１２０は、ユーザ認証に成功した場合、ジョブ情報の参照要求をアクセス制御部４０２に送信する（ステップＳ１７０３）。なお、ジョブ情報の参照要求には、ジョブＩＤと、ユーザＩＤとが含まれる。
【０２０１】
なお、認証サービス部１２０は、上記のステップＳ１７０２でユーザ認証に失敗した場合、例えば、ユーザ認証に失敗したことを示す通知をクライアントアプリケーション２１０に返信する。
【０２０２】
アクセス制御部４０２は、ジョブ情報の参照要求を受信すると、ジョブ情報の取得要求をジョブ情報管理部４０１に送信する（ステップＳ１７０４）。なお、ジョブ情報の取得要求には、ジョブＩＤが含まれる。
【０２０３】
ジョブ情報管理部４０１は、ジョブ情報の取得要求を受信すると、当該取得要求に含まれるジョブＩＤのジョブ情報をジョブ情報記憶部１５０から取得する（ステップＳ１７０５）。そして、ジョブ情報管理部４０１は、取得したジョブ情報をアクセス制御部４０２に返信する。
【０２０４】
次に、アクセス制御部４０２は、アクセス権のチェックを行う（ステップＳ１７０６）。すなわち、アクセス制御部４０２は、ジョブ情報の参照要求に含まれるユーザＩＤと、上記のステップＳ１７０２で取得されたジョブ情報に含まれるユーザＩＤとが一致するか否かを判定する。
【０２０５】
そして、アクセス制御部４０２は、ジョブ情報の参照要求に含まれるユーザＩＤと、上記のステップＳ１７０２で取得されたジョブ情報に含まれるユーザＩＤとが一致すると判定した場合、ジョブ情報をクライアントアプリケーション２１０に返信する。
【０２０６】
一方、アクセス制御部４０２は、これらのユーザＩＤが一致しないと判定した場合、ジョブ情報の参照が許可されていないことを示す通知をクライアントアプリケーション２１０に返信する。したがって、この場合、クライアントアプリケーション２１０は、ジョブ情報を参照することができない。
【０２０７】
クライアントアプリケーション２１０は、アクセス制御部４０２からジョブ情報が返信された場合、ジョブ情報を表示する（ステップＳ１７０７）。これにより、クライアントアプリケーション２１０は、機器２０のユーザのユーザＩＤが含まれるジョブ情報を表示することができる。
【０２０８】
なお、図１７では、クライアントアプリケーション２１０と認証サービス部１２０との間の認証方式が「ユーザ認証」である場合について説明したが、ステップＳ１７０３以降は、当該認証方式が「アクセストークン認証」である場合も同様に適用することができる。なお、この場合、ステップＳ１７０１のジョブ情報の参照要求には、ジョブＩＤと、アクセストークンとが含まれる点、及びステップＳ１７０２でアクセストークン認証を行う点が図１７と異なる。
【０２０９】
ここで、図１２に示すように、ジョブ情報記憶部１５０に記憶されているジョブ情報には、ユーザＩＤが含まれているが、ユーザＩＤに代えて（又はユーザＩＤに加えて）、テナントＩＤが含まれていても良い。すなわち、例えば、図１８に示すように、ジョブ情報記憶部１５０に記憶されているジョブ情報には、ユーザＩＤに代えて、テナントＩＤが含まれていても良い。
【０２１０】
この場合において、認証サービス部１２０との間の認証方式が「ユーザ認証」であるクライアントアプリケーション２１０がジョブ情報を参照する場合の処理について、図１９を参照しながら説明する。図１９は、ジョブ情報の参照処理の他の例（その２）を示すシーケンス図である。
【０２１１】
まず、クライアントアプリケーション２１０は、ジョブ情報の参照要求を認証サービス部１２０に送信する（ステップＳ１９０１）。なお、ジョブ情報の参照要求には、ジョブＩＤと、テナントＩＤと、ユーザＩＤと、パスワードとが含まれる。テナントＩＤ、ユーザＩＤ、及びパスワードは、例えば図１６に示すジョブ情報の参照画面３１００において、ユーザにより入力等されても良い。
【０２１２】
認証サービス部１２０は、ジョブ情報の参照要求を受信すると、当該参照要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードに基づいて、ユーザ認証を行う（ステップＳ１９０２）。すなわち、認証サービス部１２０は、当該参照要求に含まれるテナントＩＤ、ユーザＩＤ、及びパスワードの組が、予め決められたテナントＩＤ、ユーザＩＤ、及びパスワードの組と一致するか否かを判定することで、ユーザ認証を行う。
【０２１３】
そして、認証サービス部１２０は、ユーザ認証に成功した場合、ジョブ情報の参照要求をアクセス制御部４０２に送信する（ステップＳ１９０３）。なお、ジョブ情報の参照要求には、ジョブＩＤと、テナントＩＤとが含まれる。
【０２１４】
なお、認証サービス部１２０は、上記のステップＳ１７０２でユーザ認証に失敗した場合、例えば、ユーザ認証に失敗したことを示す通知をクライアントアプリケーション２１０に返信する。
【０２１５】
アクセス制御部４０２は、ジョブ情報の参照要求を受信すると、ジョブ情報の取得要求をジョブ情報管理部４０１に送信する（ステップＳ１９０４）。なお、ジョブ情報の取得要求には、ジョブＩＤが含まれる。
【０２１６】
ジョブ情報管理部４０１は、ジョブ情報の取得要求を受信すると、当該取得要求に含まれるジョブＩＤのジョブ情報をジョブ情報記憶部１５０から取得する（ステップＳ１９０５）。そして、ジョブ情報管理部４０１は、取得したジョブ情報をアクセス制御部４０２に返信する。
【０２１７】
次に、アクセス制御部４０２は、アクセス権のチェックを行う（ステップＳ１９０６）。すなわち、アクセス制御部４０２は、ジョブ情報の参照要求に含まれるテナントＩＤと、上記のステップＳ１９０２で取得されたジョブ情報に含まれるテナントＩＤとが一致するか否かを判定する。
【０２１８】
そして、アクセス制御部４０２は、ジョブ情報の参照要求に含まれるテナントＩＤと、上記のステップＳ１９０２で取得されたジョブ情報に含まれるテナントＩＤとが一致すると判定した場合、ジョブ情報をクライアントアプリケーション２１０に返信する。
【０２１９】
一方、アクセス制御部４０２は、これらのテナントＩＤが一致しないと判定した場合、ジョブ情報の参照が許可されていないことを示す通知をクライアントアプリケーション２１０に返信する。したがって、この場合、クライアントアプリケーション２１０は、ジョブ情報を参照することができない。
【０２２０】
クライアントアプリケーション２１０は、アクセス制御部４０２からジョブ情報が返信された場合、ジョブ情報を表示する（ステップＳ１９０７）。これにより、クライアントアプリケーション２１０は、機器２０のユーザのテナントＩＤが含まれるジョブ情報を表示することができる。
【０２２１】
＜まとめ＞
以上のように、本実施形態に係る情報処理システム１は、クライアントアプリケーション２１０が、サービスを実現する一連の処理を実行させる際に、当該クライアントアプリケーション２１０の認証を行う。しかも、本実施形態に係る情報処理システム１では、クライアントアプリケーション２１０に応じて、様々な認証方式により認証を行うことができる。
【０２２２】
したがって、本実施形態に係る情報処理システム１では、正当なユーザ（クライアントアプリケーション２１０や機器２０のユーザ）に限り、サービス提供システム１０が提供するサービスを利用させるようにすることができる。
【０２２３】
また、本実施形態に係る情報処理システム１では、クライアントアプリケーション２１０等が、他のアプリケーション（他のクライアントアプリケーション２１０やアプリ情報１０００等）により実行された一連の処理のジョブ情報を参照することができる。しかも、本実施形態に係る情報処理システム１では、クライアントアプリケーション２１０等がジョブ情報を参照するための権限を有しているか否かを判定することで、アクセス制御を行う。これにより、本実施形態に係る情報処理システム１では、正当なユーザ（クライアントアプリケーション２１０やアプリ情報１０００等）に限り、ジョブ情報の参照を許可することができる。
【０２２４】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２２５】
１        情報処理システム
１０      サービス提供システム
２０      機器
１１０      入出力サービス処理部
１１１      アプリ管理部
１１２      ロジック処理部
１１３      ジョブ管理部
１２０      認証サービス部
１３０      ドキュメントサービス部
１４０      アプリ情報記憶部
１５０      ジョブ情報記憶部
１６０      参照情報記憶部
２１０      クライアントアプリケーション
３０１      フロー実行部
３０２      コンポーネント管理部
３０３      コンポーネント群
３０４      型変換管理部
３０５      型変換群
４０１      ジョブ情報管理部
４０２      アクセス制御部
【先行技術文献】
【特許文献】
【０２２６】
【特許文献１】特許第４０３９１９１号公報
【図１】
2020123388.tif 000003
【図２】
2020123388.tif 000004
【図３】
2020123388.tif 000005
【図４】
2020123388.tif 000006
【図５】
2020123388.tif 000007
【図６】
2020123388.tif 000008
【図７】
2020123388.tif 000009
【図８】
2020123388.tif 000010
【図９】
2020123388.tif 000011
【図１０】
2020123388.tif 000012
【図１１】
2020123388.tif 000013
【図１２】
2020123388.tif 000014
【図１３】
2020123388.tif 000015
【図１４】
2020123388.tif 000016
【図１５】
2020123388.tif 000017
【図１６】
2020123388.tif 000018
【図１７】
2020123388.tif 000019
【図１８】
2020123388.tif 000020
【図１９】
2020123388.tif 000021
【手続補正書】
【提出日】令和2年5月22日(2020.5.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムであって、
電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上のプログラムの実行順が定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する記憶手段と、
前記情報処理システムに接続される１以上の機器のうちの一の機器から、電子データに関する情報と、前記フロー識別情報と、前記一の機器の認証を行うための認証情報とを含む第１の要求を受信する第１の受信手段と、
前記第１の受信手段により受信された前記第１の要求に含まれる前記認証情報に基づいて、認証を行う認証手段と、
前記認証手段による前記認証が成功した場合、前記記憶手段に記憶されているフロー情報のうち、前記第１の受信手段により受信された前記第１の要求に含まれる前記フロー識別情報と関連付けて前記記憶手段に記憶されている前記フロー情報を取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記実行順に従って前記プログラムそれぞれを実行させることで、前記第１の受信手段により受信された前記第１の要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段と、
を有する情報処理システム。
【請求項２】
前記認証情報は、
前記一の機器に搭載され、前記第１の要求を送信するアプリケーションプログラムを識別するアプリ識別情報と、該アプリ識別情報に対する第１のパスワードとを含み、
前記認証手段は、
前記認証情報に含まれる前記アプリ識別情報と、前記第１のパスワードとに基づくアプリケーション認証によってアプリケーションの認証を行う、請求項１に記載の情報処理システム。
【請求項３】
前記認証情報は、
前記一の機器を利用するユーザを識別するユーザ識別情報と、前記ユーザ識別情報に対する第２のパスワードとを含み、
前記認証手段は、
前記認証情報に含まれる前記ユーザ識別情報と、前記第２のパスワードとに基づくユーザ認証によって認証を行う、請求項１に記載の情報処理システム。
【請求項４】
前記認証情報は、さらに、
前記ユーザが属するグループを識別するグループ識別情報を含み、
前記認証手段は、
前記認証情報に含まれる前記ユーザ識別情報と、前記グループ識別情報と、前記第２のパスワードとに基づくユーザ認証によって前記認証を行う、請求項３に記載の情報処理システム。
【請求項５】
前記認証情報は、
ＯＡｕｔｈによるアクセストークンを含み、
前記認証手段は、
前記認証情報に含まれるアクセストークンに基づくアクセストークン認証によって前記認証を行う、請求項１に記載の情報処理システム。
【請求項６】
前記一連の処理を示すジョブのジョブ識別情報と、前記ジョブの実行状態とを含むジョブ情報を記憶するジョブ情報記憶手段と、
前記情報処理システムに接続される１以上の機器のうちの一の機器から、前記ジョブ識別情報と、前記認証情報とを含む第２の要求を受信する第２の受信手段と、
前記第２の受信手段により受信された前記第２の要求に含まれる前記ジョブ識別情報の前記ジョブ情報を取得するジョブ情報取得手段と、
前記ジョブ情報取得手段により取得された前記ジョブ情報を、前記第２の要求の要求元の前記一の機器に送信する送信手段と、を有し、
前記認証手段は、
前記第２の受信手段により受信された前記第２の要求に含まれる前記認証情報に基づいて、前記認証を行い、
前記ジョブ情報取得手段は、
前記認証手段による前記第２の要求に含まれる前記認証情報に基づく前記認証が成功した場合、前記第２の受信手段により受信された前記第２の要求に含まれる前記ジョブ識別情報の前記ジョブ情報を取得する、請求項１乃至５の何れか一項に記載の情報処理システム。
【請求項７】
前記ジョブ情報には、さらに、前記情報処理システムに接続される１以上の機器にそれぞれ搭載されたアプリケーションプログラムのうち、前記一連の処理を実行させたアプリケーションプログラムを識別する第１のアプリ識別情報が含まれ、
前記第２の受信手段は、
前記情報処理システムに接続される１以上の機器のうちの一の機器から、前記ジョブ識別情報と、前記認証情報と、前記一の機器に搭載されたアプリケーションプログラムを識別する第２のアプリ識別情報を含む第２の要求を受信し、
前記送信手段は、
前記ジョブ情報取得手段により取得された前記ジョブ情報に含まれる前記第１のアプリ識別情報と、前記第２の要求に含まれる前記第２のアプリ識別情報とが一致する場合、前記ジョブ情報を、前記第２の要求の要求元の前記一の機器に送信する、請求項６に記載の情報処理システム。
【請求項８】
前記機器に搭載されたアプリケーションプログラムを識別するアプリ識別情報と、該アプリケーションプログラムが前記ジョブ情報を参照することができる他のアプリケーションプログラムを識別する参照可能アプリ識別情報とを含む参照情報を記憶する参照情報記憶手段を有し、
前記送信手段は、
前記ジョブ情報取得手段により取得された前記ジョブ情報に含まれる前記第１のアプリ識別情報と、前記第２の要求に含まれる前記第２のアプリ識別情報とが一致する場合、又は、前記第１のアプリ識別情報と、前記第２のアプリ識別情報に対応する前記参照情報に含まれる前記参照可能アプリ識別情報とが一致する場合、前記ジョブ情報を、前記第２の要求の要求元の前記一の機器に送信する、請求項７に記載の情報処理システム。
【請求項９】
所定の処理をそれぞれ実行する複数のプログラムを有する情報処理装置であって、
電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上のプログラムの実行順が定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する記憶手段と、
前記情報処理装置に接続される１以上の機器のうちの一の機器から、電子データに関する情報と、前記フロー識別情報と、前記一の機器の認証を行うための認証情報とを含む第１の要求を受信する第１の受信手段と、
前記第１の受信手段により受信された前記第１の要求に含まれる前記認証情報に基づいて、認証を行う認証手段と、
前記認証手段による前記認証が成功した場合、前記記憶手段に記憶されているフロー情報のうち、前記第１の受信手段により受信された前記第１の要求に含まれる前記フロー識別情報と関連付けて前記記憶手段に記憶されている前記フロー情報を取得する取得手段と、
前記取得手段により取得された前記フロー情報に定義されている前記実行順に従って前記プログラムそれぞれを実行させることで、前記第１の受信手段により受信された前記第１の要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手段と、
を有する情報処理装置。
【請求項１０】
１以上の情報処理装置を含み、所定の処理をそれぞれ実行する複数のプログラムを有する情報処理システムが実行する情報処理方法であって、電子データを用いた一連の処理毎に、該一連の処理のそれぞれの処理を実行する１以上のプログラムの実行順が定義されたフロー情報を、該フロー情報を識別するフロー識別情報と関連付けて記憶する記憶手段を有する情報処理システムが、
前記情報処理システムに接続される１以上の機器のうちの一の機器から、電子データに関する情報と、前記フロー識別情報と、前記一の機器の認証を行うための認証情報とを含む第１の要求を受信する第１の受信手順と、
前記第１の受信手順により受信された前記第１の要求に含まれる前記認証情報に基づいて、認証を行う認証手順と、
前記認証手順による前記認証が成功した場合、前記記憶手段に記憶されているフロー情報のうち、前記第１の受信手順により受信された前記第１の要求に含まれる前記フロー識別情報と関連付けて前記記憶手段に記憶されている前記フロー情報を取得する取得手順と、
前記取得手順により取得された前記フロー情報に定義されている前記実行順に従って前記プログラムそれぞれを実行させることで、前記第１の受信手順により受信された前記第１の要求に含まれる前記電子データに関する情報に基づく電子データを用いた前記一連の処理を実行する実行手順と、
を実行する情報処理方法。