EP1316012A2 - Verfahren und anordnung zur synchronisation eines auf einem ersten rechner ablaufenden programms mit einem auf einem server ablaufenden programm, computerlesbares speichermedium und computerprogramm-element - Google Patents

Verfahren und anordnung zur synchronisation eines auf einem ersten rechner ablaufenden programms mit einem auf einem server ablaufenden programm, computerlesbares speichermedium und computerprogramm-element

Info

Publication number
EP1316012A2
EP1316012A2 EP01911343A EP01911343A EP1316012A2 EP 1316012 A2 EP1316012 A2 EP 1316012A2 EP 01911343 A EP01911343 A EP 01911343A EP 01911343 A EP01911343 A EP 01911343A EP 1316012 A2 EP1316012 A2 EP 1316012A2
Authority
EP
European Patent Office
Prior art keywords
server
computer
program running
state
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP01911343A
Other languages
English (en)
French (fr)
Inventor
Hans-Georg Baumgarten
Evelyn Pfeuffer
Luis-Alfredo Alfonso-Nogueiro
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Solutions and Networks GmbH and Co KG
Original Assignee
Siemens AG
Nokia Siemens Networks GmbH and Co KG
Siemens Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG, Nokia Siemens Networks GmbH and Co KG, Siemens Corp filed Critical Siemens AG
Publication of EP1316012A2 publication Critical patent/EP1316012A2/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks

Definitions

  • the invention relates to a method and an arrangement for synchronizing a program running on a first computer with a program running on a server. Such a method and such an arrangement are known from [1].
  • a database program runs on a server and on a plurality of computers which can have read and / or write access to the database, which is stored in a memory of the server, and can change its content. If a connection between a computer and the server, for example a connection via a radio interface, is interrupted, then
  • Communication connection can be accessed from the computers (online banking) known that in the event that a connection between a computer and the server is stored during an application that is running per se, the respective state for the user, that is to say for the respective computer becomes. If a connection is established again between the computer and the server, the saved state is reconstructed. In this type of distributed application, only one interaction with one computer is provided. Other computers cannot make changes to the state that affect states that affect the respective computer.
  • a disadvantage of the known procedures is that, especially in a distributed application operated on the server side, in which the server itself can also carry out state changes, although a connection between the computer and the server has been interrupted, it is not possible after the connection has been re-established for the respective computer in the distributed application again in the state “to get in”, which corresponds to the state in which the connection to the computer was interrupted.
  • the mobile computer is a cell phone that communicates with the server using the ireless access protocol (WAP).
  • WAP ireless access protocol
  • the object of the invention is therefore to enable a distributed application to be synchronized after a computer participating in this application has had no connection to the server for a certain time with the program running on the computer, if
  • State changes in the distributed application can be generated by the server.
  • the program running on the server running program continues even without a connection from the server to the first computer and changes the state, the state of the first computer is stored on the server within the program running on the server as soon as a previously existing connection between the first computer and the server is interrupted.
  • the program running on the server is continued after the connection to the first computer is interrupted, changes in the status of the program running on the server being logged.
  • State changes are at least partially caused by the server itself.
  • a new connection is established between the first computer and the server, and the program running on the first computer is synchronized with the program running on the server on the basis of the stored state and the logged state changes.
  • An arrangement for synchronizing a program running on a first computer with a program running on a server has a first computer and a server, the first computer and the server being connected to one another via a connection.
  • the program running on the server continues to run even without a connection from the server to the first computer, and the server generates state changes in the running program.
  • the server is set up in such a way that the following steps can be carried out:
  • the state of the first computer is stored on the server within the program running on the server,
  • the program running on the server is continued after the connection to the first computer is interrupted, changes in the status of the program running on the server being logged, which State changes are caused at least in part by the server, and
  • the program running on the first computer is synchronized with the program running on the server.
  • Computer program for synchronizing a program running on a first computer with a program running on a server is stored, the program running on the server continuing to run even without a connection from the server to the first computer and carrying out state changes.
  • the computer program for synchronization has the following procedural steps if it is carried out by a processor:
  • the state of the first computer is stored on the server within the program running on the server,
  • the program running on the server is continued after the connection to the first computer is interrupted, changes in the state of the program running on the server being logged, which changes in state are at least partially caused by the server, and
  • the first computer is reconnected to the server and the stored state and the logged change in state are used to synchronize the program running on the first computer with the program running on the server.
  • a computer program element is used to synchronize a program running on a first computer with one a program running on the server, the program running on the server continuing to run even without a connection from the server to the first computer and carrying out state changes. If the computer program element is executed by a processor, the following procedural steps are carried out:
  • the state of the first computer is stored on the server within the program running on the server,
  • the program running on the server is continued after the connection to the first computer is interrupted, changes in the state of the program running on the server being logged, which changes in state are at least partially caused by the server, and
  • the first computer is reconnected to the server and the stored state and the logged change in state are used to synchronize the program running on the first computer with the program running on the server.
  • the invention makes it possible for the first time in a simple manner to synchronize distributed programs, that is to say from a distributed application, in which status changes are caused by the server, even though a connection to one or more mobile computers has been interrupted, after the connection has been re-established with the respective computer.
  • connection is unstable, that is to say in particular in the case of connections via a severely disturbed channel, for example a connection via a radio interface, in particular in accordance with GSM, DECT or UMTS.
  • the invention can be implemented both by means of software, that is to say by means of a computer program, and by means of an electronic special circuit, that is to say in hardware.
  • the logged state changes are also logged as a sequence of commands to run through all states since the connection was broken and / or the respectively new states, that is to say the results of the state changes in other words.
  • the program running from the server can be accessed by means of a program running on a second.
  • the program running on the server can be accessed from any number of further computers, by means of programs running on these respective computers, the program running on the server.
  • the first computer and / or the further computers are mobile computers.
  • a mobile computer is to be understood, for example, as a notebook, a personal digital assistant (PDA) or a cell phone with an integrated computer, each of which is connected to the server, for example using an Internet protocol (for cell phones, for example, using the WAP).
  • PDA personal digital assistant
  • WAP wireless access point
  • the first computer and / or the further computers can be connected to the server via a radio interface, in particular via a radio interface according to GSM, DECT or UMTS.
  • the invention is particularly suitable for such a radio connection, since this is severely disturbed and such a connection is frequently interrupted.
  • the changes in state of the program running on the server can be logged for a predetermined period of time. This configuration ensures that only a large amount of data that can be processed is logged at all, so that synchronization between the programs on the computer and the server is possible with reasonable effort, that is to say with an acceptable bandwidth requirement and / or computing time requirement.
  • a further connection establishment for the respective computer is no longer permitted by the server.
  • the invention is particularly suitable for use in one of the following applications:
  • the synchronization can be carried out transparently for the program running on the server within a middleware of the server, as a result of which the synchronization is considerably accelerated, since this is carried out by means of special hardware in the middleware of the server.
  • Show it 1 shows an arrangement with a server and a plurality of mobile computers which are connected to one another via a communication network;
  • Figure 2 is a sketch showing the timing of an interactive program according to an embodiment of the invention.
  • FIG. 3 is a flowchart in which individual method steps of an embodiment of the
  • FIG. 2 shows a communication arrangement 200 with a server 201, a first mobile computer 220, a second mobile computer 230 and an nth mobile computer 240
  • the mobile computers 220, 230, 240 are connected to the server 201 via a communication network 210.
  • the server 201 and the mobile computers 220, 230, 240 each have:
  • processor 202 221, 231, 241
  • memory 203 a processor 202, 221, 231, 241
  • memory 203 a processor 202, 221, 231, 241
  • 222 a processor 202, 221, 231, 241
  • memory 203 a processor 202, 221, 231, 241
  • 232 a processor 232, 242
  • the communication network 210 provides radio connections in accordance with the UMTS standard.
  • the individual mobile computers 220, 230, 240 and the server 201 communicate with one another using the WAP.
  • An interactive application in the form of a program is made available by the server 201 to the mobile computers 220, 230, 240 for use.
  • An image of the interactive program is stored in the memories 222, 232, 242 in the mobile computers 220, 230, 240.
  • the interactive program is executed by the processor 221, 231, 241, respectively.
  • the management of the interactive program is controlled by the processor 202 of the server 201.
  • the interactive program is a computer program for a real-time strategy game, for example the Command & Conquer TM game, which can be played by the users of the mobile computers 220, 230, 240 in a common communication session which is managed by the server 201.
  • a real-time strategy game for example the Command & Conquer TM game
  • the following attributes are managed by the server 201 as part of the management of the respective game session according to the exemplary embodiment:
  • FIG. 1 shows a time profile 100 of the various states in the interactive program 101.
  • n players take part in the game and that the corresponding n mobile computers 220, 230, 240 have already established a communication link with the server 201.
  • This situation is symbolized by a program 102 of the first mobile computer 220, a program 103 of the second computer 230 and a program 104 of the nth computer 240.
  • a user of a mobile computer 220, 230, 240 takes an action within the game, for example, one
  • Fig.l symbolically shows a first state 105, which passes through an internal control by the server 101 into a second state 106.
  • a status change to a third status 108 is carried out.
  • State change request 114 sent by the program 103 of the second mobile computer 230 into an eighth state 115.
  • connection to the first computer 220 can be interrupted by interrupting the physical connection itself, which is determined by the server 201.
  • the interruption of the connection can also be seen in a signaling that has not taken place, that is to say in a message that has not been received and that is basically required in accordance with predetermined game rules.
  • the server 201 can take at least one of the following measures in order to ensure that the program 101 can be continued, in particular for the further computers 230, 240: that means with the other computers, be continued immediately,
  • the interactive program 101 can be ended immediately, the participant whose connection has been interrupted can be replaced by another participant, the game status of the withdrawing participant being able to be adopted within the program 101 or not,
  • the mobile computer the connection of which has been interrupted, can be accessed by the interactive program 101 itself
  • Continuation of the program can be simulated, - Measures can be taken to ensure that a re-entry of the participant who has left the real-time strategy game by interrupting the connection, wants to re-enter the game;
  • An example of such a preparation for re-entry is the start of a timer, with which it is specified how long the real-time strategy game can still be re-entered by the withdrawing participant.
  • the server 201 logs all changes of state in the interactive program 101 and saves it in a log file.
  • the server 201 transmits the state changes that have been carried out since the connection was broken or the entire state in which the interactive program 101 is when the first computer 220 is requested to re-enter first computer 220 transmit in the form of a status update message 128 (symbolized by reference numerals 127 and 128 m Fig.l).
  • Interactive program 101 runs during a first phase (block 300).
  • connection to a subscriber is interrupted and the current program status at the time of the connection interruption is saved (step 301).
  • the program is carried out in further steps on the server, taking into account status change messages from the side the further mobile computers 230, 240, which are still connected to the server 201, and are continued by block changes that are generated by the server 201 itself (block 302).
  • Program status (step 305) and the program status when the connection to the first mobile computer 220 is interrupted are read from the memory 203 of the server 201 (step 306).
  • step 307 it is checked whether the first computer 220 may be integrated into the interactive program 101 again.
  • the current program status or the changes in status that have occurred are transmitted from the server 201 to the first mobile computer 220, the first mobile computer 220 is again integrated into the interactive program 101 and the interactive program 101 is continued, now again with the first mobile computer 220 as a subscriber (step 308).
  • Step 309 the program 101 is continued without the first computer 220 as a participant.
  • the data is transmitted that requires less bandwidth for data transmission. In other words, this means that the entire current program status is transmitted to the first mobile computer 220 if the data volume to be transmitted is less for the current overall program status than for the transmission of the status changes carried out since the connection was interrupted and vice versa.
  • An example of elements that are transmitted in the current program status is, for example
  • TM Communication & Conquer
  • the structure of the entire model of the mission the structure of the individual objects within the game map as well as different framework parameters that describe, for example, the level of difficulty or other elements of the game.
  • the program that runs on the first computer 220 is synchronized with the interactive program 101 running on the server 201.
  • the first computer 220 is again fully involved in the game, that is to say integrated into the interactive program 101, and the interactive program 101 continues to run normally.
  • the program that is to say the real-time strategy game, continues to be executed automatically in the first mobile computer 220 after the connection has been terminated.
  • the program that is to say the real-time strategy game
  • the program continues to be executed automatically in the first mobile computer 220 after the connection has been terminated.
  • the program state in the first mobile computer 220 is overwritten by the program state in the server 201.
  • the invention is not limited to a real-time strategy game or to a computer game at all.
  • the mechanism is applicable to any form of interactive program that continues to run after being disconnected from a participant and in which
  • the invention is also not restricted to a specific radio connection, that is to say to a communication network in accordance with a mobile radio standard such as GSM or UMTS.
  • a mobile radio standard such as GSM or UMTS.
  • Any type of communication connection can be used in the context of the invention, for example a conventional landline connection.
  • Abort connection can be switched to a suitable measure of the server. So it is possible, for example, with a Exceeding a predetermined period of time after the connection between the server and the first (mobile) computer has been terminated, the first computer can only be re-entered into the program running on the server if the sum of the changes instead of the individual ones
  • the server can also decide independently that if a certain period of time in which no data could be exchanged between server and client is exceeded, the connection is broken. In this case, the server takes suitable measures to persistently keep the client's state ready for a return.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

