-
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
-
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)