-
Bereich der
Erfindung
-
Der
Bereich der Erfindung bezieht sich auf Kommunikationssysteme, und
speziell auf automatische Anschlussverteiler.
-
Hintergrund
der Erfindung
-
Automatische
Anrufverteiler (ACDs) sind bekannt. Derartige Systeme werden typischerweise
von Organisationen benutzt, um eine große Anzahl von Anrufern über das öffentliche
Telefonnetzwerk (PSTN) zu bedienen. Typischerweise werden ankommende
Anrufe zu einer allgemeinen Telefonnummer der Organisation gelenkt
und an Agenten aufgrund einiger Kriterien (z.B. Nichtbesetztzeit
des Agenten) verteilt.
-
Zusätzlich zum
Bearbeiten eingehender Anrufe können
ACDs auch ausgehende Anrufe verarbeiten. Typischerweise zeigt ein
Steuergerät
die Arbeitsbelastung seiner Agenten an. Wenn eine Arbeitsbelastung
durch empfangene Anrufe unter einen bestimmten Schwellwert fällt, kann
das Steuergerät beginnen,
ausgehende Anrufe zu initiieren.
-
Zusätzlich zum
Platzieren und Verteilen von Anrufen kann ein ACD auch auf Agentenendgeräten Dokumente
als einen Zusatz zum Bearbeiten von Anrufen identifizieren und anzeigen.
Im Falle der eingehenden Anrufe können die Anrufe zusammen mit dem
Erkennungsdienst der gewählten
Nummer (DNIS)- und/oder der automatischen Nummernerkennungs-(ANI-)Information
empfangen werden. ANI kann benutzt werden, um einen Anrufer zum
gleichen Zeitpunkt, an dem der Anruf an das ACD geliefert wird,
zu identifizieren bzw. zu erkennen. Das Steuergerät des ACD
kann die ANI-Information nutzen, um Kundenaufzeichnungen auf einem
Endgerät
des Agenten auszulesen und anzuzeigen, welcher ausgewählt ist,
um den Anruf zur gleichen Zeit, wenn der Anruf an den Agenten geliefert
wird, zu bearbeiten.
-
Zusätzlich kann
Textinformation auf einem Endgerät
des Agenten angezeigt werden, welche den Agenten durch eine Verkaufspräsentation
führt. Eine
DNIS-Information kann benutzt werden, um ein beabsichtigtes Anrufziel
zu identifizieren und eine geeignete Verkaufspräsentation für die Benutzung durch den Agenten,
basierend auf dem beabsichtigten Anrufsziel, auszuwählen.
-
Während automatische
Anrufverteiler verhältnismäßig gut
arbeiten, sind sie in hohem Maße von
der richtigen Operation eines Computersystems für ihre Funktionalität abhängig. Der
Fehler irgendeines Elementes des Computersystems, welches die Anrufe
bearbeitet, kann zu einem totalen Zusammenbruch des gesamten Systems
führen.
Wegen der Wichtigkeit der Anrufbearbeitung besteht eine Notwendigkeit
für ein
Verfahren, um die Integrität
und Kontinuität
des Betriebes von automatischen Anrufverteilern sicherzustellen.
-
Zusammenfassung
-
Es
wird ein Verfahren und ein Gerät
zum Bearbeiten von Information innerhalb eines Rechnersystems geliefert.
Das Verfahren beinhaltet die Schritte des Detektierens eines Kontaktes
zu einem Kunden einer Organisation, welche das Rechnersystem für seine
eigenen internen Geschäftszwecke nutzt,
wobei eine Bearbeitungsanwendung innerhalb des Rechnersystems zum
Verteilen des detektierten Kontaktes zu einem aus einer Vielzahl
von Agentenpersonen der Organisation basierend auf einem Kontext
des Kontaktes geliefert wird, wobei die gelieferte Bearbeitungsanwendung
vorher in eine Reihe von getrennten Softwaremodulen basierend auf
vorher festgelegten Kriterien aufgeteilt wurde, wobei jedes Softwaremodul
aus der Reihe der Softwaremodule innerhalb eines Satzes von Rechnern
des Computersystems platziert wird, wobei der Satz von Computern über ein
Netzwerk miteinander verbunden ist und sequenziell die Reihe der
Softwaremodule der Arbeitsanwendung durch Ausführen einer Suche innerhalb
des Netzwerkes aktiviert wird, um jedes Softwaremodul zu lokalisieren
und zu aktivieren, um den Kontakt zu der Agentenperson zu bearbeiten
und zu verteilen.
-
Kurze Beschreibung
der Zeichnungen
-
1 stellt
ein Computerbearbeitungssystem als eine erläuternde Ausführungsform
einer möglichen
Ausführung
der Erfindung dar;
-
2 stellt
eine vereinfachte Version des Bearbeitungssystem der 1 dar,
-
3 stellt
eine Anwendung dar, welche mit dem System der 2 kombiniert
werden kann; und
-
4 ist
ein Flussdiagramm, welches die Schritte darstellt, welche mit dem
System der 2 ausgeführt werden können.
-
Detaillierte
Beschreibung einer dargestellten Ausführungsform
-
1 ist
ein Blockschaltbild eines Kontaktverteilungssystems 10,
welches durch eine dargestellte Ausführungsform einer möglichen
Ausführung der
Erfindung gezeigt wird. Das Kontaktverteilungssystem kann zum Verbinden
von Kontakten über
das Internet 24 zwischen Kunden 14, 16 und
Agenten 18, 20 genutzt werden. Im Allgemeinen
kann das System 10 durch irgendeine Anzahl von unterschiedlichen Unternehmensorganisationen
genutzt werden (z.B. kommerziellen, umweltfreundlichen, politischen, etc.),
um die Agenda der Unternehmung voranzubringen.
-
Das
System 10 kann eine Anzahl von Rechnerquellen 26, 28, 30, 32, 34, 36 beinhalten,
welche dazu dienen, die Verbindungen zwischen den Kunden 14, 16 und
den Agenten 18, 20 zu bilden. Wie es hier benutzt
wird, ist eine Rechnerquelle der Organisation eine Computeranwendung
(Software), welche Information bearbeitet, welche auf bezogene Unternehmensarbeitsschritte
der Organisation gerichtet ist. Durch Benutzen des Open Systems
Interconnection- bzw. des Offenes-System-Verbindungs- (OSI-)Netzwerkmodells
ist eine Computerquelle eine Nutzeranwendung, welche von der Protokollschicht 7 des
OSI-Modells aus arbeitet.
-
Bei
den dargestellten Ausführungsformen
einer Alternative der Erfindung ist jede Quelle in eine Reihe von
Softwaremodulen aufgeteilt, und die Softwaremodule sind unter einer
Anzahl von getrennten Stand-alone-Rechnern verteilt (d.h. Central
Processing Units bzw. Zentrale Verarbeitungseinheiten (OPUS)). Wie
hier benutzt wird, versteht man unter einem Stand-alone-Computer
eine funktionell komplette Einheit (d.h. sie enthält ihren
eigenen Prozessor, Speicher und Eingangs/Ausgangs-Interface), welche
physikalisch von den anderen Computern in einem Computersystem getrennt
ist, innerhalb seiner eigenen physikalischen Umhüllung (Gehäuse) platziert ist und mit
anderen Rechnern des Systems über ein
Kommunikationsnetzwerk (z.B. ein lokales Funknetzwerk (LAN), ein
weiträumiges
Netz (WAN), das Internet, etc.) verbunden ist und bei welchem das Kommunikationsnetzwerk
kein Bus ist.
-
Die
Anwendungen werden in herkömmlicher Weise
aktiviert. Jedoch werden Daten, welche von jedem Softwaremodul der
Sequenz von Softwaremodulen erfordert und erzeugt werden, in einer
Ferndatenbank gespeichert (welche selbst durch getrennte Verarbeitungsschritte
dupliziert wird). Das System 10 verfolgt die Operation
jedes Softwaremoduls aus der Sequenz, und falls ein Softwaremodul
seine ihm zugewiesene Aufgabe nicht in einer vorher festgelegten Zeitperiode
vollenden sollte, kann ein dupliziertes Softwaremodul auf einem
anderen Prozessor aktiviert werden.
-
Durch
das Aufteilen jeder Anwendung in eine Reihe von Modulen und das
Verteilen der Softwaremodule auf viele unterschiedliche Computer
ist das System 10 virtuell immun gegenüber einem Fehler irgendeines
Computers. Falls ein Computer ausfallen sollte, bewegt das System 10 einfach
die Funktionalität
dieses Computers auf einen anderen Computer.
-
Wendet
man sich zuerst den Zeichnungen zu, so wird eine Erklärung einer
dargestellten Ausführungsform
einer Alternative der Erfindung im Kontext eines automatischen Kontaktverteilers
geliefert. Während
eine mögliche
Alternative der Erfindung zuerst in dem Kontext eines automatischen
Kontaktverteilers beschrieben wird, soll davon ausgegangen werden,
dass die alternativen Ausführungsformen der
Erfindung in irgendeinem System Anwendung finden können, welches
auf miteinander verbundenen Computern beruht.
-
Wie
unten beschrieben, führen
wenigstens einige der Computerquellen 26, 28, 30, 32, 34, 36 vorher
festgelegte Dienste für
andere Computerquellen mit Unterstützung von Unternehmensaufgaben der
Organisation aus, welche das System 10 nutzt. Wie hier
benutzt wird, bedeutet ein vorher festgelegter Dienst, welcher durch
eine Quelle für
einen anderen durchgeführt
wird, das Bearbeiten von Daten, um ein Unternehmensergebnis zu erreichen,
welches nicht direkt auf Kommunikationsverbindungen über das
Internet bezogen ist.
-
Der
Zugriff auf das Kontaktzentrum 10 der Organisation durch
Kunden 14, 16 der Organisation kann über das
Internet 14 durch irgendeine Anzahl von unterschiedlichen
Prozessen geliefert werden. Um die Agenda der Organisation ihren
Kunden 14, 16 bekannt zu machen, kann die Organisation
Kontaktinformation (z.B. E-mail-Adresse, Sofortmitteilungs- (IM-)Adresse oder
Verweisadresse (USL)) durch Werbung oder auf eine andere Weise,
welche einen Kommunikationspfad zu der Organisation identifiziert,
veröffentlichen.
-
Mit
der dargestellten Ausführungsform
kann das Kontaktverteilungssystem 10 einen oder mehrere
Kontaktserver 26, 34, 36 und Anrufverteiler 28, 30, 32 beinhalten,
welche den Anruf empfangen und an einen Agenten 18, 20 verbinden,
basierend auf einem Kontext des Anrufes (z.B. das Ziel des Kontaktes,
die Identität
des Anrufers, die Verfügbarkeit
und die Fähigkeiten
von irgendwelchen eingetragenen Agenten, etc.). Die Kontaktserver 26, 34, 36 können dazu
dienen, um Kontakte zu empfangen und sie anfangs zu bearbeiten.
Ein erster Server 34 kann Kontakte in Form von E-mails
empfangen. Ein zweiter Server 36 kann Kontakte über ein
Sofortnachrichten-(IM-)Format empfangen. Ein dritter Multimode-Server 26 kann
Kontakte von einer oder mehreren Webseiten empfangen, welche von
Kunden 14, 16 von einer Webseite 38 des
Multimode-Servers 26 heruntergeladen wurden.
-
In
dem Fall, bei welchem die Organisation ein Hersteller mit vielen
unterschiedlichen Produkten ist, kann eine unterschiedliche E-mail-Adresse
für jede
unterschiedliche Produktlinie vorgesehen werden. Wenn dem so ist,
so kann der E-mail-Server 34 E-mails empfangen, welche
zu verschiedenen Adressen geführt
sind, welche alle innerhalb einer oder mehrerer Domänennamen
sind, welche durch den E-mail-Server 34 benutzt werden.
Das Nutzen verschiedener Zieladressen kann benutzt werden, um das
System mit einer ersten Anzeigeebene des Kontakttyps des empfangenen
Kontaktes auszustatten. Der IM-Server 36 und der Multimode-Server 26 können in ähnlicher
Weise benutzt werden.
-
Kontakte,
welche durch die Server 26, 34, 36 bearbeitet
werden, können
in irgendeiner Anzahl unterschiedlicher Wege initiiert werden. Z.B.
kann ein Kontakt von einem Kunden 14, 16 zu dem
Multimode-Server 26 durch Aktivieren einer SPEAK-WITH-AGENT-
bzw. Spreche-mit-dem-Agenten-Dialogtaste auf einer Webseite initiiert
werden, welche von dem Multimode-Server 26 heruntergeladen
wurde. Alternativ können
Kontakte von Kunden 14, 16 in Antwort auf Pop-up-Hinzufügungen,
welche auf Webseiten aufgestellt sind, welche von den Kunden 14, 16 besucht
werden, initiiert werden. Kontakte können auch in herkömmlicher Weise
durch einen Kunden 14, 16 initiiert werden, welcher
eine geeignete Anwendung (z.B. Outlook von Microsoft) aktiviert
und eine Verweisadresse (URL) der Organisation über ein E-mail- oder IM-Format
eingibt, in Antwort auf einen gedruckten Hinweis in einer Zeitung
oder einem Magazin.
-
Kontakte
von Kunden 14, 16, welche durch die Server 26, 34, 36 empfangen
werden, können
zu Agenten 18, 20 über eine Anzahl von Kontaktverteilern 28, 30, 32 verteilt
werden. Wenn die Kontakte ankommen, kann der Server 26, 34, 36,
welcher den Kontakt empfängt,
ein File für
jeden Kontakt öffnen, welches
durch einen einzigartigen Kontakterkenner identifiziert wird. Das
File kann wenigstens eine Quellkennung des Kunden 14, 16 (z.B.
eine E-mail-Adresse,
URL, etc.), von dem der Kontakt herrührt, und eine Zielkennung,
welche das Kontaktziel (z.B. E-mail-Adresse, URL, etc.) innerhalb
des Systems 10 erkennt, beinhalten. Im Falle von Kontakten, welche
durch den Multimode-Server 26 empfangen werden, kann Information,
welche irgendwelche Webseiten betrifft, welche besucht wurden, auch
innerhalb des Kontakt-Files beinhaltet sein.
-
Eine
Kopie jedes Kontakt-Files kann an den Host-Rechner 40 übertragen
werden. Innerhalb des Host-Rechners 40 kann die Information
innerhalb des Kontakt-Files benutzt werden, um weitere Information über die
kontaktierende Partei zu erkennen. Z.B. kann der Quell-Identifizierer benutzt
werden, um den Kontakt zu klassifizieren, ob er von vorhandenen oder
neuen Kunden herrührt.
Information auf Webseiten, welche besucht wurden oder über frühere Kontakte
mit dem Kunden 14, 16, können durch den Host-Rechner 40 benutzt
werden, um weitere Information bezüglich der Art des involvierten
Kontaktes zu liefern.
-
Jegliche
zusätzliche
Information bezüglich des
Kontaktes kann an den Server 26, 34, 36 rückübertragen
werden. Innerhalb des Servers 26, 34, 36 kann
die Information innerhalb des Kontakt-Files und möglicherweise
jegliche zusätzliche
Information von dem Host-Rechner 40 innerhalb
einer Kontaktklassifikationsanwendung 37 benutzt werden,
um weiter den Kontakt in eine oder mehrere Kontaktarten zu klassifizieren.
-
Sobald
eine Kontaktart bestimmt wurde, kann der Server 26, 34, 36 den
Kontakt zu einem Kontaktverteiler 28, 30, 32 übertragen.
Der Kontaktverteiler 28, 30, 32, welchen
der Server 26, 34, 36 auswählt, um
den Kontakt zu bearbeiten, kann auf der Verfügbarkeit oder auf der Kontaktart
beruhen.
-
Die
Auswahl eines Kontaktverteilers 28, 30, 32 kann
einfach auf dem Status oder auf vorher festgelegten Kriterien beruhen.
Z.B. kann der erste Kontaktverteiler 28 mit Agenten 18, 20 verbunden
sein, welche in erster Linie für
das Bearbeiten von Kontakten einer ersten Kontaktart befähigt sind,
der zweite Kontaktverteiler 30 kann mit Agenten 18, 20 verbunden
sein, welche in erster Linie für
das Bearbeiten von Kontakten einer zweiten Kontaktart befähigt sind, und
der dritte Kontaktverteiler 32 kann mit Agenten 18, 20 verbunden
sein, welche in erster Linie für
das Bearbeiten von Kontakten einer dritten Kontaktart befähigt sind.
-
Wenn
dem so ist, werden Kontakte der ersten Kontaktart normalerweise
zum ersten Kontaktverteiler 28 übertragen, Kontakte der zweiten
Kontaktart werden an den zweiten Kontaktverteiler 30 übertragen
und Kontakte der dritten Kontaktart werden an den dritten Kontaktverteiler 32 übertragen. Wenn
jedoch einer oder mehrere der Kontaktverteiler 28, 30, 32 nicht
in Betrieb ist oder in anderer Weise nicht verfügbar ist oder überladen
ist, dann können die
Kontakte von irgendeinem anderen Kontaktverteiler 28, 30, 32 bearbeitet
werden.
-
Wenn
der erste Kontaktverteiler 28, 30, 32 verfügbar ist,
kann der Server 26, 34, 36 den Kontakt zusammen
mit dem File an den geeigneten Kontaktverteiler 28, 30, 32 übertragen.
Innerhalb des Kontaktverteiler 28, 30, 32 kann
eine Kontakt-Weiterleitungsanwendung 3 den Inhalt des Kontakt-Files
mit einer Liste von Agentenfähigkeiten
vergleichen und den Kontakt einem qualifizierten Agenten 18, 20 zuordnen.
Wenn ein Agent nicht verfügbar
ist, kann der Agentenauswahlprozessor den Kontakt in eine Kontaktreihe 48, 50, 52 bringen,
abhängig
von der Verfügbarkeit
eines qualifizierten Agenten.
-
Sobald
ein Agent 18, 20 verfügbar wird, kann der Kontaktverteiler 28, 30, 32 den
Kontakt zu dem Agenten 18, 20 übertragen. Der Kontaktverteiler 28, 30, 32 kann
auch eine Mitteilung an einen Agenten-Server 56 innerhalb
des Host-Rechners 40 senden, welche die Kontaktkennung
und eine Kennung des Agenten 18, 20 enthält. Wenn
der Kontakt an den Agenten 18, 20 übertragen
ist, kann der Agenten-Server die Kundenaufzeichnungen an den ausgewählten Agenten
zum Anzeigen auf einem Endgerät
des Agenten übertragen,
zur gleichen Zeit, wenn der Kontakt an dem Endgerät des Agenten 18, 20 ankommt.
-
Während 1 die
Server 26, 34, 36, die Kontaktverteiler 28, 30, 32 und
den Host-Rechner 40 als
getrennte Einheiten darstellt (jede mit dem Internet 24 verbunden),
sollte davon ausgegangen werden, dass die Anwendungen, welche die
Funktionalität
für diese
Einrichtungen liefern, simultan in einer beliebigen Anzahl von Rechnern
platziert sein kann. 2 ist eine verallgemeinerte
Hardware-Zeichnung, welche zeigt, wie die Interaktion unter den
Teilen (Softwaremodulen) der Anwendungen der 1 auftreten
kann.
-
Im
Allgemeinen stellt 2 ein Beispiel eines Peer-to-Peer-Rechnersystems 100 dar,
welches im Kontext des Kontaktverteilungssystems 10 der 1 benutzt
werden kann. Wie es hier benutzt wird, wird das Peer-to-Peer-Rechnen
durch direkte Verbindungen charakterisiert, wobei virtuelle Namensbereiche
benutzt werden. Unter Peer-to-Peer-Rechnen versteht man einen Satz
von Rechnerknoten, welche einander sich als gleichgestellt (Peers)
behandeln und Verarbeitungsleistung, Inhalt oder Anwendungen zu
anderen Knoten in aufgeteilter Weise liefern, mit keinen Vorgaben über eine
Hierarchie der Steuerung.
-
Die
Peer-to-Peer-Rechnerarchitektur, wie sie hier beschrieben wird,
gestattet eine dezentralisierte Anwendungsgestaltung, welche sich
von zentralisierten Server-Modellen zu einem aufgeteilten Modell bewegt,
wobei jedes Peer, unabhängig
von Software- und Hardware-Plattformen, Nutzen und Vorteil daraus
ziehen kann, mit einer Anzahl von anderen Peers verbunden zu sein.
In derartigen Architekturen besitzen Client-Rechner und Server-Rechner eher eine laterale
Beziehung als die traditionelle vertikale Beziehung, was der gesamten
Peer-Gruppe eine ungeheuerliche Verarbeitungsleistung und Speicherraum verleiht.
-
In
der Vergangenheit wurden Peer-zu-Peer-Lösungen in erster Linie als
Lösungen für File-Sharing
betrachtet, wobei Nutzer sich an ein Peer-Netzwerk anschließen, um
Files zu übertragen, wie
z.B. Audio-Files zwischen Maschinen. Peer-to-Peer-Lösungen können basierend
auf dem Windows-XP-Peer-to-Peer-Software-Entwicklungsbausatz (SDK)
entwickelt werden, welcher von Microsoft Corporation, Redmond, Washington,
erhältlich ist.
Die Peer-to-Peer-Rechnerarchitektur,
welche hier beschrieben wird, unterscheidet sich von den bisherigen
Peer-to-Peer-Lösungen
in der Tatsache, dass die Peer-to-Peer-Architektur auf aufgeteilten
Software-Anwendungen beruht, nicht von sich aus auf dem Übertragen
von Files oder deren Funktionalität beruht, nur einen Teil eines übertragenen
Files (einer Software-Anwendung) in einem beliebigen Computer benutzt
und auf dem Gebrauchen eines virtuellen privaten Netzwerks beruht,
so dass eine beliebige Maschine mit jeder anderen Maschine als verbunden betrachtet
werden kann und sich Anwendungen und Daten unter diesen teilen kann.
Peer-Klassen können auch
für jede
Anwendungsart vorgesehen werden, um Kontamination oder einen unbeabsichtigten Zugriff
auf Daten durch Anwendungen zu verhindern, welche nicht für den Zugriff
auf die Daten privilegiert sind.
-
In
dem System der 2 verbinden sich Prozessoren
A, B und C (104, 102, 106) mit einem Anwendungs-Peer-to-Peer-(P2P-)Netzwerk 108 und bilden
einen Teil davon, um sich Anwendungsausführparameter zwischen den Prozessoren
zu teilen. Wegen des Aufteilens der Ausführparameter beziehen sich die
hier getroffenen Netzwerk- bzw. Netzwerke-Referenzen auf den Kommunikationsteil
des Netzwerkes, auf die Rechner, welche mit diesen Netzwerken verbunden
sind, und auf die Software, welche innerhalb der verbundenen Rechner
läuft.
-
Obwohl
der Prozessor C 106 optional ist und als ein einzelner
Computer gezeigt wird, kann er ein Systemsteuergerät sein,
welches die Funktionalität der
Prozessoren A und B 102, 104 überwacht, obwohl die Funktionalität des Prozessors
C 106 innerhalb der Prozessoren A und B 102, 104 beinhaltet sein
kann. Der Prozessor C 106 überwacht das Netzwerk nach
einem „Herzschlag" bzw. Arbeitsrhythmus der
Prozessoren A und B 102, 104 oder nach File-Suchläufen und
Zugriffen auf Daten P2P 112 als Anzeichen für eine intakte
Software-Operation
mit Hilfe der Prozessoren A und B 102, 104. Die
Daten-Files 118, 120, 122, 124 können in
dem Anwendungs-P2P-Netzwrk durch einen Backup-Prozessor 130 kopiert
werden, welcher eine Durchsuchung durchführt, um zu bestimmen, ob es
eine reine Kopie innerhalb des P2P ist, und, wenn dem so ist, diese
für einen
zusätzlichen
Computer zu duplizieren, so dass sie im Falle eines Ausfalls des
Speichersystems verfügbar
ist. Files können
auf vielfältigen
Prozessoren in jedem der Netzwerke gespeichert werden, sie werden
jedoch in 1 zum Zweck der Erläuterung
getrennt gezeigt.
-
Globale
und öffentliche
Daten zwischen den Prozessoren werden als Daten-File vorzugsweise
in einem XML-Format geschrieben, um eine Datenmigration zuzulassen.
Daten-Files werden
in ähnlicher Weise über physikalische
Maschinen kopiert, um die Überlebensfähigkeit
und den Zugriff im Falle eines Fehlers in einer Maschine oder dem
Netzwerk sicherzustellen. Wenn ein Daten-File aktualisiert wird,
wird ein Duplikat im Netzwerk in einem konfigurierten Muster gespeichert,
um die Fähigkeit
sicherzustellen, auf einen gegebenen Zustand zurückzufahren, wenn ein Fehler
detektiert wird.
-
Ein
optionales Quellen-P2P-Netzwerk 110 kann auch vorgesehen
werden. Wenn Quellen, wie z.B. Agenten, sich einschreiben und ihre
Anwendungen aktivieren, wird ihre Gegenwart in dem Quellen-P2P-Netzwerk 110 gesehen.
Eine Applikation (z.B. in den Computern 102, 104, 106 platziert)
des Anwendungs-P2P-Netzwerkes 108 kann die Verfügbarkeit
von Quellen, welche von einer Agentenperson auf dem Quellen-P2P-Netzwerk 110 benötigt werden,
abscannen und detektieren und ihnen automatisch Unterstützung für Bearbeitungstransaktionen
(z.B. Kontakte) zuordnen. Wenn sich Agenten einschreiben, können sie
automatisch zu dem Transaktionsverarbeitungssystem der Prozessoren
A und B addiert werden. Unterschiedliche Agentengruppen können als
Teil eines getrennten P2P-Netzwerkes zugeordnet werden, welches
der Quellverfügbarkeit wegen überwacht
wird. Getrennte P2P-Gruppen begrenzen auch die Information, auf
die auch von außerhalb
der Gruppe zugegriffen werden muss.
-
Ein
Fehler eines Anwendungsprozessors in dieser Architektur 100 kann
durch den Überwachungsprozessor
C 106 angesteuert werden, welcher die Anwendungsverarbeitungs-Verantwortung an
einen überlebenden
Prozessor rückweist,
an dem Punkt, wo der Fehler detektiert wird. Wenn vielfältige Anwendungsprozessoren
vorhanden sind, kann der erste Prozessor, welcher durch den Prozessor 106 in der
Suche nach der nächsten
geforderten Anwendung, welche auszuführen ist, gefunden wurde, als der
nächste
ausführende
Prozessor gewählt
werden. Wechselseitige Wahlalgorithmen können eingebaut sein, um den
Anwendungsprozessor auszuwählen, welcher
z.B. auf Grund der verfügbaren
Speicher, der Anzahl der laufenden Anwendungen, der Netzwerkübertragungszeit,
etc. gewählt
wurde.
-
Datenereignisse
(z.B. Kontakteinläufe,
Kontaktbeendigungen, etc.) werden, falls erforderlich, zu den Daten
P2P 112 für
das Sammeln durch die Anwendungsprozessoren weitergeleitet. In ähnlicher Weise
werden physikalische Hardware-Interfaces an der Daten-P2P-Schicht für den Zugriff
durch die Anwendungs-P2P-Schicht übertragen. Als Beispiel kann
ein Anrufsteuer-Link, wie z.B. ein Transaktions-Link, die Datennachrichten
auf dem Link besitzen, welcher in eine XML-Darstellung der Nachrichten
umgeformt wurde, welche über
den Link empfangen wurden. Diese Datendarstellung ist dann für einen
Anwendungs-P2P-Netzwerkcomputer
für die
Bearbeitung verfügbar.
Eine umgekehrte Umformung kann an den übertragenen Daten gemacht werden, um
sie zurück
zu einem Transaktionslink-Protokoll durch ein Anwendungsprogramm
zu konvertieren. Abwechselnd können
Datenereignisse direkt zu einem Anwendungsprozessor gehen. In diesem
Fall kann sich die Fähigkeit
der Anwendung, den Verlust des Anwendungsprozessors zu überleben,
vermindern, falls es nur eine einzelne Datenleitungsverbindung zu
dem Anwendungsprozessor gibt. In einigen Ausführungsformen können die
Daten zu einem Konto oder Dienst geführt werden, welcher beim Ausführen einer
empfangenen Anwendung arbeitet, wobei diese durch das Anwendungsnetzwerk
bearbeitet werden, so dass Fehlfunktionen eines Prozessors, welcher
das Konto bedient, durch einen anderen Prozessor wiederhergestellt
werden können,
welcher im Anwendungsnetzwerk läuft.
Beispielsweise kann eine Anwendung, welche über ein Sofortmitteilungsübermittlungs-(Datenübermittlungs-)Interface
läuft, zu
einem Konto geführt
werden, welches durch eine beliebige Anzahl von Anwendungsprozessoren
innerhalb des Anwendungsnetzwerkes be- bzw. verarbeitet werden kann.
-
In
anderen Ausführungsformen
kann das Datennetzwerk 112 eine Datenbank sein. In weiteren Ausführungsformen
können
die Daten in einem Prozessor (z.B. 102, 104) gespeichert
werden, welcher die Softwaremodule ausführt. In diesem Fall können die
Daten während
einer Netzwerksuche basierend auf einem Satz von File-Erweiterungen
platziert werden.
-
Mitteilungsübermittlungs-Interfaces
(z.B. welche Protokolle, wie z.B. Session Initiation Protocol bzw.
ein Sitzungsbeginnprotokoll (SIP) benutzen) können direkt zwischen Quell-Entitäten anstatt
durch das Daten-P2P-Netzwerk 112 vorgesehen werden. Auf
diese Weise können
Daten direkt zu einem Programm gesandt werden, welches auf der Quell-Entität zum Steuern
oder Anzeigen ausgeführt
wird, anstatt von der Quell-Entität Information von den Daten P2P
zu sammeln. Es wird vorgezogen, dass Programme allein auf der Anwendung
P2P 108 laufen, wobei die Quelle P2P 110 nur als
ein kleiner oder Anzeigevorfeldrechner agiert, um die Unterstützungs- und
Servicekosten zu reduzieren.
-
Anwendungs-Files
können
direkt in einer derartigen Weise geschaffen und kompiliert werden, um
ferner die Überlebensmöglichkeit
und die Aufteilung über
das Peer-Netzwerk zu erhöhen.
Viele traditionelle Softwareentwicklungs-Vorgehensweise, entweder
objektorientiert oder sequenziell programmiert, beziehen sich auf
eine eigenständige
Vorgehensweisen, bei welcher die Anwendungsfunktionalität innerhalb
eines einzelnen Verarbeitungsmechanismus ist oder von oder durch
einen einzelnen rechnenden Prozessor gesteuert wird. Im Gegensatz dient
das System 100 dazu, die Files in einer derartigen Weise
aufzuteilen, um die Situation zu vermeiden, in welcher Anwendungs-Files
innerhalb einer einzigen Verarbeitungsentität existieren.
-
Wendet
man sich nun speziell den Anwendungen zu, so wird eine Erklärung geliefert,
wie die Anwendungen für
die Bearbeitung auf eine Anzahl von verschiedenen Computern aufgeteilt
werden können.
In der vorgeschlagenen Vorgehensweise wird jedes Programm (jede
Anwendung) 300 (3) kompiliert (z.B. innerhalb
des Compilers 54 der 1), in eine Reihe
von funktionell ausführbaren Unteranwendungen 302, 304, 306, 308,
zur Verteilung aus dem und über
das Anwendungs-P2P-Netzwerk. Alternativ können Programme 300 innerhalb
eines Kommunikations- und Steuer-Wrappers angeordnet werden, so
dass sie als getrennte Softwaremodule betrachtet werden können, welche
auf dem Anwendungs-P2P-Netzwerk
eingesetzt werden können.
Elemente, wie z.B. Subroutinen, Funktionsaufrufe und deren Äquivalente
werden als Stand-alone-Entitäten
(wobei jede nachfolgend im Allgemeinen als Softwaremodule bezeichnet
werden) kompiliert, die, wenn globale Variable oder externer Datenzugriff
erforderlich sind, zu den Daten P2P 112 übergehen,
um diese Information wiederzubekommen und in der bisher beschriebenen
Weise zu bewahren.
-
Die
Anzahl oder Größe jedes
Softwaremoduls, in welche eine Anwendung aufgeteilt werden kann,
kann auf einer beliebigen Anzahl von vorher festgelegten Kriterien
beruhen. Ein erstes Kriterium kann erfordern, dass jedes Softwaremodul
die gleiche Größe besitzt.
Alternativ kann das Kriterium erfordern, dass eine Verarbeitungszeit
eines Satzes ausführbarer
Programme einen vorher festgelegten Teil bezüglich der I/O- bzw. E/A-Erfordernisse
annimmt, und es können
Pausenpunkte entsprechend festgelegt werden. Eine zusätzliche
Alternative kann darin bestehen, einen Anruf in ein Softwaremodul aufzuteilen,
um einen Programmcode auszuführen, der
nicht innerhalb eines Hauptcodemoduls vorhanden ist. Eine andere
Alternative kann darin bestehen, einen Anruf in ein Softwaremodul
aufzuteilen, um den Programmcode auszuführen, welcher von wiederholender
Beschaffenheit ist oder häufig
benutzt wird. Ein anderes alternatives Kriterium kann darin bestehen,
einen Programmcode zuzuweisen, welcher mit Teilen der Computersystem-Hardware
verbunden ist.
-
Zusätzlich können die
Softwaremodule basierend auf der Operationseigenheit des Computersystems
verteilt werden, in welchem die Anwendung arbeitet. Z.B. können Computer,
welche mit stark belasteten Teilen des Netzwerkes verbunden sind,
sehr niedrigen E/A-Anforderungen
Softwaremodulen zugeordnet werden. Stark belasteten Computern, welche
mit leicht belasteten Teilen des Netzwerks verbunden sind, können Softwaremodulen
mit relativ niedrigen Verarbeitungsanforderungen und verhältnismäßig hohen
E/A-Anforderungen zugeordnet werden. Alternativ können die
Prozessor-Nutzungsanforderungen eines Moduls in Betracht gezogen
werden, um die Zuweisung für
die Verarbeitung zu bestimmen. Das System kann die Zuweisung von
vielfältigen
Routinen, welche große
Beträge
von Prozessornutzung auf einem einzelnen Prozessor erfordern, begrenzen
oder kann sicherstellen, dass die Nutzung des Prozessors nicht durch
die zugewiesenen Routinen überschritten
wird.
-
Wenn
die gesamte Anwendung ausgeführt wird,
wird zunächst
eine Suche nach der Anwendungskomponente (das Softwaremodul), welche
in Frage kommt, auf der Anwendung P2P 108 durchgeführt. Im
Falle des Kontaktverteilungssystems 10 der 1 kann
das Eintreffen eines Kontaktes (z.B. eines E-mails am E-mail-Server 34)
einen Funktionsaufruf für
eine Anwendung auslösen,
um den Kontakt zu klassifizieren.
-
4 stellt
den Prozess des Ausführens
einer Anwendung dar. Während 4 nur
das Hauptsoftwaremodul und das Softwaremodul 1 darstellt,
sollte davon ausgegangen werden, dass der Prozess ähnlich sein
wird, ungeachtet wie viele Softwaremodule involviert waren.
-
Das
Anfangsanwendungselement kann lokal auf dem Prozessor gespeichert
werden, welcher nach dem Anwendungselement aus Geschwindigkeitsbetrachtungen
heraus gesucht wird, muss jedoch auf dem Netzwerk der Zuverlässigkeit
wegen zur Verfügung
stehen, ebenso für
Hochrüstungszwecke.
Global identifizierte Daten werden von den Daten P2P 112 gesammelt,
wenn dies erforderlich ist. In ähnlicher
Weise werden auch Quellverbindungen verarbeitet, indem eine spezielle
Quelle P2P 110 überwacht
wird. Der Prozessor C 106 kann als ein P2P-Netzwerk-Koordinator
betrieben werden, um die P2P-Elemente, welche das gesamte System
aufweist, im Auge zu behalten. Es ist jedoch davon auszugehen, dass
die Funktion eines P2P-Netzwerk-Koordinators nicht bei allen möglichen
Ausführungsformen
erforderlich ist.
-
Der
Prozessor C 106 kann die Operation jedes Softwaremoduls
der Sequenz innerhalb einer Anzahl von unterschiedlichen Prozessen überwachen.
Innerhalb eines ersten Prozesses kann der Prozessor C 106 eine
Flag bzw. Marke auf dem ersten Funktionsaufruf der Sequenz setzen.
Die Flag kann als ein Zeitglied genutzt werden, um die Operation
des Softwaremoduls zu überwachen.
Wenn das Softwaremodul kein Zwischenergebnis für die Datei P2P 112 speichert
oder einen Funktionsaufruf für
das nächste
Softwaremodul in der Reihe innerhalb einer vorher festgelegten Zeitperiode
ausgibt, dann kann der Prozessor C 106 unabhängig eine
andere Kopie des vorher aktivierten Softwaremoduls platzieren und aktivieren.
Der Prozess des Platzierens einer anderen Kopie eines Softwaremoduls
kann durch Nutzen einer einfachen LDAP-Routine oder durch Nutzen der
Funktionen oder Dienste der P2P-Entwicklungsarchitektur
erreicht werden.
-
In
einer anderen Ausführungsform
können die
Funktionsanrufe einfach durch den Prozessor C 106 ausgegeben
werden. In diesem Fall kann der Prozessor 106 mit einer
sequenziellen Liste von Softwaremodulen ausgestattet sein. Der Prozessor
C kann Situationen überwachen,
welche ein Aktivieren einer Anwendung auslösen sollen. Im Falle des Systems 10 der 1 kann
der Prozessor C 106 den E-mail-Server 34 bezüglich des
Empfangens von E-mails überwachen.
Das Detektieren des Empfangs einer E-mail würde als ein Zustand betrachtet,
welcher für
das Aktivieren einer E-mail-Server-Anwendung erforderlich ist. In
diesem Fall kann der Prozessor C 106 nach einer internen
Liste suchen, um die Reihe von E-mail-Softwaremodulen
des E-mail-Servers 34 zu finden.
-
Beim
Platzieren der Liste kann der Prozessor C 106 einen Funktionsaufruf
für ein
erstes Softwaremodul in der E-mail-Liste der Softwaremodule ausgeben.
Der Prozessor C 106 kann auch ein Zeitglied aktivieren,
um die Zeit für
eine Antwort (Nachricht: Softwaremodul fertig) zu bestimmen.
-
Wenn
die Nachricht "Softwaremodul
fertig" innerhalb
des Zeitbereichs der Ausführung
des ersten Softwaremoduls ankommt, dann kann der Prozessor C 106 einen
Funktionsaufruf für
ein nachfolgendes (zweites) Softwaremodul ausgeben. Wenn die Softwaremodul-Nachricht nicht vor
dem Ablaufen des Zeitbereichs für
das erste Softwaremodul ankommt, dann kann der Prozessor C 106 einen
anderen Funktionsaufruf für
das erste Softwaremodul ausgeben, welches in dem gleichen oder einem
anderen Computer platziert ist. Abwechselnd kann, wenn einmal die
erste Routine ausgeführt
ist, eine Suche nach einer zweiten Routine aufgerufen werden, und
wenn diese auf dem Anwendungs-P2P-Netzwerk erkannt wird, kann sie
die Steuerung der Maschine, welche die Routine enthält, passieren,
um die Software auszuführen,
wodurch die Notwendigkeit für
den Prozessor C 106 reduziert wird, die Steuerung für jedes Softwaremodul
zuzuweisen.
-
Höherstufungen
des Netzwerks 100 können durch
Detektieren der File-Modifikationsdaten
ausgeführt
werden, wie dies in dem P2P-Directory-Dienst (welcher LDAP-basiert
sein kann) angezeigt wird, und durch Ersetzen von Files mit älterem Datum durch
den neueren File. Ferner sollte der Directory-Dienst sicherstellen,
dass vielfältige
Kopien eines Files auf vielfältigen
Maschinen existieren. Dies kann mit einer Routine erreicht werden,
welche bestimmt, ob Software auf dem Netzwerk ruht, welche nicht
auf der lokalen Maschine ist und welche das File auf die Maschine
lädt. Es
ist auch wünschenswert,
dass eine Verfallsdauer auf den Files vorhanden ist, um so das automatische
Ersetzen der Files, welche nicht länger erforderlich sind, auf
dem Netzwerk zu gestatten. Das P2P-Netzwerk sollte über vielfältige LAN-Verbindungen
implementiert sein, da es, wenn es auf einem einzelnen LAN-Netzwerk platziert
ist, anfällig
für einen
Netzwerkfehler ist, da es sich aber in sein eigenes virtuelles Netzwerk
abbildet, federt es leichter einen einzelnen Netzwerkfehler ab.
Ein anderer Vorteil besteht darin, dass die Erfordernis, die Existenz
von vielen LAN-Kommunikationspfaden
zu programmieren, ein Teil der zugrunde liegenden P2P-Architektur ist
und nicht Teil der gelieferten Software-Anwendung zu sein braucht.
-
Das
System 100, welches oben beschrieben wurde, bietet eine
Anzahl von Unterschieden und Vorteilen gegenüber früheren Lösungen. Ein signifikanter Unterschied
gegenüber
früheren
Lösungen besteht
darin, dass, während
frühere
Lösungen
dicht an die Software-Anwendung
mit der Hardware-Plattform gekoppelt waren, die hier beschriebene
Lösung ein
alternatives Modell für
die Software-Entwicklung bietet, wodurch die Hardware von dem Vorhandensein
der Software getrennt ist, indem über Software ausführbare Anwendungen,
zugängliche
globale Daten und das Vorhandensein von Quellen in einer Weise aufgeteilt
werden, welche getrennt und entfernt von einer einzelnen Kombination
von Softwarefunktion auf einem Stück Hardware ist.
-
Software-Entwicklungen
entwickelten sich aus dem Modell, wo Software-Microcode im Wesentlichen
rückprogrammiert,
wie sich die Hardware verhält
und funktioniert. D.h., das binäre
Sprachniveau, welches die Software wiedergibt, definierte die Funktion,
welche die Hardware für
jede einzelne Instruktion auszuführen
hatte. Unglücklicherweise
war dieses Modell eng mit der Software und dem Hardware-Element
gekoppelt und es schlug fehl, Redundanzausgaben anzugehen, welche
mit sowohl der Hardware als auch den Softwaremodulen selbst verbunden sind.
Die hier beschriebene Vorgehensweise beginnt effektiv, die Software
von der Hardware-Architektur zu entkoppeln, um beiden zu gestatten,
einen höheren
Grad an Beständigkeit
bei Vorhandensein von Fehlerzuständen
zu erreichen.
-
Eine
spezielle Ausführungsform
des Verfahrens und des Geräts
zum Verarbeiten von Information innerhalb eines Rechnersystems wurde
zum Zwecke der Erläuterung
der Art und Weise beschrieben, in welcher eine mögliche Alternative der Erfindung hergestellt
und benutzt werden kann. Es ist davon auszugehen, dass das Implementieren
anderer Variationen und Modifikationen von Ausführungsformen der Erfindung
und deren verschiedene Gesichts punkte für einen Fachmann offensichtlich
sein werden und dass verschiedene alternative Ausführungsformen
der Erfindung nicht durch die speziellen Ausführungsformen begrenzt sind.
Deshalb ist beabsichtigt, alle möglichen
alternativen Ausführungsformen der
Erfindung und sämtliche
Modifikationen, Variationen oder Äquivalente, welche innerhalb
des Geistes und des Umfangs der grundlegenden Prinzipien fallen,
welche dargestellt wurden und hier beansprucht werden, abzudecken.