-
Gebiet
der Erfindung
-
Die
vorliegende Erfindung betrifft allgemein Datenlagerung (im engl.
Data-Warehousing) und insbesondere Datenlagerung in Kontaktzentralen.
-
Hintergrund
der Erfindung
-
Kontaktzentralen
wie etwa automatische Anrufverteilungs- oder ACD(Automatic Call Distribution)-Systeme
werden von vielen Unternehmen verwendet, um Kundenkontakte zu bedienen.
Eine typische Kontaktzentrale umfasst eine Vermittlungseinrichtung
und/oder einen Server zum Empfangen und Weiterleiten eingehender
paketvermittelter und/oder leitungsvermittelter Kontakte sowie eine
oder mehrere solcher Ressourcen wie als Agenten bezeichnete Sachbearbeiter
und automatisierte Ressourcen (z. B. interaktive Sprachausgabe(IVR – Interactive
Voice Response)-Einheiten), um die eingehenden Kontakte zu bedienen.
Kontaktzentralen verteilen Kontakte, egal ob eingehende oder ausgehende,
entsprechend vorbestimmter Kriterien an eine geeignete Ressource
zur Bedienung. Normalerweise wird bei heutigen ACDs, wenn der Controller
des ACD-Systems feststellt, dass ein Agent verfügbar geworden ist, um einen
Kontakt abzuwickeln, der Controller alle vordefinierten Kontaktabwicklungsfähigkeiten
des Agenten feststellen (üblicherweise
in einer gewissen Prioritätsreihenfolge)
und an den Agenten den ältesten
Kontakt mit der höchsten
Priorität
ausliefern, welcher mit der Fähigkeit
mit höchster
Priorität
des Agenten übereinstimmt.
-
Die
Hauptaufgabe eines Kontaktzentralenmanagements, einschließlich der
Anrufverteilungsalgorithmen, besteht letztendlich darin, das Funktionsverhalten
und die Profitabilität
der Kontaktzentrale zu maximieren. Eine ständige Herausforderung bei der
Verwaltung von Kontaktzentralen stellt die Überwachung des Verhaltens von
Agenten dar, um die Nutzung von Ressourcen der Kontaktzentrale zu
optimieren und das Leistungsverhalten sowie die Profitabilität der Agenten
zu maximieren. Derzeitige Produkte zum Überwachen und Auswerten des
Funktionsverhaltens von Kontaktzentralen, beispielsweise das Call
Management System oder CMSTM der Avaya Inc.
und der Operational Analyst oder OATM der
Avaya Inc., sind als Datenlager (im engl. Data Warehouses) konfiguriert,
die Daten aus mehreren Quellen extrahieren, die Daten in eine standardisierte Form
umwandeln und die Daten in die Datenlager-Datenbank laden. Zusätzliche
Berechnungen und Auswertungen können
nach dem Stapelladen erfolgen. Wie zu erkennen sein wird, ist eine
exakte Verfolgung des Datums und der Uhrzeit wesentlich für die Überwachung
von Kontaktzentralen. Die grundlegenden Messwerte beziehen sich
darauf, wie Agenten ihre Zeit nutzen und wie effektiv die Kontaktzentrale
im Zeitverlauf ist.
-
Das
Bereitstellen grundlegender Messwerte bezüglich des Leistungsverhaltens
in Kontaktzentralen stellt keine einfache Aufgabe dar. Die Zeitskala
von Kontaktzentralendaten ist enorm. Zusätzlich zum einfachen Kennzeichnen
von Ereignissen entsprechend dem Zeitpunkt, zu dem diese stattgefunden
haben (z. B. 01.10.2005 01:00:00) muss der Zeitgeber einer Kontaktzentrale
für Ereignisse
außerdem
die verschieden großen
Intervallen auszeichnen, die diese enthalten, sodass die Zeit einheitlich
unterteilt werden kann (z. B. um zu wissen, dass die Uhrzeit in
dem obigen Beispiel sowohl den Beginn der zweiten Stunde als auch
der dritten Stunde dieses Tages bedeutet, da es sich in einigen
Zeitzonen um einen Tag der herbstlichen Rückstellung von Sommerzeit handelt).
Feinskalige Daten müssen
mit einer Genauigkeit von zumindest einer Sekunde (vorzugsweise
einer Millisekunde) aufgezeichnet werden und kommen mit einer Rate
in der Größenordnung
von 1.000 Datensätzen
pro Sekunde an; das bedeutet, die Skala liegt in der Größenordnung
von 0,001 Sekunde. Grobskalige Daten werden typischerweise drei
oder mehr Jahre gehalten; das bedeutet, sie werden 100.000.000 Sekunden
gehalten. Das ist ein Faktor von 100.000.000.000 zwischen grob-
und kleinskaligen Daten.
-
Der
globale Rahmen selbst eines einzigen Auswertungszentrums für Kontaktzentralen
erfordert eine zusätzliche
Flexibilität
bei der Behandlung von Datum der Zeit. Das gleiche Datum muss gleichermaßen in einer
lokalen Zeitzone, in der ein lokaler Supervisor Agenten verwaltet,
und in einer unternehmens- oder kundenspezifischen Zeitzone, in
der das Management des Unternehmens die gesamte Kontaktzentrale
verwaltet, darstellbar sein. Zum Beispiel werden auf der Unternehmensebene
(z. B. regional oder global) die gleichen Leistungsdaten in einer
anderen gemeinsamen Zeitzone zusammengeführt, um den Ausgleich der Verkehrslast
zwischen lokalen Zentralen zu analysieren und um den Kunden zu demonstrieren,
dass deren vertraglich zugesicherten Dienstleistungssolls erfüllt werden.
Das Einstellen der Zeitzonen, das für ein bestimmtes Auswertungssystem
erforderlich sind, hängt
typischerweise von den Standorten der verschiedenen Zentralen ab, die
unterstützt
werden, es ändert
sich also mit der Systemkonfiguration.
-
Die
globalen Zeitzonen sind vielgestaltiger, als es üblicherweise zur Kenntnis genommen
wird. Es gibt 16 Zeitzonen in der Welt, die auf Halbstundengrenzen
in Bezug auf Greenwich liegen, und eine davon (Indien) stellt einen
wichtigen Markt für
Kontaktzentralen dar. Es gibt sogar zwei Zeitzonen, die auf Viertelstundengrenzen
liegen (eine davon ist Nepal). Durch Zeitzonen mit einem Versatz
von Bruchteilen einer Stunde erhöht
sich der naive Zählwert
für globale
Zeitzonen von vierundzwanzig auf zweiundvierzig. Die weitaus größte Komplexität, was die
globalen Zeitzonen betrifft, ist jedoch auf die Sommerzeit bzw.
Zeitumstellung (im engl. daylight saving time) zurückzuführen. Die
Zeitzonen unterscheiden sich nicht nur dadurch, ob sie auf/von Sommerzeit umstellen,
sondern auch dadurch, wann sie auf/von Sommerzeit umstellen. Die
Umstellungszeitpunkte im Herbst und im Frühjahr unterscheiden sich nach
dem Tag des Jahres (z. B. stellt Europa am letzten Sonntag im März um, während die
Vereinigten Staaten momentan am ersten Sonntag im April umstellen)
und nach der Zeit des Tages (z. B. 3:00, 2:00, 1:00 und 23:45).
Durch die Auswirkungen der Sommerzeit erhöht sich die Zahl der globalen
Zeitzonen auf über
fünfhundert
(Java, Version 5 erkennt 561).
-
Die
Regeln für
die Zeitumstellung sind nicht nur unterschiedlich, sie ändern sich
auch. In den Vereinigten Staaten wird beginnend mit dem Jahre 2007
die Sommerzeit im Frühling
um drei Wochen und im Herbst um eine Woche verlängert. Im Jahre 2006 endete
außerdem
in Indiana die spezielle lokale Tradition mit drei Zeitzonen. Die
Sommerzeitregeln sind derart kompliziert, dass, wenn man mit GoogleTM nach den Regeln sucht, wahrscheinlich
Vorhersagen für
das momentane Jahr anstatt Algorithmen findet. Was noch schlimmer ist,
mit den in Java bekannten Zeitzonen wird nicht versucht, historische Änderungen
in den Regeln darzustellen, sondern lediglich die momentanen Regeln.
-
Existierende
Auswertungssysteme für
Kontaktzentralen speichern alle Daten in einer einzigen universellen
Zeitzone (UTC, auch bekannt als GMT) und übertragen sämtliche Verantwortlichkeiten
bezüglich
der Zeitzonenumwandlung an spezielle herstellerspezifische Auswertungssoftware.
Der Auswertungscode könnte Bereiche
von Analysedaten mit einer Auflösung
von 30 Minuten neu in der Zeitzone des Nutzers der Auswertung abbilden,
Analysen mit tageweiser, wochenweiser und monatsweiser Auflösung sind
jedoch an eine bevorzugte Zeitzone gebunden, die bei OA als die
Archiv-Zeitzone (ATZ) bezeichnet wird. Die Auswahl dieser Zeitzone
müsste
erfolgen, bevor die Daten zusammengefasst werden könnten, somit
wäre die
Auswahl in den Daten "festgeschrieben", wäre also
keine Auswahl des Nutzers. Wegen der Besonderheiten der internationalen
Zeitzonen und der Sommerzeitregeln wurde durch den Ansatz der Behandlung
aller Zeitzonenumwandlungen in den Auswertungen die Auswertungssoftware
zu kompliziert für
drittseitige Onlineanalysenverarbeitungs-(im engl. OnLine Analytical
Processing, OLAP)-Werkzeuge. Infolgedessen mussten solche Werkzeuge die
Ergebnisse nur in der universellen Zeitzone der Daten anzeigen,
wodurch in vielen Fällen
bewirkt wurde, dass die graphischen Daten für den Arbeitstag um Mitternacht
UTC herum in zwei Teile zerfielen.
-
Auswertungssysteme
für Kontaktzentralen
nutzen zunehmend Data-Warehouse-Verfahren, um Daten zu organisieren.
Bei der Dimensionsmodellierung oder dem Data-Warehouse-Prozess werden
numerische Leistungsmaßzahlen
(die Dinge, die typischerweise aufsummiert werden), in speziellen "Faktentabellen" gehalten, getrennt
von den beschreibenden Attributen (wie Namen und Kennungen), welche
in "Dimensionstabellen" gehalten werden.
Fremdschlüssel
in den Faktentabellen koppeln die Maßzahlen mit den Datensätzen der
einzelnen Dimension, die sie beschreiben. Typischerweise gibt es
mehrere Fremdschlüssel
in einer Faktentabelle, da die Maßzahlen die Kombination von
Entitäten
von unterschiedlichen Dimensionen betreffen können (z. B. einen bestimmten
Agenten aus der Agentendimension, der Anrufe in einer bestimmten
Warteschlange in der Warteschlangendimension beantwortet).
-
Es
ist vorgeschlagen worden, dass Datenlager bzw. Data Warehouses Datum
und Zeit als eine einzige Dimension behandeln, dieser Ansatz wurde
aber nach dem Stand der Technik aufgegeben, da er zu einer Dimensionstabelle
mit enormer Größe führt. Ein
Jahr hat über
31 Millionen Sekunden, das Halten von Daten von 10 Jahren mit einer
Auflösung
von einer Sekunde würde
somit über
310 Millionen Datensätze
in dieser Dimensionstabelle erfordern. Stattdessen besteht das Standardverfahren
darin, Datum und Zeit in separate Dimensionen mit drastisch kleinerer
Größe zu trennen
(3.650 Datensätze
in der Datumsdimension für
10 Jahre; und 1.440 oder 86.400 Datensätze in der Zeitdimension für Auflösungen von
einer Minute bzw. einer Sekunde). In den letzten Jahren hat sich
dieses Standardverfahren dahingehend entwickelt, dass es einen vollständigen Zeitstempel
Datum-Zeit als eine separate Maßzahl
in der Faktentabelle umfasst, zusätzlich zu den Fremdschlüsseln, die
auf die Datums- und die Zeitdimension zeigen. Bei anderen Varianten
wird auf die Zeitdimension gänzlich
verzichtet. In jedem Fall sind für
mehrere Zeitzonen mehrere Sätze
von Fremdschlüsseln/Zeitstempeln
in den Faktentabellen erforderlich.
-
Die
Behandlung von Zeitzonen stellt die Achillesferse herkömmlicher
Dimensionsdatenmodelle dar. Bei diesen ist es nicht möglich, die
Zeit an den Tagen der Sommerzeitumstellung zu unterteilen, noch
nicht einmal bei einer einzigen Zeitzone (z. B. werden Daten aus
der zweiten und der dritten Stunde des Tages während der Zurückstellung
von der Sommerzeit miteinander vermischt und Tage mit dreiundzwanzig
Stunden und fünfundzwanzig
Stunden werden nicht erkannt). Die Kosten für Zeitzonen hinsichtlich Datenbankraum
(und folglich hinsichtlich der Zugriffsgeschwindigkeit) wirken entmutigend,
was eine Unterstützung
von genügend Zeitzonen
für Auswertungsbedürfnisse
betrifft (ein typisches Warehouse mit nur vier Zeitzonen nutzt bereits seinen
meisten Platz nur für
Zeitstempel). Außerdem
ist es wegen der Art, in welcher die Zeitstempel in den größten Datenbanktabellen "eingeschrieben" sind, nicht möglich, die
Wahl der unterstützten
Zeitzonen während
der Nutzungszeit des Data-Warehouse zu ändern (ohne die Kontaktzentrale
für eine
wochenlange Datenwanderung abzuschalten). Versuche, mehrere Zeitstempel
in der Datums- und
der Zeitdimension zu nutzen, um mehrere Zeitzonen zu beschreiben
(als synonyme Kennzeichnungen für
den gleichen Zeitpunkt, aus unterschiedlichen Zeitzonen betrachtet)
schlagen fehl, weil es Stunden des Tages gibt, für welche das Datum und die
Zeit des Tages in unterschiedlichen Zeitzonen nicht übereinstimmt.
Eine andere Möglichkeit,
dieses Versagen zu verstehen, besteht darin zu erkennen, dass die
Wahl eines bestimmten Datums in einer Datumsdimension äquivalent
dem Bevorzugen nur derjenigen Zeitzonen ist, die mit dieser Wahl
des Tages übereinstimmen.
Durch Einfügen
der Informationen für
mehrere Zeitzonen in die Faktentabellen erhöht sich die Größe der Datenbank
beträchtlich,
mit folglich einer Verschlechterung des Leistungsverhaltens der
Datenbank (diese wird langsamer). Die schiere Größe der Faktentabellen bedeutet
außerdem,
dass sich nicht ändern
lässt,
welche Zeitzonen unterstützt
werden sollen, da dies ein vollständiges Umschreiben aller Datensätze der
Faktentabelle und sogar eine Schemaänderung (um mehr Zeitzonen
zu integrieren) erfordern würde.
Aus der Erfahrung mit Datenwanderungen ist bekannt, dass solche
massiven Änderungen
an Faktentabellen Ausfallzeiten von bis zu einer Woche oder mehr
erfordern.
-
Zusammenfassung
der Erfindung
-
Diesen
und anderen Bedürfnissen
wenden sich die verschiedenen Ausführungsformen und Konfigurationen
der vorliegenden Erfindung zu. Die vorliegende Erfindung ist allgemein
auf einen Datenlager- bzw. Data-Warehouse-Zeitgeber ausgerichtet,
der zur Auswertung von Ereignissen über mehrere internationale Zeitzonen
hin geeignet ist. Der Zeitgeber wird durch die Anordnung der Daten
in den Tabellen der Datenbank bewirkt. Die Anordnung beinhaltet
die Beziehungen zwischen Faktentabellen und Dimensionstabellen in
dem Dimensionsdatenmodell eines Data-Warehouse. Der Data-Warehouse- Zeitgeber ist bei
jeder Data-Warehouse-Anwendung nützlich
und ist insbesondere anwendbar auf die Anwendung der Data-Warehouse-Technologie
zur Auswertung von Kontaktzentralen. Die neue Struktur ermöglicht eine
wesentliche Reduzierung der Größen der
Faktentabellen relativ zu den Datums- und Zeit-Dimensionstabellen gemäß dem Stand
der Technik.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung umfasst die Datumsdimension Zeitinformationen
bis zumindest auf die Stunde genau. Alle Informationen in einer
typischen Zeitdimension, die von einer Zeitzone abhängen würden (z.
B. Stunde des Tages), sind in die Datumsdimension verschoben. Um
die meisten der von Java erkannten 561 Zeitzonen der Welt zu behandeln,
ist die Datumsdimension vorzugsweise zumindest auf eine Viertelstunde
genau, da einige wenige Zeitzonen einen Versatz oder Übergangszeiten
an 45-Minuten-Grenzen aufweisen. Bei Anwendungen, bei denen die
Liste der unterstützten
Zeitzonen eingeschränkter
ist, ist es möglich,
dass die Datumsdimension nur bis auf eine halbe Stunde genau ist
(um Indien und 15 andere, um eine halbe Stunde versetzte Zeitzonen
zu behandeln) oder auf eine Auflösung
von einer Stunde genau (mit welcher 543 Zeitzonen mit Versätzen von
einer vollen Stunde behandelt werden könnten), mit proportionalen
Einsparungen bei der Anzahl der Datensätze in der Datumsdimension
(z. B. ist eine Datumsdimensionstabelle mit einer Auflösung von
einer Stunde 4 mal kürzer
als bei einer Auflösung
von 15 Minuten und 60 mal kürzer
als bei einer Auflösung
von 1 Minute). Der Datumsschlüssel
(welcher Teil des Primärschlüssels der
Datumsdimensionstabelle ist) stellt eine Aufzählung physikalisch aufeinanderfolgender
Zeitintervalle mit der gewünschten
Auflösung
dar (z. B. aufeinanderfolgende Viertelstundenintervalle), und zwar über die
Nutzungszeit des Systems hin (z. B. 10 Jahre). Bei noch anderen
Ausführungsformen
kann die Datumsdimension bis auf sehr feine Auflösungen, beispielsweise eine
Minute, genau sein.
-
Das
Trennen der Datums- und der Zeitdimension gemäß dem Stand der Technik wird
für die
Wurzel aller Probleme gehalten, die es bei Data-Warehouses mit Zeitzonen
gibt. Sommerzeit bedeutet, dass einige Tage (die Umstellungstage)
sich von anderen im Hinblick darauf unterscheiden, wie die Uhrzeit
in Intervalle in dem Tag abgebildet wird. Da aber die Zeit in einer
vom Datum getrennten Dimension vorliegt, muss die Zeit in der gleichen
Weise behandelt werden, unabhängig
von dem jeweiligen Datum, das tatsächliche Verhalten von Umstellungstagen
wird somit niemals exakt dargestellt. Die Trennung des Datums von
der Zeit ist außerdem der
Grund dafür,
dass mehrere Zeitzonen mehrere Kopien von Fremdschlüsseln in
den Faktentabellen erfordern.
-
Bei
einer Konfiguration umfasst die Datumsdimension Darstellungen in
mehreren Zeitzonen. Da Informationen in der Datumsdimension von
der Zeitzone abhängen
(unterschiedliche Zeitzonen weisen unterschiedliche Kalender- und
Uhrzeit-Werte für
ein in Echtzeit physikalisch gleiches Viertelstundenintervall auf), die
Datumsdimension enthält
mehrere Versionen dieser Informationen für die verschiedenen Zeitzonen,
für welche
das System konfiguriert worden ist. Datenbanktechnisch kann dies
durch das Einfügen
mehrerer Datenspalten in dem gleichen Datensatz erreicht werden,
oder allgemeiner durch das Einfügen
mehrerer Datensätze,
welche das gleiche Viertelstundenintervall beschreiben. In letzterem
Fall unterscheiden sich die zusätzlichen
Datensätze
durch eine zusätzliche
Spalte, welche die Zeitzone bezeichnet (diese Spalte wird dann zusammen
mit dem Datumsschlüssel
integriert, um einen Primärschlüssel aus
zwei Komponenten für
die Datumsdimensionstabelle zu bilden).
-
Bei
einer Konfiguration ist die Zeitdimension unabhängig von der Zeitzone. Die
in der Zeitdimension verbleibenden Daten beschreiben die Zeit bis
auf die Sekunde (oder sogar Millisekunde) genau innerhalb des Auflösungsintervalls
von einer Viertelstunde oder einer Stunde, das durch die Datums dimension
beschrieben wird. Für
den Fall, dass die Datumsdimension bis auf die Viertelstunde genau
ist, hätte
die typische Zeitdimension zumindest 900 Datensätze entsprechend den 900 verschiedenen
Sekunden in einer Viertelstunde. Für eine Auflösung von Millisekunden würde eine
extreme Zeitdimension 900.000 Datensätze haben. In jedem Fall repräsentiert
der Informationsgehalt den fein aufgelösten Teil der Datumszeit, der
unabhängig
von der Zeitzone ist.
-
Bei
einer bestimmten Konfiguration stellen die Faktentabellen einen
Bezug zu einem Zeitpunkt durch einen Datumsschlüssel und einen von der Zeitzone
unabhängigen
Zeitschlüssel
her. Da die gesamte Zeitzonenabhängigkeit
nun in der Datumsdimension enthalten ist, brauchen die Faktentabellen
nicht mehr mehrere Fremdschlüssel
zu halten, um mehrere Zeitzonen zu unterstützen. Diese großen Faktentabellen
können
nun einen einzigen Bezug zu einem physikalischen Zeitpunkt herstellen,
anstatt mehrere Bezüge
zu synonymen Ausdrücken
für diese
Zeit.
-
Bei
einer Konfiguration wird die speziell genutzte Zeitzone von dem
Betrachter ausgewählt.
Da der in der Faktentabelle gehaltene Datumsschlüssel nur Teil des Primärschlüssels ist,
der für
die neue Datumsdimension benötigt
wird, wird der andere Teil des Primärschlüssels (der Zeitzonenschlüssel) extern
bereitgestellt. Typischerweise kommt diese Information von einem
Parameter, der geliefert wird, wenn eine Auswertung erfolgt. Er
könnte
anhand der lokalen Umgebung des Computers des Nutzers der Auswertung
abgeleitet werden, eine von dem Nutzer explizit eingegebene Auswahl
darstellen oder ein Standardwert sein, der von einem Auswertungswerkzeug
bereitgestellt wird.
-
Mit
der Ausführungsform
können
die Probleme des Standes der Technik überwunden werden.
-
Erstens
können
Sommerzeitumstellungen in allen Zeitzonen exakt beschrieben werden.
Da der Datumsschlüssel
physikalisch aufeinanderfolgende Viertelstunden anstatt bestimmte Uhrzeiten
beschreibt, können
Anwendungen beispielsweise die zweite Stunde des Tages von der dritten
Stunde des Tages unterscheiden, selbst an den Tagen der Zurückstellung
von Sommerzeit im Herbst, wenn die nominelle Datumszeit dieser Intervalle
die gleiche ist (z. B. 1:00). Gleichermaßen gibt es keine "fehlenden" physikalischen Intervalle,
wenn an den Umstellungstagen im Frühling die Uhren (in einigen
Umstellungszonen) vorgestellt werden.
-
Zweitens
bedeutet das Unterstützen
mehrerer Zeitzonen notwendigerweise einen beträchtlichen Nachteil bezüglich Raum/Zeit.
Die Faktentabellen sind nun unabhängig von den Zeitzonen, es
ergibt sich also eine wesentliche Verringerung der Gesamtgröße der Datenbank.
Wie zu erkennen sein wird, übersteigen
Faktentabellen bei der Bemessung von Data-Warehouses in ihrer Anzahl immer die
Dimensionstabellen, somit übersteigen
die Einsparungen in den Faktentabellen die Erweiterung der Datumsdimension
um viele Größenordnungen.
-
Drittens
kann das Hinzufügen
oder Ändern
von Zeitzonen zu einem beliebigen Zeitpunkt erfolgen. Da alle Zeitzonensynonyme
in einer Dimensionstabelle gespeichert sind, die im Vergleich zu
den Faktentabellen klein und statisch ist, stellt das Hinzufügen, Modifizieren
oder Entfernen der Unterstützung
für einzelne
Zeitzonen eine kleinere Datenbankoperation dar. Solche Änderungen
könnten
sogar während
der Hauptverkehrstunde des Betriebs der Kontaktzentrale erfolgen.
Ohne die vorliegende Erfindung müsste
eine große
Kontaktzentrale möglicherweise
eine Woche oder länger
geschlossen werden, um die äquivalente
Datenwanderung auszuführen,
die für
das Hinzufügen
einer Zeitzone erforderlich ist.
-
Viertens
können
die Regeln für
Zeitzonen exakt und unabhängig
behandelt werden. Im Gegensatz zu der naiven Annahme, dass Zeitzonen
lediglich durch einen Zeitversatz gekennzeichnet sind, behandelt
die vorliegende Erfindung vorzugsweise alle 561 Zeitzonen der Welt
exakt und unabhängig,
indem für
jede Zeitzone unterschiedliche Regelsätze genutzt werden. Die Regelsätze beschreiben
exakt die Umstellungstage, Versätze
(falls vorhanden) und Zeiten in jeder Zeitzone. Alle Änderungen
in einer bestimmten Zeitzone, beispielsweise aufgrund einer lokalen
oder nationalen Anordnung in Krisenzeiten (z. B. behielten die Vereinigten
Staaten während
eines Kriegs für
das gesamte Jahr die Sommerzeit bei, und kürzlich begann die Sommerzeit
verfrüht, um
während
einer Gasverknappung Brennstoff zu sparen) können behandelt werden, indem
die bestimmenden Regelsätze
geändert
werden und dieser Teil der Datumsdimension regeneriert wird, d.
h. für
eine bestimmte Zeitzone während
einer bestimmten Zeitperiode, ohne dass irgendwelche andere Zeitzonen
oder vorangegangene Zeitperioden beeinflusst werden. Darüber hinaus
gibt es üblicherweise
keine Annahmen dazu, dass alle Zeitzonen zum selben Datum oder zur
gleichen Zeit des Tages auf oder von Sommerzeit umstellen. Schließlich nutzt
die vorliegende Erfindung vorzugsweise unterschiedliche Versionen
der Datumsdimension in unterschiedlichen Zeitzonen, dadurch wird
der übliche
Fehlglaube vermieden, dass unterschiedliche Zeitzonen lediglich
unterschiedlichen additiven Versätze
in der gleichen Dimension entsprechen. Wie erwähnt ist, wenn Sommerzeiteffekte
berücksichtigt
werden, der effektive Versatz einer beliebigen Zeitzone zu GMT nicht
konstant, sondern variiert mit der Zeit und dem Datum in einer Weise,
die ihrerseits von der Zeitzone abhängt.
-
Diese
und andere Vorteile werden anhand der Offenbarung der vorliegend
enthaltenen Erfindung(en) deutlich werden.
-
Die
Begriffe "zumindest
eine", "eine oder mehrere" und "und/oder", wie sie vorliegend
genutzt werden, sind offene Ausdrücke, die in ihrer Anwendung
sowohl konjunktiv als auch disjunktiv sind. Beispielsweise bedeutet
jeder der Ausdrücke "zumindest eines der
Elemente A, B und C", "zumindest eines der
Elemente A, B oder C", "eines oder mehrere
der Elemente A, B und C, "eines
oder mehrere der Elemente A, B oder C" und "A, B und/oder C" A allein, B allein, C allein, A und
B zusammen, A und C zusammen, B und C zusammen oder A, B und C zusammen.
-
Die
vorliegend beschriebenen Ausführungsformen
und Konfigurationen sind weder vollständig noch erschöpfend. Wie
zu erkennen sein wird, sind andere Ausführungsformen der Erfindung
möglich,
bei denen allein oder in Kombination eines oder mehrere der vorstehend
angeführten
oder nachstehend im Einzelnen beschriebenen Merkmale genutzt werden.
-
Kurze Beschreibung
der Zeichnungen
-
1 stellt
ein Blockdiagramm einer Kontaktzentrale entsprechend einer Ausführungsform
der vorliegenden Erfindung dar;
-
2 stellt
ein Blockdiagramm eines Servers entsprechend einer Ausführungsform
der vorliegenden Erfindung dar;
-
3 stellt
eine Beschreibung eines Datenmodells gemäß dem Stand der Technik dar;
-
4 stellt
ein Datenmodell dar, das einen Satz von Datenstrukturen entsprechend
einer Ausführungsform
der vorliegenden Erfindung umfasst;
-
5 stellt
ein Datenmodell dar, das einen Satz von Datenstrukturen entsprechend
einer Ausführungsform
der vorliegenden Erfindung umfasst; und
-
6 stellt
eine Beschreibung eines Faktereignisses entsprechend der vorliegenden
Erfindung dar.
-
Detaillierte Beschreibung
-
Die
Erfindung wird nachstehend im Zusammenhang mit einem beispielhaften
Kommunikationssystem veranschaulicht. Obgleich sie gut geeignet
für den
Einsatz mit z. B. einem System ist, das eine ACD- oder eine ähnliche
Kontaktabwicklungs-Vermittlungseinrichtung
aufweist, ist die Erfindung nicht auf den Einsatz mit irgendeiner
bestimmten Art von Kommunikationssystem-Vermittlungseinrichtung
oder Konfiguration von Systemelementen beschränkt. Fachleute werden erkennen,
dass die offenbarten Verfahren bei jeder beliebigen Kommunikationsanwendung
genutzt werden können,
bei welcher es wünschenswert
ist, eine verbesserte Ereignis-(z. B. Kontakt-)Abwicklung bereitzustellen.
-
1 zeigt
eine beispielhafte Ausführungsform
der vorliegenden Erfindung. Eine Kontaktzentrale 100 umfasst
einen zentralen Server 110, einen Satz von Datenspeichern
oder Datenbanken 114, die kontakt- oder kundenbezogene
Informationen, Agentendaten und andere Kontaktzentralendaten enthalten,
welche den Wert und die Effizienz des Betriebs der Kontaktzentrale
verbessern können,
sowie eine Mehrzahl von Servern, nämlich einen Sprachmail-Server 118,
eine interaktive Sprachausgabeeinheit oder IVR (Interactive Voice
Response) 122 sowie andere Server 126 (beispielsweise
ein prädiktives
Einwählprogramm
(Dialer)), eine Vermittlungseinrichtung 130, eine Mehrzahl
von arbeitenden Agenten, die paketvermittelte (erste) Telekommunikationseinrichtungen 134-1 bis
N bedienen (beispielsweise Arbeitsplatzcomputer oder Personalcomputer) und/oder
leitungsvermittelte (zweite) Telekommunikationseinrichtungen 138-1 bis
M, die alle durch ein lokales Netz LAN (oder ein Weitverkehrsnetz
WAN) 142 untereinander verbunden sind. Die Server können über optionale
Kommunikationsleitungen 146 mit der Vermittlungseinrichtung 130 verbunden
sein. Wie zu erkennen sein wird, können die anderen Server 126 auch
einen Scanner (der normalerweise nicht mit der Vermittlungseinrichtung 130 oder
dem Webserver verbunden ist), VoIP-Software, Videoanrufsoftware,
Sprachbenachrichtigungssoftware, einen IP-Sprachserver, einen Fax-Server,
einen Webserver und einen E-Mail-Server
und dergleichen umfassen. Die Vermittlungseinrichtung 130 ist über eine
Mehrzahl von Amtsleitungen 150 mit dem öffentlichen Telekommunikationsnetz
oder PSTN 154 und über
eine/mehrere Verbindung(en) 152 mit den zweiten Telekommunikationseinrichtungen 138-1 bis
M verbunden. Ein Gateway 158 ist zwischen dem Server 110 und
dem paket vermittelten Netz 162 angeordnet, um Kommunikationsvorgänge abzuwickeln,
die zwischen dem Server 110 und dem Netz 162 laufen.
-
Der
Begriff "Vermittlungseinrichtung" oder "Server", wie er vorliegend
genutzt wird, sollte dahingehend verstanden werden, dass er eine
Nebenstellenanlage-(PBX-), eine automatische Anrufverteilungs-(ACD-), eine
Firmen-Vermittlungseinrichtung
oder eine andere Art von Telekommunikationssystem-Vermittlungseinrichtung
oder -Server einschließt,
ebenso wie andere Arten von prozessorbasierten Kommunikationssteuerungseinrichtungen
wie etwa Medienserver, Computer, Adjuncts, usw.
-
Die
Vermittlungseinrichtung 130 und/oder der Server 110 können eine
beliebige Architektur aufweisen, um Kontakte zu einer oder zu mehreren
Telekommunikationseinrichtungen weiterzuleiten. Beispielsweise können die
Vermittlungseinrichtung und/oder der Server eine modifizierte Form
der Teilnehmergeräte
darstellen, die in den US-Patenten 6,192,122; 6,173,053; 6,163,607;
5,982,873; 5,905,793; 5,828,747 und 5,206,903 offenbart sind, welche
hier alle durch diese Bezugnahme einbezogen werden; oder können eine
modifizierte Form des ACD-Systems auf Basis der Nebenstellenanlage
(PBX) DefinityTM der Avaya Inc., der PBX
MultiVantageTM, des CRM Central 2000 Server,
des Communication Manager, des Medienservers S8300TM und/oder des
Interaction CenterTM von Avaya darstellen.
Typischerweise stellt die Vermittlungseinrichtung/der Server ein speicherprogrammgesteuertes
System dar, das in herkömmlicher
Weise Schnittstellen zu externen Kommunikationsverbindungen, ein
Kommunikationskoppelnetz, Dienstschaltungen (z. B. Tongeneratoren,
Ansageschaltungen usw.), einen Speicher zum Speichern von Steuerprogrammen
und Daten sowie einen Prozessor (d. h. einen Computer) zum Ausführen der
gespeicherten Steuerprogramme, um die Schnittstellen und das Koppelnetz
zu steuern und eine automatische Kontakt verteilungsfunktionalität bereitzustellen,
umfasst. Die Vermittlungseinrichtung und/oder der Server umfassen
typischerweise eine (nicht gezeigte) Netzschnittstellenkarte, um
Dienste für
die bedienten Telekommunikationseinrichtungen bereitzustellen. Andere
Arten bekannter Vermittlungseinrichtungen und Server sind im Fachgebiet
allgemein bekannt und werden daher vorliegend nicht im Detail beschrieben.
-
Das
Gateway 158 kann jede geeignete Einrichtung zum Konvertieren
von Protokollen darstellen, beispielsweise das G700 Media Gateway
der Avaya Inc., und kann als Hardware wie beispielsweise über einen Hilfsprozessor
(wie gezeigt) oder als ein Chip in dem Server implementiert sein.
-
Die
ersten Telekommunikationseinrichtungen 134-1, ... 134-N sind
paketvermittelt und können
beispielsweise IP-Hardwaretelefone
wie etwa die IP PhonesTM der Serie 4600
der Avaya Inc., IP-Softwaretelefone wie etwa das IP SoftphoneTM der Avaya Inc., persönliche digitale Assistenten
oder PDAs, Personalcomputer oder PCs, Laptops, paketbasierte H.320-Videotelefone und
-Konferenzschaltungseinheiten, paketbasierte Sprachbenachrichtigungs-
und Antworteinheiten, paketbasierte herkömmliche Computertelefonie-Adjuncts und
eine andere Kommunikationseinrichtung darstellen.
-
Die
zweiten Telekommunikationseinrichtungen 138-1, ... 138-M sind
leitungsvermittelt und können
beispielsweise drahtgebundene und drahtlose Telefone, PDAs, H.320-Videotelefone
und -Konferenzschaltungseinheiten, Sprachbenachrichtigungs- und
-Antworteinheiten, herkömmliche
Computertelefonie-Adjuncts und eine andere Kommunikationseinrichtung
darstellen.
-
Es
sei erwähnt,
dass für
die Erfindung keine spezielle Art von Informationstransportmedium
zwischen der Vermittlungseinrichtung oder dem Server und den ersten
und zweiten Telekommunikationseinrichtungen erforderlich ist, d.
h. die Erfindung kann mit jedem gewünschten Typ von Transportmedium
wie auch mit Kombinationen unterschiedlicher Typen von Transportkanälen implementiert
werden.
-
Das
Paketvermittelungsnetz 162 kann ein beliebiges Datennetz
und/oder Netz mit verteilter Verarbeitung wie etwa das Internet
sein.
-
Das
Paketvermittelungsnetz 162 steht über ein Gateway 178 in
Verbindung mit einer externen ersten Telekommunikationseinrichtung 174,
und das Leitungsvermittelungsnetz 154 steht mit einer externen
zweiten Telekommunikationseinrichtung 180 in Verbindung.
-
Es
sei betont, dass die Konfiguration aus Vermittlungseinrichtung,
Server, den Nutzer-Telekommunikationseinrichtungen und anderen Elementen,
wie sie in 1 gezeigt ist, lediglich der
Veranschaulichung dient und nicht als die Erfindung auf irgendeine
spezielle Anordnung von Elementen einschränkend betrachtet werden sollte.
-
Nehmen
wir Bezug auf 2, so ist in dieser eine mögliche Konfiguration
des Servers 110 dargestellt. Der Server 110 steht
in Verbindung mit einer Mehrzahl von Teilnehmerkommunikationsleitungen 200a–y (welches
eine oder mehrere Amtsleitungen, Telefonleitungen, usw. sein können) und
einer Agentenkommunikationsleitung 204 (welches eine Übertragungsleitung
für Sprache
und Daten wie etwa eine LAN-Leitung 142 und/oder
eine leitungsvermittelte Sprachleitung 140 sein kann).
Der Server 110 kann ein Ereignisverarbeitungsmodul 228 wie
beispielsweise eine modifizierte Form des Basic Call Management
SystemTM oder BCMS, des Call Management
SystemTM und/oder des Operational AnalystTM der Avaya Inc. sein, welche Anrufdatensätze und
Kontaktzentralen-Statistiken
zur Nutzung bei der Generierung von Kontaktzentralen-Auswertungen erfasst.
-
Unter
den in dem Server 110 gespeicherten Daten befindet sich
ein Satz von Kontaktwarteschlangen 208a–n und ein separater Satz von
Agentenwarteschlangen 212a–n. Jede Kontaktwarteschlange 208a–n entspricht
einem unterschiedlichen Satz von Agenten-Fähigkeiten, ebenso wie jede Agentenwarteschlage 212a–n. Herkömmlich wird
Kontakten eine Priorität
zugeordnet und sie werden entweder in einzelnen Kontaktwarteschlangen 208a–n in der
Reihenfolge ihrer Priorität
eingereiht oder werden in unterschiedlichen einer Mehrzahl von Kontaktwarteschlangen,
die einer unterschiedlichen Priorität entsprechen, eingereiht.
Gleichfalls wird den Fähigkeiten
jedes Agenten eine Priorität
zugeordnet, und zwar entsprechend dem Niveau seiner Fachkenntnisse
bezüglich
dieser Fähigkeit,
und die Agenten werden entweder in einzelnen Agentenwarteschlangen 212a–n in der
Reihenfolge ihre Niveaus an Fachkenntnissen eingereiht oder werden
in unterschiedliche einer Mehrzahl von Agentenwarteschlangen 212a–n eingereiht,
die einer Fähigkeit
entsprechen und wovon jede einem unterschiedlichen Niveau an Fachkenntnissen
entspricht. Unter den Steuerprogrammen in dem Server 110 befindet
sich ein Kontaktvektor 216. Kontakte, die in der Kontaktzentrale
eingehen, werden durch den Kontaktvektor 216 unterschiedlichen
Kontaktwarteschlangen 208a–n zugeordnet, und zwar auf
Basis einer Reihe vorbestimmter Kriterien, darunter der Identität des Kunden,
den Bedürfnissen
des Kunden, den Ansprüchen
der Kontaktzentrale, der momentanen Länge der Warteschlangen der
Kontaktzentrale, dem Wert des Kunden und der Fähigkeit des Agenten, die zur
richtigen Abwicklung des Kontakts erforderlich ist. Agenten, die
zur Abwicklung von Kontakten zur Verfügung stehen, werden auf Basis
der Fähigkeiten,
die sie besitzen, den Agentenwarteschlangen 212a–n zugeordnet.
Ein Agent kann mehrere Fähigkeiten
besitzen und kann somit mehreren Agentenwarteschlangen 212a–n gleichzeitig
zugeordnet sein. Darüber
hinaus ist es möglich, dass
ein Agent unterschiedliche Niveaus an Fachkenntnissen besitzt (z.
B. Fähigkeitsniveaus
1 – N
bei einer bestimmten Konfiguration, oder lediglich primäre Fähigkeiten
und sekundäre
Fähigkeiten
bei einer anderen Konfiguration), und somit kann er unterschiedlichen
Agentenwarteschlangen 212a–n mit unterschiedlichen Kenntnisniveaus
zugeordnet sein. Die Anrufvektorisierung ist beschrieben in dem
Führer
Communications System Generic 3 Call Vectoring/Expert Agent Selection
(EAS) für
DEFINITY, AT&T-Publikation
Nr. 555-230-520 (Ausgabe 3, November 1993). Die auf Fähigkeiten
basierende ACD ist detaillierter in US-Patenten 6,173,053 und 5.206,903 beschrieben.
-
Das
Kontaktmanagementsystem 228 stellt vorzugsweise eine modifizierte
Form eines AvayaTM-Produkts Customer Resource
ManagementTM dar (z. B. des Basic Call Management
System oder BCMSTM, des Call Management
System oder CMSTM und des Operational AnalystTM) und erfasst detailliert Informationen
zu eingehenden und/oder ausgehenden Kontakten in der Kontaktzentrale.
Das Kontaktmanagementsystem 228 ist entweder in dem Hauptspeicher
oder in einem peripheren Speicher (z. B. Platte, CD-ROM, usw.) oder
auf irgendeinem anderen computerlesbaren Medium der Zentrale 100 gespeichert.
-
Das
Kontaktmanagementsystem 228 umfasst ein Zeitzonenauswertungs-Teilsystem 250 zum
Aktualisieren von Datenstrukturen wie etwa Fakten- und Dimensionstabellen
zum Berücksichtigen
der Auswirkungen von Zeitzonen. Das Auswertungs-Teilssystem 250 kombiniert
Datum und Zeit in einer einzigen Dimension. Bei einer Konfiguration
ist die Datumsdimension zu einer kombinierten Dimension aus Datum/Zeitzone
erweitert, welche einen Datumsschlüssel umfasst, der die Zeit
bis auf eine gewählte
Auflösung
(z. B. Minute) genau identifiziert, und zwar in Bezug auf eine ausgewählte Startdatum-
und Startzeitvereinbarung (z. B. UTC seit 1970), sowie einen Zeitzonenschlüssel mit
einer Mehrzahl von Werten, die einer Mehrzahl von ausgewählten Zeitzonen
entsprechen. Die Kombination kommt mehreren Interpretationen des
gleichen Datumsschlüssels
für mehrere
Zeitzonen gleich. Die Faktentabellen nutzen nur einen Satz von Schlüssel (vorzugsweise
auf UTC-Basis), nämlich
den Datumsschlüssel
(vorzugsweise UTC-Minuten seit 1970), einen Zeitschlüssel (z.
B. 0 bis 59 Sekunden) und vorzugsweise einen UTC- basierten Datumszeitschlüssel (üblicher
Datenbank-Datentyp Datum-Zeit). Die Dimensionen übersetzen in die spezifizierte
Zeitzone. Diese Konfiguration ermöglicht es dem Nutzer, eine
Zeitzone zur Verwendung beim Generieren gewünschter Auswertungen auszuwählen.
-
4 zeigt
ein Datenmodell, das von dem Auswertungs-Teilsystem 250 genutzt wird.
-
Die
ZeitzoneDim oder Zeitzone-Dimension 400 umfasst einen ZeitzoneSchlüssel oder
Zeitzonen-Primärschlüssel sowie
Attribute wie beispielsweise TimeZoneName oder Zeitzonenname und
TimeZonePrompt oder Zeitzoneneingabe. Der Zeitzonenname stellt den
Namen der Zeitzone unter Verwendung der Zeitzonen-ID-Benennungsvereinbarung
von Java zum Bezeichnen einer der mehreren hundert Zeitzonen dar,
die von der Programmiersprache Java erkannt werden, und die Zeitzoneneingabe
ist der Name für
die Zeitzone, wie er für
den Nutzer der Auswertung erscheint, wenn dieser aufgefordert wird,
eine Zeitzone in einer Spezifikation für die Auswertung auszuwählen. Diese
Tabelle beschreibt eine Zeitzone, für welche das System derart konfiguriert
ist, dass es eine Auswertung unterstützt. Jede Zeitzone, für welche
der Versatz zu Greenwich-Zeit, die Sommerzeitverschiebung und die
Zeitpunkte der Sommerzeitumstellung der ausgewählten Auflösung gemäß sind (z. B. eine Minute),
stellt einen Kandidaten für
diese Tabelle dar. Zeitzonen können
hinzugefügt
oder entfernt werden, während
das System läuft,
solange die Beziehung zu der Tabelle DatumZeitzoneDim aufrechterhalten
wird. Der Zeitzonenschlüssel
hat eine Mehrzahl von möglichen
Werten, die einer Mehrzahl unterschiedlicher Zeitzonen entsprechen.
Die Tabelle wird genutzt, um eine Liste mit Zeitzonen zu erstellen,
die für
eine Auswertungsspezifikation zur Verfügung stehen.
-
Die
Tabelle 404 MomentanDatumsSchlüssel (im engl. CurrentDateKey)
oder Schlüssel
für momentanes
Datum enthält
einen Datensatz, der den speziellen Datensatz in DatumZeitzoneDim
bezeichnet, welcher dem momentanen Datum und der momentanen Zeit
entspricht.
-
Die
Tabelle 408 PeriodeAuswahl oder Periodenauswahl umfasst
einen PeriodeAuswahlSchlüssel
oder Periodenauswahlschlüssel
sowie einen PeriodChoiceName oder Periodenauswahlnamen und listet
die Auswahlmöglichkeiten
für Spezifikationen
bezüglich
der Auswertungsperioden zum Erstellen von Auswertungsanforderungen
auf. Der Periodenauswahlschlüssel
ist derjenige Parameter, welcher die Auswahl einer Auswertungsperiode
für eine
Auswertung definiert, während
der Periodenauswahlname die Zeichenkette für die Periodenauswahl darstellt,
z. B. "heute" oder "Jahr bis dato".
-
Die
Tabelle 412 AuflösungsAuswahl
oder Auflösungsauswahl
listet die Auswahlmöglichkeiten
für Spezifikationen
der Auflösung
für die
Auswertung zum Erstellen von Auswertungsanforderungen auf. Sie umfasst den
AuflösungsAuswahlSchlüssel oder
Auflösungsauswahlschlüssel oder
den Parameter, der die Auswahl einer Auswertungsauflösung für eine Auswertung
definiert, sowie den GrainChoiceName oder Auflösungsauswahlnamen oder die
Zeichenkette für
die Auflösungsauswahl,
z. B. "Tag der Woche" oder "monatlicher Trend".
-
Die
DatumZeitzoneDim oder Datums-Zeitzone-Dimension 416 stellt
mehrere synonyme Darstellungen von Datum und Zeit in dem System
bereit, bis auf die gewählte
Auflösung
genau (z. B. eine Minute), und zwar für alle Zeitzonen, die für eine Auswertung
erforderlich sind. Bei einer Ausführungsform ist in dieser Tabelle
ein Datensatz für
jede Minute in der Geschichte des Systems und für jede Zeitzone, in welcher
eine Auswertung konfiguriert ist, vorhanden (d. h. 525.600 Datensätze für jedes
Jahr mit 365 Tagen für
jede konfigurierte Zeitzone in der Tabelle Zeitzone). Dadurch ist
es möglich,
sämtliche
Auswirkungen von Zeitzonen in einer Dimension festzuhalten, die
nicht nur die Auswirkungen unterschiedlicher Verschiebungen in Bezug
auf Greenwich-Zeit behandelt, sondern auch die Besonderheiten der
lokalen Sommerzeitregeln, sogar an den Umstellungstagen und sogar, wenn
sich Sommerzeitregeln historisch ändern. Jeder Datensatz in dieser
Dimensionstabelle wird auf mit diesem in Bezug stehende Datensätze in der
gleichen oder in anderen Dimensionstabellen zeigen, um die größeren Zeiteinheiten
(z. B. Wochen und Monate) zu beschreiben, zu welchen dieser Datensatz
gehört,
und um eine Navigation und Gruppierung entsprechend diesen größeren Zeiteinheiten
zu ermöglichen.
-
Die
Datum-Zeitzone-Dimension 416 kann eine große Anzahl
von Variablen umfassen, beispielsweise die nachfolgend aufgelisteten:
Der
Datumsschlüssel
oder Datumsschlüssel
stellt eine ganze Zahl dar, die einen bestimmten Zeitpunkt auf die Minute
genau in der Epoche bezeichnet. Sie ist gleich der ganzzahligen
Anzahl von UTC-Minuten seit 1970.
-
Der
ZeitzoneSchlüssel,
ein Fremdschlüssel,
wurde bereits beschrieben.
-
Das
Attribut FullDateTime oder vollständige Datumszeit stellt das
vollständige
Datum vom Jahr bis auf die Auflösung
der Datenbank genau, z. B. Sekunde oder Millisekunde, für den momentanen
Zeitpunkt in der ausgewählten
Zeitzone dar, welcher als ein Datumszeit-Datentyp gespeichert wird.
Es wird bei Datumszeit-Bereichsvergleichen sowie für standortabhängige Darstellungen
mit Datum und Zeit, einschließlich
der Monatsnamen und der Wochentage, genutzt.
-
Der
DaylightSavingInd oder Sommerzeit-Indikator ist ein Merker, welcher
anzeigt, dass der momentane Zeitpunkt in der ausgewählten Zeitzone
in der Periode liegt, in der die Sommerzeit gilt. Er kann mit dem Zeitzonenschlüssel genutzt
werden, um eine alternative Abkürzung
für die
Zeitzone auszuwählen.
-
Der
UTCOffsetString oder die UTC-Versatz-Zeichenkette stellt für den momentanen
Zeitpunkt in der ausgewählten
Zeitzone die momentane Verschiebung in Bezug auf die UTC dar.
-
Year
bedeutet das Jahr, ausgedrückt
als eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone.
-
MonthOfYear
oder Monat des Jahres ist der Monat in dem Jahr, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone.
-
WeekOfYear
oder Woche des Jahres ist die Woche in dem Jahr, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone.
-
MonthDayOfYear
ist der Monat und der Tag in dem Jahr, ausgedrückt als eine einzige Zahl,
für den momentanen
Zeitpunkt in der ausgewählten
Zeitzone.
-
DayOfYear
oder Tag des Jahres stellt den Tag in dem Jahr dar, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone.
-
DayOfMonth
oder Tag des Monats stellt den Tag in dem Monat dar, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone.
-
DayOfWeek
oder Tag der Woche stellt den Tag in der Woche für den momentanen Zeitpunkt
in der ausgewählten
Zeitzone dar, ausgedrückt
als eine Zahl.
-
RelativeDayOfWeek
oder relativer Tag der Woche stellt den relativen Tag (Ordnungszahl)
der Woche dar, ausgedrückt
als eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone.
-
HourOfDay
oder Stunde des Tages stellt die volle Stunde an dem Tag, ausgedrückt als
eine Zahl, für den
momentanen Zeitpunkt in der ausgewählten Zeitzone dar.
-
HalfHourOfDay
stellt die halbe Stunde der Uhrzeit an dem Tag, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone dar.
-
QuarterHourOfDay
stellt die Viertelstunde der Uhrzeit an dem Tag, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone dar.
-
MinuteOfHour
stellt die Minute der Uhrzeit in der Stunde, ausgedrückt als
eine Zahl, für
den momentanen Zeitpunkt in der ausgewählten Zeitzone dar.
-
ThisYearKey
stellt den DatumsSchlüssel
für den
Beginn des Jahres dar, welches den momentanen Zeitpunkt enthält, und
zwar in der ausgewählten
Zeitzone.
-
ThisMonthKey
stellt den DatumsSchlüssel
für den
Beginn des Monats dar, welcher den momentanen Zeitpunkt enthält, und
zwar in der ausgewählten
Zeitzone.
-
ThisWeekKey
stellt den DatumsSchlüssel
für den
Beginn der Woche dar, welche den momentanen Zeitpunkt in der ausgewählten Zeitzone
enthält.
-
ThisDayKey
stellt den DatumsSchlüssel
für heute
dar, d. h. für
den Beginn des Tages, welcher den momentanen Zeitpunkt enthält, und
zwar in der ausgewählten
Zeitzone.
-
ThisMin60IntervalKey
stellt den DatumsSchlüssel
für die
augenblickliche Stunde dar, d. h. für den Beginn des 60-Minuten-Intervalls,
das den momentanen Zeitpunkt enthält, und zwar in der ausgewählten Zeitzone.
-
ThisMin30IntervalKey
stellt den DatumsSchlüssel
für die
momentane halbe Stunde dar, d. h. für den Beginn des 30-Minuten-Intervalls,
das den momentanen Zeitpunkt enthält, und zwar in der ausgewählten Zeitzone.
-
ThisMin15IntervalKey
stellt den DatumsSchlüssel
für die
momentane Viertelstunde dar, d. h. für den Beginn des 15-Minuten-Intervalls,
das den momentanen Zeitpunkt enthält, und zwar in der ausgewählten Zeitzone.
-
PrevYearKey
stellt den DatumsSchlüssel
für den
Beginn des Jahres dar, welches dem Jahr vorausgegangen ist, das
den momentanen Zeitpunkt in der ausgewählten Zeitzone enthält.
-
PrevMonthKey
stellt den DatumsSchlüssel
für den
Beginn des Monats dar, welcher dem Monat vorausgegangen ist, der
den momentanen Zeitpunkt in der ausgewählten Zeitzone enthält.
-
PrevWeekKey
stellt den DatumsSchlüssel
für den
Beginn der Woche dar, welche der Woche vorausgegangen ist, die den
momentanen Zeitpunkt in der ausgewählten Zeitzone enthält.
-
PrevDayKey
stellt den DatumsSchlüssel
für gestern
dar, d. h. für
den Beginn des Tages, der dem Tag vorausgegangen ist, welcher den
momentanen Zeitpunkt in der ausgewählten Zeitzone enthält.
-
Prev60IntervalKey
oder Schlüssel
für das
Intervall der vergangenen 60 Minuten stellt den DatumsSchlüssel für die vorausgegangene
Stunde dar, d. h. für
den Beginn des 60-Minuten-Intervalls, welches dem 60-Minuten-Intervall
vorausgegangen ist, das den momentanen Zeitpunkt in der ausgewählten Zeitzone
enthält.
-
Prev30IntervalKey
oder Schlüssel
für das
Intervall der vergangenen 30 Minuten stellt den DatumsSchlüssel für die vergangene
halbe Stunde dar, d. h. für
den Beginn des 30-Minuten-Intervalls, das dem 30-Minuten-Intervall
vorausgegangen ist, welches den momentanen Zeitpunkt in der ausgewählten Zeitzone
enthält.
-
Prev15IntervalKey
oder Schlüssel
für das
Intervall der vergangenen 15 Minuten stellt den DatumsSchlüssel für die vergangene
Viertelstunde dar, d. h. für
den Beginn des 15-Minuten-Intervalls, das dem 15-Minuten-Intervall
vorausgegangen ist, welches den momentanen Zeitpunkt in der ausgewählten Zeitzone
enthält.
-
NextYearKey
stellt den DatumsSchlüssel
für den
Beginn des Jahres dar, das dem Jahr folgt, welches den momentanen
Zeitpunkt in der ausgewählten
Zeitzone enthält.
-
NextMonthKey
stellt den DatumsSchlüssel
für den
Beginn des Monats dar, der auf den Monat folgt, welcher den momentanen
Zeitpunkt in der ausgewählten
Zeitzone enthält.
-
NextWeekKey
stellt den DatumsSchlüssel
für den
Beginn der Woche dar, welche auf die Woche folgt, die den momentanen
Zeitpunkt in der ausgewählten
Zeitzone enthält.
-
NextDayKey
stellt den DatumsSchlüssel
für morgen
dar, d. h. für
den Beginn des Tages, welcher auf den Tag folgt, der den momentanen
Zeitpunkt in der ausgewählten
Zeitzone enthält.
-
NextMin60IntervalKey
stellt den DatumsSchlüssel
für die
nächste
Stunde dar, d. h. für
den Beginn des 60-Minuten- Intervalls,
welches auf das 60-Minuten-Intervall folgt, das den momentanen Zeitpunkt
in der ausgewählten
Zeitzone enthält.
-
NextMin30IntervalKey
stellt den DatumsSchlüssel
für die
nächste
halbe Stunde dar, d. h. für
den Beginn des 30-Minuten-Intervalls,
welches auf das 30-Minuten-Intervall folgt, das den momentanen Zeitpunkt
in der ausgewählten
Zeitzone enthält.
-
NextMin15IntervalKey
stellt den Datumsschlüssel
für die
nächste
Viertelstunde dar, d. h. für
den Beginn des 15-Minuten-Intervalls,
welches auf das 15-Minuten-Intervall folgt, das den momentanen Zeitpunkt
in der ausgewählten
Zeitzone enthält.
-
Counter
stellt einen Zähler
dar, der auf eins gesetzt ist. Er wird bei der Verarbeitung der
Tatsache genutzt, dass der vorliegende Datensatz existiert.
-
Mit
dem vorstehenden Satz von Datenstrukturen kann eine recheneffiziente
und effektive Möglichkeit zum
Abbilden von Benutzerabfragen auf ausgewählte Zeitpunkte, ausdrückt als
Datumsschlüsselwerte,
bereitgestellt werden, und in einer ausgewählten Zeitzone kann zu damit
in Verbindung stehenden Zeitpunkten navigiert werden. Betrachten
wir das vorstehende Abbildungsmerkmal, so sind die Attribute Year,
MonthOfWeek, WeekOfYear, MonthDayOfYear, DayOfYear, DayOfMonth,
DayOfWeek, RelativeDayOfWeek, HourOfDay, QuarterHourOfDay und MinuteOfHour
als eine Zahl ausgedrückt,
die sich leicht auf einen Zeitausdruck eines Benutzers abbilden
lässt.
Beispielsweise kann "13:00,
01. April 2005" auf
das Attribut MonthOfYear mit einem Wert 4 abgebildet werden, auf
das Attribut DayOfMonth mit einem Wert 1 und auf das Attribut HourOfDay
mit einem Wert 13. Diese Abbildung ermöglicht es, den entsprechenden
Datensatz in der Tabelle DatumZeitzoneDim zu lokalisieren. Wenn
der Datensatz lokalisiert ist, wird eine Reihe von Zeigern, ausgedrückt als
DatumsSchlüssel-Werte, bereitgestellt.
Die Zeiger verweisen auf andere Datensätze in der Tabelle, die den
DatumsSchlüssel-Werten
entsprechen. Diese Zeiger umfassen die Schlüssel ThisYearKey, ThisMonthKey,
ThisWeekKey, ThisDayKey, ThisMin60IntervalKey, ThisMin30IntervalKey,
ThisMin15IntervalKey, PrevYearKey, PrevMonthKey, PrevWeekKey, PrevDayKey,
Prev60IntervalKey, Prev30IntervalKey, Prev15IntervalKey, NextYearKey,
NextMonthKey, NextWeekKey, NextDayKey, NextMin60IntervalKey, NextMin30IntervalKey
und NextMin15IntervalKey. Diese DatumsSchlüssel-Datenstrukturen ermöglichen
es dem Auswertungs-Teilsystem 250,
sich mit geringem Verarbeitungsaufwand in einer ausgewählten Zeitzone
in der Zeit nach vorn und nach hinten zu bewegen.
-
Das
Zeitauswertungs-Teilsystem 250 kann verschiedene Rechenmodule
zum Zwecke der Besetzung der Datenstrukturen aus 4 umfassen.
Bei einer bestimmten Ausführungsform
aktualisiert das Rechenmodul, welches als LoadDateKey (LadeDatumsSchlüssel) bezeichnet
wird, die Tabelle MomentanDatumsSchlüssel jede Minute mit dem momentanen
DatumsSchlüssel.
Der momentane DatumsSchlüssel-Wert
stellt die augenblickliche Anzahl der seit 01. Januar 1970, 00:00:00
GMT vergangenen Minuten dar. Ein weiteres Modul, das als LoadDTZ
(LadeDatumZeitzone) bezeichnet wird, lädt Datum-Zeitzone-Daten in die Tabelle DatumZeitzoneDim.
Dieses Modul generiert die Datum-Zeit-Daten für jede Minute in dem spezifizierten
Datumszeitbereich in jeder spezifizierten Zeitzone und lädt diese
in die Tabelle DatumZeitzoneDim. Wenn die Kontaktzentrale konfiguriert
wird, können
die Nutzer die Zeitzonen sowie ihren Tag der Woche für den Beginn
spezifizieren. Das Modul LoadDTZ wird diese Spezifikationen nutzen,
um die korrekten Datumszeit-Daten für den Datumsbereich der Auswertung,
der vorbelegt werden soll, zu generieren, und wird diese in die
Tabelle DatumZeitzoneDim laden. Der Nutzer kann den Vorgriffs-Datumsbereich
auf einen benutzerspezifischen Wert festlegen oder kann den Standardwert
nehmen, welcher 90 Tage ab der momentanen Datumszeit beträgt. Schließlich werden
die minimale Auswertungs-Datumszeit
(der DatumsSchlüssel-Wert
für die
momentane Datumszeit), die maximale Auswertungs-Datumszeit (der
DatumsSchlüssel-Wert
für den
maximalen DatumsSchlüssel-Wert innerhalb
des Auswertungs-Datumsbereichs) sowie der Starttag jeder Woche und
der Zeitzonenname als Konfigurationsdaten für die Datumszeit-Daten der
Auswertung in einer (nicht gezeigten) Konfigurationstabelle aufgezeichnet.
Inzwischen werden die Zeitzonendaten in die Tabelle DatumZeitzoneDim
eingefügt.
-
Um
eine Darstellung in herkömmlichen
Datenmodelldiagrammen zu ermöglichen,
kann die Tabelle DatumZeitzoneDim in einem einzigen Auswertungsabfrageobjekt
mit der Tabelle Zeitzone logisch kombiniert werden, um eine Pseudodatumsdimension
(DatumsPseudoDim) bereitzustellen, welche der Zeitzone entspricht, die
durch die vom Benutzer ausgewählten
Auswertungsparameter spezifiziert werden. Die Datenstruktur wird auf
der Auswertungsebene als ein Abfrageobjekt realisiert, wobei die
physischen Tabellen DatumZeitzoneDim und ZeitzoneDim mit Hilfe des
durch die Auswertung spezifizierten Wertes für den ZeitzoneSchlüssel zusammengefasst
werden. DatumsPseudoDim kann für
den Nutzer auch Abfrageobjekte mit nur dem Datum bereitstellen,
indem die Zeit verborgen wird. DatumsPseudoDim stellt keine physische
Tabelle in der Datenbank dar. Vielmehr repräsentiert die Struktur das logische
Verhalten der eigentlich zugrunde liegenden physischen Tabellen.
-
Die
konzeptionelle Grundlage für
DatumsPseudoDim als zweckmäßige schematische
Darstellung für DatumZeitzoneDim
ist in 5 dargestellt.
-
Nehmen
wir auf 5 Bezug, so sind die verschiedenen
Dimensionstabellen typisch für
Dimensionstabellen, die in einem Kontaktzentralen-Auswertungssystem
genutzt werden. Die Dimensionstabelle 500 DatumsPseudoDim
entspricht, wie erwähnt,
einem Teil der Tabelle 416 DatumZeitzoneDim für den von
dem Nutzer ausgewählten
Wert des Zeitzonenschlüssels.
Sie enthält
den DatumsSchlüssel
als einen Primärschlüssel sowie
die vorstehend mit Bezug auf die Dimensionstabelle 416 DatumZeitzoneDim
diskutierten Attribute. Die Tabellen aus 5 stellen
exemplarische Datenstrukturen dar, die sich auf DatumsPseudoDim
beziehen, um den Beginn und das Ende von Agenten-Arbeitssitzungen
aufzuzeichnen (Perioden, während
welcher Agenten in dem System eingeloggt sind). Da die Tabelle DatumsPseudoDim
keinen Zeitzonenschlüssel
enthält,
kann sie genutzt werden, um das Start- und das Enddatum, die in
der Tabelle AgentSitzungsFakten 512 aufgelistet sind, darzustellen,
welches unabhängig
von der Zeitzone ist. Der Agent wird als zugewiesen erkannt, um
Kontakte entgegenzunehmen, die von der Wegelenkungskonfiguration
weitergeleitet werden.
-
Weitere
mit der Dimensionstabelle DatumsPseudoDim 500 verknüpfte Tabellen
sind die Dimensionstabelle AgentDim 504, die Dimensionstabelle
ZeitDim 508 und die Tabelle AgentSitzungsFakten 512.
-
Die
Dimensionstabelle AgentDim 504 listet verschiedene Attribute
der Kontaktzentralenagenten auf und umfasst einen AgentSchlüssel oder
Agentenschlüssel
als einen Primärschlüssel. Dieser
Schlüssel
stellt einen vom System generierten eindeutigen Schlüssel dar,
welcher einen Agenten identifiziert. Die Attribute in der Tabelle 504 umfassen:
FirstName
stellt den Vornamen des identifizierten Agenten dar.
MiddleName
stellt den zweiten Vornamen des identifizierten Agenten dar.
LastName
stellt den Nachnamen des identifizierten Agenten dar.
FullName
oder voller Name bezeichnet den vollständigen Namen des identifizierten
Agenten.
-
Die
Tabelle ZeitDim 508 listet die verschiedenen Attribute
der Kontaktzentralenagenten auf und umfasst einen Zeitschlüssel als
einen Primärschlüssel. Dieser
Schlüssel
stellt einen vom System generierten eindeutigen Schlüssel für die Zeit
in Sekunden innerhalb der Viertelstunde dar. Die Attribute in der
Tabelle 508 umfassen:
SecondOfQtrHr ist die Anzahl
der Sekunden seit dem Beginn der Viertelstunde.
MinuteOfQtrHr
ist die Zahl für
die Minute, in welcher diese Sekunde liegt.
SecondOfMinute
ist die Anzahl der Sekunden Modulo 60 seit dem Beginn der Viertelstunde.
MMSSFor00
stellt die entsprechende Zeit auf Stundenbasis im Format mm-ss (Minuten-Sekunden)
für eine Viertelstunde
dar, die bei 00:00 beginnt (d. h. eine Zeit in der ersten Viertelstunde).
MMSSFor15
stellt die entsprechende Zeit auf Stundenbasis im Format mm-ss für eine Viertelstunde
dar, die bei 15:00 beginnt (d. h. eine Zeit in der zweiten Viertelstunde).
MMSSFor30
stellt die entsprechende Zeit auf Stundenbasis im Format mm-ss für eine Viertelstunde
dar, die bei 30:00 beginnt (d. h. eine Zeit in der dritten Viertelstunde).
MMSSFor45
stellt die entsprechende Zeit auf Stundenbasis im Format mm-ss für eine Viertelstunde
dar, die bei 45:00 beginnt (d. h. eine Zeit in der vierten Viertelstunde).
-
Die
Tabelle 512 listet verschiedene Attribute für die Kontaktzentralenagenten
auf und umfasst einen AgentSitzungsFakten oder Agentensitzungsschlüssel als
einen Primärschlüssel. Dieser
Schlüssel
stellt einen vom System generierten eindeutigen Schlüssel für die Zuordnung
eines Agenten zu einem Sitzungsereignis während eines Zeitintervalls
dar. Die Attribute in der Tabelle 512 umfassen:
AgentKey
ist ein Fremdschlüssel
(FK – Foreign
Key), der einen bestimmten Agenten identifiziert.
StartDateKey
(ein Fremdschlüssel)
ist eine ganze Zahl, die ein bestimmtes Viertelstunden-Intervall
in einer jeweiligen Epoche identifiziert.
StartTimeKey (ein
Fremdschlüssel)
stellt einen systemgenerierten, eindeutigen Schlüssel für die Zeit in Sekunden innerhalb
der Viertelstunde dar.
EndDateKey (ein Fremdschlüssel) stellt
eine ganze Zahl dar, die ein bestimmtes Viertelstunden-Intervall
in einer jeweiligen Epoche identifiziert.
EndTimeKey (ein Fremdschlüssel) stellt
einen systemgenerierten, eindeutigen Schlüssel für die Zeit in Sekunden innerhalb
der Viertelstunde dar.
-
Bei
Durchsicht der Tabellen werden eine Reihe logischer Beziehungen
offensichtlich. Der AgentSchlüssel,
der Primärschlüssel in
Tabelle 504, und der ZeitSchlüssel, der Primärschlüssel in
Tabelle 508, werden in Tabelle 512 als Fremdschlüssel genutzt.
Der StartDateKey und der EndDateKey in Tabelle 512 stellen zwei
Instanzen des DatumsSchlüssels,
des Primärschlüssels in
Tabelle 500, dar.
-
Ein
Beispiel soll genutzt werden, um die Unterschiede zwischen den Dimensionsmodellen
für Kontaktzentralen
gemäß dem Stand
der Technik und dem Dimensionsmodell gemäß der vorliegenden Erfindung
zu veranschaulichen. Nehmen wir an, dass eine Agentensitzungsfakten-Tabelle
die Zeitperioden beschreibt, während
welcher Agenten über
einen oder mehrere Accounts in das System eingeloggt sind. Eine
einzelne Sitzung beginnt, wenn sich ein Agent über irgendeinen Account (logid)
in das System einloggt, und endet, wenn sich ein Agent an allen
Accounts ausloggt. Ferner sei angenommen, dass diese Fakten zu einer
Sitzung in Bezug auf drei Zeitzonen beschrieben werden sollen, nämlich den
Zeitzonen A, B und C, um dem Nutzer zu ermöglichen, nach seinem Ermessen
eine der drei auszuwählen.
-
Mit
Bezug auf 3 werden die Datenstrukturen
gemäß dem Stand
der Technik dargestellt. Die Faktentabelle 304 gemäß dem Stand
der Technik enthält
einen Datensatz für
jede Sitzung, welcher den beteiligten Agenten (durch Bezug auf die Agentendimension 324),
den Beginn und das Ende der Sitzung (durch mehrere Bezüge auf die
Datumsdimension und die Zeitdimension für den Tag, 312 bzw. 308,
gemäß dem Stand
der Technik) angibt. Um drei Zeitzonen zu unterstützen, z.
B. A, B und C, sind gemäß dem Stand
der Technik zwölf separate
Spalten erforderlich, nämlich:
jeweils drei für
das Startdatum (326a, 326b und 326c),
die Startzeit (328a, 328b und 328c),
das Enddatum (330a, 330b und 330c) und
die Endzeit (336a, 336b und 336c) zuzüglich dreier
separater Datum-Zeit-Spalten
in der Faktentabelle. Wie zu erkennen ist, würde jede zusätzliche Zeitzone
das Hinzufügen
von vier zusätzlichen
Spalten zu der Faktentabelle gemäß dem Stand
der Technik erfordern, und ein Ändern
irgendeiner der Zeitzonen würde
ein Umschreiben sämtlicher
Datensätze
in der Faktentabelle gemäß dem Stand
der Technik erfordern. Bei dieser Konfiguration gemäß dem Stand
der Technik sind die Datumszeit-Beschreibungen
auf zwei Dimensionen aufgeteilt, nämlich das Datum mit 1095 Datensätzen (yyyy-mm-dd
für 3 Jahre)
und die Zeit mit 86.400 Datensätzen
(hh-mm-ss für
24 Stunden).
-
6 beschreibt
das/die gleiche(n) Ereignis(se) mit Hilfe der Datenstrukturen gemäß der vorliegenden
Erfindung. Die Datumspseudodimension 500 stellt die Kombination
aus DatumZeitzoneDim 416 und ZeitzoneDim 400 für eine bestimmte
Auswahl einer Zeitzone dar. In DatumZeitzoneDim sind mehrere Zeitzonen konfiguriert,
wobei diese durch unterschiedliche ZeitzoneSchlüssel-Werte oder werte des Zeitzonenschlüssels unterschieden
werden, wie bereits beschrieben worden ist. Jeder Zeitpunkt, der
durch den DatumsSchlüssel oder
Datumsschlüssel
identifiziert wird, wird also synonym in mehreren Zeitzonen beschrieben.
Alle zeitzonenabhängigen
Datumszeitinformationen sind daher in der Datumspseudodimension
konzentriert, während
die Zeitkomponenten mit kleinerer Auflösung, die von der Zeitzone
unabhängig
sind, in der Zeitdimension 608 enthalten sind. Bei einer
Ausführungsform
ist die Datumpseudodimension bis auf die Minute genau, und die Zeitdimension
enthält
daher nur die 60 Sekunden innerhalb jeder Minute. Bei einer anderen
Ausführungsform
kann die Datumspseudodimension nur bis auf die Viertelstunde genau
sein, wobei die Zeitdimension die 900 Sekunden innerhalb jeder Viertelstunde
beschreibt. Bei einer noch weiteren Ausführungsform, die für einen
eingeschränkten
Satz von Zeitzonen geeignet ist, kann die Trennung der Informationen
zwischen der Datumspseudodimension und der Zeitdimension bei der
Stunde liegen, wobei die Zeitdimension die 3600 Sekunden jeder Stunde
beschreibt.
-
Da
alle zeitzonenabhängigen
Komponenten eines Datum-Zeit-Wertepaares
nun in einer Tabelle enthalten sind, ist die Realisierung von Faktentabellen
bei der vorliegenden Erfindung unabhängig von der Anzahl der unterstützten Zeitzonen.
In 6 enthält
die Faktentabelle 604 lediglich einen Bezug für jedes
Datum- oder Zeit-Datenelement, nämlich
einen Startdatumsbezug 612, einen Startzeitbezug 614,
einen Enddatumsbezug 616 und einen Endzeitbezug 618.
Wie zu erkennen ist, ist für
Hinzufügungen
oder Modifikationen konfigurierter Zeitzonen daher keine Erweiterung
oder Umschreibung irgendwelcher Faktentabellen erforderlich.
-
Nachfolgend
wird ein spezielles Beispiel dargestellt, welches demonstriert,
wie die verschiedenen Tabellen mit Daten besetzt werden und wie
diese Daten genutzt werden, um zeitzonenspezifische Auswertungen anhand
von zeitzonenneutralen Faktentabellen zu erstellen. Die Daten veranschaulichen
den komplizierten Fall, bei dem sich ein interessierendes Intervall
in einer Zeitzone, aber nicht in anderen Zeitzonen, über das Ereignis
der Umstellung auf Sommerzeit im Frühling hin erstreckt, und bei
dem nicht alle Zeitzonen in Bezug aufeinander auf Grenzen mit vollstündigem Versatz
liegen. Es veranschaulicht außerdem
eine Ausführungsform,
bei welcher für
Auflösung
der Datumsdimension 15 Minuten ausgewählt ist, um z. B. Indien und
Katmandu Rechnung zu tragen.
-
Tabelle
1 zeigt, wie die Tabelle ZeitzoneDim 400 besetzt werden
kann, um drei Zeitzonen zu identifizieren, die eindeutig durch ihre
ZeitzoneSchlüssel-Werte
(1, 2 und 3) identifiziert werden und die in den Auswertungen durch
ihre TimeZonePrompt-Werte (UTC, Denver und Pune) ausgewiesen werden.
UTC ist grundsätzlich
das gleiche wie die Greenwich Mean Time (GMT). Denver soll die Auswirkungen
der Sommerzeit veranschaulichen (mit Versätzen von GMT-0700 und GMT-0600),
und Pune soll die Auswirkungen der nicht-vollstündigen Grenze (mit einem Versatz
von GMT+0530) veranschaulichen.
-
-
Tabelle
2 zeigt, wie die Tabelle DatumZeitzoneDim 416 besetzt werden
kann, um 4 getrennte Zeitpunkte (identifiziert durch ihren DatumsSchlüssel) zu
beschreiben, und zwar von jeder der drei Zeitzonen aus gesehen (identifiziert
durch die ZeitzonenSchlüssel-Werte
entsprechend den Datensätzen,
die bereits oben in ZeitzoneDim konfiguriert sind). Dadurch ergeben
sich 4 × 3
= 12 Datensätze
mit Daten in der Datum-Zeitzone-Dimension.
Bei dieser Ausführungsform,
die eine Auflösung
von 15 Minuten veranschaulicht, sind zwei zusätzliche Spalten enthalten,
nämlich
Zeit-Präfix
und Zeit-Suffix,
um den Aufbau eines typischen Zeitformats für einen Tag in den Auswertungen
zu ermöglichen,
wie nachstehend beschrieben ist.
-
-
-
Tabelle
3 zeigt, wie die Tabelle ZeitDim 508 besetzt werden kann,
und zwar für
den Fall, dass die Datumsauflösung
15 Minuten beträgt.
In diesem Fall wären
900 Datensätze
vorhanden, die den 900 Sekunden in jedem Viertelstundenintervall
entsprechen, und wären
eindeutig durch ihre ZeitSchlüssel-Werte
von 0 bis 899 bezeichnet. Der Kürze
halber sind in Tabelle 3 nur 4 solche Datensätze enthalten. Jeder Datensatz
in ZeitDim beschreibt bei dieser Ausführungs form eine bestimmte Sekunde
in einem willkürlichen
Viertelstundenintervall. Da es in einer Stunde vier mögliche Viertelstundenintervalle
gibt, beschreibt jeder Datensatz effektiv vier unterschiedliche
Werte für
die Stelle der > Minuten
in einem typisch formatierten Zeitstempel (hh:mm:ss). Somit liefert
diese Ausführungsform
vier Beschreibungen für
den Teil mm:ss des Zeitstempels, wobei der Präfix hh: und der Suffix AM/PM
aus den Spalten Zeit-Präfix
und Zeit-Suffix aus den in der vorstehenden Tabelle 2 dargestellten
DatumZeitzoneDim-Tabellen bereitgestellt werden müssen.
-
-
Tabelle
4 zeigt, wie die Tabelle AgentSitzungsFakten 512 besetzt
werden würde,
um zwei verschiedene Sitzungen aufzuzeichnen (die durch ihre AgentSitzungsSchlüssel-Werte
identifiziert werden), welche von dem gleichen Agenten (eindeutig
durch den Agentenschlüssel
identifiziert) ausgeführt
werden. Sitzung Nummer 1 beginnt in/während der letzten Sekunde (Nummer
899) eines bestimmten Viertelstundenintervalls (Nummer 18541965)
und endet in/während
der zweiten Sekunde (Nummer 1, gezählt von 0 an) des folgenden
Viertelstundenintervalls (Nummer 18541980 = 18541965 + 15). Somit
ist die Sitzung Nummer 1 nur 2 Sekunden lang und erstreckt sich über eine
Viertelstundengrenze hinweg. In der Zeitzone Denver stellt diese
spezielle Grenze außerdem
den Zeitpunkt dar, an welchem die Zeit auf Sommerzeit "vorspringt", von 2:00 AM auf
3:00 AM, während
in der Zeitzone Pune diese Grenze auf die ungewohnte Halbstundenzeit
2:30 PM fällt.
Die Sitzung Nummer 2 ist nahezu 9 Stunden lang und stellt in Denver
eine typische Arbeitszeitspanne an einem einzigen Tag dar. In Pune
wird es aber erscheinen, als begänne
und endete die gleiche Sitzung an unterschiedlichen Tagen. Alle
diese Komplexitäten
werden durch die Datums- und Zeitdimensionen behandelt, die zu einer einfachen
und effizienten Wiedergabe der Zeit in dieser Faktentabelle führen.
-
-
Die
folgenden Tabellen 5, 6 und 7 zeigen, wie die in der vorstehend
beschriebenen AgentSitzungsFakten-Tabelle enthaltenen Sitzungen
mit Hilfe einer einzigen Auswertungsdefinition, in welcher der Benutzer
eine der drei Zeitzonen spezifiziert, wiedergegeben werden. Jeder
Datensatz der Auswertungen repräsentiert
eine Sitzung, die durch einen bestimmten Datensatz der Tabelle AgentSitzungsFakten
beschrieben wird. Die Abbildung der Auswertungsspalten zurück in die
Tabellenspalten von AgentSitzungsFakten der Datenbank und die Datumszeit-Dimensionen
geschieht folgendermaßen:
Der Wert für
Sitzung, der in den Auswertungen gezeigt ist, stellt den AgentSitzungsSchlüssel-Wert
in der Tabelle AgentSitzungsFakten dar. Der Wert für Startdatum in
den Auswertungen stellt den Datumsteil der Spalte FullDateTime aus
der Tabelle DatumZeitzoneDim entsprechend dem Datensatz dar, dessen
DatumsSchlüssel
gleich dem StartDateKey-Wert in der Tabelle AgentSitzungsFakten)
ist und dessen ZeitzoneSchlüssel
dem TimeZonePrompt-Wert in der Tabelle ZeitzoneDim entspricht, wie
er von dem Nutzer der Auswertung gewählt wird. Der Wert für die Startzeit
in der Auswertung setzt sich zusammen aus einer der vier Spalten
MMSSFor00, MMSSFor15, MMSSFor30 oder MMSSFor45 aus dem Datensatz
in der Tabelle ZeitDim, für
welchen der ZeitSchlüssel
gleich dem StartTimeKey-Wert in der Tabelle AgentSitzungsFakten
ist. Die Auswahl zwischen den vier Spalten MMSSForXX wird bestimmt
durch den Wert der Spalte MinuteOfHour in der Tabelle DatumZeitzoneDim
für den
Datensatz, für
welchen der Datumsschlüssel
gleich dem StartDateKey-Wert in der Tabelle AgentSitzungsFakten
ist und für
den der ZeitzoneSchlüssel
dem TimeZonePrompt-Wert in der Tabelle ZeitzoneDim entspricht, wie
er von dem Benutzer der Auswertung gewählt wird. Dem Wert der angegebenen
Spalte MMSSForXX wird dann der Wert des Zeit-Präfix vorangestellt
und der Wert des Zeit-Suffix nachgestellt, und zwar aus dem gleichen
Datensatz der Tabelle DatumZeitzoneDim, d. h. demjenigen, für den der
DatumsSchlüssel
gleich dem StartDateKey-Wert in der Tabelle AgentSitzungsFakten
ist und für
den der ZeitzoneSchlüssel
dem TimeZonePrompt-Wert in der Tabelle ZeitzoneDim entspricht, wie
er von dem Nutzer der Auswertung ausgewählt wird. Die Werte für Enddatum
und Endzeit in den Auswertungen werden analog bestimmt (man ersetze
das Wort "Start" in den vorangegangenen
Zuordnungen durch "End"). Obgleich diese
Zuordnungen für
die 15-Minuten-Ausführungsform
in Worten ausgedrückt
möglicherweise
komplex erscheinen, liegen sie durchaus im Rahmen der Fähigkeiten
von SQL (Structured Query Language), die üblicherweise von kommerziell
verfügbaren
Datenbanken erkannt wird.
-
Wenn
der Nutzer der Auswertung die Zeitzone UTC auswählt, erscheinen die Werte aus
Tabelle 5. Diese zeigt, dass die Sitzung Nummer 1 von einer Sekunde
vor bis eine Sekunde nach 9:00 AM dauert und dass die Sitzung Nummer
2 am gleichen Tag beginnt und endet, nämlich am 4. April, wenn auch
unmittelbar vor Mitternacht.
-
-
Wenn
der Nutzer der Auswertung die Zeitzone Denver wählt, erscheinen die Werte aus
Tabelle 6. Da sich die Sitzung Nummer 1 in Denver über die
im Frühling
erfolgende Umstellung auf Sommerzeit hinweg erstreckt, beginnt die
Sitzung kurz vor 2:00 AM (Standardzeit) und endet unmittelbar nach
3:00 AM (Sommerzeit), sie ist aber dennoch nur 2 Sekunden lang.
Die Sitzung Nummer 2 sieht aus der Perspektive von Denver betrachtet
wie ein typischer Arbeitstag aus, der am gleichen Tag, nämlich dem
4. April, beginnt und endet.
-
-
Wenn
der Nutzer der Auswertung die Zeitzone Pune, Indien, wählt, erscheinen
die Werte aus Tabelle 7. Nun erstreckt sich die Sitzung Nummer 1 über die
Halbstunden-Markierung
bei 2:30 PM hinweg, und die Sitzung Nummer 2 beginnt und endet an
unterschiedlichen Tagen (4. April und 5. April).
-
-
Bei
der Betrachtung dieses Beispiels ist es wichtig zu verstehen, dass
die Auflösung
der Tabelle DatumZeitzoneDim nach Bedarf variiert werden kann, um
ausgewählten
Zeitzonen Rechnung zu tragen. Anders ausgedrückt kann jeder Datensatz der
Tabelle einer Minute, einer Viertelstunde, einer halben Stunde,
einer Stunde usw. entsprechen. Wie erwähnt beginnen manche Zeitzonen
an Grenzen mit 15-Minuten- oder 30-Minuten-Versatz in Bezug auf Greenwich. Die
meisten Zeitzonen beginnen an Grenzen mit einem Versatz von vollen
Stunden in Bezug auf Greenwich. Mit dem vorstehenden Beispiel kann
sogar Zeitzonen Rechnung getragen werden, die in Bezug auf Greenwich
Grenzen mit einem Viertelstunden- oder Halbstunden-Versatz aufweisen.
-
Wie
ferner zu erkennen sein wird, beeinflusst die Auflösung in
der Primärtabelle,
nämlich
der Tabelle DatumZeitzoneDim, die Auflösung in der Hilfstabelle ZeitDim.
Wenn also die Auflösung
in der primären
Tabelle eine Stunde beträgt,
erscheinen in der Hilfstabelle alle Sekunden innerhalb dieser Stunde.
Bei dem obigen Beispiel beträgt
die Auflösung
in der primären
Tabelle eine Viertelstunde; daher enthält die Hilfstabelle die innerhalb
einer Viertelstunde liegenden Sekunden. Wenn ein Nutzer die Minute
17 darstellen möchte,
wird durch die primäre
Tabelle das zweite 15-Minuten-Intervall
identifiziert, während
durch die Hilfstabelle der 2-Minuten-Punkt in diesem Intervall identifiziert
wird. In dem Beispiel sind in der Hilfstabelle für jeden Zeitschlüssel bereits
die vier Möglichkeiten
für jede
15-Minuten-Grenze eingefügt;
das heißt,
für den
Schlüssel
1 lauten die potenziell entsprechenden Zeitwerte 00:01, 15:01, 30:01
und 45:01.
-
Es
ist außerdem
zu erkennen, dass andere Wahlmöglichkeiten
für die
Auflösung
als 15 Minuten zu Ausführungsformen
führen
können,
die weniger komplex sind, als in dem vorstehenden Beispiel gezeigt
ist. Insbesondere wird bei der Auswahl einer Auflösung von
1 Minute oder einer Auflösung
von 1 Stunde das Wissen bezüglich
der Minutenkomponente entweder vollständig in der primären Tabelle
oder vollständig
in der sekundären
Tabelle abgelegt, anstatt dass eswie in dem Beispiel auf beide Tabellen
verteilt wird. Während
es verschiedene andere Gestaltungskompromisse gibt, welche die Auswahl
der Auflösung
beeinflussen können, z.
B. die Tabellengröße und die
Komplexität
des Algorithmus, besteht der zentrale Beitrag der vorliegenden Erfindung
darin, dass die Auflösung
derart gestaltet wird, dass für
den Satz von Zeitzonen, für
welchen das System ausgelegt wird, die gesamte Zeitzonenabhängigkeit
in der primären
Tabelle konzentriert wird und in der sekundären Tabelle keine Zeitzonenabhängigkeit
besteht. Eine Reihe von Varianten und Modifikationen der Erfindung
können
genutzt werden. Es wäre
möglich,
einige Merkmale der Erfindung vorzusehen, ohne dass andere vorgesehen
werden.
-
Beispielsweise
kann der Server und/oder die Vermittlungseinrichtung ein softwaregesteuertes
System darstellen, das eine Verarbeitungseinheit (CPU), einen Mikroprozessor
oder eine andere Art von digitalem Datenprozessor umfasst, der Software
ausführt,
oder eine anwendungsspezifische integrierte Schaltung (ASIC) wie
auch verschiedene Teile oder Kombinationen solcher Elemente. Der
Speicher kann einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM)
oder Kombinationen dieser und anderer Arten elektronischer Speichereinrichtungen
darstellen.
-
Bei
einer anderen alternativen Ausführungsform
werden Datumszeitwerte mit längerem
Intervall (gröberer
Auflösung)
für den
Datumsschlüssel
und das Attribut FullDateTime genutzt. Beispielsweise könnten die längeren Intervalle
15, 30 oder 60 Minuten anstatt der Ein-Minuten-Intervalle betragen.
-
Bei
einer anderen alternativen Ausführungsform
werden Datumszeitwerte mit kürzeren
Intervallen für den
Datumsschlüssel
und das Attribut vollständige
Datumszeit genutzt. Beispielsweise könnten kürzere Intervalle eine Sekunde
betragen.
-
Bei
einer weiteren Ausführungsform
als Variante zu allen vorangegangenen Ausführungsformen könnte die
Zeitdimension bis auf kleinere Auflösungen erweitert werden, beispielsweise
0,01 Sekunden oder 0,001 Sekunden.
-
Die
vorliegende Erfindung in ihren verschiedenen Ausführungsformen
umfasst Komponenten, Verfahren, Prozesse, Systeme und/oder Vorrichtungen
im Wesentlichen so, wie sie vorliegend dargestellt und beschrieben
worden sind, einschließlich
verschiedener Ausführungsformen,
Teilkombinationen und Teilgruppen derselben. Fachleute auf dem Gebiet
werden nach dem Verstehen der vorliegenden Offenbarung verstehen, wie
die vorliegende Erfindung auszuführen
und zu nutzen ist. Die vorliegende Erfindung umfasst in verschiedenen
Ausführungsformen
das Bereitstellen von Einrichtungen und Prozessen ohne solche Elemente,
die vorliegend oder in verschiedenen Ausführungsformen des Vorstehenden
nicht dargestellt und/oder beschrieben worden sind, darunter ohne
solche Elemente, die möglicherweise
bei früheren
Einrichtungen oder Prozessen verwendet worden sind, z. B. um das
Funktionsverhalten zu verbessern, eine einfache Realisierung zu
erreichen und/oder die Kosten der Realisierung zu reduzieren.
-
Die
vorstehende Diskussion der Erfindung wurde zum Zwecke der Veranschaulichung
und Beschreibung dargeboten. Mit dem Vorstehenden wird nicht beabsichtigt,
die Erfindung auf die vorliegend offenbarte(n) Form oder Formen
einzuschränken.
In der vorstehenden detaillierten Beschreibung sind beispielsweise
verschiedene Merkmale der Erfindung in einer oder mehreren Ausführungsformen
zusammengefasst, zum Zwecke der flüssigeren Offenbarung. Diese
Methode der Offenbarung darf nicht dahingehend interpretiert werden, dass
sie eine Intension widerspiegelt, dass die beanspruchte Erfindung
mehr Merkmale erfordere, als explizit in jedem Anspruch angeführt sind.
Wie die folgenden Ansprüche
reflektieren, beruhen die erfindungsgemäßen Aspekte vielmehr auf weniger
als allen Merkmalen einer einzigen vorstehend offenbarten Ausführungsform. Die
folgenden Ansprüche
seien hiermit also in diese detaillierte Beschreibung einbezogen,
wobei jeder Anspruch für
sich allein für
eine separate bevorzugte Ausführungsform
der Erfindung steht. Obgleich darüber hinaus die Beschreibung
der Erfindung die Beschreibung einer oder mehrerer Ausführungsformen
und bestimmter Varianten und Modifikationen umfasste, liegen auch
andere Varianten und Modifikationen innerhalb des Schutzumfangs
der Erfindung, wie sie zum Beispiel nach dem Verstehen der vorliegenden
Offenbarung im Rahmen der Fertigkeiten und Kenntnisse von Fachleuten
auf dem Gebiet liegen werden. Es wird beabsichtigt, Rechte zu erlangen,
die alternative Ausführungsformen
in dem gestatteten Umfang einschließen, darunter alternative,
austauschbare und/oder äquivalente
Strukturen, Funktionen, Bereiche oder Schritte zu den beanspruchten,
egal ob diese alternativen, austauschbaren und/oder äquivalenten
Strukturen, Funktionen, Bereiche oder Schritte vorliegend offenbart
sind oder nicht, und ohne die Absicht, etwaig patentierbare Erfindungsmerkmale öffentlich
zu überlassen.