WO2010079772A1 - シンクライアントシステム、シンクライアント実施方法、及びシンクライアント用プログラム - Google Patents

シンクライアントシステム、シンクライアント実施方法、及びシンクライアント用プログラム Download PDF

Info

Publication number
WO2010079772A1
WO2010079772A1 PCT/JP2010/050012 JP2010050012W WO2010079772A1 WO 2010079772 A1 WO2010079772 A1 WO 2010079772A1 JP 2010050012 W JP2010050012 W JP 2010050012W WO 2010079772 A1 WO2010079772 A1 WO 2010079772A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
unit data
computer
list
data
Prior art date
Application number
PCT/JP2010/050012
Other languages
English (en)
French (fr)
Inventor
隆一 小川
貴之 佐々木
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010545758A priority Critical patent/JP5477660B2/ja
Priority to US13/143,405 priority patent/US8954960B2/en
Publication of WO2010079772A1 publication Critical patent/WO2010079772A1/ja

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

Definitions

  • the present invention relates to a thin client system, a thin client implementation method, and a thin client program, and more particularly to a thin client system, a thin client implementation method, and a thin client program capable of improving response speed.
  • Non-patent Document 1 Conventional thin client systems are classified into a screen transfer type thin client system and a net boot type thin client system.
  • the screen transfer type thin client system is a method of transferring the OS (Operating System) screen running on the server to the client and transferring the keyboard and mouse input of the client to the server.
  • the screen transfer type requires a server system having a high-speed CPU (Central Processing Unit) and a large memory because the OS is executed on the server.
  • CPU Central Processing Unit
  • the net boot type is a method in which a client downloads and executes an application (application software) and user data from a server and uploads a changed file to the server.
  • the net boot thin client system includes only storage, and the client directly reads and writes the storage.
  • net boot type thin client systems are classified into a pre-download method and an on-demand method.
  • the pre-download method is a method of downloading all files before starting the OS, as in Non-Patent Document 2.
  • the prior download method since all files including files that are not normally used are downloaded before the OS is started, it takes time to start the OS.
  • the on-demand method is a method of downloading a file when actually using the file as in Non-Patent Document 3.
  • the on-demand method downloads a file when requested, so that the operation of the OS or application after the OS is started is slow.
  • Patent Document 1 Japanese Patent Laid-Open No. 2008-198816
  • This related technology describes a network boot type thin client method that can use a rich client (rich client) that is a general-purpose PC as a thin client.
  • Patent Document 2 Japanese Patent Application Laid-Open No. 09-319624
  • a file management apparatus is disclosed in Japanese Patent Application Laid-Open No. 09-319624 (Patent Document 2).
  • Patent Document 2 a plurality of files, the last used date and time of those files, and the storage position thereof are stored in the first storage medium, and a file with low usage frequency is determined by the last used date and time for each stored file. Then, the determined infrequently used file is stored in the second storage medium.
  • Patent Document 3 an on-demand file download method and system is disclosed in Japanese Patent Laid-Open No. 10-133976 (Patent Document 3).
  • the program or the data is transferred via a communication path, and the program or An on-demand file download method for downloading to a computer using the data is described.
  • a required part of a program or a file storing data is designated from the first computer and a request is made to the second computer having the original of the program or the data.
  • the second computer extracts and copies a necessary part of the file requested from the first computer, and transfers the file to the first computer in packet units.
  • the first computer stores the transferred content in a predetermined area and resumes the processing of the program.
  • An object of the present invention is to provide a net boot type thin client system in which bottlenecks are appropriately distributed.
  • the thin client system of the present invention includes a first computer used by a user and a second computer that provides unit data to the first computer.
  • the first computer includes first storage means, prior unit data acquisition means, and on-demand unit data acquisition means.
  • the first storage means stores unit data acquired from the second computer.
  • the prior unit data acquisition means acquires unit data from the second computer before the operation of the OS (Operating System) of the first computer.
  • the on-demand unit data acquisition means acquires unit data requested by the OS from the second computer during the operation of the OS.
  • the second computer includes second storage means, unit data determination means, and unit data transfer means.
  • the second storage means stores unit data provided to the first computer.
  • the unit data determination unit creates a transmission file list in which information on unit data acquired by the prior unit data acquisition unit before the operation of the OS is described.
  • the unit data transfer means transmits the unit data whose information is described in the transmission file list to the prior unit data acquisition means before the operation of the OS of the first computer, and on-demand during the operation of the OS of the first computer.
  • the unit data requested by the unit data acquisition unit is transmitted to the on-demand unit data acquisition unit.
  • the first computer used by the user acquires unit data from the second computer.
  • the first computer acquires unit data from the second computer before the operation of the OS (Operating System) of the first computer.
  • the first computer acquires unit data requested by the OS from the second computer during the operation of the OS.
  • the second computer creates a transmission file list in which unit data information acquired by the first computer before the operation of the OS is described.
  • the second computer transmits the unit data whose information is described in the transmission file list to the first computer before the operation of the OS of the first computer, and the second computer transmits the unit data during the operation of the OS of the first computer.
  • Unit data requested from one computer is transmitted to the first computer.
  • Net boot type thin client system can be operated at high speed.
  • FIG. 1 is a block diagram showing the configuration of the first embodiment of the present invention.
  • FIG. 2 is a sequence diagram showing the operation of the first embodiment of the present invention.
  • FIG. 3 is a diagram illustrating the high usage frequency file list.
  • FIG. 4 is a flowchart showing a method for updating the frequently used file list.
  • FIG. 5 is a diagram illustrating an example of statistical information.
  • FIG. 6 is a block diagram showing the configuration of the second embodiment of the present invention.
  • FIG. 7 is a sequence diagram showing the operation of the second exemplary embodiment of the present invention.
  • FIG. 8 is a flowchart of dummy file generation according to the second embodiment of this invention.
  • FIG. 9 is a diagram illustrating an example of a signature list according to the second embodiment of this invention.
  • FIG. 10 is a flowchart showing the operation of the on-demand file acquisition unit according to the second embodiment of the present invention.
  • the thin client system of the present invention includes a server 10 and a client 20.
  • the thin client system is a system in which most processing is concentrated on the server 10 side, resources such as applications and files are managed on the server 10 side, and the client 20 performs minimum necessary processing.
  • the server 10 and the client 20 operate under program control.
  • a thin client server As an example of the server 10, a thin client server, a PC (personal computer), a mainframe, a supercomputer, and the like are assumed.
  • a thin client terminal As an example of the client 20, a thin client terminal, a mobile notebook PC, a portable terminal, a workstation, an information home appliance (information home appliance), an OA (Office Automation) device, and the like are assumed.
  • the server 10 and the client 20 are not limited to terminals and servers, but may be relay devices or peripheral devices.
  • the server 10 and the client 20 may be an expansion board or software installed in a computer.
  • the server 10 and the client 20 may be a virtual machine (Virtual Machine (VM)) environment mounted on a computer.
  • the server 10 and the client 20 may be mounted on a moving body such as a vehicle, a ship, or an aircraft. However, actually, it is not limited to these examples.
  • VM Virtual Machine
  • the server 10 includes a CPU (Central Processing Unit) 11, a memory 12, an HDD (Hard Disk Drive: hard disk drive) 13, an NIC (Network Interface Card: network interface card) 14, and a file transfer unit 15. And a file determination unit 16.
  • CPU Central Processing Unit
  • memory 12 a memory 12
  • HDD Hard Disk Drive: hard disk drive
  • NIC Network Interface Card: network interface card
  • file determination unit 16 a file determination unit 16.
  • the client 20 includes a CPU 21, a memory 22, an HDD 23, a NIC 24, a prior file acquisition unit 25, and an on-demand file acquisition unit 26.
  • the CPU 11 and the CPU 21 control each device inside and outside the computer and calculate / process data, execute a program stored in a memory, receive data from an input device or a storage device, perform calculation / processing, and output Or output to a device or storage device.
  • the CPU 11 and the CPU 21 activate and operate an OS (Operating System).
  • OS Operating System
  • a microprocessor, an IC (Integrated Circuit) having a similar function, or the like can be considered. However, actually, it is not limited to these examples.
  • the memory 12 and the memory 22 are semiconductor storage devices such as a RAM (Random Access Memory), a ROM (Read Only Memory), or a flash memory that can be directly read and written by the CPU.
  • the memory 12 and the memory 22 indicate a main storage device (main memory). However, actually, it is not limited to these examples.
  • HDD 13 and HDD 23 are auxiliary storage devices that store data and programs inside and outside the computer.
  • HDD 13 and HDD 23 indicate external storage devices (storage).
  • the HDD 13 and the HDD 23 may be flash memory drives such as SSD (Solid State Drive).
  • the HDD 13 and the HDD 23 may be a removable disk such as a DVD (Digital Versatile Disk) or an SD memory card (Secure Digital memory card), a storage medium (media), or the like.
  • the HDD 13 and the HDD 23 are not limited to storage devices built in the server 10 and the client 20, but are storage devices installed in peripheral devices (such as external HDDs) or external servers (such as storage servers), or DAS ( Direct Attached Storage), FC-SAN (Fibre Channel-Storage Area Network), NAS (Network Attached Storage), IP-SAN (IP-Storage Area) may be good. However, actually, it is not limited to these examples.
  • the NIC 14 and the NIC 24 are communication devices for transmitting / receiving data to / from the outside via a communication line (network).
  • the server 10 and the client 20 are connected via the NIC 14 and the NIC 24.
  • communication ports such as a network adapter, an antenna, a connection port (connector), and the like are conceivable.
  • networks used by the NIC 14 and the NIC 24 include the Internet, a LAN (Local Area Network), a wireless LAN (Wireless LAN), a WAN (Wide Area Network), a backbone (Backbone), a cable TV (CATV) line, and a fixed telephone.
  • the file transfer unit 15 receives a file transfer request from the prior file acquisition unit 25 and the on-demand file acquisition unit 26.
  • the file transfer unit 15 calls the file determination unit 16 and acquires a list (transmission file list) in which information on frequently used files (high usage frequency files) is described.
  • the file information is identification information for specifying the file. Examples of file information include a file name, a unique keyword included in the file name, or an extension unique to the file.
  • the file transfer unit 15 reads all the files described in the transmission file list from the HDD 13 and transmits the read files to the prior file acquisition unit 25.
  • the file transfer unit 15 reads the requested file from the HDD 13 and transmits the read file to the on-demand file acquisition unit 26.
  • the file determination unit 16 determines a file frequently used in advance among the files recorded in the HDD 23, creates a transmission file list, and passes the created transmission file list to the file transfer unit 15.
  • a file often used in advance refers to a file used before or when the OS is started. Examples of files that are frequently used in advance include OS and application setting files, programs that are executed when the OS is started, and the like. However, actually, it is not limited to these examples.
  • the prior file acquisition unit 25 transmits a file transmission request to the file transfer unit 15 and writes the file received from the file transfer unit 15 to the HDD 23 before the OS is started. That is, the prior file acquisition unit 25 acquires a file frequently used in advance from the file transfer unit 15 before starting the OS, and stores the acquired file in the HDD 23.
  • the on-demand file acquisition unit 26 determines whether a file requested from the OS is stored in the HDD 23 after the OS is started. Further, the on-demand file acquisition unit 26 transmits a transmission request for the file to the file transfer unit 15 and receives the file from the file transfer unit 15 when the file requested from the OS is not stored in the HDD 23. Then, the received file is written into the HDD 23. That is, when the file requested from the OS is a file that is not stored in the HDD 23 and is stored in the HDD 13, the on-demand file acquisition unit 26 is requested from the file transfer unit 15 by the OS. The file stored in the HDD 13 is acquired, and the acquired file is stored in the HDD 23.
  • the file transfer unit 15, the file determination unit 16, the prior file acquisition unit 25, and the on-demand file acquisition unit 26 may be an expansion board mounted on a computer.
  • the program for making a computer or CPU perform each function may be sufficient.
  • the program can be stored in a storage device or a storage medium. However, actually, it is not limited to these examples.
  • Step S1 The prior file acquisition unit 25 transmits a file transmission request to the file transfer unit 15 before starting the OS.
  • Step S2 The file transfer unit 15 calls the file determination unit 16 in response to a file transmission request.
  • the file transfer unit 15 requests a file list (transmission file list) frequently used in advance from the file determination unit 16 in response to a file transmission request.
  • Step S3 The file determination unit 16 acquires a list of frequently used files (transmission file list) in advance, and returns the acquired list (transmission file list) to the file transfer unit 15.
  • the file determination unit 16 determines a file frequently used in advance among the files recorded in the HDD 23, creates a transmission file list, and notifies the file transmission unit 15 of the created transmission file list. . Detailed operation of the file determination unit 16 will be described later.
  • Step S4 The file transfer unit 15 reads the file described in the received list (transmission file list) from the HDD 13 and transmits the read file to the pre-file acquisition unit 25. That is, the file transfer unit 15 transmits only the files described in the received list (transmission file list) to the prior file acquisition unit 25.
  • Step S5 The prior file acquisition unit 25 receives the file from the file transfer unit 15 and writes the received file to the HDD 23. Thereafter, the OS starts.
  • Step S6 The on-demand file acquisition unit 26 monitors OS file reading when the OS is started.
  • Step S7 When the OS tries to read a file from the HDD 23, the on-demand file acquisition unit 26 hooks the reading of the file by the OS and determines whether the file to be read by the OS is recorded in the HDD 23. To do.
  • Step S8 When the on-demand file acquisition unit 26 determines that the file to be read by the OS is not recorded in the HDD 23, the on-demand file acquisition unit 26 transmits a transmission request for the file to the file transfer unit 15.
  • Step S9 The file transfer unit 15 transmits the requested file to the on-demand file acquisition unit 26.
  • the file transfer unit 15 in response to the transmission request from the on-demand file acquisition unit 26, the file transfer unit 15 reads out the file requested for transmission from the HDD 13 among the files recorded in the HDD 13, and reads the read file. It transmits to the on-demand file acquisition part 26.
  • the on-demand file acquisition unit 26 receives a file from the file transfer unit 15.
  • Step S10 The on-demand file acquisition unit 26 writes the received file in the HDD 23.
  • Step S11 The on-demand file acquisition unit 26 passes the received file information to the OS.
  • the on-demand file acquisition unit 26 may perform the operation of passing the received file information to the OS after writing to the HDD 23 or before writing to the HDD 23. That is, the order of step S10 and step S11 may be switched.
  • the file determination unit 16 determines whether a file recorded in the HDD 13 is a frequently used file by any one or combination of the following operations, and creates a transmission file list.
  • the file determination unit 16 has a list that defines frequently used files (highly used file list).
  • frequently used files are defined based on the file path, the directory where the file is located, or the extension.
  • the file determination unit 16 scans the HDD 13 and creates a list in which information of all files recorded in the HDD 13 is described. In addition, the file determination unit 16 deletes information on files that are not included in the high-use frequency file list from the list in which information on all files recorded in the HDD 13 is written, and creates a transmission file list. Is transferred to the file transfer unit 15. That is, the transmission file list is a list in which information of only the files included in the high usage frequency file list among all the files recorded in the HDD 13 is described.
  • the frequently used file list may be created by the administrator of the server 10 using an editor, or may be automatically created as follows.
  • Step T1 The on-demand file acquisition unit 26 monitors file read / write requests by the OS when the OS starts.
  • Step T2 The on-demand file acquisition unit 26 creates a feedback list when there is a file read / write request by the OS, and records the file for which the read / write request is made in the feedback list. For example, the on-demand file acquisition unit 26 records information such as a file name and an access time in a feedback list for a file for which a read / write request has been made.
  • Step T3 The on-demand file acquisition unit 26 transmits the feedback list to the file transfer unit 15.
  • the on-demand file acquisition unit 26 may stop recording in the feedback list and transmit the feedback list when a predetermined number of files are read after a certain period of time from OS startup or when the OS is terminated.
  • the on-demand file acquisition unit 26 may stop recording in the feedback list and transmit the feedback list when a predetermined number of files are read after a certain period of time from OS startup or when the OS is terminated.
  • it is not limited to these examples.
  • Step T4 The file determination unit 16 acquires a feedback list via the file transfer unit 15, and updates (updates) the high-use frequency file list by one of the following update operations using the feedback list.
  • timing of updating (updating) the frequently used file list may be performed every time before the OS is started, every fixed period such as every day or once a week, or when designated by the administrator.
  • the file determination unit 16 uses the feedback list as it is as a frequently used file list. That is, the file determination unit 16 distributes the file used at the previous startup in advance in the next OS startup.
  • the file determination unit 16 sorts (classifies) the files described in the high usage frequency file list and the feedback list by the LRU (Least Recently Used) method. Furthermore, the file determination unit 16 adds (adds) the file sizes in the order in which they are listed from the top of the frequently used file list, and the total file size is the size designated by the administrator. If the file size exceeds the specified file size, the files after the file that exceeds the specified size are deleted from the current high-frequency file list, and a new high-frequency file list is created.
  • LRU Least Recently Used
  • the file determination unit 16 merges (integrates) the feedback lists of the past several times. For the files in the merged list, the file determination unit 16 sets a file used within a period designated by the administrator as a recently used file and records it in the high-use frequency file list. Specifically, the file determination unit 16 compares the access date / time included in the merged feedback list with the date / time obtained by subtracting the period specified by the administrator from the current time, and the access date / time included in the feedback list is the latest. If so, add the file to the high usage file list.
  • the file determining unit 16 creates statistical information from the past several feedback lists. As shown in FIG. 5, the statistical information includes a file name and the number of times of use. That is, the statistical information includes a file name and the number of times of use. Then, the file determination unit 16 extracts a file that is used more than the number of times specified by the administrator from the statistical information, and sets it as a frequently used file list. The administrator specifies how many times the feedback list is used to create statistical information. Rather than specifying by the number of times of use, sort the files in order of the highest number of times of use, and from the top until the total size of the files listed in the frequently used file list reaches the file size specified by the administrator In order, files may be added to the frequently used file list.
  • the file determination unit 16 merges the list created by the administrator considering that pre-distribution is essential and the list automatically created by the operations of the update operation 1 to the update operation 4 to obtain a high-use frequency file list. Also good.
  • the file determination unit 16 combines the list created by the administrator and the list created by the update operation 3.
  • the file determination unit 16 describes “c: ⁇ kernel.exe; c: ⁇ config.ini” in the list by manual input or the like, and “c: ⁇ kernel” in the list created by the update operation 3. .Exe; c: ⁇ patent.doc "," c: ⁇ kernel.exe; c: ⁇ config.ini; c: ⁇ patent.doc "is described by merging the two lists.
  • the created list is created, and this list is used as a frequently used file list.
  • a file with a new update date is regarded as a frequently used file.
  • the file determination unit 16 analyzes the file system of the HDD 23 and obtains the update date / time of all files. Next, the file determination unit 16 regards a file created after the date and time designated by the administrator as a frequently used file and adds it to the transmission file list.
  • the effect of the first embodiment of the present invention is that it is possible to provide a netboot thin client system that operates at high speed by appropriately distributing bottlenecks before and during the OS operation.
  • the server 10 in FIG. 1 is a general computer including a CPU 11, a memory 12, an HDD 13, and a NIC 14.
  • the client 20 is a general computer.
  • the server 10 and the client 20 are connected by a network.
  • Network lines include telephone lines, LANs, wireless LANs, and the Internet, but are not particularly limited.
  • the file transfer unit 15 is a program that operates on the server 10. For example, the file recorded in the HDD 13 is transferred to the advance file acquisition unit 25 or the on-demand file acquisition unit using FTP (File Transfer Protocol). The file is transmitted to 26. It is also conceivable to use SSH (Secure Shell) or SCP (Secure CoPy) instead of FTP.
  • SSH Secure Shell
  • SCP Secure CoPy
  • the file determination unit 16 is a program that operates on the server 10, and determines whether a file recorded in the HDD 13 is frequently used by an operation described later, and creates a transmission file list.
  • the pre-file acquisition unit 25 and the on-demand file acquisition unit 26 are programs that operate on the client 20.
  • the prior file acquisition unit 25 When the client 20 such as a PC (personal computer) is turned on, the prior file acquisition unit 25 is executed first.
  • the prior file acquisition unit 25 transmits a transmission request to the file transfer unit 15 using, for example, TCP.
  • communication encryption may be performed using IPsec (Security Architecture for Internet Protocol) or TLS (Transport Layer Security).
  • the file transfer unit 15 When the file transfer unit 15 receives the transmission request, the file transfer unit 15 calls the file determination unit 16.
  • the file determination unit 16 creates a transmission file list. Details will be described later.
  • the file transfer unit 15 When the file transfer unit 15 reads the list, the file transfer unit 15 reads the file described in the transmission file list from the HDD 13 and transmits the file to the advance file acquisition unit 25. For transmission, for example, it is conceivable to use FTP.
  • the prior file acquisition unit 25 writes the received file in the HDD 23.
  • the OS is not particularly limited, such as “Windows (registered trademark)”, “Linux (registered trademark)”, or “FreeBSD (registered trademark)”.
  • the on-demand file acquisition unit 26 is implemented as an OS driver, for example.
  • OS driver for example, in the case of “WINDOWS (registered trademark)”, a read / write request to the HDD 23 can be monitored by mounting the on-demand file acquisition unit 26 as an upper driver of an NTFS (NT File System) driver. Further, the on-demand file acquisition unit 26 can determine whether or not the requested file exists on the HDD 23 based on a message returned by the lower NTFS driver.
  • NTFS NT File System
  • the on-demand file acquisition unit 26 passes the message to the upper driver as it is.
  • the on-demand file acquisition unit 26 sends a file transmission request to the file transfer unit 15 to acquire the file. Then, the on-demand file acquisition unit 26 writes the file to the HDD by calling the NTFS driver. Next, the on-demand file acquisition unit 26 calls the NTFS driver and makes an access request for the written file. When the request is successful, the on-demand file acquisition unit 26 replaces the message that the NTFS driver has returned or the message that the file does not exist with the request success message, and returns the result to the upper driver.
  • the on-demand file acquisition unit 26 repeats the above operation while the OS is running.
  • a list of files in the HDD 13 can be acquired using a “find command”.
  • the file list of the HDD 13 is a list in which information of all files recorded in the HDD 13 is described.
  • the file determination unit 16 deletes information on files not included in the high-use frequency file list from the file list in the HDD 13 to obtain a transmission file list, and passes the transmission file list to the file transfer unit 15.
  • the high usage frequency file list is created by the following method.
  • the on-demand file acquisition unit 26 records the requested file name in the feedback list when a file read / write request is received from a higher-level driver.
  • the feedback list includes, for example, a file name and access date and time as follows. “2008/4/1 12:00:01 C: ⁇ a.txt; 2008/4/1/12: 01: 01 C: ⁇ b.dll;
  • the on-demand file acquisition unit 26 transmits the list to the file transfer unit 15 at the end of the OS, for example.
  • FTP can be used for transmission.
  • the feedback list may be transmitted, for example, five minutes after the OS is started or when a “10 Mbyte” file is read after the OS is started.
  • the high usage frequency file list is “a.txt; b.txt”.
  • the file transfer unit 15 may specify the period by the administrator and add the files used within the period to the list.
  • the latest feedback list is "2008/4/2 13:00:01 C: ⁇ a.txt; 2008/4/2/12: 01: 01 C: ⁇ b.dll;”
  • the previous feedback list is “2008/4/1 13:00:01 C: ⁇ c.txt; 2008/4/1/1/12: 01: C: ⁇ d.dll; and the current time is“ It is assumed that it is "2008/4/3 12:30".
  • the file transfer unit 15 is a list of files used within 48 hours “C: ⁇ a.txt; C: ⁇ b.dll; C: ⁇ c.txt; ”is the high usage frequency file list.
  • the file determination unit 16 may perform determination using date information without using the high usage frequency file list. For example, in “Linux (registered trademark)”, a list of files created or updated after a specific date and time can be acquired using a “find command”. The file determination unit 16 may create a list of files created after the specified date and time by the “find command”, and pass the list of files to the file transfer unit 15 as a transmission list.
  • Linux registered trademark
  • the file determination unit 16 may create a list of files created after the specified date and time by the “find command”, and pass the list of files to the file transfer unit 15 as a transmission list.
  • the on-demand file acquisition unit 26 acquires a file when a file request is received from the OS. At this time, the file may be acquired before the file request arrives from the OS.
  • the on-demand file acquisition unit 26 transmits a file transmission request to the file transfer unit 15 when the usage rates of the HDD 23 and the NIC 24 are low.
  • the file transfer unit 15 reads a file not described in the transmission file list from the HDD 13 and transmits the read file. At this time, the file transfer unit 15 may preferentially transmit a file with an earlier access date and time using the access date and time information described in the feedback list.
  • the OS since the file is prefetched, the OS can be operated at high speed.
  • a sector is the smallest recording unit in a disk-shaped storage device.
  • a group of several sectors is called a “cluster”. Therefore, actually, transmission is not limited to sector units, but can be performed in cluster units.
  • the file transfer unit 15 extracts a sector in the transmission sector list from the HDD image, and transmits the extracted sector data to the pre-file acquisition unit 25. At this time, the file transfer unit 15 creates a list (untransmitted sector list) in which information of sectors that have not transmitted data to the pre-file acquisition unit 25 is described, and uses the non-transmission sector list as the pre-file acquisition unit 25. You may send to.
  • the file determination unit 16 has a high usage frequency sector list in which frequently used sectors are recorded instead of the high usage frequency file list when performing the processing in units of sectors.
  • the file determination unit 16 creates a list in which information on all sectors is described.
  • the sector information is identification information for specifying the sector. As an example of sector information, a sector number or the like can be considered.
  • the sector determination unit 16 deletes information on sectors not included in the high-use frequency sector list from the list in which information on all sectors is written, and sets the transmission sector list to the sector transfer unit 15. hand over. In other words, the transmission sector list is obtained by deleting information on sectors that are not included in the high usage frequency sector list from the list in which information on all sectors is described.
  • the file transfer unit 15 reads the sector of the list from the HDD image of the HDD 13 and transmits it to the prior file acquisition unit 25.
  • the prior file acquisition unit 25 writes the received sector data in the sector at the same position in the HDD 23.
  • the prior file acquisition unit 25 creates and records dummy data of a specific pattern in a sector that has not been received.
  • the prior file acquisition unit 25 receives the untransmitted sector list from the file transfer unit 15 and creates and records dummy data of a specific pattern for the sector whose information is described in the untransmitted sector list. Also good.
  • the on-demand file acquisition unit 26 transmits a transmission request for the sector to the file transfer unit 15 when the read sector is a dummy data pattern.
  • the file transfer unit 15 transmits the requested sector in response to the sector transmission request.
  • the file transfer unit 15 detects the requested sector from the sectors of the HDD 13 and transmits the detected sector.
  • the on-demand file acquisition unit 26 overwrites the sector of the HDD 23 with the received sector data.
  • the on-demand file acquisition unit 26 returns the received sector data in response to the OS read request.
  • the feedback list is written in units of sectors.
  • the on-demand file acquisition unit 26 adds the access date and time and the sector number to the feedback list. Since the method of updating the high-use frequency sector list from the feedback list is the same as that for the file unit, the description is omitted. That is, the method of updating the high usage frequency sector list is the same as the method of updating the high usage frequency file list.
  • the file transfer unit 15 and the prior file acquisition unit 25 perform transmission and acquisition in units of sectors.
  • the file determination unit 16 passes a high-use frequency sector list in which sector numbers such as “1”, “2”, “3”, “45”, “567” are recorded to the file transfer unit 15.
  • the prior file acquisition unit 25 writes the received data to the sectors (“1”, “2”, “3”, “45”, “567”) of the HDD 23.
  • the prior file acquisition unit 25 writes dummy data of a specific pattern in other sectors.
  • the specific pattern may be any pattern as long as it is not a pattern that frequently appears in the file, such as all “0” and all “1”.
  • the on-demand file acquisition unit 26 compares whether or not the sector data pattern matches the specific pattern. If the sector pattern matches, the on-demand file acquisition unit 26 acquires the data of the sector from the file transfer unit 15. . For example, when the “No. 4” sector is read, the on-demand file acquisition unit 26 records a specific pattern as dummy data in the “No. 4” sector. The data of “No. 4” is acquired. Next, the on-demand file acquisition unit 26 writes the acquired data into the “No. 4” sector of the HDD 23. Then, the on-demand file acquisition unit 26 replaces the data to be passed to the OS with the received sector data from the specific pattern.
  • the determination may be made by having a receiving sector list. That is, in the operation of the above embodiment, it is determined whether or not the read sector data is dummy data by comparing with the dummy data pattern, and the sector data is acquired, but the dummy data is not written. In addition, data may be acquired by referring to a list of sectors that have not been received.
  • the prior file acquisition unit 25 creates a list of sectors that the file transfer unit 15 has not transmitted (unreceived sector list).
  • the on-demand file acquisition unit hooks an OS sector read request, and transmits the transmission request to the file transfer unit 15 when the sector is recorded in the unreceived sector list.
  • the on-demand file acquisition unit 26 receives the sector and deletes the sector from the unreceived sector list.
  • the file transfer unit 15 transmits the total number of sectors of the HDD image, the sector number, and a set of the data to the pre-file acquisition unit 25.
  • the on-demand file acquisition unit 26 When the on-demand file acquisition unit hooks a read request to the sector number “5” of the OS, the on-demand file acquisition unit 26 confirms that the sector is in the list and acquires the data of the sector from the file transfer unit 15. . Then, the on-demand file acquisition unit 26 deletes the received sector information from the unreceived sector list, and sets the unreceived sector list to “3”.
  • VMM Virtual Machine Monitor
  • VM virtual machine
  • the thin client system of the present invention includes a server 10 and a client 20.
  • the server 10 includes a CPU 11, a memory 12, an HDD 13, a NIC 14, a file transfer unit 15, and a file determination unit 16.
  • the client 20 includes a CPU 21, a memory 22, an HDD 23, a NIC 24, a prior file acquisition unit 25, an on-demand file acquisition unit 26, and a VMM 27.
  • the client 20 the CPU 11, the memory 12, the HDD 13, the NIC 14, the file transfer unit 15, the file determination unit 16, the CPU 21, the memory 22, the HDD 23, the NIC 24, the prior file acquisition unit 25, and the on-demand file acquisition unit 26.
  • This is basically the same as the first embodiment of the present invention.
  • the VMM 27 generates a virtual machine (VM).
  • VM virtual machine
  • the HDD 13 of the server 10 records virtual HDD data used in a virtual machine (VM) as a VM disk image.
  • the file transfer unit 15 can transmit a file in the VM disk image by analyzing the file system of the VM disk image.
  • Steps U1 to U3 are the same as steps S1 to S3 of the operation of the first embodiment of the present invention.
  • Step U1 The prior file acquisition unit 25 transmits a file transmission request to the file transfer unit 15.
  • Step U2 The file transfer unit 15 calls the file determination unit 16 in response to a file transmission request.
  • the file transfer unit 15 requests a file list (transmission file list) frequently used in advance from the file determination unit 16 in response to a file transmission request.
  • Step U3 The file determination unit 16 acquires a list of frequently used files (transmission file list) in advance, and returns the acquired list (transmission file list) to the file transfer unit 15.
  • the file determination unit 16 determines a file frequently used in advance among the files recorded in the HDD 23, creates a transmission file list, and notifies the file transfer unit 15 of the transmission file list.
  • Step U4 The file transfer unit 15 receives the transmission file list from the file determination unit 16, reads the file described in the list from the VM disk image, and transmits the file to the prior file acquisition unit 25. Further, the file transfer unit 15 determines the file name (file name) and the file size of the file not recorded in the transmission file list from among the files recorded in the VM disk image. Send to.
  • Step U5 The prior file acquisition unit 25 generates a VM disk image on the HDD 23.
  • the prior file acquisition unit 25 analyzes the VM disk image and writes the received file to the VM disk image. Further, the prior file acquisition unit 25 creates a dummy file when receiving the file name and the file size. That is, when the pre-file acquisition unit 25 receives a frequently used file, it writes the frequently used file to the HDD 23. In addition, the prior file acquisition unit 25 writes dummy data to the HDD 23 in other cases.
  • Step U6 When the process (step U5) of the above-described advance file acquisition unit 25 ends, the VMM 27 generates a virtual machine (VM) and starts an OS on the virtual machine (VM). At this time, the VMM 27 detects the process end of the pre-file acquisition unit 25 by monitoring the process end of the pre-file acquisition unit 25 or receiving a process end notification from the pre-file acquisition unit 25, and the virtual machine (VM) It is preferable to start the OS on the virtual machine (VM). However, actually, it is not limited to these examples. At this time, the on-demand file acquisition unit 26 waits for a disk read request (access request) from the VMM 27.
  • VM virtual machine
  • access request access request
  • Step U7 When receiving the access request, the on-demand file acquisition unit 26 determines whether the file for which the access request has been made is recorded in the HDD 23.
  • the on-demand file acquisition unit 26 refers to the signature list to determine whether or not the sector data read from the HDD 23 is dummy. The signature list will be described in detail later. If the signature list does not exist, the on-demand file acquisition unit 26 automatically determines that the sector data read from the HDD 23 is not a dummy. If the sector data read from the HDD 23 is dummy, it indicates that the file requested to be accessed is not recorded in the HDD 23. When the sector data read from the HDD 23 is a dummy, the on-demand file acquisition unit 26 specifies which file is to be accessed from the signature list.
  • Step U8 the on-demand file acquisition unit 26 transmits a file transmission request for which an access request has been made to the file transfer unit 15.
  • Step U9 The file transfer unit 15 transmits the requested file to the on-demand file acquisition unit 26 in response to a transmission request for the file for which an access request has been made.
  • Step U10 the on-demand file acquisition unit 26 receives the file from the file transfer unit 15 and overwrites the dummy data recorded in the HDD 23 with the data of the received file.
  • Step V1 the prior file acquisition unit 25 generates a signature unique to each file.
  • the signature size may be any length as long as it is within the sector size of the HDD 23.
  • the prior file acquisition unit 25 sets the signature as dummy data when the size of the signature is equal to the sector size of the HDD 23. If the size of the signature is smaller than the sector size of the HDD 23, the advance file acquisition unit 25 adds padding to the signature and generates dummy data equal to the sector size.
  • Step V2 the prior file acquisition unit 25 writes dummy data in each sector of the file instead of the file data.
  • Step V3 the prior file acquisition unit 25 creates a signature list in which the signature included in the written dummy data is associated with the file.
  • the prior file acquisition unit 25 adds a signature and a file name in association with the created signature list, and stores the signature list in the HDD 23.
  • FIG. 9 shows an example of a signature list.
  • Step W1 When the on-demand file acquisition unit 26 receives the file, the on-demand file acquisition unit 26 analyzes the file system of the VM disk image and identifies in which sector the file requested to be accessed is recorded. That is, the on-demand file acquisition unit 26 analyzes the file system of the VM disk image and identifies the sector of the file for which an access request has been made.
  • Step W2 the on-demand file acquisition unit 26 sets the first sector of the file as a sector to be rewritten. That is, the on-demand file acquisition unit 26 sets the first sector of the file as a rewrite target.
  • Step W3 the on-demand file acquisition unit 26 confirms whether the signature is recorded in the data of the sector to be rewritten.
  • the on-demand file acquisition unit 26 confirms whether the signature is recorded in the data of the sector to be rewritten by pattern matching with the signature list.
  • Step W4 When the signature is recorded in the data of the sector to be rewritten, the on-demand file acquisition unit 26 records the received file to the sector to be rewritten because dummy data is recorded in the sector to be rewritten. Only the sector size of the HDD 23 is written from the top of
  • Step W5 the on-demand file acquisition unit 26 confirms whether all sectors of the file have been processed. At this time, the on-demand file acquisition unit 26 ends the process when all the sectors of the file are processed.
  • Step W6 When the on-demand file acquisition unit 26 has not processed all the sectors of the file, the on-demand file acquisition unit 26 newly sets the sector next to the sector to be rewritten as the sector to be rewritten. That is, when all the sectors of the file are not processed, the on-demand file acquisition unit 26 newly sets a sector next to the sector to be rewritten as a target to be rewritten.
  • the on-demand file acquisition unit 26 processes the next sector in the same manner as the first sector as in steps W3 and W4. However, when the on-demand file acquisition unit 26 writes data in step W4, for example, if the target sector is the “i” th of the file and the sector size of the HDD 23 is “S”, “i ⁇ S + 1 byte” of the file The data of “(i + 1) ⁇ S + 1 byte” is written from the “th”.
  • the VM disk image file system cannot be mounted twice to maintain consistency. That is, the VM image can be mounted before the OS is started, but cannot be mounted because it is mounted by the OS after the OS is started. Therefore, the pre-file acquisition unit 25 can mount the VM disk image and write data to the VM image in units of files, but the on-demand file acquisition unit 26 can only rewrite the file contents in units of sectors. Therefore, a dummy file is created in step U5, and the contents of the sector in which the dummy file contents are recorded are replaced in step U1.
  • whether or not dummy data is recorded in the read sector is determined based on the signature in the dummy data written in each sector of the HDD.
  • the prior file acquisition unit 25 creates a list of sectors in which dummy data is written (dummy data list) when writing dummy data, not a signature, into the HDD 23.
  • the on-demand file acquisition unit 26 may determine whether dummy data is recorded in the read sector by referring to the list (dummy data list).
  • the prior file acquisition unit 25 does not generate a signature, and writes a file in the HDD 23 using, for example, “0” as dummy data.
  • the prior file acquisition unit 25 collects the sector in which the file was recorded by analyzing the file system, and records the name (file name) of the file whose contents are dummy data and the sector number. Create a list (dummy data list).
  • the on-demand file acquisition unit 26 hooks the sector reading of the HDD 23 by the VMM 27 and confirms whether the sector to be read is on the dummy data list.
  • the on-demand file acquisition unit 26 reads the target sector from the HDD 23 and passes it to the VMM 27.
  • the on-demand file acquisition unit 26 identifies which file the target sector is part of from the dummy data list.
  • the on-demand file acquisition unit 26 acquires the specified file from the file transfer unit 15.
  • the on-demand file acquisition unit 26 records the acquired file in the sector described in the dummy data list.
  • the on-demand file acquisition unit 26 passes the sector data requested from the VMM 27 to the VMM 27.
  • the prior file acquisition unit 25 and the on-demand file acquisition unit 26 acquire from the file transfer unit 15 in units of files. As in another operation of the first embodiment of the present invention, it may be acquired not in units of files but in units of sectors. Since the operations of the prior file acquisition unit 25, the on-demand file acquisition unit 26, and the file transfer unit 15 are the same as those in the first embodiment of the present invention, the description thereof is omitted.
  • the effect of the second embodiment is that the net boot thin client implementation method that operates at high speed can be applied to the virtual PC system.
  • the difference between the first embodiment and the second embodiment of the present invention lies in the file writing operations of the prior file acquisition unit 25 and the on-demand file acquisition unit 26, and the operations will be specifically described.
  • the file transfer unit 15 transmits a file according to the transmission file list received from the file determination unit 16 before the OS is started. Further, the file transfer unit 15 transmits a list of file names and file sizes of other files.
  • FTP may be used for transmission of files and lists.
  • the prior file acquisition unit 25 writes the file received from the file transfer unit 15 to the HDD 23. Then, a dummy file is created by the following method.
  • the prior file acquisition unit 25 generates a signature using a random number.
  • the signature size it is conceivable to use a sector size of the HDD 23, for example, an arbitrary length up to “512 bytes”.
  • the advance file acquisition unit 25 adds, for example, 0 to the padding after the signature to create dummy data of the HDD sector size. For example, when the signature is “64 bytes”, the prior file acquisition unit 25 adds “448 bytes” of padding.
  • the prior file acquisition unit 25 writes dummy data to the HDD 23.
  • a file of “1500 bytes” uses three sectors.
  • the prior file acquisition unit 25 records dummy data in these three sectors.
  • the prior file acquisition unit 25 records the generated signature and the file name in the signature list. For example, when “ABCDEF...” Is generated for the file “C: ⁇ a.txt”, the prior file acquisition unit 25 adds it to the first line of the list of FIG.
  • the OS is started.
  • the prior file acquisition unit 25 writes an OS startup request to the CPU 21 after writing all the dummy files to the HDD 23.
  • the CPU 21 activates the OS in response to the OS activation request.
  • the on-demand file acquisition unit 26 monitors the reading of the OS in units of sectors. Then, when a specific sector is read from the HDD 23, the on-demand file acquisition unit 26 checks whether or not the content of the sector includes a signature.
  • the VMM 27 is, for example, “Xen” or “VMWare (registered trademark)”.
  • VMM 27 For example, if the VMM 27 is “Xen”, reading of the HDD 23 can be monitored by monitoring “qmu-dm” (QEMU device model program) which is a program for generating a virtual hard disk.
  • QEMU is a program that emulates various types of CPUs. For example, when the file system used in the VM is FAT, the determination as to whether or not the signature is included may be made by comparing each line of the signature list by the size of the signature from the top of the sector.
  • the on-demand file acquisition unit 26 passes information on the sector to the VMM 27. Further, the on-demand file acquisition unit 26 acquires a file from the file transfer unit 15 when the read sector is dummy data. For acquisition, for example, it is conceivable to use FTP. For example, if the file system used in the VM is FAT, the sector in which the file is recorded can be obtained from the directory entry and the FAT entry. The on-demand file acquisition unit 26 divides the file acquired from the file transfer unit 15 in units of “512 bytes”, and writes the files in the file sector in order from the top. Finally, the sector data requested to be read from the VMM 27 is passed to the VMM 27.
  • data may be obtained in units of sectors as in the first embodiment of the present invention.
  • the specific operation is the same as that of the first embodiment of the present invention.
  • the specific operation is the same as that of the first embodiment of the present invention.
  • the present invention can be used for information leakage countermeasures using a thin client.
  • the thin client system of the present invention is a system in which a first computer used by a user obtains a file from a second computer, and the first computer obtains a file in advance to obtain a file before operating the OS. And on-demand file acquisition means for acquiring a file requested by the OS during the OS operation.
  • the second computer sends a file determination means for creating a list of files received by the advance file acquisition means, the list file to the advance file acquisition means, and further receives the requested file from the on-demand file acquisition means.
  • File transfer means for transmitting to the on-demand file acquisition means.
  • the thin client system is a system in which a first computer used by a user acquires a file from a second computer, and the first computer generates a virtual machine (VM).
  • a machine monitor a file acquisition unit that acquires a file before the virtual machine (VM) operation, and a file that has dummy data for a file that is not acquired before the virtual machine (VM) operation;
  • VM On-demand file acquisition means for acquiring file data requested by the virtual machine (VM) during operation and replacing dummy data of the file with the acquired data.
  • the second computer sends a file determination means for creating a list of files received by the advance file acquisition means, the list file to the advance file acquisition means, and further receives the requested file from the on-demand file acquisition means.
  • File transfer means for transmitting to the on-demand file acquisition means.
  • the prior file acquisition unit creates dummy data of a specific pattern for each file, and further creates a list in which the pattern and file name for each file are recorded.
  • the on-demand file acquisition means compares the sector data read from the hard disk with the list, finds the file name from the list if the data pattern is listed, and acquires the file data from the file transfer means To do.
  • the on-demand file acquisition means replaces only the file data without rewriting the file system information.
  • the thin client system is a system in which a first computer used by a user acquires data of a sector of a hard disk from a second computer, and the first computer uses a sector before operating an OS.
  • Pre-file acquisition means for acquiring the data
  • on-demand file acquisition means for acquiring sector data requested by the OS during the OS operation.
  • the second computer sends a file determination means for creating a list of sectors received by the advance file acquisition means, the sectors in the list to the advance file acquisition means, and further selects the sector requested by the on-demand file acquisition means.
  • a file transfer means for transmitting to the on-demand file acquisition means.
  • the thin client system of the present invention is a system in which a first computer used by a user acquires data of a sector of a hard disk from a second computer, and the first computer is a virtual machine (virtual machine). (VM)), a pre-file acquisition unit for acquiring sector data before the virtual machine (VM) operation, and a sector requested by the virtual machine (VM) during the virtual machine (VM) operation.
  • On-demand file acquisition means for acquiring data.
  • the second computer sends a file determination means for creating a list of sectors received by the advance file acquisition means, the sectors in the list to the advance file acquisition means, and further selects the sector requested by the on-demand file acquisition means.
  • File transfer means for transmitting to the on-demand file acquisition means.
  • the prior file acquisition means creates dummy data of a specific pattern.
  • the on-demand file acquisition means determines whether or not the sector data read from the hard disk contains a pattern, thereby determining whether or not the sector data is dummy. Acquire data from the file transfer means.
  • the file transfer means creates a list of files or sectors that have not been transmitted to the prior file acquisition means, and transmits the list to the prior file acquisition means.
  • the prior file acquisition means creates dummy data for the files or sectors described in the list.
  • the prior file acquisition means creates a list in which sectors not acquired are recorded.
  • the on-demand file acquisition means confirms whether the sector to be read from the hard disk is listed, and if it is described, acquires data of the sector from the file transfer means.
  • the file determination means passes the list given by the administrator to the file transfer means.
  • the file determination unit receives the usage status of the file from the on-demand file acquisition unit, creates a list of frequently used files, and passes it to the file transfer unit.
  • the file determination unit receives the file usage status from the on-demand file acquisition unit, creates a list of recently used files, and passes it to the file transfer unit.
  • the file determination unit creates a list of files having an update date and time that is newer than the date and time specified by the administrator, and passes them to the file transfer unit.
  • the file determination unit merges the list given by the administrator and the list created by the above-described operation and passes the merged list to the file transfer unit.
  • the thin client system of the present invention includes the prior file acquisition unit that acquires a file before starting the OS in the client and the on-demand file acquisition unit that acquires the file while the OS is starting.
  • a file determination unit 16 is provided for determining whether or not it is frequently used.
  • a connection port such as a USB port or a reading device such as a DVD drive is used.
  • file and sector data are described as examples, but actually unit data other than these can be used.
  • the unit data is preferably the minimum unit of data stored or transmitted / received by the server and the client.

