JP5477660B2 - ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム - Google Patents

ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム Download PDF

Info

Publication number
JP5477660B2
JP5477660B2 JP2010545758A JP2010545758A JP5477660B2 JP 5477660 B2 JP5477660 B2 JP 5477660B2 JP 2010545758 A JP2010545758 A JP 2010545758A JP 2010545758 A JP2010545758 A JP 2010545758A JP 5477660 B2 JP5477660 B2 JP 5477660B2
Authority
JP
Japan
Prior art keywords
computer
file
unit data
list
data
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.)
Expired - Fee Related
Application number
JP2010545758A
Other languages
English (en)
Other versions
JPWO2010079772A1 (ja
Inventor
隆一 小川
貴之 佐々木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010545758A priority Critical patent/JP5477660B2/ja
Publication of JPWO2010079772A1 publication Critical patent/JPWO2010079772A1/ja
Application granted granted Critical
Publication of JP5477660B2 publication Critical patent/JP5477660B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、シンクライアントシステム、シンクライアント実施方法、及びシンクライアント用プログラムに関し、特に応答速度を向上させることができるシンクライアントシステム、シンクライアント実施方法、及びシンクライアント用プログラムに関する。
従来のシンクライアントシステムは、画面転送型シンクライアントシステムと、ネットブート型シンクライアントシステムに分類される(非特許文献1)。
画面転送型シンクライアントシステムは、サーバで動作しているOS(Operating System)の画面をクライアントへ転送し、クライアントのキーボードやマウスの入力をサーバへ転送する方式である。画面転送型は、サーバでOSが実行されるため、高速なCPU(Central Processing Unit:中央処理装置)や大きなメモリを備えたサーバシステムが必要である。
一方、ネットブート型は、クライアントがサーバから、アプリケーション(アプリケーションソフトウェア)やユーザデータをダウンロードして実行し、変更されたファイルを、サーバへアップロードする方式である。ネットブート型シンクライアントシステムは、ストレージのみを備え、クライアントが直接ストレージのリードライトを行う。
更に、ネットブート型シンクライアントシステムは、事前ダウンロード方式と、オンデマンド方式に分類される。
事前ダウンロード方式は、非特許文献2のように、OS起動前に全てのファイルをダウンロードする方式である。事前ダウンロード方式は、普段使わないファイルも含め、全てのファイルをOS起動前にダウンロードするため、OSの起動開始までに時間がかかる。
オンデマンド方式は、非特許文献3のように、実際にファイルを使うときに、ファイルをダウンロードする方式である。オンデマンド方式は、要求されたときにファイルをダウンロードするため、OS起動後のOSやアプリケーションの動作が遅い。
また、両方式とも、ファイル取得による応答速度の低下(ボトルネック)が特定のステップに集中しており、ユーザからみると、ある瞬間にPC(パソコン)が非常に遅くなるという課題がある。
なお、関連する技術として、特開2008−198016号公報(特許文献1)にシンクライアントシステム、装置及びプログラムが開示されている。この関連技術では、汎用PCであるリッチクライアント(rich client)をシンクライアントとして利用可能なネットワークブート型シンクライアント方式について説明している。
また、特開平09−319624号公報(特許文献2)にファイル管理装置が開示されている。この関連技術では、複数のファイルとそれらのファイルの最終使用日時とその記憶位置とを第1の記憶媒体に記憶し、記憶された各ファイルごとの最終使用日時により、使用頻度の低いファイルを判定し、判定された使用頻度の低いファイルを第2の記憶媒体に記憶する。
また、特開平10−133976号公報(特許文献3)にオンデマンドファイルダウンロード方法及びシステムが開示されている。この関連技術では、複数の計算機間において、ファイルの内容、又はメモリの内容であるプログラム、又はデータを共有するために、該プログラム又は、該データを通信路を経由して転送し、該プログラムや該データを利用する計算機にダウンロードするオンデマンドファイルダウンロード方法について説明している。このオンデマンドファイルダウンロード方法では、第1の計算機からプログラム、又はデータが格納されているファイルのうち必要部分を指定して、該プログラムや該データの原本を有する第2の計算機に要求する。第2の計算機は、第1の計算機から要求されたファイルの必要部分を抽出及び複製して、パケット単位に該第1の計算機に転送する。第1の計算機は、転送された内容を所定の領域に格納し、プログラムの処理を再開する。
特開2008−198016号公報 特開平09−319624号公報 特開平10−133976号公報
ITPro "シン・クライアント vs 次世代PC" <http://itpro.nikkeibp.co.jp/article/COLUMN/20070528/272681/> ZDNet "シンクライアントの仕組みを探る" <http://japan.zdnet.com/print/0,2000080657,20089685,00.htm?u=/zdnet/2006/sp/feature/netsecurity1/story/0,2000056696,20089685,00.htm> HTTP−FUSE−KNOPPIX/Xenoppix <http://unit.aist.go.jp/itri/knoppix/http−fuse/>
本発明の目的は、ボトルネックを適切に分散させるネットブート型シンクライアントシステムを提供することである。
本発明のシンクライアントシステムは、ユーザが使用する第1のコンピュータと、第1のコンピュータに単位データを提供する第2のコンピュータとを含む。第1のコンピュータは、第1記憶手段と、事前単位データ取得手段と、オンデマンド単位データ取得手段とを具備する。第1記憶手段は、第2のコンピュータから取得された単位データを格納する。事前単位データ取得手段は、第1のコンピュータのOS(Operating System)の動作前に単位データを第2のコンピュータから取得する。オンデマンド単位データ取得手段は、OSの動作中にOSが要求する単位データを第2のコンピュータから取得する。第2のコンピュータは、第2記憶手段と、単位データ判定手段と、単位データ転送手段とを具備する。第2記憶手段は、第1のコンピュータに提供される単位データを格納する。単位データ判定手段は、事前単位データ取得手段によりOSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成する。単位データ転送手段は、第1のコンピュータのOSの動作前に送信ファイルリストに情報が記載されている単位データを事前単位データ取得手段へ送信し、第1のコンピュータのOSの動作中にオンデマンド単位データ取得手段から要求された単位データを、オンデマンド単位データ取得手段へ送信する。
本発明のシンクライアント実施方法では、ユーザにより使用される第1のコンピュータが、第2のコンピュータから単位データを取得する。このとき、第1のコンピュータが、第1のコンピュータのOS(Operating System)の動作前に単位データを第2のコンピュータから取得する。また、第1のコンピュータが、OSの動作中にOSが要求する単位データを第2のコンピュータから取得する。また、第2のコンピュータが、第1のコンピュータによりOSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成する。また、第2のコンピュータが、第1のコンピュータのOSの動作前に送信ファイルリストに情報が記載されている単位データを第1のコンピュータへ送信し、第1のコンピュータのOSの動作中に第1のコンピュータから要求された単位データを、第1のコンピュータへ送信する。
ネットブート型シンクライアントシステムを高速に動作させることが可能になる。
図1は、本発明の第1実施形態の構成を示すブロック図である。 図2は、本発明の第1実施形態の動作を示すシーケンス図である。 図3は、高使用頻度ファイルリストを説明する図である。 図4は、高使用頻度ファイルリストのアップデート方法を示す流れ図である。 図5は、統計情報の例を示す図である。 図6は、本発明の第2実施形態の構成を示すブロック図である。 図7は、本発明の第2実施形態の動作を示すシーケンス図である。 図8は、本発明の第2実施形態のダミーファイル生成の流れ図である。 図9は、本発明の第2実施形態のシグネチャリストの例を示す図である。 図10は、本発明の第2実施形態のオンデマンドファイル取得手段の動作を示す流れ図である。
<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
[基本構成]
図1を参照すると、本発明のシンクライアントシステムは、サーバ10と、クライアント20を含む。
シンクライアントシステムは、ほとんどの処理をサーバ10側に集中させ、サーバ10側でアプリケーションやファイル等の資源を管理し、クライアント20に必要最小限の処理をさせるシステムである。サーバ10及びクライアント20は、プログラム制御により動作する。
サーバ10の例として、シンクライアントサーバ、PC(パソコン)、メインフレーム、スーパーコンピュータ等を想定している。クライアント20の例として、シンクライアント端末、モバイルノートPC、携帯端末、ワークステーション、情報家電(information home appliance)、OA(Office Automation)機器等を想定している。なお、サーバ10及びクライアント20は、端末やサーバに限らず、中継機器や周辺機器でも良い。また、サーバ10及びクライアント20は、コンピュータに搭載される拡張ボードやソフトウェアでも良い。また、サーバ10及びクライアント20は、コンピュータに搭載された仮想マシン(Virtual Machine(VM))環境でも良い。更に、サーバ10及びクライアント20は、車両や船舶、航空機等の移動体に搭載されていても良い。但し、実際には、これらの例に限定されない。
サーバ10は、CPU(Central Processing Unit:中央処理装置)11と、メモリ12と、HDD(Hard Disk Drive:ハードディスクドライブ)13と、NIC(Network Interface Card:ネットワークインターフェースカード)14と、ファイル転送部15と、ファイル判定部16を備える。
クライアント20は、CPU21と、メモリ22と、HDD23と、NIC24と、事前ファイル取得部25と、オンデマンドファイル取得部26を備える。
CPU11及びCPU21は、コンピュータ内外の各装置の制御やデータの計算・加工を行い、メモリに記憶されたプログラムを実行したり、入力装置や記憶装置からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力したりする。また、CPU11及びCPU21は、OS(Operating System)を起動させ、稼動させる。CPU11及びCPU21の例として、マイクロプロセッサ(microprocessor)、又は同様の機能を有するIC(Integrated Circuit:半導体集積回路)等が考えられる。但し、実際には、これらの例に限定されない。
メモリ12及びメモリ22は、CPUが直接読み書きできるRAM(Random Access Memory)やROM(Read Only Memory)、或いはフラッシュメモリ等の半導体記憶装置である。ここでは、メモリ12及びメモリ22は、主記憶装置(メインメモリ)を示す。但し、実際には、これらの例に限定されない。
HDD13及びHDD23は、コンピュータ内外でデータやプログラムを格納する補助記憶装置である。ここでは、HDD13及びHDD23は、外部記憶装置(ストレージ)を示す。なお、HDD13及びHDD23は、SSD(Solid State Drive)等のフラッシュメモリドライブでも良い。或いは、HDD13及びHDD23は、DVD(Digital Versatile Disk)やSDメモリカード(Secure Digital memory card)等のリムーバブルディスクや記憶媒体(メディア)等でも良い。また、HDD13及びHDD23は、サーバ10及びクライアント20に内蔵された記憶装置に限らず、周辺機器(外付けHDD等)や外部のサーバ(ストレージサーバ等)に設置された記憶装置、或いは、DAS(Direct Attached Storage)、FC−SAN(Fibre Channel − Storage Area Network)、NAS(Network Attached Storage)、IP−SAN(IP − Storage Area Network)でも良い。但し、実際には、これらの例に限定されない。
NIC14及びNIC24は、通信回線(ネットワーク)を介して、外部とデータの送受信を行うための通信装置である。ここでは、サーバ10とクライアント20は、NIC14とNIC24を介して接続される。NIC14及びNIC24の例として、ネットワークアダプタや、アンテナ、接続口(コネクタ)等の通信ポート等が考えられる。また、NIC14及びNIC24が利用するネットワークの例として、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)、シリアル通信回線、データバス等が考えられる。但し、実際には、これらの例に限定されない。
ファイル転送部15は、事前ファイル取得部25、及びオンデマンドファイル取得部26から、ファイルの転送要求を受信する。ファイル転送部15は、事前ファイル取得部25からの要求の場合、ファイル判定部16を呼び出し、良く使われるファイル(高使用頻度ファイル)の情報が記載されたリスト(送信ファイルリスト)を取得する。ファイルの情報とは、当該ファイルを特定するための識別情報である。ファイルの情報の例として、ファイル名や、ファイル名に含まれる固有のキーワード、或いは、当該ファイルに固有の拡張子等が考えられる。次に、ファイル転送部15は、送信ファイルリストに記載されている全てのファイルをHDD13より読み出し、読み出されたファイルを事前ファイル取得部25に送信する。ファイル転送部15は、オンデマンドファイル取得部26からの要求の場合、要求されたファイルをHDD13より読み出し、読み出されたファイルをオンデマンドファイル取得部26に送信する。
ファイル判定部16は、HDD23に記録されているファイルのうち、事前に良く使われるファイルを判定して送信ファイルリストを作成し、作成された送信ファイルリストをファイル転送部15へ渡す。ここでは、事前に良く使われるファイルとは、OSの起動前、又はOSの起動の際に使用されるファイルを指す。事前に良く使われるファイルの例として、OSやアプリケーションの設定ファイルや、OSの起動時に実行されるプログラム等が考えられる。但し、実際には、これらの例に限定されない。
事前ファイル取得部25は、OSの起動前に、ファイル転送部15へファイルの送信要求を送信し、ファイル転送部15から受信したファイルをHDD23へ書き込む。すなわち、事前ファイル取得部25は、OSの起動前に、ファイル転送部15から、事前に良く使われるファイルを取得し、取得されたファイルをHDD23に格納する。
オンデマンドファイル取得部26は、OSの起動後に、OSから要求されたファイルがHDD23に保存されているか否かを判定する。更に、オンデマンドファイル取得部26は、OSから要求されたファイルがHDD23に保存されていなかった場合に、ファイル転送部15へ当該ファイルの送信要求を送信し、ファイル転送部15からファイルを受信して、受信されたファイルをHDD23に書き込む。すなわち、オンデマンドファイル取得部26は、OSから要求されたファイルが、HDD23に格納されていないファイルであって、HDD13に格納されているファイルである場合、ファイル転送部15から、OSから要求されたファイルであって、HDD13に格納されているファイルを取得し、取得されたファイルをHDD23に格納する。
なお、ファイル転送部15、ファイル判定部16、事前ファイル取得部25、及びオンデマンドファイル取得部26は、コンピュータに搭載される拡張ボードでも良い。或いは、各々の機能をコンピュータやCPUに実行させるためのプログラムでも良い。この場合、当該プログラムは、記憶装置や記憶媒体に格納することも可能である。但し、実際には、これらの例に限定されない。
[全体の動作]
次に、図2のシーケンス図を参照して、本発明のシンクライアントシステムの全体の動作について詳細に説明する。
(1)ステップS1
事前ファイル取得部25は、OSの起動前に、ファイル転送部15へ、ファイルの送信要求を送信する。
(2)ステップS2
ファイル転送部15は、ファイルの送信要求に応じて、ファイル判定部16を呼び出す。ここでは、ファイル転送部15は、ファイルの送信要求に応じて、ファイル判定部16に対して、事前に良く使われるファイルのリスト(送信ファイルリスト)を要求する。
(3)ステップS3
ファイル判定部16は、事前に良く使われるファイルのリスト(送信ファイルリスト)を取得し、取得されたリスト(送信ファイルリスト)をファイル転送部15へ返す。ここでは、ファイル判定部16は、HDD23に記録されているファイルのうち、事前に良く使われるファイルを判定して送信ファイルリストを作成し、作成された送信ファイルリストをファイル転送部15へ通知する。ファイル判定部16の詳しい動作については、後述する。
(4)ステップS4
ファイル転送部15は、受け取ったリスト(送信ファイルリスト)に記載されているファイルをHDD13から読み込み、読み込まれたファイルを事前ファイル取得部25へ送信する。すなわち、ファイル転送部15は、受け取ったリスト(送信ファイルリスト)に記載されているファイルのみを事前ファイル取得部25へ送信する。
(5)ステップS5
事前ファイル取得部25は、ファイル転送部15からファイルを受信し、受信されたファイルをHDD23へ書き込む。その後、OSが起動する。
(6)ステップS6
オンデマンドファイル取得部26は、OSが起動すると、OSのファイル読み込みを監視する。
(7)ステップS7
オンデマンドファイル取得部26は、OSがHDD23からファイルを読み込もうとした際、OSによるファイルの読み込みをフック(hook)し、OSにより読み込まれようとしているファイルがHDD23に記録されているか否かを判定する。
(8)ステップS8
オンデマンドファイル取得部26は、OSにより読み込まれようとしているファイルがHDD23に記録されていないと判定した場合、ファイル転送部15へ、当該ファイルの送信要求を送信する。
(9)ステップS9
ファイル転送部15は、オンデマンドファイル取得部26へ、送信要求のあったファイルを送信する。ここでは、ファイル転送部15は、オンデマンドファイル取得部26からの送信要求に応じて、HDD13に記録されているファイルのうち、送信要求のあったファイルをHDD13から読み出し、読み出されたファイルをオンデマンドファイル取得部26に送信する。オンデマンドファイル取得部26は、ファイル転送部15からファイルを受信する。
(10)ステップS10
オンデマンドファイル取得部26は、受信されたファイルをHDD23に書き込む。
(11)ステップS11
オンデマンドファイル取得部26は、受信されたファイルの情報をOSへ渡す。
なお、オンデマンドファイル取得部26は、受信されたファイルの情報をOSへ渡す動作を、HDD23への書き込みの後に行っても良いし、HDD23への書き込みの前に行っても良い。すなわち、ステップS10とステップS11の順番は入れ替えても良い。
[ファイル判定動作]
次に、ファイル判定部16の動作について、詳細に説明する。
ファイル判定部16は、次に示す動作のいずれか、もしくは、組み合わせによって、HDD13に記録されているファイルが、良く使われるファイルか否かを判定し、送信ファイルリストを作成する。
[第1の判定動作]
まず、ファイル判定部16の、第1の判定動作について説明する。
ファイル判定部16は、良く使われるファイルを定義するリスト(高使用頻度ファイルリスト)を持つ。高使用頻度ファイルリストでは、例えば、図3に示すように、ファイルのパス、ファイルの置かれているディレクトリ、或いは拡張子に基づいて、良く使われるファイルが定義されている。
ファイル判定部16は、ファイル転送部15から呼び出されると、HDD13をスキャン(走査)し、HDD13に記録されている全てのファイルの情報が記載されたリストを作成する。また、ファイル判定部16は、HDD13に記録されている全てのファイルの情報が記載されたリストから、高使用頻度ファイルリストに含まれないファイルの情報を削除して送信ファイルリストとし、送信ファイルリストをファイル転送部15へ渡す。すなわち、送信ファイルリストは、HDD13に記録されている全てのファイルのうち、高使用頻度ファイルリストに含まれるファイルのみの情報が記載されたリストである。
なお、高使用頻度ファイルリストは、サーバ10の管理者がエディタを用いて作成しても良いし、次のように自動的に作成しても良い。
[高使用頻度ファイルリストの自動作成方法]
図4を参照して、高使用頻度ファイルリストの自動作成方法について説明する。
(1)ステップT1
オンデマンドファイル取得部26は、OSが起動を開始すると、OSによるファイルの読み書きの要求を監視する。
(2)ステップT2
オンデマンドファイル取得部26は、OSによるファイルの読み書きの要求があった場合、フィードバックリストを作成し、読み書きの要求があったファイルをフィードバックリストへ記録する。例えば、オンデマンドファイル取得部26は、読み書きの要求があったファイルに関して、フィードバックリストに、ファイル名、アクセス時間等の情報を記録する。
(3)ステップT3
オンデマンドファイル取得部26は、フィードバックリストを、ファイル転送部15へ送信する。例えば、オンデマンドファイル取得部26は、OS起動から一定時間後、一定ファイル数を読み込んだ時、或いは、OS終了時に、フィードバックリストへの記録を打ち切り、フィードバックリストを送信するようにしても良い。但し、実際には、これらの例に限定されない。
(4)ステップT4
ファイル判定部16は、ファイル転送部15を介して、フィードバックリストを取得し、フィードバックリストを利用して、以下のいずれかのアップデート動作で、高使用頻度ファイルリストをアップデート(更新)する。
なお、高使用頻度ファイルリストをアップデート(更新)するタイミングについては、OS起動前に毎回、もしくは毎日や週一回等の一定期間毎、又は管理者が指定したときに行うようにしても良い。
[アップデート動作1]
ファイル判定部16は、フィードバックリストを、そのまま高使用頻度ファイルリストとして使用する。すなわち、ファイル判定部16は、次回以降のOS起動において、前回の起動時に使用されたファイルを、事前に配付する。
[アップデート動作2]
ファイル判定部16は、高使用頻度ファイルリスト及びフィードバックリストに記載されているファイルを、LRU(Least Recently Used)方式で、ソート(分類)する。更に、ファイル判定部16は、高使用頻度ファイルリストの先頭から、記載されている順に、ファイルのサイズを足してゆき(加算してゆき)、ファイルのサイズの合計が管理者によって指定されたサイズを超えた場合、指定されたサイズを超えたファイル以降のファイルを、現在の高使用頻度ファイルリストから削除し、新たな高使用頻度ファイルリストとする。
[アップデート動作3]
ファイル判定部16は、過去数回のフィードバックリストをマージ(統合)する。ファイル判定部16は、マージされたリストのファイルについて、管理者が指定した期間内に使用されたファイルを最近使用されたファイルとし、高使用頻度ファイルリストに記録する。具体的には、ファイル判定部16は、マージしたフィードバックリストに含まれるアクセス日時と、現在の時刻から管理者が指定した期間を引いた日時を比較し、フィードバックリストに含まれるアクセス日時が最近である場合に、当該ファイルを高使用頻度ファイルリストに追加する。
[アップデート動作4]
ファイル判定部16は、過去数回のフィードバックリストから、統計情報を作成する。図5に示すように、統計情報には、ファイル名と、その使用回数が記録されている。すなわち、統計情報は、ファイル名と、その使用回数を含む。そして、ファイル判定部16は、管理者が指定した回数よりも多く使われているファイルを、統計情報から抜き出し、高使用頻度ファイルリストとする。管理者は、何回分のフィードバックリストを利用して、統計情報を作成するかを指定する。使用回数によって指定するのではなく、使用回数の多い順にファイルをソートし、高使用頻度ファイルリストに記載されているファイルのサイズの合計が、管理者により指定されたファイルサイズになるまで、上位から順に、高使用頻度ファイルリストにファイルを追加しても良い。
なお、ファイル判定部16は、管理者が事前配付必須であると考えて作成したリストと、アップデート動作1からアップデート動作4の動作よって自動で作成されたリストをマージし、高使用頻度ファイルリストとしても良い。例えば、ファイル判定部16は、管理者により作成されたリストと、アップデート動作3によって作成されたリストを組み合わせる。例えば、ファイル判定部16は、管理者が手動入力等で「c:¥kernel.exe; c:¥config.ini」をリストに記述し、アップデート動作3によって作成されたリストに「c:¥kernel.exe; c:¥patent.doc」が記述されている場合、2つのリストのマージすることによって、「c:¥kernel.exe; c:¥config.ini; c:¥patent.doc」が記述されたリストを作成し、このリストを高使用頻度ファイルリストとする。
[第2の判定動作]
次に、ファイル判定部16の、第2の判定動作について説明する。
第2の判定動作では、更新日時が新しいファイルを、良く使われるファイルと見なす。
ファイル判定部16は、HDD23のファイルシステムを解析し、全てのファイルの更新日時を得る。次に、ファイル判定部16は、管理者が指定した日時以降に作成されたファイルを、良く使われるファイルとみなして、送信ファイルリストに追加する。
本発明の第1実施形態の効果は、OS動作前と動作中にボトルネックを適切に分散させることによって、高速に動作するネットブート型シンクライアントシステムを提供できることである。
≪実施例1≫
次に、本発明の第1実施形態の具体的な実施例について説明する。
[基本構成]
図1のサーバ10は、CPU11、メモリ12、HDD13、NIC14を備える一般的な計算機である。クライアント20も同様に、一般的な計算機である。サーバ10とクライアント20は、ネットワークによって接続される。ネットワークの回線は、電話回線、LAN、無線LAN、インターネット等が上げられるが、特に限定されるものではない。
ファイル転送部15は、サーバ10上で動作するプログラムであり、例えば、FTP(File Transfer Protocol)を用いて、HDD13に記録されているファイルを、事前ファイル取得部25、もしくは、オンデマンドファイル取得部26へファイルを送信する。なお、FTPの代わりに、SSH(Secure SHell)やSCP(Secure CoPy)を用いることも考えられる。
ファイル判定部16は、サーバ10上で動作するプログラムであり、後述する動作によって、HDD13に記録されているファイルが良く使われるか否かを判定し、送信ファイルリストを作成する。
事前ファイル取得部25とオンデマンドファイル取得部26は、クライアント20上で動作するプログラムである。
[全体の動作]
次に、本発明のシンクライアントシステムの全体の動作について説明する。
PC(パソコン)等のクライアント20の電源が入ると、まず、事前ファイル取得部25が実行される。事前ファイル取得部25は、ファイル転送部15へ、例えば、TCPを用いて、送信要求を送信する。このとき、IPsec(Security Architecture for Internet Protocol)やTLS(Transport Layer Security)を用いて通信の暗号化を行っても良い。
ファイル転送部15は、送信要求を受け取ると、ファイル判定部16を呼び出す。ファイル判定部16は、送信ファイルリストを作成する。詳しくは後述する。
ファイル転送部15は、リストを読み込むと、HDD13から送信ファイルリストに記載されているファイルを読み込み、事前ファイル取得部25へ送信する。送信には、例えば、FTP等を用いることが考えられる。事前ファイル取得部25は、受け取ったファイルをHDD23に書き込む。
次に、CPU21は、HDD23に書き込まれたOSを起動する。OSは、「Windows(登録商標)」や「Linux(登録商標)」、「FreeBSD(登録商標)」等、特に限定されるものでは無い。
オンデマンドファイル取得部26は、例えば、OSのドライバとして実装される。例えば、「WINDOWS(登録商標)」であれば、NTFS(NT File System)ドライバの上位ドライバとしてオンデマンドファイル取得部26を実装することで、HDD23への読み書き要求を監視することができる。また、オンデマンドファイル取得部26は、下位のNTFSドライバが返すメッセージによって、要求されたファイルが、HDD23上に存在するか否かを判定できる。
例えば、オンデマンドファイル取得部26は、下位のNTFSドライバが、要求成功のメッセージを返したとき、そのメッセージをそのまま上位のドライバへ渡す。
また、オンデマンドファイル取得部26は、下位のNTFSドライバが、ファイルが存在しないという旨のメッセージを返した場合、ファイル転送部15へファイル送信要求を送り、ファイルを取得する。そして、オンデマンドファイル取得部26は、NTFSドライバを呼び出すことでHDDへファイルの書き込みを行う。次に、オンデマンドファイル取得部26は、NTFSドライバを呼び出し、書き込んだファイルへのアクセス要求を行う。オンデマンドファイル取得部26は、要求が成功した場合、先にNTFSドライバが返したというメッセージ、或いは、ファイルが存在しないというメッセージを、要求成功のメッセージに差し替え、上位のドライバへ結果を返す。
オンデマンドファイル取得部26は、OSが起動している間、上記の動作を繰り返し行う。
[ファイル判定動作]
次に、ファイル判定部16の動作について、具体的に説明する。
例えば、「Linux(登録商標)」であれば、「findコマンド」を用いて、HDD13のファイルのリストを取得することができる。HDD13のファイルのリストは、HDD13に記録されている全てのファイルの情報が記載されたリストである。次に、ファイル判定部16は、HDD13のファイルのリストから、高使用頻度ファイルリストに含まれていないファイルの情報を削除して送信ファイルリストとし、ファイル転送部15へ送信ファイルリストを渡す。
高使用頻度ファイルリストは、以下の方法で作成される。
オンデマンドファイル取得部26は、上位のドライバから、ファイルの読み書きの要求があった場合に、要求のあったファイル名を、フィードバックリストに記録しておく。
フィードバックリストは、例えば、次のように、ファイル名と、アクセス日時を含む。
「2008/4/1 12:00:01 C:¥a.txt; 2008/4/1/12:01:01 C:¥b.dll; …」
オンデマンドファイル取得部26は、例えば、OSの終了時に、リストをファイル転送部15へ送信する。送信には、例えば、FTP等を用いることができる。OSの終了時では無くても、例えば、OS起動から5分後や、OS起動から「10Mbyte」のファイルを読み込んだ時に、フィードバックリストを送信しても良い。
ファイル転送部15は、例えば、過去3回のフィードバックリストに含まれるファイルの参照回数を数え、どのファイルが何回使用されたかを示す統計情報を作成する。例えば、「フィードバックリスト1=”a.txt;b.txt”」、「フィードバックリスト2=”b.txt”」、「フィードバックリスト1=”a.txt;b.txt;c.txt”」であったとき、統計情報は、「a.txt=2回」、「b.txt=3回」、「c.txt=1回」となる。ここで、例えば、管理者が「2回以上」と指定したとすると、高使用頻度ファイルリストは、「a.txt;b.txt」となる。
上記の例では、ファイル転送部15は、回数によって指定したが、「110Mbyteまでを事前送信」のようにファイル容量によって指定しても良い。この場合、ファイル転送部15は、「a.txt」と、「b.txt」と、「c.txt」を使用回数によってソートし、「b.txt;a.txt;c.txt」とする。例えば、ファイル転送部15は、「a.txt=40Mbyte」、「b.txt=70Mbyte」、「c.txt=1Mbyte」のとき、先頭から高使用頻度ファイルリストに追加していき、高使用頻度ファイルリストに記載されているファイルの合計が、管理者が指定したサイズを超えるまで、リストに追加する。上記の例では、高使用頻度ファイルリストは、「b.txt;a.txt」となる。
上記の例とは別に、ファイル転送部15は、管理者が期間を指定し、その期間内に使われたファイルをリストに追加しても良い。例えば、最新のフィードバックリストが「2008/4/2 13:00:01 C:¥a.txt; 2008/4/2/12:01:01 C:¥b.dll;」であり、その1つ前のフィードバックリストが、「2008/4/1 13:00:01 C:¥c.txt; 2008/4/1/12:01:01 C:¥d.dll;であり、現在の時刻が「2008/4/3 12:30:00」であるとする。このとき、例えば、ファイル転送部15は、管理者が48時間を指定すると、48時間以内に使われたファイルのリストである「C:¥a.txt; C:¥b.dll; C:¥c.txt;」が高使用頻度ファイルリストとなる。
ファイル判定部16は、高使用頻度ファイルリストを用いずに、日付の情報を用いて、判定を行っても良い。例えば、「Linux(登録商標)」では、「findコマンド」を用いて、特定の日時以降に作成、もしくは、更新されたファイルのリストを取得することができる。ファイル判定部16は、「findコマンド」によって、指定された日時以降に作成されたファイルのリストを作成し、このファイルのリストを送信リストとして、ファイル転送部15へ渡しても良い。
≪実施例2≫
次に、本発明の第1実施形態の別の動作について説明する。
上記の実施例の動作では、オンデマンドファイル取得部26は、OSからファイルの要求があったときに、ファイルを取得している。このとき、ファイルの要求がOSから届く前に、ファイルを取得しても良い。
オンデマンドファイル取得部26は、HDD23とNIC24の使用率が低いとき、ファイル転送部15へ、ファイル送信要求を送信する。
ファイル転送部15は、送信ファイルリストに記載されていないファイルをHDD13から読み出し、読み出されたファイルを送信する。このとき、ファイル転送部15は、フィードバックリストに記載されているアクセス日時の情報を利用して、アクセス日時が早いファイルほど、優先的に送信しても良い。
この動作の場合、ファイルの先読みを行うことになるため、OSを高速に動作させることが出来る。
≪実施例3≫
次に、本発明の第1実施形態の更に別の動作について説明する。
上記の実施例の動作では、ファイル単位で良く使われるか否かを判定し、ファイル単位の送信を行っている。このとき、ファイル単位ではなく、セクタ(sector)単位で良く使われるか否かを判定し、セクタ単位で送信しても良い。この動作を行う場合、HDD13には、クライアントに送るべきHDDのイメージが記録される。
なお、セクタとは、ディスク状の記憶装置における最小の記録単位である。いくつかのセクタをまとめたものを「クラスタ」と呼ぶ。従って、実際には、セクタ単位の送信に限らず、クラスタ単位の送信を行うようにすることも可能である。
ファイル転送部15は、HDDイメージから、送信セクタリストのセクタを抜き出し、抜き出されたセクタのデータを事前ファイル取得部25へ送信する。このとき、ファイル転送部15は、データを事前ファイル取得部25へ送信しなかったセクタの情報が記載されたリスト(未送信セクタリスト)を作成して、未送信セクタリストを事前ファイル取得部25へ送信しても良い。
ファイル判定部16は、セクタ単位の処理を行う場合、高使用頻度ファイルリストではなく、良く使われるセクタが記録された高使用頻度セクタリストを持つ。ファイル判定部16は、ファイル転送部15から呼び出されると、全てのセクタの情報が記載されたリストを作成する。セクタの情報とは、当該セクタを特定するための識別情報である。セクタの情報の例として、セクタ番号等が考えられる。また、セクタ判定部16は、全てのセクタの情報が記載されたリストから、高使用頻度セクタリストに含まれないセクタの情報を削除して送信セクタリストとし、送信セクタリストをセクタ転送部15へ渡す。すなわち、送信セクタリストは、全てのセクタの情報が記載されたリストから、高使用頻度セクタリストに含まれないセクタの情報を削除したものである。
ファイル転送部15は、リストのセクタをHDD13のHDDイメージから読み込み、事前ファイル取得部25へ送信する。
事前ファイル取得部25は、受け取ったセクタのデータを、HDD23の同じ位置のセクタに書き込む。事前ファイル取得部25は、受け取っていないセクタには、特定パターンのダミーデータを作成して記録する。或いは、事前ファイル取得部25は、ファイル転送部15から未送信セクタリストを受信し、未送信セクタリストに情報が記載されているセクタについて、特定パターンのダミーデータを作成して記録するようにしても良い。
オンデマンドファイル取得部26は、OSからHDD23への読み込み要求があったとき、読み込まれたセクタがダミーデータのパターンである場合に、当該セクタの送信要求をファイル転送部15へ送信する。
ファイル転送部15は、セクタの送信要求に応じて、要求のあったセクタを送信する。ここでは、ファイル転送部15は、HDD13のセクタから、要求のあったセクタを検出し、検出されたセクタを送信する。
オンデマンドファイル取得部26は、HDD23のセクタを、受信されたセクタのデータで上書きする。
次に、オンデマンドファイル取得部26は、OSの読み込み要求に対し、受信されたセクタのデータを返す。
この動作の場合、フィードバックリストは、セクタ単位で記載される。オンデマンドファイル取得部26は、アクセス日時と、セクタ番号を、フィードバックリストへ追加する。フィードバックリストから、高使用頻度セクタリストをアップデートする方法は、ファイル単位と同様のため、説明を省略する。すなわち、高使用頻度セクタリストをアップデートする方法は、高使用頻度ファイルリストをアップデートする方法と同様である。
例えば、ファイル転送部15及び事前ファイル取得部25は、セクタ単位で送信や取得を行うようにする。ファイル判定部16は、「1」、「2」、「3」、「45」、「567」のような、セクタ番号が記録された高使用頻度セクタリストをファイル転送部15へ渡す。ファイル転送部15は、「secNo=1,data=abcde…;」、「secNo=2,data=fghij…;」のように、セクタ番号とそのデータを組にして転送を行う。転送には、例えば、FTP等を用いることが考えられる。事前ファイル取得部25は、HDD23のセクタ(「1」、「2」、「3」、「45」、「567」)へ、受信されたデータを書き込む。また、事前ファイル取得部25は、それ以外のセクタには、特定パターンのダミーデータを書き込む。特定パターンは、例えば、全て「0」や全て「1」等、良くファイル中に出現するパターンでなければ、どのようなパターンでも良い。
オンデマンドファイル取得部26は、セクタを読み込んだ時に、セクタのデータのパターンが特定パターンと一致するか否かを比較し、一致する場合に、ファイル転送部15から、当該セクタのデータを取得する。例えば、オンデマンドファイル取得部26は、「4番」のセクタを読み込んだ時、「4番」のセクタには、ダミーデータである特定パターンが記録されているため、ファイル転送部15から、「4番」のデータを取得する。次に、オンデマンドファイル取得部26は、取得されたデータを、HDD23の「4番」のセクタへ書き込む。そして、オンデマンドファイル取得部26は、OSへ渡すデータを、特定パターンから、受信されたセクタのデータに差し替える。
≪実施例4≫
次に、本発明の第1実施形態の更に別の動作について説明する。
上記の実施例の動作では、ダミーパターンを書き込むことで、OSのセクタ読み込み時に、当該セクタのデータが未受信であることを判定したが、ダミーパターンを書き込まずに、未受信セクタのリスト(未受信セクタリスト)を持つことによって判定を行っても良い。すなわち、上記の実施例の動作では、ダミーデータのパターンとの比較によって、読み込んだセクタのデータがダミーデータか否かを判定し、当該セクタのデータを取得しているが、ダミーデータを書き込まずに、受信していないセクタのリストを参照することによって、データを取得しても良い。
この場合、事前ファイル取得部25は、ファイル転送部15が送信しなかったセクタのリスト(未受信セクタリスト)を作成する。オンデマンドファイル取得部26は、OSのセクタ読み込みの要求をフック(hook)し、未受信セクタリストに当該セクタが記録されていた場合、ファイル転送部15へ送信要求を送信する。そして、オンデマンドファイル取得部26は、セクタを受信し、当該セクタを未受信セクタリストから削除する。
ファイル転送部15は、HDDイメージの総セクタ数と、セクタ番号とそのデータの組を、事前ファイル取得部25へ送信する。
事前ファイル取得部25は、総セクタ数までのセクタ番号のうち、データを受け取らなかったセクタをリストに記録する。例えば、事前ファイル取得部25は、総セクタ数が「5」であり、「secNo=1,data=abcde…;」、「secNo=2,data=fghij…;」、「secNo=4,data=fghij…;」というセクタ番号とデータの組を受け取ったとき、未受信セクタリストを作成し、未受信セクタリストにセクタ番号「3」、「5」を記録する。
オンデマンドファイル取得部26は、OSのセクタ番号「5」への読み込み要求をフック(hook)したとき、当該セクタがリストにあることを確認し、ファイル転送部15から当該セクタのデータを取得する。そして、オンデマンドファイル取得部26は、未受信セクタリストから、受信したセクタの情報を削除し、未受信セクタリストを「3」とする。
<第2実施形態>
次に、本発明の第2実施形態について詳細に説明する。
本実施形態は、仮想マシン(VM)を生成するソフトウエアであるVMM(Virutual Machine Monitor:仮想マシンモニタ)を備えている点が、本発明の第1実施形態と異なる。
[基本構成]
図6を参照すると、本発明のシンクライアントシステムは、サーバ10と、クライアント20を含む。
サーバ10は、CPU11と、メモリ12と、HDD13と、NIC14と、ファイル転送部15と、ファイル判定部16を備える。
クライアント20は、CPU21と、メモリ22と、HDD23と、NIC24と、事前ファイル取得部25と、オンデマンドファイル取得部26と、VMM27を備える。
サーバ10、クライアント20、CPU11、メモリ12、HDD13、NIC14、ファイル転送部15、ファイル判定部16、CPU21、メモリ22、HDD23、NIC24、事前ファイル取得部25、及びオンデマンドファイル取得部26については、基本的に、本発明の第1実施形態と同じである。
VMM27は、仮想マシン(VM)を生成する。
サーバ10のHDD13は、仮想マシン(VM)で用いられる仮想HDDのデータを、VMディスクイメージとして記録している。ファイル転送部15は、VMディスクイメージのファイルシステムを解析することによって、VMディスクイメージ中のファイルを送信することができる。
[全体の動作]
図7を参照して、本実施形態の全体の動作について説明する。
ステップU1からステップU3については、本発明の第1実施形態の動作のステップS1からステップS3と同じである。
(1)ステップU1
事前ファイル取得部25は、ファイル転送部15へ、ファイルの送信要求を送信する。
(2)ステップU2
ファイル転送部15は、ファイルの送信要求に応じて、ファイル判定部16を呼び出す。ここでは、ファイル転送部15は、ファイルの送信要求に応じて、ファイル判定部16に対して、事前に良く使われるファイルのリスト(送信ファイルリスト)を要求する。
(3)ステップU3
ファイル判定部16は、事前に良く使われるファイルのリスト(送信ファイルリスト)を取得し、取得されたリスト(送信ファイルリスト)をファイル転送部15へ返す。ここでは、ファイル判定部16は、HDD23に記録されているファイルのうち、事前に良く使われるファイルを判定して送信ファイルリストを作成し、送信ファイルリストをファイル転送部15へ通知する。
(4)ステップU4
ファイル転送部15は、送信ファイルリストをファイル判定部16から受け取り、リストに記載されているファイルをVMディスクイメージから読み込み、事前ファイル取得部25へ送信する。更に、ファイル転送部15は、VMディスクイメージに記録されているファイルのうち、送信ファイルリストに記載されていないファイルについて、そのファイルの名前(ファイル名)と、ファイルのサイズを事前ファイル取得部25へ送信する。
(5)ステップU5
事前ファイル取得部25は、HDD23にVMディスクイメージを生成する。次に、事前ファイル取得部25は、VMディスクイメージを解析し、受け取ったファイルをVMディスクイメージに書き込む。また、事前ファイル取得部25は、ファイル名とファイルサイズを受け取ったとき、ダミーのファイルを作成する。すなわち、事前ファイル取得部25は、良く使われるファイルを受け取った場合、良く使われるファイルをHDD23に書き込む。また、事前ファイル取得部25は、それ以外の場合、ダミーのデータをHDD23に書き込む。
(6)ステップU6
VMM27は、前述の事前ファイル取得部25の処理(ステップU5)が終了すると、仮想マシン(VM)を生成し、仮想マシン(VM)上でOSを起動する。このとき、VMM27は、事前ファイル取得部25の処理終了を監視するか、事前ファイル取得部25から処理終了通知を受けることにより、事前ファイル取得部25の処理終了を検出し、仮想マシン(VM)を生成し、仮想マシン(VM)上でOSを起動すると好適である。但し、実際には、これらの例に限定されない。このとき、オンデマンドファイル取得部26は、VMM27からのディスク読み込み要求(アクセス要求)を待つ。
(7)ステップU7
オンデマンドファイル取得部26は、アクセス要求を受けると、アクセス要求のあったファイルがHDD23に記録されているか判定する。ここでは、オンデマンドファイル取得部26は、シグネチャリストが存在する場合、シグネチャリストを参照することによって、HDD23から読み込まれたセクタのデータがダミーであるか否かを判定する。シグネチャリストについては、後に詳述する。オンデマンドファイル取得部26は、シグネチャリストが存在しない場合、自動的に、HDD23から読み込まれたセクタのデータがダミーではないと判定する。HDD23から読み込まれたセクタのデータがダミーである場合は、アクセス要求のあったファイルがHDD23に記録されていないことを示す。オンデマンドファイル取得部26は、HDD23から読み込まれたセクタのデータがダミーである場合、シグネチャリストから、どのファイルへのアクセスであるかを特定する。
(8)ステップU8
そして、オンデマンドファイル取得部26は、アクセス要求のあったファイルの送信要求を、ファイル転送部15へ送信する。
(9)ステップU9
ファイル転送部15は、アクセス要求のあったファイルの送信要求に応じて、要求されたファイルを、オンデマンドファイル取得部26へ送信する。
(10)ステップU10
次に、オンデマンドファイル取得部26は、ファイル転送部15からファイルを受信し、HDD23に記録されているダミーデータを、受信されたファイルのデータで上書きする。
[ダミーファイルの生成方法]
図8を参照して、ステップU5におけるダミーファイルの生成方法について説明する。
(1)ステップV1
まず、事前ファイル取得部25は、各ファイルに固有なシグネチャを生成する。シグネチャのサイズは、HDD23のセクタサイズ以内であれば、どのような長さでも良い。事前ファイル取得部25は、シグネチャのサイズがHDD23のセクタサイズと等しい場合は、シグネチャをダミーデータとする。事前ファイル取得部25は、シグネチャのサイズがHDD23のセクタサイズよりも小さい場合、シグネチャにパディング(padding)を加え、セクタサイズと等しいダミーデータを生成する。
(2)ステップV2
次に、事前ファイル取得部25は、ファイルのデータの代わりに、ファイルの各セクタにダミーデータを書き込む。
(3)ステップV3
最後に、事前ファイル取得部25は、書き込んだダミーデータに含まれるシグネチャとファイルを対応付けたシグネチャリストを作成する。ここでは、事前ファイル取得部25は、作成されたシグネチャリストに、シグネチャとファイル名を対応付けて追加し、当該シグネチャリストをHDD23に格納する。図9に、シグネチャリストの例を示す。
[オンデマンドファイル取得動作]
図10を参照して、ステップU10におけるオンデマンドファイル取得部26の詳細な動作について説明する。
(1)ステップW1
オンデマンドファイル取得部26は、ファイルを受信すると、VMディスクイメージのファイルシステムを解析し、アクセス要求のあったファイルが、どのセクタに記録されているかを特定する。すなわち、オンデマンドファイル取得部26は、VMディスクイメージのファイルシステムを解析し、アクセス要求のあったファイルのセクタを特定する。
(2)ステップW2
次に、オンデマンドファイル取得部26は、ファイルの先頭のセクタを書き換え対象のセクタとする。すなわち、オンデマンドファイル取得部26は、ファイルの先頭のセクタを、書き換え対象に設定する。
(3)ステップW3
そして、オンデマンドファイル取得部26は、書き換え対象のセクタのデータに、シグネチャが記録されているかを確認する。ここでは、オンデマンドファイル取得部26は、シグネチャリストとのパターンマッチングによって、書き換え対象のセクタのデータにシグネチャが記録されているかを確認する。
(4)ステップW4
オンデマンドファイル取得部26は、書き換え対象のセクタのデータにシグネチャが記録されている場合、当該書き換え対象のセクタにはダミーデータが記録されているため、当該書き換え対象のセクタへ、受信されたファイルの先頭からHDD23のセクタサイズ分だけ書き込む。
(5)ステップW5
そして、オンデマンドファイル取得部26は、ファイルの全てのセクタを処理したか否かを確認する。このとき、オンデマンドファイル取得部26は、ファイルの全てのセクタを処理している場合、処理を終了する。
(6)ステップW6
オンデマンドファイル取得部26は、ファイルの全てのセクタを処理していない場合、当該書き換え対象のセクタの次のセクタを、新たに書き換え対象のセクタとする。すなわち、オンデマンドファイル取得部26は、ファイルの全てのセクタを処理していない場合、当該書き換え対象のセクタの次のセクタを、新たに、書き換え対象に設定する。
なお、オンデマンドファイル取得部26は、次のセクタも、最初のセクタと同様に、ステップW3、ステップW4のように処理する。但し、オンデマンドファイル取得部26は、ステップW4においてデータを書き込む際、例えば、対象セクタがファイルの「i」番目であるとき、HDD23のセクタサイズを「S」とすると、ファイルの「i×S+1byte」目から、「(i+1)×S+1byte」目のデータを書き込む。
VMディスクイメージのファイルシステムは、一貫性を保つため、2重にマウントできない。つまり、OS起動前は、VMイメージをマウントすることができるが、OS起動後はOSによってマウントされているため、マウント不可能である。よって、事前ファイル取得部25は、VMディスクイメージをマウントし、ファイル単位でデータをVMイメージに書き込むことが出来るが、オンデマンドファイル取得部26は、セクタ単位でのファイル内容書き換えしか行えない。このため、ステップU5において、ダミーのファイルを作り、ステップU1においてダミーのファイル内容が記録されているセクタの内容を置き換かえている。
上記の動作では、HDDの各セクタに書き込まれたダミーデータ中のシグネチャによって、読み込まれたセクタにダミーデータが記録されているか否かを判定している。事前ファイル取得部25は、シグネチャではなくダミーデータをHDD23に書き込むときに、ダミーデータが書き込まれたセクタのリスト(ダミーデータリスト)を作成する。オンデマンドファイル取得部26は、当該リスト(ダミーデータリスト)を参照することによって、読み込んだセクタにダミーデータが記録されているか否かを判定しても良い。
以下に、本実施形態における各部の動作を詳細に説明する。
事前ファイル取得部25は、シグネチャを生成せず、例えば、「0」をダミーデータとして、HDD23にファイルを書き込む。次に、事前ファイル取得部25は、どのセクタにファイルが記録されたかを、ファイルシステムを解析することによって収集し、内容がダミーデータであるファイルの名前(ファイル名)と、そのセクタ番号を記録したリスト(ダミーデータリスト)を作成する。
オンデマンドファイル取得部26は、VMM27によるHDD23のセクタ読み込みをフック(hook)し、読み込み対象のセクタがダミーデータリストに載っているか確認する。オンデマンドファイル取得部26は、読み込み対象のセクタがダミーデータリストに載っていない場合、HDD23から対象セクタを読み込み、VMM27へ渡す。オンデマンドファイル取得部26は、読み込み対象のセクタがダミーデータリストに載っている場合、ダミーデータリストから対象セクタがどのファイルの一部であるかを特定する。次に、オンデマンドファイル取得部26は、特定されたファイルを、ファイル転送部15より取得する。そして、オンデマンドファイル取得部26は、ダミーデータリストに記載されているセクタに、取得されたファイルを記録する。最後に、オンデマンドファイル取得部26は、VMM27から要求のあったセクタのデータをVMM27へ渡す。
上記の第2実施形態の動作では、事前ファイル取得部25とオンデマンドファイル取得部26は、ファイル転送部15から、ファイル単位で取得を行っていた。本発明の第1実施形態の別の動作のように、ファイル単位ではなく、セクタ単位で取得しても良い。事前ファイル取得部25、オンデマンドファイル取得部26、及びファイル転送部15の動作は、本発明の第1実施形態と同様のため、説明を省略する。
第2実施形態の効果は、仮想PCシステムにも、高速に動作するネットブート型シンクライアント実施方法を、適用できることである。
≪実施例5≫
次に、本発明の第2実施形態の具体的な実施例について説明する。
本発明の第1実施形態と第2実施形態の違いは、事前ファイル取得部25とオンデマンドファイル取得部26のファイルの書き込みの動作にあるため、それらの動作について具体的に説明する。
[事前ファイル取得動作]
まず、事前ファイル取得部25の動作について説明する。
ファイル転送部15は、OS起動前に、ファイル判定部16から受け取った送信ファイルリストに従って、ファイルを送信する。更に、ファイル転送部15は、それ以外のファイルのファイル名とファイルサイズのリストを送信する。
リストは、例えば、次のように記述される。
「name=c:¥a.txt size=10byte; name=c:¥b.exe size=1000byte; …」
ファイルやリストの送信には、例えば、FTP等を用いることが考えられる。
事前ファイル取得部25は、ファイル転送部15から受け取ったファイルをHDD23へ書き込む。そして、以下の方法で、ダミーファイルを作成する。
例えば、事前ファイル取得部25は、乱数を用いてシグネチャを生成する。シグネチャのサイズとしては、HDD23のセクタサイズ、例えば、「512byte」までの任意の長さを用いることが考えられる。事前ファイル取得部25は、シグネチャのサイズがHDD23のサイズと等しくないとき、シグネチャの後に、例えば、0を追加してパディング(padding)とし、HDDのセクタサイズのダミーデータを作成する。例えば、事前ファイル取得部25は、シグネチャが「64byte」のとき、「448byte」のパディング(padding)を追加する。
次に、事前ファイル取得部25は、ダミーデータをHDD23へ書き込む。例えば、FAT(File Allocation Tables)ファイルシステムでは、HDDのセクタサイズが「512byte」のとき、「1500byte」のファイルは、3個のセクタを使用する。事前ファイル取得部25は、これらの3個のセクタへダミーデータを記録する。更に、事前ファイル取得部25は、生成されたシグネチャと、ファイル名を、シグネチャリストに記録する。例えば、事前ファイル取得部25は、「C:¥a.txt」というファイルに対し、「ABCDEF…」を生成したとき、図9のリストの1行目に追加する。
事前ファイル取得部25が全てのダミーファイルをHDD23に書き込んだ後、OSが起動される。例えば、事前ファイル取得部25は、全てのダミーファイルをHDD23に書き込んだ後、OSの起動要求をCPU21に通知する。CPU21は、OSの起動要求に応じて、OSを起動する。
[オンデマンドファイル取得動作]
次に、オンデマンドファイル取得部26の動作について、具体的に説明する。
オンデマンドファイル取得部26は、セクタ単位でOSの読み込みを監視する。そして、オンデマンドファイル取得部26は、HDD23から、特定のセクタが読み込まれたとき、そのセクタの内容が、シグネチャを含むか否かを確認する。
VMM27は、例えば、「Xen」や「VMWare(登録商標)」である。
例えば、VMM27が「Xen」であれば、仮想ハードディスクを生成するプログラムである「qemu−dm」(QEMUデバイスモデルプログラム)を監視することで、HDD23の読み込みを監視することが出来る。QEMUは、多種のCPUをエミュレートするプログラムである。シグネチャを含むか否かの判定は、例えば、VMで使用されているファイルシステムがFATであるとき、セクタの先頭からシグネチャのサイズだけ、シグネチャリストの各行と比較を行えば良い。
オンデマンドファイル取得部26は、読み込まれたセクタがダミーデータではなかった場合、そのセクタの情報をVMM27へ渡す。また、オンデマンドファイル取得部26は、読み込まれたセクタがダミーデータであった場合、ファイル転送部15からファイルを取得する。取得には、例えば、FTP等を用いることが考えられる。例えば、VMで使用されているファイルシステムがFATであれば、ディレクトリエントリとFATエントリから、ファイルが記録されているセクタを求めることができる。オンデマンドファイル取得部26は、ファイル転送部15から取得したファイルを、「512byte」単位で分割し、ファイルのセクタに、先頭から順番に書き込む。最後に、VMM27から読み出し要求があったセクタのデータをVMM27に渡す。
次に、本実施形態では、本発明の第1実施形態のように、セクタ単位でデータの取得を行っても良い。具体的な動作については、本発明の第1実施形態と同様である。
また、本実施形態では、本発明の第1実施形態のように、ダミーデータのパターンではなく、未受信セクタリストを用いて、未受信のセクタか否かを判定しても良い。具体的な動作については、本発明の第1実施形態と同様である。
なお、本発明の各実施形態は、組み合わせて実施することも可能である。
本発明によれば、シンクライアントを利用した情報漏洩対策に利用できる。
<要点>
最後に、本発明の特徴について説明する。
本発明のシンクライアントシステムは、ユーザが使用する第1のコンピュータが、第2のコンピュータから、ファイルを取得するシステムであって、第1のコンピュータは、OS動作前にファイルを取得する事前ファイル取得手段と、OS動作中にOSが要求するファイルを取得するオンデマンドファイル取得手段とを備える。第2のコンピュータは、事前ファイル取得手段が受信するファイルのリストを作成するファイル判定手段と、リストのファイルを事前ファイル取得手段へ送信し、更に、オンデマンドファイル取得手段から要求のあったファイルをオンデマンドファイル取得手段へ送信するファイル転送手段とを備える。
また、本発明のシンクライアントシステムは、ユーザが使用する第1のコンピュータが、第2のコンピュータから、ファイルを取得するシステムであって、第1のコンピュータは、仮想マシン(VM)を生成する仮想マシンモニタと、仮想マシン(VM)動作前にファイルを取得し、更に、仮想マシン(VM)動作前に取得しなかったファイルについて、ダミーデータを持つファイルを作成する事前ファイル取得手段と、仮想マシン(VM)動作中に仮想マシン(VM)が要求するファイルのデータを取得し、ファイルのダミーデータを取得したデータで差し替えるオンデマンドファイル取得手段とを備える。第2のコンピュータは、事前ファイル取得手段が受信するファイルのリストを作成するファイル判定手段と、リストのファイルを事前ファイル取得手段へ送信し、更に、オンデマンドファイル取得手段から要求のあったファイルをオンデマンドファイル取得手段へ送信するファイル転送手段とを備える。
このとき、事前ファイル取得手段は、ファイルごとに特定パターンのダミーデータを作成し、更にファイルごとのパターンとファイル名を記録したリストを作成する。オンデマンドファイル取得手段は、ハードディスクから読み込まれたセクタのデータとリストを比較し、データのパターンがリストに記載されていた場合にリストからファイル名を求め、ファイル転送手段から当該ファイルのデータを取得する。
なお、オンデマンドファイル取得手段は、ファイルシステムの情報を書き換えずに、ファイルのデータだけを差し替える。
また、本発明のシンクライアントシステムは、ユーザが使用する第1のコンピュータが、第2のコンピュータから、ハードディスクのセクタのデータを取得するシステムであって、第1のコンピュータは、OS動作前にセクタのデータを取得する事前ファイル取得手段と、OS動作中にOSが要求するセクタのデータを取得するオンデマンドファイル取得手段とを備える。第2のコンピュータは、事前ファイル取得手段が受信するセクタのリストを作成するファイル判定手段と、リストのセクタを事前ファイル取得手段へ送信し、更に、オンデマンドファイル取得手段から要求のあったセクタを、オンデマンドファイル取得手段へ送信するファイル転送手段とを備える。
また、本発明のシンクライアントシステムは、ユーザが使用する第1のコンピュータが、第2のコンピュータから、ハードディスクのセクタのデータを取得するシステムであって、第1のコンピュータは、仮想マシン(仮想マシン(VM))を生成する仮想マシンモニタと、仮想マシン(VM)動作前にセクタのデータを取得する事前ファイル取得手段と、仮想マシン(VM)動作中に仮想マシン(VM)が要求するセクタのデータを取得するオンデマンドファイル取得手段とを備える。第2のコンピュータは、事前ファイル取得手段が受信するセクタのリストを作成するファイル判定手段と、リストのセクタを事前ファイル取得手段へ送信し、更に、オンデマンドファイル取得手段から要求のあったセクタをオンデマンドファイル取得手段へ送信するファイル転送手段とを備える。
このとき、事前ファイル取得手段は、特定パターンのダミーデータを作成する。オンデマンドファイル取得手段は、ハードディスクから読み込まれたセクタのデータがパターンを含むか否かを検索することによって、当該セクタのデータがダミーか否かを判定し、ダミーデータである場合に当該セクタのデータをファイル転送手段から取得する。
更に、ファイル転送手段は、事前ファイル取得手段へ送信しなかったファイル又はセクタのリストを作成して、リストを事前ファイル取得手段へ送信する。事前ファイル取得手段は、リストに記載のファイル又はセクタについて、ダミーデータを作成する。
或いは、事前ファイル取得手段は、取得していないセクタを記録したリストを作成する。オンデマンドファイル取得手段は、ハードディスクから読み込もうとしているセクタがリストに記載されているかを確認し、記載されていた場合にファイル転送手段から当該セクタのデータを取得する。
ファイル判定手段は、管理者から与えられたリストを、ファイル転送手段へ渡す。
或いは、ファイル判定手段は、オンデマンドファイル取得手段からファイルの使用状況を受信し、使用頻度の高いファイルのリストを作成し、ファイル転送手段へ渡す。
或いは、ファイル判定手段は、オンデマンドファイル取得手段からファイルの使用状況を受信し、最近使用したファイルのリストを作成し、ファイル転送手段へ渡す。
或いは、ファイル判定手段は、管理者が指定した日時よりも新しい更新日時のファイルのリストを作成し、ファイル転送手段へ渡す。
或いは、ファイル判定手段は、管理者から与えられたリストと、前述の動作によって作成されたリストをマージし、ファイル転送手段へ渡す。
<まとめ>
以上のように、本発明のシンクライアントシステムは、クライアントにOS起動前にファイルを取得する事前ファイル取得手段と、OS起動中にファイルを取得するオンデマンドファイル取得手段とを備え、サーバにファイルが高頻度に使われるか否かを判定するファイル判定部16を備える。このような構成を採用し、使用頻度の高いファイルをOS起動前にダウンロードし、使用頻度の低いファイルをオンデマンドにダウンロードすることによって、本発明の目的を達成することができる。
ここでは、NICを用いて通信を行うことによって、ファイルやデータをやり取りする事例について説明しているが、実際には、USBメモリやDVD等の記憶媒体にファイルやデータを記憶し、当該記憶媒体を介して、ファイルやデータをやり取りすることも可能である。この場合、NICの代わりに、USBポート等の接続口(コネクタ)やDVDドライブ等の読取装置が使用される。
また、ここでは、ファイルやセクタのデータを例に説明しているが、実際には、これら以外の単位データを使用することも可能である。単位データは、サーバ及びクライアントが格納又は送受信するデータの最小単位であると好適である。
以上、本発明の実施形態を詳述してきたが、実際には上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
なお、本出願は、日本出願番号2009−001372に基づく優先権を主張するものであり、日本出願番号2009−001372における開示内容は引用により本出願に組み込まれる。

