(57)【特許請求の範囲】
【請求項１】
サーバ装置がネットワークを介してクライアント端末にソフトウェアを提供するソフトウエア流通方法において、
前記サーバ装置は、ソフトウェアの購入が可能なクライアント端末と共有する共有鍵及び当該クライアント端末の購入鍵とを対応付けて記憶する第１の記憶手段を備え、
前記クライアント端末は、単独で動作可能な能動機能部ソフトウェアのファイルと、当該能動機能部ソフトウェアにより復号され、当該能動機能部ソフトウェアに組み込まれて動作可能となる少なくとも１つの受動機能部ソフトウェアのファイルを含むソフトウエアをインストールするための第２の記憶手段を備え、
前記クライアント端末が前記サーバ装置へ、所望のソフトウエアの提供を要求するためのソフトウェア要求を送信し、
前記サーバ装置が、前記ソフトウェア要求により指定されたソフトウエアに対応する能動機能部ソフトウェア及び受動機能部ソフトウェアの各ファイルと、各ファイルのバージョン情報とを示すインストールリストを前記クライアント端末へ送信し、
前記クライアント端末が、前記インストールリストの各ファイル及びバージョン情報と、前記第２の記憶手段にインストールされている各ファイル及び各ファイルのバージョン情報とを比較して、当該インストールリストからダウンロードを要求するファイルを選択し、当該クライアント端末を認証するための購入鍵を含み、当該選択されたファイルを要求するためのダウンロード要求を前記サーバ装置へ送信し、
前記サーバ装置が、前記能動機能部ソフトウェアのファイルが前記ダウンロード要求で指定されている場合には、当該能動機能部ソフトウェアを前記クライアント端末へダウンロードし、暗号化すべき前記受動機能部ソフトウェアのファイルが前記ダウンロード要求で指定されている場合には、当該受動機能部ソフトウェアのファイルを、前記ダウンロード要求に含まれる購入鍵に対応付けて前記第１の記憶手段に記憶されている共有鍵で暗号化して、前記クライアント端末へダウンロードし、
前記クライアント端末が、前記サーバ装置からダウンロードされたファイルを、前記第２の記憶手段にインストールすることを特徴とするソフトウエア流通方法。
【請求項２】
前記クライアント端末は、前記ソフトウェア要求を送信する際に、当該ソフトウェアのインストールに関連する当該クライアント端末の環境判定結果を併せて送信し、
前記サーバ装置は、前記環境判定結果に応じたインストールリストを送信することを特徴とする請求項１に記載のソフトウエア流通方法。
【請求項３】
前記クライアント端末が、前記第２の記憶手段にインストールしたファイルのうちの前記能動機能部ソフトウェアを実行することにより、前記第２の記憶手段にインストールしたファイルのうちの暗号化された前記受動機能部ソフトウェアのファイルが、当該クライアント端末が有する前記共有鍵で復号され、得られた前記受動機能部ソフトウエアが前記能動機能部ソフトウエアに組み込まれて動作可能となることを特徴とする請求項１記載のソフトウェア流通方法。
【請求項４】
前記クライアント端末は、前記サーバ装置と共有する前記共有鍵を当該クライアント端末固有のプロダクトＩＤを用いて暗号化して記憶する第３の記憶手段をさらに備え、
前記クライアント端末が、前記第２の記憶手段にインストールしたファイルのうちの前記能動機能部ソフトウェアを実行することにより、前記第３の記憶手段に記憶された暗号化された共有鍵が前記プロダクトＩＤを用いて復号され、この復号された共有鍵を用いて、前記第２の記憶手段にインストールされたファイルのうち暗号化された前記受動機能部ソフトウェアのファイルが復号されて、
得られた前記受動機能部ソフトウエアが前記能動機能部ソフトウエアに組み込まれて動作可能となることを特徴とする請求項１記載のソフトウェア流通方法。
【請求項５】
前記インストールリストには、前記指定されたソフトウェアに対応するファイルのうち、複数個に分割してダウンロードするファイルについては分割に関する情報が含まれていることを特徴とする請求項１に記載のソフトウエア流通方法。
【請求項６】
前記クライアント端末は、前記サーバ装置から所望のソフトウェアをダウンロードするためのダウンロードプログラムをインストールする第４の記憶手段をさらに備え、
前記第４の記憶手段にインストールされるダウンロードプログラムを実行することにより、前記ソフトウエア要求を前記サーバ装置へ送信し、
前記ソフトウェア要求を受けて前記サーバ装置から送信される前記インストールリストは、ダウンロードプログラムの最新のバージョン情報を含み、
前記クライアント端末は、現在実行中のダウンロードプログラムのバージョンが、前記インストールリスト内のダウンロードプログラムのバージョン情報よりも古いとき、前記サーバ装置に要求して、当該サーバ装置からダウンロードされた最新のバージョンのダウンロードプログラムを前記第４の記憶手段にインストールし、前記最新のバージョンのダウンロードプログラムを実行することにより、ダウンロードを要求するファイルを選択して、前記ダウンロード要求を前記サーバ装置へ送信する請求項１記載のソフトウェア流通方法。
【請求項７】
ネットワークを介してクライアント端末にソフトウェアを提供するサーバ装置において、
ソフトウェアの購入が可能なクライアント端末と共有する共有鍵及び当該クライアント端末の購入鍵とを対応付けて記憶する記憶手段と、
前記クライアント端末から送信されたソフトウェア要求を受信する手段と、
前記ソフトウェア要求により指定されたソフトウエアに対応する、単独で動作可能な能動機能部ソフトウェア及び当該能動機能部ソフトウェアに組み込まれて動作可能となる少なくとも１つの受動機能部ソフトウェアの各ファイルと、各ファイルのバージョン情報とを示すインストールリストを前記クライアント端末へ送信する手段と、
前記クライアント端末から、当該クライアント端末を認証するための購入鍵を含み、前記インストールリストを基に選択されたファイルを要求するためのダウンロード要求を受信する手段と、
前記能動機能部ソフトウェアのファイルが前記ダウンロード要求で指定されている場合には、当該能動機能部ソフトウェアを前記クライアント端末へダウンロードし、暗号化すべき前記受動機能部ソフトウェアのファイルが前記ダウンロード要求で指定されている場合には、当該受動機能部ソフトウェアのファイルを、前記ダウンロード要求に含まれる購入鍵に対応付けて前記第１の記憶手段に記憶されている共有鍵で暗号化して、前記クライアント端末へダウンロードする手段と、
を具備したことを特徴とするサーバ装置。
【請求項８】
ネットワークを介してサーバ装置から提供されたソフトウエアを利用するクライアント装置において、
前記サーバ装置と共有する共有鍵及び購入鍵を前記サーバ装置へ送信する手段と、
前記共有鍵を暗号化して記憶する第１の記憶手段と、
単独で動作可能な能動機能部ソフトウェアのファイルと、当該能動機能部ソフトウェアにより復号され、当該能動機能部ソフトウェアに組み込まれて動作可能となる受動機能部ソフトウェアの前記共有鍵で暗号化された少なくとも１つの暗号化ファイルを含むソフトウエアをインストールするための第２の記憶手段と、
所望のソフトウエアの提供を要求するためのソフトウェア要求を、前記サーバ装置へ送信するソフトウエア要求送信手段と、
前記ソフトウェア要求により指定されたソフトウエアに対応する前記能動機能部ソフトウェア及び前記受動機能部ソフトウェアの各ファイルと、各ファイルのバージョン情報を示すインストールリストを受信する手段と、
前記インストールリストの各ファイル及び各ファイルのバージョン情報と、前記第２の記憶手段にインストールされている各ファイル及び各ファイルのバージョン情報とを比較して、当該インストールリストからダウンロードを要求するファイルを選択し、当該クライアント端末を認証するための前記購入鍵を含み、当該選択されたファイルを要求するためのダウンロード要求を前記サーバ装置へ送信するダウンロード要求送信手段と、
前記サーバ装置からダウンロードされたファイルを前記第２の記憶手段にインストールする手段と、
を具備したことを特徴とするクライアント装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェア流通システムに関する。
【０００２】
【従来の技術】
計算機および計算機ネットワークが普及し、ソフトウェアの流通は現金などを用いた従来の取引形態によらずとも、全て電子的に行うことができるようになった。
【０００３】
今日では、インターネットの急速な普及に伴って、プログラムなどの情報を電子的に配布し課金するシステムが広く行われている。
インターネット等のネットワークを介してのソフトウェアの流通に必要とされる主な要求課題としては、（１）ソフトウェアを入手しようとする人が誰であるかを特定し安全に課金を行うこと（高いセキュリティ性）、（２）ソフトウエアは比較的容易にコピー（複写）を作成することのできるため、その対応策であるソフトウエアの著作権の保護（違法コピーの防止）、（３）ウイルスを含んだソフトウエアの蔓延への取り組み等がある。
【０００４】
従来、計算機ネットワーク上での課金のメカニズムは、暗号技術に基いた認証技術が用いられてきた。例えば、計算機ネットワークを使ってクレジットカード番号を伝える場合、通信回線を盗聴することによって他人がクレジットカード番号を盗めるのでは困るから、クレジットカード番号を暗号化して転送するようになっていた。
【０００５】
また、違法コピー防止の方法も考えられてきた。最も良く使われる方法は、ソフトウェアに何らかの暗号化を施し、データを復号する鍵（暗号鍵やパスワードなど）を持っている人だけが内容を知ることができる方法である。しかし、この方法によっても、パスワード自体を違法にコピーすることによって、ソフトウェアの違法コピーが可能となってしまう。
【０００６】
また、ネットワークを介してプログラム等の情報交換を行うわけであるからウイルスを含んだソフトウエアの蔓延への取り組みは不可欠である。
さらに、ネットワークを介して大容量の情報を送信するわけであるから回線費用等も考慮して通信資源の有効利用を考慮する必要もある。
【０００７】
ユーザの利便性を考慮すれば、ネットワークを介してプログラム等をダウンロードして、それを自端末にインストールする等の操作はパソコンの扱いに不慣れな者にとって酷である。このようなシステムを広く普及させるためには、パソコン、通信等の知識がなくとも簡単に操作できるような仕様であることが要求されるであろう。
【０００８】
また  ネットワークを介しての電子的情報の販売においては、購入した製品に不満があった場合に返品が不可能であるため、その対策も必要である。
また、ネットワークを介してソフトウエアのバージョンアップへの対応が容易に行えるようであれば、ユーザの販売者への信頼が高まり購入意欲を高め、システムの普及も図れるであろう。
【０００９】
【発明が解決しようとする課題】
このように、従来のソフトウエア流通システムは、ユーザの利便性、ネットワークのレスポンス、ソフトウエアの違法コピー等に対しては充分に配慮されていないという問題点があった。
【００１０】
本発明は、ネットワークを介して提供されるソフトウエアの購入要求指示、インストール、頻繁に起こるソフトウエアのバージョンアップ等のさまざまな手続きを簡潔に設定し、ユーザが安全かつ簡便な方法でソフトウエアの利用および決済が行われることを可能とするソフトウエア流通システムを提供することを目的とする。
【００１１】
【課題を解決するための手段】
（１）本発明のソフトウエア流通方法は、ソフトウエア提供者が指定されたソフトウエアをネットワークを介して利用者に提供するソフトウエア流通方法において、利用者側の装置から、指定するソフトウエアの提供を要求するためのソフトウェア要求をソフトウエア提供者へ送信し、ソフトウェア提供者側の装置から、前記ソフトウェア要求により指定されたソフトウエアに対応した複数のファイルのインストール情報をまとめて前記利用者へ送信し、利用者側の装置が、前記複数のインストール情報を参照して要求すべきファイルを選択し、この選択したファイルを要求するためのダウンロード要求を前記ソフトウェア提供者へ送信し、ソフトウェア提供者側の装置から、前記ダウンロード要求に示されるファイルを含むダウンロード情報を送信し、利用者側の装置が、前記ダウンロード情報に従って前記ファイルのインストールを行うことを特徴とする。
【００１２】
本発明によれば、ソフトウェア提供者（サーバ）から複数のファイルのインストール情報（例えばインストールリスト）が送られるため、この中から利用者側の装置（クライアント端末）が自動的に必要なものを選択し、必要なものだけをサーバに要求することが可能となる。そして、サーバから送られるダウンロード情報（要求したファイルの他に例えばインストールの仕方などが含まれていてもよい）に従って必要なファイルをインストールする。
【００１３】
インストール情報には、例えばファイル名が含まれ、既に利用者側に存在するファイル以外のものを自動的に要求することができる。したがって、同じファイルを二度ダウンロードしてしまい、結果的に二重に課金されてしまうようなことを、ユーザの手を煩わせることなく、防ぐことができる。
【００１４】
また、インストール情報には、例えばファイルのバージョン情報が含まれていてもよく、既に利用者側に存在するバージョンより新しいバージョンのものを自動的に要求することができる。
【００１５】
また、インストール情報には、例えばファイルのサイズの情報が含まれていてもよく、利用者側の装置の記憶容量にそのファイルが格納できるだけの余裕があるファイルに限って要求するようなこともできる。
【００１６】
（２）ソフトウェア提供者側の装置と利用者側の装置は、ソフトウエア提供者と利用者とで共有された共有鍵を記憶し、利用者側の装置は、前記ダウンロード要求をこの共有鍵に関連付けて送信し、ソフトウェア提供者側の装置は、前記ダウンロード要求の正当性を自装置の記憶する共有鍵を用いて検査した後に、前記ダウンロード情報を送信するようにしてもよい。
【００１７】
こうすると、サーバは、ダウンロード要求の正当性（例えばソフトウェア料金の決済ができるユーザ本人からの要求であること）が確認された場合にのみダウンロードを許すようなことができる。
【００１８】
（３）ソフトウェア提供者側の装置と利用者側の装置は、ソフトウエア提供者と利用者とで共有された共有鍵を記憶し、ソフトウェア提供者側の装置は、前記ダウンロード情報をこの共有鍵に関連付けて送信し、利用者側の装置は、前記ダウンロード情報の正当性を自装置の記憶する共有鍵を用いて検査した後に、前記ファイルのインストールを行うようにしてもよい。
【００１９】
こうすると、クライアント端末は、正当なサーバからのダウンロード情報である（例えばウィルスが混入していないと判断できる）と確認された場合にのみインストールを実行するようなことができる。
【００２０】
（４）利用者側の装置は、ソフトウエア要求を送信する際に、当該ソフトウエアのインストールに関連する利用者側の環境判定結果（例えばクライアント端末のＯＳが何であるかなど）を併せて送信し、ソフトウェア提供者側の装置は、この環境判定結果に応じて内容の異なる、複数のインストール情報を送信するようにしてもよい。
【００２１】
（５）ソフトウエア提供者から提供されるソフトウエアを、単独で動作可能な能動機能部と、この能動機能部に組み込まれて動作可能となる受動機能部から構成し、ソフトウェア提供者側の装置は、利用者からのダウンロード要求に示されるファイルに前記受動機能部に対応するファイルが含まれる場合に、該受動機能部に対応するファイルについて課金を行い、前記能動機能部に対応するファイルについては無料で提供するようにすることも有効である。
【００２２】
これによれば、例えばまずソフトウェアの試供版を能動機能部としてユーザに無料で提供し、ユーザがそれを気に入れば正規の製品としての機能を実現するための受動機能部を有料で提供することができる。
【００２３】
（６）本発明において課金を行うために、ソフトウェア提供者側の装置と利用者側の装置は、ソフトウエア提供者と利用者とで共有された共有鍵を記憶し、ソフトウェア提供者側の装置は、送信しようとするダウンロード情報に有料部分が含まれる場合には、この共有鍵を用いて該ダウンロード情報の有料部分もしくは全部を暗号化して送信し、利用者側の装置は、前記ダウンロード情報を自装置の記憶する共有鍵を用いて復号化してインストールを行うようにしてもよい。このとき、ソフトウェア提供者側の装置と利用者側の装置が記憶する共有鍵は、利用者のソフトウエア料金の決済に関わる識別情報との対応付けが保証された共有鍵であることが好ましい。
【００２４】
このようにすれば、提供するソフトウェアのうち少なくとも有料部分のファイルは、クライアント端末にダウンロードされると暗号化されたまま格納され、サーバと共有された共有鍵を持っていない限り復号化できない。
【００２５】
（７）そして、この共有鍵をあらかじめ料金決済に関わる識別情報との対応付けが保証されたものとしておけば、ソフトウェア購入の都度セキュリティ性の高いクレジットカード番号等をクライアントからサーバへ送信する必要がなくなり、安全性が確保される。
【００２６】
なお、上記の共有鍵を、クライアント端末毎に一義的に定められるコード情報に基づいて暗号化して、クライアント端末に記憶しておくようにすれば、単純にファイルや共有鍵を違法コピーしてもコード情報を得られなければそのソフトウェアは実行不可能であるため、ソフトウェアの違法コピーにも対処できる。
【００２７】
（８）ソフトウェア提供者側の装置は、１つのファイルを分割して複数のダウンロード情報として提供する場合には、このファイルのインストール情報に分割に関する情報を含めて送信することもできる。
【００２８】
こうすれば、例えば大きなファイルの途中までダウンロードしたところで回線が切れたりした場合に、クライアント端末には分割された複数のデータのうち一部が存在することになり、分割された複数のデータのうち存在しない部分だけをダウンロード要求にてサーバに要求することも可能になる。
【００２９】
（９）利用者側の装置に設けられた、前記ダウンロード要求を送信するためのプログラム、および、前記ダウンロード情報に従ってインストールを行うためのプログラムのうちの少なくとも一方は、それ自体のバージョン情報を持ち、ソフトウェア提供者側の装置は、複数のインストール情報を送信する際に、利用者側のこれらのプログラムに推奨されるバージョン情報を併せて送信し、利用者側の装置は、前記ダウンロード要求の送信もしくは前記インストールに先立ち、利用者側のこれらのプログラム自身のバージョンアップに必要な情報をソフトウエア提供者に要求するようにしてもよい。
【００３０】
（１０）本発明は、指定されたソフトウエアをネットワークを介してクライアント端末に提供するサーバ装置（上記ソフトウエア提供者側の装置）であって、クライアント端末から受信したソフトウェア要求により指定されたソフトウエアに対応した複数のファイルのインストール情報を記述したインストールリストを、該クライアント端末がこれら複数のファイルのうち必要なものを選択できるように、該クライアント端末へ送信するインストールリスト送信手段と、クライアント端末が選択した必要なファイルを示すダウンロード要求を受信し、このダウンロード要求に示されるファイルを含むダウンロード情報を、該クライアント端末がこのダウンロード情報に従って該ファイルをインストールできるように、該クライアント端末へ送信するダウンロード情報送信手段とを具備したことを特徴とする。
【００３１】
（１１）本発明は、ネットワークを介してサーバから提供されたソフトウエアを利用するクライアント装置（上記利用者側の装置）であって、指定するソフトウエアの提供を要求するためのソフトウェア要求を、サーバへ送信するソフトウェア要求送信手段と、このソフトウェア要求の指定するソフトウエアに対応した複数のファイルのインストール情報が記述されたインストールリストをサーバから受信し、この受信したインストールリストを参照して要求すべきファイルを選択し、この選択したファイルを要求するためのダウンロード要求を該サーバへ送信するダウンロード要求送信手段と、このダウンロード要求の示すファイルを含むダウンロード情報をサーバから受信し、この受信したダウンロード情報に従って前記ファイルのインストールを行うダウンロード情報受信手段とを具備したことを特徴とする。
【００３２】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照して説明する。
図１は、本発明に係るソフトウエア流通方法を用いたソフトウエア流通システムの全体の構成を示したもので、主に、ソフトウエアを販売するサーバ１とソフトウエアを購入するクライアント端末２とを、例えばインターネット等のネットワークを介して接続して構成される。
【００３３】
図１に示すソフトウエア流通システムは、ソフトウエアを安全かつ簡便に電子的にユーザに配布して、その配布したソフトウエアへの課金を行うシステムである。すなわち、ユーザは、自端末（クライアント端末）２の例えばブラウザでネットワークを介してサーバ１にアクセスし、所望のソフトウエアの購入要求を送信し、サーバ１では、その要求されたソフトウエアをクライアント端末２にダウンロードすると同時に課金を行うもので、ユーザ側では、自端末のマウスを操作するだけでソフトウエアの購入、そのインストールが可能となる。
【００３４】
さて、図１のソフトウエア流通システムの利用を希望するユーザは、まず、入会ソフトウエアを自端末（例えば、パソコン）２で起動する。
入会ソフトウエア（以下、簡単に入会ソフトと呼ぶこともある）は、主に、クライアント端末２にて所定のシステム設定およびサーバ１へのユーザ登録を行うものである。本実施例においてはサーバーは１つとして書かれているため、そのサーバーにおけるソフトウエア提供者のサイトへの「入会」あるいは「ユーザ登録」として記述しているが、一般には複数のサーバーにアクセスすることができる。その場合、利用する各サーバーごとに共有鍵を管理することになる。
【００３５】
入会ソフトは、サーバ１の入会ソフトウエア格納部２２に予め格納されており、クライアント端末２からの要求に応じて入会ソフトダウンロード機能部１１により、ネットワークを介してクライアント端末２にダウンロードされると同時にクライアント端末２にインストールされる。
【００３６】
入会ソフトウエア機能部３１は、クライアント端末２にインストールされることによりクライアント端末２にて実行可能な状態に設定されて入会ソフトウエアの機能を実行する機能部である。
【００３７】
なお、入会ソフトは、ＣＤ−ＲＯＭ等の記録媒体にて予めユーザに配布されているものであってもよい。
入会ソフトウエア機能部３１が起動されると、まず、所定のシステム設定を行う。
【００３８】
次に、サーバ１へのユーザ登録を行う。まず、サーバ１との間でセキュリティ性の高い情報（例えば、クレジットカード番号、認証情報等）を送受信する際に、これらを暗号化・復号化するための鍵データ（セッション鍵、共有鍵等）を生成し、この生成された鍵データに対し所定の暗号化処理を施し、共有鍵は情報ファイル３４に格納する。
【００３９】
さらに、クライアント端末２に表示される手順に従って、ユーザは、自分の氏名、住所、クレジットカード番号、クレジットカードの有効期限、年齢、生年月日等の個人情報等を入力すると、それらは予めサーバ１との間で定められた暗号鍵を用いて暗号化された後、ネットワークを介してサーバ１に送信される。
【００４０】
サーバ１の入会ソフト受け付け機能部１２にて、暗号化された個人情報および鍵データを受信すると、所定の暗号鍵を用いて復号化を行い、信用照会部１３を介してカード会社との間で与信照会を行い、与信できた場合はデータベース登録部１４を介しての個人情報ファイル２４への個人情報および鍵データの書込み登録処理を終了する。
【００４１】
ユーザ登録が正常に終了して、その旨の通知を受けたクライアント端末２では、ユーザがソフトウエア購入の際、起動すべきプログラム、すなわち、ダウンロードプログラム３５をインストールする。すなわち、ダウンロードプログラム３５は、入会ソフトウエアとともにダウンロードされており、それが入会ソフトウエア機能部３１から吐き出されて、クライアント端末２にインストールされる。
【００４２】
ダウンロードプログラム機能部３２は、クライアント端末２にインストールされ、メモリ上にローディングされ起動されることによりクライアント端末２にて実行可能な状態に設定されてダウンロードプログラムの機能を実行する機能部である。実行可能な状態においては、ダウンロード要求送信部３２１およびダウンロード情報受信部３２２が機能できる。
【００４３】
入会ソフトウエア機能部３１がダウンロードプログラムをインストールする際には、ダウンロードプログラムを自動的に起動するための設定を行う。この設定は、例えば、クライアント端末２で受信したデータのヘッダ部分から、予め定められた識別情報（ここでは、Ｃｏｎｔｅｎｔ−ｔｙｐｅ：Ａｐｐｌｉｃａｔｉｏｎ／ＡＢＣ）を検知したときにダウンロードプログラムを起動するよう所定のファイルに登録することにより設定がなされる。
【００４４】
以上で入会ソフトウエアに具備された機能を用いたユーザ登録は終了する。
次に、ユーザがサーバ１から所望のソフトウエアをダウンロードする際のソフトウエア流通システムの各機能部について説明する。
【００４５】
まず、ユーザは、クライアント端末２の例えばブラウザを起動してマウスを操作することによりサーバ１にアクセスして、所望のソフトウエアをリクエストする。具体的には、ソフトウエア要求送信部３９がインストールリスト送信部１５に対しソフトウエアの提供の要求を送る。その際、自パソコンに関する環境設定の情報を併せて送信しても良い。
【００４６】
この送信要求を受けたサーバ１のインストールリスト送信部１５では、ユーザにより指定されたソフトウエアに対応するインストールリスト（どのファイルをどのようにインストールするかを記述したリスト）をインストールリスト格納部２５から読み出してクライアント端末２に送信する。その際、前記環境設定情報を得た場合には、それに応じてインストールリストを変更して送信する。
【００４７】
クライアント端末２のダウンロードプログラム機能部は、インストールリストを受信するとダウンロード要求送信部３２１がそれを処理し、インストールリストに基づき選択された要求（ダウンロード要求）をサーバ１に送信する。インストールリストには、ユーザが要求したソフトウエアに関して、必要なファイル、各々のバージョン、インストール先、サイズ、レジストリへの登録情報、インストール時に実行すべきプログラムなどが書かれていて、それを基に判断する。例えば、既に最新バージョンのファイルを持っていれば、当該ファイルのダウンロード要求を省略する。
【００４８】
ファイルは持っているがバージョンが古い時にはダウンロード要求が必要であるが、その際、自分の持っているファイルのバージョン情報を送るのが良い。なぜなら、その情報をサーバ側が利用し、最新ファイルを送信するかわりにサイズの小さいパッチ情報を送信することを選択することができるからである。
【００４９】
サーバ１のダウンロード情報送信部１６では、クライアント端末からの要求に応じて、コアソフト格納部２６、受動機能ファイル格納部２７、ライブラリ格納部２８のいずれかからファイルを読み出し、個人情報ファイル格納部２４に格納された個人情報を参照して、予め登録されたユーザであることが確認できたら、読み出したファイルをクライアント端末２に送信する。その際、データの圧縮、必要ならばデータの暗号化等を行う。また、クライアント端末２から要求されたファイルが課金対象のものであるときは、個人情報ファイル格納部２４に格納された個人情報を参照して、所定の課金処理を行う。
【００５０】
予め登録されたユーザであることを確認する方法として最も簡単な方法は、予めソフウエア提供者と利用者とで共有された共有鍵を保存しておき、その情報を利用するものであり、これについては後に詳述する。この場合、例えば送信される要求をその共有鍵に関連付けた何らかのチェック、例えば一方向関数を使ったハッシュ値を付けるなどすればよい。これら認証方法については、知られている一般的な方法を用いれば良く、また認証に使う鍵は必ずしも共有鍵である必要も無い。
【００５１】
クライアント端末２にて実行中のダウンロードプログラムは、ダウンロード情報受信部３２２がサーバ１からダウンロード情報を受信し、エラーがなければ、インストールする。この際もやはり前述した通り共有鍵を用いるなどして認証を行い、例えば偽のサーバからウイルスを含んだソフトウエアがダウンロードされるような被害を防ぐことができる。
【００５２】
コアソフト機能部３３は、サーバ１からダウンロードされたソフトウエアがクライアント端末２にインストールされることによりクライアント端末２にて実行可能な状態に設定されて所定の情報処理の機能を実現する機能部で、前もってインストールされたコアソフト３６が、その起動時に受動機能ファイル３７を組み込むことにより正規の機能を呈するようになっている。
【００５３】
なお、ダウンロードするプログラムはコアソフト、受動機能部以外の汎用のプログラムであってもよく、それは、ライブラリ３８としてサーバ１からダウンロードされる。
【００５４】
インストール済み情報格納部１０１には、サーバ１からクライアント端末２にダウンロードされて、インストールされたコアソフト３６を構成するファイルおよび受動機能部ファイル３７に関する情報（ファイル名、バージョン情報、サイズ等）が登録されるようになっている。
【００５５】
なお、商品としてのソフトウエアは、後述するように、能動機能部ファイルと受動機能部ファイルから構成され、受動機能部ファイルは暗号化されてサーバ１からダウンロードされ、暗号化されたままクライアント端末２に格納される。
【００５６】
コアソフト機能部３３が起動されると、インストール済み情報格納部１０１を検索して、受動機能部ファイルがインストールされているか否かをチェックする。関連する受動機能部ファイルがインストールされているときは、その暗号化された受動機能部ファイルを復号化して、これを組み込むことにより正規の動作を実行するようになっている。
【００５７】
次に、図２を参照して、図１のソフトウエア流通システムで用いられる鍵データの流れの一例を説明する。また、必要に応じて、ユーザ登録時のデータの流れの一例を示した図３も参照する。
【００５８】
入会ソフトウエア機能部３１に具備される乱数生成部５１は、サーバ１とクライアント端末２にて共有される共有鍵６１を乱数で生成する。
この共有鍵６１は、ソフトウエアの違法コピー防止等に用いられるもので、各クライアント端末２に固有のプロダクトＩＤを用いて、例えば、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）等の秘密鍵暗号化方式で暗号化されて情報ファイル格納部３４に鍵ファイル５２として格納される。
【００５９】
また、クライアント端末２にてパスワード６２の設定が可能であるならば、そのパスワード６２を共有鍵６１を用いてハッシュし、その出力を購入鍵６３とする。購入鍵６３は、商品（ソフトウエア）購入の際のユーザ認証に用いられるものである。なお、パスワードがないときは、共有鍵６１をそのまま購入鍵６３としてもよい。
【００６０】
乱数生成部５１は、ユーザ登録時にクライアント端末２でセッション鍵６４および共有鍵６１を生成する。
セッション鍵６４は、ユーザ登録時に個人情報および鍵データ（共有鍵６１、購入鍵６４）を、例えばＤＥＳ等の秘密鍵暗号方式を用いて暗号化する際に用いられる（図３参照）。このとき、セッション鍵６４も、入会ソフトウエアに含まれるソフトウエア販売者との間で予め定められた公開鍵６５を用いてＲＳＡ（Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ）等の公開鍵暗号方式にて暗号化されてサーバ１に送信されるようになっている。
【００６１】
サーバ１でクライアント端末２から送信された、暗号化された個人情報および鍵データ（共有鍵６１、購入鍵６３）、セッション鍵を受信すると、まず、暗号化されたセッション鍵６４をＲＳＡにて復号化し、この復号化されたセッション鍵６４を用いて暗号化された個人情報および鍵データをＤＥＳにて復号化する。その後セッション鍵６４は廃棄される。
【００６２】
サーバ１では、復号化された個人情報、鍵データを個人情報ファイル２４に保存するとともに、個人情報に基づく信用照会を行うようになっている（図３参照）。
【００６３】
なお、信用照会の際には、必要に応じて別経路でクライアント端末２に対し再確認を行うようにしてもよい。
図４は、個人情報ファイル２４に格納される個人情報の記憶例を示したものである。図４に示すように、各ユーザのクライアント端末２から送られてきた鍵データ（共有鍵、購入鍵）とクレジットカード番号、氏名、住所等の個人情報が対応付けされて、ユーザの登録順に記憶されるようになっている。
【００６４】
個人情報ファイル２４に格納された情報は、ここに登録された各ユーザが商品としてのソフトウエアを購入する際のユーザ認証、クレジットカード会社への信用照会とソフトウエアに対する課金処理のために参照される。
【００６５】
図５は、図１のソフトウエア流通システムで用いられる鍵データの流れと、ユーザがサーバ１から商品ソフトウエアをダウンロードする際のデータの流れを説明するためのものである。
【００６６】
サーバ１からクライアント端末２へダウンロードされる商品ソフトウエアのうち、コアソフトは、暗号化されておらず、前述したようにクライアント端末にダウンロードと同時にインストールされている。
【００６７】
一方、受動機能部ファイルをダウンロードする際には、サーバ１では、まず、そのソフトウエアの送信要求を行ったユーザの所定の認証処理および課金処理を行った後、そのユーザとの共有鍵６１を用いて指定された受動機能部ファイルを暗号化し、クライアント端末２にダウンロードする。
【００６８】
クライアント端末２では、暗号化された受動機能部ファイルを受信すると、それを所定の領域（暗号化ソフトウエア格納部４１（図７参照））に格納する。
コアソフトが起動されると、コアソフトは、まず、鍵ファイル５２に格納されている暗号化された共有鍵６１をプロダクトＩＤ６７を用いて復号し、復号化された共有鍵６１を用いて受動機能部ファイルを復号し、これを組み込む。
【００６９】
さて、ここで、本実施形態に係るソフトウエア流通システムにてダウンロードされる商品ソフトウエアの特徴について説明する。
図６は、商品ソフトウエアの構成を模式的に示したものである。図６に示すように、商品ソフトウエアは大きく分けてコアソフト（能動機能部ファイル）３６と受動機能部ファイル３７から構成される。
【００７０】
コアソフト３６は、単独で動作可能な無料で提供される、機能・期間限定版のいわゆる試供用のソフトである。
受動機能部ファイル３７は、ユーザの要求に応じて提供されるもので、すでに配布済みのコアソフト３６の期間限定解除、機能追加（バージョンアップを含む）のためのものである。これ単独では動作せず、コアソフトに組み込まれて動作可能となる。
【００７１】
受動機能部ファイル３７は原則有料で、暗号化されてクライアント端末に配布され、クライアント端末では、暗号化されたまま格納されるデータファイルあるいはプログラムファイルである。
【００７２】
また、コアソフト３６は通常複数のファイルから構成され、サイズが大きく、受動機能部は、比較的サイズが小さいものであると考えてよい。
図７は、コアソフトの機能を説明するための模式図である。
【００７３】
コアソフト３６は、クライアント端末２にてインストールされても、そのままでは完全には動作しない。これに暗号化された受動機能部ファイル３７を復号して追加することによって機能を追加することができる。
【００７４】
つまり、受動機能部ファイル３７を復号する権限のない者が実行しても、全ての機能が動作するわけではない。
コアソフト３６が起動されるとまず、インストール済み情報格納部１０１を検索して、そのコアソフトに関連する受動機能部ファイルがインストールされているか否かをチェックする。関連する受動機能部ファイルがインストールされているときは、その暗号化された受動機能部ファイルを暗号化ソフトウエア格納部４１から読み出し、ソフトウエア復号部３６ａにより共有鍵６１で復号し、結果として得られた復号受動機能ファイル３７を復号ソフトローディング部３６ｂに格納する。このとき、もし、共有鍵６１を得られない場合は、復号ソフトローディング部３６ｂには正しいデータが格納されない。
【００７５】
コアソフト３６は、ここに配置された受動機能部ファイル３７が正しいデータであることを確認する。確認の方法は、例えばここに格納された受動機能部ファイル３７が、コアソフトによってあらかじめ予定されたデータに等しい（正しく復号されている）ことをチェックするという方法と、ここに格納された受動機能部ファイル３７そのものをプログラムとして実行するという方法が代表的である。
【００７６】
このように、商品ソフトウエアをコアソフトと受動機能部ファイルに分けて配布することにより次のような利点がある。
まず、商品ソフトウエアの有料部分だけを受動機能部ファイルとして販売することができる。例えば、コアソフトは、印刷機能と通信機能が制限されたワードプロセッサであり、印刷機能と通信機能はそれぞれ有料のソフトウェアとして販売される。この方法を用いれば、例えばソフトウェアを購入の都度、サーバ１から送信するのではなく、ＣＤ−ＲＯＭや電子掲示板のような誰でも入手し参照することが可能な媒体でコアソフトを無料配布しておき、好評ならば有料部分を購入してもらうということができる。
【００７７】
従来の通信販売の場合、品物が確かめられない制約から、クーリング・オフという制度があるが、形を持たないソフトウェアの場合、一旦購入した物を返品することが不可能である。したがって、コアソフトをまず試供版として顧客に利用してもらうことにより、クーリング・オフのできないことによる顧客の不利益を防ぐことができる。実際に試用した上で、気にいった場合だけ有料の追加機能（受動機能部ファイル）を購入することができる。また、この追加機能は１つだけでなく複数設定することもできるので、「有料」と「無料」の２種類だけでなく、必要な部分だけを適正な価格で買うことができる（不要機能まで抱き合わせ販売されてしまうという不公正流通が防げる）。
【００７８】
次に、暗号化や復号に必要なデータ量が削減できる。一般に、暗号化や復号の計算はデータ量に比例した時間がかかるため、非常に大きなサイズのソフトウェアをその都度暗号化して販売すると、購入（ダウンロード）に時間がかかったり、実行（復号）の際に時間がかかったりするので、暗号化の必要な部分はなるべく小さくする必要がある。
【００７９】
また、データ量が削減できるということは、通信回線が細くても良いということを意味する。つまり、有料の受動機能部を買うための店舗と顧客との通信回線が遅い場合、一般にはダウンロードに時間を要してしまうが、コアソフトだけはＣＤ−ＲＯＭで配布しておいたり、他の高速ネットワークを通じて入手したりしておけば、あとはサイズの小さい暗号化された受動機能部ファイルだけを入手すれば良く、購入に時間がかからなくなる。
【００８０】
さらに、違法コピーへの対策としても用いることができる。すなわち、クライアント端末２では、受動機能部ファイルを復号化する際に用いられる共有鍵６１は、プロダクトＩＤ６７によって暗号化保存するという形態を取り、復号された受動機能部ファイルは、コアソフト３６が実行される際のメモリ上に存在するだけになるので、単純に、鍵ファイル５２、コアソフト３６、暗号化された受動機能ファイル３７の全てをコピーしても、プロダクトＩＤを入手しない限り、その違法コピーされたソフトウエアを実行することは不可能となる。また、ソフトウェアの動作メカニズムを解析して違法コピーを作り出すことは難しく、手間をかけてまで違法コピーする価値はなくなる。
【００８１】
例えば、販売するソフトウェアが書籍である場合、最終的にはメモリ上で計算機等で読める形式の文字列データに変換されてしまうため、そのデータをメモリ上から盗み読むことは比較的簡単にできてしまう。しかし、コアソフト３６は「書籍を読むソフト」としておき、有料の追加機能である個々のソフト（書籍）を受動機能部ファイルとして読み込んで、その内容を画面に表示するという仕組みにしておくことができる。この場合、コアソフト３６が必要なデータ（暗号化されたデータ）を随時復号して表示する仕組みにすれば、書籍のデータ（文字）全部をまとめて読み出すというのは非常に困難になる。
【００８２】
また、復号された受動機能部ファイルは、コアソフト３６が実行される際のメモリ上に存在するだけになるので、コアソフト３６が暗号化ソフトウェアを利用する方法手順を煩雑にすることによって、販売されたソフトウェアの暗号を解く手間が非常に大きくなり、安全性が高まる。
【００８３】
一般に、ネットワークで販売されるソフトウェアは、バージョンアップが比較的頻繁であったり、一時的にしか価値のない情報（例えば天気予報）のようなものである場合が多く、ソフトウェアの違法コピー作成に知恵を絞るよりも、正しくお金を払ってソフトウェアを購入した方がはるかにコストが安くなるため、違法行為を行う意味がなくなり、ソフトウェアの公正な流通が促進される。
【００８４】
次に、図８を参照して、ユーザがサーバ１から所望のソフトウエアをダウンロードする際のより詳細な処理手順、すなわち、ダウンロードプログラム機能部３２の処理手順について説明する。
【００８５】
ユーザは、クライアント端末２の例えばブラウザを起動してマウスを操作することによりサーバ１にアクセスして、サーバ１に対し所望のソフトウエアをリクエストする。このとき、クライアント端末２にて予め実行された環境自動判定結果の内容を記述したファイルもサーバ１に送信される（ステップＳ１）。
【００８６】
この送信要求を受けたサーバ１のインストールリスト送信部１５では、ユーザにより指定されたソフトウエアに対応するインストールリスト（どのファイルをどのようにインストールするかを記述したリスト）をインストールリスト格納部２５から読み出してクライアント端末２に送信する（ステップＳ２）。
【００８７】
図９は、サーバ１から送信されるデータ構成例を示したもので、主に、ヘッダ部とデータ部から構成される。
ヘッダ部には、識別情報７１（Ｃｏｎｔｅｎｔ−ｔｙｐｅ：Ａｐｐｌｉｃａｔｉｏｎ／ＡＢＣ）を含み、クライアント端末２で、この識別情報７１を検知するとダウンロードプログラムを自動的に起動するようになっている（この設定は、入会ソフトウエア機能部３１がダウンロードプログラムをインストールする際になされている）。
【００８８】
データ部には、ここでは例えばインストールリストが挿入されている。図９に示すように、インストールリストには、ダウンロードプログラムの最新バージョン（Ｄｏｗｎｌｏａｄ−ｖｅｒｓｉｏｎ）、サーバ１のアドレス情報（例えば、ＵＲＬ）、複数の「命令」から構成される。
【００８９】
この「命令」は、ユーザがマウスをクリックした際に、何の機能を選択したのかをダウンロードプログラムに知らせるためのもので、例えば、図１０に示すように、どのファイルをどのようにインストールするかを記述した（コアソフトあるいは受動機能の）インストール命令がある。図１１に図１０に示したインストール命令の具体例を示す。
【００９０】
図１１に示したインストール命令の意味は、「ファイル名：ＭＴのｖｅｒｓｉｏｎ１のｄｉｃ２機能のＲｅｖｉｓｉｏｎ３が必要で、これを３個に分割して送信する。１個目と２個目の送信量は５１２Ｋバイトで３個目の送信量は１３９Ｋバイトである。３つのファイルを連結した後に圧縮の解凍をすると７４３９Ｋバイトのファイルになる。」である。このように、図１０に示したインストール命令によりソフトウエアの分割ダウンロードが可能となる。なお、図１０の分割指定のフィールドにおいて、ｎ＝１とすれば一括ダウンロードの指定も可能である。
【００９１】
分割ダウンロードが指定された場合には、各分割データごとに繰り返しサーバにダウンロードを要求する。その際、何番目のデータを要求するのかサーバに対し指定する。例えば、ファイル名に一定の規則の拡張子（例えば、＿ＰＡＲＴ１、＿ＰＡＲＴ２）を付けることによって表現できる。
【００９２】
「命令」には、図１０に示したようなインストール命令の他に、例えば、「ユーザの購入済みソフトのバージョンアップ情報の表示」命令もある。この命令は、この命令文内で指定されたファイルがインストールされていないときは、以下のインストール命令の実行をエラーとするもので、これは、受動機能部を販売する際には、必ずそれに対応するコアソフトがインストールされて正常に動作していることを確認するためのものである。
【００９３】
また、この「命令」は、「このプログラムを実行した結果がこの値ならばこのインストールを行う」といった条件式であっても良い。その際に動かすプログラム自体がインストール命令に書かれていれば、「まずこのプログラムをダウンロードし、それを動かした結果によってこのインストールを行う」という動作が可能なので、こういった複雑なインストール条件が、単純な「命令」の組合わせで実現できる。
【００９４】
例えば、「Ｉｎｓｔａｌｌ  ｃｈｅｃｋｐｒｏｇｒａｍ  １００  ２３０」という命令に続き、「ＩＦ  ｃｈｅｃｋｐｒｏｇｒａｍ  ０  Ｉｎｓｔａｌｌ  ＤＩＣ  ＭＴ／１／ｄｉｃ８．３  １００４００」という命令の書かれているインストールリストを用いれば、「ｃｈｅｃｋｐｒｏｇｒａｍという名前のプログラムをまずダウンロードし、しかる後にそのプログラムを実行し、その結果の値が０であったらＤＩＣをインストールする」という複雑なインストール指定を行うことも容易にできる。
【００９５】
さて、ステップＳ２で、クライアント端末２がサーバ１からインストールリストを受け取ると、図９のヘッダ部に含まれる識別情報７１を検知し、ダウンロードプログラムを起動する。そして、受信したインストールリストに含まれるダウンロードプログラムの最新バージョン（Ｄｏｗｎｌｏａｄ−ｖｅｒｓｉｏｎ）をチェックする（ステップＳ３）。新しくなっていたら、最新のダウンロードプログラムのダウンロードをサーバ１に要求する（ステップＳ４）。サーバ１は、所定のソフトウエア格納部から最新版のダウンロードプログラムのファイルを読み出して、暗号化せずにクライアント端末２にダウンロードする（ステップＳ５）。
【００９６】
クライアント端末２で、最新版のダウンロードプログラムのファイルを受け取ると、他のファイルのダウンロードとは別に扱う。すなわち、現在実行中のダウンロードプログラムに上書きすることはなく、例えば、現在実行中のダウンロードプログラムが「ｄｏｗｎｌｏａｄ１」の名前でインストールされているならば、最新版のダウンロードプログラムを「ｄｏｗｎｌｏａｄ２」の名前でインストールし、さらに、ダウンロードプログラムの自動実行するための設定ファイルの書き換えも行う。その後、現在実行中のダウンロードプログラム「ｄｏｗｎｌｏａｄ１」で処理中のデータをそのまま最新版のダウンロードプログラム「ｄｏｗｎｌｏａｄ２」に渡して、最新版のダウンロードプログラムを起動する。従って、バージョンアップ後は常に「ｄｏｗｎｌｏａｄ１」と「ｄｏｗｎｌｏａｄ２」の２つのプログラムファイルが存在することになる。
【００９７】
このように、最新版のダウンロードプログラムのバージョンアップを他のファイルのダウンロードとは別に扱う理由は、現在実行中のダウンロードプログラムに新しいファイルを上書きしても現在実行中のダウンロードプログラムの実行内容が新しくなるわけではないからである。
【００９８】
次に、クライアント端末２では、インストールリストに記述された、先にユーザにより指定されたソフトウエアを構成するファイル（コアソフト、受動機能部ファイル）のバージョン情報とインストール済み情報格納部１０１に登録されているファイルのバージョン情報とを比較し、バージョンアップされているファイルがあるか否か、あるいは、インストールリストに新たな追加機能ファイル（受動機能部ファイル）が存在するか否か等をチェックして、そのようなファイルが存在する場合には、必要なファイルに関してサーバ１に所定のヘッダ情報を付けたダウンロード要求を出す（ステップＳ６）。
【００９９】
ダウンロード要求には、例えば、現在インストールされているファイルのバージョン等の情報も含まれている。また、ヘッダ情報には、ユーザ登録済みである旨を示す各種情報（例えば、購入鍵等）が含まれている。
【０１００】
サーバ１は、クライアント端末２からのダウンロード要求を受け取り、そのヘッダ情報からユーザ登録済みのユーザであることを認識すると、ダウンロード要求の処理を実行し、図１２に示すようなフォーマットにて、指定されたファイルのダウンロードを行う（ステップＳ７）。
【０１０１】
その際、ダウンロード要求された情報が有料のものである場合には、必要な課金処理を行う。その際、共有鍵はソフトウエア利用者のソフトウエア料金の決済に関わる識別情報との対応付けが入会手続き時に保証されているので、その識別情報を利用して課金を行うのが普通である。さらに、予め暗号化するものと指定された有料の受動機能である場合には共有鍵によってその暗号化も行う。
【０１０２】
図１２において、送信フォーマットのフィールドには送信されるデータの種類が記述される。例えば、「０」はファイル全体を一括して送る、「１」はデータの差分を一括して送る、「２」は分割ダウンロードで全体を送る、「３」は分割ダウンロードでデータの差分を送る、である。
【０１０３】
データ本体のフィールドに挿入されるファイルは、所定の圧縮プログラムにより圧縮されていてもよい。このとき、その解凍プログラムはダウンロードプログラムに含まれていてもよいし、外部のプログラムを読み込むようにしてもよい。
【０１０４】
データサイズはデータ本体のサイズ、ＭＡＳＫは、復号時に共有鍵にかけるマスク、ｃｈｅｃｋ  ｓｕｍは、でデータ本体（暗号化していないもの）に対するチェックサム、ハッシュ値は、データサイズ、データ本体、ｃｈｅｃｋ  ｓｕｍ、ＭＡＳＫの全体にハッシュ関数をかけたものである。ハッシュ値が正しくなければダウンロードプログラムはエラーを検知するようになっている。なお、ＭＡＳＫが「０」のとき、このフォーマットのデータ本体であるファイルは暗号化対象でないことを意味する。
【０１０５】
このように、ダウンロード情報を共有鍵に関連付けておくことにより、正規のサーバ（すなわち自分の共有鍵を知っているサーバ）からのダウンロード情報であることを確認することができ、ウイルスが入り込むなどの不正なインストールが防ぎやすくなる。
【０１０６】
サーバ１では、ファイルの送出後、そのファイルが有料である場合は、購入鍵をキーに個人情報ファイル２４を参照して、そのユーザのクレジットカード番号を取得し、それを基にクレジットカード会社との間で信用照会および課金処理を行う。
【０１０７】
また、ダウンロードの際に、暗号化を要する部分は予め登録された共有鍵で暗号化する。
なお、課金されたがダウンロードの途中で失敗（回線が切れた等）した場合は、そのまま無視する。そのユーザが再度購入操作をしたとき課金処理を行うことなくダウンロードやり直すだけである。
【０１０８】
以上、説明したように、本実施形態に係るソフトウエア流通システムの効果を以下にまとめる。
（１）  自動インストール機能
クライアント端末２における環境自動判定結果をサーバ１に送信し、サーバ１は、それに応じたソフトウエアを配布し、クライアント端末２においてダウンロードプログラムに具備されるインストーラにてダウンロードされたファイルを受け取ると同時にインストールする。これにより、パソコンの知識がなくとも簡単にかつ間違いなくインストールすることが可能となる。
【０１０９】
また、サーバ１からダウンロードされるファイルを自動インストールする際には、クライアント端末２のダウンロードプログラムは、ユーザ登録時に設定された識別情報を認識して処理を実行することにより、ウイルスの入り込む心配がない。
（２）自動課金機能
ユーザ登録時にクレジットカード番号等をサーバ１に登録することにより、ソフト購入時には、所望するソフトウエアの購入要求のみを送信すれば、後はサーバ１にて、その登録されたクレジットカード番号を用いてオンライン信用照会により、即時課金を行う。従って、ユーザは、マウスのクリックだけでソフトウエアの購入ができるため、安価なソフトウエアの販売にも向いている。購入の都度クレジットカードの番号を入力することもないので、安全性が高くなる。
【０１１０】
また、本発明の手順によれば、ユーザは実際に必要な（持っていない）情報のみをダウンロード要求するため、既に持っている情報に関して二重に課金されることは起らない。従来のシステムにおいては、例えば初回のダウンロード時に課金ログをサーバ側に生成し、２回目以降はその課金ログを元に非課金とするといった煩雑なチェックが必要であった。
（３）自動バージョンアップ機能
ダウンロードプログラムは、サーバ１から送信されるインストールリストを参照して、自端末にインストール済みのファイルがバージョンアップされているか否かをチェックし、その結果をユーザに提示する。ユーザはこれをもとに必要なファイルのダウンロード要求をマウス等を操作するだけで簡単行える。しかも、必要な部分のみサーバ１からダウンロードされるわけであるから通信量が少なく回線費用が割安となる。
（４）ソフトウエアの試供
まず、無料の試供版ソフト（コアソフト）を試用した後にそれに付加して正規の動作が可能となる課金対象部分のソフト（受動機能部）を購入する仕組みなので、購入した製品のトラブルや不満が無くなり、返品が不可能な電子的情報の販売に向いている。
（５）違法コピー防止機能
課金対象部分のソフト（受動機能部）は、サーバからダウンロードされてクライアント端末にインストールされる際に暗号化されたまま格納され、ソフトの起動時の度にコアソフトの復号化組込機能にて受動機能部ファイルが復号化されて実行可能なように変換される。そして、その復号化の際に用いられるユーザ固有の共有鍵は、クライアント端末に一義的に定められるプロダクトＩＤにて暗号化されて格納されている。従って、単純に、鍵ファイル５２、コアソフト３６、暗号化された受動機能ファイル３７の全てを違法にコピーしても、プロダクトＩＤを入手しない限り、その違法コピーされたソフトウエアを実行することは不可能となる。
（６）ダウンロードプログラムのバージョンアップ
クライアント端末２のダウンロードプログラムでは、サーバ１から送信されるインストールリストに記述されるダウンロードプログラムのバージョン情報をチェックし、新しくなっていたら最新のダウンロードプログラムのダウンロードを自動的にサーバ１に要求することにより、ダウンロードプログラムのバージョンアップが容易に行え、従って、インストールリストに記述される命令の種類の追加等が容易となる。
（７）ソフトウエアの分割ダウンロード
サイズの大きいソフトウエアをダウンロードする際には、分割してダウンロードすることを指定した命令を、インストールリストに含めることにより、その旨をクライアント端末２に通知することができゆえに分割ダウンロードが可能となる。
【０１１１】
これにより、ダウンロード時にサーバ１とクライアント端末２との間の通信回線に障害が発生して、正常にダウンロードできなくとも、再度マウスのクリック等の簡単な操作により、ダウンロードを継続することができる。
【０１１２】
また、インターネット上では１セッションの通信サイズが制限される場合があるが、そのようなネットワークにおいても、分割ダウンロードを利用することにより、どんなにサイズの大きな情報でも確実に送信することができる。
【０１１３】
なお、上記実施形態において、受動機能部は課金対象のソフトウエアとして説明したが、この場合に限らず、能動機能部への無料の追加機能としても同様に実現することができる。従って、この場合は受動機能部の暗号化は必ずしも行う必要はない。
【０１１４】
【発明の効果】
本発明によれば、ソフトウエア提供者がソフトウエアのインストールにかかわるインストールリストを予め送信し、それを利用者のパソコン等でダウンロードする前に解釈する手順を踏むことにより、ソフトウエアのインストールに際して実際に必要なデータだけを効率良くしかも自動的に転送しインストールすることができるため、簡易な操作でネットワークを介したソフトウエアの流通が可能となる。
【０１１５】
また、必要なデータだけ送ることは、単に送信データ量が少なくなるだけでなく、各データそのものに価格を設定することができるため、ソフトウエアの提供の際に柔軟な課金を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るソフトウエア流通システムの全体の構成図。
【図２】図１のソフトウエア流通システムで用いられる鍵データの流れを説明するための図。
【図３】ユーザ登録時のデータの流れを説明するための図。
【図４】個人情報ファイルに格納される個人情報の記憶例を示した図。
【図５】図１のソフトウエア流通システムで用いられる鍵データの流れと、ユーザがサーバから商品ソフトウエアをダウンロードする際のデータの流れを説明するための図。
【図６】商品ソフトウエアの構成を模式的に示した図。
【図７】コアソフトの機能を説明するための図。
【図８】ダウンロードプログラム機能部の処理手順について説明するための図。
【図９】サーバから送信されるデータの構成例を示した図。
【図１０】インストールリストに記述されるインストール命令の一例を示した図。
【図１１】図１０のインストール命令の具体例を示した図。
【図１２】ダウンロードデータの構成例を示した図。
【符号の説明】
１…サーバ
２…クライアント端末
１１…入会ソフトダウンロード機能部
１２…入会ソフト受け付け機能部
１５…インストールリスト送信部
１６…ダウンロード情報送信部
３１…入会ソフトウエア機能部
３２…ダウンロードプログラム機能部
３３…コアソフト機能部
３６…コアソフト
３７…受動機能ファイル
【図１】
0003766197.tif 000002
【図２】
0003766197.tif 000003
【図３】
0003766197.tif 000004
【図４】
0003766197.tif 000005
【図５】
0003766197.tif 000006
【図６】
0003766197.tif 000007
【図７】
0003766197.tif 000008
【図８】
0003766197.tif 000009
【図９】
0003766197.tif 000010
【図１０】
0003766197.tif 000011
【図１１】
0003766197.tif 000012
【図１２】
0003766197.tif 000013