(57)【要約】【課題】外部サービスと連携した一連の処理において代理認証を行う。【解決手段】所定の処理をプログラムを有する情報処理システムであって、外部サービスと連携した一連の処理毎に、プログラム識別情報と、実行順とが定義されたフロー情報を、フロー識別情報と関連付けて記憶するフロー記憶手段と、前記外部サービスの認証に用いる認証情報を利用者識別情報と関連付けて記憶する認証記憶手段と、電子データに関する情報と、フロー識別情報と、利用者識別情報とを受信する受信手段と、受信した前記フロー識別情報と関連付けられているフロー情報を取得する取得手段と、取得した前記フロー情報に定義されている前記プログラム識別情報の前記プログラムそれぞれを、前記実行順に従って実行させて、前記利用者識別情報と関連付けられている認証情報を用いて前記外部サービスの認証を行って、前記電子データを用いた前記一連の処理を実行する実行手段とを有する。【選択図】図４
2018032091.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）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１４は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【００３１】
ＣＰＵ１６は、ＲＯＭ１５やＨＤＤ１８等の記憶装置からプログラムやデータをＲＡＭ１４上に読み出し、処理を実行することで、サービス提供システム１０全体の制御や機能を実現する演算装置である。
【００３２】
本実施形態に係るサービス提供システム１０及びＰＣ端末３０は、図２に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００３３】
次に、本実施形態に係る情報処理システム１に含まれる機器２０が画像形成装置である場合のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る機器２０の一例のハードウェア構成を示す図である。
【００３４】
図３に示す機器２０は、コントローラ２１と、操作パネル２２と、外部Ｉ／Ｆ２３と、通信Ｉ／Ｆ２４と、プリンタ２５と、スキャナ２６とを有する。また、コントローラ２１は、ＣＰＵ３１と、ＲＡＭ３２と、ＲＯＭ３３と、ＮＶＲＡＭ３４と、ＨＤＤ３５とを有する。
【００３５】
ＲＯＭ３３は、各種プログラムやデータを格納している不揮発性の半導体メモリである。ＲＡＭ３２は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＮＶＲＡＭ３４は、例えば設定情報等を格納している。また、ＨＤＤ３５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３６】
ＣＰＵ３１は、ＲＯＭ３３やＮＶＲＡＭ３４、ＨＤＤ３５等からプログラムやデータ、設定情報等をＲＡＭ３２上に読み出し、処理を実行することで、機器２０全体の制御や機能を実現する演算装置である。
【００３７】
操作パネル２２は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２３は、外部装置とのインタフェースである。外部装置には、記録媒体２３ａ等がある。これにより、機器２０は、外部Ｉ／Ｆ２３を介して記録媒体２３ａの読み取り及び／又は書き込みを行うことができる。なお、記録媒体２３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３８】
通信Ｉ／Ｆ２４は、機器２０をネットワークに接続するインタフェースである。これにより、機器２０は、通信Ｉ／Ｆ２４を介して通信を行うことができる。プリンタ２５は、印刷データを印刷する印刷装置である。スキャナ２６は、原稿を読み取って電子ファイル（画像ファイル）を生成する読取装置である。
【００３９】
本実施形態に係る機器２０は、図３に示すハードウェア構成を有することにより、後述するような各種処理を実現できる。
【００４０】
＜サービス提供システムが提供するサービス＞
ここで、本実施形態に係るサービス提供システム１０が提供するサービスについて説明する。なお、以降では、機器２０が画像形成装置であるものとして説明する。
【００４１】
本実施形態に係るサービス提供システム１０は、例えば、機器２０において原稿をスキャンして生成された電子ファイルをストレージＡ（外部ストレージシステム４０１）にアップロードするサービス（「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービス）を提供する。
【００４２】
以降では、本実施形態に係るサービス提供システム１０は、上述した「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するものとして説明する。
【００４３】
ただし、サービス提供システム１０により提供されるサービスは、これらに限られない。例えば、サービス提供システム１０は、機器２０において原稿をスキャンして生成された電子ファイルをストレージＢ（外部ストレージシステム４０２）にアップロードするサービスを提供しても良い。また、例えば、サービス提供システム１０は、外部ストレージシステム４０に保存されている電子ファイルを、ダウンロードして、機器２０で印刷するサービスを提供しても良い。更に、例えば、サービス提供システム１０は、機器２０において原稿をスキャンして生成された電子ファイルを、ＯＣＲ（Optical Character Recognition）処理した後、ストレージＡ（外部ストレージシステム４０１）にアップロードするサービスを提供しても良い。
【００４４】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、本実施形態に係る情報処理システム１の一例の機能構成を示す図である。
【００４５】
図４に示す機器２０は、例えばＣＰＵ３１等により実行されるウェブブラウザ２１０（以降では、単に「ブラウザ２１０」と表す。）を有する。機器２０のユーザは、ブラウザ２１０を用いて、サービス提供システム１０が提供するサービスを利用することができる。このように、本実施形態に係る機器２０には、ブラウザ２１０が搭載されていれば良い。
【００４６】
図４に示すＰＣ端末３０は、例えばＣＰＵ３１等により実行される認証情報保存アプリ３１０を有する。ＰＣ端末３０のユーザは、認証情報保存アプリ３１０を用いて、ストレージＡ（外部ストレージシステム４０１）に対する認証に用いる情報（認証情報）をサービス提供システム１０に保存することができる。
【００４７】
なお、認証情報保存アプリ３１０は、ＰＣ端末３０に搭載されたアプリケーションプログラムに限られない。認証情報保存アプリ３１０は、例えば、ＰＣ端末３０に搭載されたウェブブラウザ上で、サービス提供システム１０から取得したＪａｖａＳｃｒｉｐｔ（登録商標）等が動作することにより実現されても良い。すなわち、認証情報保存アプリ３１０は、Ｗｅｂアプリケーションであっても良い。
【００４８】
図４に示すサービス提供システム１０は、入出力サービス処理部１１０と、Ｗｅｂサービス処理部１２０と、認証サービス処理部１３０と、ドキュメントサービス部１４０と、外部サービス連携部１５０とを有する。これら各機能部は、サービス提供システム１０にインストールされた１以上のプログラムが、ＣＰＵ１６に実行させる処理により実現される。
【００４９】
また、サービス提供システム１０は、アプリ情報記憶部１６０と、画面情報記憶部１７０と、認証情報記憶部１８０とを有する。これら各記憶部は、ＨＤＤ１８により実現可能である。なお、アプリ情報記憶部１６０、画面情報記憶部１７０、及び認証情報記憶部１８０の少なくとも一の記憶部が、サービス提供システム１０とネットワークを介して接続される記憶装置等により実現されていても良い。
【００５０】
入出力サービス処理部１１０は、サービス提供システム１０が提供するサービスに関する処理を行う。ここで、入出力サービス処理部１１０は、アプリ管理部１１１と、ロジック処理部１１２と、データＩ／Ｆ部１１３とを有する。
【００５１】
アプリ管理部１１１は、アプリ情報記憶部１６０に記憶されているアプリ情報１０００を管理する。なお、アプリ情報１０００とは、一連の処理により実現されるサービスを提供するためのアプリケーションである。すなわち、サービス提供システム１０が提供する各種のサービスは、アプリ情報１０００により提供される。
【００５２】
また、アプリ管理部１１１は、ロジック処理部１１２からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００を返信する。なお、処理フロー情報１１００とは、アプリ情報１０００により提供されるサービスを実現する一連の処理が定義された情報である。
【００５３】
ロジック処理部１１２は、Ｗｅｂサービス処理部１２０からの要求に応じて、アプリ情報１０００に含まれる処理フロー情報１１００をアプリ管理部１１１から取得する。そして、ロジック処理部１１２は、アプリ管理部１１１から取得した処理フロー情報１１００に基づいて、当該アプリ情報１０００が提供するサービスを実現する一連の処理（処理フロー）を実行する。これにより、本実施形態に係るサービス提供システム１０は、各種のサービスを提供することができる。
【００５４】
また、ロジック処理部１１２は、認証情報保存アプリ３１０からの要求に応じて、外部ストレージシステム４０の認証情報を暗号化した上で、暗号化した認証情報の保存を認証サービス処理部１３０に要求する。なお、ロジック処理部１１２の詳細については後述する。
【００５５】
データＩ／Ｆ部１１３は、Ｗｅｂサービス処理部１２０からの要求に応じて、外部サービス連携部１５０のデータ処理部１５２に対して、各種の要求（例えば、フォルダ一覧の取得要求等）を行う。
【００５６】
Ｗｅｂサービス処理部１２０は、ブラウザ２１０からの要求に応じて、画面情報記憶部１７０に記憶されている画面情報２０００を返信する。なお、画面情報２０００とは、アプリ情報１０００により提供されるサービスを利用するための画面（アプリ画面）が定義された情報である。画面情報２０００は、例えば、ＨＴＭＬ（HyperText Markup Language）、ＸＨＴＭＬ（Extensible HyperText Markup Language）、ＣＳＳ（Cascading Style Sheets）、ＪａｖａＳｃｒｉｐｔ等のブラウザ２１０が解釈可能な形式でアプリ画面が定義されている。
【００５７】
これにより、機器２０の操作パネル２２には、ブラウザ２１０により、サービス提供システム１０が提供するサービスを利用するためのアプリ画面が表示される。
【００５８】
また、Ｗｅｂサービス処理部１２０は、ブラウザ２１０からの要求に応じて、入出力サービス処理部１１０に対して、各種の要求を行う。例えば、Ｗｅｂサービス処理部１２０は、ブラウザ２１０からの要求に応じて、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する処理フローの実行要求を、入出力サービス処理部１１０のロジック処理部１１２に行う。
【００５９】
認証サービス処理部１３０は、ロジック処理部１１２からの要求に応じて、暗号化された認証情報を、認証情報記憶部１８０に記憶されている認証情報テーブル３０００に保存する。なお、認証情報テーブル３０００とは、サービス提供システム１０が外部ストレージシステム４０との間で認証（代理認証）を行うための認証情報（例えば、ユーザＩＤやパスワード等）が暗号化された上で保存されているテーブルである。
【００６０】
また、認証サービス処理部１３０は、ロジック処理部１１２からの要求に応じて、認証情報テーブル３０００に保存されている認証情報をロジック処理部１１２に送信する。
【００６１】
このように、認証サービス処理部１３０は、サービス提供システム１０が外部ストレージシステム４０との間の代理認証に用いる認証情報を管理する。
【００６２】
ドキュメントサービス部１４０は、処理フロー情報１１００に基づく一連の処理（処理フロー）に含まれる所定の処理を実行する。ここで、ドキュメントサービス部１４０は、例えば、電子ファイルに対してＯＣＲ処理を行うためのＯＣＲ処理部１４１を有する。
【００６３】
なお、ドキュメントサービス部１４０は、例えば、電子ファイルのデータ形式を所定のデータ形式に変換するデータ変換部、電子ファイルを圧縮又は解凍する圧縮・解凍部、電子ファイルを添付したメールを送信するメール送信部等を有していても良い。
【００６４】
このように、ドキュメントサービス部１４０には、一連の処理（処理フロー）に含まれる所定の処理を実行する種々の機能部が含まれる。したがって、ドキュメントサービス部１４０は、これら種々の機能を提供するプログラム（モジュール）群により実現される。
【００６５】
外部サービス連携部１５０は、ロジック処理部１１２やデータＩ／Ｆ部１１３からの要求に応じて、外部ストレージシステム４０に対して、各種の要求（例えば、フォルダ一覧の取得要求等）を行う。
【００６６】
本実施形態に係るサービス提供システム１０は、当該サービス提供システム１０と連携して処理を行う外部ストレージシステム４０毎に、それぞれの外部ストレージシステム４０に対応する外部サービス連携部１５０を有する。すなわち、本実施形態に係るサービス提供システム１０は、外部ストレージシステム４０１に対して各種の要求を行うための外部サービス連携部１５０１を有する。同様に、本実施形態に係るサービス提供システム１０は、外部ストレージシステム４０２に対して各種の要求を行うための外部サービス連携部１５０２等を有する。
【００６７】
なお、以降では、複数の外部サービス連携部１５０について、各々を区別するときは、上記のように、「外部サービス連携部１５０１」、「外部サービス連携部１５０２」等と添え字を用いて表す。
【００６８】
ここで、外部サービス連携部１５０は、ロジック処理部１１２からの要求を受信するファイル処理部１５１と、データＩ／Ｆ部１１３からの要求を受信するデータ処理部１５２とを有する。
【００６９】
ファイル処理部１５１は、外部ストレージシステム４０に保存されている電子ファイルに対する操作（例えば、取得、保存、編集等）を行うためのＡＰＩ（Application Programming Interface）が定義された共通Ｉ／Ｆ１５１１及び固有Ｉ／Ｆ１５１２を有する。
【００７０】
共通Ｉ／Ｆ１５１１は、複数の外部ストレージシステム４０間で共通に利用できるＡＰＩであり、例えば図５（ａ）に示すＡＰＩが挙げられる。すなわち、ファイル処理部１５１の共通Ｉ／Ｆ１５１１は、全ての外部ストレージシステム４０が利用できるファイル操作に関する機能（例えば、ファイルの取得、保存等）を利用するためのＡＰＩ群である。
【００７１】
一方、固有Ｉ／Ｆ１５１２は、ある特定の外部ストレージシステム４０において利用できるＡＰＩであり、例えば図５（ｂ）に示すＡＰＩが挙げられる。すなわち、ファイル処理部１５１の固有Ｉ／Ｆ１５１２は、ある特定の外部ストレージシステム４０において利用できるファイル操作に関する機能（例えば、ドキュメントにファイルを付加等）を利用するためのＡＰＩ群である。
【００７２】
したがって、共通Ｉ／Ｆ１５１１は、全ての外部サービス連携部１５０に対して同様に定義される。一方で、固有Ｉ／Ｆ１５１２は、当該固有Ｉ／Ｆ１５１２で定義されるＡＰＩが利用可能な特定な外部ストレージシステム４０に対応する外部サービス連携部１５０に対して定義される。
【００７３】
データ処理部１５２は、外部ストレージシステム４０に保存されている電子ファイルの書誌情報等のメタデータ（例えば、ファイル一覧やフォルダ一覧等）を取得等するためのＡＰＩが定義された共通Ｉ／Ｆ１５２１及び固有Ｉ／Ｆ１５２２を有する。
【００７４】
共通Ｉ／Ｆ１５２１は、複数の外部ストレージシステム４０間で共通に利用できるＡＰＩであり、例えば図５（ｃ）に示すＡＰＩが挙げられる。すなわち、データ処理部１５２の共通Ｉ／Ｆ１５２１は、全ての外部ストレージシステム４０で利用できるメタデータ取得に関する機能（例えば、ファイル一覧の取得、フォルダ一覧の取得等）を利用するためのＡＰＩ群である。
【００７５】
一方、固有Ｉ／Ｆ１５２２は、ある特定の外部ストレージシステム４０において利用できるＡＰＩであり、例えば図５（ｄ）に示すＡＰＩが挙げられる。すなわち、データ処理部１５２の固有Ｉ／Ｆ１５２２は、ある特定の外部ストレージシステム４０において利用できるメタデータ取得等に関する機能（例えば、画像ファイル一覧の取得等）を利用するためのＡＰＩ群である。
【００７６】
したがって、共通Ｉ／Ｆ１５２１は、全ての外部サービス連携部１５０に対して同様に定義される。一方で、固有Ｉ／Ｆ１５２２は、当該固有Ｉ／Ｆ１５２２で定義されるＡＰＩが利用可能な特定の外部ストレージシステム４０に対応する外部サービス連携部１５０に対して定義される。
【００７７】
以上のように、本実施形態に係るサービス提供システム１０は、当該サービス提供システム１０と連携して処理を行う外部ストレージシステム４０毎に、それぞれの外部ストレージシステム４０に対応する外部サービス連携部１５０を有する。このため、連携先となる外部ストレージシステム４０を追加や削除（以降、「追加等」と表す。）する場合、当該追加等される外部ストレージシステム４０に対応する外部サービス連携部１５０をサービス提供システム１０に追加等すれば良い。
【００７８】
これにより、本実施形態に係るサービス提供システム１０では、連携先となる外部ストレージシステム４０の追加等に伴う影響を局所化することができる。換言すれば、本実施形態に係るサービス提供システム１０では、他の機能部（入出力サービス処理部１１０やドキュメントサービス部１４０等）に影響を与えることなく、連携先となる外部ストレージシステム４０の追加等を行うことができる。なお、外部サービス連携部１５０の追加等は、ＳＤＫ（Software Development Kit）を用いて行うことができる。
【００７９】
また、外部サービス連携部１５０のファイル処理部１５１は、共通Ｉ／Ｆ１５１１と固有Ｉ／Ｆ１５１２とを異なるモジュール等で定義している。更に、共通Ｉ／Ｆ１５１１及び固有Ｉ／Ｆ１５１２で定義されるＡＰＩは、「外部ストレージ名」（外部ストレージシステム４０により提供されるストレージサービスの名称）を指定することで利用できる。すなわち、共通Ｉ／Ｆ１４１１及び固有Ｉ／Ｆ１４１２で定義されるＡＰＩは、「外部ストレージ名」が可変部分となっている。
【００８０】
これにより、外部サービス連携部１５０を追加する場合、他の外部サービス連携部１５０のファイル処理部１５１に定義されている共通Ｉ／Ｆ１５１１を再利用することができる。換言すれば、外部サービス連携部１５０を追加する場合、当該追加する外部サービス連携部１５０のファイル処理部１５１は、固有Ｉ／Ｆ１５１２のみを開発すれば良い。このことは、データ処理部１５２の共通Ｉ／Ｆ１５２１及び固有Ｉ／Ｆ１５２２についても同様である。
【００８１】
アプリ情報記憶部１６０は、アプリ情報１０００を記憶する。アプリ情報１０００は、当該アプリ情報１０００を識別するアプリＩＤと関連付けてアプリ情報記憶部１６０に記憶されている。なお、アプリ情報１０００には、更に、当該アプリ情報１０００の名称（アプリケーション名）が関連付けられていても良い。
【００８２】
ここで、アプリ情報１０００には、処理フロー情報１１００が含まれる。例えば、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するアプリ情報１０００には、当該サービスを実現する一連の処理が定義された処理フロー情報１１００が含まれる。すなわち、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するアプリ情報１０００には、スキャンにより生成された電子ファイルをストレージＡ（外部ストレージシステム４０１）にアップロード（配信）する処理が定義された処理フロー情報１１００が含まれる。なお、アプリ情報１０００には、２以上の処理フロー情報１１００が含まれていても良い。
【００８３】
処理フロー情報１１００は、上述したように、アプリ情報１０００により提供されるサービスを実現する一連の処理（処理フロー）が定義された情報である。なお、処理フロー情報１１００の詳細については後述する。
【００８４】
画面情報記憶部１７０は、画面情報２０００を記憶する。画面情報２０００は、アプリＩＤと関連付けて画面情報記憶部１７０に記憶されている。なお、画面情報２０００の詳細については後述する。
【００８５】
認証情報記憶部１８０は、認証情報テーブル３０００を記憶する。認証情報テーブル３０００には、上述したように、サービス提供システム１０が外部ストレージシステム４０との間で代理認証を行うための認証情報が暗号化された上で保存されている。なお、認証情報テーブル３０００の詳細については後述する。
【００８６】
なお、入出力サービス処理部１１０、Ｗｅｂサービス処理部１２０、認証サービス処理部１３０、ドキュメントサービス部１４０、及び外部サービス連携部１５０は、それぞれが異なる情報処理装置により実現されていても良い。同様に、アプリ情報記憶部１６０、画面情報記憶部１７０、及び認証情報記憶部１８０は、それぞれが異なる記憶装置等により実現されていても良い。
【００８７】
ここで、ロジック処理部１１２の詳細な機能構成について、図６を参照しながら説明する。図６は、本実施形態に係るロジック処理部１１２の一例の機能構成を示す図である。
【００８８】
図６に示すロジック処理部１１２は、フロー実行部３０１と、コンポーネント管理部３０２と、コンポーネント群３０３と、認証情報処理部３０４とを有する。
【００８９】
フロー実行部３０１は、Ｗｅｂサービス処理部１２０から処理フローの実行要求を受信すると、当該実行要求に対応する処理フロー情報１１００をアプリ管理部１１１から取得する。そして、フロー実行部３０１は、アプリ管理部１１１から取得した処理フロー情報１１００に基づく一連の処理（処理フロー）を実行する。
【００９０】
また、フロー実行部３０１は、認証情報保存アプリ３１０から代理認証に用いる認証情報の保存要求を受信すると、当該保存要求に含まれる認証情報の保存を、後述する代理認証Ａコンポーネント１３１０等に要求する。これにより、後述するように、代理認証Ａコンポーネント１３１０は、認証サービス処理部１３０を介して、暗号化された認証情報を認証情報テーブル３０００に保存することができる。
【００９１】
コンポーネント管理部３０２は、コンポーネントを管理する。コンポーネント管理部３０２は、フロー実行部３０１や認証情報保存アプリ３１０からの要求に応じて、コンポーネントを生成すると共に、生成したコンポーネントをフロー実行部３０１に返信する。なお、コンポーネントの生成とは、例えばクラスや関数等で定義されたコンポーネントを、メモリ（例えばＲＡＭ１４）上に展開することである。
【００９２】
コンポーネント群３０３は、コンポーネントの集合である。コンポーネント群３０３には、代理認証Ａコンポーネント１３１０と、配信Ａコンポーネント１３２０とが含まれる。
【００９３】
代理認証Ａコンポーネント１３１０は、ストレージＡ（外部ストレージシステム４０１）の代理認証に用いる認証情報の暗号化及び保存を認証情報処理部３０４に要求するコンポーネントである。また、代理認証Ａコンポーネント１３１０は、ストレージＡ（外部ストレージシステム４０１）の代理認証に用いる認証情報の取得及び復号を認証情報処理部３０４に要求するコンポーネントである。
【００９４】
ここで、代理認証Ａコンポーネント１３１０は、例えば、外部ストレージシステム４０毎に予め決められた暗号化キーを用いて、認証情報の保存及び暗号化を認証情報処理部３０４に要求する。また、同様に、代理認証Ａコンポーネント１３１０は、例えば、外部ストレージシステム４０毎に予め決められた復号キーを用いて、認証情報の取得及び復号を認証情報処理部３０４に要求する。
【００９５】
更に、代理認証Ａコンポーネント１３１０は、認証情報の保存画面を認証情報保存アプリ３１０が表示するための情報（代理認証の設定情報）を認証情報保存アプリ３１０に送信する。
【００９６】
ここで、認証情報の保存画面とは、例えばストレージＡの代理認証に用いる認証情報をユーザが入力するための画面である。
【００９７】
配信Ａコンポーネント１３２０は、ストレージＡ（外部ストレージシステム４０１）の認証情報を用いて、電子ファイルをストレージＡにアップロード（配信）するコンポーネントである。
【００９８】
これにより、サービス提供システム１０は、ストレージＡ（外部ストレージシステム４０１）の代理認証をした上で、電子ファイルを当該ストレージＡにアップロードすることができる。
【００９９】
なお、コンポーネント群３０３には、例えば、ストレージＢ（外部ストレージシステム４０２）の代理認証に用いる認証情報の暗号化及び復号を認証情報処理部３０４に要求するための代理認証Ｂコンポーネント１３３０が含まれていても良い。同様に、コンポーネント群３０３には、例えば、ストレージＢ（外部ストレージシステム４０２）の認証情報を用いて、電子ファイルをストレージＢにアップロード（配信）する配信Ｂコンポーネント１３４０が含まれていても良い。
【０１００】
このように、コンポーネント群３０３には、外部ストレージシステム４０毎に、代理認証コンポーネント及び配信コンポーネントが含まれている。
【０１０１】
また、コンポーネント群３０３には、上記のコンポーネント以外にも、例えば、電子ファイルをストレージＡ（外部ストレージシステム４０１）からダウンロード（取得）するための取得Ａコンポーネント等が含まれていても良い。更に、コンポーネント群３０３には、例えば、電子ファイルのデータ形式を所定のデータ形式に変換するための変換コンポーネント、電子ファイルを圧縮するための圧縮コンポーネント等が含まれていても良い。
【０１０２】
以上のように、コンポーネント群３０３には、所定の機能を実現する処理を実行する各種のコンポーネントが含まれる。
【０１０３】
また、コンポーネント群３０３に含まれる各コンポーネントは、コンポーネント共通Ｉ／Ｆ１３００を有する。コンポーネント共通Ｉ／Ｆ１３００は、各コンポーネントに対して共通に定義されたＡＰＩであり、コンポーネントを生成するためのＡＰＩと、コンポーネントの処理を実行するためのＡＰＩとが含まれる。
【０１０４】
このように、各コンポーネントがコンポーネント共通Ｉ／Ｆ１３００を有することで、コンポーネントの追加等に伴う影響を局所化することができる。すなわち、例えば、フロー実行部３０１やコンポーネント管理部３０２等に影響を与えることなく、コンポーネントの追加等を行うことができる。これにより、本実施形態に係るサービス提供システム１０では、所定の機能の追加等（すなわち、当該機能を実現する処理を実行するためのコンポーネントの追加等）に伴う開発工数を削減することができる。
【０１０５】
認証情報処理部３０４は、代理認証Ａコンポーネント１３１０や代理認証Ｂコンポーネント１３３０等からの要求に応じて、認証情報の暗号化した上で、暗号化された認証情報の保存を認証サービス処理部１３０に要求する。また、認証情報処理部３０４は、代理認証Ａコンポーネント１３１０や代理認証Ｂコンポーネント１３３０等からの要求に応じて、暗号化された認証情報を認証サービス処理部１３０から取得した上で、暗号化された認証情報を復号する。
【０１０６】
ここで、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するアプリ情報１０００に含まれる処理フロー情報１１００について、図７を参照しながら説明する。図７は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する一連の処理が定義された処理フロー情報１１００の一例を示す図である。
【０１０７】
図７に示す処理フロー情報１１００は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する一連の処理（処理フロー）が定義された情報である。
【０１０８】
図７に示す処理フロー情報１１００には、当該処理フロー情報１１００が含まれるアプリ情報１０００を識別するアプリＩＤ１１０１と、当該処理フロー情報１１００を識別するフローＩＤ１１０２とが含まれる。また、図７に示す処理フロー情報１１００には、当該処理フロー情報１１００に基づく一連の処理（処理フロー）の名称を示すフロー名１１０３と、当該一連の処理（処理フロー）に含まれる各処理の処理内容が定義されたフロー詳細１１０４とが含まれる。
【０１０９】
フロー詳細１１０４には、処理フローに含まれる各処理をそれぞれ定義した処理定義１１０５と、処理定義１１０６とが含まれる。また、処理定義１１０５及び処理定義１１０６には、処理を実行するコンポーネントを識別する識別情報を示す「"ｃｏｍｐｏｎｅｎｔＩｄ"」と、当該コンポーネントに対するパラメータ情報が定義される「"ｐａｒａｍｅｔｅｒｓ"」とが含まれる。
【０１１０】
具体的には、処理定義１１０５の「"ｃｏｍｐｏｎｅｎｔＩｄ"」には、代理認証Ａコンポーネント１３１０の識別情報「"ａｕｔｈＡ"」が定義されている。また、処理定義１１０５の「"ｐａｒａｍｅｔｅｒｓ"」には、代理認証Ａコンポーネント１３１０に対するパラメータ情報が定義されている。
【０１１１】
同様に、処理定義１１０６の「"ｃｏｍｐｏｎｅｎｔＩｄ"」には、配信Ａコンポーネント１３２０の識別情報「"ｕｐｌｏａｄＦｉｌｅＡ"」が定義されている。また、処理定義１１０６の「"ｐａｒａｍｅｔｅｒｓ"」には、配信Ａコンポーネント１３２０に対するパラメータ情報が定義されている。なお、配信Ａコンポーネント１３２０に対するパラメータ情報は、例えば、電子ファイルのアップロード先となるフォルダのフォルダＩＤ等である。
【０１１２】
このように、処理フロー情報１１００には、一連の処理（処理フロー）を構成する各処理の処理定義が定義されている。これにより、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に含まれる各処理定義に従って、各コンポーネントによる処理を行うことで、アプリ情報１０００により提供されるサービスを実現する一連の処理を実行することができる。
【０１１３】
なお、図７に示す処理フロー情報１１００に含まれる各処理定義に定義された処理は、上から順に実行される。すなわち、図７に示す処理フロー情報１１００に基づく一連の処理では、処理定義１１０５に定義された処理、処理定義１１０６に定義された処理の順で実行される。ただし、これに限られず、処理フロー情報１１００には、例えば、各処理定義に定義された処理の実行順を示す情報が定義されていても良い
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。
【０１１４】
≪ストレージＡの認証情報の保存≫
まず、ＰＣ端末３０のユーザＵが、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを利用する前に、ストレージＡの認証情報をサービス提供システム１０に保存する場合の処理について、図８を参照しながら説明する。図８は、代理認証に用いる認証情報を保存する処理の一例を示すシーケンス図である。
【０１１５】
ＰＣ端末３０のユーザＵは、認証情報の保存画面の表示操作を行う（ステップＳ８０１）。なお、ユーザＵは、例えば、認証情報保存アプリ３１０によりサービス提供システム１０にログインした後に表示される所定の画面において、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するアプリ情報１０００のアプリ名等を選択することで行うことができる。
【０１１６】
ＰＣ端末３０の認証情報保存アプリ３１０は、認証情報の保存画面の表示操作を受け付けると、代理認証の設定情報の取得要求を、ロジック処理部１１２のコンポーネント管理部３０２に送信する（ステップＳ８０２）。なお、当該取得要求には、上記のステップＳ８０１でユーザＵにより選択されたアプリ情報１０００のアプリＩＤと、ユーザＵがサービス提供システム１０にログインした際に発行された認証チケットとが含まれる。認証チケットは、例えばクッキー等であり、サービス提供システム１０においてユーザＵを識別する利用者ＩＤが含まれる。
【０１１７】
コンポーネント管理部３０２は、代理認証の設定情報の取得要求を受信すると、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ８０３）。なお、当該取得要求には、上記のステップＳ８０１でユーザＵにより選択されたアプリ情報１０００のアプリＩＤが含まれる。
【０１１８】
アプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるアプリＩＤのアプリ情報１０００をアプリ情報記憶部１６０から取得する（ステップＳ８０４）。そして、アプリ管理部１１１は、アプリ情報記憶部１６０から取得したアプリ情報１０００をコンポーネント管理部３０２に返信する。
【０１１９】
次に、コンポーネント管理部３０２は、アプリ管理部１１１から返信されたアプリ情報１０００に含まれる処理フロー情報１１００に定義されているコンポーネントＩＤのうち、代理認証コンポーネントのコンポーネントＩＤを取得する（ステップＳ８０５）。
【０１２０】
すなわち、例えば、図７に示す処理フロー情報１１００がアプリ管理部１１１から返信された場合、コンポーネント管理部３０２は、代理認証Ａコンポーネント１３１０のコンポーネントＩＤ「ａｕｔｈＡ」を取得する。以降では、コンポーネント管理部３０２は、コンポーネントＩＤ「ａｕｔｈＡ」を取得したものとして説明する。
【０１２１】
なお、コンポーネント管理部３０２は、例えば、複数の代理認証コンポーネントのコンポーネントＩＤが処理フロー情報１１００に定義されている場合には、これら複数のコンポーネントＩＤを取得すれば良い。また、コンポーネント管理部３０２は、例えば、アプリ管理部１１１から返信されたアプリ情報１０００に複数の処理フロー情報１１００が含まれている場合には、各処理フロー情報１１００について、上記のステップＳ８０５の処理を繰り返せば良い。
【０１２２】
次に、コンポーネント管理部３０２は、上記のステップＳ８０５で取得したコンポーネントＩＤに対応するコンポーネントを生成する（ステップＳ８０６）。すなわち、コンポーネント管理部３０２は、上記のステップＳ８０５で取得したコンポーネントＩＤ「ａｕｔｈＡ」に対応する代理認証Ａコンポーネント１３１０を生成する。なお、代理認証Ａコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１２３】
なお、コンポーネント管理部３０２は、例えば、上記のステップＳ８０５において複数のコンポーネントＩＤが取得された場合、これらのコンポーネントＩＤに対応する代理認証コンポーネントをそれぞれ生成する。この場合、後述するステップＳ８０７〜ステップＳ８１０の処理は、コンポーネント管理部３０２により生成された代理認証コンポーネント毎に行われる。
【０１２４】
次に、コンポーネント管理部３０２は、上記のステップＳ８０６で生成した代理認証Ａコンポーネント１３１０に対して、代理認証の設定情報の取得要求を送信する（ステップＳ８０７）。なお、当該取得要求には、認証チケットが含まれる。
【０１２５】
代理認証Ａコンポーネント１３１０は、代理認証の設定情報の取得要求を受信すると、認証情報の確認要求を認証サービス処理部１３０に送信する（ステップＳ８０８）。なお、認証情報の確認要求とは、代理認証に用いる認証情報が既に保存されているか否かを確認するための要求であり、当該要求を行ったコンポーネントのコンポーネントＩＤと、認証チケットとが含まれる。
【０１２６】
認証サービス処理部１３０は、認証情報の確認要求を受信すると、当該確認要求に含まれるコンポーネントＩＤ及び認証チケットに基づいて、ストレージＡにおけるユーザＵの認証情報が認証情報テーブル３０００に保存されているか否かを確認する（ステップＳ８０９）。そして、認証サービス処理部１３０は、ストレージＡにおけるユーザＵの認証情報が認証情報テーブル３０００に保存されているか否かを示す確認結果を代理認証Ａコンポーネント１３１０に返信する。
【０１２７】
ここで、認証情報記憶部１８０に記憶されている認証情報テーブル３０００について、図９を参照しながら説明する。図９は、認証情報テーブル３０００の一例を示す図である。
【０１２８】
図９に示す認証情報テーブル３０００は、データの項目として、利用者ＩＤと、コンポーネントＩＤと、暗号化した認証情報とが含まれる。
【０１２９】
利用者ＩＤは、サービス提供システム１０でユーザを識別する識別情報である。コンポーネントＩＤは、代理認証コンポーネントのコンポーネントＩＤである。暗号化された認証情報は、当該コンポーネントＩＤの代理認証コンポーネントの暗号キーにより暗号化された認証情報である。
【０１３０】
例えば、利用者ＩＤ「ｕ００１」には、コンポーネントＩＤ「ａｕｔｈＡ」と、暗号化された認証情報「ＡＳＳＤＦＧＨＪＫＤＦＳＪＨＦＳＦＪＳ＄７６８６」とが関連付けられている。すなわち、利用者ＩＤ「ｕ００１」のユーザのストレージＡにおける認証情報が暗号化されて保存されている。
【０１３１】
同様に、例えば、利用者ＩＤ「ｕ００３」には、コンポーネントＩＤ「ａｕｔｈＢ」と、暗号化された認証情報「７８６８７６２３８９４６２３９６ｈｊｓｌａｆはｓｌｓｌ」とが関連付けられている。すなわち、利用者ＩＤ「ｕ００３」のユーザのストレージＢにおける認証情報が暗号化されて保存されている。
【０１３２】
このように、認証情報テーブル３０００には、利用者ＩＤ及びコンポーネントＩＤ（すなわち、外部ストレージシステム４０）毎に、当該外部ストレージシステム４０における認証情報が暗号化されて保存されている。なお、以降では、認証情報テーブル３０００に暗号化された上で保存されている認証情報を、単に「暗号化認証情報」とも表す。
【０１３３】
したがって、認証サービス処理部１３０は、上記のステップＳ８０９において、コンポーネントＩＤと、認証チケットに含まれる利用者ＩＤとの組に関連付けられている暗号化認証情報が認証情報テーブル３０００に存在するか否かを確認する。
【０１３４】
次に、代理認証Ａコンポーネント１３１０は、認証サービス処理部３０６から返信された確認結果に基づいて、例えば図１０に示す代理認証の設定情報４０００を作成する（ステップＳ８１０）。そして、代理認証Ａコンポーネント１３１０は、コンポーネント管理部３０２を介して、代理認証の設定情報４０００を認証情報保存アプリ３１０に返信する。
【０１３５】
ここで、代理認証Ａコンポーネント１３１０により作成された代理認証の設定情報について、図１０を参照しながら説明する。図１０は、代理認証の設定情報４０００の一例を示す図である。
【０１３６】
図１０に示す代理認証の設定情報４０００には、代理認証Ａコンポーネント１３１０のコンポーネントＩＤ４００１と、代理認証を行う外部ストレージシステム４０１の名称を示すサービス名４００２とが含まれる。また、図１０に示す代理認証の設定情報４０００には、ストレージＡにおけるユーザＵの認証情報が認証情報テーブル３０００に既に保存されているか否かを示す保存済フラグ４００３と、ストレージＡの認証情報の入力項目を示すパラメータ４００４とが含まれる。
【０１３７】
ここで、パラメータ４００４には、ストレージＡの認証情報の入力項目として、ユーザＩＤ４００５と、パスワード４００６とが定義されている。
【０１３８】
なお、代理認証Ａコンポーネント１３１０は、認証サービス処理部１３０から返信された確認結果に応じて、「ｔｕｒｅ」又は「ｆａｌｓｅ」を保存済フラグ４００３に設定する。
【０１３９】
このように、代理認証の設定情報には、後述する代理認証の保存画面を認証情報保存アプリ３１０が表示するための各種の情報が含まれている。
【０１４０】
次に、ＰＣ端末３０の認証情報保存アプリ３１０は、コンポーネント管理部３０２から返信された代理認証の設定情報４０００に基づいて、例えば図１１に示すストレージＡの認証情報の保存画面Ｇ１００を表示する（ステップＳ８１１）。
【０１４１】
ここで、認証情報保存アプリ３１０により表示された、ストレージＡの認証情報の保存画面Ｇ１００について、図１１を参照しながら説明する。図１１は、ストレージＡの認証情報の保存画面Ｇ１００の一例を示す図である。
【０１４２】
図１１に示すストレージＡの認証情報の保存画面Ｇ１００には、ユーザＩＤ入力欄Ｇ１０１と、パスワード入力欄Ｇ１０２と、保存ボタンＧ１０３とが含まれる。
【０１４３】
ここで、ユーザＩＤ入力欄Ｇ１０１は、代理認証の設定情報４０００に含まれるパラメータ４００４にユーザＩＤ４００５が定義されていることにより表示される。同様に、パスワード入力欄Ｇ１０２は、代理認証の設定情報４０００に含まれるパラメータ４００４にパスワード４００６が定義されていることにより表示される。
【０１４４】
このように、代理認証に用いる認証情報の保存画面には、認証情報保存アプリ３１０により、代理認証の設定情報に定義されているパラメータ（認証情報の入力項目を示すパラメータ）に応じた認証情報の入力欄が表示される。なお、例えば、保存済フラグ４００３が「ｔｕｒｅ」である場合、図１１に示すストレージＡの認証情報の保存画面Ｇ１００には、ストレージＡにおけるユーザＵの認証情報が保存されていることを示すメッセージ等が表示されても良い。
【０１４５】
ここで、認証情報保存アプリ３１０に表示される、ストレージＡの認証情報の保存画面の他の例について説明する。
【０１４６】
まず、上記のステップＳ８１０において、代理認証Ａコンポーネント１３１０は、コンポーネント管理部３０２を介して、例えば図１２に示す代理認証の設定情報４００Ａを認証情報保存アプリ３１０に返信したものとする。すなわち、図１２に示すように、パラメータ４００４に組織ＩＤ４００７が定義された代理認証の設定情報４０００Ａが認証情報保存アプリ３１０に返信されたものとする。
【０１４７】
この場合、認証情報保存アプリ３１０は、上記のステップＳ８１１において、代理認証の設定情報４０００Ａに基づいて、例えば図１３に示すストレージＡの認証情報の保存画面Ｇ１１０を表示する。すなわち、認証情報保存アプリ３１０は、代理認証の設定情報４０００Ａに含まれるパラメータ４００４に組織ＩＤ４００７が定義されていることにより、組織ＩＤ入力欄Ｇ１１１を含むストレージＡの認証画面の保存画面Ｇ１１０を表示する。
【０１４８】
ここで、ユーザＵは、図１１に示すストレージＡの認証情報の保存画面Ｇ１００において、認証情報を入力した上で、当該認証情報の保存操作を行ったものとする（ステップＳ８１２）。すなわち、ユーザＵは、ストレージＡのユーザＩＤ及びパスワードをそれぞれユーザＩＤ入力欄Ｇ１０１及びパスワード入力欄Ｇ１０２に入力した上で、保存ボタンＧ１０３を押下して、認証情報の保存操作を行ったものとする。
【０１４９】
ＰＣ端末３０の認証情報保存アプリ３１０は、認証情報の保存操作を受け付けると、認証情報の保存要求を、ロジック処理部１１２のフロー実行部３０１に送信する（ステップＳ８１３）。なお、当該保存要求には、ユーザＵにより入力された認証情報（すなわち、ユーザＩＤ入力欄Ｇ１０１及びパスワード入力欄Ｇ１０２にそれぞれ入力されたユーザＩＤ及びパスワード）と、認証チケットとが含まれる。
【０１５０】
ロジック処理部１１２のフロー実行部３０１は、認証情報の保存要求を受信すると、当該保存要求を代理認証Ａコンポーネント１３１０に送信する（ステップＳ８１４）。
【０１５１】
なお、ステップＳ８１４において、フロー実行部３０１は、コンポーネント管理部３０２により代理認証Ａコンポーネント１３１０を生成した上で、生成された代理認証Ａコンポーネント１３１０に対して、認証情報の保存要求を送信しても良い。
【０１５２】
代理認証Ａコンポーネント１３１０は、認証情報の保存要求を受信すると、認証情報の暗号化及び保存要求を認証情報処理部３０４に送信する（ステップＳ８１５）。なお、当該暗号化及び保存要求には、ユーザＵにより入力された認証情報と、認証チケットと、代理認証Ａコンポーネント１３１０のコンポーネントＩＤと、暗号化キーとが含まれる。
【０１５３】
ここで、暗号化キーは、上述したように、外部ストレージシステム４０毎に予め決められている。このような暗号化キーは、例えば、代理認証コンポーネントを定義する関数やクラス等に設定されている。
【０１５４】
認証情報処理部３０４は、認証情報の暗号化及び保存要求を受信すると、当該暗号化及び保存要求に含まれている暗号化キーを用いて、認証情報を暗号化する（ステップＳ８１６）。
【０１５５】
次に、認証情報処理部３０４は、認証情報の保存要求を認証サービス処理部１３０に送信する（ステップＳ８１７）。なお、当該保存要求には、上記のステップＳ８１６で暗号化した認証情報と、認証チケットと、代理認証Ａコンポーネント１３１０のコンポーネントＩＤとが含まれる。
【０１５６】
認証サービス処理部１３０は、認証情報の保存要求を受信すると、暗号化された認証情報を、認証チケットに含まれる利用者ＩＤと、代理認証Ａコンポーネント１３１０のコンポーネントＩＤとに関連付けて認証情報テーブル３０００に保存する（ステップＳ８１８）。そして、認証サービス処理部１３０は、保存結果を返信する。
【０１５７】
以上により、本実施形態に係る情報処理システム１では、ユーザは、ＰＣ端末３０を用いて、外部ストレージシステム４０を利用するための認証情報をサービス提供システム１０に保存することができる。しかも、このとき、本実施形態に係るサービス提供システム１０は、外部ストレージシステム４０毎に定義された代理認証コンポーネントにより、認証情報を暗号化して保存する。
【０１５８】
これにより、本実施形態に係る情報処理システム１では、例えば、ＯＡｕｔｈ等の認証方式が利用できない外部ストレージシステム４０と連携したサービスをユーザが利用する場合であっても、認証情報の漏洩等のセキュリティリスクを低減することができる。
【０１５９】
≪「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスの利用≫
次に、機器２０のユーザＵが、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを利用する場合の処理について、図１４を用いて説明する。図１４は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを利用する場合の全体処理の一例を示す図である。
【０１６０】
まず、機器２０のユーザＵは、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスのアプリ画面を表示させるための操作（表示操作）を行う（ステップＳ１４０１）。アプリ画面の表示操作は、例えば、サービス提供システム１０にログインした後に表示される所定の画面において、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するアプリ情報１０００のアプリ名等を選択することで行うことができる。
【０１６１】
機器２０のブラウザ２１０は、当該表示操作を受け付けると、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスのアプリ画面を表示するための画面情報の取得要求をＷｅｂサービス処理部１２０に送信する（ステップＳ１４０２）。なお、当該取得要求は、例えば、ＨＴＴＰ（Hypertext Transfer Protocol）リクエストであり、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供するアプリ情報１０００のアプリＩＤが含まれる。
【０１６２】
Ｗｅｂサービス処理部１２０は、画面情報の取得要求を受信すると、当該取得要求に含まれるアプリＩＤに関連付けられている画面情報２０００を画面情報記憶部１７０から取得する（ステップＳ１４０３）。そして、Ｗｅｂサービス処理部１２０は、画面情報記憶部１７０から取得した画面情報２０００を含むＨＴＴＰレスポンスをブラウザ２１０に返信する。
【０１６３】
ここで、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスのアプリ画面を表示するための画面情報２０００について、図１５を参照しながら説明する。図１５は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスのアプリ画面を表示するための画面情報２０００の一例を示す図である。
【０１６４】
図１５に示す画面情報２０００は、ＨＴＭＬ形式で定義された情報である。図１５に示す画面情報２０００には、アプリ画面のタイトルを表示するためのタイトル表示タグ２００１が定義されている。また、図１５に示す画面情報２０００には、ファイル名を入力するテキストボックスを表示するファイル名入力欄タグ２００２と、スキャン実行するためのボタンを表示するスキャン実行ボタンタグ２００３とが定義されている。
【０１６５】
これにより、機器２０のブラウザ２１０は、図１５に示す画面情報２０００を解釈することで、後述するアプリ画面Ｇ２００を表示することができる。
【０１６６】
機器２０のブラウザ２１０は、画面情報２０００を受信すると、当該画面情報２０００に基づいて、図１６に示すアプリ画面Ｇ２００を操作パネル２２に表示させる（ステップＳ１４０４）。
【０１６７】
ここで、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスのアプリ画面Ｇ２００について、図１６を参照しながら説明する。図１６は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを利用するためのアプリ画面Ｇ２０の一例を示す図である。
【０１６８】
図１６に示すアプリ画面Ｇ２００には、当該アプリ画面Ｇ２００のタイトルＧ２０１と、ストレージＡにアップロードする電子ファイルのファイル名を入力するためのファイル名入力欄Ｇ２０２と、スキャンを実行するためのスキャン実行ボタンＧ２０３とが含まれる。
【０１６９】
なお、タイトルＧ２０１、ファイル名入力欄Ｇ２０２、及びスキャン実行ボタンＧ２０３は、タイトル表示タグ２００１、ファイル名入力欄タグ２００２、及びスキャン実行ボタンタグ２００３をブラウザ２１０がそれぞれ解釈することにより表示される。
【０１７０】
このように、本実施形態に係るサービス提供システム１０は、機器２０のブラウザ２１０からの要求に応じて、ＨＴＭＬ形式等のブラウザ２１０が解釈可能な形式で定義された画面情報２０００を返信する。そして、機器２０は、サービス提供システム１０から返信された画面情報２０００に基づいて、サービスを利用するためのアプリ画面を表示する。したがって、ユーザは、一般的なブラウザ２１０が搭載された機器２０を用いて、サービス提供システム１０が提供するサービスを利用することができる。
【０１７１】
機器２０のユーザＵは、図１６に示すアプリ画面Ｇ２００のファイル名入力欄Ｇ２０２にファイル名を入力した上で、スキャン実行ボタンＧ２０３を押下して、スキャン実行操作を行う（ステップＳ１４０５）。例えば、ユーザＵは、ファイル名入力欄Ｇ２０２にファイル名「ｔｅｓｔ」を入力した上で、スキャン実行ボタンＧ２０３を押下して、スキャン実行操作を行う。
【０１７２】
機器２０のブラウザ２１０は、スキャン実行操作を受け付けると、スキャナ２６により原稿を読み取って、ファイル名入力欄Ｇ２０２に入力されたファイル名が付与された電子ファイル（画像ファイル）を生成する（ステップＳ１４０６）。
【０１７３】
次に、機器２０のブラウザ２１０は、電子ファイルが生成されると、処理フローの実行要求をＷｅｂサービス処理部１２０に送信する（ステップＳ１４０７）。なお、当該実行要求は、例えば、ＨＴＴＰリクエストであり、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する一連の処理が定義された処理フロー情報１１００のフローＩＤと、上記のステップＳ１４０６で生成された電子ファイルとが含まれる。また、当該実行要求には、ユーザＵがサービス提供システム１０にログインした際に発行された認証チケットが含まれる。
【０１７４】
ただし、処理フローの実行要求には、フローＩＤに代えて、例えば、アプリ情報１０００のＵＲＬ（Uniform Resource Locator）、アプリ画面Ｇ２００の画面ＩＤ、スキャン実行ボタンＧ２０３のボタンＩＤ等が含まれていても良い。すなわち、処理フローの実行要求には、フローＩＤに代えて、後述するステップＳ１４０８でフローＩＤに変換することができる種々の識別情報が含まれていても良い。
【０１７５】
次に、Ｗｅｂサービス処理部１２０は、処理フローの実行要求を受信すると、当該要求を、入出力サービス処理部１１０のロジック処理部１１２に送信する（ステップＳ１４０８）。なお、Ｗｅｂサービス処理部１２０は、例えば、アプリ情報１０００のＵＲＬ、アプリ画面Ｇ２００の画面ＩＤ、スキャン実行ボタンＧ２０３のボタンＩＤ等が処理フローの実行要求に含まれている場合には、これらの識別情報をフローＩＤに変換する。
【０１７６】
次に、入出力サービス処理部１１０のロジック処理部１１２は、処理フローの実行要求を受信すると、フロー実行部３０１により、処理フロー情報の取得要求をアプリ管理部１１１に送信する（ステップＳ１４０９）。なお、当該取得要求には、フローＩＤが含まれる。
【０１７７】
アプリ管理部１１１は、処理フロー情報の取得要求を受信すると、当該取得要求に含まれるフローＩＤにより識別される処理フロー情報１１００をアプリ情報記憶部１６０から取得する（ステップＳ１４１０）。
【０１７８】
そして、アプリ管理部１１１は、アプリ情報記憶部１６０から取得した処理フロー情報１１００をロジック処理部１１２に返信する。ここで、以降では、アプリ管理部１１１は、図７に示す処理フロー情報１１００をロジック処理部１１２に返信したものとして説明する。
【０１７９】
次に、ロジック処理部１１２は、アプリ管理部１１１から処理フロー情報１１００を受信すると、当該処理フロー情報１１００に基づく処理フローの実行処理を行う（ステップＳ１４１１）。すなわち、ロジック処理部１１２は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する一連の処理（処理フロー）の実行処理を行う。なお、処理フローの実行処理の詳細については後述する。
【０１８０】
そして、ロジック処理部１１２は、処理フローの実行処理の処理結果を、Ｗｅｂサービス処理部１２０を介して、ブラウザ２１０に返信する。これにより、本実施形態に係るサービス提供システム１０は、処理フロー情報１１００に基づく一連の処理（処理フロー）により実現される各種のサービス（例えば、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービス）を提供することができる。
【０１８１】
なお、図１４に示す「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスの全体処理では、ブラウザ２１０は、Ｗｅｂサービス処理部１２０を介して、処理フローの実行要求をロジック処理部１１２に送信しているが、これに限られない。ブラウザ２１０は、例えば、画面情報２０００に定義されたＪａｖａＳｃｒｉｐｔ等に基づいてＷｅｂＡＰＩを呼び出すことにより、Ｗｅｂサービス処理部１２０を介さずに、直接、処理フローの実行要求をロジック処理部１１２に送信しても良い。
【０１８２】
ここで、以降では、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する処理フローの実行処理（図１４のステップＳ１４１１の処理）の詳細について、図１７を参照しながら説明する。図１７は、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを実現する処理フローの実行処理の一例を示すシーケンス図である。
【０１８３】
まず、フロー実行部３０１は、図１４のステップＳ１４１０でアプリ管理部１１１から返信された処理フロー情報１１００に基づいて、コンポーネント取得要求をコンポーネント管理部３０２に送信する（ステップＳ１７０１）。すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００の処理定義１１０５の「"ｃｏｍｐｏｎｅｎｔＩｄ"」に定義されている「"ａｕｔｈＡ"」を含むコンポーネント取得要求をコンポーネント管理部３０２に送信する。
【０１８４】
コンポーネント管理部３０２は、コンポーネント取得要求を受信すると、当該取得要求に含まれる「"ａｕｔｈＡ"」に対応する代理認証Ａコンポーネント１３１０を生成する（ステップＳ１７０２）。なお、代理認証Ａコンポーネント１３１０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１８５】
そして、コンポーネント管理部３０２は、生成した代理認証Ａコンポーネント１３１０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、代理認証Ａコンポーネント１３１０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１８６】
なお、代理認証Ａコンポーネント１３１０が既に生成されている場合には、コンポーネント管理部３０２は、代理認証Ａコンポーネント１３１０の生成を行わなくても良い。
【０１８７】
フロー実行部３０１は、代理認証Ａコンポーネント１３１０が返信されると、コンポーネント処理実行要求を代理認証Ａコンポーネント１３１０に送信する（ステップＳ１７０３）。なお、コンポーネント処理実行要求には、認証チケットと、データと、パラメータ情報とが含まれる。
【０１８８】
ここで、上記のステップＳ１７０３において、データとは、例えば、Ｗｅｂサービス処理部１２０から受信した電子ファイル（処理フローの実行要求に含まれる電子ファイル）を示すアドレスやパス等である。また、上記のステップＳ１７０３において、パラメータ情報とは、図７に示す処理フロー情報１１００の処理定義１１０５の「"ｐａｒａｍｅｔｅｒｓ"」に定義されている各パラメータ情報である。
【０１８９】
代理認証Ａコンポーネント１３１０は、コンポーネント処理実行要求を受信すると、ストレージＡの代理認証に用いる認証情報の取得及び復号要求を認証情報処理部３０４に送信する（ステップＳ１７０４）。なお、当該取得及び復号要求には、認証チケットと、代理認証Ａコンポーネント１３１０のコンポーネントＩＤと、復号キーとが含まれる。
【０１９０】
ここで、復号キーは、上述したように、外部ストレージシステム４０毎に予め決められている。このような復号キーは、例えば、代理認証コンポーネントを定義する関数やクラス等に設定されている。
【０１９１】
認証情報処理部３０４は、認証情報の取得及び復号要求を受信すると、認証情報の取得要求を認証サービス処理部１３０に送信する（ステップＳ１７０５）。なお、当該取得要求には、認証チケットと、代理認証Ａコンポーネント１３１０のコンポーネントＩＤとが含まれる。
【０１９２】
認証サービス処理部１３０は、認証情報の取得要求を受信すると、認証チケットに含まれる利用者ＩＤと、コンポーネントＩＤとに関連付けられている暗号化認証情報を認証情報テーブル３０００から取得する（ステップＳ１７０６）。
【０１９３】
そして、認証サービス処理部１３０は、認証情報テーブル３０００から取得された暗号化認証情報を認証情報処理部３０４に返信する。
【０１９４】
認証情報処理部３０４は、認証サービス処理部１３０から暗号化認証情報を受信すると、復号キーを用いて、当該暗号化認証情報を復号する（ステップＳ１７０７）。そして、認証情報処理部３０４は、復号された暗号化認証情報（すなわち、認証情報）を、代理認証Ａコンポーネント１３１０に返信する。その後、代理認証Ａコンポーネント１３１０は、データと共に、認証情報をフロー実行部３０１に返信する。
【０１９５】
このように、代理認証Ａコンポーネント１３１０は、フロー実行部３０１からの要求に応じて、ストレージＡの代理認証に用いる認証情報の取得及び復号を認証情報処理部３０４に要求する。そして、代理認証Ａコンポーネント１３１０は、認証情報処理部３０４により取得及び復号された認証情報をフロー実行部３０１に返信する。
【０１９６】
次に、フロー実行部３０１は、図１４のステップＳ１４１０でアプリ管理部１１１から返信された処理フロー情報１１００に基づいて、コンポーネント取得要求をコンポーネント管理部３０２に送信する（ステップＳ１７０８）。すなわち、フロー実行部３０１は、図７に示す処理フロー情報１１００の処理定義１１０６の「"ｃｏｍｐｏｎｅｎｔＩｄ"」に定義されている「"ｕｐｌｏａｄＦｉｌｅＡ"」を含むコンポーネント取得要求をコンポーネント管理部３０２に送信する。
【０１９７】
コンポーネント管理部３０２は、コンポーネント取得要求を受信すると、当該取得要求に含まれる「"ｕｐｌｏａｄＦｉｌｅＡ"」に対応する配信Ａコンポーネント１３２０を生成する（ステップＳ１７０９）。なお、配信Ａコンポーネント１３２０の生成は、コンポーネント共通Ｉ／Ｆ１３００を用いて行うことができる。
【０１９８】
そして、コンポーネント管理部３０２は、生成した配信Ａコンポーネント１３２０をフロー実行部３０１に返信する。すなわち、コンポーネント管理部３０２は、例えば、配信Ａコンポーネント１３２０が展開されたメモリ（例えばＲＡＭ１４）上のアドレスをフロー実行部３０１に返信する。
【０１９９】
フロー実行部３０１は、配信Ａコンポーネント１３２０が返信されると、コンポーネント処理実行要求を配信Ａコンポーネント１３２０に送信する（ステップＳ１７１０）。なお、コンポーネント処理実行要求には、代理認証Ａコンポーネント１３１０から返信された認証情報と、データと、パラメータ情報とが含まれる。
【０２００】
ここで、上記のステップＳ１７１０において、データとは、代理認証Ａコンポーネント１３１０から返信されたデータ（すなわち、Ｗｅｂサービス処理部１２０から受信した電子ファイルを示すアドレスやパス等）である。また、上記のステップＳ１７１０において、パラメータ情報とは、図７に示す処理フロー情報１１００の処理定義１１０６の「"ｐａｒａｍｅｔｅｒｓ"」に定義されている各パラメータ情報である。
【０２０１】
配信Ａコンポーネント１３２０は、コンポーネント処理実行要求を受信すると、当該処理実行要求に含まれる認証情報を用いて、データが示す電子ファイルをストレージＡにアップロードする（ステップＳ１７１１）。このとき、配信Ａコンポーネント１３２０は、認証情報を用いてストレージＡとの間で認証（代理認証）を行った上で、例えば、パラメータ情報が示すフォルダＩＤのフォルダに対して、当該電子ファイルをアップロードする。なお、配信Ａコンポーネント１３２０は、ストレージＡに対応する外部サービス連携部１５０１のファイル処理部１５１に対して、電子ファイルのアップロード要求を行うことにより、電子ファイルをアップロードすることができる。
【０２０２】
そして、配信Ａコンポーネント１３２０は、処理結果を示すデータをフロー実行部３０１に返信する。
【０２０３】
以上により、本実施形態に係るサービス提供システム１０は、機器２０のユーザＵに対して、「Ｓｃａｎ  Ｔｏ  ストレージＡ」サービスを提供することができる。このとき、本実施形態に係るサービス提供システム１０は、ユーザＵにより予め保存された暗号化認証情報を復号した認証情報を用いて代理認証を行うことで、電子ファイルをストレージＡにアップロードすることができる。
【０２０４】
＜まとめ＞
以上のように、本実施形態に係る情報処理システム１では、ユーザは、例えばＯＡｕｔｈ等の認証方式を利用することができない外部ストレージシステム４０の認証情報をサービス提供システム１０に保存することができる。しかも、このとき、本実施形態に係る情報処理システム１では、外部ストレージシステム４０毎に定義された代理認証コンポーネントにより、代理認証コンポーネント毎に異なる暗号化キーを用いて認証情報を暗号化する。
【０２０５】
また、本実施形態に係る情報処理システム１では、外部ストレージシステム４０と連携した一連の処理により実現されるサービスを提供する場合、予め保存されている暗号化認証情報を用いてサービス提供システム１０が代理認証を行う。しかも、このとき、本実施形態に係る情報処理システム１では、外部ストレージシステム４０毎に定義された代理認証コンポーネントにより、代理認証コンポーネント毎に異なる復号キーを用いて暗号化認証情報を復号する。
【０２０６】
これにより、本実施形態に係る情報処理システム１では、例えばＯＡｕｔｈ等の認証方式が利用できない外部ストレージシステム４０と連携したサービスをユーザが利用する場合であっても、認証情報の漏洩等のセキュリティリスクを低減することができる。
【０２０７】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０２０８】
１        情報処理システム
１０      サービス提供システム
２０      機器
３０      ＰＣ端末
４０      外部ストレージシステム
１１０      入出力サービス処理部
１１１      アプリ管理部
１１２      ロジック処理部
１１３      データＩ／Ｆ部
１２０      Ｗｅｂサービス処理部
１３０      認証サービス処理部
１４０      ドキュメントサービス部
１５０      外部サービス連携部
１６０      アプリ情報記憶部
１７０      画面情報記憶部
１８０      認証情報記憶部
３０１      フロー実行部
３０２      コンポーネント管理部
３０３      コンポーネント群
３０４      認証情報処理部
１０００    アプリ情報
１１００    処理フロー情報
２０００    画面情報
３０００    認証情報テーブル
【先行技術文献】
【特許文献】
【０２０９】
【特許文献１】特許第４０３９１９１号公報
【図１】
2018032091.tif 000003
【図２】
2018032091.tif 000004
【図３】
2018032091.tif 000005
【図４】
2018032091.tif 000006
【図５】
2018032091.tif 000007
【図６】
2018032091.tif 000008
【図７】
2018032091.tif 000009
【図８】
2018032091.tif 000010
【図９】
2018032091.tif 000011
【図１０】
2018032091.tif 000012
【図１１】
2018032091.tif 000013
【図１２】
2018032091.tif 000014
【図１３】
2018032091.tif 000015
【図１４】
2018032091.tif 000016
【図１５】
2018032091.tif 000017
【図１６】
2018032091.tif 000018
【図１７】
2018032091.tif 000019