Abstract

 ネットブート型シンクライアントにおいて、事前ダウンロード方式と、オンデマンドダウンロード方式は、共に特定のステップにボトルネックが集中し、高速に動作しないようにする。具体的には、OS動作前にファイルを取得する事前ファイル取得手段と、OS動作中にファイルを取得するオンデマンドファイル取得手段と、ファイルが高頻度に使われるか否かを判定するファイル判定手段を備える。使用頻度の高いファイルをOS動作前にダウンロードし、使用頻度の低いファイルをOS動作中にダウンロードする。

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 (22)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010545758A JP5477660B2 (ja) 2009-01-07 2010-01-05 ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム
US13/143,405 US8954960B2 (en) 2009-01-07 2010-01-05 Thin client system and method of implementing thin client system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-001372 2009-01-07
JP2009001372 2009-01-07

Publications (1)

Publication Number Publication Date
WO2010079772A1 true WO2010079772A1 (ja) 2010-07-15

Family

ID=42316538

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/050012 WO2010079772A1 (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 (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013016186A (ja) * 2012-08-24 2013-01-24 Toshiba Corp 情報処理装置、情報処理方法およびプログラム
WO2013094047A1 (ja) * 2011-12-21 2013-06-27 富士通株式会社 管理装置、管理プログラムおよび管理方法
JP2013186755A (ja) * 2012-03-08 2013-09-19 Toshiba Corp 情報処理装置、イメージファイル管理方法およびプログラム
JP2015506044A (ja) * 2011-12-15 2015-02-26 マイクロソフト コーポレーション オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング
WO2017109859A1 (ja) * 2015-12-22 2017-06-29 株式会社日立製作所 コンピュータシステム及びその制御方法
US10664586B2 (en) 2015-03-09 2020-05-26 Fujitsu Limited Program acquisition method, and information processing terminal
JP7367630B2 (ja) 2020-07-27 2023-10-24 トヨタ自動車株式会社 サーバー、ソフトウェア更新装置、車両、ソフトウェア更新システム、方法およびプログラム

Families Citing this family (6)

* 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
DE102014201954A1 (de) * 2014-02-04 2015-08-06 Volkswagen Aktiengesellschaft Verfahren zur Datenübertragung, Kommunikationsnetzwerk und Fahrzeug
US9804965B2 (en) * 2014-12-03 2017-10-31 Electronics And Telecommunications Research Institute Virtual machine host server apparatus and method for operating the same
US11748306B1 (en) * 2017-11-30 2023-09-05 Veritas Technologies Llc Distributed data classification
DE112018006439T5 (de) * 2018-03-14 2020-09-03 Mitsubishi Electric Corporation Systemkonstruktionsunterstützungsvorrichtung, Systemkonstruktionsunterstützungsverfahren und Systemkonstruktionsunterstützungsprogramm

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005318074A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd ストレージグループ設定方法および装置
JP2006519423A (ja) * 2003-03-21 2006-08-24 インテル コーポレイション 仮想マシンのための動的なサービス・レジストリ
JP2008158711A (ja) * 2006-12-22 2008-07-10 Fujitsu Ltd ファイル配信プログラム、ファイル配信装置および分散ファイルシステム

Family Cites Families (11)

* 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> オンデマンドファイルダウンロード方法及びシステム
JPH10240538A (ja) 1997-02-25 1998-09-11 Nec Corp プログラムロード方式
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
JP2006011541A (ja) 2004-06-22 2006-01-12 Hitachi Ltd 計算機および共用記憶装置を含む計算機システムにおける情報記録方法
JP4736370B2 (ja) 2004-07-27 2011-07-27 株式会社日立製作所 ホスティング環境構築方法および計算機システム
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 起動システム、起動プログラムおよびその方法。
JP2009048231A (ja) 2007-08-13 2009-03-05 Mitsubishi Electric Corp 多機能情報機器及び多機能情報機器の起動方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006519423A (ja) * 2003-03-21 2006-08-24 インテル コーポレイション 仮想マシンのための動的なサービス・レジストリ
JP2005318074A (ja) * 2004-04-27 2005-11-10 Hitachi Ltd ストレージグループ設定方法および装置
JP2008158711A (ja) * 2006-12-22 2008-07-10 Fujitsu Ltd ファイル配信プログラム、ファイル配信装置および分散ファイルシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MEGUMI NAKAMURA ET AL.: "Trusted Computing ni yoru HTTP-FUSE KNOPPIX Client no Security Kyoka", IPSJ SIG NOTES, vol. 2006, no. 81, 21 July 2006 (2006-07-21), pages 223 - 230 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015506044A (ja) * 2011-12-15 2015-02-26 マイクロソフト コーポレーション オン・デマンドのステージングを用いる高速アプリケーション・ストリーミング
US9870372B2 (en) 2011-12-15 2018-01-16 Microsoft Technology Licensing, Llc Fast application streaming using on-demand staging
WO2013094047A1 (ja) * 2011-12-21 2013-06-27 富士通株式会社 管理装置、管理プログラムおよび管理方法
JPWO2013094047A1 (ja) * 2011-12-21 2015-04-27 富士通株式会社 管理装置、管理プログラムおよび管理方法
US9501428B2 (en) 2011-12-21 2016-11-22 Fujitsu Limited Managing apparatus
JP2013186755A (ja) * 2012-03-08 2013-09-19 Toshiba Corp 情報処理装置、イメージファイル管理方法およびプログラム
JP2013016186A (ja) * 2012-08-24 2013-01-24 Toshiba Corp 情報処理装置、情報処理方法およびプログラム
US10664586B2 (en) 2015-03-09 2020-05-26 Fujitsu Limited Program acquisition method, and information processing terminal
WO2017109859A1 (ja) * 2015-12-22 2017-06-29 株式会社日立製作所 コンピュータシステム及びその制御方法
JP7367630B2 (ja) 2020-07-27 2023-10-24 トヨタ自動車株式会社 サーバー、ソフトウェア更新装置、車両、ソフトウェア更新システム、方法およびプログラム
US11803364B2 (en) 2020-07-27 2023-10-31 Toyota Jidosha Kabushiki Kaisha Server, software updating device, vehicle, software updating system, control method, and non-transitory storage medium

Also Published As

Publication number Publication date
US8954960B2 (en) 2015-02-10
JPWO2010079772A1 (ja) 2012-06-21
JP5477660B2 (ja) 2014-04-23
US20110276964A1 (en) 2011-11-10

Similar Documents

Publication Publication Date Title
JP5477660B2 (ja) ネットブート型シンクライアントシステム、コンピュータ、シンクライアント実施方法、及びシンクライアント用プログラム
US7890689B2 (en) Virtual appliance management
US9916321B2 (en) Methods and apparatus for controlling snapshot exports
US9654548B2 (en) Intelligent network streaming and execution system for conventionally coded applications
US8943506B2 (en) Client-side virtualization architecture using differential bi-directional synchronization and closed computing
US9813485B2 (en) Communication of virtual machine data
US8140748B2 (en) IT automation appliance imaging system and method
US8996667B2 (en) Deploying an operating system
US6959320B2 (en) Client-side performance optimization system for streamed applications
US8831995B2 (en) Optimized server for streamed applications
JP4242819B2 (ja) オフライン作業可能な端末を有する計算機システム
EP2019358A1 (en) A method and a system for the creation and deployment of a virtual machine appliance on virtualised servers
EA006814B1 (ru) Система и способ использования множества приложений
JP6115331B2 (ja) トランザクション再開プログラム、情報処理装置及びトランザクション再開方法
US11836047B2 (en) Small file restore performance in a deduplication file system
JP2007323354A (ja) マシン管理システム
US11500813B2 (en) Instant replay of a file to a cloud tier on a deduplication file system
CN109308288B (zh) 数据处理方法及装置
EP1235156B1 (en) Remote management unit with interface for remote data exchange
JP7326234B2 (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
GB2515114A (en) Communication of Virtual Machine Data
JP2003099297A (ja) ファイル配布システムと方法およびプログラムと記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10729192

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2010545758

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13143405

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10729192

Country of ref document: EP

Kind code of ref document: A1