JPWO2010052998A1 - メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム - Google Patents

メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム Download PDF

Info

Publication number
JPWO2010052998A1
JPWO2010052998A1 JP2010536732A JP2010536732A JPWO2010052998A1 JP WO2010052998 A1 JPWO2010052998 A1 JP WO2010052998A1 JP 2010536732 A JP2010536732 A JP 2010536732A JP 2010536732 A JP2010536732 A JP 2010536732A JP WO2010052998 A1 JPWO2010052998 A1 JP WO2010052998A1
Authority
JP
Japan
Prior art keywords
file
user
software
maintenance
virtual machine
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.)
Granted
Application number
JP2010536732A
Other languages
English (en)
Other versions
JP5483116B2 (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 JP2010536732A priority Critical patent/JP5483116B2/ja
Publication of JPWO2010052998A1 publication Critical patent/JPWO2010052998A1/ja
Application granted granted Critical
Publication of JP5483116B2 publication Critical patent/JP5483116B2/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

メンテナンス作業時に、ユーザの計算機が、ユーザデータをメンテナンスする人(メンテナ)に渡さず、メンテナンス作業に関係ない操作やデータを受け付けないことで、ユーザデータの流出を防止する。具体的には、ユーザ計算機は、ユーザが使用している計算機のVMのファイルがユーザが作成したデータであるか否かを判定するユーザデータ判定手段と、前記ユーザデータ判定手段を呼び出すことにより、ユーザが作成したデータが含まれていないVMの複製を生成するVMコピー手段を備えている。ユーザが作成したデータが含まれないVMをメンテナの計算機に渡し、メンテナンスを行う。

Description

本発明は、メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラムに関し、特にメンテナンスする人(メンテナ)の計算機から、遠隔操作により、ユーザの計算機のメンテナンス作業を行うメンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラムに関する。
近年、計算機が普及し、計算機に詳しくない人(計算機初心者)でも、計算機を使う機会が多い。そのような計算機初心者は、計算機のトラブルが発生したときの問題解消や、不必要なファイルの削除等の定期的なメンテナンスを、一人で行えないことが多い。そこで、計算機に詳しい人にメンテナンスしてもらう必要がある。このような場面では、メンテナンスする人(メンテナ)がトラブルの発生した計算機のある場所に出張し、計算機をメンテナンスすることは、移動コストがかかるため、遠隔からのメンテナンスが求められる。
一方、計算機内部には、写真や住所録、連絡先、パスワード、業務関連データ、非公開データ、その他の個人情報等、様々なユーザデータが保存されており、そのようなデータが第三者に見られたり、流出したりしてはならないという要件がある。
計算機のメンテナンスに関連する技術として、特開2004−171412号公報(特許文献1)に仮想PC(パソコン)レンタル装置、コンピュータが実行するためのプログラム、及び仮想PCレンタルシステムが開示されている。この関連技術では、画面転送型シンクライアントにおいて、サーバ側のVM(Virtual Machine:仮想計算機)を正常な状態までロールバックすることによって、メンテナンスする。しかし、メンテナンスを行うサーバ管理者であれば、VMのデータに自由にアクセス可能であるため、ユーザデータ閲覧や、ユーザデータの流出に繋がる。
また、特開2007−201969号公報(特許文献2)にリモートメンテナンスシステムが開示されている。この関連技術では、メンテナンスを行う計算機に通信制御部を備え、通信制御がメンテナンスを行う人に対し、パスワードを要求する。パスワードに有効期限を設けることで、メンテナンスを行う時間を指定できる。このため、保守を依頼した人は、メンテナンスが行われる時間を把握でき、不信感を軽減することができる。しかし、保守を行う人は、パスワード入力後、データに自由にアクセス可能であるため、ユーザデータ閲覧やユーザデータの流出に繋がる。
このように、上記の関連技術では、メンテナンス作業時に、ユーザデータを含む全てのデータをメンテナに渡しているため、ユーザデータの流出の可能性がある。また、メンテナが、ユーザの計算機にアクセスし、ユーザの計算機を操作してメンテナンスを行っているため、ユーザデータを含む全てのデータにユーザ以外の者がアクセスできるように設定を変更される可能性が残されている。
特開2004−171412号公報 特開2007−201969号公報
本発明の目的は、メンテナンス作業時に、ユーザの計算機が、ユーザデータをメンテナンスする人(メンテナ)に渡さず、メンテナンス作業に関係ない操作やデータを受け付けないことで、ユーザデータの流出を防止するメンテナンスシステムを提供することにある。
本発明のメンテナンスシステムは、判定手段と、選択手段と、データ提供手段と、データ取得手段と、マージ手段とを具備する。判定手段は、仮想計算機で利用するソフトウェアのファイルがユーザにより作成されたデータかどうか判定する。選択手段は、ユーザにより作成されたデータではないと判定されたファイルを、仮想計算機で利用するソフトウェアのファイルをユーザの代わりに更新するソフトウェア更新サービスに送るファイルとして選択する。データ提供手段は、ソフトウェア更新サービスへ、選択されたファイルを提供する。データ取得手段は、ソフトウェア更新サービスから、選択されたファイルに応じて更新されたソフトウェアのファイルを取得する。マージ手段は、更新されたソフトウェアのファイルに基づいて、仮想計算機で利用するソフトウェアに対し、更新内容を反映する。なお、データ提供手段及びデータ取得手段は、通信を行うためのNICでも良いし、記憶媒体(メディア)に対してデータを読み書きするための端子や装置でも良い。
本発明のメンテナンス方法は、ユーザが使用する計算機により実施されるメンテナンス方法である。このメンテナンス方法では、仮想計算機で利用するソフトウェアのファイルがユーザにより作成されたデータかどうか判定する。また、ユーザにより作成されたデータではないと判定されたファイルを、仮想計算機で利用するソフトウェアのファイルをユーザの代わりに更新するソフトウェア更新サービスに送るファイルとして選択する。また、ソフトウェア更新サービスへ、選択されたファイルを提供する。また、ソフトウェア更新サービスから、選択されたファイルに応じて更新されたソフトウェアのファイルを取得する。また、更新されたソフトウェアのファイルに基づいて、仮想計算機で利用するソフトウェアに対し、更新内容を反映する。
本発明のメンテナンス用プログラムは、以下の各ステップを計算機に実行させるためのプログラムである。最初のステップでは、仮想計算機で利用するソフトウェアのファイルがユーザにより作成されたデータかどうか判定する。次のステップでは、ユーザにより作成されたデータではないと判定されたファイルを、仮想計算機で利用するソフトウェアのファイルをユーザの代わりに更新するソフトウェア更新サービスに送るファイルとして選択する。次のステップでは、ソフトウェア更新サービスへ、選択されたファイルを提供する。次のステップでは、ソフトウェア更新サービスから、選択されたファイルに応じて更新されたソフトウェアのファイルを取得する。次のステップでは、更新されたソフトウェアのファイルに基づいて、仮想計算機で利用するソフトウェアに対し、更新内容を反映する。なお、本発明のメンテナンス用プログラムは、記憶装置や記憶媒体に格納することも可能である。なお、本発明のメンテナンス用プログラムは、記憶装置や記憶媒体に格納することが可能である。
以上により、メンテナンス作業時に、ユーザデータの流出の可能性の無いメンテナンスシステムを提供できる。
図1は、本発明のメンテナンスシステムの構成例を示すブロック図である。 図2は、メンテナンスシステムの動作を示すシーケンス図である。 図3は、ユーザデータの判定に用いるリストの例を示す図である。 図4は、ユーザデータ判定の動作を示す流れ図である。 図5は、ユーザデータ判定の動作を示す流れ図である。 図6は、ユーザデータ判定の動作を示す流れ図である。 図7は、ユーザVMとメンテナンス済みのコピーVMのマージの動作を示す流れ図である。 図8は、設定ファイルを定義するリストの例を示す図である。
以下に、本発明の実施形態について添付図面を参照して説明する。
図1に示すように、本発明のメンテナンスシステムは、メンテナ計算機1000Mと、ユーザ計算機1000Uを含む。
以下、メンテナ計算機1000Mの構成要素の番号には末尾に「M」を付けて表し、ユーザ計算機1000Uの構成要素の番号には末尾に「U」を付けて表す。
メンテナ計算機1000Mは、メンテナンスする人(メンテナ)が操作する計算機である。
ユーザ計算機1000Uは、メンテナンスしてもらう人(ユーザ)が操作する計算機である。ここでは、ユーザ計算機1000Uは、プログラム制御により動作する。
メンテナ計算機1000M、及びユーザ計算機1000Uの例として、PC(パソコン)、モバイルノートPC、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等のコンピュータや、携帯電話機、カーナビ(カーナビゲーションシステム)、家庭用ゲーム機、携帯ゲーム機、デジタルチューナー、デジタルレコーダー、情報家電(information home appliance)、POS(Point of Sale)端末、OA(Office Automation)機器、又は同様の通信機能を有する電子機器等が考えられる。なお、メンテナ計算機1000M、及びユーザ計算機1000Uは、端末やサーバに限らず、中継機器や周辺機器でも良い。また、メンテナ計算機1000M、及びユーザ計算機1000Uは、コンピュータに搭載される拡張ボードやソフトウェアでも良い。更に、ユーザ計算機1000Uは、車両や船舶、航空機等の移動体に搭載されていても良い。但し、実際には、これらの例に限定されない。
本発明では、ユーザ計算機1000UのVM(Virtual Machine:仮想計算機)を複製し、複製したVMをメンテナ計算機1000Mに送信し、メンテナンスを行った後、ユーザ計算機1000Uへ送信する。
ここでは、ユーザ計算機1000UのVMをユーザVMと定義する。ユーザVMの複製をコピーVMとする。メンテナ計算機1000Mに最初から存在するVMをメンテナVMとする。
また、本発明において、コピーするとは、コピー先に同名のファイルが存在しない場合には、ファイルの複製を作製し、コピー先に同名のファイルが存在する場合には、複製したファイルで同名のファイルを上書きする操作を意味する。
メンテナ計算機1000Mは、CPU(Central Processing Unit:中央処理装置)1001Mと、メモリ1002Mと、HDD(Hard Disk Drive:ハードディスクドライブ)1003Mと、NIC(Network Interface Card:ネットワークインターフェースカード)1004Mと、VMM(Virtual Machine Monitor:仮想計算機モニタ)1005Mと、メタデータ取得部1006Mと、差分送受信部1007Mを備える。
ユーザ計算機1000Uは、CPU1001Uと、メモリ1002Uと、HDD1003Uと、NIC1004Uと、VMM1005Uと、メタデータ取得部1006Uと、差分送受信部1007Uと、VMコピー生成部1008Uと、ユーザデータ判定部1009Uと、VMマージ部1010Uを備える。
CPU1001M、及びCPU1001Uは、コンピュータ内外の各装置の制御やデータの計算・加工を行い、メモリに記憶されたプログラムを実行したり、入力装置や記憶装置からデータを受け取り、演算・加工した上で、出力装置や記憶装置に出力したりする。CPU1001M、及びCPU1001Uの例として、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、同様の機能を有するIC(Integrated Circuit:半導体集積回路)等が考えられる。但し、実際には、これらの例に限定されない。
メモリ1002M、及びメモリ1002Uは、CPUが直接データを読み取ることができる半導体記憶装置である。ここでは、メモリ1002M、及びメモリ1002Uは、主記憶装置(メインメモリ)を示す。メモリ1002M、及びメモリ1002Uの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)、フラッシュメモリ、又はこれらの組み合わせ等が考えられる。但し、実際には、これらの例に限定されない。
HDD1003M、及びHDD1003Uは、コンピュータ内外でデータやプログラムを格納する補助記憶装置である。ここでは、HDD1003M、及びHDD1003Uは、外部記憶装置(ストレージ)を示す。なお、HDD1003M、及びHDD1003Uは、SSD(Solid State Drive)等のフラッシュメモリドライブでも良い。或いは、HDD1003M、及びHDD1003Uは、DVD(Digital Versatile Disk)やメモリカード等の記憶媒体(メディア)等でも良い。また、HDD1003M、及びHDD1003Uは、メンテナ計算機1000M、及びユーザ計算機1000Uに内蔵された記憶装置に限らず、周辺機器(外付けHDD等)や外部のサーバ(ストレージサーバ等)に設置された記憶装置でも良い。但し、実際には、これらの例に限定されない。
NIC1004M、及びNIC1004Uは、通信回線(ネットワーク)を介して、外部とデータの送受信を行うための通信装置である。ここでは、NIC1004MとNIC1004Uは、NIC1004MとNIC1004Uを介して接続される。NIC1004M、及びNIC1004Uの例として、ネットワークアダプタや、アンテナ、接続口(コネクタ)等の通信ポート等が考えられる。また、NIC1004M、及びNIC1004Uが利用するネットワークの例として、インターネット、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(登録商標)、シリアル通信回線、データバス等が考えられる。但し、実際には、これらの例に限定されない。
VMM1005M、及びVMM1005Uは、仮想マシン(VM)を生成する。
メタデータ取得部1006M、及びメタデータ取得部1006Uは、VMに含まれるファイルのメタデータを取得する。また、メタデータ取得部1006M、及びメタデータ取得部1006Uは、HDDに保存されているVMのファイルシステムを解析し、ファイルの名前(ファイル名)とファイルのハッシュ値を取得し、リストを作成する。
差分送受信部1007M、及び差分送受信部1007Uは、ファイルの転送を行う。
差分送受信部1007Mは、メンテナVMのメタデータのリストと、コピーVMのメタデータのリストを取得し、比較を行うことで差分を求め、差分の転送要求を、差分送受信部1007Uへ送信する。また、差分送受信部1007Mは、差分送受信部1007Uから差分を受信し、コピーVMを構築する。また、差分送受信部1007Mは、メンテナンス作業によって更新されたコピーVMのファイルを、差分送受信部1007Uへ送信する。
差分送受信部1007Uは、差分送受信部1007Mから要求された差分を送信する。また、差分送受信部1007Mから、メンテナンスによって更新されたファイルを受信する。
VMコピー生成部1008Uは、VMのコピーを行う。ここでは、VMコピー生成部1008Uは、HDDに保存されているVMに含まれるファイルをコピーし、新たなVMを生成する。このとき、VMコピー生成部1008Uは、ユーザデータ判定部1009Uを呼び出し、ユーザデータが含まれるファイルのコピーは行わない。
ユーザデータ判定部1009Uは、VMに含まれるファイルがユーザデータか否かを判定する。ここでは、ユーザデータ判定部1009Uは、VMコピー生成部1008UとVMマージ部1010Uから呼び出され、VMに含まれるファイルが、ユーザデータであるか否かを判定し、判定結果を返す。
VMマージ部1010Uは、メンテナンス作業によって、更新されたコピーVMと、メンテナンス作業の間にユーザが作業を行い、更新されているユーザVMとを、競合を解決し、マージ(merge:統合)する。すなわち、VMマージ部1010Uは、メンテナンス済みのコピーVMを、ユーザVMへマージする。このとき、ユーザデータ判定部1009Uを呼び出すことによって、ユーザデータのマージは行わない。また、VMマージ部1010Uは、設定ファイルに対しては、必ずマージを行い、アプリケーション本体やライブラリに対しては、メンテナンス済みコピーVMに含まれるファイルのバージョンが新しいときだけ、マージを行う。
なお、VMM1005M、VMM1005U、メタデータ取得部1006M、メタデータ取得部1006U、差分送受信部1007M、差分送受信部1007U、VMコピー生成部1008U、ユーザデータ判定部1009U、及びVMマージ部1010Uは、コンピュータに搭載される拡張ボードでも良い。或いは、各々の機能をコンピュータやCPUに実行させるためのプログラムでも良い。この場合、当該プログラムは、記憶装置や記憶媒体に格納することも可能である。但し、実際には、これらの例に限定されない。
ここで、メンテナ計算機1000Mは、ユーザ計算機1000Uと同じ構成でも良い。すなわち、メンテナ計算機1000Mは、ユーザ計算機1000Uの1つでも良い。メンテナ計算機1000Mとしての構成要素は、ユーザ計算機1000Uにも含まれているためである。この場合、複数のユーザ計算機1000Uの各々は、自機以外の他のユーザ計算機1000Uに対し、メンテナ計算機1000Mとなることができる。
次に、図2のシーケンス図を参照して、本発明のメンテナンスシステムの全体の動作について説明する。なお、メンテナンス作業の間、ユーザVMを停止させるか否かで、VMマージ方法が異なる。詳しくは後述する。
(1)ステップS1
まず、ユーザ計算機1000UのVMコピー生成部1008Uは、HDD1003UからユーザVMのディスクイメージを読み込む。次に、VMコピー生成部1008Uは、ユーザデータ判定部1009Uを呼び出し、ユーザVM中のユーザデータの特定を行う。そして、VMコピー生成部1008Uは、特定されたユーザデータを避けて、ユーザデータ以外をコピーし、新たなVMとしてコピーVMを生成する。すなわち、ユーザ計算機1000UのVMコピー生成部1008Uは、ユーザデータを含まないコピーVMを生成する。VMコピー生成部1008Uとユーザデータ判定部1009Uの詳しい動作については後述する。
(2)ステップS2
ユーザ計算機1000Uのメタデータ取得部1006Uは、生成されたコピーVMのディスクイメージのファイルシステムを解析することで、全てのファイルのメタデータを取得し、取得されたメタデータのリストとしてコピーVMのメタデータのリストを作成し、NIC1004UとNIC1004Mの間のネットワークを介して、メンテナ計算機1000Mの差分送受信部1007Mへ送信する。メタデータには、ファイル名とファイルの内容を一意に識別するファイルのハッシュ値が含まれる。ファイルのハッシュ値とは、ファイルの内容を、SHA1やMD5等のハッシュ関数に入力したときの、関数の出力である。
(3)ステップS3
メンテナ計算機1000Mのメタデータ収集部1006Mは、メンテナVMのディスクイメージを読み込み、ファイルシステムを解析することでメタデータを取得し、取得されたメタデータのリストとしてメンテナVMのメタデータのリストを作成する。
(4)ステップS4
メンテナ計算機1000Mの差分送受信部1007Mは、取得された2つのメタデータのリスト、すなわちコピーVMのメタデータのリストとメンテナVMのメタデータのリストを比較し、差分を求める。ここでは、メンテナ計算機1000Mの差分送受信部1007Mは、コピーVMにのみに存在するファイルと、コピーVMとメンテナVMで内容が異なるファイルとを記録した差分リストを求め、求められた差分リストを、ユーザ計算機1000Uの差分送受信部1007Uへ送信する。
ここで、コピーVMにのみに存在するファイルは、コピーVMのメタデータのリストから、メンテナVMのメタデータのリストに存在するファイルを引くことによって求められる。コピーVMとメンテナVMで内容が異なるファイルは、コピーVMのメタデータのリストと、メンテナVMのメタデータのリストで共通するファイルのうち、ファイルのハッシュ値がコピーVMとメンテナVMで異なるファイルである。コピーVMにのみ存在するファイルと、コピーVMとメンテナVMで内容が異なるファイルとの和集合を、差分と呼ぶ。
(5)ステップS5
ユーザ計算機1000Uの差分送信部1007Uは、コピーVMとメンテナVMの差分を示す差分リストを受信する。そして、差分送信部1007Uは、コピーVMイメージから、差分リストに記載されているファイルを読み込み、読み込まれたファイルをメンテナ計算機1000Mの差分送受信部1007Mへ送信する。
(6)ステップS6
メンテナ計算機1000Mの差分送受信部1007Mは、差分のファイルを受信する。次に、差分送受信部1007Mは、受信された差分のファイルを持たない新たなVMであるメンテナンス用のコピーVMを生成する。そして、差分送受信部1007Mは、先に取得された2つのメタデータのリスト、ずなわち現在のコピーVMのメタデータのリストとメンテナVMのメタデータのリストを比較し、コピーVMとメンテナVMに共通なファイルを、メンテナVMから新たなVMであるメンテナンス用のコピーVMへコピーする。次に、差分送受信部1007Mは、差分のファイルをメンテナンス用のコピーVMにコピーし、現在のコピーVMの受信処理を完了する。すなわち、メンテナ計算機1000Mの差分送受信部1007Mは、メンテナンス用のコピーVMを作成し、差分をマージする。
(7)ステップS7
メンテナ計算機1000MのCPU1001Mは、メンテナからの指示や操作に応じて、メンテナンス用のコピーVMを起動し、メンテナンスを行う。CPU1001Mは、設定ファイルの書き換えや、OS(Operating System)やアプリケーションやライブラリのアップデートすることによってメンテナンスを行う。
(8)ステップS8
メンテナ計算機1000Mのメタデータ取得部1006Mは、メンテナンス済みのメンテナンス用のコピーVMのメタデータを取得する。
(9)ステップS9
メンテナ計算機1000Mの差分受信部1007Mは、先に取得された現在のコピーVMのメタデータのリストと、新たに取得されたメンテナンス用のコピーVMのメタデータのリストを比較し、メンテナンス作業によって生成されたファイルと更新されたファイルを特定し、特定されたファイルをユーザ計算機1000Uの差分送受信部1007Uへ送信する。
このとき、更新されたファイルの特定方法の例として、差分受信部1007Mは、ハッシュ値を比較することによって、更新されたファイルを特定する。また、メタデータのリストにファイルの最終更新日時を記録しておき、最終更新日時が異なっていることを検知して、更新されたファイルを特定しても良い。
(10)ステップS10
ユーザ計算機1000Uの差分送受信部1007Uは、特定されたファイルを受信すると、受信されたファイルをVMマージ部1010Uへ渡す。VMマージ部1010Uは、受信されたファイルに基づいて、メンテナンス作業による更新を反映する。なお、メンテナンス作業による更新の反映方法(VMマージ方法)は、ユーザVMを停止させているか否かで異なる。これは、ユーザVMを停止させていない場合、ユーザVMの更新と、メンテナンスが行われたコピーVMの更新が競合する可能性があるためである。
ユーザVMを停止させている場合、ユーザ計算機1000Uの差分送受信部1007Uは、特定されたファイルを受信し、受信されたファイルをVMマージ部1010Uへ渡す。VMマージ部1010Uは、差分送受信部1007Uから受け取ったファイルを、HDD1003Uに保存されているユーザVMにコピーすることによって、メンテナンス作業によって行われた変更を反映する。
ユーザVMを停止させていない場合、ユーザ計算機1000Uの差分送受信部1007Uは、特定されたファイルを受信し、受信されたファイルをVMマージ部1010Uへ渡す。VMマージ部1010Uは、差分送受信部1007Uから受け取ったファイルを、稼働中のユーザVMにコピーし、メンテナンスによって行われた更新内容を反映する。このとき、VMマージ部1010Uは、ユーザデータ判定部1009Uを呼び出し、ユーザデータと判定されたファイルのコピーは行わない。設定ファイルについては、コピーVMのファイルを優先し、必ずコピーする。アプリケーションやライブラリについては、新しいバージョンの方を優先する。VMマージ部1010Uの詳しい動作については後述する。
上記の動作では、最初にユーザデータが含まれないコピーVMを生成し、次にコピーVMにのみ存在するファイルと、コピーVMとメンテナVMで内容が異なるファイルとが記載された差分リストを求めたが、先に、ユーザVMにのみ存在するファイルと、ユーザVMとメンテナVMで内容が異なるファイルとが記載されたリストを求め、更にそのリストからユーザデータが含まれるファイルを除き、差分リストとしても良い。
また、上記の動作では、ユーザ計算機1000UのVMコピー生成部1008Uは、ファイルをコピーすることによって、コピーVMを生成したが、ファイルをコピーするオーバヘッドを減らすために、実際にファイルをコピーせずに、コピーVMのファイル構成を記録したリストを作成しても良い。リストには、ファイル名を記録しておけば良い。この場合、メタデータ取得部1006Uが、メタデータを取得する際、このリストを参照し、ユーザVMファイルからメタデータを取得する。また、差分送受信部1007Uは、コピーVMではなく、ユーザVMからファイルを読み込み、読み込まれたファイルを送信する。
次に、上記のステップS1における、VMコピー生成部1008Uの動作について詳しく説明する。
VMコピー生成部1008Uは、VMのディスクイメージに記録されているファイルシステムを解析し、全てのファイルが記録されたコピーファイルリストを作る。次に、VMコピー生成部1008Uは、リストのファイルの内容とファイル名を1つずつユーザデータ判定部1009Uへ渡し、ユーザデータと判定されたファイルを、コピーファイルリストから削除する。最後に、VMコピー生成部1008Uは、コピーファイルリストに載っているファイルをコピーし、新しいVMとしてコピーVMを生成する。
次に、ユーザデータ判定部1009Uの動作について詳しく説明する。
ユーザデータ判定部1009Uは、VMコピー生成部1008U、又はVMマージ部1010Uから呼び出されると、以下の動作のいずれか、又は、以下の動作の組み合わせによって、ファイルがユーザデータであるか否かを判定し、判定結果を返す。
<動作1>:「ファイル名やファイルの拡張子で判定する」
ユーザデータが含まれるファイルを指定するリストとしてユーザデータファイルリストを用意する。指定方法は、図3に示すように、ファイル名や拡張子でも良いし、ディレクトリ名でも良い。ユーザデータ判定部1009Uは、ファイル名や拡張子がユーザデータファイルリストに記載されているか否かを確認する。記載されている場合は、ユーザデータの判定結果を返し、記載されていない場合は、非ユーザデータの判定結果を返す。
<動作2>:「ファイルの中身を見て判定する」
ユーザデータ判定部1009Uは、ファイルの内容に対し、パターンマッチングで氏名、住所、電話番号等を検索し、それらが含まれている場合、ユーザデータと判定する。また、特定のアプリケーションが出力するファイルには、ファイルの先頭にそのアプリケーション独自のヘッダが埋め込まれている場合がある。そのようなアプリケーションの場合、ヘッダによって、判定を行っても良い。
<動作3>:「ユーザVMにしか存在しないファイルをユーザデータと見なす」
OSやアプリケーションのファイルは、ユーザVMとメンテナVMで共通であると仮定する。よって、ユーザデータ判定部1009Uは、ユーザVMにしか存在しないファイルをユーザデータと判定する。
図4を参照して、<動作3>の詳細な動作について説明する。
(1)ステップV1
ユーザデータ判定部1009Uは、ユーザ計算機1000Uのメタデータ取得部1006Uと、メンテナ計算機1000Mのメタデータ取得部1006Mからメタデータのリストを取得する。すなわち、ユーザデータ判定部1009Uは、ユーザVMのメタデータのリストとメンテナVMのメタデータのリストを取得する。
(2)ステップV2
ユーザデータ判定部1009Uは、ユーザVMのメタデータのリストから、メンテナVMのメタデータのリストに載っているファイルを削除し、ユーザ計算機1000Uにのみ存在するファイルのファイル名のリストとしてユーザデータファイルリストを作成する。
(3)ステップV3
ユーザデータ判定部1009Uは、判定の問い合わせを待つ。ここでは、ユーザデータ判定部1009Uは、VMコピー生成部1008Uからファイル名の通知を受け取るまで待つ。
(4)ステップV4
ユーザデータ判定部1009Uは、判定の問い合わせがあった場合、すなわち、VMコピー生成部1008Uからファイル名の通知を受け取った場合、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストにあるか否かを確認する。
(5)ステップV5
ユーザデータ判定部1009Uは、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストにある場合は、ユーザデータであるとの判定結果をVMコピー生成部1008Uに通知する。
(6)ステップV6
ユーザデータ判定部1009Uは、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストに無い場合は、非ユーザデータであるとの判定結果を通知する。
<動作4>:「アプリケーションが読み込むファイルを監視する」
CPU1001Uがアプリケーションを起動するとき、アプリケーション本体や、その設定ファイルは、毎回読み込まれる性質がある。この性質を利用し、OS上のエージェントが、メンテナンスが必要となる前から、アプリケーションの起動と、アプリケーションのHDDへのアクセスを監視し、CPU1001Uがアプリケーションを起動したときに、読み込まれなかったファイルをユーザデータファイルリストに記録する。或いは、ユーザVMに含まれる全てのファイルのファイル名を記載したユーザデータファイルリストを作成しておき、OS上のエージェントが、CPU1001Uがアプリケーションを起動したときに、読み込まれたファイルをユーザデータファイルリストから削除する。
図5を参照して、<動作4>の詳細な動作を説明する。
(1)ステップW1
最初に、ユーザデータ判定部1009Uは、ユーザVMに含まれる全てのファイルのファイル名を記載したリストとしてユーザデータファイルリストを作成する。
(2)ステップW2
次に、OS上のエージェントが、プロセス起動のAPI(Application Program Interface)を監視することによって、アプリケーション起動の監視を行う。ここでは、CPU1001Uは、OS上のエージェントを稼動状態にしておき、プロセス起動のAPIを監視することによって、アプリケーション起動の監視を行う。なお、OS上のエージェントの代わりに、デーモン(Daemon)や、常駐プロセス、その他のバックグラウンドプログラムを使用しても良い。
(3)ステップW3
OS上のエージェントは、アプリケーションの起動時に、アプリケーションによりユーザVMのディスクイメージから読み出されたファイルを、APIフックやIO(Input/Output)フックドライバ等によって監視する。このとき、OS上のエージェントではなく、VMM1005Uが、アプリケーションによるファイルの読み込みを監視し、ファイルシステムの解析を行うことによって、エージェントを導入せずに、ユーザVMのディスクイメージから読み出されるファイルの監視を行っても良い。ここでは、OS上のエージェント(又はVMM1005U)は、アプリケーションが読み込んだファイルを、ユーザデータ判定部1009Uに通知する。
(4)ステップW4
次に、ユーザデータ判定部1009Uは、アプリケーションが読み込んだファイルを、ユーザデータファイルリストから削除する。
(5)ステップW5
OS上のエージェント(又はVMM1005U)は、アプリケーションの起動が完了したか否かを確認する。OS上のエージェント(又はVMM1005U)は、アプリケーションの起動が完了していなければ、継続して、アプリケーションによるファイルの読み込みを監視する。アプリケーションの起動完了は、ユーザのインタラクションの開始によって検知することができる。例えば、入力のAPIを監視し、マウスやキーボード入力が行われたら、アプリケーションの起動完了とする。
以降の動作(ステップW6からステップW9)は、基本的に、<動作3>のステップV3からステップV6と同じである。
(6)ステップW6
ユーザデータ判定部1009Uは、アプリケーションの起動が完了したら、ユーザデータであるか否かの問い合わせがあるまで、待機する。ここでは、ユーザデータ判定部1009Uは、VMコピー生成部1008Uからファイル名の通知を受け取るまで、待機する。
(7)ステップW7
ユーザデータ判定部1009Uは、ユーザデータであるか否かの問い合わせがあった場合、すなわち、VMコピー生成部1008Uからファイル名の通知を受け取った場合、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストにあるか否かを確認する。
(8)ステップW8
ユーザデータ判定部1009Uは、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストにある場合は、ユーザデータであるとの判定結果をVMコピー生成部1008Uに通知する。
(9)ステップW9
ユーザデータ判定部1009Uは、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストに無い場合は、非ユーザデータであるとの判定結果を通知する。
なお、アプリケーションが自動的にユーザデータを読み込む場合、例えば、前回起動時のファイルを自動表示する場合には、ユーザデータファイルリストからユーザデータが削除される場合がある。この場合は、アプリケーションを何度か起動し、全ての起動において読み込まれたファイルのみを、ユーザデータファイルリストから削除しても良い。この動作によって、ユーザデータファイルリストの精度を高めることが出来る。
<動作5>:「アプリケーションが読み込むファイルのパスを監視する」
アプリケーションの設定ファイルは、特定のディレクトリに置かれていることが多い。よって、アプリケーションが読み込むファイルのフォルダ(又はディレクトリ)の変更を検知し、フォルダ変更前に読み込まれたファイルをアプリケーションの設定ファイル、変更後に読み込まれたファイルをアプリケーションで作成したユーザデータと判定する。
図6を参照して、<動作5>の詳細な動作について説明する。
(1)ステップX1
動作4と同様に、OS上のエージェントが、プロセス起動のAPI(Application Program Interface)を監視することによって、アプリケーション起動の監視を行う。ここでは、CPU1001Uは、OS上のエージェントを稼動状態にしておき、プロセス起動のAPIを監視することによって、アプリケーション起動の監視を行う。なお、OS上のエージェントの代わりに、デーモン(Daemon)や、常駐プロセス、その他のバックグラウンドプログラムを使用しても良い。
(2)ステップX2
OS上のエージェントは、アプリケーションが起動したら、アプリケーションのファイル読み込みを監視する。例えば、OS上のエージェントは、アプリケーションの起動時に、ユーザVMのディスクイメージから読み出されたファイル(アプリケーションが読み込んだファイル)を、APIフックやIOフックドライバ等によって監視する。このとき、OS上のエージェントではなく、VMM1005Uが、アプリケーションによるファイルの読み込みを監視し、ファイルシステムの解析を行うことによって、エージェントを導入せずに、ユーザVMのディスクイメージから読み出されるファイルの監視を行っても良い。
(3)ステップX3
OS上のエージェント(又はVMM1005U)は、アプリケーションが最初に読み込んだファイルのディレクトリを記録する。例えば、OS上のエージェント(又はVMM1005U)は、アプリケーションが初めてファイルを読み込んだ際に、初期ディレクトリリストを作成し、初期ディレクトリリストに、アプリケーションが最初に読み込んだファイルのディレクトリのパスを記録する。なお、パスは、「絶対パス」、「相対パス」を問わない。パスの例として、URI(Uniform Resource Identifier)やアドレス等がある。このとき、OS上のエージェント(又はVMM1005U)は、アプリケーションが最初に読み込んだファイルがユーザデータであれば、ディレクトリのパスを記録するようにしても良い。この場合、ユーザデータ判定部1009Uは、OS上のエージェント(又はVMM1005U)から、アプリケーションが最初に読み込んだファイルの通知を受け取り、ファイルがユーザデータであるか否かを判定し、判定結果を、OS上のエージェント(又はVMM1005U)に返す。ファイルがユーザデータであるか否かの判定方法については、<動作1>〜<動作3>に示す方法が考えられる。
なお、ファイルのパスは、「/第1ディレクトリ/第2ディレクトリ/〜/第nディレクトリ/ファイル名」のような階層構造で示されることが多い。ディレクトリのパスを記録する際は、ファイル名の直前のディレクトリまでのパス(上記の例では、「/第1ディレクトリ/第2ディレクトリ/〜/第nディレクトリ」)を記録するのが好適であるが、上位のディレクトリのパス(上記の例では、「/第1ディレクトリ」や「/第1ディレクトリ/第2ディレクトリ」)で、ファイルの存在するディレクトリを特定できる場合(例えば、その上位のディレクトリの配下にしか当該ファイルが存在しない場合)は、上位のディレクトリのパスを記録するようにしても良い。
(4)ステップX4
OS上のエージェント(又はVMM1005U)は、アプリケーションのファイル読み込みを引き続き監視する。このときの動作(アプリケーションのファイル読み込みの監視)については、ステップX2と同じである。
(5)ステップX5
ユーザデータ判定部1009Uは、アプリケーションにファイルが読み込まれたら、読み込まれたファイルの存在するディレクトリが、記録しておいたディレクトリと同じか否かを判定する。例えば、ユーザデータ判定部1009Uは、OS上のエージェント(又はVMM1005U)から、アプリケーションに読み込まれたファイルに関する通知を受け、読み込まれたファイルのパスに基づいて、読み込まれたファイルの存在するディレクトリが、初期ディレクトリリストに記録しておいたディレクトリと同じか否かを判定する。ユーザデータ判定部1009Uは、読み込まれたファイルの存在するディレクトリが、記録しておいたディレクトリと同じ場合、ディレクトリが変化していないと判定し、記録しておいたディレクトリと同じでない(異なる)場合、ディレクトリが変化していると判定する。ユーザデータ判定部1009Uは、ディレクトリが変化していない場合は、ステップX4へ戻る。
(6)ステップX6
ユーザデータ判定部1009Uは、ディレクトリが変化している場合は、ファイルの読み込みを監視し、アプリケーションが終了するまでに読み込んだファイルを、確認用のリストであるユーザデータファイルリストに追加する。なお、ユーザデータ判定部1009Uは、ユーザデータであるか否かの問い合わせがあるまで、この動作を継続する。ここでは、ユーザデータ判定部1009Uは、VMコピー生成部1008Uからファイル名の通知を受け取るまで、ファイルの読み込みを監視し、アプリケーションが終了するまでに読み込んだファイルのファイル名を記載するための確認用のリストとしてユーザデータファイルリストを作成し、アプリケーションが終了するまでに読み込んだファイルのファイル名を、ユーザデータファイルリストに追加する。
以降の動作(ステップX7からステップX9)は、基本的に、<動作3>のステップV4からステップV6と同じである。
(7)ステップX7
ユーザデータ判定部1009Uは、ユーザデータであるか否かの問い合わせがあった場合、すなわち、VMコピー生成部1008Uからファイル名の通知を受け取った場合、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストにあるか否かを確認する。
(8)ステップX8
ユーザデータ判定部1009Uは、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストにある場合は、ユーザデータであるとの判定結果をVMコピー生成部1008Uに通知する。
(9)ステップX9
ユーザデータ判定部1009Uは、VMコピー生成部1008Uから受け取ったファイル名が、ユーザデータファイルリストに無い場合は、非ユーザデータであるとの判定結果を通知する。
次に、上記の動作(<動作1>〜<動作5>)の組み合わせについて説明する。
複数の動作を組み合わせるときの判定結果は、複数の動作の判定結果の論理和や論理積を用いてルール(組み合わせルール)を記述し、組み合わせルールに基づいて判定結果を返す。
例えば、<動作1>と<動作2>の両方でユーザデータであると判定されたときに、最終的な判定をユーザデータとする場合は、「<動作1> and <動作2>」を組み合わせルールとして記述する。また、例えば、<動作1>又は<動作2>のいずれかでユーザデータであると判定された場合に、ユーザデータであると判定する場合は、「<動作1> or <動作2>」を組み合わせルールとして記述する。3つ以上のルールを組み合わせる場合は、例えば、「(<動作1> or <動作2>) and <動作3>」のように括弧によって評価の優先順位を指定しても良い。
ユーザデータ判定部1009Uは、組み合わせルールに記述されている動作を全て実行する。次に、ユーザデータ判定部1009Uは、各動作の判定結果を、論理式に従って評価する。論理式評価は、ユーザデータの判定結果を真、非ユーザデータの判定結果を偽と見なして行う。最終的な判定については、論理式の値が真であるならば、ユーザデータであり、論理式の値が偽であれば、非ユーザデータである。
例えば、「(<動作1> or <動作2>) and <動作3>」という組み合わせルールが設定されているとき、<動作1>がユーザデータ、<動作2>が非ユーザデータ、<動作3>がユーザデータという判定結果であったとき、論理式は、「(真 or 偽) and 真」となり真である。よって、ユーザデータ判定部1009Uは、ユーザデータの判定結果を返す。
次に、図7を参照して、VMマージ部1010Uの動作について詳細に説明する。
(1)ステップU1
VMマージ部1010Uは、差分送受信部1007Uから受け取った差分のファイルのリストとしてメンテナンス更新ファイルリストを作成する。ここでは、VMマージ部1010Uは、ステップS5において差分送信部1007Uが受信した差分リストに基づいて、メンテナンス更新ファイルリストを作成する。例えば、VMマージ部1010Uは、差分リストに記載されたファイルとユーザデータのファイルを含むメンテナンス更新ファイルリストを作成する。
(2)ステップU2
VMマージ部1010Uは、メンテナンス更新ファイルリストの最初のファイル情報を読み込む。
(3)ステップU3
VMマージ部1010Uは、読み込まれたファイル情報に対応するファイルがユーザVMに既に存在するか否かを、ユーザVMのファイルシステムを解析することによって調べる。VMマージ部1010Uは、ファイルが存在しない場合は、ステップU7に移る。VMマージ部1010Uは、ファイルが存在する場合は、ステップU4へ移る。
(4)ステップU4
VMマージ部1010Uは、ユーザデータ判定部1009Uを呼び出し、ユーザVMのファイルがユーザデータであるか否かを判定する。このとき、ユーザデータ判定部1009Uは、ユーザVMのファイルがユーザデータであるか否かを判定し、判定結果をVMマージ部1010Uに返す。VMマージ部1010Uは、ファイルがユーザデータである場合、ステップU8へ移る。VMマージ部1010Uは、ファイルがユーザデータではない場合、ステップU5へ移る。
(5)ステップU5
VMマージ部1010Uは、ファイルが設定ファイルであるか否かを判定する。ファイルが設定ファイルである場合は、ステップU7へ移る。設定ファイルではない場合は、ステップU6へ移る。設定ファイルであるか否かは、ファイルの名前や拡張子、ファイルの置かれているディレクトリで判断できる。例えば、図8のように、指定方法と指定内容を記述した設定定義リストを与え、ファイルが設定定義リストに記載されていたら、設定ファイルと判断する。
(6)ステップU6
VMマージ部1010Uは、ファイルがライブラリやアプリケーションの実行ファイル(アプリ本体)であり、当該ファイルよりもメンテナンス済みコピーVMのファイルの方が新しいバージョンであるか否かを判定する。ファイルがライブラリやアプリケーションの実行ファイルであり、当該ファイルよりもメンテナンス済みコピーVMのファイルの方が新しいバージョンの場合、ステップU7へ移る。当該ファイルよりもユーザVMのファイルの方が新しいバーションの場合、ステップU8へ移る。ファイルがアプリケーション本体やライブラリであるか否かは、ステップU5と同様の設定定義リストを持ち、拡張子や名前やディレクトリ名によって判定することができる。
また、アプリケーションの実行ファイルやライブラリには、固有のヘッダが付加されているため、ヘッダの有り無しを基に設定ファイルか否かを判定しても良い。例えば、「Windows(登録商標)」のアプリケーションの実行ファイルであれば、先頭に「image_dos_header」や「PEヘッダ」が含まれている。また、「Linux(登録商標)」等で用いられている「ELFフォーマット」(Executable and Linkable Format:ELF)では、先頭に「ELFヘッダ」があり、「0x7F 0x45 0x4C 0x46」というシグネチャが記録されている。
また、ファイルのバーション情報の取得は、例えば、「Windows(登録商標)」のアプリケーションやライブラリであれば、ファイル内部にバージョン情報が埋め込まれているため、「Windows(登録商標)」のAPIを用いて、バージョン情報を取得し、どちらのバージョンが新しいかを比較すれば良い。
(7)ステップU7
VMマージ部1010Uは、メンテナンス済みのコピーVMからユーザVMへ、ファイルをコピーする。
(8)ステップU8
VMマージ部1010Uは、メンテナンス更新ファイルリストから次のファイルを読み込み、ステップU3からステップU7を繰り返す。VMマージ部1010Uは、メンテナンス更新ファイルリストのファイルを全て処理したら、マージ処理を終了する。
本発明では、「ユーザデータが含まれないVM」をメンテナ計算機に送信し、メンテナンスを行うように構成されているため、ユーザデータの漏洩を防止することができる。
<実施例>
次に、具体的な実施例を用いて、本発明を実施するための最良の形態の動作を説明する。
図1のユーザ計算機1000Uは、CPU1001U、メモリ1002U、HDD1003U、NIC1004U、マウス、キーボード、ディスプレイのようなインターフェースを備える一般的な計算機である。メンテナ計算機1000Mも同様である。
ユーザ計算機1000Uとメンテナ計算機1000Mは、ネットワークによって接続される。ネットワークの回線は、電話回線、LAN,無線LAN,インターネット等が上げられるが、特に限定されるものではない。
ユーザ計算機1000UのVMコピー生成部1008Uは、仮想マシンのディスクイメージのファイルシステムを解析する。例えば、VMM1005Uに「Linux(登録商標)」の「Xen」を用いていれば、「mountコマンド」を用いて「Linux(登録商標)」の機能を用いてファイルシステムを解析することができる。
次に、VMコピー生成部1008Uは、例えば、VMM1005Uに「Linux(登録商標)」の「Xen」を用いていれば、解析したファイルシステムに対して「findコマンド」を実行することで、コピーファイルリストを作成することができる。そして、VMコピー生成部1008Uは、ユーザデータ判定部1009Uを呼び出し、コピーファイルリストからユーザデータを削除する。ユーザデータ判定部1009Uの詳しい動作については後述する。
次に、VMコピー生成部1008Uは、例えば、VMM1005Uに「Linux(登録商標)」の「Xen」を用いていれば、「ddコマンド」を用いてコピーVMのVMディスクイメージを作成し、「mkdosfsコマンド」や「mkextコマンド」を用いてファイルシステムのフォーマットを行った後、「mountコマンド」を用いてマウントを行う。そして、VMコピー生成部1008Uは、コピーファイルリストに記載されているファイルを、ユーザVMから、コピーVMへする。ファイルのコピーであるので、例えば「Linux(登録商標)」であれば、「cpコマンド」を用いれば良い。
ここで、「ddコマンド」や「cpコマンド」によって、ファイルをコピーせずに、コピーファイルリストを、コピーVMのファイル構成リストとして保持しておき、コピーVMのファイルを参照するときには、このリストを基に、ユーザVMからファイルを読み込んでも良い。
ユーザ計算機1000Uのメタデータ取得部1006Uは、コピーVMのディスクイメージからメタデータを取得する。「Linux(登録商標)」では、「lsコマンド」によってファイルの名前を取得し、「sha1sumコマンド」や「md5sumコマンド」によってファイルのハッシュ値を取得することができる。
メンテナ計算機1000Mのメタデータ収集部1006Mは、ユーザ計算機1000Uのメタデータ取得部1006Uと同様に、メンテナVMのメタデータを取得する。
続いて、メタデータ収集部1006Mは、コピーVMのメタデータのリストと、メンテナVMのメタデータのリストから、差分のリストを作成し、ユーザ計算機1000Uの差分送信部1007Uへ送信する。
例えば、コピーVMのメタデータのリストが、
「name=a.txt,hash=11111111; name=b.txt,hash=22222222; name=c.txt,hash=abcdef09」
であり、メンテナVMのメタデータのリストが、
「name=b.txt,hash=87654321;name=c.txt,hash=abcdef09」
である場合、コピーVMにしか存在しない「a.txt」と、コピーVMとメンテナVMで内容が異なる「b.txt」が差分となるため、差分のリストは「a.txt;b.txt」となる。
ユーザ計算機1000Uの差分送信部1007Uは、差分リストを受信する。そして、差分送信部1007Uは、差分リストに記載されているファイルをコピーVMから読み込み、メンテナ計算機1000Mの差分送受信部1007Mへ送信する。このとき、差分送信部1007Uは、コピーVMを生成せず、コピーVMのファイル構成リストを作成している場合には、リストに記載されているファイルをユーザVMから読み込み送信する。送信は、例えば、「FTPコマンド」や、「SCPコマンド」をファイル送信に用いることが出来る。このとき、ファイルを圧縮することによって、転送効率を高めても良い。
メンテナ計算機1000Mの差分送受信部1007Mは、差分を受信する。そして、差分送受信部1007Mは、例えば、VMM1005Mに「Linux(登録商標)」の「Xen」を用いていれば、コピーVM生成の動作と同じように、ディスクイメージのファイルを生成し、フォーマットした後、マウントする。差分送受信部1007Mは、マウントしたディレクトリに、受信した差分と、メンテナ計算機1000MのVMから取得したファイルをコピーする。
メンテナ計算機1000Mにおいて、生成したVMを起動する。起動したVMに対して、メンテナはメンテナンス作業を行う。メンテナンスは、設定ファイルをエディタによって書き換えたり、アプリケーションやOSに対するパッチを当てたりすることによって行う。このとき、自動診断プログラムを用いて、メンテナンス作業の効率化を図っても良い。
メンテナ計算機1000Mの差分送受信部1007Mは、メンテナンス前のコピーVMのメタデータのリストとメンテナンス後のコピーVMのメタデータのリストを比較し、更新されたファイルを特定する。
例えば、メンテナンス前の「config.ini」のハッシュ値が「1234567」であった場合、メタデータのリストは、「name=config.ini,hash=1234567」となる。
メンテナンスによって、「config.ini」が書き換わり、ハッシュ値がfedcba98になり、さらに「config_new.ini」が新しく作成されたとき、メタデータのリストは、
「name=config.ini,hash= fedcba98; name=config_new.ini,hash=00998877」
となる。
メタデータのハッシュ値が異なるため、「config.ini」が更新されたと判断できる。また、メンテナンス前のメタデータのリストには、「config_new.ini」が無いことから、「config_new.ini」が作成されたと判断できる。
差分送受信部1007Mは、「config.ini」と、「config_new.ini」をメンテナンス作業によって更新・作成されたファイルとし、ユーザ計算機1000Uの差分送受信部1007Uへ送信する。
ユーザ計算機1000Uの差分送受信部1007Uは、VMマージ部1010Uを呼び出して、VMのマージを行う。VMマージ部1010Uの具体的な動作の例は、後述する。
次に、ユーザデータ判定部1009Uの具体的な動作を説明する。
<動作1>:「ファイル名やファイルの拡張子で判定する」
ユーザデータ判定部1009Uは、判定対象のメタデータからファイル名を取得し、ユーザデータファイルリストにあるか否かを検索する。
例えば、「Windows(登録商標)」では、「My documents」フォルダに多くのユーザデータが記録されるため、「My documents」をユーザデータファイルリストに記録すれば、大半のアプリケーションが記録するユーザデータを判別することが出来る。また、「MS Office」が記録するユーザデータは、「*.ppt」や「*.xls」、「*.doc」(*は、ワイルドカード(wild card))であると決まっているため、それらをユーザデータファイルリストに記録することで、「MS Office」が記録したユーザデータを判定できる。
<動作2>:「ファイルの中身を見て判定する」
例えば、「0?0−????−????」(?は任意の数字1文字)のパターンを検索することによって、携帯電話番号を判定できる。このパターンが含まれるファイルは電話帳であり、ユーザデータであると判定できる。また、東京、神奈川等の地名が多く組まれたファイルは、住所録であり、ユーザデータであると判定できる。
<動作3>:「ユーザVMにしか存在しないファイルをユーザデータと見なす」
例えば、メンテナVMとユーザ計算機1000Uに「MS Word」というアプリケーションがインストールされていれば、「word.exe」は両方のVMに存在する。しかし、ユーザデータ、例えば、wordで作成した「patent.doc」は、ユーザVMにしか存在しない。
上記の場合、ユーザVMのメタデータのリストは、例えば、
「name=word.exe, hash=11111111; name=patent.doc, hash=222222」
である。
メンテナVMのメタデータのリストは、例えば、
「name=word.exe, hash=11111111;」
である。
2つのリストの差をとると、ユーザVMにのみ存在する「patent.doc」が抽出されるため、「patent.doc」をユーザデータであると見なすことが出来る。
<動作4>:「アプリケーションが読み込むファイルを監視する」
例えば、あるアプリケーションは、「config.ini」という設定ファイルを持つとする。アプリケーションを起動し、ユーザが操作するまでのアプリケーションのファイル読み込みを監視すると、config.iniの読み込みが観測できる。よって、「config.ini」を設定ファイルと判定し、ユーザデータファイルリストから削除する。
しかし、アプリケーションが前回使用していたファイルを自動的に読み込む場合、例えば、「user.dat」を自動的に読み込んだとき、「user.dat」はユーザデータであるにも関わらず、ユーザデータファイルリストから削除されてしまう。一般的にユーザは、毎回「user.dat」を使用するとは限らないため、何度かアプリケーションの起動を監視し、一度でも「user.dat」が読み込まれないときは、「user.dat」はリストから削除しない。
アプリケーションの監視は、OSにアプリケーションを監視するエージェントを導入しても良いし、VMMでアプリケーションを起動するシステムコールの割り込みを検知することによって行っても良い。読み込まれたファイルの監視は、OS上のエージェントか、仮想ハードディスクを監視することによって行うことができる。
例えば、「Windows(登録商標)」では、「SetWindowsHookEx関数」を用いることで、アプリケーションを起動する「CreateProcess関数」や、ファイルをオープンする「CreateFile関数」を監視できる。
例えば、「Linux(登録商標)」では、プロセスを起動する「sys_execveシステムコール」や、ファイルを開く「sys_openシステムコール」が呼び出されるときに、「int0x80」のソフトウェア割り込みが発生するため、VMMによってソフトウェア割り込みを監視することによって、アプリケーション起動やファイルへのアクセスを監視できる。
<動作5>:「アプリケーションが読み込むファイルのパスを監視する」
例えば、あるアプリケーションは、「c:¥config」ディレクトリに設定ファイルを複数保存するとする。このアプリの起動時のファイル読み込みを監視すると、「c:¥config」から数個の設定ファイルを読み込み、自動的もしくはユーザの操作によって、例えば「My documents」からユーザデータを読み込む。このとき、「c:¥config」から「My documents」へディレクトリが変更されたことを検知して、ディレクトリ変更後をユーザデータと判定する。そして、ユーザデータと判定したファイルを、ユーザデータファイルリストに追加する。アプリケーション起動やファイル読み込みの監視は、<動作4>と同様の動作で行うことができる。
次に、VMマージ部1010Uの具体的な動作を説明する。
まず、ユーザデータが、メンテナンス作業中に、ユーザ計算機1000Uとメンテナ計算機1000Mで更新された場合を考える。例えば、メンテナンス中に、ユーザが「新規テキストドキュメント.txt」をユーザVMに作成したとする。また、メンテナンス中にメンテナがテストのために、「新規テキストドキュメント.txt」を作成したとする。
VMマージにおいて、「新規テキストドキュメント.txt」はユーザデータ判定部1009Uによって、ユーザデータであると判定されるため、ファイルのコピーは行わない。
次に、設定ファイルが、メンテナンス作業中にユーザ計算機1000Uとメンテナ計算機1000Mで更新された場合を考える。例えば、メンテナンスを頼んだにもかかわらず、ユーザが設定ファイルを操作した場合等が考えられる。
予め、VMマージ部1010Uには、設定ファイルのリストが与えられる。例えば、「*.ini」、「*config」が設定ファイルのリストであったとする。メンテナンス中に、ユーザ計算機1000Uとメンテナ計算機1000Mのファイル「c:¥config.ini」が更新された場合、VMマージは、設定ファイルのリストを参照し、「c:¥config.ini」が設定データであると判定し、「c:¥config.ini」は必ず、ユーザ計算機1000UのVMへコピーされる。
次に、ライブラリが、メンテナンス作業中に、ユーザ計算機1000Uとメンテナ計算機1000Mで更新された場合を考える。例えば、メンテナンス作業中にユーザがあるアプリケーションをインストールし、そのアプリケーションが既存のライブラリを更新する場合等が考えられる。
VMメンテナンス中に、ユーザがライブラリAを更新し、「A’」(バージョン1.1)を導入し、メンテナが「A”」(バージョン1.2)を導入した状況を考える。VMマージ部1010Uは、「A’」と「A”」のバージョンを比較し、「A”」をユーザ計算機1000UのVMへコピーする。バージョン情報は、例えば「Windows(登録商標)」では、「GetFileVersionInfo関数」を用いて取得することができる。
最後に、本発明の特徴について、以下に列挙する。
ユーザ計算機が、ファイル選択装置である場合、このファイル選択装置は、仮想計算機で利用するソフトウェアのファイルをユーザの代わりに更新するソフトウェア更新サービスへ、送るファイルを選択する装置であって、仮想計算機で利用するソフトウェアのファイルがユーザが作成したものかどうか判定する判定手段と、作成したものではないと判定されたファイルをソフトウェア更新サービスに送るファイルとして選択する選択手段とを備えることを特徴とする。ここでは、「ソフトウェア更新サービス」とは、本発明におけるメンテナ計算機のような、仮想計算機で利用するソフトウェアのファイルをユーザの代わりに更新する装置を示す。
また、ユーザ計算機が、ファイル選択装置である場合、このファイル選択装置は、ソフトウェア更新サービスに仮想計算機の第1のファイルを提出するためのファイル選択装置であって、第1のファイルがユーザが作成したデータであるか判定し、ソフトウェア更新サービスで用いられる仮想計算機に含まれる第2のファイルと内容が同一かどうか判定する判定手段と、ユーザが作成したデータではなく第2のファイルでもないと判定されたファイルを選択して出力する選択手段とを備えることを特徴とする。
なお、判定手段は、ファイル名や拡張子のリストを持ち、リストに記載されているファイルを、ユーザが作成したデータと判定することを特徴とする。
また、判定手段は、ファイルが電話番号や住所等の個人情報を含むか否かを検索し、個人情報が含まれているファイルを、ユーザが作成したデータと判定することを特徴とする。
また、判定手段は、仮想計算機とソフトウェア更新サービスで用いられる仮想計算機のファイルのリストを用いて、非共通なファイルを、ユーザが作成したデータと判定することを特徴とする。
また、判定手段は、アプリケーションの起動とファイル読み込みを監視し、アプリケーションの起動から完了までにアプリケーションに読み込まれなかったファイルを、ユーザが作成したデータと判定することを特徴とする。
また、判定手段は、アプリケーションの起動と、アプリケーションが読み込むファイルのディレクトリを監視し、ディレクトリ変更後に読み込まれたファイルを、ユーザが作成したデータと判定することを特徴とする。
更に、判定手段は、上記の各動作のうち、少なくとも2つ以上を実行し、各動作の判定結果を組み合わせ、ユーザが作成したデータであるか否かを判定することを特徴とする。
以上のように、本発明のメンテナンスシステムは、ユーザの使用する計算機(ユーザ計算機1000U)とメンテナの使用する計算機(メンテナ計算機1000M)の2台の計算機から構成される。
ユーザ計算機1000Uは、VMコピー生成部1008Uと、ユーザデータ判定部1009Uと、メタデータ取得部1006Uと、差分送受信部1007Uとを備える。メンテナ計算機1000Mは、メタデータ取得部1006Uと、差分送受信部1007Uとを備える。
VMコピー生成部1008Uは、ユーザデータ判定部1009Uを呼び出し、ユーザデータをフィルタリングすることによって、ユーザデータが含まれないコピーVMを生成する。次に、差分送信部1007Uは、コピーVMのメタデータのリストをメタデータ取得部1006Uによって取得し、メンテナ計算機1000MのVM(メンテナVM)のメタデータのリストをメタデータ取得部1006Mによって取得する。そして、差分送信部1007Uは、コピーVMとメンテナVMの差分をメンテナ計算機1000Mに送信する。差分送信部1007Mは、受信した差分とメンテナVMのファイルから、コピーVMを構築する。メンテナ計算機1000Mにおいて、コピーVMを起動し、メンテナンス作業が行われた後、差分送受信部1007Mはメンテナンス作業によって更新されたファイルを、ユーザの計算機へ送信する。
メンテナ計算機1000Mに送信されるコピーVMには、ユーザデータが含まれていないため、本発明の目的を達成することができる。
ここでは、NICを用いて通信を行うことによって、メタデータや差分をやり取りする事例について説明しているが、実際には、USBメモリやDVD等の記憶媒体にメタデータや差分を記憶し、当該記憶媒体を介して、メタデータや差分をやり取りすることも可能である。この場合、NICの代わりに、USBポート等の接続口(コネクタ)やDVDドライブ等の読取装置が使用される。
本発明によれば、メンテナンス作業時に、ユーザデータの流出の可能性の無いメンテナンスシステムを提供できる。その理由は、ユーザVMのファイルが、ユーザデータか否かを判定して、ユーザデータ以外をコピーすることでユーザデータが含まれないVM生成し、メンテナ計算機に渡すためである。
本発明のメンテナンスシステムは、遠隔からの計算機メンテナンスに適用できる。
以上、本発明の実施形態を詳述してきたが、実際には上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
この出願は、2008年11月6日に出願された特許出願番号2008−285443号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。

