DE60309201T2 - Verfahren und system zur übertragung von ereignissen, einschliesslich multimedia daten - Google Patents

Verfahren und system zur übertragung von ereignissen, einschliesslich multimedia daten Download PDF

Info

Publication number
DE60309201T2
DE60309201T2 DE60309201T DE60309201T DE60309201T2 DE 60309201 T2 DE60309201 T2 DE 60309201T2 DE 60309201 T DE60309201 T DE 60309201T DE 60309201 T DE60309201 T DE 60309201T DE 60309201 T2 DE60309201 T2 DE 60309201T2
Authority
DE
Germany
Prior art keywords
event
events
driver
client
audio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60309201T
Other languages
English (en)
Other versions
DE60309201D1 (de
Inventor
Yan Fremont YONG
Bo Mountain View SHEN
Sujoy Mountain View BASU
Rajendra Los Altos KUMAR
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Application granted granted Critical
Publication of DE60309201D1 publication Critical patent/DE60309201D1/de
Publication of DE60309201T2 publication Critical patent/DE60309201T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • 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/80Responding to QoS
    • 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/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • 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/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25825Management of client data involving client display capabilities, e.g. screen resolution of a mobile phone
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

  • Gebiet der Technik
  • Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf Computersystemnetzwerke. Genauer gesagt beziehen sich Ausführungsbeispiele der vorliegenden Erfindung auf ein Mulitmedia-Streaming in einer Netzwerkumgebung.
  • Technischer Hintergrund
  • Computersystemnetzwerke liefern einen Zugriff auf lokale Ressourcen (z. B. Softwareanwendungen, Daten, Webseiten etc. auf einem Server) von einer entfernten Client-Vorrichtung aus. Anwendungen, wie beispielsweise Virtuell-Netzwerk-Computing (Virtual-Network-Computing), haben diesen Gedanken weiter ausgedehnt. Bei einem virtuellen Rechennetzwerk liefern Server nicht nur Softwareanwendungen und Daten, sondern auch eine Desktop-Umgebung, auf die von Client-Vorrichtungen aus zugegriffen werden kann und die von denselben aus gesteuert werden kann. Im Wesentlichen wird einem Benutzer an einer Client-Vorrichtung eine Anzeige (eine grafische Benutzerschnittstelle oder ein Desktop) präsentiert, die bei einem Server erzeugt wird und dann zu dem Client übertragen und an demselben wiedergegeben wird. Folglich kann die Menge an Zuständen, die durch den Client beibehalten sind, reduziert werden, was in etwas resultiert, das als ein „dünner" Client bezeichnet wird (siehe auch das Dokument WO-A-00/39678). Folglich kann auf einen einzigen Desktop simultan von mehreren unterschiedlichen Clients aus zugegriffen werden und derselbe kann simultan von denselben aus betrachtet werden. Dies ist eventuell besonders nützlich, wenn eine Gruppe von zusammenwirkenden Engineering-Arbeitsplatzrechnern implementiert ist.
  • Virtuell-Netzwerk-Rechensysteme des Stands der Technik verwenden typischerweise Protokolle, wie beispielsweise das Protokoll Remote Frame Buffer (RFB), um einen Clientzugriff auf die servererzeugte grafische Benutzerschnittstelle zu liefern. Das Bild, das an einem Computersystembildschirm angezeigt werden soll, ist in einem Rahmenpuffer auf dem Server gehalten. In einem einschränkenden Fall werden die gesamten Inhalte des Rahmenpuffers regelmäßig für eine Anzeige zu der Client-Vorrichtung übertragen. Verbesserungen an dem einschränkenden Fall umfassen ein Senden lediglich der Veränderungen zu dem Rahmenpuffer (und somit zu der Anzeige), die seit der vorhergehenden Übertragung aufgetreten sind.
  • Typischerweise beträgt die Übertragungsrate zu dem Client etwa 10–15 Rahmen pro Sekunde. Während diese Rate ziemlich hoch ist, wird dieselbe nicht als hoch genug betrachtet, um Videodaten oder Multimediadaten (Video- und Audiodaten) von dem Server zu dem Client zu übertragen. Folglich sind Systeme des Stands der Technik in dieser Hinsicht begrenzt.
  • Folglich ist eine zufriedenstellendere Weise eines Übertragens von Video-/Multimediadaten von Servern zu Clients in einem Virtuell-Netzwerk-Rechensystem erwünscht. Ausführungsbeispiele der vorliegenden Erfindung liefern eine derartige Verbesserung.
  • Offenbarung der Erfindung
  • Ausführungsbeispiele der vorliegenden Erfindung betreffen Verfahren und Systeme zum Übertragen eines Ereignisses von. einem Server zu einem entfernten Client. Ein Ereignis wird von einem Treiber empfangen. Das Ereignis wird in eine Ereigniswarteschlange gemäß dem Ereignistyp abgegeben. Das Ereignis wird gemäß dem Ereignistyp verarbeitet. Das Verarbeiten umfasst ein Codieren des Ereignisses, wenn das Ereignis Multimediadaten aufweist. Das Ereignis wird zu dem entfernten Client übertragen, wenn dasselbe ausgelöst wird. Die Übertragung tritt gemäß einem Protokoll auf, das dem Ereignistyp entspricht.
  • Kurze Beschreibung der Zeichnungen
  • Die zugehörigen Zeichnungen, die in diese Beschreibung eingegliedert sind und einen Teil derselben bilden, stellen Ausführungsbeispiele der Erfindung dar und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Erfindung zu erläutern.
  • 1 ist ein Blockdiagramm eines Servers und eines Clients, die in einem Netzwerk gekoppelt sind, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 2 ist ein Blockdiagramm eines Desktop-Streaming-Servers gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 3 ist ein Blockdiagramm einer Treiberschnittstelle gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 4 ist ein Blockdiagramm, das eine Differenzierung von Fensteraktualisierungen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • 5 ist ein Blockdiagramm einer Desktop-Streaming-Maschine gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 6 ist ein Blockdiagramm eines Desktop-Streaming-Clients gemäß einem Ausführungsbeispiel der Erfindung.
  • 7 ist ein Flussdiagramm eines Verfahrens zum Übertragen eines Ereignisses zu einem entfernten Client gemäß einem Ausführungsbeispiel der Erfindung.
  • Die Zeichnungen, auf die in dieser Beschreibung Bezug genommen wird, sind nicht als maßstabsgetreu gezeichnet zu verstehen, außer es ist spezifisch angegeben.
  • Bester Modus zum Ausführen der Erfindung
  • Nun wird detailliert Bezug auf verschiedene Ausführungsbeispiele der Erfindung genommen, von denen Beispiele in den zugehörigen Zeichnungen dargestellt sind. Während die Erfindung in Verbindung mit diesen Ausführungsbeispielen beschrieben wird, ist klar, dass dieselben die Erfindung nicht auf diese Ausführungsbeispiele begrenzen sollen. Bei der folgenden Beschreibung der vorliegenden Erfindung sind ferner zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu liefern. In anderen Fällen wurden gut bekannte Verfahren, Prozeduren, Komponenten und Schaltungen nicht detailliert beschrieben, um Aspekte der vorliegenden Erfindung nicht unnötig zu verschleiern.
  • 1 ist ein Blockdiagramm eines Servers 101 und eines Clients 102, die in einem Netzwerk 100 gekoppelt sind, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Es ist ersichtlich, dass das Netzwerk 100 andere Elemente als diese umfassen kann, die gezeigt sind. Das Netzwerk 100 kann ferner mehr als eines der verschiedenen gezeigten Elemente umfassen; es kann beispielsweise mehrere Clients geben, die mit dem Server 101 gekoppelt sind, und es kann mehrere Server geben. Die Funktionalität des Servers 101 und des Clients 102 ist unten erörtert (siehe zumindest 2 und 6); es ist jedoch ersichtlich, dass diese Ele mente eine andere Funktionalität als diese implementieren können, die erörtert ist.
  • Eine Kommunikation kann direkt zwischen dem Server 101 und dem Client 102 in 1 oder indirekt durch eine Zwischenvorrichtung oder einen Knoten (nicht gezeigt) auftreten. Ferner kann eine Kommunikation drahtgebunden oder drahtlos oder eine Kombination von drahtgebunden und drahtlos sein. Bei einem Ausführungsbeispiel tritt eine Kommunikation über das World-Wide-Web (oder Internet) auf.
  • Bei einem Ausführungsbeispiel sind der Server 101 und der Client 102 Computersysteme, die eine Verarbeitungsfähigkeit und eine Speicherkapazität liefern. Gemäß den Ausführungsbeispielen der vorliegenden Erfindung implementiert der Server 101 zusätzlich einen Desktop-Streaming-Server 110 und implementiert der Client 102 einen Desktop-Streaming-Client 120. Bei diesem Ausführungsbeispiel ermöglichen der Desktop-Streaming-Server 110 und der Desktop-Streaming-Client 120, dass der Server 101 eine Anzeige (z. B. eine grafische Benutzerschnittstelle und insbesondere eine (Desktop-Anzeige) dem Client 102 zuführt. Wie es zu sehen ist, sind sowohl eine serverseitige Steuerung als auch eine clientseitige Steuerung entweder gleichzeitig oder ausschließlich zugelassen.
  • Gemäß den Ausführungsbeispielen der vorliegenden Erfindung werden „Ereignisse" von dem Server 101 zu dem Client 102 und umgekehrt unter Verwendung des Desktop-Streaming-Servers 110 bzw. des Desktop-Streaming-Clients 120 übertragen. Wie hierin verwendet, ist ein Ereignis im Allgemeinen eine Ausgabe eines Softwaretreibers, wie beispielsweise eines Tastaturtreibers, eines Maustreibers, eines Videotreibers oder eines Audiotreibers. Somit umfassen Ereignisse erfassbare Handlungen oder Auftretensfälle, wie beispielsweise ein Klicken einer Maustaste oder ein Drücken einer Taste an einer Tastatur. Ereignisse können sich ferner auf Handlungen oder Auftretensfälle beziehen, die bewirken können, dass eine Veränderung bei der Anzeige (grafischen Benutzerschnittstelle) durch den Client 102 angezeigt wird. Zum Beispiel kann eine Veränderung bei der Anzeige, die durch ein Scrollen durch ein Textdokument (Textverarbeitungsdokument) oder durch ein Wechseln von einer Seite zu einer anderen Seite in dem Dokument bewirkt wird, ein Ereignis bilden. Eine Bewegung eines Fensters in der Anzeige kann ebenfalls ein Ereignis bilden. Eine sich bewegende Videoanzeige kann ebenfalls ein Ereignis bilden. Ein Audioabtastwert kann ebenfalls ein Ereignis bilden.
  • Wie hierin verwendet, ist zusammenfassend gesagt ein Ereignis eine Ausgabe eines Treibers, der entweder bei dem Server 101 oder dem Client 102 verwendet wird; ein Ereignis kann eine Veränderung bei der Anzeige an entweder dem Server 101 oder dem Client 102 bewirken und/oder kann eine Audioausgabe an dem Client 102 bewirken. Ereignisse können allgemein kategorisiert sein als: Steuerereignisse und Datenereignisse. Steuerereignisse tragen Steuerinformationen, um die Ausführungsverhaltensweisen anderer Komponenten lokal oder entfernt zu verändern. Datenereignisse tragen Inhaltsdaten, um andere Komponenten über Inhaltsveränderungen zu informieren.
  • Der Einfachheit einer Erörterung halber wird hierin der Begriff „Maus" verwendet; es ist jedoch klar, dass andere Einrichtungen einer Cursorsteuerung anstelle von oder in Kombination mit einer Maus verwendet werden können. Es gibt eine Unzahl von Cursorsteuermechanismen, die auf dem Gebiet bekannt sind, und jeder von diesen kann gemäß der vorliegenden Erfindung verwendet werden. Der Begriff „Tastatur" wird ebenfalls hierin verwendet. Wiederum gibt es eine Unzahl von Mechanismen, die auf dem Gebiet bekannt sind und die Funktionalität einer Tastatur liefern, einschließlich Spracherkennungssystemen, und jeder von diesen kann gemäß der vorliegenden Erfindung verwendet werden. Obwohl somit Ausführungsbeispiele der vorliegenden Erfindung für eine Maus und eine Tastatur beschrieben sind, ist die vorliegen de Erfindung nicht so begrenzt. Anstelle dessen sollte das Augenmerk auf dem Begriff „Ereignis" und darauf, wie dieser Begriff hierin verwendet wird, liegen, wie es oben beschrieben ist. In diesem Zusammenhang sind Tastatur- und Mausereignisse einfach Beispiele von Ereignissen, während die Ausführungsbeispiele der vorliegenden Erfindung für eine Verwendung bei praktisch allen Typen von Ereignissen gut geeignet sind.
  • Bei einem Ausführungsbeispiel werden auf der Serverseite die Ereignisse, die von den Treibern empfangen werden, in Ereigniswarteschlangen gemäß dem Ereignistyp abgegeben. Die Ereignisse werden dann gemäß dem Ereignistyp derselben verarbeitet; z. B. kann ein Multimedia-Ereignis codiert werden. Die Ereignisse werden dann von dem Server 101 zu dem Client 102 gemäß einem Protokoll übertragen, das dem Ereignistyp entspricht. Bei einem Ausführungsbeispiel werden Ereignisse von Tastatur- und Maustreibern zu dem Client 102 unter Verwendung eines Protokolls wie dem Transmission Control Protocol (TCP) übertragen, während Ereignisse von Video- und Audiotreibern zu dem Client 102 unter Verwendung eines Protokolls wie dem Real Time Protocol (RTP) übertragen werden. Diese Prozesse sind in Verbindung mit 2 unten detaillierter beschrieben.
  • TCP und RTP sind auf dem Gebiet bekannt. TCP liefert ein höchst zuverlässiges Protokoll, während RTP die Zeitsteuerfähigkeit liefert, die zum Synchronisieren der Video- und Audioabschnitte eines Multimediadatenobjekts nützlich ist. Somit kann TCP verwendet werden, um Steuerereignisse (z. B. Tastatur- und Mausereignisse) sowie andere Ereignisse hoher Genauigkeit genau zu übertragen, wie beispielsweise Veränderungen bei Graphikanwendungen, und kann RTP für Streaming-Rahmenpuffer-(Videopuffer-) und Tonpufferaktualisierungen verwendet werden. Andere Protokolle, die diese oder ähnliche Fähigkeiten liefern können, können anstelle dessen verwendet werden.
  • Auf der Clientseite werden bei einem Ausführungsbeispiel Ereignisse von Tastatur- und Maustreibern empfangen und unter Verwendung des Protokolls wie TCP zu dem Server 101 von 1 übertragen. Dieser Prozess ist in Verbindung mit 6 unten weiter beschrieben. Bei dem vorliegenden Ausführungsbeispiel lässt die Beziehung zwischen dem Server 101 und dem Client 102 den Client keine Ereignisse von Audio- und Videotreibern zu dem Server senden; die vorliegende Erfindung ist jedoch nicht so begrenzt.
  • 2 ist ein Blockdiagramm eines Desktop-Streaming-Servers 110 gemäß einem Ausführungsbeispiel der Erfindung. Der Desktop-Streaming-Server 110 ist in dem Server 101 von 1 als eine Hardware, eine Software, eine Firmware oder eine Kombination derselben implementiert. Wie es durch 2 dargestellt ist, umfasst der Desktop-Streaming-Server 110 eine Anzahl von Elementen, die der Klarheit der Darstellung und Erörterung halber getrennt wiedergegeben sind; es ist jedoch klar, dass diese Elemente innerhalb des Desktop-Streaming-Servers 110 eventuell nicht als getrennte Entitäten existieren. Gemäß den verschiedenen Ausführungsbeispielen der vorliegenden Erfindung liefert der Desktop-Streaming-Server 110 im Allgemeinen die Fähigkeit und Funktionalität, die durch die verschiedenen Elemente von 2 geliefert werden. Zusätzlich kann der Desktop-Streaming-Server 110 andere Fähigkeiten und Funktionalitäten zusätzlich zu diesen liefern, die hierin beschrieben sind.
  • Bei dem vorliegenden Ausführungsbeispiel empfängt eine Treiberschnittstelle 210 Eingaben (Ereignisse) von einer Anzahl von Treibern, wie beispielsweise einem Tastaturtreiber 201, einem Maustreiber 202, einem Videotreiber 203 und/oder einem Audiotreiber 204, aber nicht begrenzt darauf. Zusätzlich zu einem Abfangen herkömmlicherer Ereignisse, wie beispielsweise Fensteränderungen, einer Tastatureingabe und einer Cursorbewegung, tastet somit die Treiber schnittstelle 210 auch Videodaten von dem Videotreiber 203 und Audiodaten von dem Audiotreiber 204 ab.
  • Im Allgemeinen sind die Treiber 201204 Komponenten des zugrundeliegenden Betriebssystems. Der Tastaturtreiber für eine Windows-Umgebung beispielsweise kann unterschiedlich zu dem Tastaturtreiber für eine Linux-Umgebung sein. Gemäß dem vorliegenden Ausführungsbeispiel liefert die Treiberschnittstelle 210 die Fähigkeit, mit den verschiedenen Typen von Treibern zu kommunizieren, während eine feste Schnittstelle mit den nachgelagerten Abschnitten des Desktop-Streaming-Servers 110 geliefert ist (z. B. eine feste Schnittstelle mit einem Ereignisfilter 220).
  • 3 ist ein Blockdiagramm einer Treiberschnittstelle 210 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Bei diesem Ausführungsbeispiel umfasst die Treiberschnittstelle 210 eine Anzahl von Schnittstellenmodulen, die durch Schnittstellen 301 und 302 veranschaulicht sind, so dass es ein Modul gibt, das zum Bilden einer Schnittstelle mit jedem Treiber geeignet ist. Das heißt nicht, dass es ein Schnittstellenmodul pro Treiber gibt, obwohl dies der Fall sein kann.
  • Bei dem vorliegenden Ausführungsbeispiel umfasst die Treiberschnittstelle 210 ferner eine Anwendungsprogrammschnittstelle (API = Application Program Interface) 305, die den Schnittstellen 301 und 302 etc. gemeinsam ist. Die API 305 stellt trotz der Unzahl möglicher Treiber dem Rest des Desktop-Streaming-Servers 110 eine einzige Schnittstelle bereit, und isoliert somit den Desktop-Streaming-Server 110 vor dem zugrundeliegenden Betriebssystem.
  • Unter erneuter Bezugnahme auf 2 werden bei dem vorliegenden Ausführungsbeispiel die Ereignisse von der Treiberschnittstelle 210 zu einem Ereignisfilter 220 geliefert (durch dasselbe empfangen). Bei diesem Ausführungsbeispiel identifiziert das Ereignisfilter 220 das Ereignis gemäß einem Ereignistyp und gibt das Ereignis gemäß dem Ereignistyp in eine jeweilige Ereigniswarteschlage ab. Die Ereigniswarteschlangen werden verwendet, um ähnliche Typen von Ereignissen zu puffern, die unter Verwendung eines Protokolls, das für den Ereignistyp geeignet ist (z. B. TCP oder RTP), nach einer Verarbeitung (falls es eine gibt), die für den Ereignistyp geeignet ist, zu dem Desktop-Streaming-Client 120 (1) übertragen werden können.
  • Bei dem vorliegenden Ausführungsbeispiel kategorisiert das Ereignisfilter 220 von 2 Ereignisse in die folgenden Typen: 1) Steuerereignisse, die beispielsweise durch eine Tastatureingabe oder eine Cursorbewegung (z. B. Mausbewegung) erzeugt werden; 2) Fensterbewegungsereignisse, die durch Fensterbewegungen erzeugt werden, bei denen ein Fensterinhalt unverändert ist; 3) Fensteraktualisierungen, die durch eine Veränderung bei einem Fensterinhalt erzeugt werden; und 4) Audioabtastwerte, die aus einer Veränderung bei dem Tonpuffer des Audiotreibers 204 aufgenommen werden. Bei diesem Ausführungsbeispiel werden Steuerereignisse an die Steuerereigniswarteschlage 231 weitergeleitet; werden Fensterbewegungen an die Fensterbewegungswarteschlange 232 weitergeleitet; werden Fensteraktualisierungen an die Fensteraktualisierungswarteschlage 233 weitergeleitet; und werden Audioabtastwerte an die Audioabtastwertwarteschlange 234 weitergeleitet.
  • Bei dem vorliegenden Ausführungsbeispiel zeichnen Steuerereignisse in der Steuerereigniswarteschlange 231 die Koordinatenveränderungen der Maus oder des Cursors auf. Bei einer bestimmten Cursorbewegung werden beispielsweise eventuell lediglich die Start- und Endkoordinaten der Bewegung zu dem Desktop-Streaming-Client 120 von 1 übertragen. Steuerereignisse können ferner durch die Desktop-Streaming-Maschine 250 optimiert werden.
  • Mit weiterem Bezug auf 2 zeichnet bei dem vorliegenden Ausführungsbeispiel die Fensterbewegungswarteschlange 232 die Koordinatenveränderungen eines Fensters auf, das bewegt wird (ohne dass der Inhalt des Fensters verändert wird). In jenen Fällen, in denen der Fensterinhalt vorhergehend zu dem Desktop-Streaming-Client 120 von 1 übertragen wurde, werden eventuell lediglich die Veränderungen bei den Koordinaten des Fensters zu dem Client übertragen. Der Client kann dann die Desktopanzeige unter Verwendung des vorhergehend empfangenen Fensterinhalts und der neuen Fensterkoordinaten aufbereiten.
  • Gemäß dem vorliegenden Ausführungsbeispiel zeichnet die Fensteraktualisierungswarteschlange 233 von 2 die Aktualisierungen eines Fensterinhalts auf. Diese Aktualisierungen können aus dem Videorahmenpuffer aufgenommen werden. Um eine Auswahl eines geeigneten Codierers und Übertragungsprotokolls zu erleichtern, werden bei einem Ausführungsbeispiel Fensteraktualisierungen in drei Typen kategorisiert: 1) Grafikfensteraktualisierungen; 2) Videofensteraktualisierungen und 3) andere Fensteraktualisierungen. Grafik wird hier verwendet, um sich auf relativ statische Bilder zu beziehen (z. B. Bilder mit relativ niedrigen Aktualisierungsraten verglichen mit Video); Video bezieht sich auf Bewegtbilder mit einer relativ hohen Aktualisierungsrate; und andere Fensteraktualisierungen bezieht sich auf einen relativ statischen Fensterinhalt, wie beispielsweise den Text in einem Textverarbeitungsdokument. Allgemein gesagt, können die Fensteraktualisierungen gemäß der Komplexität des Bilds und der Aktualisierungsfrequenz in Kategorien getrennt werden.
  • 4 ist ein Blockdiagramm, das eine Differenzierung von Fensteraktualisierungen gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt. Bei diesem Ausführungsbeispiel filtert ein Fensteraktualisierungsdifferenzierer 410 die Fenster in die zuvor erwähnten Kategorien. Der Fensteraktualisierungsdifferenzierer 410 kann dies unter Verwendung von Informationen wie dem Anzeigeanwendungstyp, und den Koordinaten und Bildschirmgrößen der Fenster erzielen.
  • Der Anzeigeanwendungstyp kann von der Treiberschnittstelle 210 (2) gewonnen werden, wenn beispielsweise ein neues Fenster erzeugt wird, auf einen Einheitsressourcenlokator (URL = Uniform Resource Locator) für eine Website geklickt wird, oder eine Anwendung ausgeführt wird. Die Koordinaten und Bildschirmgrößen helfen lokalisieren, welcher Teil einer Aktualisierung an dem Videorahmenpuffer zu welchem Fenster gehört.
  • Grafikfensteraktualisierungen werden zu der Grafikfensteraktualisierungswarteschlange 421 weitergeleitet; Videofensteraktualisierungen werden zu der Videofensteraktualisierungswarteschlange 422 weitergeleitet; und andere Fensteraktualisierungen werden zu der Andere-Fensteraktualisierungen-Warteschlange 123 weitergeleitet.
  • Unter erneuter Bezugnahme auf 2 wird bei der vorliegenden Erfindung die Übertragung von Ereignissen von jeder der Warteschlangen 231234 zu der Desktop-Streaming-Maschine 250 durch einen jeweiligen Regler 241, 242, 243 bzw. 244 ausgelöst. Auf ähnliche Weise befinden sich bei dem Ausführungsbeispiel von 4 die Warteschlangen 421423 unter einer Steuerung eines jeweiligen Reglers 431, 432 bzw. 433.
  • Bei einem Ausführungsbeispiel lösen die Regler 241244 von 2 (und die Regler 431433 von 4) Ereignisse von den jeweiligen Warteschlangen derselben basierend darauf aus (leiten dieselben), dass eine Schwelle erreicht wird oder ein Zeitintervall vergangen ist. Die Schwelle basiert auf der Anzahl von Ereignissen in einer jeweiligen Ereigniswarteschlange. Wenn die Anzahl von Ereignissen in der Warteschlange eine vordefinierte Schwelle erreicht, kann ein gewisser Teil der Ereignisse oder können alle Ereignisse aus der Warteschlange übertragen werden. Der Schwellenmechanismus liefert die Fähigkeit, einen Stoß (Burst) von Ereignissen zu handhaben, um zu verhindern, dass die Warteschlange zu viele Ereignisse ansammelt, bevor die Ereignisse ansprechend auf ein Zeitablaufsignal übertragen werden. Die Schwelle kann für jede der Warteschlangen 231234 und 421423 unterschiedlich sein. Die Schwelle kann ferner durch die Desktop-Streaming-Maschine 250 basierend auf einem Überwachen der Kanäle des Desktop-Streaming-Client 120 (1) oder basierend auf einer Rückkopplung von dem Desktop-Streaming-Client 120 verändert werden.
  • Gemäß dem vorliegenden Ausführungsbeispiel tritt andernfalls die Übertragung von Ereignissen aus einer jeweiligen Ereigniswarteschlange auf, nachdem ein spezifiziertes Zeitintervall vergangen ist. Bei einem Ausführungsbeispiel können die Regler 241244 von 2 und die Regler 431433 von 4 somit einen Zeitgeber umfassen. Das Zeitintervall kann für jede der Warteschlangen 231234 (2) und 421423 (4) unterschiedlich sein. Das Zeitintervall kann auch durch die Desktop-Streaming-Maschine 250 (2) basierend auf einem Überwachen der Kanäle zu dem Desktop-Streaming-Client 120 (1) oder basierend auf einer Rückkopplung von dem Desktop-Streaming-Client 120 verändert werden. Dies ist in Verbindung mit 5 und 6 unten weiter beschrieben.
  • 5 ist ein Blockdiagramm der Desktop-Streaming-Maschine 250 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Wie es durch 5 dargestellt ist, umfasst die Desktop-Streaming-Maschine 250 eine Anzahl von Elementen, die der Klarheit einer Darstellung und Erörterung halber getrennt wiedergegeben sind; es ist jedoch klar, dass diese Elemente eventuell nicht als getrennte Entitäten innerhalb der Desktop-Streaming-Maschine 250 existieren. Gemäß den verschiedenen Ausführungsbeispielen der vorliegenden Erfindung liefert die Desktop-Streaming-Maschine 250 im Allgemeinen die Fähigkeit und Funktionalität, die durch die verschiedenen Elemente von 5 geliefert werden. Zusätzlich kann die Desktop-Streaming-Maschine 250 andere Fähig keiten und Funktionalitäten zusätzlich zu diesen liefern, die hierin beschrieben sind.
  • Bei dem vorliegenden Ausführungsbeispiel ist ein Zeitplaner (Scheduler) 510 mit den Reglern 580 (z. B. den Reglern 241244 und 431433 von 2 bzw. 4) gekoppelt, die wiederum mit den Warteschlangen 590 (z. B. den Warteschlangen 231234 und 421423 von 2 bzw. 4) gekoppelt sind. Der Zeitplaner 510 ist ferner mit einem Monitor 530 gekoppelt. Bei einem Ausführungsbeispiel misst der Monitor 530 regelmäßig die verfügbare Bandbreite der Kanäle 571, 572 und 573. Obwohl lediglich drei Kanäle gezeigt sind, ist ersichtlich, dass es irgendeine andere Anzahl von Kanälen als drei geben kann. Bei einem anderen Ausführungsbeispiel sammelt der Monitor 530 ferner Informationen von dem Desktop-Streaming-Client 120 (1) hinsichtlich der Arbeitslast des Client sowie der Attribute der Client-Vorrichtung (z. B. die Anzeigefähigkeiten der Vorrichtung, beispielsweise Bildschirmgröße und Auflösung, die Verarbeitungsfähigkeiten der Vorrichtung, wie beispielsweise Prozessorgeschwindigkeit, die verfügbare Speicherkapazität der Vorrichtung, und dergleichen). Basierend auf den Informationen von dem Monitor 530 kann der Zeitplaner 510 den Auslöser (z. B. das Zeitintervall, die Schwelle oder einen anderen Mechanismus) einstellen, der verwendet wird, um die Übertragung von Ereignissen aus den verschiedenen Ereigniswarteschlangen einzuleiten. Wie es oben erwähnt ist, können für jede der Warteschlangen unterschiedliche Zeitintervalle, Schwellen oder dergleichen spezifiziert sein.
  • Der Zeitplan zum Übertragen von Ereignissen in der Steuerereigniswarteschlange 231 und der Fensterbewegungswarteschlange 232 (2) ist relativ einfach, weil diese Typen von Ereignissen einen geringen Kommunikationsmehraufwand erfordern und deshalb beinahe, wenn nicht sogar ganz, unmittelbar übertragen werden können. Der Zeitplan zum Übertragen von Ereignissen aus der Fensteraktualisierungswarteschlange 233 und der Audioabtastwertwarteschlange 234 kann gemäß den Informationen von dem Monitor 520 (und auch von dem Monitor 630 des Clients; siehe 6) angepasst werden, um eine zufrieden stellende Anzeige bei dem Client 102 (1) zu liefern.
  • Unter weiterer Bezugnahme auf 5 und auch mit Bezug auf 2 und 4 leitet eine Übertragungsmaschine 540 die Ereignisse aus Ereigniswarteschlangen 590 basierend auf dem Ereignistyp zu dem geeigneten Kanal weiter. Bei einem Ausführungsbeispiel können beispielsweise Ereignisse von der Steuerereigniswarteschlange 231, der Fensterbewegungswarteschlange 232, der Grafikfensteraktualisierungswarteschlange 421 und der Andere-Fenster-Aktualisierungen-Warteschlange 423 zu einem TCP-Kanal weitergeleitet werden, während Ereignisse aus der Audioabtastwertewarteschlange 234 und der Videofensteraktualisierungswarteschlange 422 zu einem RTP-Kanal weitergeleitet werden können.
  • Mit Bezug auf 5 kann bei dem vorliegenden Ausführungsbeispiel Video- und/oder Audioinhalt unter Verwendung eines Codierers 550 codiert (komprimiert) werden. Der Grad einer Codierung ist typischerweise eine Funktion der Attribute des Clients 102 (1), aber der Grad einer Codierung kann auch durch die Bandbreite der Verbindung (des Kanals) zwischen dem Client 102 und dem Server 101 (1) beeinflusst sein.
  • Bei dem vorliegenden Ausführungsbeispiel synchronisiert der Synchronisierer 560 von 5 das Audio mit anderen verwandten Medienteilen. Die Medienteile, die mit dem Audio verwandt sind, könnten Text, Grafiken oder Video sein. Bei. einem Ausführungsbeispiel werden das Audio und die verwandten Abschnitte über getrennte Kanäle gesendet (z. B. RTP-Kanäle). Bei diesem Ausführungsbeispiel fordert der Synchronisierer 560 den Zeitplaner 510 auf, Daten aus der entsprechenden Abtastwertewarteschlange (der Audioabtastwertewarteschlange 234, der Fensteraktualisierungswarteschlange 233 und/oder der Fensterbewegungswarteschlange 232 von 2) auf eine synchronisierte Weise zu erhalten. Falls beispielsweise Audiopakete im Wert von einer Sekunde gewonnen werden, sollten auch Videopakete im Wert von einer Sekunde gewonnen werden. Dieser Ansatztyp hilft sicherstellen, dass die Audio- und Videopakete an dem Client 102 (1) gleichzeitig oder innerhalb eines kurzen Intervalls voneinander ankommen werden. Ein kleiner Puffer kann durch den Client 102 verwendet werden, um eine jegliche Disparität bei Ankunftszeiten zu überwinden.
  • Mit Bezug auf 5 wird bei einem anderen Ausführungsbeispiel die Synchronisation durch den Codierer 550 vorgenommen, ungeachtet dessen, ob die Medienteile (z. B. Videodaten) codiert sind oder nicht. Bei diesem Ausführungsbeispiel kann der Codierer 550 die Audio- und verwandten Medienteile multiplexen und die Daten nachfolgend zu einem Kommunikationsverwalter 570 übertragen, der dann die gemultiplexten Pakete über einen Kanal (z. B. einen RTP-Kanal) übertragen kann. Ein Decodierer auf dem Client 102 (1; siehe auch 6 unten) kann die gemultiplexten Daten auf eine synchronisierte Weise abspielen. Beispielsweise kann der Decodierer innerhalb einer Sekunde tatsächlicher Zeit Audiodaten im Wert von einer Sekunde decodieren, die in einem Audiopuffer platziert sein können. Während der Zeit, die bei der einen Sekunde tatsächlicher Zeit verbleibt, kann der Decodierer so viele Videorahmen wie möglich decodieren. Auf diese Weise ist der Desktop-Streaming-Server 110 von 2 in der Lage, Ressourcen auszunutzen, die auf der Client-Seite verfügbar sind.
  • Unter weiterer Bezugnahme auf 5 verwaltet bei dem vorliegenden Ausführungsbeispiel der Kommunikationsverwalter 570 die Kommunikationskanäle 571573. Bei dem vorliegenden Ausführungsbeispiel ist ebenfalls ein Client-Ereignisempfänger 520 zum Empfangen von Steuerereignissen (z. B. Tastatur- und Mausereignissen) von dem Desktop-Streaming-Client 120 (1) vorgesehen. Diese Ereignisse werden durch den Client-Ereignisempfänger 520 zu der Trei berschnittstelle 210 weitergeleitet, die bei einem Ausführungsbeispiel dieselben zu dem Videotreiber 203 (2) weiterleitet.
  • Zusammenfassend gesagt, fängt bei einem Ausführungsbeispiel der Desktop-Streaming-Server 110 (2) Ereignisse von den verschiedenen Treibern ab, filtert diese Ereignisse und gibt die Ereignisse zu der geeigneten Ereigniswarteschlange basierend auf einem Ereignistyp ab, codiert optional ausgewählte Videodaten und Audiodaten und streamt diese Daten zu einem Client über einen Kanal, wie beispielsweise einem RTP-Kanal, und reagiert auf Ereignisse, die von dem Client empfangen werden.
  • 6 ist ein Blockdiagramm eines Desktop-Streaming-Clients 120 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Wie es durch 6 dargestellt ist umfasst der Desktop-Streaming-Client 120 eine Anzahl von Elementen, die der Klarheit einer Darstellung und Erörterung halber getrennt wiedergegeben sind; es ist jedoch klar, dass diese Elemente eventuell nicht als getrennte Entitäten innerhalb des Desktop-Streaming-Clients 120 existieren. Im Allgemeinen liefert gemäß den verschiedenen Ausführungsbeispielen der vorliegenden Erfindung der Desktop-Streaming-Client 120 die Fähigkeit und die Funktionalität, die durch die verschiedenen Elemente von 6 geliefert werden. Zusätzlich kann der Desktop-Streaming-Client 120 andere Fähigkeiten und Funktionalitäten zusätzlich zu diesen liefern, die hierin beschrieben sind.
  • Bei dem vorliegenden Ausführungsbeispiel umfasst der Desktop-Streaming-Client 120 einen Agent 610 (der auch als eine Hintergrundroutine (Daemon) bezeichnet werden kann). Bei diesem Ausführungsbeispiel stellt der Agent 610 die Kanalverbindungen mit dem Server 101, insbesondere mit dem Desktop-Streaming-Server 110 (1), her und behält dieselben bei. Wie es erwähnt wurde, können diese Kanäle das TCP- und das RTP-Protokoll verwenden. Der Agent 610 leitet ferner Daten, die über die Kanäle empfangen werden, zu einer Verarbeitungsmaschine 620 weiter. Der Agent 610 kann ferner auf Anforderungen von dem Desktop-Streaming-Server 110 hinsichtlich einer verfügbaren Kanalbandbreite ansprechen. Bei dem Beginn einer Sitzung kann der Agent 610 ferner den Desktop-Streaming-Server 110 über die Decodierfähigkeiten des Clients sowie andere Clientattribute informieren, wie beispielsweise Prozessorgeschwindigkeit und Anzeigebildschirmgröße und -auflösung.
  • Bei dem vorliegenden Ausführungsbeispiel ist der Agent 610 von 6 mit einem Monitor 630 gekoppelt und kann Informationen von dem Monitor 630 zu dem Desktop-Streaming-Server 110 von 1 liefern. Bei diesem Ausführungsbeispiel kann der Monitor 630 die Arbeitslast des Clients 102 (1) überwachen und kann ferner Informationen hinsichtlich einer verfügbaren Speicherkapazität liefern. Der Monitor 630 kann ferner basierend auf den Ereignissen, die von dem Desktop-Streaming-Server 110 empfangen werden, eine Rückkopplung hinsichtlich der Effizienz liefern, bei der die Anzeige erzeugt wird, so dass die Streaming-Rate beispielsweise entsprechend eingestellt werden kann. Somit können beispielsweise die Informationen von dem Monitor 630 (und auch von dem Agent 610) durch den Zeitplaner 510 von 5 verwendet werden, um den Auslöser (z. B. das Zeitintervall, die Quelle oder einen anderen Mechanismus) zu setzen oder einzustellen, der verwendet wird, um die Übertragung von Ereignissen aus den verschiedenen Ereigniswarteschlangen des Desktop-Streaming-Servers 110 einzuleiten.
  • Mit Bezug auf 6 ist bei dem vorliegenden Ausführungsbeispiel der Agent 610 ferner mit der Verarbeitungsmaschine 620 gekoppelt. Ereignisse, die durch den Agent 610 empfangen werden, werden zu der Verarbeitungsmaschine 620 weitergeleitet. Bei einem Ausführungsbeispiel umfasst die Verarbeitungsmaschine 620 einen Decodierer 622 zum Decodieren (De komprimieren) von Daten (Ereignissen), falls die Daten codiert sind. Die Ereignisse von der Verarbeitungsmaschine 620 werden zu einer Treiberschnittstelle 640 weitergeleitet, die auf eine Weise ähnlich dieser, die oben für die Treiberschnittstelle 210 (2) beschrieben ist, wirkt, um die Ereignisse zu einem Videotreiber 663 und/oder Audiotreiber 664 weiterzuleiten.
  • Bei dem vorliegenden Ausführungsbeispiel empfängt die Treiberschnittstelle 640 ferner Ereignisse von einem Tastaturtreiber 661 und einem Maustreiber 662 der Client-Vorrichtung. Diese Ereignisse werden zu einem Client-Ereignisprozessor 650 weiter geleitet, der diese Ereignisse durch ein Eliminieren nichtkritischer Ereignisse optimiert und dann die kritischen Ereignisse zu dem Desktop-Streaming-Server 110 (2) über den Agent 610 weiterleitet. Das heißt, bei einer speziellen Cursorbewegung kann beispielsweise der Client-Ereignisprozessor 650 Zwischenkoordinaten eliminieren, die der Cursorbewegung zugeordnet sind, wobei lediglich die Start- und Endkoordinaten der Bewegung identifiziert und für eine Übertragung zu dem Desktop-Streaming-Server 110 behalten werden.
  • Zusammenfassend gesagt, decodiert somit bei einem Ausführungsbeispiel der Desktop-Streaming-Client 120 (6) Ereignisse, die von dem Server übertragen werden (wenn die Ereignisse codiert sind), aktualisiert die Anzeige basierend auf den Ereignissen, liefert eine Audiowiedergabe, wenn die Ereignisse Audioabtastwerte umfassen, spricht auf Anforderungen von dem Desktop-Streaming-Server 110 (2) an, liefert regelmäßig Überwachungsinformationen zu dem Desktop-Streaming-Server 110 und fängt Steuerereignisse ab und sendet dieselben zu dem Desktop-Streaming-Server 110.
  • 7 ist ein Flussdiagramm 700 eines Verfahrens zum Übertragen eines Ereignisses von einem Server zu einem Client gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Obwohl spezifische Schritte in dem Flussdiagramm 700 offenbart sind, sind derartige Schritte exemplarisch. Das heißt, Ausführungsbeispiele der vorliegenden Erfindung sind gut geeignet, um verschiedene andere Schritte oder Variationen der in dem Flussdiagramm 700 dargelegten Schritte durchzuführen. Es ist ersichtlich, dass die Schritte in dem Flussdiagramm 700 in einer unterschiedlichen Reihenfolge als dargestellt durchgeführt werden können und dass eventuell nicht alle der Schritte in dem Flussdiagramm 700 durchgeführt werden. Alle der Verfahren oder ein Teil der Verfahren, die durch das Flussdiagramm 700 beschrieben sind, können unter Verwendung computerlesbarer und computerausführbarer Anweisungen implementiert sein, die beispielsweise in computerverwendbaren Medien eines Computersystems oder dergleichen resident sind. Im Allgemeinen wird das Flussdiagramm 700 durch Vorrichtungen wie den Server 101 von 1 implementiert.
  • Bei einem Schritt 710 von 7 wird bei dem vorliegenden Ausführungsbeispiel ein Ereignis von einem Treiber empfangen. Das Ereignis kann ein Tastaturereignis, ein Cursorsteuerereignis (z. B. Mausereignis) ein Videoereignis oder ein Audioereignis sein.
  • Bei einem Schritt 720 wird bei dem vorliegenden Ausführungsbeispiel das Ereignis zu einer Ereigniswarteschlange gemäß dem Ereignistyp abgegeben. Das heißt, Ereignisse des gleichen Typs werden zu einer speziellen Warteschlange weitergeleitet. Bei einem Ausführungsbeispiel werden die Ereignisse gefiltert, um einen Ereignistyp zu identifizieren.
  • Bei einem Schritt 730 wird bei dem vorliegenden Ausführungsbeispiel das Ereignis gemäß dem Ereignistyp verarbeitet. Wenn das Ereignis beispielsweise Multimediadaten (z. B. Videodaten und/oder Audiodaten) umfasst, wird das Ereignis eventuell codiert. Bei einer Cursorbewegung können die Koordinaten der Punkte zwischen dem Start- und dem Endpunkt eliminiert werden, wobei lediglich die Koordinaten des Start- und des Endpunkts behalten werden.
  • Bei einem Schritt 740 wird bei dem vorliegenden Ausführungsbeispiel das Ereignis zu dem Client übertragen, wenn dasselbe ausgelöst wird. Die Übertragung zu dem Client tritt gemäß einem Protokoll auf, das dem Typ eines Ereignisses entspricht. Bei einem Ausführungsbeispiel wird eine Ereignisübertragung durch das Vergehen eines spezifizierten Zeitintervalls ausgelöst. Bei einem anderen Ausführungsbeispiel wird eine Ereignisübertragung ausgelöst, wenn die Anzahl von Ereignissen in der Ereigniswarteschlange eine spezifizierte Schwelle erreicht.
  • Ausführungsbeispiele der vorliegenden Erfindung sind somit beschrieben. Während die vorliegende Erfindung in speziellen Ausführungsbeispielen beschrieben wurde, ist ersichtlich, dass die vorliegende Erfindung nicht als durch derartige Ausführungsbeispiele begrenzt aufgefasst werden sollte, sondern anstelle dessen gemäß den folgenden Ansprüchen aufgefasst werden sollte.

