WO2003032156A2 - Verfahren zum aktuellhalten von software auf verschiedenen endgeräten - Google Patents

Verfahren zum aktuellhalten von software auf verschiedenen endgeräten Download PDF

Info

Publication number
WO2003032156A2
WO2003032156A2 PCT/DE2002/003726 DE0203726W WO03032156A2 WO 2003032156 A2 WO2003032156 A2 WO 2003032156A2 DE 0203726 W DE0203726 W DE 0203726W WO 03032156 A2 WO03032156 A2 WO 03032156A2
Authority
WO
WIPO (PCT)
Prior art keywords
software
terminal
pal
sof
pec
Prior art date
Application number
PCT/DE2002/003726
Other languages
English (en)
French (fr)
Other versions
WO2003032156A3 (de
Inventor
Josef Weiss
Werner Dorrer
Thomas Röck
Andreas Mayerhofer
Original Assignee
Siemens Aktiengesellschaft
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 Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to US10/491,526 priority Critical patent/US20040237078A1/en
Priority to BR0213061-0A priority patent/BR0213061A/pt
Priority to EP02774441A priority patent/EP1438658A2/de
Publication of WO2003032156A2 publication Critical patent/WO2003032156A2/de
Publication of WO2003032156A3 publication Critical patent/WO2003032156A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Definitions

  • the invention relates to a method for keeping software up-to-date on various end devices which are connected to a communication network via which they can communicate with one another.
  • Modern users generally have various devices such as personal computers, for example desktop and / or laptop computers, mobile radio devices, handheld computers, etc.
  • devices such as personal computers, for example desktop and / or laptop computers, mobile radio devices, handheld computers, etc.
  • software programs for the management of data run on the devices listed, for example relating to contact information or appointment records of the user.
  • a new entry in the diary software of his handheld computer for example, now makes it necessary for a user to use a relatively complex procedure to access all of his additional devices on which he also wants to use the latest version of this data bring up to date.
  • the devices are usually to be connected to one another via interfaces which usually differ from device to device. It is also advantageous if the same software runs on the devices to be compared in order to make the update process simple and unproblematic.
  • a disadvantage of this procedure, as practice shows, is that on the one hand the constantly necessary update process is perceived as tedious by many users and these updates are therefore often carried out only irregularly, which often leads to different data records on the different devices.
  • the different devices run under different operating systems, with different software programs for the user. Work on a contact data record, for example, so that the update process is made even more difficult and information is often lost when the data is compared.
  • Communication network is transmitted to the second terminal, and
  • the latest software status is simply transferred to another desired device, where software corresponding to the software running on the original device is provided with the current status and then continues to run in the last status. It is particularly advantageous if the software corresponding to the software on the first terminal is transferred from the storage location to the second terminal on the second terminal.
  • a software server is used as the storage location of the software, which is connected to the communication network.
  • the software is stored on this centrally or is generated on request and can be transferred to the desired end device if required.
  • the storage device of the software is the terminal on which the software was originally stored expires, is used. In this way, independence from a central server is achieved when changing between two end devices.
  • step a the software state is packaged in a message which is transmitted to the second terminal.
  • agent software is used as software.
  • Such software has special properties which are explained in detail in the description below. Because of these properties, agents are particularly suitable for use in the method according to the invention.
  • the message also contains the storage location of the software, from where the software is then transferred to the desired new terminal.
  • the message contains at least the name of the main class and the location of the agent's class definitions.
  • the class definitions are compiled JAVA code.
  • the code of each class is usually saved in a separate class file. It is there in a standardized binary form that can be read by any interpreter.
  • the interpreter When the program is started, the interpreter translates the class file into computer-specific machine code and generates the program. Whenever he has to create a new class, he gets its definition from its location.
  • the main class is the class from which an interpreter can find the paths to all classes that he needs to create the agent step by step.
  • the request may be made by the second terminal via the communication network to the first terminal, where it is transmitted to the software, and the software then takes the appropriate steps for a transfer to the new terminal ,
  • a unique address of the terminal, to which the software and the software status is to be transferred is transmitted to the software so that it is also reliably transferred to the correct destination.
  • This address can either already be saved or can be entered by the user.
  • an IP address of the end device is used as the address.
  • the software already stored on the software server is then transferred to the end device - or, in the case of agent software, the software is generated and transferred to the end device -, the stored software status is also transferred, and provide the software with this so that it can continue to run in the most current state.
  • JAVA is used as the runtime environment.
  • the software used in connection with the invention can in principle be any software, such as word processing, etc.
  • the invention is particularly advantageous to use, for example, if the software is software for realizing voice connections and / or data connections, since in this case a connection can be transferred without interrupting the connection between two terminals.
  • FIGS. 3 and 4 a system for carrying out a method according to the invention in connection with a voice-over-IP connection of a user's terminal equipment to a remote station
  • Fig. 5 shows the life cycle of a
  • FIGS. 1 and 2 show a first simple example for keeping software sof or software states current on several end devices PEC, PAL.
  • a user has, for example, a desktop computer PEC and, on the other hand, also a handheld device PAL.
  • PAL handheld device
  • each of these devices PAL, PEC no longer runs its own software for a specific application, such as for contact management, which is then used on each of the devices PEC for each new or changed entry.
  • PAL would have to be adjusted again on the other device, but the user "only" has an executable software application for the respective specific application, which is transferred between the individual devices PEC, PAL on request.
  • the software sof in question is stored in the switched-off state of the terminals PEC, PAL on a software server SSE in a memory device SSD assigned to it. If the user now puts his desktop computer PEC into operation, a request to the software server SSE is transmitted either by a corresponding input by the user or automatically, and the desired software sof, such as contact management, is sent to the desktop in the last updated state -Computer PEC transmitted.
  • a communication network NET is naturally also to be understood as the case that, for example, the server is connected to a fixed network, while one or more of the terminals are connected to a mobile radio network, for example, and the connection is then established via this network.
  • a corresponding request is simply transmitted to the desktop computer PEC and the software sof is transmitted to the handheld PAL via the communication network NET.
  • agent software In an advantageous embodiment of the invention, the so-called agent technology is used, as will be explained in more detail below.
  • the software running on an end device is then "agent programs".
  • agent software In the rest of the text, the terminology is usually used that the respective software is agent software.
  • this agent software is made up of there are several “agents", a master agent and one or more slave agents. These can communicate with the master agent and are intended for the execution of special tasks, while the master agent, among other things, handles the communication "to the outside", so that from the outside the software also appears as "only” software.
  • an agent can move itself or be moved by another agent or an agent platform.
  • the request to transfer the software and the software status to another device is usually made by entering the software - or in the agent picture in the master agent - on the device on which the software is currently running.
  • the request is made from the outside, for example by input on another terminal, for example into another agent, which then brings the correspondingly desired agent from the desired terminal to the requesting terminal.
  • the master agent After the requested software (the master agent) has received the requests, it then initiates the necessary steps for its migration to the other end device.
  • the communication itself is preferably carried out via the Internet NET; the TCP / IP protocol (“Transmission Control Protocol / Internet Protocol”) is used as the transmission protocol for the software sof.
  • the software sof is received on the desktop computer after the request has been received stopped in its current state with all its parameters, settings etc. ("frozen") and transmitted in this state to the second terminal PAL, where it then continues in the last current state.
  • a software agent is a program that accepts an order and carries it out independently or performs user-defined tasks autonomously.
  • Mobile software agents are programs in the form of autonomous objects migrate around a network of heterogeneous computers - typically intranets or parts of the Internet - and perform services or perform tasks on behalf of a user.
  • a software agent thereby decides autonomously due loka- 1er circumstances whether, when and where they want to migrate, if necessary.
  • the dynamic process status of the software agent at certain stable program points is frozen by the agent system at the request of the software agent and packaged together with context information and a variable data part in a message to be sent.
  • the process status is thawed again and the agent continues seamlessly at the point where it was interrupted.
  • the strong migration the dynamic process status of the software agent is frozen by the agent system at any program point and packed together with context information and a variable data part in a message to be sent.
  • the process status is thawed again and the agent continues seamlessly at the point where it was interrupted.
  • a software agent interacts with the respective local environment - the agent system that currently houses it, and can also cooperate with other locally available or remote software agents.
  • a software agent can communicate with his client residing at another location, for example to deliver intermediate results or to request new data and instructions.
  • the latter is a rather rare event, since software agents are conceptually able to act largely autonomously.
  • the technology on which the software agents are based is described in US Pat. No. 5,603,031 and EP 0 634 719.
  • the following documents have also been presented to the public in connection with software agents: “Walter Brenner, Rüdiger Zarnekow, Hartmut Wittig: Intelligent software agents. Fundamentals and Applications, Springer Verlag Berlin, 1998 ";” Stan Franklin, Art Gaesser: Is it an Agent, or just a Program? A Taxonomy for Autonomous Agents.
  • the clone now represents an exact copy of the original, and in this way it is reliably ensured that no information, settings, etc. are lost during transmission.
  • the only prerequisite for the functioning of the invention is that the end devices used have the same runtime environment for the agent software, so that it can run on the different devices, and the same agent platform is also necessary.
  • the well-known JAVA is used as the runtime environment.
  • the agents are usually JAVA programs themselves and require JAVA everywhere as a runtime environment.
  • JAVA programs themselves and require JAVA everywhere as a runtime environment.
  • standardized interfaces of their platforms are necessary, through which they can interact.
  • Java is an object-oriented programming language developed by Sun for Internet applications. Java is similar to the C ++ programming language, but does not use its processor-specific adjustments. It is used to create platform-independent applets application parts that only require an interpreter and certain browsers, such as Netscape Navigator, Oracle PowerBrowser, Mosaic from Spyglass and Sun Hot Java. Java supports, among other things, text, hypertext, graphics, audio and animation functions.
  • Agents are complete applications and only require the interpreter and not a browser.
  • the entire software in its most current state is transferred from one device PEC to another device PAL of the user.
  • the software will end its service on the original device at the latest when the software starts to run on the “new” device.
  • the software can also run in parallel on several devices of one user, but not in the same software state.
  • the software status cannot be exchanged between running programs. It makes sense, however, that the software will only ever run on one device per user.
  • the software status of the software sof is in turn transmitted via the Internet NET to the software server SSE and in its storage device SSD in the most current status stored.
  • the software itself is not stored on the agent server SSE, since the class definition of the respective agents is stored there anyway and the agent itself can easily be generated again if a corresponding requirement is met.
  • the software server SSE naturally also offers a runtime environment for software agents.
  • a user can, for example, create a desired software agent - within the limits provided by the provider - using such a software agent server SSE via the Internet NET via a corresponding website.
  • the contact management mentioned above is again mentioned, which the user creates according to certain criteria - for example, which basic entries should be present, such as name, address, phone numbers, etc. Data can usually also be entered here.
  • the “finished” software agent is then transferred via the Internet to the respective end device of the user, where it is executed, transferred, etc., as already described above.
  • FIGS. 3 and 4 Another specific exemplary embodiment of the invention is illustrated with reference to FIGS. 3 and 4 in connection with Internet telephony (VoIP, “Voice over Internet Protocol”).
  • VoIP Internet telephony
  • the reference numerals (numbers) in brackets () each refer to FIG. 5.
  • the agent sof is created (1); At this point, the agent also receives all user information, such as settings, information about previous calls, and "Movement History", which contains the addresses of all computers on which the agent has already run, so that they can be conveniently listed in the future
  • the agent sof is then transferred to the user's desktop PEC (2), where it then runs, and from then on the agent sof, which in this case is a communication program , able to connect to or accept another terminal if desired by the user.
  • the call parameters are negotiated in a first step with the counterpart CLI via a signaling protocol sip (3).
  • the agent sof communicates with another agent sof or a communication application on the client computer CLI.
  • the communication as shown in FIG. 3 takes place via a proxy server PRO using the "Session Initiation Protocol" (SIP) sip
  • SIP Session Initiation Protocol
  • IETF Internet Engineering Task Force
  • SIP protocol is functionally comparable to the H.323 protocol and can set up, change and terminate interactive communication services.
  • the SIP information can be transported via TCP or UDP ("User Datagram Protocol").
  • SIP has an open internet-based structure and enables CLASS features ("Custom Local Area Signaling Service") such as the transmission of the identity of the caller or call forwarding in IP-based networks.
  • SIP is responsible for call signaling, user localization and registration. The quality of service, directory access and the session procedures are adopted by other protocols.
  • connection protocol rtp for example the RTP protocol ("Real Time Protocol").
  • RTP protocol was developed by the Audio-Video Transport Group of the IETF and is part of H.323 on the application layer and can network-based video or handle audio communication. To differentiate the media, RTP differentiates between different coding formats so that the transmitted data can be used regardless of the application.
  • the Real Time Protocol (RTP) is based on an end-to-end connection and supports multicast as well as unicast connections.
  • the protocol uses a time stamp that is specified by the respective RTP profile.
  • the RTP header has a 32-bit data field "Synchronization Source Identifier" ( ⁇ SRC).
  • ⁇ SRC Synchronization Source Identifier
  • CSRC Content Source Identifier
  • the communication agent sof follows him when prompted for the new terminal PAL.
  • a special sequence of events must occur so that the communication is not interrupted during this migration of the agent until the initialization routines have expired.
  • the agent sof copies itself to the new PAL device and takes all necessary steps (searching for audio and video devices, such as a sound card, camera, etc., testing the devices found, preparing and occupying the communication ports such as SIP or RTP ports) so that the signaling can be switched.
  • the original agent remains on the first terminal PEC until this has been successfully done and maintains the connection with the remote terminal CLI.
  • the new agent sof ie the clone of the original agent
  • the new terminal PAL (5) After the new agent sof, ie the clone of the original agent, has completed its initialization, it transfers the ongoing call to the new terminal PAL (5).
  • the old agent ends his Service, and the new agent sof, which is an identical copy of the old agent, continues the services and the call. In this way, interruptions in the connection can be reliably prevented.
  • the new agent transfers the ongoing conversation to himself using a SIP message (REINVITE) to the other party. He then terminates the "old” agent, who then only ensures that the "old” slaves are also terminated.
  • REINVITE SIP message
  • the desktop computer PEC is no longer involved in the communication; this now runs directly from the handheld computer PAL to the remote terminal CLI, as if communication had been started directly between the two terminals PAL, CLI.
  • the signaling of the “new” agent with the corresponding software of the remote station CLI takes place again, for example, via the SIP protocol, and the subsequent transmission of data as part of the communication then takes place, for example, via the RTP - Protocol as explained above instead.
  • the software status is sent back to the agent server SSE, (7) the agent is destroyed and the last, current agent status is stored on the agent server (8).
  • a uniform runtime environment such as JAVA
  • complete independence from the end device is achieved.
  • the only requirement is that the corresponding runtime environment for the software agents can run on the end device.
  • the respective agents can then be easily transferred between a wide variety of end devices and, in particular, also run on these.
  • the same software can therefore run on a wide variety of devices, such as personal computers (PC), PocketPC, handheld PCs, mobile devices, etc.
  • the network layer protocol is in usually uses the Internet Protocol, the connection to the IP network can be stationary or mobile (wireless).
  • the invention furthermore makes it possible in a simple manner to carry out administration of telephone books, address lists and other records or settings on any personal device Changes are then valid for all personal devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Aktuellhalten von Software (sof) auf verschiedenen Endgeräten (PEC, PAL), welche an ein Kommunikationsnetzwerk (NET) angebunden sind, über welches diese miteinander kommunizieren können. Auf Anforderung wird der Softwarezustand der einem der Endgeräte (PEC) ablaufenden Software (sof) über das Kommunikationsnetzwerk (NET) an das zweite Endgerät (PAL) übertragen wird, und eine auf dem zweiten Endgerät (PAL) ablaufende, der Software (sof) auf dem ersten Endgerät (PEC) entsprechende Software wird mit dem übertragenen Softwarezustand versehen läuft und auf dem zweiten Endgerät (PAL) in dem zuletzt auf dem ersten Endgerät (PEC) aktuellen Zustand weiter. Bei der verwendeten Software handelt es sich beispielsweise um eine Agentensoftware.

Description

Beschreibung
Verfahren zum Aktuellhalten von Software auf verschiedenen Endgeräten
Die Erfindung betrifft ein Verfahren zum Aktuellhalten von Software auf verschiedenen Endgeräten, welche an ein Kommunikationsnetzwerk angebunden sind, über welches diese miteinander kommunizieren können. Moderne Anwender verfügen in der Regel über verschiedene Geräte wie Personal-Computer, etwa Desktop- und/oder Laptop- Computer, Mobilfunkgeräte, Handheld-Computer, etc. In der Regel besteht dabei der Wunsch, auf all diesen Geräten die jeweils aktuellsten Daten zur Verfügung zu haben. So laufen beispielsweise auf den angeführten Geräten Softwareprogramme für die Verwaltung von Daten ab, etwa betreffend Kontaktinformationen oder Terminaufzeichnungen des Anwenders. Ein neuer Eintrag beispielsweise in die Terminkalender-Software seines Handheld-Computers macht es nun für einen Anwen- der notwendig, dass er in einer relativ aufwändigen Prozedur all seine zusätzlichen Geräte, auf denen er diese Daten ebenfalls in ihrer aktuellsten Version nutzen möchte, auf den letzten Stand bringen muss . Dazu sind in der Regel die Geräte über üblicherweise von Gerät zu Gerät unterschiedliche Schnittstellen miteinander zu verbinden. Vorteilhaft ist es auch, wenn auf den abzugleichenden Geräten dieselbe Software läuft, um den Updateprozess einfach und unproblematisch zu gestalten. Nachteilig an dieser Vorgangsweise ist nun, wie die Praxis zeigt, dass einerseits der ständig notwendige Updatevorgang von vielen Anwendern als mühsam empfunden und diese Updates daher oftmals nur unregelmäßig durchgeführt werden, was häufig zu sich voneinander unterscheidenden Datensätzen auf den unterschiedlichen Geräten führt. Andererseits tritt zumeist auch noch der Fall auf, dass die unterschiedlichen Geräte unter verschiedenen Betriebssystemen laufen, mit unterschiedlichen Softwareprogrammen für die Be- arbeitung etwa eines Kontaktdatensatzes, sodass hier der Updatevorgang zusätzlich noch erschwert wird und oftmals Informationen bei einem Abgleichen der Daten verloren gehen. Die oben genannten Probleme treten aber nicht nur bei den für viele Benutzer einsichtigen Fällen der Termin- und Datenverwaltung auf, sondern grundsätzlich auch bei jeder Änderung an der Software selbst, die ein Benutzer durchführt. Werden beispielsweise auf dem Desktop-Computer bestimmte Einstellungen an einer Software verändert, so müssen diese auf dem Laptop- Computer wiederum separat von dem Benutzer eingestellt werden, damit auf beiden Computern dieselbe Konfiguration benutzt werden kann.
In diesem Zusammenhang soll gleich vorweg eine Begriffsdefinition vorgenommen werden. Der eingangs eingeführte Begriff „Softwarezustand" bezieht sich in diesem Dokument einerseits auf tatsächliche Zustände betreffend die Software, d.h. Konfigurationsänderungen etc. an der Software selbst, andererseits sind darunter aber auch beispielsweise „Zustände" von Daten, die mit der entsprechenden Software bearbeitet, be- trachtet, etc. werden können, zu verstehen. In diesem Sinne befindet sich beispielsweise eine Terminverwaltungssoftware „X" mit den Datensätzen „A" und „B" in einem anderen Softwarezustand als dieselbe Terminverwaltungssoftware „X" mit den Datensätzen „A", „B" und „C". Es ist eine Aufgabe der Erfindung, für oben genannte Probleme eine Lösung anzugeben.
Diese Aufgabe wird mit einem eingangs erwähnten Verfahren dadurch gelöst, dass erfindungsgemäß
a) auf Anforderung zumindest der Softwarezustand der auf zu- mindest einem der Endgeräte ablaufenden Software über das
Kommunikationsnetzwerk an das zweite Endgerät übertragen wird, und
b) eine auf dem zweiten Endgerät ablaufende, der Software auf dem ersten Endgerät entsprechende Software mit dem über- tragenen, aktuellen Softwarezustand versehen wird und auf dem zweiten Endgerät in dem zuletzt auf dem ersten Endgerät aktuellen Zustand weiterläuft.
Mit Hilfe des erfindungsgemäßen Verfahrens wird einfach der aktuellste Softwarezustand auf ein anderes gewünschtes Gerät transferiert, wo eine der auf dem ursprünglichen Gerät ablaufenden Software entsprechende Software mit dem aktuellen Zustand versehen wird und dann in dem letzten Zustand weiterläuft. Besonders vorteilhaft ist es, wenn die der Software auf dem ersten Endgerät entsprechende Software auf dem zweiten Endgerät von einem Speicherort auf das zweite Endgerät übertragen wird. Während eine Übertragung des Varianten Teiles der Software, die oben auch als „Softwarezustand" bezeichnet wird, für ein Aktuellhalten unbedingt notwendig ist, uss eine Übertragung der Software an sich, d.h. des invarianten, ablauffähigen Teiles der Software, nicht unbedingt stattfinden. Allerdings bringt die Übertragung eines „Mit- oder Nachziehens" der Software an sich auf das zweite Endgerät - unabhängig davon, von welchem Ort die Software auf das zweite Endgerät gelangt - die Vorteile, dass die Software nur auf einem Gerät „installiert" werden muss, was naturgemäß den entsprechenden Aufwand verringert, und auf besonders zuverlässige Weise si- chergestellt ist, dass die Software auf dem jeweils gewünschten Endgerät in ihrem aktuellsten Zustand und auch in der selben Software-Version wie auf dem ursprünglichen Gerät abläuft.
Beispielsweise wird als Speicherort der Software ein Soft- wareserver verwendet, der an das Kommunikationsnetz angebunden ist. Auf diesem ist die Software zentral gespeichert bzw. wird bei Anforderung auf diesem erzeugt und kann bei Bedarf auf das jeweils gewünschte Endgerät übertragen werden.
Es kann aber auch vorgesehen sein, dass als Speicherort der Software das Endgerät, auf welchem die Software ursprünglich abläuft, verwendet wird. Auf diese Weise wird bei einem Wechsel zwischen zwei Endgeräten eine Unabhängigkeit von einem zentralen Server erreicht.
Ein technisch einfach zu realisierende Übertragung ist ge- währleistet, wenn bei dem erfindungsgemäßen Verfahren in Schritt a) der Softwarezustand in eine Nachricht verpackt wird, welche an das zweite Endgerät übermittelt wird.
Besonders einfach lässt sich das Verfahren realisieren wenn als Software eine Agentensoftware verwendet wird. Eine solche Software verfügt über spezielle Eigenschaften, die weiter unten in der Beschreibung detailliert erläutert werden. Aufgrund dieser Eigenschaften eignen sich Agenten für die Verwendung in dem erfindungsgemäßen Verfahren besonders gut.
Damit die Software rasch und zuverlässig auf das neue Endge- rät transferiert wird, ist es von Vorteil, wenn die Nachricht weiters noch den Speicherort der Software enthält, von wo die Software dann auf das gewünschte neue Endgerät transferiert wird. Im Falle von Softwareagenten ist es dabei nur notwendig, dass die Nachricht zumindest den Namen der Hauptklasse und den Speicherort der Klassendefinitionen des Agenten enthält. Nachdem die Nachricht gelesen wurde, kann im Falle von Agentensoftware der entsprechende, zumindest eine oder auch mehrere Agent/Agenten dann aus diesen Angaben auf dem zweiten Endgerät erzeugt und mit dem Softwarezustand versehen werden und dann ablaufen.
Die Klassendefinitionen sind kompilierter JAVA Code. Üblicherweise wird der Code jeder Klasse in einem eigenen Class- file abgespeichert. Er liegt dort in einer genormten binären Form vor, die von jedem Interpreter gelesen werden kann. Wird das Programm gestartet, übersetzt der Interpreter das Class- file in rechnerspezifischen Maschinencode und erzeugt das Programm. Immer wenn er dabei eine neue Klasse anlegen muss, holt er sich deren Definition von ihrem Speicherort. Die Hauptklasse ist jene Klasse, von welcher aus ein Interpreter Schritt für Schritt die Pfade zu allen Klassen findet, die er braucht um den Agenten zu erzeugen.
Möglich wäre es auch die Klassendefinitionen auf den persön- liehen Geräten lokal abzuspeichern, um den Ladevorgang zu beschleunigen, wobei man aber Versionsänderungen dann auf allen Geräten extra mitziehen üsste.
Damit ein Benutzer bei einem Wechsel auf das neue Endgerät seine Software im aktuellen Softwarezustand nachziehen kann, ist grundsätzlich vorgesehen, dass die Anforderung mittels des ersten Endgerätes, auf welchem die Software abläuft, abgesetzt wird.
Alternativ oder zusätzlich ist es aber auch möglich, dass die Anforderung von dem zweiten Endgerät über das Kommunikations- netzwerk an das erste Endgerät gestellt wird, wo sie an die Software übermittelt wird, und diese dann die entsprechenden Schritte für einen Transfer auf das neue Endgerät setzt.
Bei der Anforderung wird dabei eine eindeutige Adresse des Endgerätes, an welches die Software und der Softwarezustand zu transferieren ist, an die Software übermittelt, damit diese auch zuverlässig an den richtigen Bestimmungsort transferiert werden. Diese Adresse kann entweder bereits abgespeichert oder aber auch extra von dem Benutzer eingegeben werden.
Bei Verwendung des Internets als Kommunikationsnetz wird als Adresse eine IP-Adresse des Endgerätes verwendet.
Damit bei einem Transfer auf dem neuen Endgerät immer der aktuellste Zustand abläuft, ist vorgesehen, dass nach Einlangen der Anforderung die Software auf dem ersten Endgerät in ihrem Ablauf angehalten und diese bzw. der Softwarezustand an das zweite Endgerät transferiert wird. Gewisse Anwendungen, etwa bei einer Telefonverbindung, welche mit der Software realisiert ist, ist es notwendig, dass während des Transfers die Verbindung aufrecht gehalten wird. Aus diesem Grund ist es zumindest in solchen Fällen zweckmäßig, wenn eine Kopie der Software mit ihrem aktuellen Softwarezustand erzeugt und diese Kopie auf das zweite Endgerät transferiert wird, und nicht beispielsweise gleich die gesamte Software von einem Endgerät auf das andere transferiert wird.
Erst bei einem ordnungsgemäßen Ablauf der Software auf dem zweiten Endgerät wird dann der Ablauf der Software auf dem ersten Gerät beendet.
Damit der letzte, aktuelle Softwarezustand nicht verloren geht, wird bei einem Abschalten aller Endgeräte bzw. einem Deaktivieren der Software auf allen Endgeräte, die beispiels- weise einem Benutzer zugeordnet sind, der letzte, aktuelle Zustand über das Kommunikationsnetz an einen an das Kommunikationsnetzwerk angebundenen Softwareserver übermittelt und von diesem abgespeichert.
Bei einem neuerlichen Aktivieren eines der Endgeräte und ge- gebenenfalls einer entsprechenden Anforderung wird dann die ohnehin auf dem Softwareserver abgespeicherte Software auf das Endgerät übertragen - bzw. bei einer Agentensoftware die Software erzeugt und auf das Endgerät übertragen -, zusätzlich der gespeicherte Softwarezustand übertragen, und die Software mit diesem versehen, sodass sie im aktuellsten Zustand weiterlaufen kann.
Damit eine reibungsloser Ablauf der Software auf verschiedenen, in der Regel unterschiedlichen Endgeräten gewährleistet ist, ist es notwendig, dass auf den Endgeräten und dem Soft- wareserver die gleiche Laufzeitumgebung für die Software verwendet wird. Bei einer konkreten Ausführungsform der Erfindung wird als Laufzeitumgebung JAVA verwendet.
Die Software, die im Zusammenhang mit der Erfindung verwendet wird, kann grundsätzlich eine beliebige Software, etwa eine Textverarbeitung etc. sein. Besonders günstig ist die Erfindung beispielsweise anzuwenden, wenn die Software eine Software zur Realisierung von Sprachverbindungen und/oder Datenverbindungen ist, da in diesem Fall eine Verbindung ohne Unterbrechung der Verbindung zwischen zwei Endgeräten übergeben werden kann.
Im folgenden ist die Erfindung an Hand der Zeichnung näher erläutert. In dieser zeigen
Fig. 1 und Fig. 2 ein grundsätzliches System zum Durchführen des erfindungsgemäßen Verfahrens, Fig. 3 und Fig. 4 ein System zum Durchführen eines erfindungsgemäßen Verfahrens im Zusammenhang mit einer Voice-over-IP-Verbindung von Endgeräten eines Benutzers mit einer Gegenstelle, und Fig. 5 den Lebenszyklus eines im Rahmen der
Erfindung verwendeten Softwareagenten. Die Figuren 1 und 2 zeigen ein erstes einfaches Beispiel für das aktuell Halten von Software sof bzw. Softwarezuständen auf mehreren Endgeräten PEC, PAL. Ein Benutzer verfügt bei- spielsweise über einen Desktop-Computer PEC und andererseits auch noch über einen Handheld-Device PAL. Gemäß der grundsätzlichen Idee der Erfindung läuft nun nicht mehr wie bisher üblich auf jedem dieser Geräte PAL, PEC eine eigene Software für eine bestimmte Anwendung, wie etwa für eine Kontaktver- waltung, die dann bei jedem neuen oder geänderten Eintrag auf einem der Geräte PEC, PAL auf dem anderen Gerät wieder abzugleichen wäre, sondern der Benutzer „verfügt" nur noch über eine lauffähige Softwareapplikation für den jeweiligen bestimmten Anwendungsfall, die zwischen den einzelnen Geräten PEC, PAL auf Anforderung hin transferiert wird. Die gegenständliche Software sof ist im ausgeschalteten Zustand der Endgeräte PEC, PAL auf einem Softwareserver SSE in einer diesem zugeordneten Speichereinrichtung SSD abgelegt. Setzt der Benutzer nun etwa seinen Desktop-Computer PEC in Betrieb, so wird entweder durch eine entsprechende Eingabe des Benutzers oder automatisch eine Anforderung an den Softwareserver SSE übermittelt und die gewünschte Software sof, etwa eine Kontaktverwaltung, wird in dem zuletzt aktuellen Zustand an den Desktop-Computer PEC übermittelt. Für die Kommunikation der einzelnen Endgeräte PEC, PAL und Server SSE sind diese über ein Kommunikationsnetzwerk NET miteinander verbindbar. Dabei ist unter dem Begriff „Kommunikationsnetzwerk" naturgemäß auch der Fall zu verstehen, dass beispielsweise der Server an ein Festnetz angebunden ist, während eines oder mehrere der Endgeräte etwa an ein Mobilfunknetz angebunden sind, und die Verbindung dann über dieses Netzwerk hergestellt wird.
Möchte nun der Benutzer die Software sof auf einem anderen Endgerät, beispielsweise seinem Handheld PAL verwenden, so wird einfach an den Desktop-Computer PEC eine entsprechende Anforderung übermittelt und die Software sof wird über das Kommunikationsnetzwerk NET an den Handheld PAL übermittelt.
Bei einer vorteilhaften Ausführungsform der Erfindung wird, wie weiter unten noch eingehend erläutert, die sogenannte Agententechnologie verwendet. Bei der auf einem Endgerät ablaufenden Software handelt es sich dann um „Agentenprogramme" . Im weiteren Text wird zumeist die Terminologie verwendet, dass die jeweilige Software eine Agentensoftware ist. In der Praxis ist es aber in der Regel so, dass diese Agenten- Software aus mehreren „Agenten" besteht, einem Masteragenten und einem oder mehreren Slaveagenten. Diese können mit dem Masteragenten kommunizieren und sind für die Erledigung spezieller Aufgaben vorgesehen, während der Masteragent unter anderem die Kommunikation „nach Außen" erledigt, sodass von Außen betrachtet die Software auch als eine „einzige" Software erscheint . Grundsätzlich kann ein Agent sich selbst bewegen oder von einem anderen Agenten oder einer Agentenplattform bewegt werden. Die Anforderung zur Übertragung der Software und des Ξoftwarezustandes auf ein anderes Endgerät wird dabei übli- cherweise durch eine Eingabe in die Software - bzw. im Agentenbild in den Masteragenten - abgesetzt, und zwar auf dem Gerät, auf dem die Software aktuell abläuft.
Allerdings kann auch vorgesehen sein, dass die Anforderung von Außen etwa durch Eingabe auf einem anderen Endgerät er- folgt, etwa in einen andern Agenten, der dann den entsprechend gewünschten Agenten von dem gewünschten Endgerät auf das anfordernde Endgerät holt.
Nachdem die angeforderte Software (der Masteragent) die An- forderungen empfangen hat, veranlasst dieser dann die notwen- digen Schritte für seine Migration auf das andere Endgerät.
Die Kommunikation selbst erfolgt vorzugsweise über das Internet NET, als Übertragungsprotokoll für die Software sof wird das TCP/IP-Protokoll („Transmission Control Protocol/Internet Protocol") verwendet. Dabei wird nach dem Einlangen der Anforderung die Software sof auf dem Desktop-Computer in ihrem aktuellen Zustand mit all ihren Parametern, Einstellungen etc. angehalten („eingefroren") und in diesem Zustand an das zweite Endgerät PAL übertragen, wo es dann in dem zuletzt aktuellen Zustand wei- terläuft.
Wie oben bereits angesprochen, basiert bei einer vorteilhaften Ausführungsform der Erfindung die verwendete Software, die zwischen den einzelnen Endgeräten bzw. Servern ausgetauscht wird, auf der sogenannten Agententechnologie, welche sich für die Erfindung auf grund der im folgenden angeführten Eigenschaften von Agenten als besonders zweckmäßig erweisen. Unter einem Softwareagenten versteht man ein Programm, das einen Auftrag annimmt und diesen selbständig ausführt bzw. benutzerdefinierte Aufgaben autonom erfüllt. Mobile Software- agenten sind Programme in Form von autonomen Objekten, die in einem Netz heterogener Rechner - typischerweise Intranets oder Teilen des Internets - umherwandern und dabei im Auftrag eines Nutzers Dienste verrichten bzw. Aufgaben erfüllen. Ein Softwareagent entscheidet dabei, selbstständig, aufgrund loka- 1er Gegebenheiten, ob, wann und wohin er gegebenenfalls migrieren möchte. Bei der schwachen Migration wird der dynamische Prozesszustand des Softwareagenten an bestimmten stabilen Programmpunkten auf Wunsch des Softwareagenten vom Agentensystem eingefroren und zusammen mit Kontextinformationen und einem variablen Datenteil in eine zu versendende Nachricht verpackt. Am Zielort wird der Prozesszustand wieder aufgetaut und der Agent läuft an der unterbrochenen Stelle nahtlos weiter. Bei der starken Migration wird der dynamische Prozesszustand des Softwareagent vom Agentensystem an einem beliebigen Programmpunkt eingefroren und zusammen mit Kontextinformationen und einem variablen Datenteil in eine zu versendende Nachricht verpackt. Am Zielort wird der Prozesszustand wieder aufgetaut und der Agent läuft an der unterbrochenen Stelle nahtlos weiter. Zur Verrichtung seiner Arbeit interagiert ein Softwareagent mit der jeweiligen lokalen Umgebung - dem Agentensystem, das ihn gerade beherbergt, dabei kann er auch mit anderen lokal vorhandenen oder entfernten Softwareagenten kooperieren. Ferner kann ein Softwareagent mit seinem an einem anderen Ort residierendem Auftraggeber kommunizieren, etwa um Zwischenre- sultate abzuliefern oder neue Daten und Instruktionen anzufordern. Letzteres stellt allerdings ein eher seltenes Ereignis dar, da Softwareagenten vom Konzept her in der Lage sind, weitestgehend autonom zu handeln. Die den Softwareagenten zugrundeliegende Technologie wird in der US 5 603 031 bzw. der EP 0 634 719 beschrieben. Im Zusammenhang mit Softwareagenten sind weiters folgende Dokumente der Öffentlichkeit vorgestellt worden: „Walter Brenner, Rüdiger Zarnekow, Hartmut Wittig: Intelli- gente Softwareagenten. Grundlagen und Anwendungen, Springer Verlag Berlin, 1998"; „Stan Franklin, Art Gaesser: Is it an Agent, or just a Program? A Taxonomy for Autonomous Agents . Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Institute for Intelligent Systems, University of Memphis Springer-Verlag 1996". Bei einer Verwendung von Softwareagenten ist es daher auch möglich, dass nicht der Softwareagent sof im Original verschickt wird, sondern dass dieser vorerst eine Kopie mit dem aktuellen Softwarezustand von sich erzeugt und diese an das zweite Endgerät PAL übermittelt. Nachdem dieser „Klon" des originalen Agenten sof festgestellt hat, dass ihm ein ord- nungsgemäßes Funktionieren in der neuen Umgebung möglich ist, vernichtet er das Original auf dem Desktop-Computer PEC. Der Softwarezustand kann nur unmittelbar beim Klonen und Verschicken weitergegeben werden, aber nicht mehr danach. Nach dem Klonen wird daher das Original für alle Eingaben ge- sperrt, damit der Softwarezustand konsistent bleibt.
Der Klon stellt nun eine exakte Kopie des Originals dar, und auf diese Weise ist zuverlässig sichergestellt, dass keine Informationen, Einstellungen, etc. bei einer Übermittlung verloren gehen.
Voraussetzung für das Funktionieren der Erfindung ist lediglich, dass die verwendeten Endgeräte über die gleiche Lauf- zeitumgebung für die Agentensoftware verfügen, sodass diese auf den verschiedenen Geräten ablauffähig ist, und auch die gleiche Agentenplattform ist notwendig. Beispielsweise wird als Laufzeitumgebung das bekannte JAVA verwendet.
Üblicherweise sind die Agenten selbst JAVA-Programme und benötigen überall JAVA als Laufzeitumgebung. Zur Kommunikation von Agenten verschiedener Systeme sind genormte Schnittstellen ihrer Plattformen notwendig, über die diese interagieren können .
Java ist eine von Sun entwickelte objektorientierte Programmiersprache für Internet-Anwendungen. Java ähnelt der Programmiersprache C++, verzichtet allerdings auf dessen pro- zessorspezifische Anpassungen. Sie dient der Erstellung von plattformunabhängigen Applets-Anwendungsteilen, die lediglich einen Interpreter sowie bestimmte Browser voraussetzen, so beispielsweise Netscape Navigator, Oracle PowerBrowser, Mosaic von Spyglass und Sun Hot Java. Java unterstützt u.a. Text -, Hypertext -, Grafik-, Audio- und Animationsfunktio- nen.
Agenten sind vollständige Applikationen und benötigen nur den Interpreter nicht aber einen Browser.
Natürlich sind aber auch andere geeignete Laufzeitumgebungen verwendbar und die Erfindung nicht auf JAVA eingeschränkt. Ein großer Vorteil, der sich aus obigem ergibt, ist jener, dass völlig plattformunabhängig Software zwischen einzelnen Endgeräten transferiert und auch betrieben werden kann. Ver- schiedene Betriebssysteme auf den einzelnen Endgeräten stellen somit kein Hindernis für das Funktionieren der Erfindung dar.
Gemäß der Erfindung ist vorgesehen, dass die gesamte Software in ihrem aktuellsten Zustand von einem Gerät PEC auf ein an- deres Gerät PAL des Benutzers übertragen wird. In der Regel wird dabei spätestens wenn die Software auf dem „neuen" Gerät zu laufen beginnt, die Software auf dem ursprünglichen Gerät ihren Dienst beenden.
Die Software kann grundsätzlich auch auf mehreren Geräten ei- nes Benutzers parallel laufen, aber nicht im gleichen Softwarezustand. Auch kann der Softwarezustand nicht unter laufenden Programmen ausgetauscht werden. Sinnvollerweise wird die Software allerdings immer nur auf einem Gerät pro Benutzer ablaufen. Nach dem Beenden der Software auf allen Endgeräten PEC, PAL des Benutzers bzw. nach dem Beenden der Software auf allen Endgeräten wird der Softwarezustand der Software sof wiederum über das Internet NET an den Softwareserver SSE übertragen und in dessen Speichereinrichtung SSD im aktuellsten Zustand abgespeichert. Die Software selbst wird nicht auf dem Agentenserver SSE abgespeichert, da auf diesem ohnehin die Klassendefinition der jeweiligen Agenten abgelegt sind und der Agent selbst wieder leicht bei einer entsprechenden Anforde- rung erzeugt werden kann.
Ein wichtiger Punkt bei der Verwendung von Softwareagenten sof ist, dass neben den Endgeräten PEC, PAL natürlich auch der Softwareserver SSE eine Laufzeitumgebung für Softwareagenten bietet. Bei der aller ersten Verwendung einer ge- wünschten Software kann sich ein Benutzer beispielweise über das Internet NET bei einem solchen Softwareagentenserver SSE über eine entsprechende Internetseite einen gewünschten Softwareagenten - im Rahmen der von dem Anbieter vorgesehenen Grenzen - erzeugen. Als Beispiel sei hier nochmals die oben bereits erwähnte Kontaktverwaltung angeführt, die sich der Benutzer nach bestimmten Kriterien - beispielsweise, welche grundsätzlichen Einträge vorhanden sein sollen, wie Name, Adresse, Rufnummern, etc. - erstellt. Auch die Eingabe von Daten ist hier in der Regel bereits möglich. Der „fertige" Softwareagent wird dann über das Internet auf das jeweilige Endgerät des Benutzers transferiert, wo er wie oben bereits ausgeführt, transferiert etc. wird.
Ein weiteres konkretes Ausführungsbeispiel der Erfindung ist noch an Hand der Figuren 3 und 4 im Zusammenhang mit der In- ternettelefonie (VoIP, „Voice over Internet Protocol") dargestellt.
Ein grundsätzliches Problem bei der Telefonie, das auch bei VoIP gegeben ist, ist jenes, dass während eines Telefonats die Verbindung zwischen verschiedenen Endgeräten eines Benut- zers nicht ohne weiteres weitergegeben werden kann. Beginnt beispielsweise der Benutzer ein VoIP-Gespräch mit seinem Desktop PEC und möchte dieses dann mit seinem Handheld PAL, der mit dem Internet etwa über eine Funkschnittstelle in Verbindung steht, weiterführen, dann muss er dazu üblicherweise die Gesprächsverbindung abbrechen und wieder neu aufbauen. Falls auf den beiden Endgeräten PEC, PAL der selbe Standard implementiert ist, ist grundsätzlich auch eine Anrufweiter- leitung möglich. Allerdings ist insbesondere bei so unterschiedlichen Geräten wie Desktop- und Handheldcomputer, die in der Regel auch unterschiedliche Anwendungen und Betriebssysteme aufweisen, dies nur selten der Fall. Dieses Problem kann mit der Erfindung auf einfache und für den Benutzer komfortable Weise gelöst werden, was im folgenden an Hand der Figuren 3 und 4 sowie zusätzlich mit der Figur 5, die den Lebenszyklus eines Softwareagenten zeigt, näher erläutert werden soll. Dabei beziehen sich die in Klam- mern ( ) gesetzten Bezugszeichen (Zahlen) jeweils auf die Fig. 5.
Auf eine Anforderung eines Benutzers hin - beispielsweise über seinen Desktop-Computer PEC - wird der Agent sof erzeugt (1); zu diesem Zeitpunkt erhält der Agent auch alle Benutzer- Informationen, wie Einstellungen, Informationen über vorangegangene Anrufe, und „Movement History", welche die Adressen aller Rechner, auf denen der Agent schon gelaufen ist, enthält, damit sie in Zukunft bequem in einer Liste ausgewählt werden können, vom Agentenserver SSE. Anschließend wird der Agent sof auf den Desktop PEC des Benutzers übertragen (2), wo er dann abläuft. Von diesem Zeitpunkt an ist der Agent sof, bei dem es sich ja in diesem Fall um ein Kommunikationsprogramm handelt, im Stande, eine Verbindung zu einem anderen Endgerät herzustellen oder entgegenzunehmen, falls dies von dem Benutzer gewünscht ist.
Wie nun in der Fig. 3 zu entnehmen, werden im Falle eines Gesprächs mittels des Agenten sof in einem ersten Schritt die Anrufparameter über ein Signalisierungsprotokoll sip mit der Gegenstelle CLI ausgehandelt (3). Die Kommunikation des Agen- ten sof findet dabei mit einem anderen Agenten sof oder einer Kommunikationsanwendung auf dem Client-Computer CLI statt .
Beispielsweise findet die Kommunikation wie der Fig. 3 zu entnehmen ist über einen Proxy-Server PRO unter Verwendung des „Session Initiation Protokolls" (SIP) sip statt. Das
„Session Initiation Protocol" (SIP) ist ein von der Internet Engineering Task Force (IETF) vorgeschlagener Standard für die Übertragung von Echtzeitdaten über paketgestützte Netze. Das SIP-Protokoll ist funktional vergleichbar dem H.323 Protokoll und kann interaktive Kommunikationsdienste aufbauen, verändern und terminieren. Die SIP-Informationen können über TCP oder UDP („User Datagram Protocol" ) transportiert werden. SIP besitzt eine offene internetbasierende Struktur und ermöglicht CLASS-Features („Custom Local Area Signalling Service") wie etwa die Übermittlung der Identität des Anrufers oder die Anrufweiterleitung in IP-basierten Netzen. SIP ist verantwortlich für die Gesprächssignalisierung, das Lokalisieren von Anwendern und die Registrierung. Die Dienstgüte, Verzeichniszugriffe und die Sitzungsprozeduren werden von anderen Protokollen übernommen.
Nach der Signalisierung beginnt die Übertragung der Audiosi- gnale (4). An dieser Stelle soll gleich darauf hingewiesen werden, dass oben angeführte Probleme nicht nur bei der Tele- fonie auftreten, sondern generell bei sogenannten Multi- Media-Verbindungen. Darunter ist beispielsweise die Übertragung von Video- bzw. Fernsehbildern, Tonübertragungen, Bild- telefonie etc. zu verstehen, bei welchen ein Echtzeit- Datenstrom über das Internet NET an ein Endgerät eines Benutzers übertragen und dort ausgegeben wird. Auch in diesem Fall ist es nicht oder nur unter sehr speziellen Fällen möglich, das Endgerät zu wechseln, ohne die Verbindung, über welche der Datenstrom übermittelt wird, zu unterbrechen und dann von dem neuen Endgerät wieder neu aufzubauen.
Handelt es sich daher bei der beispielhaften Verbindung zwischen dem Desktop PEC und dem Client-Computer CLI um Bildte- lefonie, so werden zusätzlich zu den Audiodaten des Telefo- nats noch Videodaten übertragen (4) . Die Verbindung wird dabei mittels eines entsprechenden Verbindungsprotokolls rtp, beispielsweise des RTP-Protokolls („Real Time Protocol"), abgewickelt . Das RTP-Protokoll wurde von der Audio-Video Transport Group der IETF entwickelt und ist Bestandteil von H.323. Es liegt auf der Anwendungsschicht und kann netzwerkbasierte Video- oder Audiokommunikation abwickeln. Zur Unterscheidung der Medien unterscheidet RTP zwischen verschiedenen Codierungsformaten, so dass die übertragenen Daten anwendungsunabhängig verwendet werden können. Das Real Time Protocol (RTP) basiert auf einer Ende-zu-Ende-Verbindung und unterstützt Multicast- aber auch Unicast-Verbindungen. Es erkennt und korrigiert fehlende, doppelte oder in falscher Reihenfolge empfangene Datenpakete mittels einer 16-Bit-Sequenznummer. Zur Synchronisation von Audio oder Video verwendet das Protokoll einen Zeitstempel, der von dem jeweiligen RTP-Profil vorgegeben wird. Um die Datenquelle eindeutig identifizieren zu können hat der RTP-Header ein 32 Bit langes Datenfeld „Synchronisation Source Identifier" (ΞSRC) . In dem zweiten optionalen 32-Bit-Datenfeld, dem „Content Source Identifier" (CSRC) , werden die Quelladressen der SSCRs eingetragen. Die Statusinformationen der Quellen werden durch das RTCP-Protokoll , das Bestandteil von RTP ist, durch periodisches Senden rückgemeldet.
Wechselt nun der Benutzer sein Endgerät PEC, folgt ihm der Kommunikationsagent sof auf eine entsprechende Aufforderung hin auf das neue Endgerät PAL. Damit die Kommunikation während dieser Migration des Agenten sof nicht unterbrochen wird, bis dass die Initialisierungsroutinen abgelaufen sind, muss eine spezielle Abfolge von Ereignissen eintreten. Zuerst kopiert sich der Agent sof selbst auf das neue Endgerät PAL und setzt alle notwendigen Schritte (Suchen von Audio- und Videogeräten, wie Soundkarte, Kamera usw. , Testen der gefundenen Geräte, Bereitmachen und Belegen der Kommunikationsports wie SIP- oder RTP-Ports) , damit die Signalisie- rung umschaltet werden kann. Der Original-Agent verbleibt dabei solange auf dem ersten Endgerät PEC, bis dies erfolgreich geschehen ist und hält solange die Verbindung mit der Gegenstelle CLI aufrecht. Nachdem der neue Agent sof, d.h. der Klon des ursprünglichen Agenten, seine Initialisierung been- det hat, überträgt er das weiterlaufende Gespräch auf das neue Endgerät PAL (5) . Danach beendet der alte Agent seinen Dienst, und der neue Agent sof, der eine identische Kopie des alten Agenten darstellt, setzt die Dienste und die Gesprächsverbindung fort. Auf diese Weise kann zuverlässig verhindert werden, dass Unterbrechungen in der Verbindung auftreten. Genau genommen transferiert der neue Agent selbst mittels einer SIP-Nachricht (REINVITE) an den Gesprächspartner das laufende Gespräch zu sich. Danach terminiert er den „alten" Agenten, welcher dann nur noch dafür sorgt, dass auch die „alten" Slaves terminiert werden. Nach erfolgtem Transfer ist der Desktop-Computer PEC nicht mehr in die Kommunikation eingebunden; diese läuft nun direkt von dem Handheld-Computer PAL zu der Gegenstelle CLI, als ob die Kommunikation direkt zwischen den beiden Endgeräten PAL, CLI aufgenommen worden wäre. Wie dabei der Fig. 4 zu entnehmen ist, findet dabei die Signalisierung des „neuen" Agenten mit der entsprechenden Software der Gegenstelle CLI wiederum beispielsweise über das SIP-Protokoll statt, die anschließend Übertragung von Daten im Rahmen der Kommunikation findet dann etwa über das RTP- Protokoll wie oben ausgeführt statt.
Schließt nach der Beendigung des Gesprächs (6) ein Benutzer die Anwendung oder schaltet er das Endgerät PAL aus, ohne den Agenten sof nochmals auf ein anderes Endgerät zu übertragen, so wird der Softwarezustand zum Agentenserver SSE zurückge- schickt, (7) der Agent vernichtet und der letzte, aktuelle Agentenzustand wird auf dem Agentenserver abgespeichert (8). Durch die Verwendung einer einheitlichen Laufzeitumgebung wie beispielsweise JAVA wird eine vollständige Unabhängigkeit vom Endgerät erreicht. Einzige Voraussetzung ist, dass die ent- sprechende Laufzeitumgebung für die Softwareagenten auf dem Endgerät ablauffähig ist. Die jeweiligen Agenten können dann zwischen den verschiedensten Endgeräten problemlos transferiert werden und insbesondere auf diesen auch ablaufen. Dieselbe Software kann daher auf unterschiedlichsten Geräten, wie Personal Computer (PC) , PocketPC, HandheldPC, Mobilfunk- geräte, etc. ablaufen. Als Network Layer Protokoll wird in der Regel das Internet Protocol verwendet, der Anschluss an das IP-Netz kann stationär oder mobil (wireless) sein. Neben der oben eingehend erläuterten Funktionalität des „Übergebens" von Multimedia-Verbindungen zwischen zwei Endge- raten wird es mit der Erfindung weiters auf einfache Weise möglich, eine Administration von Telefonbüchern, Adressenlisten und anderen Aufzeichnungen oder Einstelllungen an einem beliebigen persönlichen Gerät durchzuführen, wobei diese Änderungen dann für alle persönlichen Geräte ihre Gültigkeit besitzen.

Claims

Patentansprüche
1. Verfahren zum Aktuellhalten von Software (sof) auf verschiedenen Endgeräten (PEC, PAL) , welche an ein Kommunikationsnetzwerk (NET) angebunden sind, über welches diese mitein- ander kommunizieren können, dadurch gekennzeichnet, dass
a) auf Anforderung zumindest der Softwarezustand der auf zumindest einem der Endgeräte (PEC) ablaufenden Software (sof) über das Kommunikationsnetzwerk (NET) an das zweite Endgerät (PAL) übertragen wird, und
b) eine auf dem zweiten Endgerät (PAL) ablaufende, der Software (sof) auf dem ersten Endgerät (PEC) entsprechende Software mit dem übertragenen, aktuellen Softwarezustand versehen wird und auf dem zweiten Endgerät (PAL) in dem zuletzt auf dem ersten Endgerät (PEC) aktuellen Zustand weiterläuft.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die der Software (sof) auf dem ersten Endgerät (PEC) entsprechende Software auf dem zweiten Endgerät (PAL) von einem Speicherort (PAL, SSE, SSD) auf das zweite Endgerät (PAL) übertragen wird.
3. Verfahren nach Anspruch 2 , d a d u r c h g e k e n n z e i c h n e t , dass als Speicherort der
Software (sof) ein Softwareserver (SSE) verwendet wird.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass als Speicherort der Software (sof) das Endgerät (PEC) , auf welchem die Software (sof) ursprünglich abläuft, verwendet wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass in Schritt a) der Softwarezustand in eine Nachricht verpackt wird, welche an das zweite Endgerät (PAL) übermittelt wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass als Software eine Agentensoftware verwendet wird.
7. Verfahren nach Anspruch 5 oder 6 , dadurch gekennzeichnet, dass die Nachricht weiters noch den Speicherort der Software (sof) bzw. im Falle von Softwareagenten (sof) zumindest den Namen der Hauptklasse und den Speicherort der Klassendefinitionen des Agenten enthält.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Anforderung von dem zweiten Endgerät (PAL) über das Kommunikationsnetzwerk (NET) an das erste Endgerät (PEC) gestellt wird.
9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die Anforderung mittels des ersten Endgerätes (PEC) , auf welchem die Software (sof) abläuft, abgesetzt wird.
10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass bei der Anforderung eine eindeutige Adresse des Endgerätes (PAL) , an welches die Software (sof) und der Softwarezustand zu transferieren ist, an die Software (sof) übermittelt wird.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass als Adresse eine IP- Adresse des Endgerätes (PAL) verwendet wird.
12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass nach Einlangen der Anforderung die Software (sof) auf dem ersten Endgerät (PEC) in ihrem Ablauf angehalten und diese bzw. der Softwarezustand an das zweite Endgerät (PAL) transferiert wird.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass eine Kopie der Soft- wäre mit ihrem aktuellen Softwarezustand erzeugt und diese Kopie auf das zweite Endgerät (PAL) transferiert wird.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass bei einem ordnungsgemäßen Ablauf der Software auf dem zweiten Endgerät (PAL) der Ablauf der Software (sof) auf dem ersten Gerät (PEC) beendet wird.
15. Verfahren nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, dass bei einem Abschalten aller Endgeräte (PEC, PAL) bzw. einem Deaktivieren der Soft- wäre (sof) auf allen Endgeräte (PEC, PAL) diese bzw. der letzte, aktuelle Zustand über das Kommunikationsnetz (NET) an einen an das Kommunikationsnetzwerk (NET) angebundenen Softwareserver (SSE) übermittelt und von diesem abgespeichert wird.
16. Verfahren nach einem der Ansprüche 1 bis 15, dadurch gekennzeichnet, dass auf den Endgeräten (PEC, PAL) und dem Softwareserver (SSE) die gleiche Laufzeitumgebung für die Software (sof) verwendet wird.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet , dass als Lauf zeitumgebung JAVA verwendet wird.
18. Verfahren nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, dass die Software eine Software zur Realisierung von Sprachverbindungen und/oder Da- tenverbindungen ist.
PCT/DE2002/003726 2001-10-04 2002-10-01 Verfahren zum aktuellhalten von software auf verschiedenen endgeräten WO2003032156A2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/491,526 US20040237078A1 (en) 2001-10-04 2002-10-01 Method for updating software in different terminals
BR0213061-0A BR0213061A (pt) 2001-10-04 2002-10-01 Processo para a atualização de software em diversos equipamentos terminais
EP02774441A EP1438658A2 (de) 2001-10-04 2002-10-01 Verfahren zum aktuellhalten von software auf verschiedenen endgeräten

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10148875A DE10148875A1 (de) 2001-10-04 2001-10-04 Verfahren zum Aktuellhalten von Software auf verschiedenen Endgeräten
DE10148875.0 2001-10-04

