JP2017021538A - 情報処理装置、方法、プログラムおよび記憶媒体 - Google Patents

情報処理装置、方法、プログラムおよび記憶媒体 Download PDF

Info

Publication number
JP2017021538A
JP2017021538A JP2015138116A JP2015138116A JP2017021538A JP 2017021538 A JP2017021538 A JP 2017021538A JP 2015138116 A JP2015138116 A JP 2015138116A JP 2015138116 A JP2015138116 A JP 2015138116A JP 2017021538 A JP2017021538 A JP 2017021538A
Authority
JP
Japan
Prior art keywords
license
software
serial number
information
controlled
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.)
Pending
Application number
JP2015138116A
Other languages
English (en)
Inventor
布施 洋
Hiroshi Fuse
洋 布施
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 JP2015138116A priority Critical patent/JP2017021538A/ja
Priority to EP16175179.7A priority patent/EP3115917B1/en
Priority to SG10201605248VA priority patent/SG10201605248VA/en
Priority to US15/201,262 priority patent/US10169596B2/en
Publication of JP2017021538A publication Critical patent/JP2017021538A/ja
Pending legal-status Critical Current

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/107License processing; Key processing
    • G06F21/1079Return
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

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

Abstract

【課題】 シリアル番号に紐づいた全てのライセンスを返却し、シリアル番号とコンピュータの紐づけを解除しない限り、他のコンピュータでシリアル番号を使用できない。
【解決手段】 保持しているライセンスの状態に応じて、ライセンス認証実行時と同時にライセンス返却を実施し、ライセンス返却を実施して効果のあるライセンスのみを返却する。また、1つのシリアル番号に複数のライセンスが紐づいている場合、複数のライセンスをまとめて返却する。
【選択図】 図8

Description

