以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態におけるシステム構成例を示す図である。図1において、ユーザ環境E1とクラウドシステム10とは、インターネット等のネットワークN1を介して接続される。
ユーザ環境E1は、プログラムを利用する機器の一例としての画像形成装置30のユーザ(顧客)のシステム環境である。例えば、ユーザ環境E1は、画像形成装置30のユーザである企業又はオフィス等に相当する。ユーザ環境E1は、一台以上の画像形成装置30等を含む。ユーザ環境E1は、複数存在しうる。
画像形成装置30は、印刷、スキャン、コピー、及びファクス送受信等の複数の機能を一台の筐体において実現する複合機である。但し、いずれか一つの機能のみを実現可能な機器であってもよい。画像形成装置30は、アプリケーションプログラム(以下、単に「アプリ」という。)を利用したサービスを提供する。本実施の形態において、Webアプリがアプリの一例とされる。Webアプリとは、例えば、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)及びスクリプト等によって構成されるアプリをいい、利用のたびにクラウドシステム10へのアクセス(クラウドシステム10からのダウンロード)が必要とされる。
図1において、クラウドシステム10は、また、ネットワークN1等を介して1以上の販売者端末20に接続される。販売者端末20は、クラウドシステム10に対するユーザインタフェースとして機能する端末である。例えば、PC(Personal Computer)、スマートフォン、タブレット端末等が、販売者端末20として利用されてもよい。販売者端末20は、画像形成装置30が利用するアプリに関して、販売単位の定義情報や、ライセンスの定義情報(ライセンス定義)等の入力に利用されるコンピュータである。ライセンスとは、アプリの利用権限をいい、ライセンス定義とは、アプリの利用権限の範囲(換言すれば、アプリの利用が制限される範囲)を示す情報をいう。本実施の形態において、アプリは、1以上のアプリが組み合わされた「パッケージ」の単位で販売される。すなわち、パッケージとは、1以上のアプリの組み合わせ(集合)をいい、アプリの販売単位(商品としての単位)をいう。なお、販売者端末20は、例えば、パッケージを販売する組織等において利用される。また、販売者端末20のユーザを、便宜上、「販売者」という。
クラウドシステム10は、アプリを有すると共に、当該アプリに関するパッケージの定義及びライセンス定義等に関する情報を管理する1以上のコンピュータである。本実施の形態において、アプリに対するライセンスは、パッケージ単位で設定される。また、1つのパッケージに対して複数のライセンス定義を設定することができ、ユーザによるパッケージの購入時に当該パッケージに関して設定されたライセンス定義の中から1つのライセンス定義が選択される。したがって、本実施の形態において、「アプリ」、「パッケージ」及び「ライセンス定義」は、図2に示されるような関係を有する。
図2は、アプリ、パッケージ及びライセンス定義の関係の一例を示す図である。図2に示されるように、パッケージとアプリとの多重度は、1対1以上である。すなわち、1つのパッケージは、アプリを1又は複数含む。また、パッケージとライセンス定義との多重度は、1対1以上である。すなわち、1つのパッケージに対して、1又は複数のライセンス定義を設定可能である。
なお、図2には、ライセンス定義の種類として、「デバイスライセンス」及び「ユーザライセンス」が有ることが示されている。
デバイスライセンスとは、パッケージに含まれるアプリを利用可能な画像形成装置30を制限するライセンスをいう。デバイスライセンスが或るパッケージに適用される場合、当該パッケージの購入時において、利用可能な画像形成装置30の台数が当該デバイスライセンスに対して設定される。その後、ユーザ環境E1の画像形成装置30においてアプリが利用される際等に、当該台数の範囲内で、当該パッケージを利用可能とする画像形成装置30がクラウドシステム10に対して登録される。クラウドシステム10は、画像形成装置30から或るアプリへのアクセス要求を受信した際に、当該画像形成装置30が、当該アプリを含むパッケージに対するデバイスライセンスにおいて利用可能な画像形成装置30として登録されているか否かに基づいて、当該アプリの利用の可否を判定する。なお、デバイスライセンスにおいては、ユーザが誰であるかは問われない。
一方、ユーザライセンスとは、パッケージに含まれるアプリを利用可能なユーザを制限するライセンスをいう。ユーザライセンスが或るパッケージに適用される場合、当該パッケージの購入時において、利用可能なユーザ数が当該ユーザライセンスに対して設定される。その後、当該ユーザ数の範囲内で、当該パッケージを利用可能な各ユーザのユーザIDがユーザ環境E1からクラウドシステム10に対して登録される。クラウドシステム10は、画像形成装置30から或るアプリへのアクセス要求を受信した際に、当該画像形成装置30のユーザが、当該アプリを含むパッケージに対するユーザライセンスにおいて利用可能なユーザとして登録されているか否かに基づいて、当該アプリの利用の可否を判定する。この際、クラウドシステム10は、当該画像形成装置30のユーザを、当該画像形成装置30からのクラウドシステム10へのログイン時における認証によって特定する。したがって、ユーザライセンスが適用されるアプリの利用については、ユーザが認証(特定)されていることが前提とされる。一方、ユーザライセンスが適用されていないアプリの利用については、ユーザが認証(特定)されていることは前提とされない。なお、ユーザライセンスにおいては、アクセス元の画像形成装置30がいずれであるかは問われない。
図2では、また、アプリの種類として、「認証が必要なアプリ」及び「認証が不要なアプリ」が有ることが示されている。
認証が必要なアプリとは、当該アプリの利用時に、クラウドシステム10によってユーザ(ユーザID)が特定されていること(すなわち、クラウドシステム10によってユーザが認証されていること)が必要とされるアプリをいう。クラウドシステム10によってユーザが認証されているとは、ユーザがクラウドシステム10はログインしていることと同義である。例えば、画像形成装置30が紙文書からスキャンした画像データをクラウドシステム10の個人のストレージに送信するアプリは、ユーザがログインしていないと当該ユーザの個人のストレージが特定できないため、認証(ログイン)が必要なアプリの一例である。
一方、認証が不要なアプリとは、当該アプリの利用時に、クラウドシステム10によってユーザ(ユーザID)が特定されていること(すなわち、クラウドシステム10によってユーザが認証されていること)が必要とされないアプリをいう。例えば、画像形成装置30が紙文書からスキャンした画像データをクラウド上の共有ストレージに送信するアプリは、予め決められた共有ストレージを使うため、認証(ログイン)が不要なアプリの一例である。
図3は、第1の実施の形態におけるクラウドシステム10のハードウェア構成例を示す図である。図3のクラウドシステム10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
クラウドシステム10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってクラウドシステム10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、販売者端末20も、図3に示されるようなハードウェア構成を有してもよい。
図4は、第1の実施の形態における販売者端末20及びクラウドシステム10の機能構成例を示す図である。図4において、販売者端末20は、ブラウザ部21を有する。ブラウザ部21は、例えば、コンピュータをWebブラウザとして機能させるプログラムが販売者端末20のCPUに実行させる処理により実現される。ブラウザ部21は、クラウドシステム10に対するユーザインタフェースとして機能する。
一方、クラウドシステム10は、パッケージ生成部11、ライセンス生成部12、判定部13及び出力部14等を有する。これら各部は、クラウドシステム10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。クラウドシステム10は、また、アプリ情報記憶部121、パッケージ情報記憶部122、サービス定義記憶部123及びライセンス定義記憶部124等を利用する。これら各記憶部は、例えば、補助記憶装置102、又はクラウドシステム10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
アプリ情報記憶部121には、クラウドシステム10にアクセスすることで画像形成装置30において利用可能な各アプリの属性情報が記憶されている。
パッケージ生成部11は、販売者端末20において入力される情報を受け付け、当該情報に基づいて、新たなパッケージに関するパッケージ情報及びサービス定義を生成する。生成されたパッケージ情報は、パッケージ情報記憶部122に記憶される。生成されたサービス定義は、サービス定義記憶部123に記憶される。パッケージ情報とは、パッケージの属性情報をいう。サービス定義とは、パッケージによって実現されるサービスに関する情報をいい、パッケージ情報と1対1に関連付く。
ライセンス生成部12は、販売者端末20において入力される情報を受け付け、当該情報に基づいて、新たなパッケージに対するライセンス定義を生成する。生成されたライセンス定義は、ライセンス定義記憶部124に記憶される。
判定部13は、パッケージが、当該パッケージに対して生成されようとしているライセンス定義が適用されるための要件又は条件(以下、「適用要件」という。)を満たしているか否かを判定する。より詳しくは、判定部13は、当該パッケージ内の各アプリが、当該ライセンス定義の適用要件を満たしているか否かを判定する。本実施の形態においては、ユーザライセンスのライセンス定義について、当該ライセンス定義の適用先のアプリが認証が不要なアプリ(ユーザが特定されていることが不要なアプリ)であるという適用要件が有る。認証不要なアプリを含むパッケージに対してユーザライセンスのライセンス定義が適用されてしまうと、ユーザがクラウドシステム10にログインしていない状態で当該アプリの利用が可能となってしまう。その結果、クラウドシステム10は、当該パッケージに対するライセンス定義に基づくライセンス制御を正しく行えなくなってしまうからである。したがって、認証が不要なアプリを含むパッケージに対して、ユーザライセンスのライセンス定義が生成されようとした場合に、判定部13は、当該パッケージが当該ライセンス定義の要件を満たしていないと判定する。
出力部14は、パッケージがライセンス定義の要件を満たしていないと判定部13によって判定された場合に当該要件が満たされていないことを示す所定の情報を販売者端末20へ送信(出力)する。
なお、アプリ情報記憶部121に記憶されるアプリ情報、パッケージ情報記憶部122に記憶されるパッケージ情報、サービス定義記憶部123に記憶されるサービス定義、ライセンス定義記憶部124に記憶されるライセンス定義は、例えば、図5に示されるような関係を有する。
図5は、各情報の関係の一例を示す図である。図5に示されるように、パッケージ情報とアプリ情報との多重度は、1対1以上である。これは、図2において説明したように、パッケージとアプリとの多重度が1対1以上であることに基づく。また、パッケージ情報とサービス定義との多重度は1対1である。また、サービス定義とライセンス定義との多重度は、1対1以上である。これは、図2において説明したように、パッケージとライセンス定義との多重度が1対1以上であることに基づく。すなわち、パッケージ情報とサービス定義との多重度は1対1であるため、サービス定義とライセンス定義との多重度が1対1以上であるということは、パッケージ情報とライセンス定義との多重度も1対1以上であることを意味する。
以下、クラウドシステム10が実行する処理手順について説明する。図6は、第1の実施の形態においてクラウドシステム10が実行する処理手順の一例を説明するためのフローチャートである。
ステップS101において、パッケージ生成部11は、販売者端末20から送信された、パッケージの生成の開始要求を受信すると、パッケージ情報入力画面の表示データ(例えば、HTMLデータ)を、販売者端末20へ送信する(S102)。なお、パッケージの生成の開始要求は、例えば、販売者端末20のブラウザ部21に対する所定のURLの入力によってブラウザ部21から送信される。販売者端末20のブラウザ部21は、当該表示データを受信すると、当該表示データに基づいて、パッケージ情報入力画面を表示する。
図7は、パッケージ情報入力画面の表示例を示す図である。図7において、パッケージ情報入力画面510は、パッケージ情報を構成する項目である「パッケージ名」及び「説明」と、サービス定義を構成する項目である「ライセンス制御有無」の入力欄を含む。
「パッケージ名」は、生成するパッケージ(以下、「対象パッケージ」という。)に対して付与する名前である。「説明」は、対象パッケージに関する説明である。「ライセンス制御有無」は、当該パッケージに対してライセンス(ユーザライセンス又はデバイスライセンス)による制御を有効とするか無効とするかを示す項目である。したがって、「ライセンス制御有無」については、「有効」及び「無効」のいずれか一方が選択可能とされている。
販売者によって、「パッケージ名」、「説明」及び「ライセンス制御有無」のそれぞれに対する値がパッケージ情報入力画面510において選択又は入力され、次へボタン511が押下されると、販売者端末20のブラウザ部21は、選択又は入力された値を含む入力情報をクラウドシステム10へ送信する。
ステップS103において、クラウドシステム10のパッケージ生成部11は、当該入力情報を受信し(受け付け)、当該入力情報に含まれる各値に基づいて、対象パッケージに係るパッケージ情報及びサービス定義をパッケージ情報記憶部122又はサービス定義記憶部123に記憶する。
図8は、パッケージ情報記憶部122に記憶されるパッケージ情報の構成例を示す図である。図8に示されるように、パッケージ情報は、「パッケージID」、「パッケージ名」、「パッケージの説明」、「サービスクラス」及び「アプリリスト」等の項目を含む。
「パッケージID」は、パッケージの識別情報であり、その値はパッケージごとに異なる。「パッケージ名」及び「パッケージの説明」については、図7において説明した通りである。「サービスクラス」は、当該パッケージに関連付くサービス定義の識別情報である。「アプリリスト」は、当該パッケージに含まれる各アプリのアプリIDのリストである。
ステップS103では、パッケージ生成部11が、対象パッケージのパッケージ情報を記憶するためのレコード(以下、「対象パッケージ情報レコード」という。)をパッケージ情報記憶部122に生成し、対象パッケージ情報レコードの「パッケージID」、「パッケージ名」、「パッケージの説明」及び「サービスクラス」に対して値を記憶する。「パッケージ名」及び「パッケージの説明」には、受信された入力情報に含まれている値が記憶される。「パッケージID」及び「サービスクラス」のそれぞれの値は、パッケージ生成部11が、他のパッケージ情報又は他のサービス定義と重複しないように自動的に生成する。
また、図9は、サービス定義記憶部123に記憶されるサービス定義の構成例を示す図である。図9に示されるように、サービス定義は、「サービスクラス」、「サービス名」、「サービスの説明」、「サービスタイプ」及び「ライセンス制御有無」等の項目を含む。
「サービスクラス」及び「ライセンス制御有無」は、上記した通りである。「サービス名」は、サービスの名前である。「サービスの説明」は、サービスの内容の説明である。「サービスタイプ」は、サービスの種別を示す情報である。本実施の形態では、「サービスタイプ」の値は「クラウドアプリケーション」に固定される。
ステップS103では、パッケージ生成部11が、対象パッケージのサービス定義を記憶するためのレコード(以下、「対象サービス定義レコード」という。)をサービス定義記憶部123に生成し、対象サービス定義レコードの「サービスクラス」、「サービス名」、「サービスの説明」、「サービスタイプ」及び「ライセンス制御有無」に対して値を記憶する。「サービスクラス」には、対象パッケージのパッケージ情報の「サービスクラス」と同じ値が記憶される。「サービス名」、「サービスの説明」のそれぞれには、対象パッケージのパッケージ情報の「パッケージ名」、「パッケージの説明」と同じ値が記憶される。「サービスタイプ」には、「クラウドアプリケーション」が記憶される。「サービス制御有無」には、受信された入力情報に含まれている値が記憶される。
続いて、パッケージ生成部11は、アプリ情報記憶部121に記憶されているアプリ情報の一覧を取得する(S104)。
図10は、アプリ情報記憶部121に記憶されているアプリ情報の構成例を示す図である。図10に示されるように、アプリ情報は、「アプリID」、「アプリ名」、「アプリの説明」、「アプリタイプ」、「作成日」及び「状態」等の項目を含む。
「アプリID」は、アプリの識別情報であり、その値はアプリごとに異なる。「アプリ名」は、アプリの名前である。「アプリの説明」は、アプリに関する説明である。「アプリタイプ」は、アプリの利用時における認証の要否を示す項目であり、「認証要」又は「認証不要」の値が設定される。「作成日」は、アプリが作成された年月日である。「状態」は、販売に関するアプリの状態を示す項目である。当該状態としては、「利用可能」、「一時停止」、「公開終了」等が有る。「利用可能」は、販売可能な状態である。「一時停止」は、販売が一時的に停止されている状態(例えば、不具合の修正待ちの状態等の状態)である。「公開終了」は、販売が終了となった状態である。
続いて、パッケージ生成部11は、対象パッケージに含めるアプリを選択させるためのアプリ選択画面の表示データを、アプリ情報記憶部121から取得したアプリ情報の一覧に基づいて生成し、当該表示データを販売者端末20へ送信する(S105)。販売者端末20のブラウザ部21は、当該表示データを受信すると、当該表示データに基づいて、アプリ選択画面を表示する。
図11は、アプリ選択画面の表示例を示す図である。図11において、アプリ選択画面520は、絞り込み条件入力領域521及びアプリ一覧表示領域522等を含む。
絞り込み条件入力領域521は、アプリ一覧表示領域522において表示対象とするアプリ情報を絞り込むための条件の入力を受け付けるための領域である。図11では、「アプリ名」及び「状態」によって表示対象の絞り込みが可能とされた例が示されているが、アプリ情報を構成する他の項目による絞り込みが可能とされてもよい。なお、全ての条件が空欄の場合(指定されない場合)、全てのアプリ情報が表示対象とされる。
アプリ一覧表示領域522は、表示対象とされたアプリ情報の一覧が表示され、対象パッケージに含めるアプリのアプリ情報の選択を受け付けるためのチェックボタンを含む領域である。但し、「状態」が「公開終了」又は「一時停止」であるアプリ情報は、選択不能とされる。
アプリ一覧表示領域522において1以上のアプリ情報が選択されて、OKボタン523が押下されると、販売者端末20のブラウザ部21は、選択された各アプリ情報のアプリIDの一覧をクラウドシステム10へ送信する。
ステップS106において、パッケージ生成部11は、当該一覧を受信する(受け付ける)と、対象パッケージ情報のレコード(図8)の「アプリリスト」に当該一覧を記憶する。
続いて、ライセンス生成部12は、対象パッケージのライセンス定義(図9)の「ライセンス制御有無」の値が「有効」であるか否かを判定する(S107)。当該値が「有効」である場合(S107でYes)、ライセンス生成部12は、ライセンス定義を入力させるためのライセンス定義作成画面の表示データを販売者端末20へ送信する(S108)。販売者端末20のブラウザ部21は、当該表示データを受信すると、当該表示データに基づいて、ライセンス定義作成画面を表示する。
図12は、ライセンス定義作成画面の表示例を示す図である。図12において、ライセンス定義作成画面530は、ライセンス定義を構成する項目である「ライセンス定義名」、「ライセンス種別」及び「有効期間」等の入力欄を含む。
「ライセンス定義名」は、ライセンス定義の名前である。「ライセンス種別」は、ユーザライセンスであるのかデバイスライセンスであるのかのライセンスの種別(種類)である。したがって、図12では、「ユーザライセンス」及び「デバイスライセンス」のいずれか一方が選択可能とされている。「有効期間」は、ライセンスの有効期間である。図12では、月単位若しくは日単位での指定、又は無期限の指定が可能とされている。
販売者によって、「ライセンス定義名」、「ライセンス種別」及び「有効期間」のそれぞれの値が、ライセンス定義作成画面530において選択又は入力され、作成ボタン531が押下されると、販売者端末20のブラウザ部21は、選択又は入力された値を含む入力情報をクラウドシステム10へ送信する。
ステップS109において、クラウドシステム10のライセンス生成部12は、当該入力情報を受信し(受け付け)、当該入力情報に含まれる各値に基づくライセンス定義(以下、「対象ライセンス定義」という。)をライセンス定義記憶部124に記憶する。
図13は、ライセンス定義記憶部124に記憶されるライセンス定義の構成例を示す図である。図13に示されるように、ライセンス定義は、「ライセンスコード」、「ライセンス定義名」、「ライセンス種別」、「有効期間」及び「サービスクラス」等の項目を含む。
「ライセンスコード」は、ライセンス定義の識別情報であり、その値はライセンス定義ごとに異なる。「ライセンス定義名」、「ライセンス種別」及び「有効期間」は上記した通りである。「サービスクラス」は、当該ライセンス定義が関連付けられるパッケージに対応するサービス定義の「サービスクラス」の値である。
ステップS109では、ライセンス生成部12が、対象ライセンス定義を記憶するためのレコード(以下、「対象ライセンス定義レコード」という。)をライセンス定義記憶部124に生成し、対象ライセンス定義レコードの「ライセンスコード」、「ライセンス定義名」、「ライセンス種別」、「有効期間」及び「サービスクラス」に対して値を記憶する。「ライセンスコード」の値は、パッケージ生成部11が、他のライセンス定義と重複しないように自動的に生成する。「ライセンス定義名」、「ライセンス種別」及び「有効期間」には、受信された入力情報に含まれている値が記憶される。「サービスクラス」には、対象パッケージのサービス定義(図9)の「サービスクラス」の値が記憶される。
続くステップS110及びS111において、判定部13は、対象パッケージに含まれるアプリの中に、対象ライセンス定義の適用要件を満たさないアプリの有無を判定するための処理を実行する。
具体的には、判定部13は、対象ライセンス定義(図13)の「ライセンス種別」の値が「ユーザライセンス」であるか否かを判定する(S110)。当該値が「ユーザライセンス」である場合(S110でYes)、判定部13は、対象パッケージのパッケージ情報(図8)の「アプリリスト」にアプリIDが含まれているいずれかのアプリのアプリ情報(図10)の「アプリタイプ」の値が、「認証不要」であるか否かを判定する(S111)。すなわち、対象パッケージに、認証が不要であるアプリが含まれているか否かが判定される。
対象パッケージに、認証が不要であるアプリが含まれている場合(S111でYes)、出力部14は、警告メッセージを含む警告画面の表示データを販売者端末20へ送信する(S112)。販売者端末20のブラウザ部21は、当該表示データを受信すると、当該表示データに基づいて、警告画面を表示する。
図14は、警告画面の表示例を示す図である。図14に示されるように、警告画面540は、対象パッケージに認証不要のアプリが含まれているため、ユーザライセンスのライセンス定義を作成できないことを示すメッセージを含む。警告画面540を参照した販売者は、対象パッケージが、対象ライセンス定義の要件を満たしていないことを容易に確認することができる。
ステップS111に続いて、ステップS107でNoの場合、ステップS110でNoの場合、又はステップS111でNoの場合、クラウドシステム10は、図6の処理手順を終了する。
なお、第1の実施の形態では、対象ライセンス定義の適用要件を対象パッケージが満たしていない場合であっても、対象パッケージ及び対象ライセンス定義は生成されてしまう。したがって、警告画面540を参照した販売者は、改めて、対象パッケージのアプリリスト又は対象ライセンス定義のライセンス種別等について修正作業を行う。
上述したように、第1の実施の形態によれば、対象パッケージが、対象ライセンス定義の適用要件を満たしていない場合、警告画面540が販売者端末20に表示される。したがって、第1の実施の形態によれば、販売者が、ライセンスに対するパッケージの適否を確認可能とすることができる。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第1の実施の形態と同様でもよい。
図15は、第2の実施の形態においてクラウドシステム10が実行する処理手順の一例を説明するためのフローチャートである。図15中、図6と同一ステップには同一ステップ番号を付し、その説明は省略する。
図15では、認証が不要であるアプリが対象パッケージに含まれている場合(S111でYes)に実行される処理手順が図6と異なる。この場合、出力部14は、エラーメッセージを含むエラー画面の表示データを販売者端末20へ送信する(S201)。販売者端末20のブラウザ部21は、当該表示データを受信すると、当該表示データに基づいて、エラー画面を表示する。
図16は、第2の実施の形態におけるエラー画面の表示例を示す図である。図16に示されるように、エラー画面550は、対象パッケージに認証不要なアプリが含まれているにも関わらず、ユーザライセンスのライセンス定義が作成されたため、対象パッケージの作成に失敗したことを示すメッセージを含む。
ステップS201に続いて、クラウドシステム10は、対象パッケージ情報レコード、対象サービス定義レコード及び対象ライセンス定義レコードを、それぞれパッケージ情報記憶部122、サービス定義記憶部123、ライセンス定義記憶部124から削除する(S202)。その結果、対象パッケージ及び対象ライセンス定義等の作成は無効となる。
なお、エラー画面550(図16)のボタン551が押下されると、販売者端末20のブラウザ部21は、パッケージの生成の開始要求をクラウドシステム10へ送信する。その結果、ステップS101以降が改めて実行される。
上述したように、第2の実施の形態によれば、対象パッケージが、対象ライセンス定義の適用要件を満たしていない場合、エラー画面550が販売者端末20に表示される。したがって、第2の実施の形態によれば、販売者が、ライセンスに対するパッケージの適否を確認可能とすることができる。
また、第2の実施の形態では、対象パッケージが、対象ライセンス定義の適用要件を満たしていない場合、対象パッケージ情報レコード、対象サービス定義レコード及び対象ライセンス定義レコードのそれぞれが、パッケージ情報記憶部122、サービス定義記憶部123、ライセンス定義記憶部124から削除される。すなわち、対象パッケージ及び対象ライセンス定義の作成は、無効とされる。その結果、対象ライセンス定義の要件を満たさない対象パッケージが作成されたままの状態が発生するのを回避することができる。
次に、第3の実施の形態について説明する。第3の実施の形態では第1の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第1の実施の形態と同様でもよい。
図17は、第3の実施の形態においてクラウドシステム10が実行する処理手順の一例を説明するためのフローチャートである。図17中、図6と同一ステップには同一ステップ番号を付し、その説明は省略する。
図17では、認証が不要であるアプリが対象パッケージに含まれている場合(S111でYes)に実行される処理手順が図6と異なる。この場合、出力部14は、エラーメッセージを含むエラー画面の表示データを販売者端末20へ送信する(S301)。販売者端末20のブラウザ部21は、当該表示データを受信すると、当該表示データに基づいて、エラー画面を表示する。
図18は、第3の実施の形態におけるエラー画面の表示例を示す図である。図18に示されるように、エラー画面560は、対象パッケージに認証不要なアプリが含まれているにも関わらず、ユーザライセンスのライセンス定義が作成されたため、対象パッケージの作成に失敗したことを示すと共に、アプリの選択のし直し又はライセンス定義の作成のし直しを促すメッセージを含む。エラー画面560は、また、当該メッセージに対応させて、ボタン561及びボタン562を含む。ボタン561は、アプリの選択のし直しの指示を受け付けるためのボタンである。ボタン562は、ライセンス定義の作成のし直しの指示を受け付けるためのボタンである。
販売者は、対象パッケージに含めるアプリを変更する場合、ボタン561を押下し、ライセンス種別を「ユーザライセンス」から「デバイスライセンス」へ変更する場合、ボタン562を押下する。販売者端末20のブラウザ部21は、押下されたボタンの識別情報をクラウドシステム10に送信する。
クラウドシステム10において当該識別情報が受信されると、当該識別情報がボタン561の識別情報であれば(S302でYes)、パッケージ生成部11等は、ステップS104以降を再実行する。すなわち、この場合、パッケージ生成部11は、対象パッケージに含めるアプリの再選択を受け付ける。一方、当該識別情報がボタン562の識別情報であれば(S302でNo)、ライセンス生成部12等は、ステップ108以降を再実行する。すなわち、この場合、ライセンス生成部12は、ライセンス種別等の再選択を受け付ける。
上述したように、第3の実施の形態によれば、対象パッケージが、対象ライセンス定義の適用要件を満たしていない場合、エラー画面560が販売者端末20に表示される。したがって、第3の実施の形態によれば、販売者が、ライセンスに対するパッケージの適否を確認可能とすることができる。
また、第3の実施の形態では、対象パッケージのアプリリストの選択のし直し、又はライセンス定義の生成のし直しの機会が販売者に対して与えられる。すなわち、設定すべき情報の一部についてのみの設定のし直しの機会が販売者に対して与えられる。その結果、販売者による作業を効率化することができる。
なお、上記各実施の形態では、ユーザライセンスのライセンス定義の適用要件が、認証が必要なアプリであることである例を示したが、他の適用要件を有するライセンス定義について上記各実施の形態が適用されてもよい。例えば、アプリ(アプリ情報)ごとに利用可能な端末(クライアント)の機種(例えば、スマートフォン、プリンタ、複合機、コピー機等)が設定されている状態において、デバイスライセンスを適用可能な機種が、特定の機種(例えば、複合機)に決まっているとする。この場合、複合機において利用可能でないアプリを含むパッケージが生成され、当該パッケージに対してデバイスライセンスのライセンス定義が生成されようとした場合に、当該パッケージが当該ライセンス定義の適用要件を満たしていないと判定されてもよい。
また、ライセンス定義の適用要件は、判定部13のロジックとしてではなく、例えば、ライセンス定義の項目として設定可能とされてもよい。この場合、判定部13は、ライセンス定義の「適用要件」の項目を参照して、当該「適用要件」が満たされているか否かを判定してもよい。
また、上記各実施の形態では、アプリを利用する機器が画像形成装置30である例を示したが、画像形成装置30以外の機器において利用されるアプリに関して本実施の形態が適用されてもよい。例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC又はデスクトップPC等において利用されるアプリに関して上記各実施の形態が適用されてもよい。
なお、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
なお、上記各実施の形態において、クラウドシステム10は、情報処理装置の一例である。パッケージ生成部11は、第1の受付部の一例である。ライセンス生成部12は、第2の受付部の一例である。クラウドシステム10及び販売者端末20は、情報処理システムの一例である。販売者端末20は、端末の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。