-
Fachgebiet der Erfindung
-
Die
vorliegende Erfindung betrifft ein System und ein Verfahren zum
Erfassen von Benutzeraktionen, Browser-Sitzungen und insbesondere ein derartiges
System und ein Verfahren, bei dem die Benutzereingabevorrichtungsaktivität und Benutzerschnittstellenantworten
erfaßt
werden.
-
Hintergrund der Erfindung
-
Das
Internet ebenso wie lokale oder anderweitig beschränkte Netzwerke,
wie etwa Intranets, werden zunehmend verwendet, um Computernutzern
interaktive Erfahrungen bereitzustellen. Zum Beispiel werden, eher
als derartigen Benutzern lediglich statische Web-Seiten zur Verfügung zu
stellen, durch Websites oder Web-Anwendungen interaktive Erfahrungen,
wie etwa "Chat" oder Echtzeit-Textversandeinrichtungen,
Video-Konferenz- und/oder Audiokonferenzfunktionen und andere Interaktionen
mit dem Benutzer, bereitgestellt. Diese zunehmend anspruchsvollen
Funktionen ermöglichen
dem Benutzer, mit einem Betreiber auf der Website und/oder anderen
Benutzern in einer realistischen Weise zu interagieren.
-
Der
Wunsch, die Kosten von technischen und/oder anderen Arten der Kundenunterstützung zu senken
ebenso wie die Verfügbarkeit
dieser Dienste zu erhöhen,
hat zu einem steilen Wachstum des Handelsparketts und der Kundendienstaktivitäten durch derartige
Websites/Anwendungen und/oder andere Arten von Netzwerkfunktionen
geführt.
Diese menschlichen Bearbeiter müssen
hinsichtlich ihrer Interaktionen mit den Benutzern jedoch überwacht werden,
um eine angemessene QA (Qualitätssicherung)
für dies
Bearbeiter und Dienste sicherzustellen.
-
Diese Änderung
in Richtung Bereitstellung von Kundenunterstützungsdiensten durch Websites im
Internet und/oder andere Arten von Netzwerken schreibt die Notwendigkeit
einer Qualitätssicherungstechnologie
und von Werkzeugen vor, die Website-Betreiber und Leiter von Kundendienst(kontakt)zentren
in die Lage versetzen, die Bedürfnisse von
Benutzern als Kunden oder Auftraggeber zu verstehen und die Qualitätssicherung
auf ihren Websites und Netzwerkdiensten durchzuführen.
-
Andererseits
führen
die Benutzer derartiger Websites eine erhöhte Anzahl von Aktionen im
Web, wie etwa Kaufen, Verkaufen und Eingeben von Informationen in
verschiedene Formulare durch. Gegenwärtig ist der einzige Mechanismus
zum Archivieren dieser Aktionen, Ausdrucke jeder Web-Seite auf Papier
zu drucken oder einzelne Web-Seiten ohne Berücksichtigung der Abfolge von
Aktionen, die diese Web-Seiten erzeugten, zu speichern. Außerdem stellt
die gegenwärtig
verfügbare
Web-Browser-Technologie keinen geeigneten Mechanismus für derartige "Echtzeit-"Kommunikationen,
wie etwa Chatfunktionen, zur Verfügung, um den tatsächlichen Chat
betreffende Daten zu speichern. Auf diese Weise haben weder die
Benutzer derartiger Websites (Endbenutzer) noch die Betreiber dieser
Sites gegenwärtig
brauchbare Werkzeuge zum Sammeln von Informationen über interaktive
Sitzungen zwischen dem Benutzer und der Website.
-
Das
Dokument „Webtour:
a system to record and playback dynamic multimedia annotations on web
document content" von
Sastry, Ch. et al, ACM Multimedia, Proceedings of the International
Conference, New York, Oktober 1999, Seiten 175–178, XP002175313 betrifft
ein System zum Aufzeichnen, Wiedergeben, Speichern, Suchen und Verteilen
von personalisierten dynamischen Multimedia-Anmerkungen in der Form
geführter
Rundgänge
im Netz.
-
Das
Dokument „KALDI:
a computer-aided usability engineering tool for supporting testing
and analysis of human-computer
interaction" von
Al-Qaimari, G. et al., Proceedings of Cadui'99: International Euroconference on
computer-aided design of user interfaces; Louvai, Seiten 337–355, XP008014033,
betrifft ein Werkzeug mit dem Namen KALDI, das fest in den graphischen
Java-Werkzeugsatz integriert ist, und verwendet nur Software-Verfahren,
um genaue Benutzeraktionen aufzuzeichnen und auch eine videoartige
Aufzeichnung der getesteten Benutzerschnittstelle zu erfassen.
-
Das
Dokument „SimUI:
Graphical User Interface Evaluation" von Kishi, N., IEEE Comp. Soc. Press,
21. September 1992, Seiten 121–127,
betrifft einen Satz von Werkzeugen zum Bewerten von graphischen
Benutzerschnittstellenkonzeptionen während der Software-Entwicklung.
Diese Werkzeuge zeichnen die Maus- und Tastatur-Arbeitsabläufe von Benutzern
auf und vergleichen sie, um mögliche
Probleme in der Benutzerfreundlichkeit zu erkennen.
-
Das
Dokument „Nachgehakt,
Windows Nachrichten filtern mit Hook-Funktionen" von Mrkor, K.-U, CT Magazin, 1. März 1999,
Bd. Nr. 5, Seiten 272–274,
276, 278, 280–281,
betrifft Verfahren zum Filtern von Windows-Nachrichten mit „Hook-Funktionen".
-
Zusammenfassung der Erfindung
-
Die
Hintergrundtechnik lehrt und schlägt keine Lösung für das Problem des Sammelns
von Informationen über
eine interaktive Sitzung über
ein Netzwerk vor. Die Hintergrundtechnik lehrt oder schlägt auch
keine Lösung
vor für
das Problem der Archivierung von Sitzungen auf Websites. Außerdem lehrt oder
schlägt
die Hintergrundtechnik keine Lösung
für das
Problem der Qualitätssicherung/Qualitätskontrolle
für Interaktionen
zwischen einem Benutzer und einem Agenten durch eine Website und/oder
eine andere Art von Netzwerk-Interaktionen vor.
-
Die
vorliegende Erfindung überwindet
diese Probleme der Hintergrundtechnik, indem sie ein System und
ein Verfahren zum Sammeln von Daten bezüglich der Aktionen des Benutzers
während
einer interaktiven Sitzung über
ein Netzwerk zur Verfügung stellt.
Die vorliegende Erfindung bietet einen Client, der von der Rechenvorrichtung
des Benutzers bedient wird und der sowohl über die Aktionen der Benutzereingebevorrichtung
als auch die durch die Benutzerschnittstelle angezeigten Reaktionen
Informationen sammelt. Die Benutzerschnittstelle ist bevorzugt eine
GUI (graphische Benutzerschnittstelle), aber wahlweise und noch
besser eine Web-Browser-Schnittstelle.
Alternativ ist die Benutzerschnittstelle jede Art von Schnittstelle,
die nach Empfang der Benutzereingabe durch eine Benutzereingabevorrichtung
verändert
wird.
-
Der
Client sammelt vorzugsweise diese verschiedenen Datenarten und sendet
die Daten dann zum Speichern in einer zentralen Datenbank. Wahlweise
und vorzugsweise werden die Daten entsprechend einer bestimmten
Struktur organisiert, bevor sie in die Datenbank gespeichert werden.
Ebenfalls wahlweise wird eine derartige Organisation der Daten von
dem Client durchgeführt,
so daß die
Daten in einer Nachricht organisiert werden, die an die Speicherrechenvorrichtung
gesendet wird, welche die Datenbank betreibt. Alternativ werden
die Daten an die Speicherrechenvorrichtung gesendet, bevor sie in
die endgültige
Struktur organisiert werden, so daß die Speicherrechenvorrichtung
und/oder eine dritte Einheit die Organisation in die Speicherstruktur durchführen.
-
Gemäß der Ausführungsform
der vorliegenden Erfindung ist der Client außerhalb eines Organisationsnetzwerks,
so daß die
gesammelten Daten durch eine Firewall gehen müssen. Vorzugsweise werden die
gesammelten Daten an einen Proxy-Server
gesendet, bevor sie in das Organisationsnetzwerk eintreten. Noch
bevorzugter ist ein derartiger Proxy-Server in der DMZ (demilitarisierten
Zone) zwischen einer äußeren und
inneren Firewall angesiedelt, so daß der Client nicht direkt auf
eine Rechenvorrichtung innerhalb des Organisationsnetzwerks zugreifen
kann. Statt dessen verarbeitet der Proxy-Server zumindest teilweise
die gesammelten Daten, welche dann wahlweise zum Speichern in der Datenbank
von der Speicherrechenvorrichtung von innerhalb der Firewall abgerufen
werden können.
-
Die
vorliegende Erfindung ist geeignet für die Interaktion mit im wesentlichen
jeder Art von Benutzereingabe vorrichtung. Beispiele für derartige
Benutzereingabevorrichtungen umfassen eine Zeigervorrichtung, wie
etwa zum Beispiel eine Maus, eine Tastatur und/oder ein Tastenfeld,
Handschrift oder eine Stift-basierte Eingabe oder jede andere Art
von Mechanismus, der zumindest teilweise von dem Benutzer gesteuert
werden kann, sind jedoch nicht darauf beschränkt.
-
Der
Begriff „Tastenfeld" bezieht sich hier
im weiteren auf jede Tastatur, bei der zumindest eine Taste mehrere
alphanumerische Zeichen und/oder Symbolabschnitte bietet, was auch
als „reduziertes Tastenfeld" bezeichnet werden
kann. Ein nicht einschränkendes
Beispiel für
ein derartiges Tastenfeld ist typischerweise auf Handys zu finden,
um numerische und/oder alphanumerische Zeichen und/oder Symbolabschnitte
für Sprachen
mit einem ideographischen Schriftsystem einzugeben.
-
Beispiele
für geeignete
Anwendungen für
die Implementierung mit der vorliegenden Erfindung umfassen die
Analyse der Benutzeraktionen auf einer Website für Betreiber von Websites, zum
Beispiel zur Qualitätssicherung;
und das Archivieren von interaktiven Sitzungen mit einer Website
durch die Benutzer für
ihre eigenen Zwecke, sind aber nicht darauf beschränkt.
-
Der
Begriff „Rechenvorrichtung" bezieht sich hier
im weiteren auf jede Art von Computerhardwaresystem und/oder jede
Art von Software-Betriebssystem oder Zellulartelefone jeder Art
von Handapparat, wie etwa ein PDA (Minicomputer) ebenso wie auf jede
Art von Vorrichtung mit einem Datenprozessor und/oder jede Art von
Mikroprozessor oder jede Art von Vorrichtung, die fähig ist,
eine beliebige Funktion eines Computers auszuführen.
-
Für die vorliegende
Erfindung könnte
in jeder geeigneten Programmiersprache eine Software-Anwendung oder
ein Programm geschrieben werden, das von jemandem mit gewöhnlichen
Kenntnissen der Technik leicht ausgewählt werden könnte. Die
gewählte
Programmiersprache sollte mit der Rechenvorrichtung, entsprechend
der die Software-Anwendung ausgeführt wird, kompatibel sein.
Beispiele für geeignete
Programmiersprachen umfassen Delphi, C#, C, C++ und Java, sind jedoch
nicht darauf beschränkt.
-
Der
Begriff „Web-Browser" bezieht sich auf jedes
Softwareprogramm, das Text, Graphik oder beides von Web-Seiten auf
Internetsites (World Wide Web-sites) anzeigen kann. Der Begriff „Web-Seite" bezieht sich hier
im weiteren auf jedes in einer Auszeichnungssprache, einschließlich HTML
(Hypertext Mark-up Language) oder VRML (virtual reality modeling
language), dynamic HTML, XML (erweiterte Mark-up Language) oder
verwandte Computersprachen davon geschriebene Dokument, ohne auf
diese beschränkt
zu sein, ebenso wie auf jede Sammlung derartiger Dokumente, die über eine
bestimmte Internetadresse (World Wide Web-site) oder auf einer bestimmten
Internetsite lesbar sind, oder jedes Dokument, das durch eine bestimmte
URL (Uniform Resource Locator) erhältlich ist. Der Begriff "Website" bezieht sich hier
im weiteren auf mindestens eine Web-Seite und vorzugsweise auf mehrere
Web-Seiten, die virtuell verknüpft
sind, um eine zusammenhängende
Gruppe zu bilden. Der Begriff "Web-Server" bezieht sich hier
im weiteren auf einen Computer oder eine andere elektronische Vorrichtung,
die fähig ist,
gemäß dem HTTP-Protokoll
Dateien und Daten an einen Web-Browser zu liefern.
-
Der
Begriff „Applet" bezieht sich hier
im weiteren auf ein abgeschlossenes Softwaremodul, das in einer
Applet-Sprache,
wie etwa Java, programmiert ist oder als ein ActiveXTM-Control
aufgebaut ist. Der Begriff „Client" bezieht sich hier
im weiteren auf jede Art von Softwareprogramm und/oder Code und/oder
andere Anweisungen, die von der Rechenvorrichtung des Benutzers
betätigt
und/oder ausgeführt
werden.
-
Der
Begriff „Netzwerk" bezieht sich hier
im weiteren auf eine Verbindung zwischen beliebigen zwei oder mehr
Computern, welche die Übertragung von
Daten ermöglicht.
-
Die
Redewendung „eine
Web-Seite anzeigen" umfaßt im weiteren
alle Aktionen, die notwendig sind, um zumindest ei nen Teil der Information
auf der Web-Seite für
den Computernutzer verfügbar
zu machen. Als solches umfaßt
die Redewendung die statische visuelle Anzeige von statischen graphischen Informationen,
die hörbare
Wiedergabe von Audioinformationen, die animierte visuelle Anzeige
von Animationen und die visuelle Anzeige von Videostreamdaten, ist
aber nicht darauf beschränkt.
-
Der
Begriff „Benutzer" bezieht sich hier
im weiteren auf die Person, die den Web-Browser oder eine andere
GUI-Schnittstelle
bedient und mit dem System der vorliegenden Erfindung interagiert,
indem sie eine Rechenvorrichtung bedient.
-
Kurze Beschreibung der
Zeichnungen
-
Die
Erfindung wird hier unter Bezug auf die beigefügten Zeichnungen lediglich
beispielhaft beschrieben, wobei.
-
1 ein
schematisches Blockdiagramm eines beispielhaften Systems gemäß der vorliegenden Erfindung
ist;
-
2A und 2B Flußdiagramme
von beispielhaften Verfahren zum Erfassen von Daten gemäß der vorliegenden
Erfindung sind;
-
3 ein
Flußdiagramm
eines beispielhaften Verfahrens zum Wiedergeben von Daten gemäß der vorliegenden
Erfindung ist; und
-
4 ein
schematisches Blockdiagramm eines zweiten beispielhaften Systems
gemäß der vorliegenden
Erfindung ist.
-
Beschreibung der bevorzugten
Ausführungsformen
-
Die
vorliegende Erfindung ist über
ein System und ein Verfahren zum Sammeln von Daten in Bezug auf
die Aktionen des Benutzers während
einer interaktiven Sitzung über
ein Netzwerk. Die vorliegende Erfindung bietet einen Client, der
von der Rechenvorrichtung des Benutzers bedient wird und der Informationen
sowohl über
Benutzereingabevorrichtungsaktionen als auch Reaktionen, die durch
die Benutzerschnittstelle angezeigt werden, sammelt. Die Benutzerschnittstelle ist
bevorzugt eine GUI (graphische Benutzerschnittstelle), ist aber
wahlweise und noch besser eine Web-Browser-Schnittstelle. Alternativ
ist die Benutzerschnittstelle jede Art von Schnittstelle, die nach
Empfang der Benutzereingabe durch eine Benutzereingabevorrichtung
geändert wird.
-
Der
Client sammelt bevorzugt diese verschiedenen Arten von Daten und
sendet dann noch besser die in einer zentralen Datenbank zu speichernden
Daten. Wahlweise und bevorzugt werden die Daten gemäß einer
bestimmten Struktur organisiert, bevor sie in die Datenbank gespeichert
werden.
-
Ebenfalls
wahlweise wird eine derartige Organisation der Daten von dem Client
durchgeführt,
so daß die
Daten in einer Nachricht organisiert werden, welche an die Speicherrechenvorrichtung
gesendet wird, die die Datenbank betreibt. Alternativ werden die
Daten an die Speicherrechenvorrichtung gesendet, bevor sie in die
endgültige
Struktur organisiert werden, so daß die Speicherrechenvorrichtung und/oder
eine dritte Einheit die Organisation in die Speicherstruktur durchführen.
-
Gemäß der Ausführungsform
der vorliegenden Erfindung ist der Client außerhalb eines Organisationsnetzwerks
(Intranet oder VPN (virtuelles Privatnetz)), so daß die gesammelten
Daten mindestens eine Firewall passieren müssen. Vorzugsweise werden die
gesammelten Daten an einen Proxy-Server gesendet, bevor sie in das
Organisationsnetzwerk eintreten. Noch besser ist ein derartiger
Proxy-Server in der DMZ (entmilitarisierten Zone) zwischen einer
Außen-
und Innenseite der DMZ angesiedelt, so daß der Client nicht direkt auf
eine Rechenvorrichtung innerhalb des Organisationsnetzwerks zugreifen
kann. Statt dessen verarbeitet der Proxy-Server zumindest teilweise
die gesammelten Daten, welche dann wahlweise von der Speicherrechenvorrichtung
von innerhalb der inneren Firewall zum Speichern in die Datenbank
abgerufen werden können.
-
Die
vorliegende Erfindung ist für
die Interaktion mit im wesentlichen jeder Art von Benutzereingabevorrichtung
geeignet. Beispiele für
derartige Benutzereingabevorrichtun gen umfassen eine Zeigervorrichtung,
wie zum Beispiel eine Maus, eine Tastatur und/oder ein Tastenfeld,
Handschrift
oder eine Stift-basierte Eingabe oder jede andere
Art von Mechanismus, die zumindest teilweise durch den Benutzer
gesteuert werden kann, sind aber nicht darauf beschränkt.
-
Außerdem ist
die vorliegende Erfindung nützlich
für das
Sammeln von Daten über
im wesentlichen jede Art von Benutzerschnittstellenfunktion. Beispiele
für derartige
Benutzerschnittstellenfunktionen umfassen jede Art von GUI-Fensteraktivität, Aktivitäten mit
GUI-Einrichtungen, wie etwa Knöpfen, Schiebeelementen
oder jeder durch ein GUI-Fenster bereitgestellten Funktion, die
Anzeige jedes Bilds und/oder Texts, einschließlich, aber nicht nur Web-Seiten
und/oder jeden Bestandteil davon, Informationen, die über eine
hörbare
Schnittstelle bereitgestellt werden, wie etwa synthetische Sprache,
Informationen, die durch die Anzeige von Videodaten bereitgestellt
werden, und jede Art von Information, die durch das Betriebssystem
der Benutzerrechenvorrichtung bereitgestellt wird oder anders erfaßbar ist,
sind aber nicht darauf beschränkt.
-
Die
Prinzipien und der Betrieb des Verfahrens gemäß der vorliegenden Erfindung
können
unter Bezug auf die Zeichnungen und die begleitende Beschreibung
besser verstanden werden. Es sollte bemerkt werden, daß die vorliegende
Erfindung lediglich zu Zwecken der Deutlichkeit und ohne jede Absicht
zur Einschränkung
im Hinblick auf Web-Browser beschrieben wird.
-
Nun
Bezug nehmend auf die Zeichnungen zeigt 1 ein veranschaulichendes
System 10 zum Sammeln von Daten über Benutzeraktionen. Ein Benutzer
interagiert mit einem Web-Browser 12,
der von einer Benutzerrechenvorrichtung 14 betrieben wird. Diese
Interaktionen können
wahlweise Benutzereingabevorrichtungsaktionen, die Web-Seiten anzeigen oder
jede Art von GUI-Aktivitäten
(GUI: Graphische Benutzerschnittstelle) umfassen, sind aber nicht
darauf beschränkt.
Als solche umfassen diese Interaktionen bevorzugt sowohl Be nutzeraktionen,
wie etwa die Eingabe von Informationen durch eine Tastatur und/oder
das Anklicken oder auf andere Art Auswählen einer GUI-Einrichtung
durch eine Zeigervorrichtung, als auch Reaktionen auf diese Benutzeraktionen,
wie zum Beispiel das Anzeigen einer Web-Seite. Diese Interaktionen
werden bevorzugt von einem Client 16 gesammelt, der von
der Benutzerrechenvorrichtung 14 betrieben wird.
-
Der
Client 16 wird wahlweise als ein Applet, wie etwa ein Java-Applet
oder ActiveX-Control (der Web-Browser 12 bildet den Rahmen)
oder alternativ als eine Software-Anwendung implementiert. Die ActiveX-Control
und die Software-Anwendung
können beide
wahlweise die COM-Schnittstelle des Web-Browsers verwenden oder
Hooking im Betriebssystem durchführen,
um Benutzeraktionen zu erfassen und auf der Netzwerkschicht zu schnüffeln (Sniffing),
um Web-Browser-Sitzungen
zu erfassen.
-
Die
Benutzerrechenvorrichtung 14 ist mit einem Netzwerk 18 verbunden.
Das Netzwerk 18 kann, wie in Bezug auf die Ausführungsform
des Systems 10 in 1 gezeigt,
zum Beispiel das Internet sein. Die Benutzerrechenvorrichtung 14 ist
fähig,
direkt oder indirekt mit einer Speicherrechenvorrichtung 20 zu
kommunizieren, um die gesammelten Daten, die von dem Client 16 gesammelt
wurden, zu übertragen.
Die Speicherrechenvorrichtung 20 ist bevorzugt fähig, eine
Datenbank 22 zum Speichern der gesammelten Daten zu betreiben.
-
Gemäß einer
beispielhaften, aber bevorzugten Ausführungsform der vorliegenden
Erfindung organisiert die Speicherrechenvorrichtung 20 die
Daten gemäß einer
bestimmten Struktur, bevor die Daten in die Datenbank 22 gespeichert
werden. Alternativ kann eine derartige Organisation von dem Client 16 vor
der Übertragung
an die Speicherrechenvorrichtung 20 wahlweise durchgeführt werden.
In jedem Fall umfaßt
eine derartige Organisation vorzugsweise das Zerlegen der erfaßten Daten
in mehrere Bestandteile. Am bevorzugtesten umfaßt eine derartige Organisation
die Eingabe spezifischer Arten von Daten in bestimmte Felder, so
daß jede
Art von Ereignis zugehörige
Daten für
die Eingabe in diese Felder hat.
-
Der
Client 16 ist wahlweise und bevorzugter fähig, im
wesentlichen jede Art von Benutzereingabevorrichtungsaktivität, einschließlich Zeigeraktivitäten, wie
das „Klicken
auf" oder anderweitig
Auswählen
einer GUI-Einrichtung oder jedes anderen Teils der GUI, zum Beispiel
mit einer Maus, ohne jedoch auf dieses beschränkt zu sein, zu erkennen. Andere
Arten von Aktivitäten,
für die
Daten gesammelt werden können,
umfassen das Erkennen von Tastendrucken von einer Tastatur und/oder
einem Tastenfeld ebenso wie von Informationen, die als Handschrift
oder Stift-basierte Eingabe eingegeben werden. Wahlweise können auch
Spracheingaben ebenso wie Eingaben für jede Art von Mechanismus,
die zumindest teilweise von dem Benutzer gesteuert werden kann,
gesammelt werden.
-
Außerdem ist
die Erfindung nützlich
für das Sammeln
von Daten über
im wesentlichen jede Art von Benutzerschnittstellenfunktion. Beispiele
für derartige
Benutzerschnittstellenfunktionen umfassen jede Art von GUI-Fensteraktivität; Aktivitäten mit GUI-Einrichtungen,
wie etwa Knöpfen,
Schiebeelementen oder jeder durch ein GUI-Fenster bereitgestellten
Funktion; die Anzeige jedes Bilds und/oder Texts, einschließlich von
Web-Seiten und/oder jedem Bestandteil davon, ohne darauf beschränkt zu sein; Informationen,
die durch eine hörbare
Audioschnittstelle bereitgestellt werden, wie etwa synthetische Sprache;
Informationen, die durch die Anzeige von Videodaten bereitgestellt
werden; und jede Art von Information, die durch das Betriebssystem
der Benutzerrechenvorrichtung 14 bereitgestellt oder anders erkennbar
wird, sind aber nicht darauf beschränkt. Beispiele für GUI-Fenster-Aktivitäten umfassen
das Blättern
durch das Fenster und Daten über
das aktive Fenster und seine Eigenschaften, wie etwa die Größe, den
Ort und so weiter, sind jedoch nicht darauf beschränkt.
-
Der
Client 16 ist bevorzugt fähig, die gesammelten Daten
zu filtern, noch bevorzugter die gesammelten Daten für die Übertragung
an die Speicherrechenvorrichtung 20 in Bestandteile zu
trennen. Außerdem
sammelt der Client 16 bevor zugt auch Zeitsteuerinformationen,
wie zum Beispiel einen Zeitstempel, und sendet sie an die Speicherrechenvorrichtung 20,
damit die Speicherrechenvorrichtung 20 in der Lage ist,
verschiedene Arten von Ereignissen und zugehörige Daten zu synchronisieren.
-
Bevorzugter
erfaßt
die Speicherrechenvorrichtung 20 jede Aktion des Benutzers
und jede Reaktion der Benutzerschnittstelle als ein getrenntes Ereignis,
während
die zugehörigen
Daten als Parameter für
dieses Ereignis gespeichert werden. Daher erfaßt die Speicherrechenvorrichtung 20 am
bevorzugtesten keinen Bildschirmabzug als eine Bitmap oder andere
Art von Bild. Statt dessen werden bevorzugt Metadaten erfaßt und organisiert.
Bevorzugter werden nur Metadaten erfaßt. Zum Beispiel könnte eine
Web-Seite wahlweise als HTML-Code
und ein oder mehr Bilder erfaßt
werden, so daß die
Web-Seite wiederhergestellt
werden könnte,
aber sie wird vorzugsweise nicht als ein einziges vollständiges Bild
erfaßt.
-
Bevorzugter
ist die Speicherrechenvorrichtung 20 fähig, die gespeicherten Daten
zu organisieren und darzustellen, um in der Lage zu sein, die interaktive
Sitzung mit dem Benutzer zu rekonstruieren. Am bevorzugtesten ist
die Speicherrechenvorrichtung 20 fähig, diese Daten derart organisiert
bereitzustellen, daß die
interaktive Sitzung nochmals abgespielt wird. Wahlweise und am bevorzugtesten kann
die interaktive Sitzung in jedem Web-Browser nochmals abgespielt
werden, da die rekonstruierten Daten am bevorzugtesten in einem
Format bereitgestellt werden, das geeignet ist, von jedem beliebigen Web-Browser
nochmals abgespielt zu werden. Für diese
bevorzugte Ausführungsform
werden die Daten als eine Folge von Ereignissen gespeichert, für welche
die in dem/den Feld(ern) gespeicherten Daten die Parameter jedes
Ereignisses bilden, so daß der
Web-Browser wahlweise verwendet werden kann, um die Daten ereignisweise
zu "lesen", um die interaktive
Sitzung nochmals abzuspielen.
-
Ein
getrennter (nicht gezeigter) Anzeige-Client kann wahlweise bereitgestellt
werden, um die Ereignisse anzuzeigen und folglich die Sitzung nochmals
abzuspielen. Alterna tiv kann der Client 16 wahlweise auch
verwendet werden, um die Sitzung erneut abzuspielen. Ein derartiger
Anzeige-Client könnte wahlweise
als eine ActiveX-Control implementiert werden, die bevorzugt mit
der Speicherrechenvorrichtung 20 verbindet und Daten daraus
abzieht. Eine derartige ActiveX-Control würde wahlweise die HTML-Daten
von den Ereignissen trennen, die HTML-Seiten in einen Web-Browser-Bestandteil
des Anzeige-Client schieben und dann die Benutzerereignisse synchron
mit den HTML-Seiten simulieren. Die Wiedergabe von Web-basierten
Sitzungen könnte
wahlweise unter Verwendung eines Benutzernamens und Kennworts erledigt
werden, um sich mit der Speicherrechenvorrichtung 20 zu
verbinden.
-
Gemäß der Ausführungsform
der vorliegenden Erfindung werden die Benutzereingabevorrichtungsaktionen
und die Benutzerschnittstellenreaktionen durch das Betriebssystem
der Benutzerrechenvorrichtung 14 erfaßt. Ein Beispiel für ein Verfahren zum
Erfassen derartiger Daten wird weiter unten im Hinblick auf das
WindowsTM-Betriebssystem (Microsoft Inc.,
USA) gegeben, wobei sich versteht, daß dieses lediglich als ein
veranschaulichendes Beispiel und ohne jegliche Einschränkungsabsicht
gegeben wird: Die verwendeten API-Aufrufe und Win32-Funktionen sind
betriebssystemeigene Funktionen, die von allen WindowsTM-Betriebssystemumgebungen unterstützt werden.
-
Für jede laufende
Instanz des Microsoft Internet Explorer als ein Beispiel für den Web-Browser 12 wird
eine Hook-Funktion gesetzt, um die Tastaturanschläge und Mausbewegungen
und Klicks zu erfassen. Die erfaßten Daten werden in einer
Struktur in eine Binärdatei
eingebracht, die die Einzelheiten über die Aktivität und den
Zeitstempel des Arbeitsgangs enthält. Derartige Erfassungsaktionen
finden bevorzugt nur statt, nachdem die Web-Seite vollständig von
dem Web-Browser 12 geladen ist.
-
Die
Hook-Funktion für
Tastaturen wird wahlweise und bevorzugt implementiert, indem die Win32-Funktion "SetWin dowsHookEx" mit dem gesetzten
WH_GETMESSAGE-Parameter aufgerufen wird. Die Hook-Funktion für die Maus
wird wahlweise und bevorzugt implementiert, indem die Win32-Funktion "Set-WindowsHookEx" mit dem gesetzten WH_MOUSE-Parameter
aufgerufen wird.
-
Das
Tastaturrückfrageverfahren
empfängt bevorzugt
alle Browser-Tastaturaktionen (und andere Fensternachrichten) und
wartet dann auf die nächste Fensternachricht,
die WM_SYSKEYDOWN, WM_KEYDOWN, WM_SYSKEYUP oder WM_KEYUP ist. Jede
derartige Nachricht enthält
Daten darüber,
welche Taste gedrückt
wurde und welches Fenster das Zeichen empfangen hat. Durch Erkennen
und Erfassen dieser Nachrichten ist das Zeichen und auch, wo der
Benutzer hingetippt hat, bekannt. Der Unterschied zwischen SYSKEY
und KEY ist, daß SYSKEY-Befehle Informationen über Systeme,
wie CTRL, SHIFT und so weiter, enthalten.
-
Für das Mausrückfrageverfahren
werden vorzugsweise alle Mausaktionen an diese Rückfrage gesendet, die auf die
nächste
Fensternachricht wartet, welche bevorzugt eine der folgenden Nachrichten ist:
WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEWHHEEL, WM_RBUTTONDOWN,
WM_RBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP oder WM_LBUTTONDBLCK.
-
Die
erfaßten
Daten werden dann, wie bereits beschrieben, bevorzugt gemäß einer
bestimmten Organisationsstruktur gespeichert. Zum Beispiel umfaßt die Mausereignisstruktur
bevorzugt die folgenden Felder: _timeb now, DWORD dwFlags, DWORD dx,
DWORD dy, DWORD dwData und LPARAM dwEtxtraInfo. Die Tastaturereignisstruktur
umfaßt
bevorzugt die folgenden Felder: timeb now, BYTE bVk, BYTE bScan,
DWORD dwFlags und LPARAM dwExtraInfo. Diese sind Standard-Win32-Strukturen, die Daten über das
Mausereignis halten. Diese Struktur ist in der Microsoft Win32-Dokumentation
beschrieben.
-
Für den Zweck
der erneuten Wiedergabe der Sitzung und/oder anderweitigen Wiedergabe
der gespeicherten Daten kann, nachdem die Web-Seite geladen ist,
bevorzugt für
jede laufende Instanz des Internet Explorer (als ein Beispiel für den Web-Browser 12)
eine zu dieser Web-Seite gehörende
Hook-Datei gespielt
werden. Die erneut wiedergegebenen Daten werden bevorzugt aus der
Datei erhalten, wie sie durch die Erfassungskomponente aufgezeichnet wurde
und welche die weiter oben beschriebene Struktur enthält. Die
Zeitstempel, die in der Aufzeichnungsphase eingegeben wurden, werden
bevorzugt verwendet, um den Abspielbetrieb zu synchronisieren. Jedes
gespeicherte Ereignis hält
Information über
die entsprechende stattgefundene Benutzeraktion. Zum Beispiel beschreibt
ein Mausereignis den Ort der Maus auf dem Bildschirm und ob eine
Aktion ausgeführt
wurde, wie etwa, ob die linke Maustaste gedrückt wurde. Wenn in der Erfassungsphase
ein Zeitstempel auf jedem Ereignis angebracht wird, können diese
Ereignisse, wie entsprechend den Zeitstempeln bestimmt, gemäß dem Zeitunterschied,
der von einem Ereignis zum anderen vergangen ist, simuliert (erneut
abgespielt) werden.
-
Um
die Maus- und Tastaturfunktionen der Rechenvorrichtung zu steuern,
die verwendet wird, um die gespeicherten Daten erneut abzuspielen
oder anzuzeigen, werden vorzugsweise die folgenden API-Funktionen
verwendet: mouse_event – bedient die
Maus, als ob sie ein Endbenutzer betätigen würde, keybd_event – bedient
die Tastatur, als ob sie ein Endbenutzer betätigen würde.
-
Uns
wieder 1 zuwendend sind die Speicherrechenvorrichtung 20 und
die Datenbank 22 gemäß der Ausführungsform
der vorliegenden Erfindung bevorzugt von der Benutzerrechenvorrichtung 14 und
zugehörigen
Funktionen getrennt. Bevorzugter wird eine derartige Trennung mit
mindestens einer Firewall 24 durchgeführt. Gemäß der gezeigten Ausführungsform
werden zwei derartige Firewalls 24 verwendet, eine erste äußere Firewall 24,
um zwischen einer Organisationseinheit 26 und dem Netzwerk 18 zu
trennen; und eine zweite innere Firewall 24, um eine DMZ 28 von
dem Rest der Organisationseinheit 26 zu trennen. Die DMZ 28 enthält bevorzugt
einen Protokollserver 30 zum Empfangen der Daten von der
Benutzerrechenvorrichtung 14 und zum wahlweisen Organi sieren
derartiger Daten und einen Web-Server 32. In dieser bevorzugten
Implementierung würde
die Speicherrechenvorrichtung die empfangenen Daten vom Protokollserver
abziehen.
-
2 zeigt ein Flußdiagramm eines beispielhaften
Verfahrens zum Sammeln von Daten gemäß der vorliegenden Erfindung.
Dieses Verfahren wird lediglich der Deutlichkeit der Erklärung halber
in zwei Teile unterteilt: 2A zeigt
den Erfassungsteil des Verfahrens, während 2B den
Archivierungsteil des Verfahrens zeigt.
-
Wie
in 2A gezeigt, verbindet sich der Benutzer bevorzugt
in der Phase 1 mit dem Web-Browser mit einer entsprechend der URL
der Web-Site angeforderten Web-Site. Die Web-Site wird wahlweise
und besser von dem Web-Server der Organisationseinheit von 1 betreut,
wenngleich dies nicht notwendig ist. In der Phase 2 bestimmt bevorzugt
ein Server irgendeiner Art, ob durch den Web-Server betrieben oder
anders bereitgestellt, ob der Client in 1 auf der
Benutzerrechenvorrichtung installiert ist. Falls nicht, wird der
Client heruntergeladen. Andernfalls verbindet sich der Client in
Phase 3 bevorzugt auf dem Port 80 mit einem Protokollserver. Der
Protokollserver kann wahlweise die Speicherrechenvorrichtung von 1 sein.
-
In
der Phase 4 bestimmt der Client, ob zwischen der Benutzerrechenvorrichtung
und dem Web-Server eine Sitzung aufgebaut wurde, die überwacht
wird. Wenn keine derartige Sitzung aufgebaut wurde und/oder unterbrochen
wird, trennt sich der Client vorzugsweise von dem Protokollserver.
Andernfalls werden in der Phase 5 die Benutzeraktionen und GUI-Reaktionen
(wie zum Beispiel dargestellte Web-Seiten) bevorzugt erfaßt; Nachrichten
werden aufgebaut; und ein Zeitstempel wird hinzugefügt. In der
Phase 6 werden die erfaßten
Daten von dem Client an den Protokollserver gesendet. Die Phasen
5 und 6 werden wahlweise mindestens einmal wiederholt und bevorzugter
wiederholt, bis die Sitzung beendet wird.
-
2B zeigt
ein beispielhaftes Archivierungsverfahren gemäß der vorliegenden Erfindung. Der
Protokollserver horcht in der Phase 1 auf dem Port 80 auf ankommende
Daten, bevorzugt in der Form von Nachrichten wie vorher beschrieben.
Wie ebenfalls vorher beschrieben, kann der Protokollserver wahlweise
die Speicherechenvorrichtung von 1 sein.
Wenn der Protokollserver sich jedoch von der Speicherrechenvorrichtung
von 1 unterscheidet, verbindet sich der Protokollserver
in der Phase 2 bevorzugter mit der Speicherrechenvorrichtung.
-
In
der Phase 3 bestimmt der Protokollserver, ob neue Daten angekommen
sind. Wenn keine neuen Daten angekommen sind, wartet der Protokollserver
vorzugsweise. Andernfalls bestimmt der Protokollserver in Phase
4 bevorzugt, ob eine Anforderung zum Beginn einer Aufzeichnungssitzung
empfangen wurde. Wenn eine derartige Anforderung empfangen wurde,
fügt der
Protokollserver in Phase 5 bevorzugt Daten zur Erfassung ein, so
daß der
Protokollserver die empfangenen Daten in eine temporären Speicherpuffer
oder "Catch" behält.
-
In
der Phase 6 bestimmt die Speicherrechenvorrichtung bevorzugt, ob
Daten von dem Protokollserver abgezogen werden können. Wenn in dem Catch des
Protokollservers derartige Daten verfügbar sind, ruft die Speicherrechenvorrichtung
in der Phase 7 vorzugsweise die Daten ab und speichert sie in die
Datenbank. Dieses Verfahren wird wahlweise wiederholt, bevorzugt
so oft wie notwendig, um alle empfangenen Daten abzurufen.
-
3 zeigt
ein beispielhaftes Verfahren zum Wiedergeben von Daten gemäß der vorliegenden
Erfindung. Wie gezeigt, verwendet der Benutzer in der Phase 1 bevorzugt
einen Web-Browser, um sich mit der Adresse (URL) der Protokollservers
zu verbinden, der in diesem Beispiel als der Wiedergabeserver arbeitet.
In der Phase 2 bestimmt der Protokollserver, ob der Wiedergabe-Client
auf der Benutzerrechenvorrichtung installiert ist, um die erfaßten Daten
wiederzugeben. Falls nicht und wenn der Benutzer berechtigt ist,
wird der Wiedergabe-Client bevorzugt heruntergeladen.
-
In
der Phase 3, wenn der Wiedergabe-Client einmal verfügbar ist,
wählt der
Benutzer eine Web-basierte Sitzung für die Wiedergabe aus. In der Phase
4 verbindet sich der Wiedergabe-Client zum Beispiel über den
Port 80 mit dem Protokollserver. In der Phase 5 benachrichtigt der
Protokollserver wahlweise die Speicherrechenvorrichtung, wenn die
zwei Server getrennte Komponenten sind, und wartet dann auf den
Empfang von Daten.
-
In
jedem Fall sendet der Protokollserver in der Phase 6 die Daten an
den Wiedergabe-Client. In der Phase 7 prüft der Wiedergabe-Client vorzugsweise
den Datenstatus. Wenn es keine Daten gibt, dann trennt sich Wiedergabe-Client
von dem Protokollserver und bestimmt bevorzugter auch, ob immer
noch eine Sitzung vorhanden ist. Andernfalls schiebt der Wiedergabe-Client
in der Phase 8 bevorzugt Web-Seiten in den Web-Browser der Benutzerrechenvorrichtung
und spielt die Daten erneut ab, um die früher ausgeführten Aktionen der Benutzers
zu simulieren, um die Sitzung erneut abzuspielen.
-
Die
Verfahren von 2 und 3 können, abgesehen
von der Anforderung zweier getrennter Server zum Empfangen und Speichern
von Daten im Fall einer Implementierung mit der DMZ, wie in 1 gezeigt,
wahlweise bei vorhandener oder nicht vorhandener DMZ und/oder einer
oder mehreren Firewalls mit ähnlicher
Arbeitsweise durchgeführt
werden.
-
Gemäß Beispielen
der vorliegenden Erfindung können
sowohl die Erfassungs- als auch die Speicherfunktionen wahlweise
durch die gleiche Rechenvorrichtung durchgeführt werden. Für diese
Implementierung können
der Erfassungsclient, der Speicherserver und die Wiedergabefunktion
alle wahlweise als getrennte Prozesse implementiert werden, die
von der gleichen Rechenvorrichtung betrieben werden. Diese Implementierung
ist zum Beispiel mit Bezug auf 4 gezeigt;
ein System 34 weist einen Web-Server 36 zum Betreuen
von Web-Seiten durch
das Internet 38 oder ein anderes Netzwerk auf. Diese Web-Seiten
werden auf eine Benutzerrechenvorrichtung 40 heruntergeladen,
die einen Web-Browser 42 zum Anzeigen dieser Web-Seiten
aufweist.
-
Die
Benutzerrechenvorrichtung 40 weist, wie ebenfalls bereits
beschrieben, bevorzugt eine Erfassungskompo nente 44 zum
Erfassen der bereits beschriebenen Benutzeraktionen und Benutzerschnittstellenreaktionen
und eine Wiedergabekomponente 46 zum Wiedergeben der erfaßten Daten
auf. Anstatt die erfaßten
Daten an einen fernen Server zu senden, speichert die Erfassungskomponente 44 die
erfaßten
Daten bevorzugt in einer Datenbank 48. Die Benutzerrechenvorrichtung 40 kann
daher bevorzugt verwendet werden, um die Daten sowohl zu erfassen als
auch wiederzugeben.
-
Wahlweise
und bevorzugter weist der Web-Browser 42 bevorzugt sowohl
die Erfassungskomponente 44 als auch die Wiedergabekomponente 46 auf,
um jeden Client in die Lage zu versetzen, die von diesem Client
aufgezeichneten relevanten Sitzungen wiederzugeben.
-
Während die
Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen
beschrieben wurde, wird zu schätzen
gewußt,
daß viele Änderungen,
Modifikationen und andere Anwendungen der Erfindung durchgeführt werden
können.