説明

ソフトウェア配布システム

【課題】 従来のソフトウェアおよび関連するライブラリファイルの自動配布を行うソフトウェア配布システムでは、クライアント側に一度ダウンロードしたソフトウェアはネットワークに接続していなくても実行することが可能であった。このため、配布時にユーザ認証等による配布制限を行っても、ダウンロードしたソフトウェアを容易に複製して起動することが可能であった。
【解決手段】 本発明は、ソフトウェアをダウンロードする際、単体では実行不可能な2つ以上のファイルに分割し、ソフトウェア終了時に合成ファイルおよび分割ファイルの一部を削除することで、ダウンロードしたソフトウェアの起動に関するユーザ認証を一貫して管理できるソフトウェア配布システムを提供することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの配布と更新、ダウンロードしたソフトウェアの起動に関するユーザ認証を一貫して管理できるソフトウェア配布システムに関する。
【背景技術】
【0002】
インターネット等のネットワークに接続されたサーバ/クライアント型システムであって、ソフトウェアおよび関連するライブラリファイルの自動配布を行うソフトウェア配布システムが存在する。また、クライアント側でソフトウェア起動時に必要となるライブラリファイルを自動的に更新する機能を有するソフトウェア配布システムが存在する。
【0003】
従来例としては、例えば特許文献1をあげることが出来る。
【特許文献1】特開2002−007136号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来のソフトウェア配布システムでは、クライアント側に一度ダウンロードしたソフトウェアは、ネットワークに接続していなくても実行することが可能であった。このため、配布時にユーザ認証等による配布制限を行っても、ダウンロードしたソフトウェアを容易に複製して起動することが可能であった。ダウンロードしたソフトウェアの起動を制限するには、認証機能をソフトウェアに組み込むか、ダウンロードしたファイルの起動を制限する認証システムを新たに導入する等の必要があった。
【0005】
そこで、本発明では、ソフトウェアの配布と更新、ダウンロードしたソフトウェアの起動に関するユーザ認証を一貫して管理することができるソフトウェア配布システムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明にかかるソフトウェア配布システムおよび配布プログラムは、
ネットワークに接続されたサーバ/クライアント型のシステムであって、
ユーザの認証を行う認証手段を有するクライアントが送信する認証情報を、認証手段を有するサーバに送信し前記サーバから返された値でアプリケーションへのアクセス権を制御するアクセス権制御手段と、
実行可能な配布ファイルを分割する分割手段と、
前記アクセス権に基づいてソフトウェアを配布する配布手段
を備えるサーバと、
ソフトウェアを起動する起動手段と、
前記分割ファイルを合成する合成手段と、
ソフトウェア終了時に合成ファイルおよび分割ファイルの一部を削除する削除手段
を備えるクライアント
から成ることを特徴とする。
【発明の効果】
【0007】
ソフトウェアの配布や更新を行うソフトウェア配布システムにおいて、ソフトウェアダウンロード時に単体では実行不可能な2つ以上のファイルに分割し、ソフトウェア終了時に合成ファイルおよび分割ファイルの一部を削除することで、ダウンロードしたソフトウェアの起動に関するユーザ認証を一貫して管理できるソフトウェア配布システムを提供することができる。
【発明を実施するための最良の形態】
【0008】
以下、本発明にかかる一実施形態のソフトウェア配布システムについて図面を参照して詳細に説明する。
【0009】
図1は、本発明の実施形態におけるソフトウェア配布システム構成図である。図1において、101はネットワーク104を介してソフトウェア管理クライアント102にソフトウェアを配布するソフトウェア管理サーバである。ネットワーク104は、TCP/IPを通信プロトコルとするイントラネットであると仮定し、ソフトウェア管理サーバ101、ソフトウェア管理クライアント102、認証サーバ103は、TCP/IP上で相互に通信可能であるとする。
【0010】
認証手段108は、ユーザがソフトウェア管理クライアント102を起動したときに認証情報117が存在しているかを確認し、存在していない場合はソフトウェア管理サーバ101にアクセスしてユーザ認証を行う手段である。認証手段112は、ソフトウェア管理サーバ101が認証サーバ103にアクセスすると起動し、ソフトウェア管理クライアント102にログインフォーム118を送信する手段である。ソフトウェア管理クライアント102の表示デバイス120上にログインフォームが表示されると、ユーザは入力デバイス121を用いてユーザIDとパスワードを入力し、認証サーバ103に送信する。認証手段112は、送信されたユーザIDとパスワードの整合性をユーザリスト119の情報を元に確認する手段である。アクセス権制御手段105は、認証サーバ103から送信されたユーザIDのソフトウェアに対するアクセス権をアクセス権リスト115から抽出し、ソフトウェアへのアクセスを制御する手段である。分割手段106は、分割情報を記載したソフトウェア情報ファイル114を元に、実行可能なソフトウェアを単体では実行不可能な2つ以上のファイルに分割する手段である。配布手段107は、分割したファイルおよびソフトウェア情報ファイル114をソフトウェア管理クライアント102に配布する手段である。合成手段109は、ソフトウェア情報ファイル116を元に、ダウンロードした分割ファイルを実行可能なソフトウェアに合成する手段である。起動手段110は、合成されたソフトウェアを実行する手段である。削除手段111は、ソフトウェア終了時に合成ファイルおよび分割ファイルの一部を削除する手段である。
【0011】
図2〜7は、ユーザがソフトウェア管理クライアントを起動してから、ソフトウェアを終了するまでのフローチャート図である。以下、詳細に説明する。
【0012】
[Step1-1]
ユーザがソフトウェア管理クライアントを起動し、実行するソフトウェアをソフトウェア管理サーバに要求する。
【0013】
[Step1-2]
ソフトウェア管理クライアントは認証手段を起動し、認証手段は次の処理を実行する。
【0014】
[Step1-2-1]
ソフトウェア管理クライアントに認証情報が存在するか確認する。存在する場合は、Step1-3に進む。存在しない場合は、Step1-2-2に進む。
【0015】
今、認証情報は存在しないものとして、Step1-2-2に処理を進める。
【0016】
[Step1-2-2]
ソフトウェア管理サーバにアクセスする。
【0017】
[Step1-2-3]
ソフトウェア管理サーバは認証サーバにアクセスする。
【0018】
[Step1-2-4]
認証サーバはログインフォームをソフトウェア管理クライアントに送信する。
【0019】
[Step1-2-5]
ソフトウェア管理クライアントはログインフォームを表示デバイス上に表示する。今、ログインフォームは図8のような構成で表示されているものとする。
【0020】
[Step1-2-6]
ユーザはログインフォーム中のテキスト入力部にユーザIDとパスワードを入力し、送信ボタンを選択し、入力したデータを認証サーバに送信する。
【0021】
今、ユーザは以下のデータを入力したものとする。
【0022】
{ユーザID、パスワード}={higuchi、 canon}
[Step1-2-7]
認証サーバは、ユーザリストからユーザIDと一致するIDを持つレコードを抽出する。今、ユーザリストには図9に示すようなデータが保存されているものとする。
【0023】
[Step1-2-8]
ユーザIDとパスワードが一致するレコードが存在するならば、ユーザIDをソフトウェア管理サーバに送信する。存在しないならば、エラーメッセージをソフトウェア管理クライアントに送信し、処理を終了する。
【0024】
今、ユーザIDとパスワードが一致するレコードが存在したものとし、ユーザIDをソフトウェア管理サーバに送信する。
【0025】
[Step1-3]
ソフトウェア管理サーバは、アクセス権制御手段を起動する。起動されたアクセス権制御手段は、認証サーバから送信されたユーザIDのソフトウェアに対するアクセス権をアクセス権リストから抽出し、ソフトウェアへのアクセス権があるか判定する。アクセス権がない場合、エラーメッセージをソフトウェア管理クライアントに送信し、処理を終了する。アクセス権がある場合、Step1-4に進む。
【0026】
今、要求したソフトウェアに対するアクセス権があったものとする。
【0027】
[Step1-4]
ソフトウェア管理サーバは分割手段を起動し、分割手段は次の処理を実行する。
【0028】
[Step1-4-1]
ソフトウェア管理サーバはソフトウェア情報ファイルから分割情報を抽出する。
【0029】
ソフトウェア情報ファイルの例を図10に示す。
【0030】
今、以下の分割情報が抽出されたものとする。
【0031】
<version="1.0">
<target="/software/archive/software1.0.jar">
<filename="divide1.jar">
<file="core.class"/>
</filename>
<other="divide2.jar"/>
</target>
</version>
これは、要求されたソフトウェアが実行するのに必要な"/software/archive"ディレクトリにある"software1.0.jar"アーカイブファイルから、"core.class"ファイルを抽出して"divide1.jar"ファイルを作成し、残りのファイルから"divide2.jar"ファイルを作成することが示されている。
【0032】
[Step1-4-2]
ソフトウェア管理サーバは、抽出した分割情報に基づいて実行可能なソフトウェアを単体では実行不可能な2つ以上のファイルに分割する。
【0033】
[Step1-5]
ソフトウェア管理サーバは配布手段を起動し、配布手段は次の処理を実行する。
【0034】
[Step1-5-1]
ソフトウェア管理サーバはソフトウェア情報ファイルから、ソフトウェアの実行に必要なファイルセットを特定する。今、以下のデータが抽出されたものとする。
【0035】
<version="1.0">
<fileset>
<filepath="/software/archive/divide1.jar"/>
<filepath="/software/archive/divide2.jar"/>
<filepath="/software/lib/lib.jar"/>
<fileset>
</version>
これは、要求したソフトウェアが実行するのに必要なファイルは、"/software/archive"ディレクトリにある"divide1.jar"ファイルと"divide2.jar"ファイル、"/software/lib"ディレクトリにある"lib.jar"ファイルであることが示されている。
【0036】
[Step1-5-2]
ソフトウェア管理サーバは、抽出したデータを記述したソフトウェア情報ファイルをソフトウェア管理クライアントに送信する。
【0037】
[Step1-5-3]
ソフトウェア管理クライアントは、保存ディレクトリにソフトウェア情報ファイルが存在するか確認する。存在する場合はStep1-5-4に進む。存在しない場合はStep1-5-6に進む。
【0038】
今、以下の内容が記述されたソフトウェア情報ファイルが存在したものとして、Step1-5-4に進む。
【0039】
<version="1.0">
<fileset>
<filepath="/software/archive/divide1.jar"/>
<filepath="/software/archive/divide2.jar"/>
<filepath="/software/lib/lib.jar"/>
<fileset>
</version>
[Step1-5-4]
ソフトウェア管理クライアントは、Step1-5-2で送信されたソフトウェア情報ファイルと保存ディレクトリにあるソフトウェア情報ファイルのバージョン情報を比較する。ソフトウェア管理クライアントにあるバージョン情報のほうが古い場合、Step1-5-6に進む。バージョン情報が等しい場合Step1-5-5に進む。
【0040】
今、両者のバージョン情報は等しいので、Step1-5-5に進む。
【0041】
[Step1-5-5]
ソフトウェア管理クライアントは、ソフトウェア情報ファイルに記述されたファイルセットが保存ディレクトリに存在するか確認する。全て存在する場合はStep1-6に進む。一部のファイルが存在しない場合は、Step1-5-6に進む。
【0042】
[Step1-5-6]
ソフトウェア管理クライアントは、ダウンロードが必要なファイルセットを、ソフトウェア管理サーバに要求する。
【0043】
[Step1-5-7]
ソフトウェア管理サーバは、要求されたファイルセットをソフトウェア管理クライアントに送信する。
【0044】
[Step1-5-8]
Step1-5-7で送信されたソフトウェアに必要なファイルセットを、ソフトウェア保存ディレクトリに保存する。今、以下の場所にファイルセットを保存したものとする。
【0045】
C:\software\1.0\
[Step1-6]
ソフトウェア管理クライアントは合成手段を起動し、合成手段は次の処理を実行する。
【0046】
[Step1-6-1]
ソフトウェア管理クライアントはソフトウェア情報ファイルから合成情報を抽出する。
【0047】
今、以下の分割情報が抽出されたものとする。
【0048】
<version="1.0">
<target="/software/archive/software1.0.jar">
<filename="divide1.jar">
<file="core.class"/>
</filename>
<other="divide2.jar">
</other>
</target>
</version>
これは、要求されたソフトウェアが実行するのに必要な"software1.0.jar"ファイルは、"/software/archive"ディレクトリにある"divide1.jar"ファイルおよび"divide2.jar"ファイルを合成して作成することを示されている。
【0049】
[Step1-6-2]
ソフトウェア管理サーバは、抽出した合成情報に基づいて実行可能なソフトウェアに合成する。
【0050】
[Step1-7]
ソフトウェア管理クライアントは起動手段を起動し、Step1-6で合成したファイルを用いてソフトウェアを実行する。
【0051】
[Step1-8]
ソフトウェア終了後、ソフトウェア管理クライアントは削除手段を起動し、Step1-6で合成したファイルおよびソフトウェア情報ファイルに基づいて分割ファイルの一部を削除する。
【0052】
これにより、ダウンロードしたソフトウェアの起動に関するユーザ認証を一貫して管理することができる。
【図面の簡単な説明】
【0053】
【図1】実施形態のソフトウェア配布システム構成図である。
【図2】実施形態のソフトウェア配布システムのフローチャート図である。
【図3】認証手段を示すフローチャート図である。
【図4】アクセス権制御手段を示すフローチャート図である。
【図5】分割手段を示すフローチャート図である。
【図6】配布手段を示すフローチャート図である。
【図7】合成手段を示すフローチャート図である。
【図8】ログインフォームのイメージ図である。
【図9】ユーザリストの例を示す図である。
【図10】ソフトウェア情報ファイルの例を示す図である。

