WO2001055820A2 - Data processing system - Google Patents

Data processing system Download PDF

Info

Publication number
WO2001055820A2
WO2001055820A2 PCT/DE2001/000017 DE0100017W WO0155820A2 WO 2001055820 A2 WO2001055820 A2 WO 2001055820A2 DE 0100017 W DE0100017 W DE 0100017W WO 0155820 A2 WO0155820 A2 WO 0155820A2
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
processing device
program
program object
processing system
Prior art date
Application number
PCT/DE2001/000017
Other languages
German (de)
French (fr)
Other versions
WO2001055820A3 (en
Inventor
Bernd Hochdorfer
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of WO2001055820A2 publication Critical patent/WO2001055820A2/en
Publication of WO2001055820A3 publication Critical patent/WO2001055820A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards

Definitions

  • the invention relates to a data processing system, in particular a data processing system with two communicating data processing devices.
  • a dongle that is connected, for example, to the parallel interface of a data processing system or more recently to the Universal Serial Bus (USB) is a component that uses suitable hardware to carry out logical tasks such as encrypting and counting system starts, for example, and a program, which controls this hardware, confirms the licensing of a program.
  • the program to be executed on the computer sends a request to the dongle and sends an answer back to the program. If this answer is the expected one, the program can carry out its tasks in the computer so that it can be used by the user.
  • a dongle is therefore limited to sending a type of "OK" signal without otherwise interfering with the functionality of the program.
  • the program on the computer is working or is not working entirely.
  • the program to be performed contains places in which the query of the dongle is programmed. By tracking this down Query points in the program can be removed from the program using suitable programming tools. A program modified in this way can therefore be reproduced without having to use the software protection (dongle) provided.
  • a further disadvantage is that it is possible to use replicas of the dongle used for a program in order to deceive the querying program about the true license status.
  • the program provider may charge a different price.
  • Word processing software is used only once a month or permanently.
  • the present invention is therefore based on the object of avoiding the disadvantages outlined in the prior art, outlined above, by providing a new type of flexible software management.
  • the invention relates to a system in which parts of the software are outsourced to an external system which is inaccessible to the user.
  • the invention relates to at least two data processing devices, on each of which Program projects run that can only achieve the functionality of an application program in connection with each other.
  • the invention in another aspect, relates to a billing system which is located in an external data processing device shielded by the user.
  • the invention is therefore directed to a data processing system having a first data processing device with at least a first program object, an interface device connected to the first data processing device and a second data processing device connectable to the interface device, which contains a read-only memory with at least one second program object located therein, the first and the second program object has program interfaces for communication with one another and the first program object is only fully functional if the communication of the program objects by
  • Connection of the second data processing device to the interface device is made possible.
  • a data processing device in the sense of the present invention is to be understood as a unit which is suitable for independent data processing. This must therefore consist of a computing unit which is able to process program codes, a memory in which such a program code is located and in which, if applicable. Data are stored, as well as input and
  • Output interfaces for communication of the data processing device with its environment such as for example input / output channels for controlling
  • a program object in the sense of the present invention is to be understood as a program code (sequence of commands to the computing unit), which forms a self-contained functional unit and is capable of processing the program code on request from outside, for example by other program objects Calculate results on the computing unit and pass them on to other program objects, or display them on output media.
  • a program object is decoded step by step from a memory in the computing unit and executed there. The delimitation of a program object is not always easy, since a program object can have several functions, which in turn can be carried out by partial program objects of a program object. However, the term program object and its use are sufficiently familiar to the person skilled in the art.
  • An interface device in the sense of the present invention is to be understood as a physical unit which is able to connect at least two but also more data processing devices to one another in such a way that data between these data processing devices is transported in at least one direction, but preferably in both directions can be.
  • a program interface in the sense of the present invention includes defined data structures or
  • a read-only memory in the sense of the present invention is any memory which is capable of receiving program code or data, which can not be changed by the user of a program and a first data processing device without undue effort.
  • a read-only memory can be a ROM which does not permit changes to the data stored therein. These are therefore not accessible to a user.
  • the read-only memory be programmable one or more times. However, this is done by special programming devices that are not accessible to the user or by
  • Program objects stored in the data processing device can also analyze the functionality on which they are based.
  • the sequence of the interaction of the first data processing device and the second data processing device follows the following general flow diagram.
  • program part which has been outsourced to a second data processing device; Transfer of parameters via the interface;
  • the parameters and the results can also be transferred in encrypted form in order to reliably prevent manipulation of the mechanism by unauthorized persons.
  • the first data processing device preferably has an application program with a plurality of first program objects.
  • An application program typically consists of a large number of functional units, which can be referred to here as program objects and which can interact with one another and with program objects which are stored on the second data processing device.
  • the at least second program object can have functions which can be called up by at least one first program object via the interface and which are necessary for the full functionality of the first program object.
  • the program that is to run on the first data processing device for example, cannot be started at all, if not the second
  • the second data processing device fulfills a function similar to the dongle, albeit a more complex one.
  • the "full functionality" can consist in that the second data processing device has at least one
  • the program is basically also without the connection to the second
  • Data processing device has limited executability.
  • data processing devices can be used to allow different program versions to be created through specifically outsourced functionality components, although only a single program has to be distributed and installed on the computer (first data processing device).
  • the performance features can thus be generated in the desired composition.
  • the "full functionality" of the first program object can relate to the fact that the second data processing device contains at least one program object which replaces the functionality of at least one corresponding first program object.
  • Program objects of the first data processing device and program objects of the second data processing device can take place.
  • Data processing device opens up completely new possibilities in the service design of a software provider. It is thus possible to design the program on the first data processing device in such a way that the first data processing device has a program object which can store error messages from the first data processing device and / or further program objects located on the first data processing device in a memory of the second data processing device.
  • a corresponding program object can be provided on the second data processing device, which accepts the data from the first program object on the first data processing device and stores it in a memory (which of course cannot then be a read-only memory).
  • the second data processing device at least one
  • Data processing device has a program object which can read and identify at least one license key stored in a memory of the second data processing device. Since the second data processing device is an independent data processing device with a computing unit and suitable program objects, it is possible to use a dongle functionality of the second, if desired
  • Such a licensing system can include different modes of billing the use of the software license. For example, the number of operations called, the number of system initializations, system starts, date limits, for example an expiry date of the license, the duration of the programs or the computing power consumed when deciding whether the license is still valid or has already expired can be taken into account.
  • the license key is then currently calculated in the second data processing device based on such criteria and output to a first program object on the first data processing device. It is therefore no longer a classic in the classic sense
  • License key but more about information as to whether the program object may start correctly depending on various evaluation parameters.
  • Data processing device simply have a program object which, on request of a program object of the first data processing device, can transmit a license key or a consent signal to the first data processing device.
  • the data processing system can be characterized in that the second
  • Data processing device has at least one second program object which is able to determine how long and / or how often first program objects of the first data processing device are used and which can store the corresponding information.
  • the invention is preferably limited to one
  • Data processing device has a program object, which on request of a program object of the first
  • Data processing device can transmit a version key to the first data processing device.
  • the second data processing device is a transportable unit.
  • a transportable unit is to be understood as one which can be carried out without great effort
  • Interface device can be removed and can be sent back and forth between users and software manufacturers via usual transport routes, for example by post.
  • the second data processing device is a chip card.
  • Chip card is usually a flat card, for example in the format of a check card, on which an integrated circuit as a computer unit and a memory, etc. which is located at the top of the
  • the computing unit on the chip card makes it possible to
  • Data processing device houses, numerous possibilities are available.
  • the second data processing device is permanently installed in the computer or so with the computer (first
  • a plug-in board that implements the second data processing device or that embodies the second data processing device in the form of an installation housing for a hard disk insert.
  • the card to be installed must be adapted to the bus system used in the computer, for example PCI, Future Bus or Nubus.
  • a second data processing device installed in the first data processing device in the form of a standalone built-in housing can be used via conventional internal
  • Channel systems are connected to the first data processing device, for example via SCSI connections or
  • USB Universal Serial Bus
  • serial or parallel interfaces or even via conventional network connections such as the Internet or token ring.
  • conventional network connections such as the Internet or token ring.
  • the alternative to a fixed installation in the computer or directly on the computer is to install the second data processing device in a mobile manner.
  • the connection between the first and second data processing device is designed such that it can be easily canceled, preferably even during operation, as is possible with modern bus systems such as Firewire or USB.
  • the interface device is also possible to design the interface device as an external unit, for example in the form of a chip card reader or a PCMCIA connection or via a connection to another interface. Accordingly, chip cards or PCMCIA or other logic cards must be used.
  • the data processing system according to the invention with a connectable second data processing device has numerous advantages and gives software developers a completely new flexibility in distribution, maintenance and Licensing your software. Will be the second
  • Carried out data processing device portable for example, a program can be installed on several computers, after connecting the second data processing device to the respective computer
  • Parts of a program being tested do not need to be installed with the installation of the main program on the first data processing device, but can be stored in the second data processing device, so that after the completion of a corresponding program part, the second part can be replaced
  • Data processing device is sufficient to provide error-free functionality to the user. A partial reinstallation of the program on the first data processing device is therefore not necessary.
  • Figure 1 shows a highly schematic embodiment of the present invention. This becomes a mobile one System shown in which a computer 1 is the first
  • the interface device 2 has a contact strip with contacts 3 and screws 4, which can be screwed into corresponding screw holes at the interface of the first data processing device 1 by means of their end pieces 5.
  • the interface device 2 also has a receptacle 6 into which a second data processing device, here a chip card 7, can be inserted.
  • the interface device 2 can also be equipped with a plurality of receptacles 6.
  • the second data processing device 7 is a so-called smart lock card and has an interface with which a coupling to the interface device is possible, a logic unit, a program memory and a memory for data.
  • the power supply also takes place via the interface device 2.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

The invention concerns a data processing system, comprising a first data processing device (1) having at least one program object; an interface device (2) connected to the first data processing device (1) and a second data processing device (7) that can be connected to the interface device (2) and that contains a read-only storage having at least a second program object, whereby the first and the second program objects have program interfaces for communicating with one another and the first program object is completely functional only when communication of the program object is enabled by the connection of the second data processing device (7) to the interface device (2). The second data processing device is preferably a portable device, for example a chip card, while the first data processing device is an ordinary computer.

Description

Beschreibungdescription
DatenverarbeitungsSystemData processing system
Die Erfindung betrifft ein Datenverarbeitungssystem, insbesondere ein Datenverarbeitungssystem mit zwei miteinander kommunizierenden Datenverarbeitungsvorrichtungen.The invention relates to a data processing system, in particular a data processing system with two communicating data processing devices.
Die unberechtigte, das heißt lizenzlose Verwendung von Software wie Anwendungsprogrammen, Datenbanken oderThe unauthorized, i.e. license-free use of software such as application programs, databases or
Datensammlungen (Bilder, Texte) wird im Stand der Technik u. a. mit sogenannten Dongles verhindert. Ein Dongle, das beispielsweise an die parallele Schnittstelle einer Datenverarbeitungsanlage oder neuerdings an den Universal Serial Bus (USB) angeschlossen wird, ist eine Komponente, welche mittels einer geeigneten Hardware, die logische Aufgaben wie das Verschlüsseln und Zählen von beispielsweise Systemstarts bewerkstelligt und einem Programm, welches diese Hardware steuert, die Lizensierung eines Programms diesem gegenüber bestätigt. Dabei wird vom auf dem Rechner auszuführendem Programm eine Anfrage an den Dongle gestellt und von diesem eine Anwort an das Programm zurückgesendet . Wenn diese Antwort die erwartete ist, kann das Programm im Rechner seine Aufgaben ausführen, so daß es für den Anwender nutzbar ist. Ein Dongle beschränkt sich also auf das Senden einer Art von „Okay" Signal ohne ansonsten in die Funktionalität des Programms einzugreifen. Das auf dem Rechner befindliche Programm arbeitet oder es arbeitet in Gänze nicht.Data collections (pictures, texts) is in the state of the art u. a. prevented with so-called dongles. A dongle that is connected, for example, to the parallel interface of a data processing system or more recently to the Universal Serial Bus (USB) is a component that uses suitable hardware to carry out logical tasks such as encrypting and counting system starts, for example, and a program, which controls this hardware, confirms the licensing of a program. The program to be executed on the computer sends a request to the dongle and sends an answer back to the program. If this answer is the expected one, the program can carry out its tasks in the computer so that it can be used by the user. A dongle is therefore limited to sending a type of "OK" signal without otherwise interfering with the functionality of the program. The program on the computer is working or is not working entirely.
Der Verwendung von Dongles sind jedoch Nachteile eigen. Im aufzuführenden Programm sind Stellen enthalten, in denen die Abfrage des Dongles programmiert ist. Durch Aufspüren dieser Abfragestellen im Programm können die Abfragestellen mittels geeigneter programmiertechnischer Werkzeuge aus dem Programm entfernt werden. Daher kann ein solchermaßen modifiziertes Programm vervielfältigt werden, ohne den dafür vorgesehenen Softwareschutz (Dongle) verwenden zu müssen.However, there are disadvantages to using dongles. The program to be performed contains places in which the query of the dongle is programmed. By tracking this down Query points in the program can be removed from the program using suitable programming tools. A program modified in this way can therefore be reproduced without having to use the software protection (dongle) provided.
Ein weiterer Nachteil besteht darin, daß es möglich ist, Nachbauten des jeweils für ein Programm verwendeten Dongles zu verwenden, um so das abfagende Programm über den wahren Lizenzstatus zu täuschen.A further disadvantage is that it is possible to use replicas of the dongle used for a program in order to deceive the querying program about the true license status.
Ein weiteres häufig vorkommendes Phänomen im Stand der Technik ist die Existenz verschiedener unterschiedlicher Varianten eines Programms, welche sich in der Konfiguration ihres Programmcodes unterscheiden und die daher abweichende Leistungsmerkmale aufweisen. Somit gibt esAnother frequently occurring phenomenon in the prior art is the existence of various different variants of a program which differ in the configuration of their program code and which therefore have different performance features. So there is
Leistungsunterschiede, die aus der Programmzusammenstellung resultieren. In Abhängigkeit vom Leistungsumfang der verschiedenen Programmvarianten kann vom Programmanbieter ein unterschiedlicher Preis verlangt werden.Differences in performance that result from the program composition. Depending on the scope of the various program variants, the program provider may charge a different price.
Diese Vorgehensweise hat jedoch den Nachteil, daß verschiedene Programmversionen gleichzeitig gepflegt werden müssen und zudem bei sich ändernden Leistungsanforderungen gegebenenfalls neue Programmvarianten eingespielt werden müssen. Dies erfordert einen hohen Zeitaufwand sowohl für den Hersteller als auch ggfs. für den Anwender.However, this procedure has the disadvantage that different program versions have to be maintained at the same time and that new program variants may have to be imported if the performance requirements change. This requires a lot of time for both the manufacturer and possibly the user.
Im Laufe der Entwicklung eines zunehmend komplexeren Softwaremarktes haben sich differenzierteIn the course of developing an increasingly complex software market, differentiated
Lizenzierungsmodelle herausgebildet. So gibt es sogenannte Demoversionen, die für eine gewisse Zeit kostenfrei nutzbar sind oder nur eine bestimmte vorgegebene Anzahl von Programmstarts zulassen. Auch kommerziell lizenzierteLicensing models developed. So there are so-called demo versions that can be used free of charge for a certain time or only a certain predetermined number of Allow program starts. Also commercially licensed
Programme weisen teilweise AblaufZeitpunkte auf, zu denen diePrograms sometimes have expiry times at which the
Lizenz ungültig wird. Übliche Vollversionen kosten allerdings unabhängig von ihrer Nutzungsdauer einen fixen Betrag. Nur bei aufwendigen Großrechenanlagen gibt es AbrechnungsSysteme für Software, bei denen beispielsweise die verbrauchteLicense becomes invalid. Common full versions, however, cost a fixed amount regardless of their useful life. Only in the case of complex large-scale computing systems are there billing systems for software in which, for example, the used one
Rechenzeit oder der verwendete Prozessortyp (je nachComputing time or the processor type used (depending on
Leistungsfähigkeit) zu unterschiedlichen Lizenzbeträgen führen. Kleinrechenanlage, wie Tischrechner, Personal Computer oder Workstations weisen solche Abrechnungsformen nicht auf. Mithin macht es keinen Unterschied, ob einePerformance) lead to different license amounts. Small computer systems such as desktop computers, personal computers or workstations do not have such billing forms. So it makes no difference whether one
Textverarbeitungssoftware nur einmal pro Monat oder permanent verwendet wird.Word processing software is used only once a month or permanently.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die im Stand der Technik vorhandenen, oben skizzierten Nachteile zu vermeiden, indem eine neuartige flexible Softwareverwaltung zur Verfügung gestellt wird.The present invention is therefore based on the object of avoiding the disadvantages outlined in the prior art, outlined above, by providing a new type of flexible software management.
Die Aufgabe wird durch die Bereitstellung eines Datenverarbeitungssystems gemäß dem unabhängigen Patentanspruch 1 gelöst. Weitere vorteilhafte Ausgestaltungen, Aspekte und Details der Erfindung ergeben sich aus den abhängigen Patentansprüchen, der Beschreibung und der beigefügten Zeichnung.The object is achieved by the provision of a data processing system according to independent claim 1. Further advantageous configurations, aspects and details of the invention result from the dependent patent claims, the description and the attached drawing.
In einem Aspekt betrifft die Erfindung ein System, bei dem Teile der Software auf ein externes, dem Anwender unzugängliches System ausgelagert werden.In one aspect, the invention relates to a system in which parts of the software are outsourced to an external system which is inaccessible to the user.
In einem weiteren Aspekt betrifft die Erfindung zumindest zwei Datenverarbeitungsvorrichtungen, auf denen jeweils Programmprojekte ablaufen, die nur in Verbindung miteinander die Funktionalität eines Anwendungsprogramms erzielen können.In a further aspect, the invention relates to at least two data processing devices, on each of which Program projects run that can only achieve the functionality of an application program in connection with each other.
In noch einem Aspekt betrifft die Erfindung ein Abrechnungssystem, welches sich in einer externen, vom Nutzer abgeschirmten Datenverarbeitungsvorrichtung befindet.In another aspect, the invention relates to a billing system which is located in an external data processing device shielded by the user.
Die Erfindung ist daher gerichtet auf ein Datenverarbeitungssystem mit einer ersten Datenverarbeitungsvorrichtung mit zumindest einem ersten Programmobjekt, einer mit der ersten Datenverarbeitungsvorrichtung verbundenen SchnittStellenvorrichtung und einer mit der Schnittstellenvorrichtung verbindbaren zweiten Datenverarbeitungsvorrichtung, die einen Festwertspeicher mit zumindest einem darin befindlichen zweiten Programmobjekt enthält, wobei das erste und das zweite Programmobjekt Programmschnittstellen zur Kommunikation miteinander aufweisen und das erste Programmobjekt nur voll funktional ist, wenn die Kommunikation der Programmobjekte durch dieThe invention is therefore directed to a data processing system having a first data processing device with at least a first program object, an interface device connected to the first data processing device and a second data processing device connectable to the interface device, which contains a read-only memory with at least one second program object located therein, the first and the second program object has program interfaces for communication with one another and the first program object is only fully functional if the communication of the program objects by
Verbindung der zweiten Datenverarbeitungsvorrichtung mit der Schnittstellenvorrichtung ermöglicht ist.Connection of the second data processing device to the interface device is made possible.
Unter einer Datenverarbeitungsvorrichtung im Sinne der vorliegenden Erfindung ist eine Einheit zu verstehen, welche zur eigenständigen Datenverarbeitung geeignet ist . Diese muß somit aus einer Recheneinheit bestehen, welche in der Lage ist, Programmcodes abzuarbeiten, einem Speicher, in dem sich ein solcher Programmcode befindet und in dem ggfs . Daten gespeichert werden, sowie gegebenenfalls Ein- undA data processing device in the sense of the present invention is to be understood as a unit which is suitable for independent data processing. This must therefore consist of a computing unit which is able to process program codes, a memory in which such a program code is located and in which, if applicable. Data are stored, as well as input and
Ausgabeschnittstellen zur Kommunikation der Datenverarbeitungsvorrichtung mit ihrer Umgebung, wie beispielsweise Ein-/Ausgabekanäle zur Ansteuerung vonOutput interfaces for communication of the data processing device with its environment, such as for example input / output channels for controlling
Bildschirmen, Tastaturen etc.Screens, keyboards etc.
Unter einem Programmobjekt im Sinne der vorliegenden Erfindung ist ein Programmcode (Abfolge von Befehlen an die Recheneinheit) zu verstehen, der eine in sich geschlossene funktionelle Einheit bildet und in der Lage ist, auf Anfrage von außerhalb, beispielsweise durch andere Programmobjekte, mittels Abarbeitung des Programmcodes auf der Recheneinheit Ergebnisse zu kalkulieren und diese an andere Programmobjekte weiterzugeben, oder auf Ausgabemedien darzustellen. Ein Programmobjekt wird nach Laden aus einem Speicher in der Recheneinheit schrittweise decodiert und dort ausgeführt. Die Abgrenzung eines Programmobjekts ist nicht immer einfach, da ein Programmobjekt mehrere Funktionen haben kann, welche wiederum von Teilprogrammobjekten eines Programmobjekts erledigt werden können. Dem Fachmann ist jedoch der Begriff Programmobjekt und seine Verwendung hinreichend geläufig.A program object in the sense of the present invention is to be understood as a program code (sequence of commands to the computing unit), which forms a self-contained functional unit and is capable of processing the program code on request from outside, for example by other program objects Calculate results on the computing unit and pass them on to other program objects, or display them on output media. A program object is decoded step by step from a memory in the computing unit and executed there. The delimitation of a program object is not always easy, since a program object can have several functions, which in turn can be carried out by partial program objects of a program object. However, the term program object and its use are sufficiently familiar to the person skilled in the art.
Unter einer SchnittStellenvorrichtung im Sinne der vorliegenden Erfindung ist eine physikalische Einheit zu verstehen, welche in der Lage ist, zumindest zwei, aber auch mehr Datenverarbeitungsvorrichtungen miteinander so zu verbinden, daß Daten zwischen diesen DatenverarbeitungsVorrichtungen zumindest in einer Richtung, bevorzugterweise jedoch in beiden Richtungen, transportiert werden können.An interface device in the sense of the present invention is to be understood as a physical unit which is able to connect at least two but also more data processing devices to one another in such a way that data between these data processing devices is transported in at least one direction, but preferably in both directions can be.
Unter einer Programmschnittstelle im Sinne der vorliegenden Erfindung sind definierte Datenstrukturen beziehungsweiseA program interface in the sense of the present invention includes defined data structures or
Programmcodestellen zu verstehen, welche dem Austausch von Informationen zwischen verschiedenen Programmobjekten dienen. Diese Programmobjekte treten über Programmschnittstellen miteinander in Kommunikation.Understand program codes that are used to exchange information between different program objects. These program objects communicate with each other via program interfaces.
Der Erfindung liegt somit der Gedanke zugrunde, zumindest eine zweite Datenverarbeitungsvorrichtung zu verwenden, in der in einem Festwertspeicher ein Teil der Funktionalität des Programms ausgelagert ist und dort eigenständig abgearbeitet werden kann. Unter einem Festwertspeicher im Sinne der vorliegenden Erfindung ist jeglicher Speicher, welcher zur Aufnahme von Programmcode oder Daten in der Lage ist, zu verstehen, welcher vom Anwender eines Programms und einer ersten Datenverarbeitungsvorrichtung nicht ohne unzumutbar großen Aufwand geändert werden können. Ein Festwertspeicher kann im einfachsten Fall ein ROM sein, welcher keine Änderungen an den darin gespeicherten Daten zuläßt . Diese sind somit dem Zugriff eines Anwenders entzogen. Zur Verbesserung der Flexibilität wird es allerdings bevorzugt, daß der Festwertspeicher ein oder mehrere Male programmierbar ist. Dies erfolgt jedoch durch spezielle, dem Anwender nicht zugängliche Programmiervorrichtungen oder durchThe invention is therefore based on the idea of using at least one second data processing device in which part of the functionality of the program is stored in a read-only memory and can be processed there independently. A read-only memory in the sense of the present invention is any memory which is capable of receiving program code or data, which can not be changed by the user of a program and a first data processing device without undue effort. In the simplest case, a read-only memory can be a ROM which does not permit changes to the data stored therein. These are therefore not accessible to a user. To improve flexibility, however, it is preferred that the read-only memory be programmable one or more times. However, this is done by special programming devices that are not accessible to the user or by
Chiffrierverfahren, welche die gespeicherten Informationen verbergen.Encryption methods that hide the stored information.
Durch die Verwendung einer spezialisierten zweiten Datenverarbeitungsvorrichtung mit einem Festwertspeicher können die darin implementierten Funktionalitäten bzw. die dort ablauffähigen Programmobjekte, wirkungsvoll vor dem Zugriff von Anwendern geschützt werden.By using a specialized second data processing device with a read-only memory, the functionalities implemented therein or the program objects executable there can be effectively protected against access by users.
Somit ist weder eine Manipulation der auf der zweitenSo neither is manipulation of the second
Datenverarbeitungsvorrichtung gespeicherten Programmobjekte noch eine Analyse der ihnen zugrundeliegenden Funktionalität möglich. Der Ablauf der Interaktion von erster Datenverarbeitungsvorrichtung und zweiter Datenverarbeitungsvorrichtung folgt dabei dem folgenden, allgemeinen AblaufSchema.Program objects stored in the data processing device can also analyze the functionality on which they are based. The sequence of the interaction of the first data processing device and the second data processing device follows the following general flow diagram.
-Programmobjekt n- Program object n
-Ruft ein auf zweiter Datenverarbeitungsvorrichtung ausgelagertes Programmobjekt x (Programmteil) auf; -Übergabe der Parameter über die Schnittstelle;Calls up a program object x (program part) which has been outsourced to a second data processing device; Transfer of parameters via the interface;
-Überprüfung der Parameter in der zweiten-Check the parameters in the second
Datenverarbeitungsanlage ;Data processing system;
-Abarbeitung des ausgelagerten Programmobjekts x;Processing of the outsourced program object x;
Übergabe der Ergebnisse über die Schnittstelle; -Fortsetzung mit Programmobjekt n oder n+1.Transfer of results via the interface; -Continue with program object n or n + 1.
Hierbei kann die Übergabe der Parameter und der Ergebnisse auch verschlüsselt erfolgen, um ein Manipulieren des Mechanismus durch Unbefugte zuverlässig verhindern zu können.The parameters and the results can also be transferred in encrypted form in order to reliably prevent manipulation of the mechanism by unauthorized persons.
Vorzugsweise weist die erste Datenverarbeitungsvorrichtung ein Anwendungsprogramm mit einer Mehrzahl erster Programmobjekte auf. Typischerweise besteht ein Anwendungsprogramm aus einer großen Zahl funktioneller Einheiten, die hier als Programmobjekte bezeichnet werden können und die miteinander und mit Programmobjekten, die auf der zweiten Datenverarbeitungsvorrichtung gespeichert sind, interagieren können.The first data processing device preferably has an application program with a plurality of first program objects. An application program typically consists of a large number of functional units, which can be referred to here as program objects and which can interact with one another and with program objects which are stored on the second data processing device.
Durch Bereitstellung einer zweitenBy providing a second
Datenverarbeitungsvorrichtung wird die Funktionalität der ersten, eigentlichen Datenverarbeitungsvorrichtung komplettiert. Dies wird durch die Formulierung "nur voll funktional" zum Ausdruck gebracht. Lediglich bei Verbindung der beiden Datenverarbeitungsvorrichtungen sowohl auf Hardware1eve1 , das heißt über die Schnittstellenvorrichtung als auch auf Softwarelevel, das heißt über die definierten Programmschnittstellen, steht die gewünschte Gesamt- Funktionalitat des Programms dem Nutzer der ersten Datenverarbeitungsvorrichtung zur Verfügung.Data processing device, the functionality of the first, actual data processing device is completed. The phrase "only makes it full The desired overall functionality of the program is available to the user of the first data processing device only when the two data processing devices are connected both to Hardware1eve1, that is to say via the interface device and to software level, that is to say via the defined program interfaces.
Unter dem Begriff der "vollen Funktionalität" im Sinne der vorliegenden Erfindung können hierbei verschiedene Dinge verstanden werden.The term “full functionality” in the sense of the present invention can be understood to mean various things.
Zum ersten kann das zumindest zweite Programmobjekt Funktionen aufweisen, welche von zumindest einem ersten Programmobjekt über die Schnittstelle aufrufbar sind und welche für die volle Funktionalität des ersten Programmobjekts notwendig sind. In einem solchen Fall kann das Programm, das auf der ersten Datenverarbeitungsvorrichtung laufen soll, beispielsweise gar nicht startfähig sein, wenn nicht die zweiteFirstly, the at least second program object can have functions which can be called up by at least one first program object via the interface and which are necessary for the full functionality of the first program object. In such a case, the program that is to run on the first data processing device, for example, cannot be started at all, if not the second
Datenverarbeitungsvorrichtung über die Schnittstellenvorrichtung mit der erstenData processing device via the interface device with the first
Datenverarbeitungsvorrichtung verbunden ist. Insofern erfüllt die zweite Datenverarbeitungsvorrichtung gemäß der Erfindung eine dem Dongle ähnliche, wenn auch komplexere Funktion.Data processing device is connected. In this respect, the second data processing device according to the invention fulfills a function similar to the dongle, albeit a more complex one.
Der Unterschied zum Dongle ist darin zu sehen, daß beim Dongle keine Programmfunktionalität ausgelagert wird, sondern die gesamte Programmfunktionalität auf dem Rechner bleibt und lediglich eine Abfrage mit einer definierten Antwort an denThe difference to the dongle can be seen in the fact that no program functionality is outsourced to the dongle, but the entire program functionality remains on the computer and only a query with a defined answer to the
Dongle gestellt wird. Des weiteren kann die "volle Funktionalität" darin bestehen, daß die zweite Datenverarbeitungsvorrichtung zumindest einDongle is put. Furthermore, the "full functionality" can consist in that the second data processing device has at least one
Programmobjekt enthält, welches die Funktionalität zumindest eines ersten Progammobjekts ergänzt. In diesem Fall ist das Programm grundsätzlich auch ohne die Verbindung zur zweitenContains program object that supplements the functionality of at least a first program object. In this case, the program is basically also without the connection to the second
Datenverarbeitungsvorrichtung begrenzt ablauffähig. Die ergänzenden Programmobjekte in der zweitenData processing device has limited executability. The additional program objects in the second
Datenverarbeitungsvorrichtung können jedoch dazu dienen, durch gezielt ausgelagerte Funktionalitätskomponenten unterschiedliche Programmversionen entstehen zu lassen, obwohl nur ein einziges Programm vertrieben und auf dem Rechner (erste Datenverarbeitungsvorrichtung) installiert werden muß. Die Leistungsmerkmale lassen sich somit in der gewünschten Zusammensetzung erzeugen.However, data processing devices can be used to allow different program versions to be created through specifically outsourced functionality components, although only a single program has to be distributed and installed on the computer (first data processing device). The performance features can thus be generated in the desired composition.
Des weiteren kann sich die "volle Funktionalität" des ersten Programmobjekts darauf beziehen, daß die zweite Datenverarbeitungsvorrichtung zumindest ein Programmobjekt enthält, welches die Funktionalität zumindest eines entsprechenden ersten Programmobjekts ersetzt. Durch dieseFurthermore, the "full functionality" of the first program object can relate to the fact that the second data processing device contains at least one program object which replaces the functionality of at least one corresponding first program object. Through this
Möglichkeit wird es den Entwicklern von Software gestattet, Fehlerbereinigungen ihrer ausgelie erten Software vorzunehmen, ohne daß an der erstenSoftware developers are given the opportunity to correct the errors in their delivered software without the first
Datenverarbeitungsvorrichtung Manipulationen, wie das Einspielen von Patches oder ähnlichem, vorgenommen werden muß. Statt eines Patches, der eine mühsame Installation erfordert, wird dem Anwender einfach eine neue zweite Datenverarbeitungsvorrichtung zugesandt, die nach Austausch der alten zweiten Datenverarbeitungsvorrichtung deren Funktion übernimmt und Programmobjekte enthält, die nunmehr an die Stelle von ursprünglich in der ersten Datenverarbeitungsvorrichtung lauffähigen Programmobjekten treten. Die ursprünglichen Programmobjekte müssen vom Anwendungsprogramm identifiziert und deaktiviert werden. Auch hierfür ist es sinnvoll, entsprechende Mechanismen vorzusehen, die in einer Interaktion zwischenData processing device manipulations, such as the import of patches or the like, must be carried out. Instead of a patch, which requires laborious installation, the user is simply sent a new, second data processing device which, after replacing the old second data processing device, takes over its function and contains program objects which now take the place of program objects which were originally executable in the first data processing device. The original program objects must be dated Application program can be identified and deactivated. For this, too, it makes sense to provide appropriate mechanisms that interact in an
Programmobjekten der ersten Datenverarbeitungsvorrichtung und Programmobjekten der zweiten Datenverarbeitungsvorrichtung stattfinden kann.Program objects of the first data processing device and program objects of the second data processing device can take place.
Die Aufteilung des erfindungsgemäßen Datenverarbeitungssystems auf eine erste Datenverarbeitungsvorrichtung und eine zweiteThe division of the data processing system according to the invention into a first data processing device and a second
Datenverarbeitungsvorrichtung öffnet völlig neue Möglichkeiten bei der Dienstleistungsgestaltung eines Softwareanbieters. So ist es möglich, das Programm auf der ersten Datenverarbeitungsvorrichtung so zu gestalten, daß die erste Datenverarbeitungsvorrichtung ein Programmobjekt aufweist, welches Fehlermeldungen der ersten Datenverarbeitungsvorrichtung und/oder weiterer auf der ersten Datenverarbeitungsvorrichtung befindlicher Programmobjekt in einem Speicher der zweiten Datenverarbeitungsvorrichtung speichern kann. Hierfür kann zum Beispiel auf der zweiten Datenverarbeitungsvorrichtung ein entsprechendes Programmobjekt vorgesehen sein, das die Daten vom ersten Programmobjekt auf der ersten Datenverarbeitungsvorrichtung annimmt und in einem Speicher, (der natürlich dann kein Festwertspeicher sein kann) abspeichert. Auf diese Weise ist es möglich, eine Fehlerhistorie zu generieren, die durch geeignete Lesegeräte von Technikern des jeweiligen Softwareanbieters vor Ort oder nach Einsenden der zweiten Datenverarbeitungsvorrichtung zum Hersteller ausgelesen werden und danach ausgewertet werden kann, um Fehler des Programms oder derData processing device opens up completely new possibilities in the service design of a software provider. It is thus possible to design the program on the first data processing device in such a way that the first data processing device has a program object which can store error messages from the first data processing device and / or further program objects located on the first data processing device in a memory of the second data processing device. For this purpose, for example, a corresponding program object can be provided on the second data processing device, which accepts the data from the first program object on the first data processing device and stores it in a memory (which of course cannot then be a read-only memory). In this way it is possible to generate an error history that can be read out by suitable readers from technicians of the respective software provider on site or after the second data processing device has been sent to the manufacturer and can then be evaluated in order to detect errors in the program or
Datenverarbeitungsvorrichtung erkennen zu können. Somit ergibt sich hier die bevorzugte Ausführungsform, daß die zweite Datenverarbeitungsvorrichtung zumindest einTo be able to recognize data processing device. This results in the preferred embodiment that the second data processing device at least one
Datenobjekt enthält, welches Informationen über Fehler enthält, die bei der ersten Datenverarbeitungsvorrichtung und/oder dem ersten Programmobjekt aufgetreten sind.Contains data object, which contains information about errors that have occurred in the first data processing device and / or the first program object.
Des weiteren ist es möglich, zusätzlich die Funktionalität eines klassischen Dongles zu implementieren, indem die ersteFurthermore, it is possible to additionally implement the functionality of a classic dongle by the first
Datenverarbeitungsvorrichtung ein Programmobjekt aufweist, welches zumindest einen in einem Speicher der zweiten Datenverarbeitungsvorrichtung gespeicherten Lizenzschlüssel lesen und identifizieren kann. Da die zweite Datenverarbeitungsvorrichtung eine eigenständige Datenverarbeitungsvorrichtung mit einer Recheneinheit und geeigneten Programmobjekten ist, ist es möglich, eine Donglefunktionalität, falls sie gewünscht ist, der zweitenData processing device has a program object which can read and identify at least one license key stored in a memory of the second data processing device. Since the second data processing device is an independent data processing device with a computing unit and suitable program objects, it is possible to use a dongle functionality of the second, if desired
Datenverarbeitungsvorrichtung weit über das auszudehnen, was mit konventionellen Dongles möglich ist. So kann ein solches Lizensierungssystem unterschiedliche Modi der Abrechnung der Verwendung der Softwarelizenz beinhalten. Beispielsweise können die Anzahl der aufgerufenen Operationen, die Anzahl der Systeminitialisierungen, Systemstarts, Datumsgrenzen, beispielsweise ein Verfallsdatum der Lizenz, die Laufzeit der Programme oder die verbrauchte Rechenleistung bei der Entscheidung darüber, ob die Lizenz noch gültig oder bereits abgelaufen ist, berücksichtigt werden. Der Lizenzschlüssel wird dann in der zweiten Datenverarbeitungsvorrichtung an Hand solcher Kriterien jeweils aktuell berechnet und an ein erstes Programmobjekt auf der ersten Datenverarbeitungsvorrichtung ausgegeben. Es handelt sich somit nicht mehr im klassischen Sinn um einenExtend data processing device far beyond what is possible with conventional dongles. Such a licensing system can include different modes of billing the use of the software license. For example, the number of operations called, the number of system initializations, system starts, date limits, for example an expiry date of the license, the duration of the programs or the computing power consumed when deciding whether the license is still valid or has already expired can be taken into account. The license key is then currently calculated in the second data processing device based on such criteria and output to a first program object on the first data processing device. It is therefore no longer a classic in the classic sense
Lizenzschlüssel, sondern mehr um eine Information, ob das Programmobj kt in Abhängigkeit von verschiedenen Bewertungsgrößen korrekt starten darf . In einem einfachen Fall kann die zweiteLicense key, but more about information as to whether the program object may start correctly depending on various evaluation parameters. In a simple case, the second
Datenverarbeitungsvorrichtung einfach ein Programmobjekt aufweisen, welches auf Anforderung eines Programmobjekts der ersten Datenverarbeitungsvorrichtung einen Lizenzschlüssel bzw. ein Einwilligungssignal zur ersten Datenverarbeitungsvorrichtung übertragen kann.Data processing device simply have a program object which, on request of a program object of the first data processing device, can transmit a license key or a consent signal to the first data processing device.
Darüber hinaus kann das Datenverarbeitungssystem dadurch gekennzeichnet sein, daß die zweiteIn addition, the data processing system can be characterized in that the second
Datenverarbeitungsvorrichtung zumindest ein zweites Programmobjekt aufweist, das in der Lage ist, festzustellen, wie lange und/oder wie oft erste Programmobjekte der ersten Datenverarbeitungsvorrichtung verwendet werden und welches die entsprechende Information speichern kann.Data processing device has at least one second program object which is able to determine how long and / or how often first program objects of the first data processing device are used and which can store the corresponding information.
Falls verschiedene Konfigurationen eines Programms oder verschiedene zeitlich abgegrenzte Versionen eines Programms gleichzeitig und mittels einer einzigen zweiten Datenverarbeitungsvorrichtung bedient werden sollen, bietet es sich an, die erste Datenverarbeitungsvorrichtung mit einem Programmobjekt zu versehen, welches zumindest einen in einem Speicher der zweiten Datenverarbeitungsvorrichtung gespeicherten Versionschlüssel lesen und identifizieren kann. Hier muß also in der zweiten Datenverarbeitungsvorrichtung zugleich ein Versionsschlüssel beinhaltet sein, der beispielsweise auf den jeweiligen Anwender individuell zugeschnitten worden ist. Es ist daher möglich, eine zweite Datenverarbeitungsvorrichtung bereitzustellen, in der alle notwendigen externalisierten Programmobjekt gleichzeitig vorhanden sind, beispielsweise in einem Festwertspeicher, und bei Auslieferung des Programms in einem dafür vorgesehenen Speicher eine Information, hier als Versionschlüssel bezeichnet, abzulegen, welche Konfiguration beziehungsweiseIf different configurations of a program or different time-limited versions of a program are to be operated simultaneously and by means of a single second data processing device, it makes sense to provide the first data processing device with a program object which read at least one version key stored in a memory of the second data processing device and can identify. A version key must also be included in the second data processing device, which version key has been individually tailored to the respective user, for example. It is therefore possible to provide a second data processing device in which all the necessary externalized program objects are present at the same time, for example in a read-only memory, and when the program is delivered, information is provided in a memory provided for this purpose, here as a version key designated to file which configuration respectively
Versionen der jeweilige Anwender lizenzlegal auf seiner ersten Datenverarbeitungsvorrichtung ablaufen lassen darf.Versions of the respective user legally allowed to run on his first data processing device.
Demgemäß ist die Erfindung vorzugsweise auf einAccordingly, the invention is preferably limited to one
Datenverarbeitungssystem gerichtet, bei dem die zweiteData processing system aimed at the second
Datenverarbeitungsvorrichtung ein Programmobjekt aufweist, welches auf Anforderung eines Programmobjekts der erstenData processing device has a program object, which on request of a program object of the first
Datenverarbeitungsvorrichtung einen Versionsschlüssel zur ersten Datenverarbeitungsvorrichtung übertragen kann.Data processing device can transmit a version key to the first data processing device.
Wie bereits oben verschiedentlich angedeutet, wird es aus Flexibilitätsgründen häufig bevorzugt sein, daß die zweite Datenverarbeitungsvorrichtung eine transportable Einheit ist. Unter einer transportablen Einheit ist eine solche zu verstehen, welche ohne größeren Aufwand derAs already indicated variously above, it will often be preferred for reasons of flexibility that the second data processing device is a transportable unit. A transportable unit is to be understood as one which can be carried out without great effort
Schnittstellenvorrichtung entnommen werden kann und über übliche Transportwege, beispielsweise per Post, zwischen Anwender und Software-Hersteller hin- und hergeschickt werden kann. Allerdings ist auch vorstellbar, die zweite Datenverarbeitungsvorrichtung nicht transportabel auszuführen, beispielsweise, indem man sie fest mit der ersten Datenverarbeitungsvorrichtung verbindet . In einem solchen Fall kann es sinnvoll sein, die zweite Datenverarbeitungsvorrichtung mit einem Modem und einer Telefonanbindung auszustatten, so daß eine Fernwartung beziehungsweise Schlüsselfreigabe etc. über Telefonleitung möglich ist.Interface device can be removed and can be sent back and forth between users and software manufacturers via usual transport routes, for example by post. However, it is also conceivable not to make the second data processing device transportable, for example by connecting it firmly to the first data processing device. In such a case, it may make sense to equip the second data processing device with a modem and a telephone connection, so that remote maintenance or key release etc. is possible via a telephone line.
Insbesondere wird es bevorzugt, daß die zweite Datenverarbeitungsvorrichtung eine Chipkarte ist. EineIn particular, it is preferred that the second data processing device is a chip card. A
Chipkarte ist üblicherweise eine flache Karte, beispielsweise im Format einer Scheckkarte, auf der ein integrierter Schaltkreis als Rechnereinheit und ein Speicher etc. untergebracht ist, welcher über an der Oberseite derChip card is usually a flat card, for example in the format of a check card, on which an integrated circuit as a computer unit and a memory, etc. which is located at the top of the
Chipkarte befindliche Kontakte mit beispielsweise einerContacts with contacts, for example one
Schnittstellenvorrichtung im Rahmen des erfindungsgemäßenInterface device within the scope of the invention
Datenverarbeitungssystems kontaktiert werden kann. Durch die auf der Chipkarte befindliche Recheneinheit ist es möglich,Data processing system can be contacted. The computing unit on the chip card makes it possible to
Funktionalität in Form von Programmobjekten auf der Chipkarte bereitzustellen. Hierbei ist es wünschenswert, dieProvide functionality in the form of program objects on the chip card. It is desirable that
Komplexität der auf der Chipkarte befindlichenComplexity of those on the chip card
Programmobjekte der Rechenleistung und dem Speicherbedarf und -vermögen der Chipkarte anzupassen.Adapt program objects to the computing power and the memory requirement and capacity of the chip card.
Zur Ausgestaltung der zweiten Datenverarbeitungsvorrichtung sowie der Schnittstelle zwischen der ersten Datenverarbeitungsvorrichtung und der Schnittstellenvorrichtung, welche die zweiteTo design the second data processing device and the interface between the first data processing device and the interface device, which is the second
Datenverarbeitungsvorrichtung beherbergt, stehen zahlreiche Möglichkeiten zur Verfügung.Data processing device houses, numerous possibilities are available.
Bei einer Festinstallation wird die zweite Datenverarbeitungsvorrichtung fest in den Computer eingebaut oder so mit dem Computer (ersteIn the case of a fixed installation, the second data processing device is permanently installed in the computer or so with the computer (first
Datenverarbeitungsvorrichtung) verbunden, daß ein Lösen nur mit unverhältnismäßigem Aufwand möglich ist. So ist es beispielsweise möglich, eine Steckplatine bereitzustellen, welche die zweite Datenverarbeitungsvorrichtung implementiert oder die zweite Datenverarbeitungsvorrichtung in Form eines Einbaugehäuses für einen Festplatteneinschub auszuführen. Bei Verwendung einer fest einzubauenden Karte ist die einzubauende Karte an das im Computer verwendete Bussystem anzupassen, beispielsweise PCI, Future Bus oder Nubus .Data processing device) connected that a solution is only possible with disproportionate effort. For example, it is possible to provide a plug-in board that implements the second data processing device or that embodies the second data processing device in the form of an installation housing for a hard disk insert. When using a permanently installed card, the card to be installed must be adapted to the bus system used in the computer, for example PCI, Future Bus or Nubus.
Eine in der ersten Datenverarbeitungsvorrichtung eingebaute zweite Datenverarbeitungsvorrichtung in Form eines eigenständigen Einbaugehäuses kann über übliche interneA second data processing device installed in the first data processing device in the form of a standalone built-in housing can be used via conventional internal
KanalSysteme mit der ersten Datenverarbeitungsvorrichtung verbunden werden, beispielsweise über SCSI-Verbindungen oderChannel systems are connected to the first data processing device, for example via SCSI connections or
SCA-Verbindungen oder IEEE 1394 (Firewire) -Verbindungen. Auch bei Implementierung der zweiten Datenverarbeitungsvorrichtung als externe Einheit in Form eines eigenständigen Gehäuses stehen diese Bussysteme zur Verfügung. Darüber hinaus ist es auch möglich, über weitere, einfachere externe Bussysteme eine Verbindung zwischen der zweiten Datenverarbeitungsvorrichtung und der erstenSCA connections or IEEE 1394 (Firewire) connections. These bus systems are also available when the second data processing device is implemented as an external unit in the form of an independent housing. In addition, it is also possible to establish a connection between the second data processing device and the first via further, simpler external bus systems
Datenverarbeitungsvorrichtung vorzunehmen, beispielsweise durch den Universal Serial Bus (USB) , über serielle oder parallele Schnittstellen oder sogar über übliche Netzwerkverbindungen wie Internet oder Tokenring.To carry out data processing device, for example through the Universal Serial Bus (USB), via serial or parallel interfaces or even via conventional network connections such as the Internet or token ring.
Die Alternative zu einem Festeinbau in dem Computer oder direkt an dem Computer besteht darin, die zweite Datenverarbeitungsvorrichtung mobil zu installieren. Hierbei ist die Verbindung zwischen erster und zweiter Datenverarbeitungsvorrichtung so ausgestaltet, daß sie leicht aufhebbar ist, vorzugsweise sogar während des Betriebs, wie dies durch moderne Bussysteme wie Firewire oder USB möglich ist. Es ist auch möglich, die Schnittstellenvorrichtung als externe Einheit auszuführen, beispielsweise in Form eines Chipkartenlesers oder eines PCMCIA-Anschlusses oder über eine Verbindung zu einer anderen Schnittstelle. Dementsprechend müssen dann Chipkarten oder PCMCIA- oder andere Logikkarten verwendet werden .The alternative to a fixed installation in the computer or directly on the computer is to install the second data processing device in a mobile manner. Here, the connection between the first and second data processing device is designed such that it can be easily canceled, preferably even during operation, as is possible with modern bus systems such as Firewire or USB. It is also possible to design the interface device as an external unit, for example in the form of a chip card reader or a PCMCIA connection or via a connection to another interface. Accordingly, chip cards or PCMCIA or other logic cards must be used.
Das erfindungsgemäße Datenverarbeitungssystem mit einer anschließbaren zweiten Datenverarbeitungsvorrichtung weist zahlreiche Vorteile auf und gibt Softwareentwicklern eine völlig neue Flexibilität bei der Distribution, Wartung und Lizensierung ihrer Software. Wird die zweiteThe data processing system according to the invention with a connectable second data processing device has numerous advantages and gives software developers a completely new flexibility in distribution, maintenance and Licensing your software. Will be the second
Datenverarbeitungsvorrichtung transportabel ausgeführt, kann beispielsweise ein Programm auf mehreren Computern installiert werden, wobei nach Anschließen der zweiten Datenverarbeitungsvorrichtung an den jeweiligen Computer dieCarried out data processing device portable, for example, a program can be installed on several computers, after connecting the second data processing device to the respective computer
Lizenz freigeschaltet wird.License is activated.
Wird auf einem transportablen System eine Fehlerhistorie abgespeichert, kann gegebenenfalls eine Wartung des Gesamtsystems vereinfacht werden, da dieser Fehlerspeicher beim Kundendienst ausgelesen und interpretiert werden kann. Ein kostenintensive Anfahrt eines Servicetechnikers entfällt somit. Vielmehr ist nur die transportable zweite Datenverarbeitungsvorrichtung zu verschicken.If an error history is saved on a portable system, maintenance of the entire system can be simplified if necessary, since this error memory can be read and interpreted by customer service. A costly journey by a service technician is therefore no longer necessary. Rather, only the transportable second data processing device has to be sent.
Auch ist es möglich, Lizenz- und andere WartungsSysteme für mehrere Programme gleichzeitig in einer zweiten Datenverarbeitungsvorrichtung gemäß der Erfindung unterzubringen.It is also possible to accommodate license and other maintenance systems for several programs simultaneously in a second data processing device according to the invention.
In der Erprobung befindliche Teile eines Programms brauchen nicht mit der Installation des Haup programms auf der ersten Datenverarbeitungsvorrichtung installiert zu werden, sondern können in der zweiten Datenverarbeitungsvorrichtung abgelegt werden, so daß nach Fertigstellung eines entsprechenden Programmteils ein Austauschen der zweitenParts of a program being tested do not need to be installed with the installation of the main program on the first data processing device, but can be stored in the second data processing device, so that after the completion of a corresponding program part, the second part can be replaced
Datenverarbeitungsvorrichtung genügt, um eine fehlerfreie Funktionalität dem Anwender zur Verfügung zu stellen. Eine auch teilweise Neuinstallation des Programms auf der ersten Datenverarbeitungsvorrichtung entfällt mithin.Data processing device is sufficient to provide error-free functionality to the user. A partial reinstallation of the program on the first data processing device is therefore not necessary.
Figur 1 zeigt ein stark schematisiertes Ausführungsbeispiel der vorliegenden Erfindung. Bei dieser wird ein mobiles System gezeigt, bei dem ein Computer 1 die ersteFigure 1 shows a highly schematic embodiment of the present invention. This becomes a mobile one System shown in which a computer 1 is the first
Datenverarbeitungsvorrichtung darstellt und aus einer üblichen Rechnerhardware, Programmobjekten einesRepresents data processing device and from a common computer hardware, program objects one
Anwendungsprogramms und einer geeigneten Schnittstelle besteht.Application program and a suitable interface exists.
Die Schnittstellenvorrichtung 2 weist eine Kontaktleiste mit Kontakten 3 auf sowie Schrauben 4, die mittels ihrer Endstücke 5 in entsprechende Schraublöcher an der Schnittstelle der ersten Datenverarbeitungsvorrichtung 1 eingeschraubt werden können. Die Schnittstellenvorrichtung 2 weist weiterhin eine Aufnahme 6 auf, in die eine zweite Datenverarbeitungsvorrichtung, hier eine Chipkarte 7, eingeführt werden kann. Die SchnittStellenvorrichtung 2 kann auch mit mehreren Aufnahmen 6 ausgestattet sein.The interface device 2 has a contact strip with contacts 3 and screws 4, which can be screwed into corresponding screw holes at the interface of the first data processing device 1 by means of their end pieces 5. The interface device 2 also has a receptacle 6 into which a second data processing device, here a chip card 7, can be inserted. The interface device 2 can also be equipped with a plurality of receptacles 6.
Die zweite Datenverarbeitungsvorrichtung 7 ist im vorliegenden Beispiel eine sogenannte Smart-Lock-Card und weist eine Schnittstelle auf, mit der eine Ankopplung an die SchnittStellenvorrichtung möglich ist, eine Logikeinheit, einen Programmspeicher sowie einen Speicher für Daten. Im vorliegenden Fall erfolgt die Stromversorgung ebenfalls über die Schnittstellenvorrichtung 2. In the present example, the second data processing device 7 is a so-called smart lock card and has an interface with which a coupling to the interface device is possible, a logic unit, a program memory and a memory for data. In the present case, the power supply also takes place via the interface device 2.

Claims

PatentansprüchePatentansprüche Patent Claims Patent claims
1. Datenverarbeitungssystem mit1. Data processing system with
einer ersten Datenverarbeitungsvorrichtung (1) mit zumindest einem ersten Programmobjekt;a first data processing device (1) with at least one first program object;
einer mit der ersten Datenverarbeitungsvorrrichtung (1) verbundenen Schnittstellenvorrichtung (2) ; undan interface device (2) connected to the first data processing device (1); and
einer mit der SchnittStellenvorrichtung (2) verbindbaren zweiten Datenverarbeitungsvorrichtung (7) , die einena second data processing device (7) which can be connected to the interface device (2) and which has a
Festwertspeicher mit zumindest einem darin befindlichen zweiten Programmobjekt enthält;Contains read-only memory with at least one second program object located therein;
wobei das erste und das zweite Programmobjekt Programmschnittstellen zur Kommunikation miteinander aufweisen und das erste Programmobjekt nur voll funktional ist, wenn die Kommunikation der Programmobjekte durch die Verbindung der zweiten Datenverarbeitungsvorrichtung (7) mit der Schnittstellenvorrichtung (2) ermöglicht ist.wherein the first and second program objects have program interfaces for communication with one another and the first program object is only fully functional if the communication of the program objects is made possible by the connection of the second data processing device (7) to the interface device (2).
2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die erste Datenverarbeitungsvorrichtung2. Data processing system according to claim 1, characterized in that the first data processing device
(1) ein Anwendungsprogramm mit einer Mehrzahl erster Programmobj ekte aufweist .(1) has an application program with a plurality of first program objects.
3. Datenverarbeitungssystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß das zumindest eine zweite Programmobjekt Funktionen aufweist, welche vom zumindest einen ersten Programmo jekt über die Schnittstelle aufrufbar sind und welche für die volle Funktionalität des ersten3. Data processing system according to claim 1 or 2, characterized in that the at least one second program object has functions which of the at least a first Programmo ject can be called via the interface and which for the full functionality of the first
Programmobjekts notwendig sind.Program object are necessary.
4. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) zumindest ein Programmobjekt enthält, das für die Funktionalität zumindest eines ersten Programmobjekts notwendig ist.4. Data processing system according to one of claims 1 to 3, characterized in that the second data processing device (7) contains at least one program object which is necessary for the functionality of at least a first program object.
5. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) zumindest ein Programmobjekt enthält, das die Funktionalität zumindest eines ersten Programmobjekts ergänzt.5. Data processing system according to one of claims 1 to 4, characterized in that the second data processing device (7) contains at least one program object that complements the functionality of at least a first program object.
6. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) zumindest ein Programmobjekt enthält, welches die Funktionalität zumindest eines entsprechenden, ersten Programmobjekts ersetzt.6. Data processing system according to one of claims 1 to 5, characterized in that the second data processing device (7) contains at least one program object which replaces the functionality of at least one corresponding first program object.
7. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die erste Datenverarbeitungsvorrichtung (1) ein Programmobjekt aufweist, welches Fehlermeldungen der ersten Datenverarbeitungsvorrichtung (1) und/oder weiterer Programmobjekte in einem Speicher der zweiten Datenverarbeitungsvorrichtung (7) speichern kann.7. Data processing system according to one of claims 1 to 6, characterized in that the first data processing device (1) has a program object which error messages of the first data processing device (1) and / or further program objects can be stored in a memory of the second data processing device (7).
8. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) zumindest ein Datenobjekt enthält, das Informationen über Fehler enthält, die bei der ersten Datenverarbeitungsvorrichtung (1) und/oder dem ersten8. Data processing system according to one of claims 1 to 7, characterized in that the second data processing device (7) at least one data object contains information about errors occurring in the first data processing device (1) and / or the first
Programmobjekt aufgetreten sind.Program object occurred.
9. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die erste Datenverarbeitungsvorrichtung (1) ein Programmobjekt aufweist, welches zumindest einen in einem Speicher der zweiten Datenverarbeitungsvorrichtung (7) gespeicherten Lizenzschlüssel lesen und identifizieren kann.9. Data processing system according to one of claims 1 to 8, characterized in that the first data processing device (1) has a program object which can read and identify at least one license key stored in a memory of the second data processing device (7).
10. Datenverarbeitungssystem nach einem der Ansprüche 1 bis10. Data processing system according to one of claims 1 to
9, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) ein Programmobjekt aufweist, welches auf Anforderung eines Programmobjekts der ersten Datenverarbeitungsvorrichtung (1) einen Lizenzschlüssel zur ersten Datenverarbeitungsvorrichtung (1) übertragen kann.9, characterized in that the second data processing device (7) has a program object which, on request of a program object of the first data processing device (1), can transmit a license key to the first data processing device (1).
11. Datenverarbeitungssystem nach einem der Ansprüche 1 bis11. Data processing system according to one of claims 1 to
10, dadurch gekennzeichnet, daß die erste Datenverarbeitungsvorrichtung (1) ein Programmobjekt aufweist, welches zumindest einen in einem Speicher der zweiten Datenverarbeitungsvorrichtung (7) gespeicherten Versionsschlüssel lesen und identifizieren kann.10, characterized in that the first data processing device (1) has a program object which can read and identify at least one version key stored in a memory of the second data processing device (7).
12. Datenverarbeitungssystem nach einem der Ansprüche 1 bis12. Data processing system according to one of claims 1 to
11, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) ein Programmobjekt aufweist, welches auf Anforderung eines Programmobjekts der ersten Datenverarbeitungsvorrichtung (1) einen Versionsschlüssel zur ersten Datenverarbeitungsvorrichtung (1) übertragen kann. 11, characterized in that the second data processing device (7) has a program object which, on request of a program object of the first data processing device (1), can transmit a version key to the first data processing device (1).
13. Datenverarbeitungssystem nach einem der Ansprüche 1 bis13. Data processing system according to one of claims 1 to
12 , dadurch gekennzeichnet , daß die zweite Datenverarbeitungsvorrichtung (7) zumindest ein zweites Programmobjekt aufweist, das in der Lage ist, festzustellen, wie lange oder/und wie oft erste Programmobj ekte der ersten Datenverarbeitungsvorrichtung (1) verwendet werden; und das die entsprechende Information speichern kann.12, characterized in that the second data processing device (7) has at least one second program object which is able to determine how long and / or how often first program objects of the first data processing device (1) are used; and that can store the corresponding information.
14. Datenverarbeitungssystem nach einem der Ansprüche 1 bis14. Data processing system according to one of claims 1 to
13, dadurch gekennzeichnet, daß die zweite13, characterized in that the second
Datenverarbeitungsvorrichtung (7) eine transportable Einheit ist .Data processing device (7) is a portable unit.
15. Datenverarbeitungssystem nach Anspruch 14, dadurch gekennzeichnet, daß die zweite Datenverarbeitungsvorrichtung (7) eine Chipkarte ist.15. Data processing system according to claim 14, characterized in that the second data processing device (7) is a chip card.
16. Datenverarbeitungssystem nach Anspruch 14 oder 15, dadurch gekennzeichnet, daß die zweite16. Data processing system according to claim 14 or 15, characterized in that the second
Datenverarbeitungsvorrichtung eine Chipkarte ist, die eine Recheneinheit, eine Schnittstelle zur Verbindung mit der ersten Datenverarbeitungsvorrichtung (1) und einen Speicher zum Speichern von Programmobjekten und Datenobjekten aufweist.Data processing device is a chip card which has a computing unit, an interface for connection to the first data processing device (1) and a memory for storing program objects and data objects.
17. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 16, dadurch gekennzeichnet, daß die Verbindung zwischen erster Datenverarbeitungsvorrichtung (1) und Schnittstellenvorrichtung (2) eine serielle Schnittstelle aufweist . 17. Data processing system according to one of claims 1 to 16, characterized in that the connection between the first data processing device (1) and interface device (2) has a serial interface.
18. Datenverarbeitungssystem nach einem der Ansprüche 1 bis18. Data processing system according to one of claims 1 to
16, dadurch gekennzeichnet, daß die Verbindung zwischen erster Datenverarbeitungsvorrichtung (1) und SchnittStellenvorrichtung (2) eine parallele Schnittstelle aufweist . 16, characterized in that the connection between the first data processing device (1) and the interface device (2) has a parallel interface.
PCT/DE2001/000017 2000-01-25 2001-01-05 Data processing system WO2001055820A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10003086.6 2000-01-25
DE2000103086 DE10003086A1 (en) 2000-01-25 2000-01-25 Data processing system