本発明は、ライセンスに基づきソフトウェアの動作を制御する情報処理装置、方法、プログラムおよび記憶媒体
有償ソフトウェアを使用許諾する方法として、ノードロック方式がある。ノードロック方式の認証フローについて具体的に説明する。まず、ユーザがシリアル番号を入力し、ソフトウェアの識別情報、コンピュータの機器情報を併せてライセンスサーバへ送信する。次にライセンスサーバは、ユーザから送信された情報をライセンス管理用のデータベースと照合することによって、ライセンス認証の可否を判断する。ライセンスサーバによってライセンス認証がされると、前記コンピュータ専用のライセンスが発行される。また、ライセンスサーバは、ライセンス認証に使用した前記複数の情報をライセンス認証情報としてシリアル番号と紐づけ、前記データベース上で管理を行う。この紐づけ管理により、ノードロック方式では、ライセンスサーバで紐づけの管理がされているシリアル番号を他のコンピュータで使用できないようになる。最後に、コンピュータはライセンスサーバが発行したライセンスを取得し、コンピュータ上のライセンス保存用のデータベースに保存する。ソフトウェアはライセンスの有無を判断し、ソフトウェア起動の可否を判断する。
また、ソフトウェアのアンイストール時に未使用となるライセンスを返却する技術が特許文献1にて提案されている。特許文献1には、ソフトウェアをアンインストールする際に、アンインストールするソフトウェアのライセンスが存在するかを検知し、存在すればアンイストールと同時にライセンスを返却するという技術が記載されている。この技術によれば、未使用になるライセンスはアンイストール時に返却されるため、ライセンスサーバによってライセンスに紐づいていた情報(シリアル番号、ソフトウェアの識別情報、コンピュータの機器情報)を解除される。結果、ライセンス認証情報の紐づけが解除されたシリアル番号が他のコンピュータで使用できるようになる。
特開2011−138335
1つのシリアル番号に複数のライセンスが紐づいているライセンスを発行する形態をライセンスシステムに導入した場合、特許文献1に開示されるライセンス返却技術を適用すると問題がある。それは、1つのシリアル番号に複数のライセンスが紐づいている場合、シリアル番号に紐づいた全てのライセンスを返却し、ライセンス情報の紐づけを解除しない限り、他のコンピュータでシリアル番号を使用できない問題である。本願発明の目的は、ライセンス返却を実施することで効果のあるライセンスのみを返却することにより上述した課題を解決することにある。
本発明の一実施形に係る情報処理装置は、発行されたライセンスに基づきソフトウェアの動作を制御する情報処理装置であって、前記ソフトウェアの動作を制御するための第1のライセンスを発行するために入力されたシリアル番号を保持する保持手段と、バージョンが異なる前記ソフトウェアの動作を制御するための第2のライセンスを発行するために必要なシリアル番号の入力を受け付ける受付手段と、前記保持手段により保持された前記第1のライセンスに対応するシリアル番号と前記受付手段により受け付けられたシリアル番号とが異なるか否かを確認する確認手段と、前記確認手段によって異なることが確認された場合、第1のライセンスをライセンスサーバへ返却するとともに、前記受付手段により受け付けられたシリアル番号を基に前記ライセンスサーバが発行した前記第2のライセンスに基づき前記ソフトウェアの制御を行うことを特徴とする。
情報処理装置は、ライセンス返却を実施して効果のあるライセンスのみを返却する。
システムの構成を示す図 クライアント、ライセンスサーバのハードウェア構成を示す図 クライアント、ライセンスサーバのソフトウェア構成を示す図 ライセンス認証ソフトウェアのUI画面を示す図 ライセンス保存部が保有するライセンステーブルを示す図 ライセンス管理部が保有するライセンステーブルを示す図 ソフトウェアのレジストリ情報を示す図 本実施例の処理のフロー図 本実施例の処理のフロー図 本実施例の処理のフロー図 本実施例の処理のフロー図
始めに、本願発明の前提について説明する。本願発明においては、1つのシリアル番号でバージョンの異なるソフトウェア夫々に対応するライセンスを発行することが可能になる。具体的には次に説明する流れでライセンスが発行される。ユーザが有効期限3年のシリアル番号を入力しライセンスを取得しようとした場合、ライセンスサーバは前記シリアル番号が有効期限内であるかを判断する。有効期限内であると判断した場合、シリアル番号の有効期間内にリリースされたソフトウェアは、全て同一のシリアル番号を用いて無償でライセンスを取得できる。つまり、3年以内に複数バージョンのソフトウェアがリリースされた場合、その間にリリースされたソフトウェアのライセンスは全て取得することができる。また、本技術による1つのシリアル番号で取得できるライセンスの範囲は、同一ソフトウェアに限らず、ソフトウェアに付属する追加機能(例えばPlugin)や全く別のソフトウェアも対象となる。また、シリアル番号によって取得できるライセンスのソフトェア及びバージョンは、ライセンスサーバによって管理される。
また、ソフトウェアの識別情報は、ソフトウェアの起動可否の判断やソフトウェアのバージョン管理に利用される。例えば、ソフトウェアの起動可否の判断に関しては、取得したライセンスにソフトウェアと同じ識別情報が定義されていた場合、ソフトウェアの起動を許可する。また、例えば、ソフトウェアのバージョン管理に関しては、「ソフトウェアの大幅な改訂(メジャーバージョンアップ)である場合は識別情報を変更し、小幅な改訂(マイナーバージョンアップ)である場合、識別情報を変更しない。」という形態で識別情報を運用する。この運用では、ライセンスを取得した後にマイナーバージョンアップしたソフトウェアは識別情報が変更されない為、アップグレード前にライセンスサーバから取得したライセンスで新版ソフトウェアを継続使用できる。つまり、旧版ソフトウェアを使用していたユーザは無償で新版ソフトウェアを利用できる。一方でソフトウェアの識別情報を変更した場合、コンピュータのライセンスデータベース内には新版ソフトウェアと同じ識別情報を持つライセンスが存在しない為、ユーザは再びシリアル番号を入力し、ライセンスサーバからライセンスを取得する必要がある。この状態で再びライセンスサーバからライセンスを取得した場合、コンピュータには旧版ソフトウェア、新版ソフトウェアの2つのライセンスが紐づくことになる。
ここで、アップグレード後のソフトウェアは新しいバージョンのライセンスを利用するため、古いバージョンのライセンスは不要となる。つまり、ソフトウェアをアップグレードすると未使用になるライセンスがコンピュータに残る場合がある。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
[システム構成]
図1は、本発明の一実施形態におけるデータ処理システムの構成を示す図である。本実施形態は、後述するクライアントとライセンスサーバとがネットワークを介して通信可能なシステムである。
本実施形態において、110はクライアントであって、ライセンスサーバ120に対してライセンスの要求を指示するユーザの使用するコンピュータである。クライアント110は、ライセンスサーバ120によって、ノードロック方式のライセンスで管理されているものとする。クライアント110は、クライアントにインストールされたソフトウェア300又はソフトウェア拡張機能304が利用するライセンスをライセンスサーバ120から取得し、このソフトウェア300又はソフトウェア拡張機能304の動作を制御する。ライセンスサーバ120は、クライアント110にインストールされたソフトウェア300又はソフトウェア拡張機能304が利用するライセンスを管理(ライセンス管理)する管理装置である。ライセンスは、ソフトウェア300又はソフトウェア拡張機能304の利用に関する特定情報の一つである。また、クライアント110は、ライセンスサーバ120からライセンスを取得することでソフトウェア300又はソフトウェア拡張機能304を利用することができる。
100はクライアント110とライセンスサーバ120が接続されているLAN(Local Area Network)であって、LAN100を介して各コンピュータは情報の相互通信を行っている。なお、本実施形態のシステムが備えるクライアント110とライセンスサーバ120とが、LAN以外の任意のネットワークで接続されるようにしてもよい。
[ハードウェア構成(クライアント、ライセンスサーバ)]
図2は、クライアント110、及びライセンスサーバ120のハードウェアの構成を示す図である。クライアント110及びライセンスサーバ120は、ユーザ操作入力を受信する入力デバイスであるキーボード205とポインティングデバイス206が設けられている。キーボード205は、クライアント及びライセンスサーバ120に対して文字や数字などの情報を入力する装置である。キーボードは、例えば、仮名や英文字などを入力するキーや数字を入力するためのテンキー、各種機能キー、カーソルキー及びその他のキーを備える。キーボードは、ユーザの操作に従って、例えば、サーバに送信されるシリアル番号を入力する。
ポインティングデバイス206は、例えばマウスなどを備える。ユーザが、GUI(Graphical User Interface)などを用いてクライアント110を操作する場合、表示装置上に表示されたボタンやアイコンなどをマウスでクリックすることにより、所定の情報の入力を行うことができる。例えば、クライアント110が、インストールされたソフトウェアを表すアイコンを表示部202上に表示し、ユーザがアイコンをマウスでクリックすることに応じて、CPU201がソフトウェアを起動する。さらに、ユーザに視覚的な出力情報フィードバックを与える表示部202を備える。
表示部202は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、又はプラズマディスプレイを備える画面上に各種情報を表示する。表示部202は、キーボードやマウスの入力結果や、ソフトウェアが提供する画面(例えばユーザインターフェース)等を表示する。
さらに、クライアント110及びライセンスサーバ120は動作を制御するための手段であるCPU201、RAM203、ROM204、HDD207を備える。本実施形態に特有の動作として、CPU201は、クライアント110上では図3に示すソフトウェア300、ライセンス認証ソフトウェア301、ライセンス管理モジュール302、ソフトウェア拡張機能304の機能を実現する。また、ライセンスサーバ120上では図3に示すライセンス管理ソフトウェア310の機能を実現する。CPU201は、クライアント110及びライセンスサーバ120にインストールによりメモリに保存された各ソフトウェアを実行し、所定のプログラムに従って、各種の演算、情報処理、クライアント110及びライセンスサーバ120全体の制御処理を行う。
RAM203、ROM204、HDD207は本実施形態における各種プログラムや実行情報を保管する。また、CDに記録されたデータを読み出すためのCD−ROMドライバ208も設ける。RAM203は、CPU201によりOS(Operating System)や本発明を実現するための制御プログラムを含むその他の制御プログラムがロードされ実行される。また、制御プログラムを実行するために用いられる各種作業領域、一時待避領域として機能する。本実施形態では、RAM203には、CPU201がライセンスの取得やソフトウェアの起動などを行うためのエリアが確保される。ROM204は、CPU201の各種制御を実行する各種制御プログラム、データ及びパラメータ等を記憶する記憶装置である。
HDD207は、読み書き可能な記憶媒体と、その記憶媒体に対してプログラムやデータを読み書きするための駆動装置を備える。本実施形態では、HDD207は、ハードディスクを備えるローカルディスクである。なお、HDD207が備える記憶媒体が、光磁気ディスク、磁気ディスク、半導体メモリ等であってもよい。HDD207には、図3に示すソフトウェア300、ライセンス認証ソフトウェア301、ライセンス管理モジュール302、ライセンス保存部303、ソフトウェア拡張機能304、ライセンス管理ソフトウェア310、ライセンス管理部311が記憶されている。また、HDD207には、インターフェイスデバイスI/O209を制御し、ネットワークを介した通信を維持する通信プログラムが記憶されている。また、HDD207には、メモリ管理やファイル入出力管理などのクライアントを動作させるための基本ソフトウェアであるOSなどが記憶されている。
さらに、外部機器との通信を行うインターフェイスデバイスI/O209を備え、プログラム実行を行うCPU201を備える。なお、周辺機器との接続形態は有線/無線を問わない。インターフェイスデバイスI/O209は、ネットワーク(例えば、LAN100やインターネット)を介してクライアントと各種サーバ装置(Webサーバ、メールサーバなど)に接続する。インターネットを介した通信を行う場合には、例えば、TCP/IP等のプロトコルが用いられる。インターフェイスデバイスI/O209は、クライアント110とライセンスサーバ120との通信を確立・維持し、ソフトウェア300が利用するライセンスをライセンスサーバ120から受信する。本実施形態では、クライアント110は、このインターフェイスデバイスI/O209を介してライセンスサーバ120と通信を行う。なお、本実施例で説明される処理は、ROM204、またはHDD207に保存されたプログラムがRAM203にロードされ、CPU201が実行することによって実現される。
[ソフトウェア構成(クライアント、ライセンスサーバ)]
図3は、クライアント、サーバのソフトウェア構成の一例を示す図である。図3には、クライアント110、ライセンスサーバ120が備える、ライセンスの管理処理に関する処理部を示す。
はじめにクライアント110が備える各構成について説明する。クライアント110は、ソフトウェア300、ライセンス認証ソフトウェア301、ライセンス管理モジュール302、ライセンス保存部303、ソフトウェア拡張機能304を備える。図3では、クライアント110にはソフトウェアインストーラによってソフトウェア300、ライセンス認証ソフトウェア301、ライセンス管理モジュール302、ライセンス保存部303がインストールされるものとする。また、クライアント110にはるソフトウェア拡張機能インストーラによってソフトウェア拡張機能304がインストールされるものとする。
ソフトウェア300は、例えば、ワードプロセッサソフト、表計算ソフト、データベースソフト、画像編集ソフト、エディタソフト等の任意のソフトウェアである。ライセンス認証ソフトウェア301は、例えば、シリアル番号の入力を受け付ける図4のライセンス認証画面等のソフトウェアである。
ライセンス管理モジュール302は、クライアント110内でのライセンスに関する処理全般の機能を備える。図1に示すライセンスサーバ120からソフトウェア300の利用に関する特定情報(ライセンス情報)を要求・取得して、ソフトウェアの利用管理を行う利用管理手段として機能する。ライセンス管理モジュール302は、実行対象のライセンス認証ソフトウェア301から依頼を受けて、ライセンス処理用のリクエストデータを作成し、前記リクエストデータへライセンス認証に必要な情報を追加する。ライセンス認証に必要な情報は、ソフトウェア300の識別情報、クライアント110の機器情報、シリアル番号である。これら情報をライセンス認証用のデータとして追加した後、リクエストデータをライセンスサーバ120へ送信する。リクエストデータは、クライアント110とライセンスサーバ120におけるライセンスに関する処理の情報を送受信するためのデータである。リクエストデータ内には、例えば前述したソフトウェア300の識別情報、クライアント110の機器情報、シリアル番号等の情報が含まれる。機器情報は、クライアントのコンピュータを一意に特定するための情報であり、例えば、MACアドレスなどが該当する。シリアル番号は、ソフトウェアのパッケージに一意に付与された番号であり、ライセンスサーバ120にライセンスの発行を要求する際に必要となる番号である。また、ライセンス管理モジュール302は、ライセンスサーバ120が発行したライセンスを受信し、ライセンス保存部303に前記ライセンスを保存する。
ライセンス保存部303は、ライセンス管理ソフトウェア310から取得したライセンスに関する情報(ライセンステーブル、詳細については図5で後述する)を保存するデータベースである。ライセンス保存部303には、ライセンスに紐づいた情報が管理され、ソフトウェアの名称、ソフトウェアのバージョン、ソフトウェアの識別情報、クライアントの機器情報、シリアル番号、ソフトウェアのアップグレードコードなどが該当する。これら情報は、ソフトウェア300の起動可否の判断やライセンス認証時のライセンス返却の判断処理に使用される。また、ライセンスを返却した場合、ライセンス管理モジュール302によってライセンス保存部303から返却したライセンスに紐づいた情報が削除される。
ソフトウェア拡張機能304は、例えば、ソフトウェア300に追加可能なプラグインのようなオプション機能を指す。一般的に拡張機能は単体では動作せず、本体であるソフトウェア300が存在しなければ機能しない。また、本実施例では、ソフトウェア拡張機能304は、ソフトウェア拡張機能用のライセンスを取得しないと機能しないものとする。ソフトウェア拡張機能304はライセンス管理モジュール302を介し、ソフトウェア300と同様のライセンスに関する処理を実施するため、同様の処理及び機能に関する説明は割愛する。
次にライセンスサーバ120が備える各構成について説明する。ライセンスサーバ120は、ライセンス管理ソフトウェア310、ライセンス管理部311を備える。図3に示す例では、ライセンスサーバ120にはライセンス管理ソフトウェアインストーラによってライセンス管理ソフトウェア310、ライセンス管理部311がインストールされているものとする。
ライセンス管理ソフトウェア310は、ライセンス管理に関する統合的な機能を備える。ライセンス管理ソフトウェア310は、クライアント110とライセンスに関する情報の送受信を行う。また、クライアント110から受け付けた情報(リクエストデータ)を基にライセンスの発行やライセンスの認証状態を変更し、ソフトウェア300又はソフトウェア拡張機能304のライセンスの管理を行うライセンス管理手段として機能する。また、ライセンス管理ソフトウェア310は、発行したライセンスをクライアント110に送信に送信する。
ライセンス管理部311は、ライセンス管理ソフトウェア310が管理しているライセンスに関する情報(ライセンステーブル、詳細については図6で後述する)を保存するデータベースである。ライセンス管理部311には、ライセンス保存部303と同じ情報に加え、ライセンスの認証状態が管理される。
また、ライセンス管理ソフトウェア310によってライセンス認証又はライセンス返却がされると、ライセンス管理部311が管理しているライセンス情報を更新する。ライセンス認証によるライセンス情報の更新の場合、リクエストデータ内に含まれる情報をライセンスに紐づける。ライセンス認証によるライセンス情報の更新は、クライアント110における前記ライセンス対象のソフトウェア300又はライセンス管理ソフトウェア310についてのライセンスを使用状態にすることである。一方、ライセンス返却によるライセンス情報の更新の場合、ライセンスに紐づいている情報を削除する。ライセンス返却によるライセンス情報の更新は、ライセンスに紐づいていたシリアル番号及びクライアント110の機器情報の情報が解除されるため、他のコンピュータ上で前記返却したライセンスに紐づいたシリアル番号を使用してライセンス認証が可能となる。
なお、本実施例で説明される処理を実行する図3に示す各部は、ROM204、またはHDD207に保存されたプログラムをRAM203にロードし、CPU201で実行することによって実現される。
[ライセンス認証ソフトウェアのUI画面]
図4は、ライセンス認証ソフトウェア301のGUIを示している。ライセンス認証画面400は、ユーザがシリアル番号401を入力するためのテキストボックスを備えており、ライセンス認証ソフトウェア301は入力されたシリアル番号を受け付ける。シリアル番号401はライセンスサーバ120からライセンスを取得する際に使用する。
[ライセンス保存部が保有するライセンステーブル]
図5は、ライセンス保存部303が管理するライセンステーブルを示している。ライセンステーブル500は、ライセンス管理モジュール302が取得したライセンスに紐づく情報を管理する。シリアル番号501は、ライセンス認証ソフトウェア301で指定されたシリアル番号401と同じである。図5では、ソフトウェア100、ソフトウェア400の2つのソフトウェアに対して、1つのシリアル番号401(1111−1111−1111−0001)と紐づいている。これは、1つのシリアル番号で2つのソフトウェア300のライセンス認証を行ったということである。
502〜506は、ライセンス情報内に含まれるソフトウェア300(またはソフトウェア拡張機能304)の情報を指す。ソフトウェア名502は、ソフトウェアの名称であり、バージョン503は、ソフトウェアのバージョンである。ソフトウェアの識別情報504は、ソフトウェア300をライセンスのバージョンを管理するために用いられる。例えば、ソフトウェア300がバージョン1、2、3、4と順にリリースされている際に、バージョン1を購入したユーザにはバージョン2、3を無償で提供するライセンスのバージョン管理を行うとする。
このバージョン管理を実現するには、バージョン1で定義したソフトウェアの識別情報504(C100)と同じ識別情報を、バージョン2、3にも同様に定義する。このライセンスの定義はライセンス管理ソフトウェア310によって行われる。ライセンスの定義の詳細については図6で後述する。ソフトウェア300の起動可否は、ライセンス保存部303のライセンス情報内に、ソフトウェアに組み込まれたソフトウェアの識別情報504が存在するかによって判断する。換言すると、ライセンス管理モジュール302は、ライセンス保存部303にソフトウェアの識別情報504(C100)と紐づいたライセンス情報が存在するかを判断し、バージョン2,3のソフトウェア起動可否を決定する。従って、図5で示すように、バージョン1のソフトウェア300でソフトウェアの識別情報504(C100)と紐づいたライセンスをライセンスサーバ120から取得してれば、バージョン2、3のソフトウェア300はライセンス認証を行わなくても起動できる。
ソフトウェアのアップグレードコード505は、ソフトウェア300のUCであり、後述する実施例2〜4でライセンス処理に関する判断に使用する。クライアント機器情報606は、クライアント110の機器情報である。図5では、クライアント機器情報606をクライアント110のMACアドレスとして定義している。なお、本実施例では、ライセンステーブル500の構成として501〜506を項目の例に挙げたが、ライセンステーブルの構成は前述の項目に限ったものとしない。
[ライセンス管理部が保有するライセンステーブル]
図6は、ライセンス管理部311が保有するライセンステーブルを示している。ライセンステーブル600は、ライセンス管理ソフトウェア310が発行したライセンスを管理する。
図6の601〜606は、図5の501〜506にそれぞれ対応している。本項の図6では、図5と重複した部分についての説明を割愛する。クライアント機器情報606は、クライアント110の機器情報である。この機器情報は、クライアント110がライセンスを取得する際に保存され、ライセンスを返却する際に削除される。また、クライアント機器情報606が保存されている場合、この情報に紐づいているシリアル番号601は使用中の状態であるため、他のコンピュータで使用することができない。一方、クライアント機器情報606が保存されていない場合、この情報に紐づいているシリアル番号は未使用の状態であるため、他のコンピュータで使用することができる。ただし、同じシリアル番号601に対して複数のクライアント機器情報606が紐づいている場合、シリアル番号601に紐づいている全てのクライアント機器情報606が削除されない限り、他のコンピュータで使用することができない。また、クライアント機器情報606は、ライセンス管理モジュール302がライセンス管理ソフトウェア310に送受信するリクエストデータの中にライセンス処理用の情報の1つとして含まれる。
ソフトウェアリリース日607は、ソフトウェア300がリリースされた日である。保守期間608は、シリアル番号601の保守期間である。保守期間608には保守期間の開始日、終了日が格納されており、この期間内にリリースされたソフトウェアは1つのシリアル番号で複数のソフトウェア300のライセンスを取得することができる。図6では、例えば、シリアル番号1111−1111−1111−0001の保守期間は2012/1/1から2014/12/31と定義されている。つまり、この保守期間内にリリースされたソフトウェア100、ソフトウェア400は、1つのシリアル番号でライセンスを取得することができる。また、ソフトウェア500は、ソフトウェアリリース日607が2015/1/1と定義されており、保守期間外にリリースされたソフトウェアとなるため、シリアル番号1111−1111−1111−0001ではライセンスが取得することができない。
上記のように1台のクライアント110(機器情報0000AAAA2222)で1つのシリアル番号601(1111−1111−1111−0001)を使用し、複数のソフトウェア(ソフトウェア100、ソフトウェア400)のライセンスを取得している場合について説明をする。例えば、この状態でソフトウェア100のライセンスを返却すると、ソフトウェア100に紐づいたクライアント機器情報606(0000AAAA2222)が削除される。ここで、ソフトウェア100に紐づいたクライアント機器情報606は空であるが、同じシリアル番号601(1111−1111−1111−0001)に紐づいたソフトウェア400のクライアント機器情報606には0000AAAA2222が保存されている。シリアル番号601が他のコンピュータで有効になる条件は、シリアル番号601に紐づいている全てのクライアント機器情報606が削除されることである。そのため、シリアル番号601(1111−1111−1111−0001)を他のコンピュータで使用するためには、更にソフトウェア400のライセンスを返却し、ソフトウェア400に紐づいたクライアント機器情報606(0000AAAA2222)を削除する必要がある。なお、本実施例では、ライセンステーブル600の構成として601〜608を項目の例に挙げたが、ライセンステーブルの構成は前述の項目に限ったものとしない。
[ソフトウェアのレジストリ情報]
図7は、クライアント110のレジストリ情報700を示す。レジストリ情報700は、クライアント110のレジストリ情報一覧を示し、クライアント110にインストールされているソフトウェア300(ソフトウェア拡張機能304)の情報を保持する。例えば、レジストリ情報700は、ソフトウェア名701、バージョン702やサポートプラグインバージョン703、アップグレードコード704等を保持する。本実施形態では、これらレジストリ情報700は、ソフトウェア300のインストール時にOSのレジストリに書き込まれるものとする。
ソフトウェア名701は、ソフトウェア300の名称を示す。バージョン702は、ソフトウェア300のバージョンを示す。サポートプラグインバージョン703は、ソフトウェア300がサポートするソフトウェア拡張機能304のバージョンを示す。また、サポートプラグインバージョン703は、ソフトウェア300専用の項目であるため、ソフトウェア拡張機能304に本項は存在しない。アップグレードコード704(以下UC)は、ソフトウェアに一意に設定された情報であり、同一ソフトウェアであればバージョンが異なる場合でも同じ情報が利用される。つまり、UC704が同じソフトウェアであれば、バージョン違いの同一ソフトウェアであり、UC704が異なるソフトウェアであれば、別ソフトウェアということになる。UCのように、ソフトウェアの種類を特定するために用いる情報を種類情報と呼称する。複数のソフトウェアは、共通の種類情報が割り当てられることで同一のソフトウェアとなる。
本実施例では、図7の各情報を例に挙げたが、レジストリ情報700の記載表現は、この記載に限ったものではない、また、記述される情報、及びこれら情報を備える箇所もこれに限ったものではない。
[実施例1におけるソフトウェアの処理]
クライアントに1つのバージョンしかインストールできないソフトウェア300では、新版ソフトウェアのライセンスを保持していれば、旧版ソフトウェア300のライセンスは不要である。また、旧版ソフトウェア300、新版ソフトウェア300でそれぞれ別のシリアル番号を利用してライセンス認証を実施した場合、不要となる旧版ソフトウェア300のライセンスは、他のコンピュータに移動させることで再利可能である。他のコンピュータでライセンスを利用する場合、旧版ライセンスを返却する必要がある。
ライセンスの返却について具体的に説明する。ライセンスの返却とは、ライセンス管理モジュール302がライセンス管理ソフトウェア310にライセンス返却用のリクエストデータを送信することを指す。リクエストデータの中には、ライセンス保存部303が管理するライセンステーブルの情報が含まれる。ライセンス管理ソフトウェア310は、この情報を基に返却されたライセンスを照合し、ライセンス管理部311で管理しているライセンステーブル600から該当するクライアント機器情報606を削除することでシリアル番号との紐づけを解除する。なお、ライセンス保存部303が管理するライセンステーブルの情報は削除されるものとし、これにより、旧版ソフトウェ300は、起動時にライセンステーブルの情報が存在しないため起動ができないようになる。
ここで、1つのシリアル番号で複数バージョンのライセンスを取得していた場合、シリアル番号に紐づいた全てのライセンスを返却する必要がある。これにより、ライセンスサーバで管理されているシリアル番号601、ソフトウェアの識別情報604、クライアントの機器情報606の紐づけが解除できるため、シリアル番号を他のコンピュータで使用できるようになる。
ここでは、クライアントが保持している複数の不要なライセンスを返却できるように、保持しているライセンスの状態に応じてライセンス認証を実施する際にライセンス返却を同時に実施する例を示す。
図8は、ソフトウェア300の処理のフロー図である。図1のクライアント110上で動作するソフトウェア300を例に処理の流れを説明する。本フローでは、ソフトウェア300をアップグレードした際にクライアントに残る不要なライセンスを効率的に返却する手段を示す。各判断ステップを実行することによりライセンスの状態を確認し、確認の結果、ライセンスの返却を行うことが特徴である。
ソフトウェア300の起動処理が開始されると、S1001にて、ライセンス管理モジュール302はライセンス保存部303からライセンス情報の一覧を取得する。次に、S1002にて、ライセンス管理モジュール302はS1001にて取得したライセンス情報内にソフトウェアを起動するために有効なライセンスが存在するかを判断する。ここで、有効なライセンスとは、起動するソフトウェアの識別情報とライセンスに紐づいたソフトウェアの識別情報604が一致したライセンスを指す。Yes(存在する)の場合、処理を終了し、No(存在しない)の場合、S1003へ進む。ここで、ソフトウェアの識別情報604とは、ソフトウェア起動可否を判断するための情報であり、この情報はソフトウェア300が保持している。例えば、ソフトウェア300がソフトウェアの識別情報「C100」を保持し、ライセンスに紐づいたソフトウェアの識別情報604が「C100」であった場合、ソフトウェアの識別情報が一致したと判断する。
次に、S1003にて、ライセンス管理モジュール302はライセンス認証ソフトウェア301(ライセンス認証画面400)を表示する。次に、S1004にて、ライセンス管理モジュール302はライセンス認証ソフトウェアからシリアル番号入力及びライセンス認証指示を受け付けたことに応じて、ライセンス処理用のリクエストデータを作成する。
次に、S1005にて、ライセンス管理モジュール302はS1004で作成したリクエストデータに対し、シリアル番号、ソフトウェアの識別情報、クライアントの機器情報をライセンス処理用リクエストとして追加する。次に、S1006にて、ライセンス管理モジュール302はS1001にて取得したライセンス情報内のライセンスに紐づくシリアル番号501とS1004で受け付けたシリアル番号が異なるかを判断する。Yes(異なる)の場合、S1007へ進み、No(異ならない)場合、S1008へ進む。
次に、S1007にて、ライセンス管理モジュール302はS1004で作成したリクエストデータに対し、S1006で異なるシリアル番号と判断したライセンスの情報をライセンス返却用リクエストとして追加する。ここでライセンスの情報とは、ライセンスに紐づいた情報を指し、具体的には、シリアル番号501、ソフトウェアの識別情報504、クライアントの機器情報506が該当する。ライセンス返却用リクエストがライセンスサーバに送信されことを上述した通り返却と称し、ライセンスサーバにてシリアル番号601と機器情報608の紐付けが解除されることになる。なお、返却の際に送信されるライセンス返却用リクエストに含まれるライセンスの情報は、実施例1に限られるものではない。
S1007において、リクエストデータ内には新版ソフトウェア300用のシリアル番号を用いたライセンス認証用の情報と旧版ソフトウェア300をライセンス認証した際に使用したシリアル番号501を用いたライセンス返却用の情報が含まれる。また、リクエストデータに追加するライセンス返却用の情報は、S1006で異なるシリアル番号と判断した全てのライセンスを含む。
次に、S1008にて、ライセンス管理モジュール302はS1006で処理していないライセンスが存在するかを判断する。Yes(存在する)の場合、S1007へ進み、No(存在しない)場合、S1008へ進む。S1006からS1008の処理を繰り返すことで、既に返却対象となったライセンス以外のライセンスであって、異なるシリアル番号に対応するライセンスを返却することが可能になる。結果、返却したライセンスを別のPCが使えるようになる。
S1006〜S1008のフローについて、具体的に説明する。例えば、図5においてクライアント110(0000AAAA2222)は、シリアル番号501(1111−1111−1111−0001)を使用して2つのソフトウェア名502(ソフトウェア100、ソフトウェア400)のライセンスを取得している。これは、まずソフトウェア100をインストール後にシリアル番号501(1111−1111−1111−0001)を使用して、ソフトウェア100のライセンスを取得している。次にソフトウェア100をソフトウェア400にアップグレード後に、先と同じシリアル番号501(1111−1111−1111−0001)を使用して、ソフトウェア400のライセンスを取得している。ソフトウェア400のライセンスを取得する際、S1006にて2つのシリアル番号は異ならないと判断されるため、S1007を実施しない。その結果、ソフトウェア100のライセンス情報は返却用リクエストとリクエストデータに追加されない。
更に、この状態からソフトウェア500にアップグレードし、ライセンスを取得する際に、シリアル番号501(1111−1111−1111−0001)を使用した場合、1つシリアル番号で3つのライセンスが取得できる。一方、別のシリアル番号501(5555−5555−5555−0001)を使用した場合、S1006にて異なるシリアル番号と判断されるため、S1006〜S1008のループ処理によって、ソフトウェア100、ソフトウェア400のライセンス情報が返却用リクエストとしてリクエストデータに追加される。尚、ライセンステーブル500には、ソフトウェアの識別情報「C100P(ソフトウエア拡張機能100)」のライセンス情報が保存されているが、実施例1では存在しないものとして扱う。
次に、S1009にて、ライセンス管理モジュール302はS1007の処理を実行したかを判断する。Yes(実行した)の場合、S1010へ進み、No(実行していない)場合、S1011へ進む。
S1010にて、ライセンス管理モジュール302は本フローで作成したリクエストデータを用いて、ライセンス認証、ライセンス返却の処理を同時に実施する。前記処理を受け付けたライセンスサーバ120上のライセンス管理ソフトウェア310は、受信したリクエストデータを基にデータベース(ライセンス管理部311)を更新する。具体的には、ライセンス認証であれば、クライアント110に発行するライセンスに対して、リクエストデータに含まれるライセンス認証用の情報(シリアル番号601、ソフトウェアの識別情報604、クライアントの機器情報606)の紐づけを行う。また、ライセンス返却であれば、データベース内に登録されているライセンス情報に対して、リクエストデータに含まれるライセンス返却用の情報(シリアル番号601、ソフトウェアの識別情報604、クライアントの機器情報606)の紐づけの解除を行う。即ち、データベースから該当するライセンス情報の削除を行う。また、ライセンス管理モジュール302は取得したライセンスをライセンス保存部303に保存し、返却したライセンスをライセンス保存部303から削除する。
S1011にて、ライセンス管理モジュール302は本フローで作成したリクエストデータを用いて、ライセンス認証の処理を実施する。S1011における動作は、S1010のライセンス認証に関する動作と同様であるので、説明を省略する。
以上により、保持しているライセンスの状態に応じて、不要となった複数のライセンスを一連のライセンス認証処理で同時に返却することができる。また、従来ライセンスを返却する際は返却するライセンスの回数分の返却操作が必要であったが、ライセンス認証時に複数のライセンス返却を実施するため、返却操作そのものが不要となる。
[実施例2におけるソフトウェアの処理]
前述した実施例1では、クライアントが保持する不要なライセンスをライセンス認証と同時に返却する手法について説明を行った。しかしながら、前述の実施例1だけではライセンスを返却すべきでない場合にも、ライセンスを返却してしまうという問題が未だ残る。
その問題について具体的に説明する。ソフトウェア拡張機能304を有するアドインソフトのライセンス認証を実施する際に、ソフトウェア300のライセンス認証で使用したシリアル番号と別のシリアル番号を使用した場合、実施例1においてはソフトウェア300のライセンスが返却されてしまう。つまり、クライアント110にはソフトウェア300がインストールされているにも拘らず、ライセンス保存部303にはソフトウェア拡張機能304のライセンスしか存在しない状態になるため、ソフトウェア300が起動できなくなるという問題がある。
そこで実施例2では、実施例1に加え、ソフトウェア拡張機能304のライセンス認証が行われた場合に、本体ソフトウェア300のライセンス返却を実施しない手法について説明する。本実施例において、システム構成やアプリケーションのUIなど、実施例1と同様の説明は割愛する。
図9は、ソフトウェア拡張機能304の処理のフロー図である。図1のクライアント110上で動作するソフトウェア拡張機能304を例に処理の流れを説明する。本フローでは、ソフトウェア300のライセンスを取得済みの状態で、ソフトウェア拡張機能304のライセンス認証を実施した際に、ライセンスの返却が不要なライセンスを判断し、返却しない手段を示す。各判断ステップを実行することによりライセンスの状態を確認し、確認の結果、ライセンスの返却を行うことが特徴である。
本項の図9では、図8と重複した部分についての説明を割愛する。
S1101にて、ライセンス管理モジュール302はS1001にて取得したライセンス情報内に、ライセンス認証を実施しようとしたソフトウェア300のアップグレードコードが存在するかを判断する。Yes(存在する)の場合、S1007へ進み、No(存在しない)の場合、S1008へ進む。
S1101について具体的に説明する。ここでS1001にて取得したライセンス情報とは、例えば、ライセンステーブル500におけるライセンス取得済みの本体ソフトウェア300のソフトウェアの識別情報504「C100」のライセンス情報を指す。ライセンステーブル500には、ソフトウェアの識別情報「C400(ソフトウェア400)、C100P(ソフトウェア拡張機能100)」のライセンス情報が保存されているが、実施例2では存在しないものとして扱う。また、ライセンス認証を実施しようとしたソフトウェア300とは、例えば、本体ソフトウェア300に対するソフトウェア拡張機能304を指す。ライセンス情報内に含まれるUC505({11111111−FFFF−FFFF−FFFF−FFFF11111111})は、ライセンス管理ソフトウェア310によってライセンス発行時にライセンスに対して紐づけられた情報であり、ライセンス管理モジュール302が本実施例の判断処理に利用する。ここで、ライセンス情報内には、ソフトウェアの識別情報504(C100)、クライアントの機器情報506(0000AAAA2222)、シリアル番号501(1111−1111−1111−0001)、ソフトウェアのUC505({11111111−FFFF−FFFF−FFFF−FFFF11111111})が含まれる。
S1007では、返却用リクエストとしてリクエストデータに追加するライセンス情報をS1006、S1101の判断によって次のように決定する。S1006によって、返却対象となるライセンステーブル500内のライセンス情報は、ライセンス認証を実施しようとしたソフトウェア300のシリアル番号と異なるシリアル番号に紐づいていると判断できる。具体的には、「C100」と紐づいているライセンスに、認証を実施しようとしたソフトウェア拡張機能304のシリアル番号501(1111−1111−1111−0001)が存在しなれば異なるシリアル番号に紐づいたライセンス情報であると判断できる。
S1101によって、返却対象となるライセンステーブル500内のライセンス情報は、ライセンス認証を実施しようとしたソフトウェア300のUCと異なるシリアル番号に紐づいていると判断できる。具体的には、「C100」と紐づいているライセンス情報内に、認証を実施しようとしたソフトウェア拡張機能304のUC505({77777777−AAAA−AAAA−AAAA−AAAA77777777})が存在しなれば、ライセンス情報は認証を実施しようとしたソフトウェア300と別種のソフトウェアであると判断できる。換言すると、ソフトウェア拡張機能304のライセンス認証を行おうとしている場合、ライセンス情報はソフトウェア300のライセンス情報(C100)であると判断できる。
これら判断により、比較した2つのシリアル番号が異なったとしても、ライセンス情報の中にライセンス認証を行うソフトウェアと同一のアップグレードコードが存在しなければ、同一のシリアル番号に基づき発行されたライセンス返却は実施しないようになる。
以上により、複数のライセンスで機能する統合的なソフトウェア300において、意図しないライセンス返却を防ぐことが可能となる。実施例2では、ライセンス認証しようとしているソフトウェア300とライセンス情報内の比較情報としてソフトウェアのUC505を例に挙げたが、比較情報は前述のUC505に限ったものとしない。
[実施例3におけるソフトウェアの処理]
前述した実施例2では、複数のライセンスで機能する統合的なソフトウェア300におけるライセンス返却の実施可否の判定を行う手法について説明を行った。しかしながら、前述の実施例2だけではインストールされているソフトウェア拡張機能304が動作しない場合に、不要なライセンスがクライアントに残るという問題がある。
その問題について具体的に説明する。一般的にソフトウェア300に追加可能なソフトウェア拡張機能304は、どのバージョンのソフトウェア300をサポートするか定義されている。また、同様にソフトウェア300も、どのバージョンのソフトウェア拡張機能304をサポートするか定義されている。例えば、ライセンス保存部303にソフトウェア300、ソフトウェア拡張機能304の各ライセンスが存在する状態でソフトウェアのアップグレードを実施した場合、新版ソフトウェア300、旧版ソフトウェア拡張機能304のライセンスが存在することになる。ここで、新版ソフトウェア300が旧版ソフトウェア拡張機能304をサポートしていない場合、ライセンス保存部303に存在する旧版ソフトウェア拡張機能304のライセンスはクライアント110上で不要とある。しかしながら、実施例2では、ライセンス情報内に認証しようとしているソフトウェア300のUCが存在しない場合、ライセンス返却をしないという判断を行うため、ライセンス認証を実施しても不要なライセンスが返却されないといった問題がある。
そこで実施例3では、実施例2に加え、認証を実施するソフトウェア300がサポートしていない機能のライセンスの返却する手法について説明する。本実施例において、システム構成やアプリケーションのUIなど、実施例2と同様の説明は割愛する。
図10は、ソフトウェア300の処理のフロー図である。図1のクライアント110上で動作するソフトウェア300を例に処理の流れを説明する。本フローでは、ライセンス認証を実施した際、ソフトウェア300がサポートしていないソフトウェア拡張機能304のライセンスが存在した場合、不要なソフトウェア拡張機能304のライセンスを返却する手段を示す。各判断ステップを実行することによりライセンスの状態を確認し、確認の結果、ライセンスの返却を行うことが特徴である。
本項の図10では、図9と重複した部分についての説明を割愛する。S1201にて、ライセンス管理モジュール302は、ライセンス認証を行おうとしたソフトウェア300が、S1101のライセンスのソフトウェアが提供する機能をサポートしているかを判断する。Yes(サポートする)の場合、S1008へ進み、No(サポートしない)の場合、S1007へ進む。
S1201について具体的に説明する。ここでS1101のライセンスに関連した機能とは、例えば、ソフトウェア拡張機能304の機能を指す。また、サポートしているかの判断は、ソフトウェア300がサポートしているソフトウェア拡張機能304のバージョン(サポートプラグインバージョン703)とライセンス情報内に含まれるソフトウェア拡張機能304のバージョン503を比較して行う。また、サポートプラグインバージョン703は、ライセンス管理モジュール302によって、現在インストールされているソフトウェアのレジストリ情報700から取得する。バージョンが一致した場合、ソフトウェア300はソフトウェア拡張機能304をサポートしていると判断し、S1007にてソフトウェア拡張機能304のライセンスを返却用対象のライセンスとして指定しない。一方、バージョンが一致しなかった場合、ソフトウェア300はソフトウェア拡張機能304をサポートしていないと判断し、ソフトウェア拡張機能304のライセンスは返却用のライセンスとして指定する。例えば、図7では、サポートプラグインバージョン703は「5」と定義されており、ソフトウェア拡張機能304のバージョン702が「1」である。そのため、ソフトウェア300は、インストールされているソフトウェア拡張機能304をサポートしておらず、ソフトウェア拡張機能304は動作しない。一方、ソフトウェア拡張機能304のバージョン702が「5」である場合、ソフトウェア300はインストールされているソフトウェア拡張機能304をサポートしているため、ソフトウェア拡張機能304は動作する。
以上により、複数のライセンスで機能する統合的なソフトウェア300において、ソフトウェア300がサポートしていない不要なライセンスを返却することが可能となる。
前述した実施例3では、複数のライセンスで機能する統合的なソフトウェア300における不要なライセンス返却の実施可否の判定を行う手法について説明を行った。しかしながら、実施例3だけでは、本来返却する必要のないライセンスを返却する場合があるという問題が未だある。
その問題について具体的に説明する。例えば、ライセンス保存部303にソフトウェア300、ソフトウェア拡張機能304の各ライセンスが存在する状態でソフトウェア300をアップグレードし、新版ソフトウェア300のライセンス認証を実施した場合、以下の問題がおきる。
前述の場合、S1101にて、旧版ソフトウェア300と新版ソフトウェア300でライセンス認証に使用したシリアル番号が異なる場合、旧版ソフトウェア300のライセンスは返却される。また、S1201にて、新版ソフトウェア300が旧版ソフトウェア拡張機能304をサポートする場合、旧版ソフトウェア300のライセンスは返却されない。この2つの処理は、旧版ソフトウェア300と旧版ソフトウェア拡張機能304のライセンス情報内に含まれるシリアル番号が異ならない場合においても実施される。
実施例1で説明した通り、1つのシリアル番号で複数ライセンスを取得している場合、同じシリアル番号のライセンス情報を持つライセンスを全て返却しない限り、前記シリアル番号は他のコンピュータで使用できない。つまり、旧版ソフトウェア拡張機能304のライセンス返却を行わない場合、旧版ソフトウェア300のライセンス返却も行う必要はない。しかしながら、実施例3は、旧版ソフトウェア300のライセンス返却を行う必要がないにも拘らず、ライセンス返却を行うという問題がある。
そこで実施例4では、実施例3に加え、ライセンス認証を実施するソフトウェア300がサポートしていない機能のライセンスの返却を考慮しつつ、返却しても意味のないライセンスは返却しない手法について説明する。本実施例において、システム構成やアプリケーションのUIなど、実施例3と同様の説明は割愛する。
図11は、ソフトウェア300の処理のフロー図である。図1のクライアント110上で動作するソフトウェア300を例に処理の流れを説明する。本フローでは、ライセンス認証を実施した際、ライセンス保存部303のライセンス情報を考慮しつつ、返却対象のライセンスを精査し、ライセンス返却を行う手段を示す。各判断ステップを実行することによりライセンスの状態を確認し、確認の結果、ライセンスの返却を行うことが特徴である。
本項の図11では、図10と重複した部分についての説明を割愛する。S1301にて、ライセンス管理モジュール302は、S1001にて取得したライセンス情報が1つかどうかを判断する。Yes(1つ)の場合、S1007へ進み、No(2つ以上)の場合、S1302へ進む。
S1302にて、ライセンス管理モジュール302は、S1001にて取得したライセンス情報の比較処理を実施する。ここで、S1006の判断で使用したライセンスを(A)と定義し、S1302の比較処理で使用するライセンスを(B)と定義する。S1302にて、ライセンス管理モジュール302は、ライセンス(A)情報内のシリアル番号501とライセンス(B)情報内のシリアル番号501が異なるかを判断する。Yes(異なる)の場合、S1305へ進み、No(異ならない)の場合、S1303へ進む。
S1302について具体的に説明する。ここでS1302では、2つのシリアル番号を比較することでライセンス返却を実施して効果のあるライセンスであるかどうかを判断する。S1101により、ライセンス(A)はソフトウェアのUC505を保持しているため、ライセンス(A)は旧版ソフトウェア300のライセンスであることが判断できる。そして、S1302によって、ライセンス(B)とシリアル番号501が異なれば、旧版ソフトウェア300のライセンスは他のコンピュータで利用できるため、ライセンス返却を実施して効果のあるライセンスということが判断できる。ただし、ライセンス(A)と比較するライセンス(B)は、S1001にて取得した全てのライセンスが該当するため、一つでもシリアル番号が一致した場合、更にS1303以降の判断が必要となる。
S1303にて、ライセンス管理モジュール302は、ライセンス(B)情報内にライセンス認証を行おうとしたソフトウェアのUC505が存在するかを判断する。Yes(存在する)の場合、S1305へ進み、No(存在しない)の場合、S1304へ進む。
S1303について具体的に説明する。ここでS1303は、ライセンス(B)が旧版ソフトウェア300のライセンス、旧版ソフトウェア拡張機能304のライセンスのどちらかを判断する。ソフトウェア300のアップグレードが存在すれば、ライセンス(B)は旧版ソフトウェア300のライセンスであり、存在しなければ、ライセンス(B)は旧版ソフトウェア拡張機能304のライセンスであると判断できる。
S1304にて、ライセンス管理モジュール302は、ライセンス認証を行おうとしたソフトウェア300が、ライセンス(B)の機能をサポートしているかを判断する。Yes(サポートする)の場合、S1008へ進み、No(サポートしない)の場合、S1305へ進む。ここで、ライセンス(B)の機能をサポートしているかを判断する手法については、S1201と同様であるため説明を割愛する。
S1304について具体的に説明する。ここでS1304は、新版ソフトウェア300が旧版ソフトウェア拡張機能304をサポートしているかを判断する。サポートしている場合、旧版ソフトウェア拡張機能304と同一のシリアル番号を持つライセンスは、ライセンス返却を実施しても効果のないライセンスと判断できる。
次に、S1305にて、ライセンス管理モジュール302は、S1302で処理していないライセンス(B)が存在するかを判断する。Yes(存在する)の場合、S1302へ進み、No(存在しない)場合、S1007へ進む。
以上により、複数のライセンスで機能する統合的なソフトウェアにおいて、クライアントが保持しているライセンスの状態に応じて、ライセンスを返却して効果のあるライセンスのみを判断して返却することが可能になる。
〔その他の実施例〕
本願発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPUやMPU等)がプログラムを読み出して実行する処理である。さらに、本願発明には、上述した実施形態の適宜組み合わせることにより構成されたシステムやその機能も含まれるものとする。
110 クライアント
120 ライセンスサーバ
300 ソフトウェア
301 ライセンス認証ソフトウェア
302 ライセンス管理モジュール
303 ライセンス保持部
304 ソフトウェア拡張機能
310 ライセンス管理ソフトウェア
311 ライセンス管理部

Claims (10)

  1. 発行されたライセンスに基づきソフトウェアの動作を制御する情報処理装置であって、
    前記ソフトウェアの動作を制御するための第1のライセンスを発行するために入力されたシリアル番号を保持する保持手段と、
    バージョンが異なる前記ソフトウェアの動作を制御するための第2のライセンスを発行するために必要なシリアル番号の入力を受け付ける受付手段と、
    前記保持手段により保持された前記第1のライセンスに対応するシリアル番号と前記受付手段により受け付けられたシリアル番号とが異なるか否かを確認する確認手段と、
    前記確認手段によって異なることが確認された場合、第1のライセンスをライセンスサーバへ返却するとともに、前記受付手段により受け付けられたシリアル番号を基に前記ライセンスサーバが発行した前記第2のライセンスに基づき前記ソフトウェアの制御を行う制御手段と、を有する情報処理装置。
  2. 前記制御手段は、前記確認手段によって同一であることが確認された場合、前記第1のライセンスを前記ライセンスサーバへ返却しないことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御手段は、前記確認手段によって異なることが確認された場合、前記保持手段が保持する前記第1のライセンス以外のライセンスであって、前記第1のライセンスと同じく前記受付手段により受け付けられたシリアル番号と同一のシリアル番号を基に前記ライセンスサーバが発行し既に前記保持手段に保持されているライセンスを、前記第1のライセンスとともにライセンスサーバへ返却することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記確認手段は、前記第1のライセンスに対応するシリアル番号と前記受付手段により受け付けられたシリアル番号とが異なることを確認した場合、さらに、前記第1のライセンスに含まれる種類情報と前記第2のライセンスによって動作が制御されるソフトウェアの種類情報とが異なるか否かを確認し、
    前記制御手段は、前記確認手段によって前記第1のライセンスに含まれる種類情報と前記第2のライセンスによって動作が制御されるソフトウェアの種類情報とが同一であることが確認された場合、前記第1のライセンスを前記ライセンスサーバへ返却し、
    前記確認手段によって前記第1のライセンスに含まれる種類情報と前記第2のライセンスによって動作が制御されるソフトウェアの種類情報とが異なることが確認された場合、前記第1のライセンスを前記ライセンスサーバへ返却しないことを特徴とし、
    前記種類情報とは、バージョンが異なる同一のソフトウェアに共通して割り当てられる情報であることを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記確認手段は、前記第1のライセンスに含まれる種類情報と前記第2のライセンスによって動作が制御されるソフトウェアの種類情報とが異なることを確認した場合、さらに、前記第2のライセンスによって動作が制御されるソフトウェアが前記第1のライセンスによって動作が制御されるソフトウェアをサポートしているか否かを確認し、
    前記制御手段は、前記確認手段によって前記第2のライセンスによって動作が制御されるソフトウェアが前記第1のライセンスによって動作が制御されるソフトウェアをサポートしていないことが確認された場合、前記第1のライセンスを前記ライセンスサーバへ返却し、
    前記確認手段によって前記第2のライセンスによって動作が制御されるソフトウェアが前記第1のライセンスによって動作が制御されるソフトウェアをサポートしていることが確認された場合、前記第1のライセンスを前記ライセンスサーバへ返却しないことを特徴とする請求項4に記載の情報処理装置。
  6. 前記確認手段は、前記第1のライセンスに含まれる種類情報と前記第2のライセンスによって動作が制御されるソフトウェアの種類情報とが同一であることを確認した場合、前記第1のライセンスと同一のシリアル番号を基に発行されかつ前記第1のライセンスの種類情報と異なる種類情報を含む第3のライセンスによって動作が制御されるソフトウェアを前記第2のライセンスによって動作が制御されるソフトウェアがサポートしていないことが確認された場合、前記第1のライセンスを返却し、
    前記第3のライセンスによって動作が制御されるソフトウェアを前記第2のライセンスによって動作が制御されるソフトウェアがサポートしていることが確認された場合、前記第1のライセンスを返却しないことを特徴とする請求項4または5に記載の情報処理装置。
  7. 前記第2のライセンスによって動作が制御されるソフトウェアは、前記第1のライセンスによって動作が制御されるソフトウェアの機能を拡張するためのアドインソフトであることを特徴とする請求項1乃至6の何れか1項に記載の情報処理装置。
  8. 発行されたライセンスに基づきソフトウェアの動作を制御する情報処理装置で実行される方法であって、
    前記ソフトウェアの動作を制御するための第1のライセンスを発行するために入力されたシリアル番号を保持する保持ステップと、
    バージョンが異なる前記ソフトウェアの動作を制御するための第2のライセンスを発行するために必要なシリアル番号の入力を受け付ける受付ステップと、
    前記保持ステップにおいて保持された前記第1のライセンスに対応するシリアル番号と前記受付ステップにおいて受け付けられたシリアル番号とが異なるか否かを確認する確認ステップと、
    前記確認ステップにおいて異なることが確認された場合、第1のライセンスをライセンスサーバへ返却するとともに、前記受付ステップにおいて受け付けられたシリアル番号を基に前記ライセンスサーバが発行した前記第2のライセンスに基づき前記ソフトウェアの制御を行う制御ステップを含むことを特徴とする方法。
  9. 発行されたライセンスに基づきソフトウェアの動作を制御する情報処理装置で実行されるプログラムであって、
    前記ソフトウェアの動作を制御するための第1のライセンスを発行するために入力されたシリアル番号を保持する保持ステップと、
    バージョンが異なる前記ソフトウェアの動作を制御するための第2のライセンスを発行するために必要なシリアル番号の入力を受け付ける受付ステップと、
    前記保持ステップにおいて保持された前記第1のライセンスに対応するシリアル番号と前記受付ステップにおいて受け付けられたシリアル番号とが異なるか否かを確認する確認ステップと、
    前記確認ステップにおいて異なることが確認された場合、第1のライセンスをライセンスサーバへ返却するとともに、前記受付ステップにおいて受け付けられたシリアル番号を基に前記ライセンスサーバが発行した前記第2のライセンスに基づき前記ソフトウェアの制御を行う制御ステップを含むことを特徴とするプログラム。
  10. 発行されたライセンスに基づきソフトウェアの動作を制御する情報処理装置で実行されるプログラムを記憶した記憶媒体であって、
    前記ソフトウェアの動作を制御するための第1のライセンスを発行するために入力されたシリアル番号を保持する保持ステップと、
    バージョンが異なる前記ソフトウェアの動作を制御するための第2のライセンスを発行するために必要なシリアル番号の入力を受け付ける受付ステップと、
    前記保持ステップにおいて保持された前記第1のライセンスに対応するシリアル番号と前記受付ステップにおいて受け付けられたシリアル番号とが異なるか否かを確認する確認ステップと、
    前記確認ステップにおいて異なることが確認された場合、第1のライセンスをライセンスサーバへ返却するとともに、前記受付ステップにおいて受け付けられたシリアル番号を基に前記ライセンスサーバが発行した前記第2のライセンスに基づき前記ソフトウェアの制御を行う制御ステップを含むプログラムを記憶した記憶媒体。