Publications (2)

Publication Number Publication Date
WO2003032156A2 true WO2003032156A2 (de) 2003-04-17
WO2003032156A3 WO2003032156A3 (de) 2003-12-31

Family

ID=7701318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2002/003726 WO2003032156A2 (de) 2001-10-04 2002-10-01 Verfahren zum aktuellhalten von software auf verschiedenen endgeräten

Country Status (6)

Country Link
US (1) US20040237078A1 (de)
EP (1) EP1438658A2 (de)
CN (1) CN1564979A (de)
BR (1) BR0213061A (de)
DE (1) DE10148875A1 (de)
WO (1) WO2003032156A2 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7839987B1 (en) 2001-11-01 2010-11-23 Callwave, Inc. Methods and systems for creating a dynamic call log and contact records
US7818734B2 (en) * 2005-01-21 2010-10-19 Callwave, Inc. Methods and systems for transferring data over a network
US7965825B1 (en) 2005-05-02 2011-06-21 Callwave, Inc. Methods and systems for transferring voice messages and faxes over a network
JP4548307B2 (ja) * 2005-10-31 2010-09-22 ソニー株式会社 分離型処理装置及びそのソフトウエアの版更新方法
US8121626B1 (en) 2006-06-05 2012-02-21 Callwave, Inc. Method and systems for short message forwarding services
US8601460B2 (en) * 2007-07-25 2013-12-03 International Business Machines Corporation Systems and methods for firmware cloning
US8667479B2 (en) 2009-01-19 2014-03-04 Telefonaktiebolaget L M Ericsson (Publ) Mobile specialized software code updated
EP2465241A1 (de) * 2009-08-12 2012-06-20 Koninklijke KPN N.V. Dynamisches rtcp-relais
US8938518B2 (en) * 2012-01-16 2015-01-20 International Business Machines Corporation Transferring applications and session state to a secondary device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161193A (en) * 1998-03-18 2000-12-12 Lucent Technologies Inc. Methods and apparatus for process replication/recovery in a distributed system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167253A (en) * 1995-01-12 2000-12-26 Bell Atlantic Network Services, Inc. Mobile data/message/electronic mail download system utilizing network-centric protocol such as Java
US6614781B1 (en) * 1998-11-20 2003-09-02 Level 3 Communications, Inc. Voice over data telecommunications network architecture
US6529504B1 (en) * 1999-06-02 2003-03-04 Sprint Communications Company, L.P. Telecommunications service control point interface
DE10014390C2 (de) * 2000-03-23 2002-02-21 Siemens Ag Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161193A (en) * 1998-03-18 2000-12-12 Lucent Technologies Inc. Methods and apparatus for process replication/recovery in a distributed system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BHARAT K A ET AL: "Migratory applications" UIST '95. 8TH ANNUAL SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY. PROCEEDINGS OF THE ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY. PITTSBURGH, PA, NOV. 14 - 17, 1995, ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY, NEW YOR, 14. November 1995 (1995-11-14), Seiten 133-142, XP002186049 ISBN: 0-89791-709-X *
CHU H, KURAKAKE S: "Roam (ResOurce-aware Application Migration) System" PROCEEDINGS OF THE 5TH WORLD MULTI-CONFERENCE ON SYSTEMICS, CYBERNETICS, AND INFORMATICS (SCI 2001), [Online] 22. - 25. Juli 2001, XP002254765 Orlando, Florida, USA Gefunden im Internet: <URL:http://www.csie.ntu.edu.tw/~hchu/pape rs/roam_sci2001.pdf> [gefunden am 2003-09-17] *
MILOJICIC D S ET AL: "Process migration" ACM COMPUTING SURVEYS, SEPT. 2000, ACM, USA, Bd. 32, Nr. 3, Seiten 241-299, XP002254767 ISSN: 0360-0300 *
NAKAJIMA T, AIZU H: "A Toolkit for Building Migratory Continuous Media Applications" PROCEEDINGS OF THE 8TH INTERNATIONAL WORKSHOP ON NETWORK AND OPERATING SYSTEMS SUPPORT FOR DIGITAL AUDIO AND VIDEO (NOSSDAV 98), [Online] 8. - 10. Juli 1998, XP002254766 Cambridge, UK Gefunden im Internet: <URL:http://www.cl.cam.ac.uk/Research/SRG/ nossdav98/papers/nossdav98-038.ps.gz> [gefunden am 2003-09-17] *

Also Published As

Publication number Publication date
US20040237078A1 (en) 2004-11-25
CN1564979A (zh) 2005-01-12
WO2003032156A3 (de) 2003-12-31
DE10148875A1 (de) 2003-04-24
BR0213061A (pt) 2004-09-28
EP1438658A2 (de) 2004-07-21

Similar Documents

Publication Publication Date Title
DE60014234T2 (de) System und Verfahren zum Ermöglichen von Fehlertolerante Systeme
DE60132232T2 (de) Servicefähige technologie
DE102005016587B4 (de) Verfahren zum Bilden einer gemeinsamen Kommunikationssitzung, Verfahren zum Bilden einer ersten Kommunikationssitzung und einer zweiten Kommunikationssitzung aus einer gemeinsamen Kommunikationssitzung und Kommunikationssitzungs-Steuerungs-Server
DE602004009947T2 (de) Netzwerkentität zur verbindung von sip-endpunkten verschiedener fähigkeiten
EP3357218A1 (de) Verfahren zur industriellen kommunikation über tsn
DE102006031080A1 (de) Verfahren und Kommunikationsendgerät zum Bereitstellen von VoIP
DE60304100T2 (de) Erzwingung eines Zeitpunktes zur Trennung einer Kommmunikationsverbindung mit schnurlosen Endgeräten mit transienten Netzwerkadressen
WO2003032156A2 (de) Verfahren zum aktuellhalten von software auf verschiedenen endgeräten
DE10345051B4 (de) Verfahren zum Aufbau einer Kommunikationsverbindung in einem direkt kommunizierenden Kommunikationsnetzwerk
WO2012084249A1 (de) Verfahren zur integration von funktionen eines telekommunikationsnetzes in ein datennetz
DE60214399T2 (de) Endgeräte, die so ausgelegt sind, dass sie als relaisserver zum verteilen von paketen in einem client-server-netzwerk wirken
EP1482701A1 (de) Verfahren zum paketorientierten Übertragen von Daten in Telekommunikationsnetzen mittels Umsetzung in einem Zwischenknoten von einem verbindungslosen zu einem verbindungsorientierten Übertragungsprotokoll und umgekehrt
EP1330139B1 (de) Aufbau einer Kommunikationsverbindung zwischen einem Mobilfunk-Kommunikationsendgerät und einem gemäss des IP Protokolls arbeitenden Kommunikationsendgerät
EP2340641B1 (de) Übertragen von ticker-information im multimediabereich
EP1853046B1 (de) Verfahren zum Aufbau einer Kommunikationsverbindung in einem direkt kommunizierenden Kommunikationsnetzwerk
DE102006002434B3 (de) Verfahren und Server zum Herstellen einer Kommunikationsverbindung zwischen Kommunikationsendgeräten
DE10148873B4 (de) Verfahren zum Realisieren eines Verbindungsaufbaus zwischen über ein Kommunikationsnetzwerk verbindbaren Endgeräten
EP3959850B1 (de) Verfahren zum bereitstellen von verbindungsherstellungsdaten sowie anordnung mit einer mehrzahl von kommunikationsservern und einem vermittler
EP1661357B1 (de) Verfahren und vorrichtung zum umgang mit änderungen der netzwerkadresse bei mobiler datenübertragung
EP1452041B1 (de) Verfahren und netzvorrichtung zum bereitstellen von insbesondere personalisierten kommunikationsdiensten in einem kommunikationssystem
EP2375852B1 (de) Kommunikationsendgerät und Verfahren zur Datenübertragung zwischen einem Kommunikationsendgerät und einem Kommunikationssystem in einem Datennetz
DE102005046171A1 (de) Verfahren zum Aufrufen von Applikationsservern mit unterschiedlicher Betriebsart durch ein IP Multimedia Subsystem
EP2649751A1 (de) Verfahren zur überwachung eines kommunikationssystems
WO2007028701A1 (de) Verfahren zum gezielten blockieren von diensten in einem ip multimedia subsystem
EP1833192A1 (de) Übergabe des Zugriffs auf eine serverbasierte Anwendungssitzung an ein Kommunikationsendgerät

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): BR CN

AL Designated countries for regional patents

Kind code of ref document: A2

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2002774441

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10491526

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20028197542

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2002774441

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2002774441

Country of ref document: EP