【特許請求の範囲】
【請求項1】
ネットワークに接続されたサーバ/クライアント型のシステムであって、
ユーザの認証を行う認証手段を有するクライアントが送信する認証情報を、認証手段を有するサーバに送信し前記サーバから返された値によりアプリケーションへのアクセス権を制御するアクセス権制御手段と、
実行可能な配布ファイルを分割する分割手段と、
前記アクセス権に基づいてソフトウェアを配布する配布手段
を備えるサーバと、
ソフトウェアを起動する起動手段と、
前記分割ファイルを合成する合成手段と、
ソフトウェア終了時に合成ファイルおよび分割ファイルの一部を削除する削除手段
を備えるクライアント
から成ることを特徴とするソフトウェア配布システム。
【請求項2】
ネットワークに接続されたサーバ/クライアント型のシステムであって、
ユーザの認証を行う認証工程を有するクライアントが送信する認証情報を、認証工程を有するサーバに送信し前記サーバから返された値でアプリケーションへのアクセス権を制御するアクセス権制御工程と、
実行可能な配布ファイルを分割する分割工程と、
前記アクセス権に基づいてソフトウェアを配布する配布工程
を備えるサーバと、
ソフトウェアを起動する起動工程と、
前記分割ファイルを合成する合成工程と、
ソフトウェア終了時に合成ファイルおよび分割ファイルの一部を削除する削除工程
を備えるクライアント
から成ることを特徴とするソフトウェア配布プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2007−109157(P2007−109157A)
【公開日】平成19年4月26日(2007.4.26)
【国際特許分類】
【出願番号】特願2005−301862(P2005−301862)
【出願日】平成17年10月17日(2005.10.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】