Claims (10)

  1. Ein Verfahren (700) zum Übertragen eines Ereignisses von einem Server zu einem entfernten Client, wobei das Verfahren folgende Schritte aufweist: Empfangen (710) eines Ereignisses von einem Treiber; Abgeben (720) des Ereignisses in eine Ereigniswarteschlange gemäß einem Ereignistyp; Verarbeiten (730) des Ereignisses gemäß dem Ereignistyp, wobei das Verarbeiten ein Codieren des Ereignisses aufweist, wenn das Ereignis Multimediadaten aufweist; und Übertragen (740) des Ereignisses zu dem entfernten Client, wenn dasselbe ausgelöst wird, wobei das Übertragen gemäß einem Protokoll entsprechend dem Ereignistyp auftritt.
  2. Das Verfahren gemäß Anspruch 1, bei dem das Ereignis ein Tastaturereignis, ein Mausereignis, ein Videoereignis oder ein Audioereignis ist und bei dem der Treiber ein Tastaturtreiber, ein Maustreiber, ein Videotreiber oder ein Audiotreiber ist.
  3. Das Verfahren gemäß Anspruch 2, bei dem das Protokoll für Tastatur-, Maus- und Graphikereignisse ein Transport-Control-Protocol (TCP) und für Video- und Audioereignisse ein Real-Time-Protocol (RTP) ist.
  4. Das Verfahren gemäß Anspruch 1, bei dem das Abgeben folgenden Schritt aufweist: Filtern (720) des Ereignisses, um den Ereignistyp zu identifizieren.
  5. Das Verfahren gemäß Anspruch 1, bei dem das Verarbeiten von Multimediadaten ferner folgenden Schritt aufweist: Synchronisieren (730) eines Audioabschnitts und eines verwandten Medienabschnitts der Multimediadaten während des Codierens, wobei der verwandte Medienabschnitt aus der Gruppe ausgewählt ist, die Texte, Graphiken und Video umfasst.
  6. Das Verfahren gemäß Anspruch 1, bei dem das Übertragen durch einen Zeitgeber ausgelöst wird.
  7. Das Verfahren gemäß Anspruch 1, bei dem das Übertragen ausgelöst wird, wenn die Anzahl von Ereignissen in der Ereigniswarteschlange eine Schwelle erreicht.
  8. Das Verfahren gemäß Anspruch 1, das ferner folgenden Schritt aufweist: Empfangen (520) von Ereignissen von dem entfernten Client.
  9. Ein System (110) zum Übertragen eines Ereignisses zu einem entfernten Client, wobei das System folgende Merkmale aufweist: eine Treiberschnittstelle (210) zum Empfangen unterschiedlicher Typen von Ereignissen von einer Mehrzahl von Treibern (201204); ein Ereignisfilter (220), das mit der Treiberschnittstelle gekoppelt ist, wobei das Ereignisfilter zum Identifizieren eines Ereignisses durch einen Ereignistyp und zum Platzieren des Ereignisses in eine Ereig niswarteschlange (231234, 421423) gemäß dem Ereignistyp vorgesehen ist; einen Regler (241244, 431433), der mit der Ereigniswarteschlange gekoppelt ist, wobei der Regler zum Leiten des Ereignisses von der Ereigniswarteschlagen zu einer Verarbeitungsmaschine vorgesehen ist, die das Ereignis codiert, wenn das Ereignis Multimediadaten aufweist; und einen Kanal (572, 573), der mit der Verarbeitungsmaschine gekoppelt ist, wobei der Kanal zum Übertragen des Ereignisses zu dem entfernten Client gemäß einem Protokoll entsprechend dem Ereignistyp vorgesehen ist.
  10. Ein System (120) zum Empfangen von Ereignissen von einem entfernten Server, wobei das System folgende Merkmale aufweist: einen Agent (610) zum Verwalten einer Mehrzahl von Kanälen, die zum Empfangen unterschiedlicher Typen von Ereignisses von dem entfernten Server verwendet werden, wobei jeder Kanal einem von einer Mehrzahl unterschiedlicher Protokolle zugeordnet ist, wobei einer der Kanäle für ein Streaming von Multimediadaten vorgesehen ist; eine Verarbeitungsmaschine (620), die mit den Kanälen. gekoppelt ist, wobei die Verarbeitungsmaschine zum Decodieren eines Ereignisses vorgesehen ist, wenn das Ereignis codierte Multimediadaten aufweist; und eine Treiberschnittstelle (640), die mit der Verarbeitungsmaschine gekoppelt ist, wobei die Treiberschnittstelle zum Weiterleiten der Ereignisse zu Audio- und Videotreibern gemäß einem Ereignistyp vorgesehen ist, wobei die Ereignisse an einer Anzeigevorrichtung anzeigbar sind.
