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