JP2015138116A 2015-07-09 2015-07-09 情報処理装置、方法、プログラムおよび記憶媒体 Pending JP2017021538A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015138116A JP2017021538A (ja) 2015-07-09 2015-07-09 情報処理装置、方法、プログラムおよび記憶媒体
EP16175179.7A EP3115917B1 (en) 2015-07-09 2016-06-20 Information processing apparatus, method, and program
SG10201605248VA SG10201605248VA (en) 2015-07-09 2016-06-24 Information processing apparatus, method, and storage medium
US15/201,262 US10169596B2 (en) 2015-07-09 2016-07-01 Information processing apparatus, method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015138116A JP2017021538A (ja) 2015-07-09 2015-07-09 情報処理装置、方法、プログラムおよび記憶媒体

Publications (1)

Publication Number Publication Date
JP2017021538A true JP2017021538A (ja) 2017-01-26

Family

ID=56148206

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015138116A Pending JP2017021538A (ja) 2015-07-09 2015-07-09 情報処理装置、方法、プログラムおよび記憶媒体

Country Status (4)

Country Link
US (1) US10169596B2 (ja)
EP (1) EP3115917B1 (ja)
JP (1) JP2017021538A (ja)
SG (1) SG10201605248VA (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3754522A4 (en) * 2018-02-13 2020-12-23 Sony Corporation ELECTRONIC DEVICE, INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, PROGRAM AND INFORMATION PROCESSING SYSTEM
US10838715B1 (en) 2019-05-03 2020-11-17 Servicenow, Inc. Efficient automatic population of downgrade rights of licensed software
WO2021205889A1 (ja) * 2020-04-08 2021-10-14 ソニーグループ株式会社 情報処理方法、プログラム、情報処理装置、及び、データ構造
CN114626025A (zh) * 2020-12-09 2022-06-14 台达电子工业股份有限公司 于离线环境下使用的软件授权验证方法
JP2022167508A (ja) * 2021-04-23 2022-11-04 京セラドキュメントソリューションズ株式会社 情報処理装置、設定ツールプログラム及び情報処理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155414B2 (en) * 2000-04-05 2006-12-26 International Business Machines Corporation License compliance verification system
US20050149759A1 (en) * 2000-06-15 2005-07-07 Movemoney, Inc. User/product authentication and piracy management system
US7343297B2 (en) * 2001-06-15 2008-03-11 Microsoft Corporation System and related methods for managing and enforcing software licenses
US8224750B1 (en) * 2003-10-07 2012-07-17 Microsoft Corporation Method and system for upgrading licenses to installed software
JP4827467B2 (ja) * 2004-09-10 2011-11-30 キヤノン株式会社 ライセンス転送システム及びライセンス情報発行サーバ
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
JP5377282B2 (ja) * 2009-12-28 2013-12-25 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
US9342825B2 (en) * 2010-06-10 2016-05-17 International Business Machines Corporation Software license and installation process management within an organization
JP5633306B2 (ja) * 2010-10-29 2014-12-03 株式会社リコー ライセンス管理システム、機能提供装置、ライセンス管理方法、及びライセンス管理プログラム
JP2014035643A (ja) * 2012-08-08 2014-02-24 Canon Inc ライセンス管理システムおよびライセンス管理方法、クライアント装置

Also Published As

Publication number Publication date
EP3115917B1 (en) 2020-05-06
US20170011224A1 (en) 2017-01-12
EP3115917A1 (en) 2017-01-11
US10169596B2 (en) 2019-01-01
SG10201605248VA (en) 2017-02-27

Similar Documents

Publication Publication Date Title
JP6661395B2 (ja) ライセンス管理サーバ、ライセンス管理システム、プログラム
JP5963957B2 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP5058697B2 (ja) 情報処理装置、アプリケーション管理方法、及びコンピュータプログラム
JP5387339B2 (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
US8375381B1 (en) Management user interface for application execution environment
JP5499642B2 (ja) ライセンス管理システム、販売管理装置、ライセンス管理装置、ライセンス管理方法、及びプログラム
JP2017021538A (ja) 情報処理装置、方法、プログラムおよび記憶媒体
JP2009037455A (ja) 情報処理装置、クライアント装置及びライセンス管理システム
JP2011060237A (ja) プログラム導入支援装置、プログラム導入支援システム、表示制御方法、表示制御プログラム、及びそのプログラムを記録した記録媒体
JP2011039875A (ja) プログラム導入支援装置、プログラム導入支援システム、プログラム導入支援方法、及びプログラム導入支援プログラム
KR20130044359A (ko) 라이센스 설치 지원 시스템, 라이센스 설치 지원 방법, 및 비 일시적인 컴퓨터 판독 가능한 기억 매체
JP2015203901A (ja) 管理システム、情報処理装置、管理サーバ、それらの制御方法、およびプログラム
JP2009266149A (ja) ジョブ管理プログラム及びジョブ管理装置
JP7013176B2 (ja) プログラム、情報処理装置、及び制御方法
JP2013084154A (ja) ライセンス管理プログラム及びライセンス管理システム
JP2020017299A (ja) 情報処理装置、その処理方法、及びプログラム
JP7289940B2 (ja) プログラムのセット、記憶媒体、及び情報処理方法
JP5708856B2 (ja) ライセンス管理システム、販売管理装置、ライセンス管理装置、ライセンス管理方法、及びプログラム
JP5768921B2 (ja) ライセンス元判定装置、ライセンス元判定方法、ライセンス元判定システム、及びライセンス元判定プログラム
JP5526663B2 (ja) 情報処理装置、ソフトウェア管理システム、及びソフトウェア管理方法
JP2005208935A (ja) ソフトウェア管理装置及びソフトウェア管理プログラム
Soni et al. Deploy a Spring Boot Application Talking to MySQL in AWS
JP6304427B2 (ja) 情報処理システム及び操作端末
JP2021060662A (ja) 情報処理システム及びその制御方法
JP2013149271A (ja) 情報処理装置、プログラム導入支援システム、表示制御方法、表示制御プログラム、及びそのプログラムを記録した記録媒体