DE60309201T 2002-11-27 2003-11-07 Verfahren und system zur übertragung von ereignissen, einschliesslich multimedia daten Expired - Fee Related DE60309201T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/306,536 US20040103438A1 (en) 2002-11-27 2002-11-27 Methods and systems for transferring events including multimedia data
US306536 2002-11-27
PCT/US2003/035821 WO2004051962A1 (en) 2002-11-27 2003-11-07 Methods and systems for transferring events including multimedia data

Publications (2)

Publication Number Publication Date
DE60309201D1 DE60309201D1 (de) 2006-11-30
DE60309201T2 true DE60309201T2 (de) 2007-08-30

Family

ID=32325715

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60309201T Expired - Fee Related DE60309201T2 (de) 2002-11-27 2003-11-07 Verfahren und system zur übertragung von ereignissen, einschliesslich multimedia daten

Country Status (6)

Country Link
US (1) US20040103438A1 (de)
EP (1) EP1566038B1 (de)
JP (1) JP2006514353A (de)
AU (1) AU2003290705A1 (de)
DE (1) DE60309201T2 (de)
WO (1) WO2004051962A1 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8233392B2 (en) * 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
AU2004305808A1 (en) * 2003-09-12 2005-03-31 Citrix Systems,Inc. Method and apparatus for generating graphical and media displays at a thin client
US20050097288A1 (en) * 2003-10-30 2005-05-05 Richard Holzmann System and method for monitoring and non-disruptive backup of data in a solid state disk system
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
JP2008507929A (ja) 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド プライベートネットワークへの遠隔アクセスを安全にする方法およびシステム
US7808906B2 (en) 2004-07-23 2010-10-05 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol using false acknowledgements
US7657657B2 (en) * 2004-08-13 2010-02-02 Citrix Systems, Inc. Method for maintaining transaction integrity across multiple remote access servers
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7810089B2 (en) 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8230096B2 (en) * 2005-01-14 2012-07-24 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US8200828B2 (en) 2005-01-14 2012-06-12 Citrix Systems, Inc. Systems and methods for single stack shadowing
US8296441B2 (en) 2005-01-14 2012-10-23 Citrix Systems, Inc. Methods and systems for joining a real-time session of presentation layer protocol data
US7831728B2 (en) 2005-01-14 2010-11-09 Citrix Systems, Inc. Methods and systems for real-time seeking during real-time playback of a presentation layer protocol data stream
US8145777B2 (en) * 2005-01-14 2012-03-27 Citrix Systems, Inc. Method and system for real-time seeking during playback of remote presentation protocols
US20060159432A1 (en) 2005-01-14 2006-07-20 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US8340130B2 (en) 2005-01-14 2012-12-25 Citrix Systems, Inc. Methods and systems for generating playback instructions for rendering of a recorded computer session
US8077632B2 (en) * 2005-01-20 2011-12-13 Citrix Systems, Inc. Automatic LAN/WAN port detection
AU2005325674A1 (en) 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8191008B2 (en) 2005-10-03 2012-05-29 Citrix Systems, Inc. Simulating multi-monitor functionality in a single monitor environment
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
EP1821490A1 (de) * 2006-02-15 2007-08-22 IBBT vzw Verfahren zur Übertragung von graphischen Daten zu einem Klienten mit beschränkter Funktionalität
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US8667144B2 (en) 2007-07-25 2014-03-04 Qualcomm Incorporated Wireless architecture for traditional wire based protocol
US8811294B2 (en) 2008-04-04 2014-08-19 Qualcomm Incorporated Apparatus and methods for establishing client-host associations within a wireless network
CN102067085B (zh) * 2008-04-17 2014-08-13 微系统道格有限公司 用于向远程客户机虚拟传送软件应用程序的方法和系统
US8572162B2 (en) * 2008-12-01 2013-10-29 Novell, Inc. Adaptive screen painting to enhance user perception during remote management sessions
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US8102849B2 (en) * 2009-02-12 2012-01-24 Qualcomm, Incorporated Association procedure to enable multiple multicast streams
EP2237526A1 (de) * 2009-03-30 2010-10-06 NEC Corporation Verfahren zur Optimierung der entfernten Anzeigeübertragung in einer dünnen Clientrechnerumgebung
US9264248B2 (en) 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
FR2955441B1 (fr) * 2010-01-21 2012-02-24 Sagem Comm Procede d'affichage d'un contenu multimedia sur un ecran de terminal
CN102043631A (zh) * 2010-12-31 2011-05-04 富泰华工业(深圳)有限公司 窗口控制系统及其控制方法
US9413803B2 (en) 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US9582239B2 (en) 2011-01-21 2017-02-28 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US8674957B2 (en) 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
JP5678743B2 (ja) * 2011-03-14 2015-03-04 富士通株式会社 情報処理装置、画像送信プログラム、画像送信方法および画像表示方法
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9727227B2 (en) * 2011-07-28 2017-08-08 Microsoft Technology Licensing, Llc Multi-touch remoting
WO2013027908A1 (en) * 2011-08-25 2013-02-28 Lg Electronics Inc. Mobile terminal, image display device mounted on vehicle and data processing method using the same
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
US20150046599A1 (en) * 2011-09-27 2015-02-12 Google Inc. Multichannel communication systems and methods of using the same
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
US8904451B2 (en) * 2012-04-13 2014-12-02 Theplatform, Llc Systems for prioritizing video processing events based on availability of media file and agent to process the event type
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6275871B1 (en) * 1996-07-03 2001-08-14 Siemens Aktiengesellschaft Asynchronous transport optimizing observer-pattern-like system supporting several modes for an interface definition language-less communication subsystem
US6166734A (en) * 1996-10-01 2000-12-26 Diamond Multimedia Systems, Inc. Portable interactive graphics display tablet and communications system
US6259443B1 (en) * 1998-02-06 2001-07-10 Henry R. Williams, Jr. Method and apparatus for enabling multiple users to concurrently access a remote server using set-top boxes
US6928469B1 (en) * 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6961750B1 (en) * 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US7024451B2 (en) * 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers

Also Published As

Publication number Publication date
JP2006514353A (ja) 2006-04-27
AU2003290705A1 (en) 2004-06-23
US20040103438A1 (en) 2004-05-27
EP1566038B1 (de) 2006-10-18
WO2004051962A1 (en) 2004-06-17
DE60309201D1 (de) 2006-11-30
EP1566038A1 (de) 2005-08-24

Similar Documents

Publication Publication Date Title
DE60309201T2 (de) Verfahren und system zur übertragung von ereignissen, einschliesslich multimedia daten
DE60112103T2 (de) Verfahren und Vorrichtung zur effizientes Verringerung von graphischen Anzeigedaten für ihre Übertragung mittels eines Übertragungsprotokolls für niedrige Bandbreiten
EP1305930B1 (de) System und verfahren zur übertragung von opc-daten über datennetze, insbesondere internet, mit asynchroner datenverbindung
DE602005003471T2 (de) Verfahren und system zur interaktiven steuerung von medien über ein netzwerk
DE60008555T2 (de) Verfahren und vorrichtung zur effizienten übertragung von daten einer interaktiven anwendung zwischen klienten und server mit hilfe einer markup-sprache
EP2837154B1 (de) Verfahren zur steuerung von datenströmen einer virtuellen sitzung mit mehreren teilnehmern, kollaborationsserver, computerprogramm, computerprogrammprodukt und digitales speichermedium
DE102012013336B4 (de) Aushandeln einer kontinuierlichen multi-stream-präsenz
EP3186971A1 (de) Verfahren zur steuerung einer multimedia-anwendung, softwareprodukt und vorrichtung
DE60217907T2 (de) Lokale cache-speicherung von bildern für online-konferenzprogramme
DE10296790T5 (de) Multimediapräsentation
DE102014100183B4 (de) Verfahren und Vorrichtung zum Verwenden eines separaten Rückwärtskanals für Benutzereingaben bei der Replizierung der Anzeige eines mobilen Geräts
DE102011114277B4 (de) Globaler Konferenzplan für verteilte Brücken
DE202019005789U1 (de) Bereitstellung von Ereignisinhalten
DE602005005954T2 (de) Verfahren und System zur Serverfernadministration
DE102014009495B4 (de) Verfahren zum Aufbau einer für die Übermittlung von Medienströmen geeigneten Kommunikationsverbindung von einem ersten RTC-Client zu einem zweiten RTC-Client
DE112009004064T5 (de) Bereitstellen einer angabe einer veränderung an einernutzerschnittstellenvorrichtung über ein netzwerk zwischen computern
DE102014115188A1 (de) Verfahren zur Anpassung eines zu übertragenden Datenstroms an eine Ressourcenauslastung
DE102013103556B4 (de) Videokonferenz-System
DE60127342T2 (de) Systeme und Verfahren für gleichrangige Verbindungen über eine Netz-Schnittstellen-Karte
DE102017110431A1 (de) Verfahren zum Übertragen von Informationen
WO2003034730A1 (de) Verfahren zur übertragung von kommunikationsdaten, video-konferenz- und video-chat-system
DE102017204789A1 (de) Computergestützte Erweiterung der Realitätswahrnehmung für industrielle Anwendungen
EP2200256B1 (de) Verfahren zur Steuerung einer interaktiven Multimedia-Webapplikation
DE10310886B3 (de) Verfahren und System zum gleichzeitigen Anzeigen desselben Inhalts auf zu verschiedenen Computern gehörenden Bildschirmen, sowie Web-Seite mit einem Link zu einem Dienst
EP1022883A2 (de) Verfahren zum Realisieren einer Leistungsmerkmalsteuerung in einem Kommunikationsdatennetz

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee