(57)【要約】【課題】機器の外部のサービスを利用するプログラムの開発効率を向上させること。【解決手段】それぞれが異なるインタフェースを介して要求を受け付ける複数の外部装置にネットワークを介して接続される情報処理装置と、機器とを含む情報処理システムであって、前記機器は、当該機器が有する第１のプログラムから、前記複数の外部装置のインタフェースに対して統一されたインタフェースを介して第１の要求を受け付けると、当該第１の要求を前記情報処理装置へ送信する第１の送信部を有し、前記情報処理装置は、前記第１の要求を受信すると、前記複数の外部装置のうち当該第１の要求において指定された前記外部装置のインタフェースを介して、前記第１の要求に対応する第２の要求を当該外部装置に送信する第２の送信部を有する。【選択図】図４
2018094870.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが異なるインタフェースを介して要求を受け付ける複数の外部装置にネットワークを介して接続される情報処理装置と、機器とを含む情報処理システムであって、
前記機器は、
当該機器が有する第１のプログラムから、前記複数の外部装置のインタフェースに対して統一されたインタフェースを介して第１の要求を受け付けると、当該第１の要求を前記情報処理装置へ送信する第１の送信部を有し、
前記情報処理装置は、
前記第１の要求を受信すると、前記複数の外部装置のうち当該第１の要求において指定された前記外部装置のインタフェースを介して、前記第１の要求に対応する第２の要求を当該外部装置に送信する第２の送信部を有する、
ことを特徴とする情報処理システム。
【請求項２】
前記機器は、
当該機器を操作するユーザを特定する特定部と、
前記第１の送信部が前記第１の要求を受け付けたときに、前記情報処理装置によって前記ユーザが認証済みであることを示す第１のデータが記憶部に記憶されていない場合に、前記情報処理装置に対する認証情報を前記ユーザに入力させるための第１の画面を表示し、前記第１の画面を介して入力された認証情報に基づいて前記情報処理装置から取得される前記第１のデータを前記記憶部に記憶する認証連携部とを有し、
前記第１の送信部は、前記記憶部に記憶されている前記第１のデータと共に前記第１の要求を前記情報処理装置へ送信する、
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記第１の送信部は、同一のユーザによる操作中に、前記機器が有する複数のプログラムから前記統一されたインタフェースを介して受け付けられる第１の要求に対して、同一の前記第１のデータを利用して前記情報処理装置へ当該第１の要求を送信する、
ことを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記認証連携部は、前記第１の送信部が前記第１の要求を受け付けたときに、前記第１のプログラムについて前記情報処理装置の利用の許可を示す情報が前記記憶部に記憶されていない場合には、第２の画面を表示し、第２の画面を介して当該許可が入力された場合に、当該許可を示す情報を前記記憶部に記憶する、
ことを特徴とする請求項２又は３記載の情報処理システム。
【請求項５】
前記第１のデータは有効期限を有し、
前記認証連携部は、有効期限が切れている前記第１のデータが前記記憶部に記憶されている場合に前記第１の画面を表示し、有効期限が切れていない前記第１のデータが前記記憶部に記憶されている場合には前記第１の画面を表示しない、
ことを特徴とする請求項２乃至４いずれか一項記載の情報処理システム。
【請求項６】
前記外部装置は、フォルダを有し、
前記認証連携部は、前記第１の送信部が前記外部装置のフォルダの一覧の取得要求を前記第１の要求として受け付けたときに、前記第１のデータが前記記憶部に記憶されていない場合に、前記第１の画面を表示し、前記第１の画面を介して入力された認証情報に基づいて前記情報処理装置から取得される前記第１のデータを前記記憶部に記憶し、
前記第１の送信部は、前記記憶部に記憶されている前記第１のデータと共に前記フォルダの一覧の取得要求を前記情報処理装置へ送信することで前記情報処理装置から返信される前記一覧を、前記第１のプログラムに応答する、
ことを特徴とする請求項２乃至５いずれか一項記載の情報処理システム。
【請求項７】
前記第１の送信部は、前記第１の要求に対して応答を行った後に、前記第１の要求を前記情報処理装置へ送信する、
ことを特徴とする請求項１乃至６いずれか一項記載の情報処理システム。
【請求項８】
前記第１の要求は、いずれかの前記外部装置に対する第２のデータの配信要求である、
ことを特徴とする請求項１乃至７いずれか一項記載の情報処理システム。
【請求項９】
請求項１乃至８いずれか一項記載の機器。
【請求項１０】
請求項１乃至８いずれか一項記載の情報処理装置。
【請求項１１】
それぞれが異なるインタフェースを介して要求を受け付ける複数の外部装置にネットワークを介して接続される情報処理装置と、機器とが実行する情報処理方法であって、
前記機器が、
当該機器が有する第１のプログラムから、前記複数の外部装置のインタフェースに対して統一されたインタフェースを介して第１の要求を受け付けると、当該第１の要求を前記情報処理装置へ送信する第１の送信手順を実行し、
前記情報処理装置が、
前記第１の要求を受信すると、前記複数の外部装置のうち当該第１の要求において指定された前記外部装置のインタフェースを介して、前記第１の要求に対応する第２の要求を当該外部装置に送信する第２の送信手順を実行する、
ことを特徴とする情報処理方法。
【請求項１２】
機器に、
当該機器が有する第１のプログラムから、それぞれが異なるインタフェースを介して要求を受け付ける複数の外部装置に対して統一されたインタフェースを介して第１の要求を受け付けると、当該第１の要求を複数の外部装置にネットワークを介して接続される情報処理装置へ送信する第１の送信手順を実行させ、
前記情報処理装置は、
前記第１の要求を受信すると、前記複数の外部装置のうち当該第１の要求において指定された前記外部装置のインタフェースを介して、前記第１の要求に対応する第２の要求を当該外部装置に送信する、
ことを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、機器、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
画像形成装置をはじめとする各種の機器の中には、アプリケーションプラットフォームを有し、当該アプリケーションプラットフォーム上で開発されたアプリケーションプログラム（以下、「アプリ」という。）を随時インストール可能な機器が有る。
【０００３】
機器にインストールされるアプリの中には、インターネット等のネットワークを介して提供される外部のサービス（例えば、クラウドサービス）と連携することで、新たな付加価値を提供可能なアプリも有る。例えば、画像形成装置にインストールされるアプリであれば、画像形成装置が原稿からスキャンした画像データを、クラウドストレージへアップロードするといったアプリが有る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ネットワークを介して提供されるサービス（以下、「外部サービス」という。）のインタフェース（ＡＰＩ（Application Program Interface））は、機器のアプリケーションプラットフォームのインタフェースに対して高い頻度で変更されることが多い。また、外部サービスにおいては、インタフェースの互換性が保証されない場合が有る。したがって、外部サービスを利用しているアプリについては、外部サービスを利用しないアプリに比べて、改変が必要となる頻度が高くなり、開発者の負担が増加する可能性が高くなる。
【０００５】
同種の複数の外部サービスを利用するアプリの場合（例えば、複数のクラウドストレージを利用するアプリの場合）、外部サービスごとにインタフェースが異なるため、アプリ内において各サービスのインタフェースを呼び分ける必要が有るが、利用する外部サービスが増加すればするほど、アプリの改変の頻度は高くなる。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、機器の外部のサービスを利用するプログラムの開発効率を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、情報処理システムは、それぞれが異なるインタフェースを介して要求を受け付ける複数の外部装置にネットワークを介して接続される情報処理装置と、機器とを含む情報処理システムであって、前記機器は、当該機器が有する第１のプログラムから、前記複数の外部装置のインタフェースに対して統一されたインタフェースを介して第１の要求を受け付けると、前記複数の外部装置のうち当該第１の要求を前記情報処理装置へ送信する第１の送信部を有し、前記情報処理装置は、前記第１の要求を受信すると、当該第１の要求において指定された前記外部装置のインタフェースを介して、前記第１の要求に対応する第２の要求を当該外部装置に送信する第２の送信部を有する。
【発明の効果】
【０００８】
機器の外部のサービスを利用するプログラムの開発効率を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における情報処理システムの構成例を示す図である。
【図２】本発明の実施の形態におけるサービス提供装置２０のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における画像形成装置１０のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における情報処理システムの機能構成例を示す図である。
【図５】情報処理システムにおいて実行される処理手順の一例を説明するためのシーケンス図である。
【図６】認証情報記憶部１３１の構成例を示す図である。
【図７】アクセス情報記憶部１３４の構成例を示す図である。
【図８】認証画面の表示例を示す図である。
【図９】認可画面の表示例を示す図である。
【図１０】再認可画面の表示例を示す図である。
【図１１】配信情報記憶部１３２の構成例を示す図である。
【図１２】配信先の選択手順の一例を説明するためのシーケンス図である。
【図１３】クラウドストレージ選択画面の表示例を示す図である。
【図１４】フォルダ一覧画面の表示例を示す図である。
【図１５】ダウンロード情報記憶部１３３の構成例を示す図である。
【図１６】スキャン及び配信に関するストレスレスな操作性を説明するための図である。
【図１７】ダウンロード及び印刷に関するストレスレスな操作性を説明するための図である。
【図１８】ＷＦサービス部２１の仕組みの一例を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における情報処理システムの構成例を示す図である。図１に示される情報処理システム１において、サービス提供環境Ｅ２、ユーザ環境Ｅ１、並びにクラウドストレージ４０ｘ及びクラウドストレージ４０ｙ等は、インターネット等の広域的なネットワークを介して接続される。
【００１１】
サービス提供環境Ｅ２は、ネットワークを介してサービスを提供する組織におけるシステム環境である。当該サービスは、クラウドサービスの形態によって提供されてもよいし、ＡＳＰ（Application Service Provider）によって提供されるサービスやＷｅｂサービス等、他の形態によって提供されてもよく、ネットワークを介したサービスの提供形態であれば、その称呼に限定されるものではない。本実施の形態において、サービス提供環境Ｅ２は、ユーザ環境Ｅ１における画像形成装置１０による、クラウドストレージ４０ｘ及び４０ｙ等の利用を容易にするためのサービスを提供する。
【００１２】
サービス提供環境Ｅ２は、サービス提供装置２０を有する。サービス提供装置２０は、ネットワークを介して上記のサービスを提供する。例えば、サービス提供装置２０は、画像形成装置１０においてスキャンされた画像データを、いずれかのクラウドストレージ４０へ配信するサービスを提供する。なお、サービス提供装置２０は、ユーザ環境Ｅ１に設置されてもよい。すなわち、サービス提供環境Ｅ２は、ユーザ環境Ｅ１に包含されてもよい。
【００１３】
ユーザ環境Ｅ１は、画像形成装置１０のユーザ企業等の組織におけるシステム環境である。ユーザ環境Ｅ１において、一台以上の画像形成装置１０と管理者端末３０とはＬＡＮ（Local Area Network）等のネットワークを介して接続されている。
【００１４】
本実施の形態の画像形成装置１０は、スキャン機能を有する画像形成装置である。スキャン機能以外に、印刷、コピー、又はファクス（ＦＡＸ）通信等の機能を有する複合機が画像形成装置１０として用いられてよい。
【００１５】
管理者端末３０は、ユーザ環境Ｅ１における画像形成装置１０の管理者が使用する端末である。管理者端末３０の一例として、ＰＣ（Personal Computer）、ＰＤＡ（Personal Digital Assistance）、スマートフォン、タブレット端末、又は携帯電話等が挙げられる。なお、本実施の形態で挙げるスマートフォンとは、携帯電話としての通話機能の他、カメラによる撮像機能、ＰＣのようなＷｅｂ情報表示機能など多機能を備える端末などが典型である。また、タブレット端末とは、スマートフォンと同様に多機能端末として機能するタブレット型の端末が典型である。
【００１６】
クラウドストレージ４０ｘ及びクラウドストレージ４０ｙ（以下、両者を区別しない場合「クラウドストレージ４０」という。）は、ネットワークを介してストレージ（記憶領域）を貸し出すサービスを提供するコンピュータシステムである。
【００１７】
図２は、本発明の実施の形態におけるサービス提供装置２０のハードウェア構成例を示す図である。図２のサービス提供装置２０は、それぞれバスBで相互に接続されているドライブ装置２００と、補助記憶装置２０２と、メモリ装置２０３と、ＣＰＵ２０４と、インタフェース装置２０５とを有する。
【００１８】
サービス提供装置２０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体２０１によって提供される。プログラムを記憶した記録媒体２０１がドライブ装置２００にセットされると、プログラムが記録媒体２０１からドライブ装置２００を介して補助記憶装置２０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体２０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置２０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１９】
メモリ装置２０３は、プログラムの起動指示があった場合に、補助記憶装置２０２からプログラムを読み出して格納する。ＣＰＵ２０４は、メモリ装置２０３に格納されたプログラムに従ってサービス提供装置２０に係る機能を実行する。インタフェース装置２０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２０】
なお、サービス提供装置２０は、図２に示されるようなハードウェアを有する複数のコンピュータによって構成されてもよい。すなわち、後述においてサービス提供装置２０が実行する処理は、複数のコンピュータに分散されて実行されてもよい。
【００２１】
図３は、本発明の実施の形態における画像形成装置１０のハードウェア構成例を示す図である。図３において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００２２】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、及びＮＶＲＡＭ１１５等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記憶される。ＮＶＲＡＭ１１５には、各種の設定情報等が記憶される。
【００２３】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。なお、操作パネル１５は、タブレット端末又はスマートフォン等のように、コントローラ１１からは独立したＣＰＵを有する情報処理端末を用いて構成されてもよい。この場合、操作パネル１５とコントローラ１１との間は、有線又は無線の通信媒体によって接続されてもよい。
【００２４】
ＳＤカードスロット１７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記憶されたプログラムだけでなく、ＳＤカード８０に記憶されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００２５】
図４は、本発明の実施の形態における情報処理システムの機能構成例を示す図である。図４において、サービス提供装置２０は、ＷＦサービス部２１及び認証サービス部２２等を有する。これら各部は、サービス提供装置２０にインストールされた１以上のプログラムが、ＣＰＵ２０４に実行させる処理により実現される。サービス提供装置２０は、また、ユーザ情報記憶部２３を利用する。ユーザ情報記憶部２３は、例えば、補助記憶装置２０２、又はサービス提供装置２０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２６】
ＷＦサービス部２１は、クラウドストレージ４０へアクセスするためのワークフローを実行する。ワークフローは予め定義される。ワークフローの一例として、クラウドストレージ４０に対してデータの配信（アップロード）するワークフロー（あるいはサービス提供装置２０でＯＣＲなど一連の処理を実行することで生成されたデータをアップロードするワークフローなど）や、クラウドストレージ４０に保存されているデータをダウンロードするワークフロー等が挙げられる。
【００２７】
認証サービス部２２は、画像形成装置１０からのサービス提供装置２０に対するアクセスについて認証等を行う。
【００２８】
ユーザ情報記憶部２３には、サービス提供装置２０へのアクセスが許可される各ユーザの識別情報等が記憶されている。
【００２９】
画像形成装置１０は、アプリ１２１ａ及びアプリ１２１ｂ等の複数のアプリケーションプログラム（以下、それぞれを区別しない場合「アプリ１２１」という。）、認証部１２２、統一ＡＰＩ部１２３及びサービス連携部１２４等を有する。これら各部は、コントローラ１１又は操作パネル１５にインストールされた１以上のプログラムが、ＣＰＵ１１１又は操作パネル１５のＣＰＵに実行させる処理により実現される。画像形成装置１０は、また、認証情報記憶部１３１、配信情報記憶部１３２、ダウンロード情報記憶部１３３及びアクセス情報記憶部１３４等を利用する。これら各記憶部は、例えば、ＨＤＤ１１４、操作パネル１５の記憶装置、又は画像形成装置１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００３０】
アプリ１２１は、画像形成装置１０にインストールされるプログラムの一例である。本実施の形態において、各アプリ１２１は、クラウドストレージ４０を利用した機能を提供する。クラウドストレージ４０を利用した機能の一例として、画像形成装置１０においてスキャンされた画像データのクラウドストレージ４０へ配信するといった機能や、クラウドストレージ４０に保存されているデータを画像形成装置１０に印刷させるといった機能が挙げられる。
【００３１】
認証部１２２は、画像形成装置１０へログインするユーザについて認証処理を実行する。すなわち、認証部１２２は、画像形成装置１０を操作するユーザを特定する。
【００３２】
統一ＡＰＩ部１２３は、同一又は類似（同種）の要求についてクラウドストレージ４０ごとに異なるＡＰＩ（Application Program Interface））に対して統一的な又は共通的なＡＰＩ（関数群又はメソッド群）をアプリ１２１に提供するライブラリである。以下、統一ＡＰＩ部１２３が提供するインタフェースを「統一ＡＰＩ」という。図４では、アプリ１２１ごとに統一ＡＰＩ部１２３が示されているが、これは、統一ＡＰＩ部１２３が各アプリ１２１にリンクされることを示すものであり、アプリ１２１ごとに異なる統一ＡＰＩ部１２３が存在することを示すものではない。
【００３３】
サービス連携部１２４は、サービス提供装置２０が連携しているクラウドストレージ４０の利用を容易にするためのサービスを提供する。図４において、サービス連携部１２４は、ＷＦ連携部１２５及び認証連携部１２６等を含む。
【００３４】
ＷＦ連携部１２５は、アプリ１２１から呼び出された統一ＡＰＩに対応するワークフローの実行要求をサービス提供装置２０のＷＦサービス部２１へ送信する。
【００３５】
認証連携部１２６は、サービス提供装置２０と連携するために必要とされる認証処理を制御する。
【００３６】
認証情報記憶部１３１には、画像形成装置１０へログインするためのユーザＩＤ及びパスワード等の認証情報がユーザごとに記憶されている。
【００３７】
アクセス情報記憶部１３４には、ユーザごとに、サービス提供装置２０にアクセスするために必要な情報等が記憶される。
【００３８】
配信情報記憶部１３２は、ＷＦ連携部１２５が、クラウドストレージ４０へのデータの配信をアプリ１２１から要求された際（データの配信要求に対応する統一ＡＰＩが呼び出された際）に、当該要求に関する情報を記憶しておくための記憶部である。
【００３９】
ダウンロード情報記憶部１３３は、ＷＦ連携部１２５が、クラウドストレージ４０からのデータのダウンロードをアプリ１２１から要求された際（データのダウンロードの要求に対応する統一ＡＰＩが呼び出された際）に、当該要求に関する情報を記憶しておくための記憶部である。
【００４０】
なお、配信情報記憶部１３２及びダウンロード情報記憶部１３３は、アプリ１２１からの要求に応じた処理（配信やダウンロード等）を、当該要求とは非同期に実行するために利用される。すなわち、配信情報記憶部１３２及びダウンロード情報記憶部１３３は、アプリ１２１からの要求を蓄積（キューイング）しておき、ＷＦ連携部１２５にとって都合の良いタイミングで当該要求に応じた処理を実行可能とするために利用される。
【００４１】
上記より明らかなように、本実施の形態では、各アプリ１２１は、クラウドストレージ４０のＡＰＩを直接呼び出すのではなく、統一ＡＰＩを呼び出すことで、サービス連携部１２４及びサービス提供装置２０を経由してクラウドストレージ４０へのアクセスを行う。すなわち、統一ＡＰＩ部１２３、サービス連携部１２４、及びサービス提供装置２０が、クラウドストレージ４０へのアクセスを容易にするためのプラットフォームとして機能する。
【００４２】
以下、情報処理システム１において実行される処理手順について説明する。図５は、情報処理システムにおいて実行される処理手順の一例を説明するためのシーケンス図である。図５の初期状態において、画像形成装置１０の操作パネル１５にはログイン画面が表示されている。
【００４３】
ユーザがログイン画面を介してユーザＩＤ及びパスワードを入力すると、認証部１２２は、当該ユーザＩＤ及びパスワードを認証情報記憶部１３１に記憶されている情報と照合することで、ログインの許否を判定する（Ｓ１０１）。なお、本実施の形態では、操作パネル１５に表示したログイン画面を介したユーザの認証情報の入力によるユーザ認証を例に説明を進めるが、ＩＣ（integrated circuit）カード等のユーザ情報を記憶したカードを用いた認証が行われてもよい。また、ユーザ認証に用いられる機能を備えた（あるいは、アプリケーションがインストールされた）スマートフォン、携帯電話機等、様々な情報端末を含めて認証デバイスとして、ＩＣカードを用いた場合と同様の機能を実現可能であり、ユーザ情報が記憶可能な記憶媒体であれば同様に本実施の形態で用いることができる。このため、ユーザ情報に利用できる記憶媒体は、ＩＣカード又はＩＤ（identity card／identification card）カード等のみに限定されることはない。
【００４４】
図６は、認証情報記憶部１３１の構成例を示す図である。図６に示されるように、認証情報記憶部１３１には、ユーザごとに、ＤＵＩＤ及びＤＰＷＤ等が記憶されている。ＤＵＩＤは、画像形成装置１０において各ユーザに対して割り当てられているユーザＩＤ（ユーザの識別情報）である。ＤＰＷＤは、ＤＷＵＩＤに対応するパスワードである。ＤＵＩＤ及びＤＰＷＤの組は、同一のユーザについて画像形成装置１０ごとに異なっていてもよい。
【００４５】
ステップＳ１０１では、入力されたユーザＩＤ及びパスワードに一致するＤＵＩＤ及びＤＰＷＤが認証情報記憶部１３１に記憶されていればユーザのログインは許可され、そうでなければユーザのログインは拒否される。
【００４６】
ユーザのログインが許可されると、認証部１２２は、当該ユーザ（以下、「ログインユーザ」という。）のログインを認証連携部１２６に通知する（Ｓ１０２）。認証連携部１２６への通知には、ログインユーザのＤＵＩＤが含まれる。
【００４７】
認証連携部１２６は、当該通知に応じ、当該ＤＵＩＤを含むアクセス情報をアクセス情報記憶部１３４からＲＡＭ１１２へ読み込む（Ｓ１０３）。
【００４８】
図７は、アクセス情報記憶部１３４の構成例を示す図である。図７に示されるように、アクセス情報記憶部１３４には、過去にクラウドストレージ４０へアクセスしたユーザごとに、ＤＵＩＤ、テナントＩＤ、ＳＵＩＤ、ＡＴＯＫＥＮ、有効期限、許可リスト及び拒否リスト等を含むアクセス情報が記憶される。
【００４９】
テナントＩＤは、例えば、ユーザ環境ごとに割り当てられる識別情報である。ＳＵＩＤは、ＤＵＩＤに対応する、サービス提供装置２０に対するユーザＩＤである。なお、一人のユーザに対して複数のテナントＩＤ及びＳＵＩＤを設定可能である。図７では、ｄｕｓｅｒ１に対して２つのテナントＩＤ及びＳＵＩＤが対応付けられている例が示されている。但し、テナントＩＤは、アクセス情報記憶部１３４に記憶されなくてもよい。又はＳＵＩＤが、テナントＩＤによって識別される対象をも含めてユーザを識別可能なＩＤであってもよい。この場合、テナントＩＤは、使用されなくてもよい。
【００５０】
ＡＴＯＫＥＮは、サービス提供装置２０へアクセスするためのアクセストークン（Access Token）である。アクセストークンは、サービス提供装置２０よって認証済みであることを示すデータの一例である。有効期限は、ＡＴＯＫＥＮの有効期限である。許可リストは、サービス提供装置２０へのアクセスが許可されるアプリ１２１の識別情報（以下、「アプリＩＤ」という。）の一覧である。拒否リストは、サービス提供装置２０へのアクセスが禁止されるアプリ１２１のアプリＩＤの一覧である。
【００５１】
なお、ステップＳ１０３において、認証連携部１２６は、ログインユーザのＤＵＩＤを含むアクセス情報がアクセス情報記憶部１３４に記憶されていれば、当該アクセス情報をＲＡＭ１１２に読み込む。当該ＤＵＩＤを含むアクセス情報がアクセス情報記憶部１３４に記憶されていなければ、当該ＤＵＩＤを含むアクセス情報がアクセス情報記憶部１３４に生成され、当該アクセス情報がＲＡＭ１１２に読み込まれる。新たに生成されたアクセス情報には、ＤＵＩＤのみが含まれていればよい。以下、読み込まれたアクセス情報を「対象アクセス情報」という。
【００５２】
その後、ユーザが、例えば、アプリ１２１ａを利用して、配信対象のデータの識別情報（ｓｏｕｒｃｅ）、配信先のクラウドストレージ４０の識別情報（ｃｓｔｏｒａｇｅ）、及び配信先のフォルダのフォルダＩＤ（ｆｏｌｄｅｒＩＤ）を指定して配信を要求すると（Ｓ１０４）、アプリ１２１ａは、ｓｏｕｒｃｅ、ｃｓｔｏｒａｇｅ及びｆｏｌｄｅｒＩＤを指定して、配信要求をＷＦ連携部１２５に入力する（Ｓ１０５）。当該配信要求は、統一ＡＰＩを介して入力される。配信対象のデータは、画像形成装置１０が原稿からスキャンする画像データであってもよいし、画像形成装置１０に予め保存されているデータであってもよい。画像形成装置１０が原稿からスキャンする画像データが配信対象とされる場合、アプリ１２１ａは、原稿からの画像データのスキャンを画像形成装置１０に実行させた後で、当該画像データについての配信をＷＦ連携部１２５に要求する。
【００５３】
ＷＦ連携部１２５は、配信要求に応じ、ログインユーザのアクセストークン（ａｔｏｋｅｎ）を認証連携部１２６に要求する（Ｓ１０６）。当該要求には、配信要求元のアプリ１２１ａのアプリＩＤ（ａｐｐ＿ｉｄ）が指定される。
【００５４】
アクセストークンの要求に応じ、認証連携部１２６は、対象アクセス情報に基づいて処理を分岐させる。対象アクセス情報において、当該アプリＩＤが許可リストに含まれており、かつ、対象アクセス情報にアクセストークンが含まれていない場合又はアクセストークンが含まれているが有効期限が切れている場合、認証連携部１２６は、認証画面を操作パネル１５に表示する（Ｓ１１１）。
【００５５】
図８は、認証画面の表示例を示す図である。図８に示されるように、認証画面５１０は、サービス提供装置２０へログインするためのテナントＩＤ、ユーザＩＤ（ＳＵＩＤ）及びパスワードの入力を受け付けるための画面である。なお、ＳＵＩＤに対するパスワードを「ＳＰＷＤ」と表記する。
【００５６】
認証画面５１０を介してテナントＩＤ、ＳＵＩＤ及びＳＰＷＤが入力されると（Ｓ１１２）、認証連携部１２６は、アクセストークンの取得要求をサービス提供装置２０の認証サービス部２２へ送信する（Ｓ１１３）。当該取得要求には、認証画面５１０を介して入力されたテナントＩＤ、ＳＵＩＤ及びＳＰＷＤが含まれる。
【００５７】
認証サービス部２２は、当該取得要求に含まれているテナントＩＤ、ＳＵＩＤ及びＳＰＷＤについて認証を行う。すなわち、認証サービス部２２は、当該テナントＩＤ、当該ＳＵＩＤ及び当該ＳＰＷＤの組がユーザ情報記憶部２３に記憶されているか否かを判定する。当該組がユーザ情報記憶部２３に記憶されている場合に認証は成功し、そうでない場合に認証は失敗する。認証に成功した場合、認証サービス部２２は、アクセストークンを生成し、当該アクセストークン及び当該アクセストークンの有効期限を、例えば、ＳＵＩＤに関連付けてユーザ情報記憶部２３に記憶する。認証サービス部２２は、また、当該アクセストークン及び当該アクセストークンの有効期限を認証連携部１２６へ返信する（Ｓ１１４）。認証連携部１２６は、当該アクセストークン及び当該アクセストークンの有効期限を対象アクセス情報に追加する。認証連携部１２６は、また、当該ＳＵＩＤが対象アクセス情報に含まれていない場合、当該ＳＵＩＤを対象アクセス情報に追加する。認証連携部１２６は、更に、アプリ１２１ａのアプリＩＤを対象アクセス情報の許可リストに追加する。これらの対象アクセス情報の更新は、アクセス情報記憶部１３４に反映される。なお、認証に失敗した場合、ステップＳ１１４ではアクセストークンは返信されずに認証の失敗を示す情報が返信される。
【００５８】
又は、有効なアクセストークンが対象アクセス情報に含まれているが、アプリ１２１ａが初めて利用される場合（すなわち、アプリ１２１ａのアプリＩＤが対象アクセス情報の許可リスト及び拒否リストのいずれにも含まれていない場合）、認証連携部１２６は、認可画面を操作パネル１５に表示する（Ｓ１２１）。
【００５９】
図９は、認可画面の表示例を示す図である。図９に示されるように、認可画面５２０は、現在利用中のアプリ１２１（ここではアプリ１２１ａ）が、ログインユーザのＳＵＩＤによってサービス提供装置２０へアクセスすることを許可するか否かをユーザに照会するための画面である。
【００６０】
ユーザは、当該アクセスを拒否する場合はボタン５２１を押下し、許可する場合はボタン５２２を押下する（Ｓ１２２）。許可された場合、認証連携部１２６は、アプリ１２１ａのアプリＩＤを、対象アクセス情報の許可リストに追加する。拒否された場合、認証連携部１２６は、アプリ１２１ａのアプリＩＤを、対象アクセス情報の拒否リストに追加する。なお、対象アクセス情報の更新は、アクセス情報記憶部１３４に反映される。
【００６１】
又は、有効なアクセストークンが対象アクセス情報に含まれているが、アプリ１２１ａによるサービス提供装置２０へのアクセスが禁止されている場合（すなわち、アプリ１２１ａのアプリＩＤが対象アクセス情報の拒否リストに含まれている場合）、認証連携部１２６は、再認可画面を操作パネル１５に表示する（Ｓ１３１）。
【００６２】
図１０は、再認可画面の表示例を示す図である。図１０に示されるように、再認可画面５３０は、現在利用中のアプリ１２１（ここではアプリ１２１ａ）が、ログインユーザのＳＵＩＤによってサービス提供装置２０へアクセスすることを許可するか否かをユーザに再度照会するための画面である。
【００６３】
ユーザは、当該アクセスを拒否する場合はボタン５３１を押下し、許可する場合はボタン５３２を押下する（Ｓ１３２）。許可された場合、認証連携部１２６は、アプリ１２１ａのアプリＩＤを、対象アクセス情報の許可リストに追加する。拒否された場合、認証連携部１２６は、アプリ１２１ａのアプリＩＤを、対象アクセス情報の拒否リストに追加する。なお、対象アクセス情報の更新は、アクセス情報記憶部１３４に反映される。
【００６４】
ステップＳ１１４、Ｓ１２２、又はＳ１３２に続いて、認証連携部１２６は、対象アクセス情報に含まれているアクセストークンをＷＦ連携部１２５へ返信する（Ｓ１４１）。なお、ステップＳ１１４において認証の失敗を示す情報が返信された場合、ステップＳ１２２又はＳ１３２においてアクセスが拒否された場合、アクセストークンは返信されない。
【００６５】
ＷＦ連携部１２５は、アクセストークンが返信されると、アプリ１２１ａからの配信要求に関する情報を配信情報記憶部１３２に記憶する（Ｓ１４２）。
【００６６】
図１１は、配信情報記憶部１３２の構成例を示す図である。図１１に示されるように、配信情報記憶部１３２には、アプリ１２１からの配信要求ごとに、ＣＳＩＤ、ＡＴＯＫＥＮ、対象データ情報、配信先ストレージ及び配信先フォルダ等が記憶される。
【００６７】
ＣＳＩＤは、アプリ１２１からの配信要求ごとに割り当てられるジョブＩＤである。ＡＴＯＫＥＮは、配信要求に応じて取得されたアクセストークンである。対象データ情報は、配信対象のデータの識別情報である。配信先ストレージは、配信先のクラウドストレージ４０の識別情報である。配信先フォルダは、配信先のフォルダの識別情報である。クラウドストレージ４０は、通常のファイルシステムとは異なり、同一フォルダ名の重複を許す場合があるため、配信先のフォルダは、フォルダの名称はなく、フォルダの固有ＩＤ番号であるフォルダＩＤによって指定されるからである。
【００６８】
なお、図１１において、１番目のレコードは、予め画像形成装置１０に記憶されているデータの中から配信対象のデータが選択された場合のレコードを示す。したがって、当該レコードの対象データ情報は、選択されたデータのファイルパス名となっている。一方、２番目のレコードは、スキャンされた画像データが配信対象として選択された場合のレコードを示す。したがって、当該レコードの対象データ情報は、「ＳｃａｎＪｏｂ（７００）」とされている。「７００」は、スキャンジョブに対して割り当てられたＩＤを示す。したがって、「ＳｃａｎＪｏｂ（７００）」は、７００で識別されるスキャンジョブにおいてスキャンされた画像データを示す。なお、当該画像データは、複数ページの画像データであってもよい。この場合、ページごとに画像データ（ファイル）が生成されてもよい。
【００６９】
ステップＳ１４２では、ステップＳ１０５の配信要求に対して生成されたジョブＩＤ、ステップＳ１４１において返信されたアクセストークン、ステップＳ１０５の配信要求に指定されたｓｏｕｒｃｅ、ｃｓｔｏｒａｇｅ及びｆｏｌｄｅｒＩＤを含むレコードが配信情報記憶部１３２に追加される。
【００７０】
続いて、ＷＦ連携部１２５は、配信要求に対応するジョブＩＤ（ＣＳＩＤ）を、配信要求に対する応答に含めてアプリ１２１ａに返信する（Ｓ１４３）。すなわち、配信が実行される前に応答が行われる。統一ＡＰＩは、非同期関数だからである。
【００７１】
続いて、ＷＦ連携部１２５は、所定のタイミングで、配信情報記憶部１３２に記憶されている各レコードに対応するジョブを順次実行する。具体的には、ＷＦ連携部１２５は、各レコードに対応する配信要求をサービス提供装置２０のＷＦサービス部２１へ送信する（Ｓ１５１）。当該配信要求には、処理対象のレコードの各項目の値が含まれる。
【００７２】
ＷＦサービス部２１は、配信要求を受信すると、当該配信要求に含まれているアクセストークンが有効であれば、ステップＳ１５２以降を実行する。すなわち、当該配信要求に含まれているアクセストークンがユーザ情報記憶部２３に記憶されており、当該アクセストークンの有効期限が切れていなければ、ステップＳ１５２以降が実行される。
【００７３】
ステップＳ１５２において、ＷＦサービス部２１は、配信先のクラウドストレージ４０へアクセスするためのアクセストークン（以下「外部トークン」という。）をユーザ情報記憶部２３から取得する（Ｓ１５２）。ユーザ情報記憶部２３には、予め、ユーザごとに、当該ユーザがアクセス可能な各クラウドストレージ４０の外部トークンが記憶されている。ステップＳ１５２では、配信要求に含まれているアクセストークンに対応付けられてユーザ情報記憶部２３に記憶されている、配信先のクラウドストレージ４０に対する外部トークンが取得される。
【００７４】
続いて、ＷＦサービス部２１は、配信先のクラウドストレージ４０の配信先のフォルダへ、配信対象のデータを配信（アップロード）する（Ｓ１５３、Ｓ１５４）。この際、外部トークンが指定される。なお、当該配信は、配信先のクラウドストレージ４０に固有のＡＰＩを呼び出すことで行われる。続いて、ＷＦサービス部２１は、配信結果（配信の成功又は失敗等）を、配信要求元のアプリ１２１ａへ通知する（Ｓ１５５）。この際、配信結果に対応する配信要求に対するジョブＩＤ（ＣＳＩＤ）もアプリ１２１ａに通知される。そうすることで、アプリ１２１ａは、いずれの配信要求に対応する配信結果であるのかを判別することができる。なお、ＷＦサービス部２１は、このタイミングにおいて、当該ジョブＩＤに対応するレコードを配信情報記憶部１３２から削除してもよい。
【００７５】
なお、上記では、配信先のクラウドストレージ４０（ｃｓｔｏｒａｇｅ）及び配信先のフォルダのフォルダＩＤ（ｆｏｌｄｅｒＩＤ）の選択手順については詳述されていないが、例えば、図１２のような処理手順が実行されてｃｓｔｏｒａｇｅ及びｆｏｌｄｅｒＩＤが選択されてもよい。
【００７６】
図１２は、配信先の選択手順の一例を説明するためのシーケンス図である。図１２の処理手順は、例えば、図５のステップＳ１０４の内容を詳細に示すものである。
【００７７】
ユーザが、操作パネル１５を介してアプリ１２１ａの実行指示を入力すると（Ｓ２０１）、アプリ１２１ａは、クラウドストレージ選択画面を表示する（Ｓ２０２）。
【００７８】
図１３は、クラウドストレージ選択画面の表示例を示す図である。図１３に示されるように、クラウドストレージ選択画面５４０には、ログインユーザが選択可能なクラウドストレージ４０の一覧が含まれる。なお、ログインユーザが選択可能なクラウドストレージ４０の一覧は、画像形成装置１０内に予め記憶されていてもよいし、サービス提供装置２０のユーザ情報記憶部２３等に予め記憶されていてもよい。後者の場合、アプリ１２１ａは、サービス提供装置２０から当該一覧をダウンロードすればよい。
【００７９】
クラウドストレージ選択画面５４０を介して配信先のクラウドストレージ４０が選択されると（Ｓ２０３）、アプリ１２１ａは、選択されたクラウドストレージ４０の識別情報（ｃｓｔｏｒａｇｅ）を指定して、フォルダ一覧の取得要求をＷＦ連携部１２５へ入力する（Ｓ２０４）。なお、当該取得要求は、統一ＡＰＩの一部である。
【００８０】
ＷＦ連携部１２５は、当該取得要求に応じ、ログインユーザのアクセストークンを認証連携部１２６に要求する（Ｓ２０５）。当該要求には、アプリ１２１ａのアプリＩＤ（ａｐｐ＿ｉｄ）が指定される。当該要求に応じ、図５のステップＳ１１１〜Ｓ１３１において説明した処理が認証連携部１２６によって実行される。
【００８１】
認証連携部１２６からアクセストークンが応答されると、ＷＦ連携部１２５は、フォルダ一覧の取得要求をサービス提供装置２０のＷＦサービス部２１へ送信する（Ｓ２０６）。当該取得要求には、当該アクセストークンとｃｓｔｏｒａｇｅとが指定される。
【００８２】
ＷＦサービス部２１は、当該取得要求に応じ、当該アクセストークンに関連付けられてユーザ情報記憶部２３に記憶されている、ｃｓｔｏｒａｇｅに対応する外部トークンを取得する（Ｓ２０７）。続いて、ＷＦサービス部２１は、当該外部トークンを指定して、フォルダ一覧の取得要求をｃｓｔｏｒａｇｅに係るクラウドストレージ４０へ送信する（Ｓ２０８）。当該取得要求の送信は、当該クラウドストレージ４０に固有のＡＰＩを呼び出すことで行われる。
【００８３】
当該クラウドストレージ４０からフォルダ一覧が返信されると（Ｓ２０９）、ＷＦサービス部２１は、当該フォルダ一覧をＷＦ連携部１２５へ返信する（Ｓ２１０）。ＷＦ連携部１２５は、当該フォルダ一覧を、統一ＡＰＩの応答としてアプリ１２１ａに返信する（Ｓ２１１）。続いて、アプリ１２１ａは、当該フォルダ一覧を含むフォルダ一覧画面を操作パネル１５に表示する（Ｓ２１２）。
【００８４】
図１４は、フォルダ一覧画面の表示例を示す図である。図１４に示されるように、フォルダ一覧画面５５０には、選択されたクラウドストレージ４０においてログインユーザに対応するフォルダの一覧が含まれる。
【００８５】
ユーザによって配信先のフォルダが選択されると、アプリ１２１ａは、図５のステップＳ１０５を実行する。
【００８６】
なお、図１２の処理手順が実行されてログインユーザについてアクセストークンが取得された場合、その後の図５のステップＳ１０６におけるアクセストークンの取得要求に応じ、認証連携部１２６は、当該アクセストークンを直ちに応答する（Ｓ１４１）。すなわち、ログインユーザがログイン中（操作中）において、アプリ１２１ａから呼び出される統一ＡＰＩに応じた処理には、同一のアクセストークンが利用される。また、当該ログインユーザが、他のアプリ１２１（例えば、アプリ１２１ｂ）を利用し、アプリ１２１ｂが統一ＡＰＩを呼び出した場合であっても、アプリ１２１ａに関して利用されたアクセストークンと同一のアクセストークンが利用される。その結果、サービス提供装置２０に対するアクセスについて、複数のアプリ１２１を跨って利用可能とするシングルサインオンを実現することができる。また、アクセストークンは、有効期限の範囲内であれば、ログインユーザがログアウトした後でも有効である。すなわち、ログインユーザが再びログインした際に、アクセストークンの有効期限内であれば、ユーザは、ＳＵＩＤ及びＳＰＷＤ等を入力する必要はない。
【００８７】
ところで、上記においては、アプリ１２１ａからＷＦ連携部１２５へ配信（アップロード）が要求される例について説明したが、例えば、アプリ１２１ｂからＷＦ連携部１２５へダウンロードが要求される場合についても基本的な処理手順は同様である。具体的には、ステップＳ１０５の配信要求がダウンロード要求に置き換えられればよい。ダウンロード要求には、ダウンロード元のクラウドストレージ４０の識別情報、ダウンロード対象のデータの識別情報、及びダウンロード先のフォルダ情報等が指定される。ダウンロード先とは、ダウンロードされたデータの保存先をいう。
【００８８】
この場合、ステップＳ１４２では、ダウンロード情報記憶部１３３にレコードが追加される。図１５は、ダウンロード情報記憶部１３３の構成例を示す図である。図１５に示されるように、ダウンロード情報記憶部１３３には、アプリ１２１からのダウンロード要求ごとに、ＣＳＩＤ、ＡＴＯＫＥＮ、ダウンロード元ストレージ、対象データ情報及びダウンロード先フォルダ等が記憶される。なお、図１５において、対象データ情報には、「６０２」又は「６０３」等のＩＤが指定されている。クラウドストレージ４０は、通常のファイルシステムと異なり、同一ファイル名の重複を許す場合があるため、ダウンロード対象のデータは、ファイルの名称ではなくファイルの固有ＩＤ番号で指定されるからである。
【００８９】
なお、配信情報記憶部１３２やダウンロード情報記憶部１３３が利用されて、配信要求やダウンロード要求に応じた処理が要求とは非同期に実行されることで、画像形成装置１０の操作についてストレスレスな操作性を実現することができる。
【００９０】
すなわち、画像形成装置１０のように複数のユーザによって共有される機器は、各ユーザに対してストレスレスな操作性が求められる。ストレスレスな操作性は、例えば、スキャンされた画像データのクラウドストレージ４０への配信を複数のユーザが入れ替わりながら指示する場合であっても、簡単な操作で素早くスキャン及び配信が完了することによって実現される。本実施の形態では、配信情報記憶部１３２に要求が蓄積されることで、スキャン及び配信に関してストレスレスな操作性を実現することができる。
【００９１】
図１６は、スキャン及び配信に関するストレスレスな操作性を説明するための図である。
【００９２】
図１６では、ユーザＡが画像形成装置１０にログインしている状態において原稿からスキャンされた画像データの配信（アップロード）が、ユーザＡのログアウト後において実行可能であることが示されている。この場合、ユーザＡの操作中において、画像形成装置１０はユーザＡによって独占されるが、ネットワーク負荷や画像データのデータサイズ等の影響によって時間を要する配信処理は、ＷＦ連携部１２５によってバックグラウンドで実行されるため、ユーザＡがログイン中に実行される必要はない。したがって、配信処理が完了する前にユーザＢは画像形成装置１０の操作を開始することができる。
【００９３】
また、図１７は、ダウンロード及び印刷に関するストレスレスな操作性を説明するための図である。
【００９４】
図１７では、ユーザＡが画像形成装置１０にログインしている状態において指示された、クラウドストレージ４０に保存されているデータの印刷（ＰｕｌｌＰｒｉｎｔ）が、ユーザＡのログアウト後において実行可能であることが示されている。すなわち、時間を要するダウンロード処理及び印刷処理は、ＷＦ連携部１２５によってバックグラウンドで実行されるため、ユーザＡがログイン中に実行される必要はない。したがって、これらの処理が完了する前にユーザＢは画像形成装置１０の操作を開始することができる。
【００９５】
続いて、ＷＦサービス部２１の仕組みの一例について説明する。図１８は、ＷＦサービス部２１の仕組みの一例を説明するための図である。
【００９６】
図１８には、ワークフローＸ及びワークフローＹの２つのワークフローが定義されている例が示されている。なお、各ワークフローは、１以上のコンポーネントの順序付けられた組み合わせによって定義される。コンポーネントとは、ワークフローを構成する処理単位を実現するプログラムモジュールである。
【００９７】
ワークフローＸは、ＰＤＦ変換コンポーネント及びＸ配信コンポーネントの組み合わせである。ワークフローＹは、ＰＤＦ変換コンポーネント及びＹ配信コンポーネントの組み合わせである。
【００９８】
ＰＤＦ変換コンポーネントは、入力された画像データをＰＤＦ形式に変換するコンポーネントである。Ｘ配信コンポーネントは、入力されたデータをクラウドストレージ４０ｘへ配信するコンポーネントである。したがって、Ｘ配信コンポーネントは、クラウドストレージ４０ｘに固有のＡＰＩを呼び出して配信を実行する。Ｙ配信コンポーネントは、入力されたデータをクラウドストレージ４０ｙへ配信するコンポーネントである。したがって、Ｙ配信コンポーネントは、クラウドストレージ４０ｙに固有のＡＰＩを呼び出して配信を実行する。すなわち、クラウドストレージ４０ｘとクラウドストレージ４０ｙとのＡＰＩの違いは、Ｘ配信コンポーネント及びＹ配信コンポーネントによって吸収される。
【００９９】
このようなワークフローが定義されている場合、ＷＦサービス部２１は、ＷＦ連携部１２５からのアップロード要求に指定されているｃｓｔｏｒａｇｅに基づいて実行するワークフローを切り分ける。すなわち、ｃｓｔｏｒａｇｅがクラウドストレージ４０ｘを示す場合、ＷＦサービス部２１は、ワークフローＸを実行する。ｃｓｔｏｒａｇｅがクラウドストレージ４０ｙを示す場合、ＷＦサービス部２１は、ワークフローＹを実行する。
【０１００】
このように、ＷＦサービス部２１が実行される処理が、ワークフローとして定義される場合、ワークフローの種類の総数は、例えば、統一ＡＰＩの数（関数又はメソッドの数）×クラウドストレージ４０の数でよい。
【０１０１】
なお、画像形成装置１０を統一ＡＰＩ部１２３又はサービス連携部１２４として機能させるプログラムは、サービス提供装置２０の運営主体（例えば、画像形成装置１０の製造メーカ）によって提供されてもよい。そうすることで、統一ＡＰＩ部１２３及びサービス連携部１２４と、サービス提供装置２０との間に信頼関係を構築することができる。その結果、アプリ１２１の開発者やアプリ１２１のユーザにとって、配信（アップロード）又はダウンロードの対象のデータが、サービス提供装置２０を経由することに対する不信感を払拭することができる。
【０１０２】
上述したように、本実施の形態によれば、各クラウドストレージ４０に固有のＡＰＩは、統一ＡＰＩによって隠蔽される。したがって、各アプリ１２１による、クラウドストレージ４０ごとに異なるＡＰＩへの依存度を低下させることができる。その結果、画像形成装置１０の外部のサービス（クラウドストレージ４０）を利用するプログラムの開発効率を向上させることができる。
【０１０３】
なお、本実施の形態は、画像形成装置１０にインストールされるアプリ１２１がクラウドストレージ４０以外のサービスとの連携する場合について適用されてもよい。
【０１０４】
また、本実施の形態が適用可能なプログラムの形態は特定のものに限定されない。例えば、画面等のＧＵＩ（Graphical User Interface）を表示しないサーバ型のプログラムが、本実施の形態のアプリ１２１に当てはめられてもよい。
【０１０５】
また、本実施の形態は、画像形成装置１０以外の機器に適用されてもよい。例えば、プロジェクタ、電子黒板、テレビ会議システム等の機器が、図４における画像形成装置１０と同様の機能構成を有してもよい。
【０１０６】
なお、本実施の形態において、画像形成装置１０は、機器の一例である。サービス提供装置２０は情報処理装置の一例である。クラウドストレージ４０は外部装置の一例である。統一ＡＰＩは、統一されたインタフェースの一例である。ＷＦ連携部１２５は、第１の送信部の一例である。ＷＦサービス部２１は、第２の送信部の一例である。認証部１２２は、特定部の一例である。認証画面５１０は、第１の画面の一例である。アクセストークンは、第１のデータの一例である。認可画面５２０及び再認可画面５３０は、第２の画面の一例である。アクセス情報記憶部１３４は、記憶部の一例である。
【０１０７】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１０８】
１            情報処理システム
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
１８          カードリーダライタ
２０          サービス提供装置
２１          ＷＦサービス部
２２          認証サービス部
２３          ユーザ情報記憶部
３０          管理者端末
４０          クラウドストレージ
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１２１        アプリ
１２２        認証部
１２３        統一ＡＰＩ部
１２４        サービス連携部
１２５        ＷＦ連携部
１２６        認証連携部
１３１        認証情報記憶部
１３２        配信情報記憶部
１３３        ダウンロード情報記憶部
１３４        アクセス情報記憶部
２００        ドライブ装置
２０１        記録媒体
２０２        補助記憶装置
２０３        メモリ装置
２０４        ＣＰＵ
２０５        インタフェース装置
Ｂ            バス
【先行技術文献】
【特許文献】
【０１０９】
【特許文献１】特開２０１４−０３２６５９号公報
【図１】
2018094870.tif 000003
【図２】
2018094870.tif 000004
【図３】
2018094870.tif 000005
【図４】
2018094870.tif 000006
【図５】
2018094870.tif 000007
【図６】
2018094870.tif 000008
【図７】
2018094870.tif 000009
【図８】
2018094870.tif 000010
【図９】
2018094870.tif 000011
【図１０】
2018094870.tif 000012
【図１１】
2018094870.tif 000013
【図１２】
2018094870.tif 000014
【図１３】
2018094870.tif 000015
【図１４】
2018094870.tif 000016
【図１５】
2018094870.tif 000017
【図１６】
2018094870.tif 000018
【図１７】
2018094870.tif 000019
【図１８】
2018094870.tif 000020