-
ALLGEMEINER STAND DER TECHNIK
-
Gebiet der Offenbarung
-
Die Technologie der Offenbarung betrifft allgemein die Archivierung interaktiver Echtzeitflüsse.
-
Stand der Technik
-
Verschiedene Netzprotokolle wie das Web-Real-Time-Communications(WebRTC)-Protokoll, das Session Initiation Protocol (SIP) und H.323 stellen Fähigkeiten für die Herstellung interaktiver Echtzeitflüsse über das Internet und/oder ein privates Netz wie ein Unternehmensnetz bereit. Solche interaktiven Echtzeitflüsse beinhalten möglicherweise Echtzeitvideo-, -audio- und/oder -datenstreams, die bei interaktiven Punkt-zu-Punkt-Sitzungen ausgetauscht werden. Endpunkte für die interaktiven Echtzeitflüsse sind zum Beispiel möglicherweise zwei oder mehr Webbrowser und/oder andere speziell entwickelte Anwendungen oder Kommunikationsclients. Auf diese Weise erleichtern interaktive Echtzeitflüsse Kommunikationen und die Zusammenarbeit unter Nutzern, die möglicherweise entfernt voneinander sind.
-
Die Nutzung interaktiver Echtzeitflüsse in einigen Umgebungen erfordert möglicherweise die Aufzeichnung der interaktiven Echtzeitflüsse. Beispielsweise schreiben Unternehmensrichtlinien möglicherweise vor, dass interaktive Echtzeitflüsse, die über ein Unternehmensnetz gesendet werden, zu Sicherheits-, rechtlichen und/oder Archivierungszwecken aufzuzeichnen sind. Die Aufzeichnung der interaktiven Echtzeitflüsse ist in solchen Umgebungen jedoch möglicherweise problematisch. Aufgrund der Topologie einer typischen Sitzung mit interaktiven Echtzeitflüssen ist die Nutzung eines zentralen Medienelements im Netz zwischen den Endpunkten, um den interaktiven Echtzeitfluss aufzuzeichnen, möglicherweise nicht praktikabel oder wünschenswert. Als nicht ausschließliche Beispiele können die interaktiven Echtzeitflüsse direkt von einem Endpunkt zum anderen laufen und somit das zentrale Medienelement umgehen, oder der interaktive Echtzeitfluss kann verschlüsselt und deshalb für das zentrale Medienelement unzugänglich sein. Ferner kann ein Duplizieren oder eine „Gabelung“ des interaktiven Echtzeitflusses an einem Endpunkt die Netzbandbreite für den duplizierten interaktiven Echtzeitfluss übermäßig belasten oder kann die Qualität des interaktiven Echtzeitflusses verschlechtern.
-
Verschiedene einzelne Aspekte zur Durchführung solcher Aufzeichnungen sind aus dem Stand der Technik bekannt. Aus der
US 2008/0 123 628 A1 ist beispielsweise ein Kommunikationssystem zur Aufzeichnung von Mediaströmen bekannt, bei dem die Aufzeichnungen erst nach Beendigung der Kommunikationsverbindung an einen Archiv-Server gesendet werden. Im Konzept nach der
US 2010/0 149 305 A1 ist vorgesehen, Videokonferenzen zu archivieren und deren Metadaten und Teilnehmer durchsuchbar zu machen. Die
US 7,899,048 offenbart hingegen, Daten für ein Netzwerkelement aus einem Datenstrom zu kopieren und an ein weiteres Netzwerkelement zu senden.
-
KURZE DARSTELLUNG DER AUSFÜHRLICHEN BESCHREIBUNG
-
Ausführungsformen, die in der ausführlichen Beschreibung offenbart werden, stellen eine bandbreiteneffiziente Archivierung interaktiver Echtzeitflüsse bereit. Verwandte Verfahren, Systeme und computerlesbare Medien werden ebenfalls offenbart. In diesem Zusammenhang ist in einer Ausführungsform ein Verfahren zum Archivieren eines interaktiven Echtzeitflusses bereitgestellt. Das Verfahren umfasst Empfangen eines interaktiven Echtzeitflusses durch eine Computereinrichtung (z. B. eine speziell entwickelte Kommunikationseinrichtung). Wie hierin genutzt, bezieht sich ein „interaktiver Echtzeitfluss“ auf einen interaktiven Medienfluss und/oder einen interaktiven Datenfluss zwischen oder unter zwei oder mehr Endpunkten, welcher einen Echtzeitaudiostream und/oder einen Echtzeitvideostream oder einen anderen Echtzeitmedien- oder -datenstream umfasst. Das Verfahren umfasst weiter Erzeugen einer Gabelung des interaktiven Echtzeitflusses an der Computereinrichtung als Archivierungsstream. Das Verfahren umfasst auch Streamen des Archivierungsstreams von der Computereinrichtung an ein Archivierungsrepository bei einer einstellbaren Streamingrate. Das Verfahren umfasst zusätzlich Messen einer Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses. Das Verfahren umfasst weiter Modifizieren der einstellbaren Streamingrate basierend auf der Änderung des Verhaltenskennwerts des interaktiven Echtzeitflusses. Auf diese Weise kann ein interaktiver Echtzeitfluss bandbreitenempfindlich dupliziert werden, während ein Archiv des interaktiven Echtzeitflusses von hoher Qualität erfasst wird.
-
In einer anderen Ausführungsform ist ein System zum Archivieren eines interaktiven Echtzeitflusses bereitgestellt. Das System umfasst mindestens eine Kommunikationsschnittstelle und ein Archivierungsrepository, das mit der mindestens einen Kommunikationsschnittstelle assoziiert ist. Das System umfasst weiter eine Computereinrichtung, die mit der mindestens einen Kommunikationsschnittstelle assoziiert ist und einen Anbieter der Funktionalität interaktiver Flüsse und einen Archivierungsstreamingagenten umfasst. Der Anbieter der Funktionalität interaktiver Flüsse ist konfiguriert, um einen interaktiven Echtzeitfluss zu empfangen und eine Gabelung des interaktiven Echtzeitflusses an den Archivierungsstreamingagenten als Archivierungsstream zu erzeugen. Der Archivierungsstreamingagent ist konfiguriert, um den Archivierungsstream bei einer einstellbaren Streamingrate an das Archivierungsrepository zu streamen. Der Archivierungsstreamingagent ist weiter konfiguriert, um eine Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses zu messen. Der Archivierungsstreamingagent ist auch konfiguriert, um die einstellbare Streamingrate basierend auf der Änderung des Verhaltenskennwerts des interaktiven Echtzeitflusses zu modifizieren.
-
In einer anderen Ausführungsform ist ein nicht transientes computerlesbares Medium bereitgestellt. Auf dem nicht transienten computerlesbaren Medium sind computerausführbare Befehle abgelegt, um zubewirken, dass ein Prozessor ein Verfahren implementiert, das Empfangen eines interaktiven Echtzeitflusses durch eine Computereinrichtung umfasst. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst weiter Erzeugen einer Gabelung des interaktiven Echtzeitflusses an der Computereinrichtung als Archivierungsstream. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst auch Streamen des Archivierungsstreams von der Computereinrichtung an ein Archivierungsrepository bei einer einstellbaren Streamingrate. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst zusätzlich Messen einer Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses. Das durch die computerausführbaren Befehle implementierte Verfahren umfasst weiter Modifizieren der einstellbaren Streamingrate basierend auf der Änderung des Verhaltenskennwerts des interaktiven Echtzeitflusses.
-
Figurenliste
-
Die beiliegenden Zeichnungsfiguren, die in diese Patentschrift eingefügt sind und einen Bestandteil von ihr bilden, veranschaulichen diverse Ausgestaltungen der Offenbarung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Offenbarung zu erläutern.
- 1 ist ein Konzeptschema, das eine beispielhafte Topologie eines interaktiven Echtzeitflusses zeigt, die eine Computereinrichtung beinhaltet, die einen Archivierungsstreamingagenten umfasst, der konfiguriert ist, um bandbreiteneffizientes Archivieren des interaktiven Echtzeitflusses bereitzustellen;
- 2 ist ein Konzeptschema, das eine beispielhafte Topologie eines interaktiven Echtzeitflusses über ein Unternehmensnetz zeigt, das einen Archivierungsstreamingagenten beinhaltet;
- 3 ist ein Konzeptschema, das eine beispielhafte Topologie eines interaktiven Echtzeitflusses zeigt, die eine Medienservercomputereinrichtung beinhaltet, in die ein Archivierungsstreamingagent eingefügt ist;
- 4 ist ein Flussdiagramm, das beispielhafte Abläufe des Archivierungsstreamingagenten von 1 für bandbreiteneffiziente Archivierung interaktiver Echtzeitflüsse veranschaulicht;
- die 5A und 5B sind Flussdiagramme, die detailliertere beispielhafte Abläufe für die Archivierung interaktiver Echtzeitflüsse veranschaulichen, die Einstellen einer Streamingrate eines Archivierungsstreams als Reaktion auf Änderungen des Verhaltens interaktiver Flüsse und/oder der Netzbandbreite beinhalten; und
- 6 ist ein Blockschema eines beispielhaften prozessorbasierten Systems, das den Archivierungsstreamingagenten von 1 beinhalten kann.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Nunmehr werden mit Bezug auf die Zeichnungsfiguren diverse Ausführungsbeispiele der vorliegenden Offenbarung beschrieben. Das Wort „beispielhaft“ wird hierin in der Bedeutung „als ein Beispiel, ein Beispielsfall oder zur Veranschaulichung dienend“ genutzt. Jede hierin als „beispielhaft“ beschriebene Ausführungsform ist nicht zwangsläufig als gegenüber anderen Ausführungsformen bevorzugte oder vorteilhafte Ausführungsform auszulegen.
-
Ausführungsformen, die in der ausführlichen Beschreibung offenbart werden, stellen bandbreiteneffizientes Archivieren interaktiver Echtzeitflüsse bereit. Verwandte Verfahren, Systeme und computerlesbare Medien werden ebenfalls offenbart. In diesem Zusammenhang ist in einer Ausführungsform ein Verfahren zum Archivieren eines interaktiven Echtzeitflusses bereitgestellt. Das Verfahren umfasst Empfangen eines interaktiven Echtzeitflusses durch eine Computereinrichtung. Das Verfahren umfasst weiter Erzeugen einer Gabelung des interaktiven Echtzeitflusses an der Computereinrichtung als Archivierungsstream. Das Verfahren umfasst auch Streamen des Archivierungsstreams von der Computereinrichtung an ein Archivierungsrepository bei einer einstellbaren Streamingrate. Das Verfahren umfasst zusätzlich Messen einer Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses. Das Verfahren umfasst weiter Modifizieren der einstellbaren Streamingrate basierend auf der Änderung des Verhaltenskennwerts des interaktiven Echtzeitflusses. Auf diese Weise kann ein interaktiver Echtzeitfluss bandbreitenempfindlich dupliziert werden, während ein Archiv des interaktiven Echtzeitflusses von hoher Qualität erfasst wird.
-
In diesem Zusammenhang sind die 1-3 bereitgestellt, um beispielhafte Szenarios zu veranschaulichen, in denen ein Archivierungsstreamingagent bandbreitenempfindliches Archivieren interaktiver Echtzeitflüsse bereitstellen kann. 1 zeigt einen beispielhaften interaktiven Fluss zwischen zwei Endpunkten, wobei die bandbreitenempfindliche Archivierung durch einen Archivierungsstreamingagenten an einem Endpunkt bereitgestellt wird. 2 veranschaulicht Archivieren eines interaktiven Flusses, der durch ein Unternehmensnetz läuft. 3 stellt eine Veranschaulichung eines in eine Medienservercomputereinrichtung eingefügten Archivierungsstreamingagenten bereit. Jedes Szenario wird unten noch ausführlicher beschrieben.
-
In 1, auf die nunmehr Bezug genommen wird, stellt ein beispielhaftes interaktives Kommunikationssystem 10, das einen Archivierungsstreamingagenten 12 beinhaltet, bandbreitenempfindliches Archivieren interaktiver Echtzeitflüsse bereit. Der Archivierungsstreamingagent 12 stellt einen Punkt bereit, zu dem ein interaktiver Echtzeitfluss 14 bei einer einstellbaren, bandbreitenempfindlichen Rate an ein Archivierungsrepository 16 gestreamt werden kann, wie unten noch ausführlicher erörtert wird. Wie hierin genutzt, bezieht sich ein „interaktiver Echtzeitfluss“ auf einen interaktiven Medienfluss und/oder einen interaktiven Datenfluss zwischen oder unter zwei oder mehr Endpunkten. Ein interaktiver Medienfluss, der einen interaktiven Echtzeitfluss bildet, umfasst möglicherweise einen Echtzeitaudiostream und/oder einen Echtzeitvideostream oder einen anderen Echtzeitmedien- oder -datenstream. Als nicht ausschließliche Beispiele beinhaltet der interaktive Echtzeitfluss möglicherweise einen interaktiven Web-Real-Time-Communications(WebRTC)-Fluss und/oder einen interaktiven Fluss gemäß einem Steuerungsprotokoll wie dem Session Initiation Protocol (SIP) oder H.323.
-
Zu Veranschaulichungszwecken ist der interaktive Echtzeitfluss 14 in 1 als zwischen den Computereinrichtungen 18 und 20 laufend gezeigt. Es versteht sich, dass sich die Computereinrichtungen 18 und 20 beide innerhalb desselben öffentlichen oder privaten Netzes befinden können oder sich innerhalb getrennter, kommunikativ gekoppelter öffentlicher oder privater Netze befinden können. Einige Ausführungsformen des interaktiven Kommunikationssystems 10 von 1 können vorsehen, dass jede der Computereinrichtungen 18 und 20 eine beliebige Computereinrichtung mit Netzkommunikationsfähigkeiten sein kann, etwa ein Smartphone, ein Tabletcomputer, eine dedizierte Web-Appliance, ein Medienserver, ein Desktop- oder ein Servercomputer oder eine speziell entwickelte Kommunikationseinrichtung, wobei es sich um nicht ausschließliche Beispiele handelt.
-
Die Computereinrichtungen 18 und 20 von 1 umfassen jeweils Clients für interaktive Flüsse, 22 und 24. Jeder der Clients für interaktive Flüsse, 22 und 24, kann eine Webbrowseranwendung, eine dedizierte Kommunikationsanwendung oder eine schnittstellenlose Anwendung wie eine Daemon- oder eine Dienstanwendung sein, wobei es sich um nicht ausschließliche Beispiele handelt. In einigen Ausführungsformen umfassen die Clients für interaktive Flüsse, 22 und 24, WebRTC-Clients und/oder Clients, die gemäß Steuerungsprotokollen wie SIP oder H.323 betrieben werden. Wie in 1 ersichtlich, umfassen die Clients für interaktive Flüsse, 22 und 24, weiter jeweils Anbieter der Funktionalität interaktiver Flüsse, 26 und 28. Die Anbieter der Funktionalität interaktiver Flüsse, 26 und 28, implementieren die Protokolle, Codecs und Anwendungsprogrammierschnittstellen (APIs), die zum Ermöglichen interaktiver Echtzeitsitzungen zwischen den Computereinrichtungen 18 und 20 nötig sind.
-
Der Archivierungsstreamingagent 12 von 1 ist bereitgestellt, um den interaktiven Echtzeitfluss 14 bandbreitenempfindlich zu archivieren. In einigen Ausführungsformen ist der Archivierungsstreamingagent 12 implementiert als Erweiterung oder Plug-in für den Client für interaktive Flüsse, 22, zum Empfangen und Verarbeiten von Paketen, die durch den Client für interaktive Flüsse, 22, empfangen werden. In einigen Ausführungsformen ist der Archivierungsstreamingagent 12 möglicherweise in den Anbieter der Funktionalität interaktiver Flüsse, 26, integriert.
-
Wie in 1 ersichtlich, empfängt der Anbieter der Funktionalität interaktiver Flüsse, 26, den interaktiven Echtzeitfluss 14 und erzeugt eine Gabelung des interaktiven Echtzeitflusses 14 an den Archivierungsstreamingagenten 12 als Archivierungsstream 30. Der Archivierungsstream 30, der ein Duplikat des Inhalts des interaktiven Echtzeitflusses 14 ist, wird dann durch den Archivierungsstreamingagenten 12 bei einer einstellbaren Streamingrate an das Archivierungsrepository 16 gestreamt. In einigen Ausführungsformen umfasst der Archivierungsstream 30 eine Vielzahl von Netzpaketen, die der Archivierungsstreamingagent 12 als eine niedrige Priorität aufweisend markieren kann. Das Archivierungsrepository 16 ist möglicherweise eine oder mehrere Computereinrichtungen, die konfiguriert sind, um eine dauerhafte Ablage von als Teil des Archivierungsstreams 30 empfangenen Daten bereitzustellen.
-
Während der Archivierungsstream 30 an das Archivierungsrepository 16 gestreamt wird, misst der Archivierungsstreamingagent 12 Änderungen der Verhaltenskennwerte des interaktiven Echtzeitflusses 14. Als nicht ausschließliche Beispiele misst der Archivierungsstreamingagent 12 möglicherweise Verhaltenskennwerte wie die verfügbare Netzbandbreite, den Datendurchsatz, die Latenz, den Jitter und/oder Fehlerraten für den interaktiven Echtzeitfluss 14. In einigen Ausführungsformen misst der Archivierungsstreamingagent 12 möglicherweise Änderungen der Verhaltenskennwerte des interaktiven Echtzeitflusses 14 basierend auf Verhaltensdaten für interaktive Echtzeitflüsse (nicht gezeigt), die von der Computereinrichtung 18 empfangen werden. Einige Ausführungsformen können vorsehen, dass der Archivierungsstreamingagent 12 Änderungen der Verhaltenskennwerte basierend auf Verhaltensinformationen misst, die in Form von Protokollnachrichten wie RTP-Control-Protocol(RTCP)-Nachrichten an den Client für interaktive Flüsse, 22, kommuniziert werden.
-
In einigen Ausführungsformen misst der Archivierungsstreamingagent 12 möglicherweise Änderungen der Verhaltenskennwerte des interaktiven Echtzeitflusses 14 durch Analysieren der Netzpakete, die den interaktiven Echtzeitfluss 14 bilden. Falls eine Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses 14 detektiert wird, kann der Archivierungsstreamingagent 12 basierend auf der Änderung die einstellbare Streamingrate modifizieren, bei welcher der Archivierungsstream 30 gerade an das Archivierungsrepository 16 gestreamt wird. Falls der Archivierungsstreamingagent 12 zum Beispiel eine Verringerung des Datendurchsatzes des interaktiven Echtzeitflusses 14 misst, kann der Archivierungsstreamingagent 12 die Streamingrate des Archivierungsstreams 30 senken, um eventuelle Auswirkungen, die der Archivierungsstream 30 auf den interaktiven Echtzeitfluss 14 haben kann, zu minimieren.
-
Aus dem Modifizieren der einstellbaren Streamingrate des Archivierungsstreams 30 durch den Archivierungsstreamingagenten 12, um eventuelle Auswirkungen auf den interaktiven Echtzeitfluss 14 zu minimieren, kann resultieren, dass der Archivierungsstream 30 bei einer Rate, die kleiner als Echtzeit ist, an das Archivierungsrepository 16 gestreamt wird. Dementsprechend können einige Ausführungsformen des Archivierungsstreamingagenten 12 das Puffern des Archivierungsstreams 30 vor und/oder gleichzeitig mit dem Streamen des Archivierungsstreams 30 an das Archivierungsrepository 16 vorsehen. Auf diese Weise kann der Archivierungsstreamingagent 12 sicherstellen, dass ein vollständiges Archiv des interaktiven Echtzeitflusses 14 aufgezeichnet wird, während er für Netzbedingungen zweckmäßig empfindlich bleibt.
-
Der Archivierungsstreamingagent 12 kann auch Änderungen der Netzauslastung durch die Computereinrichtung 18 messen und die einstellbare Streamingrate basierend auf jeglichen solchen Änderungen dementsprechend modifizieren. In einigen Ausführungsformen kann der Archivierungsstreamingagent 12 Änderungen der Netzauslastung basierend auf von der Computereinrichtung 18 bereitgestellten Netzauslastungsdaten messen. Die Computereinrichtung 18 kann beispielsweise Daten bezüglich der momentanen Ausnutzung einer Download- und/oder Upload-Kapazität der Computereinrichtung 18 an den Archivierungsstreamingagenten 12 liefern.
-
Während Nutzer Videodaten, Audiodaten und/oder Daten des interaktiven Echtzeitflusses 14 austauschen, können sie in Verbindung mit dem interaktiven Echtzeitfluss 14 auch Daten anderer Typen freigeben (z. B. Dokumente, E-Mails oder Bilder). Da Streamen des Archivierungsstreams 30 möglicherweise nicht in Echtzeit erfolgt, kann es wünschenswert sein, die während des interaktiven Echtzeitflusses 14 freigegebenen Daten mit konkreten Zeitpunkten im Archivierungsstream 30 zu assoziieren. Dementsprechend kann der Archivierungsstreamingagent 12 einen Archivierungszeitachsenstream 32 bereitstellen, der mit dem Archivierungsstream 30 assoziiert ist und der gleichzeitig mit dem Archivierungsstream 30 an das Archivierungsrepository 16 gestreamt wird. In einigen Ausführungsformen ist der Archivierungszeitachsenstream 32 möglicherweise in den Archivierungsstream 30 eingefügt. Auf diese Weise kann der Archivierungszeitachsenstream 32 eine Verbindung zwischen während des interaktiven Echtzeitflusses 14 freigegebenen Daten und einem korrespondierenden Zeitpunkt im Archivierungsstream 30 bereitstellen.
-
Um das bandbreitenempfindliche Archivieren eines interaktiven Flusses, der durch ein Unternehmensnetz läuft, zu veranschaulichen, ist 2 bereitgestellt. 2 zeigt ein beispielhaftes interaktives Kommunikationssystem 34, das einen Archivierungsstreamingagenten 36 beinhaltet. Der Archivierungsstreamingagent 36 stellt einen Punkt bereit, zu dem ein interaktiver Echtzeitfluss 38 bei einer einstellbaren, bandbreitenempfindlichen Rate an ein Archivierungsrepository 40 gestreamt werden kann. Zu Veranschaulichungszwecken ist der interaktive Echtzeitfluss 38 in 2 als zwischen einer Computereinrichtung 42 innerhalb eines Unternehmensnetzes 44 und einer Computereinrichtung 46 außerhalb des Unternehmensnetzes 44 laufend gezeigt. Einige Ausführungsformen des interaktiven Kommunikationssystems 34 von 2 können vorsehen, dass jede der Computereinrichtungen 42 und 46 eine beliebige Computereinrichtung mit Netzkommunikationsfähigkeiten sein kann, etwa ein Smartphone, ein Tabletcomputer, eine dedizierte Web-Appliance, ein Medienserver, ein Desktop- oder ein Servercomputer oder eine speziell entwickelte Kommunikationseinrichtung, wobei es sich um nicht ausschließliche Beispiele handelt.
-
Die Computereinrichtungen 42 und 46 von 2 umfassen jeweils Clients für interaktive Flüsse, 48 und 50. Jeder der Clients für interaktive Flüsse, 48 und 50, kann eine Webbrowseranwendung, eine dedizierte Kommunikationsanwendung oder eine schnittstellenlose Anwendung wie eine Daemon- oder eine Dienstanwendung sein, wobei es sich um nicht ausschließliche Beispiele handelt. In einigen Ausführungsformen umfassen die Clients für interaktive Flüsse, 48 und 50, WebRTC-Clients und/oder Clients, die gemäß Steuerungsprotokollen wie SIP oder H.323 betrieben werden. Wie in 2 ersichtlich, umfassen die Clients für interaktive Flüsse, 48 und 50, weiter jeweils Anbieter der Funktionalität interaktiver Flüsse, 52 und 54. Die Anbieter der Funktionalität interaktiver Flüsse, 52 und 54, implementieren die Protokolle, Codecs und Anwendungsprogrammierschnittstellen (APIs), die zum Ermöglichen interaktiver Echtzeitsitzungen zwischen den Computereinrichtungen 42 und 46 nötig sind.
-
Im Beispiel von 2 hat der Client für interaktive Flüsse, 48, der Computereinrichtung 42 den interaktiven Echtzeitfluss 38 zum Client für interaktive Flüsse, 50, der Computereinrichtung 46 über eine sichere Peerverbindung 56 hergestellt. Es versteht sich, dass die Prozesse, über welche die sichere Peerverbindung 56 hergestellt wird, gemäß dem Typ des interaktiven Flusses (unter anderem z. B. WebRTC, SIP oder H.323), der hergestellt wird, variieren können. Sobald die sichere Peerverbindung 56 hergestellt ist, laufen die Video-, Audio- und/oder Datenstreams, aus denen der interaktive Echtzeitfluss 38 aufgebaut ist, in einem verschlüsselten Format zwischen der Computereinrichtung 42 und der Computereinrichtung 46 hin und her.
-
Wie oben angemerkt, beinhaltet das interaktive Kommunikationssystem 34 das Unternehmensnetz 44, das für Nutzer innerhalb eines Unternehmens vernetzte Computer- und Kommunikationsressourcen bereitstellt. Wie hierin genutzt, bezieht sich ein „Unternehmen“ auf einen beliebigen organisierten Zusammenschluss zum Zweck eines geschäftlichen Unterfangens oder eine andere organisierte private oder öffentliche Aktivität. Das Unternehmensnetz 44 beinhaltet eine „demilitarisierte Zone“ (DMZ) 58, um das Unternehmensnetz 44 zu schützen, während sowohl Unternehmensnutzern als auch externen Nutzern der Zugang zu Unternehmensressourcen (nicht gezeigt) innerhalb der Unternehmens-DMZ 58 gestattet wird. Die Unternehmens-DMZ 58 kann einen DMZ-Richtlinienerzwingungspunkt 60 beinhalten. Der DMZ-Richtlinienerzwingungspunkt 60 filtert oder verändert Netzverkehr, der durch die Unternehmens-DMZ 58 läuft, gemäß Unternehmensrichtlinien. Es versteht sich, dass die Unternehmens-DMZ 58 zusätzliche Elemente beinhalten kann, die in 2 nicht veranschaulicht sind.
-
Im Beispiel von 2 wird das Unternehmensnetz 44, zu dem die Computereinrichtung 42 gehört, gemäß einer Unternehmensrichtlinie betrieben, die vorschreibt, dass alle interaktiven Echtzeitflüsse 38, die in das und/oder aus dem Unternehmensnetz 44 laufen, zu Sicherheits-, rechtlichen und/oder Archivierungszwecken aufgezeichnet werden müssen. Diese Unternehmensrichtlinie kann am DMZ-Richtlinienerzwingungspunkt 60 angewendet werden, jedoch nur dort, wo der Netzverkehr, der den interaktiven Echtzeitfluss 38 bildet, unverschlüsselt ist und durch den DMZ-Richtlinienerzwingungspunkt 60 läuft. Falls diese beiden Bedingungen erfüllt sind, kann der DMZ-Richtlinienerzwingungspunkt 60 im Rahmen einer Gabelung eine Kopie des interaktiven Echtzeitflusses 38 zum Archivieren erzeugen oder kann ansonsten sicherstellen, dass der interaktive Echtzeitfluss 38 aufgezeichnet wird. Falls jedoch eine dieser Bedingungen nicht erfüllt ist, kann es unpraktisch oder unmöglich sein, die Unternehmensrichtlinie am DMZ-Richtlinienerzwingungspunkt 60 anzuwenden. Der Netzverkehr, der den interaktiven Echtzeitfluss 38 bildet, ist zum Beispiel möglicherweise verschlüsselt und somit für den DMZ-Richtlinienerzwingungspunkt 60 unzugänglich, oder die Endpunkte des interaktiven Echtzeitflusses 38 sind möglicherweise so positioniert, dass der interaktive Echtzeitfluss 38 nicht durch den DMZ-Richtlinienerzwingungspunkt 60 läuft.
-
In 2 wird der interaktive Echtzeitfluss 38 über die sichere Peerverbindung 56 gestreamt, wenn er durch den DMZ-Richtlinienerzwingungspunkt 60 läuft. Somit ist der Netzverkehr, der den interaktiven Echtzeitfluss 38 bildet, verschlüsselt und für ihn kann keine Gabelung zum Archivieren am DMZ-Richtlinienerzwingungspunkt 60 erzeugt werden. Wenngleich es möglich sein kann, dass der Anbieter der Funktionalität interaktiver Flüsse, 52, eine Gabelung des interaktiven Echtzeitflusses 38 erzeugt und ihn archiviert, ist der Anbieter der Funktionalität interaktiver Flüsse, 52, möglicherweise nicht in der Lage, dies bandbreitenempfindlich vorzunehmen, um den interaktiven Echtzeitfluss 38 aufrechtzuerhalten.
-
In diesem Zusammenhang ist der Archivierungsstreamingagent 36 von 2 bereitgestellt. In einigen Ausführungsformen ist der Archivierungsstreamingagent 36 implementiert als Erweiterung oder Plug-in für den Client für interaktive Flüsse, 48, zum Empfangen und Verarbeiten von Paketen, die durch den Client für interaktive Flüsse, 48, empfangen werden. In einigen Ausführungsformen ist der Archivierungsstreamingagent 36 möglicherweise in den Anbieter der Funktionalität interaktiver Flüsse, 52, integriert.
-
Der Anbieter der Funktionalität interaktiver Flüsse, 52, empfängt den interaktiven Echtzeitfluss 38 und erzeugt eine Gabelung der Inhalte des interaktiven Echtzeitflusses 38 als Archivierungsstream 62 an den Archivierungsstreamingagenten 36. Der Archivierungsstream 62, der ein Duplikat der Inhalte des interaktiven Echtzeitflusses 38 ist, wird dann bei einer einstellbaren Streamingrate durch den Archivierungsstreamingagenten 36 über das Unternehmensnetz 44 an das Archivierungsrepository 40 gestreamt. Wie oben mit Bezug auf 1 erörtert, kann der Archivierungsstreamingagent 36 auch einen Archivierungszeitachsenstream 64 bereitstellen, der mit dem Archivierungsstream 62 assoziiert ist und der gleichzeitig mit dem Archivierungsstream 62 an das Archivierungsrepository 40 gestreamt wird. Das Archivierungsrepository 40 ist möglicherweise eine oder mehrere Computereinrichtungen, die über das Unternehmensnetz 44 zugänglich sind und die konfiguriert sind, um eine dauerhafte Ablage von als Teil des Archivierungsstreams 62 empfangenen Daten bereitzustellen.
-
Während der Archivierungsstream 62 an das Archivierungsrepository 40 gestreamt wird, misst der Archivierungsstreamingagent 36 Änderungen der Verhaltenskennwerte des interaktiven Echtzeitflusses 38. Als nicht ausschließliche Beispiele misst der Archivierungsstreamingagent 36 möglicherweise Verhaltenskennwerte wie die verfügbare Netzbandbreite, den Datendurchsatz, die Latenz, den Jitter und/oder Fehlerraten des interaktiven Echtzeitflusses 38. Falls eine Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses 38 detektiert wird, kann der Archivierungsstreamingagent 36 basierend auf der Änderung die einstellbare Streamingrate modifizieren, bei welcher der Archivierungsstream 62 gerade an das Archivierungsrepository 40 gestreamt wird. Der Archivierungsstreamingagent 36 kann auch Änderungen der Netzauslastung durch die Computereinrichtung 42 messen und die einstellbare Streamingrate basierend auf jeglichen solchen Änderungen dementsprechend modifizieren.
-
Einige Ausführungsformen können vorsehen, dass ein Archivierungsstreamingagent in einen Netzmedienserver integriert ist, mit dem zwei oder mehr Endpunkte verbunden sind, um an einem interaktiven Echtzeitfluss beteiligt zu sein. In diesem Zusammenhang veranschaulicht 3 ein beispielhaftes interaktives Kommunikationssystem 66, das eine Computereinrichtung 68 beinhaltet, die einen Medienserver 70 zum Verteilen interaktiver Echtzeitflüsse 72(1 )-72(N) unter einer Vielzahl von Computereinrichtungen 74(1)-74(N) bereitstellt. Insbesondere beinhaltet der Medienserver 70 bei diesem Beispiel einen Archivierungsstreamingagenten 76 zum Streamen eines Duplikats der Inhalte der interaktiven Echtzeitflüsse 72 an ein Archivierungsrepository 78 bei einer einstellbaren, bandbreitenempfindlichen Rate. Der Medienserver 70 umfasst weiter einen Anbieter der Funktionalität interaktiver Flüsse, 80, zum Mischen, Vermitteln, Transcodieren oder sonstigen Bearbeiten und Verteilen der interaktiven Echtzeitflüsse 72. Der Archivierungsstreamingagent 76 kann implementiert sein als Erweiterung oder Plug-in für den Medienserver 70. In einigen Ausführungsformen ist der Archivierungsstreamingagent 76 möglicherweise in den Anbieter der Funktionalität interaktiver Flüsse, 80, integriert. Als nicht ausschließliche Beispiele ist der Medienserver 70 in einigen Ausführungsformen möglicherweise ein Konferenzserver, ein Contact-Center-Server oder eine Mediensteuerungseinheit (Media Control Unit, MCU), wobei es sich um nicht ausschließliche Beispiele handelt.
-
Bei diesem Beispiel ist jede der Computereinrichtungen 74(1)-74(N) mit dem Medienserver 70 der Computereinrichtung 68 verbunden. Die Computereinrichtungen 68 und 74 können über ein öffentliches Netz wie das Internet und/oder über ein oder mehrere private Netze kommunizieren. Die Computereinrichtungen 68 und 74 von 3 können beliebige Computereinrichtungen mit Netzkommunikationsfähigkeiten sein, etwa ein Smartphone, ein Tabletcomputer, eine dedizierte Web-Appliance, ein Medienserver, ein Desktop- oder ein Servercomputer oder eine speziell entwickelte Kommunikationseinrichtung, wobei es sich um nicht ausschließliche Beispiele handelt. Die Computereinrichtungen 74(1)-74(N) umfassen jeweils Clients für interaktive Flüsse, 84(1)-84(N). Jeder der Clients für interaktive Flüsse, 84, kann eine Webbrowseranwendung, eine dedizierte Kommunikationsanwendung oder eine schnittstellenlose Anwendung wie eine Daemon- oder eine Dienstanwendung sein, wobei es sich um nicht ausschließliche Beispiele handelt. In einigen Ausführungsformen umfassen die Clients für interaktive Flüsse, 84, WebRTC-Clients und/oder Clients, die gemäß Steuerungsprotokollen wie SIP oder H.323 betrieben werden. Wie in 3 ersichtlich, umfassen die Clients für interaktive Flüsse, 84(1)-84(N), weiter jeweils Anbieter der Funktionalität interaktiver Flüsse, 86(1)-86(N). Die Anbieter der Funktionalität interaktiver Flüsse, 86, implementieren die Protokolle, Codecs und Anwendungsprogrammierschnittstellen (APIs) (z. B. die Protokolle für WebRTC oder SIP), die zum Ermöglichen interaktiver Echtzeitsitzungen unter den Computereinrichtungen 74, welche die Anbieter der Funktionalität interaktiver Flüsse, 86, bereitstellen, nötig sind.
-
Der Anbieter der Funktionalität interaktiver Flüsse, 80, empfängt die interaktiven Echtzeitflüsse 72 und erzeugt eine Gabelung der Inhalte oder einer Mischung der Inhalte der interaktiven Echtzeitflüsse 72 an den Archivierungsstreamingagenten 76 als Archivierungsstream 88. Der Archivierungsstream 88, der ein Duplikat der Inhalte oder der Mischung von Inhalten der interaktiven Echtzeitflüsse 72 ist, wird dann durch den Archivierungsstreamingagenten 76 bei einer einstellbaren Streamingrate an das Archivierungsrepository 78 gestreamt. Wie oben mit Bezug auf 1 erörtert, kann der Archivierungsstreamingagent 76 auch einen Archivierungszeitachsenstream 90 bereitstellen, der mit dem Archivierungsstream 88 assoziiert ist und der gleichzeitig mit dem Archivierungsstream 88 an das Archivierungsrepository 78 gestreamt wird. Das Archivierungsrepository 78 ist möglicherweise eine oder mehrere Computereinrichtungen, die über ein öffentliches Netz und/oder ein privates Netz zugänglich sind und die konfiguriert sind, um eine dauerhafte Ablage von als Teil des Archivierungsstreams 88 empfangenen Daten bereitzustellen.
-
Während der Archivierungsstream 88 an das Archivierungsrepository 78 gestreamt wird, misst der Archivierungsstreamingagent 76 Änderungen der Verhaltenskennwerte der interaktiven Echtzeitflüsse 72. Als nicht ausschließliche Beispiele misst der Archivierungsstreamingagent 76 möglicherweise Verhaltenskennwerte wie die verfügbare Netzbandbreite, den Datendurchsatz, die Latenz, den Jitter und/oder Fehlerraten der interaktiven Echtzeitflüsse 72. Falls eine Änderung eines Verhaltenskennwerts der interaktiven Echtzeitflüsse 72 detektiert wird, kann der Archivierungsstreamingagent 76 basierend auf der Änderung die einstellbare Streamingrate modifizieren, bei welcher der Archivierungsstream 88 gerade an das Archivierungsrepository 78 gestreamt wird. Der Archivierungsstreamingagent 76 kann auch Änderungen der Netzauslastung durch die Computereinrichtung 68 messen und die einstellbare Streamingrate basierend auf jeglichen solchen Änderungen dementsprechend modifizieren.
-
Um beispielhafte Abläufe des Archivierungsstreamingagenten 12 von 1 zum Bereitstellen von bandbreiteneffizienter Archivierung des interaktiven Echtzeitflusses 14 allgemein zu beschreiben, ist 4 bereitgestellt. Der Klarheit halber wird bei der Beschreibung von 4 auf Elemente von 1 Bezug genommen. Beim Beispiel von 4 beginnen die Abläufe damit, dass der Anbieter der Funktionalität interaktiver Flüsse, 26, den interaktiven Echtzeitfluss 14 empfängt (Block 92). In einigen Ausführungsformen umfasst der interaktive Echtzeitfluss 14 möglicherweise einen interaktiven WebRTC-Fluss und/oder einen interaktiven Fluss gemäß einem Steuerungsprotokoll wie dem Session Initiation Protocol (SIP) oder H.323, wobei es sich um nicht ausschließliche Beispiele handelt.
-
Weiter unter Bezugnahme auf 4 erzeugt der Anbieter der Funktionalität interaktiver Flüsse, 26, als Nächstes eine Gabelung des interaktiven Echtzeitflusses 14 als Archivierungsstream 30 an den Archivierungsstreamingagenten 12 (Block 94). Der Archivierungsstream 30 ist ein Duplikat des Inhalts des interaktiven Echtzeitflusses 14. Der Archivierungsstreamingagent 12 streamt den Archivierungsstream 30 bei einer einstellbaren Streamingrate an das Archivierungsrepository 16 (Block 96). Wie oben angemerkt, ist das Archivierungsrepository 16 möglicherweise eine oder mehrere Computereinrichtungen, die über ein öffentliches oder ein privates Netz zugänglich sind und die konfiguriert sind, um eine dauerhafte Ablage von als Teil des Archivierungsstreams 30 empfangenen Daten bereitzustellen.
-
Der Archivierungsstreamingagent 12 misst als Nächstes eine Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses 14 (Block 98). Der Verhaltenskennwert des interaktiven Echtzeitflusses 14 beinhaltet möglicherweise eine Netzbandbreite, einen Datendurchsatz, eine Latenz, einen Jitterwert und/oder eine Fehlerrate des interaktiven Echtzeitflusses 14. Der Archivierungsstreamingagent 12 modifiziert basierend auf der Änderung des Verhaltenskennwerts des interaktiven Echtzeitflusses 14 die einstellbare Streamingrate des Archivierungsstreams 30 (Block 100). Indem der Archivierungsstreamingagent 12 die einstellbare Streamingrate des Archivierungsstreams 30 basierend auf der Änderung des Verhaltenskennwerts modifiziert, minimiert er eventuelle Auswirkungen auf den interaktiven Echtzeitfluss 14, während er nach wie vor ein vollständiges Archiv des interaktiven Echtzeitflusses 14 bereitstellt.
-
Der Archivierungsstreamingagent 12 bestimmt dann, ob der interaktive Echtzeitfluss 14 geendet hat (Block 102). Falls nein, wird bei der Verarbeitung zu Block 98 von 4 zurückgegangen, wo erneut eine Änderung eines Verhaltenskennwerts des interaktiven Echtzeitflusses 14 gemessen wird. Falls der interaktive Echtzeitfluss 14 geendet hat, stoppt der Archivierungsstreamingagent 12 das Streamen des Archivierungsstreams 30, sobald der ganze Inhalt des interaktiven Echtzeitflusses 14 an das Archivierungsrepository 16 gestreamt worden ist (Block 104).
-
Die 5A und 5B sind bereitgestellt, um einen beispielhaften verallgemeinerten Prozess, bei dem der Archivierungsstreamingagent 12 von 1 einen interaktiven Echtzeitfluss 14 bandbreiteneffizient archiviert, detaillierter zu veranschaulichen. Zu Veranschaulichungszwecken beziehen sich die 5A und 5B auf Elemente des interaktiven Kommunikationssystems 10 und des Archivierungsstreamingagenten 12 von 1. 5A zeigt detailliert Abläufe zum Erzeugen einer Gabelung des interaktiven Echtzeitflusses 14 und zum Streamen des Archivierungsstreams 30 an das Archivierungsrepository 16. 5B zeigt Abläufe zum Anpassen einer Streamingrate des Archivierungsstreams 30.
-
In 5A, auf die nunmehr Bezug genommen wird, empfängt der Anbieter der Funktionalität interaktiver Flüsse, 26, zunächst den interaktiven Echtzeitfluss 14 (Block 106). In einigen Ausführungsformen umfasst der interaktive Echtzeitfluss 14 möglicherweise einen interaktiven WebRTC-Fluss und/oder einen interaktiven Fluss gemäß einem Steuerungsprotokoll wie dem Session Initiation Protocol (SIP) oder H.323, wobei es sich um nicht ausschließliche Beispiele handelt. Der Anbieter der Funktionalität interaktiver Flüsse, 26, erzeugt als Nächstes eine Gabelung des interaktiven Echtzeitflusses 14 als Archivierungsstream 30 an den Archivierungsstreamingagenten 12 (Block 108). Der Archivierungsstream 30 ist ein Duplikat des Inhalts des interaktiven Echtzeitflusses 14.
-
In einigen Ausführungsformen kann der Archivierungsstreamingagent 12 optional den Archivierungsstream 30 vor oder gleichzeitig mit dem Beginn des Streamens des Archivierungsstreams 30 puffern (Block 110). Indem der Archivierungsstreamingagent 12 den Archivierungsstream 30 puffert, kann er sicherstellen, dass eine vollständige Kopie des interaktiven Echtzeitflusses 14 erstellt werden kann, selbst wenn Netzbedingungen erfordern, dass der Archivierungsstream 30 bei einer Rate, die kleiner als Echtzeit ist, gestreamt wird. Der Archivierungsstreamingagent 12 kann optional auch Netzpakete, die den Archivierungsstream 30 bilden, als eine niedrige Priorität aufweisend markieren (Block 112). In einigen Ausführungsformen werden dadurch eventuelle Auswirkungen des Archivierungsstreams 30 auf anderen Netzverkehr mit höherer Priorität minimiert.
-
Der Archivierungsstreamingagent 12 streamt dann den Archivierungsstream 30 bei einer einstellbaren Streamingrate an ein Archivierungsrepository 16 (Block 114). Das Archivierungsrepository 16 ist möglicherweise eine oder mehrere Computereinrichtungen, die über ein öffentliches oder ein privates Netz zugänglich sind und die konfiguriert sind, um eine dauerhafte Ablage von als Teil des Archivierungsstreams 30 empfangenen Daten bereitzustellen. Wie unten noch ausführlicher erörtert wird, erlaubt Streamen des Archivierungsstreams 30 bei einer einstellbaren Streamingrate, dass der Archivierungsstreamingagent 12 die Streamingrate als Reaktion auf Änderungen der Verhaltenskennwerte des interaktiven Echtzeitflusses 14 und/oder Änderungen der Netzauslastung durch eine Computereinrichtung modifiziert.
-
In einigen Ausführungsformen geben Nutzer möglicherweise Daten anderer Typen (z. B. Dokumente, E-Mails und/oder Bilder) außerhalb des interaktiven Echtzeitflusses 14 frei, während sie Videodaten, Audiodaten und/oder Daten des interaktiven Echtzeitflusses 14 austauschen. Da Streamen des Archivierungsstreams 30 möglicherweise nicht in Echtzeit erfolgt, ist es in solchen Ausführungsformen möglicherweise wünschenswert, die während des interaktiven Echtzeitflusses 14 freigegebenen Daten mit konkreten Zeitpunkten im Archivierungsstream 30 zu assoziieren. Dementsprechend kann der Archivierungsstreamingagent 12 optional einen Archivierungszeitachsenstream 32 gleichzeitig mit dem Archivierungsstream 30 an das Archivierungsrepository 16 streamen (Block 116). Die Verarbeitung wird dann bei Block 118 von 5B fortgesetzt.
-
In 5B, auf die nunmehr Bezug genommen wird, misst der Archivierungsstreamingagent 12 einen Verhaltenskennwert des interaktiven Echtzeitflusses 14 (Block 118). Der Verhaltenskennwert des interaktiven Echtzeitflusses 14 beinhaltet möglicherweise eine Netzbandbreite, einen Datendurchsatz, eine Latenz, einen Jitterwert und/oder eine Fehlerrate des interaktiven Echtzeitflusses 14. Der Archivierungsstreamingagent 12 bestimmt, ob seit einer letzten Messung des Verhaltenskennwerts eine Änderung des gemessenen Verhaltenskennwerts aufgetreten ist (Block 120). Falls am Entscheidungsblock 120 eine Änderung der Messung des Verhaltenskennwerts aufgetreten ist, modifiziert der Archivierungsstreamingagent 12 die einstellbare Streamingrate des Archivierungsstreams 30 basierend auf der Änderung der Messung des Verhaltenskennwerts (Block 122). Falls der Archivierungsstreamingagent 12 als nicht ausschließliches Beispiel eine Verringerung des Datendurchsatzes des interaktiven Echtzeitflusses 14 detektiert, kann der Archivierungsstreamingagent 12 die einstellbare Streamingrate des Archivierungsstreams 30 senken, um Auswirkungen auf den interaktiven Echtzeitfluss 14 zu minimieren. Die Verarbeitung wird dann bei Block 124 wieder aufgenommen. Falls am Entscheidungsblock 120 keine Änderung der Messung des Verhaltenskennwerts detektiert wird, wird bei der Verarbeitung zu Block 124 von 5B übergegangen.
-
Der Archivierungsstreamingagent 12 bestimmt als Nächstes eine Netzauslastung durch die Computereinrichtung 18 (Block 124). Einige Ausführungsformen können vorsehen, dass der Archivierungsstreamingagent 12 die Netzauslastung basierend auf von der Computereinrichtung 18 bereitgestellten Netzauslastungsdaten bestimmen kann. Der Archivierungsstreamingagent 12 bestimmt dann, ob seit einer letzten Bestimmung der Netzauslastung eine Änderung der Netzauslastung aufgetreten ist (Block 126). Falls am Entscheidungsblock 126 eine Änderung der Netzauslastung durch die Computereinrichtung 18 detektiert wird, modifiziert der Archivierungsstreamingagent 12 die einstellbare Streamingrate des Archivierungsstreams 30 basierend auf der Änderung der Netzauslastung (Block 128). Falls der Archivierungsstreamingagent 12 als nicht ausschließliches Beispiel eine Erhöhung der Netzauslastung durch die Computereinrichtung 18 detektiert, kann der Archivierungsstreamingagent 12 die einstellbare Streamingrate des Archivierungsstreams 30 senken, um die Netzlast zu minimieren. Die Verarbeitung wird dann bei Block 130 wieder aufgenommen. Falls am Entscheidungsblock 126 keine Änderung der Messung der Netzauslastung detektiert wird, wird bei der Verarbeitung zu Block 130 von 5B übergegangen.
-
Der Archivierungsstreamingagent 12 bestimmt als Nächstes, ob der interaktive Echtzeitfluss 14 geendet hat (Block 130). Falls nein, wird die Verarbeitung bei Block 118 von 5B wieder aufgenommen. Falls der interaktive Echtzeitfluss 14 geendet hat, stoppt der Archivierungsstreamingagent 12 das Streamen des Archivierungsstreams 30 und, falls zweckmäßig, des Archivierungszeitachsenstreams 32, sobald der ganze Inhalt des interaktiven Echtzeitflusses 14 an das Archivierungsrepository 16 gestreamt worden ist (Block 132).
-
6 stellt eine schematische Diagrammdarstellung eines Verarbeitungssystems 134 in der beispielhaften Form einer beispielhaften Computereinrichtung 136 dar, das angepasst ist, um Befehle zum Durchführen der hierin beschriebenen Funktionen auszuführen. In einigen Ausführungsformen führt das Verarbeitungssystem 134 möglicherweise Befehle zum Durchführen der Funktionen des Archivierungsstreamingagenten 12 von 1 aus. In diesem Zusammenhang umfasst das Verarbeitungssystem 134 möglicherweise die Computereinrichtung 136, innerhalb deren ein Satz von Befehlen zum Bewirken, dass das Verarbeitungssystem 134 eine beliebige oder beliebige mehrere der hierin erörterten Methodiken durchführt, ausgeführt werden kann. Das Verarbeitungssystem 134 ist möglicherweise mit anderen Maschinen in einem Local Area Network (LAN), einem Intranet, einem Extranet oder dem Internet verbunden (etwa vernetzt, wobei es sich um ein nicht ausschließliches Beispiel handelt). Das Verarbeitungssystem 134 wird möglicherweise in einer Client-Server-Netzumgebung oder als gleichrangige Maschine in der Umgebung eines Peer-to-Peer- (oder verteilten) Netzes betrieben. Auch wenn nur ein einziges Verarbeitungssystem 134 veranschaulicht ist, können die Begriffe „Controller“ und „Server“ auch so aufgefasst werden, dass sie eine beliebige Gruppe von Maschinen beinhalten, die individuell oder gemeinsam einen Satz (oder mehrere Sätze) von Befehlen zum Durchführen einer beliebigen oder beliebiger mehrerer der hierin erörterten Methodiken ausführen. Das Verarbeitungssystem 134 und/oder die Computereinrichtung 136 umfassen möglicherweise einen Server, einen Personal Computer, einen Desktopcomputer, einen Laptopcomputer, einen Personal Digital Assistant (PDA), ein Computerpad, eine mobile Einrichtung, eine speziell entwickelte Kommunikationseinrichtung und/oder eine beliebige andere Einrichtung und verkörpern möglicherweise, wobei es sich um nicht ausschließliche Beispiele handelt, einen Server oder einen Computer eines Nutzers.
-
Die beispielhafte Computereinrichtung 136 beinhaltet eine Verarbeitungseinrichtung oder einen Prozessor 138, einen Hauptspeicher 140 (ein Read Only Memory (ROM), einen Flashspeicher, einen dynamischen Schreib-Lese-Speicher (DRAM) wie ein synchrones DRAM (SDRAM) etc. als nicht ausschließliche Beispiele) und einen statischen Speicher 142 (einen Flashspeicher, einen statischen Schreib-Lese-Speicher (SRAM) etc. als nicht ausschließliche Beispiele), die möglicherweise über einen Datenbus 144 miteinander kommunizieren. Alternativ kann die Verarbeitungseinrichtung 138 direkt oder über irgendein anderes Konnektivitätsmittel mit dem Hauptspeicher 140 und/oder dem statischen Speicher 142 verbunden sein.
-
Die Verarbeitungseinrichtung 138 verkörpert eine oder mehrere Verarbeitungseinrichtungen wie einen Mikroprozessor, eine Zentralverarbeitungseinheit (CPU) oder dergleichen. Insbesondere ist die Verarbeitungseinrichtung 138 möglicherweise ein Mikroprozessor für Rechenvorgänge mit komplexem Befehlssatz (CISC), ein Mikroprozessor für Rechenvorgänge mit reduziertem Befehlssatz (RISC), ein Mikroprozessor für überlange Befehlswörter (VLlW), ein Prozessor, der andere Befehlssätze implementiert, oder ein Prozessor, der eine Kombination von Befehlssätzen implementiert. Die Verarbeitungseinrichtung 138 ist konfiguriert, um Verarbeitungslogik in Befehlen 146 und/oder gecachten Befehlen 148 auszuführen, um die hierin erörterten Abläufe und Schritte durchzuführen.
-
Die Computereinrichtung 136 kann ferner eine Kommunikationsschnittstelle in Form einer Netzschnittstelleneinrichtung 150 beinhalten. Sie kann auch einen Eingang 152 zum Empfangen von Eingaben und Auswahloptionen, die bei der Ausführung der Befehle 146, 148 an die Computereinrichtung 136 zu kommunizieren sind, beinhalten oder nicht. Sie kann auch einen Ausgang 154, der unter anderem (eine) Anzeige(n) 156 beinhaltet, beinhalten oder nicht. Die Anzeige(n) 156 ist/sind möglicherweise eine Videoanzeigeeinheit (eine Flüssigkristallanzeige (LCD) oder eine Kathodenstrahlröhre (CRT) als nicht ausschließliche Beispiele), eine Einrichtung für alphanumerische Eingaben (eine Tastatur als nicht ausschließliches Beispiel), eine Cursorsteuereinrichtung (eine Maus als nicht ausschließliches Beispiel) und/oder eine Touchscreen-Einrichtung (eine Tablet-Eingabeeinrichtung oder ein Bildschirm als nicht ausschließliche Beispiele).
-
Die Computereinrichtung 136 beinhaltet möglicherweise eine oder auch keine Datenablageeinrichtung 158, welche die Nutzung eines Laufwerks/von Laufwerken 160 beinhaltet, um die hierin beschriebenen Funktionen in einem computerlesbaren Medium 162 abzulegen, auf dem ein oder mehrere Sätze von Befehlen 164 (z. B. Software) abgelegt sind, die eine beliebige oder beliebige mehrere der hierin beschriebenen Methodiken oder Funktionen ausführen. Die Funktionen können die Verfahren und/oder andere Funktionen des Verarbeitungssystems 134, eine Teilnehmernutzereinrichtung und/oder einen Lizenzierungsserver beinhalten, wobei es sich um nicht ausschließliche Beispiele handelt. Der eine oder die mehreren Sätze von Befehlen 164 können während ihrer Ausführung durch die Computereinrichtung 136 auch vollständig oder mindestens teilweise innerhalb des Hauptspeichers 140 und/oder innerhalb der Verarbeitungseinrichtung 138 liegen. Der Hauptspeicher 140 und die Verarbeitungseinrichtung 138 bilden ebenfalls für Maschinen zugängliche Ablagemedien. Die Befehle 146, 148 und/oder 164 können weiter über ein Netz 166 über die Netzschnittstelleneinrichtung 150 gesendet oder empfangen werden. Das Netz 166 kann ein Intra-Netz oder ein Inter-Netz sein.
-
Wenngleich das computerlesbare Medium 162 in einem Ausführungsbeispiel als einzelnes Medium gezeigt wird, ist der Begriff „für Maschinen zugängliches Ablagemedium“ so aufzufassen, dass er ein einzelnes Medium oder mehrere Medien (eine zentrale oder eine verteilte Datenbank und/oder assoziierte Cache-Speicher und Server als nicht ausschließliche Beispiele) beinhaltet, das bzw. die den einen oder die mehreren Sätze von Befehlen 164 ablegt bzw. ablegen. Der Begriff „für Maschinen zugängliches Ablagemedium“ ist auch so aufzufassen, dass er beliebige Medien beinhaltet, die fähig sind, einen Satz von Befehlen 146, 148 und/oder 164 zur Ausführung durch die Maschine abzulegen, zu codieren oder zu übertragen, und die bewirken, dass die Maschine eine beliebige oder beliebige mehrere der hierin offenbarten Methodiken durchführt. Der Begriff „für Maschinen zugängliches Ablagemedium“ ist dementsprechend so aufzufassen, dass er Halbleiterspeicher, optische und magnetische Medien und Trägerwellensignale beinhaltet, jedoch nicht darauf beschränkt ist.
-
Die hierin offenbarten Ausführungsformen sind möglicherweise in Hardware und in Befehlen, die in Hardware abgelegt sind, ausgeführt und liegen möglicherweise, wobei es sich um nicht ausschließliche Beispiele handelt, in einem Random Access Memory (RAM), einem Flashspeicher, einem Read Only Memory (ROM), einem Electrically Programmable ROM (EPROM), einem Electrically Erasable Programmable ROM (EEPROM), in Registern, auf einer Festplatte, einer Wechselfestplatte, einer CD-ROM oder einem computerlesbaren Medium in irgendeiner anderen aus dem Stand der Technik bekannten Form vor. Ein beispielhaftes Ablagemedium ist an den Prozessor gekoppelt, sodass der Prozessor Informationen vom Ablagemedium lesen und das Ablagemedium mit Informationen beschreiben kann. Alternativ kann das Ablagemedium fest in den Prozessor eingebaut sein. Der Prozessor und das Ablagemedium können sich in einer anwendungsspezifischen integrierten Schaltung (ASIC) befinden. Die ASIC kann sich in einem entfernten Endgerät befinden. Alternativ können sich der Prozessor und das Ablagemedium als separate Komponenten in einem entfernten Endgerät, in einer Basisstation oder auf einem Server befinden.
-
Es wird auch angemerkt, dass die in beliebigen der Ausführungsbeispiele hierin beschriebenen Ablaufschritte beschrieben werden, um Beispiele bereitzustellen und eine Erörterung zu ermöglichen. Die beschriebenen Abläufe lassen sich statt in den veranschaulichten Reihenfolgen auch in zahlreichen anderen Reihenfolgen durchführen. Des Weiteren können Abläufe, die als einzelner Ablaufschritt beschrieben werden, in der Praxis auch in einer Anzahl unterschiedlicher Schritte durchgeführt werden. Zusätzlich können ein oder mehrere in den Ausführungsbeispielen erörterte Ablaufschritte auch kombiniert werden. Es versteht sich, dass die in den Flussdiagrammen veranschaulichten Ablaufschritte auf zahlreiche unterschiedliche Arten abgewandelt werden können, welche sich für den Fachmann ohne Weiteres ergeben. Für den Fachmann wäre auch ersichtlich, dass Informationen und Signale unter Nutzung beliebiger von etlichen unterschiedlichen Technologien und Techniken ausgebildet sein können. Daten, Befehle, Kommandos, Informationen, Signale, Bits, Symbole und Chips, auf die in der obigen Beschreibung gegebenenfalls Bezug genommen wird, können durch Spannungen, Ströme, elektromagnetische Wellen, Magnetfelder oder -partikel, optische Felder oder Partikel oder beliebige Kombinationen davon ausgebildet sein, wobei es sich um nicht ausschließliche Beispiele handelt.
-
Die vorangehende Beschreibung der Offenbarung ist bereitgestellt, um dem Fachmann eine Anfertigung gemäß der Offenbarung oder deren Nutzung zu ermöglichen. Verschiedene Modifikationen der Offenbarung ergeben sich für den Fachmann ohne Weiteres, und die allgemeinen Prinzipien, die hierin definiert werden, können auch auf andere Variationen angewendet werden, ohne vom Gedanken oder vom Schutzbereich der Offenbarung abzuweichen. Deshalb soll die Offenbarung nicht auf die hierin beschriebenen Beispiele und Ausgestaltungen beschränkt sein, sondern ihr soll der weitestmögliche Schutzbereich zukommen, der mit den Prinzipien und den Neuheitsmerkmalen, die hierin offenbart werden, vereinbar ist.