Claims (18)

  1. ユーザが使用する第1のコンピュータと、
    前記第1のコンピュータに単位データを提供する第2のコンピュータと
    を含み、
    前記第1のコンピュータは、
    仮想マシンを生成する仮想マシンモニタと、
    前記第2のコンピュータから取得された単位データを格納する第1記憶手段と、
    前記第1のコンピュータにおいて前記仮想マシン上で起動するOS(Operating System)の動作前に単位データを前記第2のコンピュータから取得する事前単位データ取得手段と、
    前記OSの動作中に前記OSが要求する単位データを前記第2のコンピュータから取得するオンデマンド単位データ取得手段と
    を具備し、
    前記第2のコンピュータは、
    前記第1のコンピュータに提供される単位データを格納する第2記憶手段と、
    前記事前単位データ取得手段により前記OSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成する単位データ判定手段と、
    前記OSの動作前に前記送信ファイルリストに情報が記載されている単位データを前記事前単位データ取得手段へ送信し、前記OSの動作中に前記オンデマンド単位データ取得手段から要求された単位データを、前記オンデマンド単位データ取得手段へ送信する単位データ転送手段と
    を具備し、
    前記単位データは、ファイルであり、
    前記事前単位データ取得手段は、前記仮想マシンの動作前にファイルを取得し、前記仮想マシンの動作前に取得しなかったファイルについて、ダミーデータを持つファイルを作成し、
    前記オンデマンド単位データ取得手段は、前記仮想マシンの動作中に前記仮想マシンが要求するファイルのデータを取得し、前記取得されたデータで、前記作成されたファイルのダミーデータを差し替え、
    前記単位データ判定手段は、前記送信ファイルリストに、前記事前単位データ取得手段により前記仮想マシンの動作前に取得されるファイルの情報を記載し、
    前記単位データ転送手段は、前記仮想マシンの動作前に前記送信ファイルリストに情報が記載されているファイルを前記事前単位データ取得手段へ送信し、前記仮想マシンの動作中に前記オンデマンド単位データ取得手段から要求されたファイルを、前記オンデマンド単位データ取得手段へ送信する
    ネットブート型シンクライアントシステム。
  2. 請求項に記載のシンクライアントシステムであって、
    前記事前単位データ取得手段は、ファイル毎に特定パターンのダミーデータを作成し、ファイル毎にデータのパターンとファイル名とを対応付けて記録したシグネチャリストを作成し、
    前記オンデマンド単位データ取得手段は、前記第1記憶手段から読み込まれたセクタのデータのパターンが前記シグネチャリストに記載されているか否か判定し、前記読み込まれたセクタのデータのパターンが前記シグネチャリストに記載されていた場合、前記シグネチャリストから前記データのパターンに対応するファイル名を検出し、前記検出されたファイル名に対応するファイルのデータを前記単位データ転送手段から取得する
    ネットブート型シンクライアントシステム。
  3. 請求項1又は2に記載のシンクライアントシステムであって、
    前記単位データは、セクタのデータであり、
    前記事前単位データ取得手段は、前記仮想マシンの動作前にセクタのデータを取得し、
    前記オンデマンド単位データ取得手段は、前記仮想マシンの動作中に前記仮想マシンが要求するセクタのデータを取得し、
    前記単位データ判定手段は、前記送信ファイルリストに、前記事前単位データ取得手段により前記仮想マシンの動作前に取得されるセクタの情報を記載し、
    前記単位データ転送手段は、前記仮想マシンの動作前に前記送信ファイルリストに情報が記載されているセクタを前記事前単位データ取得手段へ送信し、前記仮想マシンの動作中に前記オンデマンド単位データ取得手段から要求されたセクタを、前記オンデマンド単位データ取得手段へ送信する
    ネットブート型シンクライアントシステム。
  4. 請求項3に記載のシンクライアントシステムであって、
    前記事前単位データ取得手段は、前記仮想マシンの動作前に特定パターンのダミーデータを作成し、
    前記オンデマンド単位データ取得手段は、前記仮想マシンの動作中に前記第2記憶手段から読み込まれたセクタのデータがパターンを含むか否かを判定し、前記第2記憶手段から読み込まれたセクタのデータがパターンを含む場合、前記読み込まれたセクタのデータのパターンと前記特定パターンとを比較し、前記読み込まれたセクタのデータがダミーデータか否かを判定し、前記読み込まれたセクタのデータがダミーデータである場合、前記読み込まれたセクタのデータを前記単位データ転送手段から取得する
    ネットブート型シンクライアントシステム。
  5. ユーザが使用する第1のコンピュータと、
    前記第1のコンピュータに、ファイル単位、セクタ単位、又はクラスタ単位のいずれかの単位で記憶手段に格納可能なデータである単位データを提供する第2のコンピュータと
    を含み、
    前記第1のコンピュータは、
    前記第2のコンピュータから取得された単位データを格納する第1記憶手段と、
    前記第1のコンピュータのOS(Operating System)の動作前に単位データを前記第2のコンピュータから取得する事前単位データ取得手段と、
    前記OSの動作中に前記OSが要求する単位データを前記第2のコンピュータから取得するオンデマンド単位データ取得手段と、
    を具備し、
    前記第2のコンピュータは、
    前記第1のコンピュータに提供される単位データを格納する第2記憶手段と、
    前記事前単位データ取得手段により前記OSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成する単位データ判定手段と、
    前記OSの動作前に前記送信ファイルリストに情報が記載されている単位データを前記事前単位データ取得手段へ送信し、前記OSの動作中に前記オンデマンド単位データ取得手段から要求された単位データを、前記オンデマンド単位データ取得手段へ送信する単位データ転送手段と
    を具備し、
    前記事前単位データ取得手段は、前記OSの動作前に、前記単位データ転送手段から取得していない単位データの情報が記載された未取得単位データリストを作成し、
    前記オンデマンド単位データ取得手段は、前記OSの動作中に、前記OSによる前記単位データの読み込みの要求をフック(hook)し、前記未取得単位データリストに前記単位データが記録されていた場合、前記単位データ転送手段に対して、前記単位データの送信要求を送信し、前記単位データを取得すると、前記単位データの情報を前記未取得単位データリストから削除する
    ネットブート型シンクライアントシステム。
  6. ユーザが使用する第1のコンピュータと、
    前記第1のコンピュータに、ファイル単位、セクタ単位、又はクラスタ単位のいずれかの単位で記憶手段に格納可能なデータである単位データを提供する第2のコンピュータと
    を含み、
    前記第1のコンピュータは、
    前記第2のコンピュータから取得された単位データを格納する第1記憶手段と、
    前記第1のコンピュータのOS(Operating System)の動作前に単位データを前記第2のコンピュータから取得する事前単位データ取得手段と、
    前記OSの動作中に前記OSが要求する単位データを前記第2のコンピュータから取得するオンデマンド単位データ取得手段と、
    を具備し、
    前記第2のコンピュータは、
    前記第1のコンピュータに提供される単位データを格納する第2記憶手段と、
    前記事前単位データ取得手段により前記OSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成する単位データ判定手段と、
    前記OSの動作前に前記送信ファイルリストに情報が記載されている単位データを前記事前単位データ取得手段へ送信し、前記OSの動作中に前記オンデマンド単位データ取得手段から要求された単位データを、前記オンデマンド単位データ取得手段へ送信する単位データ転送手段と
    を具備し、
    前記単位データ判定手段は、
    前記オンデマンド単位データ取得手段から単位データの使用状況に関する情報を受信し、前記受信された情報に基づいて、使用頻度の高い単位データのリスト及び最近使用した単位データのリストのうち少なくとも1つのリストを作成し、前記作成されたリストを前記送信ファイルリストとして前記単位データ転送手段へ渡す手段と、
    管理者が指定した日時よりも新しい更新日時の単位データのリストを作成し、前記作成されたリストを前記送信ファイルリストとして前記単位データ転送手段へ渡す手段と、
    管理者から与えられたリストを前記送信ファイルリストとして前記単位データ転送手段へ渡す手段と、
    前記単位データ転送手段へ渡すリストをマージ(統合)し、前記マージされたリストを前記送信ファイルリストとして前記単位データ転送手段へ渡す手段と、
    のうち少なくとも1つを具備する
    ネットブート型シンクライアントシステム。
  7. 請求項1乃至6のいずれか一項に記載のシンクライアントシステムであって、
    前記オンデマンド単位データ取得手段は、ファイルシステムの情報を書き換えずに、ファイルのデータを差し替える
    ネットブート型シンクライアントシステム。
  8. 請求項1乃至7のいずれか一項に記載のシンクライアントシステムであって、
    前記単位データ転送手段は、前記OSの動作前に、前記事前単位データ取得手段へ送信しなかった単位データの情報が記載された未送信単位データリストを作成して、前記未送信単位データリストを前記事前単位データ取得手段へ送信し、
    前記事前単位データ取得手段は、前記OSの動作前に、前記未送信単位データリストに記載されている単位データについて、ダミーデータを作成する
    ネットブート型シンクライアントシステム。
  9. 請求項1乃至8のいずれか一項に記載のネットブート型シンクライアントシステムで、第1のコンピュータ及び第2のコンピュータのうち少なくとも一方の機能を有するコンピュータ。
  10. ネットブート型シンクライアントシステムにおいて、ユーザにより使用される第1のコンピュータが、第2のコンピュータから単位データを取得するためのシンクライアント実施方法であって、
    前記第1のコンピュータが、仮想マシンモニタにより仮想マシンを生成することと、
    前記第1のコンピュータが、前記第1のコンピュータにおいて前記仮想マシン上で起動するOS(Operating System)の動作前に単位データを前記第2のコンピュータから取得することと、
    前記第1のコンピュータが、前記OSの動作中に前記OSが要求する単位データを前記第2のコンピュータから取得することと、
    前記第2のコンピュータが、前記第1のコンピュータにより前記OSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成することと、
    前記第2のコンピュータが、前記OSの動作前に前記送信ファイルリストに情報が記載されている単位データを前記第1のコンピュータへ送信し、前記OSの動作中に前記第1のコンピュータから要求された単位データを、前記第1のコンピュータへ送信すること
    を含み、
    前記単位データは、ファイルであり、
    前記第1のコンピュータが、前記仮想マシンの動作前にファイルを取得し、前記仮想マシンの動作前に取得しなかったファイルについて、ダミーデータを持つファイルを作成することと、
    前記第1のコンピュータが、前記仮想マシンの動作中に前記仮想マシンが要求するファイルのデータを取得し、前記取得されたデータで、前記作成されたファイルのダミーデータを差し替えることと、
    前記第2のコンピュータが、前記送信ファイルリストに、前記第1のコンピュータにより前記仮想マシンの動作前に取得されるファイルの情報を記載することと、
    前記第2のコンピュータが、前記仮想マシンの動作前に前記送信ファイルリストに情報が記載されているファイルを前記第1のコンピュータへ送信し、前記仮想マシンの動作中に前記第1のコンピュータから要求されたファイルを、前記第1のコンピュータへ送信することと
    を更に含む
    シンクライアント実施方法。
  11. 請求項10に記載のシンクライアント実施方法であって、
    前記第1のコンピュータが、ファイル毎に特定パターンのダミーデータを作成し、ファイル毎にデータのパターンとファイル名とを対応付けて記録したシグネチャリストを作成することと、
    前記第1のコンピュータが、前記第2のコンピュータから提供された前記ファイルに対応するセクタのデータのパターンが前記シグネチャリストに記載されているか否か判定し、前記提供されたセクタのデータのパターンが前記シグネチャリストに記載されていた場合、前記シグネチャリストから前記データのパターンに対応するファイル名を検出し、前記検出されたファイル名に対応するファイルのデータを前記第2のコンピュータから取得することと
    を更に含む
    シンクライアント実施方法。
  12. 請求項10又は11に記載のシンクライアント実施方法であって、
    前記単位データは、セクタのデータであり、
    前記第1のコンピュータが、前記仮想マシンの動作前にセクタのデータを取得することと、
    前記第1のコンピュータが、前記仮想マシンの動作中に前記仮想マシンが要求するセクタのデータを取得することと、
    前記第2のコンピュータが、前記送信ファイルリストに、前記第1のコンピュータにより前記仮想マシンの動作前に取得されるセクタの情報を記載し、
    前記第2のコンピュータが、前記仮想マシンの動作前に前記送信ファイルリストに情報が記載されているセクタを前記第1のコンピュータへ送信し、前記仮想マシンの動作中に前記第1のコンピュータから要求されたセクタを、前記第1のコンピュータへ送信することと
    を更に含む
    シンクライアント実施方法。
  13. 請求項12に記載のシンクライアント実施方法であって、
    前記第1のコンピュータが、前記仮想マシンの動作前に特定パターンのダミーデータを作成することと、
    前記第1のコンピュータが、前記仮想マシンの動作中に前記第2のコンピュータから提供されたセクタのデータがパターンを含むか否かを判定し、前記第2のコンピュータから提供されたセクタのデータがパターンを含む場合、前記提供されたセクタのデータのパターンと前記特定パターンとを比較し、前記提供されたセクタのデータがダミーデータか否かを判定し、前記提供されたセクタのデータがダミーデータである場合、前記提供されたセクタのデータを前記第2のコンピュータから取得することと
    を更に含む
    シンクライアント実施方法。
  14. ネットブート型シンクライアントシステムにおいて、ユーザにより使用される第1のコンピュータが、第2のコンピュータから、ファイル単位、セクタ単位、又はクラスタ単位のいずれかの単位で記憶手段に格納可能なデータである単位データを取得するためのシンクライアント実施方法であって、
    前記第1のコンピュータが、前記第1のコンピュータのOS(Operating System)の動作前に単位データを前記第2のコンピュータから取得することと、
    前記第1のコンピュータが、前記OSの動作中に前記OSが要求する単位データを前記第2のコンピュータから取得することと、
    前記第2のコンピュータが、前記第1のコンピュータにより前記OSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成することと、
    前記第2のコンピュータが、前記OSの動作前に前記送信ファイルリストに情報が記載されている単位データを前記第1のコンピュータへ送信し、前記OSの動作中に前記第1のコンピュータから要求された単位データを、前記第1のコンピュータへ送信すること
    を含み、
    前記第1のコンピュータが、前記OSの動作前に、前記第2のコンピュータから取得していない単位データの情報が記載された前記未取得単位データリストを作成することと、
    前記第1のコンピュータが、前記OSの動作中に、前記OSによる前記単位データの読み込みの要求をフック(hook)し、前記未取得単位データリストに前記単位データが記録されていた場合、前記第2のコンピュータに対して、前記単位データの送信要求を送信し、前記単位データを取得すると、前記単位データの情報を前記未取得単位データリストから削除すること
    を更に含む
    シンクライアント実施方法。
  15. ネットブート型シンクライアントシステムにおいて、ユーザにより使用される第1のコンピュータが、第2のコンピュータから、ファイル単位、セクタ単位、又はクラスタ単位のいずれかの単位で記憶手段に格納可能なデータである単位データを取得するためのシンクライアント実施方法であって、
    前記第1のコンピュータが、前記第1のコンピュータのOS(Operating System)の動作前に単位データを前記第2のコンピュータから取得することと、
    前記第1のコンピュータが、前記OSの動作中に前記OSが要求する単位データを前記第2のコンピュータから取得することと、
    前記第2のコンピュータが、前記第1のコンピュータにより前記OSの動作前に取得される単位データの情報が記載された送信ファイルリストを作成することと、
    前記第2のコンピュータが、前記OSの動作前に前記送信ファイルリストに情報が記載されている単位データを前記第1のコンピュータへ送信し、前記OSの動作中に前記第1のコンピュータから要求された単位データを、前記第1のコンピュータへ送信すること
    を含み、
    前記第2のコンピュータが、
    前記第1のコンピュータから単位データの使用状況に関する情報を受信し、前記受信された情報に基づいて、使用頻度の高い単位データのリスト及び最近使用した単位データのリストのうち少なくとも1つのリストを前記送信ファイルとして作成し、前記送信ファイルリストに応じて取得した単位データを第1のコンピュータに送信することと、
    管理者が指定した日時よりも新しい更新日時の単位データのリストを前記送信ファイルとして作成し、前記送信ファイルリストに応じて取得した単位データを第1のコンピュータに送信することと、
    管理者から与えられた前記送信ファイルリストに応じて取得した単位データを第1のコンピュータに送信することと、
    前記第1のコンピュータへ送信するリストをマージ(統合)し、前記マージされたリストを前記送信ファイルとし、前記送信ファイルリストに応じて取得した単位データを第1のコンピュータに送信すること
    のうち少なくとも1つを行うこと
    を更に含む
    シンクライアント実施方法。
  16. 請求項10乃至15のいずれか一項に記載のシンクライアント実施方法であって、
    前記第1のコンピュータが、ファイルシステムの情報を書き換えずに、ファイルのデータを差し替えること
    を更に含む
    シンクライアント実施方法。
  17. 請求項10乃至16のいずれか一項に記載のシンクライアント実施方法であって、
    前記第2のコンピュータが、前記OSの動作前に、前記第1のコンピュータへ送信しなかった単位データの情報が記載された未送信単位データリストを作成して、前記未送信単位データリストを前記第1のコンピュータへ送信することと、
    前記第1のコンピュータが、前記OSの動作前に、前記未送信単位データリストに記載されている単位データについて、ダミーデータを作成することと
    を更に含む
    シンクライアント実施方法。
  18. 請求項10乃至17のいずれか一項に記載のシンクライアント実施方法における第1のコンピュータ及び第2のコンピュータのうち少なくとも一方の動作を、コンピュータに実行させるためのシンクライアント用プログラム。