Das auf dem Server ablaufende Programm läuft auch ohne eine Verbindung zu dem ersten Rechner weiter und führt Zustandsveränderungen durch. Sobald eine bestehende Verbindung unterbrochen ist, wird der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert. Das Programm wird fortgesetzt, wobei Zustandsveränderungen protokolliert werden. Die Zustandsveränderungen werden den Server verursacht. Nachdem eine erneute Verbindung aufgebaut worden ist, wird eine Synchronisation der Programme durchgeführt.

Description

Beschreibung
Verfahren und Anordnung zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, Computerlesbares Speichermedium und Computerprogramm-Element
Die Erfindung betrifft ein Verfahren und eine Anordnung zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm. Ein solches Verfahren und eine solche Anordnung ist aus [1] bekannt .
Bei dem aus [1] bekannten Verfahren läuft ein Datenbank- Programm auf einem Server und auf mehreren Rechnern, die auf die Datenbank, die in einem Speicher des Servers gespeichert ist, lesend und/oder schreibend zugreifen können und deren Inhalt verändern können. Wird eine Verbindung zwischen einem Rechner und dem Server, beispielsweise eine Verbindung über eine Funkschnittstelle, unterbrochen, so können durch
Zugriffe von weiteren Rechnern, die noch mit dem Server verbunden sind, Zustandsver nderungen in dem Datenbank- Programm, das heißt insbesondere in der von dem Server zur Verfügung gestellten Datenbank, verursacht werden. Wird nun von dem Rechner, dessen Verbindung unterbrochen war, wiederum erneut eine Verbindung aufgebaut, so sind durch Zustandsver nderungen aufgrund von Zugriffen der weiteren Rechner entstandene Inkonsistenzen in den Daten, die in der Datenbank gespeichert sind, mittels geeigneter Mechanismen aufzulösen, beispielsweise mittels Ausführen vorgegebener Skripten oder mittels automatischer Aktualisierung der Datenbank, die auch auf den entsprechenden Rechnern gespeichert sind.
Es ist anzumerken, dass bei dem aus [1] bekannten Verfahren Zustandsveranderungen in der Datenbank ausschließlich durch die mit dem Server verbundenen Rechnern erzeugt werden können.
Weiterhin ist es bekannt, bei einer verteilten Anwendung, das heißt bei einem Programm, das auf mehreren Rechnern abläuft, und von einem Server administriert wird, beispielsweise bei einer Anwendung, mit der Bankdaten über die
Kommunikationsverbindung von den Rechnern abgerufen werden können (Online-Banking) bekannt, dass für den Fall, dass eine Verbindung zwischen einem Rechner und dem Server während einer an sich laufenden Anwendung, der jeweilige Zustand für den Benutzer, das heißt für den jeweiligen Rechner, gespeichert wird. Wird erneut eine Verbindung zwischen dem Rechner und dem Server aufgebaut, so wird der gespeicherte Zustand wieder rekonstruiert. Bei dieser Art einer verteilten Anwendung ist lediglich eine Interaktion mit jeweils einem Rechner vorgesehen. Weitere Rechner können keine Zustandsveranderungen vornehmen, die Einfluss haben auf Zustände, die den jeweiligen Rechner betreffen.
Nachteilig an den bekannten Vorgehensweisen ist, dass es insbesondere bei einer serverseitig betriebenen verteilten Anwendung, bei der auch der Server selbst Zustandsveranderungen durchführen kann, obwohl eine Verbindung zwischen dem Rechner und dem Server unterbrochen wurde, verursacht werden können, nicht möglich ist, nach erneutem Verbindungsaufbau für den jeweiligen Rechner in der verteilten Anwendung wieder in dem Zustand „einzusteigen*, der dem Zustand entspricht, in dem die Verbindung mit dem Rechner unterbrochen wurde.
Dies ist insbesondere darauf zurückzuführen, dass die verteilte Anwendung insbesondere bei einer verteilten Anwendung, bei der der Server kontinuierlich Zustandsveranderungen selbständig durchführt, anschaulich ein sehr großer Zustandsautomat gebildet wird, der nicht ohne weiteres nachvollziehbar ist und somit auch nicht ohne weiteres rekonstruierbar ist.
Insbesondere besteht das Problem bei einer solchen Anwendung darin, dass bei Verbindungsabbruch eines Rechners für den Benutzer nach einer gewissen Zeit bereits ein deutlicher Fortschritt im Ablauf des von dem Server durchgeführten Programms, das heißt der verteilten Anwendung, erfolgt ist. Dieser Fortschritt des Programms ist mit den bekannten Verfahren nicht mehr rekonstruierbar.
Die oben beschriebenen Nachteile sind besonders schwerwiegend bei einer Verbindung zwischen einem Rechner und dem Server, die relativ häufig unterbrochen wird, das heißt sehr störanfällig ist, beispielsweise bei einer Verbindung über eine Funkschnittstelle.
Ein Beispiel für ein solches System ist, dass der mobile Rechner ein Handy ist, das mittels des ireless Access Protocol (WAP) mit dem Server kommuniziert.
Somit liegt der Erfindung die Aufgabe zugrunde, eine Synchronisation einer verteilten Anwendung zu ermöglichen, nachdem ein an dieser Anwendung teilnehmender Rechner mit dem auf dem Rechner ablaufenden Programm für eine gewisse Zeit keine Verbindung zu dem Server hatte, wenn
Zustandsveranderungen in der verteilten Anwendung durch den Server erzeugt werden können.
Diese Aufgabe wird durch das Verfahren, die Anordnung, das Computerlesbare Speichermedium und das Computerprogramm- Element mit den Merkmalen gemäß den unabhängigen Patentansprüchen gelöst.
Bei einem Verfahren zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, wobei das auf dem Server ablaufende Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterläuft und Zustandsveranderungen durchführt, wird auf dem Server der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert, sobald eine bislang bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist. Das auf dem Server ablaufende Programm wird nach der Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms protokolliert werden. Die
Zustandsveranderungen werden zumindest teilweise durch den Server selbst verursacht. Eine erneute Verbindung des ersten Rechners mit dem Server wird aufgebaut und es erfolgt eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm anhand des abgespeicherten Zustands und der protokollierten Zustandsveranderungen.
Eine Anordnung zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm weist einen ersten Rechner sowie einen Server auf, wobei der erste Rechner und der Server über eine Verbindung miteinander verbunden sind. Das auf dem Server ablaufende Programm läuft auch ohne eine Verbindung des Servers zu dem ersten Rechner weiter und es werden von dem Server Zustandsveranderungen in dem ablaufenden Programm erzeugt. Der Server ist derart eingerichtet, dass folgende Schritte durchführbar sind:
- auf dem Server wird, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert,
- das auf dem Server ablaufende Programm wird nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden, und
- es erfolgt eine erneute Verbindung des ersten Rechners mit dem Server und anhand des abgespeicherten Zustands und der protokollierten Zustandsveranderungen wird eine
Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt.
In einem computerlesbaren Speichermedium ist ein
Computerprogramm zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm gespeichert, wobei das auf dem Server ablaufenden Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterläuft und Zustandsveranderungen durchführt. Das Computerprogramm zur Synchronisation weist folgende Verfahrensschritte auf, wenn es von einem Prozessor durchgeführt wird:
- auf dem Server wird, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert,
- das auf dem Server ablaufende Programm wird nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden, und
- es erfolgt eine erneute Verbindung des ersten Rechners mit dem Server und anhand des abgespeicherten Zustands und der protokollierten Zustandsveränderung wird eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt .
Ein Computerprogramm-Element dient zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, wobei das auf dem Server ablaufende Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterläuft und Zustandsveranderungen durchführt. Wenn das Computerprogramm-Element von einem Prozessor ausgeführt wird, werden folgende Verfahrensschritte durchgeführt:
- auf dem Server wird, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert,
- das auf dem Server ablaufende Programm wird nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden, und
- es erfolgt eine erneute Verbindung des ersten Rechners mit dem Server und anhand des abgespeicherten Zustands und der protokollierten Zustandsveränderung wird eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt.
Durch die Erfindung wird es erstmals möglich, auf einfache Weise eine Synchronisation von verteilten Programmen, das heißt von einer verteilten Anwendung, bei denen durch den Server Zustandsveranderungen verursacht werden, obwohl eine Verbindung zu einem oder mehreren mobilen Rechnern unterbrochen worden ist, nach wieder aufgebauter Verbindung mit dem jeweiligen Rechner durchzuführen.
Damit wird es erstmals möglich, auch bei einer solchen verteilten Anwendung Benutzern von Rechnern, nach Verbindungsunterbrechung mit dem Server den Wiedereintritt in die verteilte Anwendung zu ermöglichen. Dies ist insbesondere vorteilhaft für Anwendungen, bei denen die Verbindung instabil ist, das heißt insbesondere bei Verbindungen über einen stark gestörten Kanal, beispielsweise einer Verbindung über eine Funkschnittstelle, insbesondere gemäß GSM, DECT oder UMTS.
Die Erfindung kann sowohl mittels Software, das heißt mittels eines Computerprogramms als auch mittels einer elektronischen Spezialschaltung, das heißt in Hardware, realisiert werden.
Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen.
Die im weiteren beschriebenen Ausgestaltungen betreffen sowohl das Verfahren, die Anordnung, das Computerlesbare Speichermedium als auch das Computerprogramm-Element.
In einer Ausgestaltung der Erfindung ist es vorgesehen, dass die protokollierten Zustandsveranderungen als eine Folge von Kommandos zum Durchlaufen aller Zustände seit Unterbrechung der Verbindung und/oder die jeweils neuen Zustände, das heißt in anderen Worten die Ergebnisse der Zustandsveranderungen, mitprotokolliert werden.
Durch diese Ausgestaltung ist eine einfache
Nachvollziehbarkeit der Zustandsveranderungen möglich, wodurch eine schnelle, effiziente und rechenzeitsparende Synchronisation der Programme gewährleistet ist.
In einer weiteren Ausgestaltung der Erfindung ist es vorgesehen, dass zur Synchronisation entschieden wird, ob zu dem ersten Rechner die Kommandos zum Durchlaufen aller Zustände bis zu einem aktuellen Zustand, oder das Ergebnis der Zustandsveränderung übertragen wird, abhängig davon, was im Hinblick auf eine erforderliche Bandbreite zur Übertragung und/oder auf eine erforderliche Rechenkapazität zur Synchronisation des ersten Rechners ökonomischer ist. Durch diese Ausgestaltung wird eine weitere Optimierung des Bandbreitenbedarfs bzw. des Rechenzeitbedarfs zur Synchronisation erreicht.
Ferner kann auf das von dem Server ablaufende Programm mittels eines auf einem zweiten ablaufenden Programms zugegriffen werden. Grundsätzlich kann auf das von dem Server ablaufende Programm von einer beliebigen Anzahl weiterer Rechner, mittels auf diesen jeweiligen Rechnern ablaufenden Programmen auf das auf dem Server ablaufende Programm zugegriffen werden.
Ferner ist es in einer Weiterbildung vorgesehen, dass der erste Rechner und/oder die weiteren Rechner mobile Rechner sind.
Unter einem mobilen Rechner ist beispielsweise ein Notebook, ein Personal Digital Assistant (PDA) oder auch ein Handy mit integriertem Rechner zu verstehen, die jeweils beispielsweise mittels eines Internet-Protokolls (bei Handys beispielsweise mittels des WAP) mit dem Server in Verbindung steht.
Die Verbindung des ersten Rechners und/oder der weiteren Rechner mit dem Server kann über eine Funkschnittstelle erfolgen, insbesondere über eine Funkschnittstelle gemäß GSM, DECT oder UMTS.
Die Erfindung eignet sich insbesondere für eine solche Funkverbindung, da diese stark gestört ist und eine solche Verbindung häufig unterbrochen wird.
Die Zustandsveranderungen des auf dem Server ablaufenden Programms können für eine vorbestimmte Zeitdauer protokolliert werden. Durch diese Ausgestaltung ist gewährleistet, dass nur eine verarbeitbar große Menge an Daten überhaupt protokolliert wird, so dass eine Synchronisation zwischen den Programmen auf dem Rechner und dem Server mit vertretbarem Aufwand, das heißt mit akzeptablen Bandbreitenbedarf und/oder Rechenzeitbedarf möglich ist.
Ist die vorbestimmte Zeitdauer überschritten, oder eine bestimmte Anzahl von Zustandsveranderungen überschritten, so wird gemäß einer weiteren Ausgestaltung der Erfindung ein weiterer Verbindungsaufbau für den jeweiligen Rechner, durch den Server nicht mehr zugelassen.
Die Erfindung eignet sich insbesondere zum Einsatz in einer der folgenden Anwendungen:
- Multi-User-Engineering durch Zugriff auf eine gemeinsame Server-Anwendung,
- Administration von verteilten Anwendungen,
- Multi-Player-Spiele, oder - Multi-Player-Spiele, bei denen die Spieler mittels mobiler Rechner über eine Funkschnittstelle auf das von dem Server bereitgestellte Spiel zugreifen.
Die Synchronisation kann transparent für das auf dem Server ablaufenden Programm innerhalb einer Middleware des Servers durchgeführt werden, wodurch eine erhebliche Beschleunigung der Synchronisation erreicht wird, da diese mittels spezieller Hardware in der Middleware des Servers durchgeführt wird.
Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im weiteren näher erläutert.
Es zeigen Figur 1 eine Anordnung mit einem Server und mehreren mobilen Rechnern, die über ein Kommunikationsnetz miteinander verbunden sind;
Figur 2 eine Skizze, mit der der zeitliche Ablauf eines interaktiven Programms gemäß einem Ausführungsbeispiel der Erfindung dargestellt ist;
Figur 3 ein Ablaufdiagramm, in dem einzelne Verfahrensschritte eines Ausführungsbeispiels der
Erfindung dargestellt sind.
Fig.2 zeigt eine Kommunikationsanordnung 200 mit einem Server 201, einem ersten mobilen Rechner 220, einem zweiten mobilen Rechner 230 und einem n-ten mobilen Rechner 240
(n = 1, ... , m, wobei mit die Anzahl mobiler Rechner in der Kommunikationsanordnung 200 bezeichnet wird) .
Die mobilen Rechner 220, 230, 240 sind mit dem Server 201 über ein Kommunikationsnetz 210 verbunden.
Der Server 201 und die mobilen Rechner 220, 230, 240 weisen jeweils auf:
- einen Prozessor 202, 221, 231, 241, - einen Speicher 203, 222, 232, 242
- eine Eingangs-/Ausgangsschnittstelle 204, 223, 233, 243, die jeweils über einen Computer-Bus 205, 224, 234, 244 miteinander verbunden sind.
Das Kommunikationsnetz 210 stellt Funkverbindungen gemäß dem UMTS-Standard zur Verfügung.
Die einzelnen mobilen Rechner 220, 230, 240 und der Server 201 kommunizieren miteinander unter Verwendung des WAP. Von dem Server 201 wird eine interaktive Anwendung in Form eines Programms den mobilen Rechnern 220, 230, 240 zur Nutzung zur Verfügung gestellt.
Die Nutzung, das heißt das Andern von Zuständen des Programms in dem Server, erfolgt über die Kommunikationsverbindung, die jeweils ein mobiler Rechner 220, 230, 240 mit dem Server 201 aufgebaut hat.
In den mobilen Rechnern 220, 230, 240 ist jeweils ein Abbild des interaktiven Programms in deren Speicher 222, 232, 242 gespeichert .
Das interaktive Programm wird jeweils von dem Prozessor 221, 231, 241 durchgeführt. Die Verwaltung des interaktiven Programms, wird von dem Prozessor 202 des Servers 201 gesteuert .
Das interaktive Programm ist gemäß dem Ausführungsbeispiel ein Computerprogramm für ein Echtzeitstrategie-Spiel, beispielsweise das Spiel Command&Conquer™, das von den Benutzern der mobilen Rechner 220, 230, 240 gespielt werden kann in einer gemeinsamen Kommunikationssitzung, die von dem Server 201 verwaltet wird.
Von dem Server 201 werden im Rahmen der Verwaltung der jeweiligen Spielsitzung gemäß dem Ausführungsbeispiel folgende Attribute verwaltet:
- der Typ des Spiels, - die minimale Anzahl von Spielern in dem Spiel innerhalb einer Kommunikationssitzung,
- die maximale Anzahl von Spielern in dem Spiel innerhalb einer Kommunikationssitzung,
- eine Angabe, ob der jeweilige Spieler nach einer unterbrochenen Verbindung wieder in das Spiel eingetreten ist, - eine Identifizierungsangabe des jeweiligen Spiels, mit der der Server 201 jede Nachricht von einem mobilen Rechner 220, 230, 240 jeweils einer Kommunikationssitzung und einem Spiel eindeutig zuordnet, - Synchronisationsobjekte, unter deren Verwendung eine im weiteren beschriebene Synchronisation der Zustände des Programms durchgeführt wird,
- eine Zeitangabe, mit der angegeben ist, wie lange eine Verbindung unterbrochen werden kann, so dass noch immer ein Wiedereintreten eines Spielers in das Spiel nach einem erneutem Verbindungsaufbau ermöglicht wird.
Unter Bezugnahme auf die Fig.l und Fig.3 wird das Ausführungsbeispiel der Erfindung im weiteren näher erläutert.
Fig.l zeigt einen zeitlichen Verlauf 100 der verschiedenen Zustände in dem interaktiven Programm 101.
Es wird im weiteren davon ausgegangen, dass n-Spieler an dem Spiel teilnehmen und die entsprechenden n mobile Rechner 220, 230, 240 schon eine Kommunikationsverbindung mit dem Server 201 aufgebaut haben.
Diese Situation ist durch ein Programm 102 des ersten mobilen Rechners 220, ein Programm 103 des zweiten Rechners 230 sowie ein Programm 104 des n-ten Rechners 240 symbolisiert.
Nimmt ein Benutzer eines mobilen Rechners 220, 230, 240 eine Handlung innerhalb des Spiels vor, wird beispielsweise ein
Objekt mittels eines Tastendrucks oder Mausklicks ausgewählt, so wird die entsprechende Auswahlinformation bei bestehender Verbindung dem Server 201 mitgeteilt und der Zustand des interaktiven Programms verändert sich von einem Ausgangszustand vor Verarbeitung der Auswahlinformation zu einem Endzustand nach erfolgter Verarbeitung der Auswahlinformation durch den Server 201. Fig.l zeigt symbolisch einen ersten Zustand 105, der durch eine interne Steuerung durch den Server 101 in einen zweiten Zustand 106 übergeht.
Nach Empfang einer Zustandsveränderungsanfrage 107 von dem ersten Rechner, symbolisiert durch einen Pfeil, wird eine Zustandsveränderung in einen dritten Zustand 108 durchgeführt .
Nach Übergang in einen vierten Zustand 109, wobei die
Zustandsveränderung durch den Server 101 selbst erzeugt wurde, ist in Fig.l eine weitere
Zustandsveränderungsanforderung 110, diesmal durch das Programm des zweiten mobilen Rechners 103, als externe
Zustandsveränderungsanforderung 110 mittels eines Pfeils symbolisiert. Aufgrund der externen
Zustandsveränderungsanforderung 110 geht das interaktive
Programm 101 in dem Server 201 in einen fünften Zustands 111 über.
Nach Übergang in einen sechsten Zustand 112 und einen siebten Zustand 113, welche Zustandsveranderungen durch den Server 201 selbst generiert worden sind, geht das interaktive Programm 101 aufgrund einer weiteren externen
Zustandsveränderungsanforderung 114, gesendet von dem Programm 103 des zweiten mobilen Rechners 230, in einen achten Zustand 115 über.
Aufgrund einer weiteren externen
Zustandsveränderungsanforderung 116, diesmal gesendet von dem Programm 104 des n-ten Rechners 240, geht das interaktive Programm 101 in einen neunten Zustand 117 über.
Weitere Zustandsveranderungen in weitere Zust nde 118, 119, 120 und 121 werden von dem Server 101 generiert. Nun wird aus Gründen der einfacheren Darstellung angenommen, dass die Verbindung zwischen dem ersten Rechner 220 und dem Server 201 unterbrochen wird, was durch einen Unterbrechungspfeil 122 in Fig.l symbolisiert ist.
Die Unterbrechung der Verbindung mit dem ersten Rechner 220 kann durch Unterbrechung der physikalischen Verbindung selbst erfolgen, die durch den Server 201 festgestellt wird. Die Unterbrechung der Verbindung kann auch in einer nicht erfolgten Signalisierung, das heißt in einer nicht empfangenen grundsätzlich gemäß vorgegebener Spielregeln erforderliche Nachrichten gesehen werden.
Obwohl die Verbindung zu einem der teilnehmenden mobilen Rechner nun unterbrochen ist, werden von dem Server 201 weitere Zustandsveranderungen durchgeführt, die zu weiteren Zuständen 123, 124, 125, 126 des interaktiven Programms 101 führen.
Anschaulich kann von dem Server 201 aufgrund der unterbrochenen Verbindung zu dem ersten Rechner 220 mindestens eine der folgenden Maßnahmen getroffen werden, um eine Weiterführung des Programms 101 insbesondere für die weiteren Rechner 230, 240 zu gewährleisten: - das interaktive Programm kann mit den weiteren Teilnehmern, das heißt mit den weiteren Rechnern, sofort weitergeführt werden,
- das interaktive Programm 101 kann unmittelbar beendet werden, - der Teilnehmer, dessen Verbindung unterbrochen worden ist, kann durch einen weiteren Teilnehmer ersetzt werden, wobei der Spielzustand des ausscheidenden Teilnehmers innerhalb des Programms 101 übernommen werden kann oder nicht,
- der mobile Rechner, dessen Verbindung unterbrochen worden ist, kann durch das interaktive Programm 101 selbst bei der
Weiterführung des Programms simuliert werden, - es können Maßnahmen getroffen werden, um einen Wiedereintritt des Teilnehmers, der aus dem Echtzeitstrategie-Spiel durch Unterbrechung der Verbindung ausgeschieden ist, wieder m das Spiel einsteigen will; ein Beispiel für eine solche Vorbereitung des Wiedereintritts ist das Starten eines Timers, mit dem angegeben wird, für wie lange ein Wiedereintritt des ausscheidenden Teilnehmers m das Echtzeitstrategie-Spiel überhaupt noch möglich ist.
Ab dem Zeitpunkt der Unterbrechung der Verbindung werden von dem Server 201 alle Zustandsveranderungen m dem interaktiven Programm 101 protokolliert und m einer Protokolldatei gespeichert .
Will nun der erste Rechner 220 nach erneutem
Verbmdungsaufbau wieder in das Spiel, das heißt in das interaktive Programm 101 einsteigen, so werden von dem Server 201 die seit dem Verbindungsabbruch durchgeführten Zustandsveranderungen oder der gesamte Zustand, m dem sich das interaktive Programm 101 bei beantragtem Wiedereinstieg des ersten Rechners 220 befindet, an den ersten Rechner 220 übertragen in Form einer Zustandsaktualierungsnachricht 128 (symbolisiert durch Bezugszeichen 127 und 128 m Fig.l).
Die Vorgehensweise ist anschaulich noch einmal m Fig.3 m Form eines Ablaufdiagramms dargestellt.
Wahrend einer ersten Phase (Block 300) lauft das interaktive Programm 101.
In einem weiteren Schritt wird die Verbindung zu einem Teilnehmer unterbrochen und der aktuelle Programmzustand zur Zeit der Verbindungsunterbrechung wird gespeichert (Schritt 301) .
Das Programm w rd in weiteren Schritten m dem Server unter Berücksichtigung von Zustandsveranderungsnachrichten seitens der weiteren mobilen Rechner 230, 240, die noch in Verbindung stehen mit dem Server 201, sowie durch Zustandsveranderungen, die von dem Server 201 selbst erzeugt werden, weitergeführt (Block 302) .
Während der Weiterführung des interaktiven Programms 101 werden alle Zustandsveranderungen und/oder alle Endzustände, die durch eine Zustandsveränderung verursacht worden sind, in dem Speicher 203 des Servers in einer Protokolldatei gespeichert (Schritt 303) .
Nach erfolgtem Verbindungsaufbau des ersten Rechners 220 mit dem Server 201 und dem beantragten Wiedereintritt des ersten mobilen Rechners 220 in das interaktive Programm 101 (Block 304) wird von dem Server 201 der aktuelle
Programmzustand (Schritt 305) und der Programmzustand bei Verbindungsunterbrechung mit dem ersten mobilen Rechner 220 aus dem Speicher 203 des Servers 201 ausgelesen (Schritt 306) .
Weiterhin wird überprüft, ob der erste Rechner 220 wieder in das interaktive Programm 101 eingebunden werden darf (Schritt 307) .
Ist dies der Fall, so wird der aktuelle Programmzustand oder die erfolgten Zustandsveranderungen von dem Server 201 an den ersten mobilen Rechner 220 übertragen, der erste mobile Rechner 220 wird wieder in das interaktive Programm 101 eingebunden und das interaktive Programm 101 wird weitergeführt, nunmehr wieder mit dem ersten mobilen Rechner 220 als Teilnehmer (Schritt 308) .
Darf der erste Rechner 220 nicht mehr in das interaktive Programm 101 eingebunden werden, so wird der beantragte Beitritt zu dem interaktiven Programm abgewiesen
(Schritt 309) und das Programm 101 wird weitergeführt ohne den ersten Rechner 220 als Teilnehmer. In Schritt 308 werden die Daten übertragen, die einen geringeren Bandbreitenbedarf zur Datenübertragung erfordern. In anderen Worten bedeutet dies, dass der gesamte aktuelle Programmzustand an den ersten mobilen Rechner 220 übertragen wird, wenn das zu übertragende Datenvolumen für den aktuellen gesamten Programmzustand geringer ist als für die Übertragung der seit Verbindungsunterbrechung durchgeführten Zustandsveranderungen und umgekehrt.
Ein Beispiel für Elemente, die im Rahmen des aktuellen Programmzustands übertragen werden, ist beispielsweise der
Aufbau der Spielkarte einer Mission des Computerspiels
TM "Command&Conquer ", der Aufbau des gesamten Modells der Mission, der Aufbau der einzelnen Objekte innerhalb der Spielkarte sowie unterschiedliche Rahmenparameter, die beispielsweise den Schwierigkeitsgrad oder andere Elemente des Spiels beschreiben.
Unter Verwendung der protokollierten Zustandsveranderungen in der Protokolldatei wird eine Synchronisation des Programms, das auf dem ersten Rechner 220 abläuft, mit dem auf dem Server 201 ablaufenden interaktiven Programm 101 durchgeführt.
Nach erfolgter Synchronisation ist der erste Rechner 220 wieder vollständig in das Spiel, das heißt in das interaktive Programm 101 eingebunden und das interaktive Programm 101 läuft wieder normal weiter.
Im weiteren werden einige Alternativen zu dem oben dargestellten Ausführungsbeispiel erläutert.
In einer alternativen Ausführungsform ist es vorgesehen, dass nach Abbruch der Verbindung in dem ersten mobilen Rechner 220 das Programm, das heißt das Echtzeitstrategie-Spiel, selbständig weiter ausgeführt wird. Dies hat zur Folge, dass auf der Seite des ersten mobilen Rechners 220 andere Zustandsveranderungen auftreten als bei dem interaktiven Programm 101 auf der Seite des Servers 201, das in dem Server 201 trotz Verbindungsunterbrechung weiterläuft.
Wird nun nach erneutem Verbindungsaufbau versucht, den ersten mobilen Rechner 220 wieder in das Spiel als Teilnehmer einzubinden, so treten Konsistenzprobleme zwischen den einzelnen Zuständen in dem serverseitigen interaktiven Programm 101 und dem Programm 102 auf der Seite des ersten mobilen Rechners 220 auf.
Diese Konsistenzprobleme können auf unterschiedliche bekannte Weise zur Lösung von Dateninkonsistenzen verteilter Datenbanken, behoben werden.
Gemäß dem alternativen Ausführungsbeispiel wird der Programmzustand in dem ersten mobilen Rechner 220 durch den Programmzustand in dem Server 201 überschrieben.
Es ist darauf hinzuweisen, dass die Erfindung nicht auf ein Echtzeitstrategie-Spiel oder überhaupt auf ein Computerspiel beschränkt ist. Der Mechanismus ist auf jede Form eines interaktiven Programms anwendbar, das nach unterbrochener Verbindung mit einem Teilnehmer weiterläuft und bei dem
Zustandsveranderungen durch den Server vorgenommen werden.
Auch ist die Erfindung nicht auf eine spezifische Funkverbindung, das heißt auf ein Kommunikationsnetz gemäß einem Mobilfunk-Standard wie GSM oder UMTS, beschränkt. Jede Art von Kommunikationsverbindung kann im Rahmen der Erfindung eingesetzt werden, beispielsweise eine übliche Festnetz- Verbindung.
Hierbei sei bemerkt, daß von der Art und Dauer des
Verbindungsabbruchs auf eine geeignete Maßnahme des Servers abgestellt werden kann. So ist es bspw. möglich, bei einer Überschreitung einer vorgegeben Zeitdauer nach Abbruch der Verbindung zwischen Server und erstem (mobilen) Rechner, einen Wiedereinstieg des ersten Rechners in das auf dem Server ablaufende Programm nur mehr zuzulassen, wenn die Summe der Veränderungen anstelle der einzelnen
Veränderungsschritte von dem Server auf den ersten Rechner (Client) geladen wird. Dies hat den Vorteil, daß der Server nur für eine gewisse Zeitdauer die einzelnen
Zustandsveranderungen seit Verbindungsabbruch mit dem ersten Rechner protokolliert und somit die Liste mit Kommandos in einem überschaubaren, d.h. insbesondere durchführbaren Rahmen bleibt.
Auch kann der Server selbständig entscheiden, daß bei Überschreitung einer bestimmten Zeitdauer, in der keine Daten zwischen Server und Client ausgetauscht werden konnten, ein Verbindungsabbruch vorliegt. Der Server leitet in diesem Fall geeignete Maßnahmen ein, um den Zustand des Clients persistent für einen Wiedereinstieg vorzuhalten.
Hierbei ist es möglich, daß für den Client die Zustandsänderungen notiert (protokolliert) werden, die mit Fortschreiten des Programms stattfinden oder aber das eine Aktion des Clients selbst - für die Zeit des Verbindungsabbruchs - simuliert und protokolliert wird.
Meldet sich der Client nach der Dauer des Verbindungsabbruchs zurück, so werden ihm die Veränderungen im Zustandsautomaten des gesamten verteilten Programms mitgeteilt, sei es in Form der einzelnen Zustandsübergänge oder aber als Ergebnis der Zustandsübergänge. In diesem Dokument ist folgende Veröffentlichung zitiert: [1] EP 0 862 123

