DE69533565T2 - Verteiltes Computersystem - Google Patents

Verteiltes Computersystem Download PDF

Info

Publication number
DE69533565T2
DE69533565T2 DE69533565T DE69533565T DE69533565T2 DE 69533565 T2 DE69533565 T2 DE 69533565T2 DE 69533565 T DE69533565 T DE 69533565T DE 69533565 T DE69533565 T DE 69533565T DE 69533565 T2 DE69533565 T2 DE 69533565T2
Authority
DE
Germany
Prior art keywords
data
module
data stream
computer
stream
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 - Lifetime
Application number
DE69533565T
Other languages
English (en)
Other versions
DE69533565D1 (de
Inventor
Kuriacose Plainsboro Joseph
Vincent Venice Dureau
Jr. Ansley Wayne Willingboro Jessup
Alain Los Angeles Delpuch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
OpenTV Inc
Original Assignee
OpenTV Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22879143&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69533565(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by OpenTV Inc filed Critical OpenTV Inc
Application granted granted Critical
Publication of DE69533565D1 publication Critical patent/DE69533565D1/de
Publication of DE69533565T2 publication Critical patent/DE69533565T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26266Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for determining content or additional data repetition rate, e.g. of a file in a DVB carousel according to its importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4351Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers

Description

  • Die vorliegende Erfindung betrifft ein verteiltes Client-Server-Computersystem. Ein derartiges Computersystem kommt in Fernseh-Multimedia-Anwendungen zur Anwendung.
  • Frühe Computersysteme waren unabhängige Systeme, die im Allgemeinen aus Großrechnern bestanden. Später wurden mehrere Großrechnersysteme zur Handhabung von größeren Computeraufgaben, wie beispielsweise einer großen Anzahl von Teilnehmern, eng verbunden oder aneinander angeschlossen. Mit dem Erscheinen von PCs wurde eine große Anzahl von unabhängigen Computersystemen mit relativ geringer Leistung direkt von den Benutzern gesteuert. Bald wurde diese große Anzahl von PCs zu Computernetzen zusammengekoppelt, wodurch den Benutzern der einzelnen PCs sowie zwischen den Benutzern und den bereits bestehenden Großrechnern gemeinsame Ressourcen und Kommunikationsmöglichkeiten bereitgestellt wurden.
  • Eine Form eines derartigen Netzes umfasst einen Zentralcomputer, genannt Server, der im Allgemeinen eine große Menge an Massenspeicher umfasst. Programme, die von den Netzbenutzern verwendet werden, werden in dem Massenspeicher im Server zentral gespeichert. Wenn ein Benutzer ein Programm laufen lassen möchte, fordert der Computer des Benutzers das Senden einer Kopie dieses Programms vom Server zu dem Computer an. Als Reaktion auf diese Anfrage überträgt der Server eine Kopie des Programms aus seinem Massenspeicher zum Hauptspeicher des PCs dieses Benutzers und das Programm wird auf dem PC ausgeführt. Ebenfalls können Daten zentral in dem Server gespeichert und von allen Benutzern im Netz gemeinsam benutzt werden. Die Daten werden im Massenspeicher des Servers gespeichert und sind allen Netzbenutzern als Reaktion auf eine Anfrage zugänglich. Der Server dient ebenfalls als Verkehrskonzentrierungseinheit zur Nachrichtenübermittlung (elektronische Post) zwischen den Netzbenutzern. Der Server handhabt in einem derartigen System die Speicherung und Verteilung der Programme, Daten und Nachrichten, steuert jedoch keine Verarbeitungsleistung zu den tatsächlichen Computeraufgaben eines der Benutzer bei. Das heißt, ein Benutzer kann nicht erwarten, dass der Server-Computer eine der Verarbeitungsaufgaben des Programms ausführt, das auf dem PC ausgeführt wird. Während derartige Netze eine wertvolle Funktion ausführen, sind sie keine verteilten Computersysteme, bei denen miteinander verbundene Computer zusammenarbeiten, um eine einzige Computeraufgabe auszuführen.
  • Bei einer Verbesserung derartiger Netze kann das Netz in einer solchen Weise konfiguriert sein, dass ein Benutzer in dem Netz anfordern kann, dass der Server oder ein anderer PC, der an das Netz angeschlossen ist, ein Programm ausführt. Dies wird Fernausführung genannt, da ein Computer (ein Server oder ein anderer PC), der sich von dem Anfrager entfernt befindet, als Reaktion auf eine Anfrage von dem Anfrager ein Programm ausführt. Bei einem derartigen System wird das Programm, für das eine Fernausführung angefordert wird, entweder von dem Anfrager zu dem Ferncomputer gesendet, oder es wird als Reaktion auf eine Anfrage durch den Ferncomputer vom Server abgerufen. Wenn das Programm empfangen wird, wird es ausgeführt. Auf diese Weise können mehrere Computer eingetragen werden, um an der Ausführung einer Computerfunktion mitzuwirken.
  • Neuerdings gibt es Programme, die die tatsächlichen Computeraufgaben, die zur Ausführung einer einzelnen Computerfunktion notwendig sind, verteilen. Wenn beispielsweise in einem solchen Datenbankprogramm, bei dem die Datenbank im Massenspeicher des Servers gespeichert ist, ein Benutzer eine Abfrage der Datenbank machen möchte, erzeugt der Abschnitt des Datenbank-Managementprogramms auf dem PC dieses Benutzers eine Abfrageanfrage, die an den Server weitergeleitet wird. Der Abschnitt des Datenbank-Managementprogramms auf dem Server führt die Abfrageverarbeitung aus, z.B. syntaktische Analyse der Abfrageanfrage, Feststellen, wo sich die in der Abfrageanfrage spezifizierten Daten in seiner Massenspeichervorrichtungbefinden, Zugseifen auf diese Daten und Senden der Ergebnisse über das Netz zurück zu dem anfragenden PC. Der Abschnitt des Datenbank-Managementprogramms auf dem PC verarbeitet daraufhin die vorn Server empfangenen Daten, z.B. durch Formatieren und Anzeigen der Daten auf dem Bildschirm oder Ausdrucken der Daten auf einem Drucker. Während der Server die Abfrageanfrage verarbeitet, ist der PC für die Ausführung anderer Verarbeitungsvorgänge frei, und während der PC die Abfrageanfrage erzeugt und die vom Server empfangenen resultierenden Daten verarbeitet, ist der Server frei, Abfrageanfragen von anderen PCs zu verarbeiten.
  • Andere Arten von Programmen können ebenfalls an diese Art von verteiltem Computerbetrieb, genannt Client-Server-Computerbetrieb, angepasst werden. Indem die Verarbeitungsaufgaben zwischen dem PC und dem Server aufgeteilt werden, wird die Gesamteffizienz des Computerbetriebs im ganzen Netz verbessert. Solche Client-Server-Computersysteme und Fernausführungsnetze können verteilte Computersysteme genannt werden, da mehrere Computer (der Server und/oder die jeweiligen peripheren Computer) zusammenarbeiten, um die Computerfunktion, z.B. das Datenbank-Management, auszuführen.
  • In jüngster Zeit sind Fernseh-Multimediaprogramme, insbesondere interaktive Fernseh- (TV-)Programme, vorgeschlagen worden. Interaktive TV-Programme ermöglichen einem Zuschauer eines Fernsehprogramms, mit diesem Programm interaktiv zu kommunizieren. Bei einem interaktiven TV-System weist die zentrale Fernsehsendeposition (TV-Netz, örtliches TV-Studio, Kabelsystem usw.) einen Zentralrechner auf, der dem Server-Computer entspricht und Signale erzeugt, die das interaktive TV-Programm betreffen, das gleichzeitig mit den TV-(Video- und Audio-) Signalen gesendet werden soll. Diese Signale tragen Daten, die das interaktive TV-Progamm darstellen, und können Befehle, ausfühbaren Programmcode und/oder Daten zur Steuerung des Zuschauerdialogs umfassen. Jede Zuschauerposition verfügt über einen Computer, der dem Client-Computer entspricht und die Befehle, ausführbaren Code und/oder Daten vom Zentralcomputer empfängt, den ausführbaren Code ausführt, die empfangenen Daten verarbeitet, Eingaben vom Benutzer annimmt und dem Benutzer mit Hilfe des Fernsehbildschirms Daten bereitstellt. Die Eingaben vom Benutzer können zum Computer an der Fernsehsendeposition zurückgesendet werden, wodurch der Benutzer einen Dialog mit dem interaktiven Fernsehprogramm führen kann.
  • US-Patent Nr. 4,965,825 SIGNAL PROCESSING APPARATUS AND METHODS, ausgegeben am 23.Okt. 1990 an Harvey et al., beschreibt ein interaktives TV-System, bei dem eine zentrale Fernsehsendeposition signaltragende Befehle, ausführbaren Code und Daten in beispielsweise der Bildaustastlücke des Fernsehsignals für den Empfang durch die Computersysteme an den Zuschauerpositionen umfasst. Ein Computer an der Zuschauerposition blendet die Befehle, ausführbaren Code und Daten aus und führt den Code aus, um die Daten zu verarbeiten und mit dem Benutzer einen Dialog zu führen. Ein solches System ist dahingehend mit der Fernausführungsfunktion von verteilten Computersystemen, die oben beschrieben wurden, vergleichbar, dass der Computer des Zuschauers in dem interaktiven Fernsehprogramm aufgelistet ist und von des zentralen Position gesteuert wird.
  • US-Patent Nr. 5,251,301 „COMPUTER REMOTE CONTROL THROUGH VIDEO SIGNAL", ausgegeben am 5. Oktober 1993 an Gary M. Cook, beschreibt ein System zur gleichzeitigen Nutzung eines Videosignals, um ein Videobild und Computerdaten bereitzustellen. Datensignale, die die Computerdaten darstellen, werden für den Ersatz von digitalen Signalen verwendet, die Videopixel am Übertragungsende darstellen. Ein auf diese Weise modifiziertes digitales Signal wird in ein analoges Signal zurück umgewandelt und zu einem Empfänger gesendet, der daraufhin ein Videobild anzeigt, das dem modifizierten Signal entspricht, und der ebenfalls die Computerdaten ausblendet, so dass diese Daten einem Computer bereitgestellt werden können. Der Computer kann dementsprechend durch die Computerdaten gesteuert werden, während ein Videobild angezeigt wird.
  • Bei allen oben genannten Systemen steuert ein Zentralcomputer periphere Computer, die mit ihm über ein Netz verbunden sind, oder er antwortet auf Anfragen von peripheren Computern. D.h., dass der periphere Computer (PC) eine Fernausführung eines Programms oder eine Datei oder Nachricht von einem anderen Computer anfordert oder eine Abfrageanfrage zu einem anderen Computer sendet. Nur als Reaktion auf eine Anfrage stellt der andere Computer eine Antwort bereit, z.B. eine Fernausführung, die angeforderte Datei, Nachricht oder abgerufene Daten. Zusätzlich muss der periphere Computer im Allgemeinen über alle Ressourcen verfügen, die zur vollständigen oder nahezu vollständigen Ausführung des gewünschten Programms erforderlich sind, wobei der Server lediglich als ein weiterer Speichermechanismus arbeitet oder höchstens an einem Teil der Computeraufgaben teilnimmt.
  • Die Erfinder schlagen hierin ein verteiltes Computersystem vor, bei dem ein Server-Computer fortwährend einen Datenstrom erzeugt. Dieser Datenstrom wirkt als Massenspeichervorrichtung für die Client-Computer, die ihn empfangen. Dieser Datenstrom umfasst wiederholt Daten, die eine verteilte Computeranwendung darstellen, an der der Client-Computer teilnehmen kann, einschließlich ausführbaren Codes und Daten. Ein Transportmechanismus, der einen Hochgeschwindigkeitseinwegkommunikationspfad umfasst, trägt den Datenstrom vom Server zum Client. Der Client empfängt den Datenstrom, blendet die Daten aus, die die verteilte Computeroperation darstellen, und führt die verteilte Computeranwendung aus.
  • Gemäß einem Gesichtspunkt der vorliegenden Erfindung wird ein verteiltes Computersystem bereitgestellt, das Folgendes umfasst: eine Datenstromquelle, die gleichzeitig dafür ausgelegt ist, eine Vielzahl kontinuierlicher Datenströme zu erzeugen, wiederkehrend Daten, die eine verteilte Computeranwendung darstellen, in mindestens einen Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen und ein Verzeichnismodul in mindestens einen Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen, wobei das Verzeichnismodul Informationen enthält, die die verteilte Computeranwendung betreffen.
  • Vorzugsweise ist die Quelle dafür ausgelegt, die Daten in jeden Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen und ein Verzeichnismodul in jeden Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen; und des Weiteren ist ein Client-Computer 20 inbegriffen, der einen Datenempfänger enthält, der dafür ausgelegt ist, einen Datenstrom der Vielzahl kontinuierlicher Datenströme auszuwählen, um die Daten, die die verteilte Computeranwendung darstellen, aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden 206, und um die verteilte Computeranwendung auszuführen 224.
  • Gemäß einem zweiten Gesichtspunkt der Erfindung ist ein Client-Computer 22 zur Verwendung in einem verteilten Computersystem bereitgestellt, wobei der Client-Computer 22 durch Folgendes gekennzeichnet ist: eine Eingangsklemme 30, die selektiv dafür ausgelegt ist, einen Datenstrom einer Vielzahl kontinuierlicher Datenströme zu empfangen, wobei der ausgewählte Datenstrom der Vielzahl kontinuierlicher Datenströme wiederkehrend Daten umfasst, die eine verteilte Computeranwendung und ein Verzeichnismodul darstellen; einen Datenstromempfänger 207, der mit der Eingangsklemme 30 verbunden ist und dafür ausgelegt ist, den ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme zu empfangen und die Daten auszublenden 206, die die verteilte Computeranwendung darstellen; und eine Verarbeitungseinheit 224, die mit dem Datenstromempfänger verbunden und dafür ausgelegt ist, die verteilte Computeranwendung zu empfangen und auszuführen 210; wobei der Datenstromempfänger 207 des Weiteren dafür ausgelegt ist, das Verzeichnismodul aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden und als Reaktion auf Informationen in dem ausgeblendeten Verzeichnismodul die Daten, die die verteilte Computeranwendung darstellen, aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden.
  • In einem verteilten Computersystem gemäß der Erfindung braucht das Client-Computersystem nicht alle Ressourcen zu umfassen, insbesondere einen Hauptspeicher und einen Massenspeicher, die zur Ausführung des gesamten Programms erforderlich sind. Stattdessen ist kein Massenspeicher erforderlich, da der Datenstrom die Funktion der Massenspeichervorrichtung bereitstellt, und die Anforderung an den Hauptspeicher ist gering, da nur der gegenwärtig ausgeführte Anteil des Programms im Speicher gespeichert zu werden braucht. Wenn der gegenwärtig ausgeführte Anteil beendet ist, wird dessen Speicherplatz gelöscht und der nächste ausführende Anteil wird aus dem Datenstrom ausgeblendet und im freien Speicherplatz gespeichert, und dieser Anteil beginnt mit der Ausführung.
  • Darüber hinaus bietet ein verteiltes Computersystem gemäß der vorliegenden Erfindung dem Benutzer des Client-Computers die Option, an der verteilten Computeraufgabe teilzunehmen. Wenn gewünscht ist, teilzunehmen, blendet der Client-Computer die Daten aus, die die verteilte Computeranwendung darstellen, und führt die verteilte Computeranwendung wie oben beschieben aus. Wenn nicht gewünscht ist, teilzunehmen, wird der Datenstrom einfach ignoriert und es wird die vom Benutzer gewünschte Verarbeitung oder überhaupt keine Verarbeitung ausgeführt. Ein solches verteiltes Computersystem ermöglicht des Weiteren jedem teilnehmenden Client-Computer, jederzeit an der verteilten Computerfunktion teilzunehmen und bei der Ausführung seiner eigenen Computerfunktionen mit der eigenen Geschwindigkeit fortzufahren.
  • Ein verteiltes Computersystem gemäß der vorliegenden Erfindung ist besonders für interaktive TV-Anwendungen geeignet, weil es einem Zuschauer ermöglicht, jederzeit einen interaktiven TV-Kanal zu empfangen, an der Interaktivität teilzunehmen, wann gewünscht (oder auch nicht teilzunehmen), und weil es allen Zuschauern ermöglicht, mit ihren unterschiedlichen Geschwindigkeiten fortzufahren. Dies ist insbesondere in einer Umgebung vorteilhaft, in der eine interaktive Werbung mit ihrem eigenen ausführbaren Code und ihren eigenen ausführbaren Daten in dem interaktiven Programm präsentiert wird oder wenn der Zuschauer den Kanal wechseln möchte.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen ist:
  • 1 ein Blockdiagramm eines verteilten Computersystems gemäß der vorliegenden Erfindung;
  • 2 ein Blockdiagramm eines Server-Computers, wie in 1 veranschaulicht;
  • 3 ein Zeitablaufplan, der die Datenströme veranschaulicht, die von einem Server-Computer in einem verteilten Computersystem, das in 1 veranschaulicht ist, erzeugt werden;
  • 4 ein Blockdiagramm eines Client-Computers, wie in 1 veranschaulicht.
  • 1 ist ein Blockdiagramm eines verteilten Computersystems gemäß der vorliegenden Erfindung. In 1 ist ein Server-Computer 10, der ein großes Computersystem umfassen kann, mit Hilfe eines Transportmechanismus 30 mit einer Vielzahl von Client-Computern 20 gekoppelt. Der Server-Computer 10 kann mit mehr als den drei Client-Computern 20, die in 1 veranschaulicht sind, gekoppelt sein und die Client-Computer 20 können geografisch weit voneinander entfernt sein. Der Client-Computer 22 ist mit einem lokalen Computer 40, einem Hilfsdatenverarbeitungssystem 50 und einer Zentralverarbeitungseinrichtung 60 bidirektional gekoppelt. Die Zentralverarbeitungseinrichtung 60 ist mit dem Server-Computer 10 bidirektional gekoppelt. Die Zentralverarbeitungseinrichtung 60 kann ebenfalls mit Einrichtungen gekoppelt sein, die von dem Server-Computer 10, der in 1 veranschaulicht ist, verschieden sind. Der lokale Computer 40 ist des Weiteren mit einer Massenspeichervorrichtung 70 bidirektional gekoppelt. Der Client-Computer 22 kommuniziert mit einem Benutzer 80, indem er dem Benutzer Informationen mit Hilfe eines Anzeigebildschirms oder einer anderen Ausgabevorrichtung (nicht gezeigt) bereitstellt und indem er Informationen vom Benutzer mit Hilfe einer Tastatur oder einer anderen Eingabevorrichtung (ebenfalls nicht gezeigt) annimmt.
  • Die Client-Computer 24 und 26 kommunizieren ebenfalls mit ihren Benutzern (zur Vereinfachung der Zeichnung nicht gezeigt). Zusätzlich sind die Client-Computer 24 und 26 mit der Zentralverarbeitungseinrichtung 60 bidirektional gekoppelt. Solche Verknüpfungen sind jedoch optional. Die einzigen Anforderungen an jeden Client-Computer 20 sind eine Möglichkeit der Kommunikation mit einem Benutzer und eine Verbindung mit dem Transportmechanismus 30. Verknüpfungen zu lokalen Computern, Hilfsdatenverarbeitungssystemen und der Zentralverarbeitungseinrichtung 60 sind allesamt optional und brauchen nicht in jedem der Client-Computer 20 vorhanden zu sein.
  • Der Transportmechanismus 30 umfasst eine unidirektionale Hochgeschwindigkeits-Digitaldatenverknüpfung, wie beispielsweise eine direkte Lichtleitfaser- oder digitale Satellitenverknüpfung vom Server 10 zu den Client-Computern 20.
  • Die Daten können über das Transportsystem 30 mit Hilfe eines Paketdatensystems übertragen werden. Bei einem solchen System wird ein Strom von Datenpaketen, die jeweils Identifikationsinformationen enthalten, die unter anderem den Typ der Daten, die in diesem Paket enthalten sind, sowie die tatsächlichen Daten angeben, durch die Datenverknüpfung übertragen. Ein solches Paketdatensystem ermöglicht verschiedene unabhängige Datenströme, die jeweils durch Identifikationsinformationen in ihren Paketen identifiziert sind, um innerhalb eines einzelnen Paketstroms zeitmultiplexiert zu werden.
  • Zusätzlich ist es möglich, eine Vielzahl solcher Paketdatenströme auf demselben physikalischen Medium (Lichtleitfaser oder Satellitenfunkverknüpfung), das den Transportmechanismus 30 darstellt, über entsprechende Kanäle zu multiplexieren. Beispielsweise können unterschiedliche Datenströme auf Trägersignalen mit unterschiedlichen Frequenzen moduliert werden. Diese modulierten Träger können beispielsweise über entsprechende Transponder auf einer Satellitenverknüpfung übertragen werden. Wenn ein bestimmter Transponder über ausreichende Kapazität verfügt, ist es des Weiteren möglich, mehrere Datenströme auf einem einzelnen modulierten Träger zu zeitmultiplexieren.
  • Die Client-Computer 20 umfassen jeweils einen Datenempfänger, der einen der Paketströme, die über den Transportmechanismus 30 übertragen werden, auswählt, den ausgewählten Paketstrom empfängt und die darin enthaltenen Daten ausblendet. Gemäß dem oben genannten Beispiel kann der Datenempfänger einen abstimmbaren Demodulator für den Empfang eines der jeweiligen modulierten Träger von der Satellitenverknüpfung umfassen. Zusätzlich kann der Datenempfänger eine Schaltung zur Zeitmultiplexierung der jeweiligen Datenströme umfassen, die von dem modulierten Träger getragen werden.
  • Bei Betrieb erzeugt der Server 10 einen fortlaufenden Datenstrom in Form eines Paketstroms für die Client-Computer 20. Der Server 10 fügt wiederholt ein Paket oder aufeinanderfolgende Pakete in den Datenstrom ein, die Daten enthalten, die die verteilte Computeranwendung darstellen, einschließlich mindestens eines ausführbaren Codemoduls. Dieses Codemodul enthält ausführbaren Code für die Client-Computer 20. Der Datenempfänger, der sich beispielsweise im Client-Computer 22 befindet, überwacht fortwährend die Pakete in dem Datenstrom auf dem Transportmechanismus 30. Wenn ein Paket, das Identifikationsinformationen enthält, die anzeigen, dass es das Codemodul (oder einen Teil des Codemoduls) enthält, das von dem Client-Computer 22 benötigt wird, in dem Datenstrom vorhanden ist, erfasst der Client-Computer 22 dessen Vorhandensein, blendet das Codemodul (oder den Teil des Codemoduls) aus diesem Paket aus und speichert es im Hauptspeicher. Wenn das Codemodul vollständig empfangen wurde, beginnt der Client-Computer 22 mit dessen Ausführung.
  • Es kann mehr als ein Codemodul in dem fortlaufenden Datenstrom angeordnet sein, von denen jedes einen unterschiedlichen Teil der verteilten Computeranwendung enthält. Beispielsweise ist es möglich, die verteilte Computeranwendung auf eine Weise in kleine Abschnitte zu unterteilen, dass zu einem Zeitpunkt jeweils nur ein Abschnitt ausgeführt zu werden braucht. Der Abschnitt der verteilten Computeranwendung, der gegenwärtig ausgeführt werden muss, wird in den Speicher des Client-Computers 22 geladen. Wenn die Ausführung dieses Abschnitts beendet ist, wird ein Codemodul, das den ausführbaren Code für den nächsten Abschnitt der verteilten Computeranwendung enthält, aus dem Datenstrom ausgeblendet, im Speicher gespeichert und ausgeführt. Jeder Abschnitt wird nach Bedarf aus dem Datenstrom ausgeblendet. Wenn im Client-Computer 22 ausreichend Speicherplatz zur Verfügung steht, ist es möglich, mehrere Codemodule in den Speicher zu laden und zwischen diesen hin- und herzuschalten, ohne sie aus dem Datenstrom auszublenden, jedoch ist dies nicht notwendig. Durch die Strukturierung einer verteilten Computeranwendung in dieser Weise kann die erforderliche Speicherplatzgröße des Client-Computers 22 minimiert werden.
  • Der Server 10 kann ebenfalls ein oder mehrere Pakete in den Datenstrom einfügen, die ein oder mehrere Datenmodule enthalten. Die Datenmodule enthalten Daten, die von dem ausführbaren Code in dem Codemodul verarbeitet werden sollen. Vor oder während der Ausführung des Codes von einem zuvor ausgeblendeten Codemodul kann der Client-Computer 22 möglicherweise Zugriff auf die Daten in dem Datenmodul oder in den Datenmodulen anfordern. Falls dies der Fall ist, überwacht der Client-Computer 22 den Datenstrom in Bezug auf das erforderliche Datenmodul oder die erforderlichen Datenmodule. Wenn Pakete, die das Datenmodul oder die Datenmodule (oder Abschnitte des Datenmoduls oder der Datenmodule) enthalten, in dem Datenstrom vorhanden sind, werden sie ausgeblendet und der Inhalt im Hauptspeicher des Client-Computers 22 gespeichert. Wenn alle erforderlichen Datenmodule vollständig empfangen wurden, beginnt der Client-Computer 22 mit der Ausführung des Codes von dem Codemodul oder er fährt mit der Ausführung fort, um die Daten von dem empfangenen Datenmodul oder den empfangenen Datenmodulen zu verarbeiten. Wie im Fall der Codemodule ist es möglich, dass mehr als ein Datenmodul im Speicher gespeichert wird, wenn im Client-Computer 22 ausreichend Speicherplatz vorhanden ist.
  • Der Server 10 kann weiterhin wiederholt ein oder mehrere Pakete in den Datenstrom einfügen, die ein Verzeichnis der Code- und Datenmodule, die gegenwärtig im Datenstrom enthalten sind, enthalten. Das Verzeichnis enthält eine Liste aller Code- und Datenmodule, die in dem Datenstrom vorhanden sind, sowie Informationen über diese Module. Wenn ein Verzeichnis in dem Datenstrom vorhanden ist, überwacht der Client-Computer 22 den Datenstrom in Bezug auf das Verzeichnis, bevor er Code- oder Datenmodule aus dem Datenstrom ausblendet. Wenn Pakete, die das Verzeichnis (oder Abschnitte des Verzeichnisses) enthalten, in dem Datenstrom vorhanden sind, werden sie ausgeblendet und ihre Daten im Hauptspeicher des Client-Computers 22 gespeichert. Wenn das Verzeichnis vollständig empfangen wurde, bewertet der Client-Computer 22 die Einträge im Verzeichnis und fordert daraufhin das erste Code- und/oder Datenmodul von dem Datenstrom an, und die Ausführung fährt wie oben beschrieben fort.
  • Jeder Client-Computer 20 kann an der verteilten Computerfunktion, die durch den Paketstrom dargestellt ist, jederzeit teilnehmen und jeder Client-Computer 20 kann im Allgemeinen als Reaktion auf den Benutzer 80 mit seiner eigenen Geschwindigkeit betrieben werden. Um dies zu ermöglichen, ordnet der Server 10 wiederholt das Verzeichnis und alle Code- und Datenmodule, die die Client-Computer 20 benötigen könnten, um ihren Abschnitt der verteilten Computerfunktion auszuführen, in dem Datenstrom des Transportmechanismus 30 an.
  • Immer wenn einer der Client-Computer 20 an der verteilten Computerfunktion teilnimmt, überwacht erden neu ausgewählten Paketstrom auf dem Transportmechanismus 30 in Bezug auf das Verzeichnismodul, blendet es aus und verarbeitet es wie oben beschrieben. Immer wenn einer der Client-Computer 20 das neue Code- und/oder Datenmodul benötigt, überwacht er während der Ausführung den Datenstrom auf dem Transportmechanismus 30 in Bezug auf das neue benötigte Code- und/oder Datenmodul, blendet es aus und führt es entweder aus, wenn es ein Codemodul ist, oder er verarbeitet es, wenn es ein Datenmodul ist, wie oben beschrieben.
  • Der Paketdatenstrom kann ebenfalls Hilfsdatenpakete enthalten. Diese Daten werden vom Client-Computer 22 nicht für die Ausführung des Codes benötigt, obwohl sie mit der Ausführung in Zusammenhang stehen können, weil der Benutzer 80 möglicherweise basierend auf den empfangenen Hilfsdaten mit dem auf dem Client-Computer 22 ausgeführten Programm kommuniziert. Der Datenstromempfänger im Client-Computer 22 erkennt die Hilfsdatenpakete im Datenstrom auf dem Transportmechanismus 30 und sendet sie direkt zum Hilfsdatenprozessor 50. Der Hilfsdatenprozessor 50 verarbeitet seine Pakete unabhängig vom Client-Computer 22. Wenn die Hilfsdaten dem Benutzer 80 angezeigt werden müssen, kann der Hilfsdatenprozessor 50 seine eigene Anzeigevorrichtung (nicht gezeigt) bereitstellen, die gemeinsam mit dem Client-Computer 22 genutzt werden kann, oder die Anzeigevorrichtung (nicht gezeigt), die zum Client-Computer 22 gehört, kann mit dem Hilfsdatenprozessor 50 gemeinsam genutzt werden, um dem Benutzer 80 eine einzelne Informationsanzeige bereitzustellen. Der Hilfsdatenprozessor 50 kann über Verknüpfungen zu anderen veranschaulichten Elementen (nicht gezeigt) verfügen, jedoch ist dies vom Datentyp abhängig.
  • Bei einem interaktiven TV-System umfassen die Hilfsdaten beispielsweise die Video- und Audioanteile des zugrundeliegenden Fernsehsignals. Beispielsweise würden die Hilfsdaten Videopakete, die MPEG oder MPEG-ähnliche Daten enthalten, codierte Daten, die das Fernsehbild darstellen, und Audiopakete, die digital codierte Audiodaten enthalten, umfassen. Des Weiteren können möglicherweise mehrere unterschiedliche Audiopaketströme vorhanden sein, die die jeweiligen Audiokanäle für Stereo, ein zweites Audioprogramm (SAP) oder eine Mehrsprachenfunktion tragen. Bei einem Hilfsdatenprozessor 50 in einem solchen System würden die Videopakete einem bekannten MPEG-Decodierer (oder einem ähnlichen Decodierer) (nicht gezeigt) bereitgestellt, der Standard-Videosignale erzeugen würde, die einem Fernsehempfänger oder Videomonitor (nicht gezeigt) bereitgestellt würden. Die Audiopakete würden einem bekannten Audio-Decodierer (nicht gezeigt) bereitgestellt, der Standard-Audiosignale fair den Fernsehempfänger oder Lautsprecher (nicht gezeigt) erzeugen würde.
  • Bei einem solchen interaktiven TV-System kann der Client-Computer 22 als Reaktion auf die Ausführung des ausführbaren Codemoduls grafische Anzeigen erzeugen, um dem Benutzer 80 Informationen bereitzustellen.
  • Diese grafischen Anzeigen können mit dem Standard-Videosignal von dem MPEG-Decodierer in bekannter Weise kombiniert werden und das kombinierte Bild kann auf dem Fernsehempfänger oder Videomonitor angezeigt werden. Der Client-Computer 22 kann ebenfalls Klänge erzeugen, um dem Zuschauer andere Informationen zu bieten. Die erzeugten Klänge können in bekannter Weise mit den Standard-Audiosignalen von dem Audio-Decodierer kombiniert werden und der kombinierte Klang kann über den Fernsehempfänger oder die Lautsprecher wiedergegeben werden.
  • Des Weiteren können Zeitcodedaten entweder im Fernsehhilfspaketdatenstrom oder im Paketdatenstrom, der die interaktive TV-Anwendung darstellt, oder in beiden Strömen enthalten sein. Dies ermöglicht die Synchronisation von Grafikbildern oder Klängen, die vom Client-Computer 22 erzeugt werden, mit dem Fernsehsignal von den Hilfsdaten. In diesem Fall hat der Client-Computer 22 Zugriff auf die Zeitcodedaten und steuert die Erzeugung des Grafikbildes und/oder des Klanges, die zur gewünschten Zeit gemäß der Bereitstellung von den Zeitcodedaten stattfinden sollen.
  • Bei einem solchen interaktiven TV-System können sowohl der Client-Computer 22 als auch der Hilfsdatenprozessor 50 in einem einzelnen Gehäuse, wie beispielsweise einem Fernsehempfänger oder einem Fernsehaufsatz-Decodierer, enthalten sein. Ein Fernsehempfänger oder ein Decodierer würde Anschlüsse zum Anschließen an einen lokalen Computer oder eine andere Ausrüstung umfassen.
  • Der Benutzer 80 stellt dem Programm, das auf dem Client-Computer 22 ausgeführt wird, während dessen Ausführung Eingaben bereit. Diese Daten können für den Server 10 erforderlich sein, um die verteilte Computerfunktion durchzuführen. Bei einem interaktiven TV-System kann der Benutzer 80 dem Client-Computer beispielsweise über eine Handfernbedienungseinheit Eingaben bereitstellen.
  • Die Benutzerdaten werden über die Zentralverarbeitungseinrichtung 60 zum Server-Computer 10 übertragen. Bei einer Ausführungsform werden Daten von den Client-Computern 20 über Modems durch das Telefonsystem, das als Zentralverarbeitungseinrichtung 60 dient, zum Server-Computer 10 gesendet. Der Server-Computer 10 empfängt und verarbeitet die Daten, die er von den Client-Computern 20 während der Ausführung seines Teils der verteilten Computerfunktion empfangen hat.
  • Der Server-Computer 10 kann in einer Weise, die unten beschrieben wird, basierend auf den empfangenen Daten neue Code- und/oder Datenmodule in dem Datenstrom auf dem Transportmechanismus 30 erzeugen oder bestehende Code- und/oder Datenmodule modifizieren. Alternativ kann der Server-Computer 10 in der anderen Richtung durch die Zentralverarbeitungseinrichtung 60 unmittelbar Informationen zu den Client-Computern 20 zurückleiten. Die Informationen in neu erzeugten Code- und/oder Datenmodulen werden von allen Client-Computern 20, die an der verteilten Computerfunktion teilnehmen, verarbeitet, während Informationen, die vom Server-Computer 10 durch die Zentralverarbeitungseinrichtung 60 zu den Client-Computern 20 geleitet werden, spezifisch mit dem Client-Computer 22, 24, 26, zu dem die Informationen gesendet wurden, in Bezug stehen.
  • Bei einer anderen Ausführungsform kann die Zentralverarbeitungseinrichtung 60 ihr eigenes Computersystem umfassen, das separat mit Hilfe eines Modems durch das Telefonsystem sowohl mit den Client-Computern 20 als auch dem Server-Computer 10 verbunden ist. In beiden oben genannten Ausführungsformen stellt die Zentralcomputereinrichtung 60 über das Telefonsystem Zugriff auf andere Computer oder Verarbeitungseinrichtungen (nicht gezeigt) bereit. Wenn Informationen von anderen Computersystemen benötigt werden, um die verteilte Computerfunktion durchzuführen, kann somit über Modem durch das Telefonsystem entweder mit Hilfe der Client-Computer 20 oder des Server-Computers 10 auf diese Computersysteme zugegriffen werden.
  • Ein Eingabe-Ausgabe-Anschluss (E-A-Anschluss) am Client-Computer 22 ist mit einem entsprechenden Anschluss am lokalen Computer 40 gekoppelt. Der lokale Computer 40 ist zusammen mit dem Client-Computer 22 angeordnet. Der lokale Computer 40 kann ein PC sein, der vom Benutzer 80 des Client-Computers 22 benutzt wird, oder er kann ein größerer Computer oder ein Computernetz sein, das am selben Ort wie der Client-Computer 22 angeordnet ist. Dies ermöglicht dem Client-Computer 22, auf Daten in dem angeschlossenen Massenspeicher 70 des PCs oder eines Computers im Netz, der am Ort des Client-Computers 22 angeordnet ist, zuzugreifen. Zusätzlich kann der Client-Computer 22 den Massenspeicher 70 des lokalen Computers 40 zur Speicherung von Daten, die später abgerufen werden sollen, verwenden. Es ist wahrscheinlich, dass der lokale Computer 40 sowohl eine Ausgabevorrichtung (nicht gezeigt), wie beispielsweise einen Computermonitor, als auch eine Eingabevorrichtung (ebenfalls nicht gezeigt), wie beispielsweise eine Computertastatur, umfasst. Beide Vorrichtungen können wie oben beschrieben gemeinsam von dem Client-Computer 22 und/oder dem Hilfsdatenprozessor 50 genutzt werden.
  • Beispielsweise kann das verteilte Computersystem, das in 1 veranschaulicht ist, Teil eines ausgedehnten Firmen-Computersystems sein und der Server 10 kann an einer zentralen Stelle der Firma angeordnet sein. Der Client-Computer 22 kann an einer entfernten Stelle angeordnet sein und der lokale Computer 40 kann mit dem PC-Netz an dieser Stelle gekoppelt sein. Angestellte an dieser Stelle können gemeinsam genutzte Daten (z.B. finanzielle Informationen) in dem Server, der mit dem Netz verbunden ist, speichern. Die verteilte Computerfunktion kann Folgendes umfassen: Sammeln von lokalen finanziellen Daten von den Client-Computern an den entfernt gelegenen Stellen, Verarbeitung der finanziellen Daten und Zurücksenden der finanziellen Gesamtergebnisse zu den Client-Computern. Bei einer solchen Anwendung greift der ausführbare Code, der auf dem Client-Computer 22 ausgeführt wird, durch den E-A-Anschluss auf die Daten vom lokalen Computer 40 zu (entweder von seinem angeschlossenen Massenspeicher 70 oder durch das Netz) und sendet sie durch die Zentralverarbeitungseinrichtung 60 zum Server-Computer 10.
  • Der Server-Computer 10 fährt mit seiner Verarbeitung fort, die auf den Informationen basiert, die vom Client-Computer 22 (und anderen Client-Computern 20) empfangen werden, und sendet die Ergebnisse dieser Verarbeitung entweder durch die Zentralverarbeitungseinrichtung 60 oder über den Datenstrom auf dem Transportmechanismus 30 zu den Client-Computern 20 zurück.
  • In einem anderen Beispiel kann das verteilte Computersystem ein interaktives Fernsehsystem sein, das eine Heimeinkauf-Show als verteilte Computeranwendung sendet. In einem solchen Fall tragen die Hilfsdaten den Video- und Audioanteil des Fernsehsignals, der die Artikel, die zum Kauf angeboten werden, zeigt und beschreibt, und können sowohl Live-Schauspieler sowie überlagerte Grafiken, die im zentralen Studio erzeugt werden, umfassen. Code- und Datenmodule, die die interaktive Fernsehanwendung darstellen, können in der unten gezeigten Weise Daten über die Produkte, die während dieser Show zum Verkauf angeboten werden, oder einen Teil der Show sowie ausführbaren Code zur Kommunikation mit dem Benutzer umfassen.
  • Wenn ein Zuschauer einen Artikel bestellen möchte, wird auf der Fernsehfernbedienung ein Knopf gedrückt. Dieser Knopf signalisiert dem Client-Computer 22, eine Rehe von Befehlen und Menüs anzuzeigen, die für die Anforderung der Informationen nötig sind, die für die Aufgabe der Bestellung nötig sind, z.B. die Artikelnummer, Name und Adresse des Zuschauers, Zahlungsweise, Kreditkartennummer (falls nötig) usw. Diese Informationen werden im Client-Computer als Grafiken erzeugt, die das Fernsehvideobild überlagern. Es kann auch eine vom Computer erzeugte Stimme erzeugt werden und mit dem Fernsehaudiosignal kombiniert werden, entweder durch Stimmüberlagerung oder durch Ersetzen des Fernsehaudiosignals. Der Zuschauer reagiert auf den Befehl, indem er die angeforderten Informationen über die Fernsehfernbedienung bereitstellt. Wenn die Informationen, die von der Anzeige auf dem Bildschirm und/oder den Stimmanweisungen angefordert wurden, vom Zuschauer eingegeben wurden, werden sie über das Modem, das sich in dem Client-Computer befindet, zu einem zentralen Computer gesendet. Es kann eine Bestellbestätigung vom Zentralcomputer in die andere Richtung gesendet werden.
  • Es ist ebenfalls möglich, dass permanente Informationen über den Zuschauer (d.h. Name, Adresse, Zahlungsweise und Kreditkartennummer) vom Zuschauer nur einmal im Voraus eingegeben werden, so dass es nicht nötig ist, diese Informationen jedes Mal anzufordern, wenn eine Bestellung aufgegeben wird. Die Informationen werden in einem permanenten Speicher im Client-Computer gespeichert. Wenn eine Bestellung aufgegeben wird, werden diese Informationen in einem solchen Fall aus dem permanenten Speicher abgerufen, der Artikelnummer hinzugefügt und zum Zentralcomputer übertragen. Es ist des Weiteren mit Hilfe von Zeitcodes oder anderen Befehlen, die in den Datenstrom eingefügt werden, möglich, dass der Client-Computer weiß, welcher Artikel gegenwärtig zum Verkauf angeboten wird. In einem solchen Fall ist der Zuschauer in der Lage, diesen zu bestellen, indem er einfach einen Knopf auf der Fernsehfernbedienung drückt. Als Reaktion kann der Client-Computer die zuvor empfangenen Informationen, die zu dem Artikel in Bezug stehen, der gegenwärtig zum Verkauf angeboten wird, mit den zuvor gespeicherten persönlichen Informationen hinsichtlich des Zuschauers kombinieren, die Bestellung zum Zentralcomputer senden und die Bestätigung als Antwort erhalten.
  • Da die Code- und Datenmodule, die mit dem Heimeinkaufsprogramm in Bezug stehen, wiederholt in den Datenstrom eingefügt werden, kann ein Zuschauer das Programm jederzeit wählen und ist in der Lage, interaktiv teilzunehmen. Entsprechend ist es nicht nötig, dass der Zuschauer interaktiv teilnimmt, sondern er kann den interaktiven Teil der Show einfach ignorieren.
  • Es ist ebenfalls möglich, dass der Client-Computer 22 Steuerinformationen von dem lokalen Computer 40 empfangt. Beispielsweise könnte der Benutzer 80, der den lokalen Computer 40 verwendet, den Client-Computer 22 über den E-A-Anschluss so steuern, dass dieser einen gewünschten Datenstrom der Datenströme auf dem Transportmechanismus 30 auswählt und das Programm, das gegenwärtig auf dem Datenstrom gesendet wird, verarbeitet, wobei durch die Eingabe- und Ausgabevorrichtungen (nicht gezeigt), die mit dem lokalen Computer 40 verbunden sind, mit dem Benutzer 80 kommuniziert wird.
  • Der Benutzer 80 kann des Weiteren den Client-Computer 22 veranlassen, anstatt über den Datenstrom auf dem Transportmechanismus 30 über die Zentralverarbeitungseinrichtung 60 auf den Server-Computer 10 zuzugreifen und Code- und Datenmodule über diese bidirektionale Verknüpfung zu empfangen.
  • 2 ist ein Blockdiagramm, das einen Server-Computer 10, wie in 1 veranschaulicht, darstellt. In 2 umfasst eine Quelle von verteiltem Computeranwendungscode und verteilten Computeranwendungsdaten 101 einen Anwendungskompilierer und ein Software-Managementmodul (nicht gezeigt) und verfügt über eine Ausgangsklemme, die mit einer Eingangsklemme eines Datenflussaufstellers 102 gekoppelt ist. Eine Ausgangsklemme des Datenflussaufstellers 102 ist mit einer Eingangsklemme einer Transportpaketiervorrichtung 104 gekoppelt. Eine Ausgangsklemme der Transportpaketiervorrichtung 104 ist mit einer ersten Eingangsklemme eines Paketmultiplexers 106 gekoppelt. Eine Ausgangsklemme des Paketmultiplexers 106 ist mit einer Eingangsklemme eines Transportmultiplexers 110 gekoppelt. Eine Ausgangsklemme des Transportmultiplexers 110 ist mit dem physikalischen Medium gekoppelt, das den Transportmechanismus 30 (aus 1) bildet. Eine zweite Eingangsklemme des Paketmultiplexers 106 ist mit einer Quelle von Hilfsdatenpaketen 107 gekoppelt. Ein Taktgeber 109 weist jeweilige Ausgangsklemmen auf, die mit entsprechenden Eingangsklemmen der Transportpaketiervorrichtung 104 und der Hilfsdatenquelle 107 gekoppelt sind. Ein Datensendeempfänger 103 weist eine erste bidirektionale Klemme, die mit der Zentralverarbeitungseinrichtung 60 (aus 1) gekoppelt ist, und zweite bidirektionale Daten auf, die mit der Anwendungscode- und -datenquelle 101 gekoppelt sind.
  • Die Anwendungscode- und -datenquelle 101, der Datenflussaufsteller 102, die Transportpaketiervorrichtung 104, die Hilfsdatenquelle 107, der Taktgeber 109 und der Paketmultiplexer 106 bilden in Kombination eine Kanalquelle 108 für den Transportmechanismus, der durch einen gestrichelten Kasten veranschaulicht ist. Andere Kanalquellen, einschließlich ähnlicher Komponenten wie die in der Kanalquelle 108, die jedoch in 1 nicht gezeigt sind, sind durch einen anderen gestrichelten Kasten 108a dargestellt. Die anderen Kanalquellen 108a weisen Ausgangsklemmen auf, die mit anderen Eingangsklemmen des Transportmultiplexers 110 gekoppelt sind, und können Eingangsklemmen aufweisen, die durch Datensendeempfänger mit den Zentralverarbeitungseinrichtungen gekoppelt sind.
  • Bei Betrieb werden Daten, die das verteilte Computeranwendungsprogramm darstellen, und Daten, die auf die Übertragung des Programms über den Transportmechanismus 30 bezogen sind, dem Flussaufsteller 102 von der Anwendungsquelle 101 zugestellt. Diese Daten können entweder in Form von Dateien, die Daten enthalten, die die Code- und Datenmodule darstellen, oder durch Skripts zugestellt werden, die Informationen, wie die Code- und Datenmodule zu konstruieren sind, und andere derartige Informationen bereitstellen. Die Code- und Datenmodule können konstant sein oder sich dynamisch verändern, basierend auf Eingaben, die von den Client-Computern 20 über die zentrale Computereinrichtung 60 und/oder andere Quellen empfangen werden. Die ausführbaren Code- und Datenmoduldateien können von einem Kompilierer, Interpretierer oder Assembler in einer bekannten Weise als Reaktion auf Quellsprachenprogrammierung von einem Anwendungsprogrammierer erzeugt werden. Die Datendatei, die die Übertragung der Module betrifft, enthält Informationen wie beispielsweise die gewünschten Wiederholungsgeschwindigkeiten für das Verzeichnis und die Code- und Datenmodule, die in den Datenstrom eingeschlossen werden sollen; die Größe des Hauptspeichers in den Client-Computern 20, die zur Speicherung jedes Moduls und zur vollständigen Ausführung des Anwendungsprogramms erforderlich ist; ein Prioritätsniveau für das Modul, wenn es ein Modul ist, usw.
  • Der Datenflussaufsteller 102 verarbeitet die Daten aus der Anwendungsquelle 101. Als Reaktion darauf konstruiert der Datenflussaufsteller 102 ein Verzeichnismodul, das ein Gesamtbild des Anwendungsprogramms ergibt. Die Informationen in dem Verzeichnismodul umfassen z.B. die Identifikation sämtlicher Code- und Datenmodule, die wiederholt in dem Datenstrom gesendet werden, ihre Größe und möglicherweise andere Informationen, die diese Module betreffen. Daraufhin werden die für das Anwendungsprogramm repräsentativen Daten verarbeitet, um die Code- und Datenmodule zu erzeugen. Das Verzeichnis und die Code- und Datenmodule, die so konstruiert sind, werden formatiert, indem Modulanfangsblöcke und Fehlererfassungs- und/oder Korrekturcode zu jedem Modul hinzugefügt werden. Ebenfalls wird ein Sendeplan erzeugt. Nachdem diese Verarbeitung abgeschlossen ist, werden die Daten, die das Verzeichnismodul darstellen, und die Code- und Datenmodule gemäß dem zuvor erzeugten Plan wiederholt der Transportpaketiervorrichtung 104 bereitgestellt.
  • Die Transportpaketiervorrichtung 104 erzeugt einen Strom von Paketen, die das Verzeichnismodul und die Code- und Datenmodule darstellen, wenn sie von dem Datenflussaufsteller 102 ausgesendet werden. Jedes Paket weist eine konstante vorherbestimmte Länge auf und wird erzeugt, indem der Datenstrom von dem Datenflussaufsteller in Gruppen von Bits unterteilt und ein Paketanfangsblock mit Informationen, die die Informationen identifizieren, die in dem Paket enthalten sind, und ein Fehlererfassungs- und/oder Korrekturcode usw. zu jeder Gruppe hinzugefügt werden, so dass jedes Paket dieselbe vorherbestimmte Länge aufweist. (Wenn nicht genügend Daten von dem Datenflussaufsteller 102 vorliegen, um ein Paket vollständig zu füllen, wird das Paket mit Leerdaten aufgefüllt.) Diese Pakete werden in einer bekannten Weise mit den Hilfsdatenpaketen zeitmultiplexiert, um einen einzigen Paketstrom in dem Paketmultiplexer 106 zu bilden. Es ist ebenfalls möglich, dass die erzeugten Pakete variierende Längen aufweisen. In diesem Fall enthält der Paketanfangsblock für jedes Paket die Länge dieses Pakets. Zusätzlich werden basierend auf Daten, die vom Taktgeber 109 empfangen werden, Zeitcodedatenpakete in den Datenstrompaketen und/oder den Hilfsdatenpaketen angeordnet.
  • Paketströme aus sämtlichen Kanalquellen (108, 108a) werden zu einem einzigen Transportkanal multiplexiert, der durch den Transportmechanismus 30 übertragen wird. Wie oben beschrieben können die Paketströme frequenzmultiplexiert sein, indem jeder Paketstrom ein Trägersignal bei einer unterschiedlichen Frequenz moduliert, wobei alle Träger in einer bekannten Weise durch eine Satellitenverknüpfung zu den Client-Computern 20 befördert werden. Wenn ausreichend Kapazität in einem Trägerkanal vorhanden ist, können zudem mehrere Paketströme, ebenfalls in einer bekannten Weise, statistisch zeitmultiplexiert und zur Modulation eines einzelnen Trägers verwendet werden. Zum Beispiel ist vorgeschlagen worden, bis zu acht interaktive Fernsehdatenströme durch eine einzige Satellitenverknüpfung zu multiplexieren.
  • Es werden Daten aus den Client-Computern 20 über die Zentralverarbeitungseinrichtung 60 (aus 1) von dem Datensendeempfänger 103 am Server-Computer empfangen, der seinen eigenen Prozessor (nicht gezeigt) umfassen kann. Wenn eine unmittelbare Reaktion erzeugt wird, gibt der Prozessor des Sendeempfängers 103 diese Reaktion über die Zentralverarbeitungseinrichtung 60 an einen spezifischen Client-Computer (2226), einen spezifischen Satz der Client-Computer 20 oder an sämtliche Client-Computer 20 ihrerseits zurück. Wenn jedoch eine gemeinsame Antwort an alle Client-Computer 20 gewünscht ist, kann der Anwendungsprogrammierer die Code- und Datendateien in der Anwendungscode- und Datenquelle 101 unter Verwendung des Anwendungskompilierers abwandeln. Diese abgeänderten Dateien werden daraufhin von dem Datenflussaufsteller verarbeitet, um wiederum einen anderen Strom zu erzeugen. Es ist des Weiteren möglich, die Code- und Datendateien in der Anwendungsquelle 101 als Reaktion auf Daten, die vom Sendeempfänger 103 empfangen werden, automatisch und dynamisch (d.h. in Echtzeit) abzuwandeln und den Strom zu aktualisieren, wenn die Daten von den Client-Computern 20 empfangen werden.
  • 3 ist ein Zeitablaufplan, der die Datenströme veranschaulicht, die von dem Server-Computer 10 in einem verteilten Computersystem erzeugt werden, wie in 1 veranschaulicht. In 3 ist der Server-Computer 10 gezeigt, wie er gleichzeitig eine Vielzahl von Paketströmen 3238 erzeugt. Jeder Paketstrom (3238) ist als ein horizontales Band gezeigt, das in Pakete mit derselben Dauer und Anzahl von Bits unterteilt ist. Wie oben beschrieben ist es möglich, dass die Größe der Pakete innerhalb jedes Paketstroms mit der Menge an zu befördernden Daten variiert. Aus 3 ist ersichtlich, dass die Startzeiten der Pakete nicht synchronisiert sind. Es ist möglich, die Pakete zu synchronisieren, jedoch ist es nicht notwendig. In 3 sind Pakete, die Daten befördern, die Verzeichnisse darstellen, mit DIR bezeichnet, Pakete, die Daten befördern, die Codemodule darstellen, sind mit CM bezeichnet, Pakete, die Daten befördern, die Datenmodule darstellen, sind mit DM bezeichnet, und Pakete, die Hilfsdaten befördern, sind mit AUX bezeichnet.
  • In der oberen Reihe der Pakete 32 enthält das Paket, das sich ganz links befindet, Daten, die ein Codemodul CM darstellen. Dies wird gefolgt von drei Paketen, die Hilfsdaten AUX enthalten, gefolgt von einem anderen Paket, das Daten enthält, die das Codemodul CM darstellen. Aus der Reihe von Paketen 32 ist ersichtlich, dass das Codemodul wiederholt erzeugt wird. Es können mehr oder weniger Pakete zwischen aufeinanderfolgenden Wiederholungen des Codemodulpakets CM vorliegen. Die Wiederholungsgeschwindigkeit kann vom Programmierer spezifiziert werden, wenn die Anwendung programmiert wird, und kann während der Ausführung der Anwendung variiert werden.
  • In der nächsten Reihe von Paketen 34 enthält das Paket, das sich ganz links befindet, Hilfsdaten AUX. Die nächsten beiden Pakete enthalten entsprechende Abschnitte eines Codemoduls (CM1, CM2). Das letzte Paket enthalt Hilfsdaten AUX. Aus der Reihe von Paketen 34 ist ersichtlich, dass ein Codemodul, wenn es zu groß ist, um in einem einzigen Paket enthalten zu sein, von mehr als einem Paket befördert werden kann, wobei jedes Paket einen Abschnitt des Codemoduls enthält. Obwohl die Reihe von Paketen 34 derart veranschaulich ist, dass zwei Pakete in der Reihe von Paketen 34 das Codemodul (CM1, CM2) enthalten, kann abhängig von dessen Größe jede Anzahl von Paketen verwendet werden, um das Codemodul zu befördern. Die beiden Pakete, die das Codemodul (CM1, CM2) befördern, werden in der Reihe von Paketen 34 wiederholt gesendet (nicht gezeigt), wie oben beschrieben.
  • In der Reihe von Paketen 36 enthält das Paket, das sich ganz links befindet, Daten, die ein Codemodul (CM) darstellen. Das nächste Paket (DM1) ist ein erstes Paket, das Daten enthält, die ein Datenmodul darstellen. Das nächste Paket enthält Hilfsdaten AUX. Das nächste Paket (DM2) ist ein zweites Paket, das die restlichen Daten enthält, die das Datenmodul darstellen. Aus der Reihe von Paketen 36 ist ersichtlich, dass ein Datenmodul (DM1, DM2), das zu dem Codemodul (CM) gehört, ebenfalls in dem Paketstrom enthalten sein kann. Sowohl das Codemodul (CM) als auch das Datenmodul (DM1, DM2) werden wiederholt in der Reihe von Paketen 36 gesendet (nicht gezeigt). Die Wiederholungsgeschwindigkeit des Codemoduls (CM) kann sich von der des Datenmoduls (DM1, DM2) unterscheiden und beide Geschwindigkeiten können von dem Anwendungsprogrammierer spezifziert und während der Ausführung der Anwendung variiert werden.
  • Des Weiteren ist ersichtlich, dass das Datenmodul, wenn es zu groß ist, um in einem einzigen Paket enthalten zu sein, von mehr als einem Paket befördert werden kann, wobei jedes Paket einen Abschnitt des Datenmoduls enthält. Obwohl die Reihe von Paketen derart veranschaulicht ist, dass zwei Pakete in der Reihe von Paketen 36 das Datenmodul (DM1, DM2) enthalten, kann abhängig von dessen Größe jede Anzahl von Paketen verwendet werden, um das Datenmodul zu befördern. Des Weiteren ist ersichtlich, dass die Pakete, die das Datenmodul befördern, nicht sequenziell befördert zu werden brauchen, sondern teilnehmende Pakete in dem Paketstrom aufweisen können. Dasselbe gilt für mehrere Pakete, die ein Codemodul oder ein Verzeichnismodul (nicht gezeigt) befördern.
  • In der untersten Reihe von Paketen 38 enthält das Paket, das sich ganz links befindet, Daten, die das Verzeichnis (DIR) darstellen. Das nächste Paket enthält Daten, die ein Codemodul (CM) darstellen, gefolgt von einem Paket, das Hilfsdaten (AUX) enthält, und einem Paket, das Daten enthält, die ein Datenmodul (DM) darstellen. In der Reihe von Paketen 38 sind sowohl ein Verzeichnismodul (DIR), ein Codemodul (CM) als auch ein Datenmodul (DM) in einem einzigen Paketstrom zu sehen. Die jeweiligen Wiederholungsgeschwindigkeiten dieser drei Module können verschieden sein, wie von dem Programmierer der Anwendung spezifiziert, und sie können während der Ausführung der Anwendung variiert werden.
  • 4 ist ein Blockdiagramm eines Client-Computers 22, wie in 1 veranschaulicht. In 4 ist der Transportmechanismus 30 (aus 1) mit einer Eingangsklemme eines Stromselektors 202 gekoppelt. Eine Ausgangsklemme des Stromselektors 202 ist mit entsprechenden Eingangsklemmen eines Hilfsdatenausblenders 204 und eines Paketdatenausblenders 206 gekoppelt. Eine Ausgangsklemme des Hilfsdatenausblenders 204 ist mit dem Hilfsdatenprozessor 50 (aus 1) gekoppelt. Eine bidirektionale Klemme des Paketdatenausblenders 206 ist mit einer entsprechenden Klemme eines E-A-Stromadapters 208 gekoppelt. Eine Steuerausgangsklemme des E-A-Stromadapters 208 ist mit einer entsprechenden Steuereingangsklemme des Stromselektors 202 gekoppelt. Die Kombination aus Stromselektor 202, Hilfsdatenausblender 204 und Paketdatenausblender 206 bildet einen Datenstromempfänger 207 für den Client-Computer 22, der durch eine gestrichelte Linie in 4 veranschaulicht ist.
  • Der E-A-Stromadapter 208 bildet einen Teil einer Verarbeitungseinheit 224 im Client-Computer 22, wie durch eine gestrichelte Linie in 4 veranschaulicht. Zusätzlich zu dem E-A-Stromadapter 208 umfasst die Verarbeitungseinheit 224 einen Prozessor 210, einen Schreib-Lesespeicher (RAM) 212 und einen Festwertspeicher (ROM) 214, die in einer bekannten Weise über einen Systembus 216 aneinander gekoppelt sind. Es sind weitere Eingabe- und Ausgabeeinrichtungen bereitgestellt, und zwar durch einen E-A-Anschluss 218, der mit dem örtlichen Prozessor 40 (aus 1) gekoppelt ist; einen E-A-Adapter 220 zur Kommunikation mit dem Benutzer 80; und ein Modem 222, das mit der Zentralverarbeitungseinrichtung 60 (aus 1) gekoppelt ist; alle diese sind in einer bekannten Weise ebenfalls mit dem Systembus 216 gekoppelt. Andere Adapter (nicht gezeigt) können mit dem Systembus 216 gekoppelt sein, um der Verarbeitungseinheit 224 andere Fähigkeiten bereitzustellen.
  • Wie oben beschrieben, sind der Hilfsdatenausblender 204, der E-A-Anschluss 218 und das Modem 222 in einem Client-Computer 20 gemäß der vorliegenden Erfindung nicht erforderlich. Sie sind in 1 und 4 veranschaulicht, um eine optionale zusätzliche Funktionalität zu zeigen.
  • Bei Betrieb ruft der Prozessor 210 der Verarbeitungseinheit 224 Programmanweisungen ab, die dauerhaft im ROM 214 oder vorübergehend im RAM 212 gespeichert sind und führt die abgerufenen Anweisungen aus, um Daten aus dem ROM 212 und/oder dem RAM 214 zu lesen, Daten in den RAM 212 zu schreiben und/oder Daten über den E-A-Anschluss 218, den Benutzer-E-A-Adapter 220 und/oder das Modem 222 in einer bekannten Weise aus außerhalb liegenden Quellen abzurufen oder diesen zuzustellen. Unter Programmsteuerung kann der Prozessor 210 ebenfalls ein Code- und/oder Datenmodul aus dem Datenstrom, der dem Client-Computer 22 über den Transportmechanismus 30 (aus 1) zugestellt wird, anfordern. Um diese Daten abzurufen, weist der Prozessor 210 zuerst den E-A-Stromadapter 208 an, möglicherweise als Reaktion auf eine Benutzereingabe vom Benutzer-E-A-Adapter 220 ein Auswahlsteuersignal zum Stromselektor 202 zu senden. Daraufhin gibt der Prozessor 210 eine Anfrage für ein spezifisches Code- oder Datenmodul an den E-A-Stromadapter 208 aus. Der E-A-Stromadapter 208 leitet diese Anfrage an den Paketdatenausblender 204 weiter.
  • Der Transportmechanismus 30 (aus 1) führt die gesamte Vielzahl von Paketströmen (3238 aus 3), die er befördert, dem Stromselektor 202 zu, der nur den ausgewählten Paketstrom weiterleitet. Der Hilfsdatenausblender 204 überwacht den ausgewählten Paketstrom, extrahiert die Hilfsdatenpakete daraus und stellt sie direkt dem Hilfsdatenprozessor 50 (aus 1) zur Verfügung. Der Paketdatenausblender 206 überwacht ebenso den ausgewählten Paketstrom, extrahiert die Verzeichnis-, Code- und/oder Datenmodulpakete, die vom E-A-Stromadapter 208 angefragt werden, und führt sie dem E-A-Stromadapter 208 zu. Die Daten in den Paketen, die zum E-A-Stromadapter 208 zurückgeführt werden, werden dem RAM 212 zur Verfügung gestellt. Wenn das gesamte Modul aus dem Paketstrom abgerufen worden ist (was mehrere Pakete erfordern kann, wie oben beschrieben), wird der Prozessor 210 von dem E-A-Stromadapter 208 über dessen Empfang benachrichtigt. Der Prozessor 210 kann daraufhin die Ausführung seines Programms fortsetzen.
  • Der Datenstrom in einem verteilten Computersystem, das in 1 veranschaulicht ist, entspricht einem Massenspeichersystem bei Systemen des Stands der Technik. Ein Anwendungsprogramm, das auf dem Prozessor 210 ausgeführt wird, macht in derselben Weise, wie ein derartiges Programm eine Anfrage für eine Datei machen würde, die ein Code- oder Datenmodul enthält, das bei einem System des Stands der Technik zuvor in einer Massenspeichervorrichtung gespeichert war, eine Anfrage für ein Modul, das im Verzeichnis aufgeführt ist. Der Datenstromempfänger 207 entspricht einer Massenspeichervorrichtung und der E-A-Stromadapter 208 wirkt in ähnlicher Weise auf einen Massenspeicheradapter bei einem System des Stands der Technik, indem er die gewünschten Daten auffindet, sie zu einem vorherbestimmten Ort (E-A-Puffer) im Systemspeicher sendet und den Prozessor über den Abschluss des Abrufs informiert. Jedoch kann der E-A-Stromadapter 208 nur Code und Daten aus dem Datenstrom abrufen; es können keine Daten in den Datenstrom geschrieben werden.
  • Wie oben beschrieben, kann die verteilte Computeranwendung in mehr als ein Codemodul unterteilt weiden, von denen jedes ausführbaren Code für einen anderen Abschnitt der verteilten Computeranwendung enthält. Wenn ein bestimmtes Codemodul gewünscht wird, fordert der Prozessor 210 das Codemodul vom E-A-Stromadapter 208 an. Wenn die Ausführung dieses Moduls abgeschlossen ist, fordert der Prozessor 210 das nächste Modul vom E-A-Stromadapter 208 an. Da Code- und Datenmodule wiederholt im Datenstrom befördert werden, kann ein Modul aus dem RAM 212 gelöscht werden, wenn es gegenwärtig nicht benötigt wird, ohne dass es vorübergehend gespeichert werden muss, denn wenn es später gewünscht wird, kann es, wenn es benötigt wird, wiederum aus dem Datenstrom abgerufen werden. Wenn jedoch der RAM 212 über eine ausreichende Kapazität verfügt, kann der Prozessor 210 das gleichzeitige Laden mehrerer Codemodule in den RAM 212 vom E-A-Stromadapter anfordern. Wenn dies erfolgen kann, dann kann der Prozessor 210 zwischen Codemodulen hin- und herschalten, ohne darauf zu warten, dass der E-A-Stromadapter 208 sie aus dem Datenstrom ausblendet.
  • Wie oben beschrieben, können andere E-A-Adapter in einer bekannten Weise mit dem Systembus 216 gekoppelt werden. Zum Beispiel kann in einem interaktiven TV-System ein Grafikadapter mit dem Systembus 216 gekoppelt werden. Der Grafikadapter erzeugt in bekannter Weise als Reaktion auf Anweisungen vom Prozessor 210 Signale, die grafische Bilder darstellen. Des Weiteren können diese Signale mit dem Standard-Videosignal kombiniert werden, das vom Video-Decodierer (oben beschrieben) in dem Hilfsdatenprozessor 50 eines interaktiven TV-Systems erzeugt wird. Wenn das für das grafische Bild repräsentative Signal und das Standard-Videosignal kombiniert werden, stellt das resultierende Signal ein Bild dar, bei dem das von dem Grafikadapter erzeugte Bild über das Bild gelegt wird, das von dem Fernseh-Videosignal dargestellt wird. Es ist ebenfalls möglich, diese beiden Signale, die das Bild darstellen, unter der Steuerung des Prozessors 210 wahlweise zu kombinieren.
  • Ein interaktives TV-System kann ebenfalls einen Audioadapter umfassen, der mit dem Systembus 216 gekoppelt ist. Der Audioadapter erzeugt in einer bekannten Weise als Reaktion auf Anweisungen vom Prozessor 210 ein Signal, das einen computererzeugten Klang (wie beispielsweise Musik, synthetisierte Stimme oder einen anderen Klang) darstellt. Des Weiteren können diese Signale mit dem Standard-Audiosignal kombiniert werden, das vom Audio-Decodierer (oben beschrieben) in dem Hilfsdatenprozessor 50 eines interaktiven TV-Systems erzeugt wird. Wenn das Signal, das den Klang darstellt und das Standard-Audiosignal kombiniert werden, stellt das resultierende Signal die Kombination aus dem von dem Audioadapter erzeugten Klang und dem Fernseh-Audiosignal dar. Es ist ebenfalls möglich, diese beiden Signale, die den Klang darstellen, unter der Steuerung des Prozessors 210 selektiv zu kombinieren.
  • Die zeitliche Abstimmung der Erzeugung und Anzeige des grafischen Bildsignals und des Signals, das den Klang darstellt, können durch den Empfang der Zeitcodedaten von dem Datenstrom gesteuert werden. Dies ermöglicht, dass ein ausführbares Codemodul die Anzeige von prozessorerzeugtem Bild und die Darstellung von prozessorerzeugtem Klang mit dem Fernseh-Video- und -Audiosignal synchronisiert. Es ist des Weiteren möglich, den Betrieb der interaktiven TV-Anwendung durch Einführen spezialisierter Pakete in den Datenstrom zu synchronisieren, die eine Unterbrechung des Codes verursachen, der gegenwärtig im Prozessor 210 ausgeführt wird. Der E-A-Stromadapter 208 überwacht den Datenstrom für solche spezialisierten Pakete und erzeugt in bekannter Weise eine Unterbrechung für den Prozessor 210. Der Prozessor 210 reagiert ebenfalls in einer bekannten Weise durch Ausführen eines Unterbrechungsbehandlungsprogramms (ISR) auf diese Unterbrechung. Dieses ISR kann für die Synchronisierung der interaktiven TV-Anwendung oder andere Zwecke verwendet werden.
  • Ein Client-Computer 22 in einem verteilten Computersystem, wie in 1 veranschaulicht, benötigt weder eine Massenspeichervorrichtung noch eine große Menge RAM 212. Ein derartiges System verringert die Kosten eines Client-Computers und erhöht die Funktionalität der Client-Computer mit den niedrigeren Kosten. Zudem verfügt ein derartiger Client-Computer über die Option der Teilnahme an einer verteilten Computerfunktion, kann jederzeit an der verteilten Computerfunktion teilnehmen (oder die Teilnahme unterbrechen und später zurückkehren) und kann seiner eigenen Geschwindigkeit gemäß teilnehmen.

Claims (20)

  1. Verteiltes Computersystem, das eine Datenstromquelle (10) umfasst, die gleichzeitig dafür ausgelegt ist, eine Vielzahl kontinuierlicher Datenströme zu erzeugen, wiederkehrend Daten, die eine verteilte Computeranwendung darstellen, in mindestens einen Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen und ein Verzeichnismodul in mindestens einen Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen, wobei das Verzeichnismodul Informationen enthält, die die verteilte Computeranwendung betreffen.
  2. Verteiltes Computersystem nach Anspruch 1, wobei die Quelle dafür ausgelegt ist, die Daten in jeden Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen und ein Verzeichnismodul in jeden Datenstrom der Vielzahl kontinuierlicher Datenströme einzufügen; und das des Weiteren einen Client-Computer (20) umfasst, der einen Datenempfänger enthält, der dafür ausgelegt ist, einen Datenstrom der Vielzahl kontinuierlicher Datenströme auszuwählen, um die Daten, die die verteilte Computeranwendung darstellen, aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden (206), und um die verteilte Computeranwendung auszuführen (224).
  3. Computersystem nach Anspruch 2, das des Weiteren durch einen Hilfsdatenprozessor (50) gekennzeichnet ist; wobei: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme so zu erzeugen, dass sie des Weiteren Hilfsdaten enthalten; und der Client-Computer (20) dafür ausgelegt ist, die Hilfsdaten aus dem ausgewählten Datenstrom der Vielzahl von Datenströmen auszublenden und die Hilfsdaten dem Hilfsdatenprozessor (50) zuzuführen.
  4. Computersystem nach Anspruch 3, dadurch gekennzeichnet, dass: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl von Datenströmen in Form einer Reihe von Pakten zu erzeugen; einschließlich eines ersten Pakets, das die Daten enthält, die die verteilte Computeranwendung darstellen, Identifikationsinformationen, die darauf hinweisen, dass das erste Paket Daten enthält, die die verteilte Computeranwendung darstellen, eines zweiten Pakets, das die Hilfsdaten enthält, und Identifikationsinfonmationen, die darauf hinweisen, dass das zweite Paket die Hilfsdaten enthält.
  5. Computersystem nach Anspruch 2, das des Weiteren durch einen Hilfsdatenprozessor (50) gekennzeichnet ist, wobei: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme zu erzeugen, die des Weiteren Hilfsdaten enthalten; und der Client-Computer (20) dafür ausgelegt ist, die Hilfsdaten aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden und die ausgeblendeten Hilfsdaten dem Hilfsdatenprozessor (50) zuzuführen.
  6. Computersystem nach Anspruch 2, dadurch gekennzeichnet, dass: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme in Form einer Reihe von Paketen (3238) zu erzeugen, einschließlich: eines ersten Pakets (CM), das Daten, die ein ausführbares Codemodul darstellen, und Identifikationsinformationen enthält, die anzeigen, dass das erste Paket die Daten enthält, die das ausführbare Codemodul darstellen; eines zweiten Pakets (DM), das Daten, die ein Datenmodul darstellen, und Identifikationsinformationen enthält, die darauf hinweisen, dass das zweite Paket Daten enthält, die das Datenmodul darstellen; und eines dritten Pakets (AUX), das Hilfsdaten und Identifikationsinformationen enthält, die anzeigen, dass das dritte Paket die Hilfsdaten enthält.
  7. Computersystem nach Anspruch 6, dadurch gekennzeichnet, dass: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme so zu erzeugen, dass sie des Weiteren das Verzeichnismodul umfassen, um Informationen zu enthalten, die das Codemodul betreffen; und dass der Client-Computer (20) dafür ausgelegt ist, zuerst das Verzeichnismodul aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden, daraufhin das Codemodul als Reaktion auf die Informationen bezüglich des Codemoduls in dem ausgeblendeten Verzeichnismodul auszublenden und das ausgeblendete Codemodul auszuführen.
  8. Computersystem nach Anspruch 2, dadurch gekennzeichnet, dass: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme als Reihe von Paketen (3238) zu erzeugen, einschließlich: eines ersten Pakets (CM), das Daten, die ein ausführbares Codemodul darstellen, und Identifikationsinformationen enthält, die anzeigen, dass das erste Paket die Daten enthält, die das ausführbare Codemodul darstellen; eines zweiten Pakets (DM), das Daten, die ein Datenmodul darstellen, und Identifikationsinformationen enthält, die anzeigen, dass das zweite Paket die Daten enthält, die das Datenmodul darstellen; eines dritten Pakets (DIR), das Daten, die ein Verzeichnismodul darstellen, und Identifikationsinformationen enthält, die anzeigen, dass das dritte Paket die Daten enthält, die das Verzeichnismodul darstellen; und eines vierten Pakets (AUX), das Hilfsdaten und Identifikationsinformationen enthält, die anzeigen, dass das vierte Paket die Hilfsdaten enthält.
  9. Computersystem nach Anspruch 8, dadurch gekennzeichnet, dass: die Datenstromquelle (10) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme zu erzeugen, die des Weiteren das Datenmodul und das Verzeichnismodul umfassen, wobei das Verzeichnismodul Informationen enthält, die das Datenmodul betreffen; und dass der Client-Computer (20) des Weiteren dafür ausgelegt ist, als Reaktion auf die Informationen bezüglich des Datenmoduls in dem Verzeichnismodul das Datenmodul aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden und das Codemodul auszuführen, um das ausgeblendete Datenmodul zu verarbeiten.
  10. Client-Computer (22) zur Verwendung in einem verteilten Computersystem, wobei der Client-Computer (22) Folgendes umfasst: eine Eingangsklemme (30), die selektiv dafür ausgelegt ist, einen Datenstrom einer Vielzahl kontinuierlicher Datenströme zu empfangen, wobei der ausgewählte Datenstrom der Vielzahl kontinuierlicher Datenströme wiederkehrend Daten umfasst, die eine verteilte Computeranwendung und ein Verzeichnismodul darstellen; einen Datenstromempfänger (207), der mit der Eingangsklemme (30) verbunden ist und dafür ausgelegt ist, den ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme zu empfangen und die Daten auszublenden (206), die die verteilte Computeranwendung darstellen; und eine Verarbeitungseinheit (224), die mit dem Datenstromempfänger verbunden und dafür ausgelegt ist, die verteilte Computeranwendung zu empfangen und auszuführen (210); wobei der Datenstromempfänger (207) des Weiteren dafür ausgelegt ist, das Verzeichnismodul aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden und als Reaktion auf Informationen in dem ausgeblendeten Verzeichnismodul die Daten, die die verteilte Computeranwendung darstellen, aus dem ausgewählten Datenstrom der Vielzahl kontinuierlicher Datenströme auszublenden.
  11. Client-Computer nach Anspruch 10, dadurch gekennzeichnet, dass die Verarbeitungseinheit (224) Folgendes umfasst: eine Systembusleitung (216); einen Schreib-/Lesespeicher (212), der mit der Systembusleitung verbunden ist; einen Datenstromeingabe-/-ausgabeadapter (208), der zwischen dem Datenstromempfänger (207) und der Systembusleitung (216) angeschlossen ist und dafür ausgelegt ist, die Daten, die die ausgeblendete verteilte Computeranwendung darstellen, aus dem Datenstromempfänger (207) zu empfangen, und die Daten, die die ausgeblendete verteilte Computeranwendung darstellen, in dem Schreib-/Lesespeicher (212) zu speichern; und einen Prozessor (210), der mit der Systembusleitung (216) verbunden und dafür ausgelegt ist, die verteilte Computeranwendung auszuführen.
  12. Client-Computer nach Anspruch 10 oder 11, dadurch gekennzeichnet, dass: die Eingangsklemme (30) dafür ausgelegt ist, den ausgewählten Datenstrom der Vielzahl von Datenströmen als eine Reihe von Paketen zu empfangen, die Pakete enthalten, die die Daten befördern, die die verteilte Computeranwendung darstellen; und dass der Datenstromempfänger (207) eine Paketdatenmaske (206) umfasst, die mit der Eingangsklemme (30) verbunden und dafür ausgelegt ist, die Pakete auszublenden, die die Daten befördern, die die verteilte Computeranwendung darstellen.
  13. Client-Computer nach Anspruch 12, dadurch gekennzeichnet, dass: die Reihe von Paketen in dem Datenstrom des Weiteren Pakete umfasst, die Hilfsdaten befördern; der Client-Computer (32) des Weiteren einen Hilfsdatenprozessor umfasst; und der Datenstromempfänger (207) eine Hilfsdatenmaske umfasst, die mit dem Hilfsdatenprozessor verbunden und dafür ausgelegt ist, die Pakete, die die Hilfsdaten befördern, aus dem Datenstrom auszublenden, und die Pakete, die die Hilfsdaten befördern, dem Hilfsdatenprozessor zuzuführen.
  14. Client-Computer nach Anspruch 13, dadurch gekennzeichnet, dass das verteilte Computersystem ein interaktives Fernsehsystem ist und die Hilfsdaten Fernseh-Videodaten und Fernseh-Audiodaten sind.
  15. Client-Computer nach Anspruch 10 bis 14, dadurch gekennzeichnet, dass: die Eingangsklemme (30) dafür ausgelegt ist, die Vielzahl kontinuierlicher Datenströme zu empfangen, wobei jeder der Datenströme Daten umfasst, die eine entsprechende verteilte Computeranwendung darstellen; und dass der Datenstromempfänger (207) Folgendes umfasst: einen Datenstromselektor (202), der mit der Eingangsklemme (30) verbunden und dafür ausgelegt ist, als Reaktion auf Steuersignale von des Verarbeitungseinheit (224) den ausgewählten Datenstrom der Vielzahl von Datenströmen zu erzeugen; und eine Maske für die repräsentativen Daten der verteilten Computer[anwendung], die zwischen dem Datenstromselektor (202) und der Verarbeitungseinheit (224) angeschlossen und dafür ausgelegt ist, die Daten, die die verteilte Computeranwendung darstellen, aus dem ausgewählten Datenstrom der Vielzahl von Datenströmen auszublenden.
  16. Client-Computer nach Anspruch 15, dadurch gekennzeichnet, dass: der Datenstromselektor (202) eine Auswahlsteuereingangsklemme umfasst und dafür ausgelegt ist, als Reaktion auf ein Steuersignal an der Auswahlsteuereingangsklemme den ausgewählten Datenstrom der Vielzahl von Datenströmen zu erzeugen; die Verarbeitungseinheit (224) Folgendes umfasst: eine Systembusleitung (216); einen Schreib-/Lesespeicher (212), der mit der Systembusleitung (216) verbunden ist; einen Datenstromeingabe-/-ausgabeadapter (208), der zwischen dem Datenstromempfänger (207) und des Systembusleitung (216) angeschlossen und dafür ausgelegt ist, die ausgeblendeten Daten, die die verteilte Computeranwendung darstellen, von dem Datenstromempfänger (207) zu empfangen, und die Daten, die die verteilte Computeranwendung darstellen, in dem Schreib-/Lesespeicher (212) zu speichern, und der eine Steuerausgangsklemme aufweist, die mit der Auswahlsteuereingangsklemme des Datenstromselektors (202) verbunden ist, welcher dafür ausgelegt ist, das Auswahlsteuersignal zu erzeugen; und einen Prozessor (210), der mit der Systembusleitung (216) verbunden und dafür ausgelegt ist, die Datenstromeingabe-/-ausgabevorrichtung zu steuern, um ein Auswahlsteuersignal zu erzeugen, das den ausgewählten Datenstrom der Vielzahl von Datenströmen auswählt, und um die verteilte Computeranwendung auszuführen.
  17. Client-Computer nach Anspruch 10 bis 14, dadurch gekennzeichnet, dass: die Eingangsklemme (30) dafür ausgelegt ist, die repräsentativen Daten der verteilten Computeranwendung, einschließlich eines ausführbaren Codemoduls, zu empfangen; der Datenstromempfänger (207) dafür ausgelegt ist, das ausführbare Codemodul auszublenden; und die Verazbeitungseinheit dafür ausgelegt ist, das ausgeblendete Codemodul auszuführen.
  18. Client-Computer nach Anspruch 17, dadurch gekennzeichnet, dass: die Eingangsklemme (30) dafür ausgelegt ist, die Daten, die die verteilte Computeranwendung darstellen, und das Verzeichnismodul, das Informationen bezüglich des ausführbazen Codemoduls enthält, zu empfangen; und dass der Datenstromempfänger (207) dafür ausgelegt ist, zuerst das Verzeichnismodul aus dem Datenstrom auszublenden; die Verarbeitungseinheit dafür ausgelegt ist, die Informationen bezüglich des ausführbaren Codemoduls im Verzeichnismodul zu verarbeiten; der Datenstromempfänger (207) dafür ausgelegt ist, das ausführbare Codemodul aus dem Datenstrom basierend auf den Informationen bezüglich des ausführbaren Codemoduls in dem ausgeblendeten Verzeichnismodul auszublenden; und die Verarbeitungseinheit dafür ausgelegt ist, das ausgeblendete ausführbare Codemodul auszuführen.
  19. Client-Computer nach Anspruch 18, wobei die repräsentativen Daten der verteilten Computeranwendung des Weiteren ein Datenmodul umfassen und das Verzeichnismodul des Weiteren Informationen bezüglich des Datenmoduls des Client-Computers umfasst, dadurch gekennzeichnet, dass: die Verarbeitungseinheit (210) dafür ausgelegt ist, Informationen bezüglich des Datenmoduls im Verzeichnismodul zu verarbeiten; der Datenstromempfänger (207) dafür ausgelegt ist, das Datenmodul aus dem Datenstrom basierend auf den Informationen bezüglich des Datenmoduls in dem ausgeblendeten Verzeichnismodul auszublenden; und die Verarbeitungseinheit dafür ausgelegt ist, das ausgeblendete Codemodul auszuführen, um die ausgeblendeten Daten zu verarbeiten.
  20. Client-Computer nach Anspruch 10 bis 14, wobei die verteilte Computeranwendung in eine Vielzahl von Modulen unterteilt ist, die Abschnitte der Anwendung darstellen, dadurch gekennzeichnet, dass die Verarbeitungseinheit dafür ausgelegt ist, nur Module der Vielzahl von Modulen zu speichern, die zur Ausführung des aktuellen Abschnitts der Anwendung notwendig sind.
DE69533565T 1994-04-28 1995-04-19 Verteiltes Computersystem Expired - Lifetime DE69533565T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US233908 1994-04-28
US08/233,908 US5819034A (en) 1994-04-28 1994-04-28 Apparatus for transmitting and receiving executable applications as for a multimedia system

Publications (2)

Publication Number Publication Date
DE69533565D1 DE69533565D1 (de) 2004-11-04
DE69533565T2 true DE69533565T2 (de) 2006-02-23

Family

ID=22879143

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533565T Expired - Lifetime DE69533565T2 (de) 1994-04-28 1995-04-19 Verteiltes Computersystem

Country Status (13)

Country Link
US (2) US5819034A (de)
EP (5) EP1307022B1 (de)
JP (4) JPH08166925A (de)
KR (1) KR100363593B1 (de)
CN (4) CN1893648B (de)
AT (3) ATE518348T1 (de)
CA (1) CA2145899C (de)
DE (1) DE69533565T2 (de)
DK (1) DK0680185T3 (de)
ES (4) ES2232816T3 (de)
PT (3) PT1307025E (de)
RU (1) RU2142158C1 (de)
SG (1) SG28257A1 (de)

Families Citing this family (264)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963916A (en) * 1990-09-13 1999-10-05 Intouch Group, Inc. Network apparatus and method for preview of music products and compilation of market data
US6275268B1 (en) 1993-09-09 2001-08-14 United Video Properties, Inc. Electronic television program guide with remote product ordering
US7991347B1 (en) 1994-04-07 2011-08-02 Data Innovation Llc System and method for accessing set of digital data at a remote site
USRE44685E1 (en) 1994-04-28 2013-12-31 Opentv, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system, and method and system to order an item using a distributed computing system
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US7181758B1 (en) 1994-07-25 2007-02-20 Data Innovation, L.L.C. Information distribution and processing system
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
WO1996013124A1 (en) * 1994-10-24 1996-05-02 Intel Corporation Video indexing protocol
EP2265019B1 (de) * 1995-04-24 2013-12-11 United Video Properties, Inc. Vorrichtung und Verfahren zur elektronischen Fernsehprogrammzeitplanung mit Warenfernbestellung
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US7917922B1 (en) * 1995-06-08 2011-03-29 Schwab Barry H Video input switching and signal processing apparatus
US20020056136A1 (en) * 1995-09-29 2002-05-09 Wistendahl Douglass A. System for converting existing TV content to interactive TV programs operated with a standard remote control and TV set-top box
US6189030B1 (en) 1996-02-21 2001-02-13 Infoseek Corporation Method and apparatus for redirection of server external hyper-link references
US7099316B1 (en) * 1996-02-29 2006-08-29 Tomich John L Photonic home area network
US5940073A (en) * 1996-05-03 1999-08-17 Starsight Telecast Inc. Method and system for displaying other information in a TV program guide
KR100506515B1 (ko) 1996-05-31 2005-09-26 마츠시타 덴끼 산교 가부시키가이샤 데이터통신시스템과데이터송신장치및데이터수신장치
US6141693A (en) * 1996-06-03 2000-10-31 Webtv Networks, Inc. Method and apparatus for extracting digital data from a video stream and using the digital data to configure the video stream for display on a television set
US8601050B2 (en) 1996-06-12 2013-12-03 Michael Carringer System and method for generating a modified web page by inline code insertion in response to an information request from a client computer
US9130765B1 (en) * 1996-06-12 2015-09-08 Michael Carringer System and method for generating a modified web page by inline code insertion in response to an information request from a client computer
US6266709B1 (en) * 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6424991B1 (en) * 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
KR100513128B1 (ko) * 1996-09-11 2005-09-07 마츠시타 덴끼 산교 가부시키가이샤 프로그램 수신장치
US6058443A (en) * 1997-02-18 2000-05-02 Advanced Micro Devices, Inc. System for partitioning PC chipset functions into logic and port integrated circuits
US6209028B1 (en) 1997-03-21 2001-03-27 Walker Digital, Llc System and method for supplying supplemental audio information for broadcast television programs
US20050097594A1 (en) 1997-03-24 2005-05-05 O'donnell Frank Systems and methods for awarding affinity points based upon remote control usage
US8769598B2 (en) * 1997-03-24 2014-07-01 Logitech Europe S.A. Program guide on a remote control
US6356948B1 (en) * 1997-03-28 2002-03-12 Aspect Communications Corp Method and apparatus for managing data
US9113122B2 (en) 1997-04-21 2015-08-18 Rovi Guides, Inc. Method and apparatus for time-shifting video and text in a text-enhanced television program
US6233253B1 (en) * 1997-05-23 2001-05-15 Thomson Licensing S.A. System for digital data format conversion and bit stream generation
JPH114417A (ja) * 1997-06-12 1999-01-06 Toshiba Corp ビット・ストリーム情報表示方法、ビット・ストリーム情報作成方法及び記録媒体
GB9715228D0 (en) * 1997-07-18 1997-09-24 Sertway Limited Communications system and method
JP4062577B2 (ja) 1997-07-21 2008-03-19 ジェムスター ディベロプメント コーポレイション 表示及び記録制御インタフェースのためのシステム及び方法
US7222087B1 (en) 1997-09-12 2007-05-22 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US5960411A (en) * 1997-09-12 1999-09-28 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
EP0907285A1 (de) * 1997-10-03 1999-04-07 CANAL+ Société Anonyme Datenfernladung
US6016141A (en) 1997-10-06 2000-01-18 United Video Properties, Inc. Interactive television program guide system with pay program package promotion
US6263385B1 (en) 1997-10-20 2001-07-17 Advanced Micro Devices, Inc. PC parallel port structure partitioned between two integrated circuits interconnected by a serial bus
FR2770711A1 (fr) * 1997-11-04 1999-04-30 Philips Electronics Nv Methode de communication entre des terminaux repartis et une station centrale
FR2778300A1 (fr) * 1998-04-29 1999-11-05 Thomson Multimedia Sa Procede de lecture de donnees informatiques permettant de composer des images de synthese et dispositif mettant en oeuvre le procede
US6609144B1 (en) 1998-05-04 2003-08-19 Matsushita Electric Industrial Co., Ltd. Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
US8813137B2 (en) * 1998-05-08 2014-08-19 Qualcomm Incorporated Apparatus and method for decoding digital image and audio signals
AU4169099A (en) * 1998-06-19 2000-01-05 Matsushita Electric Industrial Co., Ltd. Data transmitting/receiving method and device, and program recorded medium
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
US8189662B2 (en) * 1999-07-27 2012-05-29 Microsoft Corporation Selection compression
IL141104A0 (en) * 1998-07-27 2002-02-10 Webtv Networks Inc Remote computer access
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US6791588B1 (en) 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for conducting a contest using a network
US6845388B1 (en) * 1998-09-11 2005-01-18 L. V. Partners, L.P. Web site access manual of a character string into a software interface
US7379901B1 (en) 1998-09-11 2008-05-27 Lv Partners, L.P. Accessing a vendor web site using personal account information retrieved from a credit card company web site
US6829650B1 (en) 1998-09-11 2004-12-07 L. V. Partners, L.P. Method and apparatus for opening and launching a web browser in response to an audible signal
US7792696B1 (en) 1998-09-11 2010-09-07 RPX-LV Acquisition, LLC Method and apparatus for allowing a broadcast to remotely control a computer
US6643692B1 (en) 1998-09-11 2003-11-04 Lv Partners, L.P. Method for controlling a computer using an embedded unique code in the content of video tape media
US6704864B1 (en) * 1999-08-19 2004-03-09 L.V. Partners, L.P. Automatic configuration of equipment software
US6829646B1 (en) * 1999-10-13 2004-12-07 L. V. Partners, L.P. Presentation of web page content based upon computer video resolutions
US6594705B1 (en) 1998-09-11 2003-07-15 Lv Partners, L.P. Method and apparatus for utilizing an audibly coded signal to conduct commerce over the internet
US7191247B1 (en) 1998-09-11 2007-03-13 Lv Partners, Lp Method for connecting a wireless device to a remote location on a network
US6823388B1 (en) 1998-09-11 2004-11-23 L.V. Parners, L.P. Method and apparatus for accessing a remote location with an optical reader having a programmable memory system
US7392945B1 (en) 1998-09-11 2008-07-01 Lv Partners, L.P. Portable scanner for enabling automatic commerce transactions
US6708208B1 (en) 1998-09-11 2004-03-16 L.V. Partners, L.P. Unique bar code for indicating a link between a product and a remote location on a web network
US6701354B1 (en) 1998-09-11 2004-03-02 L. V. Partners, L.P. Method for interconnecting two locations over a network in response to using a tool
US6757715B1 (en) * 1998-09-11 2004-06-29 L.V. Partners, L.P. Bar code scanner and software interface interlock for performing encrypted handshaking and for disabling the scanner in case of handshaking operation failure
US6636896B1 (en) * 1998-09-11 2003-10-21 Lv Partners, L.P. Method and apparatus for utilizing an audibly coded signal to conduct commerce over the internet
US6792452B1 (en) 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for configuring a piece of equipment with the use of an associated machine resolvable code
US6098106A (en) * 1998-09-11 2000-08-01 Digitalconvergence.Com Inc. Method for controlling a computer with an audio signal
US7818423B1 (en) 1998-09-11 2010-10-19 RPX-LV Acquisition, LLC Retrieving personal account information from a web site by reading a credit card
US6631404B1 (en) 1998-09-11 2003-10-07 Lv Partners, L.P. Method and system for conducting a contest using a network
US6758398B1 (en) * 1998-09-11 2004-07-06 L.V. Partners, L.P. Optical reader with ultraviolet wavelength capability
US6384744B1 (en) 1998-09-11 2002-05-07 Digital:Convergence Corp. Method and system for data transmission from an optical reader
US6622165B1 (en) 1998-09-11 2003-09-16 Lv Partners, L.P. Method and apparatus for allowing a remote site to interact with an intermediate database to facilitate access to the remote site
US7900224B1 (en) 1998-09-11 2011-03-01 Rpx-Lv Acquisition Llc Method and apparatus for utilizing an audible signal to induce a user to select an E-commerce function
US7386600B1 (en) 1998-09-11 2008-06-10 Lv Partners, L.P. Launching a web site using a personal device
US6615268B1 (en) 1998-09-11 2003-09-02 Lv Partners, L.P. Method for controlling a computer using an embedded unique code in the content of dat media
US6826592B1 (en) 1998-09-11 2004-11-30 L.V. Partners, L.P. Digital ID for selecting web browser and use preferences of a user during use of a web application
US7440993B1 (en) 1998-09-11 2008-10-21 Lv Partners, L.P. Method and apparatus for launching a web browser in response to scanning of product information
US6629133B1 (en) 1998-09-11 2003-09-30 Lv Partners, L.P. Interactive doll
US6701369B1 (en) 1998-09-11 2004-03-02 L.V. Partners, L.P. Method and apparatus for accessing a remote location by sensing a machine-resolvable code
US8712835B1 (en) 1998-09-11 2014-04-29 Rpx Corporation Method and apparatus for linking a web browser link to a promotional offer
US6745234B1 (en) 1998-09-11 2004-06-01 Digital:Convergence Corporation Method and apparatus for accessing a remote location by scanning an optical code
US6697949B1 (en) * 1998-09-11 2004-02-24 L.V. Partner, L.P. Method and apparatus for controlling a user's pc through an audio-visual broadcast to archive information in the users pc
US6754698B1 (en) 1998-09-11 2004-06-22 L. V. Partners, L.P. Method and apparatus for accessing a remote location with an optical reader having a dedicated memory system
US8028036B1 (en) 1998-09-11 2011-09-27 Rpx-Lv Acquisition Llc Launching a web site using a passive transponder
US6636892B1 (en) * 1998-09-11 2003-10-21 Lv Partners, L.P. Method for conducting a contest using a network
US6526449B1 (en) 1998-09-11 2003-02-25 Digital Convergence Corporation Method and apparatus for controlling a computer from a remote location
US6836799B1 (en) 1998-09-11 2004-12-28 L.V. Partners, L.P. Method and apparatus for tracking user profile and habits on a global network
US6725260B1 (en) * 1998-09-11 2004-04-20 L.V. Partners, L.P. Method and apparatus for configuring configurable equipment with configuration information received from a remote location
US6688522B1 (en) 1998-09-11 2004-02-10 L. V. Partners, L.P. Unique bar code
US6868433B1 (en) 1998-09-11 2005-03-15 L.V. Partners, L.P. Input device having positional and scanning capabilities
US7930213B1 (en) 1998-09-11 2011-04-19 Rpx-Lv Acquisition Llc Method and apparatus for completing, securing and conducting an E-commerce transaction
US7533064B1 (en) 1998-10-07 2009-05-12 Paypal Inc. E-mail invoked electronic commerce
US6360275B1 (en) 1998-10-29 2002-03-19 Shanghai Wonders Information Co., Ltd. System and method for transmitting and receiving data in a network
US7694319B1 (en) 1998-11-02 2010-04-06 United Video Properties, Inc. Interactive program guide with continuous data stream and client-server data supplementation
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
RU2001130759A (ru) * 1999-04-15 2003-07-20 Скайстрим Нетворкс Инк. (Us) Система радиовещания данных
DE60039861D1 (de) * 1999-04-20 2008-09-25 Samsung Electronics Co Ltd Werbeverwaltungssystem für digitale videoströme
US7016951B1 (en) 1999-04-30 2006-03-21 Mantech Ctx Corporation System and method for network security
WO2000068811A1 (en) * 1999-04-30 2000-11-16 Network Forensics, Inc. System and method for capturing network data and identifying network events therefrom
JP2002544609A (ja) 1999-05-10 2002-12-24 エクスパンス ネットワークス インコーポレイティッド ディジタル・ストリームのための広告サブグループ
KR100654430B1 (ko) * 1999-05-20 2006-12-07 삼성전자주식회사 데이터를 브로드캐스팅하는 디지털 방송 시스템에서 어플리케이션을 처리하는 장치 및 방법
US7634787B1 (en) 1999-06-15 2009-12-15 Wink Communications, Inc. Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
US7069571B1 (en) 1999-06-15 2006-06-27 Wink Communications, Inc. Automated retirement of interactive applications using retirement instructions for events and program states
US7222155B1 (en) 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
US8434113B1 (en) * 1999-10-06 2013-04-30 Tvworks, Llc Electronic commerce using streaming media
US6530084B1 (en) * 1999-11-01 2003-03-04 Wink Communications, Inc. Automated control of interactive application execution using defined time periods
US6985589B2 (en) * 1999-12-02 2006-01-10 Qualcomm Incorporated Apparatus and method for encoding and storage of digital image and audio signals
GB2357922A (en) * 1999-12-07 2001-07-04 Sony Service Ct Optimising a data carousel
US6226739B1 (en) * 1999-12-14 2001-05-01 International Business Machines Corporation Method and computer program for distributing software to a personal palm-type device through a global software distribution package transmittable over the world wide web
US7720712B1 (en) 1999-12-23 2010-05-18 Amazon.Com, Inc. Placing a purchase order using one of multiple procurement options
US20020178442A1 (en) * 2001-01-02 2002-11-28 Williams Dauna R. Interactive television scripting
US6496802B1 (en) 2000-01-07 2002-12-17 Mp3.Com, Inc. System and method for providing access to electronic works
US8584182B2 (en) 2000-01-27 2013-11-12 Time Warner Cable Enterprises Llc System and method for providing broadcast programming, a virtual VCR, and a video scrapbook to programming subscribers
US7631338B2 (en) * 2000-02-02 2009-12-08 Wink Communications, Inc. Interactive content delivery methods and apparatus
US7028327B1 (en) 2000-02-02 2006-04-11 Wink Communication Using the electronic program guide to synchronize interactivity with broadcast programs
US20030097338A1 (en) * 2000-02-03 2003-05-22 Piotrowski Tony E. Method and system for purchasing content related material
US20010033243A1 (en) 2000-03-15 2001-10-25 Harris Glen Mclean Online remote control configuration system
US8531276B2 (en) 2000-03-15 2013-09-10 Logitech Europe S.A. State-based remote control system
US6784805B2 (en) 2000-03-15 2004-08-31 Intrigue Technologies Inc. State-based remote control system
US20020060750A1 (en) * 2000-03-29 2002-05-23 Istvan Anthony F. Single-button remote access to a synthetic channel page of specialized content
US20020056083A1 (en) * 2000-03-29 2002-05-09 Istvan Anthony F. System and method for picture-in-browser scaling
EP1273169B1 (de) 2000-03-31 2006-06-07 United Video Properties, Inc. Systeme und verfahren zur verminderung von unterbrechungen in programmaufnahmen
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US20040148625A1 (en) 2000-04-20 2004-07-29 Eldering Charles A Advertisement management system for digital video streams
US7360231B2 (en) * 2000-05-01 2008-04-15 The Directv Group, Inc. System for obtaining data regarding customer use of interactive television
US7181759B2 (en) * 2000-05-26 2007-02-20 Bigband Networks, Inc. System and method for providing interactivity for end-users over digital broadcast channels
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US20050211765A1 (en) * 2000-06-27 2005-09-29 Digital World Access, Inc. Money management network
US20010056399A1 (en) * 2000-06-27 2001-12-27 Eric Saylors Web dependent consumer financing and virtual reselling method
US20040111370A1 (en) * 2000-06-27 2004-06-10 Digital World Access, Inc. Single source money management system
US7613790B2 (en) * 2000-07-13 2009-11-03 Biap Systems, Inc. Apparatus for and method of executing customized interactive computing services in a broadband network environment
US7194754B2 (en) * 2000-07-25 2007-03-20 Digeo, Inc. Method and system to defer transactions conducted via interactive television
US7313802B1 (en) 2000-07-25 2007-12-25 Digeo, Inc. Method and system to provide deals and promotions via an interactive video casting system
US20020056109A1 (en) * 2000-07-25 2002-05-09 Tomsen Mai-Lan Method and system to provide a personalized shopping channel VIA an interactive video casting system
US7103908B2 (en) * 2000-07-25 2006-09-05 Diego, Inc. Method and system to save context for deferred transaction via interactive television
JP2002092366A (ja) * 2000-09-11 2002-03-29 Nec Corp Cpu時間売買方法及びcpu時間売買システムにおける管理サーバ
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US7103906B1 (en) 2000-09-29 2006-09-05 International Business Machines Corporation User controlled multi-device media-on-demand system
FR2814892B1 (fr) * 2000-10-04 2003-02-21 At Sky Systeme permettant d'utiliser un ordinateur comme serveur pour televiseurs
CA2425482C (en) 2000-10-11 2015-12-01 United Video Properties, Inc. Systems and methods for caching data in media-on-demand systems
EP1986435B1 (de) 2000-10-11 2020-01-22 Rovi Guides, Inc. Systeme und Verfahren zur Bereitstellung von Datenspeicherplatz auf Servern in einem On-Demand-Medienausgabesystem
US20020103810A1 (en) * 2000-10-19 2002-08-01 Kobi Menachemi Dynamic building of applications
US6889384B1 (en) 2000-11-08 2005-05-03 The Directv Group, Inc. Simplified interactive user interface for multi-video channel navigation
US6917627B1 (en) 2000-11-21 2005-07-12 The Directv Group, Inc. Hybrid satellite communications system
US20020091761A1 (en) * 2001-01-10 2002-07-11 Lambert James P. Technique of generating a composite media stream
US20020138500A1 (en) * 2001-01-12 2002-09-26 General Instrument Corporation Virtual streaming in a carousel file system
US20020152467A1 (en) * 2001-02-12 2002-10-17 Rosario Fiallos Automated generation of conditional access packets for IRD upgrades via radio frequency software download in satellite television systems
US20020175991A1 (en) * 2001-02-14 2002-11-28 Anystream, Inc. GPI trigger over TCP/IP for video acquisition
JP4291467B2 (ja) * 2001-03-01 2009-07-08 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置、メニュー表示方法および情報記録媒体
US20040117427A1 (en) * 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US20100027430A1 (en) * 2001-04-30 2010-02-04 Netwitness Corporation Apparatus and Method for Network Analysis
US7634557B2 (en) * 2001-04-30 2009-12-15 Netwitness Corporation Apparatus and method for network analysis
DE60225010T2 (de) * 2001-06-13 2009-03-05 OpenTV, Inc., San Francisco Verfahren und vorrichtung zur verbesserten erfassung und überwachung von ereignisinformationstabellenteilen
KR100425681B1 (ko) * 2001-07-23 2004-04-03 엘지전자 주식회사 디에스엠-씨씨 기반 장치의 에이피아이 구현 장치 및 방법
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
WO2003015393A2 (en) * 2001-08-06 2003-02-20 Digeo Inc. Providing content and applicatons via carousel transmission to thin-client interactive television terminals
US6996564B2 (en) * 2001-08-13 2006-02-07 The Directv Group, Inc. Proactive internet searching tool
US7343487B2 (en) 2001-10-10 2008-03-11 Nokia Corporation Datacast distribution system
AU2002349979A1 (en) * 2001-10-16 2003-04-28 Newattitude Inc. (Dba Digital World Access, Inc.) Self-administered automatic payroll deduction
US20040072584A1 (en) * 2002-03-01 2004-04-15 Kern Ronald J. Wireless distribution of multimedia content
US7844994B2 (en) * 2002-03-22 2010-11-30 The Directv Group, Inc. System and method for persistent storage of common user information for interactive television using a centrally located repository
US20040031052A1 (en) * 2002-08-12 2004-02-12 Liberate Technologies Information platform
WO2004021138A2 (en) * 2002-08-30 2004-03-11 Wink Communications, Inc. Carousel proxy
CN100450256C (zh) * 2002-10-28 2009-01-07 中兴通讯股份有限公司 移动通信网络规划中小区覆盖文件的分布式处理方法
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
US8832772B2 (en) * 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
FR2849704A1 (fr) * 2003-01-02 2004-07-09 Thomson Licensing Sa Dispositifs et procedes de decision conditionnelle d'execution de services recus et de constitution de messages d'informations associes a des services, et produits associes
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US7231404B2 (en) 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US20060051059A1 (en) 2004-09-08 2006-03-09 Krakirian Haig H Video recorder having user extended and automatically extended time slots
EA005455B1 (ru) * 2003-05-05 2005-02-24 Виктор Александрович Мамонтов Способ программирования устройств дистанционного управления
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US20050071240A1 (en) * 2003-09-26 2005-03-31 Ewald Stephen A. System and method for purchasing linked with broadcast media
JP2005216140A (ja) * 2004-01-30 2005-08-11 Fujitsu Ten Ltd 発注確認装置および発注確認方法
FR2871639A1 (fr) * 2004-06-11 2005-12-16 Thomson Licensing Sa Procede de gestion de programmes auxiliaires et recepteur et systeme correspondants
US8086575B2 (en) 2004-09-23 2011-12-27 Rovi Solutions Corporation Methods and apparatus for integrating disparate media formats in a networked media system
JP2006094415A (ja) * 2004-09-27 2006-04-06 Toshiba Corp 映像装置及び映像ストリーミング方法
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US8806533B1 (en) 2004-10-08 2014-08-12 United Video Properties, Inc. System and method for using television information codes
US20060112177A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation Method and system for controlling access to presence information on a peer-to-peer basis
JP4487761B2 (ja) * 2004-12-21 2010-06-23 カシオ計算機株式会社 データ出力装置、および、プログラム
US7664872B2 (en) * 2005-01-05 2010-02-16 Divx, Inc. Media transfer protocol
US20060168291A1 (en) * 2005-01-05 2006-07-27 Van Zoest Alexander Interactive multichannel data distribution system
US20060200745A1 (en) * 2005-02-15 2006-09-07 Christopher Furmanski Method and apparatus for producing re-customizable multi-media
JP4478598B2 (ja) * 2005-03-18 2010-06-09 キヤノン株式会社 画像形成装置
JP2006256275A (ja) * 2005-03-18 2006-09-28 Canon Inc 装置および画像形成装置
JP4546299B2 (ja) * 2005-03-18 2010-09-15 キヤノン株式会社 画像形成装置
US9973817B1 (en) 2005-04-08 2018-05-15 Rovi Guides, Inc. System and method for providing a list of video-on-demand programs
DE102006018238A1 (de) 2005-04-20 2007-03-29 Logitech Europe S.A. System und Verfahren zur adaptiven Programmierung einer Fernbedienung
US9104773B2 (en) * 2005-06-21 2015-08-11 Microsoft Technology Licensing, Llc Finding and consuming web subscriptions in a web browser
US8661459B2 (en) 2005-06-21 2014-02-25 Microsoft Corporation Content syndication platform
US20070079342A1 (en) 2005-09-30 2007-04-05 Guideworks, Llc Systems and methods for managing local storage of on-demand content
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7813963B2 (en) 2005-12-27 2010-10-12 The Pen Interactive electronic desktop action method and system for executing a transaction
US9681105B2 (en) 2005-12-29 2017-06-13 Rovi Guides, Inc. Interactive media guidance system having multiple devices
US8607287B2 (en) 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
US8280843B2 (en) * 2006-03-03 2012-10-02 Microsoft Corporation RSS data-processing object
US7979803B2 (en) * 2006-03-06 2011-07-12 Microsoft Corporation RSS hostable control
US8280982B2 (en) 2006-05-24 2012-10-02 Time Warner Cable Inc. Personal content server apparatus and methods
US9386327B2 (en) 2006-05-24 2016-07-05 Time Warner Cable Enterprises Llc Secondary content insertion apparatus and methods
US8024762B2 (en) 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
KR100823282B1 (ko) * 2006-09-29 2008-04-21 삼성전자주식회사 데이터 방송 애플리케이션을 수신, 저장 및 실행하기 위한방법 및 장치
US7653661B2 (en) * 2006-12-29 2010-01-26 Sap Ag Monitoring connection between computer system layers
CN101231731B (zh) * 2007-01-25 2015-10-21 运软网络科技(上海)有限公司 一种应用虚拟化在公网上的通用商务方法及其迷你服务器
US8181206B2 (en) 2007-02-28 2012-05-15 Time Warner Cable Inc. Personal content server apparatus and methods
US9104962B2 (en) * 2007-03-06 2015-08-11 Trion Worlds, Inc. Distributed network architecture for introducing dynamic content into a synthetic environment
US8898325B2 (en) * 2007-03-06 2014-11-25 Trion Worlds, Inc. Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US20090064247A1 (en) * 2007-08-31 2009-03-05 Jacked, Inc. User generated content
US20090100357A1 (en) * 2007-10-11 2009-04-16 Alessio Signorini Systems and methods for visually selecting information
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
CN106095570A (zh) * 2007-11-08 2016-11-09 思腾科技(巴巴多斯)有限公司 执行复杂算法的分布式网络
US20090133078A1 (en) 2007-11-16 2009-05-21 United Video Properties, Inc Systems and methods for automatically purchasing and recording popular pay programs in an interactive media delivery system
WO2009073827A1 (en) * 2007-12-05 2009-06-11 Onlive, Inc. System and method for compressing video based on detected intraframe motion
US9503691B2 (en) 2008-02-19 2016-11-22 Time Warner Cable Enterprises Llc Methods and apparatus for enhanced advertising and promotional delivery in a network
US8327402B1 (en) 2008-07-15 2012-12-04 United Video Properties, Inc. Methods and devices for presenting an interactive media guidance application
US8626863B2 (en) * 2008-10-28 2014-01-07 Trion Worlds, Inc. Persistent synthetic environment message notification
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US8099476B2 (en) 2008-12-31 2012-01-17 Apple Inc. Updatable real-time or near real-time streaming
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8657686B2 (en) * 2009-03-06 2014-02-25 Trion Worlds, Inc. Synthetic environment character data sharing
US8694585B2 (en) * 2009-03-06 2014-04-08 Trion Worlds, Inc. Cross-interface communication
US8661073B2 (en) * 2009-03-06 2014-02-25 Trion Worlds, Inc. Synthetic environment character data sharing
WO2010127039A1 (en) * 2009-04-28 2010-11-04 Genetic Finance (Barbados) Limited Distributed evolutionary algorithm for asset management and trading
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8214515B2 (en) 2009-06-01 2012-07-03 Trion Worlds, Inc. Web client data conversion for synthetic environment interaction
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
WO2011127312A1 (en) 2010-04-07 2011-10-13 Apple Inc. Real-time or near real-time streaming
EP2577476A4 (de) * 2010-05-28 2014-08-27 Hewlett Packard Development Co Deaktivierung eines anzeigeaktualisierungsverfahrens
US8508401B1 (en) 2010-08-31 2013-08-13 Logitech Europe S.A. Delay fixing for command codes in a remote control system
US8843586B2 (en) 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
CN102369511B (zh) * 2011-09-01 2013-08-28 华为技术有限公司 资源迁移方法、装置及系统
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
RU2498396C1 (ru) * 2012-02-22 2013-11-10 Вадим Александрович Питов Способ осуществления коммуникаций и виртуальных путешествий
US9609374B2 (en) 2012-06-27 2017-03-28 Rovi Guides, Inc. System and methods for automatically obtaining cost-efficient access to a media content collection
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
US9674563B2 (en) 2013-11-04 2017-06-06 Rovi Guides, Inc. Systems and methods for recommending content
US10430429B2 (en) 2015-09-01 2019-10-01 Cognizant Technology Solutions U.S. Corporation Data mining management server
JP6649085B2 (ja) * 2015-12-28 2020-02-19 日本テレビ放送網株式会社 分散コンピューティングシステム、放送局、サーバ及び分散コンピューティング方法
CN106897872A (zh) * 2016-12-08 2017-06-27 阿里巴巴集团控股有限公司 资源调度方法及装置、支付方法及装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602891A (en) * 1969-03-10 1971-08-31 Univ Washington Continuous transmission computer and multiple receiver system
US3803491A (en) * 1971-05-26 1974-04-09 Tocom Communications system
US3891792A (en) * 1974-06-25 1975-06-24 Asahi Broadcasting Television character crawl display method and apparatus
US4528589A (en) * 1977-02-14 1985-07-09 Telease, Inc. Method and system for subscription television billing and access
US4264925A (en) * 1979-08-13 1981-04-28 Michael J. Freeman Interactive cable television system
US4323922A (en) * 1979-12-17 1982-04-06 Oak Industries Inc. Television coding system with channel level identification
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
CA1177558A (en) 1982-04-15 1984-11-06 Groupe Videotron Ltee. (Le) Cable network data transmission system
NL8303991A (nl) * 1983-11-18 1985-06-17 Nl Standard Electric Mij B V Kabeltelevisienetwerk.
JPS6149574A (ja) * 1984-08-16 1986-03-11 Sony Corp プログラムの伝送方法
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
US4780758A (en) 1987-04-30 1988-10-25 Gte Government Systems Corporation Telecommunication system with burst and continuous audio signals
IT1211278B (it) * 1987-09-02 1989-10-12 Olivetti & Co Spa Sistema di trasmissione e o ricezione di programmi per calcolatori e o dati attraverso il teletext
JPH01221944A (ja) * 1988-03-01 1989-09-05 Nippon Hoso Kyokai <Nhk> データ信号送出装置
US5117354A (en) * 1988-05-24 1992-05-26 Carnes Company, Inc. Automated system for pricing and ordering custom manufactured parts
US5251301A (en) * 1988-05-27 1993-10-05 Pc Connection, Inc. Computer remote control through a video signal
US5191573A (en) * 1988-06-13 1993-03-02 Hair Arthur R Method for transmitting a desired digital video or audio signal
JPH0627967B2 (ja) * 1988-06-17 1994-04-13 株式会社エスシーシー Cai学習方法および装置
US4994908A (en) 1988-12-23 1991-02-19 Scientific-Atlanta, Inc. Interactive room status/time information system
US5003591A (en) 1989-05-25 1991-03-26 General Instrument Corporation Functionally modifiable cable television converter system
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
JPH04127688A (ja) * 1990-09-18 1992-04-28 Fujitsu General Ltd 文字放送受信機
EP0551433B1 (de) * 1990-10-01 2001-05-09 BUSH, Thomas A. Transaktionsverarbeitungssystem
US5129080A (en) * 1990-10-17 1992-07-07 International Business Machines Corporation Method and system increasing the operational availability of a system of computer programs operating in a distributed system of computers
GB2249416B (en) * 1990-12-31 1994-08-17 Ruego Dev Co A data processing system.
NZ241520A (en) * 1991-02-06 1995-07-26 Catalina Marketing Int Retail purchasing: discounts accumulated and printout produced
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
DE69210303T2 (de) * 1991-05-23 1996-11-14 Hitachi Ltd Breitbildschirmfernsehempfänger mit Bildseitenverhältnisumwandlungsfunktion und Verfahren zur Darstellung eines vergrösserten Abschnittes
US5343239A (en) * 1991-11-20 1994-08-30 Zing Systems, L.P. Transaction based interactive television system
JPH05197732A (ja) * 1991-12-16 1993-08-06 Sofuto Banku Kk 情報販売端末装置のインタフェース
US5371550A (en) * 1991-12-25 1994-12-06 Casio Computer Co., Ltd. Television receiver with auto-tuning system
US5299197A (en) * 1992-02-11 1994-03-29 Roger Schlafly Communications packet server protocol
US5642515A (en) * 1992-04-17 1997-06-24 International Business Machines Corporation Network server for local and remote resources
FR2694423B1 (fr) * 1992-07-30 1994-12-23 France Telecom Dispositif de contrôle de la puissance de sortie des diodes laser.
US5373288A (en) * 1992-10-23 1994-12-13 At&T Corp. Initializing terminals in a signal distribution system
US5440632A (en) * 1992-12-02 1995-08-08 Scientific-Atlanta, Inc. Reprogrammable subscriber terminal
US5600364A (en) * 1992-12-09 1997-02-04 Discovery Communications, Inc. Network controller for cable television delivery systems
US5548532A (en) * 1994-04-28 1996-08-20 Thomson Consumer Electronics, Inc. Apparatus and method for formulating an interactive TV signal
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
US5635978A (en) * 1994-05-20 1997-06-03 News America Publications, Inc. Electronic television program guide channel system and method
US5559548A (en) * 1994-05-20 1996-09-24 Davis; Bruce System and method for generating an information display schedule for an electronic program guide

Also Published As

Publication number Publication date
SG28257A1 (en) 1996-04-01
EP1307023A3 (de) 2006-06-28
JPH08166925A (ja) 1996-06-25
US5915090A (en) 1999-06-22
CN1311378C (zh) 2007-04-18
CA2145899C (en) 2004-10-26
EP0680185A3 (de) 2002-05-02
EP1307024A3 (de) 2006-06-28
EP1307024B1 (de) 2012-06-13
CN1117620A (zh) 1996-02-28
JP2012123833A (ja) 2012-06-28
KR100363593B1 (ko) 2003-02-11
EP0680185A2 (de) 1995-11-02
US5819034A (en) 1998-10-06
DK0680185T3 (da) 2004-10-25
CN101212659A (zh) 2008-07-02
CA2145899A1 (en) 1995-10-29
EP1307025B1 (de) 2011-08-31
CN1516032A (zh) 2004-07-28
EP1307025A3 (de) 2006-06-28
EP1307024A2 (de) 2003-05-02
EP1307025A2 (de) 2003-05-02
ATE518348T1 (de) 2011-08-15
PT1307024E (pt) 2012-08-13
EP1307023A2 (de) 2003-05-02
ES2232816T3 (es) 2005-06-01
EP1307022A2 (de) 2003-05-02
EP1307022A3 (de) 2006-06-28
EP0680185B1 (de) 2004-09-29
CN1893648A (zh) 2007-01-10
ES2387085T3 (es) 2012-09-13
ES2372692T3 (es) 2012-01-25
DE69533565D1 (de) 2004-11-04
RU95106682A (ru) 1997-01-20
ES2370166T3 (es) 2011-12-13
CN1893648B (zh) 2014-03-26
RU2142158C1 (ru) 1999-11-27
JP2011028759A (ja) 2011-02-10
JP2009169971A (ja) 2009-07-30
ATE523014T1 (de) 2011-09-15
PT1307022E (pt) 2011-11-08
ATE278285T1 (de) 2004-10-15
EP1307024B2 (de) 2016-01-06
EP1307022B1 (de) 2011-07-27
PT1307025E (pt) 2011-12-16
CN1104691C (zh) 2003-04-02
KR950033885A (ko) 1995-12-26

Similar Documents

Publication Publication Date Title
DE69533565T2 (de) Verteiltes Computersystem
DE69830202T2 (de) Hostgerät zur struktur einer zweiwegverbindung in einwegdatenströmen
DE69731549T2 (de) Interaktivität mit audiovisueller programmierung
DE69637230T2 (de) Transportkodierer für einen Paketstrom und Verfahren zu dessen Betrieb
DE69831179T2 (de) Tragbare vorrichtung zur simulation von bidirektionellen verbindungen für ein-direktionelle datenströme
DE69722910T2 (de) Vorrichtung zur Anzeige von Bildern und Daten
DE3614361C2 (de)
DE60122569T2 (de) Einheitlich verteilte architektur für mehrpunktbildkonferenz und interaktive rundfunksysteme
DE69837194T2 (de) Methode und system zur netzwerkverwendungserfassung
DE60131050T2 (de) Verfahren und System für Datenkommunikation
DE69926074T2 (de) Proxy zur steuerung von video-auf-anfrage-anbietern
DE69733580T2 (de) Senden und Empfangen von Fernsehprogrammen und anderen Daten
DE3820425A1 (de) Digitales interaktives nachrichtensystem
US20020038257A1 (en) Apparatus for transmitting and receiving executable applications as for a multimedia system
DE19503762A1 (de) Dynamische Signalzusammensetzung
DE69732061T2 (de) Datenverarbeitungssystem und -verfahren
DE60303948T2 (de) Synchronisationssystem und verfahren für audiovisuelle programme
DE60307896T2 (de) Verfahren zum hervorbringen einer liste von inhalten in einermit einem nationalen netzwerk verbundenen einrichtung und mit dem verfahrenassoziierte einrichtung
EP0913974B1 (de) Verfahren zur Erstellung von Sendeplänen für Multi Media Daten
DE10320889B3 (de) Verfahren und Vorrichtung zum Erzeugen und Senden eines Fernsehprogrammes über Ip-basierte Medien, im speziellen das Internet
DE602005005709T2 (de) Verfahren und System zur Übertragung von Broadcast relatierten Daten auf ein mobiles Endgerät
EP2012449A1 (de) System und Verfahren zum Breitstellen eines interaktiven Rundfunkprogramms
DE69937601T2 (de) Informationsserver
DE69914349T2 (de) Verfahren und vorrichtung zur verwaltung von dienstedaten in einem fernsehsystem
EP2120394B1 (de) Verfahren zum Übertragen von Daten in einem hybriden Netzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition