-
Die Erfindung betrifft ein Verfahren zur Zuordnung einer Kennung zu einer Elementliste zum Zweck der Datenverteilung in einem Netzwerk, wobei die Elementliste eine Mehrzahl von aus einer Elementmenge ausgewählten Elementen aufweist, wobei jedes Element durch eine ganze Zahl repräsentiert wird und wobei die Elementmenge eine vorbestimmte Gesamtzahl von Elementen aufweist. Des Weiteren betrifft die vorliegende Erfindung ein Verfahren zur Zuordnung einer Elementliste zu einer Kennung zum Zwecke der Verteilung von Daten in einem Netzwerk, wobei die Kennung eine ganze Zahl ist, wobei die zu ermittelnden Elementliste eine Mehrzahl von aus einer Elementmenge ausgewählten Elementen aufweist, wobei jedes Element durch eine ganze Zahl repräsentiert wird und wobei die Elementmenge eine vorbestimmte Gesamtzahl von Elementen aufweist. Darüber hinaus betrifft die vorliegende Erfindung Netzwerke zur Verteilung von Daten an Endgeräte in dem Netzwerk, wobei Elemente der Daten in einem Cachespeicher der Endgeräte zwischenspeicherbar sind und wobei jedes der Elemente mittels einer Ganzzahl identifizierbar ist.
-
Die Verteilung von großen Datenmengen an Endgeräte in paketvermittelten Netzwerken, insbesondere in Mobilfunknetzen, findet derzeit hauptsächlich durch so genannte Punkt zu Punkt-Verbindungen statt. Jedes der Endgeräte kann zu diesem Zweck Verbindungen über das Netzwerk mit einem Server, auf dem die Daten abgelegt sind, aufbauen. Dies kann beispielsweise mittels TCP/IP-Verbindungen geschehen, mittels derer Dateien von dem Server herunterladbar sind. Eine Anforderung über derartige Verbindungen führt dazu, dass die jeweils angeforderte Datei vollständig übertragen werden muss. Dies ist auch dann der Fall, wenn mehrere Endgeräte dieselbe Datei anfordern. Das Netzwerk wird in diesem Fall für jedes Endgerät erneut mit den Daten der Datei belastet, wodurch die benötigte Bandbreite erhöht wird.
-
Es sind verschiedene Lösungsansätze dafür bekannt, die Bandbreite für derartige Dateiübertragungen für den Fall zu reduzieren, dass es sich bei den großen Datenmengen um einen Datenbestand handelt, aus dem unterschiedliche Endgeräte häufig dieselben Daten anfordern werden. So ist es beispielsweise möglich, zu Zeiten, in denen das Netzwerk nur wenig genutzt wird, häufig angeforderte Elemente des Datenbestands vorsorglich an die Endgeräte zu übertragen. Die Endgeräte legen diese Elemente, die im Wesentlichen Dateien oder Dateifragmente sind, in einem Cachespeicher ab.
-
Fordern zwei Endgeräte nunmehr Elemente an, die in dem jeweils anderen Endgerät bereits in dem Cachespeicher vorgehalten werden, so kann der Server die beiden angeforderten Elemente miteinander zu einem einzelnen Datenblock mit der Länge eines einzelnen Elements verknüpfen und diesen als Broadcast an alle Endgeräte gleichzeitig versenden. Die Endgeräte können anschließend unter Zuhilfenahme der bereits vorhandenen Elemente in ihrem Cachespeicher aus dem so übermittelten Datenblock die angeforderten Daten rekonstruieren.
-
Beispiele für derartige Verfahren finden sich in der
US 2015/0207881 A1 , der
US 2015/0207895 A1 , der
US 2015/0207896 A1 und der
US 2012/0254459 A1 .
-
Um die Identifikation der in einem Cachespeicher eines Endgeräts vorhandenen Elemente und/oder der Endgeräte, die ein bestimmtes Element in ihrem Cachespeicher vorhalten zu ermöglichen, werden diese Elemente jeweils als Mengen oder Listen zusammengefasst und eindeutig identifizierbaren Elementemengen oder -listen Kennungen zugeordnet, mittels derer die Ermittlung der zu verknüpften Elemente vereinfacht wird. Für die damit verbundenen Zuordnungsvorgänge wird entweder eine große Rechenleistung zum Durchlaufen aller möglichen Zuordnungen oder eine große Menge Speicher zur Ablage vorberechneter Zuordnungen benötigt.
-
Die Erfindung geht auf die Aufgabe zurück, ein Zuordnungsverfahren zu schaffen, das ressourcenschonender und an die besonderen Bedürfnisse von Endgeräten in Mobilfunknetzen angepasst ist. Darüber hinaus soll ein Netzwerk vorgeschlagen werden, dass eine derartige Zuordnung ressourcenschonender und unter Berücksichtigung der besonderen Bedürfnisse von Endgeräten in Mobilfunknetzen durchführen kann.
-
Zur Lösung werden komplementäre Verfahren gemäß Patentanspruch 1 und 3 vorgeschlagen. Diese Verfahren haben gegenüber den bekannten Lösungen den Vorteil, dass nicht alle möglichen Zuordnungen kombinatorisch ermittelt und verifiziert werden müssen. Darüber hinaus ist der Speicherbedarf auf wenige kompakt speicherbare Variablen beschränkt. Somit ist sowohl die für die Durchführung des Verfahrens notwendige Rechenleistung als auch der Speicherbedarf reduziert.
-
Vorteilhaft kann gemäß den Patentansprüchen 2 und 4 vorgesehen sein, dass anstatt einer individuellen Berechnung der Binomialkoeffizienten eine vorberechnete Tabelle dieser Koeffizienten zum Einsatz kommt. Hierdurch wird die notwendige Rechenleistung weiter reduziert, indem eine geringfügige Vergrößerung des Speicherbedarfs in Kauf genommen wird.
-
Die Aufgabe wird darüber hinaus durch ein Netzwerk gemäß Patentanspruch 5 gelöst, bei dem wenigstens ein Endgerät eine Zuordnungseinrichtung aufweist, die zur Durchführung eines der oben genannten Verfahren ausgebildet ist.
-
Ebenso wird die Aufgabe durch ein Netzwerk gemäß Patentanspruch 6 gelöst, bei dem wenigstens ein Server an das Netzwerk angeschlossen ist, der eine Zuordnungseinrichtung aufweist, die zur Durchführung eines der oben genannten Verfahren ausgebildet ist.
-
Die Erfindung wird nachfolgend anhand von Zeichnungen näher erläutert, welche die Erfindung lediglich schematisch zeigen und den Schutzbereich nicht beschränken sollen. Es zeigen im Einzelnen:
-
1 ein Flussdiagramm eines Verfahrens zur Ermittlung einer Kennung zu einer Elementliste gemäß einer ersten Ausführungsform der Erfindung;
-
2 ein Flussdiagramm eines Verfahrens zur Ermittlung einer Elementliste zu einer Kennung gemäß einer ersten Ausführungsform der Erfindung;
-
3 eine Übersicht über ein Netzwerk zur Verteilung von Daten an Endgeräte in dem Netzwerk und
-
4 eine Übersicht über Endgeräte und deren Speichereinrichtungen in dem Netzwerk.
-
Das in 3 gezeigte Netzwerk 10 ist beispielsweise als Mobilfunknetzwerk ausgestaltet. Das Mobilfunknetzwerk 10 weist eine Basisstation 12 auf, die mittels eines Mediums 14, beispielsweise mittels elektromagnetischer Wellen, mit einer Vielzahl von Endgeräten 16a–16f kommunizieren kann. An das Netzwerk 10 ist eine Datenbereitstellungseinrichtung (Server) 18 angeschlossen, die Daten zum Abruf durch die Endgeräte 16a–16f bereithält.
-
Die Endgeräte 16a–16f können über das Mobilfunknetzwerk 10, beispielsweise unter Verwendung des IP-Protokolls, Daten von der Datenbereitstellungseinrichtung 18 abrufen. Diese Daten werden anschließend über das Mobilfunknetzwerk 10 an die Endgeräte 16a–16f übermittelt. Das Medium 14 verfügt über eine begrenzte Bandbreite, wodurch die Menge der je Zeiteinheit übertragbaren Daten begrenzt ist. In einem drahtlosen Medium 14 teilen sich die dieses benutzenden Endgeräte 16a–16f die verfügbare Bandbreite. Dadurch kann die Übertragung der von einem der Endgeräte 16a–16f angeforderten Daten verlangsamt sein, wenn von den Endgeräten 16a–16f große Mengen Daten angefordert werden.
-
Die Menge der angeforderten Daten in real existierenden Mobilfunknetzwerken 10 ist gewöhnlich von der Tageszeit abhängig. So werden beispielsweise Videos, die besonders große Datenmengen umfassen, häufig abends angefordert, so dass Mobilfunknetzwerke 10 zu dieser Zeit besonders ausgelastet sind. In den frühen Morgenstunden hingegen werden nur wenige Daten angefordert, so dass in dem Mobilfunknetzwerk 10 zu diesem Zeitpunkt große ungenutzte Kapazitäten vorgehalten werden.
-
Aus diesem Umstand ergibt sich das Bestreben, häufig angeforderte Daten, beispielsweise Daten einer Online-Videobibliothek, zu Zeiten vorsorglich zu übermitteln, in denen die Auslastung des Mobilfunknetzes 10 gering ist, so dass eine erneute Übertragung zu Zeiten, zu denen die Auslastung des Mobilfunknetzes 10 hoch ist, nicht mehr notwendig ist.
-
Gewöhnlich weisen Videobibliotheken allerdings so viele Daten auf, dass ein vollständiges Zwischenspeichern auf mobilen Endgeräten 16a–16f aufgrund der beschränkten Größe der in diesen enthaltenen Speichereinrichtungen nicht praktisch umsetzbar ist. Darüber hinaus sind derzeit die in Mobilfunknetzwerken 10 verfügbaren Bandbreiten nicht für eine regelmäßige vorsorgliche Übertragung derartiger Datenmengen geeignet.
-
Insbesondere in Mobilfunknetzwerken 10 ist das Medium 14 so ausgestaltet, dass ein und dieselben Daten an alle Endgeräte 16a–16f gleichzeitig gesendet werden können (Rundsendung, Broadcast), wobei die Bandbreite für die Übertragung lediglich einmal für alle Endgeräte 16a–16f und nicht für alle Endgeräte 16a–16f separat erneut benötigt wird.
-
Diesen Umständen trägt die Anwendung der sogenannten Indexkodierung (index coding) Rechnung. Diese kann auf den Endgeräten 16a–16f beispielsweise so umgesetzt werden, wie es in 4 gezeigt ist. Jedes der Endgeräte 16a–16f weist eine Speichereinrichtung 20a–20f, die auch Cachespeicher genannt wird, auf, in der Datenfragmente 22 ablegbar sind. Jedes der Datenfragmente 22 ist entweder Teil einer größeren Datei, beispielsweise eine Videodatei, oder ist in sich selbst eine abgeschlossene Datei. Jedes der Datenfragmente 22 ist ein Element einer Gesamtmenge von Elementen, die in der Datenbereitstellungseinrichtung 18 abgelegt sind. Um die Datenfragmente 22 eindeutig zu identifizieren, ist jedem der Datenfragmente 22 beziehungsweise Elemente eine ganze Zahl als Identifikator zugeordnet.
-
In der Speichereinrichtung 20a des Endgeräts 16a sind beispielsweise die Datenfragmente 22 mit den Identifikatoren 1, 8, 17, 28 sowie einige weitere abgelegt. In der Speichereinrichtung 20b des Endgeräts 16b sind beispielsweise die Datenfragmente 22 mit den Identifikatoren 4, 7, 16, 33 sowie einige weitere abgelegt. Fordert nunmehr das Endgerät 16a das Datenfragment 22 mit dem Identifikator 4 und gleichzeitig das Endgerät 16b das Datenfragment 22 mit dem Identifikator 1 an, so können diese beiden Datenfragmente 22, beispielsweise in der Datenbereitstellungseinrichtung 18 mathematisch miteinander kombiniert werden, beispielsweise mittels einer exklusiv-oder-Operation (XOR). Das daraus resultierende Datenfragment 1 + 4 ist mit dem Datenfragment 22 mit dem Identifikator 4 so kombinierbar, das daraus das Datenfragment 22 mit dem Identifikator 1 erhältlich ist. Des Weiteren ist das Datenfragment 1 + 4 mit dem Datenfragment 22 mit dem Identifikator 1 so kombinierbar, das daraus das Datenfragment 22 mit dem Identifikator 4 erhältlich ist.
-
Das Datenfragment 1 + 4 nimmt durch die Möglichkeit der Rundsendung die Bandbreite des Mediums 14 nur einmal in Anspruch. Dennoch haben sowohl das Endgerät 16a als auch das Endgerät 16b die angeforderten Daten erhalten. In diesem Fall wird die benötigte Bandbreite also um die Hälfte reduziert.
-
Damit dieses Verfahren anwendbar ist, muss die Datenbereitstellungseinrichtung 18 Informationen darüber erhalten, welche Datenfragmente 22 in welchen Endgeräten 16a–16f abgelegt wurden und welche Kombination von Anforderungen sich zu kombinierten Datenfragmenten zusammenfassen lässt. Um diese Informationen effizient übermitteln und verarbeiten zu können werden bei der Indexkodierung Listen zu Indizes codiert. Beispielsweise kann einer Liste, die als Elemente alle Endgeräte 16a–16f aufweist, die ein Datenfragment 22 mit einem bestimmten Identifikator in ihrer Speichereinrichtung 20a–20f zwischengespeichert haben, ein Index in Form einer Kennung zugeordnet werden. Dieser Kennung ist dadurch auch eindeutig eine Elementliste zugewiesen. Die Liste beziehungsweise die Kennung kann auch andere Informationen repräsentieren, beispielsweise welche Datenfragmente 22 in der Speichereinrichtung 20a–20f eines bestimmten Endgeräts 16a–16f abgelegt sind.
-
Die Zuordnung zwischen der Elementliste (subset) und der Kennung (Index) kann beispielsweise durch Abzählen nach dem folgenden in Pseudocode beschriebenen Verfahren durchgeführt werden:
-
Bei diesem Verfahren zur Zuordnung von Elementlisten zu Kennungen werden im Wesentlichen alle möglichen Zuordnungen ausprobiert, bis die korrekte Zuordnung gefunden wurde. Dies erfordert eine große Rechenleistung.
-
Alternativ dazu kann die Zuordnung von Elementlisten zu Kennungen im Vorfeld berechnet und dann als vorberechnete Zuordnung abgespeichert werden. Dies benötigt viel Speicherplatz. Bereits bei moderaten Mengen von Endgeräten 16a–16f und Datenfragmenten 22 können zur Speicherung dieser vorberechneten Zuordnung über 50GB Daten anfallen. Derartig große Datenstrukturen sind nur schwer in mobilen Endgeräten 16a–16f vorzuhalten.
-
Das erfindungsgemäße erste Verfahren zur Zuordnung einer Kennung zu einer bekannten Elementliste, das in 1 gezeigt ist, setzt voraus, dass der das Verfahren durchführenden Einrichtung eine Elementliste S übergeben wird. Die Elementliste S enthält eine Mehrzahl von Elementen, wobei jedes Element durch eine ganze Zahl repräsentiert wird. Die Elemente sind einer Elementmenge entnommen, die alle möglichen Elemente, beispielsweise alle Dateifragmente 22, repräsentiert. Diese Elementmenge weist eine vorbestimmte Gesamtzahl n von Elementen auf.
-
Ausgehend von der Elementliste S wird in einem ersten vorbereitenden Schritt 100 zunächst eine Anzahl der Elemente, die in der Elementliste S enthalten sind, ermittelt. Diese Anzahl wird gewöhnlich Kardinalität genannt. Das Ergebnis wird in einem Kardinalitätszähler k abgelegt. In einem zweiten vorbereitenden Schritt 101 wird die Zahl 0 in einem Begrenzungszähler c abgelegt. In einem dritten vorbereitenden Schritt 102 wird die Zahl 0 in einem Zwischenspeicher i abgelegt.
-
Die vorbereitenden Schritte 100–102 können in jeder beliebigen Reihenfolge ausgeführt werden.
-
In einem ersten Schritt 103 wird das kleinste Element der Elementliste S ermittelt und in einem Elementzwischenspeicher m abgelegt. Das in dem Elementzwischenspeicher m abgelegte kleinste Element der Elementliste S wird in einem zweiten Schritt 104 aus der Elementliste S entfernt.
-
In einem dritten Schritt 106 wird der Wert des Elementzwischenspeichers m und des Begrenzungszählers c verglichen. Sind die Werte nicht identisch, so wird mit einem weiter unten beschriebenen achten Schritt 108 fortgefahren.
-
In einem vierten Schritt 114 wird der Kardinalitätszähler k um 1 verringert. In einem daran anschließenden fünften Schritt 116 wird der Wert des Kardinalitätszählers k mit 0 verglichen. Ist der Wert des Kardinalitätszählers k gleich 0, so wird mit einem weiter unten beschriebenen Abschlussschritt 122 fortgefahren.
-
In einem sechsten Schritt 118 wird der Begrenzungszähler c um 1 erhöht.
-
In einem siebten Schritt 120 wird festgestellt, ob der Begrenzungszähler c der Gesamtzahl n von Elementen entspricht. Ist dies der Fall, so wird mit dem Abschlussschritt 122 fortgefahren. Ist dies nicht der Fall, so wird mit dem ersten Schritt 103 fortgefahren.
-
In dem achten Schritt
108 wird ein Binomialkoeffizient wie folgt berechnet
und zu dem Zwischenspeicher i hinzu addiert.
-
In einem neunten Schritt 110 wird der Begrenzungszähler c um 1 erhöht. In einem zehnten Schritt 112 wird der Begrenzungszähler c mit der Gesamtzahl n verglichen. Sind die Werte identisch, so wird mit dem Abschlussschritt 122 fortgefahren. Ansonsten wird mit dem dritten Schritt 106 fortgefahren.
-
In dem Abschlussschritt 122 wird der Inhalt des Zwischenspeichers i übergeben. Er stellt die ermittelte Kennung als Ergebnis des Verfahrens dar.
-
Das erfindungsgemäße zweite Verfahren zur Zuordnung einer Elementliste S zu einer bekannten Kennung, das in 3 gezeigt ist, setzt voraus, dass der das Verfahren durchführenden Vorrichtung eine Kennung in Form einer ganzen Zahl übergeben und in einem Kennungszwischenspeicher i abgelegt wird. Die zu ermittelnde Elementliste S soll eine vorbestimmte Kardinalität aufweisen, die in einem Kardinalitätszähler k abgelegt ist. Darüber hinaus weist eine Elementmenge, aus der die Elemente der Elementliste S ausgewählt werden sollen, eine vorbestimmte Gesamtzahl n von Elementen auf.
-
In einem ersten vorbereitenden Schritt 200 wird die Zahl 0 in einem Begrenzungszähler c und in einem zweiten vorbereitenden Schritt 201 in einem Elementzähler m abgelegt. In einem dritten vorbereitenden Schritt 202 wird eine zunächst leere Liste als Elementliste S abgelegt.
-
Die vorbereitenden Schritte 200–202 können in jeder beliebigen Reihenfolge durchgeführt werden.
-
In einem ersten Schritt
204 wird ein Binomialkoeffizient
berechnet und in einem Zwischenspeicher d abgelegt.
-
In einem zweiten Schritt 206 werden der Wert des Kennungszwischenspeichers i und des Zwischenspeichers d miteinander verglichen. Sofern der Kennungszwischenspeicher i einen Wert aufweist, der größer oder gleich dem Wert des Zwischenspeichers d ist, wird mit einem weiter unten beschriebenen sechsten Schritt 214 fortgefahren.
-
In einem dritten Schritt 208 wird der Wert des Kennungszwischenspeichers i um den Wert des Zwischenspeichers d verringert beziehungsweise reduziert.
-
In einem vierten Schritt 210 wird der Begrenzungszähler c um 1 erhöht.
-
In einem fünften Schritt 212 wird der Wert des Begrenzungszählers c mit der Gesamtzahl n verglichen. Sofern die Werte gleich sind, wird mit dem ersten Schritt 204 fortgefahren, ansonsten wird mit einem Abschlussschritt 220 fortgefahren.
-
In dem Abschlussschritt 220 wird die Elementliste S als Ergebnis des Verfahrens ausgegeben.
-
In dem sechsten Schritt 214 wird der Wert des Elementzählers m zu der Elementliste S hinzugefügt.
-
In einem siebten Schritt 215 wird der Elementzähler m um 1 erhöht.
-
In einem achten Schritt 216 wird der Kardinalitätszähler k um 1 verringert.
-
In einem neunten Schritt 218 wird der Wert des Kardinalitätszählers k mit 0 verglichen und mit dem Abschlussschritt 220 fortgefahren, wenn dies der Fall ist. Ansonsten wird mit dem vierten Schritt 210 fortgefahren.
-
Das Ausgeben als Ergebnis in den Schritten 122, 220 kann beispielsweise durch Übergabe an eine weiterverarbeitende Einrichtung oder durch Ablage in einem Speicherbereich erfolgen.
-
Die beiden Verfahren 100–122, 200–218 sind insofern komplementär, als sie jeweils die Umkehrung voneinander darstellen.
-
Die Verfahren 100–122, 200–218 können beispielsweise in Anweisungen an eine Rechenmaschine, beispielsweise Programmcode, umgesetzt werden, die eine Rechenmaschine dazu veranlassen, die Verfahren 100–122, 200–218 auszuführen. Die Verfahren 100–122, 200–218 werden nicht notwendigerweise in ein und derselben Einrichtung ausgeführt. Oftmals wird das erste Verfahren 100–122 in einem Endgerät 16a–16f ausgeführt, hingegen das zweite Verfahren 200–218 in einer Datenbereitstellungseinrichtung 18 ausgeführt oder umgekehrt. Es ist ebenso denkbar, dass die Verfahren 100–122, 200–218 zur Zuordnung unterschiedlicher Aspekte einer Verteilung von Datenfragmenten 22 in verschiedenen Einrichtungen des Netzwerks 10 ausgeführt werden.
-
Das vorliegend gezeigte Netzwerk 10 weist lediglich eine einzige Datenbereitstellungseinrichtung 18 sowie sechs Endgeräte 16a–16f auf. Die Verfahren 100–122, 200–218 sind nicht auf diese Anzahlen beschränkt. Es ist vielmehr möglich, eine beliebige Anzahl von Datenbereitstellungseinrichtungen 18 sowie eine beliebige Anzahl von Endgeräten 16a–16f in dem Netzwerk 10 vorzuhalten.
-
Die erfindungsgemäßen Verfahren 100–122, 200–218 sowie die erfindungsgemäßen Netzwerke 10 Stellen eine effiziente Umsetzung der Indexkodierung dar, die weder besonders Rechen intensiv noch besonders speicherintensiv ist. Dadurch sind die Verfahren 100–122, 200–218 sowie die Netzwerke 10 besonders gut zur Umsetzung in Verbindung mit Mobilfunknetzen geeignet.
-
Bezugszeichenliste
-
- 10
- Mobilfunknetzwerk
- 12
- Basisstation
- 14
- Medium
- 16a–16f
- Endgerät
- 18
- Datenbereitstellungseinrichtung
- 20a–20f
- Speichereinrichtung / Cachespeicher
- 22
- Datenfragment / Datenelement / Element
- 100–122
- Verfahrensschritte
- 200–218
- Verfahrensschritte
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2015/0207881 A1 [0005]
- US 2015/0207895 A1 [0005]
- US 2015/0207896 A1 [0005]
- US 2012/0254459 A1 [0005]