Claims

Patentansprüche
1. Verfahren zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, wobei das auf dem Server ablaufende Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterläuft und Zustandsveranderungen durchführt, a) bei dem auf dem Server, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert wird; b) bei dem das auf dem Server ablaufende Programm nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt wird, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms, protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden; und c) bei dem eine erneute Verbindung des ersten Rechners mit dem Server erfolgt und anhand des abgespeicherten Zustands und der protokollierten Zustandsveranderungen eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt wird.
2. Verfahren nach Anspruch 1, bei dem die protokollierten Zustandsveranderungen als eine Folge von Kommandos zum Durchlaufen aller Zustände seit Unterbrechung der Verbindung und/oder die jeweils neuen Zustände, mitprotokolliert werden.
3. Verfahren nach Anspruch 1 oder 2, bei dem zur Synchronisation entschieden wird, ob zu dem ersten Rechner die Kommandos zum Durchlaufen aller
Zustände bis zu einem aktuellen Zustand oder das Ergebnis der Zustandsveränderung übertragen wird, abhängig davon, was im Hinblick auf eine erforderliche Bandbreite zur Übertragung und/oder auf eine erforderliche Rechenkapazität zur Synchronisation des ersten Rechners ökonomischer ist.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem mittels eines auf einem zweiten Rechner ablaufenden Programms auf das auf dem Server ablaufende Programm zugegriffen wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem als erster Rechner und/oder als zweiter Rechner mobile Rechner eingesetzt werden.
6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem die Verbindung des ersten Rechners mit dem Server über eine Funkschnittstelle, insbesondere GSM, DECT oder UMTS durchgeführt wird.
7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem die Zustandsveranderungen des auf dem Server ablaufenden Programms für eine vorbestimmte Zeitdauer protokolliert werden.
8. Verfahren nach einem der Ansprüche 1 bis 7, eingesetzt in einer der folgenden Anwendungen:
• Multi-User-Engineering durch Zugriff auf eine gemeinsame Serveranwendung,
• Administration von verteilten Anwendungen, • Multiplayer-Spiele, oder
• Multiplayer-Spiele, bei denen die Spieler mittels mobiler Rechner über eine Funkschnittstelle auf das von dem Server bereitgestellte Spiel zugreifen.
9. Verfahren nach einem der Ansprüche 1 bis 8, bei dem die Synchronisation transparent für das auf dem Server ablaufende Programm innerhalb einer Middleware des Servers durchgeführt wird.
10. Anordnung zur Synchronisation eines auf einem ersten
Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, wobei das auf dem Server ablaufende Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterlauft und Zustandsveranderungen durchfuhrt, mit a) dem ersten Rechner, b) dem Server, wobei der erste Rechner und der Server über eine Verbindung miteinander verbunden sind, c) wobei der Server derart eingerichtet ist, dass folgende Schritte durchfuhrbar sind:
(1) auf dem Server wird, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert;
(2) das auf dem Server ablaufende Programm wird nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden; und
(3) es erfolgt eine erneute Verbindung des ersten Rechners mit dem Server und anhand des abgespeicherten Zustands und der protokollierten Zustandsveranderungen wird eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt.
11. Anordnung nach Anspruch 10, mit mindestens einem weiteren zweiten Rechner, der mit dem Server über eine Verbindung verbunden ist.
12. Anordnung nach Anspruch 10 oder 11, bei der der erste Rechner und/oder mindestens ein zweiter Rechner, der mit dem Server über eine Verbindung verbunden ist, mobile Rechner ist/sind.
13. Anordnung nach einem der Ansprüche 10 bis 13, bei der die Verbindung des ersten Rechners und/oder mindestens eines zweiten Rechners mit dem Server eine Funkverbindung, insbesondere gemäß GSM, DECT oder UMTS ist.
14. Anordnung nach einem der Ansprüche 10 bis 13, bei der der Server eine Middleware aufweist, innerhalb der die Synchronisation transparent für das auf dem Server ablaufende Programm durchgeführt werden kann.
15. Anordnung nach einem der Ansprüche 10 bis 14, eingesetzt in einer der folgenden Anwendungen: • Multi-User-Engineering durch Zugriff auf eine gemeinsame Serveranwendung,
• Administration von verteilten Anwendungen,
• Multiplayer-Spiele, oder
• Multiplayer-Spiele, bei denen die Spieler mittels mobiler Rechner über eine Funkschnittstelle auf das von dem Server bereitgestellte Spiel zugreifen.
16. Computerlesbares Speichermedium, in dem ein Computerprogramm zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, wobei das auf dem Server ablaufende Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterläuft und Zustandsveranderungen durchführt, gespeichert ist, das, wenn es von einem Prozessor ausgeführt wird, folgende Verfahrensschritte aufweist: • auf dem Server wird, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert;
• das auf dem Server ablaufende Programm wird nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms, protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden; und
• es erfolgt eine erneute Verbindung des ersten Rechners mit dem Server und anhand des abgespeicherten Zustands und der protokollierten Zustandsveranderungen wird eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt.
17. Computerprogramm-Element zur Synchronisation eines auf einem ersten Rechner ablaufenden Programms mit einem auf einem Server ablaufenden Programm, wobei das auf dem Server ablaufende Programm auch ohne eine Verbindung des Servers zu dem ersten Rechner weiterläuft und Zustandsveranderungen durchführt, das, wenn es von einem Prozessor ausgeführt wird, folgende Verfahrensschritte aufweist :
• auf dem Server wird, sobald eine bestehende Verbindung zwischen dem ersten Rechner und dem Server unterbrochen ist, der Zustand des ersten Rechners innerhalb des auf dem Server ablaufenden Programms abgespeichert;
• das auf dem Server ablaufende Programm wird nach Unterbrechung der Verbindung zu dem ersten Rechner fortgesetzt, wobei Zustandsveranderungen des auf dem Server ablaufenden Programms, protokolliert werden, welche Zustandsveranderungen zumindest teilweise durch den Server verursacht werden; und es erfolgt eine erneute Verbindung des ersten Rechners mit dem Server und anhand des abgespeicherten Zustands und der protokollierten Zustandsveranderungen wird eine Synchronisation des auf dem ersten Rechner ablaufenden Programms mit dem auf dem Server ablaufenden Programm durchgeführt.
EP01911343A 2000-02-24 2001-01-11 Verfahren und anordnung zur synchronisation eines auf einem ersten rechner ablaufenden programms mit einem auf einem server ablaufenden programm, computerlesbares speichermedium und computerprogramm-element Withdrawn EP1316012A2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10008616 2000-02-24
DE10008616 2000-02-24
PCT/DE2001/000093 WO2001063399A2 (de) 2000-02-24 2001-01-11 Verfahren und anordnung zur synchronisation eines auf einem ersten rechner ablaufenden programms mit einem auf einem server ablaufenden programm, computerlesbares speichermedium und computerprogramm-element