JP2010545758A 2009-01-07 2010-01-05 ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム Expired - Fee Related JP5477660B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010545758A JP5477660B2 (ja) 2009-01-07 2010-01-05 ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009001372 2009-01-07
JP2009001372 2009-01-07
JP2010545758A JP5477660B2 (ja) 2009-01-07 2010-01-05 ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム
PCT/JP2010/050012 WO2010079772A1 (ja) 2009-01-07 2010-01-05 シンクライアントシステム、シンクライアント実施方法、及びシンクライアント用プログラム

Publications (2)

Publication Number Publication Date
JPWO2010079772A1 JPWO2010079772A1 (ja) 2012-06-21
JP5477660B2 true JP5477660B2 (ja) 2014-04-23

Family

ID=42316538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010545758A Expired - Fee Related JP5477660B2 (ja) 2009-01-07 2010-01-05 ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム

Country Status (3)

Country Link
US (1) US8954960B2 (ja)
JP (1) JP5477660B2 (ja)
WO (1) WO2010079772A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804965B2 (en) 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9239909B2 (en) * 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
US9792131B1 (en) 2010-05-28 2017-10-17 Bromium, Inc. Preparing a virtual machine for template creation
US8832296B2 (en) 2011-12-15 2014-09-09 Microsoft Corporation Fast application streaming using on-demand staging
JP5895944B2 (ja) 2011-12-21 2016-03-30 富士通株式会社 管理装置、管理プログラムおよび管理方法
JP5670369B2 (ja) * 2012-03-08 2015-02-18 株式会社東芝 情報処理装置、イメージファイル管理方法およびプログラム
JP5180399B2 (ja) * 2012-08-24 2013-04-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム
DE102014201954A1 (de) * 2014-02-04 2015-08-06 Volkswagen Aktiengesellschaft Verfahren zur Datenübertragung, Kommunikationsnetzwerk und Fahrzeug
WO2016143031A1 (ja) 2015-03-09 2016-09-15 富士通株式会社 プログラム取得方法、情報処理端末、及びプログラム
WO2017109859A1 (ja) * 2015-12-22 2017-06-29 株式会社日立製作所 コンピュータシステム及びその制御方法
US11748306B1 (en) * 2017-11-30 2023-09-05 Veritas Technologies Llc Distributed data classification
WO2019176034A1 (ja) * 2018-03-14 2019-09-19 三菱電機株式会社 システム構築支援装置、システム構築支援方法、およびシステム構築支援プログラム
JP7494543B2 (ja) 2020-04-15 2024-06-04 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
JP7367630B2 (ja) * 2020-07-27 2023-10-24 トヨタ自動車株式会社 サーバー、ソフトウェア更新装置、車両、ソフトウェア更新システム、方法およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240538A (ja) * 1997-02-25 1998-09-11 Nec Corp プログラムロード方式
JP2006011541A (ja) * 2004-06-22 2006-01-12 Hitachi Ltd 計算機および共用記憶装置を含む計算機システムにおける情報記録方法
JP2006039888A (ja) * 2004-07-27 2006-02-09 Hitachi Ltd ホスティング環境を安全に構築する方法及びシステム
JP2008158711A (ja) * 2006-12-22 2008-07-10 Fujitsu Ltd ファイル配信プログラム、ファイル配信装置および分散ファイルシステム
JP2009048231A (ja) * 2007-08-13 2009-03-05 Mitsubishi Electric Corp 多機能情報機器及び多機能情報機器の起動方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319624A (ja) 1996-05-31 1997-12-12 Toshiba Corp ファイル管理装置
JPH10133976A (ja) 1996-11-01 1998-05-22 Nippon Telegr & Teleph Corp <Ntt> オンデマンドファイルダウンロード方法及びシステム
JP3558522B2 (ja) * 1998-06-12 2004-08-25 三菱電機株式会社 レート制御通信装置及びレート制御通信方法
US7051054B1 (en) * 2000-05-30 2006-05-23 Dphi Acquisitions, Inc. Method and apparatus for emulating read/write file system on a write-once storage disk
US7962545B2 (en) 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
JP4272105B2 (ja) 2004-04-27 2009-06-03 株式会社日立製作所 ストレージグループ設定方法および装置
JP5020601B2 (ja) * 2006-11-10 2012-09-05 株式会社日立製作所 アクセス環境構築システム及び方法
JP2008198016A (ja) 2007-02-14 2008-08-28 Toshiba Corp シンクライアントシステム、装置及びプログラム
JP2008269288A (ja) * 2007-04-20 2008-11-06 Hewlett-Packard Development Co Lp 起動システム、起動プログラムおよびその方法。

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240538A (ja) * 1997-02-25 1998-09-11 Nec Corp プログラムロード方式
JP2006011541A (ja) * 2004-06-22 2006-01-12 Hitachi Ltd 計算機および共用記憶装置を含む計算機システムにおける情報記録方法
JP2006039888A (ja) * 2004-07-27 2006-02-09 Hitachi Ltd ホスティング環境を安全に構築する方法及びシステム
JP2008158711A (ja) * 2006-12-22 2008-07-10 Fujitsu Ltd ファイル配信プログラム、ファイル配信装置および分散ファイルシステム
JP2009048231A (ja) * 2007-08-13 2009-03-05 Mitsubishi Electric Corp 多機能情報機器及び多機能情報機器の起動方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200600929028; 中村 めぐみ、外5名: 'トラステッド・コンピューティングによるHTTP-FUSE KNOPPIXクライアントのセキュリティ強' 情報処理学会研究報告 第2006巻、第81号(2006-CSEC-34), 20060721, 第223-230頁, 社団法人情報処理学会 *
JPN6013041292; 中村 めぐみ、外5名: 'トラステッド・コンピューティングによるHTTP-FUSE KNOPPIXクライアントのセキュリティ強' 情報処理学会研究報告 第2006巻、第81号(2006-CSEC-34), 20060721, 第223-230頁, 社団法人情報処理学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804965B2 (en) 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same

