JP6700815B2 - ライセンス管理システム、クライアント装置、アプリケーションプログラム - Google Patents

ライセンス管理システム、クライアント装置、アプリケーションプログラム Download PDF

Info

Publication number
JP6700815B2
JP6700815B2 JP2016016365A JP2016016365A JP6700815B2 JP 6700815 B2 JP6700815 B2 JP 6700815B2 JP 2016016365 A JP2016016365 A JP 2016016365A JP 2016016365 A JP2016016365 A JP 2016016365A JP 6700815 B2 JP6700815 B2 JP 6700815B2
Authority
JP
Japan
Prior art keywords
license
application
management unit
unit
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016016365A
Other languages
English (en)
Other versions
JP2017134772A (ja
Inventor
皆川 智徳
智徳 皆川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016016365A priority Critical patent/JP6700815B2/ja
Priority to US15/416,554 priority patent/US10452818B2/en
Priority to EP17153485.2A priority patent/EP3200111B1/en
Publication of JP2017134772A publication Critical patent/JP2017134772A/ja
Application granted granted Critical
Publication of JP6700815B2 publication Critical patent/JP6700815B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ライセンス管理システムに関する。
クライアントに有償アプリケーションの使用許諾をする方法として、フローティング方式がある。フローティング方式とは、予め一定数のライセンス(同時利用可能な数のライセンス)をプールしているローカルライセンスサーバがクライアントに一時的にライセンスを貸し出すことにより、クライアントが一時的にアプリケーションを使用可能にする方式である。フローティング方式で管理されるフローティングライセンスは、各クライアントで該当するアプリケーションの使用が終わればローカルライセンスサーバに返却されるため、他のクライアントが当該返却されたライセンスを取得することにより、同じアプリケーションを別のクライアント上で使用することができる。このようなフローティングライセンスを用いて、各クライアントがアプリケーションを使用する時間帯をずらせば、プールしているライセンス数以上の複数のクライアント上で当該アプリケーションを利用することが可能となる。フローティングライセンスは、作業中は途切れずに保持し、作業後は速やかに返却することが望ましい。そのため、アプリケーション起動時にライセンスを取得し、終了時(プロセス終了時)に返却するという使い方が一般的である。
特許文献1では、クライアントアプリケーションの起動要求があると、クライアント側の使用権管理部がライセンスサーバと通信する。ライセンスサーバは該当ソフトウェアの使用者数がライセンス数に満たなければ使用を許可し、使用権管理部は使用が許可されたらアプリケーションを実行する。なお、特許文献1では、クライアント内に複数のクライアントアプリケーションが存在する場合、使用権管理部は、各アプリケーションをアプリケーションIDで区別し、アプリケーションIDごとに設けられた利用カウンタを用いてライセンス数に達しているかを判断している。
特許文献1では、複数のアプリケーションが存在する場合は、アプリケーションごとに異なるライセンスで管理している。したがって、ライセンスの利用状況(すなわち、各アプリケーションを利用しているクライアントの数がライセンス数上限に達しているか否か)によって、使えるアプリケーションと使えないアプリケーションがあり得る。
特開平07−200492号公報
一方、複数のアプリケーションが互いに連携するようなスイート製品では、アプリケーション群すべてを利用可能にする必要がある。しかしながら、特許文献1の技術は、複数のアプリケーションをアプリケーションIDごとに個別に管理して個別にライセンスを取得するので、利用状況によっては、アプリケーション群すべてを使用できない場合があり、複数のアプリケーションが互いに連携するような製品には適さない。
そこで、本出願人は、各アプリケーションとは独立したプロセスで実行される使用権管理部をクライアント内に設け、使用権管理部が1つのライセンスをライセンスサーバから取得することで、関連する複数のアプリケーションを利用できるようにすることを考えている。
1つのライセンスで複数のアプリケーションを管理すること、1つの使用権管理部(ライセンス管理アプリケーション)が取得したライセンスを管理すること、使用権管理部が複数のアプリケーションのプロセスとは独立したプロセスで動作すること、が望ましいのは、以下の理由(1)〜(3)による。
(1)スイート製品である複数のアプリケーションそれぞれに対して異なるライセンスで管理する構成よりも、1つのライセンスで複数のアプリケーションを管理する構成の方が、簡易な構成にしやすい。
(2)使用権管理部を設けずに、各アプリケーションがそれぞれライセンスの取得/返却を行うようにすると、クライアント・サーバ間のトラフィックが増大してしまうため望ましくない。また、使用権管理部を設けずに、最初に起動したアプリケーションがサーバからライセンスを取得し、他のアプリケーションは該最初に起動したアプリケーションと連携することで、使用権管理を行う方法も考えられる。しかし、この場合、他のアプリケーションと該最初に起動したアプリケーションとの間でプロセス間通信が発生してパフォーマンスに悪影響があると共に、該最初に起動したアプリケーションを終了した後のライセンスの移管処理等が複雑になる。よって、ライセンスの取得/返却は、使用権管理部が一元管理することが現実的である。
(3)フローティングライセンスは、アプリケーションが起動している間だけ消費されるという性質上、ファイルではなく、メモリ上で管理されるケースが多い。これは、頻繁に発生する更新処理を短時間で行えること、アプリケーションがクラッシュした時に自動的に失効できること、等の理由による。したがって、使用権管理部は、各アプリケーションの一部として動作するのではなく、各アプリケーションのプロセスとは独立したプロセスで動作する方が望ましい。
以上の理由により、独立したプロセスで実行される使用権管理部がライセンスの取得/返却を行い、各アプリケーションは起動時/終了時に使用権管理部と連携することが考えられる。
しかし、使用権管理部が起動していないとき(すなわちライセンス未取得時)にいずれかのアプリケーションを起動する場合、該アプリケーションは、まず、別プロセスである使用権管理部を起動させ、その後、該使用権管理部を介してライセンス取得を行うことになる。この場合、アプリケーション自身がライセンスサーバと直接通信してライセンスを取得する場合と比べて、使用権管理部の起動や、該アプリケーションと使用権管理部との間のプロセス間通信などが発生するため、起動時のレスポンスが悪くなってしまう。特に、起動と終了が頻繁に発生するアプリケーション(例えば、ファイルがアイコンにドラッグ&ドロップされることに応じて起動し、所定の処理を実行後に自動終了するガジェットアプリケーション)では、パフォーマンスの悪影響は顕著となり、ユーザの利便性を低下させる。
上記課題を解決するために、本発明のライセンス管理システムは、ライセンスサーバと、複数のアプリケーション、および前記複数のアプリケーションを起動するためのライセンスを前記ライセンスサーバから取得するライセンス管理部を有するクライアント装置と、を含むライセンス管理システムであって、前記複数のアプリケーションのうちの一つのアプリケーションが、前記アプリケーションを起動するための第一の起動要求を受け付けた場合に、前記ライセンス管理部が前記ライセンスを取得済みか判断する第1の判断手段と、前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みではないと判断された場合、前記ライセンスサーバから前記ライセンスを取得する第1のライセンス要求手段と、前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みであると判断された場合、前記アプリケーションをユーザが使用可能な状態にする処理実行手段と、前記処理実行手段によって前記アプリケーションが使用可能な状態に変更された後、前記ライセンス管理部が起動中でなければ、前記ライセンス管理部を起動させる起動手段と、を有することを特徴とする。
本システムでは、アプリケーションを起動する際に、ライセンス管理部がライセンスを取得済みでなければ、該アプリケーション自身がライセンスサーバからライセンスを取得し、該アプリケーションを使用可能状態にする。このように構成することにより、アプリケーションがライセンス管理部を起動して、ライセンス管理部が起動後にライセンスサーバから取得したライセンスをアプリケーションに返し、その後アプリケーションが起動する方法と比べて、使用可能になるまでの時間を短縮できる。すなわち、最初のアプリケーションを起動する際の時間を高速化することができ、ユーザの利便性が向上する。
システム構成例 クライアントおよびサーバにおけるハードウェア構成例 クライアントおよびサーバにおけるソフトウェア構成例 アプリケーション起動時の処理フロー アプリケーション終了時の処理フロー アプリケーション起動時のタイムチャート例 アプリケーション終了時のタイムチャート例 アプリケーションクラッシュ時のタイムチャート例 実施例2のアプリケーション終了時のタイムチャート例
(実施例1)
図1は、本発明の一実施形態におけるフローティングライセンス管理システムの構成を示す図である。本実施形態は、ライセンスサーバと複数のクライアント(クライアント装置)がネットワークを介して通信可能なシステムである。
LAN(Local Area Network)100は、クライアント110及び111と、ライセンスサーバ120とを通信可能とするネットワークである。なお、このネットワークは、LANに限るものではなく、WAN(Wide Area Network)であっても構わない。
クライアント110(及び111)には、アプリケーション300がインストールされている。アプリケーション300は、ライセンスを用いて使用許諾を受けることによって、当該アプリケーションの機能の一部または全体にかかっている使用制限が解除されて利用可能となる。
ライセンスサーバ120は、クライアント110(及び111)内で動作するアプリケーション300に対して、フローティングライセンスの発行を行うライセンスサーバであり、予め1つ以上のライセンスを保有しているものとする。
なお、フローティングライセンス(以下、単にライセンス)とは、ライセンスサーバ120が、ライセンスを要求するクライアントに対して一時的に貸与するものである。各クライアントでは、アプリケーション300を利用する際に、ライセンスサーバ120からライセンスを借りることで、当該アプリケーション300を利用することができる。当該アプリケーションの利用が終われば、前記ライセンスをライセンスサーバに返却することで、使用する時間帯をずらせば、他のクライアントでも、同じライセンスで同じアプリケーションの利用が可能となる。なお、ラインセンスサーバ120が発行するライセンスとは、ファイル形式であっても良いし、バイナリデータや使用許諾フラグのようなものであっても良い。どのような方法であっても、ライセンスサーバとクライアントとの間で、使用許諾をセキュアに取り扱えるものであれば構わない。以後、媒体や手段に関わらず、クライアントがライセンスサーバから使用許諾を得ることをライセンス取得、逆に使用許諾を返却することをライセンス返却と呼ぶ。
本実施形態では、クライアント110にインストールされたアプリケーション300が、ライセンスサーバ120から取得したフローティングライセンスによって動作する例を示す。
<ハードウェア構成例>
図2は、図1に示した各クライアント110〜111、及びライセンスサーバ120における、ハードウェア構成例を示す図である。図2において、キーボードやポインティングデバイスなどのユーザ操作入力を受信する入力デバイス205が設けられている。さらに、ユーザに視覚的な出力情報フィードバックを与える表示部(ディスプレイ)202を備える。さらに、後述する各処理をコンピュータ(CPU201)に実行させるための各種プログラムや実行情報を保管する記憶デバイスRAM203,ROM204,HDD(ハードディスクドライブ)やFDD(フロッピー(登録商標)ディスクドライブ)などの外部メモリ206が設けられる。I/O207は、外部機器との通信を行うためのインターフェースデバイスである。クライアント110とライセンスサーバ120は、インターフェースデバイスI/O207を介して互いに通信を行う。
なお、本実施例で説明される処理は、ROM204、または外部メモリ206に保存されたプログラムをRAM203にロードし、CPU201で実行することによって実現される。
<ソフトウェア構成例>
図3は、クライアント110(または111)と、ライセンスサーバ120のソフトウェア構成の一例を示す図である。
クライアント110のCPUは、アプリケーション(アプリケーションプログラム)300を実行することにより、入力部301、管理部302、処理実行部303、ライセンス要求送信部304、ライセンス有無確認部305、ライセンス管理部状態確認部306、アプリケーション状態確認部307、として機能する。
入力部301は、ユーザからの操作を受け付け、入力された要求を管理部302に伝える。入力部301で当該アプリケーション300の起動要求を受け付けた場合、管理部302はアプリケーション300を利用するためのライセンスが必要になったと判断して、ライセンス有無確認部305に命じて、該クライアント110のライセンス管理部320がライセンスを取得済みかどうか(すなわち、クライアント110内にライセンスが有るか無いか)を確認する。ライセンス取得済みかどうかの判断は、後述するように「ライセンスフラグ」の状態を確認することにより行われる。ライセンス取得済であると判断した場合は、アプリケーション300を実行可能状態(ユーザが該アプリケーションを使用可能な状態)にし、ライセンス未取得の場合は、ライセンス要求送信部304にライセンスの取得を命ずる。
ライセンス要求送信部304は、ライセンスサーバ120に直接接続して、ライセンスの取得要求を行う。このとき、クライアントを一意に識別することが可能なクライアント識別子を合わせて送る。クライアント識別子には、Macアドレスやハードウェアパーツのシリアル番号、あるいはそれらの組合せで作られた計算値などが利用可能である。ライセンスサーバ120の詳細は後述するが、通常は利用可能なライセンスが残っていればライセンス取得は成功する。ここでは、有効期間T2(例えば10分)のライセンスが得られるものとする。アプリケーション300が取得したライセンスは、アプリケーション300が使用するメモリ空間に格納される。ライセンス要求送信部304は、ライセンス取得の成否と、成功の場合は有効期限とを、管理部302に伝える。管理部302は、ライセンス取得に成功した場合は、アプリケーション300を実行可能状態(ユーザがアプリケーションを使用可能な状態)にするべく、処理実行部303に命ずる。処理実行部303は、アプリケーションを実行可能状態にして、入力部301を介してユーザからの作業指示を受け付け可能にする。管理部302は、入力部301から指示された機能の実行や操作画面での処理(ドキュメント編集や印刷等)の要求を受けると、同様に処理実行部303に、その要求内容の実行を命令する。なお、ライセンス要求送信部304でライセンス取得に失敗した場合、管理部302は、アプリケーションの起動要求は実行しないように制御する。この場合、操作しているユーザに対してメッセージ等で通知してもよい。
ここで、管理部302は、アプリケーションの起動に成功したら、自身のアプリケーション300が起動中であることを、関連する他のアプリケーション(例えばオフィススイート製品を構成する他のアプリケーション)から識別可能となるようにする。例えば、プロセス間通信の共有資源に、当該アプリケーションが起動中を示すフラグを保存する、などの方法が考えられる。フラグの保存方法を限定するものではないが、以後は便宜上、起動中のアプリケーションの有無を、フラグのOn/Offで表現する。すなわち、自身のアプリケーションが起動中である状態を「アプリケーションフラグがOn」とし、非起動中である状態を「アプリケーションフラグがOff」とし、他のアプリケーションから識別可能とする。また、アプリケーションフラグは、複数のアプリケーションそれぞれに対して個別に存在するものとする。アプリケーションフラグを確認する処理部は、予め確認対象となるすべてのアプリケーションのフラグの保存位置を知っておき、必要に応じて、それらを区別してチェックすることが可能であるものとする。
管理部302は、アプリケーション300の起動に成功した場合、さらに、ライセンス更新を継続するために、ライセンス管理部状態確認部306に命じ、ライセンス管理部320の起動状態を確認する。ライセンス管理部320の起動状態の判断は、後述するように「ライセンス管理部フラグ」の状態を確認する。「ライセンス管理部フラグ」が起動済であった場合は、これでアプリケーション300でのライセンス取得処理は終了する。確認結果が未起動であった場合は、ライセンス管理部320に対して起動を要求する。
次にアプリケーション300の終了について説明する。入力部301でアプリケーションの終了要求を受けた場合、管理部302は、アプリケーション300を終了する前に、ライセンス返却が必要かどうかの判断を行う。管理部302は、アプリケーション状態確認部307に命じ、アプリケーション300自身以外に起動中の、スイート製品を構成する他のアプリケーションがあるかどうか判断する。起動しているアプリケーションの有無の判断は、前述したように「アプリケーションフラグ」の状態を確認する。
アプリケーション状態確認部307の判断で、起動中の他のアプリケーションが存在した場合、まだ当該スイート製品に対するライセンスは該クライアントに必要となるので、ライセンス返却をせずにアプリケーション300自身を終了させる。この時、自身のアプリケーションが非起動になったことを他のアプリケーションから識別可能となるように、アプリケーション300のアプリケーションフラグをOffにする。アプリケーション状態確認部307の判断で、起動中のアプリケーションが存在しなかった場合、当該クライアントにライセンスは不要となるので、ライセンスをサーバに返却するようにライセンス管理部320に指示してアプリケーション300自身を終了させる。ここで、ライセンスを返却するために、管理部302は、ライセンス管理部320に対して終了要求を行う。また、前述の場合と同様にアプリケーション300のアプリケーションフラグをOffにする。
次に、クライアント110上で実現されるライセンス管理部320の説明を行う。クライアント110のCPUは、ライセンス管理部320を実現するためのプログラムを実行することにより、要求受信部321、管理部322、ライセンス要求送信部323、アプリケーション状態確認部324、として機能する。
アプリケーション300がライセンス管理部320の起動要求を行うと、要求受信部321は起動要求を受け付け、起動要求を管理部322に伝える。管理部322は、ライセンス管理部320を起動させると、ライセンス管理部320が起動中であることを各アプリケーションから識別可能となるようにする。例えば、ライセンス管理部320が起動中であることを示すフラグを保存する方法が考えられる。なお、プロセス間通信の共有資源の機構を利用して起動済を示すフラグを保存してもよいし、ライセンス管理部320への問合せインターフェースを設けてフラグを確認できるようにしてもよく、起動状態の確認方法は限定するものではない。以後は便宜上、いずれの方法であっても、ライセンス管理部320が起動済である状態を「ライセンス管理部フラグがOn」、非起動である状態を「ライセンス管理部フラグがOff」とし、アプリケーション300の管理部302は、その状態を識別可能であるものとする。
ライセンス管理部320の管理部322は、所定時間間隔T1毎(例えば3分毎)に、アプリケーション状態確認部324に命じ、起動しているアプリケーションがあるかどうか確認する。起動しているアプリケーションの有無の判断は、前述したように「アプリケーションフラグ」の状態を確認する。アプリケーション状態確認部324にて、起動中のアプリケーションがあると判断した場合、管理部322は、ライセンスの有効期間を延長するために、ライセンス要求送信部323に対してライセンスの更新を命ずる。アプリケーション状態確認部324が起動中のアプリケーションは無いと判断した場合、管理部322はライセンスの継続は不要と判断し、ライセンス要求送信部323に命じてライセンスの返却を行う。また、続けて管理部322はライセンス管理部320を終了する。
ライセンス要求送信部323は、ライセンス更新命令を受けると、ライセンスサーバ120に接続し、ライセンスの更新を要求する。このとき、クライアントを一意に識別することが可能なクライアント識別子を合わせて送る。ライセンスサーバ120については後述するが、使用許諾中のクライアントからの要求であれば、通常は更新に成功する。ここでは、ライセンス要求送信部323は、有効期間T2時間(例:10分間)の更新ライセンスを取得する。取得したライセンスは、ライセンス管理部320が使用するメモリ空間に格納される。2回目以降は、既存のライセンスは新しいライセンスで上書きされる。この処理を、ライセンスの更新と呼ぶ。ライセンス更新に成功している限り、ライセンスの効力は継続される。
なお、アプリケーション300が最初に取得したライセンスが有効な間は、アプリケーション300とライセンス管理部320で2つのライセンスを重複管理しているように見えるが、これは問題にならない。第一に、後述するように、ライセンスサーバ120は、同一クライアントからのライセンス取得要求に対しては、その更新ライセンスを返信する。格納場所は異なるものの、ライセンス管理部320が保持するライセンスは、アプリケーション300が保持するライセンスの更新ライセンスとなるため、ライセンスを余計に消費することはない。第二に、アプリケーション300が保持するライセンスは、最初のアプリケーション起動の許諾にのみ利用され、それ以外のアプリケーションの使用許諾に利用されることはない。また、アプリケーション300が保持するライセンスは更新されず、一定時間(取得後T2経過)後に失効するため、以後はライセンス管理部320が保持するライセンスのみとなり、重複も解消される。
なお、ライセンス要求送信部323が、ライセンスサーバ120との接続に失敗した場合、または、ライセンスサーバ120からのライセンス取得に失敗した場合、ライセンスの取得や更新は行われない。例えば、クライアントがネットワークから切り離された場合や、ライセンスサーバ120がダウンした場合などに失敗する。
ライセンス要求送信部323は、ライセンス取得の成否と、成功の場合は有効期限を、管理部322に伝える。ここで管理部322は、ライセンス取得に成功した場合は、ライセンスを取得済であることを各アプリケーションから識別可能となるようにする。ライセンスを取得済であることを各アプリケーションから識別可能にする方法は、様々な方法が考えられるが、ここでは方法を限定するものではない。例えば、ライセンス管理部320への問合せインターフェースを設ける、プロセス間通信の共有資源の機構を利用してライセンス取得済を示す、などの方法が考えられる。以後は便宜上、いずれの方法であっても、ライセンス管理部320がライセンスを取得済である状態を「ライセンスフラグがOn」、非取得である状態を「ライセンスフラグがOff」とし、その状態を識別可能であるものとする。
ライセンス要求送信部323でのライセンス取得で失敗が続き、その結果、管理部322でライセンスの有効期限に達したと判断した場合(ライセンスを最後に取得してから時間T2が経過した場合)、取得していたライセンスは権利を失効する。この時、管理部322は、何らかの期限切れ処理を行っても良い。例えば、アプリケーション終了を促す、ユーザに期限切れのメッセージを表示する、定期更新を停止する、等の対応を行うことができる。また、管理部322は何もしないことで、起動中のアプリケーションに限って当該アプリケーションを終了するまで利用可能にするようにしても構わない。なお、ライセンス要求送信部323でのライセンス取得は、何度か失敗したとしても、再取得できればライセンスの効力は維持される。
次に、ライセンス管理部320の終了処理について説明する。要求受信部321が終了要求を受けた場合、管理部322はライセンスを返却してから、ライセンス管理部320自身を終了する。この際、管理部322は、合わせてライセンスフラグをOffにし、さらに、ライセンス管理部フラグをOffにする。
次に、ライセンスサーバ120についての説明を行う。ライセンスサーバ120のCPUは、サーバプログラムを実行することにより、ライセンス要求受信部351、管理部352、ライセンス情報処理部353、ライセンスプール354として機能する。
ライセンスサーバ120は、予め1つ以上のライセンスをライセンスプール354に格納しているものとする。本システムでは、ライセンスプール354に格納済のライセンス数を上限に、各クライアントからの要求に応じてライセンス(フローティングライセンス)の貸与を行う。ライセンス情報処理部353では、少なくともライセンスカウント(残っているライセンス数)と使用許諾先のクライアントとを管理している。前記ライセンスカウントの初期値は、ライセンスサーバで購入したライセンス総数となる。
ライセンス要求受信部351は、アプリケーション300またはライセンス管理部320から、ライセンス取得要求またはライセンス返却要求を受信し、管理部352に伝える。
管理部352は、要求がライセンス取得要求だった場合、ライセンス情報処理部353に対して要求と共に受信したクライアント識別子を送り、クライアント識別子に該当するクライアントに対して既にライセンスを発行(貸与)しているか問い合わせる。既に該クライアントに対して発行している場合はライセンス更新の要求であるので、成功と判断し、ライセンス要求受信部351へ成功ステータスと有効期間T2で更新したライセンスを返信する。このとき、ライセンス情報処理部353は、更新したライセンスの有効期限をクライアント識別子に紐付けて更新する。
一方、ライセンス情報処理部353でのクライアント識別子の確認で、該当するクライアントに発行していなかった場合は、新規のライセンス取得要求と判断される。このときは、ライセンスカウントを確認する。ライセンスカウントは、発行可能なライセンスの残数を表しており、ライセンスカウントが1以上だった場合は、まだ発行可能なライセンスが残っていることを意味する。その場合、管理部352は、ライセンス情報処理部353に、ライセンスカウントを−1するよう命じ、ライセンス要求受信部351へ成功ステータスと有効期間T2で用意されたライセンスを返信する。また、ライセンス情報処理部353では、当該クライアント識別子を記録し、ライセンスの有効期限と共に管理する。一方、ライセンス情報処理部353で確認したライセンスカウントが0だった場合は、これ以上発行可能なライセンスは残っていないことを意味する。その場合、管理部352は、失敗ステータスをライセンス要求受信部351へ返信する。
ライセンス要求受信部351は、クライアント110に、成否のステータスと、成功時にはライセンスを返信する。
以上述べたように、サーバ120では、使用許諾済のクライアントに対しては、期限を更新したライセンスを再発行し(ライセンスカウントは減らない)、使用許諾前のクライアントに対してはライセンスカウントを−1してからライセンスを発行する。前者はライセンス管理部320からのライセンス更新要求に、後者はアプリケーション300からの初起動時のライセンス取得要求に、それぞれ応じた処理となる。
次に、ライセンス要求受信部351がライセンス返却要求を受信した場合について説明する。このとき、管理部352は、ライセンス要求受信部351を介して返却されたライセンスの情報を受け取ると、ライセンス情報処理部353に命じてライセンスカウントを1つ増加し、使用許諾先として管理していたクライアント識別子を削除する。
なお、ライセンス発行中のクライアント110からのライセンス更新要求が途切れ、そのまま有効期限に達するライセンスもある。管理部352では、有効期限に達したライセンスがあるかどうかを定期的に確認し、有効期限に達したライセンスがあった場合、当該ライセンスは失効したと判断し、ライセンス情報処理部353に対してライセンス返却時と同じ処理を命ずる。これにより、最後にライセンスが更新されてから時間T2後にライセンスは自動的に失効し、再び利用可能となる。
以下に、図4と図5のフローチャート、ならびに図6〜図9のタイムチャートの例を用いて、フローティングライセンスの取得、定期更新、返却、失効の一連の流れを説明する。
<アプリケーション起動要求時の各処理部の処理>
まず、ユーザの指示によりアプリケーション起動要求が発生した際の、各処理部の起動やライセンスに関する処理について説明する。図4(A)は、起動要求受付時のアプリケーション300が実行する処理のフロー図である。また、図6は、起動要求受付時のクライアントのアプリケーションとライセンス管理部の動作内容、クライアントにおけるライセンスの取得状況(ライセンスフラグ)、ならびにライセンスサーバ120の動作内容、を時系列に示したタイムチャートである。
図6の縦軸には、クライアント110で協働して動作可能な2つのアプリケーション300(300(1)と300(2)で表わす)、ライセンスの有無(ライセンスフラグのOn/Off)、ライセンス管理部320、ライセンスサーバ120の各要素を示している。横軸は時間経過で、各p点は各事象が発生した時刻を示している。各要素は、太線は有効(アプリケーションが起動中、ライセンスが存在、対応するフラグがOn)であることを示し、細線はその逆に無効であることを示す。線上の丸印はなんらかの処理や、別要素への関与が行われていることを示す。アプリケーションが2つあるのは、複数のアプリケーションが関与する場合の処理を説明するためである。また、各アプリケーションはそれぞれ図3で説明した各処理部を有するものとする。
アプリケーション300(1)の入力部301がユーザからの指示に基づく起動要求を受け付けた場合(p1時点)、S401にて、ライセンス有無確認部305はライセンスフラグがOnかOffかを確認する(p2時点)。
S401で、ライセンスフラグがOffであるとライセンス有無確認部305において判断した場合、ライセンス管理部320がライセンスを取得しておらず、当該起動指示されたアプリケーション300(1)が最初に起動指示されたアプリケーションであることを示している。この場合、S402にて、ライセンス要求送信部304がライセンスサーバ120にアクセスし、ライセンス取得要求を送信する(p3時点)。
S403にて、ライセンス取得に成功したか判定し、Yes(ライセンス取得成功)と判定された場合、S404にて、管理部302はアプリケーション300(1)を実行可能状態(ユーザが該アプリケーションを使用可能な状態)にする。そして、S405にて、アプリケーションフラグをOnにする(p4時点)。
なお、S401にてライセンス有無確認部305においてYes(ライセンスフラグがOn)と判断した場合、ライセンス管理部320がライセンスを取得済みであり、当該起動指示されたアプリケーションは2番目以降に起動指示されたアプリケーションであることを示している。この場合、S404にて、すぐに当該起動指示されたアプリケーションを実行可能状態にする。
S406にて、ライセンス管理部状態確認部306が、ライセンス管理部フラグがOnかOffかを判定(すなわち、ライセンス管理部320が起動済みかどうかを確認)する(p5時点)。S406にてNo(ライセンス管理部320が非起動)と判断した場合、S407にて、管理部302はライセンス管理部320に対して起動要求を行い、アプリケーション300(1)の起動要求処理は完了する(p6時点)。一方、S406にてYes(ライセンス管理部320が起動済)と判断された場合、アプリケーション300(1)の起動要求処理は完了する。以上が、アプリケーション300が起動要求を受けた際の処理となる。
次に、ライセンス管理部320が、S407にてアプリケーションの管理部302から起動要求を受けた際の処理について説明する。図4(B)は、起動要求受付時のライセンス管理部320が実行する処理のフロー図であり、図6のタイムチャートとともに説明を行う。
ライセンス管理部320の要求受信部321は、S407にて発行されたライセンス管理部の起動要求を受けると(p6時点)、ライセンス管理部320の管理部322はライセンス管理部320を起動状態にし、S421にて、ライセンス管理部フラグをOnにする(p7時点)。なお、ライセンス管理部フラグがOnになると、これ以降に起動要求された他のアプリケーション300では、S406の判断によって、S407のライセンス管理部320の起動処理はスキップされる。
次に、S422からS430のループにて、管理部322は、アプリケーション300(1)〜(2)のいずれかが起動している間、ライセンスの定期更新処理を実行する。まずS423にて、管理部322は、所定の時間間隔T1(本実施例では3分)の間ウェイトする。これが定期更新の間隔となる。S424にて、管理部322はアプリケーション状態確認部324に命じて、アプリケーションフラグでOnのものがあるか(すなわち、いずれかのアプリケーションが動作しているかどうか)を確認する(p8時点)。S424にてYesと判断(いずれかのアプリケーションが動作中)の場合、S425にて、ライセンス要求送信部323がライセンスサーバ120に接続し、ライセンス取得要求を送信する(p9時点)。S426にてライセンス取得に成功したか確認し、Yes(取得成功)と判断された場合、S427にて、管理部322はライセンスフラグをOnにする(p10時点)。なお、ライセンスフラグがOnになると、これ以降に起動要求された他のアプリケーション300では、S401の判断によって、すぐにアプリケーションの実行(S404)を行うことができる。
一方、S426にてNo(取得失敗)と判断された場合、ネットワークの切断やライセンスサーバのダウンが考えられる。このような場合は、ライセンスの更新ができないため、ライセンスの有効期限切れの確認が必要となる。S428にて、管理部322は取得済のライセンスが期限切れかどうかを確認し、Yes(期限切れ)と判断された場合は、S429にてライセンスフラグをOffにする。S428にてNo(期限内)と判断された場合は、S430のループ端に進むので、S423に戻ることになる。以上の定期更新処理(S422からS430のループ)を、当該ライセンスにより動作可能な全てのアプリケーションが終了するまで繰り返す。すなわち、S423にて間隔T1のウェイト後、S424にて再びアプリケーションの起動有無を確認し(p11時点)、S425にてライセンス要求を送信する(p12時点)、という処理が繰り返される。
一方、S424にてNo(動作中のアプリケーション無し)と判断された場合、S431にて、管理部322はライセンス管理部320の終了処理を行う。これは、動作中のアプリケーションが存在しなくなり、ライセンスの保持が不要となった場合に該当する。終了処理の詳細については後述する。以上が、ライセンス管理部320が起動要求を受けた際の処理となる。
ここで、アプリケーション300(1)の動作中に、他のアプリケーション300(2)の起動要求が発生した場合について説明する。もし、アプリケーション300(2)のライセンス有無確認部305がS401においてライセンス有無の確認処理を行った時点が、上述したp10時点よりも後であれば、ライセンスフラグがOnになっているため、S404にてすぐにアプリケーション300(2)は実行可能状態になる。この場合、ライセンス管理部などの別アプリケーションの起動待ちや、別アプリケーションとのプロセス間通信が存在しないため、アプリケーション300(2)を高速に起動することが可能となる。なお、ライセンス有無の確認処理(S401)が、p10時点よりも前であれば、ライセンスフラグがOffであるので、アプリケーション300(2)自身がライセンスの取得要求を行って(S402)、アプリケーション300(2)を実行可能状態にする(S404)。この場合、2つのアプリケーションがそれぞれライセンスを取得し、それぞれのメモリ空間にライセンスを保持することになり得るが、前述したように、ライセンスサーバから見れば単一のクライアントに更新ライセンスを送っただけとなり、問題にはならない。各アプリケーション自身が取得したライセンスはいずれ失効し、ライセンス管理部320が取得したライセンスのみによって管理されることとなる。以上のように、それぞれのアプリケーションを確実に起動することができ、且つ、一定時間後にはライセンス管理部320がライセンスを一元管理することになる。
<アプリケーション終了要求時の各処理部の処理>
次に、ユーザの指示によりアプリケーション終了要求が発生した際の、各処理部の処理やライセンスに関する処理について説明する。図5(A)は、終了要求受付時のアプリケーション300が実行する処理のフロー図である。また、図7は、終了要求受付時のクライアントのアプリケーションとライセンス管理部の動作内容、クライアントにおけるライセンスの取得状況(ライセンスフラグ)、ならびにライセンスサーバ120の動作内容、を時系列に示したタイムチャート例である。
アプリケーション300の入力部301がユーザの指示により終了要求を受けると、S411にて、アプリケーション状態確認部307は、他のアプリケーションのアプリケーションフラグでOnのものがあるか(すなわち、他に動作中のアプリケーションがあるか)を確認する。S411にてYes(他に動作中のアプリケーション有り)と判断された場合は、まだライセンスの保持が必要であるので、ライセンスの返却をせずにアプリケーションを終了する。この場合、管理部302は、S413にて当該終了要求されたアプリケーション300のアプリケーションフラグをOffにし、S414にて当該終了要求されたアプリケーション300を終了する。一方、S411にてNo(他に動作中のアプリケーション無し)と判断された場合は、ライセンスの保持が不要となるので、ライセンスの更新処理終了と返却のため、管理部302は、S412にてライセンス管理部320に終了を要求し、その後、S413に進む。
例えば、アプリケーション300(1)、(2)が共に起動している状態で、アプリケーション300(2)に対してユーザの指示により終了要求を受けると(p21時点)、S411にて他のアプリケーションフラグを確認する(p22時点)。この場合、アプリケーション300(1)のアプリケーションフラグがOnであるので、アプリケーション300(2)は、S413にてアプリケーション300(2)のアプリケーションフラグをOffとして、S414にて終了する(p23時点)。複数のアプリケーションが起動していた場合、最後に終了するアプリケーション以外はp21−p23と同様の処理となる。この後、アプリケーション300(1)も終了要求を受けると(p24時点)、S411にて他のアプリケーションフラグを確認する(p25時点)。この場合、他に動作中のアプリケーションが存在しない(他のアプリケーションフラグがOffである)ので、アプリケーション300(1)は、S412にてライセンス管理部320に終了を要求する(p26時点)。そして、S413にてアプリケーション300(1)のアプリケーションフラグをOffとして、S414にて終了する(p27時点)。以上が、アプリケーション300が終了要求を受けた際の処理となる。
次に、ライセンス管理部320が、アプリケーションの管理部302からS412にて終了要求を受けた際の処理について説明する。図5(B)は、終了要求受付時のライセンス管理部320が実行する処理のフロー図であり、図7のタイムチャートとともに説明を行う。
ライセンス管理部320の要求受信部321は、S412にてアプリケーションの管理部302から終了要求を受けると(p26時点)、S441にて、管理部322は、ライセンスフラグをOffにする(p28時点)。続けて、S442にて、ライセンス要求送信部323は、ライセンスサーバ120にライセンス返却要求を送信する(p29時点)。その後、管理部322は、S443にてライセンス管理部フラグをOffにして、S444にてライセンス管理部320を終了する(p30時点)。以上が、ライセンス管理部320が終了要求を受けた際の処理となる。
以上により、すべてのアプリケーションが終了すると、ライセンス管理部が取得していたライセンスもライセンスサーバに返却されて、ライセンス管理部も終了し、各フラグ(アプリケーションフラグ、ライセンスフラグ、ライセンス管理部フラグ)もOffとなる。
なお、前述したS431でライセンス管理部320の終了要求を行う場合も、S441からS444の処理が実行される。
ここまで説明したように、本システムでは、最初のアプリケーション300を起動する際に、該アプリケーション300自身が、ライセンスサーバ120からライセンスを取得し、成功すれば当該アプリケーション300を実行可能状態にする。このように構成することにより、アプリケーションがライセンス管理部を起動し、該ライセンス管理部がライセンスサーバからライセンスを取得してアプリケーションに返し、その後アプリケーションが起動するのと比べ、以下の時間が節約できる。すなわち、ライセンス管理部320の起動時間、ならびに、アプリケーション300のプロセスとライセンス管理部320のプロセスとの間の通信時間、を節約できる。
以上により、最初のアプリケーションを起動する際の時間を高速化することができ、ユーザの利便性が向上する。また、一定時間後にはライセンス管理部320がライセンスを一元管理するので、管理が容易になる。
<アプリケーションクラッシュ時の各処理部の処理>
次に、アプリケーションが実行中にクラッシュしたケースを考える。もし、起動中のアプリケーション300が存在しないにも関わらずライセンスを保持してしまうと、他のユーザのアプリケーション利用機会を減らすことになり好ましくない。そこで、実行中のアプリケーションがクラッシュして存在しなくなった場合は、自動的にライセンスを返却する例を、図8のタイムチャートを用いて説明する。
アプリケーションがクラッシュして、実行中のプロセスがなくなると、アプリケーションフラグがOffとなる(p41時点)。次に、ライセンス管理部320の定期更新処理により、S424にて実行中アプリケーションが存在するかどうかのチェックが実行される(p42時点)。起動中のアプリケーションがないと判断されると(S424でNo)、S431に進む。そして、S441にてライセンスフラグをOffとし(p43時点)、S442にてライセンス返却が行われて(p44時点)、S443でライセンス管理部フラグをOffにしてS444でライセンス管理部320を終了する(p45時点)。
以上のように、本システムでは、アプリケーション300がクラッシュしたような場合でも、ライセンス管理部320による定期更新処理により、最大でもクラッシュから所定期間以内にライセンスの返却処理が行われる。これにより、ライセンスの無駄な消費を抑えることができる。
次に、ライセンス管理部320がクラッシュしたケースを考える。ライセンス管理部320がクラッシュすると、ライセンスフラグもOffになるものとする。また、一定時間が経過してライセンスの有効期限に達すると、実際に取得していたライセンスは失効する。ライセンスが失効しても、起動中のアプリケーションは終了されるまでは利用可能なシステムである場合、起動中のアプリケーションの利用は問題ない。更に、ここで、別のアプリケーションの起動要求が発生した場合を考える。新しいアプリケーション300の起動では、S401にてライセンスフラグはOffと判断されるため、S402にてアプリケーション自身がライセンス取得要求を行う。ライセンス失効前であれば通常はライセンスの取得(ここでは更新)に成功し、失効後であれば成否はライセンスサーバ120のライセンス残数に依存する。ライセンスの取得に成功すれば、更にS406でライセンス管理部320が非起動であることを検知し、S407でライセンス管理部320を起動する。これにより、正常な状態に戻すことができる。
以上のように、本システムでは、ライセンス管理部320がクラッシュしたような場合でも、使用中のアプリケーションは使うことができ、新しいアプリケーションも起動することができるので、ユーザの利便性を損ねることはない。
(実施例2)
アプリケーション終了要求が発生した際の処理について、図7とは異なる別の処理手順を示す。図9は、終了要求受付時の各処理部の動作内容や状態を時系列に示したタイムチャートである。
ユーザからの終了要求を受けると(p51時点)、アプリケーション300(1)はS411にて他のアプリケーションのアプリケーションフラグを確認し、動作中の他のアプリケーションが存在しないかどうか(すなわち、当該終了指示されたアプリケーションが最後のアプリケーションであるかどうか)を判断する(p52時点)。次に、アプリケーション300(1)は、S412でライセンス管理部320に終了を要求する代わりに、ライセンスフラグのOffを要求し(p53時点)、さらに、ライセンスサーバ120へのライセンス返却要求(p54時点)を行う。そして、S413にてアプリケーションフラグをOffにし、S414にて終了する(p55時点)。
このとき、ライセンス管理部320は、定期更新処理によって、S424にてアプリケーションの存在チェックが実行され、起動中のアプリケーションがないと判断される(p56時点)。この後、S441にてライセンスフラグOffと(p57時点)、S442にてライセンス返却(p58時点)が行われるが、いずれもp53、p54で既に実施されているためS441toS442の処理はスキップしてもよい。最後に、S443〜S444にてライセンス管理部フラグをOffにしてライセンス管理部を終了する。
以上のようにすることで、実施例2によれば、アプリケーション300のプロセスとライセンス管理部320との間のプロセス間通信を減らすこともできる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (7)

  1. イセンスサーバと、
    複数のアプリケーション、および前記複数のアプリケーションを起動するためのライセンスを前記ライセンスサーバから取得するライセンス管理部を有するクライアント装置と、
    を含むライセンス管理システムであって、
    前記複数のアプリケーションのうちの一つのアプリケーションが
    前記アプリケーションを起動するための第一の起動要求を受け付けた場合に、前記ライセンス管理部が前記ライセンスを取得済みか判断する第1の判断手段と、
    前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みでないと判断された場合、前記ライセンスサーバから前記ライセンスを取得する第1のライセンス要求手段
    前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みであると判断された場合、前記アプリケーションをユーザが使用可能な状態にする処理実行手段
    前記処理実行手段によって前記アプリケーションが使用可能な状態に変更された後、前記ライセンス管理部が起動中でなければ、前記ライセンス管理部を起動させる起動手段と、
    を有することを特徴とするライセンス管理システム。
  2. 複数のアプリケーション、および前記複数のアプリケーションを起動するためのライセンスをライセンスサーバから取得するライセンス管理部を有するクライアント装置であって、
    前記複数のアプリケーションのうちの一つのアプリケーションが、前記アプリケーションを起動するための第一の起動要求を受け付けた場合に、前記ライセンス管理部が前記ライセンスを取得済みか判断する第1の判断手段と、
    前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みではないと判断された場合、前記ライセンスサーバから前記ライセンスを取得する第1のライセンス要求手段と、
    前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みであると判断された場合、前記アプリケーションをユーザが使用可能な状態にする処理実行手段と、
    前記処理実行手段によって前記アプリケーションが使用可能な状態に変更された後、前記ライセンス管理部が起動中でなければ、前記ライセンス管理部を起動させる起動手段と、
    を有することを特徴とするクライアント装置。
  3. 前記クライアント装置は、
    前記ライセンスを更新する第1のライセンス要求手段をさらに有し、
    前記第2のライセンス要求手段は、前記ライセンスサーバから前記ライセンスを取得した場合にライセンスフラグをOnにし、
    前記第1の判断手段は、前記ライセンスフラグがOnであるかどうかに基づいて、前記ライセンス管理部が前記ライセンスを取得済みかどうか判断する
    ことを特徴とする請求項2に記載のクライアント装置。
  4. 前記アプリケーションは、さらに、
    前記アプリケーションの終了要求を受けた場合に、他に動作中のアプリケーションがあるかどうか判断する第2の判断手段、
    前記第2の判断手段で他に動作中のアプリケーションが無いと判断した場合に、前記ライセンス管理部に対して終了要求を行う終了要求手段、
    前記アプリケーションを終了する第1の終了手段、
    として前記クライアント装置のコンピュータを機能させ、
    前記ライセンス管理部として機能させるためのプログラムは、さらに、
    前記終了要求手段からの終了要求に応じて、前記ライセンスを前記ライセンスサーバに返却するライセンス返却手段、
    前記ライセンス返却手段により前記ライセンスを前記ライセンスサーバに返却した後に、前記ライセンス管理部を終了する第2の終了手段、
    として前記クライアント装置のコンピュータを機能させる、
    ことを特徴とする請求項2に記載のクライアント装置。
  5. 前記処理実行手段は、当該起動要求を受けたアプリケーションをユーザが使用可能な状態にした場合に、当該アプリケーションのアプリケーションフラグをOnにし、
    前記第2の判断手段は、他のアプリケーションのアプリケーションフラグがOnであるかどうかに基づいて、他に動作中のアプリケーションがあるかどうか判断する
    ことを特徴とする請求項4に記載のクライアント装置。
  6. 前記アプリケーションは、さらに、
    前記アプリケーションの終了要求を受けた場合に、他に動作中のアプリケーションがあるかどうか判断する第2の判断手段、
    前記第2の判断手段で他に動作中のアプリケーションが無いと判断した場合に、前記ライセンスフラグをOffにして、前記ライセンスを前記ライセンスサーバに返却するライセンス返却手段、
    前記アプリケーションを終了する第1の終了手段、
    として前記クライアント装置のコンピュータを機能させ、
    前記ライセンス管理部として機能させるためのプログラムは、さらに、
    動作中のアプリケーションがあるかどうか定期的に判断し、動作中のアプリケーションが無いと判断した場合に、前記ライセンス管理部を終了する第3の終了手段、
    として前記クライアント装置のコンピュータを機能させる、
    ことを特徴とする請求項3に記載のクライアント装置。
  7. コンピュータを、
    複数のアプリケーション、および前記複数のアプリケーションを起動するためのライセンスをライセンスサーバから取得するライセンス管理部を有するクライアント装置として機能させるためのプログラムであって、
    前記複数のアプリケーションのうちの一つのアプリケーションが、前記アプリケーションを起動するための第一の起動要求を受け付けた場合に、前記ライセンス管理部が前記ライセンスを取得済みか判断する第1の判断手段と、
    前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みではないと判断された場合、前記ライセンスサーバから前記ライセンスを取得する第1のライセンス要求手段と、
    前記第1の判断手段によって前記ライセンス管理部が前記ライセンスを取得済みであると判断された場合、前記アプリケーションをユーザが使用可能な状態にする処理実行手段と、
    前記処理実行手段によって前記アプリケーションが使用可能な状態に変更された後、前記ライセンス管理部が起動中でなければ、前記ライセンス管理部を起動させる起動手段と、
    を有する
    ことを特徴とするクライアント装置として機能させるためのプログラム。
JP2016016365A 2016-01-29 2016-01-29 ライセンス管理システム、クライアント装置、アプリケーションプログラム Active JP6700815B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016016365A JP6700815B2 (ja) 2016-01-29 2016-01-29 ライセンス管理システム、クライアント装置、アプリケーションプログラム
US15/416,554 US10452818B2 (en) 2016-01-29 2017-01-26 License management system
EP17153485.2A EP3200111B1 (en) 2016-01-29 2017-01-27 License management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016016365A JP6700815B2 (ja) 2016-01-29 2016-01-29 ライセンス管理システム、クライアント装置、アプリケーションプログラム

Publications (2)

Publication Number Publication Date
JP2017134772A JP2017134772A (ja) 2017-08-03
JP6700815B2 true JP6700815B2 (ja) 2020-05-27

Family

ID=57956109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016016365A Active JP6700815B2 (ja) 2016-01-29 2016-01-29 ライセンス管理システム、クライアント装置、アプリケーションプログラム

Country Status (3)

Country Link
US (1) US10452818B2 (ja)
EP (1) EP3200111B1 (ja)
JP (1) JP6700815B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6911566B2 (ja) * 2017-06-21 2021-07-28 株式会社リコー 情報処理装置、制限解除方法及び制限解除プログラム
JP6922602B2 (ja) * 2017-09-25 2021-08-18 株式会社リコー 情報処理システム、情報処理装置及び情報処理方法
JP2019219794A (ja) * 2018-06-18 2019-12-26 富士ゼロックス株式会社 サーバ装置及びライセンス管理システム
JP7115213B2 (ja) * 2018-10-19 2022-08-09 富士フイルムビジネスイノベーション株式会社 情報処理システムおよび認証システム
CN112307436B (zh) * 2019-07-26 2023-12-01 杭州海康威视数字技术股份有限公司 智能设备的许可证管理方法和装置以及智能设备
US20210209198A1 (en) * 2019-12-17 2021-07-08 Jonas Block Apparatus and method for frand licensing and transaction costs for more individual license agreements through smart contracts on the basis of blockchain technology
US20210209197A1 (en) * 2019-12-17 2021-07-08 Jonas Block Apparatus and method for frand licensing and transaction costs for more individual license agreements through smart contracts on the basis of blockchain technology
US20210223942A1 (en) * 2020-01-17 2021-07-22 Apple Inc. Systems and methods for changing representations of applications based on application status

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3032788B2 (ja) 1991-05-08 2000-04-17 ディジタル イクイプメント コーポレイション ライセンス管理システム
JPH07200492A (ja) 1993-12-29 1995-08-04 Csk Corp ネットワーク上のソフトウェア使用権管理システム
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US7343297B2 (en) * 2001-06-15 2008-03-11 Microsoft Corporation System and related methods for managing and enforcing software licenses
US20040039594A1 (en) * 2002-01-09 2004-02-26 Innerpresence Networks, Inc. Systems and methods for dynamically generating licenses in a rights management system
US7483860B2 (en) * 2002-03-08 2009-01-27 Pace Anti-Piracy Method and system for managing software licenses
JP4192950B2 (ja) 2006-01-30 2008-12-10 コニカミノルタビジネステクノロジーズ株式会社 ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、ライセンス管理プログラムおよび記録媒体
JP4865418B2 (ja) 2006-06-23 2012-02-01 キヤノン株式会社 ライセンス管理システム、管理サーバ装置、およびその制御方法、プログラム
JP4954031B2 (ja) * 2007-11-16 2012-06-13 キヤノン株式会社 画像処理装置及び再インストール方法
US20100057703A1 (en) * 2008-08-29 2010-03-04 Brandt Matthew K Systems and Methods for Automating Software Updates/Maintenance
JP5454035B2 (ja) * 2009-09-15 2014-03-26 株式会社リコー 画像処理装置、遠隔管理システム、ライセンス更新方法、およびライセンス更新プログラム
JP5454102B2 (ja) * 2009-11-25 2014-03-26 株式会社リコー ライセンス更新管理装置、ライセンス管理システム、ライセンス更新方法、およびプログラム

Also Published As

Publication number Publication date
US20170220779A1 (en) 2017-08-03
EP3200111B1 (en) 2024-05-08
US10452818B2 (en) 2019-10-22
EP3200111A1 (en) 2017-08-02
JP2017134772A (ja) 2017-08-03

Similar Documents

Publication Publication Date Title
JP6700815B2 (ja) ライセンス管理システム、クライアント装置、アプリケーションプログラム
JP5251002B2 (ja) 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
JP3682777B2 (ja) 画像形成装置および遠隔管理システム
US6772231B2 (en) Structure and process for distributing SCSI LUN semantics across parallel distributed components
US8321530B2 (en) Cloud computing system, server computer, device connection method, and storage medium
CN100426238C (zh) Vex-虚拟扩展框架
US20020162049A1 (en) Method for correcting a program running on computer system
US8275962B2 (en) User roles controlling execution of operations on copy pair volumes
JP2007323218A (ja) バックアップシステム
US20190286812A1 (en) Autonomous secrets renewal and distribution
JP2007286946A (ja) 計算機システム、アクセス制御方法及び管理計算機
JP2011248419A (ja) 業務計算機割当て方法及び装置
JP2006107185A (ja) オフライン作業可能な端末を有する計算機システム
US10474491B2 (en) Method and apparatus for managing cloud server in cloud environment
JP4402634B2 (ja) 情報管理装置、情報管理システム及び情報管理方法
EP3765982A1 (en) Autonomous cross-scope secrets management
US11281550B2 (en) Disaster recovery specific configurations, management, and application
CN100550894C (zh) 对n路共享存储***中快闪副本的高效锁管理
JP5448691B2 (ja) サーバ装置、クライアント装置、サーバ装置の制御方法、クライアント装置の制御方法、サーバ装置の制御プログラム及びクライアント装置の制御プログラム
JP2010113587A (ja) ストレージシステムおよびストレージシステムによるファイルシステムの管理方法
JP2011175391A (ja) 管理コンピュータおよびデプロイ方法
JP2009251756A (ja) クライアント装置、分散ファイルシステム、共有リソース多重化方法およびプログラム
JP2008009622A (ja) 管理サーバ、およびサーバシステム
US8631402B2 (en) Center management apparatus, method, and computer readable storage medium storing program thereof
JP2005352778A (ja) サーバ、クライアント及びそれらの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200324

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200501

R151 Written notification of patent or utility model registration

Ref document number: 6700815

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151