Publications (1)

Publication Number Publication Date
EP1316012A2 true EP1316012A2 (de) 2003-06-04

Family

ID=7632215

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01911343A Withdrawn EP1316012A2 (de) 2000-02-24 2001-01-11 Verfahren und anordnung zur synchronisation eines auf einem ersten rechner ablaufenden programms mit einem auf einem server ablaufenden programm, computerlesbares speichermedium und computerprogramm-element

Country Status (6)

Country Link
US (1) US20030149721A1 (de)
EP (1) EP1316012A2 (de)
JP (1) JP2003529826A (de)
CA (1) CA2400967A1 (de)
IL (2) IL151330A0 (de)
WO (1) WO2001063399A2 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060030408A1 (en) * 2004-07-19 2006-02-09 Nokia Corporation Game play with mobile communications device synchronization
US7739680B1 (en) * 2005-07-21 2010-06-15 Sprint Communications Company L.P. Application server production software upgrading with high availability staging software
US7887420B2 (en) * 2005-09-12 2011-02-15 Igt Method and system for instant-on game download
WO2007092542A2 (en) * 2006-02-07 2007-08-16 Wms Gaming Inc. Wager gaming network with wireless hotspots
CN104902113B (zh) 2008-04-02 2018-10-19 特维里奥公司 处理电话会话的系统和方法
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
US8081984B2 (en) 2008-04-30 2011-12-20 Telefonaktiebolaget L M Ericsson (Publ) UL/DL scheduling for full bandwidth utilization
WO2009139437A1 (ja) * 2008-05-14 2009-11-19 日本電気株式会社 クライアント装置、その制御方法、プログラム、サーバ装置、その制御方法、通信システム及びその制御方法
EP2335402A4 (de) 2008-10-01 2013-04-24 Twilio Inc Telefonie-web-ereignis-system und verfahren
BRPI0921978A2 (pt) * 2008-11-26 2019-01-15 Calgary Scient Inc método de fornecimento de acesso remoto a estado de programa de aplicativo e meios de armazenamento.
CN102415068B (zh) 2009-03-02 2015-09-02 特维里奥公司 用于多租户电话网络的方法和系统
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
US9398622B2 (en) 2011-05-23 2016-07-19 Twilio, Inc. System and method for connecting a communication to a client
DE102011107508B4 (de) * 2011-07-15 2014-07-31 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Synchronisieren der Datenbestände von Datenbanken
EP2745464A4 (de) 2011-08-15 2015-10-14 Calgary Scient Inc Nichtinvasiver fernzugriff auf ein anwendungsprogramm
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
CN103959708B (zh) 2011-09-30 2017-10-17 卡尔加里科学公司 包括用于协作远程应用共享和注释的交互式数字表层的非耦合应用扩展
AU2012342170B2 (en) 2011-11-23 2017-03-09 Calgary Scientific Inc. Methods and systems for collaborative remote application sharing and conferencing
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
JP5635027B2 (ja) * 2012-03-12 2014-12-03 日本電信電話株式会社 コンピュータシステム及びシステム制御方法
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US9849389B2 (en) * 2012-10-03 2017-12-26 Gree, Inc. Method of synchronizing online game, and server device
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9160696B2 (en) 2013-06-19 2015-10-13 Twilio, Inc. System for transforming media resource into destination device compatible messaging format
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
US9516101B2 (en) 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
WO2016065080A1 (en) 2014-10-21 2016-04-28 Twilio, Inc. System and method for providing a miro-services communication platform
US9477975B2 (en) 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319774A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Recovery facility for incomplete sync points for distributed application
EP0664901B1 (de) * 1992-12-23 1996-09-18 Otlc Atomares befehlsystem
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US5566225A (en) * 1994-11-21 1996-10-15 Lucent Technologies Inc. Wireless data communications system for detecting a disabled condition and simulating a functioning mode in response to detection
US5727202A (en) * 1995-10-18 1998-03-10 Palm Computing, Inc. Method and apparatus for synchronizing information on two different computer systems
US5974461A (en) * 1996-06-03 1999-10-26 Webtv Networks, Inc. Method for automatically regenerating information at a client system in the event of power or communication disruption between the client system and the server
US6269402B1 (en) * 1998-07-20 2001-07-31 Motorola, Inc. Method for providing seamless communication across bearers in a wireless communication system
US6574239B1 (en) * 1998-10-07 2003-06-03 Eric Morgan Dowling Virtual connection of a remote unit to a server
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6560655B1 (en) * 1999-06-22 2003-05-06 Microsoft Corporation Synchronization manager for standardized synchronization of separate programs
US6519627B1 (en) * 1999-09-27 2003-02-11 International Business Machines Corporation System and method for conducting disconnected transactions with service contracts for pervasive computing devices
EP1570354A4 (de) * 2002-11-19 2008-07-02 Nexaweb Technologies Inc System und verfahren zur webgestützten stateful-datenverarbeitung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0163399A2 *

