-
Verwandte Anmeldung
-
Diese
Anmeldung beansprucht Priorität
an der mitanhängigen
Provisional-Patentanmeldung, Seriennummer 60/471,851, Anwaltsaktenzeichen 200312253-1.PRO,
mit dem Titel „Architecture
for Distributing and Managing Streaming Media Services", die am 19. Mai
2003 eingereicht wurde und der Bevollmächtigten der vorliegenden Anmeldung zugewiesen
ist.
-
Hintergrund
-
Es
gibt Netzwerke, in denen eine Clientenvorrichtung die Lieferung
einer Mediendatei zusammen mit einer Verarbeitung anfordern kann,
die an der angeforderten Mediendatei ausgeführt wird, wie z. B. eine Rauschreduzierung.
Sobald die Anforderung zur Medien-Lieferung und -Verarbeitung durch einen
Server empfangen wird, wird die Mediendatei wiedergewonnen und dann
wird die angeforderte Verarbeitung an dieser Mediendatei durch den
Server ausgeführt.
Sobald die Verarbeitung vollständig ausgeführt ist,
liefert der Server eine Streaming-Lieferung der verarbeiteten Mediendatei
zu der Clientenvorrichtung. Es gibt jedoch Nachteile, die diesem Systemtyp
zugeordnet sind.
-
Zum
Beispiel ist einer der Nachteile, dass der Benutzer der Clientenvorrichtung
möglicherweise
relativ lange warten muss, während
der Server versucht, viele separate Anforderungen zum Verarbeiten
und Streamen von Mediendateien zu unterschiedlichen anfordernden
Clientenvorrichtungen zu handhaben. Ferner kann die Streamingmediendatei sehr
groß sein
und es kann lange Zeit benötigen,
die angeforderte Verarbeitung an dem Inhalt vor einer Initiierung
der Streaming-Lieferung abzuschließen. Dies kann für den Benutzer
der Clientenvorrichtung frustrierend sein, besonders, wenn er oder
sie versucht, etwas vor einer Frist fertigzustellen.
-
Die
US 6,412,004 offenbart einen
Metaserver für
ein Multimedia-Verteilnetzwerk, das versucht, Engpässe zu beseitigen, Überlastungen
zu reduzieren und die Fehlertoleranz zu erhöhen.
-
Aus
diesen und anderen Gründen
besteht ein Bedarf nach der vorliegenden Erfindung.
-
Zusammenfassung der Erfindung
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein Verfahren gemäß Anspruch
1 geschaffen.
-
Ein
Ausführungsbeispiel
der Erfindung umfasst ein Verfahren zum Verwalten eines Streaming-Mediendienstes.
Das Verfahren umfasst das Empfangen einer Anforderung nach einem
Streaming-Mediendienst von einem Clienten. Es wird darauf hingewiesen,
dass der Streaming-Mediendienst eine Mediendienstkomponente umfasst.
Zusätzlich dazu
umfasst das Verfahren das Auswählen
einer Dienstortverwaltungseinrichtung, zu der die Anforderung zu
liefern ist, aus einer Mehrzahl von Dienstortverwaltungseinrichtungen.
Ferner umfasst das Verfahren das Auswählen eines Dienstanbieters,
dem die Mediendienstkomponente zuzuweisen ist, aus einer Mehrzahl
von Dienstanbietern eines Netzwerks. Ferner umfasst das Verfahren
das Informieren des ausgewählten
Dienstanbieters über
seine Zuweisung, um die Mediendienstkomponente auszuführen, wodurch
ermöglicht
wird, dass der angeforderte Streaming-Mediendienst an Streamingmedien
ausgeführt
wird.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein Blockdiagramm, das einen Informationsfluss
in ein und aus einem System zeigt, zum Betreuen (Warten) und Liefern
von Inhalt zu einer Clientenvorrichtung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
2 ist
ein Blockdiagramm eines Systems zum Betreuen von Inhalt gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung.
-
3 ist
ein Flussdiagramm aus Operationen, die gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung zum Verwalten eines Streaming-Mediendienstes
ausgeführt
werden.
-
Detaillierte Beschreibung
-
Es
wird nun detailliert auf Ausführungsbeispiele
der Erfindung Bezug genommen, wobei Beispiele derselben in den beiliegenden
Zeichnungen dargestellt sind. Während
die Erfindung in Verbindung mit Ausführungsbeispielen beschrieben
wird, wird darauf hingewiesen, dass sie die Erfindung nicht auf
diese Ausführungsbeispiele
einschränken
sollen. Im Gegenteil, die Erfindung soll Alternativen, Modifikationen
und Entsprechungen abdecken, die in dem Schutzbereich der Erfindung
umfasst sein können, wie
er durch die beiliegenden Ansprüche
definiert ist. Ferner sind in der nachfolgenden, detaillierten Beschreibung
der vorliegenden Erfindung zahlreiche spezifische Details ausgeführt, um
ein tief greifendes Verständnis
der vorliegenden Erfindung zu liefern. Für einen Durchschnittsfachmann
auf dem Gebiet ist jedoch offensichtlich, dass die vorliegende Erfindung ohne
diese spezifischen Details ausgeführt werden kann. In anderen
Fällen
wurden bekannte Verfahren, Prozeduren, Komponenten und Schaltungen
nicht detailliert beschrieben, um die Aspekte der vorliegenden Erfindung
nicht unnötig
kompliziert zu machen.
-
Einige
Abschnitte der detaillierten Beschreibungen, die folgen, sind im
Hinblick auf Prozeduren, Logikblöcke,
Verarbeitung und andere symbolische Darstellungen von Operationen
an Datenbits in einem Rechensystem oder digitalen Systemspeicher präsentiert.
Diese Beschreibungen und Darstellungen sind die Mittel, die durch
Fachleute auf dem Gebiet der Datenverarbeitung verwendet werden,
um den Gegenstand ihrer Arbeit anderen Fachleuten auf dem Gebiet
am effektivsten zu übermitteln.
Eine Prozedur, ein Logikblock, ein Prozess etc. wird hierin und allgemein
als eine selbstkonsistente Sequenz aus Operationen und Anweisungen
betrachtet, die zu einem gewünschten
Ergebnis führen.
Die Operationen können
physische Manipulationen physischer Quantitäten umfassen. Üblicherweise,
aber nicht notwendigerweise, nehmen diese physischen Manipulationen
die Form elektrischer oder magnetischer Signale an, die in der Lage
sind, gespeichert, übertragen, kombiniert,
verglichen und anderweitig in einem Rechensystem oder einer ähnlichen
elektronischen Rechenvorrichtung manipuliert zu werden. Aus Gründen der
Einfachheit und Bezug nehmend auf die allgemeine Verwendung werden
diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen
oder ähnliches
Bezug nehmend auf die vorliegende Erfindung bezeichnet.
-
Es
sollte jedoch berücksichtigt
werden, dass all diese Ausdrücke
als referenzierende physische Manipulationen und Quantitäten interpretiert
werden sollen und ausschließlich
vorteilhafte Etiketten sind und weiter interpretiert werden sollen
im Hinblick auf Ausdrücke,
die allgemein in der Technik verwendet werden. Außer dis
ist spezifisch anderweitig angegeben, ist verständlich, wie aus der nachfolgenden
Erörterung
offensichtlich ist, dass in den Erörterungen der vorliegenden
Erfindung Erörterungen,
die Ausdrücke
verwenden, wie z. B. „Empfangen", „Auswählen", „Informieren", „Benachrichtigen", „Beibehalten", „Überwachen", „Ausführen", „Umleiten", „Schätzen", „Aktualisieren", „Senden", „Übermitteln", „Bestimmen", „Anwenden", "Verarbeiten", „Entscheiden", „Sicherstellen", „Übertragen", „Bereitstellen", „Erkennen", „Erzeugen", „Verwenden", „Entfernen", „Ausschließen", „Verwerfen", „Implementieren", „Einsetzen", „Speichern" oder ähnliches,
sich auf die Aktion und Prozesse eines Rechensystems oder einer ähnlichen
elektronischen Rechenvorrichtung beziehen, die Daten manipuliert
und transformiert. Die Daten sind als physische (elektronische)
Quantitäten
innerhalb der Register und Speichereinrichtungen des Rechensystems
dargestellt und werden in andere Daten transformiert (umgewandelt),
die auf ähnliche
Weise als physische Quantitäten
in den Speichereinrichtungen oder Registern oder anderen solchen
Informations-Speicher-, -Übertragungs-
oder -Anzeige-Vorrichtungen des Rechensystems dargestellt sind.
-
1 ist ein Blockdiagramm eines Systems 100 zum
Betreuen (Bedienen, Warten) von Inhalt aus einer Inhaltsquelle 110 und
zum Liefern des Dienstergebnisinhalts zu einer Clientenvorrichtung 150 gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung. Als Überblick
kontaktiert eine Clientenvorrichtung 150, die einen Dienst
sucht, das System 100 (z. B. Portal 140). Die
Clientenvorrichtung 150 wird zu einem Anbieter des Dienstes
umgeleitet (z. B. Dienstanbieter 130). Inhalt aus einer
Inhaltsquelle (z. B. Inhaltsquelle 110) wird zu der Clientenvorrichtung über den
Dienstanbieter gesendet (z. B. gestreamt). Somit ist das System 100 bei
einem Ausführungsbeispiel
zum Streamen von Medien von einer Inhaltsquelle zu einer Clientenvorrichtung
vorgesehen.
-
Zu
Zwecken der vorliegenden Anmeldung bezeichnen Streamingmedien, wie
hierin verwendet, Daten, die zwischen Netzwerkknoten auf kontinuierliche
Weise kommuniziert werden. Beispiele umfassen das Streamen von Audio
und Video, die strikte Zeitbeschränkungen bei der Lieferung aufweisen können. Wenn
bei diesen Beispielen Abschnitte dieser Ströme zu spät geliefert werden, werden
die zu spät
geliefert werden, werden die Abschnitte aufgrund von Unpünktlichkeit
ignoriert (sie sind zu spät, um
zu beeinflussen, was durch die Clientenanwendung abgespielt wird,
und sind daher größtenteils nutzlos).
Alternativ, wenn Abschnitte dieser Ströme zu früh geliefert werden, gehen sie
aufgrund von Puffereinschränkungen
innerhalb der Dienst- oder Clientenanwendung verloren. Andere Beispiele
von Daten, die auf kontinuierliche Weise übertragen werden, umfassen
Ströme
aus Messungen oder Ströme
aus Experimentergebnissen. Diese Typen von Strömen umfassen Wetterablesungen
von entfernten Sensoren und Temperaturablesungen aus Kühlsystemen. Bei
diesen Beispielen gibt es keine strikten Zeiteinschränkungen
für die
Lieferung. Die Datenübertragung
weist jedoch eine Zeitkomponente auf, die am besten durch nahtlos übergehende Übertragungen bedient
wird.
-
Als
solches hat durch Verwenden von Streamingmedien die Wirkung einer
Dienstplatzierung eine langlebige Wirkung auf Ressourcen von sowohl dem
Netzwerk als auch den Serverknoten. Zum Beispiel umspannen beim
Transcodieren eines Films zum Betrachten unter Streaming-Bedingungen
die Daten bis zu zwei Stunden und daher kann die Transcodier-Sitzung
bis zu zwei Stunden der Serverzeit umspannen. Für andere Typen eines Streamings
(z. B. Instrumentablesungen) kann die Dauer des Stroms und des Dienstes,
der an dem Strom ausgeführt
wird, unendlich sein. Die Rechenressourcen des Serverknotens werden
für lange
Zeitperioden unbestimmter Dauer beeinflusst. Auf ähnliche
Weise werden die Netzwerkressourcen an dem Serverknoten, auf allen
Verknüpfungen
zwischen dem Server und dem Inhaltsanbieter und zwischen dem Server und
der Clientenmaschine für
lange Zeitperioden mit unbestimmter Dauer beeinflusst. Dies steht
in großem
Kontrast zu klassischeren Netzwerktransaktionen, bei denen die Datenübertragung
in einem Block ausgeführt
wird, häufig
in weniger als Sekunden oder Minuten, und bei denen der Dienst,
der an den Daten ausgeführt
wird, eine beschränkte
Dauer aufwiest.
-
Bei
einem Ausführungsbeispiel,
das sich mit Streamingmedien befasst, sind die Nachfolgenden einige
der Punkte, die betrachtet werden sollen; d. h., im Vergleich zu
einer Webbasierten Verteilung und Web-basierten Geschäfts-Transaktionen und/oder Downloads
weisen Streamingmedien die folgenden Charakteristika auf, die adressiert
werden müssen:
eine
große
Datenmenge – der
Endpunkt der Daten ist möglicherweise
nicht bekannt und das Zwischenspeichern einer Anzahl von Inhaltselementen
kann eine wesentliche Menge an Speicherressourcen verbrauchen;
zeitlich
geordnete Daten – die
zeitliche Reihenfolge, in der Daten empfangen werden, kann wichtig
sein;
ein Zugriff kann möglicherweise
nicht fertiggestellt werden – z.
B. kann möglicherweise
nur auf einen gewissen Abschnitt eines Inhaltselements zugegriffen werden
(z. B. die ersten paar Minuten eines ganzen Films);
die benötigte Bandbreite
kann nicht bestimmt werden ohne einen gewissen Grad an Kenntnis
des betreffenden Mediums – z.
B. kann eine Videodatei eine hohe räumliche Auflösung haben
und eine andere Videodatei möglicherweise
nicht, und damit, während die
Dateien, obwohl beides Videodateien sind, gleich erscheinen können, kann
ihre entsprechende Bandbreite relativ unterschiedlich sein;
Jitter
bei Latenzzeit oder Bandbreite kann problematisch sein – eine konsistente
Latenzzeit kann akzeptabel sein, aber eine Latenzzeit, die während einer Sitzung
bedeutend variiert, kann aufgrund eines Pufferüberlaufs oder -unterlaufs problematisch
sein;
unangemessene Rechen- oder Bandbreitenressourcen können Ergebnisse
aufgrund von Zeitbeschränkungen
nutzlos machen;
Daten sind üblicherweise
codiert (komprimiert), und so kann ein Verlust oder eine Verspätung eines
Teils der Daten Konsequenzen für
die Decodierung (Dekomprimierung) nachfolgender Daten haben;
verlorene
Daten werden üblicherweise
aufgrund von Zeitbeschränkungen
nicht neu übertragen;
und
eine Zustandsaufzeichnung sollte für alle Clientenvorrichtungen
beibehalten werden – für Streamingmedien
muss der Streaming-Knoten ein Streamen von Daten fortsetzen und
kann nicht warten, Zustandsinformationen von Clienten zu empfangen.
-
Das
Ergebnis dieser Differenzen ist eine wesentliche Zunahme des Bedarfs
nach der Verwaltung und Überwachung
von Diensten, die an Streamingmedien ausgeführt werden.
-
Ein
System 100 umfasst eine Mehrzahl von Dienstortverwaltungseinrichtungen,
beispielhaft gezeigt durch Dienstortverwaltungseinrichtungen 120 und 122,
eine Mehrzahl von Dienstportalen, beispielhaft gezeigt durch Dienstportale 140 und 142,
und eine Mehrzahl von Dienstanbietern, beispielhaft gezeigt durch
Dienstanbieter 130, 132, 134 und 136. Die
Dienstortverwaltungseinrichtungen 120 und 122, die
Portale 140 und 142 und die Dienstanbieter 130, 132, 134 und 136 sind
logische Entitäten,
die auf einer einzelnen Vorrichtung oder unter Verwendung mehrerer
Vorrichtungen implementiert sein können. Somit kann das System 100 z.
B. darstellend für
ein einzelnes Computersystem sein, das die Funktionalität der Dienstortverwaltungseinrichtungen 120, 122, der
Portale 140 und 142 und der Dienstanbieter 130, 132, 134 und 136 implementiert.
Alternativ kann das System 100 unterschiedliche Knoten
oder Vorrichtungen in einem Computersystemnetzwerk umfassen. Diese
Knoten können
Servercomputersysteme, Schalter, Router oder ähnliches sein, mit Verarbeitungs-
und Speicher-Fähigkeiten,
die ausreichend sind, um die verschiedenen Funktionalitäten auszufüh ren, die
hierin beschrieben werden. Es wird darauf hingewiesen, dass die
Funktionalität,
die durch System 100 bereitgestellt wird, unter Verwendung
von einer oder mehreren Vorrichtungen implementiert sein kann. Ferner,
obwohl das System 100 mit Portalen 140 und 142 beschrieben
ist, können
mehr als oder weniger als zwei dieser Elemente vorhanden sein. Zusätzlich dazu
können
mehr oder weniger Dienstanbieter vorhanden sein als die Dienstanbieter 130, 132, 134 und 136.
Ferner können
mehr Dienstortverwaltungseinrichtungen vorhanden sein als die Dienstortverwaltungseinrichtungen 120 und 122.
-
Das
System 100 kann in einem existierenden Computersystemnetzwerk
implementiert sein, durch Überlagern
der Funktionalität
der Dienstortverwaltungseinrichtungen 120, 122,
der Dienstanbieter 130, 132, 134 und 136 und/oder
der Portale 140 und 142 auf das existierende Netzwerk.
Das heißt,
die gesamte oder ein Teil der Funktionalität, die durch das System 100 bereitgestellt
wird, kann in existierenden Netzwerkknoten eingelagert sein. Alternativ
kann das ganze oder ein Teil des Systems 100 durch Addieren von
Knoten in ein existierendes Netzwerk implementiert sein. Zum Beispiel
können
existierende Inhaltsquellen und Portale verwendet werden, wobei
Knoten zum Betreuen (Bedienen) von Inhalt und zum Verwalten von
Dienstanbietern hinzugefügt
sind.
-
In 1 kann das System 100 mit einer
Inhaltsquelle 110 und einer Clientenvorrichtung 150 kommunizieren.
Obwohl das System 100 mit einer einzelnen Inhaltsquelle 110 und
einer Clientenvorrichtung 150 beschrieben ist, können mehr
als eines von jedem dieser Elemente vorhanden sein. Die Kommunikation
zwischen dem System 100, der Inhaltsquelle 110 und
der Clientenvorrichtung 150 sowie die Kommunikation innerhalb
des Systems 100 kann verdrahtete und/oder drahtlose Kommunikationstechniken
umfassen.
-
Die
Portale 140 und 142 können jeweils gut publizierte
Portalorte sein, die jeweils als der erste Kontaktpunkt zwischen
der Clientenvorrichtung 150 und dem System 100 dienen
können.
Es wird darauf hingewiesen, dass das Portal 140 eine zusätzliche Funktion
des Überwachens
ausführen
kann, zu Rechnungsstellungszwecken, wie lange eine Clientenvorrichtung
(z. B. 150) mit dem System 100 gekoppelt war,
und welcher Inhalt empfangen wurde. Die Inhaltsquelle 110 speichert
und liefert Zugriff auf ein oder mehrere Inhaltselemente.
-
Die
Clientenvorrichtung 150 kann praktisch jede Art einer Benutzervorrichtung
sein, wie z. B., aber nicht ausschließlich, ein Desktop- oder Laptop-Computersystem,
ein videounterstütztes,
tragbares Computersystem (z. B. ein tragbarer, digitaler Assistent),
ein Zellentelefon oder jeglicher anderer Typ einer Rechenvorrichtung.
Die Clientenvorrichtung 150 kann verwendet werden, um ein
Inhaltselement anzufordern und nachfolgend zu empfangen. Alternativ
kann die Clientenvorrichtung 150 verwendet werden, um ein
oder zwei Inhaltselemente zu dem System 100 zu liefern.
Zum Beispiel kann die Clientenvorrichtung 150 Inhalt zu
einem Dienstanbieter (z. B. 130) für einen Dienst liefern, der
an dem Inhalt ausgeführt
werden soll (z. B. Videohintergrundentfernung), bevor er nachfolgend
durch eine Inhaltsquelle (z. B. 110) gespeichert oder zu
einer anderen Clientenvorrichtung (nicht gezeigt) gesendet wird.
-
In 1 kann sich ein Inhaltselement auf Medien-
oder Nichtmedien-Daten beziehen, die live oder aufgezeichnet sein
können.
Zum Beispiel kann ein Inhaltselement Folgendes umfassen, ist aber nicht
darauf beschränkt:
videobasierte Daten, audiobasierte Daten, bildbasierte Daten, Webseitenbasierte
Daten, Graphikdaten, textbasierte Daten oder eine Kombination derselben.
Zum Beispiel kann ein Inhaltselement ein Film mit DVD-Qualität (DVD =
digital video disc) sein.
-
Ein
Diensttyp kann an einem Inhaltselement ausgeführt werden, bevor der Inhalt
zu der Clientenvorrichtung 150 geliefert wird. Alternativ
kann ein Diensttyp an einem Inhaltselement ausgeführt werden,
nachdem die Lieferung des Inhalts von der Clientenvorrichtung 150 zu
einem Dienstanbieter (z. B. 130) begonnen hat. Diensttypen
können
die Verarbeitung eines Inhaltselements und/oder die Analyse eines
Inhaltselements umfassen. Zum Beispiel können die Diensttypen eine Videoverarbeitung
umfassen, wie z. B., aber nicht ausschließlich, Transcodieren, Neudimensionieren
des Videos, Jitterentfernung, dynamisches Schneiden und Neudimensionieren
des Videostroms basierend auf räumlichen
Grenzen, bestimmt aus der Flächenerfassung,
Auslesung optischer Zeichen aus dem Video, Videohintergrundentfernung
und ähnliches.
Zusätzlich
dazu können andere
Diensttypen eine Audioverarbeitung umfassen, wie z. B., aber nicht
ausschließlich,
eine Audiohintergrundentfernung, Audiogeräuschlosigkeitserfassung, Audio-Beschleunigung-
oder Verlangsamung, Audioverbesserung, Rauschreduzierung, Spracherkennung,
Sprecheridentifizierung, Sprache/Musik-Unterscheidung, Lacherfassung,
Musikanalyse und ähnliches.
-
Die
Analyse eines Inhaltselements kann umfassen, ist jedoch nicht beschränkt auf
Spracherkennung, die eine Textabschrift erzeugt, oder Optikzeichenerkennung,
die auf ein oder mehrere Videobilder eines Videostroms angewendet
wird, um eine Textausgabe zu erzeugen. Ein auf Video basierender Personenverfolgungsdienst,
der einen Strom aus Aufzeichnungen aus Personen-Orten und -Zeiten ausgibt,
ist ein anderes Beispiel, das verwendet werden kann, um die Analyse
eines Inhaltselements darzustellen. Die Orte können ausgedrückt sein
im Hinblick auf Bildkoordinaten, können jedoch nützlicher sein,
wenn sie im Hinblick auf Physische-Welt-Koordinaten ausgedrückt sind
(z. B. „x,
y"-Koordinaten Bezug
nehmend auf den Boden eines Raums). Ein anderes Beispiel, das verwendet
werden kann, um eine Analyse eines Inhaltselements darzustellen,
bezieht sich auf einen Gesichtsdetektordienst, der Schnappschüsse von
Gesichtern ausgibt, die aus einem Videostrom extrahiert werden,
die Zeiten und Bildorte, an denen die Schnappschüsse erfasst wurden, Identitäten für die Gesichter
und/oder die Klassifizierung der Gesichter. Ein Teil dieser Informationen
kann als Textdaten dargestellt sein.
-
Wie
hierin verwendet, kann ein Inhaltselement betreut worden sein, kann
dabei sein, betreut zu werden, kann nicht betreut werden oder kann noch
nicht betreut worden sein. Anders ausgedrückt kann ein Inhaltselement,
egal ob es betreut wird oder nicht, weiterhin als ein Inhaltselement
bezeichnet werden. Ein Betreuen eines Inhaltselements kann die Analyse
oder Verarbeitung eines Inhaltselements umfassen. Zur Einfachheit
der Erörterung
kann das Ergebnis der Betreuung eines Inhaltselements hierin unter
Verwendung von Ausdrücken
bezeichnet werden, wie z. B. „Dienstergebnis" oder „Dienstergebnisinhalt" oder „Dienstergebnisdaten". Dienstergebnisinhalt
kann bestehen aus, ist jedoch nicht beschränkt auf: eine modifizierte
Version des betreuten Originalinhaltselements (z. B. wenn eine Hintergrundentfernung
auf einen Videostrom angewendet wird); ein Inhaltselement, das aus
dem Originalinhaltselement hergeleitet ist (z. B. wenn eine optische
Zeichenerkennung verwendet wird, um eine Textausgabe zu erzeugen);
ein Inhaltselement, das durch einen Dienstanbieter geleitet wird
und nicht modifiziert sondern nur weitergeleitet wird (z. B. Inhalt,
der keine Transcodierung erfordert, wenn er durch den Transcodierdienstanbieter
empfangen wird); oder ein Inhaltselement, das vorangehend zu einem
Dienstanbieter gesendet wurde und nun auf dem Dienstanbieter zwischengespeichert
(gespeichert) ist (z. B. Inhalt, der vorangehend betreut wurde und
nun in dem Speicher an dem Dienstanbieter gespeichert ist), so dass
er zu Anforderern geliefert werden kann. Zusätzlich dazu kann Dienstergebnisinhalt
aus jeglicher Kombination der obigen Beispiele bestehen.
-
Weiterhin
Bezug nehmend auf 1 können Dienste,
wie jene, die oben beschrieben wurden, durch die Dienstanbieter 130, 132, 134 und 136 ausgeführt werden.
Die Dienstanbieter 130, 132, 134 und 136 funktionieren
jeweils, um einen oder mehrere Diensttypen anzubieten/zu liefern.
Das heißt,
die Dienstanbieter 130, 132, 134 und 136 können jeweils mehrere
und unterschiedliche Diensttypen liefern. Zum Beispiel kann der
Dienstanbieter 130 zum Transcodieren eines Inhaltselements
und zur Hintergrundentfernung eines anderen Inhaltselements verwendet
werden. Unterschiedliche Diensttypen können parallel an unterschiedlichen
Dienstelementen ausgeführt
werden. Das heißt,
die Dienstanbieter 130, 132, 134 und 136 können Dienste
an unterschiedlichen aber gleichzeitigen Inhaltsströmen ausführen. Die
Dienstanbieter 130, 132, 134 und 136 können auch
Zwischenspeicherdienste liefern. Zum Beispiel können die Dienstanbieter 130, 132, 134 und 136 ein
Inhaltselement ganz oder teilweise zwischenspeichern, bevor das
Inhaltselement durch den Dienstanbieter 130, 132, 134 oder 136 betreut
wird. Auf ähnliche
Weise kann der Dienstanbieter 130, 132, 134 oder 136 das
Dienstergebnis ganz oder teilweise zwischenspeichern, bevor der
Dienstergebnisinhalt zu der Clientenvorrichtung 150 weitergeleitet wird.
-
Dienstortverwaltungseinrichtungen 120 und 122 funktionieren,
um einen Dienstanbieter auszuwählen
(z. B. Dienstanbieter 130, 132, 134 und 136), der
einen angeforderten Diensttyp an einem Inhaltselement ausführen kann,
um ein Dienstergebnis zu erzeugen, das zu einer Clientenvorrichtung 150 geliefert
wird. Ein oder mehrere Dienstanbieter sind jeder Dienstortverwaltungseinrichtung
bekannt, und jede Dienstortverwaltungseinrichtung wählt unter
den Dienstanbietern aus, die ihr bekannt sind, um einen Dienstanbieter
zuzuweisen, um einen angeforderten Dienst auszuführen. Eine Dienstortverwaltungseinrichtung
kann derart betrachtet werden, dass sie jeglichen Dienstanbieter "beaufsichtigt" oder „eine Aufsicht
ist für
denselben", der
aus der Gruppe von Dienstanbietern ist, aus denen sie einen Dienstanbieter
auswählt,
um einen angeforderten Dienst auszuführen. Bei verschiedenen Ausführungsbeispielen der
Erfindung können
die Sätze
aus Dienstanbietern, die durch zwei unterschiedliche Dienstortverwaltungseinrichtungen
beaufsichtigt werden, getrennt sein (z. B. keine gemeinsa men Dienstanbieter
enthalten), genau gleich sein oder teilweise überlappend sein (z. B. einige
Dienstanbieter sind in beiden Sätzen,
aber einige, die in einem Satz sind, sind nicht in dem anderen).
Zum Beispiel können
Bezug nehmend auf 1 die Dienstanbieter 130, 132, 134 und 136 und
jegliche anderen verfügbaren
Dienstanbieter alle durch beide Dienstortverwaltungseinrichtungen 120 und 122 beaufsichtigt
werden. Alternativ können die
Dienstanbieter 130 und 132 nur durch die Dienstortverwaltungseinrichtung 120 beaufsichtigt werden,
während
die Dienstanbieter 134 und 136 nur durch die Dienstortverwaltungseinrichtung 122 beaufsichtigt
werden können.
Bei einem anderen Ausführungsbeispiel
können
die Dienstanbieter 130, 132 und 134 nur
durch die Dienstortverwaltungseinrichtung 120 beaufsichtigt
werden, während
die Dienstanbieter 134 und 136 nur durch die Dienstortverwaltungseinrichtung 122 beaufsichtigt
werden.
-
Bei
einigen Ausführungsbeispielen
führt jede Dienstortverwaltungseinrichtung
(z. B. 120 und 122 aus 1)
eine Aufzeichnung oder Auflistung der Dienstanbieter, die sie beaufsichtigt.
Bei einigen Ausführungsbeispielen
sind für
jeden Dienstanbieter (z. B. 130, 132, 134 und 136 aus 1) die Diensttypen, die jeder Dienstanbieter
ausführen
kann oder veranlasst werden kann, auszuführen, auch jeder der Dienstortverwaltungseinrichtungen
bekannt und von derselben aufgezeichnet, die denselben beaufsichtigen.
Ferner sind bei einigen Ausführungsbeispielen für jeden
Dienstanbieter die verfügbaren
Ressourcen, die jedem der Dienstanbieter zugeordnet sind, auch jeder
der Dienstortverwaltungseinrichtungen bekannt und von derselben
aufgezeichnet, die denselben beaufsichtigt. Die „verfügbaren Ressourcen" eines Dienstanbieters
können
durch auf die Rechen-, Speicher-, Netzwerkbandbreiten-, Hardware-
und andere Typen von -Ressourcen beziehen, die durch den Dienstanbieter
verwaltet werden und die hin zu dem Ausführen eines angeforderten Dienstes
angeordnet sein können.
Im Allgemeinen können
die verfügbaren
Ressourcen eines Dienst anbieters weniger sein als seine Gesamtressourcen.
In 1 z. B., wenn die Dienstortverwaltungseinrichtung 120 die Dienstanbieter 130 und 132 beaufsichtigt,
dann sind die verfügbaren
Ressourcen, die den Dienstanbietern 130 und 132 zugeordnet
sind, der Dienstortverwaltungseinrichtung 120 bekannt und
von derselben aufgezeichnet. Die Ressourcen, die den Dienstanbietern 130, 132, 134 und 136 zugeordnet
sind, können
Rechen- oder Hardware-Ressourcen umfassen, wie z. B., aber nicht
beschränkt
auf, Prozessorgeschwindigkeit, Gesamtspeicherkapazität und Spezialprozessoren,
die jedem der Dienstanbieter zugeordnet sind. Die Ressourcen, die
den Dienstanbietern 130, 132, 134 und 136 zugeordnet
sind, können auch
Netzwerkressourcen umfassen, wie z. B., aber nicht beschränkt auf,
die Gesamtbandbreite, die an jedem der Dienstanbieter verfügbar ist,
zum Empfangen von Inhalt und zum Senden von Inhalt. Im Allgemeinen
ist bei einem Ausführungsbeispiel
die Dienstortverwaltungseinrichtung 120 in Kenntnis über die
verfügbaren
Ressourcen der Dienstanbieter (z. B. 130 und 132),
die sie beaufsichtigt, während
die Dienstortverwaltungseinrichtung 122 in Kenntnis über die
verfügbaren
Ressourcen der Dienstanbieter ist (z. B. 134 und 136),
die sie beaufsichtigt.
-
Bezug
nehmend auf 1 können bei einigen Ausführungsbeispielen
die Kenntnisse und die Aufzeichnungen der Ressourcen der verfügbaren Dienstanbieters
(z. B. 130, 132, 134 und 136),
die durch die Dienstortverwaltungseinrichtungen (z. B. 120 und 122)
geführt
werden, teilweise auf Informationen basieren, die vor dem Empfang
von jeglichen Anforderungen nach Diensten von den Clientenvorrichtungen
(z. B. 150) durch die Dienstortverwaltungseinrichtungen
erhalten werden. Diese Informationen können als „statische" Ressourceninformationen bezeichnet
werden. Bei einigen Ausführungsbeispielen
können
die Kenntnisse und Aufzeichnungen der verfügbaren Dienstanbieterressourcen,
die durch die Dienstortverwaltungseinrichtungen geführt werden,
im Lauf der Zeit aktualisiert werden, nachdem Anforderungen nach
Diensten empfangen und durch die Dienstortverwaltungsein richtungen
zugewiesen wurden, basierend auf Informationen, die von den Dienstanbietern
empfangen werden. Diese Informationen können hierin als „dynamische" Ressourceninformationen
bezeichnet werden. Eine Dienstortverwaltungseinrichtung kann sowohl
eine abfragebasierte als auch übermittlungsbasierte
Datensammlung verwenden, um ihre Aufzeichnungen mit dynamischen
Ressourceninformationen zu aktualisieren. Eine Abfragebasierte Ressourceninformationssammlung
kann die Übertragung
von Anforderungen zu Dienstanbietern (z. B. 130 und 132)
umfassen, durch eine Beaufsichtigungs-Dienstortverwaltungseinrichtung (z.
B. 120), als Mittel zum Erhalten von Informationen von
den Dienstanbietern im Hinblick auf Ressourcenverfügbarkeit.
Eine übermittlungsbasierte
Informationssammlung kann die periodische „Übermittlung" oder Übertragung von Informationen im
Hinblick auf Ressourcenverfügbarkeit
zu einer Dienstortverwaltungseinrichtung (z. B. 120) durch
die Dienstanbieter (z. B. 130 und 132) umfassen,
die sie beaufsichtigt. Eine Kombination sowohl aus abfragebasierter
als auch übermittlungsbasierter
Informationssammlung kann gemäß einem
Ausführungsbeispiel
eingesetzt werden. Bei einigen Ausführungsbeispielen können die
Kenntnisse und die Aufzeichnungen der verfügbaren Dienstanbieterressourcen,
die durch die Dienstortverwaltungseinrichtungen geführt werden,
teilweise auf statischen und dynamischen Ressourceninformationen
basieren.
-
Bei
einigen Ausführungsbeispielen,
wenn eine Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
eine Anforderung nach einem Inhaltselement empfängt, die das Ausführen eines
Dienstes an dem Inhaltselement mit sich bringt, kann die Dienstortverwaltungseinrichtung
(z. B. 120 oder 122) eine Vorhersage oder Schätzung der
Ressourcen treffen, die zum Ausführen
dieses Dienstes benötigt
werden. Wenn ein Dienstanbieter ausgewählt wird, einen neu angeforderten
Dienst auszuführen,
kann die Aufzeichnung der Dienstortverwaltungseinrichtung über den
Schätzwert
der von dem Dienstanbieter verfügbaren
Ressourcen überprüft werden,
um zu zeigen, dass diese Ressourcen zumindest teilweise dem Ausführen des
neu angeforderten Dienstes zugeordnet sind. Wenn z. B. erwartet
wird, dass der angeforderte Dienst N Megabyte Speicher bei dem Dienstanbieter 130 erfordert,
dann wird die Aufzeichnung der Dienstortverwaltungseinrichtung im
Hinblick auf die verfügbaren
Speicherressourcen des Dienstanbieters 130 aktualisiert,
um anzuzeigen, dass N Megabyte Speicher zugeordnet wurden. Alternativ
kann die Menge an verfügbaren
Speicherressourcen, die durch die Dienstortverwaltungseinrichtung
(z. B. 120 oder 122) für den Dienstanbieter 130 aufgezeichnet ist,
um N Megabyte reduziert werden. Wie ersichtlicht ist, kann die Aufzeichnung
von verfügbaren
Ressourcen, die einem Dienstanbieter zugeordnet sind, auf ähnliche
Weise eingestellt (z. B. erhöht)
werden, wenn Z. B. ein Dienst durch einen Dienstanbieter fertiggestellt
wird.
-
Wie
vorangehend erwähnt
wurde, können mehrere
Clientenvorrichtungen jeweils an einer Sitzung teilnehmen, die das
Anfordern umfassen kann, dass ein Dienst an einem Inhaltselement
ausgeführt wird.
Für jede
Sitzung, die durch die Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
gehandhabt wird, bei der ein Inhaltselement betreut werden soll, wählt die
Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
einen Dienstanbieter aus, um den Dienst auszuführen. Die verschiedenen Ausführungsbeispiele
der oben beschriebenen Methode werden an jede Sitzung im Ablauf
befindliche Sitzung angewendet, so dass die Dienstortverwaltungseinrichtung
(z. B. 120 oder 122) eine aktualisierte Aufzeichnung
der Ressourcen hat, zugeordnet durch, und/oder der Ressourcen, verfügbar auf
jedem Dienstanbieter, der durch die Dienstortverwaltungseinrichtung
(z. B. 120 oder 122) beaufsichtigt wird.
-
Im
Wesentlichen weist die Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
gemäß einem Ausführungsbeispiel
ein Budget aus Ressourcen auf, die zum Ausführen von Diensten verfügbar sind.
Genauer gesagt weist die Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
ein Budget der Res sourcen auf, die an jedem Dienstanbieter verfügbar sind,
den sie beaufsichtigt. Für
jede Sitzung, durch die angefordert wird, dass ein Dienst ausgeführt wird,
kann eine Schätzung
der Ressourcen, die bei diesem Dienst beteiligt sind, durch die
Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
ausgeführt
werden. Für
jede Sitzung, die zu einem Dienstanbieter abgeschickt wird, kann
das Budget von verfügbaren
Ressourcen für
diesen Dienstanbieter um den Schätzwert
reduziert werden. Wenn Sitzungen abgeschlossen sind oder wenn Dienste
fertiggestellt sind, kann das Budget von verfügbaren Ressourcen der Dienstortverwaltungseinrichtung
(z. B. 120 oder 122) vergrößert werden, um zu reflektieren,
dass die Ressourcen wieder verfügbar
geworden sind. Aktualisierungen des Budgets von verfügbaren Ressourcen
können dynamisch
erhalten werden, durch eine abfragebasierte oder übermittlungsbasierte
Datensammlung zwischen der Dienstortverwaltungseinrichtung und den
Dienstanbietern, die sie beaufsichtigt, während ein oder mehrere Dienste
bei den Dienstanbietern in Ausführung
sind. Der Schätzwert
der Größe und Verteilung
des Ressourcenbudgets ist dadurch immer relativ aktuell und kann
durch die Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
als eine Basis zum Auswählen
eines Dienstanbieters für
jede neue Sitzung verwendet werden.
-
Es
wird darauf hingewiesen, dass bei alternativen Ausführungsbeispielen
ein Dienstanbieter durch die Dienstortverwaltungseinrichtung (z.
B. 120 oder 122) ausgewählt sein kann, um einen Dienst
basierend auf den Ressourcen auszuführen, die an jedem Dienstanbieter
verfügbar
sind, oder basierend auf den Ressourcen, die bereits zugeordnet
sind, ohne Berücksichtigung
des Schätzwerts
der Ressourcen, die benötigt
werden, um diesen Dienst auszuführen,
oder ein Dienstanbieter kann durch die Dienstortverwaltungseinrichtung
(z. B. 120 oder 122) ausgewählt sein, um einen Dienst auszuführen, basierend
auf dem Schätzwert
der Ressourcen, die benötigt
werden, um diesen Dienst auszuführen,
ohne Berücksichtigung
der Ressourcen, die für
jeden Dienstanbieter verfügbar
oder vorangehend zugeordnet sind.
-
Zwei
mit dem Netzwerk verbundene Rechenvorrichtungen können als „nahe beieinander" im Sinn eines Netzwerks
erachtet werden, wenn die Latenzzeit und/oder Anzahl von Netzwerk-„Sprüngen" zwischen denselben gering ist und/oder
wenn die Bandbreite zwischen denselben hoch ist. In 1 kann
ein Ausführungsbeispiel
gemäß der Erfindung die
Funktionalität
umfassen, dass eine einzelne Dienstortverwaltungseinrichtung (z.
B. 120 oder 122) eine „Region" von Dienstanbietern verwalten würde, die „nahe" bei derselben in
einem Netzwerk-Sinn sind. Das Portal (z. B. 140 oder 142),
das die Clientenvorrichtung (z. B. 150) kontaktiert, kann
dann die Dienstanforderung zu einer ausgewählten Dienstortverwaltungseinrichtung
weiterleiten, die nahe an dem anfordernden Clienten, der Inhaltsquelle
oder beidem ist. Zum Beispiel kann die Dienstortverwaltungseinrichtung
basierend auf der Inhaltsquelladresse oder basierend auf der gemessenen
Nähe derselben an
der Inhaltsquell-Netzwerkadresse oder der Clientennetzwerkadresse
oder beidem ausgewählt
sein. Die Dienstortverwaltungseinrichtungsregionen können überlappen.
Zum Beispiel kann jede Dienstortverwaltungseinrichtung einen oder
mehrere derselben „Grenz"-Dienstanbieter beaufsichtigen,
die ungefähr
so nahe zu derselben sind, wie sie zu einer oder mehreren anderen
Dienstortverwaltungseinrichtungen sind. In diesen Fällen kann
jede Dienstortverwaltungseinrichtung Aufzeichnungen ihrer Dienstzuweisungen
zu „benachbarten" Dienstortverwaltungseinrichtungen
weiterleiten, die zumindest einen Dienstanbieter gemeinsam beaufsichtigen,
so dass diese separaten Dienstortverwaltungseinrichtungen nicht
unabhängig
zu viele Dienste zu „Grenz"-Dienstanbietern zuweisen.
-
Zusätzlich dazu,
wenn eine Dienstortverwaltungseinrichtung alle Aufzeichnungen von
Dienstzuweisungen zu zumindest einer anderen Dienstortverwaltungseinrichtung
weiterleitet, kann die Dienstverwaltungsfunktionalität fehlertolerant gemacht
werden. Wenn z. B. ein Portal (z. B. 140 oder 142)
eine gegebene Dienstortverwaltungseinrichtung nicht kontaktieren
kann (z. B. 120), kann es eine Anforderung zu einer benachbarten
Dienstortverwaltungseinrichtung weiterleiten (z. B. 122),
zusammen mit den Informationen, dass die erste Dienstortverwaltungseinrichtung
nicht verfügbar
ist. Dies fordert die verfügbare,
benachbarte Dienstortverwaltungseinrichtung auf, die Verwaltung
der „Grenz"-Dienstanbieter und
einige oder alle der Dienstanbieter zu übernehmen, die in der Region
der ausgefallenen Dienstortverwaltungseinrichtung sind.
-
Bei
einigen Ausführungsbeispielen
verwenden Dienstortverwaltungseinrichtungen Informationen über eine
oder mehrere benachbarte Dienstortverwaltungseinrichtungen, um einen
größeren Ausgleich
bei der Verteilung der Arbeitslast zwischen den Dienstortverwaltungseinrichtungen
zu erreichen. Zum Beispiel kann eine Dienstortverwaltungseinrichtung
mit schwer überlasteten
Dienstanbietern, oder die Dienstanforderungen von Portalen mit sehr
hoher Rate empfängt,
beginnen, einige der Dienstanforderungen, die sie empfängt, auf
benachbarte Dienstortverwaltungseinrichtungen „abzuladen". Genauer gesagt, wenn die Rate, mit
der eine gegebene Dienstortverwaltungseinrichtung Dienstanforderungen
von Portalen empfängt
eine Schwelle überschreitet,
oder wenn eine Warteschlange solcher Anforderungen, die für eine Aktion
durch den Dienstort anstehend sind, eine Schwellenlänge überschreitet, oder
wenn die Aufzeichnungen verfügbarer
Ressourcen auf Dienstanbietern, die durch die Dienstortverwaltungseinrichtung
verwaltet werden, anzeigt, dass die gesamten verfügbaren Ressourcen
in einer Kategorie unter eine Schwelle fallen, kann diese Dienstortverwaltungseinrichtung
eine zweite Dienstortverwaltungseinrichtung auswählen, zu der zukünftige und/oder
anhängige
Dienstanforderungen weitergeleitet werden, bis die auslösende Bedingung nicht
mehr erfüllt
wird.
-
Bei
einigen Ausführungsbeispielen
können die
Dienstortverwaltungseinrichtungen die Sätze aus Dienstanbietern anpassen,
die sie beaufsichtigen. Dieser Anpassungsprozess kann aus dem Hinzufügen neuer
Dienstanbieter zu dem Satz, der durch eine gegebene Dienstortverwaltungseinrichtung
beaufsichtigt wird, dem Entfernen von Dienstanbietern aus diesem
Satz oder beidem bestehen. In einigen Fällen kann diese Anpassung zu
einer Erhöhung
der Anzahl von Dienstanbietern führen,
die durch eine gegebene Dienstortverwaitungseinrichtung beaufsichtigt
werden, während
sie in anderen Fällen
zu einer Verringerung oder keiner Änderung dieser Anzahl führen können.
-
Bei
einigen Ausführungsbeispielen
wird die Anpassung des überwachten
Satzes aus Dienstanbietern für
eine Dienstortverwaltungseinrichtung (z. B. 120) ausgelöst, wenn
die Rechenlast der Dienstortverwaltungseinrichtung eine Schwelle überschreitet.
Ansprechend darauf benachrichtigt die Dienstortverwaltungseinrichtung
eine zweite Dienstortverwaltungseinrichtung (z. B. 122),
dass sie die Beaufsichtigung eines Teilsatzes der Dienstanbieter übernehmen
sollte, die gegenwärtig
durch die Dienstortverwaltungseinrichtung 120 beaufsichtigt werden.
Bei einem Ausführungsbeispiel
wird die Übertragung
der Beaufsichtigung durch das Senden von Aufzeichnungen im Hinblick
auf die verfügbaren Ressourcen,
Dienstzuweisungsstatus und andere Informationen für die Dienstanbieter,
deren Beaufsichtigung übertragen
werden soll, von der Dienstortverwaltungseinrichtung 120 zu
der Dienstortverwaltungseinrichtung 122 ermöglicht.
Bei anderen Ausführungsbeispielen
ist diese Übertragung
von Dienstanbieteraufzeichnungen zwischen Dienstortverwaltungseinrichtungen
weggelassen. Bei wiederum anderen Ausführungsbeispielen benachrichtigt die
Dienstortverwaltungseinrichtung 120 die Dienstanbieter,
dass sie das Beaufsichtigen beenden wird und dass dieselben das
Senden von Ressourcenstatusinformationen zu der neuen, beaufsichtigenden
Dienstortverwaltungseinrichtung 120 beginnen sollten. Bei
anderen Ausführungsbeispielen
initiiert die Dienstortverwaltungs einrichtung 122 eine
abfragebasierte oder übermittlungsbasierte
Informationssammlung für
jeden der neu beaufsichtigten Dienstanbieter auf der Liste, die
derselben von der Dienstortverwaltungseinrichtung 120 gesendet
wurde.
-
Bei
einigen Ausführungsbeispielen
wird die Anpassung des beaufsichtigten Satzes aus Dienstanbietern
für eine
Dienstortverwaltungseinrichtung (z. B. 120) ausgelöst, wenn
die Gesamtverfügbarkeit
von Ressourcen in einer Kategorie über alle beaufsichtigten Dienstanbieter
hinweg unter einen Schwellenwert fällt. Ansprechend darauf fordert die
Dienstortverwaltungseinrichtung von einer zweiten Dienstortverwaltungseinrichtung
(z. B. 122) die Erlaubnis, die Beaufsichtigung eines Teilsatzes
der Dienstanbieter zu übernehmen,
die gegenwärtig durch
die Dienstortverwaltungseinrichtung 120 beaufsichtigt werden.
Wenn die Erlaubnis verwehrt wird, oder wenn die Anzahl von verfügbaren Ressourcen
von Dienstanbietern, die durch die Dienstortverwaltungseinrichtung 122 angeboten
wird, nicht ausreichend ist, kann die Dienstortverwaltungseinrichtung 120 eine
einfache Anforderung einer dritten Dienstortverwaltungseinrichtung
(nicht gezeigt), einer vierten (nicht gezeigt) usw. treffen, bis
die Erlaubnis zur Beaufsichtigung einer ausreichenden Anzahl von
neuen Dienstanbietern und/oder Dienstanbieterressourcen gewährt wird.
Die „ausreichende" Anzahl von neuen
Dienstanbietern und/oder die ausreichende Anzahl von neuen Dienstanbieterressourcen,
die die Dienstortverwaltungseinrichtung 120 benötigt, wird
bei einem Ausführungsbeispiel
basierend zumindest teilweise auf der aktuellen Rate von Dienstanforderungen,
die durch die Dienstortverwaltungseinrichtung 120 empfangen
werden, der aktuellen Warteschlange aus anhängigen Dienstanforderungen
zur Erledigung durch die Dienstortverwaltungseinrichtung 120 oder
beidem bestimmt. Bei verschiedenen Ausführungsbeispielen kann die Übertragung
der Beaufsichtigung von Dienstanbietern zwischen Dienstortverwaltungseinrichtungen 120 und 122 durch
jegliche der Einrichtungen erreicht werden, die oben für den Fall
erörtert
wurden, in dem die Dienstortverwal tungseinrichtung 120 wünscht, die Anzahl
von Dienstanbietern zu verringern, die sie beaufsichtigt.
-
Bei
einem Ausführungsbeispiel
gemäß der Erfindung
wird die Verarbeitungslast jeder Dienstortverwaltungseinrichtung überwacht.
Das Überwachen kann
dadurch erreicht werden, dass die Prozessorlast jeder Dienstortverwaltungseinrichtung,
die anhängige
Dienstanforderungs-Warteschlangenlänge und/oder andere Informationen,
die sich auf die Verarbeitungslast beziehen, gelegentlich oder periodisch
einer anderen überwachenden
Entität
berichtet werden, ist jedoch nicht darauf beschränkt. Das Berichten kann entweder
abfragebasiert (auf Anfrage der überwachenden
Entität)
oder übermittlungsbasiert
(gesendet durch die Dienstortverwaltungseinrichtung zu Zeiten ihrer
Wahl) sein. Bei einigen Ausführungsbeispielen
kann die überwachende
Entität ein
oder mehrere der Portale aufweisen (z. B. 140 und 142).
Bei anderen Ausführungsbeispielen
kann dieselbe eine oder mehrere der Dienstortverwaltungseinrichtungen
(z. B. 120 oder 122) aufweisen. Bei wiederum anderen
Ausführungsbeispielen
kann sie eine oder mehrere zweckgebundene Rechenvorrichtungen aufweisen,
die an das Netzwerk angebracht sind und in der Lage sind, mit zumindest
einigen der Dienstortverwaltungseinrichtungen zu kommunizieren.
Bei einigen Ausführungsbeispielen überwacht
keine einzelne Entität
alle der Dienstortverwaltungseinrichtungen. Zum Beispiel überwacht
bei einem Ausführungsbeispiel
ein gegebenes Portal (z. B. 140) nur die Dienstortverwaltungseinrichtungen
(z. B. 120 und 122), zu denen es Dienstanforderungen
sendet. Bei anderen Ausführungsbeispielen
wird eine Überwachung
durch die Einrichtung einer Kommunikation zwischen den Dienstortverwaltungseinrichtungen
in einer baumartigen Kommunikationshierarchie ermöglicht,
so dass Verarbeitungslast-Statusmeldungen zwischen Dienstortverwaltungseinrichtungen
gesendet werden, die in dem Baum direkt verknüpft sind, wobei die Meldungen
von der Kind-Dienstortverwaltungseinrichtung zu der Mutter-Dienstortverwaltungseinrichtung
in der Hierarchie gesendet werden. Auf diese Weise sammelt die Dienstortverwaltungseinrichtung
oben an dem Baum den Status aller Dienstortverwaltungseinrichtungen
in dem Netzwerk. Diese Dienstortverwaltungseinrichtung kann dann andere
Dienstortverwaltungseinrichtungen, Portale oder andere vernetzte
Rechenvorrichtungen über den
Gesamt-Dienstortverwaltungseinrichtungs-Verarbeitungslaststatus
informieren.
-
Das
System 100 aus 1 wird nun
in Betrieb umfassender beschrieben. Am Beginn einer Sitzung sendet
die Clientenvorrichtung 150 eine Meldung 1 zu
einem Portal (z. B. 140). Es wird darauf hingewiesen, dass
die Meldung 1 ein bestimmtes Inhaltselement identifiziert
(z. B. den Namen eines Films).
-
Ferner
umfasst bei einem Ausführungsbeispiel
die Meldung 1 Informationen, die zum Identifizieren eines
Diensttyps ausreichend sind, der an dem Inhaltselement ausgeführt werden
sollte, bevor das Dienstergebnis zu der Clientenvorrichtung 150 und/oder
zu anderen Zielortvorrichtungen geliefert wird. Diese Informationen
können
viele Formen annehmen. In einer Form identifiziert Meldung 1 einen Diensttyp
spezifisch (z. B. Hintergrundentfernung oder Spracherkennung). In
einer anderen Form identifiziert Meldung 1 Attribute der
Clientenvorrichtung 150 und/oder anderer Zielortvorrichtungen,
wie z. B. ihre Speicherkapazität,
Bildschirmgröße, Verarbeitungsfähigkeit
und ähnliches.
Basierend auf diesen Attributen kann das System 100 (z.
B. Portal 140) einen Diensttyp herleiten, der ausgeführt werden
sollte (z. B. Transcodieren). Bei einer wiederum anderen Form identifiziert
Meldung 1 den (die) Typ(en) der Clientenvorrichtung 150 und/oder
anderen Zielortvorrichtungen, und basierend auf gespeicherten Kenntnissen
dieser Typen von Vorrichtungen kann das System 100 (z.
B. Portal 140) einen Diensttyp herleiten, der ausgeführt werden
sollte (z. B. Transcodieren).
-
In 1 kann Meldung 1 andere Informationen
umfassen. Wenn die Quelle des Inhaltselements der Clientenvorrichtung 150 bekannt
ist, dann kann die Inhaltsquelle (z. B. 110) auch in Meldung 1 identifiziert
sein. Meldung 1 kann z. B. die einheitliche Quellenangabe
(URL; Uniform Resource Locator) für die Inhaltsquelle 110 umfassen.
Wenn die Quelle des Inhaltselements der Clientenvorrichtung 150 nicht bekannt
ist, kann die Inhaltsquelle durch das System 100 lokalisiert
werden (z. B. durch Portal 140), wenn diese Informationen
dem System 100 nicht bereits bekannt sind. In einigen Fällen kann
die Clientenvorrichtung 150 die Quelle des Inhalts sein.
-
Nachdem
Empfangen von Meldung 1 wählt das Portal 140 eine
Dienstortverwaltungseinrichtung (z. B. 120 oder 122)
aus, zu der Meldung 2 gesendet werden soll. Es wird darauf
hingewiesen, dass das Portal 140 diese Auswahl auf viele
Arten ausführen kann.
Zum Beispiel das Portal 140 kann bei einem Ausführungsbeispiel
eine Aufzeichnung führen,
die eine einzelne Dienstortverwaltungseinrichtung (z. B. 120)
umfasst, mit der aus allen möglichen
Dienstortverwaltungseinrichtungen des Systems 100 kommuniziert
werden soll. In diesem Fall wählt
das Portal 140 die einzelne Dienstortverwaltungseinrichtung
gemäß seiner
Aufzeichriung aus. Alternativ kann das Portal 140 bei einem
anderen Ausführungsbeispiel eine
Aufzeichnung führen,
die eine priorisierte Liste eines Teilsatzes der Dienstortverwaltungseinrichtungen
aus der Mehrzahl von Dienstortverwaltungseinrichtungen des Systems 100 umfasst.
Es sollte darauf hingewiesen werden, dass dieser Teilsatz alle der Mehrzahl
von Dienstortverwaltungseinrichtungen des Systems 100 umfassen
kann oder einige der Dienstortverwaltungseinrichtungen des Systems 100 nicht
umfassen kann. Aus dieser Aufzeichnung einer priorisierten Dienstortverwaltungseinrichtungsliste kann
das Portal 140 die Dienstortverwaltungseinrichtung höchster Priorität (z. B. 120)
auswählen,
eine neue Dienstanforderung von einer Clientenvorrichtung 150 zu
handhaben. Wenn jedoch nachfolgend bestimmt wird, dass die Dienstortverwal tungseinrichtung
höchster
Priorität
nicht auf eine Kommunikation von dem Portal 140 antwortet,
dann kann das Portal 140 versuchen, mit der Dienstortverwaltungseinrichtung
nächst
hoher Priorität
(z. B. 122) der Aufzeichnung zu kommunizieren, usw.
-
Bei
anderen Ausführungsbeispielen
kann das Portal 140 eine Aufzeichnung führen, die eine Liste eines
Teilsatzes von Dienstortverwaltungseinrichtungen umfasst, die demselben
aus der Mehrzahl von Dienstortverwaltungseinrichtungen des Systems 100 verfügbar sind.
Es sollte darauf hingewiesen werden, dass dieser Teilsatz alle der
Mehrzahl von Dienstortverwaltungseinrichtungen des Systems 100 umfassen
kann oder einige der Dienstortverwaltungseinrichtungen des Systems 100 nicht
umfassen kann. Bei einem Ausführungsbeispiel
kann das Portal 140 eine Dienstortverwaltungseinrichtung
zufällig aus
der aufgezeichneten Liste auswählen.
Alternativ kann das Portal 140 bei einem anderen Ausführungsbeispiel
eine Dienstortverwaltungseinrichtung (z. B. 120) auf eine Round-Robin-Weise
(Round Robin = zyklischer Umlauf) aus der aufgezeichneten Liste auswählen. Für eine Liste
aus N Dienstortverwaltungseinrichtungen kann eine „Round-Robin"-Auswahl ausgeführt werden,
durch Auswählen
der ersten Dienstortverwaltungseinrichtung auf der Liste, um die erste
Dienstanforderung zu handhaben, dann Auswählen der zweiten Dienstortverwaltungseinrichtung auf
der Liste, um die zweite Dienstanforderung zu handhaben usw., bis
die N-te Anforderung durch das Portal empfangen wird und zu der
N-ten Dienstortverwaltungseinrichtung auf der Liste weitergeleitet
wird. Die nächste
(N + 1te) Anforderung kann dann zu der ersten Dienstortverwaltungseinrichtung
auf der Liste weitergeleitet werden, und nachfolgende Anforderungen
werden zu fortlaufenden Dienstortverwaltungseinrichtungen der Liste
weitergeleitet, in der Reihenfolge, in der sie auf der Liste erscheinen,
bis der letzte Listeneintrag wieder erreicht wird und der Prozess wieder „umläuft" zu dem ersten Listeneintrag.
-
Bei
einem wiederum anderen Ausführungsbeispiel
kann das Portal 140 aus 1 eine
Aufzeichnung führen,
für jede
der Dienstortverwaltungseinrichtungen, die demselben aus der Mehrzahl
von Dienstortverwaltungseinrichtungen des Systems 100 verfügbar sind,
die die verfügbare
Rechenleistung, Anzahl von anhängigen
Dienstanforderungen und/oder erwartete Latenzzeit beim Zuweisen
einer nächsten
Dienstanforderung, nachdem sie empfangen wird, der Dienstortverwaltungseinrichtung
umfassen kann. Diese Aufzeichnung kann im Lauf der Zeit aktualisiert
werden, basierend auf einer abfragebasierten oder übermittlungsbasierten
Sammlung des Dienstortverwaltungseinrichtungsstatus, wie oben erörtert wurde.
Wenn eine neue Dienstanforderung von der Clientenvorrichtung 150 empfangen wird,
kann das Portal 140 dann diese Anforderung zu der Dienstortverwaltungseinrichtung
(z. B. 120) aus der Aufzeichnung weiterleiten, die gegenwärtig die maximal
verfügbare
Rechenleistung aufweist oder von der erwartet werden kann, dass
sie gegenwärtig die
Dienstanforderung am schnellsten handhabt, sobald sie empfangen
wird. Auf diese Weise wählt
das Portal 140 die Dienstortverwaltungseinrichtung aus, die
am wenigsten beschäftigt
ist.
-
Bei
einem anderen Ausführungsbeispiel kann
jede Dienstortverwaltungseinrichtung eine Aufzeichnung ihrer insgesamt
verfügbaren
Rechenleistung der Dienstanbieter führen, die sie beaufsichtigt, und
kann diese Aufzeichnung (z. B. entweder über abfragebasierte oder übermittlungsbasierte
Verfahren) zu einem oder mehreren Portalen (z. B. 140) weiterleiten.
Wenn eine neue Dienstanforderung empfangen wird, kann das Portal 140 dann
wählen, die
Anforderung zu der Dienstortverwaltungseinrichtung weiterzuleiten,
deren beaufsichtigter Satz aus Dienstanbietern gegenwärtig die
meiste gesamt verfügbare
Rechenleistung aufweist. Bei einem anderen Ausführungsbeispiel kann das Portal 140 aus 1 eine Aufzeichnung führen, die die verfügbare Netzwerkbandbreite
von jeder der Dienstortverwaltungseinrichtungen umfasst, die für denselben
aus der Mehrzahl von Dienstort verwaltungseinrichtungen des Systems 100 verfügbar sind.
Diese Aufzeichnung kann im Lauf der Zeit aktualisiert werden, basierend
auf einer abfragebasierten oder übermittlungsbasierten
Sammlung des Dienstortverwaltungseinrichtungsstatus, wie oben erörtert wurde.
Wenn eine neue Dienstanforderung von der Clientenvorrichtung 150 empfangen
wird, kann das Portal 140 die Dienstortverwaltungseinrichtung
auswählen
(z. B. 120), um die Dienstanforderung zu handhaben, die gegenwärtig gemäß seiner
Aufzeichnung die höchste Bandbreite
aufweist.
-
Alternativ
kann das Portal 140 bei einem anderen Ausführungsbeispiel
eine Aufzeichnung führen,
die „Netzwerk"-Distanzen zwischen den Dienstanbietern,
die es beaufsichtigt, und anderen Rechenvorrichtungen auf dem Netzwerk
umfasst, wobei diese Distanzen eine Funktion der Netzwerklatenzzeit
und/oder der Anzahl von Netzwerk-„Sprüngen” zwischen Rechenvorrichtungen
auf dem Netzwerk sind. Diese Aufzeichnung von Distanzen kann im
Lauf der Zeit aktualisiert werden, basierend auf einer abfragebasierten
oder übermittlungsbasierten Sammlung
von Netzwerkstatusinformationen, und neue Aufzeichnungselemente
können
hinzugefügt werden,
wenn die Dienstanforderungen empfangen werden, die Clientenvorrichtungen
oder Inhaltsquellen umfassen, die der Dienstortverwaltungseinrichtung
vorangehend unbekannt waren. Wenn eine neue Dienstanforderung von
der Clientenvorrichtung 150 empfangen wird, kann das Portal 140 gemäß seiner
Aufzeichnung die Dienstortverwaltungseinrichtung auswählen (z.
B. 120), die ihm selbst, der Clientenvorrichtung 150 und/oder
der Inhaltsquelle, die der Dienst benötigt, „am nächsten" ist, um die Dienstanforderung zu handhaben.
Wenn jedoch nachfolgend bestimmt wird, dass die am nächsten liegende
Dienstortverwaltungseinrichtung nicht auf eine Kommunikation von
dem Portal 140 antwortet, kann das Portal 140 versuchen,
mit der nächst
nahen Dienstortverwaltungseinrichtung (z. B. 122) der Aufzeichnung
zu kommunizieren, usw.
-
Abschließend kann
bei einem wiederum anderen Ausführungsbeispiel
das Portal 140 eine Aufzeichnung führen, die für jede der Dienstortverwaltungseinrichtungen,
die demselben aus der Mehrzahl von Dienstortverwaltungseinrichtungen
des Systems 100 verfügbar
sind, mehr als einen der Typen von Informationen umfasst, die oben
erörtert
wurden (z. B. Dienstortverwaltungseinrichtungs-Rechenleistung, anhängige Dienstanforderungs-Warteschlangenlänge, erwartete
Latenzzeit beim Zuweisen einer empfangenen Anforderung, gesamte,
dem beaufsichtigten Dienstanbieter verfügbare Rechenleistung, Netzwerkdistanz
und/oder Netzwerkbandbreite). Wenn eine neue Dienstanforderung von
der Clientenvorrichtung 150 empfangen wird, kann das Portal 140 für jede verfügbare Dienstortverwaltungseinrichtung eine
Funktion einer Kombination der oben erörterten Informationstypen gemäß seiner
Aufzeichnung berechnen. Das Portal 140 kann dann die Dienstortverwaltungseinrichtung
auswählen
(z. B. 120), die als „beste" gemäß der Funktion
eingestuft wird (z. B. die mit dem höchsten oder niedrigsten Funktionswert, abhängig von
der Funktion), um die Dienstanforderung zu handhaben.
-
Sobald
das Portal 140 eine Dienstortverwaltungseinrichtung ausgewählt hat
(z. B. 120), sendet das Portal 140 eine Meldung 2 zu
der Dienstortverwaltungseinrichtung 120. Bei einem Ausführungsbeispiel
umfasst die Meldung 2 Informationen, die ausreichend zum
Identifizieren eines Diensttyps sind, der an dem Inhaltselement
ausgeführt
werden sollte, bevor das Dienstergebnis zu der Clientenvorrichtung 150 und/oder
anderen Zielortvorrichtungen geliefert wird. Wie soeben beschrieben
wurde, können
diese Informationen viele Formen annehmen. Bei einer Form Meldung 2 spezifisch
einen Diensttyp identifiziert (z. B. Hintergrundentfernung oder
Spracherkennung). Bei einer anderen Form identifiziert Meldung 2 Attribute
der Clientenvorrichtung 150 und/oder anderer Zielortvorrichtungen,
wie z. B. ihre Speicherkapazität,
Bildschirmgröße, Verarbeitungsfähigkeit
und ähnliches.
Basierend auf diesen Attributen kann das System 100 (z.
B. Dienstortverwaltungseinrichtung 120) einen Diensttyp herleiten
oder bestimmen, der ausgeführt
werden sollte (z. B. transcodieren). Bei einer wiederum anderen
Form identifiziert Meldung 2 den oder die Typen der Clientenvorrichtung 150 und/oder
anderer Zielortvorrichtungen und basierend auf dem gespeicherten
Wissen über
diese Vorrichtungstypen kann das System 100 (z. B. Dienstortverwaltungseinrichtung 120)
einen Diensttyp herleiten oder bestimmen, der ausgeführt werden
sollte (z. B. transcodieren). Basierend auf den Informationen, die durch
Meldung 2 geliefert werden, identifiziert die Dienstortverwaltungseinrichtung 120 den
Diensttyp, der ausgeführt
werden sollte.
-
Es
wird darauf hingewiesen, dass Meldung 2 andere Informationen
umfassen kann. Zum Beispiel kann Meldung 2 auch das Inhaltselement
und/oder die Inhaltsquelle identifizieren.
-
Bei
einem Ausführungsbeispiel
kann die Dienstortverwaltungseinrichtung 120 (und 122)
eine Aufzeichnung führen,
die eine Liste der Dienstanbieter (z. B. 130 und 132)
und der Dienste umfasst, die sie liefern können. Bei einem solchen Ausführungsbeispiel
umfasst die Aufzeichnung, die durch die Dienstortverwaltungseinrichtung 120 (und 122)
geführt
wird, auch die Gesamtressourcenkapazitäten, die den Dienstanbietern
(z. B. 130 und 132) zugeordnet sind, die sie überwacht.
Die Aufzeichnung, die durch die Dienstortverwaltungseinrichtung 120 (und 122)
geführt
wird, kann ferner die Ressourcen umfassen, die an jedem der beaufsichtigten
Dienstanbieter (z. B. 130, 132 und 134)
zum Ausführen
angeforderter Dienste verfügbar
sind. Die Aufzeichnung, die durch die Dienstortverwaltungseinrichtung 120 (und 122)
geführt
wird, kann auch die Ressourcen von jedem der Dienstanbieter (z.
B. 130 und 132) umfassen, die vorangehend anderen
Dienstsitzungen durch jene Dienstortverwaltungseinrichtungen zugeordnet
wurden.
-
Bei
diesem vorliegenden Beispiel wählt
die Dienstortverwaltungseinrichtung 120 unter den Dienstanbietern
(z. B. 130 und 132) aus, die sie beaufsichtigt,
welcher den Dienst ausführen
soll, der aus Meldung 2 identifiziert wird. Bei einem Ausführungsbeispiel
wählt die
Dienstortverwaltungseinrichtung 120 einen Dienstanbieter
basierend auf den Informationen aus, die in der oben beschriebenen
Aufzeichnung bereitgestellt sind. Zum Beispiel kann die Dienstortverwaltungseinrichtung 120 einen
Dienstanbieter basierend darauf auswählen, welcher Dienstanbieter
die geringste menge an Ressourcen, die verwendet werden, oder die
größte Menge
an Ressourcen, die zum Ausführen
neu zugewiesener Dienste verfügbar
sind, aufweist.
-
Bei
einem anderen Ausführungsbeispiel schätzt die
Dienstortverwaltungseinrichtung 120 den Betrag an Ressourcen,
die dem Ausführen
des Dienstes zugeordnet sind, der in Meldung 2 identifiziert
ist, und verwendet den Schätzwert,
um einen Dienstanbieter auszuwählen
(z. B. 130, 132, 134 oder 136),
um den Dienst auszuführen.
Alternativ kann die Dienstortverwaltungseinrichtung 120 einen Dienstanbieter
auswählen,
den sie beaufsichtigt, um einen Dienst auszuführen, basierend sowohl auf
dem Betrag an Ressourcen, die zum Ausführen von Diensten an den verschiedenen
Dienstanbietern verfügbar
sind (oder dem Betrag an Ressourcen, der vorangehend zugeordnet
wurde) und dem Betrag an Ressourcen, die schätzungsweise durch das Ausführen des
Dienstes verbraucht werden.
-
Bei
einem wiederum anderen Ausführungsbeispiel
kann die Dienstortverwaltungseinrichtung 120 einen Dienstanbieter
auswählen,
den sie beaufsichtigt, um einen Dienst auszuführen, basierend auf Informationen,
empfangen von dem Dienstanbieter selbst oder von einer anderen Dienstortverwaltungseinrichtung
(z. B. 122), die auch denselben Dienstanbieter beaufsichtigt.
Diese Informationen können eine
Anzeige umfassen, dass ein bestimmter Dienst gestartet wurde oder
gegenwärtig
durch den Dienstanbieter ausgeführt
wird. Es ist ersichtlich, dass die Informationen über den
bestimmten Dienst auch den geschätzten
Ressourcenbetrag umfassen, der durch Ausführen des Dienstes verbraucht
wird.
-
Es
wird darauf hingewiesen, dass die Dienstortverwaltungseinrichtung 120 und
die Dienstortverwaltungseinrichtung 122 ihre Aufzeichnungen
auf periodische oder nichtperiodische Weise zueinander senden können, wie
durch den Doppelpfeil 75 gezeigt ist. Auf diese Weise,
wenn eine Dienstortverwaltungseinrichtung (z. B. 120) nachfolgend
betriebsunfähig
wird, hat eine verbleibende Dienstortverwaltungseinrichtung (z.
B. 122) die Informationen, die benötigt werden, um die Betriebsverantwortlichkeit
der betriebsunfähigen
Dienstortverwaltungseinrichtung (z. B. 120) auf nahtlose
Weise zu übernehmen.
Auf diese Weise wird eine Fehlertoleranz für die Dienstortverwaltungseinrichtungen 120 und 122 bereitgestellt,
wie nachfolgend detaillierter beschrieben wird.
-
Bei
dem Beispiel aus 1 wählt die Dienstortverwaltungseinrichtung 120 den
Dienstanbieter 130 aus. Die zuvor erwähnte Dienstanbieteraufzeichnung
wird durch die Dienstortverwaltungseinrichtung 120 aktualisiert,
um die Auswahl des Dienstanbieters 130 wiederzugeben. Bei
einem Ausführungsbeispiel
werden die Mengen der verschiedenen Ressourcen, die dem Dienstanbieter 130 zugeordnet
sind, um die geschätzte
Menge an Ressourcen reduziert, die erwartungsgemäß zum Ausführen des Dienstes verwendet
wird (oder der Betrag an zugeordneten Ressourcen wird erhöht).
-
Ferner
sendet die Dienstortverwaltungseinrichtung 120 eine Meldung 3 zu
dem Portal 140. Die Meldung 3 umfasst ausreichend
Informationen zum Lokalisieren und Kontaktieren des Dienstanbieters 130.
Zum Beispiel kann die Meldung 3 einen URL umfassen, der
den Dienstanbieter 130 spezifiziert. Es wird darauf hingewiesen,
dass die Meldung 3 andere Informationen umfassen kann.
Zum Beispiel kann die Meldung 3 auch das Inhaltselement und/oder
die Inhaltsquelle identifizieren.
-
Nach
dem Empfangen von Meldung 3 sendet das Portal 140 eine
Meldung 4 zu der Clientenvorrichtung 150. Die
Meldung 4 umfasst die Informationen zum Lokalisieren und
Kontaktieren des Dienstanbieters 130, der durch Meldung 3 spezifiziert wurde.
Es wird darauf hingewiesen, dass Meldung 4 identisch zu
Meldung 3 sein kann (z. B. kann Meldung 4 eine
Weiterleitung von Meldung 3 sein). Meldung 4 kann
jedoch andere (zusätzliche)
Informationen umfassen, die durch das Portal 140 hinzugefügt sind.
Zum Beispiel kann Meldung 4 auch das Inhaltselement und/oder
die Inhaltsquelle identifizieren (z. B. 110), wenn diese
Informationen durch Portal 140 und nicht die Dienstortverwaltungseinrichtung 120 bestimmt
werden.
-
Bei
einem alternativen Ausführungsbeispiel kann
die Dienstortverwaltungseinrichtung 120 anstelle der Meldungen 3 und 4 eine
Meldung direkt zu der Clientenvorrichtung 150 senden. Die
Meldung von der Dienstortverwaltungseinrichtung 120 zu
der Clientenvorrichtung 150 kann die Informationen zum Lokalisieren
und Kontaktieren des Dienstanbieters 130 umfassen. Die
Meldung kann ferner andere Informationen umfassen, wie z. B. die
Identität
des Inhaltselements und/oder der Inhaltsquelle (z. B. 110).
-
In
jedem Fall empfängt
die Clientenvorrichtung 150 eine Meldung, die Informationen
umfasst, die zum Lokalisieren und Kontaktieren des Dienstanbieters 130 ausreichend
sind. Basierend auf diesen Informationen wird eine Kommunikation
zwischen der Clientenvorrichtung 150 und dem Dienstanbieter 130 eingerichtet.
Anders ausgedrückt
wird die Sitzung, die durch die Clientenvorrichtung 150 initiiert wird,
von dem Portal 140 zu dem Dienstanbieter 130 übertragen.
Bei einem Ausführungsbeispiel
wird darauf hingewiesen, dass die Übertragung von dem Portal 140 zu
dem Dienstanbieter 130 für einen Endbenutzer einer Clientenvorrichtung 150 nahtlos
und transparent ist.
-
Bei
einem Ausführungsbeispiel
verwendet die Meldung, die durch die Clientenvorrichtung 150 empfangen
wird (z. B. Meldung 4), oder basiert auf einer synchronisierten
Multimediaintegrationssprache (SMIL; Synchronized Multimedia Integration
Language). Die Umleitung der Clientenvorrichtung 150 von
dem Portal 140 zu dem Dienstanbieter 130 kann unter
Verwendung einer SMIL-Neuschreibung erreicht werden. Der dynamische
SMIL-Neuschreibprozess kann aus dem Einsetzen eines URL, der den Dienstanbieter 130 spezifiziert,
für einen
oder mehrere Platzhalter in einer Schablonen-SMIL-Datei bestehen. Das
Neuschreiben der SMIL-Datei kann bei diesem Beispiel durch die Dienstortverwaltungseinrichtung 120 erreicht
werden. Diese SMIL-Datei wird dann zu der Clientenvorrichtung 150 gesendet,
die den Dienst angefordert hat, entweder direkt von der Dienstortverwaltungseinrichtung 120 oder über Meldungen 3 und 4,
wie oben beschrieben wurde.
-
Weiter
mit dem Beispiel im Hinblick auf 1 sendet
die Clientenvorrichtung 150 nach dem Empfangen der Meldung 4 von
dem Portal 140 (oder einer entsprechenden Meldung von der
Dienstortverwaltungseinrichtung 120) eine Meldung 5 zu
dem Dienstanbieter 130. Meldung 5 identifiziert
das Inhaltselement und den Diensttyp, der durch den Dienstanbieter 130 ausgeführt werden
soll. Meldung 5 kann andere Informationen umfassen. Wenn
z. B. an diesem Punkt die Inhaltsquelle der Clientenvorrichtung 150 bekannt
ist, können
diese Informationen in Meldung 5 umfasst sein.
-
Nach
dem Empfangen von Meldung 5 sendet der Dienstanbieter 130 eine
Meldung 6 zu der Inhaltsquelle 110. Wie oben erwähnt wurde,
kann die Inhaltsquelle 110 für den Dienstanbieter 130 in
Meldung 5 identifiziert sein. Ansonsten kann der Dienstanbieter 130 die
Inhaltsquelle 110 lokalisieren. In Meldung 6 fordert
der Dienstanbieter 130 an, dass das Inhaltselement zu ihm
geliefert wird.
-
Ansprechend
auf Meldung 6 sendet die Inhaltsquelle 110 das
Inhaltselement zum Betreuen (Bedienen) zu dem Dienstanbieter 130 (dargestellt durch
Pfeil 7 in 1). Bei einem
Ausführungsbeispiel
wird das Inhaltselement zu dem Dienstanbieter 130 gestreamt.
-
Bei
einem Ausführungsbeispiel
kann der Dienstanbieter 130 immer eingerichtet und bereit sein,
den spezifizierten Dienst auszuführen.
Das heißt,
der spezifizierte Dienst kann kontinuierlich auf dem Dienstanbieter 130 ausgeführt werden
und auf Daten zum Bearbeiten warten. Bei einem anderen Ausführungsbeispiel
kann der spezifizierte Dienst im Ruhezustand sein, bis entweder
Meldung 5 oder das Inhaltselement durch den Dienstanbieter 130 empfangen
wird oder beginnt, empfangen zu werden. Das heißt, der Dienstanbieter 130 muss
eventuell den spezifizierten Dienst einrichten oder starten und tut
dies nicht, bis der potentielle Bedarf für den Dienst identifiziert
ist oder bis Inhalt, an dem der Dienst ausgeführt werden soll, an dem Dienstanbieter 130 anzukommen
begonnen hat.
-
In
jedem Fall kann der Dienstanbieter 130 dann den spezifizierten
Dienst an dem Inhaltselement ausführen. Das Inhaltselement kann
durch den Dienstanbieter 130 ganz oder teilweise vor der
Betreuung zwischengespeichert werden, oder das Inhaltselement kann
betreut werden, wenn es durch den Dienstanbieter 130 empfangen
wird.
-
Der
Dienstergebnisinhalt wird dann durch den Dienstanbieter 130 zu
der Clientenvorrichtung 150 gesendet (dargestellt durch
Pfeil 8 in 1). Bei einem
Ausführungsbeispiel
wird der Dienstergebnisinhalt zu der Clientenvorrichtung 150 gestreamt.
Der Dienstergebnisinhalt kann durch den Dienstanbieter 130 ganz
oder teilweise nach dem Betreuen (vor dem Streamen) zwischengespeichert
werden, oder der Dienstergebnisinhalt kann gestreamt werden, wenn er
durch den Dienstanbieter 130 betreut wird.
-
In 1, sobald der Dienstergebnisinhalt durch
den ausgewählten
Dienstanbieter (z. B. Dienstanbieter 130) geliefert und
durch die Clientenvorrichtung 150 empfangen wurde, kann
die laufende Sitzung beendet werden. Dementsprechend kann die Dienstanbieteraufzeichnung,
die durch die Dienstortver waltungseinrichtung 120 geführt wird,
aktualisiert werden, um zu reflektieren, dass der Dienstanbieter 130 seine
Betreuungsaufgaben abgeschlossen hat, oder dass die Sitzung beendet
wurde. Diese Aufzeichnung kann auch aktualisiert werden, um zu zeigen,
dass Ressourcen, die dem Ausführen
des Dienstes zugeordnet sind, wieder verfügbar sind. Zum Beispiel kann
der Betrag an Ressourcen, der zum Ausführen von Diensten verfügbar ist,
die für den
Dienstanbieter 130 aufgezeichnet sind, erhöht werden.
-
Wenn
ein Dienstanbieter (z. B. 130) durch mehr als eine Dienstortverwaltungseinrichtung
beaufsichtigt wird (z. B. 120 und 122), ist es
wünschenswert,
Informationen im Hinblick auf Änderungen
bei dem Status des Dienstanbieters zu allen beaufsichtigenden Dienstortverwaltungseinrichtungen weiterzuleiten.
Somit, bei dem obigen Beispiel, wenn die Dienstortverwaltungseinrichtung 120 ihre
Aufzeichnung des Dienstanbieters 130 aktualisiert, um zu
reflektieren, dass er eine bestimmte Dienstaufgabe abgeschlossen
hat, die ihm durch die Dienstortverwaltungseinrichtung 120 zugewiesen
wurde, oder dass eine bestimmte Sitzung, die ihm durch die Dienstortverwaltungseinrichtung 120 zugewiesen wurde,
abgeschlossen wurde, ist es wünschenswert, diese
Informationen zu der Dienstortverwaltungseinrichtung 122 weiterzuleiten.
Um dies zu erreichen, kann eine Kopie der aktualisierten Aufzeichnung
der Dienstortverwaltungseinrichtung 120 im Hinblick auf den
Dienstanbieter 130 zu der Dienstortverwaltungseinrichtung 122 gesendet
werden, wodurch die Dienstortverwaltungseinrichtung 122 über die
Statusänderung
des Dienstanbieters 130 informiert wird. Auf diese Weise
ist die Dienstortverwaltungseinrichtung 122 in der Lage,
ihre Aufzeichnung zu aktualisieren, wenn sie den Dienstanbieter 130 auch
beaufsichtigt. Ferner kann die Übertragung
dieser aktualisierten Aufzeichnung von der Dienstortverwaltungseinrichtung 120 zu
der Dienstortverwaltungseinrichtung 122 eine Fehlertoleranzfunktionalität ermöglichen,
insofern, dass die Dienstortverwaltungseinrichtung 122 besser
vorbereitet ist, die Operationen der Dienstortverwaltungs einrichtung 120 zu übernehmen,
wenn die letztere nicht mehr antwortet. Alternativ führt bei
einigen Ausführungsbeispielen
jeder Dienstanbieter (z. B. 130) eine Liste der Dienstortverwaltungseinrichtungen
(z. B. 120 und 122), die ihn überwachen. Bei diesen Ausführungsbeispielen, wenn
der Dienstanbieter 130 eine Dienstaufgabe fertig stellt,
oder wenn eine Sitzung, die ihm zugewiesen ist, abgeschlossen wird,
kann er alle Dienstortverwaltungseinrichtungen benachrichtigen (z.
B. 120 und 122), die ihn beaufsichtigen, dass
er nun mehr Ressourcen zum Ausführen
von Diensten verfügbar
hat.
-
Unterschiedliche
Ansätze
können
verwendet werden, um eine Aktualisierung der Aufzeichnung des Status
eines Dienstanbieters auszulösen,
die durch eine gegebene Dienstortverwaltungseinrichtung geführt wird.
Bei einem Ansatz Bezug nehmend auf das gegebene Beispiel kann die
Dienstortverwaltungseinrichtung 120 zu der oder ungefähr zu der Zeit,
zu der die Dienstortverwaltungseinrichtung 120 eine Auswahl
eines Dienstanbieters trifft, den Zeitbetrag schätzen, der zum Fertigstellen
des Dienstes notwendig ist, der an dem Inhaltselement ausgeführt werden
soll. Die Aufzeichnung kann aktualisiert werden, um zu reflektieren,
dass der Dienst fertiggestellt wurde, wenn der Zeitbetrag abgelaufen
ist. Wenn die Dienstortverwaltungseinrichtung 120 eine
Aufzeichnung anderer Dienstortverwaltungseinrichtungen führt, die
den Dienstanbieter 130 beaufsichtigen, und wenn die Dienstortverwaltungseinrichtung 122 auf dieser
Liste ist, kann die Dienstortverwaltungseinrichtung 120 eine
Aktualisierung der Aufzeichnung im Hinblick auf den Dienstanbieter 130 zu
der Dienstortverwaltungseinrichtung 122 senden, wenn der
geschätzte
Zeitbetrag zum Fertigstellen des Dienstes abgelaufen ist. Alternativ,
für Ausführungsbeispiele, bei
denen jeder Dienstanbieter eine Liste aller Dienstortverwaltungseinrichtungen
führt,
die ihn beaufsichtigen, kann der Dienstanbieter (z. B. 130)
allen beaufsichtigenden Dienstortverwaltungseinrichtungen (z. B. 120 und 122)
anzeigen, wenn er einen Dienst abgeschlossen hat, und ihre entsprechenden Aufzeichnungen
im Hinblick auf den Dienstanbieter 130 können entsprechend
aktualisiert werden. Diese Ansätze
können
ausgedehnt werden, um die Lieferung des Dienstergebnisinhalts zu
der Clientenvorrichtung 150 zu berücksichtigen. Zum Beispiel kann der
Zeitbetrag, der durch die Dienstortverwaltungseinrichtung 120 geschätzt wurde,
den der Dienstanbieter 130 zum Ausführen des Dienstes benötigt, erhöht werden,
um jegliche zusätzliche
Zeit zu berücksichtigen,
die durch den Dienstanbieter 130 benötigt wird, um den Dienstergebnisinhalt
zu der Clientenvorrichtung 150 zu senden. Auf ähnliche
Weise kann die Dienstortverwaltungseinrichtung 120 die
Zeitlänge
schätzen,
die die Sitzung erwartungsgemäß dauert
(z. B. wenn das Inhaltselement ein Film ist, der zwei Stunden dauert,
kann geschätzt
werden, dass die Sitzung ungefähr
zwei Stunden dauert). Alternativ kann der Dienstanbieter 130 den
beaufsichtigenden Dienstortverwaltungseinrichtungen 120 und 122 anzeigen,
wann er das Senden des Dienstergebnisinhalts zu der Clientenvorrichtung 150 abgeschlossen hat.
Bei einem anderen Ausführungsbeispiel
kann der Dienstanbieter 130 allen beaufsichtigenden Dienstortverwaltungseinrichtungen 120 und 122 anzeigen,
wann das Senden des Dienstergebnisinhalts zu der Clientenvorrichtung 150 durch
die Clientenvorrichtung 150 beendet wurde.
-
Bei
der obigen Erörterung
wird das Inhaltselement zu dem Dienstanbieter 130 ansprechend
auf die Meldung 6 gesendet. Wie hierin vorangehend erwähnt wurde,
kann der Dienstanbieter 130 stattdessen Inhalt speichern
oder zwischenspeichern, der vorangehend empfangen und/oder betreut
wurde, wodurch sich der Nutzen von Meldung 6 und der Antwort
auf Meldung 6 erübrigt
(z. B. Beseitigen des Datenflusses, der durch Pfeil 7 in 1 angezeigt ist).
-
In 1 ist bei einem Ausführungsbeispiel die Hinzufügung von
Meldung A von der Dienstortverwaltungseinrichtung 120 zu
dem ausgewählten Dienstanbieter
(z. B. 130) gezeigt. Bezug nehmend auf das vorliegende
Beispiel kann Meldung A von der Dienstortverwaltungseinrichtung 120 zu
dem Dienstanbieter 130 zu jeglicher Zeit nach Meldung 2 und
vor Meldung 5 gesendet werden. Meldung A kann für jegliche
Anzahl von unterschiedlichen Zwecken verwendet werden. Zum Beispiel,
kann in einer Situation, in der der Diensttyp, der an dem spezifizierten
Inhaltselement ausgeführt
werden soll, nicht kontinuierlich auf dem Dienstanbieter 130 ausgeführt wird,
Meldung A verwendet werden, um den Dienstanbieter 130 über den
bevorstehenden Bedarf nach dem Dienst zu warnen. Folglich kann das
Einrichten und/oder Initiieren des Dienstes beginnen und vielleicht
abgeschlossen werden, bevor Meldung 5 von der Clientenvorrichtung 150 empfangen
wird, wodurch die Gesamtlatenzzeit reduziert wird.
-
Ferner
kann Meldung A verwendet werden, um dem Dienstanbieter 130 die
Identität
des Inhaltselements und vielleicht die Identität der Inhaltsquelle 110 zu
liefern. Mit diesen Informationen kann der Dienstanbieter 130 die
Inhaltsquelle 110 auffordern, das Inhaltselement zu liefern
(z. B. ein Streamen zu beginnen), bevor Meldung 5 empfangen
wird, was weiter zu einer Reduzierung der Latenzzeit beiträgt. Zusätzlich dazu
kann die Verwendung von Meldung A auf diese Weise zu einer verbesserten
Sicherheit führen,
da die Inhaltsquelle 110 z. B. nicht für die Clientenvorrichtung 150 identifiziert
werden muss.
-
Ferner
kann Meldung A anstelle der Meldungen 3, 4 und 5 verwendet
werden. Zum Beispiel kann, zusätzlich
zu dem Identifizieren des Inhaltselements und vielleicht der Inhaltsquelle,
Meldung A auch Informationen umfassen, die dem Dienstanbieter 130 ermöglichen,
eine Kommunikation mit der Clientenvorrichtung 150 einzurichten.
Anders ausgedrückt,
anstatt zu veranlassen, dass die Clientenvorrichtung 150 die Übertragung
einer Kommunikation von dem Portal 140 zu dem Dienstanbieter 130 initiiert,
kann die Übertragung
der Kommunikation durch den Dienstanbieter 130 auf eine
Weise initiiert werden, die weiterhin nahtlos und transparent für einen Benutzer
der Clientenvorrichtung 150 ist.
-
In 1 kann das System 100 derart
implementiert sein, dass, wenn Dienstanbieter (z. B. 134 und 136)
zu beschäftigt
sind, während
ihre beaufsichtigende Dienstortverwaltungseinrichtung (z. B. 122) noch
in der Lage ist, neue Dienstanforderungen von einem Portal (z. B. 140)
zu verarbeiten, können
ein oder mehrere Dienstanbieter (z. B. 130) von einer Nachbarregion
gewonnen werden, die durch eine andere Dienstortverwaltungseinrichtung
(z. B. 120) beaufsichtigt wird. Diese „Übertragung" von einem oder mehreren Dienstanbietern
kann ermöglicht
werden, wenn die benachbarten Dienstortverwaltungseinrichtungen
(z. B. 120 und 122) ihre aktualisierten Aufzeichnungen
gemeinschaftlich verwenden, wie durch Pfeil 75 gezeigt
ist.
-
Bei
einem Ausführungsbeispiel,
wenn ein Dienstanbieter (z. B. 134) durch zwei oder mehre Dienstortverwaltungseinrichtungen
(z. B. 120 und 122) beaufsichtigt wird und eine
neue Dienstzuweisung von einer derselben empfängt, kann der Dienstanbieter
seine andere(n) beaufsichtigende(n) Dienstortverwaltungseinrichtung(en) über die
neue Dienstzuweisung benachrichtigen. Es gibt unterschiedliche Möglichkeiten
für Dienstanbieter,
die Dienstortverwaltungseinrichtungen zu benachrichtigen, die ihn
beaufsichtigen. Zum Beispiel kann der Dienstanbieter direkt die
andere(n) beaufsichtigende(n) Dienstortverwaltungseinrichtung(en) über die neue
Dienstzuweisung benachrichtigen. Alternativ kann der Dienstanbieter
die neue Dienstzuweisung in seiner nächsten periodischen Stapelstatusbenachrichtigung
an alle seine beaufsichtigenden Dienstortverwaltungseinrichtungen
einschließen.
Bei einem anderen Ausführungsbeispiel
kann jede Dienstortverwaltungseinrichtung (z. B. 122) alle
Dienstanbieter (z. B. 134 und 136) abrufen oder
abfragen, die sie auf periodischer Basis beaufsichtigt, um ihre
entsprechenden Belastungen und andere Status herauszufinden. In
der Antwort kann der Dienstanbieter die neue Dienstzuweisung einschließen.
-
Es
wird darauf hingewiesen,, dass mit jeder dieser Benachrichtigungen
eine Bestimmung ausgeführt
werden kann, ob die Zeitlänge
zum Fertigstellen des Dienstes geringer ist als ein Schwellenwert
oder nicht. Wenn diese Länge
geringer ist als der Schwellenwert, berichtet der Dienstanbieter
den zugewiesenen Dienst möglicherweise
nicht, da er so wenig Zeit zur Fertigstellen benötigt.
-
In 1 wird darauf hingewiesen, dass die neue
Dienstzuweisungsbenachrichtigung von einem Dienstanbieter (z. B. 134)
zu einer Dienstortverwaltungseinrichtung (z. B. 120) eine
Schätzung
des Zeitbetrags zum Fertigstellen der neuen Dienstzuweisung umfassen
kann. Diese Schätzung
kann jedoch nachfolgend durch die Dienstortverwaltungseinrichtung
gelöscht
werden, sobald sie eine Stapelaktualisierung von demselben Dienstanbieter über seinen aktuellen
Belastungsstatus empfängt.
Alternativ kann eine neue Dienstzuweisungsbenachrichtigung durch den
Dienstanbieter mit fester Ablaufzeit (Löschzeit) ausgegeben werden.
Zum Beispiel durch den Dienstanbieter kann eine neue Dienstzuweisungsbenachrichtigung
zusammen mit einer festen Ablaufzeit gegeben werden, wie lange die
Dienstortverwaltungseinrichtung annehmen sollte, dass der Dienstanbieter
mit dem Ausführen
dieses Dienstes beschäftigt
ist.
-
Bei
einem Ausführungsbeispiel
kennt jede Dienstortverwaltungseinrichtung für jeden ihrer Dienstanbieter
die Liste von anderen Dienstortverwaltungseinrichtungen, die die
Beaufsichtigung dieses Dienstanbieters teilen. Bei diesem Ausführungsbeispiel
kann eine Dienstortverwaltungseinrichtung, die einen neuen Dienst
zu einem Dienstanbieter abschickt, auch die anderen Dienstortverwaltungseinrichtungen,
die den gleichen Dienstanbieter beaufsichtigen, über diese neue Zuweisung benachrichtigen,
so dass sie ihre Dienstanbieter-Statusaufzeichnungen entsprechend
aktualisieren können.
-
In
System 100 aus 1 wird für einen Dienstanbieter
(z. B. 130), der durch mehrere Dienstortverwaltungseinrichtungen
(z. B. 120 und 122) beaufsichtigt wird, darauf
hingewiesen, dass Statusaktualisierungen der Ressourcenverfügbarkeit des
Dienstanbieters 130 zu allen beaufsichtigenden Dienstortverwaltungseinrichtungen 120 und 122 auf unterschiedlichen
Wegen geliefert werden können. Zum
Beispiel kann der Dienstanbieter 130 eine Statusaktualisierung
zu einer Dienstortverwaltungseinrichtung (z. B. 120) senden,
und wenn diese Dienstortverwaltungseinrichtung 120 eine
Liste aller anderen Dienstortverwaltungseinrichtungen (z. B. 122)
führt,
die den Dienstanbieter 130 beaufsichtigen, kann diese dann
die Statusaktualisierung zu diesen anderen beaufsichtigenden Dienstortverwaltungseinrichtungen
liefern. Alternativ kann bei Ausführungsbeispielen, bei denen
jeder Dienstanbieter eine Liste der Dienstortverwaltungseinrichtungen führt, die
ihn beaufsichtigen, der Dienstanbieter 130 Statusaktualisierungen
direkt zu allen beaufsichtigenden Dienstortverwaltungseinrichtungen 120 und 122 senden.
-
Innerhalb
des Systems 100 wird darauf hingewiesen, dass die Auswahl
von Dienstanbietern (z. B. 130, 132, 134 und 136),
die gemeinschaftlich von mehreren Dienstortverwaltungseinrichtungen
verwendet werden sollen, auf viele Arten erreicht werden kann. Zum
Beispiel können
die gemeinschaftlich verwendeten Dienstanbieter zufällig ausgewählt werden,
so dass „Regionen" aus Dienstanbietern,
die durch unterschiedliche Dienstortverwaltungseinrichtungen beaufsichtigt
werden, gut vermascht sind. Bei einem anderen Ausführungsbeispiel
können
diese Dienstanbieter in separate (nicht überlappende) Sätze unterteilt
sein, wobei jeder Satz durch jede der N unterschiedlichen Dienstortverwaltungseinrichtungen
beaufsichtigt wird, und wobei keine Dienstortverwaltungseinrichtung,
die Dienstanbieter eines Satzes beaufsichtigt, auch Dienstanbieter
eines anderen Satzes beaufsichtigt. Alternativ kann die Auswahl von
gemeinschaftlich verwendeten Dienstanbietern durch Wahrscheinlichkeitsver teilungen
bestimmt werden. Zum Beispiel, kann sich im Hinblick auf Schätzwerte
der Distanzen zwischen jeder eines Satzes aus Dienstortverwaltungseinrichtungen
und jedem eines Satzes aus Dienstanbietern, wobei diese Distanzschätzwerte
auf geographischen Faktoren, Netzwerkfaktoren oder beidem basieren
können,
die Wahrscheinlichkeit, dass ein bestimmter Dienstanbieter durch
eine gegebene Dienstortverwaltungseinrichtung beaufsichtigt wird,
mit der Nähe
zwischen denselben erhöhen.
Eine solche Wahrscheinlichkeitsverteilung wird gut durch eine Gaußsche Funktion
der Distanz von der Dienstortverwaltungseinrichtung dargestellt.
Jede Dienstortverwaltungseinrichtung kann diesen Typ einer Wahrscheinlichkeitsverteilung
von Dienstanbietern aufweisen, die ausgewählt sind, um durch dieselbe überwacht
zu werden. Somit könnten
Dienstanbieter, die in der Nähe
von mehr als einer Dienstortverwaltungseinrichtung sind, zugewiesen
sein, um durch mehr als eine Dienstortverwaltungseinrichtung beaufsichtigt
zu werden.
-
Bei
einem Ausführungsbeispiel
des Systems 100 verwaltet eine „Master"- („Haupt"-) Dienstortverwaltungseinrichtung alle
der anderen Dienstortverwaltungseinrichtungen des Systems 100,
durch Führen
von Aufzeichnungen der Prozessorlasten dieser Dienstortverwaltungseinrichtungen
und ihrer Netzwerkdistanzen zu anderen Rechenvorrichtungen auf dem
Netzwerk. Wie oben beschrieben wurde, kann das Sammeln dieser Informationen
auf hierarchische Weise ausgeführt
werden. Bei anderen Ausführungsbeispielen
kommuniziert jede Dienstortverwaltungseinrichtung direkt mit dem
Master. Informationen, die durch die Master-Dienstortverwaltungseinrichtung gesammelt
werden, können
zu Portalen (z. B. 140 und 142) zur Verwendung
bei ihren Prozessen des Auswählens
von Dienstortverwaltungseinrichtungen verteilt werden, mit denen
kommuniziert werden soll. Alternativ können alle Portale ihre Anforderungen
zu der Master-Dienstortverwaltungseinrichtung senden, die die Anforderungen
abwärts
in einer Hierarchie hin zu Dienstortverwaltungseinrichtungen mit
der meisten Verarbeitungskapazität
weiterleitet, oder zu jenen, die am besten gemäß den Netzwerkdistanzaufzeichnungen
der Dienstortverwaltungseinrichtungen zu Clientenvorrichtungen und
Inhaltsquellen positioniert sind, die an der Dienstanforderung beteiligt
sind, um die Zuweisung der Anforderung zu handhaben.
-
2 ist
ein Blockdiagramm eines Systems 200 zum Betreuen von Inhalt
aus einer Inhaltsquelle 210 und zum Liefern des Dienstergebnisinhalts
zu einer Clientenvorrichtung 150 gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung. Genauer gesagt umfasst das System 200 Funktionen
und Komponenten zum Implementieren einer Fehlertoleranz für Dienstortverwaltungseinrichtungen 120 und 122.
Es wird darauf hingewiesen, dass die Komponenten von 2,
die dieselben Bezugszeichen aufweisen wie 1,
auf ähnliche
Weise arbeiten können.
Es gibt jedoch einige Unterschiede.
-
Zum
Beispiel kann, wie bei System 200 gezeigt ist, die Fehlertoleranz
für die
Dienstortverwaltungseinrichtung 122 durch eine Sicherungs-Dienstortverwaltungseinrichtung 202 bereitgestellt
werden. Als solches kann, immer wenn die Dienstortverwaltungseinrichtung 122 ihre
Aufzeichnung(en) aktualisiert, wie hierin beschrieben ist, die Dienstortverwaltungseinrichtung 122 die
aktualisierten Aufzeichnungen zu der Sicherungs-Dienstortverwaltungseinrichtung 202 senden,
wie durch Pfeil 204 gezeigt ist. Teil der Funktionalität der Sicherungs-Dienstortverwaltungseinrichtung 202 kann sein,
gelegentlich oder periodisch den Betriebsstatus der Dienstortverwaltungseinrichtung 122 zu
prüfen, wie
durch den Doppelpfeil 206 gezeigt ist. Wenn die Sicherungs-Dienstortverwaltungseinrichtung 202 bestimmt,
dass die Dienstortverwaltungseinrichtung 122 nicht antwortet
oder betriebsunfähig
ist, ist die Sicherungs-Dienstortverwaltungseinrichtung 202 in
der Lage, die Operationen der Dienstortverwaltungseinrichtung 122 zu übernehmen,
da sie die aktualisierte(n) Aufzeichnung(en) von der Dienstortverwaltungseinrichtung 122 zusammen
mit der Kenntnis (z. B. vorgespeichert) darüber hat, welche Dienstanbieter
(z. B. 134 und 136) die Dienstortverwaltungseinrichtung 122 beaufsichtigte.
Zusätzlich
dazu, wenn die Sicherungs-Dienstortverwaltungseinrichtung 202 Kenntnis
(z. B. vorgespeichert oder von Benachrichtigungen erhalten, die
von anderen Dienstortverwaltungseinrichtungen oder Portalen empfangen
wurden) über
die Liste der Portale (z. B. 142) hat, die möglicherweise
versuchen, mit der Dienstortverwaltungseinrichtung 122 zu
kommunizieren, kann die Sicherungs-Dienstortverwaltungseinrichtung 202 diese Portale
benachrichtigen, dass sie beginnen sollten, mit der Sicherungs-Dienstortverwaltungseinrichtung 202 zu
kommunizieren, anstatt mit der Dienstortverwaltungseinrichtung 122.
Ferner, nach dem Übernehmen
der Operationen der Dienstortverwaltungseinrichtung 122,
kann die Sicherungs-Dienstortverwaltungseinrichtung 202 ihre
eigene Sicherungs-Dienstortverwaltungseinrichtung (nicht gezeigt)
rekrutieren, und mit dem Liefern ihrer aktualisierten Aufzeichnung(en)
zu derselben beginnen. Auf diese Weise kann die Sicherungs-Dienstortverwaltungseinrichtung 202 eine
Fehlertoleranz für
die Dienstortverwaltungseinrichtung 122 bereitstellen. Bei
einigen Ausführungsbeispielen
ist die Sicherungs-Dienstortverwaltungseinrichtung 202 vielleicht nicht
nur eine Sicherung sondern kann stattdessen aktiv Anforderungen
von Portalen betreuen, bevor die Operationen der Dienstortverwaltungseinrichtung 122 übernommen
werden, wenn sie sich als nicht ansprechend herausstellt. Es wird
darauf hingewiesen, dass alle anderen Dienstortverwaltungseinrichtungen
(z. B. 120) des Systems 200 mit einer Sicherungs-Dienstortverwaltungseinrichtung ähnlich zu der
Sicherungs-Dienstortverwaltungseinrichtung 202 implementiert
sein könnten.
-
Es
wird darauf hingewiesen, dass anderen Dienstortverwaltungseinrichtungen ähnlich zu
der Sicherungs-Dienstortverwaltungseinrichtung 202 miteinander „verkettet" sein können, um
eine weitere redundante Fehlertoleranz bereitzustellen. Zum Beispiel
könnten
die anderen Dienstortverwaltungseinrichtungen miteinander derart
verkettet sein, dass die aktive Dienstortverwaltungseinrichtung 122 nur
die nächste
andere Dienstortverwaltungseinrichtung (z. B. 202) in der
Reihe aktualisieren würde
und sie die nächste
aktualisieren würde
usw. Alternativ könnten die
anderen Dienstortverwaltungseinrichtungen miteinander verkettet
sein und so arbeiten, dass die aktive Dienstortverwaltungseinrichtung 122 zwei
oder mehr andere Dienstortverwaltungseinrichtungen aktualisieren
könnte
und diese Dienstortverwaltungseinrichtungen zwei oder mehr andere
Dienstortverwaltungseinrichtungen aktualisieren könnten usw. Bei
einem anderen Ausführungsbeispiel
würde die aktive
Dienstortverwaltungseinrichtung 122 nur eine erste Sicherungs-Dienstortverwaltungseinrichtung 202 aktualisieren.
Dann, wenn die aktive Dienstortverwaltungseinrichtung 122 betriebsunfähig werden würde, würde die
erste Sicherungs-Dienstortverwaltungseinrichtung 202 zu
der aktiven Dienstortverwaltungseinrichtung werden und würde mit
dem Aktualisieren der nachfolgenden, zweiten Sicherungs-Dienstortverwaltungseinrichtung
in der Kette beginnen. Für
alle obigen Beispiele wird darauf hingewiesen, dass die anderen
Dienstortverwaltungseinrichtungen aktiv und in der Lage sein können, Dienstanforderungen
von Portalen zu jeder Zeit zu handhaben, zu der das System 200 in
Betrieb ist, anstatt nur als Sicherungen zu dienen.
-
In 2 ist
eine weitere Fehlertoleranz, die in dem System 200 umfasst
ist, eine ruhende oder inaktive Dienstortverwaltungseinrichtung 208.
Genauer gesagt kann ein Portal (z. B. 140 oder 142),
das mit der Dienstortverwaltungseinrichtung 120 in Wechselwirkung
ist, bestimmen, ob sie betriebsunfähig oder nicht ansprechend
ist. Wenn ja, ist das Portal (z. B. 140) in der Lage, eine
ruhende Dienstortverwaltungseinrichtung 208 zu kontaktieren,
gezeigt durch Pfeil 210, um auszulösen, dass sie das Arbeiten
als Dienstortverwaltungseinrichtung für die Region beginnt, die vorangehend
durch die Dienstortverwaltungseinrichtung 120 beaufsichtigt
wurde. Es wird darauf hingewiesen, dass die Funktionalität der Dienstortverwaltungseinrichtung bereits
ein Teil der ruhenden Dienstortverwaltungseinrichtung 208 wäre, aber
diese Funktionalität
inaktiv war oder die ruhende Dienstortverwaltungseinrichtung 208 in
einer anderen Funktion in Betrieb war. Zusätzlich dazu hätte die ruhende
Dienstortverwaltungseinrichtung 208 Kenntnis über die
Dienstanbieter (z. B. 130 und 132), die sie beaufsichtigen
soll, um die Operationen der Dienstortverwaltungseinrichtung 120 zu übernehmen.
Bei einem Ausführungsbeispiel
kann, bevor die Dienstortverwaltungseinrichtung 120 betriebsunfähig wird,
die Dienstortverwaltungseinrichtung 120 derart implementiert
sein, dass sie ihre aktualisierte(n) Aufzeichnung(en) zu einem oder
mehreren Portalen (z. B. 140) sendet, wie durch Pfeil 212 gezeigt
ist. Daher, sobald Portal 140 bestimmt, dass die Dienstortverwaltungseinrichtung 120 betriebsunfähig ist,
ist das Portal 140 ferner in der Lage, der ruhenden Dienstortverwaltungseinrichtung 208 die
aktualisierte(n) Aufzeichnung(en) der Dienstortverwaltungseinrichtung 120 zu
liefern, wie durch Pfeil 210 gezeigt ist. Es wird darauf
hingewiesen, dass diese Funktionalität in ein oder mehrere Ausführungsbeispielen der
hierin beschriebenen vorliegenden Erfindung integriert sein kann.
-
3 ist
ein Flussdiagramm 300 aus Operationen, die gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung zum Verwalten eines Streaming-Mediendienstes
ausgeführt
werden. Das Flussdiagramm 300 umfasst exemplarische Prozesse
von Ausführungsbeispielen
der vorliegenden Erfindung, die durch einen oder mehrere Prozessoren
und elektrische Komponenten unter der Steuerung von computerlesbaren
und computerausführbaren
Anweisungen ausgeführt
werden können.
Die computerlesbaren und computerausführbaren Anweisungen können z.
B. in Datenspeicherungsmerkmalen vorliegen, wie z. B. in computerverwendbarem,
flüchtigem
Speicher, computerverwendbarem, nichtflüchtigem Speicher und/oder einer
computerverwendbaren Massendatenspeicherung. Die computer-lesbaren
und -ausführbaren
Anweisungen können
jedoch in jeder Art eines computerlesbaren Mediums vorliegen. Obwohl
spezifische Operationen in dem Flussdiagramm 300 offenbart
sind, sind solche Operationen exemplarisch. Das heißt, das
vorliegende Ausführungsbeispiel
ist gut geeignet zum Ausführen
verschiedener anderer Operationen oder Variationen der Operationen,
die in 3 angegeben sind. Es wird darauf hingewiesen,
dass die Operationen des Flussdiagrams 300 durch Software,
durch Firmware, durch Hardware oder jegliche Kombination derselben
ausgeführt
werden können.
-
Bei
Operation 302 wird eine Anforderung nach einem Streaming-Mediendienst
von einem Clienten empfangen, wobei der Streaming-Mediendienst eine
Mediendienstkomponente umfasst. Es wird darauf hingewiesen, dass
die Operation 302 auf jegliche Weise ähnlich zu der hierin beschriebenen implementiert
sein kann, aber nicht darauf beschränkt ist.
-
Bei
Operation 304 von 3 wird eine Dienstortverwaltungseinrichtung,
zu der die Anforderung geliefert werden soll, aus einer Mehrzahl
von Dienstortverwaltungseinrichtungen ausgewählt. Es wird darauf hingewiesen,
dass Operation 304 auf jegliche Weise ähnlich zu der hierin beschriebenen
implementiert sein kann, aber nicht darauf beschränkt ist.
-
Bei
Operation 306 wird ein Dienstanbieter, zu dem die Mediendienstkomponente
zugewiesen werden soll, aus einer Mehrzahl von Dienstanbietern eines
Netzwerks ausgewählt.
Es wird darauf hingewiesen, dass die Operation 306 auf
jegliche Weise ähnlich
zu der hierin beschriebenen implementiert sein kann, aber nicht
darauf beschränkt
ist.
-
Bei
Operation 308 aus 3 wird der Dienstanbieter,
der ausgewählt
ist, um die Mediendienstkomponente auszuführen, über seine Zuweisung informiert,
wodurch ermöglicht
wird, dass der angeforderte Streaming-Mediendienst an dem Streamingmedium
ausgeführt
wird. Es wird darauf hingewiesen, dass die Operation 308 auf
jegliche Weise ähnlich
zu der hierin beschriebenen implementiert sein kann, aber nicht
darauf beschränkt
ist.
-
Die
vorangehenden Beschreibungen von spezifischen Ausführungsbeispielen
der vorliegenden Erfindung wurden zu Zwecken der Darstellung und
Beschreibung präsentiert.
Sie sollen nicht erschöpfend
sein oder die Erfindung auf die präzisen offenbarten Formen einschränken, und
es ist offensichtlich, dass viele Modifikationen und Abänderungen
im Hinblick auf die obige Lehre möglich sind. Die Ausführungsbeispiele
wurden ausgewählt
und beschrieben, um die Prinzipien und ihre praktische Anwendung
bestmöglich
zu erklären,
um es dadurch anderen Fachleuten auf dem Gebiet zu ermögliche, die
Erfindung und verschiedene Ausführungsbeispiele
mit verschiedenen Modifikationen, wie sie am besten für die bestimmte
erdachte Verwendung geeignet sind, bestmöglich zu verwenden. Es ist
beabsichtigt, dass der Schutzbereich der Erfindung durch die hieran
angehängten
Ansprüche
und ihre Entsprechungen definiert ist.