(57)【要約】      （修正有）【課題】パッケージ化された複数のプログラムのインストール作業を簡易化する新たな態様を確立する。【解決手段】ライセンスキーデータ３０は、ソフトウエアパッケージにおけるライセンスされたプログラムを特定するライセンスデータ（３２，３６，３８）と、ライセンスデータの正当性をソフトウエアパッケージにつき一括して証明する証明データ３４とを含み、証明データ３４に基づいてライセンスデータ（３２，３６，３８）の正当性を検証し、ライセンスされたプログラムのみを実行可能に設定する。【選択図】図３
2006163896.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムが含まれたソフトウエアパッケージがインストールされるコンピュータでライセンス管理に使用されるデータであって、
ソフトウエアパッケージにおけるライセンスされたプログラムをコンピュータに特定させるライセンスデータと、
ライセンスデータの正当性をソフトウエアパッケージにつき一括してコンピュータに証明させる証明データと、
を含む、ことを特徴とするライセンスキーデータ。
【請求項２】
請求項１に記載のライセンスキーデータであって、
ライセンスデータは、ユーザに対して可読となる方式で記述されている、ことを特徴とするライセンスキーデータ。
【請求項３】
請求項１に記載のライセンスキーデータであって、
ソフトウエアパッケージにおけるバージョンアップのライセンスがなされたプログラムをコンピュータに特定させるアップグレードライセンスデータを含み、
証明データは、アップグレードライセンスデータの正当性をソフトウエアパッケージにつき一括してコンピュータに証明させるデータを含む、ことを特徴とするライセンスキーデータ。
【請求項４】
請求項１に記載のライセンスキーデータであって、
ソフトウエアパッケージには、ライセンス対象の少なくとも一つのプログラムの実行に必要となるライセンス対象外の少なくとも一つのプログラムが含まれ、
当該ライセンスキーデータは、ライセンスデータに応じて設定されたデータであって、ライセンス対象外のプログラムのインストールの必要性をコンピュータに与えるデータを含む、ことを特徴とするライセンスキーデータ。
【請求項５】
コンピュータに、
請求項１に記載のライセンスキーデータを読み取らせる手順と、
前記証明データに基づいて前記ライセンスデータの正当性を検証させる検証手順と、
前記ライセンスデータに基づいてライセンスされたプログラムのみを実行可能に設定させる設定手順と、
を実行させる、ことを特徴とするソフトウエアパッケージ制御プログラム。
【請求項６】
請求項５に記載のソフトウエアパッケージ制御プログラムであって、
設定手順においては、ライセンスされたプログラムとライセンスされていないプログラムをともにコンピュータ上に配置させ、ライセンスされたプログラムに対してのみ実行に必要な設定を完遂させることで、ライセンスされたプログラムのみを実行可能に設定させる、ことを特徴とするソフトウエアパッケージ制御プログラム。
【請求項７】
コンピュータに、
請求項１に記載のライセンスキーデータを読み取らせる手順と、
前記証明データに基づいて前記ライセンスデータの正当性を検証させる検証手順と、
前記ソフトウエアパッケージに含まれるプログラムの実行命令がなされた場合に、前記ライセンスデータに基づいてライセンスが付与されているか否かを確認させる確認手順と、
を実行させる、ことを特徴とするライセンス確認プログラム。
【請求項８】
請求項１に記載のライセンスキーデータを読み取る手段と、
前記ソフトウエアパッケージを読み取る手段と、
前記証明データに基づいて前記ライセンスデータの正当性を検証する検証手段と、
前記ライセンスデータに基づいてライセンスされたプログラムのみを実行可能に設定する設定手段と、
を備える、ことを特徴とするコンピュータ。
【請求項９】
コンピュータが各ステップを実行する方法であって、
請求項１に記載のライセンスキーデータを読み取るステップと、
前記証明データに基づいて前記ライセンスデータの正当性を検証するステップと、
前記ライセンスデータに基づいてライセンスされたプログラムのみを実行可能に設定するステップと、
を含む、ことを特徴とするソフトウエアパッケージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンスが設定されたプログラムを管理する技術、特に、複数のプログラムがパッケージ化されている場合の管理技術に関する。
【背景技術】
【０００２】
プログラムのライセンス（使用許諾）は、しばしばライセンスキーの発行によって行われる。すなわち、正規に発行されたライセンスキーが入力された場合にのみプログラムは実行可能となり、これにより、ライセンスを受けていないユーザがプログラムを不正使用すること等を防止できる。
【０００３】
複数のプログラムが販売等にあたってパッケージ化された場合には、一般にプログラム毎にライセンスキーが発行される。下記特許文献１には、複数のプログラムに対応した各ライセンスキーを入力することで、パッケージ化されたライセンスキーを生成する技術が開示されている。これは、プログラムの販売者によるライセンスキーの発行を容易にし、またユーザによるライセンスキーの入力作業量を軽減することを目的としてなされた技術である。
【０００４】
また、従来パッケージ化されたプログラムのインストールにおいては、必要なファイルのみがコンピュータ上に配置されていた。このため、パッチ適用等の部分的修正作業は、インストール済みのプログラムに対してのみ行われていた。
【０００５】
【特許文献１】特開２００２−２１５２５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記特許文献１の技術では、複数のプログラムに対応する各ライセンスキーを入力として1つのパッケージ化ライセンスキーを生成しており、複数のプログラムに対応するライセンスキーの組み合わせの指定が可能である。そのため、発行者側と販売者側があらかじめプログラムの組み合わせを定義しなくても販売者は販売者の必要とする組み合わせのプログラムのライセンスキーを取得できるが、パッケージ化ライセンスキー自体は複数のライセンスキーをひとつにまとめているだけであり、ライセンスキーの数が減っているわけではない。これは発行者と販売者の間での複数プログラムのライセンスキー発行作業を容易にしているに過ぎない。つまり、パッケージ化されたプログラムのインストール（実行可能化の設定）作業等における様々な手続きのうち、単にライセンスキーの発行作業を簡略化しているのみである。
【０００７】
また、上記部分的修正作業に関しては、パッケージ化された複数プログラムをコンピュータにインストールし、パッチ適用（不具合の修正）等の部分的修正処理を行う。その後、別のプログラムに対してライセンス契約が追加的になされ、コンピュータにインストールされた後にさらに上記パッチとは異なる別のパッチを適用した場合、追加プログラムに対しては以前のパッチが適用されておらず、過去に遡って部分的修正処理を実施するといった不都合を生じることがあった。
【０００８】
本発明の目的は、コンピュータにおいて、パッケージ化された複数のプログラムのインストールを簡易化する新たな態様を実現することにある。
【０００９】
本発明の目的は、ライセンスキーに対し、パッケージ化された複数のプログラムのインストール作業を制御するデータを持たせることにある。
【００１０】
本発明のさらに別の目的は、パッケージ化された複数のプログラムの部分的修正作業を容易に実施する技術を確立することにある。
【課題を解決するための手段】
【００１１】
本発明のライセンスキーデータは、複数のプログラムが含まれたソフトウエアパッケージがインストールされるコンピュータでライセンス管理に使用されるデータであって、ソフトウエアパッケージにおけるライセンスされたプログラムをコンピュータに特定させるライセンスデータと、ライセンスデータの正当性をソフトウエアパッケージにつき一括してコンピュータに証明させる証明データと、を含む。
【００１２】
ソフトウエアパッケージは、複数のプログラムがひとまとまりに構成されたソフトウエアである。パッケージ化の態様は様々に可能であり、例えば、複数のプログラムが、一つのファイルにまとめられたり、複数のファイルとして形成され同じ格納媒体や格納ディレクトリに格納されてまとめられたり、複数のファイルとして形成され別々の位置に格納されながらも格納位置を知らせる情報に基づいて関連づけられたりする例を挙げることができる。また、各プログラムは、全体で大きなシステムを形成するなどの機能的関連を有していたり、商品としてまとめて販売されるなどの商品的関連を有していたりするものであってもよいが、特に関連はなく、例えば、単にファイル管理を効率化する目的でパッケージ化されたものであってもよい。ソフトウエアパッケージの中には、個々のプログラムやパッケージ全体に関連した設定ファイルや管理ファイル（プログラム）などが含まれていてもよいことは言うまでもない。ここでは、ソフトウエアパッケージに含まれる複数のプログラムはライセンスに基づいて管理されていることを想定している。
【００１３】
ライセンスキーデータは、このソフトウエアパッケージにおけるライセンスを管理するデータである。ライセンスキーデータには、ライセンスデータと証明データが含まれている。ライセンスデータは、ライセンスされたプログラムをコンピュータに特定させるデータであり、そのプログラムは一つでもよいが典型的には複数である。また、証明データとは、ライセンスデータが適正なものであることをコンピュータに証明させるデータである。証明データは、各プログラム毎に用意されているのではなく、ソフトウエアパッケージを単位として用意されている。証明データは、秘匿情報に基づく一方向的計算、例えば暗号化やハッシュ等の不正利用（改竄、横流しなど）防止技術等を用いて生成される。このため、コンピュータの側では、この証明データを解読や照合等に利用して適正か否かを調べることでライセンスデータ、さらには、ライセンスキーデータ自体の正当性を検証することができる。この意味において証明データはコンピュータで検証されるための被検証データということができる。なお、ライセンスデータと証明データを、ライセンスキーデータにおける少なくとも一部が共通するデータによって表現することも可能である。
【００１４】
このライセンスキーデータは、ソフトウエアパッケージにおいてライセンスされているプログラムの存在を、証明データに基づく正当性の検証を行うことで一括して把握できるように構成されている。したがって、このライセンスキーデータを用いれば、ソフトウエアパッケージがインストール（実行可能化処理）されるコンピュータでインストール処理が簡略化される。特に、このライセンスキーデータは、どのプログラムをインストールすべきか（実行可能にすべきか）を制御する制御データとして利用され得るものであり、ソフトウエアパッケージの利用を従来に比べ大幅に容易化する可能性をもつものである。
【００１５】
本発明のライセンスキーデータの一態様においては、ライセンスデータは、ユーザに対して可読となる方式で記述されている。つまり、ライセンスデータは、ユーザに秘密にされているのではなく、入手容易な表示プログラム等を使えばユーザが内容を理解できるように記述されている。したがって、ユーザは、ライセンスキーデータがどのプログラムのライセンスを与えるかを容易に認識することができる。このため、例えば、ソフトウエアパッケージのインストール制御にライセンスキーデータを用いるような場合、ユーザが制御内容を事前に的確に把握できるといった利点も生じる。
【００１６】
本発明のライセンスキーデータの一態様においては、ソフトウエアパッケージにおけるバージョンアップのライセンスがなされたプログラムをコンピュータに特定させるアップグレードライセンスデータを含み、証明データは、アップグレードライセンスデータの正当性をソフトウエアパッケージにつき一括してコンピュータに証明させるデータを含む。
【００１７】
本発明のライセンスキーデータの一態様においては、ソフトウエアパッケージには、ライセンス対象の少なくとも一つのプログラムの実行に必要となるライセンス対象外の少なくとも一つのプログラムが含まれ、当該ライセンスキーデータは、ライセンスデータに応じて設定されたデータであって、ライセンス対象外のプログラムのインストールの必要性をコンピュータに与えるデータを含む。これにより、ライセンス付与の対象外であるプログラムのインストールの必要性をライセンスキーによって制御することが可能となる。
【００１８】
本発明のソフトウエアパッケージ制御プログラムは、コンピュータに、前記ライセンスキーデータを読み取らせる手順と、前記証明データに基づいて前記ライセンスデータの正当性を検証させる検証手順と、前記ライセンスデータに基づいてライセンスされたプログラムのみを実行可能に設定させる設定手順と、を実行させる。
【００１９】
このソフトウエアパッケージ制御プログラムは、ライセンスキーデータを利用して、ソフトウエアパッケージを実行可能にインストールするためのプログラムである。ソフトウエアパッケージに含まれていても、別途、配布等がなされたものであってもよい。ソフトウエアパッケージ制御プログラムは、ライセンスキーデータがもつライセンスデータに基づいてインストール処理の制御を行っている。
【００２０】
本発明のソフトウエアパッケージ制御プログラムの一態様においては、設定手順においては、ライセンスされたプログラムとライセンスされていないプログラムをともにコンピュータ上に配置させ、ライセンスされたプログラムに対してのみ実行に必要な設定を完遂させることで、ライセンスされたプログラムのみを実行可能に設定させる。つまり、ライセンスに関わらずプログラムはコンピュータ上の実行に必要な位置に配置されるが、ライセンスされていないプログラムに関しては設定ファイルを用意しないなどして実行可能にするための設定を完了させない。これは、ソフトウエアパッケージの各プログラムに対するパッチ適用（不具合の修正）等の部分的修正処理を容易にするための態様である。ライセンスのないプログラムもコンピュータ上に配置しておくことで、ライセンスのあるプログラムと同様の部分的修正処理を行うことが可能となる。したがって、あるプログラムに対するライセンスを後から追加的に購入したような場合にも、そのプログラムに対する部分的修正処理は当初からライセンスを有するプログラムと同様になされていることとなるため、過去に遡って部分的修正処理を実施するといった手間を省くことができることになる。なお、コンピュータの記憶装置資源の有効活用等の理由により、設定手順において、ライセンスされたプログラムをコンピュータ上の所定の位置に配置させ、ライセンスされていないプログラムをコンピュータ上の実行に必要な位置に配置させないことで、ライセンスされたプログラムのみを実行可能に設定させる態様をとることも可能である。
【００２１】
本発明のライセンス確認プログラムは、コンピュータに、前記ライセンスキーデータを読み取らせる手順と、前記証明データに基づいて前記ライセンスデータの正当性を検証させる検証手順と、前記ソフトウエアパッケージに含まれるプログラムの実行命令がなされた場合に、前記ライセンスデータに基づいてライセンスが付与されているか否かを確認させる確認手順と、を実行させる。ライセンス確認プログラムは、ソフトウエアパッケージに含まれるプログラムの実行時に、ライセンスキーデータを参照してライセンスの有無を確認するプログラムである。このライセンス確認プログラムは、実行されるプログラム自体に組み込まれたものであってもよいし、別途設けられたものであってもよい。
【００２２】
本発明のコンピュータは、前記ライセンスキーデータを読み取る手段と、前記ソフトウエアパッケージを読み取る手段と、前記証明データに基づいて前記ライセンスデータの正当性を検証する検証手段と、前記ライセンスデータに基づいてライセンスされたプログラムのみを実行可能に設定する設定手段と、を備える。
【００２３】
本発明のソフトウエアパッケージ制御方法は、コンピュータが各ステップを実行する方法であって、前記ライセンスキーデータを読み取るステップと、前記証明データに基づいて前記ライセンスデータの正当性を検証するステップと、前記ライセンスデータに基づいてライセンスされたプログラムのみを実行可能に設定するステップと、を含む。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明の代表的な実施の形態を説明する。
【００２５】
図１は、本実施の形態に係るソフトウエアパッケージの構成例を説明するブロック図である。ソフトウエアパッケージ１０は、プログラムＡ１２、プログラムＢ１４、プログラムＣ１６の三つのプログラムが一つのファイルにまとめられたものである。この三つのプログラムは、有機的に関連したソフトウエアシステムを構成しており、このようにパッケージ化されて販売される。しかし、ユーザは、利用用途に応じて、この中の少なくとも一つのプログラムを購入（ライセンス契約）すれば対応した機能を利用することができる。
【００２６】
図２は、ソフトウエアパッケージに係るライセンスキーのデータを発行する発行装置２０について、その構成例の概略を示すブロック図である。発行装置２０は、パソコン等のコンピュータに、その動作を規定するプログラムを入力することで構築される。発行装置２０には、ソフトウエア情報入力部２２、発行部２４、ライセンスキー出力部２６が含まれている。ソフトウエア情報入力部は、ライセンスキーを発行するために必要となるデータ（情報）を入力するために設けられている。具体的には、ＧＵＩ（グラフィカルユーザインターフェース）を通じてユーザ入力されたり、販売部署からネットワークを通じてライセンス契約のデータを入力されたりすることで実現される。入力すべき情報としては、対象となるソフトウエアパッケージ名、ライセンス契約したプログラム名、そのプログラムの契約ライセンス数などを挙げることができる。また、不正使用を防止するために、使用するコンピュータの固有識別情報（ＭＡＣアドレスなど）等を入力することもできる。
【００２７】
発行部２４は、ソフトウエア情報入力部２２から入力されたデータを反映させて、ライセンスキーを生成する。生成にあたっては、ライセンスキーの不正使用を防止するため、秘密データに基づく一方向計算処理を行う。
【００２８】
ライセンスキー出力部２６は、生成されたライセンスキーをネットワーク経由で購入者に送信したり、記憶媒体等に出力したりする装置である。
【００２９】
図３は、出力されたライセンスキーのデータ構造を模式的に説明する図である。この例では、ライセンスキー３０は汎用のエディタで読み取り可能なフォーマットで記載されており、Ｐｒｏｄｕｃｔ部３２、Ｋｅｙ部３４、Ｏｐｔｉｏｎ１部３６、Ｏｐｔｉｏｎ２部３８の四つの意味的パートから構成されている。
【００３０】
Ｐｒｏｄｕｃｔ部３２は、対応するソフトウエアパッケージの商品名が記された部分である。Ｋｅｙ部３４は、Ｐｒｏｄｕｃｔ部３２、Ｏｐｔｉｏｎ１部３６及びＯｐｔｉｏｎ２部３８のデータを基に鍵付きのハッシュ計算処理により生成されている。Ｏｐｔｉｏｎ１部３６には、ソフトウエアパッケージにおいてライセンスされたプログラムの組み合わせがデータ化されている。また、Ｏｐｔｉｏｎ２部３８は、各プログラムに与えられるクライアントライセンス数を表す。クライアントライセンス数とは、プログラムにアクセス可能なクライアント数の上限値である。
【００３１】
図４は、図３におけるＯｐｔｉｏｎ１部３６の具体例を示す図である。Ｏｐｔｉｏｎ１部３６は、０または１の値をとるビット列４０，４２，．．．，４８，５０から構成されている。各ビットは設定された順番に並べられた一つ一つのプログラムに対応している。そして、ライセンスを有するプログラムに対応するビットは「１」、ライセンスの無いプログラムに対応するビットは「０」として、ライセンスの有無の情報が表現されている。
【００３２】
このライセンスキー３０において、Ｐｒｏｄｕｃｔ部３２、Ｏｐｔｉｏｎ１部３６、Ｏｐｔｉｏｎ２部３８は、どのソフトウエアパッケージのどのようなプログラムの組み合わせに対して何個のライセンスが付与されたかというライセンスデータを表している。ユーザは、エディタにライセンスキー３０を読み込むなどして、このライセンスデータを把握することができる。これにより、ライセンスキー３０の発行間違いの防止や、他のソフトウエアパッケージのライセンスキーとの混同の回避が容易となる。
【００３３】
Ｋｅｙ部３４は、ライセンスデータの正当性をソフトウエアパッケージにつき一括して証明する証明データとして機能する。つまり、ライセンスデータが記載されたＰｒｏｄｕｃｔ部３２、Ｏｐｔｉｏｎ１部３６またはＯｐｔｉｏｎ２部３８に対して改竄操作を行った場合には、これらから鍵付きハッシュ処理によって計算される値は、Ｋｅｙ部３４の値とは異なるものとなるので、改竄が行われたか否かを検証することが可能となる。
【００３４】
続いて、図５のブロック図を用いて、ソフトウエアパッケージがインストールされるプログラム実行装置６０の概略構成を説明する。プログラム実行装置６０は、パソコン等のコンピュータを利用して構成される装置であり、主たる構成として、プログラム配置部７０、ライセンスキー保持部９０、ファイル保持部１００を備えている。プログラム配置部７０は、演算機能や入出力機能を備えたハードウエアを所定のプログラムに従って動作させることで実現される。また、ライセンスキー保持部９０、ファイル保持部１００は、ハードディスク等の記憶装置を利用して構成される。
【００３５】
プログラム配置部７０には、ライセンスキー入力部７２、検証部７４、ライセンスキー格納部７６、プログラムリスト取得部７８、プログラム配置部８０が設けられている。ライセンスキー入力部７２は、ネットワークやキーボード等からライセンスキーを入力するものである。そして、検証部７４は、入力されたライセンスキーが正当なものであるか否かを検証する。具体的には、図３に示したＰｒｏｄｕｃｔ部３２、Ｏｐｔｉｏｎ１部３６、Ｏｐｔｉｏｎ２部３８に対し鍵付きハッシュ処理を行い、その結果得られたデータがＫｅｙ部３４と完全に同一であれば改竄されていない有効なデータであると判定し、１ビットでも異なれば無効なデータであると判定する。
【００３６】
検証によりライセンスキーが有効であると判定された場合、ライセンスキー格納部７６は、ライセンスキーをライセンスキー保持部９０に格納する。これにより、再度入力することなく、その後必要に応じてライセンスキーが何度でも参照できるようになる。また、プログラムリスト取得部７８は、図３に示したライセンスキーのＯｐｔｉｏｎ１部３６に基づいてライセンスされたプログラムのリストを取得する。プログラム配置部８０は、プログラムをファイル保持部１００に配置し、必要な設定を行うことで、ライセンスされたプログラムを実行可能な状態にする。
【００３７】
このように、プログラム配置部７０においては、ライセンスキーを制御指示データとしてプログラム配置が行われる。このため、インストールの実施にあたってユーザにかかる負担を軽減することが可能となる。なお、制御を行う手段としてのプログラム配置部７０の各部は、対応する動作を実行するプログラムを用いて行うことができる。プログラムは、ソフトウエアパッケージと一緒にパッケージ化して配布されてもよいし、別途当該プログラム実行装置６０に入力され設定されたものであってもよい。
【００３８】
次に、図６を用いて、プログラム配置の詳細と、プログラムの起動について説明する。図６は、図５に示したプログラム実行装置６０の該当部分を示すブロック図であり、同一の構成には同一の番号を付している。この図には、プログラム配置部８０、ライセンスキー保持部９０、ファイル保持部１００、プログラム起動部１１０が示されている。
【００３９】
プログラム配置部８０は、図５を用いて説明したように、ライセンスされたプログラムを実行可能に配置するものである。ここには、プログラムファイル配置部８２と設定ファイル配置部８４が設けられている。プログラムファイル配置部８２は、ソフトウエアパッケージに含まれるプログラムを、ライセンスの有無に関わらずファイル保持部１００に配置するものである。各プログラムは、具体的には、ファイル保持部１００に設けられたプログラムファイル保持部１０２に配置される。一方、設定ファイル配置部８４は、ライセンスされたプログラムについてのみ実行に必要な設定ファイルを設定する。具体的には、設定ファイルは、ファイル保持部１００に設けられた設定ファイル保持部１０４に配置される。これにより、ライセンスされたプログラムは実行可能な状態となる。しかし、ライセンスされていないプログラムは設定ファイルが設定されておらず、プログラムの実行に必要な情報を参照したり、ＯＳに対して必要な情報を付与したりすることができない状態にあり、実行不可能な状態にある。
【００４０】
プログラム起動部１１０は、プログラムを実行する指示がユーザ入力等によって行われた場合に、そのプログラムを実行するための構成である。このプログラム起動部１１０には、起動制御部１１２、検証部１１４、ライセンスキー取得部１１６及びプログラム読み出し部１１８が設けられている。
【００４１】
起動制御部１１２は、プログラムの実行指示を受けると、設定ファイル保持部１０４から当該プログラムの設定ファイルを取得する。また、起動制御部１１２は、検証部１１４に対して、このプログラムのライセンスがあるかを検証させる。検証部１１４は、ライセンスキー取得部１１６に命じて、ライセンスキー保持部９０から対応するソフトウエアパッケージのライセンスキーを取得させる。そして、鍵付きハッシュ処理を行って検証を行い正当なファイルであることを検証した上で、ライセンスデータを参照して、実行可能がなされたプログラムが実行可能であるか否かを確認する。この結果、実行可能であると判断された場合には、プログラム読み出し部１１８がプログラムファイル保持部１０２からそのプログラムを呼び出す。こうして、プログラム起動部１１０は、実行命令に基づいたプログラムを起動する。
【００４２】
この構成においては、次に述べるパッチ適用の容易性を考慮して、全てのプログラムをプログラムファイル保持部１０２に配置している。このため、設定ファイルを不正入手された場合に対応するプログラムを不正使用される虞がある。そこで、プログラムの実行時にライセンスの検証を行うことで、この不正使用を防止している。もちろん、設定ファイルの装着等を困難にすることで、実行時のライセンス検証を省略するようにしてもよい。
【００４３】
続いて、この図６を用いて、プログラムにパッチを当てる場合の態様を説明する。パッチは、プログラムに不具合等が見つかった場合に、部分的にプログラムファイルを交換するためのファイルである。図６に示した構成を用いれば、ソフトウエアパッケージに含まれる全てのプログラムがプログラムファイル保持部１０２に配置されている。したがって、ライセンスの有無にかかわらず、全てのプログラムに対してパッチを当てることができる。この結果、ユーザが後に新たなプログラムについてのライセンスを取得した場合にも、そのプログラムには既にライセンスを持っていたプログラムと同時期に公開されたパッチが当てられている。したがって、過去に遡ってパッチを当てるなどの煩雑な処理を行う必要がなく、パッチ当て操作を容易化することができる。
【００４４】
以上に示した態様は、様々に変形することが可能である。
【００４５】
例えば、図３に示したライセンスキーにおいて、Ｋｅｙ部３４を生成する際に、ＭＡＣアドレス等契約されたマシンを一意に特定する情報を含める例が挙げられる。これにより、他の装置でこのライセンスキーを利用した場合には、Ｋｅｙ部３４のデータを再現することができなくなる。つまり、ライセンスキーの横流しによる不正使用を防止することが可能となる。
【００４６】
また、ライセンスキーにおいて、ライセンスデータをユーザが読めないように記述する態様をとることもできる。図７は、この場合のライセンスキーのデータ構造を説明する模式図である。この例においては、ライセンスキー１３０は、Ｐｒｏｄｕｃｔ部１３２とＫｅｙ部１３４のみから構成されている。Ｐｒｏｄｕｃｔ部１３２は、図３の例と同様に、ソフトウエアパッケージの名称が記載されたものであり、ユーザが読めるように記載されている。しかし、Ｋｅｙ部１３４は、図３の態様とは異なり、Ｏｐｔｉｏｎ１部３６、Ｏｐｔｉｏｎ２部３８に相当するライセンスデータを暗号化することにより生成されている。つまり、Ｋｅｙ部１３４には、ライセンスデータと証明データが含まれることとなる。この構成によれば、ライセンスキー長を短くできる他、一般のユーザがライセンスキー１３０からライセンスデータを読み取ることを防止してセキュリティレベルを上げることができる。
【００４７】
ライセンスキーに対しては、アップグレードの権利情報を含めることができる。例えば図３に示したライセンスキー３０に対してさらに別のＯｐｔｉｏｎを設け、各プログラム毎のアップグレード権限を記載することができる。これにより、ライセンスキーにバージョンアップを実行する際の制御指示を行わせることが可能となる。
【００４８】
また、ソフトウエアパッケージにライセンス対象外のプログラムが含まれる場合に、ライセンスキーを用いてそのインストールを制御させることもできる。これは、図２に示した発行装置２０において、商品としてのプログラムにライセンスが付与された場合に、このプログラムとライセンス対象外のプログラムとの依存関係を確認し、必要に応じてライセンス対象外のプログラムのインストール必要情報をライセンスキーに埋め込むことで実現することができる。この態様によれば、ユーザやソフトウエアパッケージにプログラムの依存関係を与えていなくても、ライセンスキーさえあれば必要なプログラムのインストールが実施できることとなる。
【図面の簡単な説明】
【００４９】
【図１】ソフトウエアパッケージの構成例を示す模式的ブロック図である。
【図２】ライセンスキーの発行装置の構成例を示す概略ブロック図である。
【図３】ライセンスキーのデータ構成例を示す模式図である。
【図４】図３のライセンスキーのＯｐｔｉｏｎ１の具体的態様を示す図である。
【図５】プログラム実行装置の構成例を示すブロック図である。
【図６】図５のプログラム実行装置を詳細に説明するブロック図である。
【図７】ライセンスキーのデータ別の構成例を示す模式図である。
【符号の説明】
【００５０】
１０  ソフトウエアパッケージ、２０  発行装置、２２  ソフトウエア情報入力部、２４  発行部、２６  ライセンスキー出力部、３０，１３０  ライセンスキー、６０  プログラム実行装置、７０  プログラム配置部、７２  ライセンスキー入力部、７４  検証部、７６  ライセンスキー格納部、７８  プログラムリスト取得部、８０  プログラム配置部、８２  プログラムファイル配置部、８４  設定ファイル配置部、９０  ライセンスキー保持部、１００  ファイル保持部、１０２  プログラムファイル保持部、１０４  設定ファイル保持部、１１０  プログラム起動部、１１２  起動制御部、１１４  検証部、１１６  ライセンスキー取得部、１１８  プログラム読み出し部。
【図１】
2006163896.tif 000003
【図２】
2006163896.tif 000004
【図３】
2006163896.tif 000005
【図４】
2006163896.tif 000006
【図５】
2006163896.tif 000007
【図６】
2006163896.tif 000008
【図７】
2006163896.tif 000009