Publications (2)

Publication Number Publication Date
WO2001055820A2 true WO2001055820A2 (en) 2001-08-02
WO2001055820A3 WO2001055820A3 (en) 2002-06-20

Family

ID=7628650

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2001/000017 WO2001055820A2 (en) 2000-01-25 2001-01-05 Data processing system

Country Status (2)

Country Link
DE (1) DE10003086A1 (en)
WO (1) WO2001055820A2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2835331B1 (en) * 2002-01-28 2008-08-22 Gemplus Card Int METHOD FOR CONTROLLING THE USE OF DIGITAL CONTENT BY A SECURITY MODULE OR A CHIP CARD COMPRISING SUCH MODULE
DE102004056635A1 (en) * 2004-11-23 2006-05-24 MICON Verein zur Förderung der Mobilität im Internet und in Kommunikationsnetzen e.V. Software distribution method for e.g. communication application, involves executing code on distribution medium, where execution takes place over input/output module, if communication with host computer and user is necessary

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997003398A1 (en) * 1995-07-13 1997-01-30 Sigbjoernsen Sigurd Protection of software against use without permit
WO1999066387A1 (en) * 1998-06-12 1999-12-23 Gemplus Method for verifying the execution of a software product

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3633297A1 (en) * 1986-09-30 1988-03-31 Siemens Ag Highly effective system to protect software against unauthorised use or misuse on computer system(s) other than that (those) which are supplied with a protective system
DE4302634A1 (en) * 1993-01-30 1994-08-04 Ralf Waldorf Stahringer Computer system with protection against software copying

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997003398A1 (en) * 1995-07-13 1997-01-30 Sigbjoernsen Sigurd Protection of software against use without permit
WO1999066387A1 (en) * 1998-06-12 1999-12-23 Gemplus Method for verifying the execution of a software product

Also Published As

Publication number Publication date
DE10003086A1 (en) 2001-08-02
WO2001055820A3 (en) 2002-06-20

Similar Documents

Publication Publication Date Title
DE19612999C2 (en) System for protecting protected software against unauthorized use in computer networks
DE60109304T2 (en) PROCESS AND DEVICE FOR SECURE NETWORK IDENTIFICATION
DE69531082T2 (en) Method and device with an encryption header, which makes it possible to test software
DE3809170C2 (en)
DE112007003231B4 (en) Programmable display device and control system
AT405466B (en) DEVICE FOR PROTECTING AN ELECTRONIC DEVICE
DE19963471A1 (en) Device for prevention of pirate copies of computer programs being made for use with a computer, has input- and output-devices corresponding to a module-port of the computer so that they are insertable into the port
DE102007063528A1 (en) System and method for protecting a security area of a system
EP1164456A1 (en) Software protection mechanism
DE69101099T2 (en) Method for confirming secret codes in memory cards.
DE19950249C1 (en) Electronic device with software protection for runtime software for automated systems
WO2001055820A2 (en) Data processing system
DE60125854T2 (en) Removable electronic device for increasing the functionality of a main processor and control method thereto
EP0464320A2 (en) Method for protecting record carriers individually against unauthorised use
DE60316183T2 (en) METHOD AND DEVICE FOR ALTERNATE ACTIVATION OF AN INTERCHANGEABLE HARDWARE UNIT
DE10359684B4 (en) Arrangement and method for the remote shutdown of a computer unit
DE10001126A1 (en) Chip card used as dongle for data processor - has memory holding license key supplied to data processor upon insertion of chip card for permitting operation of licensed computer program
DE19533209A1 (en) Device for assigning users in a computer network
DE4103173C5 (en) Device for protection against unauthorized use of software
DE19537074A1 (en) Testing equipment for motor vehicle
EP1288768A2 (en) Smart dongle
WO1993023807A1 (en) Program protection method for protecting data processing equipment
EP0321728A1 (en) Method and data carrier assembly for validating memory chips
DE4302634A1 (en) Computer system with protection against software copying
EP0184023A1 (en) Method and apparatus for the protection against unauthorized operation of protected programmes in a microcomputer

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): BR CN IN JP KR MX RU UA US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE 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)
AK Designated states

Kind code of ref document: A3

Designated state(s): BR CN IN JP KR MX RU UA US

AL Designated countries for regional patents

Kind code of ref document: A3

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

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP