DE69529948T2 - Halbleiterspeicherbasierter Server zum Bereitstellen von Multimedianachrichten auf Anfrage in einem Grossraumnetz - Google Patents
Halbleiterspeicherbasierter Server zum Bereitstellen von Multimedianachrichten auf Anfrage in einem GrossraumnetzInfo
- Publication number
- DE69529948T2 DE69529948T2 DE69529948T DE69529948T DE69529948T2 DE 69529948 T2 DE69529948 T2 DE 69529948T2 DE 69529948 T DE69529948 T DE 69529948T DE 69529948 T DE69529948 T DE 69529948T DE 69529948 T2 DE69529948 T2 DE 69529948T2
- Authority
- DE
- Germany
- Prior art keywords
- video
- content
- switching
- clients
- packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000004065 semiconductor Substances 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000015654 memory Effects 0.000 claims description 94
- 230000005540 biological transmission Effects 0.000 claims description 23
- 238000012546 transfer Methods 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 230000000717 retained effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 4
- 239000000872 buffer Substances 0.000 description 35
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000251730 Chondrichthyes Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006727 cell loss Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/222—Secondary servers, e.g. proxy server, cable television Head-end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17336—Handling of requests in head-ends
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
- Television Signal Processing For Recording (AREA)
- Information Transfer Between Computers (AREA)
Description
- Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Bereitstellen von Multimedia- und Videodaten von einem Server über ein Datenübertragungsnetz (Datenfernverarbeitungsnetz) für anfordernde Clients.
- Die Systeme zum Bereitstellen von Informations- und Unterhaltungsdienstleistungen in der Wohnung eines Endbenutzers weisen drei verschiedene Komponenten auf: das Serversystem, das Endbenutzersystem und das Netz zum gleichzeitigen Verbinden einer großen Anzahl von Endbenutzern (Clients) mit dem Server. Die beiden am weitesten verbreiteten Systeme zur privaten Bereitstellung von Informationen sind das öffentliche Telefonnetz und das Funk-/Kabelfernsehsystem. Das Telefonnetz bietet heutzutage den Zugang zu elektronisch gespeicherten Textinformationen wie Bankkontoständen sowie Audiosequenzen wie beispielsweise Anweisungen für verschiedene Büroabläufe.
- Weithin wird erwartet, dass durch die technologischen Fortschritte interaktive Multimediadienste ermöglicht werden. Die entsprechenden Dienste sind Video on Demand für Filme, Nachrichten, Sportsendungen, Fernsehprogramme usw., Homeshopping, interaktive Spiele, Reisebilder und eine breite Vielfalt von Bildungs- und Informationsdiensten. Alle drei Komponenten der herkömmlichen Informations-/ Unterhaltungsversorgungssysteme, also die Server, das Netz und das Endgerät des Benutzers (Personal Computer oder Set Top Box) müssen für das Bereitstellen der interaktiven Multimediadienste verbessert werden. Die PCs und die Set Top Boxen müssen in der Lage sein, bewegte Videofilme und die zugehörigen Audiodateien zu empfangen und dekomprimieren. Das Netz muss eine ausreichende Bandbreite aufweisen, um jedem Benutzer seinen eigenen Videokanal zum Server zur Verfügung zu stellen, und bei den meisten Diensten muss der Server in der Lage sein, gleichzeitig und zu niedrigen Kosten eine große Anzahl von Videodatenströmen bereitzustellen.
- Das Haupthindernis des gegenwärtigen Telefonnetzes besteht in der begrenzten für jeden Endbenutzer verfügbaren Bandbreite, die gerade so für einen Audiokanal ausreicht. Damit ist die Übertragung bewegter Videoinformationen ausgeschlossen, und die Übertragung von hochauflösenden Bildern verläuft langsam. Das Fernsehen bietet sowohl per Kabel als auch per Funk jedem Benutzer eine sehr viel höhere Bandbreite; da jedoch die Gesamtbandbreite des Netzes begrenzt ist (Bandbreite des Kabels oder für die Sendefrequenzen reservierte spektrale Bandbreite), kann der Benutzer die für ihn interessanten Informationen nicht interaktiv auswählen. Statt dessen beschränkt sich seine Auswahl auf eines der ca. 50 Programme, die zu einem bestimmten Zeitpunkt gerade gesendet werden. Daher sind die gegenwärtigen Telefon- und Fernsehnetze, sowohl per Funk als auch per Kabel, zum Bereitstellen interaktiver Multimediadienste wie Video on Demand und interaktiver Spiele nicht geeignet.
- Die Anbieter der Telefon- und Kabelfernsehdienste nutzen jedoch die technologischen Fortschritte, um die oben erwähnten Beschränkungen aufzuheben. Durch den zunehmenden Integrationsgrad der VLSI-Technologie (Very Large Scale Integration) konnten die Kosten der Kompressions-/ Dekompressionshardware für Videofilme gesenkt und solche Technologien wie die ADSL (Asymmetric Digital Subscriber Loop, asymmetrische digitale Teilnehmerleitung) ermöglicht werden. Durch diese beiden Verfahren können Videofilme zu einem privaten Benutzer übertragen und von diesem empfangen und der Benutzer mit der örtlichen Telefonvermittlung verbunden werden, so dass jeder Benutzer seinen eigenen Videokanal erhält. Desgleichen sind infolge der Fortschritte in der Glasfaserübertragungstechnik und deren sinkender Kosten Verbesserungen der Hauptleitungen und Einspeisesysteme des Fernsehnetzes möglich geworden, durch die die Bandbreite des Netzes so weit erhöht wurde, dass jeder Teilnehmer bis zu seinem Anschluss seinen eigenen Kanal für den Empfang komprimierter digitaler Videofilme erhält. Auch Direktempfangssatelliten und andere neue drahtlose Übertragungstechnologien stellen eigene Videokanäle zwischen einer großen Anzahl von Endbenutzern und einem Server zur Verfügung. Immer mehr kommen auch Personal Computer und Set Top Boxen in Gebrauch, die vernetzte Multimediaanwendungen ermöglichen, indem sie sich der preiswerten Videokomprimierungs-/-dekomprimierungshardware und der neuen leistungsfähigen und dennoch preiswerten Mikroprozessoren bedienen.
- Während sich einerseits die Client-Systeme (Endbenutzersysteme) und die Netzinfrastruktur schnell entwickeln, um die Anforderungen der interaktiven Multimediadienste zu befriedigen, sind die gegenwärtig gebräuchlichen Server immer noch teuer und zum Bereitstellen dieser Dienste wenig geeignet, da jeder dieser Server nur die Übertragung einer begrenzten Anzahl von Datenströmen unterstützen kann. Gegenwärtig werden Standard-Großrechner oder Parallelrechnersysteme auf Basis der Workstationtechnologie als Server für die interaktiven Multimediadienste eingesetzt. Die Hardware and Software ist in beiden Fällen auf rechenintensive Anwendungen und auf die Unterstützung mehrerer Parallelbenutzer (Timesharing) zugeschnitten, wobei der Datenübertragung zu und von Netzschnittstellen und den E/A-Einheiten (Eingabe/Ausgabe) nur geringe Bedeutung beigemessen wird. Zum Beispiel beträgt in einer RS/6000 die Übertragungsbandbreite vom Hauptspeicher zum Cachespeicher 400 MBytes, während die Bandbreite von den E/A- Einheiten oder den Netzeinheiten zum System lediglich 80 MBytes beträgt. Die Systemkosten werden noch durch die Gleitkommaunterstützung erhöht, die für die Bereitstellung von Video-/Multimediadaten keinerlei Vorteil bringt. Die Netzprotokolle sind für die zuverlässige Bereitstellung von Daten über die unzuverlässigen langsamen Netzleitungen sowie die Netzinfrastruktur und die Anwendungsumgebung der frühen siebziger Jahre optimiert, während angesichts der geringeren Zuverlässigkeitsanforderungen der Videoübertragung über die stabileren modernen Netze ein unnötiger CPU-Systemaufwand betrieben wird.
- Die oben genannten Faktoren bewirken, dass das Preis- Leistungsverhältnis von Video-/Multimediaservern auf Basis von Standardrechnersystemen wesentlich höher ist als bei einem speziell für die Bereitstellung von Videodaten optimierten System. Die öffentlich bekannt gewordenen Anstrengungen zur Lösung der oben erwähnten Beschränkungen waren bisher bescheiden und beschränkten sich auf das Optimieren der Verteilung von Daten auf eine Gruppe von Datenträgern, um den Datenträgerdurchsatz bei Videoserveranwendungen zu maximieren (siehe: H. M. Vin und P. V. Rangan, "Designing a multiuser HDTV storage server", IEEE Journal on Selected Areas in Communications, 11(1), Januar 1993, S. 153-164. D. Kandlur, M. S. Chen und Z. Y. Shae, "Design of a multimedia storage server", in IS&T/SPIE symposium on Electronic Imaging Science and Technology, (San Jose, CA, 1994)), auf die Optimierung der Verfahrensweise beim Puffern der von den Datenträgern abgerufenen Daten, um deren Wiederverwendbarkeit in der Videoserverumgebung zu maximieren (siehe: A. Dan und D. Sitaram, "Buffer management policy for an on-demand video server", IBM Research Report RC 19347. A. Dan und D. Sitaram, "Scheduling policy for an on-demand video server with batching", IBM Research Report RC 19381) oder auf die Optimierung des Dateisystems für Videodaten (siehe: R. Haskin, "The Shark continuous media file server", Proc. IEEE COMPCON 1993 (San Francisco CA, 1993)). Derartige Verbesserungen können das Preis-Leistungsverhältnis heutiger Videoserversysteme um einen Faktor zwei oder vier verbessern; um die interaktiven Multimediadienste ökonomisch tragbar zu machen, sind jedoch Verbesserungen im Bereich von 100 bis 1000 erforderlich.
- Die beiden Patentschriften von Hoarty et al. (US- Patentschriften 5,093,718 und 5,220,420) schlagen die Verwendung von mehreren Servern vor, die jeweils einen kleinen Bereich versorgen und auf die das gesamte Multimediaprogramm geladen wird. Gemäß der vorliegenden Erfindung werden jedoch große Server verwendet, die nur den zu liefernden Videoanteil der Multimediaanwendung auf die Vermittlungsrechner oder Router in einem Netz laden. Die Anwendungssteuerung, d. h. festzulegen, wann und welche Videosequenz wiedergegeben werden soll, obliegt ebenso wie auch die Abrechnung weiterhin den Hilfsfunktionen des Zentralservers.
- Die US-Patentschrift 5,287,507 von Hamilton und Nelson widmet sich dem Problem, das entsteht, wenn ein Client, der einem anderen Client einen Verweis auf eine Information senden will, nicht einen Zeiger auf die im Server gespeicherte Kopie sendet, wodurch die Empfänger-Clients in die Lage versetzt werden, den Zeiger auf die im Server gespeicherte Information zu rekonstruieren, sondern einen Zeiger auf eine im lokalen Speicher des Clients gespeicherte Kopie dieser Information sendet. Das Bereitstellungsschema der vorliegenden Erfindung geht nicht von der Existenz lokaler Cachespeicher aus, so dass diese Patentschrift für die vorliegende Erfindung ohne Bedeutung ist.
- In der US-Patentschrift 5,005,122 von Griffen et al. wird die Verwendung von Serverrechnern in einem Netz vorgeschlagen, das eine große Anzahl von Clientrechnern enthält, um solche Dienste wie Datensicherung, Softwarebereitstellung usw. zu bieten. Sie befasst sich jedoch nicht mit der Konstruktion von Servern für die Bereitstellung von kontinuierlichen Medieninformationen.
- In der US-Patentschrift 5,218,697 von Chung wird ein Verfahren zum Bereitstellen eines zentralen Dateiservers in einem Netz mit heterogenen Dateiservern vorgeschlagen, das unter verschiedenen Betriebssystemen, mit verschiedenen Dateiservern und mit verschiedenen Dateisystemen läuft. Chung legt dar, dass lokale Dateiserver direkt auf das Dateisystem des zentralen Dateiservers zugreifen können, indem sie nicht entsprechend dem herkömmlichen Verfahren eine Dateiserveranforderung an den zentralen Server sendet, der diese dann in einen entsprechenden Dateisystembefehl übersetzen muss, sondern indem sie Dateisystembefehle an ihn senden.
- Die US-Patentschrift 5,287,461 von Moore betrifft ferne Server. Das vorgeschlagene Verfahren besteht darin, die Konsolenleitungen zahlreicher Server zu multiplexen und für die Übertragung der gemultiplexten Informationen zum gewünschten Ort einen Modem zu verwenden.
- In der US-Patentschrift 4,897,781 von Chang et al. wird ein Netzdateisystem beschrieben, in dem Clients einen lokalen Cachespeicher für geöffnete Dateien aufweisen. Die Patentschrift legt ein Verfahren zum Verwenden der von einer Datei bereits im Cache zwischengespeicherten Daten dar, indem mittels eines weiteren Öffnungsbefehls erneut auf dieselbe Datei zugegriffen wird.
- In dem Artikel "Interactive Video on Demand" von Deloddere et al. in IEEE Communications Magazine, Bd. 32, Nr. 5, 1. Mai 1994, S. 82-88, werden ein Überblick über die Kenndaten eines Video-on-Demand-Dienstes (VOD) gegeben und mögliche zu diesem Dienst gehörende Netzarchitekturen und Funktionen beschrieben. Außerdem beschreibt dieser Artikel zwei Ausführungen eines VOD-Dienstes, bei dem die Bandbreitenanforderungen an das Netz stark verringert sind, während die Qualität des Dienstes auf einem hohen Niveau erhalten bleibt. Diese Optimierung wird durch Verwendung von VOD-Servern mit dynamischer Programmsofortkontrolle, verteilten Videopufferverfahren sowie, wenn geeignet, Mehrpunktanschlüssen erreicht.
- Die Veröffentlichung "Asynchronous Transfer Mode - a solution for broadband ISDN" von Martin Prycker (Zweite Auflage, Ellis Horwood, 1993, (Kapitel 3.6, 3.7.5, 4.1)) beschreibt die Grundzüge der ATM-Standards und das Format der ATM-Zellen sowie der AAL PDUs (ATM Adaption Layer Protocol Data Units, Dateneinheiten des ATM-Protokolls der Anpassungsschicht).
- Es ist eine Aufgabe der Erfindung, interaktive Multimediadienste über ein Datenübertragungsnetz zu verringerten Kosten bereitzustellen.
- Eine weitere Aufgabe dieser Erfindung besteht insbesondere darin, den mit dem Bereitstellen von Videoinhalten von einem Server an einen anfordernden Client verbundenen Systemaufwand zu verringern, indem die Videoinhalte auf Vermittlungsrechner des Netzes geladen werden, die die Videoinhalte den anfordernden Clients effizienter bereitstellen können.
- Die vorliegende Erfindung beschreibt ein Verfahren zum Verringern der Kosten für das Bereitstellen von Videodatenströmen um einen Faktor einhundert bis eintausend im Vergleich zu herkömmlichen Lösungen, indem Verbesserungen in das Netz eingeführt werden. Durch die vorgeschlagene Verbesserung können Video-/Multimediainhalte in den Vermittlungsrechnern oder Routern eines Netzes im Format von Netzpaketen gespeichert werden. Der Multimedia- Anwendungsserver überträgt eine Steuernachricht zu dem Vermittlungsrechner oder Router, in dem die Netzpakete für die angeforderten Video- oder Multimedianachrichten gespeichert werden, um eines oder mehrere dieser Pakete zu einem bestimmten Client zu senden. Der diese Informationen empfangende Vermittlungsrechner oder Router öffnet die angeforderten Pakete, ändert die Kopfdaten und eventuell die Fußdaten des Pakets, insbesondere die Routinginformationen, mittels derer das Netz diese Pakete über eine Reihe von Routern und Vermittlungsrechnern zudem bestimmten Client schicken kann, und sendet diese Pakete in das Netz. Um eine große Anzahl von Datenströmen, in der Größenordnung von einigen zehntausend Datenströmen, unterstützen zu können, werden Halbleiterspeicher zum Speichern der vorgepackten Videosequenzen und spezielle Hardware zum Öffnen der Pakete sowie zum Ändernder Kopfdaten verwendet. Siehe hierzu im Folgenden den Videodispatcher in Fig. 4 sowie die Beschreibung der Datenstromsteuerung und des Ausgabeadapters. Der Halbleiterspeicher kann durch Plattenspeicherlaufwerke ergänzt werden, um weniger gefragte Videoinhalte zu speichern. Zum Unterstützen von weniger, also einigen Hundert bis zu wenigen Tausend Datenströmen, können auch Plattenlaufwerke allein verwendet werden, und anstelle der speziellen Hardware zum Öffnen der Pakete und Ändern der Kopfdaten kann ein Mikrocontroller/Mikroprozessor verwendet werden.
- Fig. 1 veranschaulicht schematisch die Datenorganisation in einer Datei eines UNIX-Betriebssystems.
- Fig. 2 veranschaulicht schematisch die Umgebung, in der die Erfindung implementiert ist, sowie das Laden von Daten in die Vermittlungsrechner des Netzes mit Zeigern auf die im Host gespeicherten und zu übertragenden Daten.
- Fig. 2B veranschaulicht schematisch die vorverarbeiteten Pakete, die aus den Videoinhalten abgeleitet werden.
- Fig. 3 veranschaulicht schematisch einen Vermittlungsrechner mit gemeinsamem Puffer, der zum Speichern vorverarbeiteter Pakete angepasst wird.
- Fig. 4 veranschaulicht schematisch den Vermittlungsrechner mit dem zum Speichern der vorverarbeiteten Pakete angepassten gemeinsamen Puffer.
- Fig. 5 veranschaulicht die Details der Videodispatchereinheit des Vermittlungsrechners mit dem angepassten gemeinsamen Puffer.
- Fig. 6 veranschaulicht schematisch das Format der vom Hostprozessor zum Vermittlungsrechner gesendeten Steuernachricht.
- Fig. 7 veranschaulicht den Nachrichtenfluss zwischen dem Client, dem Vermittlungsrechner und dem Hostprozessor.
- Besonders deutlich werden die Anforderungsnachricht vom Client zum Host und die Steuernachricht vom Host zum Vermittlungsrechner gezeigt. Die Übertragung von Videopaketen als Reaktion auf die Steuernachricht vom Vermittlungsrechner zum Client wird ebenfalls gezeigt.
- Fig. 8 ist eine schematische Veranschaulichung des bei dieser Erfindung verwendeten bevorzugten Videospeichers.
- Fig. 9 ist eine schematische Veranschaulichung des angepassten Ausgangsadapters der vorliegenden Erfindung.
- Fig. 10 ist eine schematische Veranschaulichung einer alternativen Ausführungsart der Erfindung, die einen unterschiedlichen Vermittlungsrechner verwendet, welcher keinen gemeinsamen Puffer aufweist.
- Fig. 11 veranschaulicht ein alternatives Verfahren zum Einfügen eines Halbleiterspeichers in den Vermittlungsrechner.
- Fig. 12 veranschaulicht die Verwendung eines Magnetplattenspeichers anstelle eines Halbleiterspeichers.
- In der folgenden Ausführungsart wird die Verwendung von Vermittlungsrechnern zum Laden mit Video-/Multimedia- oder fortlaufenden Medieninhalten beschrieben, jedoch lässt sich die folgende Erörterung leicht auf die Verwendung von Routern/Brücken etc. übertragen, die anstelle von Vermittlungsrechnern stehen. Weiterhin wird zwar die Verwendung eines paketvermittelten Netzes beschrieben, in dem nur Einheiten bestimmter Größe übertragen werden, jedoch kann die folgende Ausführungsart auf die Verwendung in Netzen, in denen Pakete veränderlicher Größe befördert werden, sowie in leitungsvermittelten Netzen übertragen werden. In dieser. Ausführungsart wird ein ATM-Breitbandnetz (Asynchronous Transfer Mode, asynchroner Übertragungsmodus) und eine AAL5- Anpassungsschicht (ATM Adaption Layer, ATM-Anpassungsschicht) verwendet (siehe: Craig Partridgd, "Gigabit Networking", Addison Wesley Publishing Co., Reading, Mass. 01867, ISBN 0- 201-56333-9, Oktober 1993). Und schließlich ist dem Fachmann klar, dass ebenso auch unkomprimierte Videodaten und andere fortlaufende Medieninformationen wie Audiodateien, Animationen usw. ohne Änderungen der Ausführungsart verarbeitet werden können, obwohl in dieser Ausführungsart nur die Bereitstellung von Videodaten beschrieben wird, die in komprimierter Form gespeichert sind. Unterschiedliche Audio- oder Videodaten können unterschiedlich stark komprimiert werden. Beispielsweise kann Musik mit einer höheren Bitrate (geringeres Komprimierungsverhältnis) als Sprache komprimiert werden.
- Ein fortlaufender Medienstrom kann auch aus mehreren Strömen unterschiedlicher Medientypen bestehen, die zu einem MPEG-II- Transportstrom (Motion Picture Expert Group, Filmexpertengruppe) gemultiplext werden. Bei der hier vorliegenden Ausführungsart wird der MPEG-II-Transportstrom verwendet, der als Videoinhalt einen Video- und einen Audiokanal überträgt. Es soll angenommen werden, dass jede Sekunde dieses Videos auf 4 Megabit digitale Daten komprimiert wird.
- Die Ausführungsart der vorliegenden Erfindung weist zwei einzelne Komponenten auf, die erste besteht im Übertragen von Videoinhalten vom Host oder Anwendungsserver zu den Vermittlungsrechnern im Netz, und die zweite besteht in der Vermittlungshardware, die Videoinhalte speichern und auf Anweisung des Hosts an die angegebenen Clients senden kann. Im Folgenden wird eine Beschreibung des Formats, in dem Videoinhalte im Netz gespeichert werden, sowie der zusätzlichen Daten gegeben, die zusammen mit den Videoinhalten gespeichert werden, um für das Abrufen und Senden zu den Clients mit möglichst wenig Hardware in den Vermittlungsrechnern auszukommen. Im Folgenden werden auch die in einem Vermittlungsrechner mit gemeinsamem Puffer erforderlichen Hardwareänderungen/-ergänzungen beschrieben, die zum Speichern in dem Halbleiterspeicher erforderlich sind, um die Arbeitsschritte zum Zuordnen und Wiederherstellen dieses Speichers auszuführen und auf Anforderung durch den Host das Abrufen und Senden von Videoinhalten zu unterstützen. Im letzten Abschnitt werden kurz einige alternative Ausführungsarten für dieselben Erfindungen dargestellt, bei denen Vermittlungsrechner ohne gemeinsamen Puffer als Netzvermittlungsrechner sowie Plattenspeicher anstelle des Halbleiterspeichers verwendet werden.
- In den Fig. 1 und 2 umfasst der erste Schritt der vorliegenden Erfindung das Übertragen der Videoinhalte 900 (Fig. 2B) in die Vermittlungsrechner 60 (Fig. 2A) eines ATM- Breitbandnetzes 50. Der MPEG-II-Transportstrom für ein einstündiges Programm beträgt ca. 1,8 Gigabyte an digitalen Daten 900. Wenn diese Daten 900 in einem unter einem UNIX- ähnlichen Betriebssystem laufenden Mehrzeckcomputer gespeichert werden, werden diese in 4 KByte umfassende Seiten 901 (Fig. 1) eingeteilt und vielleicht auf einer Magnetplatte in Form von ca. 450 000 Datenblöcken 910 gespeichert, wobei jeder Datenblock 4 KByte umfasst. Zusätzlich zu diesen Datenblöcken, die die Videoinhalte darstellen, werden auf der Platte noch weitere Daten gespeichert, wie die Dateiindizes 911 und die indirekten Blöcke 912, die gemeinsam unter der Bezeichnung Metadaten bekannt sind. (Siehe: M. J. Bach, "The design of the Unix operating system", Prentice Hall Inc., Englewood Cliffs, NJ 07632, ISBN 0-13-201799-7 025, 1986.) Diese in Fig. 1 gezeigten Metadaten werden getrennt von den Videoinhalten gespeichert, d. h. in Plattenblöcken, in denen keine Videoinhalte gespeichert sind. Diese Metadaten werden durch das Betriebssystem dazu verwendet, die zu einer bestimmten Videodatei gehörenden Seiten sowie ferner Seiten zu suchen, in denen ein bestimmter Datenbereich der Videodatei gespeichert ist.
- In Fig. 7 ist eine vom Client 20 über die Vermittlungsrechner 60 des Netzes zum Host 10 gesendete Anforderungsnachricht 6 gezeigt. Diese Anforderungsnachricht ist vorzugsweise ein durch einen Client getätigter Fernprozeduraufruf, der mit mehreren Parametern die Videobereitstellungsprozedur im Host auslöst. Der erste Parameter der Anforderungsnachricht ist der Name oder Index der durch den Client angeforderten Videodatei, die zuvor während der Ausführung einer in einer verteilten Rechnerumgebung auf den Clients und den Servern laufenden interaktiven Multimediaanwendung aus einer vom Server dem Client zur Verfügung gestellten Liste von verfügbaren Videodateien ausgewählt wurde. Ein zweiter Parameter in der Anforderungsnachricht gibt eine Zeitspanne bezogen auf den Anfang der Videodatei an, nach der das Abspielen der Videodatei beginnen soll. Ein dritter Parameter in der Anforderungsnachricht gibt eine Zeitspanne an, entweder bezogen auf den Anfang der Videodatei oder auf den verzögerten Startzeitpunkt, nach der das Abspielen der Videodatei beendet sein soll. Ein weiterer Parameter gibt an, ob sich die Zeitspanne im dritten Parameter auf den Anfang der Videodatei oder auf den Startzeitpunkt der Wiedergabe bezieht. Die Zeitspannen im zweiten und im dritten Parameter können als Zeitdauer oder als Anzahl von Datenbytes angegeben werden. Die Fernprozeduraufrufe sind in der Technik gut bekannt; daher werden die Anforderungsnachrichten in diesem Dokument nicht näher erörtert. (Siehe: W. Rosenberry et al., "Understanding DCE", O'Reilley and Associates Inc., 103 Morris Street, Suite A, Sebastopol, CA 95472, ISBN 1-56592-005-8, September 1992, das durch Bezugnahme einbezogen wird.) Der Host verarbeitet die Anforderungsnachricht und ermittelt, wie unten beschrieben, ob die angeforderten Videoinhalte in einem der Netzvermittlungsrechner gespeichert sind. Wenn dies der Fall ist, sendet der Host Steuernachrichten 8 an die Vermittlungsrechner, in denen die angeforderten Daten enthalten sind; siehe Fig. 2 und 6. Als Reaktion auf die Steuernachrichten rufen die Vermittlungsrechner die in den Steuernachrichten angegebenen Videopakete ab und liefern diese Pakete zum Client.
- Fig. 2A veranschaulicht schematisch eine Prinzipskizze des Systems der vorliegenden Erfindung, das den Host 10, Clients 20 und das Netz 50 mit einer Vielzahl von Vermittlungsrechnern 60 umfasst. Um die Videoinhalte 900 (siehe Fig. 1) vom Host oder vom Anwendungsserver zu übertragen, der üblicherweise ein Mehrzweckcomputer ist, werden die Videoinhalte 900 zum Erzeugen der Videonachrichten 920 in Nutzdatenpakete 915 mit festgelegter Größe aufgeteilt (siehe Fig. 2B). Die Größe der Nutzdatenpakete beträgt üblicherweise 1 KByte bis 16 KByte, wobei in der vorliegenden Ausführungsart eine Größe von 1528 Byte gewählt wurde. Ein Nutzdatenpaket dieser Größe passt, wie in Fig. 2B gezeigt, in 32 ATM-Zellen 930. Jedes Nutzdatenpaket im Host oder im Anwendungsserver wird durch einen Zeiger 925 ersetzt, der eine Netzvermittlungsrechneradresse 926 und die Adresse der Nachricht 927 im Vermittlungsrechner umfasst (siehe Fig. 2A). Die Größe jedes dieser Zeiger liegt erwartungsgemäß zwischen 8 und 16 Bytes. Die Videonachricht 920 selbst, die im Host jetzt durch einen Zeiger 925 repräsentiert wird, ist in dem durch die Komponente 926 des Zeigers für die Vermittlungsrechneradresse definierten Vermittlungsrechner 60 gespeichert, und zwar an der im Zeiger angegebenen Nachrichtenadresse, wie in Fig. 2A gezeigt ist.
- Da sich eine im Host befindliche Datei, die Videoinhalte 900 enthält, von einer Datei unterscheidet, die die Zeiger 925 auf die in den Vermittlungsrechnern des Netzes gespeicherten Videonachrichten enthält, und der Host diese Dateien unterschiedlich behandeln muss, bedient sich der Host einer Namensgebung, um allen Dateien mit Videoinhalten 900 einen Dateityp und allen die Zeiger auf die im Netz gespeicherten Videonachrichten enthaltenden Dateien einen anderen Dateityp zuzuweisen. Alternativ kann der Host eine Tabelle speichern, in der alle Videodateien aufgeführt sind und in der ein Eintrag anzeigt, ob die Datei Videoinhalte oder eine Liste von Zeigern auf die in den Vermittlungsrechnern des Netzes gespeicherten Videonachrichten enthält.
- Vor dem Speichern der Videoinhalte in einem Vermittlungsrechner des Netzes wird an jedes Nutzdatenpaket 915 ein Trailer 931 der ATM-AAL5-Konvergenzunterschicht angehängt, und die entstehenden Bytes werden zu einer Videonachricht 920 umformatiert, die, wie in Fig. 2B gezeigt, eine Folge von ATM-Zellen 930 umfasst (in ATM-Netzen werden die Netzpakete als Zellen bezeichnet). Auch in einem nicht ATM-paketvermittelten Netz wird erforderlichenfalls eine Segmentierung durchgeführt, nachdem der Transportschichtheader/-trailer an die Nachricht angehängt wurde, und der Netzschichtheader und/oder -trailer wird an die Segmente angehängt, bevor diese im Vermittlungsrechner gespeichert werden.
- Die Felder in den Netz-/Transport-/Anpassungsschichtheadern oder -trailern, die zum Zeitpunkt des Speicherns der Pakete im Vermittlungsrechner vorausberechnet werden können, werden vorausberechnet und an entsprechenden Stellen in den ATM- Zellen gespeichert. Im vorliegenden Fall weist das letzte Paket jeder Nachricht einen Konvergenzunterschichttrailer (convergence sublayer, CSL) 931 mit einer Größe von 8 Byte auf, bei dem die Nachrichtenlänge und die Prüfsummenfelder vorausberechnet und die Felder für die Benutzer-Benutzer- Meldung (user-to-user indication, UU) sowie für die Meldung Gemeinsamer Anteil (common part indication, CPh) auf Null gesetzt werden, bevor die Nachricht im Vermittlungsrechner gespeichert wird. Diese vier Felder bilden den gesamten ATM- AAL5/CSL-Trailer (Convergence Sub-Layer, CSLY. In dem fünf Byte langen Header 935 jeder ATM-Zelle kann nur das letzte halbe Byte vorausberechnet werden. Diese vier Bits umfassen die Zellverlustpriorität und den Typ des Nutzdatenpakets, wobei der Typ des Nutzdatenpakets auch das 1-Bit-Ende des Datenpaketfeldes für die AAL5-SAR-Schicht (Segmentation and Reassembly, Segmentierung und Neuerstellung) enthält. Die ATM- Zellen 930 mit den, wie oben erläutert, teilweise vorausberechneten Headern/Trailern umfassen die vorverarbeiteten Videopakete.
- Eine Videonachricht 920 stellt die Grundeinheit der Flusssteuerung im Netz und folglich die Grundsteuerungseinheit für den Zugriff auf Videospeicher sowie für die Übertragung von Videodaten zum Client dar. Wenn eine aus dem Videospeicher abgerufene ATM-Zelle nicht die letzte Zelle einer Videonachricht ist, legt der Vermittlungsrechner automatisch den Abruf der nächsten Zelle in der Videonachricht fest. Der Client empfängt die ATM-Zellen einer Videonachricht blockweise, da der Vermittlungsrechner zur Steuerung der Übertragungsrate zwischen die Übertragungen zweier ATM-Zellen einer Videonachricht keine Pausen einschiebt. Um bei interaktiven Multimediaanwendungen kurze Antwortzeiten zu gewährleisten und den Pufferspeicherbedarf beim Client zu minimieren, muss der Umfang der Videonachricht begrenzt werden, damit das Netz effizient arbeiten kann. Bei kurzen Videonachrichten können jedoch häufige Interaktionen zwischen dem Host und den Vermittlungsrechnern erforderlich sein, was wiederum leistungsfähigere (und damit teurere) Hosts sowie mehr Hardware in den Vermittlungsrechnern bedingt, um die erhöhte Anzahl von Steuernachrichten zu verarbeiten.
- Das oben genannte Problem wird dadurch gelöst, dass der Vermittlungsrechner in die Lage versetzt wird, als Reaktion auf eine einzelne vom Host empfangene Steuernachricht mehrere Videonachrichten zum Client zu übertragen. Um diese Fähigkeit zu unterstützen, müssen für jede Videonachricht weitere Daten erzeugt und gemeinsam mit der Videonachricht im Netzvermittlungsrechner gespeichert werden. Diese Daten bestehen aus dem Verknüpfungsfeld 940 und dem Flusssteuerungsfeld 950; siehe Fig. 2B. Das Verknüpfungsfeld in jeder Videonachricht 920 eines Videodatenstroms 900 zeigt auf die nächste Videonachricht dieses Datenstroms. Auf diese Weise kann der Host oder Anwendungsserver eine Steuernachricht an einen Vermittlungsrechner senden, indem er die Adresse der Startnachricht und die Anzahl der danach zu sendenden Nachrichten angibt, so dass der Vermittlungsrechner mittels des Verknüpfungsfeldes 940 die nachfolgenden Nachrichten abrufen kann. Das Flusssteuerungsfeld enthält, bezogen auf einen festen Startzeitpunkt, die Abspieldauer der nächsten Videonachricht. Dadurch kann der Vermittlungsrechner zwischen die Übertragungen zweier Videonachrichten desselben Datenstroms die richtige Verzögerungsdauer einfügen, um die richtige Datenrate für die Bereitstellung des Videos zum Client einzuhalten.
- In diesem Abschnitt werden zuerst kurz der Aufbau eines 1 Vermittlungsrechners mit gemeinsamem Puffer, der die Grundlage der vorliegenden Ausführungsart bildet, und dessen Arbeitsweise besprochen. Dann werden die Anpassungen beschrieben, die dem Vermittlungsrechner die Fähigkeit verleihen, Videos zu speichern und bestimmte Videopakete auf Anweisung durch den Host an bestimmte Clients zu senden. Wenn zuerst der Vermittlungsrechner ohne Anpassung beschrieben wurde, so bezieht sich das nicht direkt auf diese bevorzugte Ausführungsart; der Zusammenhang mit dieser Ausführungsart wird jedoch aus der folgenden Beschreibung der angepassten Version des Vermittlungsrechners klar.
- Fig. 3 zeigt die Systemarchitektur eines Vermittlungsrechners mit gemeinsamem Speicher. Zentraler Bestandteil ist ein großer gemeinsamer Speicher 400 mit einem Eingangsbus 300 zum Einschreiben von Daten in den Speicher sowie einen Ausgangsbus 350 zum Lesen von Daten aus dem Speicher. Bei der vorliegenden Ausführungsart besitzen sowohl der Eingabebus 300 als auch der Ausgabebus 350 eine Breite von 53 Bytes, was der Größe einer ATM-Zelle entspricht. Die auf jeder der seriellen Hochgeschwindigkeitsleitungen 100 ankommenden Pakete (ATM- Zellen) werden in einem Eingangsadapter 200 verarbeitet, um die Kopfdaten (Header) der ATM-Zelle daraufhin zu prüfen, zu welchem Ausgang 150 des Vermittlungsrechners das Paket geleitet werden soll, und die Adressfelder VPI (Virtual Path Identifier, Virtueller Pfadkennzeichner) und VCI (Virtual Circuit Identifier, Virtueller Schaltungskennzeichner) der Zelle gemäß den ATM-Netzverfahren auszutauschen. Nach diesem Verarbeitungsschritt setzt der Eingangsadapter 200 das bitserielle Paket in ein einziges 53 Bytes breites Wort um und legt dieses auf den Eingabebus 300; gleichzeitig legt er auf den Ausgangsadressbus 310 die Adresse des Vermittlungsrechnerausgangs 150, zu dem dieses Paket übertragen werden soll. Das Paket wird daher im gemeinsamen Speicher 400 an einem Ort gespeichert, den der Controller 500 selbstständig festlegt. Die Busbandbreite stimmt mit der Gesamtbandbreite aller ankommenden Leitungen überein. Der gemeinsame Speicher 400 ist als Matrix von 53-Byte-Wörtern 410 aufgebaut, d. h. die Grundeinheit der Datenübertragung für Lese- und Schreiboperationen beträgt 53 Bytes, was der Größe einer ATM-Zelle entspricht. Um das Verständnis der nachfolgenden Erörterung zu erleichtern, werden diese 53-Byte- Wörter im gemeinsamen Speicher als Zellen bezeichnet. Jede Ausgangsleitung 150 weist einen zu dieser Leitung gehörenden Ausgangsadapter 250 auf. Die Adapter 250 für alle Ausgangsleitungen sind, ähnlich dem durch die Eingabeadapter 200 gemeinsam genutzten Bus 300, über den Bus 350 im Zeitmultiplexbetrieb mit dem gemeinsamen Speicher verbunden.
- Durch den Steuerbereich 500 wird im gemeinsamen Speicher 400 eine Liste der freien Zellen verwaltet. Diese Liste wird in der FIFO-Warteschlange (First-In, First-Out) 510 gespeichert. Jede Ausgangsleitung 150 weist eine zu ihr gehörende FIFO- Warteschlange 520 im Steuerbereich 500 auf. Diese Warteschlangen unterscheiden sich logisch voneinander, können jedoch mittels eines einzigen physischen Speichers realisiert werden. Die Warteschlange 520 speichert die Adressen der ATM- Zellen, die der entsprechende Ausgangsadapter aus dem gemeinsamen Speicher abrufen und in das Netz stellen muss. Um ein ankommendes Paket im gemeinsamen Speicher zu speichern, wird aus der Liste der freien Zellen 510 die Adresse einer freien Zelle geholt und auf den Schreibadressbus 530 gelegt. Gleichzeitig wird diese Adresse aus der Warteschlange der Liste der freien Zellen 510 gelöscht und in die durch den Ausgangsadressbus 310 ausgewählte Adresswarteschlange 520 eingefügt; auf diesem Ausgangsadressbus liegt die Adresse des Vermittlungsrechnerausgangs 150 vor, zu dem das Paket gesendet wird. Die Ausgangsadapter 250 löschen die Adressen der im gemeinsamen Speicher gespeicherten Pakete, die zu ihren Ausgangsleitungen 150 übertragen werden sollen, aus ihrer entsprechenden Adresswarteschlange 520 im zentralen Controller 500, lesen das Paket aus dem gemeinsamen Speicher, wandeln es in serielle Form um und transportieren es über die Leitung 150. Die aus der Adresswarteschlange 520 gelöschte Paketadresse wird auf den Leseadressbus 540 gegeben und gleichzeitig wieder in die Liste der freien Zellen 510 aufgenommen.
- Die Bandbreite des Eingabebusses 300 ist gleich der Gesamtbandbreite aller ankommenden Leitungen 100. Daher brauchen für den Eingabebus 300 keine Prioritäten festgesetzt zu werden. Statt dessen wird der Bus segmentweise betrieben, wobei jeder der N Eingabeadapter während jedes N-ten Segments auf den Bus zugreift. In der vorliegenden Ausführungsart ist ein Segment ein Taktzyklus. Der Ausgangsbus 350 wird ähnlich betrieben, und die Eingangs- und Ausgangsbusadapter treten mit dem zentralen Controller nur während desjenigen Taktzyklus in Verbindung, in dem sie Zugriff auf die Eingangs- oder Ausgangsbusse erlangen. In jedem Eingangsadapter 200 ist auch ein Mikroprozessor 210 und in jedem Ausgangsadapter 250 ein Mikroprozessor 260 gezeigt. Diese dienen zum Ausführen verschiedener Funktionen zur Leitungsüberwachung und Dienstfunktionen, wobei die Mikroprozessoren in den Eingangsadaptern auch zur Verwaltung der Routingtabellen dienen. Sie werden vorteilhaft auch in den folgenden Erörterungen über die Steuerung der vom Vermittlungsrechner gelieferten Videodatenströme verwendet. Der Steuerpunkt 600 ist eine Workstation oder ein Mehrzweck-PC, der zum Ausführen von Netzverwaltungsfunktionen wie der Verwaltung der Datenbank, welche die Topologie, die Leitungszustände und die Leitungsbelegungen des gesamten Netzes umfasst, zum Zuordnen von Bezeichnungen für neu eingerichtete Schaltungen sowie zum Initialisieren und Überwachen der Mikroprozessoren 210 und 260 dient. Auch dies wird vorteilhaft in den folgenden Erörterungen über die Zuordnung und Wiederherstellung des zum Speichern der Videoinhalte verwendeten Speichers verwendet.
- Und schließlich wird der Vermittlungsrechner mit gemeinsamem Puffer der einfacheren Erörterung wegen so beschrieben, dass er separate Eingangs- und Ausgangsadapter mit je einem Mikroprozessor sowie separate Eingangs- und Ausgangsbusse aufweist. Bei einer kompakten Ausführungsart können diese beiden Adapter auf einer einzigen Karte zusammengefasst werden, wobei die einen Mikroprozessoren beide Adapter versorgen; ferner könnten die Eingangs- und Ausgangsbusse durch einen einzelnen Bus ersetzt werden, der die doppelte Bandbreite der Eingangs- und Ausgangsbusse besitzt.
- Fig. 4 veranschaulicht die im Vermittlungsrechner mit gemeinsamem Puffer erforderlichen Hardware-Anpassungen, die ihn in die Lage versetzt, Videonachrichten 920 zu speichern und nach dem Empfangen einer entsprechenden Steuernachricht 8 vom Host 10 eine bestimmte Gruppe von Nachrichten zu einem bestimmten Client 20 zu liefern. Um die ATM-Zellen 930 einer Videonachricht im Vermittlungsrechner mit gemeinsamem Puffer in Fig. 4 zu speichern, wird der gemeinsame Puffer 400 durch einen Videospeicher 700 erweitert. Der gemeinsame Puffer 400 und der Videospeicher 700 benutzen gemeinsam die Eingangs- und Ausgangsbusse sowie den Adressbus und die Schreibaktivierungssteuerung. Das Verknüpfungsfeld 940 und das Taktsteuerungsfeld 950 werden gesondert in einem Befehlsspeicher 810 gespeichert, der im Videodispatcher 800 untergebracht ist, siehe Fig. 4 und 5.
- Fig. 5 zeigt den Videodispatcher 800 etwas genauer. Er kann ATM-Zellen direkt vom Host 10 empfangen, die die Steuernachricht 8 umfassen (Fig. 6 und 7). Diese Steuernachrichten werden vom Eingangsbus 300 mittels der Schnittstellenlogik 870 empfangen, wenn ein Eingangsadapter 200 das Signal 717 aktiviert. Jede Steuernachricht 8 gibt, wie in Fig. 6 gezeigt, die Adresse der ersten ATM-Zelle in einer Gruppe von Videonachrichten, den für die Lieferung der ersten Videonachricht in der Gruppe vorgesehenen Zeitpunkt, die Anzahl dei Videonachrichten in der Gruppe, eine Ausgangsadapteradresse und eine Datenstromnummer an und fordert den Videodispatcher auf, vom zentralen Controller 500' die Lieferung aller ATM-Zellen in der Gruppe zum angegebenen Ausgangsadapter 250' zu verlangen, indem sie zu einem bestimmten Zeitpunkt eine Anförderung nach einer ATM-Zelle an den zentralen Controller 500' ausgibt. Die Anforderung zum Lesen der ATM-Zelle wird zu den in der Steuernachricht angegebenen Zeitpunkten durch den Scheduler 815 über den Multiplexer 820 in die Sendewarteschlange 825 eingestellt. Der Videodispatcher empfängt über den Bus 270 auch entsprechende, nicht in ATM-Zellen eingebundene Anweisungen von den Mikroprozessoren 260 in den Ausgangsadaptern 250', wobei die Anweisungen über die Schnittstellenlogik 871 in den Videodispatcher gelangen. Ebenso wie beim zentralen Controller treten die Eingangs- und Ausgangsadapter nur in dem Zyklus mit dem Videodispatcher in Verbindung, in dem sie auf den Eingangsbus 300 oder den Ausgangsbus 350 zugreifen; daher brauchen auf den Bussen 270, 271 sowie auf dem Bus 717 keine Prioritäten festgelegt werden; die Verwendung des Busses 717 wird später eingehend erörtert. Sobald dem Videodispatcher der Lieferzeitpunkt der ersten Nachricht einer Nachrichtengruppe mitgeteilt wurde, kann der Lieferzeitpunkt jeder der übrigen Nachrichten aus dem Datenflusssteuerfeld der vorigen im Befehlsspeicher gespeicherten Nachricht entnommen werden.
- Der Videodispatcher weist eine FIFO-Dispatchwarteschlange 825 auf, in der die Leseanforderungen für ATM-Zellen aus dem Videospeicher gespeichert werden, welche aufgrund der Konfliktsituation seitens der Eingangsadapter 200 für die Adresswarteschlangen 520 nicht sofort in den zentralen Controller 500' aufgenommen werden können. Jeder Eintrag in der Versendewarteschlange 825 weist drei Felder auf: das Ausgangsadapteradressfeld 826 zeigt an, welcher Ausgangsadapter 250' die nach der Anforderung aus dem Videospeicher 700 gelesene Zelle empfängt, das Datenstrom-ID- Feld 827 bezeichnet den Videodatenstrom in dem im Feld 826 angegebenen Adapter, für den die Zelle gelesen wird, und das Videospeicheradressfeld 828 gibt die Adresse der zu lesenden Zelle im Videospeicher an. Wenn ein Bit auf der Leitung 315 des Ausgangsadressbusses 310 in Fig. 4 inaktiv ist und somit anzeigt, dass kein Eingangsadapter mit dem zentralen Controller in Verbindung steht, wird ein Eintrag aus der Versendewarteschlange 825 entfernt. Der Inhalt des Ausgangsadapteradressfeldes 826 wird auf den Bus 745 geschickt, um die Adresswarteschlange 520 im zentralen Controller auszuwählen. Die übrigen Felder, nämlich das Datenstrom-ID-Feld 827 und das Videospeicheradressfeld 828 werden auf den Bus 725 geschickt, dort mit den Eingängen in die Adresswarteschlange 520 gemultiplext und in der durch die Adresse auf dem Bus 745 ausgewählten Adresswarteschlange 520 gespeichert.
- Der Videodispatcher überwacht auch die Adressen aller aus dem Videospeicher gelesenen Zellen sowie die zugehörigen Ausgangsadapter und Datenstrom-IDs auf dem Bus 540 in der Zelladressenüberwachung 850. Durch die Leitung 851 soll angezeigt werden, dass eine Zelle aus dem Videospeicher gelesen wurde. Wenn die soeben aus dem Videospeicher gelesene Zelle nicht die letzte Zelle der Nachricht ist, wird durch Erhöhen der Zelladresse im Inkrementer 855 eine neue Anforderung generiert und diese über den Multiplexer 820 zur Versendewarteschlange 825 gesendet. Wenn die aus dem Videospeicher gelesene Zelle die letzte Zelle der Nachricht ist, werden das Leitungssteuerfeld und das Datenflusssteuerfeld dieser Nachricht aus dem Befehlsspeicher gelesen und zusammen mit der vom Bus 540 empfangenen Datenstrom-ID zum Ausgangsadapter 250' gesendet. Diese Daten werden auf dem Bus 271 gesendet und sollen den, im Adapter befindlichen Mikroprozessor 260 dazu bringen, eine neue Nachricht vom Videospeicher anzufordern.
- Um mit dem Videodispatcher 800 und den Eingangsadaptern 200 zum Laden von Videoinhalten in Verbindung zu treten, wird der zentrale Controller 500 wie folgt angepasst (500' in Fig. 4). Zwischen die Liste der freien Zellen 510 und die Adresswarteschlangen 520 wird ein Multiplexer 720 geschaltet. Ein Eingang dieses Multiplexers ist der Bus 530, auf dem die Adresse der freien Zelle im gemeinsamen Puffer 400 übertragen Wird, die während des aktuellen Zyklus durch einen Eingangsadapter geschrieben wird und in die durch den Ausgangsadressbus 310 angegebene Adresswarteschlange 520 gestellt werden muss. Der ändere Eingang ist der Bus 725 vom Videodispatcher 800, auf dem die Adresse einer Zelle im Videospeicher sowie eine Datenstromkennnummer übertragen werden, welche beide in die durch den Bus 745 angegebene Adresswarteschlange 520 eingeordnet werden müssen. Ein Bit auf der Leitung 315 des Ausgangsadressbusses 310 zeigt an, dass die Ausgangsadresse gültig ist, und dient dazu, dem Bus 530 eine höhere Priorität zu verleihen, und steuert daher den Multiplexer 720. Das Bit 315 steuert auch den Adressmultiplexer 740 im zentralen Controller, um die Ausgangsadresse 310 zu verwenden, wenn der Bus 530 ausgewählt wird, und die durch den Videodispatcher auf dem Bus 745 generierte Adresse zu verwenden, wenn der in der Adresswarteschlange 520 zu speichernde Inhalt durch den Bus 725 ausgewählt wird. Es muss erwähnt werden, dass dem Videodispatcher in der aktuellen Ausführungsart das Schreiben in die Adresswarteschlange 520 auch dann verwehrt wird, wenn der Inhalt von Bus 530 in eine andere Adresswarteschlange 520 geschrieben werden soll. Durch Bereitstellen einer komplexeren Logikschaltung kann dieser Nachteil umgangen werden. Aus der Adresswarteschlange 520 entfernte Adressen werden nur dann wieder in die Liste der freien Pufferadressen 510 aufgenommen, wenn es sich um die Adressen des gemeinsamen Puffers 400 handelt. Die Steuerlogik 730 prüft, ob sich die Adresse auf dem Bus 540 im Bereich der Adressen für gemeinsame Puffer befindet und gestattet nur der Adresse in diesem, Bereich die Aufnahme in die Liste der freien Zellen 510. Da die Adressen für den Videospeicher 700 wesentlich mehr Bits aufweisen als die Adressen für den gemeinsamen Puffer 400 und durch eine Videodatenstromnummer gekennzeichnet sind, werden die Adresswarteschlangen 520 und der Bus 540 erweitert.
- Um Daten aus dem Eingangsadapter 200 in den Videospeicher 700 zu laden, wird ein Ladeadressbus 760 zusammen mit einem Steuerbit 761 verwendet. Der Mikroprozessor 210 in einem Eingangsadapter 200 empfängt Nachrichten vom Host, um eine Folge von in der Nachricht enthaltenen ATM-Zellen zu laden; dies beginnt mit einer Adresse im Videospeicher, die auch in der Nachricht angegeben ist. Als Reaktion darauf werden die ATM-Zellen auf den Eingangsbus 300 und die für sie im Videospeicher vorgesehene Speicheradresse auf den Ladeadressbus 760 geschickt und das Steuerbit 761 aktiviert. Das Steuerbit 761 steuert den Multiplexer 710 im zentralen Controller 500', sodass die Schreibadresse 532 für den Videospeicher nicht aus der Liste der freien Zellen auf dem Bus 530, sondern aus dem Ladeadressbus 760 ausgewählt werden kann. Bei aktivem Steuerbit 761 ist das Steuerbit 315 inaktiv, wodurch der Videodispatcher auf die Adresswarteschlange 520 zugreifen kann.
- Der im Vermittlungsrechner mit gemeinsamem Puffer als Steuerpunkt verwendete Mehrzweckcomputer 600' fungiert auch als Videospeichermanager, um den Videospeicher zuzuweisen und wiederherzustellen. Der Hostrechner oder Anwendungsserver steht im Dialog mit dem Videospeichermanager, um einen Block des freien Videospeichers anzufordern oder einen Block des Videospeichers wieder freizugeben. Wenn der Videospeichermanager einem Host einen Block des Videospeichers zuweist und dem Host den Adressbereich dieses Blocks mitteilt, kann der Host, wie im vorigen Abschnitt erläutert, ohne weitere Beteiligung des Videospeichermanagers den ihm zugewiesenen Videospeicher direkt beschreiben. Der Befehl vom Host zum Beschreiben des Videospeichers 700 kann direkt an den Mikroprozessor 210 oder indirekt über den Steuerpunktprozessor 600' gesendet werden, der den Befehl dann an den Mikroprozessor 210 weiterleitet.
- Da der Videospeichermanager ein Mehrzweckcomputer ist, kann die Kommunikation zwischen ihm und dem Host mittels beliebiger zuverlässiger Standardtransportprotokolle abgewickelt werden, wobei die gewünschten Sicherheits- und Berechtigungsmaßnahmen eingesetzt werden können. Die Nachrichten vom Host an die Mikroprozessoren 210 in den Eingangsadaptern 200 können auch auf sicheren Leitungen bereitgestellt werden, wobei die Verteilung der Schlüssel durch den Videospeichermanager und die Entschlüsselung der Nachrichten in den Mikroprozessoren selbst erfolgt. Die beiden üblichen vom Host zum Mikroprozessor 210 gesendeten Nachrichtentypen besagen, dass der Videospeicher geladen und Befehle zum Videodispatcher gesendet werden sollen. Wenn diese Befehlsnachrichten entsprechende Informationen zur Empfangsbestätigung enthalten, kann der Mikroprozessor 210 so programmiert werden, dass er eine Bestätigung zum Host zurücksendet. Die Aufteilung des Videospeichers kann ohne Komprimierung erfolgen, indem das Buddysystemverfahren verwendet wird, das für die Hauptspeicheradressierung in Mehrprogrammcomputern vorgeschlagen wurde.
- Die vom Host zum Verteilen einer Gruppe von Videonachrichten gesendete Steuernachricht 8 wird, wie oben beschrieben, durch den Eingangsadapter 200 abgefangen, der diesen Befehl dann zum Videodispatcher 800 weiterleitet. Der Videodispatcher sendet für jede ATM-Zelle in dieser Gruppe von Videonachrichten eine gesonderte Anfrage an den zentralen Controller, diese zu lesen und zum richtigen Ausgangsadapter zu liefern. Die Ausgangsadapter müssen die VPI/VCI-Felder in den Kopfdaten der aus dem Videospeicher gelesenen ATM-Zellen ausfüllen, bevor diese Zellen zur Ausgangsleitung 150 gesendet werden (siehe unten).
- Wenn eine ATM-Zelle aus dem Videospeicher 700 gelesen und zu einem Ausgangsadapter 250' geliefert wird (siehe Fig. 9), empfängt der Videodispatcher die Datenstrom-ID dieser, Zelle vom Bin 540 und leitet sie auf dem Bus 271 zum entsprechenden. Ausgangsadapter weiter. Gemeinsam mit der Datenstrom-ID werden auch die Datenflusssteuerungs- und Verknüpfungsfelder 940 und 950 gesendet, wenn die zu dem Ausgangsadapter gelieferte ATM- Zelle die letzte Zelle einer Videonachricht ist. Der Ausgangsadapter vervollständigt, wie unten beschrieben, die gleichzeitig vom Videospeicher empfangenen Kopfdaten der ATM- Zelle.
- Der Ausgangsadapter kann eine Rückmeldung zum Host erzeugen, um die erfolgreiche Übertragung von Videonachrichten zu bestätigen. Um dies in großen Servern erfolgreich zu implementieren, muss diese Bestätigung unter Verwendung der Rückmeldeadresse und anderer notwendiger Informationen aus der Datenstromsteuertabelle in Hardware erzeugt werden, es sei denn, die Anzahl der ATM-Zellen in einer Nachrichtengruppe ist groß genug und daher die Häufigkeit der Rückmeldungen niedrig genug, dass sie durch den Mikroprozessor 260 bewältigt werden kann.
- In der bevorzugten Ausführungsart ist, der gemeinsame Puffer 400 durch SRAM-Module (Static Random Access Memory, Statischer Arbeitsspeicher) implementiert. Da der Videospeicher jedoch viel größer als der gemeinsame Puffer ist, kann er aus Kosten-, Energie- und Platzgründen nicht in der SRAM- Technologie ausgeführt werden (der gemeinsame Puffer besitzt einen Umfang von einigen Megabytes, während die Größe des Videospeichers im Bereich von Hundert Gigabytes liegt). Deshalb wird der Videospeicher 700, wie in Fig. 8 gezeigt, mittels DRAM-Modulen (Dynamic Random Access Memory, Dynamischer Arbeitsspeicher) implementiert. Vorzugsweise werden vier bis 16 DRAM-Module eingesetzt, die eine Breite von je 53 Bytes besitzen. Bei der vorliegenden Ausführungsart werden 4 Module eingesetzt. Da DRAM-Module im Gegensatz zu, SRAMs über keine separaten Dateneingangs- und Datenausgangsanschlüsse verfügen, werden zum Verbinden der Datenanschlüsse der DRAM-Module mit dem Eingangsbus 300 und dem Ausgangsbus 350 dreistufige Treiber (tristate drivers) 711 und 712 verwendet. Der Multiplexer 420 dient dazu, die Leseadresse 540 und die Schreibadresse 532 auf dem Adressbus 425 zu multiplexen. Ein Schreibaktivierungssignal 585 steuert den Multiplexer 420 und stellt ebenfalls das Schreibaktivierungssteuersignal für SRAM- und DRAM-Module bereit.
- Der DRAM-Controller 750 verwendet die vom Adressbus 425 empfangene Adresse, um die Adresssignale und die Chipauswahlsignale für jedes DRAM-Modul zu erzeugen. Außerdem erzeugt er die Zeilenadress- und Spaltenadressauswahlsignale für die DRAM-Module und stellt die Speicheraktualisierungssignale bereit.
- Die Datenzugriffszeit ist bei SRAMs wesentlich kürzer als bei DRAMs. Die dem SRAM bereitgestellten Adressen werden im Verzögerungselement 410 verzögert, um für SRAMs und DRAMs gleiche Zugriffszeiten zu bewirken und so Konflikte auf dem Ausgangsbus 350 zu vermeiden. Wenn eine Anförderung nach Zugriff auf ein DRAM-Modul nicht sofort angenommen werden kann, da dieses DRAM-Modul gerade mit einer vorangehenden Anforderung beschäftigt ist, wird ein Signal "Anforderung empfangen" 581 gesperrt, damit die Adresse nicht aus der Adresswarteschlange 520 entfernt wird, und um dem Videodispatcher 800 mitzuteilen, dass im Augenblick kein Videopaket zu den Ausgangsadaptern gesendet wird.
- Die ATM-Zellen im Videospeicher werden überlappend über die DRAM-Module verteilt.
- Fig. 9 zeigt die Systemarchitektur des angepassten Ausgangsadapters 250'. Nach jeweils N Taktzyklen wird auf dem Ausgangsbus 350 je eine ATM-Zelle vom gemeinsamen Puffer oder Videospeicher empfangen, wobei N die Anzahl der Ausgangsadapter ist. In Logikblock 282 wird die auf dem Ausgangsbus 350 empfangene ATM-Zelle seriell auf einen 32 Bit oder 16 Bit breiten Bus 283 gegeben. Der Logikblock 284 überwacht, gesteuert durch den Videodispatcher 800, den Bus 271; wenn die ATM-Zelle auf dem Bus 283 vom gemeinsamen Puffer 400 kommt, wird sie unverändert durch den Multiplexer 286 zur Schnittstellenschaltlogik 288 der Ausgangsleitung weitergeleitet, der die Zelle dann schließlich auf der Ausgangsleitung 150 überträgt.
- Wenn die ATM-Zelle auf dem Bus 283 vom Videospeicher kommt, enthält der Bus 271 für diese Zelle eine Datenstrom-ID. Die Datenstrom-ID wird durch den Logikblock 284 auf den Bus 285 gelegt, um sie in die Datenstromsteuertabelle 280 einzutragen und die Kopfdaten für die ATM-Zelle zu erhalten. Diese Kopfdaten werden über den Bus 289 zum Multiplexer 286 übertragen, der sie in der auf dem Bus 283 empfangenen ATM- Zelle austauscht. Das durch den Logikblock 284 erzeugte Steuersignal 287 löst den Austausch der Kopfdaten aus.
- Der Logikblock 284 überprüft auch die Kopfdaten jeder vom gemeinsamen Puffer 400 empfangenen ATM-Zelle, um festzustellen, ob die ATM-Zelle an den Mikroprozessor 260 des Ausgangsadapters adressiert ist; in diesem Fall wird die. Zelle nicht zur Schnittstellenlogik 288 der Ausgangsleitung übertragen, sondern statt dessen zum Mikroprozessor 260 gesendet. Das ist das Grundmuster des Dialogs zwischen dem Host 10 und dem Mikroprozessor 260, um die Datenstromsteuertabelle 280 zu verwalten. Durch zwei vom Host zum Mikroprozessor 260 gesendete Schlüsselbefehle soll ein neuer Eintrag in die Datenstromsteuertabelle erzeugt bzw. ein Eintrag aus dieser Tabelle entfernt werden (siehe Fig. 7). Der Mikroprozessor 260 verwendet den lokalen Speicher 261 zum Speichern seines Programms und seiner Daten und wirkt mit dem Logikblock 284 zusammen, um Änderungen in der Datenstromsteuertabelle zu erreichen. Der Host kann Befehle zum Verwalten der Datenstromsteuertabelle entweder direkt zum Mikroprozessor 260 oder über den Steuerpunktprozessor 600 zum Mikroprozessor 260 senden.
- Wie oben erwähnt, muss der Vermittlungsrechner als Reaktion auf jede vom Host empfangene Steuernachricht mehrere Videonachrichten zu einem Client übertragen. Ein Verfahren zum Überprüfen bestand darin, den Kost aufzufordern, die Lieferung mehrerer Videonachrichten in einer einzigen Steuernachricht anzufordern.
- Bei einem anderen Verfahren wird eine Anzahl der Nachrichten oder ein Abbruchzeitpunkt oder ein Zeigerwert zum Leitungsabbruch für jeden Datenstrom in der Datenstromsteuertabelle angegeben. Der Host startet den Datenstrom durch Senden einer Steuernachricht zum Videodispatcher, indem er die Lieferung der ersten Videonachricht angibt. Wenn im Ausgangsadapter die letzte ATM- Zelle einer Videonachricht verarbeitet wird, wird der in der Datenstromsteuertabelle gespeicherte Wert der Zahl der Nachrichten für den Datenstrom verringert, oder wenn statt dessen der Abbruchzeitpunkt für den Datenstrom angegeben ist, wird der Abbruchzeitpunkt mit dem Lieferzeitpunkt verglichen, oder der Zeigerwert für den Leitungsabbruch wird mit dem auf dem Bus 271 empfangenen Verknüpfungsfeld verglichen. Wenn die Abbruchbedingung erfüllt ist, wird eine entsprechende Bestätigungsmeldung erzeugt und zum Host gesendet. Wenn die Abbruchbedingung nicht erfüllt ist, werden das Verknüpfungsfeld und das Datenflusssteuerfeld zum Erzeugen einer neuen Anforderung verwendet, um die nächste Videonachricht für diesen Datenstrom zu lesen, und die neue Anforderung wird auf dem Bus 270 zum Videodispatcher gesendet.
- Der Host kann nach Empfang der Bestätigung der Abbruchbedingung mit der Lieferung des Videodatenstroms fortfahren, indem er einen Befehl zum Ausgangsadapter sendet, dass die Abbruchbedingung in der Datenstromsteuertabelle zurückzusetzen ist, und indem er eine Steuernachricht zum Videodispatcher sendet, dass die nach der letzten für diesen Datenstrom gelieferten Nachricht folgende Videonachricht gesendet werden soll.
- Auf den ersten Blick scheint die Bereitstellung der beiden oben beschriebenen unterschiedlichen Verfahren zum Anfordern der Lieferung mehrerer Videonachrichten durch den Hast überflüssig. Allerdings können bei dem ersten Verfahren, nach dem der Host in der direkt zum Videodispatcher gesendeten Steuernachricht mehrere Videonachrichten anfordern kann, kurze Videodatenströme mit sehr kurzer Startverzögerung übertragen werden, während das zweite Verfahren eine lange Startverzögerung aufweist, da der Host zuerst die genaue Abbruchbedingung in die Datenstromsteuertabelle eintragen muss, bevor er mit der Lieferung von Videonachrichten an den Client beginnen kann. Der Nachteil des ersten Verfahrens besteht jedoch darin, dass der Host, sobald er mit dem Senden einer Steuernachricht zum Vermittlungsrechner begonnen hat, damit dieser eine bestimmte Anzahl von Videonachrichten zu einem Client sendet, weder die vollständige Lieferung aller Videonachrichten vom Vermittlungsrechner unterbrechen noch den Wiedergabemodus ändern kann, bevor alle Videonachrichten geliefert worden sind. Andererseits kann der Host jederzeit die Datenstromsteuertabelle anpassen, um den Wiedergabemodus oder die Abbruchbedingung zu ändern bzw. einen neuen Startzeitpunkt einzutragen. Dem ersten Verfahren ist der Vorzug zu geben, wenn der Host bei einer Anwendung oft mit dem Vermittlungsrechner in Verbindung treten muss, da dieses Verfahren mit geringem Systemaufwand und kurzer Startverzögerung verbunden ist. Das zweite Verfahren hingegen ist dann vorzuziehen, wenn zwischen dem Host und dem Vermittlungsrechner nur selten ein Dialog stattfindet, da hier der Host die Kontrolle über die Übertragung von Videonachrichten behält.
- In der vorangehenden Erörterung wurde das Verfahren der Lieferung von Videos zur normalen Wiedergabe behandelt. Für diesen Zweck wurde ein einzelnes Verknüpfungsfeld und ein einzelnes Datenflusssteuerfeld verwendet. Um mehrere Wiedergabemodi zu unterstützen, erfordern manche Videonachrichten mehrere Verknüpfungsfelder und mehrere Datenflusssteuerfelder. In diesem Abschnitt wird zunächst beschrieben, wie Videonachrichten, oft unter Verwendung mehrfacher Verknüpfungen in jeder Videonachricht, miteinander verknüpft werden, um mehrere Wiedergabemodi zu unterstützen. Jedes Verknüpfungsfeld wird stets seinem Datenflusssteuerfeld zugeordnet, welches die durch den Vermittlungsrechner zu berücksichtigende Verzögerung bestimmt, wenn dieser den Ablauf der durch die jeweilige Verknüpfung angezeigten Videonachricht steuert. Dann wird ein speicherplatzsparendes Verfahren zum Speichern der Verknüpfungs- und Datenflusssteuerfelder im Vermittlungsrechner beschrieben.
- Bei einem nach dem MPEG-Algorithmus komprimierten Videodatenstrom liegen die komprimierten Bilder in drei Typen vor: Intra-codiert, Vorhersehbar-codiert und Bidirektional- Vorhersehbar-codiert. Intra-codierte Bilder (I-Bilder) können ohne zusätzliche Informationen decodiert werden, aber zum Decodieren von Vorhersehbar-codierten Bildern (P-Bilder) wird das ihnen vorangehende decodierte I-Bild benötigt. Für das Decodieren von Bidirektional-vorhersehbar-codierten Bildern (B-Bilder) werden sowohl das vorangehende decodierte I- oder P-Bild als auch das nachfolgende decodierte I- oder P-Bild benötigt.
- Fig. 13a zeigt eine Bildfolge (Einzelbilder) in einem Videodatenstrom. Die Bilder werden in dieser Reihenfolge empfangen und angezeigt, auf die sich die folgenden Ausführungen beziehen. Man erkennt jedoch leicht, dass das zweite Bild, ein B-Bild, erst dann decodiert werden kann, wenn das fünfte Bild, das als erstes P-Bild oder I-Bild auf dieses B-Bild folgt, decodiert wurde. Daher unterscheidet sich die Reihenfolge, in der die Bilder eines Videodatenstroms decodiert werden und die als Decodierungsreihenfolge bezeichnet wird, von der Darstellungsreihenfolge. In Fig. 13b veranschaulichen die Pfeile die Decodierungsreihenfolge für die in der Darstellungsreihenfolge von links nach rechts aufgeführten Bilder. In der vorliegenden Ausführungsart werden die komprimierten Einzelbilder in einem Videodatenstrom in der Decodierungsreihenfolge gespeichert und daher in der Decodierungsreihenfolge zum Client gesendet. In den durch die Vorwärtsverknüpfungen 941 abgerufenen Videonachrichten erscheinen die komprimierten Einzelbilder in der Decodierungsreihenfolge.
- Um die Rückwärtswiedergabe von. Videos zu unterstützen, werden die in Fig. 13c gezeigten komprimierten Einzelbilder, die in der Darstellungsreihenfolge für die normale Wiedergabe von links nach rechts aufgeführt sind, zum Client gesendet, dann in der durch die Rückwärtsverknüpfung 942 gezeigten Reihenfolge decodiert und dann durch den Client in der Reihenfolge von rechts nach links angezeigt. Wenn die Rückwärtsverknüpfungen zum Abrufen der Videonachrichten verwendet werden, erscheinen die komprimierten Videobilder in der Decodierungsreihenfolge, um das Video, wie in Fig. 13c gezeigt, rückwärts wiederzugeben. Da Videonachrichten eine feste Größe aufweisen, werden der Anfang und das Ende von Einzelbildern nicht an die Begrenzungen der Videonachricht angepasst. Wenn also Videonachrichten in einer Reihenfolge abgerufen werden, die sich vom normalen Wiedergabemodus, also bei normaler Wiedergabe, schnellem Vorlauf und Rückspulen, unterscheidet, enthalten die erste und die letzte Videonachricht eines Videobildes zusätzliche Daten. In diesem Fall muss entweder der Client so programmiert werden, dass er die zusätzlichen Daten löscht, oder es müssen in der Videonachricht Auffüllbytes verwendet werden, um die Einzelbildbegrenzungen an die Videonachrichten anzupassen.
- Bei Videonachrichten, die nicht das Ende eines Einzelbilds enthalten, werden Rückwärtsverknüpfungen nicht gespeichert, da bei diesen Bildern die Vorwärts- und die Rückwärtsverknüpfung identisch sind.
- Schneller Vorlauf und Zurückspulen werden auf dieselbe Weise unterstützt wie die Rückwärtswiedergabe. Die Verknüpfung 943 (siehe Fig. 13d) verknüpft die letzte Videonachricht, die Daten eines I-Bildes enthält, mit der ersten Videonachricht, die Daten des nächsten I-Bildes enthält. Dadurch wird der schnelle Vorlauf erreicht, wenn die Verknüpfung 943 zum Abrufen der Daten Verwendet wird und die I-Bilder mit einer höheren Geschwindigkeit abgerufen und zum Benutzer geliefert werden als die Geschwindigkeit, mit der die I-Bilder bei normaler Wiedergabe durch den Benützer empfangen werden. Da der Client bei normaler Wiedergabe üblicherweise zwei I-Bilder je Sekunde empfängt, eignet sich dieses Schema, wenn die Geschwindigkeit des schnellen Vorlaufs etwa 15 mal so hoch wie die normale Wiedergabegeschwindigkeit ist. Um eine niedrigere Geschwindigkeit für den schnellen Vorlauf zu unterstützen, könnte man, wie in Fig. 13d gezeigt, unter Verwendung der Verknüpfung 944 alle I- und P-Bilder miteinander verknüpfen. Die ebenfalls in Fig. 13d gezeigten Verknüpfungen 945 und 946 werden auf ähnliche Weise zum Unterstützen der Rückspulfunktion bei unterschiedlichen Geschwindigkeiten verwendet. Auch hier liegen die Verknüpfungen 943 und 945 in Videonachrichten vor, die das Ende eines I-Bildes enthalten, und die Verknüpfungen 944 und 946 liegen in Videonachrichten vor, die das Ende eines I-Bildes oder eines P-Bildes enthalten.
- Wenn diese Verknüpfungen nicht in einer Videonachricht gespeichert sind, wird die Vorwärtsverknüpfung verwendet. Und schließlich weisen die Verknüpfungen 943 und 944 ihre eigenen Datenflusssteuerfelder auf, die von den Verknüpfungen 944 bzw. 946 mitbenutzt werden können.
- Da jede Videonachricht eine unterschiedliche Anzahl von Verknüpfungsfeldern aufweist, wäre es verschwenderisch, Speicherplatz für die maximal mögliche Anzahl von Verknüpfungsfeldern in jeder Videonachricht bereitzuhalten. Um den benötigten Speicherbedarf auf ein Minimum zu beschränken, werden die Verknüpfungsfelder kompakt zusammen mit den Datenflusssteuerfeldern im Befehlsspeicher des Videodispatchers sowie Zeiger fester Größe, die auf die Verknüpfungen in jeder Videonachricht zeigen, in einem dem Videodispatcher angefügten Befehls-Zeiger-Speicher gespeichert. Jetzt wird die Adresse der Videonachricht dazu verwendet, um aus dem Befehls-Zeiger-Speicher einen Zeiger abzurufen, der wiederum zum Abrufen der Verknüpfungen für die Videonachricht aus dem Befehlsspeicher verwendet, wird. Jeder Eintrag des Befehls-Zeiger-Speichers besitzt zusätzlich zum Zeiger des Befehlsspeichers einen Maskeneintrag. Die Maske zeigt an, welche Verknüpfungen vorliegen.
- Um schließlich die Modi Rückwärtswiedergabe, schneller Vorlauf und Zurückspulen zu unterstützen, wird zu der vom Host zum Videodispatcher gesendeten Steuernachricht ein zusätzliches Feld hinzugefügt. Dieses Feld gibt den Wiedergabemodus an. Die Daten zum Wiedergabemodus werden gemeinsam mit der ATM- Zellenadresse (und der Datenstrom-ID) auf den Bussen 725 und 540 transportiert und gemeinsam für der ATM-Zellenadresse in den Warteschlangen 540 gespeichert. Wenn die letzte ATM-Zelle einer Videonachricht vom Videospeicher abgerufen wird, wird daher unter Verwendung der Information zum Wiedergabemodus aus der Menge der für jede aktuell gesendete Videonachricht gespeicherten Verknüpfungen die Verknüpfung zur nächsten Videonachricht und dem entsprechenden Datenflusssteuerfeld ausgewählt.
- Bei der in den vorangehenden Abschnitten beschriebenen Ausführungsart unter Verwendung eines Vermittlungsrechners mit gemeinsamem Puffer wurde der Videospeicher als Erweiterung des gemeinsamen Puffers selbst realisiert, und die vom gemeinsamen Speicher abgerufenen Videopakete (-zellen) wurden zu den Ausgangsadaptern des Vermittlungsrechners weitergeleitet. In diesem Abschnitt werden drei Alternativen der obigen Ausführungsarten beschrieben, die jeweils das Speichern von paketweise verarbeiteten Videoinformationen in den Vermittlungsrechnern des Netzes unterstützen.
- Solange in den Ausgangsadaptern des Vermittlungsrechners Puffer bereitgestellt werden und in diesen Adaptern. Rechenleistung zum Ausführen der für die Ausgangsadapter beschriebenen Funktionen zur Verfügung steht, kann dem Vermittlungsrechner auch dann Videospeicher hinzugefügt werden, wenn dieser nicht auf dem gemeinsamen Speicher basiert. Fig. 10 veranschaulicht das allgemeine Verfahren zum Einfügen von Halbleiterspeichern in derartige Vermittlungsrechner. Fig. 10A zeigt einen typischen Vermittlungsrechner 61 mit Eingangsleitungen und. Ausgangswarteschlangen 1250 zusätzlich zur Hardware 1100 und zur Steuerung 1150 des Vermittlungsrechners. Fig. 108 zeigt, dass der Videospeicher 700 in diesen Vermittlungsrechner eingefügt werden kann, indem er mittels des Videodispatchers direkt mit den Ausgangswarteschlangen verbunden wird. Im Gegensatz zur bevorzugten Ausführungsart werden die Videodaten jetzt durch den Videodispatcher auf einem anderen Bus als der normale Netzverkehr zum Ausgangsadapter gesendet. Der Videospeichermanager 1600 empfängt jetzt die Videodaten ebenfalls und schreibt sie in den Videospeicher 700. Ansonsten entsprechen die Einzelheiten des Arbeitsschritts im Wesentlichen der bevorzugten Ausführungsart auf Basis des Vermittlungsrechners mit dem gemeinsamen Puffer.
- Wenn der Halbleiterspeicher, wie im vorangehenden Kapitel beschrieben, nicht direkt mit den Ausgangsadaptern verbünden werden kann, können die Eingangsleitungen des Vermittlungsrechners, wie in Fig. 11 gezeigt, zum Anschließen verwendet werden. Der Videospeicher 700' wird nun über die Anschlüsse 800' mit den Eingängen des Vermittlungsrechners verbunden. Die Eingangsadapter werden so angepasst, dass sie die Logik des Videodispatchers aufnehmen. Jeder angepasste Eingangsadapter 200' weist die Datenstromsteuertabelle auf und führt die Videodispatcherfunktion an jedem durch sie abgerufenen Videodatenstrom aus. Die Ausgangsadapter 250 unterscheiden sich nur insofern von den Ausgangsadaptern 250, als die Schnittstelle zur Hardware des Vermittlungsrechners hier nicht mehr ein allgemein benützter Bus ist. Dieser Ansatz weist den Nachteil auf, dass für die Unterstützung desselben Videodurchsatzes mehr Hardware des Vermittlungsrechners benötigt wird, da die Videodaten sowohl durch die Eingangs- als auch durch die Ausgangsadapter geleitet werden. Bei den oben beschriebenen Designs könnte der Vermittlungsrechner eventuell weniger Eingangsadapter aufweisen, da der Datenverkehr überwiegend aus Videodaten besteht, die direkt den Ausgangsadaptern zugeordnet sind. Wenn weniger Eingangsadapter verwendet werden, resultieren die Einsparungen nicht nur aus der Hardware der Eingängsadapter, sondern auch aus der möglichen Verwendung eines kleineren Vermittlungsrechners.
- Schließlich könnte der Speicher bei allen vorangehenden Designs anstelle des Halbleiterspeichers auf einer Anordnung von Plattenspeicherlaufwerken 790 basieren, insbesondere wenn die Anzahl der zu unterstützenden Datenströme nicht allzu groß ist. Ein kleiner Halbleiterpuffer 795 stellt den aktuell durch die aktiven Videodatenströme abgerufenen Abschnitt des Videos vorab bereit. Dieses Bereitstellen kann genau terminiert werden, da die Abrufe der Videodaten überwiegend sequenziell erfolgen. Letzten Endes laufen bei diesem System alle Videoinhalte über den Puffer. Dieser Ansatz wird durch Fig. 12 veranschaulicht.
Claims (5)
1. Verfahren, um Video-, Multimedia- oder andere
kontinuierliche Medieninhalte (900) von einem bestimmten
Vermittlungsrechner (60) aus einer Anzahl von
Vermittlungsrechnern, in dem der Inhalt vor einer oder
ohne eine aktuelle Anforderung des Inhalts in Form
vorverarbeiteter Pakete (920) gespeichert ist, an Clients
(20) zu verteilen, wobei die Vermittlungsrechner (60) und
die Clients (20) Teil eines Datenübertragungssystems (50)
sind, das ferner einen Hostprozessor (10) und weitere
Vermittlungsrechner (60) umfasst, wobei das Verfahren die
folgenden Schritte umfasst:
-- 1. Anfordern des Inhalts oder eines Teils davon durch
Senden einer Anforderung (6) zur Übertragung von einem
der Clients (20) an den Hostprozessor (10);
-- 2. Erkennen des bestimmten Vermittlungsrechners, in dem
der angeforderte Inhalt gespeichert ist;
-- 3. Übertragen einer Steuernachricht (8) vom Rostprozessor
(10) an den Vermittlungsrechner (60), wobei die
Steuernachricht eine Anforderung zum Senden des Inhalts
oder eines Teils davon vom Vermittlungsrechner an den
einen Client anzeigt und die Steuernachricht weder den
angeforderten Inhalt noch einen Teil davon enthält;
-- 4. Übertragen einer Kopie des angeforderten Inhalts oder
eines Teils davon in Form von vorverarbeiteten Paketen
vom Vermittlungsrechner an den einen Client (20) in der
Weise, dass der kontinuierliche Medieninhalt (900) durch
den Client (20) aus den vorverarbeiteten Paketen
wiederhergestellt werden kann, während der Inhalt
anschließend in Form von vorverarbeiteten Paketen im
Speicher des Vermittlungsrechners erhalten bleibt, wobei
der Vermittlungsrechner über Schaltmittel und mehrere
Ausgangsanschlüsse verfügt, mittels derer der
Vermittlungsrechner (60) in der Lage ist, Inhalte
unabhängig voneinander an jeden der Clients (20) zu
übertragen, der die Inhalte oder Teile davon anfordert.
2. Verfahren gemäß Anspruch 1, bei dem jedes der
vorverarbeiteten Pakete (920) Nutzinformationen des
Inhalts sowie Header und Trailer des Netzprotokollstapels
umfasst.
3. Datenübertragungssystem zum Übertragen von Video-,
Multimedia- oder anderen kontinuierlichen Medieninhalten
(900) von einem Vermittlungsrechner (60), in dem der
Inhalt vor einer oder ohne eine aktuelle Anforderung des
Inhalts in Form von vorverarbeiteten Pakten gespeichert
ist, an Clients, wobei der Vermittlungsrechner (60) und
die Clients (20) Teil des Datenübertragungssystems (50)
sind, welches ferner einen Hostprozessor (10) umfasst
sowie:
-- 1. Mittel zum Anfordern der Übertragung des Inhalts (900)
oder eines Teils davon durch Senden einer
Übertragungsanforderung (6) von einem der Clients (20) an
den Hostprozessor (10),
-- 2. Mittel zum Übertragen einer Steuernachricht (8) vom
Hostprozessor (10) an den Vermittlungsrechner (60), in
dem der angeforderte Inhalt gespeichert ist, wobei die
Steuernachricht (8) eine Anforderung zum Senden des
Inhalts oder eines Teils davon vom Vermittlungsrechner
(60) an einen der Clients (20) anzeigt und die
Steuernachricht weder den angeforderten Inhalt noch einen
Teil davon enthält,
-- 3. Mittel zum zeitlichen Steuern und Übertragen einer
Kopie des angeforderten Inhalts oder eines Teils davon in
Form von vorverarbeiteten Paketen (920) vom
Vermittlungsrechner (60) an einen der Clients (20), und
-- 4. Mittel, die dem Vermittlungsrechner (60), der über
Schaltmittel und mehrere Ausgangsanschlüsse verfügt, die
Übertragung des Inhalts an einen beliebigen der Clients
(20), der den Inhalt oder einen Teil davon anfordert, zu
ermöglichen, während der Inhalt anschließend in Form von
vorverarbeiteten Paketen (920) im Speicher des
Vermittlungsrechners (60) verbleibt.
4. Datenübertragungssystem gemäß Anspruch 3, bei dem der
Inhalt nur dann aus dem Speicher des Vermittlungsrechners
entfernt wird, wenn an diesen Vermittlungsrechner der
Gruppe von Vermittlungsrechnern eine unabhängige
Steuernachricht übertragen wird, die das Löschen des
Inhalts anfordert, wobei die unabhängige Steuernachricht
von der Anforderungsnachricht unabhängig ist.
5. Datenübertragungsnetz, das Folgendes umfasst:
-- a. ein Datenübertragungsnetz (50), das eine Vielzahl von
Vermittlungsrechnern (60) aufweist;
-- b. einen mit dem Datenübertragungsnetz (50) verbundenen
Hostprozessor (10);
-- c. eine Vielzahl von mit dem Datenübertragungsnetz (50)
verbundenen Clients (20); wobei
-- d. jeder der Vermittlungsrechner (60) über Folgendes
verfügt:
-- 1. spezielle Speichermittel zum Speichern von
vorverarbeiteten Videopaketen,
-- 2. Mittel zum Abrufen und Versenden von Kopien von
abgerufenen vorverarbeiteten Videopaketen an einen
abrufenden Client der Clients (20), und
-- 3. Mittel zum Liefern fehlender Informationen in den
Headern und Trailern des Netzprotokollstapels in den
vorverarbeiteten Paketen,
wobei die vorverarbeiteten Videopakete auch nach dem
Übertragen von Kopien der angeforderten Videopakete an
den anfordernden Client (20) in jedem der
Vermittlungsrechner (60) gespeichert bleiben; und
-- e. Mittel, die jedem der Vermittlungsrechner (60) die
unabhängige Übertragung von vorverarbeiteten Videopaketen
an Clients (20) ermöglichen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29467394A | 1994-08-23 | 1994-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69529948D1 DE69529948D1 (de) | 2003-04-24 |
DE69529948T2 true DE69529948T2 (de) | 2003-12-11 |
Family
ID=23134436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69529948T Expired - Fee Related DE69529948T2 (de) | 1994-08-23 | 1995-07-24 | Halbleiterspeicherbasierter Server zum Bereitstellen von Multimedianachrichten auf Anfrage in einem Grossraumnetz |
Country Status (10)
Country | Link |
---|---|
US (1) | US5758085A (de) |
EP (1) | EP0698982B1 (de) |
JP (1) | JP3730686B2 (de) |
KR (1) | KR100209834B1 (de) |
CN (1) | CN1134934C (de) |
AT (1) | ATE235128T1 (de) |
BR (1) | BR9503452A (de) |
CA (1) | CA2149480C (de) |
DE (1) | DE69529948T2 (de) |
TW (1) | TW252248B (de) |
Families Citing this family (127)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991301A (en) * | 1994-05-05 | 1999-11-23 | Sprint Communications Co. L.P. | Broadband telecommunications system |
US7349976B1 (en) | 1994-11-30 | 2008-03-25 | Realnetworks, Inc. | Audio-on-demand communication system |
US5793980A (en) | 1994-11-30 | 1998-08-11 | Realnetworks, Inc. | Audio-on-demand communication system |
US5541918A (en) * | 1995-01-31 | 1996-07-30 | Fore Systems, Inc. | Method and apparatus for manipulating an ATM cell |
US5991811A (en) * | 1995-09-04 | 1999-11-23 | Kabushiki Kaisha Toshiba | Information transmission system utilizing both real-time data transmitted in a normal-in-time direction and in a retrospective-in-time direction |
US6016535A (en) * | 1995-10-11 | 2000-01-18 | Citrix Systems, Inc. | Method for dynamically and efficiently caching objects by subdividing cache memory blocks into equally-sized sub-blocks |
US6088515A (en) | 1995-11-13 | 2000-07-11 | Citrix Systems Inc | Method and apparatus for making a hypermedium interactive |
US7555529B2 (en) | 1995-11-13 | 2009-06-30 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
US6437803B1 (en) | 1998-05-29 | 2002-08-20 | Citrix Systems, Inc. | System and method for combining local and remote windows into a single desktop environment |
US6950991B2 (en) * | 1995-11-13 | 2005-09-27 | Citrix Systems, Inc. | Interacting with software applications displayed in a web page |
CA2196622C (en) * | 1996-02-06 | 2001-10-16 | Hiroshi Jinzenji | Network data distribution system |
JP3258236B2 (ja) * | 1996-05-28 | 2002-02-18 | 株式会社日立製作所 | マルチメディア情報転送システム |
US6108655A (en) | 1996-07-19 | 2000-08-22 | Cisco Technology, Inc. | Method and apparatus for transmitting images and other objects over a computer network system |
JP3862321B2 (ja) | 1996-07-23 | 2006-12-27 | キヤノン株式会社 | サーバ及びその制御方法 |
JP3202606B2 (ja) | 1996-07-23 | 2001-08-27 | キヤノン株式会社 | 撮像サーバ及びその方法及び媒体 |
DE69738619T2 (de) | 1996-07-23 | 2009-05-20 | Canon K.K. | Verfahren und Vorrichtung zur Kamerakontrolle |
KR100200625B1 (ko) * | 1996-09-30 | 1999-06-15 | 윤종용 | 텔레비젼을 이용한 음성 및 문자 사서함 열람장치 및 방법 |
US6055560A (en) * | 1996-11-08 | 2000-04-25 | International Business Machines Corporation | System and method to provide interactivity for a networked video server |
US6073160A (en) * | 1996-12-18 | 2000-06-06 | Xerox Corporation | Document communications controller |
GB2323946B (en) * | 1997-04-04 | 2002-04-17 | Sony Uk Ltd | Database accessing method and apparatus |
US6178170B1 (en) * | 1997-05-13 | 2001-01-23 | Sprint Communications Company, L. P. | System and method for transporting a call |
US5991912A (en) * | 1997-05-15 | 1999-11-23 | Next Level Communications | Digital video transport error handling in cell based communications systems |
JP2000512472A (ja) * | 1997-06-25 | 2000-09-19 | サムソン エレクトロニクス カンパニー リミテッド | ホームネットワークのためのプログラミングツール |
US6199126B1 (en) * | 1997-09-23 | 2001-03-06 | International Business Machines Corporation | Processor transparent on-the-fly instruction stream decompression |
US6253207B1 (en) * | 1997-09-25 | 2001-06-26 | Lucent Technologies Inc. | Method and apparatus for transporting multimedia information over heterogeneous wide area networks |
US6298406B1 (en) * | 1997-10-24 | 2001-10-02 | Sony Corporation | Method of and apparatus for detecting direction of reception of bus packets and controlling direction of transmission of bus packets within an IEEE 1394 serial bus node |
US6055543A (en) * | 1997-11-21 | 2000-04-25 | Verano | File wrapper containing cataloging information for content searching across multiple platforms |
US6466574B1 (en) * | 1998-06-05 | 2002-10-15 | International Business Machines Corporation | Quality of service improvement of internet real-time media transmission by transmitting redundant voice/media frames |
US6148414A (en) | 1998-09-24 | 2000-11-14 | Seek Systems, Inc. | Methods and systems for implementing shared disk array management functions |
US6463065B1 (en) | 1998-11-17 | 2002-10-08 | Cisco Technology, Inc. | Mixed topology data switching system |
US6484207B1 (en) * | 1998-11-17 | 2002-11-19 | Cisco Technology, Inc. | Switching system having interconnects dedicated to store and retrieve data including management of dedicated memory segments allocated when a general memory is depleted |
US6526452B1 (en) | 1998-11-17 | 2003-02-25 | Cisco Technology, Inc. | Methods and apparatus for providing interfaces for mixed topology data switching system |
US6665673B1 (en) | 1998-11-17 | 2003-12-16 | Cisco Technology, Inc. | Channel communication system |
US6928469B1 (en) * | 1998-12-29 | 2005-08-09 | Citrix Systems, Inc. | Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques |
US6330621B1 (en) | 1999-01-15 | 2001-12-11 | Storage Technology Corporation | Intelligent data storage manager |
US7266706B2 (en) * | 1999-03-03 | 2007-09-04 | Yottayotta, Inc. | Methods and systems for implementing shared disk array management functions |
US6895088B1 (en) * | 1999-05-21 | 2005-05-17 | Sprint Communications Company L.P. | System and method for controlling a call processing system |
SE521181C2 (sv) * | 1999-07-01 | 2003-10-07 | Telia Ab | Förfarande och system för policystyrd distribution av strömmande media i ett IP-nät |
AU7596500A (en) | 1999-09-20 | 2001-04-24 | Quintiles Transnational Corporation | System and method for analyzing de-identified health care data |
US6732113B1 (en) * | 1999-09-20 | 2004-05-04 | Verispan, L.L.C. | System and method for generating de-identified health care data |
US6842841B1 (en) | 1999-09-21 | 2005-01-11 | Storage Technology Corporation | Method and system for dynamically selecting tape drives to connect with host computers |
US8165146B1 (en) * | 1999-10-28 | 2012-04-24 | Lightwaves Systems Inc. | System and method for storing/caching, searching for, and accessing data |
GB2359209A (en) * | 2000-02-09 | 2001-08-15 | Motorola Ltd | Apparatus and methods for video distribution via networks |
CN1268170C (zh) * | 2000-02-14 | 2006-08-02 | 汤姆森许可贸易公司 | 分离成若干个分组的消息的传输方法 |
US7299290B2 (en) * | 2000-03-22 | 2007-11-20 | Yottayotta, Inc. | Method and system for providing multimedia information on demand over wide area networks |
US6785713B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for communicating among a network of servers utilizing a transport mechanism |
US6789112B1 (en) | 2000-05-08 | 2004-09-07 | Citrix Systems, Inc. | Method and apparatus for administering a server having a subsystem in communication with an event channel |
US6922724B1 (en) | 2000-05-08 | 2005-07-26 | Citrix Systems, Inc. | Method and apparatus for managing server load |
US6785726B1 (en) | 2000-05-08 | 2004-08-31 | Citrix Systems, Inc. | Method and apparatus for delivering local and remote server events in a similar fashion |
US6591322B1 (en) * | 2000-08-01 | 2003-07-08 | Sun Microsystems, Inc. | Method and apparatus for connecting single master devices to a multimaster wired-and bus environment |
US20020038456A1 (en) * | 2000-09-22 | 2002-03-28 | Hansen Michael W. | Method and system for the automatic production and distribution of media content using the internet |
JP2002100114A (ja) * | 2000-09-25 | 2002-04-05 | Canon Inc | 再生装置、再生方法、伝送装置、伝送方法及び記憶媒体 |
JP2002100113A (ja) * | 2000-09-25 | 2002-04-05 | Canon Inc | 再生装置、再生方法、伝送装置、伝送方法及び記憶媒体 |
US20020107971A1 (en) * | 2000-11-07 | 2002-08-08 | Bailey Brian W. | Network transport accelerator |
US7213075B2 (en) * | 2000-12-15 | 2007-05-01 | International Business Machines Corporation | Application server and streaming server streaming multimedia file in a client specific format |
AU2002236718A1 (en) | 2001-01-02 | 2002-07-16 | Tranz-Send Broadcasting Network, Inc. | System and method for providing load balanced secure media content and data delivery in a distributed computed environment |
GB2371726B (en) | 2001-01-27 | 2005-08-17 | Mitel Corp | Transport protocols for application platforms over network portals |
US8270452B2 (en) * | 2002-04-30 | 2012-09-18 | Lightwaves Systems, Inc. | Method and apparatus for multi-band UWB communications |
US8766773B2 (en) | 2001-03-20 | 2014-07-01 | Lightwaves Systems, Inc. | Ultra wideband radio frequency identification system, method, and apparatus |
US7545868B2 (en) * | 2001-03-20 | 2009-06-09 | Lightwaves Systems, Inc. | High bandwidth data transport system |
GB2374703A (en) * | 2001-04-19 | 2002-10-23 | Snell & Wilcox Ltd | Digital video store |
JP2003030018A (ja) * | 2001-07-13 | 2003-01-31 | Sony Corp | データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム |
US7774492B2 (en) * | 2001-07-26 | 2010-08-10 | Citrix Systems, Inc. | System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections |
WO2003032504A2 (en) | 2001-10-12 | 2003-04-17 | Bellsouth Intellectual Property Corporation | Methods and systems of wireless communication between a remote data network and a set-top box |
US20030093544A1 (en) * | 2001-11-14 | 2003-05-15 | Richardson John William | ATM video caching system for efficient bandwidth usage for video on demand applications |
US7308001B2 (en) * | 2001-11-16 | 2007-12-11 | Computer Network Technology Corporation | Fibre channel frame batching for IP transmission |
US7027450B2 (en) * | 2002-02-19 | 2006-04-11 | Computer Network Technology Corporation | Frame batching and compression for IP transmission |
US8811429B2 (en) * | 2002-02-19 | 2014-08-19 | Brocade Communications Systems, Inc. | Batching and compression for IP transmission |
US8135843B2 (en) * | 2002-03-22 | 2012-03-13 | Citrix Systems, Inc. | Methods and systems for providing access to an application |
US8000647B2 (en) | 2002-10-11 | 2011-08-16 | At&T Intellectual Property I, L.P. | Method using a set-top box and communicating between a remote data network and a wireless communication network |
US7542471B2 (en) * | 2002-10-30 | 2009-06-02 | Citrix Systems, Inc. | Method of determining path maximum transmission unit |
US7616638B2 (en) | 2003-07-29 | 2009-11-10 | Orbital Data Corporation | Wavefront detection and disambiguation of acknowledgments |
US8233392B2 (en) | 2003-07-29 | 2012-07-31 | Citrix Systems, Inc. | Transaction boundary detection for reduction in timeout penalties |
US7630305B2 (en) | 2003-07-29 | 2009-12-08 | Orbital Data Corporation | TCP selective acknowledgements for communicating delivered and missed data packets |
US8270423B2 (en) | 2003-07-29 | 2012-09-18 | Citrix Systems, Inc. | Systems and methods of using packet boundaries for reduction in timeout prevention |
US20040223054A1 (en) * | 2003-05-06 | 2004-11-11 | Rotholtz Ben Aaron | Multi-purpose video surveillance |
US7430187B2 (en) * | 2003-05-15 | 2008-09-30 | At&T Intellectual Property I, Lp | Methods, systems, and computer program products for providing different quality of service/bandwidth allocation to different susbscribers for interactive gaming |
US7684432B2 (en) * | 2003-05-15 | 2010-03-23 | At&T Intellectual Property I, L.P. | Methods of providing data services over data networks and related data networks, data service providers, routing gateways and computer program products |
US20040243852A1 (en) * | 2003-05-28 | 2004-12-02 | Rosenstein Adam H. | Method, system and software for state signing of internet resources |
US8432800B2 (en) | 2003-07-29 | 2013-04-30 | Citrix Systems, Inc. | Systems and methods for stochastic-based quality of service |
US8238241B2 (en) | 2003-07-29 | 2012-08-07 | Citrix Systems, Inc. | Automatic detection and window virtualization for flow control |
US8437284B2 (en) | 2003-07-29 | 2013-05-07 | Citrix Systems, Inc. | Systems and methods for additional retransmissions of dropped packets |
US7656799B2 (en) | 2003-07-29 | 2010-02-02 | Citrix Systems, Inc. | Flow control system architecture |
US20060218227A1 (en) * | 2003-08-06 | 2006-09-28 | Spear Stephen L | Method and apparatus for enabling content provider authentication |
US7978716B2 (en) | 2003-11-24 | 2011-07-12 | Citrix Systems, Inc. | Systems and methods for providing a VPN solution |
US20050177616A1 (en) * | 2003-12-19 | 2005-08-11 | N2 Broadband, Inc. | Method and system for distributing services in a digital asset environment |
CN1700643B (zh) * | 2004-05-20 | 2014-07-16 | 深圳市朗科科技股份有限公司 | 数据交换装置及基于网络的数据交换方法 |
US7757074B2 (en) | 2004-06-30 | 2010-07-13 | Citrix Application Networking, Llc | System and method for establishing a virtual private network |
US8495305B2 (en) | 2004-06-30 | 2013-07-23 | Citrix Systems, Inc. | Method and device for performing caching of dynamically generated objects in a data communication network |
US8739274B2 (en) | 2004-06-30 | 2014-05-27 | Citrix Systems, Inc. | Method and device for performing integrated caching in a data communication network |
AU2005266945A1 (en) | 2004-07-23 | 2006-02-02 | Citrix Systems, Inc. | A method and systems for securing remote access to private networks |
AU2005266943C1 (en) | 2004-07-23 | 2011-01-06 | Citrix Systems, Inc. | Systems and methods for optimizing communications between network nodes |
KR100707250B1 (ko) * | 2004-09-10 | 2007-04-13 | (주) 아이티비엠지 | 채널 도메인의 활용 시스템 및 그 활용방법 |
US7818614B2 (en) * | 2004-10-25 | 2010-10-19 | Hewlett-Packard Development Company, L.P. | System and method for reintroducing a processor module to an operating system after lockstep recovery |
US7711799B2 (en) * | 2004-11-22 | 2010-05-04 | Alcatel-Lucent Usa Inc. | Method and apparatus for pre-packetized caching for network servers |
US8954595B2 (en) | 2004-12-30 | 2015-02-10 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP buffering |
US8706877B2 (en) | 2004-12-30 | 2014-04-22 | Citrix Systems, Inc. | Systems and methods for providing client-side dynamic redirection to bypass an intermediary |
US8700695B2 (en) | 2004-12-30 | 2014-04-15 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP pooling |
US7810089B2 (en) * | 2004-12-30 | 2010-10-05 | Citrix Systems, Inc. | Systems and methods for automatic installation and execution of a client-side acceleration program |
US8549149B2 (en) | 2004-12-30 | 2013-10-01 | Citrix Systems, Inc. | Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing |
US8255456B2 (en) | 2005-12-30 | 2012-08-28 | Citrix Systems, Inc. | System and method for performing flash caching of dynamically generated objects in a data communication network |
KR20070104566A (ko) | 2005-01-24 | 2007-10-26 | 사이트릭스 시스템스, 인크. | 네트워크에서 동적으로 발생된 객체들의 캐싱을 수행하는시스템 및 방법 |
JP2006252019A (ja) * | 2005-03-09 | 2006-09-21 | Hitachi Ltd | ストレージネットワークシステム |
AU2006320203B2 (en) * | 2005-12-02 | 2011-12-01 | Citrix Systems, Inc. | Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource |
US8301839B2 (en) | 2005-12-30 | 2012-10-30 | Citrix Systems, Inc. | System and method for performing granular invalidation of cached dynamically generated objects in a data communication network |
US7921184B2 (en) * | 2005-12-30 | 2011-04-05 | Citrix Systems, Inc. | System and method for performing flash crowd caching of dynamically generated objects in a data communication network |
US8244883B2 (en) | 2006-08-03 | 2012-08-14 | Citrix Systems, Inc. | Systems and methods of for providing multi-mode transport layer compression |
GB2441577A (en) * | 2006-09-08 | 2008-03-12 | Edgeware Ab | Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers |
US8826345B2 (en) | 2006-09-08 | 2014-09-02 | Edgeware Ab | Method and an apparatus for data streaming |
GB2441575A (en) * | 2006-09-08 | 2008-03-12 | Edgeware Ab | Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers |
GB2441576A (en) * | 2006-09-08 | 2008-03-12 | Edgeware Ab | Video server using FPGA streamers with control GPU and memory wherein video data segments are chained with play, FF and rewind pointers |
US9355273B2 (en) * | 2006-12-18 | 2016-05-31 | Bank Of America, N.A., As Collateral Agent | System and method for the protection and de-identification of health care data |
CN101207994A (zh) | 2006-12-19 | 2008-06-25 | 鸿富锦精密工业(深圳)有限公司 | 铰链结构 |
US7706266B2 (en) * | 2007-03-12 | 2010-04-27 | Citrix Systems, Inc. | Systems and methods of providing proxy-based quality of service |
EP1981284B1 (de) * | 2007-04-12 | 2020-08-26 | ADTRAN GmbH | Verfahren zum Auslesen von Daten und Vorrichtung |
GB2449068A (en) * | 2007-05-08 | 2008-11-12 | Edgeware Ab | Data streaming using stored control data |
EP2186340B1 (de) * | 2007-08-09 | 2016-01-06 | GVBB Holdings S.A.R.L | Videowiedergabesystem |
CN102150147A (zh) * | 2008-07-03 | 2011-08-10 | 惠普开发有限公司 | 存储器服务器 |
WO2010049440A1 (en) * | 2008-10-29 | 2010-05-06 | Edgeware Ab | A method and an apparatus for data recording and streaming |
US20100114607A1 (en) * | 2008-11-04 | 2010-05-06 | Sdi Health Llc | Method and system for providing reports and segmentation of physician activities |
US9141758B2 (en) * | 2009-02-20 | 2015-09-22 | Ims Health Incorporated | System and method for encrypting provider identifiers on medical service claim transactions |
WO2010151496A1 (en) * | 2009-06-22 | 2010-12-29 | Citrix Systems, Inc. | Systems and methods for platform rate limiting |
US8265050B2 (en) * | 2009-08-07 | 2012-09-11 | Time Warner Cable, Inc. | System and method for sharing a payload among mobile devices in a wireless network |
WO2013049089A1 (en) * | 2011-09-27 | 2013-04-04 | Thomson Licensing | User interfaces for content distribution systems |
US9002991B2 (en) | 2013-04-06 | 2015-04-07 | Miranda Technologies Partnership | System and methods for cloud-based media play out |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4236250A (en) * | 1979-05-21 | 1980-11-25 | Rockwell International Corporation | Multiline switch |
JPS60219848A (ja) * | 1984-04-17 | 1985-11-02 | Fujitsu Ltd | ビデオテツクス端末システム |
JPS63151240A (ja) * | 1986-12-16 | 1988-06-23 | Fujitsu Ltd | ビデオ番組分配方式 |
US4897781A (en) | 1987-02-13 | 1990-01-30 | International Business Machines Corporation | System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment |
US5005122A (en) | 1987-09-08 | 1991-04-02 | Digital Equipment Corporation | Arrangement with cooperating management server node and network service node |
GB8821410D0 (en) * | 1988-09-13 | 1988-10-12 | Int Computers Ltd | Data processing system |
JP2748452B2 (ja) * | 1988-11-15 | 1998-05-06 | 日本電気株式会社 | ダウンラインロード方式 |
JPH02161844A (ja) * | 1988-12-14 | 1990-06-21 | Hitachi Ltd | 情報配布サービス方式 |
US5477541A (en) * | 1989-09-29 | 1995-12-19 | White; Richard E. | Addressing technique for storing and referencing packet data |
US5115426A (en) * | 1990-03-30 | 1992-05-19 | At&T Bell Laboratories | Broadband isdn packet switching arrangements |
US5218697A (en) | 1990-04-18 | 1993-06-08 | Microsoft Corporation | Method and system for networking computers having varying file architectures |
US5093718A (en) | 1990-09-28 | 1992-03-03 | Inteletext Systems, Inc. | Interactive home information system |
US5220420A (en) | 1990-09-28 | 1993-06-15 | Inteletext Systems, Inc. | Interactive home information system for distributing compressed television programming |
JP3073248B2 (ja) * | 1991-03-19 | 2000-08-07 | 富士通株式会社 | ポイント対マルチポイント接続方式 |
JPH0514342A (ja) * | 1991-07-02 | 1993-01-22 | Hitachi Ltd | パケツト同報通信方式 |
US5287461A (en) | 1991-10-31 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for remotely accessing a plurality of server consoles |
US5287507A (en) | 1992-03-27 | 1994-02-15 | Sun Microsystems, Inc. | Method and apparatus for portable object handles that use local caches |
US5490252A (en) * | 1992-09-30 | 1996-02-06 | Bay Networks Group, Inc. | System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing |
US5442389A (en) * | 1992-12-28 | 1995-08-15 | At&T Corp. | Program server for interactive television system |
US5440334A (en) * | 1993-02-01 | 1995-08-08 | Explore Technology, Inc. | Broadcast video burst transmission cyclic distribution apparatus and method |
JPH06284148A (ja) * | 1993-03-30 | 1994-10-07 | Hitachi Ltd | 動画通信制御方法及び通信制御装置 |
US5539449A (en) * | 1993-05-03 | 1996-07-23 | At&T Corp. | Integrated television services system |
US5442390A (en) * | 1993-07-07 | 1995-08-15 | Digital Equipment Corporation | Video on demand with memory accessing and or like functions |
DE4328862A1 (de) * | 1993-08-27 | 1995-03-02 | Sel Alcatel Ag | Verfahren und Vorrichtung zum Zwischenspeichern von Datenpaketen sowie Vermittlungsstelle mit einer solchen Vorrichtung |
US5491800A (en) * | 1993-12-20 | 1996-02-13 | Taligent, Inc. | Object-oriented remote procedure call networking system |
US5485455A (en) * | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
US5508940A (en) * | 1994-02-14 | 1996-04-16 | Sony Corporation Of Japan And Sony Electronics, Inc. | Random access audio/video processor with multiple outputs |
US5488411A (en) * | 1994-03-14 | 1996-01-30 | Multimedia Systems Corporation | Interactive system for a closed cable network |
US5467345A (en) * | 1994-05-31 | 1995-11-14 | Motorola, Inc. | Packet routing system and method therefor |
US5461611A (en) * | 1994-06-07 | 1995-10-24 | International Business Machines Corporation | Quality of service management for source routing multimedia packet networks |
US5583561A (en) * | 1994-06-07 | 1996-12-10 | Unisys Corporation | Multi-cast digital video data server using synchronization groups |
-
1994
- 1994-11-03 TW TW083110129A patent/TW252248B/zh active
-
1995
- 1995-04-27 CN CNB951042009A patent/CN1134934C/zh not_active Expired - Fee Related
- 1995-05-16 CA CA002149480A patent/CA2149480C/en not_active Expired - Fee Related
- 1995-07-14 JP JP17901895A patent/JP3730686B2/ja not_active Expired - Fee Related
- 1995-07-24 AT AT95480100T patent/ATE235128T1/de not_active IP Right Cessation
- 1995-07-24 DE DE69529948T patent/DE69529948T2/de not_active Expired - Fee Related
- 1995-07-24 EP EP95480100A patent/EP0698982B1/de not_active Expired - Lifetime
- 1995-07-26 BR BR9503452A patent/BR9503452A/pt not_active IP Right Cessation
- 1995-08-21 KR KR1019950025590A patent/KR100209834B1/ko not_active IP Right Cessation
-
1997
- 1997-01-08 US US08/778,230 patent/US5758085A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2149480A1 (en) | 1996-02-24 |
EP0698982B1 (de) | 2003-03-19 |
BR9503452A (pt) | 1996-05-28 |
CN1134934C (zh) | 2004-01-14 |
DE69529948D1 (de) | 2003-04-24 |
US5758085A (en) | 1998-05-26 |
JPH0884143A (ja) | 1996-03-26 |
JP3730686B2 (ja) | 2006-01-05 |
EP0698982A2 (de) | 1996-02-28 |
EP0698982A3 (de) | 1998-04-15 |
ATE235128T1 (de) | 2003-04-15 |
TW252248B (en) | 1995-07-21 |
CN1118959A (zh) | 1996-03-20 |
CA2149480C (en) | 2003-10-14 |
KR100209834B1 (ko) | 1999-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69529948T2 (de) | Halbleiterspeicherbasierter Server zum Bereitstellen von Multimedianachrichten auf Anfrage in einem Grossraumnetz | |
DE69319327T2 (de) | Videoserver | |
DE69834080T2 (de) | Verfahren zur verteilten Bearbeitung von Video-Clips über ein Telekommunikationsnetz | |
DE69614317T2 (de) | Skalierbares interaktives Multimediaserversystem | |
DE69525556T2 (de) | Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung | |
DE69509523T2 (de) | Server für digitale videodaten für eine vielzahl von anwendern in synchrongruppen | |
DE69424389T2 (de) | Gerät und Methode zur Speicherung und Verteilung von Videosignalen | |
DE69901305T2 (de) | Modulverwalter für interaktives fernsehsystem | |
DE69606790T2 (de) | Vielfachknotenmediaserver mit wirksamer Ablaufplanung | |
DE69704344T2 (de) | Anwendungsprogrammierungsschnittstelle für datenübertragung und busverwaltung über eine busstruktur | |
DE69529949T2 (de) | Videoserversystem | |
DE69535402T2 (de) | Einrichtung und Verfahren zur Segmentierung und zeitlichen Synchronisierung der Übertragung von Multimediadaten | |
DE69223996T2 (de) | Adaptiver videodateienprozessor und verfahren für seine anwendung | |
DE69516441T2 (de) | Verfahren zur Verwaltung eines Speicherpuffers in einem Netzwerkvideoanbietergerät | |
DE69604299T2 (de) | Unterstützung für video-auf-anfrage durch versetzte datenströme | |
DE69930127T2 (de) | Kostengünstiger, skalierbarer medienserver mit offener architektur | |
DE69812338T2 (de) | Video auf anfrage mit videorecorderähnlichen funktionen | |
DE69636846T2 (de) | Verfahren und Apparat zur Aufteilung von Lade- und Entladefunktionen in einer ATM-Schnittstelle | |
DE69415880T2 (de) | Segmentiertes System für Video-auf-Abruf | |
DE60038448T2 (de) | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen | |
DE69733622T2 (de) | System und Verfahren zum zeitnahen Liefern von digitalen Informationen unter Verwendung einer Fragmentierung und Sequenzierung, um die mittlere Bandbreite unddie Spitzenbandbreite zu verringern | |
DE60218358T2 (de) | Verfahren und Vorrichtung zur Datenübertragung | |
DE19882509B4 (de) | Eine Vielseitige Zeitmultiplexzugriffszeitscheibenzuweisungseinheit | |
DE602004011638T2 (de) | Verringern von Pufferanforderungen in einem Nachrichtenübermittlungssystem | |
DE69319475T2 (de) | Rechneranzeige für Videosignale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8339 | Ceased/non-payment of the annual fee |