(57)【要約】【課題】ライセンスの状態変更イベントを通知する構成において、ライセンスの状態変更の予約を通知することは好ましくない。【解決手段】ライセンスごとに、サービスの利用可否に関わるライセンス状態とライセンス状態が適用される適用タイミングとを対応付けたライセンス情報を記憶しておき、ライセンス情報に新たなライセンスについてのライセンス情報が追加されたことに応じて、ライセンス状態の変更を通知する状態変更イベントをサービス提供サーバーに対して発行するが、追加されたライセンス情報の適用タイミングが即時でない場合には、状態変更イベントを発行しない。【選択図】図４
2019219957.tif 000002
【特許請求の範囲】
【請求項１】
ライセンスごとに、サービスの利用可否に関わるライセンス状態と前記ライセンス状態が適用される適用タイミングとを対応付けたライセンス情報を記憶するライセンス情報管理手段と、
前記ライセンス情報に新たなライセンスについての前記ライセンス情報が追加されたことに応じて、前記ライセンス状態の変更を通知する状態変更イベントをサービス提供サーバーに対して発行するイベント発行手段とを有し、
前記イベント発行手段は、追加された前記ライセンス情報の適用タイミングが即時でない場合には、前記状態変更イベントを発行しないことを特徴とするライセンス管理システム。
【請求項２】
請求項1に記載のライセンス管理システムであって、
前記ライセンス管理手段はさらに、記憶した前記ライセンス情報のうちから、前記適用タイミングが即時でなく、かつ前記適用タイミングに達した前記ライセンス情報を特定する特定処理を行い、特定した前記ライセンス情報を更新し、
前記イベント発行手段は、特定した前記ライセンス情報について前記ライセンス状態の変更を通知する前記状態変更イベントを発行することを特徴とするライセンス管理システム。
【請求項３】
請求項２に記載のライセンス管理システムであって、
前記ライセンス管理手段は、前記特定処理を定期的に繰り返すことを特徴とするライセンス管理システム。
【請求項４】
請求項２又は３に記載のライセンス管理システムであって、
前記ライセンス情報にはさらに、ライセンス適用日時と前記ライセンス情報の更新日時とを含み、
前記ライセンス管理手段は、記憶した前記ライセンス情報のうちで、前記適用タイミングが即時でなく、かつ、前記ライセンス適用日時が、前記特定処理を前回に行った後の日時となる前記ライセンス情報を、前記適用タイミングに達した前記ライセンス情報として特定することを特徴とするライセンス管理システム。
【請求項５】
請求項４に記載のライセンス管理システムであって、
前記ライセンス状態は、サービスを利用できる状態と、サービスを利用できない状態とのいずれかを示し、
前記イベント発行手段は、前記特定されたライセンス情報のうち、前記ライセンス状態が、サービスを利用できる状態とサービスを利用できない状態との間で変化している場合に前記状態変更イベントを発行し、そうでない場合には前記状態変更イベントを発行しないことを特徴とするライセンス管理システム。
【請求項６】
請求項５に記載のライセンス管理システムであって、
前記ライセンス管理手段は、前記特定されたライセンス情報のうち、前記ライセンス状態が、サービスを利用できる状態とサービスを利用できない状態との間で変化している場合に前記特定されたライセンス情報を更新することを特徴とするライセンス管理システム。
【請求項７】
請求項１乃至６のいずれか一項記載のライセンス管理システムであって、
前記サービス提供サーバーは、前記イベント発行手段により発行された状態変更イベントを受信し、該状態変更イベントに示されたライセンス状態に応じて、クライアントからの要求に応じてサービスを提供することを特徴とするライセンス管理システム。
【請求項８】
ライセンス管理システムとサービス提供サーバーとを含むサービス提供システムであって、
前記ライセンス管理システムは、ライセンスごとに、サービスの利用可否に関わるライセンス状態と前記ライセンス状態が適用される適用タイミングとを対応付けたライセンス情報を記憶するライセンス情報管理手段と、
前記ライセンス情報に新たなライセンスについての前記ライセンス情報が追加されたことに応じて、前記ライセンス状態の変更を通知する状態変更イベントをサービス提供サーバーに対して発行するイベント発行手段とを有し、
前記イベント発行手段は、追加された前記ライセンス情報の適用タイミングが即時でない場合には、前記状態変更イベントを発行せず、
前記サービス提供サーバーは、前記イベント発行手段により発行された状態変更イベントを受信し、該状態変更イベントに示されたライセンス状態に応じて、クライアントからの要求に応じてサービスを提供することを特徴とするサービス提供システム。
【請求項９】
ライセンスごとに、サービスの利用可否に関わるライセンス状態と前記ライセンス状態が適用される適用タイミングとを対応付けたライセンス情報を記憶するライセンス情報管理工程と、
前記ライセンス情報に新たなライセンスについての前記ライセンス情報が追加されたことに応じて、前記ライセンス状態の変更を通知する状態変更イベントをサービス提供サーバーに対して発行するイベント発行工程とを有し、
前記イベント発行工程では、追加された前記ライセンス情報の適用タイミングが即時でない場合には、前記状態変更イベントを発行しないことを特徴とするライセンス管理方法。
【請求項１０】
ライセンスごとに、サービスの利用可否に関わるライセンス状態と前記ライセンス状態が適用される適用タイミングとを対応付けたライセンス情報を記憶するライセンス情報管理手段と、
前記ライセンス情報に新たなライセンスについての前記ライセンス情報が追加されたことに応じて、前記ライセンス状態の変更を通知する状態変更イベントをサービス提供サーバーに対して発行するイベント発行手段としてコンピュータをきのうさせるためのプログラムであって、
前記イベント発行手段は、追加された前記ライセンス情報の適用タイミングが即時でない場合には、前記状態変更イベントを発行しないことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はイベント通知、特にライセンス状態の変更を通知するためのイベント通知に関するライセンス管理システム及び方法、サービス提供システム、プログラムに関する。
【背景技術】
【０００２】
クラウドが一般化するに伴い、従来イントラネット環境にサーバーを構築し運用していたサービスのクラウド化がますます進んでいる。ここでいうサービスとは、インターネット等のネットワークを介して接続されたサーバーが提供する機能、換言すれば、ウェブアプリケーションのことを指す。このようなサービスは一般にライセンスを有するクライアントに対して提供されるため、ライセンス管理を、サービスを提供するサービス提供サーバーに代えてライセンス管理機能を提供するサービスライセンス管理サーバーにより行うシステムもある。。さらにサービスライセンス管理サーバーの負荷の軽減のためにPub/Subメッセージングモデルと呼ばれるモデルを適用するケースが増えてきている。Pub/Subメッセージングモデルを適用したライセンス管理システムでは、あらかじめ、ライセンス状態変更イベントに関心のあるサービス提供サーバーは、ライセンス状態変更イベントをサブスクライブしておく。すなわち、たとえば、サービス提供サーバーは、関心のあるライセンス状態変更イベントについて、当該イベントの発生を通知するようサービスライセンス管理サーバーに登録しておく。サービスライセンス管理サーバーで登録したイベントが発生すると、たとえばユーザーの保有ライセンス状態が変化すると、サービスライセンス管理サーバーはライセンス状態変更イベントをパブリッシュする。パブリッシュされたイベントは、イベントをサブスクライブした各々のサービス提供サーバーにイベント通知される。すなわちサービスライセンス管理サーバーは、当該イベントを通知するよう登録したサブスクライバであるサービス提供サーバーにイベントの発生を通知する。ライセンス状態変更イベントを受信したサービス提供サーバーは、ライセンス状態変更イベントに応じたユーザーの保有ライセンス状態を記憶する。サービス提供サーバーは、ライセンスの確認を、このようにして更新されるライセンス状態を参照して行う。このようにして、サービス提供サーバーは、サービスライセンス管理サーバーに問い合わせることなく、自身でユーザーの保有ライセンスの有無を判断することができる。たとえば特許文献１には、ライセンスの更新を端末に通知する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２８８１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、ライセンス契約には、サービス提供サーバーの利用を即座に開始する形態以外にも、たとえば翌月から利用を開始する形態も考えられる。また、一定期間で利用を終了させる形態の契約も考えられる。このような場合、サービスライセンス管理サーバーには、翌月からの開始を予約するライセンスや、一定期間後に終了するライセンスを登録できることが好ましい。一方で、サービスライセンス管理サーバーがデータベースに、ユーザー保有ライセンスの変化予約を書き込むと、それがイベントとしてサービス提供サーバーに通知され、サービス提供サーバーは、ユーザーが保有するライセンスの状態変更が予約されたことのイベントを受信することになる。
【０００５】
しかしサービス提供サーバーの関心事は、現時点でのユーザー保有ライセンス状態の変化である。そのためサービス提供サーバーが、ユーザーが保有するライセンス状態変更が予約されたことのイベントを受信するのは好ましくない。
【０００６】
本発明は前述の課題を鑑みてなされたもので、ライセンス状態の変更の予約をライセンス状態変更イベントとして通知することがないライセンス管理システム及び方法、サービス提供システム、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を有する。すなわち、ライセンスごとに、サービスの利用可否に関わるライセンス状態と前記ライセンス状態が適用される適用タイミングとを対応付けたライセンス情報を記憶するライセンス情報管理手段と、
前記ライセンス情報に新たなライセンスについての前記ライセンス情報が追加されたことに応じて、前記ライセンス状態の変更を通知する状態変更イベントをサービス提供サーバーに対して発行するイベント発行手段とを有し、
前記イベント発行手段は、追加された前記ライセンス情報の適用タイミングが即時でない場合には、前記状態変更イベントを発行しないことを特徴とするライセンス管理システムが提供される。
【発明の効果】
【０００８】
本発明によれば、ライセンス状態の変更の予約をライセンス状態変更イベントとして通知することがない情報処理装置及びライセンス管理方法とプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】ネットワーク構成を示す図である。
【図２】本発明の実施の形態に係るサーバーコンピューターの構成図である。
【図３】本実施の形態に係るモジュール構成図である。
【図４】本実施の形態に係るライセンス情報追加およびイベント発行フローである。
【図５】本実施の形態に係るモジュール構成図である。
【図６】（ａ）本実施の形態に係るライセンス状態の定期適用確認フロー、（ｂ）ライセンス情報更新フローである。
【図７】本実施の第２の形態に係るモジュール構成図である。
【図８】本実施の第２の形態に係るライセンス状態の定期適用確認フローである。
【図９】本実施の第２の形態に係るイベント発行フローである。
【発明を実施するための形態】
【００１０】
［実施形態１］
●システム構成
以下、本発明を実施するための形態について図面を用いて説明する。本実施の形態に係るアクセス制御システムは、図１に示すような構成のネットワーク上に実現される。なおライセンス管理の観点から、このシステムをライセンス管理システムと称することもある。図１において、ＷＡＮ１００は、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（広域ネットワーク）であり、本発明ではＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（ＷＷＷ）システムが構築されている。ＬＡＮ１１０およびＬＡＮ１５０は各構成要素を接続するＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ローカルエリアネットワーク）である。
【００１１】
サービスライセンス管理サーバー１５１は、ユーザーの所属するテナントに対してサービスライセンスの付与・解除等の管理を行う。テナントとは契約者ごとにデータやユーザーを分離する単位である。以下、本実施の形態においては、サービスライセンスは、あるテナントに属するユーザーに対してあるサービスの利用を許可するものとする。すなわち、サービスライセンスは、テナントごと且つサービスごとに付与される。ライセンスとしては例えば、複合機管理クラウドサービスの利用を許可するサービスライセンスなどが考えられる。複合機管理クラウドサービスは、管理対象の複合機がその機器情報をクラウドサービス（すなわち複合機管理クラウドサービスを提供するサービス提供サーバー）にアップロードする。サーバーは管理対象の複合機に異常がないかを一元的に管理する。なおサービスライセンスは上述されるものに限定されるものでなく、あるユーザーに対してあるサービスの利用を許可するものであってもよい。データ記憶サーバー１５２は、サービスライセンス管理サーバー１５１が付与・解除したサービスライセンス情報を記憶する。イベント発行サーバー１５３は、データ記憶サーバー１５２が記憶するライセンス情報が追加・更新などにより変更されたことに伴ってライセンス状態変更イベントを発行する。定期実行サーバー１５４は定期的な処理を実行する。
【００１２】
サービス提供サーバー１６１および１６２は、ユーザーにクラウドサービスを提供する。サービス提供サーバーとしては例えば、複合機管理サービスサーバーや印刷サービスサーバーなどが考えられる。またそれら以外のサービス提供サーバーであってもよい。各サービス提供サーバーでは、ユーザーによるサービス要求を受信した際に、要求元のユーザーが必要なライセンスを保有しているか判断し、ライセンスの有無に応じてサービス要求を処理するか否かを判断する。例えば複合機管理サービスサーバーは、ユーザーが複合機管理サービスの利用ライセンスを保有している場合に、そのユーザーからの要求に応じて複合機の一覧表示や利用状況レポートの出力を実行する。また印刷サービスサーバーは、ユーザーが印刷サービスの利用ライセンスを保有している場合に、そのユーザーからの要求に応じて印刷ジョブを受け付けてクラウド印刷を実行する。一方で各サービス提供サーバーは、必要なライセンスを保有していないユーザーに対しては、前述する機能を提供しないよう構成される。
【００１３】
ユーザー端末１１１はサービスライセンス管理サーバー１５１やサービス提供サーバー１６１、１６２等に関するユーザーによる操作を受け付け、またサービス提供サーバー１６１，１６２からの情報を表示等により出力する。ユーザー端末のことを単に端末と呼ぶこともある。
【００１４】
サービスライセンス管理サーバー１５１、データ記憶サーバー１５２、イベント発行サーバー１５３、定期実行サーバー１５４およびサービス提供サーバー１６１、１６２はそれぞれＬＡＮ１５０を介してＷＡＮ１００と接続されている。また同様に端末１１１はＬＡＮ１１０を介してＷＡＮ１００と接続されている。なおサービスライセンス管理サーバー１５１、データ記憶サーバー１５２、イベント発行サーバー１５３、定期実行サーバー１５４およびサービス提供サーバー１６１、１６２はそれぞれ個別のＬＡＮ上に構成されていてもよいし同一のＬＡＮ上に構成されていてもよい。同様に、同一のＰＣまたはサーバーコンピューター上に構成されていてもよい。また、サービスライセンス管理サーバー１５１、データ記憶サーバー１５２、イベント発行サーバー１５３、定期実行サーバー１５４およびサービス提供サーバー１６１、１６２は図１ではそれぞれが1台として描かれているが複数のサーバーから構成されたサーバーシステムでも良い。例えば、複数台のサーバーをクラスタ化してサービスライセンス管理サーバー１５１を構成しても良い。なお、本願発明においてサーバーシステムと称した場合は、少なくとも1台のサーバーから構成された特定のサービスを提供する装置を指すものとする。
【００１５】
図1においてデータ記憶サーバー１５２および定期管理サーバー１５４はライセンスを管理するサーバーであり、ライセンス情報管理部として機能する。またイベント発行サーバー１５３はイベントを発行するイベント発行部として機能する。またサービス提供サーバー１６１または１６２により提供されるサービスが複合機管理サービスの場合、管理対象となる複合機は、不図示のＬＡＮやアクセス回線を介してＷＡＮ１００に接続される。またサービス提供サーバー１６１または１６２により提供されるサービスが印刷サービスの場合、印刷ジョブを実行する印刷装置も不図示のＬＡＮやアクセス回線を介してＷＡＮ１００に接続される。
【００１６】
●イベント発行サーバー
本実施の形態に係るイベント発行サーバー１５３などの各種サーバーおよびユーザー端末は、図２に示すような構成のＰＣから成るシステム上に実現される。図２は本実施の形態に係る、イベント発行サーバー１５３のハードウェア構成を示す図である。またサービスライセンス管理サーバー１５１、データ記憶サーバー１５２、定期実行サーバー１５４、サービス提供サーバー１６１、１６２の構成やユーザー端末１１１の構成も同様である。尚、図２に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態のサーバーコンピューターおよび端末には一般的な情報処理装置のハードウェア構成を適用できる。
【００１７】
図２において、ＣＰＵ２０１は、ＲＯＭ２０３のプログラム用ＲＯＭに記憶された、或いはハードディスク２１１からＲＡＭ２０２にロードされたＯＳやアプリケーション等のプログラムを実行する。ここでＯＳとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをＯＳと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。キーボードコントローラ（ＫＢＣ）２０５は、キーボード（ＫＢ）２０９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０６は、ＣＲＴディスプレイ２１０の表示を制御する。ディスクコントローラ（ＤＫＣ）２０７は各種データを記憶するハードディスク（ＨＤ）２１１やフロッピー（登録商標）ディスク（ＦＤ）等におけるデータアクセスを制御する。ＮＣ２１２はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はＣＰＵ２０１であり、ソフトウェア上の主体はハードディスク（ＨＤ）２１１にインストールされたアプリケーションプログラムである。
【００１８】
図３（ａ）は本実施の形態に係る、データ記憶サーバー１５２のモジュール構成を示す図である。データ記憶サーバー１５２はライセンス情報記憶モジュール３０１と呼び出しモジュール３０２とを持つ。
【００１９】
図３（ｂ）は本実施の形態に係る、イベント発行サーバー１５３のモジュール構成を示す図である。イベント発行サーバー１５３は第１のイベント発行モジュール３０３、第１の適用タイミング判断モジュール３０４を持つ。
【００２０】
データ記憶サーバー１５２はサービスライセンス管理サーバー１５１から受け付けたライセンス情報をライセンス情報記憶モジュール３０１で記憶し、呼び出しモジュール３０２がイベント発行サーバー１５３を呼び出す。イベント発行サーバー１５３では第１のイベント発行モジュール３０３が呼び出しモジュール３０２から呼び出しを受け、ライセンス状態変更イベントを発行する。なおライセンス状態変更イベントの発行においては、第１の適用タイミング判断モジュール３０４で、追加されたライセンス情報の適用タイミングが予約か否か判断し、イベント発行の要否を判断する。
【００２１】
●ライセンス情報追加処理
図４（ａ）は本実施の形態に係る、データ記憶サーバー１５２におけるライセンス情報追加処理のフローである。本フローは、ユーザーがサービスライセンス管理サーバー１５１を操作したことに伴い、データ記憶サーバー１５２がサービスライセンス管理サーバー１５１からライセンス情報追加指示を受信することで開始される。
【００２２】
ステップＳ４０１でライセンス情報記憶モジュール３０１は、ライセンス情報の追加を受け付ける。ステップＳ４０２でライセンス情報記憶モジュール３０１は、ステップＳ４０１で受信したライセンス情報を記憶する。
【００２３】
表１はライセンス情報記憶モジュール３０１でライセンス情報を記憶するライセンス情報テーブルの例であり、１つのレコードが１つのライセンス情報に相当する。ライセンス情報記憶モジュール３０１がライセンス情報の追加を受け付けると、ライセンス情報テーブルに順次ライセンス情報が追加される。
【００２４】
【表１】
2019219957.tif 000003
【００２５】
テナント識別子からライセンス適用日時までの各値は、サービスライセンス管理サーバー１５１を介してユーザーから指定される値である。ライセンス種別はそのライセンスが付与されるサービスを示す。ライセンス状態は、ライセンスの状態、例えばサービスの利用可否などを示し、たとえば製品版が対象であればProduct（製品）、試供版が対象であればTrial（試用）、無効であればDisabled（無効）などになる。適用タイミングは、ライセンスが適用される時期を示し、即時適用であればinstant（即時）、適用日時が後の日時であればreservation（予約）などになる。ライセンス適用日時は、適用タイミングが予約の場合に、ライセンスが適用される時期を示す。追加・更新日時はライセンス情報記憶モジュール３０１がライセンス情報の追加もしくは更新を受け付けた日時である。イベントバージョンは、ライセンス情報記憶モジュール３０１がライセンス情報の追加もしくは更新を受け付けるごとに新たに採番され記憶される値である。ライセンス情報は、これらの項目をライセンスごとに対応付けた情報である。
【００２６】
表１では2018年1月1日8時0分にライセンス情報追加モジュール３０１が受信した4つのライセンス情報が記憶されている。その内の1つ目は、テナント識別子 "Tenant001" に対する "MfpManagement" のライセンスであり、ライセンス状態は "Product" である。ここでライセンス状態としては例えば、サービス利用の契約を締結した "Product" 状態や、契約締結前の試用中であることを表す "Trial" などがある。他にもサービス利用の契約前である "NoContract" や、サービス利用料の支払いが滞るなどして一時的にライセンスが無効になった "Disabled" や、解約済を表す "Terminated" などがある。また適用タイミングが「即時適用」を表す "instant" であり、ライセンス適用日時はライセンス情報を受信した2018年1月1日8時0分と同じ値が記憶されている。
【００２７】
4つ目のライセンス情報は、テナント識別子 "Tenant001" に対する "Print" のライセンスであり、ライセンス状態は "Product" である。また適用タイミングは「予約」を表す "reservation" であり、ライセンス適用日時はライセンス情報を受信した日時より先の2018年2月1日8時0分が記憶されている。
【００２８】
また、各々のライセンス情報に付与されているイベントバージョンとは、ライセンス状態変更イベントの発生順を表す値であり、ライセンス情報の追加や更新に応じて順次増加する値が採番される。またライセンス状態変更イベントを受信したサービス提供サーバー１６１、１６２は、ライセンス状態変更イベントの受信順が入れ替わった場合に備え、イベントバージョンを参照し、イベント発生順を把握する。
【００２９】
ステップＳ４０３で呼び出しモジュール３０２は、ライセンス情報記憶モジュール３０１に追加されたライセンス情報をパラメータとして付加して、イベント発行サーバー１５３を呼びだし、フローを終了する。
【００３０】
●イベント発行処理
図４（ｂ）は本実施の形態に係る、イベント発行サーバー１５３におけるイベント発行処理のフローである。本フローは、データ記憶サーバー１５２が記憶するライセンス情報が変更された際に、図４（ａ）のステップＳ４０３でイベント発行サーバー１５３が呼び出されることで開始される。なおライセンス情報の変更とは、ライセンス情報記憶モジュール３０１に新たなライセンス情報が追加された場合や、すでに記憶しているライセンス情報が更新された場合や、その他の変更の場合も含む。
【００３１】
ステップＳ４１１で第１のイベント発行モジュール３０３は、変更されたライセンス情報を、呼び出しモジュール３０２から受信する。
【００３２】
ステップＳ４１２で第１の適用タイミング判断モジュール３０４は、ステップＳ４１１で受信したライセンス情報の適用タイミングが「予約」を表しているか否かを判断する。判断の結果、適用タイミングが予約でない場合はステップＳ４１３に遷移し、予約の場合はＳ４５０に遷移する。例えば表１の１つ目のライセンス情報の場合、適用タイミングが予約でないと判断され、ステップＳ４１３に遷移する。また表１の４つ目のライセンス情報の場合、適用タイミングが予約であると判断され、ステップＳ４５０に遷移する。
【００３３】
ステップＳ４１３で第１のイベント発行モジュール３０３は、ステップＳ４１１で受信したライセンス情報の適用タイミングが予約でない、すなわち即時適用だったため、ライセンス状態変更イベントを発行し、フローを終了する。
【００３４】
ステップＳ４５０で第１のイベント発行モジュール３０３は、ステップＳ４１１で受信したライセンス情報の適用タイミングが予約だったため、ライセンス状態変更イベントを発行せずにフローを終了する。
【００３５】
本実施の形態によれば、追加されたライセンス情報の適用タイミングが予約だった場合にイベント発行を抑止しつつ、即時適用されるライセンス情報についてはライセンス状態変更イベントを発行できる。そのためサービス提供サーバーは、受信するライセンス状態変更イベントが現時点のものであるか将来のものであるかの区別や、将来のものだった場合にイベントを留保するといった処理が不要になる。
【００３６】
●予約イベントの適用
追加されたライセンス情報の適用タイミングが予約だった場合、上述したように、ライセンス情報の追加時点でライセンス状態変更イベントを発行することはない。一方で当該ライセンス情報が適用されたタイミングでは、ライセンス状態変更イベントが発行されるべきである。
【００３７】
図５は、定期実行サーバー１５４のモジュール構成を示す図である。定期実行サーバー１５４は定期実行モジュール３１１、前回実行日時記憶モジュール３１２、第１のライセンス情報取得モジュール３１３を持つ。また定期実行サーバー１５４は第２の適用タイミング判断モジュール３１４、ライセンス状態適用判断モジュール３１５、ライセンス情報更新モジュール３１６を持つ。
【００３８】
定期実行モジュール３１１は定期的に、データ記憶サーバー１５２からライセンス情報を取得する。ライセンス状態適用判断モジュール３１５は、取得したライセンス情報のライセンス適用日時を、処理実行日時（すなわち当該処理を実行している現在の日時）および前回実行日時記憶モジュール３１２で記憶される前回実行日時(前回の実行日時)と比較する。比較の結果、ライセンス情報が適用されたタイミングが前回実行日時から処理実行日時の間であると判断されると、ライセンス情報更新モジュール３１６でデータ記憶サーバー１５２のライセンス情報を更新する。なおデータ記憶サーバー１５２で記憶するライセンス情報が変更されることで、イベント発行サーバー１５３の呼び出しモジュール３０２が動作し、ライセンス状態変更イベントが発行される。
【００３９】
●ライセンス状態の定期適用確認処理
図６（ａ）は本実施の第２の形態に係る、定期実行サーバー１５４におけるライセンス状態の定期適用確認フローである。本フローは、定期実行モジュール３１１が定期的に起動することで開始される。なおここでは定期実行モジュール３１１が２０１８年２月２日の０時に起動されたとして説明を行う。すなわち処理実行日時が２０１８年２月２日の０時である。また定期実行間隔は１日であるとして説明を行うが、定期実行間隔は１日でもよく１時間でもよい。またそれ以外の間隔であってもよい。
【００４０】
ステップＳ６０１で定期実行モジュール３１１は、ライセンス状態の適用確認処理を開始する。ステップＳ６０２で定期実行モジュール３１１は、前回実行日時記憶モジュール３１２から前回実行日時を取得する。また現在日時を取得して処理実行日時とする。表２は前回実行日時記憶モジュール３１２で記憶する、定期実行モジュール３１１の前回実行日時の例である。
【００４１】
【表２】
2019219957.tif 000004
【００４２】
表２では、定期実行モジュール３１１の前回実行日時が２０１８年２月１日の０時に起動されたことを表している。
【００４３】
ステップＳ６０３で第１のライセンス情報取得モジュール３１３は、データ記憶サーバー１５２のライセンス情報記憶モジュール３０１からライセンス情報を取得する。
【００４４】
ステップＳ６０４で第２の適用タイミング判断モジュール３１４は、ステップＳ６０３で取得したライセンス情報の適用タイミングが予約か判断する。適用タイミングが予約だった場合はステップＳ６０５に遷移し、予約でなかった場合はステップＳ６５０に遷移する。
【００４５】
ステップＳ６０５でライセンス状態適用判断モジュール３１５は、ステップＳ６０３で取得したライセンス情報のライセンス適用日時が、ステップＳ６０２で取得した前回実行日時と処理実行日時の間であるか判断する。判断の結果が前回実行日時と処理実行日時の間だった場合、定期実行モジュール３１１の前回実行以降に当該ライセンス情報が適用されたと考え、ステップＳ６０６に遷移する。一方で判断の結果が前回実行日時と処理実行日時の間でなかった場合、ステップＳ６５０に遷移する。ステップＳ６０５は、適用タイミングが予約であり（すなわち即時でなく）、かつ適用タイミングに達したライセンス情報を特定しており、これを特定処理ということもある。
【００４６】
なお上述する方法では、ステップＳ６０３でライセンス情報をした後に、ステップＳ６０４およびステップＳ６０５でライセンス情報の適用タイミングおよびライセンス適用日時を確認している。しかし上述する方法に限定されるものではなく、たとえばステップＳ６０３であらかじめ、適用タイミングおよびライセンス適用日時の条件を満たすライセンス情報だけ取得する方法であってもよい。
【００４７】
ステップＳ６０６でライセンス情報更新モジュール３１６は、データ記憶サーバー１５２のライセンス情報記憶モジュール３０１にライセンス情報の更新を指示する。更新対象のライセンス情報は、ステップＳ６０３で取得したライセンス情報である。それを特定するために、更新指示には、たとえばステップＳ６０３で取得したライセンス情報そのものを添付してよい。
【００４８】
ステップＳ６０７で定期実行モジュール３１１は、処理実行日時を新たな前回実行日時として、前回実行日時記憶モジュール３１２に記憶させ、フローを終了する。
【００４９】
ステップＳ６５０で第１のイベント発行モジュール３０３はライセンス情報を更新せずステップＳ６０７に遷移する。
【００５０】
●ライセンス情報の更新処理
図６（ｂ）は本実施の第２の形態に係る、データ記憶サーバー１５２におけるライセンス情報の更新フローである。本フローは、ライセンス情報記憶モジュール３０１が例えば図６（ａ）のステップＳ６０６などで発行されたライセンス更新指示を受信することで開始される。
【００５１】
ステップＳ６７１でライセンス情報記憶モジュール３０１は、ライセンス情報の更新指示を受け付ける。
【００５２】
ステップＳ６７２でライセンス情報記憶モジュール３０１は、ステップＳ６７１で受信したライセンス情報を更新する。具体的には追加・更新日時をライセンス情報更新の受け付け日時に更新するとともに、イベントバージョンを新たに採番されたイベントバージョンで更新する。なお更新対象のライセンス情報は、たとえばテナント識別子とライセンス情報とにより特定してもよい。或いは、イベントバージョンにより特定することもできる。また更新対象のライセンス情報が更新指示に添付されているならば、その全項目が一致するライセンス情報を更新対象として特定してもよい。
【００５３】
表３はステップＳ６７２で更新されたライセンス情報テーブルの例である。
【００５４】
【表３】
2019219957.tif 000005
【００５５】
表３の上から４つ目のライセンス情報は、適用タイミングが「予約」を表す "reservation" である。またライセンス適用日時は２０１８年２月１日８時であり、定期実行モジュール３１１の前回実行日時である２０１８年２月１日０時と、処理実行日時である２０１８年２月２日０時の間である。そのためステップＳ６０６で追加・更新日時が、処理実行日時である２０１８年２月２日０時に更新されている。またイベントバージョンの値も値が増加し、１００４となっている。
【００５６】
ステップＳ６７３で呼び出しモジュール３０２は、ライセンス情報記憶モジュール３０１で更新されたライセンス情報を付加して、イベント発行サーバー１５３を呼び出してフローを終了する。なおイベント発行サーバー１５３では、更新されたライセンス情報を呼び出しモジュール３０２から受信することで、図４（ｂ）に示したイベント発行フローを実施する。
【００５７】
本実施形態によれば、適用タイミングが予約であるライセンス情報が追加された時点で抑止されたライセンス状態変更イベントを、当該ライセンス情報が適用されたタイミングで発行できるようになる。その結果サービス提供サーバーは、即時適用だけでなく予約のライセンス情報についても、ライセンス状態が変更されることで、ライセンス状態変更イベントを受信できるようになる。
【００５８】
［実施形態２］
次に、本発明を実施するための第２の実施形態について図面を用いて説明する。なお第１の実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。サービス提供サーバーの関心事は、サービスを利用しようとするユーザーが保有するライセンスが、有効であるか否かである。一方でライセンス情報のライセンス状態は、ビジネス上の要求などにより、ライセンスが有効であるか否か以上に細分化されることがある。例えば有効なライセンス状態としては、サービス利用の契約を締結した "Product" 状態や、契約締結前の試用中であることを表す "Trial" などがある。また無効なライセンス状態としては、サービス利用の契約前である "NoContract" や、サービス利用料の支払いが滞るなどして一時的にライセンスが無効になった "Disabled" や、解約済を表す "Terminated" などがある。ライセンスが有効なライセンス状態同士や、ライセンスが無効なライセンス状態同士での状態遷移のように、サービス提供サーバーの振舞いに影響のない状態遷移については、ライセンス状態変更イベントを発行しないことが好ましい。本実施形態は、前述の課題を鑑みて為されたものである。
【００５９】
●第２実施形態におけるイベント発行サーバー及び定期実行サーバー
図７（ａ）は本実施形態に係る、イベント発行サーバー１５３のモジュール構成を示す図である。イベント発行サーバー１５３はライセンス情報追加時のイベント発行用に、第３のライセンス情報取得モジュール３３１、第２の状態遷移判断モジュール３３２、第２のイベント発行モジュール３３３を持つ。
【００６０】
図７（ｂ）は本実施形態に係る、定期実行サーバー１５４のモジュール構成を示す図である。定期実行サーバー１５４はライセンス状態の定期適時のイベント発行用に、第２のライセンス情報取得モジュール３２１、第１の状態遷移判断モジュール３２２を持つ。
【００６１】
●ライセンス状態の定期適用確認処理
図８は本実施形態に係る、定期実行サーバー１５４におけるライセンス状態の定期適用確認フローである。本フローは、定期実行モジュール３１１が定期的に起動することで開始される。
【００６２】
なお本フローのステップＳ６０５までは第１実施形態の図６（ａ）と共通のため、ここではステップＳ６０５から遷移するステップＳ８０１以降について説明する。ステップＳ６０５では、予約されたライセンス適用日時が前回実行日時と現在日時(処理実行日時)との間であればステップＳ８０１に分岐する。
【００６３】
ステップＳ８０１で第２のライセンス情報取得モジュール３２１は、ステップＳ６０３で取得したライセンス情報の１つ前のライセンス情報を取得する。「１つ前」とは、ステップＳ６０３で取得したライセンス情報と同じテナント識別子とライセンス種別を持つライセンス情報のうち、ステップＳ６０３で取得したライセンス情報の次に若いライセンス情報であって良い。若いとは、たとえば追加変更日時あるいはイベントバージョンが若いものであってよい。例えばステップＳ６０３で取得したライセンス情報が、表１の４つ目のライセンス情報だったとする。この場合、テナント識別子が "Tenant001" かつライセンス種別が "Print" のライセンス情報の内、ライセンス適用日時が２０１８年２月１日の８時以前かつ最新のライセンス情報を取得する。結果的にステップＳ８０１では、表１の３つ目のライセンスが取得される。
【００６４】
ステップＳ８０２で第１の状態遷移判断モジュール３２２は、ステップＳ６０３で取得したライセンス情報とステップＳ８０１で取得したライセンス情報との間のライセンス状態の状態遷移が、イベント発行対象であるか判断する。判断の結果イベント発行対象であると判断された場合はステップＳ８０３に遷移し、対象でないと判断された場合はステップＳ６５０に遷移する。なお判断に際しては、表４に例示するような、ライセンス状態分類テーブルが参照される。
【００６５】
【表４】
2019219957.tif 000006
【００６６】
ここで表４のテーブルを参照し、ステップＳ６０３で取得したライセンス情報の状態と、ステップＳ８０１で取得したライセンス情報の状態とが異なるライセンス状態群に属する場合にイベント発行対象と判定する。一方、同一のライセンス状態群に属するならばイベント発行対象外と判定する。例えば、ステップステップＳ６０３で取得したライセンス情報とステップＳ８０１で取得したライセンス情報のライセンス状態がそれぞれ、"Trial" および "Product" だったとする。この場合は "Trial" も "Product" も共に有効ライセンス状態群に含まれるため、ライセンス状態は有効なものから有効なものへの状態遷移となる。よってこの場合はライセンス発行対象でないと判断され、ステップＳ６５０に遷移する。
【００６７】
ステップＳ８０３でライセンス情報更新モジュール３１６は、ライセンス情報記憶モジュール３０１に、ステップＳ６０３で取得したライセンス情報の更新を指示する。なおライセンス情報記憶モジュール３０１では、ライセンス情報の更新指示を受信することで、ライセンス情報記憶モジュールで記憶するライセンス情報の更新フローを実施する。ライセンス情報更新フローの詳細は第１実施形態のステップＳ６０６と共通のため、ここでは説明を省略する。
【００６８】
ステップＳ８０４で定期実行モジュール３１１は、処理実行日時を新たな前回実行日時として、前回実行日時記憶モジュール３１２に記憶させ、フローを終了する。
【００６９】
なお、ライセンス更新は図６（ｂ）の手順で行われ、そこで呼び出されたイベント発行サーバー１５３によるイベントの発行は後述する図９の手順で行われてよい。
【００７０】
●イベント発行処理
図９は本実施形態に係る、イベント発行サーバー１５３におけるイベント発行フローである。本フローは、データ記憶サーバー１５２が記憶するライセンス情報が変更された際に、イベント発行サーバー１５３が呼び出されることで開始される。
【００７１】
なお本フローのステップＳ４１２までは第１の実施形態の図４と共通である。そこでここでは、ステップＳ４１２でライセンス情報の適用タイミングが「予約」でないと判断した際に遷移する、ステップＳ１００１以降について説明する。
【００７２】
ステップＳ１００１で第３のライセンス情報取得モジュール３３１は、ステップＳ４１１で受信したライセンス情報の１つ前のライセンス情報を取得する。例えばステップＳ４１１で受信したライセンス情報が、表１の２つ目のライセンス情報だったとする。この場合、テナント識別子が "Tenant001" かつライセンス種別が "MfpManagement" のライセンス情報の内、ライセンス適用日時が２０１８年３月１日の８時以前かつ最新のライセンス情報を取得する。結果的にステップＳ１００１では、表１の１つ目のライセンスが取得される。
【００７３】
ステップＳ１００２で第２の状態遷移判断モジュール３３２は、ステップＳ４１１で受信したライセンス情報とステップＳ１００１で取得したライセンス情報との間のライセンス状態の状態遷移が、イベント発行対象であるか判断する。判断の結果イベント発行対象であると判断された場合はステップＳ１００３に遷移し、対象でないと判断された場合はステップＳ４５０に遷移する。なお判断に際しては、表４で前述したような、ライセンス状態分類テーブルが参照される。
【００７４】
ここで、ステップステップＳ１００２で記憶したライセンス情報とステップＳ１００１で取得したライセンス情報のライセンス状態がそれぞれ、"Product" および "Disabled" だったとする。この場合 "Product" は有効ライセンス状態群に含まれるが、"Disabled" は無効ライセンス状態群に含まれるため、ライセンス状態は有効なものから無効なものへの状態遷移となる。よってこの場合はイベント発行対象であると判断され、ステップＳ１００３に遷移する。
【００７５】
ステップＳ１００３で第２のイベント発行モジュール３３３は、ライセンス状態変更イベントを発行し、フローを終了する。
【００７６】
本実施形態によれば、ライセンス情報のライセンス状態が有効な状態と無効な状態との間で状態遷移した場合にライセンス状態変更イベントが発行される。またライセンス情報のライセンス状態が有効な状態同士や無効な状態同士で状態遷移した場合にはライセンス状態変更イベント発行が抑止される。こうすることによってサービス提供サーバーは、ライセンス状態が有効なものと無効なものの間で切り替わった場合にのみ、ライセンス状態変更イベントを受信できるようになる。
【００７７】
なお、上記実施形態では、ライセンスの範囲の変更はサービスライセンス管理サーバー１５１により管理され、その範囲に応じたライセンスの有効／無効がライセンス情報に反映されてサービス提供サーバーにイベント通知されるものとした。しかし、たとえばライセンスの有効期限や提供機能等のライセンス範囲をライセンス情報に含め、サービス提供サーバーがライセンス範囲を参照してライセンスの有効又は無効を判定してもよい。その場合には、ライセンスの有効／無効のみならず、ライセンスの範囲（機能的範囲、ライセンシーの範囲および有効期間の範囲など）が変更される場合には、そのライセンス情報は更新され、関係するサービス提供サーバーに通知されるべきである。そこで、図８のステップＳ８０２においては、表4のように単に有効／無効の区別ではなく、ライセンスの範囲の変更の有無に基づいてイベント発行対象か否かを決めてもよい。この場合、ライセンスの範囲の変更があればイベント発行対象と決定する。例えば、製品版のライセンスと試用版のライセンスとが同じ範囲のライセンスであれば表4を用いてよい。しかし、例えば試用版には限定的な有効期間が設定されている場合などには、試用版から製品版のライセンスに切り替えられた場合には、異なるライセンス状態としてイベント発行対象としてよい。あるいは、サービス提供サーバーはライセンスの範囲が変更された場合にのみ、ライセンス状態変更イベントを受信できるようになる。この場合ステップＳ１００２の判定にも、ステップＳ８０２と同一の判定基準を用いてよい。
【００７８】
このように構成することで、ライセンス範囲の管理をサービス提供サーバーに行わるシステムについてもPub/Subメッセージングモデルを適用することができる。
【００７９】
また実施形態のシステムは複数のサーバーで構成されているが、サービス提供システムを除くサーバーをサービスライセンス管理サーバーにまとめてもよい。そしてサーバーの構成に関わらず、サービス提供システムを除くサーバーまたはサーバー群を例えばライセンス管理システムと呼んでもよい。これにサービス提供サーバーを含めたシステムは例えばサービス提供システムと呼んでもよい。
【００８０】
上記実施形態ではライセンスの追加および変更について説明したが、ライセンスの停止および削除についても同様にライセンス情報を更新し、その更新によりライセンス情報が変更されていればその変更を変更通知イベントによりサービス提供サーバーに通知してよい。
【００８１】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８２】
３０１  ライセンス情報記憶モジュール、３０２  呼び出しモジュール、３０３  第１のイベント発行モジュール、３０４  第１の適用タイミング判断モジュール、３１４  第２の適用タイミング判断モジュール、３１５  ライセンス状態適用判断モジュール、３２２  第１の状態遷移判断モジュール、３３２  第２の状態遷移判断モジュール、３３３  第２のイベント発行モジュール
【図１】
2019219957.tif 000007
【図２】
2019219957.tif 000008
【図３】
2019219957.tif 000009
【図４】
2019219957.tif 000010
【図５】
2019219957.tif 000011
【図６】
2019219957.tif 000012
【図７】
2019219957.tif 000013
【図８】
2019219957.tif 000014
【図９】
2019219957.tif 000015