(58)【調査した分野】(Int.Cl.,DB名)
サーバと端末とが通信ネットワークを介して接続され、上記サーバから上記端末にソフトウェアを配信して必要なパラメータを設定することによって上記ソフトウェアを動作させるようになされたソフトウェア配信システムであって、
上記サーバは、
上記ソフトウェアを、起動および最低限の基本動作に必要な基本機能部分とそれ以外の周辺機能部分とに分けて記憶するソフトウェア記憶部と、
上記ソフトウェアに対して設定すべきパラメータおよび当該パラメータの設定命令から成るパラメータ設定ファイルを記憶する設定ファイル記憶部と、
上記ソフトウェアの上記基本機能部分および上記パラメータ設定ファイルを優先して送信し、その後で上記ソフトウェアの上記周辺機能部分を送信するように制御する送信制御部とを備え、
上記端末は、
上記ソフトウェアの上記基本機能部分および上記パラメータ設定ファイルを優先して受信し、その後で上記ソフトウェアの上記周辺機能部分を受信するように制御する受信制御部と、
上記ソフトウェアの上記基本機能部分および上記パラメータ設定ファイルの受信が完了したときに、上記パラメータ設定ファイルを起動し、当該パラメータ設定ファイルに記述されている設定命令に従って上記パラメータを上記ソフトウェアに設定させるように制御するパラメータ設定部とを備え、
上記ソフトウェアは、オペレーティングシステム、アプリケーションおよびデータベースをパッケージングしたソフトウェアコンポーネント群であり、上記オペレーティングシステム、上記アプリケーションおよび上記データベースのそれぞれが、上記アプリケーションの起動および最低限の基本動作に必要な基本機能部分とそれ以外の周辺機能部分とに分けて上記ソフトウェア記憶部に記憶されており、
上記送信制御部および上記受信制御部は、上記オペレーティングシステム、上記アプリケーションおよび上記データベースのそれぞれについての上記基本機能部分および上記パラメータ設定ファイルを優先して送受信し、その後で上記オペレーティングシステム、上記アプリケーションおよび上記データベースのそれぞれについての上記周辺機能部分を送受信するように制御することを特徴とするソフトウェア配信システム。
【背景技術】
【0002】
従来、パソコンなどの端末におけるアプリケーションの利用方法として、CDやDVDなどの記録媒体からアプリケーションを読み出して端末にインストールする方法と、インターネットを介してサーバからアプリケーションを配信して端末にインストールする方法とがある。最近では、インターネットでの通信の高速化に伴い、後者の方法を採用するケースが増えている。
【0003】
端末にインストールしたアプリケーションを実際に動作させる前提として、動作環境に関する種々のパラメータを設定しなければならない場合がある。そのパラメータ設定が簡単にできるアプリケーションもあるが、パラメータ設定が比較的複雑で簡単にはできないアプリケーションもある。例えば、業務用の複雑なアプリケーションの場合は、パラメータの設定が多岐にわたり、専門的な知識が必要となることも多い。そのため、専門知識を持たない利用者自身がパラメータを設定することは困難であった。
【0004】
特に、アプリケーションに加えて、そのアプリケーションの特性に合わせたオペレーティングシステム(OS)やデータベースなどのソフトウェアコンポーネント群を一括して配信しインストールする場合は、アプリケーションのパフォーマンスを最大限に発揮させるために、アプリケーション、OS、データベースのそれぞれに対して多種多様なパラメータを適切に設定する必要がある。しかし、それを行うには高度なスキルとノウハウを要し、経験の少ないユーザには非常に難しいものであった。
【0005】
例えば、1台のパソコンを複数のユーザで共用するために、プロセッサやメモリ、ハードディスクなどの物理的なコンピュータ資源を、仮想化技術を用いて論理的に分割することがある。この場合、分割したそれぞれの論理コンピュータに対して別のアプリケーションやOSをインストールすることにより、1台のパソコンの中に、ユーザ毎に異なる動作環境を作ることができる。
【0006】
このような仮想環境を構築するために、上述したようにアプリケーション、OS、データベースなどのソフトウェアコンポーネント群を一括して配信しインストールすることがある。しかし、構築した仮想環境下でアプリケーションを動作させるために必要なパラメータの設定は、経験の少ないユーザにとっては非常に難しいものであった。また、経験が豊富な専門技術者であっても、パラメータの設定は非常に煩雑で多くの手間を要するものであった。
【0007】
なお、端末の起動時にOSやアプリケーションをサーバから取得して動作させるようにしたネットワークコンピュータシステムにおいて、OSやアプリケーションに加えて個人環境設定ファイルをサーバから取得し、端末の作業環境をユーザに合わせて自動設定するようにした技術が提案されている(例えば、特許文献1参照)。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本実施形態によるソフトウェア配信システムのハードウェア構成例を示す図である。本実施形態によるソフトウェア配信システムは、サーバ100とパソコンなどの端末200とがインターネットなどの通信ネットワークを介して接続可能に構成されている。そして、本実施形態のソフトウェア配信システムは、サーバ100から端末200にソフトウェアを配信して必要なパラメータを設定することによって当該ソフトウェアの動作環境を構築するようになされている。
【0015】
まず、サーバ100の構成について説明する。
図1に示すように、サーバ100は、ハードディスク101、CPU102、RAM103および通信インタフェース104を備えている。ハードディスク101は、ソフトウェアの配信制御を行う配信エージェントプログラム(以下、単に配信エージェント11という)、端末200に配信すべきソフトウェア12〜14、端末200に配信されたソフトウェア22〜24に対して各種パラメータを設定する際に使用するスクリプトファイル15を記憶している。
【0016】
CPU102は、データ格納やプログラム実行のためのワークエリアとしてRAM103を利用しながら、ハードディスク101に格納された配信エージェント11に従って動作することにより、ソフトウェア12〜14の配信制御(送信動作)を実行する。ソフトウェア12〜14の実際の送信は、通信インタフェース104を介して行う。
【0017】
配信エージェント11は、ソフトウェア12〜14の配信制御(送信動作)を行うためのプログラムである。配信エージェント11は、端末200側からソフトウェア12〜14の配信要求を受け取ったことをトリガとして、ソフトウェア12〜14の配信制御(送信動作)を実行する。なお、配信エージェント11が有する機能の詳細については、
図2を用いて後述する。
【0018】
ソフトウェア12〜14は、オペレーティングシステム(OS)12、アプリケーション13およびデータベース14をパッケージングしたソフトウェアコンポーネント群である。このソフトウェアコンポーネント群は、端末200の基本OS(図示せず)上に仮想環境を構築するためのものである。このソフトウェアコンポーネント群を記憶するハードディスク101は、本発明のソフトウェア記憶部に相当する。
【0019】
ハードディスク101に記憶されるソフトウェア12〜14は、アプリケーション13の起動および最低限の基本動作に必要な基本機能部分とそれ以外の周辺機能部分とに分けられている。具体的には、OS12、アプリケーション13およびデータベース14のそれぞれが、アプリケーション13の起動および最低限の基本動作に必要な基本機能部分12a,13a,14aと、それ以外の周辺機能部分12b,13b,14bとに分けてハードディスク101に記憶されている。
【0020】
ここで言う「分けて記憶する」とは、基本機能部分12a,13a,14aと周辺機能部分12b,13b,14bとを明確に異なる記憶領域に分けて記憶することでもよいし、OSの基本情報やソフトウェアの拡張情報が保存される場所に記載されたファイルの管理情報を用いて基本機能部分12a,13a,14aと周辺機能部分12b,13b,14bとを識別可能な状態で記憶することでもよい。
【0021】
なお、上述した配信エージェント11によるソフトウェア12〜14の送信は、基本機能部分12a,13a,14aと、それ以外の周辺機能部分12b,13b,14bとに分けて順次行われる。また、基本機能部分12a,13a,14aおよび周辺機能部分12b,13b,14bのそれぞれは、数キロバイトずつの複数の単位ファイルに分割されており、分割された複数の単位ファイルが順次送信されるようになっている。
【0022】
スクリプトファイル15は、端末200に配信されたソフトウェア22〜24に対して設定すべきパラメータおよび当該パラメータの設定命令から成るパラメータ設定ファイルである。このスクリプトファイル15は、端末200の基本OS(図示せず)上で実行できるプログラムが収められた実行形式ファイルである。このスクリプトファイル15を記憶するハードディスク101は、本発明の設定ファイル記憶部に相当する。
【0023】
スクリプトファイル15は、端末200に仮想環境を構築する複数のユーザ毎に個別に用意されている。すなわち、スクリプトファイル15は、個々のユーザ毎に固有の情報(例えば、ホストID、IPアドレス、アプリケーションライセンスなどの各種パラメータ)を含んだものであり、複数のユーザに対応して複数のスクリプトファイル15がハードディスク101に記憶されている。これに対し、ソフトウェア12〜14は、複数のユーザにおいて共通に使用される仮想環境であり、ハードディスク101に1組記憶されていれば十分である。
【0024】
本実施形態では、ソフトウェア12〜14の提供者が、OS12、アプリケーション13およびデータベース14をハードディスク101に記憶させた上で、個々のユーザに固有でない共通のパラメータを設定する。さらに、OS12、アプリケーション13およびデータベース14を一括して配信するために所定のパッケージング処理を実施する。また、ソフトウェア12〜14の提供者が、端末200で仮想環境を構築する複数のユーザにそれぞれ固有の各種パラメータを記述したスクリプトファイル15を生成し、ハードディスク101に記憶させる。
【0025】
次に、端末200の構成について説明する。
図1に示すように、端末200は、ハードディスク201、CPU202、RAM203および通信インタフェース204を備えている。ハードディスク201は、配信エージェント21、サーバ100から配信されたソフトウェア22〜24、同じくサーバ100から配信されたスクリプトファイル25を記憶している。なお、ソフトウェア22〜24およびスクリプトファイル25は、サーバ100から端末200に配信を受ける前はハードディスク201に記憶されていないことは言うまでもない。
【0026】
CPU202は、データ格納やプログラム実行のためのワークエリアとしてRAM203を利用しながら、ハードディスク201に格納された配信エージェント21またはスクリプトファイル25に従って動作することにより、ソフトウェア22〜24の配信制御(受信動作)やソフトウェア22〜24に対するパラメータ設定などの処理を実行する。ソフトウェア22〜24の実際の受信は、通信インタフェース204を介して行う。
【0027】
配信エージェント21は、ソフトウェア12〜14の配信制御(受信動作)を行うためのプログラムである。配信エージェント21は、ソフトウェア12〜14の配信要求をサーバ100に送信し、その応答として送信されてくるソフトウェア12〜14の配信制御(受信動作)を実行する。なお、配信エージェント21が有する機能の詳細については、
図2を用いて後述する。
【0028】
上述したように、サーバ100から端末200に対するソフトウェア12〜14の送信は、基本機能部分12a〜14aと周辺機能部分12b〜14bとに分けて順次行われる。また、基本機能部分12a,13a,14aおよび周辺機能部分12b,13b,14bのそれぞれは、複数の単位ファイルに分けて順次送信される。端末200では、受信した複数の単位ファイルが配信エージェント21によりアセンブルされるとともに、当該アセンブルによって構築された基本機能部分12a〜14aと周辺機能部分12b〜14bとがさらに配信エージェント21によりアセンブルされ、その結果、インストールと同等の状態となる。
【0029】
図1に示した端末200のソフトウェア22〜24は、このアセンブルが行われた後の状態を示している。このようにしてサーバ100から配信されたソフトウェア22〜24は、端末200の基本OS(図示せず)上で動作することになる。なお、端末200のハードディスク201に記憶されるスクリプトファイル25は、配信元であるサーバ100のハードディスク101に記憶されているスクリプトファイル15と同じものである。
【0030】
図1では、一人のユーザが使用する仮想環境として1組のソフトウェア22〜24および1つのスクリプトファイル25を図示している。これに対し、複数のユーザが使用する複数の仮想環境を端末200に構築する場合は、複数組のソフトウェア22〜24がハードディスク201に記憶される。また、それら複数組のソフトウェア22〜24に対応して、その動作に必要な各種パラメータを設定するためのスクリプトファイル25もハードディスク201に複数記憶される。
【0031】
次に、本実施形態による配信エージェント11,21が有する機能について説明する。
図2は、配信エージェント11,21の機能構成例を示すブロック図である。
図2において、送信制御部1は、サーバ100の配信エージェント11が有する機能構成である。また、受信制御部2およびパラメータ設定部3は、端末200の配信エージェント21が有する機能構成である。
【0032】
なお、送信制御部1は、サーバ100の配信エージェント11がソフトウェア配信用プログラムとして備える送信制御手段に相当する。また、受信制御部2およびパラメータ設定部3は、端末200の配信エージェント21がソフトウェア配信用プログラムとして備える受信制御手段およびパラメータ設定手段にそれぞれ相当する。
【0033】
送信制御部1は、サーバ100のハードディスク101に記憶されているソフトウェア12〜14およびスクリプトファイル15の送信を制御する。具体的には、送信制御部1は、受信制御部2からソフトウェア12〜14の配信要求を受け取ったときに、ソフトウェア12〜14の基本機能部分12a,13a,14aおよびスクリプトファイル15を優先して送信し、その後で周辺機能部分12b,13b,14bを送信するように制御する。
【0034】
サーバ100のハードディスク101に記憶されている複数のスクリプトファイル15のうち、どのスクリプトファイル15を送信するかは、端末200から送られてくる配信要求の中に含まれているユーザ固有の識別情報に基づいて判定する。
【0035】
例えば、ソフトウェア12〜14の提供者がユーザ毎のスクリプトファイル15を生成する際に、各ユーザに固有の識別情報をスクリプトファイル15に記述しておく。あるいは、スクリプトファイル15に関連付けて識別情報を記憶しておく。そして、端末200の受信制御部2がソフトウェア12〜14の配信要求をサーバ100に送信するときに、ユーザ固有の識別情報を配信要求の中に含ませて送るようにする。この配信要求を受け取ったサーバ100の送信制御部1は、配信要求の中に含まれる識別情報をもとに、その識別情報に関連付けられているスクリプトファイル15を特定して送信する。
【0036】
受信制御部2は、ソフトウェア12〜14の配信要求をサーバ100に送信する。そして、その応答としてサーバ100からインターネット300を介して送られてくるソフトウェア12〜14およびスクリプトファイル15の受信を制御する。具体的には、受信制御部2は、ソフトウェア12〜14の基本機能部分12a,13a,14aおよびスクリプトファイル15を優先して受信し、その後で周辺機能部分12b,13b,14bを受信するように制御する。
【0037】
受信制御部2は、受信したソフトウェア12〜14の基本機能部分12a,13a,14aと周辺機能部分12b,13b,14b、およびスクリプトファイル15をハードディスク201に記憶させる。このとき受信制御部2は、分割されて送信されてくる複数の単位ファイルを受信しながら同時にアセンブルを逐次行うことにより、基本機能部分12a,13a,14aおよび周辺機能部分12b,13b,14bをハードディスク201上に構築する。
【0038】
ソフトウェア12〜14の周辺機能部分12b,13b,14bまで受信が完了したら、受信制御部2は、受信した基本機能部分12a〜14aと周辺機能部分12b〜14bとをハードディスク201上でアセンブルすることにより、インストールと同等の状態のソフトウェア22〜24にする。なお、受信したスクリプトファイル15については、そのままスクリプトファイル25としてハードディスク201に記憶させる。
【0039】
パラメータ設定部3は、受信制御部2によりソフトウェア12〜14の基本機能部分12a,13a,14aおよびスクリプトファイル15の受信が完了したときに、当該スクリプトファイル15を起動する。そして、スクリプトファイル15に記述されている設定命令に従って各種パラメータをソフトウェア22〜24(正確には、基本機能部分12a,13a,14aのみが受信されてハードディスク201に記憶された状態のもの)に設定させるように制御する。
【0040】
受信制御部2は、パラメータ設定部3により各種パラメータの設定が行われているバックグラウンドで、ソフトウェア12〜14の残りの部分である周辺機能部分12b,13b,14bを受信するように制御する。
【0041】
すなわち、サーバ100側では、送信制御部1がソフトウェア12〜14の基本機能部分12a,13a,14aおよびスクリプトファイル15を優先して送信した後は、引き続いてソフトウェア12〜14の周辺機能部分12b,13b,14bを送信するように制御する。
【0042】
一方、端末200側では、受信制御部2がソフトウェア12〜14の基本機能部分12a,13a,14aおよびスクリプトファイル15を受信した時点で、パラメータ設定部3が各種パラメータの設定を実行する。そのパラメータ設定動作と並行して、受信制御部2が周辺機能部分12b,13b,14bの受信を引き続き実行する。
【0043】
図3は、上記のように構成した本実施形態によるソフトウェア配信システムの動作例を示すフローチャートである。
図3に示すフローチャートは、端末200からサーバ100に対してソフトウェア12〜14の配信要求が送られたときに開始する。
【0044】
図3において、配信要求を受け取ったサーバ100の配信エージェント11(送信制御部1)は、ソフトウェア12〜14の基本機能部分12a,13a,14aおよびスクリプトファイル15をハードディスク101から読み出して送信し(基本機能部分12a,13a,14aについては単位ファイルごとに送信)、端末200の配信エージェント21(受信制御部2)はこれを受信する(ステップS1)。
【0045】
受信制御部2は、基本機能部分12a,13a,14aの単位ファイルを受信しながら逐次アセンブルし(ステップS2)、基本機能部分12a,13a,14aおよびスクリプトファイル15を受信し終えたか否かを判定する(ステップS3)。受信がまだ終わっていない場合は、ステップS1,S2の処理を継続する。一方、基本機能部分12a,13a,14aおよびスクリプトファイル15を受信し終えたと判断した場合、端末200の配信エージェント21(パラメータ設定部3)は、スクリプトファイル15を起動し(ステップS4)、当該スクリプトファイル15の記述に従って各種パラメータの設定を行う(ステップS5)。
【0046】
このパラメータの設定動作が行われるのと並行して、サーバ100の配信エージェント11(送信制御部1)は、ソフトウェア12〜14の周辺機能部分12b,13b,14bをハードディスク101から読み出して単位ファイルごとに送信し、端末200の配信エージェント21(受信制御部2)はこれを受信する(ステップS6)。受信制御部2は、周辺機能部分12b,13b,14bの単位ファイルを受信しながら逐次アセンブルし(ステップS7)、周辺機能部分12b,13b,14bを受信し終えたか否かを判定する(ステップS8)。
【0047】
周辺機能部分12b,13b,14bの受信がまだ終わっていない場合は、ステップS6,S7の処理を継続する。一方、周辺機能部分12b,13b,14bを受信し終えたと判断した場合、端末200の配信エージェント21は、基本機能部分12a,13a,14aと周辺機能部分12b,13b,14bとをアセンブルしてソフトウェア22〜24を完成させる(ステップS9)。これにより、
図3に示すフローチャートの処理を終了する。
【0048】
以上詳しく説明したように、本実施形態では、アプリケーション13の起動および最低限の基本動作に必要なソフトウェア12〜14の基本機能部分12a,13a,14aと、ソフトウェア12〜14に対して設定すべきパラメータおよび当該パラメータの設定命令から成るスクリプトファイル15とを優先してサーバ100から端末200に配信する。そして、端末200にて基本機能部分12a,13a,14aおよびスクリプトファイル15の受信が完了したときに、スクリプトファイル15を起動してソフトウェア12〜14に対する各種パラメータの設定を行うようにしている。
【0049】
このように構成した本実施形態によれば、基本機能部分12a,13a,14aが優先して配信され、かつ、その配信が完了した時点で、ソフトウェア12〜14の動作に必要なパラメータの設定が自動的に行われるので、ソフトウェア12〜14全ての配信が完了する前に動作が可能な状態となる。これにより、サーバ100から端末200に配信して動作させようとするソフトウェア11〜14のファイルサイズが大きい場合であっても、ユーザが煩雑なパラメータ設定を一切行うことなく、ソフトウェア12〜14の動作環境を短時間のうちに構築することができる。
【0050】
また、本実施形態では、複数のユーザで共通に使用可能な汎用的なソフトウェア12〜14に関してはサーバ100のハードディスク101に1つのみ用意し、個々のユーザに固有の情報(各種パラメータ)は複数のスクリプトファイル15として別に用意している。仮に、OS12、アプリケーション13およびデータベース14に加えてユーザに固有の情報も含めてパッケージングすると、複数のユーザに対応して複数のパッケージを生成する必要がある。一般的に、パッケージング処理には長時間を要するが、本実施形態では、複数のユーザで共用可能なソフトウェア12〜14に関してのみパッケージングしているので、パッケージング処理が1回で済むというメリットも有する。
【0051】
なお、上記実施形態では、スクリプトファイル15の起動を自動的に行う例について説明したが、本発明はこの例に限定されない。例えば、スクリプトファイル15の受信が完了した時点で起動アイコンを端末200の画面に表示させる。そして、端末200のユーザがこの起動アイコンをクリックしたときに、スクリプトファイル15を起動するようにしてもよい。
【0052】
また、上記実施形態では、サーバ100から端末200に配信するソフトウェアとして、端末200に仮想環境を構築するためのソフトウェアコンポーネント群(OS12、アプリケーション13、データベース14の一式)を用いる例について説明したが、ソフトウェアはこれに限定されない。例えば、配信するソフトウェアはアプリケーションの単体であってもよい。アプリケーションのファイルサイズが単体でも大きい場合には、本実施形態を適用するメリットがある。
【0053】
また、上記実施形態では、端末200がパソコンである例について説明したが、端末200はこれに限定されない。例えば、通信機能を有する携帯電話機やゲーム機、携帯情報端末(PDA)、携帯電話機能とPDA機能とを備えたスマートフォンやタブレット端末などを端末200として用いてもよい。
【0054】
また、上記実施形態では、ソフトウェア配信用プログラムに相当する配信エージェント11,21がハードディスク101,201に記憶される例について説明したが、本発明はこれに限定されない。例えば、配信エージェント11,21は、サーバ100および端末200が備えるROMにそれぞれ記憶するようにしてもよい。
【0055】
また、上記実施形態では、配信エージェント11,21がハードディスク101,201にあらかじめ記憶されている例について説明したが、本発明はこれに限定されない。例えば、配信エージェント11,21を例えばCD、DVD、不揮発性メモリのような記録媒体に記録し、これをサーバ100および端末200に読み込ませることによってハードディスク101,201にインストールするようにしてもよい。また、配信エージェント11,21をインターネット等の通信ネットワークを介してサーバ100および端末200にダウンロードするようにしてもよい。
【0056】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。