WO2012111112A1 - 情報処理装置、時刻設定方法、および時刻設定プログラム - Google Patents

情報処理装置、時刻設定方法、および時刻設定プログラム Download PDF

Info

Publication number
WO2012111112A1
WO2012111112A1 PCT/JP2011/053266 JP2011053266W WO2012111112A1 WO 2012111112 A1 WO2012111112 A1 WO 2012111112A1 JP 2011053266 W JP2011053266 W JP 2011053266W WO 2012111112 A1 WO2012111112 A1 WO 2012111112A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
domain
information
clock
subsystem
Prior art date
Application number
PCT/JP2011/053266
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 JP2012557715A priority Critical patent/JPWO2012111112A1/ja
Priority to EP11858987.8A priority patent/EP2677434A1/en
Priority to PCT/JP2011/053266 priority patent/WO2012111112A1/ja
Publication of WO2012111112A1 publication Critical patent/WO2012111112A1/ja
Priority to US13/961,957 priority patent/US20130326088A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G5/00Setting, i.e. correcting or changing, the time-indication
    • GPHYSICS
    • G04HOROLOGY
    • G04GELECTRONIC TIME-PIECES
    • G04G7/00Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0641Change of the master or reference, e.g. take-over or failure of the master

Definitions

  • the present invention relates to an information processing apparatus, a time setting method, and a time setting program for setting time in a time measuring means.
  • the computer may use time information for processing execution. Therefore, the computer has time measuring means for measuring time inside. The computer then adjusts the time of the internal time measuring means at a predetermined timing. In the time adjustment, the time of the clock means on the software running on the computer is set to the time of the clock accessible by the computer. For example, NTP time adjustment is performed using a network time protocol (NTP) server connected via a network.
  • NTP network time protocol
  • an object of the present invention is to provide an information processing apparatus, a time setting method, and a time setting program that can perform time adjustment using more accurate time information.
  • an information processing apparatus that manages a management target apparatus that performs data processing according to a request.
  • the information processing apparatus includes a time measuring unit, a determining unit, and a time adjusting unit.
  • the determining unit recognizes the management target device as one of devices that provide time information, and determines the device that provides the most accurate time information among devices that provide time information that can be acquired in the current operation status. To do.
  • the time adjusting means acquires time information from the determined device, and adjusts the time of the time measuring means to the time indicated by the acquired time information.
  • a time setting method in which an information processing apparatus that manages a management target apparatus that performs data processing in response to a request performs the following processing.
  • the information processing device recognizes the management target device as one of devices that provide time information, and provides the most accurate time information among devices that provide time information that can be acquired in the current operation status. To decide.
  • the information processing apparatus acquires time information from the determined apparatus, and adjusts the time of the time measuring means in the information processing apparatus to the time indicated by the acquired time information.
  • a time setting program causes an information processing device that manages a management target device that performs data processing in response to a request to execute the following processing.
  • the information processing apparatus first recognizes the management target apparatus as one of the apparatuses that provide time information, and is the most accurate of the apparatuses that provide time information that can be acquired in the current operation status. The device that provides the correct time information.
  • the information processing apparatus acquires time information from the determined apparatus, and adjusts the time of the time measuring means in the information processing apparatus to the time indicated by the acquired time information.
  • FIG. 1 is a diagram illustrating a functional configuration example of an apparatus according to the first embodiment.
  • the information processing apparatus 1 manages the management target apparatus 4 that performs data processing in response to a request, for example.
  • the information processing apparatus 1 includes a time measuring unit 1a, a determining unit 1b, a time setting unit 1c, a calculating unit 1d, a storage unit 1e, and an activation unit 1f.
  • the time measuring means 1a measures time.
  • the time measuring means 1a is realized by the information processing apparatus 1 executing software such as an OS (Operating System), for example.
  • the determination unit 1b recognizes the management target device 4 as one of devices that provide time information. And the determination means 1b determines the apparatus which can acquire the most accurate time information 5 among the apparatuses which can acquire time information in the present operation condition. For example, when the information processing apparatus 1 is activated, the determination unit 1b determines the clock device 2 backed up by the battery as the apparatus that indicates the most accurate time. Further, when the information processing device 1 is in operation, the determination unit 1b makes the server 3 the most accurate if the time information can be acquired from the server 3 that provides time information according to a request from another device. You may determine to the apparatus which has shown time.
  • the determination unit 1b may determine the device that indicates the most accurate time as long as the time information can be acquired from the device that is time-synchronized with the server 3. For example, when the management target device 4 periodically acquires time information from the server 3 and adjusts the time of the internal timing means, the determination unit 1b sets the management target device 4 to the most accurate time.
  • the device shown can be determined.
  • the managed device 4 performs data processing in response to a request from a terminal device used by a user, for example.
  • the time information cannot be obtained from the server 3 that provides time information in response to a request from another apparatus, and the time is also obtained from the apparatus in which the time is adjusted with the server 3.
  • the determination unit 1b can determine the timepiece device 2 backed up by the battery as the device that indicates the most accurate time.
  • the time adjusting unit 1c acquires the time information 5 from the determined device, and adjusts the time of the time measuring unit 1a to the time indicated by the time information 5. Further, when the information processing device 1 is in operation, the time setting unit 1c sets the time of the time measuring unit 1a to the time indicated by the time information acquired from a device other than the clock device 2 backed up by the battery. The time of the clock device 2 is set to the time shown.
  • the calculating means 1d acquires time information 5 indicating time from the time measuring means inside the management target device 4, and calculates a difference time 7 between the time indicated by the acquired time information 5 and the time indicated by the time measuring means 1a. To do.
  • the calculation unit 1 d periodically acquires the time indicated by the time measuring unit inside the management target device 4.
  • the calculation unit 1d stores the calculated time in the storage unit 1e in association with the management target device 4.
  • the storage unit 1e stores the difference time 7 calculated by the calculation unit 1d.
  • the activation unit 1 f is activated after the operation of the management target device 4 is stopped, the time obtained by adding the difference time of the management target device 4 to the time indicated by the time measuring unit 1 a
  • the management target device 4 is activated by specifying the initial value of the time of the time measuring means.
  • the activation unit 1f acquires the difference time of the management target device 4 from the storage unit 1e.
  • the determination unit 1b determines the apparatus that can acquire the most accurate time information among the apparatuses that can acquire the time information in the current operation status. For example, it is assumed that the time of the time information provided by the server 3 is the most accurate, and then the time of the clock device 2 is accurate. At this time, if the information processing apparatus 1 can acquire the time information 5 from the server 3, the determining unit 1b determines that the server 3 is an apparatus that can acquire the most accurate time information.
  • the management target apparatus 4 acquires the time information 5 from the server 3 and adjusts the time of the internal time measuring means.
  • the determination unit 1b determines that the time of the time measuring unit inside the management target device 4 is more accurate than the time of the clock device 2, and determines the management target device 4 with the most accurate time information. Decide on an available device.
  • the determination unit 1b determines, for example, the clock device 2 as an apparatus that can acquire the most accurate time information.
  • the time information 5 is acquired from the determined device by the time adjustment unit 1c. Then, the time of the time measuring means 1a is adjusted to the time indicated by the acquired time information 5 by the time adjusting means 1c.
  • the calculation unit 1d causes the difference time 7 indicating the difference between the time indicated by the time measuring unit inside the management target device 4 and the time indicated by the time measuring unit 1a. Is calculated. The calculation of the difference time 7 is executed periodically, for example. The calculated difference time 7 is stored in the storage unit 1e. Thereafter, when the management target device 4 is stopped and the management target device 4 is restarted, the startup unit 1 f transmits a startup request 8 to the management target device 4. For example, the activation unit 1 f transmits an activation request 8 in response to an operation input from a user instructing activation of the management target device 4.
  • the activation request 8 to be transmitted includes the time obtained by adding the difference time of the management target device 4 to the time indicated by the time measuring means 1a. Then, the managed device 4 that has received the activation request 8 sets the time indicated in the activation request 8 to the initial value of the internal time measuring means and activates it.
  • the difference time is set at the time indicated by the clock means 1a. Can be set as the initial value of the time of the time measuring means in the management target device 4.
  • the time of the internal time measuring means becomes a time before the stop, there is a possibility that the processing using the time information cannot be executed normally. Therefore, the reliability of the management target device 4 can be improved by preventing the time from going back due to the restart.
  • the time of the time measuring means inside the management target device 4 is different from the time when the management target device 4 is stopped. It is possible to prevent progress. If the time of the time measuring means inside the management target device 4 advances by a time different from the time when it was actually stopped, correct analysis cannot be performed when analyzing the log data in the management target device 4. In this way, the management target device 4 is started by advancing the internal clock of the management target device 4 by the amount of time that the management target device 4 has been stopped, so that the log data recorded in the management target device 4 is inconsistent. And the reliability of the analysis of the operation status of the management target device 4 can be improved.
  • the time of each device in the multi-domain system is set using an appropriate clock when operating the multi-domain system.
  • the information processing apparatus is called a computer.
  • a multi-domain system is a computer system having a subsystem and a plurality of domains.
  • a subsystem is a computer that manages a plurality of domains.
  • the subsystem is an example of the information processing apparatus 1 illustrated in FIG.
  • a plurality of domains are computers that can operate individually.
  • the plurality of domains are examples of the management target device 4 illustrated in FIG.
  • FIG. 2 is a diagram illustrating an example of a system configuration according to the second embodiment.
  • the multi-domain system A is connected to the terminal devices 21 and 22 and the NTP server 501 via the network 11.
  • the network 11 is, for example, a local area network (LAN: Local Area Network).
  • the multi-domain system A is connected to the terminal devices 31 and 32 and the NTP server 500 via the network 12.
  • the network 12 is a wide area network such as the Internet.
  • Multi-domain system A has a plurality of computers called domains. Each domain executes various data processing in response to requests from the terminal devices 31 and 32.
  • the multi-domain system A has a built-in computer called a subsystem. The subsystem manages the entire multi-domain system A according to instructions from the terminal devices 21 and 22.
  • the NTP servers 500 and 501 have an accurate clock, and transmit time information to other devices by NTP.
  • the NTP servers 500 and 501 can acquire time information directly or indirectly from an accurate time source such as a GPS (Global Positioning System) or an atomic clock, and can adjust the time of an internal clock.
  • the multi-domain system A can communicate with the NTP servers 500 and 501 and can adjust the time of the internal clock.
  • the NTP server 501 is connected to the network 11 and the NTP server 500 is connected to the network 12.
  • the NTP servers 500 and 501 may not be connected to any of the networks 11 and 12.
  • an NTP server is connected to only one of the networks 11 and 12. Further, there may be a case where normal communication cannot be performed between the NTP servers 500 and 501 and the multi-domain system A.
  • the NTP server 500 is an example of the server 3 illustrated in FIG.
  • the multi-domain system A provides a different service for each domain, and sometimes holds different times for each domain. Therefore, in the second embodiment, appropriate time setting is performed assuming that the time of each domain is intentionally different.
  • time adjustment using NTP executed by each subsystem or each of a plurality of domains is performed over time. For example, if the time has advanced by 10 seconds, the progress of the subsequent time is slightly delayed. That is, the clock is adjusted to advance by “ ⁇ 10” seconds during the time ⁇ seconds ( ⁇ is a positive real number). In this way, by correcting the time over time, it is possible to suppress the occurrence of a malfunction of the system due to a sudden change in time.
  • FIG. 3 is a diagram illustrating a hardware configuration of the multi-domain system according to the second embodiment.
  • the multi-domain system A has a subsystem 100 and a plurality of domains 200, 300, 400.
  • the multi-domain system A has a clock device A1.
  • the timepiece device A1 is a timepiece that is backed up by the battery A2 and keeps accurate time with hardware using a crystal oscillator or the like.
  • the clock device A1 is also called TOD (Time Of Day).
  • the clock device A1 is connected to the subsystem 100.
  • the subsystem 100 and the plurality of domains 200, 300, 400 are connected by an internal bus A3.
  • the subsystem 100 is connected to the network 11.
  • the plurality of domains 200, 300, and 400 are connected to the network 12.
  • the entire subsystem 100 is controlled by a CPU (Central Processing Unit) 101.
  • a memory 102 and a plurality of peripheral devices are connected to the CPU 101 via a bus 107.
  • the memory 102 is used as a main storage device of the subsystem 100.
  • the memory 102 temporarily stores at least part of an OS program and application programs to be executed by the CPU 101.
  • the memory 102 stores various data necessary for processing by the CPU 101.
  • Peripheral devices connected to the bus 107 include a hard disk drive (HDD: Hard Disk Drive) 103, a bus interface (IF) 104, a communication IF 105, and an input / output IF 106.
  • HDD Hard Disk Drive
  • IF bus interface
  • the HDD 103 magnetically writes and reads data to and from the built-in disk.
  • the HDD 103 is used as a secondary storage device of the subsystem 100.
  • the HDD 103 stores an OS program, application programs, and various data.
  • a semiconductor storage device such as a flash memory can also be used as the secondary storage device.
  • the bus IF 104 is connected to the internal bus A3 and communicates with the domains 200, 300, and 400 via the internal bus A3.
  • the communication IF 105 is connected to the network 11 and communicates with other devices via the network 11. For example, when an NTP server is connected to a network connected via the network 11, the communication IF 105 can communicate with the NTP server.
  • the input / output IF 106 is connected to devices outside the subsystem 100 via the input / output ports 108 and 109.
  • the input / output IF 106 receives input of data from the devices connected to the input / output ports 108 and 109 and outputs data to the devices connected to the input / output ports 108 and 109.
  • the timepiece device A ⁇ b> 1 is connected via the input / output port 108.
  • a portable auxiliary storage device 13 is connected via an input / output port 109.
  • the auxiliary storage device 13 is a non-volatile semiconductor memory device such as a flash memory.
  • a program describing processing executed in the subsystem 100 or the domains 200, 300, 400 can be stored.
  • the CPU 101 can read the program in the auxiliary storage device 13 via the input / output IF 106 and install it in the HDD 103.
  • the CPU 101 can also read a program in the auxiliary storage device 13 via the input / output IF 106 and transfer it to the domains 200, 300, and 400 via the bus IF 104.
  • the respective CPUs 201, 301, and 401 can install the program in the HDDs 203, 303, and 403.
  • the subsystem 100 may have an optical drive device.
  • the optical drive reads data recorded on the optical disk using a laser beam or the like.
  • An optical disc is a portable recording medium on which data is recorded so that it can be read by reflection of light.
  • Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like.
  • the entire apparatus is controlled by the CPU 201.
  • a memory 202 and a plurality of peripheral devices are connected to the CPU 201 via a bus 206.
  • Peripheral devices connected to the bus 206 include an HDD 203, a bus IF 204, and a communication IF 205.
  • the entire domain 300 is controlled by the CPU 301.
  • a memory 302 and a plurality of peripheral devices are connected to the CPU 301 via a bus 306.
  • Peripheral devices connected to the bus 306 include an HDD 303, a bus IF 304, and a communication IF 305.
  • the entire apparatus of the domain 400 is controlled by the CPU 401.
  • the CPU 401 is connected to the memory 402 and a plurality of peripheral devices via a bus 406.
  • Peripheral devices connected to the bus 406 include an HDD 403, a bus IF 404, and a communication IF 405.
  • the memories 202, 302, 402, HDDs 203, 303, 403, bus IFs 204, 304, 404, and communication IFs 205, 305, 405 have the same functions as the elements of the same name in the subsystem 100.
  • the processing functions of the present embodiment can be realized.
  • the subsystem 100 and each of the plurality of domains 200, 300, and 400 individually manage the time. That is, the subsystem 100 and the plurality of domains 200, 300, 400 each have a system clock by software.
  • the subsystem 100 and the plurality of domains 200, 300, and 400 suppress the time lag by appropriately setting the system clock to another clock.
  • the clock device A1 built in the multi-domain system A or the NTP servers 500, 501 connected via the network are used.
  • the subsystem 100 notifies the initial value of the activation time.
  • the time accuracy of the subsystem 100 is lower than that of the clock device A1. Moreover, since the clock device A1 with high time accuracy is backed up by the battery A2, the time is kept even when the subsystem 100 is stopped. Therefore, when the subsystem 100 is activated, the time of the clock device A1 is read by the subsystem 100 and set to the initial value of the system clock of the subsystem 100. However, since the accuracy of the system clock of the subsystem 100 is lower than that of the clock device A1, the error of the system clock gradually increases while the subsystem 100 operates for a long time. Therefore, in the second embodiment, the error of the system clock of the subsystem 100 can be appropriately corrected using an accurate clock.
  • the time of the system clock of the domain may be intentionally set to a time different from the time of the system clock of the subsystem 100. Therefore, the subsystem 100 retains a difference time between the system clock time of each domain 200, 300, 400 and the system clock time of the subsystem 100. At this time, if the time difference of the system clock of the domain is intentionally changed by a user operation, the difference time is not accurate. In addition, the accuracy of the system clock in each of the domains 200, 300, and 400 is lower than that of the clock device A1. Therefore, the difference between the time of the system clock of the subsystem 100 and the time of the system clock of each domain 200, 300, 400 varies while operating the multi-domain system A.
  • the time information indicating the time of the system clock of the domains 200, 300, and 400 is appropriately acquired in the subsystem 100, and the difference information is updated to ensure the accuracy of the difference information.
  • the difference information is updated to ensure the accuracy of the difference information.
  • the time obtained by adding the stop time to the time before the stop is the system clock at the start of each domain 200, 300, 400.
  • the initial value of As a result it is possible to suppress the inconsistency of time information due to restarting the domains 200, 300, and 400 while maintaining the difference before stopping.
  • the system clock of each device can be accurately maintained.
  • the connection to the NTP servers 500 and 501 may be restricted.
  • the domains 200, 300, and 400 are connected to a wide area network to which an unspecified number of users can be connected in order to provide services to the users, but the subsystem 100 is accessed only by an administrator of the multi-domain system A. Sometimes you want to be able to.
  • the NTP server 501 may not be installed in the network 11 that connects the terminal devices 21 and 22 and the subsystem 100 used by the administrator.
  • the domains 200, 300, and 400 can synchronize time with the NTP server 500 and keep the system clock accurately, while the subsystem 100 cannot connect to any NTP server. Then, the system clocks of the domains 200, 300, and 400 are more accurate than the system clock of the subsystem 100. Therefore, in the second embodiment, when the domains 200, 300, and 400 are synchronized with the NTP server 500, the system clock of the subsystem 100 is set using the system clock of the domains 200, 300, and 400. I do. Thereby, the accuracy of the time of the system clock of the subsystem 100 can be improved.
  • FIG. 4 is a block diagram illustrating functions of the multi-domain system according to the second embodiment.
  • the subsystem 100 includes a system clock 110, a reference clock determination unit 120, a synchronization unit 130, a domain activation unit 140, a difference storage unit 150, and a difference calculation unit 160.
  • the system clock 110 is a clock realized by the CPU 101 of the subsystem 100 by software.
  • the subsystem 100 refers to the time of the system clock 110 when there is a process of referring to a time such as a process of attaching a time stamp to a predetermined event or a process of starting up the domains 200, 300, and 400.
  • the reference clock discriminating unit 120 discriminates which clock time is used as a reference, including a clock accessible via the network.
  • the reference clock discriminating unit 120 appropriately determines a more accurate clock and uses the clock as a reference clock. Then, the reference clock discriminating unit 120 determines that the time indicated by the reference clock is used as a reference for time adjustment.
  • the synchronization unit 130 synchronizes the time of the system clock 110 with the time indicated by the reference clock.
  • the time synchronization is a process of matching the time of the clock to be synchronized with the time of the clock to be synchronized.
  • the synchronization unit 130 synchronizes the time of the system clock 110 with the time of the NTP server 501, the same time as the time indicated by the NTP server 501 is set in the system clock 110.
  • the domain activation unit 140 performs activation control of the domains 200, 300, and 400.
  • the domain activation unit 140 transmits an activation instruction with time information added to the activation target domain.
  • the time information added to the activation instruction is a time obtained by correcting the time indicated by the system clock 110 with the differential time corresponding to the activation target domain.
  • the difference time for each domain can be acquired from the difference storage unit 150.
  • the difference storage unit 150 stores the difference time of each time of the domains 200, 300, and 400. For example, a part of the storage area of the memory 102 or the HDD 103 is used as the difference storage unit 150.
  • the difference calculation unit 160 acquires the times indicated by the respective system clocks 210, 310, and 410 from the domains 200, 300, and 400. Then, the difference calculation unit 160 calculates the difference time between the time indicated by the system clocks 210, 310, and 410 of the domains 200, 300, and 400 and the time indicated by the system clock 110 in the subsystem 100. The difference calculation unit 160 stores the calculated difference time in the difference storage unit 150.
  • the domain 200 includes a system clock 210, a synchronization unit 220, and a time report unit 230.
  • the system clock 210 is a clock realized by the CPU 201 of the domain 200 by software.
  • the domain 200 refers to the time of the system clock 210 when there is a process for referring to a time such as a process for attaching a time stamp to a predetermined event.
  • the synchronization unit 220 synchronizes the time of the system clock 210 with the reference time.
  • the synchronization unit 220 has a list of devices capable of time synchronization by NTP.
  • the NTP server 500 is registered at the top, and then the subsystem 100 is registered.
  • the synchronization unit 220 determines, in order from the top of the list of devices capable of time synchronization, whether or not communication with the device is possible, and performs time synchronization by NTP with the highest device capable of communication.
  • the time report unit 230 reports the time indicated by the system clock 210 in the domain 200 to the subsystem 100.
  • the domain 300 includes a system clock 310, a synchronization unit 320, and a time report unit 330.
  • the domain 400 includes a system clock 410, a synchronization unit 420, and a time report unit 430. Each element of the domains 300 and 400 has the same function as the element of the same name in the domain 200.
  • a domain name is set for each of the domains 200, 300, and 400.
  • the domain name of the domain 200 is “domain # 0”
  • the domain name of the domain 300 is “domain # 1”
  • the domain name of the domain 400 is “domain # 2”.
  • FIG. 5 is a diagram illustrating an example of a data structure of the difference storage unit.
  • the difference storage unit 150 stores a difference management table 151.
  • the difference management table 151 has columns for domain name and difference time.
  • the names of the domains 200, 300, and 400 in the multi-domain system A are set.
  • the difference time of the corresponding domain is set in the difference time column.
  • the difference time of the domain 200 with the domain name “domain # 0” is “+0.152 seconds”.
  • the difference time of the domain 300 with the domain name “domain # 1” is “0 seconds”.
  • the difference time of the domain 400 of the domain name “domain # 2” is “ ⁇ 12.38 seconds”.
  • the subsystem 100 and the domains 200, 300, and 400 appropriately set their own system clock to the reference clock using the appropriate clock as a reference clock at that time.
  • the clock of the NTP servers 500 and 501 has the highest accuracy
  • the clock device A1 in the multi-domain system A has the next highest accuracy.
  • the accuracy of the system clock 110 in the subsystem 100 is lower than that of the NTP servers 500 and 501 and the clock device A1.
  • the accuracy of the system clocks 210, 310, and 410 in the domains 200, 300, and 400 is lower than that of the NTP servers 500 and 501 and the clock device A1.
  • the reason why the accuracy of the system clock is lower than that of the NTP servers 500 and 501 and the clock device A1 is as follows.
  • the watch device A1 is a hardware clock and can obtain high accuracy using a crystal oscillator or the like.
  • the system clock 110 is a clock realized by the CPU 101 by software, and there is an unstable factor such as a change in the load state of the CPU 101. Therefore, the accuracy is lower than that of the timepiece device A1.
  • the NTP server 500 is directly or indirectly connected to an accurate time source such as a global positioning system (GPS), a standard radio wave, an atomic clock, and the like. Matching is done. As a result, the time accuracy of the system clock is the lowest.
  • GPS global positioning system
  • whether or not to connect to the NTP servers 500 and 501 from the multi-domain system A is arbitrary by the administrator.
  • the multi-domain system A can be operated separately from the NTP server 500 or the NTP server 501.
  • FIG. 6 is the first half of a flowchart showing the procedure of time synchronization processing in the subsystem. In the following, the process illustrated in FIG. 6 will be described in order of step number.
  • Step S11 The subsystem 100 is activated. For example, when an activation request is input via the network 11, the subsystem 100 is activated.
  • Step S12 The synchronization unit 130 initializes the time of the system clock 110. For example, the synchronization unit 130 reads the time of the clock device A1 and sets the read time as the initial value of the system clock 110.
  • the reference clock determination unit 120 determines whether or not the synchronization target NTP server is not set. For example, in the reference clock discriminating unit 120, whether to enable or disable NTP is registered in advance. If the setting to disable NTP is made, the reference clock determination unit 120 determines that the synchronization target NTP server is not set.
  • the reference clock discriminating unit 120 has a list of devices capable of time synchronization. The list of devices capable of time synchronization includes the addresses of devices such as NTP servers. If no device is registered in the list of devices capable of time synchronization, the reference clock determination unit 120 determines that the synchronization target NTP server is not set.
  • the reference clock discriminating unit 120 When the NTP is valid and at least one device is registered in the list of devices capable of time synchronization, the reference clock discriminating unit 120 has a higher order of registration in the list of devices capable of time synchronization. Will be preferentially determined as the time synchronization partner.
  • each of the domains 200, 300, and 400 in the multi-domain system A can also be registered in a list of devices capable of time synchronization.
  • the administrator of the multi-domain system A registers the domains 200, 300, and 400 below the NTP server after registering the NTP server in the upper list in the list of devices capable of time synchronization. In this way, even if the subsystem 100 itself cannot synchronize with the external NTP server, if the domains 200, 300, and 400 are synchronized with the external NTP server, the subsystem 100 can , 300, 400 and time synchronization becomes possible.
  • the reference clock determination unit 120 proceeds with the process to step S19. If the NTP server is set, the reference clock determination unit 120 proceeds with the process to step S14.
  • the reference clock determination unit 120 determines whether or not synchronization with the set NTP server is possible. For example, the reference clock determination unit 120 transmits a command for inquiring a state to the set NTP server. When a response indicating that the command is operating normally is returned to the command, the reference clock determination unit 120 determines that the NTP server can be synchronized.
  • the reference clock discriminating unit 120 determines that NTP server as the reference clock and advances the process to step S15. If the NTP server cannot be synchronized, the reference clock determination unit 120 proceeds with the process to step S16.
  • Step S15 The synchronization unit 130 performs time synchronization with the registered NTP server, and performs time adjustment of the system clock 110. Thereafter, the synchronization unit 130 proceeds with the process to step S18.
  • the reference clock determination unit 120 determines whether or not time synchronization is possible with a domain that has completed time synchronization with an NTP server. For example, the reference clock discriminating unit 120 inquires of the domains 200, 300, and 400 whether or not the domains 200, 300, and 400 have correctly synchronized time with other NTP servers. For example, the reference clock discriminating unit 120 can confirm whether or not time synchronization has been achieved by transmitting a command for confirming the synchronization state to the domains 200, 300, and 400. For example, the reference clock discriminating unit 120 recognizes that the synchronization with the NTP server has been completed for the domain that has responded to the command for confirming the synchronization state with information indicating that the synchronization has been normally completed. As a command for checking the synchronization state, for example, the ntpstat command can be used in Linux (registered trademark).
  • the reference clock discriminating unit 120 determines that the time synchronization with the domain having completed time synchronization with the NTP server is possible if there is at least one domain with time synchronization completed with the NTP server. If the time synchronization with the domain that has completed time synchronization with the NTP server is possible, the reference clock determination unit 120 advances the process to step S17. If the time synchronization with the domain that has completed time synchronization with the NTP server is not possible, the reference clock determination unit 120 advances the process to step S19.
  • Step S17 The synchronization unit 130 performs time synchronization with the domain for which time synchronization has been completed with the NTP server, and performs time adjustment of the system clock 110.
  • Step S18 The synchronization unit 130 updates the time of the clock device A1. For example, the synchronization unit 130 writes the time indicated by the system clock 110 in the clock device A1. Thereafter, the synchronization unit 130 proceeds with the process to step S21 (see FIG. 7).
  • Step S19 When the NTP server is not set or the time synchronization with the NTP server or the domain fails, the synchronization unit 130 adjusts the time of the system clock 110 using the clock device A1. For example, the synchronization unit 130 executes a time adjustment function prepared in advance in the OS, and synchronizes the time of the system clock 110 with the time of the clock device A1. As a time adjustment function, for example, there is an adjtimex (2) function in Linux (registered trademark). Thereafter, the synchronization unit 130 proceeds with the process to step S21 (see FIG. 7).
  • a time adjustment function for example, there is an adjtimex (2) function in Linux (registered trademark).
  • FIG. 7 is the second half of the flowchart showing the procedure of the time synchronization processing in the subsystem.
  • the process illustrated in FIG. 7 will be described in order of step number.
  • the domain activation unit 140 selects one of the domains in the multi-domain system A that has not been processed in steps S22 to S25.
  • the domain activation unit 140 has a list of domain names in the multi-domain system A. In the domain name list, a flag indicating whether processing has been completed is set. Then, the domain activation unit 140 selects one domain for which an unprocessed flag is set from the domain name list.
  • the domain activation unit 140 determines whether to activate the selected domain. For example, in the domain activation unit 140, domain names that are activated simultaneously with the activation of the subsystem 100 are registered in advance. Then, in the first process of step S22 after the subsystem 100 is activated, the domain activation unit 140 determines that the domain corresponding to the identifier registered in advance is activated. When a domain activation instruction is input by the administrator while the subsystem 100 is in operation, the domain activation unit 140 activates the domain specified in the activation instruction in the first step S22 after the activation instruction. Judge that.
  • step S23 If the domain activation unit 140 determines to activate the selected domain, the process proceeds to step S23. If the domain activation unit 140 determines not to activate the selected domain, the process proceeds to step S24.
  • the domain activation unit 140 transmits an activation request designating the initial value of the time of the domain to the selected domain.
  • the initial value of the time of the selected domain is a value obtained by adding the difference time of the corresponding domain indicated in the difference storage unit 150 to the time of the system clock 110 of the subsystem 100.
  • the domain that has acquired the start request starts after setting the designated initial value to the initial value of the system clock of the domain.
  • the difference calculation unit 160 determines whether or not the selected domain is in operation. For example, the difference calculation unit 160 periodically transmits a confirmation message as to whether each domain 200, 300, and 400 is operating, and recognizes the domain that has responded as operating. If the selected domain is in operation, the difference calculation unit 160 advances the process to step S25. If the selected domain is stopped, the difference calculation unit 160 advances the process to step S26.
  • the difference calculation unit 160 updates the difference time of the selected domain. For example, the difference calculation unit 160 polls the selected domain. Then, the time report unit of the selected domain transmits the time of the system clock to the difference calculation unit 160.
  • the difference calculation unit 160 calculates a difference time between the system clock time of the selected domain and the system clock 110 time of the subsystem 100. For example, the difference calculation unit 160 subtracts the time of the system clock 110 of the subsystem 100 from the time of the system clock of the selected domain. If the system clock of the selected domain is ahead of the system clock 110 of the subsystem 100, the difference time becomes a positive value. If the system clock of the selected domain is behind the system clock 110 of the subsystem 100, the difference time becomes a negative value.
  • the domain activation unit 140 determines whether or not the processing in steps S22 to S25 has been executed for all domains. For example, the domain activation unit 140 sets a processed flag for the most recently selected domain name in the list of domain names held in advance. Thereafter, if there is no domain name for which an unprocessed flag is set in the domain name list, the domain activation unit 140 determines that the processing has been executed for all domains. If there is at least one domain name for which an unprocessed flag is set in the domain name list, the domain activation unit 140 determines that there is an unprocessed domain.
  • the domain activation unit 140 initializes the processing state of all domains to unprocessed. For example, the domain activation unit 140 sets an unprocessed flag for all domain names in the domain name list. Thereafter, the domain activation unit 140 proceeds with the process to step S13 (see FIG. 6).
  • the domain activation unit 140 proceeds with the process to step S21.
  • the subsystem 100 determines an appropriate clock as the reference clock according to the connection status of the NTP server and the operating status of the domain, and sets the time of the system clock 110 to the reference clock.
  • FIG. 8 is a sequence diagram illustrating the procedure of the differential time update process.
  • the sequence diagram illustrated in FIG. 8 will be described in order of step number.
  • FIG. 8 shows an example in which the difference time of the domain 200 is updated.
  • Step S31 The difference calculation unit 160 of the subsystem 100 determines whether or not the domain 200 is in operation. For example, the difference calculation unit 160 transmits a command for inquiring whether or not the domain 200 is operating, and determines that it is in operation if there is a correct response. If the domain 200 is in operation, the difference calculation unit 160 proceeds with the process to step S32. If the domain 200 is not in operation, the difference calculation unit 160 ends the process.
  • the difference calculation unit 160 sets the time of the system clock 110 in the variable T s1 .
  • the variable T s1 is a variable indicating the start time of the time acquisition request for the domain 200.
  • the difference calculation unit 160 transmits a time acquisition request to the domain 200.
  • the time report unit 230 of the domain 200 receives the time acquisition request sent from the subsystem 100. At this time, the time reporting unit 230 sets the time of the system clock 210 in the variable T d1 .
  • the variable T d1 is a variable indicating the acquisition time of the time acquisition request in the domain.
  • the time reporting unit 230 responds to the subsystem 100 with time information. At this time, the time reporting unit 230 sets the time of the system clock 210 in the variable T d2 .
  • the variable T d2 is a variable indicating the response time of the time acquisition request in the domain.
  • the response time information includes a variable T d1 and a variable T d2 .
  • the difference calculation unit 160 of the subsystem 100 receives time information sent from the domain 200.
  • the difference calculation unit 160 sets the time of the system clock 110 in the variable T s2 .
  • the variable T s2 is a variable indicating the reception time of the time information from the domain 200.
  • FIG. 9 is a diagram illustrating the concept of difference time.
  • the respective times are recorded by the domain 200 and the subsystem 100, and reception and response.
  • a difference time that does not include the communication delay time that occurs between the domain 200 and the subsystem 100 can be calculated.
  • the difference time is calculated with the event of the domain 200 as a trigger.
  • a recording start request is issued from the time report unit 230 of the domain 200 to the subsystem 100.
  • the difference calculation unit 160 of the subsystem 100 adds the domain name of the domain 200 to the difference management table 151.
  • an initial value for example, “0” is set as the difference time of the domain 200.
  • a time acquisition request is transmitted by the difference calculation unit 160 of the subsystem 100.
  • the transmitted time acquisition request is received by the time report unit 230 of the domain 200.
  • the time report unit 230 When the time report unit 230 acquires a time acquisition request, it returns time information. The responded time information is received by the difference calculation unit 160 of the subsystem 100. At this time, there is a time difference due to communication delay between the time information transmission time Td2 and the time information reception time Ts2 .
  • the difference time update process for the domain 200 has been described as an example. However, the same update process for the difference time is executed independently for all operating domains. As a result, the difference time of each domain is obtained and stored in the difference storage unit 150.
  • the timing for calculating the differential time includes domain shutdown, domain time change, subsystem 100 time change, and polling from the subsystem 100 in addition to a domain event as a trigger.
  • the polling cycle is set to, for example, about once every 1000 seconds in order to reduce the load on the domain.
  • FIG. 10 is a diagram illustrating an example of an appropriate reference clock of each device according to the operation configuration of the system.
  • the relationship between each device is represented by a higher level, a middle level, and a lower level. If the middle device is in operation, the time of its own system clock is adjusted using the time of the host device. If the lower device is in operation, it uses the time of the upper or middle device to adjust the time of its own system clock.
  • the subsystem 100 and the domains 200, 300, and 400 cannot communicate with the NTP server 500 when activated.
  • the domains 200, 300, and 400 can acquire time information from the subsystem 100 even at the time of activation.
  • the domains 200, 300, and 400 are activated by an activation command from the subsystem 100. Therefore, the subsystem 100 is in operation before the domains 200, 300, and 400 are activated.
  • an example of an operation configuration (first operation configuration) in which the NTP server 500 is not connected to the multi-domain system A is shown.
  • the subsystem 100 is the upper level
  • the domains 200, 300, and 400 are the lower level.
  • the reference clock for the subsystem 100 is the clock device A1.
  • the synchronization unit 130 of the subsystem 100 reads the time of the clock device A1 at the time of activation and sets the initial value of the system clock 110. Further, the synchronization unit 130 of the subsystem 100 periodically executes a synchronization command (for example, an adjtimex (8) command in Linux (registered trademark)) during operation, and sets the time of the system clock 110 to the time of the clock device A1. Synchronize.
  • a synchronization command for example, an adjtimex (8) command in Linux (registered trademark)
  • the domain reference clock is the system clock 110 of the subsystem 100.
  • the system clocks 210, 310, and 410 of the domains 200, 300, and 400 are set to the time obtained by correcting the time of the system clock 110 with the difference time.
  • the domain activation unit 140 of the subsystem 100 sends an activation request in which time information indicating the time obtained by adding the difference time corresponding to the domain 200 to the system clock 110 of the subsystem 100 is added to the domain 200. Send to.
  • the CPU 201 of the domain 200 activates the domain 200 with the time indicated in the time information added to the activation request as the initial value of the system clocks 210, 310, and 410.
  • the domain reference clock is the system clock 110 of the subsystem 100.
  • the synchronization units 220, 320, and 420 periodically synchronize the time of the system clocks 210, 310, and 410 with the time of the system clock 110 of the subsystem 100 by NTP.
  • an example of an operation configuration (second operation configuration) in which the NTP server 501 is connected to the subsystem 100 is shown.
  • the NTP server 501 is higher, the subsystem 100 is middle, and the domains 200, 300, and 400 are lower.
  • the reference clock for the subsystem 100 is the clock device A1.
  • the reference clock for the subsystem 100 is the NTP server 501.
  • the synchronization unit 130 of the subsystem 100 periodically synchronizes the time of the system clock 110 with the time of the NTP server 501.
  • the domain reference clock is the system clock 110 of the subsystem 100.
  • the system clocks 210, 310, and 410 of the domains 200, 300, and 400 are set to the time obtained by correcting the time of the system clock 110 with the difference time.
  • the domain reference clock is the system clock 110 of the subsystem 100.
  • the item numbers “3-1” to “3-4” in FIG. 10 show an example of an operation configuration (third operation configuration) in which the NTP server 500 is connected to the domains 200, 300, and 400. .
  • the NTP server 500 is higher, the domains 200, 300, and 400 are middle, and the subsystem 100 is lower.
  • the reference clock for the subsystem 100 is the clock device A1. While the subsystem 100 is operating (item number “3-2”), if no domain is operating, the reference clock for the subsystem 100 is the clock device A1. On the other hand, if at least one domain is operating while the subsystem 100 is in operation, the reference clock for the subsystem 100 is the system clock of the operating domain. In this case, the synchronization unit 130 of the subsystem 100 periodically synchronizes the time of the system clock 110 with the time of the system clock of the operating subsystem by NTP.
  • the domain reference clock is the system clock 110 of the subsystem 100.
  • the system clocks 210, 310, and 410 of the domains 200, 300, and 400 are set to the time obtained by correcting the time of the system clock 110 with the difference time.
  • the domain reference clock is the NTP server 500.
  • the synchronization units 220, 320, and 420 of the domains 200, 300, and 400 periodically synchronize the time of the system clocks 210, 310, and 410 with the time of the NTP server 500 by NTP.
  • FIG. 11 is a diagram illustrating a first example of the operation status of the multi-domain system.
  • the first example of the operation status is an example when an NTP server is not connected to the subsystem 100.
  • the subsystem 100 does not perform time synchronization with the system clocks 210, 310, 410 of the domains 200, 300, 400.
  • the NTP server In the initial state of FIG. 11 (upper part of FIG. 11), the NTP server is not connected to either the subsystem 100 or the plurality of domains 200, 300, 400. Thereafter, the NTP server 500 is connected to the domains 200, 300, and 400 during operation (the lower part of FIG. 11).
  • the time of the clock device A1 is most reliable. That is, the clock device A1 becomes the reference clock. Therefore, the time of the clock device A1 is transferred to the subsystem 100, and the time of the system clock 110 in the subsystem 100 is adjusted.
  • the domains 200, 300, and 400 perform time synchronization with the subsystem 100 by NTP.
  • the time indicated by the system clock 110 of the subsystem 100 is passed to the domains 200, 300, and 400, and the times of the system clocks 210, 310, and 410 in the domains 200, 300, and 400 are adjusted to the time indicated by the system clock 110. .
  • the clock accuracy of the clock device A1 is higher than that of the system clock 110, the clock accuracy of the entire system can be maintained high even in an environment without an NTP server.
  • the domains 200, 300, and 400 perform time synchronization with the NTP server 500 by NTP.
  • the time indicated by the NTP server 500 is passed to the domains 200, 300, and 400, and the times of the system clocks 210, 310, and 410 in the domains 200, 300, and 400 are matched with the time information provided from the NTP server 500. It is done.
  • System clocks 210, 310, and 410 in domains 200, 300, and 400 are synchronized with the time of NTP server 500.
  • the time indicated by the system clocks 210, 310, and 410 of the domains 200, 300, and 400 is determined from the time indicated by the system clock 110 of the subsystem 100. Is more accurate.
  • a difference time indicating a difference between the time indicated by the system clock 110 of the subsystem 100 and the time indicated by the system clocks 210, 310, and 410 of the domains 200, 300, and 400 is held in the difference storage unit 150.
  • this difference time As the initial value of the system clocks 210, 310, and 410 when the domains 200, 300, and 400 are activated, the difference time immediately before the stop is maintained even if there is a stop period of the domains 200, 300, and 400. Is started.
  • FIG. 12 is a diagram showing time adjustment in time series in the first example of the operation status of the multi-domain system.
  • the time of the clock device A1 is set to the system clock 110. Thereafter, the time of the clock device A1 is periodically read by the synchronization unit 130 of the subsystem 100, and the time of the system clock 110 is updated.
  • the domain 200 When the domain 200 is activated, a time obtained by adding the difference time of the domain 200 to the time indicated by the system clock 110 of the subsystem 100 is set in the system clock 210 of the domain 200. After that, while the domain 200 is not connected to the NTP server 500, the domain 200 synchronizes the system clock 210 with the system clock 110 of the subsystem 100 by NTP, and synchronizes the time of the system clock 210.
  • the time indicated by the NTP server 500 is set in the system clock 210 by time synchronization with the NTP server 500.
  • a difference time between the time indicated by the system clock 210 of the domain 200 and the time indicated by the system clock 110 of the subsystem 100 is periodically calculated and stored in the difference storage unit 150.
  • the difference time is periodically stored until the domain 200 is stopped (shut down).
  • FIG. 13 is a diagram showing a second example of the operation status of the multi-domain system.
  • the second example of the operation status is an example when an NTP server is connected to the subsystem.
  • the NTP server 501 in the initial state (upper stage of FIG. 13), the NTP server 501 is connected to the subsystem 100, and the NTP servers are not connected to the plurality of domains 200, 300, and 400. Thereafter, the NTP server 500 is connected to the domains 200, 300, and 400 during operation (the lower part of FIG. 13).
  • the NTP server 501 is a reference clock. Therefore, the subsystem 100 performs time synchronization with the NTP server 501, and the time of the system clock 110 of the subsystem 100 is adjusted to the time indicated by the NTP server 501.
  • the domains 200, 300, and 400 perform time synchronization with the subsystem 100 by NTP.
  • the domains 200, 300, and 400 When the NTP server 500 is connected to the operating domains 200, 300, and 400, the domains 200, 300, and 400 perform time synchronization with the NTP server 500 by NTP. If the domains 200, 300, and 400 are connected to an NTP server 500 that is different from the subsystem 100, there may be a difference in time between the subsystem 100 and the domains 200, 300, and 400. Therefore, a difference time indicating a difference between the time indicated by the system clock 110 of the subsystem 100 and the time indicated by the system clocks 210, 310, 410 of the domains 200, 300, 400 is held in the difference storage unit 150.
  • this difference time As the initial value of the system clocks 210, 310, and 410 when the domains 200, 300, and 400 are activated, the difference time immediately before the stop is maintained even if there is a stop period of the domains 200, 300, and 400. Is started.
  • FIG. 14 is a diagram showing time adjustment in time series in the second example of the operation status of the multi-domain system.
  • the time of the clock device A1 is set to the system clock 110.
  • the time indicated by the NTP server 501 is set in the system clock 110 by time synchronization with the NTP server 501.
  • the time of the clock device A1 is periodically updated to the time indicated by the system clock 110.
  • the domain 200 When the domain 200 is activated, a time obtained by adding the difference time of the domain 200 to the time indicated by the system clock 110 of the subsystem 100 is set in the system clock 210 of the domain 200. After that, while the domain 200 is not connected to the NTP server 500, the domain 200 synchronizes the system clock 210 with the system clock 110 of the subsystem 100 by NTP, and synchronizes the time of the system clock 210.
  • the time indicated by the NTP server 500 is set in the system clock 210 by time synchronization with the NTP server 500.
  • a difference time between the time indicated by the system clock 210 of the domain 200 and the time indicated by the system clock 110 of the subsystem 100 is periodically calculated and stored in the difference storage unit 150.
  • the difference time is periodically stored until the domain 200 is stopped (shut down).
  • FIG. 15 is a diagram showing a third example of the operation status of the multi-domain system.
  • the third example of the operation status is an example when an NTP server is connected to the domain.
  • the NTP server In the initial state of FIG. 15 (upper part of FIG. 15), the NTP server is not connected to the subsystem 100, and the NTP server 500 is connected to the plurality of domains 200, 300, 400. 300 and 400 are stopped. Thereafter, the domains 200, 300, and 400 are activated and the operation is started (lower part of FIG. 15).
  • the clock device A1 In the initial state, the clock device A1 is the reference clock. Therefore, the time of the clock device A1 is transferred to the subsystem 100, and the time of the system clock 110 in the subsystem 100 is adjusted.
  • the domains 200, 300, and 400 When the domains 200, 300, and 400 are activated and the operation is started, the domains 200, 300, and 400 perform time synchronization with the NTP server 500 by NTP.
  • the reference clock is changed from the clock device A1 to the NTP server 500. Therefore, the subsystem 100 performs time synchronization with any one of the domains 200, 300, and 400 adjacent to the NTP server 500 side. Further, the subsystem 100 periodically updates the time of the clock device A1 with the time indicated by the system clock 110.
  • FIG. 16 is a diagram showing time adjustment in time series in the third example of the operation status of the multi-domain system.
  • the time of the clock device A1 is set to the system clock 110. Thereafter, the time of the clock device A1 is periodically read by the synchronization unit 130 of the subsystem 100, and the time of the system clock 110 is updated.
  • the domain 200 When the domain 200 is activated, a time obtained by adding the difference time of the domain 200 to the time indicated by the system clock 110 of the subsystem 100 is set in the system clock 210 of the domain 200.
  • the domain 200 synchronizes the system clock 210 with the NTP server 500 by NTP.
  • the subsystem 100 synchronizes the system clock 110 with the system clock 210 of the domain 200 by NTP. After the time synchronization with the domain 200, the subsystem 100 periodically updates the time of the clock device A1 with the time indicated by the system clock 110.
  • the difference time between the time indicated by the system clock 210 of the domain 200 and the time indicated by the system clock 110 of the subsystem 100 is periodically calculated and stored in the difference storage unit 150.
  • the difference time is periodically stored until the domain 200 is stopped (shut down).
  • the time system of the entire multi-domain system A is guaranteed by the NTP server 500 connected to the domain.
  • the time of the system clock 110 of the subsystem 100 can be adjusted using a clock that indicates a more accurate time in the operation status at each time point.
  • the system clock 110 of the subsystem 100 can be accurately maintained.
  • the difference between the system clocks 210, 310, and 410 of the domains 200, 300, and 400 and the system clock 110 of the subsystem 100 is periodically calculated and held in the subsystem 100.
  • the time at the time of restarting can be started with the time reflecting the difference time when operating last time as an initial value.
  • the time of the system clock 110 of the subsystem 100 is synchronized with a clock (for example, an NTP server) that is more accurate than the clock device A1
  • the time of the clock device A1 is set using the time of the system clock 110.
  • the time indicated by the clock device A1 can be kept more accurate.
  • the subsystem 100 when the subsystem 100 is restarted, it can be restarted using an accurate time.
  • the user can set an arbitrary time for the system clocks 210, 310, 410 in the domains 200, 300, 400. For example, when one domain is used for a software operation test, a time different from the current time is set as the system clock. Even in such a case, since the subsystem 100 holds the difference time, the time when the difference maintained by the user in the past is maintained as the initial value of the domain subsystem even when the domain is restarted. Is set. When the domain time is intentionally shifted in this way, time synchronization with the domain NTP server is not performed.
  • FIG. 17 is a diagram illustrating a hardware configuration example of the multi-domain system according to the third embodiment.
  • elements having the same functions as those of the second embodiment are denoted by the same reference numerals, and description thereof is omitted.
  • Each domain 200a, 300a, 400a built in the multi-domain system A-1 of the third embodiment has clock devices 207, 307, 407, respectively.
  • the clock devices 207, 307, and 407 are connected to buses 206, 306, and 406, respectively.
  • the subsystem 100 can refer to and update the time of the clock devices 207, 307, and 407 of the domains 200a, 300a, and 400a. be able to. This makes it possible to set or display different times for each of the domains 200a, 300a, and 400a. For example, in Linux (registered trademark), different times can be set or displayed for each of the domains 200a, 300a, and 400a by the following commands.
  • the following command is executed.
  • # showtod By executing this command, for example, the following information is displayed on the screen of the terminal device 21.
  • Domain # 2 Thu Feb 18 11:32:38 JST 2010
  • # settod domain # 0 Thu Feb 18 18:33:00 JST 2010 The updated time is reflected in the OS after the domains 200a, 300a, and 400a are restarted.
  • clock devices 207, 307, and 407 of the domains 200a, 300a, and 400a can be made to coincide with the time of the subsystem by the following command.
  • # settod domain # 0 subsystem The updated time is reflected in the OS after the domains 200a, 300a, and 400a are restarted.
  • clock devices 207, 307, and 407 of all the domains 200a, 300a, and 400a can be made to coincide with the time of the subsystem by the following command.
  • # settod subsystem The updated time is reflected in the OS after the domains 200a, 300a, and 400a are restarted.
  • the processing functions shown in the above embodiments can be realized by a computer.
  • a program describing the processing contents of the functions of the subsystem or domain is provided.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium include a magnetic storage device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
  • the magnetic storage device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape.
  • Optical discs include DVD, DVD-RAM, CD-ROM / RW, and the like.
  • Magneto-optical recording media include MO (Magneto-Optical disc).
  • a portable recording medium such as a DVD or CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
  • the computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.
  • processing functions described above can be realized by an electronic circuit such as a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device).
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuit
  • PLD Programmable Logic Device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electric Clocks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

 より正確な時刻情報を用いて情報処理装置の時刻合わせを行うことができるようにする。 決定手段(1b)は、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報を取得可能な装置を決定する。そして、時刻合わせ手段(1c)は、決定された装置から時刻情報(5)を取得し、時刻情報(5)で示された時刻に、計時手段(1a)の時刻を合わせる。