Claims (21)

  1. 仮想計算機で利用するソフトウェアのファイルがユーザにより作成されたデータかどうか判定する判定手段と、
    前記ユーザにより作成されたデータではないと判定されたファイルを、前記仮想計算機で利用するソフトウェアのファイルを前記ユーザの代わりに更新するソフトウェア更新サービスに送るファイルとして選択する選択手段と、
    前記ソフトウェア更新サービスへ、前記選択されたファイルを提供するデータ提供手段と、
    前記ソフトウェア更新サービスから、前記選択されたファイルに応じて更新されたソフトウェアのファイルを取得するデータ取得手段と、
    前記更新されたソフトウェアのファイルに基づいて、前記仮想計算機で利用するソフトウェアに対し、更新内容を反映するマージ手段と
    を具備する
    メンテナンスシステム。
  2. 請求の範囲1に記載のメンテナンスシステムであって、
    前記判定手段は、前記仮想計算機の第1のファイルが、前記ユーザにより作成されたデータであるかどうか判定し、前記ソフトウェア更新サービスで用いられる仮想計算機に含まれる第2のファイルと同一かどうか判定し、
    前記選択手段は、前記第1のファイルが、前記ユーザにより作成されたデータではなく、前記第2のファイルでもないと判定された場合、前記前記第1のファイルを、前記ソフトウェア更新サービスに送るファイルとして選択し、
    前記データ提供手段は、前記ソフトウェア更新サービスに前記第1のファイルを提供する
    メンテナンスシステム。
  3. 請求の範囲1又は2に記載のメンテナンスシステムであって、
    前記判定手段は、ファイル名及び拡張子のうち少なくとも1つを示す識別情報が記載されたリストを参照し、前記仮想計算機で利用するソフトウェアのファイルのうち、前記リストに記載されている識別情報に該当するファイルを、前記ユーザにより作成されたデータと判定する
    メンテナンスシステム。
  4. 請求の範囲1乃至3のいずれか一項に記載のメンテナンスシステムであって、
    前記判定手段は、前記仮想計算機で利用するソフトウェアのファイルが個人情報を含むか否かを検索し、前記個人情報が含まれているファイルを、前記ユーザにより作成されたデータと判定する
    メンテナンスシステム。
  5. 請求の範囲1乃至4のいずれか一項に記載のメンテナンスシステムであって、
    前記判定手段は、前記仮想計算機と前記ソフトウェア更新サービスで用いられる仮想計算機のファイルのリストを参照し、前記仮想計算機と前記ソフトウェア更新サービスで用いられる仮想計算機とで非共通なファイルを、前記ユーザにより作成されたデータと判定する
    メンテナンスシステム。
  6. 請求の範囲1乃至5のいずれか一項に記載のメンテナンスシステムであって、
    前記判定手段は、アプリケーションの起動とファイル読み込みを監視し、前記アプリケーションの起動から完了までの間に、前記アプリケーションに読み込まれなかったファイルを、前記ユーザにより作成されたデータと判定する
    メンテナンスシステム。
  7. 請求の範囲1乃至6のいずれか一項に記載のメンテナンスシステムであって、
    前記判定手段は、アプリケーションの起動と、前記アプリケーションが読み込むファイルのディレクトリを監視し、前記ディレクトリが変更された際、前記ディレクトリの変更後に前記アプリケーションに読み込まれたファイルを、前記ユーザにより作成されたデータと判定する
    メンテナンスシステム。
  8. ユーザが使用する計算機により実施されるメンテナンス方法であって、
    仮想計算機で利用するソフトウェアのファイルがユーザにより作成されたデータかどうか判定するステップと、
    前記ユーザにより作成されたデータではないと判定されたファイルを、前記仮想計算機で利用するソフトウェアのファイルを前記ユーザの代わりに更新するソフトウェア更新サービスに送るファイルとして選択するステップと、
    前記ソフトウェア更新サービスへ、前記選択されたファイルを提供するステップと、
    前記ソフトウェア更新サービスから、前記選択されたファイルに応じて更新されたソフトウェアのファイルを取得するステップと、
    前記更新されたソフトウェアのファイルに基づいて、前記仮想計算機で利用するソフトウェアに対し、更新内容を反映するステップと
    を含む
    メンテナンス方法。
  9. 請求の範囲8に記載のメンテナンス方法であって、
    前記仮想計算機の第1のファイルが、前記ユーザにより作成されたデータであるかどうか判定し、前記ソフトウェア更新サービスで用いられる仮想計算機に含まれる第2のファイルと同一かどうか判定するステップと、
    前記第1のファイルが、前記ユーザにより作成されたデータではなく、前記第2のファイルでもないと判定された場合、前記前記第1のファイルを、前記ソフトウェア更新サービスに送るファイルとして選択するステップと、
    前記ソフトウェア更新サービスに前記第1のファイルを提供するステップと
    を更に含む
    メンテナンス方法。
  10. 請求の範囲8又は9に記載のメンテナンス方法であって、
    ファイル名及び拡張子のうち少なくとも1つを示す識別情報が記載されたリストを参照し、前記仮想計算機で利用するソフトウェアのファイルのうち、前記リストに記載されている識別情報に該当するファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に含む
    メンテナンス方法。
  11. 請求の範囲8乃至10のいずれか一項に記載のメンテナンス方法であって、
    前記仮想計算機で利用するソフトウェアのファイルが個人情報を含むか否かを検索し、前記個人情報が含まれているファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に含む
    メンテナンス方法。
  12. 請求の範囲8乃至11のいずれか一項に記載のメンテナンス方法であって、
    前記仮想計算機と前記ソフトウェア更新サービスで用いられる仮想計算機のファイルのリストを参照し、前記仮想計算機と前記ソフトウェア更新サービスで用いられる仮想計算機とで非共通なファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に含む
    メンテナンス方法。
  13. 請求の範囲8乃至12のいずれか一項に記載のメンテナンス方法であって、
    アプリケーションの起動とファイル読み込みを監視し、前記アプリケーションの起動から完了までの間に、前記アプリケーションに読み込まれなかったファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に含む
    メンテナンス方法。
  14. 請求の範囲8乃至13のいずれか一項に記載のメンテナンス方法であって、
    アプリケーションの起動と、前記アプリケーションが読み込むファイルのディレクトリを監視し、前記ディレクトリが変更された際、前記ディレクトリの変更後に前記アプリケーションに読み込まれたファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に含む
    メンテナンス方法。
  15. 仮想計算機で利用するソフトウェアのファイルがユーザにより作成されたデータかどうか判定するステップと、
    前記ユーザにより作成されたデータではないと判定されたファイルを、前記仮想計算機で利用するソフトウェアのファイルを前記ユーザの代わりに更新するソフトウェア更新サービスに送るファイルとして選択するステップと、
    前記ソフトウェア更新サービスへ、前記選択されたファイルを提供するステップと、
    前記ソフトウェア更新サービスから、前記選択されたファイルに応じて更新されたソフトウェアのファイルを取得するステップと、
    前記更新されたソフトウェアのファイルに基づいて、前記仮想計算機で利用するソフトウェアに対し、更新内容を反映するステップと
    を計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
  16. 請求の範囲15に記載の記憶媒体であって、
    前記仮想計算機の第1のファイルが、前記ユーザにより作成されたデータであるかどうか判定し、前記ソフトウェア更新サービスで用いられる仮想計算機に含まれる第2のファイルと同一かどうか判定するステップと、
    前記第1のファイルが、前記ユーザにより作成されたデータではなく、前記第2のファイルでもないと判定された場合、前記前記第1のファイルを、前記ソフトウェア更新サービスに送るファイルとして選択するステップと、
    前記ソフトウェア更新サービスに前記第1のファイルを提供するステップと
    を更に計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
  17. 請求の範囲15又は16に記載の記憶媒体であって、
    ファイル名及び拡張子のうち少なくとも1つを示す識別情報が記載されたリストを参照し、前記仮想計算機で利用するソフトウェアのファイルのうち、前記リストに記載されている識別情報に該当するファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
  18. 請求の範囲15乃至17のいずれか一項に記載の記憶媒体であって、
    前記仮想計算機で利用するソフトウェアのファイルが個人情報を含むか否かを検索し、前記個人情報が含まれているファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
  19. 請求の範囲15乃至18のいずれか一項に記載の記憶媒体であって、
    前記仮想計算機と前記ソフトウェア更新サービスで用いられる仮想計算機のファイルのリストを参照し、前記仮想計算機と前記ソフトウェア更新サービスで用いられる仮想計算機とで非共通なファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
  20. 請求の範囲15乃至19のいずれか一項に記載の記憶媒体であって、
    アプリケーションの起動とファイル読み込みを監視し、前記アプリケーションの起動から完了までの間に、前記アプリケーションに読み込まれなかったファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
  21. 請求の範囲15乃至20のいずれか一項に記載の記憶媒体であって、
    アプリケーションの起動と、前記アプリケーションが読み込むファイルのディレクトリを監視し、前記ディレクトリが変更された際、前記ディレクトリの変更後に前記アプリケーションに読み込まれたファイルを、前記ユーザにより作成されたデータと判定するステップ
    を更に計算機に実行させるためのメンテナンス用プログラムを格納する
    記憶媒体。