Also Published As

Publication number Publication date
JP2003529826A (ja) 2003-10-07
US20030149721A1 (en) 2003-08-07
CA2400967A1 (en) 2001-08-30
WO2001063399A3 (de) 2003-03-27
WO2001063399A2 (de) 2001-08-30
IL151330A (en) 2007-12-03
IL151330A0 (en) 2003-04-10

Similar Documents

Publication Publication Date Title
WO2001063399A2 (de) Verfahren und anordnung zur synchronisation eines auf einem ersten rechner ablaufenden programms mit einem auf einem server ablaufenden programm, computerlesbares speichermedium und computerprogramm-element
DE69838506T2 (de) Verfahren für transaktionen zwischen verteilten datenbanken
DE60002707T2 (de) Datenverteilung in einem server-cluster
DE10134492B4 (de) Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster
DE69729399T2 (de) Datenverwaltungssystem und Verfahren für replizierte Daten
DE69838262T2 (de) Allgemeine benutzer-authentifizierung für netz-rechner
DE10144023B4 (de) Vorrichtung und Verfahren zur automatischen Benutzerprofil-Konfiguration
EP1746502A1 (de) Technik zur Migration einer Host-Umgebung auf eine neue Systemplattform
EP1174818A1 (de) Verfahren zum Bereitstellen eines Spiels für ein Mobilfunk-Endgerät eines Teilnehmers sowie Programm-Module und Mittel hierfür
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
DE102006037250A1 (de) Verfahren und Vorrichtungen zur Identitätsverifikation
DE602004006224T2 (de) Verfahren und Vorrichtung zur Datensynchronisierung eines verteilten Datenbanksystems
EP1701478A1 (de) Anordnung und Verfahren zur automatischen Konfiguration von Schnittstellen einer drahtlosen Verbindung zur Datenübertragung
DE69602193T2 (de) Optimiertes synchronisationsverfahren
DE102004047371A1 (de) Verfahren zum Verteilen von Software und Konfigurationsdaten sowie entsprechendes Datennetz
DE102004052440B3 (de) Verfahren zum rechnergestützten Verwalten einer Telekommunikations-Konferenz und Telekommunikation-Konferenz-Servereinrichtungen
DE102005002803B3 (de) Kommunikationssystem mit einer Konferenz-Servereinrichtung, einer Konferenz-Steuereinheit, mehreren Moderator-Einheiten, mehreren Telekommunikations-Einrichtungen und einem Verfahren zum Steuern einer Konferenz
EP1673915B1 (de) Betriebsverfahren für einen server und hiermit korrespondierende gegenstände
DE602005003845T2 (de) Dynamische umkonfiguration verteilter zusammengesetzter automaten
EP4411556A1 (de) Dezentrale datenbank, verfahren zum unterhalten einer solchen und darauf basierende konferenz-anwendung
DE102005049077A1 (de) Verfahren zum Übertragen von Mediendaten, Kommunikationsnetzwerk-Einheit und Computerprogrammelement
DE212022000191U1 (de) System zur digitalen Anzeige
WO2008003404A1 (de) Verfahren und kommunikationssystem zur steuerung des datenflusses über netzwerkknoten
EP2099200B1 (de) Verfahren und Clienteinrichtung zum Anzeigen von Inhalten an einem mobilen Endgerät
EP1316898A2 (de) Einfache und sichere Methode zum Sperren von Datensätzen aus CGI-Scripten heraus

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20020807

AK Designated contracting states

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

RBV Designated contracting states (corrected)

Designated state(s): DE ES FR GB

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NOKIA SIEMENS NETWORKS GMBH & CO. KG

17Q First examination report despatched

Effective date: 20070914

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NOKIA SIEMENS NETWORKS S.P.A.

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: NOKIA SIEMENS NETWORKS GMBH & CO. KG

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20081108