Description

情報処理装置、時刻設定方法、および時刻設定プログラム
 本発明は計時手段に時刻を設定する情報処理装置、時刻設定方法、および時刻設定プログラムに関する。
 コンピュータでは処理の実行に関し、時刻情報を用いる場合がある。そのため、コンピュータは、内部に時刻を計測する計時手段を有している。そしてコンピュータは、所定のタイミングで、内部の計時手段の時刻合わせを行う。時刻合わせでは、コンピュータがアクセス可能な時計の時刻に、コンピュータで動作しているソフトウェア上の計時手段の時刻を合わせる。例えば、ネットワーク経由で接続されたネットワーク・タイム・プロトコル(NTP:Network Time Protocol)サーバを利用して、NTPによる時刻合わせが行われる。
 また時刻の正確性を向上させるためのさまざまな技術が考えられている。例えば、ローカル端末とサーバとの間でやり取りされるデータに付記される時刻情報を元に、サーバとローカル端末の間での相対的な時間のずれを検出し、そのずれを補正する形でローカル端末の時刻の同期調整を行う技術がある。
特開2008-262292号公報
 しかし、コンピュータシステムが複雑化すると、時刻情報を提供する装置のうち、どの装置がより正確な時刻を示しているのかの判断が難しくなる。しかも、運用状況に応じて、時刻情報を提供するも変化する。そのため、時刻を合わせる際に、時刻合わせの基準となる時刻情報をどの装置から取得するのかについて適切に判断するのが難しかった。
 1つの側面では、本発明は、より正確な時刻情報を用いて時刻合わせを行うことができる情報処理装置、時刻設定方法、および時刻設定プログラムを提供することを目的とする。
 1つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が提供される。情報処理装置は、計時手段、決定手段、および時刻合わせ手段を有する。決定手段は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。時刻合わせ手段は、決定された装置から時刻情報を取得し、取得した時刻情報が示す時刻に、計時手段の時刻を合わせる。
 1つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、以下の処理を行う時刻設定方法が提供される。
 まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。そして情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
 1つの案では、要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に以下の処理を実行させる時刻設定プログラムが提供される。
 時刻設定プログラムに基づいて、まず情報処理装置は、管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する。次に情報処理装置は、決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、情報処理装置内の計時手段の時刻を合わせる。
 より正確な時刻情報を用いた時刻合わせが可能となる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係る装置の機能構成例を示す図である。 第2の実施の形態のシステム構成の一例を示す図である。 第2の実施の形態に係るマルチドメインシステムのハードウェア構成を示す図である。 第2の実施の形態に係るマルチドメインシステムの機能を示すブロック図である。 差分記憶部のデータ構造の一例を示す図である。 サブシステムにおける時刻同期処理の手順を示すフローチャートの前半である。 サブシステムにおける時刻同期処理の手順を示すフローチャートの後半である。 差分時間更新処理の手順を示すシーケンス図である。 差分時間の概念を示す図である。 システムの運用構成に応じた各装置の適切な基準時計の例を示す図である。 マルチドメインシステムの運用状況の第1の例を示す図である。 マルチドメインシステムの運用状況の第1の例における時刻合わせを時系列に示す図である。 マルチドメインシステムの運用状況の第2の例を示す図である。 マルチドメインシステムの運用状況の第2の例における時刻合わせを時系列に示す図である。 マルチドメインシステムの運用状況の第3の例を示す図である。 マルチドメインシステムの運用状況の第3の例における時刻合わせを時系列に示す図である。 第3の実施の形態に係るマルチドメインシステムのハードウェア構成例を示す図である。
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置1は、例えば要求に応じてデータ処理を行う管理対象装置4を管理する。情報処理装置1は、計時手段1a、決定手段1b、時刻合わせ手段1c、計算手段1d、記憶手段1e、および起動手段1fを有する。
 計時手段1aは、時刻を計測する。計時手段1aは、例えば情報処理装置1がOS(Operating System)等のソフトウェアを実行することで実現されている。
 決定手段1bは、管理対象装置4を、時刻情報を提供する装置の1つとして認識する。そして決定手段1bは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報5を取得可能な装置を決定する。例えば決定手段1bは、情報処理装置1の起動時には、電池でバックアップされた時計デバイス2を、最も正確な時刻を示している装置に決定する。また決定手段1bは、情報処理装置1の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得可能であれば、サーバ3を最も正確な時刻を示している装置に決定してもよい。
 また、情報処理装置1の稼働中において、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得できない場合もある。この場合、決定手段1bは、サーバ3と時刻合わせが行われた装置から時刻情報を取得可能であれば、その装置を最も正確な時刻を示している装置に決定してもよい。例えば、管理対象装置4が、サーバ3から定期的に時刻情報を取得して、内部の計時手段の時刻合わせを行っている場合、決定手段1bは、管理対象装置4を、最も正確な時刻を示している装置に決定することができる。なお管理対象装置4は、例えばユーザが使用する端末装置からの要求に応じてデータ処理を行う。
 さらに情報処理装置1の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバ3から時刻情報を取得できず、サーバ3と時刻合わせが行われた装置からも時刻情報を取得できない場合をあり得る。この場合、例えば決定手段1bは、電池でバックアップされた時計デバイス2を、最も正確な時刻を示している装置に決定することができる。
 時刻合わせ手段1cは、決定された装置から時刻情報5を取得し、時刻情報5で示された時刻に、計時手段1aの時刻を合わせる。また時刻合わせ手段1cは、情報処理装置1の稼働中は、電池でバックアップされた時計デバイス2以外の装置から取得した時刻情報が示す時刻に計時手段1aの時刻を設定した場合、計時手段1aが示す時刻に、時計デバイス2の時刻を合わせる。
 計算手段1dは、管理対象装置4の内部の計時手段から時刻を示す時刻情報5を取得し、取得した時刻情報5に示された時刻と、計時手段1aが示す時刻との差分時間7を計算する。例えば計算手段1dは、定期的に管理対象装置4の内部の計時手段が示す時刻を取得する。例えば計算手段1dは、計算した時刻を、管理対象装置4に対応付けて、記憶手段1eに格納する。
 記憶手段1eは、計算手段1dが計算した差分時間7を記憶する。
 起動手段1fは、管理対象装置4の動作を停止させた後に起動する場合、計時手段1aが示す時刻に、管理対象装置4の差分時間を加算して得られる時刻を、管理対象装置4の内部の計時手段の時刻の初期値に指定して、管理対象装置4を起動する。例えば起動手段1fは、管理対象装置4の差分時間を、記憶手段1eから取得する。
 このような情報処理装置1によれば、決定手段1bは、現在の運用状況において時刻情報を取得可能な装置のうち、最も正確な時刻情報を取得可能な装置を決定する。例えば、サーバ3が提供している時刻情報の時刻が最も正確であり、次に、時計デバイス2の時刻が正確であるものとする。このとき決定手段1bは、情報処理装置1がサーバ3から時刻情報5を取得可能であれば、サーバ3を最も正確な時刻情報を取得可能な装置と決定する。
 なお、情報処理装置1がサーバ3から時刻情報5を取得できない場合であっても、例えば管理対象装置4が、サーバ3から時刻情報5を取得し、内部の計時手段の時刻合わせを行っていることがある。この場合、決定手段1bは、例えば、時計デバイス2の時刻よりも管理対象装置4の内部の計時手段の時刻の方が正確であると判断し、管理対象装置4を、最も正確な時刻情報を取得可能な装置に決定する。
 また、情報処理装置1と管理対象装置4とのいずれも、サーバ3から時刻情報5を取得できない場合もある。この場合、決定手段1bは、例えば、時計デバイス2を、最も正確な時刻情報を取得可能な装置に決定する。
 決定手段1bによって最も正確な時刻情報を取得可能な装置が決定されると、時刻合わせ手段1cにより、決定された装置から時刻情報5が取得される。そして、時刻合わせ手段1cにより、取得した時刻情報5で示される時刻に、計時手段1aの時刻が合わせられる。
 また、情報処理装置1が管理する管理対象装置4がある場合、計算手段1dにより、管理対象装置4の内部の計時手段が示す時刻と、計時手段1aが示す時刻との差を示す差分時間7が算出される。差分時間7の計算は、例えば定期的に実行される。計算された差分時間7は、記憶手段1eに格納される。その後、管理対象装置4が停止し、管理対象装置4を再起動する場合、起動手段1fにより、起動要求8が管理対象装置4に送信される。例えば起動手段1fは、管理対象装置4の起動を指示するユーザからの操作入力に応答して、起動要求8を送信する。送信される起動要求8には、計時手段1aが示す時刻に、管理対象装置4の差分時間を加算して得られる時刻が含まれる。すると、起動要求8を受信した管理対象装置4は、起動要求8に示される時刻を内部の計時手段の初期値に設定し、起動する。
 このようにして、管理対象装置4が動作していたときの差分時間を情報処理装置1で保持しておき、管理対象装置4を再起動する際には、計時手段1aが示す時刻に差分時間を加算した時刻を管理対象装置4の内部の計時手段の時刻の初期値とすることができる。その結果、管理対象装置4を再起動しても、停止前の時刻より前の時刻が内部の計時手段の時刻の初期値に設定されるような事態の発生を抑止できる。内部の計時手段の時刻が、停止前よりも前の時刻になると、時刻情報を用いた処理が正常に実行できなくなる可能性がある。そのため、再起動により時刻が遡ることを抑止することで、管理対象装置4の信頼性を向上させることができる。
 また、差分時間7で修正した時刻を初期値として管理対象装置4を起動することによって、管理対象装置4が停止していた時間と異なる時間分、管理対象装置4の内部の計時手段の時刻が進んでしまうことを抑止できる。実際に停止していた時間と異なる時間分、管理対象装置4の内部の計時手段の時刻が進んでしまうと、管理対象装置4内のログデータの解析を行う際に正しい解析が行えなくなる。このように、管理対象装置4の停止していた時間分だけ管理対象装置4の内部時計を進ませて管理対象装置4を起動することで、管理対象装置4で記録しているログデータの矛盾などの発生を抑止し、管理対象装置4の動作状況の解析の信頼性を高めることができる。
 〔第2の実施の形態〕
 第2の実施の形態は、マルチドメインシステムを運用する際に適切な時計を用いて、マルチドメインシステム内の各装置の時刻合わせをするものである。なお、第2の実施の形態では、情報処理装置をコンピュータと呼ぶこととする。
 マルチドメインシステムは、サブシステムと複数のドメインとを有するコンピュータシステムである。サブシステムは、複数のドメインを管理するコンピュータである。例えばサブシステムは、図1に示した情報処理装置1の一例である。複数のドメインは、それぞれが個別に動作可能なコンピュータである。例えば複数のドメインは、それぞれ図1に示した管理対象装置4の一例である。
 図2は、第2の実施の形態のシステム構成の一例を示す図である。例えばマルチドメインシステムAは、ネットワーク11を介して端末装置21,22やNTPサーバ501に接続されている。ネットワーク11は、例えば、ローカルエリアネットワーク(LAN:Local Area Network)である。またマルチドメインシステムAは、ネットワーク12を介して端末装置31,32やNTPサーバ500に接続されている。ネットワーク12は、例えばインターネットのような広域ネットワークである。
 マルチドメインシステムAは、ドメインと呼ばれる複数のコンピュータを内蔵している。各ドメインは、端末装置31,32からの要求に応じて、各種データ処理を実行する。マルチドメインシステムAは、サブシステムと呼ばれるコンピュータを内蔵している。サブシステムは、端末装置21,22からの指示に従ってマルチドメインシステムA全体を管理する。
 NTPサーバ500,501は、正確な時計を有しており、NTPによって他の機器に時刻情報を送信する。例えばNTPサーバ500,501は、GPS(Global Positioning System)、原子時計などの正確な時刻源から、直接または間接的に時刻情報を取得し、内部の時計の時刻合わせを行うことができる。マルチドメインシステムAは、NTPサーバ500,501と通信し、内部時計の時刻合わせを行うことができる。なお、図2ではネットワーク11にNTPサーバ501が接続され、ネットワーク12にNTPサーバ500が接続されているが、いずれのネットワーク11,12にもNTPサーバ500,501が接続されていない場合もある。また、ネットワーク11,12の一方にのみNTPサーバが接続されている場合もある。さらに、NTPサーバ500,501とマルチドメインシステムAとの間で正常に通信できない場合もある。なおNTPサーバ500は、図1に示したサーバ3の一例である。
 第2の実施の形態では、マルチドメインシステムAは、ドメインごとに異なるサービスを提供しており、各ドメインで異なる時刻を保持する場合もある。そこで第2の実施の形態では、各ドメインの時刻を意図的に異ならせる場合も想定して、適切な時刻設定を行う。
 なお、第2の実施の形態では、サブシステムまたは複数のドメインそれぞれが実行するNTPを用いた時刻合わせは、時間をかけて行われる。例えば、時刻が10秒進んでいた場合、その後の時間の進行を少しだけ遅らせる。すなわち、時間τ秒(τは正の実数)の間に、時計を「τ-10」秒だけ進ませるように調整する。このように、時間をかけて時刻の修正を行うことで、突然時刻が変更されることによるシステムの不具合の発生を抑止することができる。
 図3は、第2の実施の形態に係るマルチドメインシステムのハードウェア構成を示す図である。マルチドメインシステムAは、サブシステム100と複数のドメイン200,300,400を有している。またマルチドメインシステムAは、時計デバイスA1を有している。時計デバイスA1は、電池A2によってバックアップされ、水晶発振器などを用いたハードウェアで正確な時刻を刻む時計である。時計デバイスA1は、TOD(Time Of Day)とも呼ばれる。時計デバイスA1は、サブシステム100に接続されている。
 サブシステム100と複数のドメイン200,300,400とは、内部バスA3で接続されている。サブシステム100は、ネットワーク11に接続されている。複数のドメイン200,300,400は、ネットワーク12に接続されている。
 サブシステム100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してメモリ102と複数の周辺機器が接続されている。
 メモリ102は、サブシステム100の主記憶装置として使用される。メモリ102には、CPU101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、CPU101による処理に必要な各種データが格納される。
 バス107に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)103、バスインタフェース(IF:InterFace)104、通信IF105、入出力IF106がある。
 HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、サブシステム100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
 バスIF104は、内部バスA3に接続されており、内部バスA3を介してドメイン200,300,400と通信する。
 通信IF105は、ネットワーク11に接続されており、ネットワーク11を介して他の機器と通信する。例えば、ネットワーク11を介して接続されたネットワーク上にNTPサーバが接続されている場合、通信IF105によりNTPサーバと通信することができる。
 入出力IF106は、入出力ポート108,109を介して、サブシステム100外の機器と接続される。入出力IF106は、入出力ポート108,109に接続された機器からのデータの入力を受け付けると共に、入出力ポート108,109に接続された機器に対してデータを出力する。図3の例では、入出力ポート108を介して時計デバイスA1が接続されている。また入出力ポート109を介して、可搬型の補助記憶装置13が接続されている。
 補助記憶装置13は、例えばフラッシュメモリなどの不揮発性の半導体メモリデバイスである。補助記憶装置13には、例えばサブシステム100やドメイン200,300,400で実行させる処理を記述したプログラムを格納しておくことができる。その場合、CPU101は、補助記憶装置13内のプログラムを、入出力IF106を介して読み出し、HDD103にインストールすることができる。またCPU101は、補助記憶装置13内のプログラムを、入出力IF106を介して読み出し、バスIF104を介してドメイン200,300,400に転送することもできる。プログラムを受信したドメイン200,300,400では、それぞれのCPU201,301,401がプログラムをHDD203,303,403にインストールすることができる。
 なお、サブシステム100は、光学ドライブ装置を有していてもよい。光学ドライブは、レーザ光などを利用して、光ディスクに記録されたデータの読み取りを行う。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
 ドメイン200は、CPU201によって装置全体が制御されている。CPU201には、バス206を介してメモリ202と複数の周辺機器が接続されている。バス206に接続されている周辺機器としては、HDD203、バスIF204、通信IF205がある。
 ドメイン300は、CPU301によって装置全体が制御されている。CPU301には、バス306を介してメモリ302と複数の周辺機器が接続されている。バス306に接続されている周辺機器としては、HDD303、バスIF304、通信IF305がある。
 ドメイン400は、CPU401によって装置全体が制御されている。CPU401には、バス406を介してメモリ402と複数の周辺機器が接続されている。バス406に接続されている周辺機器としては、HDD403、バスIF404、通信IF405がある。
 メモリ202,302,402、HDD203,303,403、バスIF204,304,404、および通信IF205,305,405は、サブシステム100の同名の要素と同じ機能を有している。
 以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
 このようなマルチドメインシステムAでは、サブシステム100と複数のドメイン200,300,400それぞれとが、個別に時刻を管理している。すなわちサブシステム100と複数のドメイン200,300,400とは、それぞれソフトウェアによるシステムクロックを有している。そしてサブシステム100と複数のドメイン200,300,400とは、システムクロックを適宜、他の時計に合わせることで、時刻のずれを抑制している。
 サブシステム100と複数のドメイン200,300,400との時刻合わせには、例えばマルチドメインシステムAに内蔵された時計デバイスA1や、ネットワーク経由で接続されたNTPサーバ500,501が利用される。また各ドメイン200,300,400の起動時には、サブシステム100から起動時の時刻の初期値が通知される。
 このようなマルチドメインシステムAでは、サブシステム100の時間精度は、時計デバイスA1に比べ低い。しかも、時刻精度の高い時計デバイスA1は、電池A2でバックアップされているため、サブシステム100が停止中であっても時刻を刻んでいる。そのため、サブシステム100の起動時には、時計デバイスA1の時刻がサブシステム100で読み出され、サブシステム100のシステムクロックの初期値に設定される。しかし、サブシステム100のシステムクロックの精度が時計デバイスA1に比べて低いことから、サブシステム100が長時間動作する間にシステムクロックの誤差は徐々に大きくなってしまう。そこで、第2の実施の形態では、サブシステム100のシステムクロックの誤差を、正確な時計を用いて適宜修正可能とする。
 また、いずれかのドメインを用いてソフトウェアの動作検証を行う場合などは、意図的にドメインのシステムクロックの時刻を、サブシステム100のシステムクロックの時刻と異なる時刻に設定する場合もある。そこで、サブシステム100では、各ドメイン200,300,400のシステムクロックの時刻と、サブシステム100のシステムクロックの時刻との差分時間を保持しておく。このときドメインのシステムクロックの時刻を、ユーザ操作で意図的に変更した場合の変動分を差分時間としたのでは、差分時間の正確性に欠ける。しかも、各ドメイン200,300,400のシステムクロックの精度は、時計デバイスA1に比べて低い。そのため、マルチドメインシステムAを運用している間に、サブシステム100のシステムクロックの時刻と、各ドメイン200,300,400のシステムクロックの時刻との差分は変動する。
 そこで、第2の実施の形態では、適宜、サブシステム100においてドメイン200,300,400のシステムクロックの時刻を示す時刻情報を取得し、差分情報を更新することで、差分情報の正確性を担保する。例えば差分情報を正確に保つことで、各ドメイン200,300,400を再起動しても、停止前の時刻に、停止時間が加算された時刻を各ドメイン200,300,400起動時のシステムクロックの初期値とすることができる。その結果、停止前の差分を保ったままドメイン200,300,400を再起動し、再起動を行ったことによる時刻情報の不整合を抑止することができる。
 なお、サブシステム100と各ドメイン200,300,400とのそれぞれを、NTPサーバ500,501と時刻同期させれば、各装置のシステムクロックを正確に保つことが可能である。しかし、実際の運用では、NTPサーバ500,501への接続に制約がある場合がある。例えばドメイン200,300,400については、ユーザへのサービス提供のために、不特定多数のユーザが接続可能な広域ネットワークに接続するが、サブシステム100は、マルチドメインシステムAの管理者のみがアクセスできるようにしたい場合がある。しかも管理者が使用する端末装置21,22とサブシステム100とを接続するネットワーク11に、NTPサーバ501が設置されていない場合がある。この場合、ドメイン200,300,400はNTPサーバ500と時刻同期してシステムクロックを正確に保つことが可能な一方で、サブシステム100はいずれのNTPサーバにも接続できない。すると、サブシステム100のシステムクロックよりも、ドメイン200,300,400のシステムクロックの方が正確となる。そこで、第2の実施の形態では、ドメイン200,300,400がNTPサーバ500と時刻同期している場合、ドメイン200,300,400のシステムクロックを用いて、サブシステム100のシステムクロックの時刻合わせを行う。これにより、サブシステム100のシステムクロックの時刻の正確性を向上させることができる。
 以下、このような運用状況に応じた時刻合わせを行うための機能、および処理について、詳細に説明する。
 図4は、第2の実施の形態に係るマルチドメインシステムの機能を示すブロック図である。サブシステム100は、システムクロック110、基準時計判別部120、同期部130、ドメイン起動部140、差分記憶部150、および差分計算部160を有している。
 システムクロック110は、サブシステム100のCPU101がソフトウェアによって実現している時計である。サブシステム100は、所定のイベントにタイムスタンプを付す処理やドメイン200,300,400を起動する処理のような時刻を参照する処理があると、システムクロック110の時刻を参照する。
 基準時計判別部120は、ネットワークを経由してアクセス可能な時計を含め、どの時計の時刻を基準とするのかを判別する。第2の実施の形態では、基準とする時刻の参照元として利用可能な時計として、時計デバイスA1、NTPサーバ501、およびドメイン200,300,400それぞれが有するシステムクロック210,310,410がある。基準時計判別部120は、より正確な時計を適宜判断し、その時計を基準時計とする。そして、基準時計判別部120は、基準時計に示される時刻を、時刻合わせの基準とすることを決定する。
 同期部130は、システムクロック110の時刻を基準時計に示される時刻に同期させる。ここで時刻の同期とは、同期先の時計の時刻に、同期対象の時計の時刻を合わせる処理である。例えば同期部130は、NTPサーバ501の時刻に、システムクロック110の時刻を同期させる場合、NTPサーバ501に示される時刻と同じ時刻が、システムクロック110に設定される。
 ドメイン起動部140は、ドメイン200,300,400の起動制御を行う。ドメイン起動部140は、いずれかのドメインを起動する際には、時刻情報を付加した起動命令を起動対象のドメインに送信する。起動命令に付加される時刻情報は、システムクロック110が示す時刻を、起動対象のドメインに対応する差分時間で修正した時刻である。なおドメインごとの差分時間は、差分記憶部150から取得できる。
 差分記憶部150は、ドメイン200,300,400それぞれの時刻の差分時間を記憶する。例えばメモリ102やHDD103の記憶領域の一部が、差分記憶部150として使用される。
 差分計算部160は、ドメイン200,300,400から、それぞれのシステムクロック210,310,410が示す時刻を取得する。そして差分計算部160は、ドメイン200,300,400それぞれのシステムクロック210,310,410が示す時刻と、サブシステム100内のシステムクロック110が示す時刻との差分時間を計算する。差分計算部160は、計算した差分時間を差分記憶部150に格納する。
 ドメイン200は、システムクロック210、同期部220、および時刻報告部230を有する。
 システムクロック210は、ドメイン200のCPU201がソフトウェアによって実現している時計である。ドメイン200は、所定のイベントにタイムスタンプを付す処理のような時刻を参照する処理があると、システムクロック210の時刻を参照する。
 同期部220は、システムクロック210の時刻を基準時刻に同期させる。例えば同期部220は、NTPによる時刻同期が可能な装置のリストを有する。時刻同期が可能な装置のリストには、例えばNTPサーバ500が最上位に登録され、その次にサブシステム100が登録される。同期部220は、時刻同期が可能な装置のリストの上位から順に、その装置と通信可能か否かを判断し、通信可能な最も上位の装置との間でNTPによる時刻同期を行う。
 時刻報告部230は、サブシステム100に対して、ドメイン200内のシステムクロック210が示す時刻を報告する。
 ドメイン300は、システムクロック310、同期部320、および時刻報告部330を有する。ドメイン400は、システムクロック410、同期部420、および時刻報告部430を有する。ドメイン300,400それぞれの各要素は、ドメイン200の同名の要素と同じ機能を有している。
 なお各ドメイン200,300,400にはドメイン名が設定されている。図4の例では、ドメイン200のドメイン名は「ドメイン#0」、ドメイン300のドメイン名は「ドメイン#1」、ドメイン400のドメイン名は「ドメイン#2」である。
 次に差分記憶部150のデータ構造例について説明する。
 図5は、差分記憶部のデータ構造の一例を示す図である。差分記憶部150には、差分管理テーブル151が格納されている。差分管理テーブル151には、ドメイン名と差分時間との欄が設けられている。
 ドメイン名の欄には、マルチドメインシステムA内の各ドメイン200,300,400の名称が設定されている。差分時間の欄には、対応するドメインの差分時間が設定されている。図5の例ではドメイン名「ドメイン#0」のドメイン200の差分時間は、「+0.152秒」である。ドメイン名「ドメイン#1」のドメイン300の差分時間は、「0秒」である。ドメイン名「ドメイン#2」のドメイン400の差分時間は「-12.38秒」である。
 図3~図5に示した構成のシステムによって、サブシステム100とドメイン200,300,400とが、適宜、その時点で適切な時計を基準時計として、基準時計に自己のシステムクロックを合わせる。第2の実施の形態では、NTPサーバ500,501の時計が最も精度が高く、次にマルチドメインシステムA内の時計デバイスA1の精度が高いものとする。また、サブシステム100内のシステムクロック110の精度は、NTPサーバ500,501や時計デバイスA1に比べて低い。同様に、ドメイン200,300,400内のシステムクロック210,310,410の精度も、NTPサーバ500,501や時計デバイスA1に比べて低い。このようにシステムクロックの精度がNTPサーバ500,501や時計デバイスA1より低いのは、以下の理由による。
 時計デバイスA1は、ハードウェアクロックであり、水晶発振器などを用いて高い精度を得ることができる。他方、システムクロック110は、CPU101がソフトウェアで実現した時計であり、CPU101の負荷状況の変化などの不安定要因がある。そのため、時計デバイスA1よりも精度が低い。またNTPサーバ500は、全地球測位システム(GPS:Global Positioning System)、標準電波、原子時計などの正確な時刻源に直接または間接的に接続されており、非常に正確な時刻を用いて適宜時刻合わせが行われている。その結果、相対的に、システムクロックの時刻の精度が最も低くなる。
 ところで、マルチドメインシステムAから、NTPサーバ500,501に接続するか否かは、管理者の任意である。例えば、マルチドメインシステムAを、NTPサーバ500またはNTPサーバ501から切り離して運用することも可能である。
 サブシステム100は、このような運用されているシステムの構成に応じて、適切な基準時計を判断する。
 図6は、サブシステムにおける時刻同期処理の手順を示すフローチャートの前半である。以下、図6に示す処理をステップ番号に沿って説明する。
 [ステップS11]サブシステム100が起動する。例えばネットワーク11を介して起動要求が入力されると、サブシステム100が起動する。
 [ステップS12]同期部130は、システムクロック110の時刻を初期化する。例えば、同期部130は、時計デバイスA1の時刻を読み出し、読み出した時刻をシステムクロック110の初期値として設定する。
 [ステップS13]基準時計判別部120は、同期対象のNTPサーバが未設定か否かを判断する。例えば、基準時計判別部120には、NTPを有効にするか無効にするかが予め登録されている。基準時計判別部120は、NTPを無効にする旨の設定がされている場合、同期対象のNTPサーバが未設定と判断する。また基準時計判別部120は、時刻同期が可能な装置のリストを有している。時刻同期が可能な装置のリストには、例えばNTPサーバなどの装置のアドレスが含まれる。また時刻同期が可能な装置のリスト内に装置がまったく登録されていない場合、基準時計判別部120は、同期対象のNTPサーバが未設定であると判断する。NTPが有効であり、時刻同期が可能な装置のリスト内に少なくとも1つの装置が登録されている場合、基準時計判別部120は、時刻同期が可能な装置のリストへの登録順が上位の装置から優先的に時刻同期相手に決定する。
 なお、マルチドメインシステムA内の各ドメイン200,300,400も、時刻同期が可能な装置のリストに登録することができる。例えば、マルチドメインシステムAの管理者は、時刻同期が可能な装置のリストにNTPサーバを上位に登録した後に、NTPサーバよりも下位にドメイン200,300,400を登録しておく。こうすることで、サブシステム100自身は外部のNTPサーバに時刻同期できない場合であっても、ドメイン200,300,400が外部のNTPサーバと時刻同期していれば、サブシステム100は、ドメイン200,300,400と時刻同期が可能となる。
 基準時計判別部120は、NTPサーバが未設定であれば、処理をステップS19に進める。また基準時計判別部120は、NTPサーバが設定されていれば、処理をステップS14に進める。
 [ステップS14]基準時計判別部120は、設定されたNTPサーバと同期可能か否かを判断する。例えば基準時計判別部120は、設定されたNTPサーバに対して、状態を問い合わせるコマンドを送信する。そのコマンドに対して、正常に動作していることを示す応答が返された場合、基準時計判別部120は、NTPサーバが同期可能であると判断する。
 基準時計判別部120は、NTPサーバが同期可能な場合、そのNTPサーバを基準時計に決定し、処理をステップS15に進める。また基準時計判別部120は、NTPサーバが同期できない場合、処理をステップS16に進める。
 [ステップS15]同期部130は、登録されているNTPサーバと時刻同期を行い、システムクロック110の時刻合わせを行う。同期部130は、その後、処理をステップS18に進める。
 [ステップS16]基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が可能か否かを判断する。例えば、基準時計判別部120は、ドメイン200,300,400が他のNTPサーバと正しく時刻同期ができたかどうかを、ドメイン200,300,400に問い合わせる。例えば基準時計判別部120は、ドメイン200,300,400に対して同期状態を確認するコマンドを送信することで、時刻同期ができたかどうかを確認することができる。例えば基準時計判別部120は、同期状態を確認するコマンドに対して、同期が正常に完了したことを示す情報を応答したドメインについて、NTPサーバとの同期が完了しているものと認識する。同期状態を確認するコマンドとしては、例えばLinux(登録商標)ではntpstatコマンドを利用することができる。
 基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインが少なくとも1つあれば、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が可能と判断する。基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が可能であれば、処理をステップS17に進める。また、基準時計判別部120は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期が不可能であれば、処理をステップS19に進める。
 [ステップS17]同期部130は、NTPサーバとの間で時刻同期が完了したドメインと時刻同期を行い、システムクロック110の時刻合わせを行う。
 [ステップS18]同期部130は、時計デバイスA1の時刻を更新する。例えば同期部130は、システムクロック110が示す時刻を、時計デバイスA1に書き込む。その後、同期部130は処理をステップS21(図7参照)に進める。
 [ステップS19]同期部130は、NTPサーバが未設定か、NTPサーバまたはドメインとの時刻同期に失敗した場合、時計デバイスA1を用いてシステムクロック110の時刻合わせを行う。例えば同期部130は、OSに予め用意されている時刻合わせの関数を実行し、時計デバイスA1の時刻にシステムクロック110の時刻を同期させる。時刻合わせの関数としては、例えばLinux(登録商標)ではadjtimex(2)関数がある。その後、同期部130は処理をステップS21(図7参照)に進める。
 図7は、サブシステムにおける時刻同期処理の手順を示すフローチャートの後半である。以下、図7に示す処理をステップ番号に沿って説明する。
 [ステップS21]ドメイン起動部140は、マルチドメインシステムA内のドメインのうち、ステップS22~ステップS25の処理を未処理のドメインを1つ選択する。例えばドメイン起動部140は、マルチドメインシステムA内のドメイン名のリストを有する。ドメイン名のリストには、処理済みか否かを示すフラグが設定されている。そしてドメイン起動部140は、ドメイン名のリストの中から、未処理のフラグが設定されているドメインを1つ選択する。
 [ステップS22]ドメイン起動部140は、選択したドメインについて起動するか否かを判断する。例えばドメイン起動部140には、予めサブシステム100の起動と同時に起動するドメイン名が予め登録されている。そしてドメイン起動部140は、サブシステム100起動後のステップS22の最初の処理では、予め登録されている識別子に対応するドメインについて起動するものと判断する。また、サブシステム100の稼働中に管理者よりドメインの起動指示が入力されると、ドメイン起動部140は、起動指示後の最初のステップS22の処理において、起動指示で指定されたドメインについて起動するものと判断する。
 ドメイン起動部140は、選択したドメインを起動すると判断した場合、処理をステップS23に進める。またドメイン起動部140は、選択したドメインを起動しないと判断した場合、処理をステップS24に進める。
 [ステップS23]ドメイン起動部140は、選択したドメインに対して、そのドメインの時刻の初期値を指定した起動要求を送信する。選択したドメインの時刻の初期値は、差分記憶部150に示される該当ドメインの差分時間を、サブシステム100のシステムクロック110の時刻に加算した値である。起動要求を取得したドメインは、指定された初期値を、そのドメインのシステムクロックの初期値に設定した上で起動する。
 [ステップS24]差分計算部160は、選択したドメインが稼働中か否かを判断する。例えば差分計算部160は、各ドメイン200,300,400に対して定期的に稼働中か否かの確認メッセージを送信し、応答があったドメインを稼働中と認識する。差分計算部160は、選択したドメインが稼働中であれば、処理をステップS25に進める。また差分計算部160は、選択したドメインが停止中であれば、処理をステップS26に進める。
 [ステップS25]差分計算部160は、選択したドメインの差分時間を更新する。例えば差分計算部160は、選択したドメインに対してポーリングを行う。すると選択したドメインの時刻報告部が、差分計算部160に対して、システムクロックの時刻を送信する。差分計算部160は、選択したドメインのシステムクロックの時刻と、サブシステム100のシステムクロック110の時刻との差分時間を計算する。例えば差分計算部160は、選択したドメインのシステムクロックの時刻から、サブシステム100のシステムクロック110の時刻を減算する。選択したドメインのシステムクロックの方が、サブシステム100のシステムクロック110より進んでいれば、差分時間は正の値となる。選択したドメインのシステムクロックの方が、サブシステム100のシステムクロック110より遅れていれば、差分時間は負の値となる。
 [ステップS26]ドメイン起動部140は、すべてのドメインに対してステップS22~ステップS25の処理を実行したか否かを判断する。例えばドメイン起動部140は、予め保持しているドメイン名のリスト内の直近に選択したドメイン名に対して、処理済みのフラグを設定する。その後、ドメイン起動部140は、ドメイン名のリスト内に、未処理のフラグが設定されているドメイン名がなければ、すべてのドメインについて処理を実行済みと判断する。ドメイン名のリスト内に、未処理のフラグが設定されているドメイン名が少なくとも1つでもあれば、ドメイン起動部140は、未処理のドメインがあると判断する。
 すべてのドメインについて処理が実行済みであれば、ドメイン起動部140は、すべてのドメインの処理状態を未処理に初期化する。例えばドメイン起動部140は、ドメイン名のリスト内のすべてのドメイン名に、未処理のフラグを設定する。その後、ドメイン起動部140は、処理をステップS13(図6参照)に進める。
 未処理のドメインがあれば、ドメイン起動部140は、処理をステップS21に進める。
 このように、サブシステム100は、NTPサーバの接続状況やドメインの稼働状況に応じて、適切な時計を基準時計に決定し、システムクロック110の時刻を基準時計に合わせる。
 次に、各ドメインの差分時間処理について詳細に説明する。
 図8は、差分時間更新処理の手順を示すシーケンス図である。以下、図8に示すシーケンス図をステップ番号に沿って説明する。なお図8には、ドメイン200の差分時間を更新する場合の例を示している。
 [ステップS31]サブシステム100の差分計算部160は、ドメイン200が稼働中か否かを判断する。例えば差分計算部160は、ドメイン200に対して動作しているか否かを問い合わせるコマンドを送信し、正しく応答があれば稼働中であると判断する。差分計算部160は、ドメイン200が稼働中であれば、処理をステップS32に進める。差分計算部160は、ドメイン200が稼働中でなければ、処理を終了する。
 [ステップS32]差分計算部160は、変数Ts1に、システムクロック110の時刻を設定する。ここで変数Ts1は、ドメイン200に対する時刻取得要求の開始時刻を示す変数である。
 [ステップS33]差分計算部160は、時刻取得要求をドメイン200に対して送信する。
 [ステップS34]ドメイン200の時刻報告部230は、サブシステム100から送られた時刻取得要求を受信する。このとき時刻報告部230は、変数Td1に、システムクロック210の時刻を設定する。ここで変数Td1は、ドメインにおける時刻取得要求の取得時刻を示す変数である。
 [ステップS35]時刻報告部230は、サブシステム100に対して時刻情報を応答する。このとき時刻報告部230は、変数Td2に、システムクロック210の時刻を設定する。ここで変数Td2は、ドメインにおける時刻取得要求の応答時刻を示す変数である。応答する時刻情報には、変数Td1と変数Td2とが含まれる。
 [ステップS36]サブシステム100の差分計算部160は、ドメイン200から送られた時刻情報を受信する。
 [ステップS37]差分計算部160は、変数Ts2に、システムクロック110の時刻を設定する。ここで変数Ts2は、ドメイン200からの時刻情報の受信時刻を示す変数である。
 [ステップS38]差分計算部160は、差分時間を計算する。例えば差分計算部160は、「差分時間=((Ts2+Ts1)-(Td2+Td1))/2」とする。
 [ステップS39]差分計算部160は、算出した差分時間を差分記憶部150に格納する。具体的には、差分計算部160は、差分計算部160内の差分管理テーブル151のおけるドメイン200のドメイン名「ドメイン#0」の差分時間を、ステップS38で算出した差分時間に変更する。
 このようにして、ドメインごとの差分時間を更新することができる。
 ところで、差分時間は、通信の遅延を考慮して計算される。
 図9は、差分時間の概念を示す図である。差分時間の算出の際には、ドメイン200とサブシステム100、受信と応答でそれぞれの時刻を記録する。その時刻を用いて、ドメイン200とサブシステム100間で生じる通信遅延時間を含めない差分時間を計算することができる。
 図9の例では、ドメイン200のイベントを契機として差分時間を計算している。この場合、ドメイン200の起動時に、ドメイン200の時刻報告部230からサブシステム100に対して、記録開始要求が出される。サブシステム100の差分計算部160は、記録開始要求を受け取ると、ドメイン200のドメイン名を差分管理テーブル151に追加する。この際、ドメイン200の差分時間には、初期値(例えば「0」)が設定される。
 その後、サブシステム100の差分計算部160により時刻取得要求が送信される。送信された時刻取得要求は、ドメイン200の時刻報告部230で受信される。このとき、時刻取得要求の送信時刻Ts1から時刻取得要求の受信時刻Td1までに、通信遅延に起因する時間差が存在する。
 時刻報告部230は、時刻取得要求を取得すると時刻情報を応答する。応答された時刻情報は、サブシステム100の差分計算部160で受信される。このとき、時刻情報が送信時刻Td2から時刻情報の受信時刻Ts2までに、通信遅延に起因する時間差が存在する。
 通信の片道分の通信遅延時間の平均(通信遅延時間)は、
通信遅延時間=((Ts2-Ts1)-(Td2-Td1))/2
となる。すると、ドメイン200のシステムクロック210とサブシステム100のシステムクロック110との差を示す差分時間は、通信遅延時間の分だけ減算することで、正確な差分時間となる。式で表すと以下のようになる。
差分時間=Ts2-通信遅延時間-Td2=((Ts2+Ts1)-(Td2+Td1))/2
 このように通信遅延時間を考慮して差分時間を求めることで、差分時間を正確に求めることができる。
 なお図8、図9では、ドメイン200の差分時間の更新例として説明したが、同様の差分時間の更新処理は、稼働しているすべてのドメインに対して独立に実行される。その結果、各ドメインの差分時間が求められ、差分記憶部150に格納される。
 また、差分時間を計算するタイミングは、ドメインのイベントを契機とする以外に、ドメインのシャットダウン、ドメインの時刻変更、サブシステム100の時刻変更、サブシステム100からのポーリングがある。サブシステム100からポーリングを行う場合は、ドメインの負荷を軽減させるため、ポーリングの周期を、例えば1000秒に1回程度とする。
 以下、運用状況に応じた、時刻合わせの例を具体的に説明する。
 図10は、システムの運用構成に応じた各装置の適切な基準時計の例を示す図である。各装置の関係は、上位、中位、下位で表される。中位の装置は、稼働中であれば、上位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。下位の装置は、稼働中であれば、上位または中位の装置の時刻を用いて、自己のシステムクロックの時刻合わせを行う。
 なお各装置の起動時は、時刻情報を取得可能な装置に制限がある。例えばサブシステム100とドメイン200,300,400は、起動時にはNTPサーバ500と通信することができない。ただし、ドメイン200,300,400は、起動時であっても、サブシステム100から時刻情報を取得することはできる。
 また、ドメイン200,300,400はサブシステム100からの起動命令によって起動する。そのため、ドメイン200,300,400の起動以前には、サブシステム100は稼働中となっている。
 図10の項番「1-1」~「1-4」には、マルチドメインシステムAに対して、NTPサーバ500を接続しない運用構成(第1の運用構成)の例が示されている。この場合、サブシステム100が上位、ドメイン200,300,400が下位となる。
 この運用構成では、サブシステム100の起動時(項番「1-1」)および稼働中(項番「1-2」)は、サブシステム100にとっての基準時計は時計デバイスA1となる。例えばサブシステム100の同期部130は、起動時に時計デバイスA1の時刻を読み出し、システムクロック110の初期値に設定する。またサブシステム100の同期部130は、稼働中に、定期的に同期コマンド(例えばLinux(登録商標)ではadjtimex(8)コマンド)を実行して、時計デバイスA1の時刻にシステムクロック110の時刻を同期させる。
 ドメイン200,300,400の起動時(項番「1-3」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。ただし、この場合、ドメイン200,300,400のシステムクロック210,310,410は、システムクロック110の時刻を差分時間で修正した時刻に合わせられる。例えばドメイン200を起動する場合、サブシステム100のドメイン起動部140は、サブシステム100のシステムクロック110にドメイン200に対応する差分時間を加算した時刻を示す時刻情報を付加した起動要求を、ドメイン200に対して送信する。するとドメイン200のCPU201は、起動要求に付加された時刻情報に示される時刻を、システムクロック210,310,410の初期値として、ドメイン200を起動する。
 ドメイン200,300,400の稼働中(項番「1-4」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。例えば、同期部220,320,420が定期的に、NTPによりシステムクロック210,310,410の時刻を、サブシステム100のシステムクロック110の時刻に同期させる。
 図10の項番「2-1」~「2-4」には、サブシステム100に対してNTPサーバ501を接続した運用構成(第2の運用構成)の例が示されている。この場合、NTPサーバ501が上位、サブシステム100が中位、ドメイン200,300,400が下位となる。
 この運用構成では、サブシステム100の起動時(項番「2-1」)は、サブシステム100にとっての基準時計は時計デバイスA1となる。サブシステム100が稼働中(項番「2-2」)は、サブシステム100にとっての基準時計はNTPサーバ501となる。例えば、サブシステム100の同期部130は定期的に、システムクロック110の時刻をNTPサーバ501の時刻に同期させる。
 ドメイン200,300,400の起動時(項番「2-3」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。ただし、この場合、ドメイン200,300,400のシステムクロック210,310,410は、システムクロック110の時刻を差分時間で修正した時刻に合わせられる。ドメイン200,300,400の稼働中(項番「2-4」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。
 図10の項番「3-1」~「3-4」には、ドメイン200,300,400に対してNTPサーバ500を接続した運用構成(第3の運用構成)の例が示されている。この場合、NTPサーバ500が上位、ドメイン200,300,400が中位、サブシステム100が下位となる。
 この運用構成では、サブシステム100の起動時(項番「3-1」)は、サブシステム100にとっての基準時計は時計デバイスA1となる。サブシステム100の稼働中(項番「3-2」)は、いずれのドメインも稼働していなければ、サブシステム100にとっての基準時計は時計デバイスA1となる。他方、サブシステム100の稼働中において、少なくとも1つのドメインが稼働していれば、サブシステム100にとっての基準時計は、稼働中のドメインのシステムクロックとなる。この場合、サブシステム100の同期部130が定期的に、NTPによりシステムクロック110の時刻を、稼働中のサブシステムのシステムクロックの時刻に同期させる。
 ドメイン200,300,400の起動時(項番「3-3」)は、ドメインの基準時計は、サブシステム100のシステムクロック110となる。ただし、この場合、ドメイン200,300,400のシステムクロック210,310,410は、システムクロック110の時刻を差分時間で修正した時刻に合わせられる。ドメイン200,300,400の稼働中(項番「3-4」)は、ドメインの基準時計は、NTPサーバ500となる。この場合、ドメイン200,300,400の同期部220,320,420が定期的に、NTPによりシステムクロック210,310,410の時刻を、NTPサーバ500の時刻に同期させる。
 次に、図10に示す運用構成が運用中に変化する場合の基準時計の変更例について説明する。
 図11は、マルチドメインシステムの運用状況の第1の例を示す図である。運用状況の第1の例は、サブシステム100にNTPサーバが接続されていない場合の例である。また図11の例では、サブシステム100は、ドメイン200,300,400のシステムクロック210,310,410との時刻同期も行わない。
 図11の初期状態(図11の上段)では、サブシステム100と複数のドメイン200,300,400とのいずれにもNTPサーバが接続されていない。その後、運用中(図11の下段)にドメイン200,300,400に対してNTPサーバ500が接続されている。
 初期状態では、マルチドメインシステムA内のいずれの装置もNTPサーバに接続されていない。そのため、時計デバイスA1の時刻が最も信頼できる。すなわち時計デバイスA1が基準時計となる。そこで、時計デバイスA1の時刻がサブシステム100に渡され、サブシステム100内のシステムクロック110の時刻合わせが行われる。
 また、ドメイン200,300,400は、NTPによりサブシステム100と時刻同期を行う。例えばサブシステム100のシステムクロック110が示す時刻がドメイン200,300,400に渡され、ドメイン200,300,400内のシステムクロック210,310,410の時刻が、システムクロック110が示す時刻に合わせられる。
 時計デバイスA1の時計精度は、システムクロック110に比べて高いため、NTPサーバがない環境でも、システム全体の時計精度を高く維持できる。
 運用中のドメイン200,300,400にNTPサーバ500が接続されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。例えばNTPサーバ500が示す時刻がドメイン200,300,400に渡され、ドメイン200,300,400内のシステムクロック210,310,410の時刻が、NTPサーバ500から提供される時刻情報の時刻に合わせられる。ドメイン200,300,400内のシステムクロック210,310,410は、NTPサーバ500の時刻に合わせられる。
 運用中のドメイン200,300,400にNTPサーバ500が接続された場合、サブシステム100のシステムクロック110が示す時刻より、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻の方が正確となる。サブシステム100のシステムクロック110が示す時刻と、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻とのずれを示す差分時間は、差分記憶部150に保持される。この差分時間を、ドメイン200,300,400起動時のシステムクロック210,310,410の初期値とすることにより、ドメイン200,300,400の停止期間があっても、停止直前の差分時間を維持して起動される。
 図12は、マルチドメインシステムの運用状況の第1の例における時刻合わせを時系列に示す図である。サブシステム100の起動時には、時計デバイスA1の時刻が、システムクロック110に設定される。その後、定期的にサブシステム100の同期部130によって時計デバイスA1の時刻が読み出され、システムクロック110の時刻が更新される。
 ドメイン200の起動時には、サブシステム100のシステムクロック110で示される時刻にドメイン200の差分時間を加算した時刻が、ドメイン200のシステムクロック210に設定される。その後、ドメイン200がNTPサーバ500に未接続の間は、ドメイン200は、システムクロック210を、サブシステム100のシステムクロック110にNTPによって時刻同期させ、システムクロック210の時刻を合わせる。
 ドメイン200がNTPサーバ500に接続されると、NTPサーバ500との時刻同期により、NTPサーバ500で示される時刻がシステムクロック210に設定される。サブシステム100では、ドメイン200のシステムクロック210が示す時刻と、サブシステム100のシステムクロック110が示す時刻との差分時間が定期的に計算され、差分記憶部150に格納される。差分時間の格納は、ドメイン200が停止(シャットダウン)されるまで、定期的に実行される。差分時間が定期的に更新されることで、ドメイン200の動作を停止させ、再起動を行った場合にも、差分時間で調整された正確な時刻によってドメイン200が起動される。
 図13は、マルチドメインシステムの運用状況の第2の例を示す図である。運用状況の第2の例は、サブシステムにNTPサーバが接続されている場合の例である。図13の例では、初期状態(図13の上段)では、サブシステム100にはNTPサーバ501が接続されており、複数のドメイン200,300,400にはNTPサーバが接続されていない。その後、運用中(図13の下段)にドメイン200,300,400に対してNTPサーバ500が接続されている。
 初期状態では、NTPサーバ501が基準時計となる。そこで、サブシステム100がNTPサーバ501と時刻同期を行い、サブシステム100のシステムクロック110の時刻が、NTPサーバ501が示す時刻に合わせられる。また、ドメイン200,300,400は、NTPによりサブシステム100と時刻同期を行う。
 運用中のドメイン200,300,400にNTPサーバ500が接続されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。
 なお、ドメイン200,300,400がサブシステム100とは異なるNTPサーバ500に接続されると、サブシステム100とドメイン200,300,400との間で時刻に差が生じる可能性がある。そこでサブシステム100のシステムクロック110が示す時刻と、各ドメイン200,300,400のシステムクロック210,310,410が示す時刻とのずれを示す差分時間が、差分記憶部150に保持される。この差分時間を、ドメイン200,300,400起動時のシステムクロック210,310,410の初期値とすることにより、ドメイン200,300,400の停止期間があっても、停止直前の差分時間を維持して起動される。
 図14は、マルチドメインシステムの運用状況の第2の例における時刻合わせを時系列に示す図である。サブシステム100の起動時には、時計デバイスA1の時刻が、システムクロック110に設定される。サブシステム100の起動完了後、NTPサーバ501との時刻同期により、NTPサーバ501の示す時刻がシステムクロック110に設定される。その後、時計デバイスA1の時刻は、システムクロック110で示される時刻に定期的に更新される。
 ドメイン200の起動時には、サブシステム100のシステムクロック110で示される時刻にドメイン200の差分時間を加算した時刻が、ドメイン200のシステムクロック210に設定される。その後、ドメイン200がNTPサーバ500に未接続の間は、ドメイン200は、システムクロック210を、サブシステム100のシステムクロック110にNTPによって時刻同期させ、システムクロック210の時刻を合わせる。
 ドメイン200がNTPサーバ500に接続されると、NTPサーバ500との時刻同期により、NTPサーバ500で示される時刻がシステムクロック210に設定される。サブシステム100では、ドメイン200のシステムクロック210が示す時刻と、サブシステム100のシステムクロック110が示す時刻との差分時間が定期的に計算され、差分記憶部150に格納される。差分時間の格納は、ドメイン200が停止(シャットダウン)されるまで、定期的に実行される。差分時間が定期的に更新されることで、ドメイン200の動作を停止させ、再起動を行った場合にも、差分時間で調整された正確な時刻によってドメイン200が起動される。
 図15は、マルチドメインシステムの運用状況の第3の例を示す図である。運用状況の第3の例は、ドメインにNTPサーバが接続されている場合の例である。図15の初期状態(図15の上段)では、サブシステム100にはNTPサーバが接続されておらず、複数のドメイン200,300,400にはNTPサーバ500が接続されているが、ドメイン200,300,400は停止中である。その後、ドメイン200,300,400が起動され、運用が開始されている(図15の下段)。
 初期状態では、時計デバイスA1が基準時計となる。そこで、時計デバイスA1の時刻がサブシステム100に渡され、サブシステム100内のシステムクロック110の時刻合わせが行われる。
 ドメイン200,300,400が起動され、運用が開始されると、ドメイン200,300,400は、NTPによりNTPサーバ500と時刻同期を行う。ドメイン200,300,400の運用が開始されると、基準時計が、時計デバイスA1からNTPサーバ500に変更される。そのためサブシステム100は、NTPサーバ500側に隣接するドメイン200,300,400のいずれか1つと時刻同期を行う。またサブシステム100は、定期的に、システムクロック110で示される時刻で時計デバイスA1の時刻を更新する。
 図16は、マルチドメインシステムの運用状況の第3の例における時刻合わせを時系列に示す図である。サブシステム100の起動時には、時計デバイスA1の時刻が、システムクロック110に設定される。その後、定期的にサブシステム100の同期部130によって時計デバイスA1の時刻が読み出され、システムクロック110の時刻が更新される。
 ドメイン200の起動時には、サブシステム100のシステムクロック110で示される時刻にドメイン200の差分時間を加算した時刻が、ドメイン200のシステムクロック210に設定される。ドメイン200の起動が完了し稼働状態となると、ドメイン200は、システムクロック210を、NTPサーバ500とNTPによって時刻同期させる。
 サブシステム100は、ドメイン200のNTPサーバ500との時刻同期が完了すると、NTPによりシステムクロック110をドメイン200のシステムクロック210に時刻同期させる。サブシステム100は、ドメイン200との時刻同期後は、システムクロック110に示される時刻により、時計デバイスA1の時刻を定期的に更新する。
 またサブシステム100では、ドメイン200のシステムクロック210が示す時刻と、サブシステム100のシステムクロック110が示す時刻との差分時間が定期的に計算され、差分記憶部150に格納される。差分時間の格納は、ドメイン200が停止(シャットダウン)されるまで、定期的に実行される。
 このようにして、ドメインに接続されたNTPサーバ500によって、マルチドメインシステムA全体の時刻制度が保障される。すなわち、マルチドメインシステムAの運用状況が変化しても、各時点の運用状況においてより正確な時刻を示す時計を用いて、サブシステム100のシステムクロック110の時刻合わせを行うことができる。その結果、サブシステム100のシステムクロック110を正確に保つことができる。
 しかもドメイン200,300,400のシステムクロック210,310,410とサブシステム100のシステムクロック110との差を定期的に計算し、サブシステム100内で保持している。これにより、ドメイン200,300,400の再起動時には、再起動時の時刻を、前回動作していたときの差分時間を反映させた時刻を初期値として起動することができる。これにより、ドメイン200,300,400の再起動に起因する時刻情報の不整合などの障害の発生を抑止することができる。
 さらに、サブシステム100のシステムクロック110を、時計デバイスA1よりも正確な時計(例えばNTPサーバ)に時刻同期させた場合、システムクロック110の時刻を用いて、時計デバイスA1の時刻を合わせている。これにより、時計デバイスA1で示される時刻を、より正確に保つことができる。その結果、サブシステム100を再起動した場合に、正確な時刻を用いて再起動することができる。
 なお、ドメイン200,300,400内のシステムクロック210,310,410に対しては、ユーザが任意の時刻を設定することができる。例えば、1つのドメインをソフトウェアの動作試験に用いる場合、現在の時刻と異なる時刻を、システムクロックに設定する。このような場合でも、サブシステム100が差分時間を保持していることで、ドメインの再起動を行っても、ユーザが過去に設定した差分を維持した時刻が、ドメインのサブシステムの初期値として設定される。このように意図的にドメインの時刻をずらす場合、ドメインのNTPサーバとの時刻同期は行われない。
 〔第3の実施の形態〕
 第2の実施の形態に示したドメイン200,300,400それぞれに、ハードウェアクロックを内蔵させることも可能である。
 図17は、第3の実施の形態に係るマルチドメインシステムのハードウェア構成例を示す図である。なお第3の実施の形態のハードウェア構成要素のうち、第2の実施の形態と同じ機能の要素には同じ符号を付し、説明を省略する。
 第3の実施の形態のマルチドメインシステムA-1に内蔵された各ドメイン200a,300a,400aは、それぞれ時計デバイス207,307,407を有している。時計デバイス207,307,407は、それぞれバス206,306,406に接続されている。
 このように各ドメイン200a,300a,400aが時計デバイス207,307,407を有する場合、サブシステム100からドメイン200a,300a,400aの時計デバイス207,307,407の時刻の参照・更新を可能にすることができる。これにより、ドメイン200a,300a,400aごとに、異なる時刻を設定したり、表示したりすることが可能となる。例えば、Linux(登録商標)では、以下のようなコマンドにより、ドメイン200a,300a,400aごとに、異なる時刻を設定したり、表示したりすることができる。
 サブシステム100からドメイン200a,300a,400aそれぞれの時計デバイス207,307,407を参照するには、以下のコマンドが実行される。
# showtod
このコマンドの実行により、例えば以下のような情報が端末装置21の画面に表示される。
Domain#0  :  Thu Feb 18 11:32:38 JST 2010
Domain#1  :  Thu Feb 18 11:32:38 JST 2010
Domain#2  :  Thu Feb 18 11:32:38 JST 2010
 また、以下のようなコマンドにより、ドメイン200a,300a,400aの時計デバイス207,307,407の時刻を更新可能である。
# settod domain#0 Thu Feb 18 18:33:00 JST 2010
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
 また、以下のようなコマンドにより、ドメイン200a,300a,400aの時計デバイス207,307,407をサブシステムの時刻と一致させることができる。
# settod domain#0 subsystem
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
 さらに、以下のようなコマンドにより、全ドメイン200a,300a,400aの時計デバイス207,307,407をサブシステムの時刻と一致させることができる。
# settod subsystem
更新された時刻は、ドメイン200a,300a,400aの再起動後に、OSに反映される。
 〔その他の実施の形態〕
 上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、サブシステムまたはドメインが有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD-RAM、CD-ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
 プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
 プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
 また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
 1 情報処理装置
 1a 計時手段
 1b 決定手段
 1c 時刻合わせ手段
 1d 計算手段
 1e 記憶手段
 1f 起動手段
 2 時計デバイス
 3 サーバ
 4 管理対象装置
 5,6 時刻情報
 7 差分時間
 8 起動要求

Claims (11)

  1.  要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置であって、
     計時手段と、
     前記管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定する決定手段と、
     前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記計時手段の時刻を合わせる時刻合わせ手段と、
     を有することを特徴とする情報処理装置。
  2.  前記管理対象装置の内部計時手段が示す時刻情報を取得し、取得した時刻情報が示す時刻と、前記計時手段が示す時刻との差分時間を計算する計算手段と、
     前記管理対象装置の動作を停止させた後に起動する場合、前記計時手段が示す時刻に、該管理対象装置の差分時間を加算して得られる時刻を、該管理対象装置の内部計時手段の初期値に指定して、該管理対象装置を起動する起動手段と、
     をさらに有することを特徴とする請求の範囲第1項記載の情報処理装置。
  3.  前記計算手段は、定期的に前記管理対象装置の内部時計が示す時刻を取得することを特徴とする請求の範囲第2項記載の情報処理装置。
  4.  電池でバックアップされた時計デバイスを、取得可能な時刻情報を提供する装置の1つとして認識し、
     前記決定手段は、前記情報処理装置の起動時には、前記時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第1項乃至第3項のいずれかに記載の情報処理装置。
  5.  前記決定手段は、前記情報処理装置の稼働中は、要求に応じて時刻情報の提供を行うサーバから時刻情報を取得可能であれば、該サーバを最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第1項乃至第4項のいずれかに記載の情報処理装置。
  6.  前記決定手段は、前記情報処理装置の稼働中は、要求に応じた時刻情報の提供を行うサーバから時刻情報を取得できない場合、該サーバと時刻合わせを行った装置から時刻情報を取得可能であれば、該装置を最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第5項記載の情報処理装置。
  7.  前記決定手段は、前記情報処理装置の稼働中は、他の装置からの要求に応じた時刻情報の提供を行っているサーバから時刻情報を取得できず、該サーバと時刻合わせが行われた装置からも時刻情報を取得できない場合、電池でバックアップされた時計デバイスを、最も正確な時刻情報を提供する装置に決定することを特徴とする請求の範囲第6項記載の情報処理装置。
  8.  前記時刻合わせ手段は、前記情報処理装置の稼働中は、電池でバックアップされた時計デバイス以外の装置から取得した時刻情報が示す時刻に前記計時手段を設定した場合、該計時手段が示す時刻に、該時計デバイスの時刻を合わせることを特徴とする請求の範囲第5項乃至第7項のいずれかに記載の情報処理装置。
  9.  前記計時手段は、前記情報処理装置がソフトウェアを実行することで実現されていることを特徴とする請求の範囲第1項乃至第8項のいずれかに記載の情報処理装置。
  10.  要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置が、
     前記管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
     前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
     ことを特徴とする時刻設定方法。
  11.  要求に応じてデータ処理を行う管理対象装置の管理を行う情報処理装置に、
     前記管理対象装置を、時刻情報を提供する装置の1つとして認識し、現在の運用状況において取得可能な時刻情報を提供する装置のうち、最も正確な時刻情報を提供する装置を決定し、
     前記決定された装置から時刻情報を取得し、該取得した時刻情報が示す時刻に、前記情報処理装置内の計時手段の時刻を合わせる、
     処理を実行させることを特徴とする時刻設定プログラム。
PCT/JP2011/053266 2011-02-16 2011-02-16 情報処理装置、時刻設定方法、および時刻設定プログラム WO2012111112A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012557715A JPWO2012111112A1 (ja) 2011-02-16 2011-02-16 情報処理装置、時刻設定方法、および時刻設定プログラム
EP11858987.8A EP2677434A1 (en) 2011-02-16 2011-02-16 Information processing device, time setting method, and time setting program
PCT/JP2011/053266 WO2012111112A1 (ja) 2011-02-16 2011-02-16 情報処理装置、時刻設定方法、および時刻設定プログラム
US13/961,957 US20130326088A1 (en) 2011-02-16 2013-08-08 Information processing apparatus, time setting method, and time setting program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053266 WO2012111112A1 (ja) 2011-02-16 2011-02-16 情報処理装置、時刻設定方法、および時刻設定プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/961,957 Continuation US20130326088A1 (en) 2011-02-16 2013-08-08 Information processing apparatus, time setting method, and time setting program

Publications (1)

Publication Number Publication Date
WO2012111112A1 true WO2012111112A1 (ja) 2012-08-23

Family

ID=46672076

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053266 WO2012111112A1 (ja) 2011-02-16 2011-02-16 情報処理装置、時刻設定方法、および時刻設定プログラム

Country Status (4)

Country Link
US (1) US20130326088A1 (ja)
EP (1) EP2677434A1 (ja)
JP (1) JPWO2012111112A1 (ja)
WO (1) WO2012111112A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102706A (ja) * 2012-11-20 2014-06-05 Fujitsu Ltd プログラム、情報処理装置および情報処理方法
KR20170131589A (ko) * 2015-03-25 2017-11-29 지멘스 악티엔게젤샤프트 상이한 관리 도메인들의 시간 정보를 검출 및 리졸브하기 위한 디바이스, 방법 및 시스템
JP7103697B1 (ja) * 2021-05-12 2022-07-20 Necプラットフォームズ株式会社 時刻同期化装置、時刻同期方法、及びプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10509434B1 (en) * 2016-09-27 2019-12-17 Amazon Technologies, Inc. Oscillator profiling for time synchronization
JP2018138898A (ja) * 2017-02-24 2018-09-06 富士通株式会社 情報管理システム、時刻情報補正方法及び時刻情報補正プログラム
DE102017108571B4 (de) * 2017-04-21 2019-06-27 Beckhoff Automation Gmbh Konzept zum übermitteln von zeitsynchronisierten daten von einer eine lokale zeit aufweisenden steuerung eines automatisierungssystems an zumindest einen teilnehmer des automatisierungssystems
JP7217153B2 (ja) * 2019-01-10 2023-02-02 富士通株式会社 情報処理装置、時刻同期方法、及び時刻同期プログラム
US20230006807A1 (en) * 2021-06-30 2023-01-05 Pensando Systems Inc. Methods and systems for providing a distributed clock as a service

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000050004A (ja) * 1998-07-29 2000-02-18 Ricoh Co Ltd ネットワークファクシミリ装置の制御方法
JP2003066170A (ja) * 2001-08-29 2003-03-05 Nec Corp Cpuボードの時刻管理装置及びその方法
JP2006221613A (ja) * 2005-01-14 2006-08-24 Matsushita Electric Ind Co Ltd 情報表示システムおよびそのプログラム
JP2008102713A (ja) * 2006-10-18 2008-05-01 Matsushita Electric Works Ltd 制御端末の時刻合わせ方法
JP2008262292A (ja) 2007-04-10 2008-10-30 Hitachi Ltd サーバおよびローカル端末群の時刻同期方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04367013A (ja) * 1991-06-14 1992-12-18 Hitachi Ltd 情報処理装置の時計方式
JPH10124465A (ja) * 1996-10-16 1998-05-15 Fuji Xerox Co Ltd 情報処理装置
US6311283B1 (en) * 1998-09-17 2001-10-30 Apple Computer, Inc. Need based synchronization of computer system time clock to reduce loading on network server
JP2005222368A (ja) * 2004-02-06 2005-08-18 Hitachi Ltd ストレージシステム
US7617408B2 (en) * 2006-02-13 2009-11-10 Schweitzer Engineering Labortories, Inc. System and method for providing accurate time generation in a computing device of a power system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000050004A (ja) * 1998-07-29 2000-02-18 Ricoh Co Ltd ネットワークファクシミリ装置の制御方法
JP2003066170A (ja) * 2001-08-29 2003-03-05 Nec Corp Cpuボードの時刻管理装置及びその方法
JP2006221613A (ja) * 2005-01-14 2006-08-24 Matsushita Electric Ind Co Ltd 情報表示システムおよびそのプログラム
JP2008102713A (ja) * 2006-10-18 2008-05-01 Matsushita Electric Works Ltd 制御端末の時刻合わせ方法
JP2008262292A (ja) 2007-04-10 2008-10-30 Hitachi Ltd サーバおよびローカル端末群の時刻同期方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102706A (ja) * 2012-11-20 2014-06-05 Fujitsu Ltd プログラム、情報処理装置および情報処理方法
KR20170131589A (ko) * 2015-03-25 2017-11-29 지멘스 악티엔게젤샤프트 상이한 관리 도메인들의 시간 정보를 검출 및 리졸브하기 위한 디바이스, 방법 및 시스템
KR102041450B1 (ko) * 2015-03-25 2019-12-05 지멘스 악티엔게젤샤프트 상이한 관리 도메인들의 시간 정보를 검출 및 리졸브하기 위한 디바이스, 방법 및 시스템
JP7103697B1 (ja) * 2021-05-12 2022-07-20 Necプラットフォームズ株式会社 時刻同期化装置、時刻同期方法、及びプログラム

Also Published As

Publication number Publication date
EP2677434A1 (en) 2013-12-25
JPWO2012111112A1 (ja) 2014-07-03
US20130326088A1 (en) 2013-12-05

Similar Documents

Publication Publication Date Title
WO2012111112A1 (ja) 情報処理装置、時刻設定方法、および時刻設定プログラム
KR101109980B1 (ko) 조정된 타이밍 네트워크 내의 서버 동기화 촉진
US20220012264A1 (en) Pipelining Paxos State Machines
US20240143560A1 (en) Systems and Methods for Increasing Database Access Concurrency
US10775837B1 (en) Generating globally coherent timestamps
US7783913B2 (en) Facilitating recovery in a coordinated timing network
US11789938B1 (en) Ensuring globally consistent transactions
US7571268B2 (en) Consistent updates across storage subsystems coupled to a plurality of primary and secondary units at selected times
US11520753B1 (en) Time reservations for ensuring consistent reads in a distributed database without logging
JP5042318B2 (ja) 協定タイミング・ネットワーク内の階層1構成を定義する方法、システム、およびコンピュータ・プログラム
US20110231641A1 (en) Information-processing apparatus and method of starting information-processing apparatus
US20110289056A1 (en) Method, node and system for controlling version in distributed system
US7925916B2 (en) Failsafe recovery facility in a coordinated timing network
WO2021107988A1 (en) Distributed processing of transactions in a network using timestamps
US10970266B2 (en) Ensuring consistent replication of updates in databases
JP2009008444A (ja) 時刻管理サーバ、時刻管理プログラム、および時刻管理方法
JP2005267321A (ja) 論理計算機システムにおける時刻合わせ方法
KR20090084895A (ko) 통합형 타이밍 네트워크에서 계층-1 구성을 정의하는 방법
US20130246832A1 (en) Information processing device, computer-readable recording medium having stored therein program for setting time of information processing device, monitor, and method for setting time of information processing device
JP2012202897A (ja) クライアント端末、サーバ端末、時刻同期方法、プログラム
CN116669170A (zh) 智能消火栓网络时间同步方法及相关装置
CN113176742A (zh) 多设备间的集控控制方法及装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012557715

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2011858987

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE