<Desc/Clms Page number 1>
Die Erfindung betrifft einen Rechnerverbund mit Zeitabgleich, wobei zumindest zwei Rechner über ein von ihnen unabhängiges Kommunikationssystem zum Austausch von Daten verbunden sind, wobei auf jedem der Rechner ein Softwaremodul implementiert ist, welches bei bestimmten Ereignissen im Programmablauf und/oder auf Benutzeranfrage Zeitsignale auf lokaler Zeitbasis an zumindest einen anderen Rechner im Verbund abschickt, wobei auf zumindest diesem einen Rechner ein Softwaremodul implementiert ist, welches die Zeitdifferenz zu jedem ein Zeitsignal sendenden Rechner zumindest zu einem Zeitpunkt, vorzugsweise mehrmals, ermittelt und speichert.
In vielen Netzwerken sind die einzelnen Rechner, auch oft mit unterschiedlichen Betriebssystemen, die zumindest zeitweilig miteinander kommunizieren nicht nur am selben Standort sondern auch in anderen Zeitzonen. Die Systemzeit dieser Rechner (auf welchen Anwendungsprogramme, sogenannte Agents laufen) ist meist aus Aufwands- und Kostengründen nicht durch spezielle Systeme (z.B.: Funkuhr) abgestimmt. Die Systemzeit dieser Rechner kann somit aus einigen Gründen voneinander abweichen.
Rechner in derselben Zeitzone können aufgrund unterschiedlicher Einstellungen eine unterschiedliche Systemzeit aufweisen, Rechner in unterschiedlichen Zeitzonen können neben dem Zeitzonenunterschied zusätzlich durch kleinere Ungenauigkeiten voneinander abweichen, Rechner am gleichen Standort laufen aus anderen Gründen mit unterschiedlichen Zeitzonen, einige Rechner wechseln automatisch zwischen Sommer- und Winterzeit, jedoch nicht zum selben Zeitpunkt - sie laufen ja nicht synchron andere Rechner wechseln nicht zwischen Sommer- und Winterzeit, die Anwender (ClientProgramme) arbeiten an unterschiedlichen Standorten in unterschiedlichen Zeitzonen, oder die Rechner sind über ein Netzwerk verbunden dessen Durchsatz unterschiedlich ist (LAN/WAN), sodass eine Nachricht eine undefiniert lange Zeit zwischen den Rechnern benötigt.
Für die Verwaltung und auch den geordneten Ablauf von rechnerübergreifenden Vorgängen ist es jedoch unerlässlich, dass die Vorgänge in der tatsächlichen Reihenfolge erkennbar und nachvollziehbar sind, und dass dazu alle Zeitpunkte, die auf den Agents ermittelt werden, immer so dargestellt werden, dass sie der jeweiligen Benutzerzeit des abfragenden Clients (initiiert durch den Benutzer oder automatisch durch andere Agents) entsprechen.
In der JP-A-2059808 ist ein Zeitkontrollsystem eines Computernetzwerkes beschrieben, bei welchem ein Computer nach einem definierten Zeitpunkt (Ereignis) die Zeitdaten an einen (Master) Computer sendet. Dies erfolgt auf Software-Basis (Applikation/Programm) und die jeweiligen Differenzwerte der Zeitdaten werden abgespeichert, wobei die lokalen Zeiten jeweils abgeglichen werden.
Gemäss der JP-A-3123223 liest ein Mikroprozessor die Zeitdaten (Stunde, Minute und einen lokalen Zeitoffset) ein, wenn eine Taste betätigt wird (Ereignis). Software im Prozessor berechnet dann vorzeichenrichtig die Zeitdifferenz zu einer Standardzeit, welche Zeitdifferenz dann auf einer Anzeige ausgegeben wird.
Eine Methode bzw. ein System zur Zeitsynchronisierung von Computern ist in der JP-A-11085312 beschrieben. Die Regelung, mit Rückführung der aktuellen Datensätze zum regelnden Computer, und Übertragung der Zeitdaten erfolgt mehrmals während eines Ablaufes entsprechend einem zeitlichen Ablaufplan.
Die Aufgabe der vorliegenden Erfindung ist eine verbesserte Ausführung eines eingangs charakterisierten Rechnerverbundes, bei welchem in einfacher Weise die Vorgänge auf den unterschiedlichen Rechnern in der Reihenfolge ihres tatsächlichen Auftretens erkennbar und nachvollziehbar sind, und dass dazu alle diese Zeitpunkte so dargestellt werden können, dass sie der jeweiligen Benutzerzeit des abfragenden Clients (initiiert durch den Benutzer oder automatisch durch andere Agents) entsprechen.
Zur Lösung dieser Aufgabe ist der Rechnerverbund dadurch gekennzeichnet, dass das Softwaremodul zur Ermittlung und Speicherung der Zeitdifferenz jedes Zeitsignal eines sendenden
<Desc/Clms Page number 2>
Rechners unter Verwendung des gespeicherten Wertes der dem sendenden Rechner zugeordneten Zeitdifferenz auf die eigene lokale Zeitbasis umrechnet und in einer zeitgeordneten Liste speichert. So kann etwa eine Plausibilitätsprüfung für die ermittelten Zeitwerte vorgesehen sein. Wenn der Agent ein Ereignis meldet das sich soeben ereignet hat muss der Zeitpunkt, korrigiert um den Zeitversatz, kleiner oder gleich der Serverzeit sein. Ergibt sich ein Zeitpunkt in der Zukunft so kann wiederum der Zeitversatz korrigiert werden und die Genauigkeit des Zeitversatzes steigt. Eine weitere Plausibilitätsprüfung erfolgt wenn der Agent beauftragt wird eine Aktion durchzuführen.
Hier speichert der Server die Zeitpunkt zu dem der Auftrag an den Agent übermittelt wurde und bei der Quittung wird der Ausführungszeitpunkt überprüft. Dieser muss grösser oder gleich dem Auftragszeitpunkt liegen, muss aber kleiner oder gleich der Serverzeit liegen zu dem die Ausführungsquittung empfangen wurde.
Selbstverständlich ist es besonders vorteilhaft, wenn zumindest das Softwaremodul, welches Zeitsignale aussendet, einen Block enthält, der mit dem jeweiligen Rechner-Betriebssystem kommunizieren kann.
Gemäss einem weiteren Merkmal der Erfindung ist vorgesehen, dass das Softwaremodul, welches Zeitsignale aussendet, eine Abfrage-Routine für die gespeicherte Liste der Zeitsignale als auch eine Umrechnungsroutine der Werte dieser Liste auf die lokale Zeitbasis des jeweiligen Rechners aufweist.
Vorzugsweise weist das Softwaremodul, welches die Liste der Zeitsignale speichert, eine Routine zur Übermittlung von Zeitsignalen auf lokaler Zeitbasis an die anderen Rechner im Verbund sowie eine Vergleichs-Routine auf, welche aus der Differenz der der gesendeten und empfangenen Zeitsignale die Unterschiede zwischen den Zeitbasen und die Übertragungszeiten ermittelt.
Wieder ist es dabei von besonderem Vorteil, wenn dabei das Softwaremodul zur Ermittlung und Speicherung der Zeitdifferenz die ermittelten Werte der Zeitdifferenz zu jedem anderen Rechner im Rechnerverbund auf Plausibilität auswertet.
Um nicht nur programmintern die Liste der Zeitwert nutzen zu können, sondern diese auch einem Benutzer einfach und einsichtig zugänglich machen zu können, ist gemäss einem weiteren Erfindungsmerkmal auf zumindest einem Rechner ein Softwaremodul implementiert, welches eine Abfrage-Routine für die gespeicherte Liste der Zeitsignale als auch eine Umrechnungsroutine der Werte dieser Liste auf die lokale Zeitbasis des jeweiligen Rechners aufweist, und mit einer graphischen Benutzeroberfläche versehen ist.
Dabei kann vorgesehen sein, dass auf zumindest einem Rechner ein Softwaremodul implementiert ist, welches bei bestimmten Ereignissen Zeitsignale aussendet und eine Abfrage-Routine für die gespeicherte Liste der Zeitsignale als auch eine Umrechnungsroutine der Werte dieser Liste auf die lokale Zeitbasis des jeweiligen Rechners aufweist, und mit einer graphischen Benutzeroberfläche versehen ist.
In der nachfolgenden Beschreibung sollen noch einige Aspekte der vorliegenden Erfindung beispielhaft erläutert werden, wobei auch Bezug auf die beigefügte Zeichnungsfigur mit einer schematischen Darstellung der Verhältnisse in einem kleinen Rechnerverbund genommen wird.
Vorzugweise ist für einen erfindungsgemässen Rechnerverbund vorgesehen, dass regelmässig Nachrichten zwischen den beteiligten Rechner ausgetauscht werden, um den Zeitversatz abzugleichen. Zusätzlich wird bei Aufgaben, die vom Agent durchzuführen sind, der Start der Aufgabe als auch der Durchführungszeitpunkt quittiert. Es wird dabei die Zeit des Servers zum Agent gesendet, der Agent erweitert die Nachricht um seine Uhrzeit und schickt diese Information an den Server zurück. Daraus kann der Zeitversatz dieser Server und Agent ermittelt werden, als Unsicherheitsfaktor bleibt hier die Dauer des Nachrichtenflusses.
Wird die Antwort
<Desc/Clms Page number 3>
10 Sekunden nach Absenden der ersten Nachricht empfangen, so könnte ja Nachricht1 10 Sekunden benötigt haben und die Antwort aber noch in derselben Sekunde empfangen worden sein als sie abgesendet wurde, somit würde der Zeitversatz um 10 Sekunden falsch sein.
Dieser Zeitversatz wird vom Server für jeden Agent getrennt gespeichert und alle Zeitpunkte die von den Agents geliefert werden um diesem Zeitversatz korrigiert. Mit jedem nachfolgendem Zeitabgleich kann der Unsicherheitsfaktor verringert werden. Weiters werden alle Zeiten die der Agents einer Plausibilitätsprüfung unterzogen. Wenn der Agent ein Ereignis meldet das sich soeben ereignet hat muss der Zeitpunkt, korrigiert um den Zeitversatz, kleiner oder gleich der Serverzeit sein. Ergibt sich ein Zeitpunkt in der Zukunft so kann wiederum der Zeitversatz korrigiert werden und die Genauigkeit des Zeitversatzes steigt. Eine weitere Plausibilitätsprüfung erfolgt wenn der Agent beauftragt wird eine Aktion durchzuführen. Hier speichert der Server die Zeitpunkt zu dem der Auftrag an den Agent übermittelt wurde und bei der Quittung wird der Ausführungszeitpunkt überprüft.
Dieser muss grösser oder gleich dem Auftragszeitpunkt liegen, muss aber kleiner oder gleich der Serverzeit liegen zu dem die Ausführungsquittung empfangen wurde.
Über ständigen Abgleich der Zeitdifferenz ist es möglich den Zeitversatz ständig zu überprüfen und die Genauigkeit zu verfeinern. Weiters wird automatisch eine Zeitverstellung eines Rechners erkannt und korrigiert, egal ob diese manuell durchgeführt wurde oder wegen Sommer/Winterzeitumstellung automatisch erfolgte.
Bis zu diesem Zeitpunkt wurde die Serverzeit als Referenzzeit herangezogen. Werden die Daten in einer Datenbank abgespeichert und soll auf diese Daten von verschiedenen Stellen zugegriffen werden bzw. beziehen sich SQL-Abfragen auf Datumsfelder so müssen diese Zeiten noch auf Datenbankzeit umgerechnet werden (mit dem gleichen Algorithmus). Der Client wiederum muss seinerseits seine Zeitdifferenz zur Datenbank errechnen und alle Zeiten auf seine lokale Zeit umrechnen.
Beispiel : Agent steht in New York, Server in Frankfurt. Dies entspricht einer Zeitverschiebung um 6 Stunden. Der Agent ist zudem noch um ca. 5 Minuten seiner Zeit voraus. Ein Ereignis dass um 12:05 in New York ermittelt wird ereignet sich somit um 18 :00 der Sicht des Ser- vers. Der Uhr des Clients in Frankfurt geht um 3 Minuten nach. Aus der unterschiedlichen Zeitsignalen und den jeweiligen Differenzen wird daraus errechnet und auf Anfrage auch angezeigt bzw. zur Weiterverarbeitung bereitgestellt, dass beim frankfurter Client 17 :57 als Ereigniszeitpunkt aufscheint.
In der Zeichnungsfigur ist ein Rechnerverbund mit 5 Rechnern dargestellt, die alle eine unterschiedliche Uhrzeit haben. Der Zeitabgleich hat die Zeitabweichungen ermittelt und der Server verwaltet diese Werte. Wenn jetzt angenommen um 12. 00 Serverzeit alle Executoren ein Ereignis an den Server melden so werden von diesen Zeitpunkten die jeweilige Differenz abgezogen und so eine normierte Zeit ermittelt (14: 00:05 minus 02 :00:05 12 :00:00) wird in der Datenbank gespeichert. Der Dialog-Client kann diese Tabelle anzeigen bzw. wenn er die Werte aus der Datenbank (zb. Statistik wann trat das Ereignis auf) ausliest und anzeigt kann er seinerseits die Zeiten um seinen Versatz zum Server umrechnen.
Er kann also daraus ermitteln, dass das interessierende Ereignis um 13 :00:03 seinerlokalen (Dialog Client) Zeit eingetreten ist.
**WARNUNG** Ende DESC Feld kannt Anfang CLMS uberlappen**.