(57)【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行可能なアプリケーションプログラムであって、
前記コンピュータに、
画像処理装置とクラウドサーバとを利用する一連の処理である一連処理を設定する操作を、前記情報処理装置のユーザインタフェースを介して受け付ける第１操作受付処理と、
複数のクラウドサーバの中から、利用するクラウドサーバを選択する操作を、前記ユーザインタフェースを介して受け付ける第２操作受付処理と、
前記第２操作受付処理で選択されたクラウドサーバから、当該クラウドサーバへの認証に用いる認証情報を取得する取得処理と、
前記取得処理で取得した前記認証情報を、前記第２操作受付処理で選択されたクラウドサーバを示すクラウド情報と関連付けて記憶する認証情報記憶処理と、
前記第１操作受付処理で指示された前記一連処理を示す処理情報と、前記クラウド情報と、を関連付けて記憶する設定レコードを、前記情報処理装置のメモリに記憶する設定レコード記憶処理であって、前記メモリには、利用するクラウドサーバが同じである複数の設定レコードを記憶できる、前記設定レコード記憶処理と、
前記メモリに記憶されている複数の設定レコードの中から、実行対象の設定レコードを選択する操作を、前記ユーザインタフェースを介して受け付ける第３操作受付処理と、
を実行させ、
さらに前記コンピュータに、
前記第３操作受付処理において設定レコードを選択する操作を受け付けた場合、選択された設定レコードを読み出し、読み出した設定レコードに記憶される前記処理情報が示す前記一連処理を実行させ、
前記アプリケーションプログラムは、
前記一連処理の実行中においては、読み出した前記設定レコードに記憶される前記クラウド情報が示すクラウドサーバに対応する認証情報を用いて、前記クラウド情報が示すクラウドサーバを利用し、
利用するクラウドサーバが同じである複数の設定レコードがあり、そのうちの１つの設定レコードにおいて前記一連処理を実行する場合と、そのうちの他の設定レコードにおいて前記一連処理を実行する場合とでは、前記取得処理にて取得した同じ認証情報を用いる、
ことを特徴とするアプリケーションプログラム。
【請求項２】
請求項１に記載するアプリケーションプログラムにおいて、
前記設定レコード記憶処理では、
前記認証情報を含まない前記設定レコードを記憶し、
前記認証情報記憶処理では、
前記認証情報を前記メモリに記憶し、
前記一連処理の実行中においては、決定したクラウドサーバに対応する認証情報を前記メモリから読み出し、読み出した認証情報を用いて、決定したクラウドサーバを利用する、
ことを特徴とするアプリケーションプログラム。
【請求項３】
請求項２に記載するアプリケーションプログラムにおいて、
前記コンピュータに、
前記設定レコードに前記認証情報の取得を行う認証要求を含ませるか否かを選択する操作を、前記ユーザインタフェースを介して受け付ける第４操作受付処理を実行させ、
前記アプリケーションプログラムは、
前記設定レコード記憶処理では、
前記第４操作受付処理にて前記認証要求を含ませることが選択された場合、前記認証要求を含む前記設定レコードを記憶し、
前記第４操作受付処理にて前記認証要求を含ませないことが選択された場合、前記認証要求を含まない前記設定レコードを記憶し、
前記一連処理の実行中においては、読み出した前記設定レコードに前記認証要求が含まれている場合、決定したクラウドサーバを利用する際、前記メモリに記憶された前記認証情報を用いず、決定したクラウドサーバへの認証要求を行い、当該クラウドサーバへの認証に用いる認証情報を取得し、取得した認証情報を用いる、
ことを特徴とするアプリケーションプログラム。
【請求項４】
請求項１に記載するアプリケーションプログラムにおいて、
前記認証情報記憶処理では、
前記認証情報を前記メモリに記憶し、
前記コンピュータに、
前記設定レコードに前記認証情報を含ませるか否かを選択する操作を、前記ユーザインタフェースを介して受け付ける第５操作受付処理を実行させ、
前記アプリケーションプログラムは、
前記設定レコード記憶処理では、
前記第５操作受付処理にて前記認証情報を含ませることが選択された場合、前記認証情報を含む前記設定レコードを記憶し、
前記第５操作受付処理にて前記認証情報を含ませないことが選択された場合、前記認証情報を含まない前記設定レコードを記憶し、
前記一連処理の実行中においては、
読み出した前記設定レコードに前記認証情報が含まれている場合、前記設定レコードに含まれる前記認証情報を用いて、決定したクラウドサーバを利用し、
読み出した前記設定レコードに前記認証情報が含まれていない場合、前記メモリに記憶された前記認証情報を用いて、決定したクラウドサーバを利用する、
ことを特徴とするアプリケーションプログラム。
【請求項５】
請求項１から請求項４のいずれか１つに記載するアプリケーションプログラムにおいて、
前記コンピュータに、
前記メモリに記憶された前記設定レコードの少なくとも１つを記憶するファイルであって、前記認証情報を記憶しないファイルであるエクスポートファイルをエクスポートするエクスポート処理と、
外部デバイスからエクスポートファイルを取得し、取得したエクスポートファイルに記憶される設定レコードを、前記第３操作受付処理にて選択可能な設定レコードとして、前記メモリに記憶するインポート処理と、
を実行させる、
ことを特徴とするアプリケーションプログラム。
【請求項６】
情報処理装置のコンピュータによって実行可能なアプリケーションプログラムであって、
前記コンピュータに、
画像処理装置とクラウドサーバとを利用する一連の処理である一連処理を設定する操作を、前記情報処理装置のユーザインタフェースを介して受け付ける第１操作受付処理と、
複数のクラウドサーバの中から、利用するクラウドサーバを選択する操作を、前記ユーザインタフェースを介して受け付ける第２操作受付処理と、
前記第２操作受付処理で選択されたクラウドサーバから、当該クラウドサーバへの認証に用いる認証情報を取得する取得処理と、
前記取得処理で取得した前記認証情報を、前記第２操作受付処理で選択されたクラウドサーバを示すクラウド情報と関連付けて前記情報処理装置のメモリに記憶する認証情報記憶処理と、
前記第１操作受付処理で指示された前記一連処理を示す処理情報と、前記クラウド情報と、を関連付けて記憶し、前記認証情報を含まない設定レコードを、前記メモリに記憶する設定レコード記憶処理と、
前記メモリに記憶されている複数の設定レコードの中から、実行対象の設定レコードを選択する操作を、前記ユーザインタフェースを介して受け付ける第３操作受付処理と、
を実行させ、
さらに前記コンピュータに、
前記第３操作受付処理において設定レコードを選択する操作を受け付けた場合、選択された設定レコードを読み出し、読み出した設定レコードに記憶される前記処理情報が示す前記一連処理を実行させ、
前記一連処理の実行中においては、読み出した前記設定レコードに記憶される前記クラウド情報が示すクラウドサーバに対応する認証情報を前記メモリから読み出し、読み出した認証情報を用いて、前記クラウド情報が示すクラウドサーバを利用する、
ことを特徴とするアプリケーションプログラム。
【請求項７】
コンピュータと、
ユーザインタフェースと、
メモリと、
を備える情報処理装置において、
前記コンピュータは、
画像処理装置とクラウドサーバとを利用する一連の処理である一連処理を設定する操作を、前記ユーザインタフェースを介して受け付ける第１操作受付処理と、
複数のクラウドサーバの中から、利用するクラウドサーバを選択する操作を、前記ユーザインタフェースを介して受け付ける第２操作受付処理と、
前記第２操作受付処理で選択されたクラウドサーバから、当該クラウドサーバへの認証に用いる認証情報を取得する取得処理と、
前記取得処理で取得した前記認証情報を、前記第２操作受付処理で選択されたクラウドサーバを示すクラウド情報と関連付けて記憶する認証情報記憶処理と、
前記第１操作受付処理で指示された前記一連処理を示す処理情報と、前記クラウド情報と、を関連付けて記憶する設定レコードを、前記メモリに記憶する設定レコード記憶処理であって、前記メモリには、利用するクラウドサーバが同じである複数の設定レコードを記憶できる、前記設定レコード記憶処理と、
前記メモリに記憶されている複数の設定レコードの中から、実行対象の設定レコードを選択する操作を、前記ユーザインタフェースを介して受け付ける第３操作受付処理と、
を実行し、
さらに、前記コンピュータは、
前記第３操作受付処理において設定レコードを選択する操作を受け付けた場合、選択された設定レコードを読み出し、読み出した設定レコードに記憶される前記処理情報が示す前記一連処理を実行し、
前記一連処理の実行中においては、読み出した前記設定レコードに記憶される前記クラウド情報が示すクラウドサーバに対応する認証情報を用いて、前記クラウド情報が示すクラウドサーバを利用し、
利用するクラウドサーバが同じである複数の設定レコードがあり、そのうちの１つの設定レコードにおいて前記一連処理を実行する場合と、そのうちの他の設定レコードにおいて前記一連処理を実行する場合とでは、前記取得処理にて取得した同じ認証情報を用いる、
ことを特徴とする情報処理装置。
【請求項８】
コンピュータと、
ユーザインタフェースと、
メモリと、
を備える情報処理装置において、
前記コンピュータは、
画像処理装置とクラウドサーバとを利用する一連の処理である一連処理を設定する操作を、前記ユーザインタフェースを介して受け付ける第１操作受付処理と、
複数のクラウドサーバの中から、利用するクラウドサーバを選択する操作を、前記ユーザインタフェースを介して受け付ける第２操作受付処理と、
前記第２操作受付処理で選択されたクラウドサーバから、当該クラウドサーバへの認証に用いる認証情報を取得する取得処理と、
前記取得処理で取得した前記認証情報を、前記第２操作受付処理で選択されたクラウドサーバを示すクラウド情報と関連付けて前記メモリに記憶する認証情報記憶処理と、
前記第１操作受付処理で指示された前記一連処理を示す処理情報と、前記クラウド情報と、を関連付けて記憶し、前記認証情報を含まない設定レコードを、前記メモリに記憶する設定レコード記憶処理と、
前記メモリに記憶されている複数の設定レコードの中から、実行対象の設定レコードを選択する操作を、前記ユーザインタフェースを介して受け付ける第３操作受付処理と、
を実行し、
さらに、前記コンピュータは、
前記第３操作受付処理において設定レコードを選択する操作を受け付けた場合、選択された設定レコードを読み出し、読み出した設定レコードに記憶される前記処理情報が示す前記一連処理を実行し、
前記一連処理の実行中においては、読み出した前記設定レコードに記憶される前記クラウド情報が示すクラウドサーバに対応する認証情報を前記メモリから読み出し、読み出した認証情報を用いて、前記クラウド情報が示すクラウドサーバを利用する、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される技術分野は、クラウドサーバを利用するアプリケーションプログラムおよび情報処理装置に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータやスマートフォン等の情報処理装置から、インターネット上のクラウドサーバに、データのアップロードないしダウンロードを行う技術が知られている。例えば、特許文献１には、スキャナで読み取った読取データを、サーバにアップロードする構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４５４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
クラウドサーバを利用する場合、クラウドサーバへの認証も必要になる。このクラウドサーバの認証操作はユーザにとって手間である。特許文献１に記載の技術では、認証操作に関する詳細な開示はなく、改善の余地がある。
【０００５】
本明細書には、クラウドサーバを利用するアプリケーションプログラムであって、認証の手間を軽減できる技術を開示する。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされたアプリケーションプログラムは、情報処理装置のコンピュータによって実行可能なアプリケーションプログラムであって、前記コンピュータに、画像処理装置とクラウドサーバとを利用する一連の処理である一連処理を設定する操作を、前記情報処理装置のユーザインタフェースを介して受け付ける第１操作受付処理と、複数のクラウドサーバの中から、利用するクラウドサーバを選択する操作を、前記ユーザインタフェースを介して受け付ける第２操作受付処理と、前記第２操作受付処理で選択されたクラウドサーバから、当該クラウドサーバへの認証に用いる認証情報を取得する取得処理と、前記取得処理で取得した前記認証情報を、前記第２操作受付処理で選択されたクラウドサーバを示すクラウド情報と関連付けて記憶する認証情報記憶処理と、前記第１操作受付処理で指示された前記一連処理を示す処理情報と、前記クラウド情報と、を関連付けて記憶する設定レコードを、前記情報処理装置のメモリに記憶する設定レコード記憶処理であって、前記メモリには、利用するクラウドサーバが同じである複数の設定レコードを記憶できる、前記設定レコード記憶処理と、前記メモリに記憶されている複数の設定レコードの中から、実行対象の設定レコードを選択する操作を、前記ユーザインタフェースを介して受け付ける第３操作受付処理と、を実行させ、さらに前記コンピュータに、前記第３操作受付処理において設定レコードを選択する操作を受け付けた場合、選択された設定レコードを読み出し、読み出した設定レコードに記憶される前記処理情報が示す前記一連処理を実行させ、前記アプリケーションプログラムは、前記一連処理の実行中においては、読み出した前記設定レコードに記憶される前記クラウド情報が示すクラウドサーバに対応する認証情報を用いて、前記クラウド情報が示すクラウドサーバを利用し、利用するクラウドサーバが同じである複数の設定レコードがあり、そのうちの１つの設定レコードにおいて前記一連処理を実行する場合と、そのうちの他の設定レコードにおいて前記一連処理を実行する場合とでは、前記取得処理にて取得した同じ認証情報を用いる、ことを特徴としている。
【０００７】
本明細書に開示されるアプリケーションプログラムは、画像処理装置とクラウドサーバとを利用する一連処理を設定する操作を受け付け、一連処理の処理情報とクラウド情報とを関連付けて、設定レコードとして記憶する。また、アプリケーションプログラムは、クラウドサーバへの認証情報をクラウド情報と関連付けて記憶する。そして、アプリケーションプログラムは、複数の設定レコードにて、記憶される一連処理を実行する際に、クラウド情報と関連付けて記憶されている同じ認証情報を用いる。従って、同じクラウドサーバを利用する複数の設定レコードについて、一連処理の実行時に、再認証のための操作をそれぞれ行う必要はない。これにより、認証の手間の軽減が期待できる。
【０００８】
上記アプリケーションプログラムが組み込まれた情報処理装置、アプリケーションプログラムを格納するコンピュータにて読取可能な記憶媒体、及びアプリケーションプログラムの機能を実現するための制御方法も、新規で有用である。
【発明の効果】
【０００９】
本明細書に開示される技術によれば、クラウドサーバを利用するアプリケーションプログラムであって、認証の手間を軽減できる技術が実現される。
【図面の簡単な説明】
【００１０】
【図１】ＰＣの電気的構成を示すブロック図である。
【図２】ワークフローテーブルの例を示す説明図である。
【図３】認証情報テーブルの例を示す説明図である。
【図４】ワークフロー作成処理の手順を示すフローチャートである。
【図５】ワークフローの作成画面の例を示す説明図である。
【図６】トークン取得処理の手順を示すフローチャートである。
【図７】ワークフロー実行処理の手順を示すフローチャートである。
【図８】ワークフローの一覧画面の例を示す説明図である。
【図９】エクスポート処理の手順を示すフローチャートである。
【図１０】インポート処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
アプリケーションプログラム（以下、「アプリ」とする）を具体化した実施の形態について、添付図面を参照しつつ詳細に説明する。本形態は、パーソナルコンピュータ（以下、「ＰＣ」とする）にて実行されるスキャンアプリを開示するものである。
【００１２】
本形態のＰＣ１は、図１に示すように、スキャナ２と接続され、スキャナ２から画像データを受信する。ＰＣ１は、情報処理装置の一例である。ＰＣ１は、各種のプログラムの実行が可能な装置である。ＰＣ１に代えて、例えば、タブレットコンピュータ、スマートフォンであってもよい。
【００１３】
スキャナ２は、原稿を読み取って画像データを取得し、取得した画像データをＰＣ１に送信する。スキャナ２は、画像処理装置の一例である。ＰＣ１に接続されるスキャナ２は、１台に限らず、複数台でも良い。また、ＰＣ１には、スキャナに限らず、コピー機、複合機、ＦＡＸ装置、デジタルカメラ等、画像データを取得して送信できる装置が接続されていればよい。
【００１４】
本形態のＰＣ１は、図１に示すように、インターネット１００に接続され、インターネット１００を介して、クラウドサーバ１０１と、クラウドサーバ１０２と、に接続される。つまり、ＰＣ１のユーザは、ＰＣ１を介して、各種のクラウドサービスを利用できる。
【００１５】
各クラウドサービスは、１以上のストレージサーバや認証用サーバを管理し、管理するストレージサーバへのデータのアップロードやダウンロードのサービスを提供する。ストレージサーバの１つが認証サーバを兼ねていても良い。以下では、１つのクラウドサービスにて管理されるストレージサーバや認証用サーバを区別せず、まとめて「クラウドサーバ」と呼ぶ。なお、図１では、ＰＣ１に２つのクラウドサーバ１０１、１０２が接続されている状態を例示しているが、アクセス可能なクラウドサーバの数はさらに多く、実際に接続されるクラウドサーバの数は限定されない。
【００１６】
本形態のＰＣ１は、図１に示すように、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、不揮発性メモリ１４と、を含む制御基板１０を備えている。さらに、タッチパネル１５と、ネットワークインタフェース（以下、「ＩＦ」とする）１６と、ＵＳＢ−ＩＦ１７と、を備え、これらが制御基板１０に電気的に接続されている。ＣＰＵ１１は、コンピュータの一例である。ＣＰＵ１１のバッファ、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４は、メモリの一例である。
【００１７】
ＲＯＭ１２には、ＰＣ１を起動するための起動プログラム等が記憶されている。ＲＡＭ１３は、各種の処理が実行される際の作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ１４は、例えば、ＨＤＤ、フラッシュメモリであり、各種のプログラムや画像データ等のデータや各種設定を記憶する領域として利用される。
【００１８】
ＣＰＵ１１は、ＲＯＭ１２や不揮発性メモリ１４から読み出したプログラムに従って、また、ユーザの操作に基づいて、各種の処理を実行する。なお、図１中の制御基板１０は、ＰＣ１の制御に利用されるハードウェアやソフトウェアを纏めた総称であって、実際にＰＣ１に存在する単一のハードウェアを表すとは限らない。
【００１９】
タッチパネル１５は、ユーザによる操作を受け付けるとともに情報の表示を行うハードウェアである。すなわち、タッチパネル１５は、入力機能と出力機能との両方を備えるユーザインタフェースの一例である。ユーザインタフェースは、タッチパネル１５に限らず、ディスプレイとキーボードやマウスとの組み合わせを備えるものであっても良い。
【００２０】
ネットワークＩＦ１６は、インターネット１００を介して外部装置と通信を行うためのハードウェアを含む。ネットワークＩＦ１６の通信方式は、無線でも有線でもよく、ＬＡＮ、Ｗｉ−Ｆｉ（登録商標）など、どのような規格の方式でもよい。また、ＵＳＢ−ＩＦ１７は、スキャナ２との通信を行うためのハードウェアを含む。なお、ネットワークＩＦ１６を介して接続されるスキャナがあっても良い。
【００２１】
ＰＣ１の不揮発性メモリ１４には、オペレーティングシステム（以下、「ＯＳ」とする）４０と、スキャンアプリ４１と、ブラウザ４２と、を含む、各種のプログラムが記憶されている。スキャンアプリ４１は、ユーザの指示に基づいて、スキャナ２との通信を行い、スキャナ２への読み取り設定や読み取り実行の指示等の送信、スキャナ２にて読み取った画像データの受信や表示、受信した画像データの保存等を行うプログラムである。ブラウザ４２は、ウェブページを表示するプログラムである。ＯＳ４０の一部は、ＲＯＭ１２に含まれていてもよい。
【００２２】
なお、スキャンアプリ４１が記憶される媒体は、不揮発性メモリ１４に限らない。また、メモリの一例、および、スキャンアプリ４１が記憶される媒体は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００２３】
続いて、スキャンアプリ４１の動作について説明する。なお、以下の説明における処理およびフローチャートの各処理ステップは、基本的に、スキャンアプリ４１などのプログラムに記述された命令に従ったＣＰＵ１１の処理を示す。すなわち、以下の説明における「判断」、「選択」、「決定」、「取得」、「受付」、「制御」等の処理は、ＣＰＵ１１の処理を表している。ＣＰＵ１１による処理は、ＰＣ１のＯＳ４０の他のモジュールとデータ交換するためのＩＦ（ＡＰＩとも呼ばれる）を用いたハードウェア制御も含む。本明細書では、ＯＳ４０の記載を省略して各プログラムの動作を説明する。すなわち、以下の説明において、「プログラムＰがハードウェアＨを制御する」という趣旨の記載は、「プログラムＰがＯＳ４０のＡＰＩを用いてハードウェアＨを制御する」ことを指してもよい。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１１が要求することなくデータを受信するという処理も、「ＣＰＵ１１がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「要求する」、「指示する」とは、要求していることを示す情報や、指示していることを示す情報を相手に出力することを示す概念である。また、要求していることを示す情報や指示していることを示す情報のことを、単に、「要求」、「指示」とも記載する。
【００２４】
また、プログラムに記述された命令に従ったＣＰＵ１１の処理を、省略した文言で記載することがある。例えば、「ＣＰＵ１１が行う」、「スキャンアプリ４１が行う」のように記載することがある。また、ＣＰＵ１１による処理であって、情報Ａが事柄Ｂであることを示しているか否かを判断する処理を、「情報Ａから、事柄Ｂであるか否かを判断する」のように概念的に記載することがある。また、ＣＰＵ１１による処理であって、情報Ａが事柄Ｂであることを示しているか、事柄Ｃであることを示しているかを判断する処理を、「情報Ａから、事柄Ｂであるか事柄Ｃであるかを判断する」のように概念的に記載することがある。
【００２５】
本形態のスキャンアプリ４１は、起動されると、タッチパネル１５にアプリが用意した画面を表示させ、ユーザ操作を受け付ける。スキャンアプリ４１は、例えば、ワークフローの設定を受け付ける設定画面を表示させる。ワークフローは、一連の処理を記憶するものであり、スキャンアプリ４１は、例えば、所定の読取設定でスキャナ２に原稿の画像を読み取らせ、読み取り結果である画像データを所定の場所に保存する一連の処理を、ワークフローとして設定する操作を受け付ける。スキャンアプリ４１は、設定されたワークフローを示すワークフローレコードを不揮発性メモリ１４に記憶させる。図２は、複数のワークフローレコードを含むワークフローテーブル８１の例である。以降、「ワークフローレコード」を、単に、「ワークフロー」と記載する。すなわち、「ワークフローを実行する」とは、「ワークフローレコードが示すワークフローを実行する」という意味である。
【００２６】
そして、スキャンアプリ４１は、不揮発性メモリ１４に記憶されているワークフローの１つを選択する操作と、選択されたワークフローを実行する操作とを受け付ける。スキャンアプリ４１は、ワークフローの実行の指示を受け付けると、不揮発性メモリ１４から読み出したワークフローに含まれる情報を用いて、一連の処理を実行する。ユーザは、よく使うスキャンの設定をワークフローとして予め作成しておくことで、一連の操作を素早く呼び出し、実行させることができる。
【００２７】
スキャンアプリ４１は、複数のワークフローの設定を受け付け、例えば、設定された各ワークフローにそれぞれ名称を付けて不揮発性メモリ１４に記憶させる操作を受け付ける。図２に示すワークフローテーブル８１は、複数のワークフローのそれぞれについて、ワークフローの名称８１１と、スキャン設定８１２と、保存先８１３と、クラウド情報８１４と、トークン８１５と、要求８１６と、を含んでいる。
【００２８】
ワークフローの名称８１１は、各ワークフローを識別する情報である。スキャン設定８１２は、スキャンを実行させるスキャナの指定の他、読取解像度、カラー読み取りかモノクロ読み取りかの設定など、スキャンに関する設定を含む。
【００２９】
本形態のスキャンアプリ４１では、画像データの保存先としてクラウドサーバへのアップロードの選択を受け付ける。つまり、スキャンアプリ４１は、読み取りとクラウドサーバへのアップロードとを含む一連の処理を、ワークフローに設定する操作を受け付ける。図２に示すワークフローテーブル８１の保存先８１３は、クラウドサーバへの保存か、ＰＣへの保存かを区別する情報である。読み取りとクラウドサーバへのアップロードとを含む一連の処理を、以下では、スキャンアップ処理とする。スキャンアップ処理は、一連処理の一例である。また、スキャンアップ処理のワークフローは、設定レコードの一例であり、スキャンアップ処理のワークフローのスキャン設定８１２は、処理情報の一例である。
【００３０】
ワークフローテーブル８１のクラウド情報８１４は、保存先８１３としてクラウドが選択された場合に使用される情報であり、当該ワークフローにて利用するクラウドサーバを示す識別情報である。スキャンアプリ４１には利用可能な複数のクラウドサーバが登録されており、スキャンアプリ４１は、登録されているクラウドサーバのうちから利用するクラウドサーバの選択を受け付ける。なお、複数のワークフローにおいて、同じクラウドサーバが設定されていてもよい。
【００３１】
クラウドサーバは、それぞれ個別の管理システムを備えている。そのため、クラウドサーバに画像データをアップロードする場合には、スキャンアプリ４１は、選択されたクラウドサーバの規定に則って認証を受け、認証情報を取得する必要がある。クラウドサーバでは、例えば、ＯＡｕｔｈ２．０を用いた認証方式が採用されている。ＯＡｕｔｈ２．０を用いた認証方式では、ＰＣ１は、ユーザのアカウント情報をクラウドサーバに送信することで、アクセストークンをクラウドサーバから取得する。スキャンアプリ４１は、画像データをアップロードする際には、アクセストークンとともに画像データを送信する。アクセストークンは、認証情報の一例である。以下、アクセストークンを、単に「トークン」という。
【００３２】
本形態のスキャンアプリ４１は、スキャンアップ処理を含むワークフローの作成時に、利用するクラウドサーバのトークンを含むワークフローとするか、含まないワークフローとするかの選択を受け付ける。つまり、スキャンアプリ４１は、ユーザの指示に基づいて、トークンを含むワークフローの作成も、トークンを含まないワークフローの作成も行う。図２のワークフローテーブル８１のトークン８１５は、トークンを含むワークフローが選択された場合の、トークンの情報である。トークンを含まないワークフローでは、トークン８１５にはトークンの情報が記憶されていない。
【００３３】
スキャンアプリ４１は、また、スキャンアップ処理を含むワークフローの作成時に、認証要求情報を含むワークフローとするか、含まないワークフローとするかの選択を受け付ける。認証要求情報は、ワークフローの実行時にクラウドサーバの認証情報の取得を行うか否かを示す情報である。そして、スキャンアプリ４１は、ユーザの指示に基づいて、認証要求情報を含むワークフローの作成も、認証要求情報を含まないワークフローの作成も行う。図２のワークフローテーブル８１の要求８１６は、認証要求情報の有無を示す情報である。
【００３４】
スキャンアプリ４１は、スキャンアップ処理を含むワークフローの実行の指示を受け付けた場合、ワークフローテーブル８１のトークン８１５や要求８１６に基づいて、ワークフローにトークンや認証要求が含まれているか否かを判断する。スキャンアプリ４１は、実行の指示を受け付けたワークフローにトークンが含まれている場合、すなわち、ワークフローテーブル８１のトークン８１５にトークンが記憶されている場合、記憶されているトークンを使用する。また、スキャンアプリ４１は、実行の指示を受け付けたワークフローの要求８１６が「有」である場合、ワークフローの実行中にクラウドサーバへの認証要求を行う。
【００３５】
なお、クラウドサーバへの認証手続きは、ワークフローとは関係なく行われることがある。本形態のスキャンアプリ４１は、クラウドサーバへの認証手続きを行ってトークンを取得した場合、取得したトークンを、クラウドサーバを示す情報に関連付けて、不揮発性メモリ１４に記憶させる。
【００３６】
スキャンアプリ４１は、例えば、図３に示すように、クラウドサーバごとのトークンを記憶する認証情報テーブル８２を、不揮発性メモリ１４に記憶している。図３の例は、スキャンアプリ４１にて利用可能な３種類のクラウドサーバのうち「クラウドＡ」と「クラウドＢ」について、トークンが取得済みであって、それぞれのトークンが記憶されている状態を示している。また、「クラウドＣ」についてはトークンが未取得であることを示している。スキャンアプリ４１は、実行の指示を受け付けたワークフローの要求８１６が「無」であって、トークン８１５にトークンが含まれていない場合、認証情報テーブル８２から対応するトークンを読み出して使用する。
【００３７】
続いて、本形態のスキャンアプリ４１におけるワークフローの作成とワークフローの実行の動作について、フローチャートを参照して説明する。まず、スキャンアプリ４１においてワークフローを作成するワークフロー作成処理の手順について、図４のフローチャートを参照して説明する。このワークフロー作成処理は、スキャンアプリ４１にてワークフローの作成の指示を受け付けたことを契機に、ＣＰＵ１１にて実行される。
【００３８】
ワークフロー作成処理では、ＣＰＵ１１は、タッチパネル１５のアプリ用の表示ウィンドウに、ワークフローを作成するための画面を表示させる（Ｓ１０１）。ワークフロー作成画面の例を図５に示す。図５に示すように、ワークフロー作成画面４１１には、スキャンの設定を受け付けるスキャン設定ウィンドウ４１２と保存の設定を受け付ける保存設定ウィンドウ４１３と、キャンセルボタン４１４と、が含まれる。スキャンアプリ４１は、スキャンの設定として、例えば、スキャナの選択、読み取り解像度の選択、カラー読み取りまたはモノクロ読み取りの選択、読み取りサイズの設定を受け付ける。また、スキャンアプリ４１は、保存の設定として、例えば、ＰＣへの保存、クラウドサーバへの保存、の指定を受け付ける。なお、図５中に破線で示すボタン４１５は、スキャンと保存との設定を受け付けた後に選択可能となり、作成したワークフローを記憶させる処理に進む指示を受け付けるボタンである。
【００３９】
図４の説明に戻り、ＣＰＵ１１は、スキャンの設定の指示を受け付けたか否かを判断する（Ｓ１０２）。Ｓ１０２は、第１操作受付処理の一例である。ＣＰＵ１１は、例えば、スキャン設定ウィンドウ４１２への操作を受け付けた場合、スキャンの設定の指示を受け付けたと判断する。スキャンの設定の指示を受け付けていないと判断した場合（Ｓ１０２：ＮＯ）、ＣＰＵ１１は、保存の設定の指示を受け付けたか否かを判断する（Ｓ１０３）。ＣＰＵ１１は、例えば、保存設定ウィンドウ４１３への操作を受け付けた場合、保存の設定の指示を受け付けたと判断する。
【００４０】
保存の設定の指示を受け付けていないと判断した場合（Ｓ１０３：ＮＯ）、ＣＰＵ１１は、キャンセルの指示を受け付けたか否かを判断する（Ｓ１０４）。ＣＰＵ１１は、例えば、図５のキャンセルボタン４１４への操作を受け付けた場合、キャンセルの指示を受け付けたと判断する。キャンセルの指示を受け付けていないと判断した場合（Ｓ１０４：ＮＯ）、ＣＰＵ１１は、Ｓ１０２に戻り、スキャンの設定、保存の設定、キャンセルの指示、のいずれかを受け付けるまで待機する。
【００４１】
スキャンの設定の指示を受け付けたと判断した場合（Ｓ１０２：ＹＥＳ）、ＣＰＵ１１は、指定された設定をスキャン設定ウィンドウ４１２に表示する（Ｓ１０５）。なお、ＣＰＵ１１は、直近で使用したスキャンの設定をデフォルト値としてスキャン設定ウィンドウ４１２に表示してもよい。また、ＣＰＵ１１は、選択されたスキャナに応じて、各設定のデフォルト値を表示してもよい。
【００４２】
一方、保存の設定の指示を受け付けたと判断した場合（Ｓ１０３：ＹＥＳ）、ＣＰＵ１１は、クラウドサーバへの保存の指示を受け付けたか否かを判断する（Ｓ１０６）。クラウドサーバへの保存ではないと判断した場合（Ｓ１０６：ＮＯ）、ＣＰＵ１１は、指定された保存先を保存設定ウィンドウ４１３に表示する（Ｓ１０７）。
【００４３】
クラウドサーバへの保存の指示を受け付けたと判断した場合（Ｓ１０６：ＹＥＳ）、ＣＰＵ１１は、タッチパネル１５に、例えば、選択可能なクラウドサーバの一覧を表示させる（Ｓ１０８）。そして、ＣＰＵ１１は、クラウドサーバの選択を受け付け、クラウドサーバが選択されたか否かを判断する（Ｓ１０９）。Ｓ１０９は、第２操作受付処理の一例である。クラウドサーバが選択されていないと判断した場合（Ｓ１０９：ＮＯ）、ＣＰＵ１１は、クラウドサーバが選択されるまで待機する。
【００４４】
クラウドサーバが選択されたと判断した場合（Ｓ１０９：ＹＥＳ）、ＣＰＵ１１は、ワークフローにトークンを含めるか否かを判断する（Ｓ１１０）。Ｓ１１０は、第５操作受付処理の一例である。トークンは、前述したように、データのアップロード時に必要な認証情報である。具体的には、ＣＰＵ１１は、例えば、選択されたクラウドサーバのトークンを含むワークフローを作成するか否かをユーザに問い合わせる画面をタッチパネル１５に表示させ、ユーザ操作による選択を受け付ける。
【００４５】
そして、ワークフローにトークンを含めると判断した場合（Ｓ１１０：ＹＥＳ）、ＣＰＵ１１は、トークン取得処理を実行する（Ｓ１１１）。トークン取得処理は、ワークフローに含ませるトークンを取得する処理である。トークン取得処理の手順について、図６のフローチャートを参照して説明する。
【００４６】
トークン取得処理では、ＣＰＵ１１は、認証情報テーブル８２に該当するトークンが記憶されているか否かを判断する（Ｓ２０１）。例えば、図３に示した認証情報テーブル８２では、選択されたクラウドサーバがクラウドＡまたはクラウドＢであれば、ＣＰＵ１１は、トークンが記憶されていると判断する。一方、選択されたクラウドサーバがクラウドＣであれば、ＣＰＵ１１は、トークンが記憶されていないと判断する。
【００４７】
トークンが記憶されていると判断した場合（Ｓ２０１：ＹＥＳ）、ＣＰＵ１１は、認証情報テーブル８２からトークンを読み出す（Ｓ２０２）。一方、トークンが記憶されていないと判断した場合（Ｓ２０１：ＮＯ）、ＣＰＵ１１は、クラウドサーバに認証要求を行い、トークンを取得する（Ｓ２０４）。Ｓ２０４は、取得処理の一例である。
【００４８】
具体的には、ＣＰＵ１１は、例えば、ブラウザ４２（図１参照）を立ち上げて当該クラウドサーバの認証ページを表示させる。ＣＰＵ１１は、ブラウザ４２を介してユーザ操作によってアカウント情報等の入力を受け付け、受け付けた情報をクラウドサーバに送信することで、クラウドサーバからトークンを取得する。なお、ブラウザ４２は、キャッシュ機能を有し、過去に入力されたＩＤやパスワードの情報を、キャッシュ情報として保存している場合がある。その場合、ブラウザ４２は、認証ページ中のアカウント情報の入力欄にキャッシュ情報を表示させることで、入力操作の手間を省略させてもよい。また、認証ページの表示を省略し、キャッシュ情報をクラウドサーバに送信してもよい。
【００４９】
そして、ＣＰＵ１１は、トークンを取得したか否かを判断する（Ｓ２０５）。トークンを取得したと判断した場合（Ｓ２０５：ＹＥＳ）、ＣＰＵ１１は、取得したトークンを、クラウド情報と関連付けて、認証情報テーブル８２に記憶する（Ｓ２０６）。Ｓ２０６は、認証情報記憶処理の一例である。つまり、スキャンアプリ４１は、認証情報テーブル８２にトークンが記憶されていない場合、認証手続きを行って取得したトークンを、クラウドサーバに関連付けて認証情報テーブル８２に記憶する。これにより、取得したトークンは、複数のワークフローから参照可能となる。
【００５０】
一方、トークンを取得しなかったと判断した場合（Ｓ２０５：ＮＯ）、ＣＰＵ１１は、エラーの情報を取得する（Ｓ２０７）。例えば、認証手続き中にエラーが発生した場合や、クラウドサーバへの認証に失敗した場合、ＣＰＵ１１は、トークンを取得することができない。トークンを取得できなかった場合には、ＣＰＵ１１は、エラーとする。そして、Ｓ２０２、Ｓ２０６、Ｓ２０７の後、ＣＰＵ１１は、トークン取得処理を終了し、ワークフロー作成処理に戻る。
【００５１】
図４のワークフロー作成処理の説明に戻り、ＣＰＵ１１は、Ｓ１１１のトークン取得処理が終了したら、トークンを取得できたか否かを判断する（Ｓ１１２）。トークンを取得できたと判断した場合（Ｓ１１２：ＹＥＳ）、ＣＰＵ１１は、作成中のワークフローにトークンを追加する（Ｓ１１３）。具体的には、ＣＰＵ１１は、認証情報テーブル８２からトークンを読み出し、ワークフローのトークン８１５に設定する。一方、トークンを取得できなかったと判断した場合（Ｓ１１２：ＮＯ）、ＣＰＵ１１は、エラーを表示する（Ｓ１１４）。
【００５２】
また、ワークフローにトークンを含めないと判断した場合（Ｓ１１０：ＮＯ）、ＣＰＵ１１は、ワークフローに認証要求情報を含めるか否かを判断する（Ｓ１１５）。Ｓ１１５は、第４操作受付処理の一例である。具体的には、ＣＰＵ１１は、例えば、ワークフローの実行時に毎回クラウドサーバへの認証要求操作を行わせるか否かを、ユーザに問い合わせる画面をタッチパネル１５に表示させ、ユーザ操作による選択を受け付ける。
【００５３】
ワークフローに認証要求情報を含めると判断した場合（Ｓ１１５：ＹＥＳ）、ＣＰＵ１１は、作成中のワークフローに認証要求情報を追加する（Ｓ１１６）。具体的には、ＣＰＵ１１は、ワークフローの要求８１６に「有」を設定する。そして、ワークフローに認証要求情報を含めないと判断した場合（Ｓ１１５：ＮＯ）、または、Ｓ１０５、Ｓ１０７、Ｓ１１３、Ｓ１１４、Ｓ１１６のいずれかの後、ＣＰＵ１１は、ワークフローを記憶する指示を受け付けたか否かを判断する（Ｓ１２０）。
【００５４】
スキャンの設定と保存の設定とが決定すると、スキャンアプリ４１は、例えば、図５中に破線で示したボタン４１５へのユーザ操作を受け付ける状態となる。ユーザ操作によってワークフローを記憶する指示を受け付けたと判断した場合（Ｓ１２０：ＹＥＳ）、ＣＰＵ１１は、作成したワークフローを不揮発性メモリ１４に記憶させる（Ｓ１２１）。Ｓ１２１は、設定レコード記憶処理の一例である。
【００５５】
ユーザ操作によりワークフローを記憶する指示を受け付けると、ＣＰＵ１１は、ワークフローの名称やアイコンなどを決定する手順を経て、作成したワークフローを不揮発性メモリ１４に記憶させる。作成されたワークフローは、例えば、図２に示したように、ワークフローテーブル８１に追加される。
【００５６】
ワークフローを記憶する指示を受け付けていないと判断した場合（Ｓ１２０：ＮＯ）、ＣＰＵ１１は、Ｓ１０２に戻り、さらに、スキャンの設定、保存の設定、キャンセルの指示のいずれかを受け付ける。スキャンの設定や保存の設定が決定していない場合、ＣＰＵ１１は、ボタン４１５を表示させず、スキャンの設定や保存の設定を受け付ける。そして、Ｓ１２１の後、または、キャンセルの指示を受け付けたと判断した場合（Ｓ１０４：ＹＥＳ）、ＣＰＵ１１は、ワークフロー作成処理を終了する。
【００５７】
次に、ワークフローを実行する手順について説明する。スキャンアプリ４１においてワークフローを実行するワークフロー実行処理の手順について、図７のフローチャートを参照して説明する。このワークフロー実行処理は、スキャンアプリ４１の実行中にワークフローの実行の指示を受け付けたことを契機に、ＣＰＵ１１にて実行される。
【００５８】
ワークフロー実行処理では、ＣＰＵ１１は、まず、不揮発性メモリ１４からワークフローテーブル８１を読み出し、ワークフローテーブル８１に含まれるワークフローのうちから、実行対象のワークフローの選択を受け付ける（Ｓ３０１）。Ｓ３０１は、第３操作受付処理の一例である。スキャンアプリ４１は、ワークフローの実行の指示を受け付けると、例えば、図８に示すように、ワークフローの一覧をアイコンで表示する一覧画面４１６を表示し、一覧画面４１６にてワークフローの１つの選択を受け付ける。図８の例では、複数のワークフローが、それぞれのアイコンで示されている。
【００５９】
図７のワークフロー実行処理の説明に戻り、ＣＰＵ１１は、Ｓ３０１にて選択されたワークフローを読み出して、例えば、図５に示したように、ワークフローの設定内容を表示する。この場合には、ＣＰＵ１１は、例えば、ボタン４１５に代えて、実行の指示を受け付けるボタンを表示させる。そして、ＣＰＵ１１は、実行の指示を受け付けるボタンへのユーザ操作を受け付ける（Ｓ３０２）。そして、ＣＰＵ１１は、実行の指示を受け付けたワークフローに含まれるスキャン設定８１２（図２参照）に従って、スキャナ２にスキャンを行わせ、画像データを取得する（Ｓ３０３）。
【００６０】
そして、ＣＰＵ１１は、実行の指示を受け付けたワークフローがクラウドサーバへの保存を含むワークフローであるか否かを判断する（Ｓ３０４）。クラウドサーバへの保存を含まない、すなわち、スキャンアップ処理ではないワークフローであると判断した場合（Ｓ３０４：ＮＯ）、ＣＰＵ１１は、ワークフローに含まれる保存先８１３に画像データを保存し（Ｓ３０５）、ワークフロー実行処理を終了する。
【００６１】
一方、クラウドサーバへの保存を含むワークフローであると判断した場合（Ｓ３０４：ＹＥＳ）、ＣＰＵ１１は、ワークフローに認証要求情報が含まれているか否かを判断する（Ｓ３０６）。つまり、ＣＰＵ１１は、ワークフローの要求８１６が「有」であるか否かを判断する。認証要求情報は、例えば、ワークフロー作成処理のＳ１１６にて、ワークフローに追加される情報である。
【００６２】
認証要求情報が含まれていないと判断した場合（Ｓ３０６：ＮＯ）、ＣＰＵ１１は、ワークフローにトークンが含まれているか否かを判断する（Ｓ３０７）。つまり、ＣＰＵ１１は、ワークフローのトークン８１５に情報が含まれているか否かを判断する。トークンは、例えば、ワークフロー作成処理のＳ１１３にて、ワークフローに追加される情報である。
【００６３】
トークンが含まれていないと判断した場合（Ｓ３０７：ＮＯ）、ＣＰＵ１１は、不揮発性メモリ１４に記憶されている認証情報テーブル８２を参照し、ワークフローに保存先として指定されているクラウドサーバのトークンが記憶されているか否かを判断する（Ｓ３０８）。認証情報テーブル８２を参照することで、同じクラウドサーバを用いるワークフローであって、トークンが含まれていない複数のワークフローにおいて、同じトークンを使用できる。
【００６４】
そして、ワークフローにトークンが含まれていると判断した場合（Ｓ３０７：ＹＥＳ）、または、認証情報テーブル８２にトークンが記憶されていると判断した場合（Ｓ３０８：ＹＥＳ）、ＣＰＵ１１は、記憶されているトークンを利用して、クラウドサーバに画像データをアップロードする（Ｓ３０９）。さらに、ＣＰＵ１１は、アップロードに成功したか否かを判断する（Ｓ３１０）。
【００６５】
アップロードに成功しなかったと判断した場合（Ｓ３１０：ＮＯ）、ＣＰＵ１１は、トークンが無効であるか否かを判断する（Ｓ３１１）。つまり、ＣＰＵ１１は、クラウドサーバからトークンが無効である旨のエラーを受信したか否かを判断する。そして、ワークフローに認証要求情報が含まれていると判断した場合（Ｓ３０６：ＹＥＳ）、ワークフローにも認証情報テーブル８２にもトークンが記憶されていないと判断した場合（Ｓ３０８：ＮＯ）、または、トークンが無効であると判断した場合（Ｓ３１１：ＹＥＳ）、ＣＰＵ１１は、クラウドサーバに認証要求を行う（Ｓ３１２）。Ｓ３１２は、トークン取得処理のＳ２０４と同様の処理である。
【００６６】
ワークフローに認証要求情報を含ませることで、同じワークフローを実行する場合でも、毎回、クラウドサーバに認証要求を行うことになる。例えば、ＰＣ１をワークフローの作成時とは別のユーザが使用する場合など、スキャンアプリ４１でサインイン中のアカウントが、ワークフロー生成時のアカウントと異なる場合でも、同じワークフローを利用できる。一方、ワークフローにトークンを含ませることで、スキャンアプリ４１は、ワークフローを読み出すだけで、含まれているトークンを用いてアップロードできる。
【００６７】
なお、ワークフローに認証要求が含まれている場合、Ｓ３１２にてクラウドサーバに認証要求を行う際に、ブラウザ４２のキャッシュを使わないとしても良い。例えば、ＣＰＵ１１は、Ｓ３０６にてＹＥＳと判断してＳ３１２に進んだ場合、ブラウザ４２に、キャッシュを使わない指示を行うとしても良い。このようにすれば、複数のユーザでＰＣ１を共有している場合、別のユーザのアカウント情報で認証要求を行ってしまう可能性を低減できる。
【００６８】
そして、ＣＰＵ１１は、トークンを取得したか否かを判断する（Ｓ３１３）。トークンを取得したと判断した場合（Ｓ３１３：ＹＥＳ）、ＣＰＵ１１は、取得したトークンをクラウド情報と関連付けて認証情報テーブル８２に記憶する（Ｓ３１４）。
【００６９】
ワークフローにトークンも認証要求情報も含まれていない場合、ワークフローの実行時には、ＣＰＵ１１は、認証情報テーブル８２からトークンを読み出して使用する。例えば、１つのワークフローの実行時に再認証を行った場合に、認証情報テーブル８２が更新されるので、その再認証で取得したトークンが別のワークフローでも用いられる。そのため、ワークフロー実行の度にトークンを取得する必要が無く、別のワークフローの実行時において再認証の操作が不要になる利点がある。
【００７０】
Ｓ３１４の後、ＣＰＵ１１は、取得したトークンを使用してクラウドサーバへのアップロードを行い（Ｓ３１５）、ワークフロー実行処理を終了する。一方、クラウドサーバへの認証要求を行った結果、トークンを取得できなかったと判断した場合（Ｓ３１３：ＮＯ）、または、トークンが無効である以外のエラーによってアップロードに成功しなかった場合（Ｓ３１１：ＮＯ）、ＣＰＵ１１は、クラウドサーバへのアップロードができないことを示すエラー表示を行い（Ｓ３１６）、ワークフロー実行処理を終了する。
【００７１】
次に、ワークフローのエクスポートとインポートについて説明する。本形態のスキャンアプリ４１は、作成済みのワークフローに基づくエクスポートファイルを作成し、スキャンアプリ４１を実行可能な他のＰＣにそのファイルをインポートさせることで、同じ内容のワークフローを別のＰＣで実行させることができる。スキャンアプリ４１は、例えば、図８に示したように、ワークフローの一覧画面４１６に、ワークフローのインポートの指示を受け付けるボタン４１７と、ワークフローのエクスポートの指示を受け付けるボタン４１８と、を表示させ、ユーザ操作を受け付ける。
【００７２】
本形態のスキャンアプリ４１においてエクスポートファイルを作成する動作であるエクスポート処理の手順について、図９のフローチャートを参照して説明する。このエクスポート処理は、例えば、図８に示した一覧画面４１６において、ワークフローの１つが選択された状態で、ボタン４１８への操作を受け付けたことを契機に、ＣＰＵ１１にて実行される。または、スキャンアプリ４１は、ボタン４１８への操作を受け付けた後、ワークフローの選択を受け付けても良い。
【００７３】
エクスポート処理では、ＣＰＵ１１は、まず、エクスポートするワークフローを読み出す（Ｓ４０１）。そして、ＣＰＵ１１は、ワークフローにトークンが含まれているか否かを判断する（Ｓ４０２）。
【００７４】
ワークフローにトークンが含まれていると判断した場合（Ｓ４０２：ＹＥＳ）、ＣＰＵ１１は、エクスポートファイルにトークンを含めるか否かを判断する（Ｓ４０３）。ＣＰＵ１１は、例えば、タッチパネル１５に、トークンを含めるか否かを問い合わせる表示を行わせ、ユーザ操作による選択を受け付ける。そして、トークンを含めないと判断した場合（Ｓ４０３：ＮＯ）、ＣＰＵ１１は、読み出したワークフローからトークンを削除したエクスポートファイルを作成する（Ｓ４０４）。
【００７５】
一方、ワークフローにトークンが含まれていないと判断した場合（Ｓ４０２：ＮＯ）、または、ワークフローにトークンを含めると判断した場合（Ｓ４０３：ＹＥＳ）、ＣＰＵ１１は、ワークフローのエクスポートファイルを作成する（Ｓ４０５）。
【００７６】
さらに、ＣＰＵ１１は、作成したエクスポートファイルを、ユーザに指定された記憶場所に記憶し（Ｓ４０６）、エクスポート処理を終了する。トークンは、ワークフローを作成したユーザのアカウント情報に基づく認証情報であるため、自分で使用するワークフローにはトークンを含ませていても、ワークフローをエクスポートする場合には、トークンも含ませたくないユーザもいる。本形態のスキャンアプリ４１では、エクスポートファイルにトークンを含めないことが選択できるので、トークンの安全性を確保できる。
【００７７】
次に、他のＰＣにて作成されたエクスポートファイルをインポートする動作であるインポート処理の手順について、図１０のフローチャートを参照して説明する。このインポート処理は、例えば、図８に示した一覧画面４１６において、ボタン４１９への操作を受け付けたことを契機に、ＣＰＵ１１にて実行される。
【００７８】
スキャンアプリ４１は、エクスポートファイルを、ネットワークで接続された他のＰＣやサーバ、または、ＵＳＢメモリ等の記億媒体から取得する。他のＰＣやサーバ、ＵＳＢメモリ等は、外部デバイスの一例である。なお、スキャンアプリ４１は、外部デバイスから取得したエクスポートファイルを、一旦ＰＣ１の不揮発性メモリ１４等に記憶させ、記憶しているエクスポートファイルを読み出してインポートする場合もある。この場合の処理も、エクスポートファイルを外部デバイスから取得する処理の一例である。
【００７９】
インポート処理では、ＣＰＵ１１は、まず、インポートするエクスポートファイルの選択を受け付け、選択されたエクスポートファイルを取得する（Ｓ５０１）。そして、取得したエクスポートファイルから、ワークフローを読み出す（Ｓ５０２）。さらに、ＣＰＵ１１は、読み出したワークフローにトークンが含まれているか否かを判断する（Ｓ５０３）。
【００８０】
ワークフローにトークンが含まれていないと判断した場合（Ｓ５０３：ＮＯ）、ＣＰＵ１１は、ワークフローにトークンを含めるか否かを判断する（Ｓ５０４）。ＣＰＵ１１は、例えば、タッチパネル１５に、ワークフローにトークンが含まれていない内容と、ワークフローにトークンを含めるか否かを問い合わせる内容とを含む表示を行わせ、ユーザ操作による選択を受け付ける。
【００８１】
ワークフローにトークンを含めると判断した場合（Ｓ５０４：ＹＥＳ）、ＣＰＵ１１は、図６に示したトークン取得処理を実行する（Ｓ５０５）。そして、トークンを取得できたか否かを判断する（Ｓ５０６）。トークンを取得できたと判断した場合（Ｓ５０６：ＹＥＳ）、ＣＰＵ１１は、ワークフローにトークンを追加する（Ｓ５０７）。一方、トークンを取得できなかったと判断した場合（Ｓ５０６：ＮＯ）、ＣＰＵ１１は、タッチパネル１５にエラーを表示させる（Ｓ５０８）。
【００８２】
ワークフローにトークンが含まれていると判断した場合（Ｓ５０３：ＹＥＳ）、ワークフローにトークンを含めないと判断した場合（Ｓ５０４：ＮＯ）、Ｓ５０７またはＳ５０８の後、ＣＰＵ１１は、ワークフローをワークフローテーブル８１に追加して記憶し（Ｓ５０９）、インポート処理を終了する。スキャンアプリ４１は、インポート処理にてインポートしたワークフローを、例えば、一覧画面４１６（図８参照）に表示し、選択を受け付ける。
【００８３】
以上、詳細に説明したように、本形態のスキャンアプリ４１によれば、ＰＣ１は、スキャナ２によるスキャンとクラウドサーバへのアップロードとを行う一連の処理を、ワークフローとして記憶する。スキャンアプリ４１は、認証情報テーブル８２に、クラウド情報とトークンとを関連付けて記憶する。そして、スキャンアプリ４１は、ワークフローの実行時に認証情報テーブル８２からトークンを読み出して使用することで、同じクラウドサーバを使用する複数のワークフローで、同じトークンを使用できる。そして、スキャンアプリ４１は、クラウドサーバへの再認証を行った場合、認証情報テーブル８２を更新する。これにより、１つのワークフローにおいて再認証を行った場合、認証情報テーブル８２の情報が更新されることで、同じクラウドサーバを利用する他の各ワークフローで再認証を行う必要はない。従って、ユーザの認証の手間の軽減が期待できる。
【００８４】
特に、本形態では、トークンを含まないワークフローを作成できる。各ワークフローにトークンが含まれていない場合には、ワークフローの実行時には、認証情報テーブル８２が参照される。従って、複数のワークフローで同じトークンを使用でき、ワークフローの実行時の処理がシンプルになる。
【００８５】
また、本形態では、各ワークフローに認証要求情報を含ませるか否かを選択できる。認証要求情報を含むワークフローの実行時には、毎回認証を行うことになることから、例えば、アプリでサインイン中のアカウントとは異なるアカウントでもワークフローを利用できる。また、複数のユーザで共有しているＰＣ１にてワークフローを実行する場合、毎回認証を行うことで、別のユーザのアカウントでワークフローを実行する可能性を低減できる。一方、認証要求情報を含まないワークフローの実行時には、認証情報テーブル８２が参照されることから、共通のトークンを使用できる。
【００８６】
また、本形態では、各ワークフローにトークンを含ませるか否かを選択できる。ワークフローにトークンを含ませることで、その作成時のアカウントによるワークフローの実行環境を維持できる。例えば、複数のユーザで共有しているＰＣ１で実行されるワークフローであっても、個々のワークフローにおいて、実行するアカウントや使用するトークンを選択できる。
【００８７】
また、本形態では、トークンを含まないエクスポートファイルを生成できる。トークンを含まないエクスポートファイルを生成することで、トークンの安全性を確保できる。さらに、トークンを含まないエクスポートファイルをインポートしたＰＣ１では、初回の実行時に、例えば、ブラウザ４２のキャッシュを使用してトークンを取得できる。つまり、そのＰＣ１で使用しているアカウント情報を用いて、ワークフローを容易に実行できる。なお、認証要求情報を含むエクスポートファイルを生成した場合でも，同様に、インポートしたＰＣ１でのワークフローの実行は容易である。
【００８８】
なお、本実施の形態は単なる例示にすぎず、本発明を何ら限定するものではない。したがって本明細書に開示される技術は当然に、その要旨を逸脱しない範囲内で種々の改良、変形が可能である。例えば、ＰＣ１に接続される画像処理装置は、スキャナ等の画像データを取得する装置に限らず、プリンタ等の画像データに基づく印刷を行う装置であっても良い。つまり、本明細書に開示される技術は、読み取りと保存とを含む一連の処理を記憶するワークフローに限らず、クラウドサーバから画像データをダウンロードして印刷する一連の処理を記憶するワークフローに適用することも可能である。
【００８９】
また、例えば、認証情報テーブル８２のトークンを更新した場合、ワークフローテーブル８１に記憶されているトークンも更新しても良い。例えば、トークン取得処理にて新たに認証要求を行ってトークンを取得した場合、同じクラウドサーバを利用するワークフローであって、トークン８１５に同じトークンが含まれているワークフローがワークフローテーブル８１に記憶されていれば、該当するトークンを更新しても良い。このようにしても、同じクラウドサーバを利用する複数のワークフローで、同じトークンが用いられることから、ユーザの再認証の手間の軽減が期待できる。
【００９０】
また、例えば、作成するワークフローにトークンを含むか否かの選択を受け付けなくても良い。例えば、ワークフローの作成時には、トークンを含まないワークフローのみを作成するとしてもよい。その場合、ワークフローテーブル８１のトークン８１５は不要である。そして、例えば、図４に示したワークフロー作成処理のＳ１１０〜Ｓ１１４を削除し、Ｓ１０９にてＹＥＳの場合には、Ｓ１１５に進むとすればよい。
【００９１】
あるいは、例えば、ワークフローの作成時には、トークンを含むワークフローのみを作成するとしてもよい。その場合、図４に示したワークフロー作成処理のＳ１１０を削除し、Ｓ１０９でＹＥＳの場合にはＳ１１５に進み、Ｓ１１５にてＮＯの場合にＳ１１１に進むとしても良い。
【００９２】
また、例えば、エクスポートやインポートの際も、ワークフローにトークンを含めるか否かの選択はなくても良い。エクスポートファイルの作成時には、常にトークンを含まないエクスポートファイルを作成するとしても良い。その場合、図９に示したエクスポート処理のＳ４０３を削除し、Ｓ４０２にてＹＥＳであればＳ４０４に進むとしても良い。また、エクスポートファイルのインポート時には、エクスポートファイルにトークンが含まれている場合には、トークンを削除して記憶するとしても良い。その場合、図１０に示したインポート処理のＳ５０４〜Ｓ５０８を削除し、Ｓ５０３にてＹＥＳの場合には、トークンを削除してワークフローを記憶するとしても良い。あるいは、図１０に示したインポート処理では、Ｓ５０３〜Ｓ５０８を削除し、トークンの有無に関わらず、読み出したエクスポートファイルをそのまま記憶するとしても良い。
【００９３】
また、例えば、作成するワークフローに認証要求情報を含めるか否かの選択も無くても良い。例えば、ワークフローの作成時には、認証要求を含まないワークフローのみを作成するとしてもよい。その場合、ワークフローテーブル８１の要求８１６は不要である。そして、例えば、図４に示したワークフロー作成処理のＳ１１５とＳ１１６を削除しても良い。
【００９４】
また、例えば、トークンの有無の判断と、認証要求の有無の判断との順序は、逆でもよい。ワークフロー作成処理では、Ｓ１０９でＹＥＳの場合にはＳ１１５に進み、Ｓ１１５にてＮＯの場合にＳ１１０に進むとしても良い。ワークフロー実行処理では、Ｓ３０３にてＹＥＳの場合にはＳ３０７に進み、Ｓ３０７にてＮＯの場合にＳ３０６に進み、Ｓ３０６にてＮＯの場合にＳ３０８に進むとしても良い。
【００９５】
また、エクスポート処理では、エクスポートするワークフローを選択してエクスポートファイルを作成するとしたが、エクスポートするワークフローは、１つに限らない。例えば、ワークフローテーブル８１に記憶されている全てのワークフローをまとめてエクスポートしても良い。
【００９６】
また、例えば、クラウドサーバは、選択できなくても良い。例えば、スキャンアプリ４１でのアップロードを行うクラウドサーバは、固定であっても良い。また、例えば、認証情報テーブル８２では、クラウド情報だけでなく、ユーザ情報とも関連付けて、トークンを記憶するとしても良い。また、例えば、エクスポートやインポートの処理は、無くてもよい。
【００９７】
また、例えば、ワークフローテーブル８１や認証情報テーブル８２に記憶されているトークンを読み出した際に、トークンが有効であるか否かを確認しても良い。ＣＰＵ１１は、例えば、クラウドサーバに問い合わせても良い。あるいは、ＣＰＵ１１は、トークンを記憶する際に、有効期限や有効使用回数等の情報をも記憶しておき、読み出したトークンが有効であるか否かを判断しても良い。
【００９８】
また、実施の形態に開示されている処理は、単一のＣＰＵ、複数のＣＰＵ、ＡＳＩＣなどのハードウェア、またはそれらの組み合わせで実行されてもよい。また、実施の形態に開示されている処理は、その処理を実行するためのプログラムを記録した記録媒体、または方法等の種々の態様で実現することができる。
【符号の説明】
【００９９】
１  ＰＣ
２  スキャナ
１１  ＣＰＵ
１４  不揮発性メモリ
４１  スキャンアプリ
８１  ワークフローテーブル
８２  認証情報テーブル
【図１】
0006988593.tif 000002
【図２】
0006988593.tif 000003
【図３】
0006988593.tif 000004
【図４】
0006988593.tif 000005
【図５】
0006988593.tif 000006
【図６】
0006988593.tif 000007
【図７】
0006988593.tif 000008
【図８】
0006988593.tif 000009
【図９】
0006988593.tif 000010
【図１０】
0006988593.tif 000011