Also Published As

Publication number Publication date
US20110276964A1 (en) 2011-11-10
WO2010079772A1 (ja) 2010-07-15
JPWO2010079772A1 (ja) 2012-06-21
US8954960B2 (en) 2015-02-10

Similar Documents

Publication Publication Date Title
JP5477660B2 (ja) ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム
US12038878B2 (en) Methods and apparatus for controlling snapshot exports
US7890689B2 (en) Virtual appliance management
US8140748B2 (en) IT automation appliance imaging system and method
US9813485B2 (en) Communication of virtual machine data
Chandra et al. The collective: A cache-based system management architecture
AU2007248886B2 (en) Converting machines to virtual machines
US8996667B2 (en) Deploying an operating system
Gilbert et al. Pocket ISR: Virtual machines anywhere
US10983908B1 (en) Method and system for garbage collection of data protection virtual machines in cloud computing networks
US20140208312A1 (en) Method, System, Device And Storage Medium For Restoring User System
JP2006107185A (ja) オフライン作業可能な端末を有する計算機システム
US11029932B2 (en) Hydration of applications
US20230273799A1 (en) Storage system with boot volume rollback points
US11500813B2 (en) Instant replay of a file to a cloud tier on a deduplication file system
JP2007323354A (ja) マシン管理システム
JP5428455B2 (ja) 仮想マシンサーバ、仮想マシン制御方法及び仮想マシン制御プログラム
US11494335B2 (en) Reconstructing lost data objects by generating virtual user files from available tiers within a node
US20030105851A1 (en) Remote management unit with interface for remote data exchange
US20060195693A1 (en) Specter rendering
GB2515114A (en) Communication of Virtual Machine Data
WO2014201660A1 (zh) 下载程序的方法
JP2006259874A (ja) コンピュータとコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140129

R150 Certificate of patent or registration of utility model

Ref document number: 5477660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees