DE10296511T5 - Verfahren und Einrichtung zum Überwachen der Benutzung eines Programms - Google Patents

Verfahren und Einrichtung zum Überwachen der Benutzung eines Programms Download PDF

Info

Publication number
DE10296511T5
DE10296511T5 DE10296511T DE10296511T DE10296511T5 DE 10296511 T5 DE10296511 T5 DE 10296511T5 DE 10296511 T DE10296511 T DE 10296511T DE 10296511 T DE10296511 T DE 10296511T DE 10296511 T5 DE10296511 T5 DE 10296511T5
Authority
DE
Germany
Prior art keywords
program
monitored
run
authorization
usage time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE10296511T
Other languages
English (en)
Inventor
Bradley Eagle Mountain Mitchell
David L. Orem Remer
Eric B. South Jordan Remer
David A. Highland King
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE10296511T5 publication Critical patent/DE10296511T5/de
Ceased legal-status Critical Current

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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

Ein Verfahren zum Verwalten der Benutzung eines Programms, umfassend:
Bestimmen, ob ein überwachtes Programm zum Ausführen autorisiert ist;
Messen einer Benutzungszeit für das überwachte Programm; und
Senden der Benutzungszeit an ein Überwachungsprogramm.

Description

  • HINTERGRUND
  • Software-Programme können auf einfache Weise unter Verwendung herkömmlicher Kopiertechniken dupliziert werden. Ein Software-Programm weist üblicherweise eine Menge von Befehlen auf, die typischerweise auf irgendeiner Form eines maschinenlesbaren Mediums gespeichert sind, wie beispielsweise einer Magnetplatte, optischen Platte, einem Speicher mit wahlfreiem Zugriff (RAM), einem Nur-Lese-Speicher (ROM) und so weiter. Die Aufgabe des Kopierens dieser Befehle von einem maschinen-lesbaren Medium zu einem anderen ist relativ trivial und kann auf vielfältige Weise ausgeführt werden.
  • Demzufolge wurden verschiedene Technologien entwickelt, um die Benutzung von Software zu kontrollieren und zu verwalten. Ein Ziel dieser Techniken kann darin bestehen, die Distribution und die Benutzung von Software durch autorisierte Benutzer zu erleichtern, während die Benutzung der Software durch nicht autorisierte Benutzer minimiert oder verhindert wird. Der Begriff "autorisiert" kann sich auf solche Nutzer beziehen, denen die Benutzung der Software gestattet ist, während sich der Begriff "nicht autorisiert" auf solche Benutzer beziehen kann, denen es nicht gestattet ist, die Software zu benutzen. Die Grundlage für eine Gestattung kann beispielsweise von dem Bezahlen einer Gebühr für die Benutzung des Programms abhängig sein.
  • Eine Art der Technik, die verwendet wird, um die Distribution und die Benutzung von Software zu kontrollieren und zu verwalten, kann allgemein als "genehmigungs-basierte" Technik bezeichnet werden. Bei der genehmigungs-basierten Technik kann es sein, daß das Programm die Eingabe eines Passcodes durch einen Benutzer erfordert, bevor die Ausführung des Programms gestattet wird. Der Passcode umfaßt üblicherweise eine spezielle Kombination alphanumerischer Zeichen oder Symbole. Somit würde selbst dann, wenn ein Benutzer eine nicht autorisierte Kopie des Programms gewinnen würde, dieses nicht ohne den richtigen Passcode arbeiten.
  • Genehmigungs-basierte Techniken sind jedoch aus einer Reihe von Gründen unbefriedigend. Beispielsweise kann es sein, daß der Benutzer die administrative Last des Erlangens des Passcodes vor der Benutzung eines Programms zu tragen hat. Darüber hinaus kann es sein, daß der Benutzer den Passcode vor jeder Benutzung des Programms eingeben muß. Dies könnte insbesondere dann ermüdend und zeitraubend für den Benutzer sein, wenn er die geschützte Software häufig benutzt. Darüber hinaus könnten diese administrativen Aufgaben noch lästiger werden, wenn mehrere Kopien des Programms auf mehreren Maschinen ausgeführt werden, wie beispielsweise in einer Umgebung eines Unternehmens oder eines Netzwerks. Wenn darüber hinaus der Passcode offengelegt würde, könnten nicht autorisierte Benutzer den Passcode benutzen, um illegal kopierte Versionen des Software-Programms zu aktivieren.
  • Angesichts des Vorstehenden ist es klar, daß ein erheblicher Bedarf vorhanden ist für ein Verfahren und/oder eine Einrichtung, das beziehungsweise die die oben erörterten Probleme löst.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Der als Ausführungsform der Erfindung angesehene Gegenstand ist im abschließenden Teil der Patentschrift ausdrücklich dargelegt und deutlich beansprucht. Ausführungsbeispiele der Erfindung können jedoch, sowohl hinsichtlich des Aufbaus als auch der Betriebsverfahren, zusammen mit ihren Aufgaben, Merkmalen und Vorteilen am besten durch Bezugnahme auf die nachfolgende detaillierte Beschreibung verstanden werden, wenn diese zusammen mit den beigefügten Zeichnungen gelesen wird, in welchen:
  • 1 ein System ist, das für die Ausführung eines Ausführungsbeispiels der Erfindung geeignet ist.
  • 2 ist eine Blockdarstellung eines Systems gemäß einem Ausführungsbeispiel der Erfindung.
  • 3 ist ein Blockablaufdiagramm der von einem Verwaltungsprogrammodul gemäß einem Ausführungsbeispiel der Erfindung ausgeführten Programmlogik.
  • 4 ist ein Blockablaufdiagramm der von einem überwachten Programmodul gemäß einem Ausführungsbeispiel der Erfindung ausgeführten Programmlogik.
  • 5 ist ein Blockablaufdiagramm der von einem Überwachungsprogrammodul gemäß einem Ausführungsbeispiel der Erfindung ausgeführten Programmlogik.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezielle Details angegeben, um ein besseres Verständnis der Ausführungsbeispiele der Erfindung zu erreichen. Für Fachleute ist es jedoch klar, daß die Ausführungsbeispiele der Erfindung auch ohne diese speziellen Details ausgeführt werden können. An anderen Stellen werden gut bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht im Detail beschrieben, um die Ausführungsbeispiele der Erfindung nicht zu verdecken.
  • Die Ausführungsbeispiele der Erfindung umfassen ein Verfahren und eine Einrichtung zur sicheren Überwachung der Benutzung eines Software-Programms über ein Netzwerk. Insbesondere können die Ausführungsbeispiele der Erfindung die Benutzung eines Software-Programms autorisieren, die Software-Programme überwachen und die Zeit messen, in der das Software-Programm autorisiert benutzt wird. Der Besitzer kann die gemessene Zeit für eine Reihe von Zwecken verwen den, wie beispielsweise Berichten, Abrechnen, Verfolgen und so weiter.
  • Die Ausführungsformen der Erfindung können die herkömmlichen genehmigungs-basierten Techniken anhaftenden Nachteile reduzieren. Beispielsweise braucht der Benutzer nicht mehr einen Passcode vor der Benutzung des Software-Programms zu beschaffen und einzugeben. Dies kann möglicherweise die administrative Last für einen autorisierten Benutzer reduzieren, sowie das Risiko, das ein Passcode durch nicht autorisierte Benutzer benutzt wird. Bei einem anderen Beispiel kann es sein, daß die Kosten oder Gebühren für die Benutzung des Software-Programms in dem Maße variieren, wie die Benutzung variiert, so daß der wahre kommerzielle Wert des Software-Programms genauer widergespiegelt wird. Dies könnte Vorteile gegenüber früheren Techniken zur Verfügung stellen, die einen wert aus dem Software-Programm zu schöpfen versuchten, indem beispielsweise Einzel- oder Multi-Benutzer-Lizenzen für Software-Programme verkauft wurden.
  • Es sei angemerkt, daß irgendwelche Bezugnahmen auf "ein Ausführungsbeispiel" oder "eine Ausführungsform" in der Beschreibung bedeuten, daß ein spezielles Merkmal, eine spezielle Struktur oder eine spezielle Eigenschaft, die in Verbindung mit dem Ausführungsbeispiel oder der Ausführungsform beschrieben wird, in zumindest einem Ausführungsbeispiel der Erfindung enthalten ist. Das Auftreten der Worte "bei einem Ausführungsbeispiel" an verschiedenen Stellen in der Beschreibung bezieht sich nicht notwendigerweise auf dasselbe Ausführungsbeispiel.
  • Es wird jetzt im Detail auf die Zeichnungen Bezug genommen, in denen gleiche Teile durchgängig durch gleiche Bezugszeichen gekennzeichnet sind, wobei in 1 ein System veranschaulicht ist, das zum Ausführen eines Ausführungsbeispiels der Erfindung geeignet ist. 1 ist eine Blockdarstellung eines Systems 100, das ein Netzwerk 102, ein Netzwerk 114 und einen Netzwerk-Server 118 aufweist. Bei ei nem Ausführungsbeispiel der Erfindung kann das Netzwerk 102 die Netzwerkknoten 104, 106 und 108 aufweisen, welche jeweils in der Lage sind, miteinander über ein Kommunikationsmedium 110 zu kommunizieren. Die Netzwerkknoten 104, 106 und 108 können beispielsweise einen Personalcomputer, einen Server, ein Netzwerkgerät, ein Gateway, einen Router, einen Switch und dergleichen enthalten. Das Netzwerk 102 könnte in der Lage sein, mit den Netzwerk 114 über ein Kommunikationsmedium 112 zu kommunizieren. Das Netzwerk 114 könnte einen oder mehrere (nicht gezeigte) Netzwerkknoten aufweisen, die in der Lage sind, Informationen aus dem Netzwerk 102 zu dem Netzwerk-Server 118 zu übermitteln. Das Netzwerk 114 kann in der Lage sein, mit dem Netzwerk-Server 118 über ein Kommunikationsmedium 116 zu kommunizieren. Bei diesem Ausführungsbeispiel der Erfindung könnten das Netzwerk 1100 und seine verschiedenen Bestandteile so konfiguriert sein, daß sie in Übereinstimmung mit einer beliebigen Anzahl von Netzwerktechniken betrieben werden, und könnten beispielsweise verschiedene Hardware, Software und Verbinder enthalten, die erforderlich sind, um Informationen zwischen Netzwerkknoten auszutauschen. Bei einem Ausführungsbeispiel der Erfindung ist das Netzwerk 100 so konfiguriert, daß es Informationen in Übereinstimmung mit dem Transmission Control Protocol (TCP), wie es von dem Internet Engineering Task Force (IETF) Standard 7, Request For Comment (RFC) 793, angenommen im September 1981, definiert ist, sowie in Übereinstimmung mit dem Internetprotokoll (IP), wie es von dem IETF-Standard 5,RFC 791, angenommen im September 1981, definiert ist, wobei beide von "www.ietf.org" ("TCP/IP Specification") erhältlich sind, übermittelt.
  • 2 ist eine Blockdarstellung eines Systems 200 gemäß einem Ausführungsbeispiel der Erfindung. Das System 200 kann stellvertretend für einen Netzwerkknoten stehen, wie beispielsweise die Netzwerkknoten 104, 106 und 108 und den Netzwerk-Server 118. Wie es in 2 gezeigt ist, enthält das System 200 einen Prozessor 202, einen Eingabe/Ausgabe(I/O)-Adapter 204, eine Bedienerschnittstelle 206, einen Speicher 210 und einen Plattenspeicher 218. Der Speicher 210 kann Computerprogrammbefehle und Daten speichern. Der Begriff "Programmbefehle" kann Computerbefehlscodesegmente einschließen, die Worte, werte und Symbole aus einer vorgegebenen Computersprache aufweisen, die dann, wenn sie in Übereinstimmung mit einer vorgegebenen Weise oder einer Syntax in eine Kombination gebracht werden, einen Prozessor veranlassen, eine bestimmte Funktion auszuführen. Beispiele von Computersprachen sind C, C++, lisp und Assemblersprachen. Der Prozessor 202 führt die Programmbefehle aus und verarbeitet die Daten, die im Speicher 210 gespeichert sind. Der Plattenspeicher 218 speichert Daten, die in den Speicher 210 oder aus dem Speicher 210 übertragen werden sollen. Die I/O-Adapter 204 kommuniziert mit anderen Einrichtungen und überträgt Daten in das Computersystem oder aus dem Computersystem über die Verbindung 224. Die Bedienerschnittstelle 206 bildet eine Oberfläche zu einem Systembediener, indem sie Kommandos aufnimmt und Statusinformationen zur Verfügung stellt. Alle diese Elemente sind durch einen Bus 208 miteinander verbunden, welcher die Übermittlung von Daten zwischen diesen Elementen ermöglicht. Der I/O-Adapter 204 repräsentiert einen oder mehrere I/O-Adapter oder Netzwerkschnittstellen, die eine Verbindung zu lokalen oder Weitbereichsnetzwerken gestatten, wie beispielsweise die in 1 beschriebenen Netzwerke. Folglich repräsentiert die Verbindung 224 eine Netzwerk- oder eine direkte Verbindung zu weiterer Ausrüstung.
  • Der Prozessor 202 kann ein beliebiger Prozessor sein, der in der Lage ist, die durch die Ausführungsformen der Erfindung erforderliche Geschwindigkeit und Funktionalität zur Verfügung zu stellen. Beispielsweise könnte der Prozessor 202 ein Prozessor aus Familien von Prozessoren sein, die von der Intel Corporation, von der Motorola Incorporated, der Sun Microsystems Incorporated, der Compaq Computer Corporation oder anderen hergestellt werden. Der Prozessor 202 kann darüber hinaus einen digitalen Signalprozessor (DSP) und begleitende Architektur umfassen, wie beispielsweise einen DSP von der Texas Instruments Incorporated.
  • Bei einem Ausführungsbeispiel der Erfindung können der Speicher 210 und der Plattenspeicher 218 ein maschinenlesbares Medium darstellen und können irgendein Medium enthalten, welches in der Lage ist, zur Ausführung durch einen Prozessor ausgebildete Befehle zu speichern. Einige Beispiele derartiger Medien umfassen beispielsweise Nur-Lese-Speicher (ROM), Speicher mit wahlfreiem Zugriff (RAM), programmierbare ROM, löschbare und programmierbare ROM, elektronisch löschbare und programmierbare ROM, dynamischen RAM, Magnetplatten (zum Beispiel Disketten oder Festplatten), optische Platten (zum Beispiel CDROM) oder irgendwelche anderen Medien, die digitale Informationen speichern können. Bei einem Ausführungsbeispiel der Erfindung liegen die auf den Medien gespeicherten Befehle in einem komprimierten und/oder verschlüsselten Format vor. In der hier verwendeten Weise bedeutet der Begriff "an die Ausführung durch einen Prozessor angepaßt", daß er Befehle einschließen soll, die in einem komprimierten und/oder verschlüsselten Format gespeichert sind, sowie Befehle, die kompiliert oder von einem Installierer installiert werden müssen, bevor sie durch den Prozessor ausgeführt werden können. Darüber hinaus kann das System 200 verschiedene Kombinationen maschinen-lesbarer Speichereinrichtungen über verschiedene I/O-Controller enthalten, welche durch den Prozessor 202 zugreifbar sind und welche in der Lage sind, eine Kombination von Computerprogrammbefehlen und Daten zu speichern.
  • Der Speicher 210 ist durch den Prozessor 202 über den Bus 208 zugreifbar und enthält ein Betriebssystem 216, eine Programmpartition 212 und eine Datenpartition 214. Bei einem Ausführungsbeispiel der Erfindung kann das Betriebssystem ein von der Microsoft Corporation verkauftes Betriebssystem, wie beispielsweise Microsoft Windows 95, 98, 2000 und NT sein. Die Programmpartition 212 speichert Programmbefehle, die die Funktionen jedes der hier beschriebenen Systeme implementieren und die Ausführung durch den Prozessor 202 gestatten. Die Datenpartition 214 ist durch den Prozessor 202 zugreifbar und speichert Daten, die während der Ausführung der Programmbefehle verwendet werden.
  • Die Programmpartition 212 kann Programmbefehle enthalten, die im folgenden kollektiv als überwachtes Programmodul, Verwaltungsprogrammodul und Überwachungsprogrammodul bezeichnet werden. Selbstverständlich ist der Umfang der Erfindung nicht auf diesen speziellen Satz von Befehlen oder diese Gruppierungen von Befehlen beschränkt.
  • Bei einem Ausführungsbeispiel der Erfindung kann sich das überwachte Programmodul in der Programmpartition 212 eines Systems 200 aufhalten, das als Netzwerknoten betrieben wird, der Teil des Netzwerks 102 ist, wie beispielsweise dem Netzwerkknoten 104. Das überwachte Programmodul arbeitet, um mit dem Verwaltungsprogrammodul zu kommunizieren, um periodisch die Autorisierung zum Ausführen eines Ziel-Software-Programms anzufordern. Ein Ziel-Software-Programm im hier verwendeten Sinne ist irgendeine Software-Anwendung oder ein Programm, dessen Benutzung überwacht werden soll. Bei einem Ausführungsbeispiel der Erfindung kann sich das Ziel-Software-Programm beispielsweise in der Programmpartition 212 des Netzwerkknotens 104 mit dem überwachten Programmodul aufhalten.
  • Bei einem Ausführungsbeispiel der Erfindung kann das überwachte Programmodul eine Kombination von Befehlen umfassen, die zu einem Ziel-Software-Programm hinzugefügt werden und Befehle, die als Teil einer Benutzungsbibliothek gespeichert werden. Der Begriff "Benutzungsbibliothek", wie er hier verwendet wird, kann sich auf eines oder mehrere zuvor definierte Programmmodule beziehen, die zur Verwendung durch das Ziel-Software-Programm verfügbar sind. Bei diesem Ausführungsbeispiel der Erfindung können die zuvor definierten Programmmodule die Funktionen des Erzeugens einer die Autorisierung zum Ausführen anfordernden Nachricht, des Sendens der Anforderung an das Verwaltungsprogramm, des Empfangens einer Autorisierungsnachricht mit einem Zeitintervall, des Empfangens einer Beendigungsnachricht, des Überwachens einer Uhr zum Senden einer weiteren Autorisierungsnachricht mit einem Zeitintervall und so weiter ausführen. Bei Aktivierung kann das modifizierte Ziel-Software-Programm Software-Aufrufe an ein oder mehrere zuvor definierte Programmmodule, die die Benutzungsbibliothek bilden, zu geeigneten Zeitpunkten während des Ausführungszyklus des modifizierten Ziel-Software-Programms ausführen. Ein Software-Aufruf kann sich auf eine Anforderung durch ein Programmodul zur Ausführung von Befehlen, die als Teil eines anderen Programmmoduls gespeichert sind, beziehen.
  • Bei einem Ausführungsbeispiel der Erfindung kann sich das Verwaltungsprogrammodul in der Programmpartition 212 eines System 200 aufhalten, das als derselbe oder ein anderer Netzwerkknoten betrieben wird, der Teil des Netzwerks 102 ist, wie beispielsweise der Netzwerkknoten 106. Das Verwaltungs-Programmodul kommuniziert mit dem überwachten Programmodul, um die Benutzung des Ziel-Software-Programms zu autorisieren und zu verfolgen. Das Verwaltungsprogrammodul kommuniziert darüber hinaus mit dem Überwachungsprogrammodul, um die Benutzungszeit für ein überwachtes Programm zu übermitteln. Der Begriff "Benutzungszeit", wie er hier verwendet wird, bezieht sich auf die Zeitdauer, in der sich ein überwachtes Programm in autorisierter Benutzung befindet oder mit Autorisierung ausgeführt wird.
  • Bei einem Ausführungsbeispiel der Erfindung kann sich das Überwachungsprogrammodul in der Programmpartition 212 eines Systems 200 aufhalten, das als Netzwerk-Server arbeitet, wie beispielsweise der Netzwerk-Server 118. Das Überwa chungsprogrammodul kommuniziert mit dem Verwaltungsprogrammodul, um die Informationen über die Zeit der Benutzung zu empfangen und die Informationen über die Benutzungszeit an eine interessierte Partei zu berichten. Beispielsweise könnte das Überwachungsprogrammodul die Benutzungszeitinformationen verwenden, um Kosten für die Benutzung des Ziel-Software-Programms zu berechnen und sie der richtigen Partei entsprechend in Rechnung zu stellen.
  • Bei einem Ausführungsbeispiel der Erfindung kann der I/O-Adapter 204 einen Netzwerkadapter oder eine Netzwerkschnittstellenkarte (NIC; Network Interface Card) enthalten, der beziehungsweise die so konfiguriert ist, daß er beziehungsweise sie unter Verwendung irgendeiner geeigneten Technik zum Steuern von Kommunikationssignalen zwischen Computern oder Netzwerkgeräten unter Verwendung eines gewünschten Satzes von Kommunikationsprotokollen, Diensten und Betriebsprozeduren zu arbeiten. Bei einem Ausführungsbeispiel der Erfindung kann der I/O-Adapter 204 beispielsweise in Übereinstimmung mit der TCP/IP-Spezifikation arbeiten. Obwohl der I/O-Adapter 204 gemäß der TCP/IP-Spezifikation betrieben werden kann, ist es klar, dass der I/O-Adapter 204 auch mit irgendeiner geeigneten Technik zum Steuern von Kommunikationssignalen zwischen Computern oder Netzwerkgeräten beispielsweise unter Verwendung eines gewünschten Satzes von Kommunikationsprotokollen, Diensten und Betriebsprozeduren arbeiten kann und dennoch in den Umfang der Erfindung fällt. Der I/O-Adapter 204 kann darüber hinaus geeignete Verbinder zum Verbinden der Schnittstelle 216 mit einem geeigneten Kommunikationsmedium enthalten. Der I/O-Adapter 204 kann Kommunikationssignale über irgendein geeignetes Medium empfangen, wie beispielsweise Kupferleitungen, verdrillte Doppelleitungen, Koaxialkabel, Glasfasern, Funkverbindungen und so weiter.
  • Die Betriebsweise der Systeme 100 und 200 kann näher unter Bezugnahme auf die 3, 4 und 5 mit begleitenden Beispielen beschrieben werden. Obwohl die hier angegebenen 3, 4 und 5 eine bestimmte Verarbeitungslogik enthalten können, ist es klar, daß die Verarbeitungslogik lediglich ein Beispiel zur Verfügung stellt, wie die hier beschriebene allgemeine Funktionalität implementiert werden kann. Darüber hinaus braucht jede Operation innerhalb einer gegebenen Verarbeitungslogik nicht unbedingt in der angegebenen Reihenfolge ausgeführt zu werden, solange nichts anderes ausgesagt ist.
  • 3 ist ein Blockablaufdiagramm der Programmlogik, die von einem Verwaltungsprogrammodul gemäß einem Ausführungsbeispiel der Erfindung ausgeführt wird. Der Begriff Verwaltungsprogrammodul bezieht sich auf die Software und/oder die Hardware, die zum Implementieren der Funktionalität zum Autorisieren und Aufzeichnen der Zeit, in der sich ein Ziel-Software-Programm in autorisierter Benutzung befindet oder mit Autorisierung ausgeführt wird, wie es hier beschrieben wird, verwendet wird. Bei diesem Ausführungsbeispiel der Erfindung kann der Netzwerkknoten 106 die unter Bezugsnahme auf das Verwaltungsprogrammodul beschriebene Funktionalität ausführen. Es ist klar, daß diese Funktionalität jedoch durch eine beliebige Einrichtung oder eine Kombination von Einrichtungen implementiert werden kann, die irgendwo in einem Kommunikationsnetzwerk lokalisiert sind, und noch in den Schutzbereich der Erfindung fällt.
  • 3 veranschaulicht eine Programmlogik 300, die, wenn sie von einem Prozessor, beispielsweise dem Prozessor 202, ausgeführt wird, die hier beschriebene Funktionalität ausführen kann. Am Block 302 wird eine Bestimmung durchgeführt darüber, ob ein überwachtes Programm autorisiert ist, ausgeführt zu werden. Der Begriff "überwachtes Programm", wie er hier verwendet wird, kann ein Ziel-Software-Programm einschließen. Am Block 304 wird eine Benutzungszeit für das überwachte Programm gemessen. Die Benutzungszeit wird im Block 306 an ein Überwachungsprogramm gesendet.
  • Bei einem Ausführungsbeispiel der Erfindung kann die Bestimmung im Block 302 unter Verwendung eines periodischen Autorisierungsprozesses durchgeführt werden. Beispielsweise wird eine Anforderung einer Autorisierung zum Ausführen aus dem überwachten Programm empfangen. Das überwachte Programm wird zur Ausführung für ein Zeitintervall autorisiert. Der Begriff "Zeitintervall", wie er hier verwendet wird, kann sich auf eine Zeitdauer beziehen, während welcher das überwachte Programm autorisiert wird, ausgeführt zu werden. Das Zeitintervall wird an das überwachte Programm gesendet. Dieser Prozeß kann auf einer periodischen Grundlage fortgesetzt werden, bis ein Beendigungsereignis aufgetreten ist. Sobald das Beendigungsereignis aufgetreten ist, können die Zeitintervalle für jeden wiederholten Prozeß miteinander addiert werden, um die Benutzungszeit zu bilden. Wenn beispielsweise drei Zeitintervalle an das überwachte Programm vor dem Beendigungsereignis gesendet wurden, würden die drei Zeitintervalle miteinander addiert werden, um die Benutzungszeit zu bilden. Es ist klar, daß die Zeitintervalle gleich oder verschieden sein können und dennoch in den Schutzbereich der Erfindung fallen.
  • Bei einem Ausführungsbeispiel der Erfindung kann das Beendigungsereignis das Empfangen einer Nachricht umfassen, die anzeigt, daß die Verwendung oder die Ausführung des Programms beendet worden ist. Beispielsweise könnte das überwachte Programm von einem Benutzer eine Anweisung empfangen, die Ausführung zu beenden. Vor der Beendigung kann das überwachte Programm eine Nachricht an das Verwaltungsprogramm senden, welche anzeigt, daß das überwachte Programm eine Beendigungsanweisung empfangen hat und folglich nicht länger ausführt.
  • Bei einem Ausführungsbeispiel der Erfindung kann das Beendigungsereignis umfassen, daß keine weitere Anforderung einer Autorisierung zum Ausführen innerhalb des Zeitintervalls empfangen wird. Dies könnte beispielsweise dann auf treten, wenn das überwachte Programm vorzeitig beendet wurde, ohne daß Zeit zum Senden einer Beendigungsnachricht an das Verwaltungsprogramm blieb, beispielsweise im Fall eines Spannungsversorgungsausfalls oder einer Computerfehlfunktion.
  • Bei einem Ausführungsbeispiel der Erfindung kommunizieren das überwachte Programm und das Verwaltungsprogramm miteinander unter Verwendung eines sicheren Verfahrens. Ein Beispiel eines sicheren Verfahrens ist ein Verschlüsselungs/Entschlüsselungsschema. Beispielsweise könnten das überwachte Programm und das Verwaltungsprogramm miteinander unter Verwendung von Nachrichten kommunizieren, die in Übereinstimmung mit verschiedenen Sicherheitsschemata verschlüsselt/entschlüsselt worden sind. Eine Ausführungsform der Erfindung könnte beispielsweise ein symmetrisches Schema verwenden. Ein symmetrisches Schema in diesem Sinne bezieht sich auf ein Sicherheitsschema, bei dem beide Parteien den gleichen Sicherheitscode oder "-schlüssel" verwenden, um eine sichere Nachricht zu verschlüsseln und/oder zu entschlüsseln. Bei einem Ausführungsbeispiel der Erfindung sind das überwachte Programm und das Verwaltungsprogramm so konfiguriert, daß sie Informationen unter Verwendung eines symmetrischen Schemas gemäß dem Data Encryption Standard (DES) oder Triple DES (TDES), wie sie von dem National Institute of Standards and Technology, Federal Information Processing Standards Publication 46-3, 25. Oktober 1995, definiert und von "http://csrc.nist.gov/cryptval/des/desval.html" ("DES Spezifikation") erhältlich sind, austauschen, obwohl die Ausführungsbeispiele der Erfindung nicht auf diesen Kontext beschränkt sind.
  • Sobald eine Benutzungszeit bestimmt worden ist, kann das Verwaltungsprogramm die Benutzungszeit an ein Überwachungsprogramm senden. Das Überwachungsprogramm kann sich auf einem Computer oder einem Server aufhalten, der von dem des überwachten Programms oder des Verwaltungsprogramms ver schieden ist, obwohl die Erfindung in diesem Zusammenhang nicht eingeschränkt ist. Bei einem Ausführungsbeispiel der Erfindung können sich sowohl das Verwaltungsprogramm als auch das Überwachungsprogramm auf einem Computer oder Server aufhalten, der in der Lage ist, Informationen in Übereinstimmung mit der TCP/IP-Spezifikation zu übermitteln. Insbesondere könnte das Verwaltungsprogramm eine Verbindung anfordern, die gemäß dem Hypertext Transfer Protocol (HTTP) ausgestaltet ist, wie es durch den IETF Draft Standard RFC 2616, Juni 1999, ("HTTP-Spezifikation") definiert ist, und dem sicheren HTTP (S-HTTP), wie es durch den IETF Experimental Standard RFC 2660, August 1999, ("S-HTTP-Spezifikation") definiert ist, beide erhältlich von "www.ietf.org", obwohl die Erfindung nicht auf diesen Kontext eingeschränkt ist. Sobald die Verbindung hergestellt ist, kann die Benutzungszeit an das Überwachungsprogramm über die Verbindung gesendet werden.
  • Ähnlich der Kommunikation zwischen dem überwachten Programm und dem Verwaltungsprogramm kann die Kommunikation zwischen dem Verwaltungsprogramm und dem Überwachungsprogramm eine sichere Kommunikation sein. Ein Beispiel eines sicheren Verfahrens kann ein Verschlüsselungs/Entschlüsselungsschema sein. Beispielsweise können das Verwaltungsprogramm und das Überwachungsprogramm miteinander unter Verwendung von Nachrichten kommunizieren, die gemäß verschiedener Sicherheitsschemata verschlüsselt/entschlüsselt werden. Ein Ausführungsbeispiel der Erfindung könnte ein asymmetrisches Schema benutzen. Ein asymmetrisches Schema soll sich auf ein Sicherheitsschema beziehen, bei dem beide Parteien verschiedene Schlüssel benutzen, um eine sichere Nachricht zu verschlüsseln und/oder entschlüsseln. Bei einem Ausführungsbeispiel der Erfindung sind das Verwaltungsprogramm und das Überwachungsprogramm so konfiguriert, daß sie Informationen unter Verwendung eines asymmetrischen Schema gemäß dem Secure Sockets Layer (SSL) Protocol Version 3.0 Internet draft, wie es durch die IETF im November 1996 definiert ist ("SSL Spezifikation"), oder gemäß Transport Layer Security (TLS) Protocol draft Standard, wie er durch die IETF RFC 2246, Januar 1999 ("TLS Spezifikation) definiert ist, austauschen, wobei beide Standards bei "www.ietf.org" erhältlich sind, obwohl die Ausführungsbeispiele der Erfindung in diesem Kontext nicht eingeschränkt sind. Darüber hinaus könnte das Überwachungsprogramm als einzelne vertrauenswürdige Quelle agieren, die ein Autorisierungszertifikat zur Verwendung durch das Verwaltungsprogramm ausgeben kann, um beispielsweise die IP-Adresse für das überwachte Programm, das Verwaltungsprogramm oder das Überwachungsprogramm zu authentisieren.
  • Es sei angemerkt, daß, obwohl bestimmte Ausführungsformen der Erfindung symmetrische oder asymmetrische Sicherheitsschemata verwenden können, es klar ist, daß beliebige Sicherheitsschemata verwendet werden können, um Informationen zwischen dem überwachten Programm, dem Verwaltungsprogramm und dem Überwachungsprogramm auszutauschen, und dabei noch in den Umfang der Ausführungsformen der Erfindung zu fallen.
  • Das Verwaltungsprogramm kann die Ausführung für ein überwachtes Programm auf verschiedenartige Weise autorisieren. Beispielsweise kann das Verwaltungsprogramm eine Autorisierungstabelle im Speicher haben. Die Autorisierungstabelle kann beispielsweise einen Namen für das überwachte Programm, eine Anzeige, ob das überwachte Programm zum Ausführen autorisiert ist, und ein vorgegebenes Zeitintervall, das dem überwachten Programm zugeordnet ist, enthalten. Ein Beispiel einer Autorisierungstabelle ist in Tabelle 1 unten gezeigt. TABELLE 1
    Figure 00160001
  • Sobald das Verwaltungsprogramm eine Anforderung für eine Autorisierung zum Ausführen aus dem überwachten Programm empfängt, kann das Verwaltungsprogramm die Autorisierungstabelle unter Verwendung des Programmnamens durchsuchen. Sobald der Programmname gefunden ist, kann das Verwaltungsprogramm bestimmen, ob das überwachte Programm zum Ausführen autorisiert ist, und wenn dies der Fall ist, kann es ein vorgegebenes Zeitintervall für das überwachte Programm zur Ausführung gewinnen. Das Verwaltungsprogramm kann dann das Zeitintervall an das überwachte Programm senden.
  • Wenn beispielsweise das überwachte Programm als "Programm 1" identifiziert ist, kann das Verwaltungsprogramm die Autorisierungstabelle verwenden, um zu bestimmen, daß Programm 1 zum Ausführen autorisiert ist, und das entsprechende Zeitintervall von zehn Minuten gewinnen beziehungsweise lesen. Das Verwaltungsprogramm kann dann das Zeitintervall von zehn Minuten an das überwachte Programm senden. Das überwachte Programm weiß dann, daß es eine Nachricht für eine weitere Anforderung für eine Autorisierung zum Ausführen innerhalb von zehn Minuten senden muß, um die Ausführung fortzusetzen, wobei es anderenfalls beendet wird. Bei einem anderen Beispiel kann dann, wenn das überwachte Programm als "Programm 4" identifiziert wird, das Verwaltungsprogramm die Autorisierungstabelle benutzen, um zu bestimmen, daß Programm 4 nicht zum Ausführen autorisiert ist. Das Verwal tungsprogramm kann dann auf verschiedene Weise antworten, wie beispielsweise um eine Autorisierung für das überwachte Programm bei dem Überwachungsprogramm nachsuchen, die Anzahl der Versuche aufzeichnen, die das überwachte Programm unternimmt, um die Autorisierung anzufordern, oder eine Beendigungsnachricht an das überwachte Programms senden.
  • Es ist klar, daß die Tabelle 1 lediglich veranschaulichen soll und daß die Ausführungsbeispiele der Erfindung in diesem Kontext nicht eingeschränkt sind. Beispielsweise könnte die Autorisierungstabelle das Feld zur "Autorisierung" fortlassen und bloß das Feld "Zeitintervall" verwenden, um daraus abzuleiten, ob eine Autorisierung gewährt wird. Beispielsweise könnte das Feld "Zeitintervall" einen Standardwert enthalten, der so definiert ist, daß er bedeutet, daß keine Autorisierung gewährt wird, wie beispielsweise "NA" oder "0".
  • Darüber hinaus ist es klar, daß die Länge des Zeitintervalls gemäß einer speziellen Netzwerk- oder Systemkonfiguration variieren kann. Im allgemeinen kann die Benutzungszeit um so genauer bestimmt werden, je kürzer das Zeitintervall ist. Wenn beispielsweise ein überwachtes Programm vorzeitig beendet werden würde, würde ein kürzeres Zeitintervall die gesamte Benutzungszeit für das überwachte Programm genauer annähern als ein längeres Zeitintervall. Dies könnte insbesondere dann wichtig sein, wenn einem Benutzer die Benutzung eines überwachten Programms auf der Grundlage der Benutzungszeit beispielsweise in Rechnung gestellt würde.
  • 4 ist ein Blockablaufdiagramm der Programmierlogik, die von einem überwachten Programmodul gemäß einem Ausführungsbeispiel der Erfindung ausgeführt wird. Der Begriff "überwachtes Programmodul" bezieht sich auf diejenige Software und/oder Hardware, die verwendet wird, um die Funktionalität zum Anfordern einer Autorisierung zur Ausführung und gegebenenfalls Beendigung des überwachten Programms, wie es nachfolgend näher beschrieben wird, zu implementieren. Bei diesem Ausführungsbeispiel der Erfindung kann der Netzwerkknoten 104 die unter Bezugnahme auf das überwachte Programmodul beschriebene Funktionalität ausführen. Es ist jedoch klar, daß diese Funktionalität durch eine beliebige Einrichtung oder eine Kombination von Einrichtungen, die irgendwo in einem Kommunikationsnetzwerk lokalisiert sind, implementiert werden kann und noch in den Schutzbereich der Erfindung fällt.
  • 4 veranschaulicht eine Programmierlogik 400, die, wenn sie von einem Prozessor, wie beispielsweise dem Prozessor 202, ausgeführt wird, die hier beschriebene Funktionalität ausführt. Am Block 402 wird eine Bestimmung ausgeführt, ob ein überwachtes Programm zum Ausführen autorisiert ist. Beim Block 404 wird das überwachte Programm in Übereinstimmung mit der im Block 402 getroffenen Feststellung ausgeführt.
  • Bei einem Ausführungsbeispiel der Erfindung kann die Bestimmung im Block 402 eine Abfrage an ein Verwaltungsprogramm umfassen. Beispielsweise könnte das überwachte Programm eine Nachricht an das Verwaltungsprogramm senden, die eine Autorisierung zum Ausführen anfordert. Das Verwaltungsprogramm könnte antworten, indem es dem überwachten Programm eine Autorisierung zum Ausführen zusammen mit einem Zeitintervall zur Ausführung sendet. Dieser Prozeß kann wiederholt werden, indem das überwachte Programm eine weitere Anforderung zur Autorisierung vor dem empfangenen Zeitintervall sendet. Mit anderen Worten, das überwachte Programm wird solange ausgeführt, wie es eine richtige Autorisierung aus dem Verwaltungsprogramm in Form einer empfangenen Nachricht mit einem Zeitintervall empfängt. Sobald das überwachte Programm die Ausführung beendet hat, wie beispielsweise dann, wenn es von einem Benutzer eine Anforderung zum Beenden empfängt, kann das überwachte Programm eine Beendigungsnachricht an das Verwaltungsprogramm senden. Die Beendigungsnachricht kann das Verwaltungsprogramm darüber informieren, daß die Ausführung des überwachten Programms beendet worden ist.
  • Bei einem Ausführungsbeispiel der Erfindung kann das überwachte Programm angewiesen werden, zu beenden, wenn das überwachte Programm innerhalb einer vorgegebenen Zeitdauer keine Autorisierungsnachricht und kein Zeitintervall aus dem Verwaltungsprogramm empfängt. Die vorgegebene Zeitdauer kann eine beliebige gewünschte Zeitdauer sein, beispielsweise zehn Minuten. Bei einem anderen Ausführungsbeispiel der Erfindung kann das überwachte Programm angewiesen werden, dann zu beenden, wenn das überwachte Programm keine Autorisierungsnachricht und kein Zeitintervall aus dem Verwaltungsprogramm nach einer vorgegebenen Anzahl von Anforderungen zur Autorisierung zum Ausführen ohne Erwiderung empfangen hat. In beiden Fällen kann das Fehlen des Empfangens einer Autorisierungsnachricht aus dem Verwaltungsprogramm anzeigen, daß das überwachte Programm nicht länger in einer sicheren Umgebung abläuft und folglich eine zuverlässige Benutzungszeit nicht von dem Überwachungsprozeß garantiert werden kann.
  • 5 ist ein Blockablaufdiagramm der von einem Überwachungsprogrammodul gemäß einem Ausführungsbeispiel der Erfindung ausgeführten Programmierlogik. Der Begriff „Überwachungsprogrammodul" bezieht sich auf diejenige Software und/oder Hardware, die verwendet wird, um die Funktionalität zum Überwachen der Benutzungszeit für ein überwachtes Programm, wie sie hier beschrieben wird, zu implementieren. Bei diesem Ausführungsbeispiel der Erfindung kann der Netzwerk-Server 118 die unter Bezugnahme auf das Überwachungsprogrammodul beschriebene Funktionalität ausführen. Es ist klar, daß diese Funktionalität jedoch durch eine beliebige Einrichtung oder eine Kombination von Einrichtungen, die irgendwo in einem Kommunikationsnetzwerk angeordnet sind, implementiert werden kann und noch in den Schutzbereich der Erfindung fällt.
  • 5 veranschaulicht eine Programmierlogik 500, die, wenn sie von einem Prozessor, wie beispielsweise dem Prozessor 202, ausgeführt wird, die hier beschriebene Funktionalität ausführen kann. Beim Block 502 wird eine Benutzungszeit für ein überwachtes Programm über eine Netzwerkverbindung empfangen. Die Benutzungszeit kann an einen Benutzer, der dem überwachten Programm entspricht, beim Block 504 berichtet werden. Beispielsweise kann jedem überwachten Programm ein Benutzerprofil zugeordnet sein. Das Benutzerprofil kann beispielsweise Informationen bezüglich autorisierter Benutzer des überwachten Programms, einer für das Bezahlen für die Benutzung des überwachten Programms verantwortlichen Person, die der Benutzung des überwachten Programms zugeordneten Kosten, eine Rechnungsadresse für die verantwortliche Person und so weiter enthalten. Das Überwachungsprogramm kann das Benutzerprofil benutzen, um automatisch einen Kostenwert für die Benutzung des überwachten Programms auf der Grundlage der Benutzungszeit zu bestimmen und eine Rechnung an eine für die Bezahlung für eine derartige Benutzung verantwortliche Person senden. Der Begriff „automatisch", wie er hier verwendet wird, bezieht sich auf das Ausführen der besagten Funktion ohne Bedienereingriff.
  • Darüber hinaus kann das Überwachungsprogramm Autorisierungstabellen für das Verwaltungsprogramm erzeugen, verwalten und aktualisieren. wenn beispielsweise ein neues überwachtes Programm von dem Verwaltungsprogramm verwaltet werden soll, würden die richtigen Informationen zu der Autorisierungstabelle für das Verwaltungsprogramm hinzugefügt werden. Bei einem Ausführungsbeispiel der Erfindung könnte dies ausgeführt werden, indem die Modifikationen an das Verwaltungsprogramm gesendet werden und das Verwaltungsprogramm seine eigene Autorisierungstabelle aktualisiert. Bei einem anderen Ausführungsbeispiel der Erfindung könnte das Überwachungsprogramm eine neue Autorisierungstabelle an das Verwaltungsprogramm senden, die die vorhergehende Autorisie rungstabelle ersetzen soll. In beiden Fällen kann das Überwachungsprogramm die Autorisierung auf periodischer Basis aktualisieren oder dann, wenn das Überwachungsprogramm eine Modifikationsanforderung, beispielsweise aus dem Verwaltungsprogramm oder von einem autorisierten Benutzer, wie er in dem Benutzerprofil definiert ist, empfängt.
  • Während bestimmte Merkmale der Ausführungsbeispiele der Erfindung in der hier beschriebenen Weise veranschaulicht worden sind, kommen jetzt Fachleuten viele Modifikationen, Ersetzungen, Änderungen oder Äquivalente in den Sinn. Es ist folglich klar, daß die beigefügten Ansprüche sämtliche derartigen Modifikationen und Änderungen abdecken sollen, soweit sie unter den wahren Geist der Ausführungsbeispiele der Erfindung fallen.
  • VERFAHREN UND EINRICHTUNG ZUM ÜBERWACHEN DER BENUTZUNG EINES PROGRAMMS
  • ZUSAMMENFASSUNG
  • Ein Verfahren und eine Einrichtung zum Überwachen der Benutzung eines Software-Programms. Ein Überwachungsprogramm autorisiert die Ausführung eines überwachten Programms für ein vorgegebenes Zeitintervall. Das Zeitintervall ist softwarespezifisch und wird aus einer Autorisierungstabelle gewonnen, die Zeitintervalle zu Software-Programmen in Beziehung setzt. Die Benutzungszeit wird überwacht und an ein Überwachungsprogramm gesendet. Kosten werden unter Verwendung der kumulativen Benutzungszeit bestimmt.
  • (3)

Claims (33)

  1. Ein Verfahren zum Verwalten der Benutzung eines Programms, umfassend: Bestimmen, ob ein überwachtes Programm zum Ausführen autorisiert ist; Messen einer Benutzungszeit für das überwachte Programm; und Senden der Benutzungszeit an ein Überwachungsprogramm.
  2. Das Verfahren nach Anspruch 1, wobei das Bestimmen umfaßt a) Empfangen einer Anforderung einer Autorisierung zum Ausführen von dem überwachten Programm; b) Autorisieren des überwachten Programms zum Ausführen für ein Zeitintervall; und c) Senden des Zeitintervalls an das überwachte Programm.
  3. Das Verfahren nach Anspruch 2, ferner umfassend das Wiederholen der Operationen a) bis c), bis ein Beendigungsereignis aufgetreten ist.
  4. Das Verfahren nach Anspruch 3, wobei das Messen ein Aufaddieren des Zeitintervalls umfaßt, so daß die Benutzungszeit gebildet ist, sobald das Beendigungsereignis aufgetreten ist.
  5. Das Verfahren nach Anspruch 3, wobei das Beendigungsereignis ein Empfangen einer Nachricht umfaßt, welche anzeigt, daß die Ausführung angehalten worden ist.
  6. Das Verfahren nach Anspruch 3, wobei das Beendigungsereignis ein Fehlen des Empfangens einer weiteren Anforderung zur Autorisierung zum Ausführen innerhalb des Zeitintervalls umfaßt.
  7. Das Verfahren nach Anspruch 2, wobei die Operationen a) und c) unter Verwendung verschlüsselter Nachrichten ausgeführt werden.
  8. Das Verfahren nach Anspruch 1, wobei sich das Überwachungsprogramm auf einem Server aufhält und wobei das Senden der Benutzungszeit umfaßt: Anfordern einer Verbindung zu dem Server; Verbinden mit dem Server; und Senden der Benutzungszeit an das Überwachungsprogramm über die Verbindung.
  9. Das Verfahren nach Anspruch 8, wobei die Verbindung eine Verbindung des Hypertext Transfer Protocol umfaßt.
  10. Das Verfahren nach Anspruch 8, wobei die Verbindung eine Verbindung des Secure Hypertext Transfer Protocol umfaßt.
  11. Das Verfahren nach Anspruch 2, wobei die Autorisierung das Gewinnen des Zeitintervalls aus einer Autorisierungstabelle umfaßt, wobei die Autorisierungstabelle wenigstens ein überwachtes Programm und ein zugehöriges Zeitintervall aufweist.
  12. Ein Verfahren zum Überwachen der Benutzung eines Programms, umfassend: Empfangen einer Benutzungszeit für ein überwachtes Programm über eine Netzwerkverbindung, wobei die Benutzungszeit eine Zeit repräsentiert, in der das überwachte Programm mit Autorisierung ausgeführt worden ist; und Berichten der Benutzungszeit an einen Benutzer, der zu dem überwachten Programm korrespondiert;
  13. Das Verfahren nach Anspruch 12, ferner umfassend: Bestimmen eines Kostenwerts, der der Benutzungszeit zugeordnet ist; und Senden des Kostenwerts an den Benutzer.
  14. Das Verfahren nach Anspruch 12, ferner umfassend ein Senden einer Autorisierungstabelle an ein Verwaltungsprogramm, wobei die Autorisierungstabelle wenigstens ein überwachtes Programm und ein zugehöriges Zeitintervall aufweist.
  15. Ein Verfahren zum Verwalten der Benutzung eines Programms, umfassend: Bestimmen, ob ein überwachtes Programm zum Ausführen autorisiert ist; und Ausführen des überwachten Programms in Übereinstimmung mit der Bestimmung.
  16. Das Verfahren nach Anspruch 15, wobei das Bestimmen umfaßt: Anfordern einer Autorisierung zum Ausführen von einem Verwaltungsprogramm; und Empfangen der Autorisierung zum Ausführen aus dem Verwaltungsprogramm.
  17. Das Verfahren nach Anspruch 16, ferner umfassend das Senden einer Beendigungsnachricht an das Verwaltungsprogramm.
  18. Das Verfahren nach Anspruch 15, wobei das Bestimmen umfaßt: Anfordern einer Autorisierung zum Ausführen von einem Verwaltungsprogramm; und Ausfall des Empfangens einer Autorisierung zum Ausführen aus dem Verwaltungsprogramm innerhalb einer vorgegebenen Zeitperiode.
  19. Das Verfahren nach Anspruch 18, ferner umfassend das Beendigen der Ausführung des überwachten Programms.
  20. Ein Verfahren zum Überwachen der Benutzung eines Programms, umfassend Bestimmen, ob ein überwachtes Programm zum Ausführen autorisiert ist; Messen einer Benutzungszeit, die dem überwachten Programm zugeordnet ist; Berichten der Benutzungszeit an ein Überwachungsprogramm; und Empfangen der Benutzungszeit bei dem Überwachungsprogramm.
  21. Das Verfahren nach Anspruch 20, wobei das Bestimmen umfaßt: Anfordern einer Autorisierung zum Ausführen eines überwachten Programms; Autorisieren der Ausführung für ein Zeitintervall; und Bestimmen, ob das überwachte Programm für das Zeitintervall ausgeführt worden ist.
  22. Ein Gegenstand, aufweisend: ein Speichermedium; wobei das Speichermedium gespeicherte Befehle enthält, die, wenn sie von einem Prozessor ausgeführt werden, dazu führen, daß bestimmt wird, ob ein überwachtes Programm zum Ausführen autorisiert ist, eine Benutzungszeit für das überwachte Programm gemessen wird und die Benutzungszeit an ein Überwachungsprogramm gesendet wird.
  23. Der Gegenstand nach Anspruch 22, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß bestimmt wird, ob ein überwachtes Programm zum Ausführen autorisiert ist, indem eine Anforderung für eine Autorisierung zum Ausführen aus dem überwachten Programm empfangen wird, das überwachte Programm autorisiert wird, für ein Zeitintervall auszuführen, und das Zeitintervall an das überwachte Programm gesendet wird.
  24. Der Gegenstand nach Anspruch 22, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß die Benutzungszeit gesendet wird, indem eine Verbindung zu dem Server angefordert wird, mit dem Server verbunden wird und die Benutzungszeit an das Überwachungsprogramm über die Verbindung gesendet wird.
  25. Der Gegenstand nach Anspruch 22, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß die Verbindung zu dem Server unter Verwendung einer Hypertext Transfer Protocol-Verbindung hergestellt wird.
  26. Der Gegenstand nach Anspruch 22, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß die Verbindung zu dem Server unter Verwendung einer sicheren Hypertext Transfer Protocol-Verbindung hergestellt wird.
  27. Ein Gegenstand, aufweisend: ein Speichermedium; wobei das Speichermedium gespeicherte Befehle enthält, die, wenn sie von einem Prozessor ausgeführt werden, dazu führen, daß eine Benutzungszeit für ein überwachtes Programm über eine Netzwerkverbindung empfangen wird, wobei die Benutzungszeit eine Zeit repräsentiert, in der das überwachte Programm mit Autorisierung ausgeführt worden ist, und daß die Benutzungszeit an einen Benutzer, der zu dem überwachten Programm korrespondiert, berichtet wird.
  28. Der Gegenstand nach Anspruch 27, wobei die gespeicherten Befehle, dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß ein der Benutzungszeit zugeordneter Kostenwert bestimmt wird und der Kostenwert an den Benutzer gesendet wird.
  29. Der Gegenstand nach Anspruch 28, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausge führt werden, ferner dazu führen, daß eine Autorisierungstabelle an ein Verwaltungsprogramm gesendet wird, wobei die Autorisierungstabelle wenigstens ein überwachtes Programm und ein zugehöriges Zeitintervall aufweist.
  30. Ein Gegenstand, aufweisend: ein Speichermedium; wobei das Speichermedium gespeicherte Befehle enthält, die wenn sie von einem Prozessor ausgeführt werden, dazu führen, daß bestimmt wird, ob ein überwachtes Programm zum Ausführen autorisiert ist, und das überwachte Programm in Übereinstimmung mit der Bestimmung ausgeführt wird.
  31. Der Gegenstand nach Anspruch 30, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß bestimmt wird, ob ein überwachtes Programm zum Ausführen autorisiert ist, indem eine Autorisierung zum Ausführen von einem Verwaltungsprogramm angefordert wird und die Autorisierung zum Ausführen von dem Verwaltungsprogramm empfangen wird.
  32. Ein Gegenstand, aufweisend: ein Speichermedium; wobei das Speichermedium gespeicherte Befehle enthält, die, wenn sie von einem Prozessor ausgeführt werden, dazu führen, daß bestimmt wird, ob ein überwachtes Programm zum Ausführen autorisiert ist, eine dem überwachten Programm zugeordnete Benutzungszeit gemessen wird, die Benutzungszeit an ein Überwachungsprogramm berichtet wird und die Benutzungszeit bei dem Überwachungsprogramm empfangen wird.
  33. Der Gegenstand nach Anspruch 32, wobei die gespeicherten Befehle dann, wenn sie von einem Prozessor ausgeführt werden, ferner dazu führen, daß bestimmt wird, ob ein überwachtes Programm zum Ausführen autorisiert ist, indem eine Autorisierung zum Ausführen eines überwachten Programms angefordert wird, die Ausführung für ein Zeitintervall autorisiert wird und bestimmt wird, ob das überwachte Programm für das Zeitintervall ausgeführt worden ist.
DE10296511T 2001-03-12 2002-02-28 Verfahren und Einrichtung zum Überwachen der Benutzung eines Programms Ceased DE10296511T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/804,673 2001-03-12
US09/804,673 US20020144124A1 (en) 2001-03-12 2001-03-12 Method and apparatus to monitor use of a program
PCT/US2002/006487 WO2002073381A2 (en) 2001-03-12 2002-02-28 Method and apparatus to monitor use of a program

Publications (1)

Publication Number Publication Date
DE10296511T5 true DE10296511T5 (de) 2004-04-15

Family

ID=25189541

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10296511T Ceased DE10296511T5 (de) 2001-03-12 2002-02-28 Verfahren und Einrichtung zum Überwachen der Benutzung eines Programms

Country Status (5)

Country Link
US (1) US20020144124A1 (de)
CN (2) CN100465852C (de)
DE (1) DE10296511T5 (de)
GB (1) GB2391364B (de)
WO (1) WO2002073381A2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0761340A (ja) * 1993-08-25 1995-03-07 Nippon Denshi Kogyo Kk Abs装置に於ける制御点検出法
FR2829337B1 (fr) * 2001-09-03 2003-10-31 Schneider Automation Equipement d'automatisme connecte a un reseau tcp/ip
US7257620B2 (en) * 2001-09-24 2007-08-14 Siemens Energy & Automation, Inc. Method for providing engineering tool services
US7797744B2 (en) 2002-06-17 2010-09-14 At&T Intellectual Property Ii, L.P. Method and device for detecting computer intrusion
US7823203B2 (en) * 2002-06-17 2010-10-26 At&T Intellectual Property Ii, L.P. Method and device for detecting computer network intrusions
US7853786B1 (en) * 2003-12-17 2010-12-14 Sprint Communications Company L.P. Rules engine architecture and implementation
US7500108B2 (en) * 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
US20050281202A1 (en) * 2004-06-22 2005-12-22 Intel Corporation Monitoring instructions queueing messages
US7647647B2 (en) 2004-08-05 2010-01-12 International Business Machines Corporation System, method and program product for temporally authorizing program execution
ATE377800T1 (de) * 2004-09-01 2007-11-15 Agenda Informationssysteme Gmb Verfahren zur steuerung des zugriffs auf ein anwendungsprogramm
CN100337505C (zh) * 2004-09-28 2007-09-12 华为技术有限公司 实现监护功能的移动终端及其监护的方法
US20060070077A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Providing custom product support for a software program
US7681181B2 (en) * 2004-09-30 2010-03-16 Microsoft Corporation Method, system, and apparatus for providing custom product support for a software program based upon states of program execution instability
US10699593B1 (en) * 2005-06-08 2020-06-30 Pearson Education, Inc. Performance support integration with E-learning system
US7747988B2 (en) * 2007-06-15 2010-06-29 Microsoft Corporation Software feature usage analysis and reporting
US7870114B2 (en) 2007-06-15 2011-01-11 Microsoft Corporation Efficient data infrastructure for high dimensional data analysis
US7739666B2 (en) 2007-06-15 2010-06-15 Microsoft Corporation Analyzing software users with instrumentation data and user group modeling and analysis
WO2014098239A1 (ja) * 2012-12-21 2014-06-26 日本電信電話株式会社 監視装置および監視方法
CN104050397A (zh) * 2013-03-11 2014-09-17 钱景 一种软件控制和管理的方法和系统
CN103312513B (zh) * 2013-06-19 2016-03-02 北京华胜天成科技股份有限公司 分布式环境下验证使用授权的方法及系统
CN104615448B (zh) * 2013-11-05 2018-10-30 北大方正集团有限公司 一种软件渠道包更新方法、管理方法及设备
US11983252B2 (en) 2019-12-11 2024-05-14 The Boeing Company Software license manager security
US12026237B2 (en) * 2019-12-11 2024-07-02 The Boeing Company Software license manager
CN113176983B (zh) * 2021-06-28 2021-09-28 北京智芯微电子科技有限公司 程序流监控方法及程序流监控系统、cpu、芯片

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05134957A (ja) * 1990-10-10 1993-06-01 Fuji Xerox Co Ltd データ管理システム
US5940504A (en) * 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site
US6141652A (en) * 1995-10-10 2000-10-31 British Telecommunications Public Limited Company Operating apparatus
US5825883A (en) * 1995-10-31 1998-10-20 Interval Systems, Inc. Method and apparatus that accounts for usage of digital applications
DE69724946T2 (de) * 1997-07-31 2004-08-12 Siemens Ag Programmvermietungssystem und Verfahren zur Vermietung von Programmen
EP1125182B1 (de) * 1998-10-07 2003-01-02 Adobe Systems Incorporated Zuteilung des zugriffs auf einen datensatz
AU2001245325A1 (en) * 2000-02-25 2001-09-03 Edgenet, Inc Method of and system for monitoring an application

Also Published As

Publication number Publication date
GB0322499D0 (en) 2003-10-29
GB2391364A (en) 2004-02-04
CN1527966A (zh) 2004-09-08
CN101446917A (zh) 2009-06-03
GB2391364B (en) 2005-08-31
WO2002073381A3 (en) 2003-05-22
US20020144124A1 (en) 2002-10-03
CN100465852C (zh) 2009-03-04
WO2002073381A2 (en) 2002-09-19

Similar Documents

Publication Publication Date Title
DE10296511T5 (de) Verfahren und Einrichtung zum Überwachen der Benutzung eines Programms
EP3673623B1 (de) Verfahren und steuersystem zum steuern und/oder überwachen von geräten
DE69130461T2 (de) Zugriffsteuerung in einem verteilten Rechnersystem
DE10247221A1 (de) System und Verfahren zur ferngesteuerten Modifikation von Programmen einer Maschine
WO2010026152A1 (de) Verfahren zur einräumung einer zugriffsberechtigung auf ein rechnerbasiertes objekt in einem automatisierungssystem, computerprogramm und automatisierungssystem
EP3582521B1 (de) Vorrichtung und verfahren zum einrichtung und/oder bereitstellen einer arbeitsumgebung, insbesondere eingesetzt in einer maschinen economy umgebung
DE102009017221A1 (de) Information-Rights-Management
EP3714575B1 (de) Verfahren und system zum steuern und/oder überwachen von geräten
EP3718263B1 (de) Verfahren und steuersystem zum steuern und/oder überwachen von geräten
EP3966723B1 (de) Verfahren und anordnung zur bereitstellung von daten einer industriellen automatisierungsanordnung zu einer externen anordnung
EP1010052B1 (de) Verfahren zur steuerung der verteilung und nutzung von software-objekten bei vernetzten rechnern
DE10024347B4 (de) Sicherheitsservice-Schicht
EP3806415B1 (de) Verfahren zum sicheren ausführen eines workflows in einem computersystem
DE102017211912A1 (de) Verfahren und Vorrichtung zum Übertragen persönlicher Daten
EP3557341A1 (de) Verfahren und verwaltungseinrichtung zur optimierung eines industriellen prozesses
DE60216056T2 (de) Verfahren und anordnung in einem kommunikationssystem
EP1035706A2 (de) Verfahren zum Verbinden von mindestens zwei Netzwerkssegmenten eines Netzwerkes mit einer Zugangskontrolle durch eine Benutzerkennung
DE60108645T2 (de) Verfahren und vorrichtung zur zentralisierten authentifizierung
DE102018204447B4 (de) Automatisiertes Verfahren zum Schutz von elektronischen Daten zum Zwecke der Datenverarbeitung durch Dritte unter Einbezug transparenter und unterbrechungssicherer Vergütung
WO2003012701A2 (de) Verfahren zum bezug einer über ein datennetz angebotenen leistung
DE102017217057A1 (de) Verfahren und Vorrichtung zum Aufbau eines Kommunikationskanals zwischen einer ersten und einer zweiten Einrichtung
DE112022000628T5 (de) Datenverwaltungssystem, Datenverwaltungsserver, Datenverwaltungsverfahren, Datenverwaltungsprogramm, und Aufzeichnungsmedium
EP1609097B1 (de) Verfahren und kommunikationssystem zur freigabe einer datenverarbeitungseinheit
WO2007090702A2 (de) Aktivierungs- und synchronisierungsvorrichtung zur kopplung automatisierter kontroll- und/oder betriebsinterventionssysteme, sowie ein entsprechendes verfahren
EP1460510B1 (de) Verfahren zur sicheren Kommunikation zwischen einer Datenverarbeitungsanlage und einer Sicherheitseinrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10296511

Country of ref document: DE

Date of ref document: 20040415

Kind code of ref document: P

8131 Rejection