JP2010536732A 2008-11-06 2009-10-13 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム Expired - Fee Related JP5483116B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010536732A JP5483116B2 (ja) 2008-11-06 2009-10-13 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008285443 2008-11-06
JP2008285443 2008-11-06
JP2010536732A JP5483116B2 (ja) 2008-11-06 2009-10-13 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
PCT/JP2009/067702 WO2010052998A1 (ja) 2008-11-06 2009-10-13 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム

Publications (2)

Publication Number Publication Date
JPWO2010052998A1 true JPWO2010052998A1 (ja) 2012-04-05
JP5483116B2 JP5483116B2 (ja) 2014-05-07

Family

ID=42152807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010536732A Expired - Fee Related JP5483116B2 (ja) 2008-11-06 2009-10-13 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム

Country Status (3)

Country Link
US (1) US8745610B2 (ja)
JP (1) JP5483116B2 (ja)
WO (1) WO2010052998A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019511064A (ja) * 2016-03-29 2019-04-18 アリババ グループ ホウルディング リミテッド アプリケーションに含まれるユーザ情報を隠すための方法及びデバイス

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5376258B2 (ja) 2008-11-06 2013-12-25 日本電気株式会社 メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
JP5646233B2 (ja) * 2010-07-21 2014-12-24 株式会社日立システムズ 仮想イメージを利用した障害対応システム
US8458346B2 (en) 2010-07-30 2013-06-04 Sap Ag Multiplexer for multi-tenant architectures
US8392908B2 (en) * 2010-07-30 2013-03-05 Sap Ag Standardized procedures for implementing software changes
US8522070B2 (en) 2010-07-30 2013-08-27 Sap Ag Tenant rescue for software change processes in multi-tenant architectures
US20130117738A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Server Upgrades with Safety Checking and Preview
US10051035B2 (en) * 2014-06-03 2018-08-14 Verizon Patent And Licensing Inc. Method and apparatus for providing secure file transmission
US9383989B1 (en) 2014-06-16 2016-07-05 Symantec Corporation Systems and methods for updating applications
US11635979B2 (en) * 2014-07-21 2023-04-25 Vmware, Inc. Modifying a state of a virtual machine
JP6554905B2 (ja) * 2015-05-19 2019-08-07 株式会社リコー 情報処理装置、情報処理方法およびプログラム
JP6951637B2 (ja) * 2017-11-06 2021-10-20 富士通株式会社 調査資料採取プログラム、調査資料採取装置及び調査資料採取方法
US10671370B2 (en) * 2018-05-30 2020-06-02 Red Hat, Inc. Distributing file system states

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09292996A (ja) * 1996-04-24 1997-11-11 Nippon Denki Joho Service Kk 端末マシン集中メンテナンスシステムと方法
US6137895A (en) 1997-10-01 2000-10-24 Al-Sheikh; Zaher Method for verifying the identity of a passenger
JP2000194539A (ja) 1998-12-24 2000-07-14 Nec Corp ソフトウェアインストールシステムおよびソフトウェアインストール方法
US7363330B1 (en) 1999-06-07 2008-04-22 Symantec Corporation Work monitor with file synchronization
US6601233B1 (en) * 1999-07-30 2003-07-29 Accenture Llp Business components framework
US6938058B2 (en) 1999-08-23 2005-08-30 Eisenworld, Inc. Apparatus and method for transferring information between platforms
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
US7139811B2 (en) 2001-08-01 2006-11-21 Actona Technologies Ltd. Double-proxy remote data access system
JP3984046B2 (ja) * 2001-12-21 2007-09-26 日清エンジニアリング株式会社 情報配信装置並びにリモートエンジニアリングシステム
AU2003238908A1 (en) 2002-06-06 2003-12-22 Green Border Technologies Method and system for implementing a secure application execution environment using derived user accounts for internet content
JP2004171412A (ja) 2002-11-21 2004-06-17 Ntt Data Corp 仮想pcレンタル装置、コンピュータが実行するためのプログラム、および仮想pcレンタルシステム
US8209680B1 (en) 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7228299B1 (en) 2003-05-02 2007-06-05 Veritas Operating Corporation System and method for performing file lookups based on tags
US7313792B2 (en) 2003-09-08 2007-12-25 Microsoft Corporation Method and system for servicing software
US7774774B1 (en) 2003-10-22 2010-08-10 Apple Inc. Software setup system
US20050278280A1 (en) 2004-05-28 2005-12-15 Semerdzhiev Krasimir P Self update mechanism for update module
GB2415517B (en) * 2004-06-24 2010-03-03 Symbian Software Ltd File management in a computing device
JP3705439B1 (ja) * 2004-11-08 2005-10-12 クオリティ株式会社 個人情報探索プログラム,個人情報管理システムおよび個人情報管理機能付き情報処理装置
US7640363B2 (en) * 2005-02-16 2009-12-29 Microsoft Corporation Applications for remote differential compression
US7440971B2 (en) 2005-02-28 2008-10-21 Cisco Technology, Inc. Context based access of files by file system to a client based on detection of related files opened by the client
JP4726519B2 (ja) 2005-03-28 2011-07-20 富士通株式会社 画面定義データ差分抽出方法、装置及びプログラム
US20070050361A1 (en) 2005-08-30 2007-03-01 Eyhab Al-Masri Method for the discovery, ranking, and classification of computer files
US20070073689A1 (en) 2005-09-29 2007-03-29 Arunesh Chandra Automated intelligent discovery engine for classifying computer data files
US7725737B2 (en) * 2005-10-14 2010-05-25 Check Point Software Technologies, Inc. System and methodology providing secure workspace environment
US8402322B2 (en) 2005-12-08 2013-03-19 Nvidia Corporation Emergency data preservation services
JP2007201969A (ja) 2006-01-30 2007-08-09 Keakomu:Kk リモートメンテナンスシステム
CN101132573A (zh) 2006-08-23 2008-02-27 中兴通讯股份有限公司 一种终端批量升级的实现方法
JP2008199314A (ja) 2007-02-13 2008-08-28 Sony Corp 情報処理装置および情報処理方法、情報処理システム、プログラム、並びに、プログラム格納媒体
US8316364B2 (en) 2007-02-28 2012-11-20 Red Hat, Inc. Peer-to-peer software update distribution network
JP5446860B2 (ja) 2007-03-27 2014-03-19 日本電気株式会社 仮想マシン運用システム、仮想マシン運用方法およびプログラム
US8839221B2 (en) 2007-09-10 2014-09-16 Moka5, Inc. Automatic acquisition and installation of software upgrades for collections of virtual machines
US7805409B2 (en) 2008-02-21 2010-09-28 Oracle America, Inc. Dynamic composition of an execution environment from multiple immutable file system images
WO2009132261A1 (en) 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019511064A (ja) * 2016-03-29 2019-04-18 アリババ グループ ホウルディング リミテッド アプリケーションに含まれるユーザ情報を隠すための方法及びデバイス

Also Published As

Publication number Publication date
JP5483116B2 (ja) 2014-05-07
WO2010052998A1 (ja) 2010-05-14
US20110252412A1 (en) 2011-10-13
US8745610B2 (en) 2014-06-03

Similar Documents

Publication Publication Date Title
JP5483116B2 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
JP5376258B2 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
US7200617B2 (en) Program for managing external storage, recording medium, management device, and computing system
JP4855714B2 (ja) コンピュータオペレーティングシステムに渡ってコンピュータファイルへのアクセスを行うシステムおよび方法
US6795835B2 (en) Migration of computer personalization information
US9405777B2 (en) Registry emulation
KR101169085B1 (ko) 휴대용 저장 장치 및 방법
JP5066613B2 (ja) セキュリティ管理装置及び方法並びにプログラム
US8473636B2 (en) Information processing system and data management method
US9317681B2 (en) Information processing apparatus, information processing method, and computer program product
US9058469B2 (en) End user license agreement detection and monitoring
TW200525358A (en) Method and apparatus for smart memory pass-through communication
EP2477111A2 (en) Computer system and program restoring method thereof
US8199351B2 (en) Information processing system, information processing method, and computer-readable recording medium
US20060106896A1 (en) System and method for creating list of backup files based upon program properties
TWI411916B (zh) 恢復於個人網際網路通訊器中記憶體儲存裝置之系統分割區之方法與裝置
KR100923161B1 (ko) 작업 환경 이동 서비스를 위한 이동식 저장 장치 및 그의작업 환경 이동 서비스 방법
JP4722519B2 (ja) 計算機システム及びストレージサーバ、検索サーバ、端末装置並びに検索方法
US20120144390A1 (en) Customized computer image preparation and deployment including virtual machine mode
US10389743B1 (en) Tracking of software executables that come from untrusted locations
JP2009122985A (ja) サブプロセス実行システム及びサブプロセス実行プログラム
KR102567773B1 (ko) 전투체계 시스템에서의 로그 정보 추출장치 및 그 방법
JP2006259874A (ja) コンピュータとコンピュータシステム
CN115309389A (zh) 代码文件的更新方法、装置、电子设备和存储介质
WO2012093996A1 (en) Virtualization of configuration settings

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131226

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: 20140123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140205

R150 Certificate of patent or registration of utility model

Ref document number: 5483116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees