DE60018067T2 - Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus - Google Patents

Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus Download PDF

Info

Publication number
DE60018067T2
DE60018067T2 DE60018067T DE60018067T DE60018067T2 DE 60018067 T2 DE60018067 T2 DE 60018067T2 DE 60018067 T DE60018067 T DE 60018067T DE 60018067 T DE60018067 T DE 60018067T DE 60018067 T2 DE60018067 T2 DE 60018067T2
Authority
DE
Germany
Prior art keywords
application
state
manager
instructions
digital television
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
DE60018067T
Other languages
English (en)
Other versions
DE60018067D1 (de
Inventor
H. Bartley CALDER
Tao Ye
David Jesus RIVAS
D. Jonathan COURTNEY
L. Keith MESSER
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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
Priority claimed from US09/465,980 external-priority patent/US7257812B1/en
Priority claimed from US09/465,994 external-priority patent/US6874145B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE60018067D1 publication Critical patent/DE60018067D1/de
Publication of DE60018067T2 publication Critical patent/DE60018067T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • 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/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/70Media network packetisation
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • 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/4438Window management, e.g. event handling following interaction with the user interface
    • 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/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • 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/485End-user interface for client configuration
    • H04N21/4858End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Circuits Of Receivers In General (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. FACHGEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft allgemein Computersoftware. Im einzelnen betrifft die vorliegende Erfindung Verfahren und Geräte zur Steuerung bzw. Verwaltung der Ausführung einer Anwendung. Zusätzlich betrifft die vorliegende Erfindung Verfahren und Geräte zum Implementieren eines Anwendungs-Lebenszyklus-Design für Software-Anwendungen.
  • 2. BESCHREIBUNG DES STANDES DER TECHNIK
  • Die Fortentwicklung des digitalen Fernsehens ist eines der bedeutendsten Ereignisse in der Geschichte des Fernseh-Rundfunks. Mit der Einführung des digitalen Fernsehens ist über Satelliten-, Kabel- und terrestrische Fernsehkanäle eine Hochgeschwindigkeits-Datenübertragung möglich. Das digitale Fernsehen bietet den Nutzern mehr Kanäle sowie eine deutlich verbesserte Video- und Audio-Qualität. Am wichtigsten ist, dass das digitale Fernsehen das Zeitalter des echten interaktiven Fernsehens einleitet. Beispielsweise werden digitale Empfänger in der Lage sein, den Nutzern eine Vielzahl von verbesserten Diensten von einfachen interaktiven Quizshows bis zum Internet sowie eine Mischung aus Fernsehen und einem Inhalt vom Web-Typ anzubieten. Mit dem Anwachsen des Marktes für das digitale Fernsehen sind Inhaltsentwickler auf der Suche nach einer merkmalsreichen, kosteneffektiven und zuverlässigen Software-Plattform, um mit dieser die nächste Generation der interaktiven Fernsehdienste, wie etwa die elektronische Programmierführung (Electronic Programming Guides), Video-On-Demand (Video auf Abruf) sowie das Enhanced Broadcasting (verbesserte Übertragung), aufzubauen.
  • Java ist eine führende, kommerzielle, objektorientierte Sprache, die als portable Sprache entworfen ist, welche auf vielen kompatiblen, die JavaTM-Plattform unterstützenden Vorrichtungen ablaufen kann. Beispielsweise ist Java in allen Haupt-Webbrowsern enthalten. Von daher läuft über den Webbrowser des Computers Java auf jedweden webfähigen Computern. Von daher bietet Java ein hohes Versprechen als Software-Plattform für Set-Top-Boxen und für das digitale Fernsehen.
  • Bei der objektorientierten Programmierung sind Codes und Daten in Objekten verflochten. Jedes Objekt wird über seine Klasse definiert, die die Eigenschaften und das Verhalten eines Objektes festlegt. Anders ausgedrückt bedeutet dies, dass Objekte individuelle Fälle einer Klasse sind.
  • In der Desktop-Umgebung brauchen bestimmte, in Zusammenhang mit jeder geladenen Anwendung (z.B. Klassen und Objekte) stehende Betriebsmittel nicht häufig freigegeben oder streng überwacht werden, da der Speicher relativ unbegrenzt ist. Jedoch ist in der Umgebung von eingebauten Systemen, insbesondere auf dem Gebiet des digitalen Fernsehens, der Speicher ein wertvolles Betriebsmittel. Darüber hinaus wird es in einer interaktiven digitalen Fernseh-Umgebung gebräuchlich sein, mehrere Anwendungen ablaufen zu lassen. Ein digitaler Fernsehdienst kann aus Audio, Video und einer oder mehreren Anwendungen bestehen. Wenn beispielsweise ein Fernsehzuschauer den Kanal wechselt, wird jeder in Zusammenhang stehende Dienst oder jedes in Zusammenhang stehende Programm, die durch den Kanal bereitgestellt werden, es auf gleiche Weise erfordern, dass mehrere Klassen geladen werden. Als ein Ergebnis hiervon wird der Speicher kontinuierlich für die Anwendungen und zugehörigen Klassen belegt sein, bis der begrenzte Umfang des Speichers verbraucht ist. Sobald der Speicher verbraucht ist, wird es nicht möglich sein, irgendeine weitere Anwendung laufen zu lassen. Dieses ist im einzelnen wichtig, da es unerwünscht sein wird, die Set-Top-Box in dem Ereignis eines Fehlers erneut zu booten.
  • Die Java-Plattform definiert gegenwärtig eine Anzahl von Anwendungsmodellen, und zwar jedes mit seinem eigenen Lebenszyklus. Im allgemeinen sind diese Anwendungs-Lebenszyklus-Modelle ausgestaltet worden, um auf der Java-Plattform spezielle Themen zu adressieren. Beispielsweise wurde das Applet ausgestaltet, um eine Unterstützung für einen ausführbaren Inhalt in Webseiten bereitzustellen. Allerdings geht keines der bestehenden Anwendungs-Lebenszyklus-Modelle vollständig diejenigen Anforderungen an, die speziell für Systeme mit begrenztem Speicher, wie etwa für Fernsehempfänger, sind. Bei den in Zusammenhang mit einem Applet stehenden Klassen werden, sobald sie geladen sind, beispielsweise ihre Klassenobjekte nicht von dem Speicher entfernt. Darüber hinaus ist es nicht möglich, festzustellen, wann die Ausführung bzw. Anwendung des Applets abgeschlossen wurde.
  • Die Druckschrift EP-A-0524071 beschreibt ein Betriebssystem (GPOS), welches einen Anwendungsmanager (GA) enthält, der den Zustand (S1 – S5) überwacht und definiert, in welchem sich jede einer Vielzahl von Anwendungen (A1 – An) befinden muss.
  • Die Druckschrift EP-A1-0908821 beschreibt einen Decoder für ein digitales Fernsehsystem, welches ein Datenverarbeitungssystem aufweist, das eine erste virtuelle Einrichtung enthält, um heruntergeladene interpretierbare Sprachanweisungen zu empfangen, die zu einem geeigneten Interpreten zur Ausführung geleitet werden.
  • Im Hinblick auf das zuvor Genannte wäre es von Vorteil, wenn ein Anwendungs-Lebenszyklus derart ausgestaltet ist, um die speziell mit Fernsehempfängern in Verbindung stehenden Anforderungen anzugehen. Darüber hinaus wäre es erstrebenswert, wenn ein Mechanismus zum Verwalten bzw. Steuern des Ladens und des Ausführens einer Anwendung gemäß einem Anwendungs-Lebenszyklus ausgestaltet ist.
  • Die vorliegende Erfindung ermöglicht es, dass eine oder mehrere Anwendungen verwaltet bzw. gesteuert werden. Zusätzlich kann die Ausführung von einer oder mehreren Anwendungen gemäß einem Anwendungs-Lebenszyklus verwaltet bzw. gesteuert werden. Dieses wird teilweise durch die Verwendung eines Anwendungsmanagers ausgebildet, der in der Lage ist, Änderungen in dem Zustand der Anwendung zu initiieren und zu überwachen. Auf diese Art und Weise können Anwendungen in einer konsistenten Art und Weise auf einer Vielzahl von Plattformen ausgeführt werden.
  • Gemäß einem ersten Aspekt der Erfindung wird ein digitaler Fernsehempfänger zum Verwalten bzw. Steuern der Ausführung einer Anwendung gemäß einem Anwendungs-Lebenszyklus bereitgestellt, wobei der digitale Fernsehempfänger folgendes aufweist: einen Prozessor; und einen Speicher (1508), der computerlesbare Anweisungen speichert, wobei die computerlesbaren Anweisungen folgendes aufweisen: Anweisungen, um von einem Datenstrom zu ermitteln, ob eine Anwendung in dem Datenstrom vorhanden ist; Anweisungen, um die Anwendung zu laden, wenn ermittelt wird, dass die Anwendung in dem Datenstrom vorhanden ist; und Anweisungen, um die Anwendung gemäß einem Anwendungs-Lebenszyklus, der eine Vielzahl von Zuständen enthält, auszuführen.
  • Gemäß weiteren Aspekten der Erfindung werden ein Computerprogramm-Code, der mit einem Datenprozessor ausführbar ist, um den digitalen Fernsehempfänger gemäß dem ersten Aspekt der Erfindung bereitzustellen, sowie ein computerlesbares Medium bereitgestellt, welches den Computerprogramm-Code trägt.
  • Die vorliegende Erfindung ermöglicht es, dass Anwendungen gemäß einem Anwendungs-Lebenszyklus von einem Anwendungsmanager verwaltet bzw. gesteuert werden. Dieses ermöglicht es, dass Anwendungen in einer vorhersehbaren Art und Weise unabhängig der Plattform, auf welcher sie ausgeführt werden, ausgeführt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Unter Bezugnahme auf die nachfolgende Beschreibung, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, kann die Erfindung zusammen mit weiteren Vorteilen hiervon am besten verstanden werden, wobei in den Zeichnungen folgendes gilt.
  • 1 ist ein Blockdiagramm, welches einen digitalen Fernsehempfänger darstellt, in welchem die vorliegende Erfindung implementiert werden kann.
  • 2A ist ein Blockdiagramm, welches eine Ausführungsform der Erfindung zeigt, in welcher ein Anwendungsmanager verwendet wird, um die über den digitalen Fernsehempfänger geladene Anwendungen zu verwalten bzw. zu steuern.
  • 2B ist eine Darstellung, die einen exemplarischen Regelsatz zeigt, gemäß dem der in der 2A gezeigte Anwendungsmanager operieren kann.
  • 3 ist ein Blockdiagramm, welches eine exemplarische Datenstruktur zeigt, die verwendet wird, um die von dem in der 2A gezeigten Anwendungsmanager empfangenen Signaldaten zu speichern.
  • 4A ist eine Darstellung, die eine exemplarische Kontextliste bzw. Zusammenfassungsliste zeigt, auf die von dem Anwendungsmanager während der Verwaltung bzw. Steuerung und der Ausführung der zugehörigen Anwendungen zugegriffen wird.
  • 4B ist eine Darstellung, die eine exemplarische Datenstruktur zeigt, welche verwendet wird, um einen Anwendungskontext zu speichern, welcher in der exemplarischen Kontextliste identifiziert ist.
  • 5A ist ein Blockdiagramm, welches eine exemplarische Liste von Displaykontexten zeigt, auf die von einem Displaymanager gemäß einer Ausführungsform der Erfindung zugegriffen wird.
  • 5B ist ein exemplarisches Zustandsdiagramm, das mit einem Displaykontext in Zusammenhang steht.
  • 5C ist eine Darstellung, die einen Satz von exemplarischen Displayzuständen zeigt, die gemäß einem Satz von exemplarischen Regeln, welche von dem Anwendungsmanager befolgt werden, erzeugt sind.
  • 6 ist ein Zustandsdiagramm, das einen Satz von Zuständen zeigt, die eine Anwendung während des Lebenszyklus der Anwendung annehmen kann.
  • 7 ist eine Darstellung, die ein exemplarisches Anwendungs-Schnittstellen-Identifizierungsverfahren zeigt, das während des Lebenszyklus einer Anwendung von einem Anwendungsmanager aufgerufen werden kann.
  • 8 ist eine Darstellung, die ein exemplarisches Anwendungsumgebungs-Schnittstellen-Identifizierungsverfahren zeigt, das während des Lebenszyklus einer Anwendung von einer Anwendung aufgerufen werden kann.
  • 9 ist eine Darstellung, die Verfahren zeigt, welche entweder von dem Anwendungsmanager oder von einer Anwendung während des Lebenszyklus der Anwendung aufgerufen werden können.
  • 10 ist ein Ablaufdiagramm, welches ein Verfahren zum Implementieren eines Anwendungsmanagers gemäß einer Ausführungsform der Erfindung zeigt, um eine Anwendung zu laden und um die Anwendung gemäß eines Anwendungs-Lebenszyklus auszuführen.
  • 11 ist ein Ablaufdiagramm, das ein Verfahren zum Laden einer Anwendung, wie beim Block 1022 der 10 gezeigt, darstellt.
  • 12 ist ein Ablaufdiagramm, das ein Verfahren zum Ausführen einer Anwendung gemäß eines Anwendungs-Lebenszyklus, wie beim Block 1024 der 10 gezeigt, darstellt.
  • 13 ist ein Ablaufdiagramm, das ein Verfahren zum Ändern des Zustandes einer Anwendung von einem geladenen Zustand zu einem Pausenzustand, wie es beim Block 1206 der 12 gezeigt ist, darstellt.
  • 14 ist ein Ablaufdiagramm, das ein Verfahren zum Ändern des Zustandes einer Anwendung von einem Pausenzustand zu einem aktiven Zustand, wie es beim Block 1208 der 12 gezeigt ist, darstellt.
  • 15 ist ein Blockdiagramm, welches ein typisches Allzweck-Computersystem zeigt, das für die Implementierung der vorliegenden Erfindung geeignet ist.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • In der nachfolgenden Beschreibung werden verschiedene spezielle Details ausgeführt, um ein durchgängiges Verständnis der vorliegenden Erfindung bereitzustellen. Für einen Fachmann wird es jedoch ersichtlich sein, dass die vorliegende Erfindung ohne einige oder alle diese speziellen Details ausgeführt werden kann. In anderen Fällen werden wohlbekannte Prozess-Verfahrensschritte nicht detailliert beschrieben, um die vorliegende Erfindung in nicht notwendiger Weise zu verschleiern.
  • Hierin wird eine Erfindung beschrieben, die es ermöglicht, dass eine Anwendung gemäß einem Anwendungs-Lebenszyklus geladen und ausgeführt wird. Die Abfolge der Verfahrensschritte, mit welchen eine Anwendung initialisiert wird, führt basierend auf ihrer Umgebung verschiedene Zustandsänderungen durch und wird gegebenenfalls zerstört bzw. gelöscht, was durchgängig als Anwendungs-Lebenszyklus bekannt ist. Gemäß einer Ausführungsform wird dies durch die Verwendung eines Anwendungsmanagers ausgebildet, der in der Lage ist, die Ausführung von einer oder mehreren Anwendungen zu laden und zu verwalten bzw. zu steuern. Gemäß einer Ausführungsform wird der Anwendungs-Lebenszyklus durch die Verwendung von zwei Schnittstellen implementiert. Zunächst ermöglicht es eine Anwendungs-Programmierschnittstelle dem Anwendungsmanager, die Ausführung einer Anwendung gemäß dem Anwendungs-Lebenszyklus zu steuern bzw. zu verwalten. Dann ermöglicht eine Anwendungsumgebungs-Schnittstelle es der Anwendung, dem Anwendungsmanager ihren Wunsch, von einem Zustand zu einem anderen zu wechseln, mitzuteilen oder alternativ hierzu anzuzeigen, dass sie nicht in der Lage ist, eine Zustandsänderung, wie sie von dem Anwendungsmanager gefordert wird, durchzuführen. Beispielsweise kann es eine Anwendung erfordern, dass der Anwendungsmanager die Anwendung veranlasst, in einen aktiven Zustand einzutreten. Als ein anderes Beispiel kann die Anwendung anzeigen, dass sie einen Pausenzustand oder einen gelöschten Zustand angenommen hat (beispielsweise dann, wenn sie nicht in der Lage ist, in den aktiven Zustand einzutreten, wie es von dem Anwendungsmanager angefordert wird). Von daher kann die Anwendungsumgebungs- Schnittstelle in der Lage sein, dass die Anwendung dem Anwendungsmanager mitteilt, dass sie von einem Zustand in einen anderen Zustand gewechselt hat, da die Anwendung ultimativ die beste Kenntnis von dem Zustand hat, in welchem sie sich befindet.
  • Die Erfindung wird innerhalb des Zusammenhangs eines Digital-Fernsehgerätes und eines Digital-Fernsehempfängers beschrieben. 1 ist ein Blockdiagramm, welches einen exemplarischen Digital-Fernsehempfänger zeigt. Wie dargestellt, wird ein Signal über eine Antenne 102 empfangen, und durch ein Tuner-Modul 104 abgestimmt, das einen MPEG2-Transportstrom 106 erzeugt. Ein De-Multiplexer 108 erzeugt dann verschlüsselte MPEG-Ströme 110, die einen Videostrom 112, einen Audiostrom 114 sowie einen Datenstrom 116 enthalten. Diese drei Ströme werden dann von einem zugriffsbedingten Subsystem 118 verarbeitet. Beispielsweise kann das zugriffsbedingte Subsystem 118 Schlüssel-Managementinformation 120 sowie Entschlüsselungsinformation 122 (beispielsweise Entschlüsselungs-Algorithmen) verwenden. Das zugriffsbedingte Subsystem 118 erzeugt entschlüsselte MPEG-Ströme 123, die einen Videostrom 124 und einen Audiostrom 125 sowie Daten 126 enthalten, wobei alles hiervon entschlüsselt ist. Ein Decoder 128 verarbeitet dann den entschlüsselten MPEG-Strom 123 und leitet die entschlüsselten Videodaten zu einem Blockpuffer 130 weiter und überträgt die entschlüsselten Audiodaten zu einem Lautsprecher 132.
  • Eine Java-Virtual-Machine ist eine Plattform, die zum Implementieren der vorliegenden Erfindung verwendet werden kann, um die von einem digitalen Fernsehempfänger, wie etwa dem in der 1 gezeigten Fernsehempfänger, empfangene Information zu verarbeiten. Wenn im einzelnen die Daten 126 (beispielsweise ein übertragener Datenstrom) verarbeitet werden, ist es erstrebenswert, die in den Daten 126 bereitgestellte Information, wie etwa eine heruntergeladene Anwendung, zu verarbeiten.
  • 2A ist ein Blockdiagramm, das eine Ausführungsform der Erfindung zeigt, in welcher ein Anwendungsmanager implementiert ist, um Anwendungen zu verwalten bzw. zu steuern, die über den Digital-Fernsehempfänger geladen sind. Wie es in der 2A gezeigt ist, kann die vorliegende Erfindung in einem Digital-Fernsehempfänger implementiert sein. Ein übertragener Datenstrom 202 wird von einem Signalisierungs-Monitor empfangen. Der Signalisierungs-Monitor 204 bestimmt, ob eine Anwendung in dem übertragenen Datenstrom 202 vorhanden ist, und stellt Signaldaten 206 bereit, die die Anwesenheit oder das Fehlen einer Anwendung sowie die in Zusammenhang mit der Anwendung stehenden Daten, wie etwa der Speicherort der Anwendung, anzeigen. Der Anwendungsmanager 208 lädt dann die Anwendung und führt die Anwendung aus, indem diese Signaldaten 206 verwendet werden. Beispielsweise kann der Anwendungsmanager 208 die Anwendung gemäß dem geeigneten Anwendungs-Lebenszyklus ausführen, so dass die Anwendung in Erwiderung auf spezielle Konditionen in die geeigneten Zustände eintritt. Nachfolgend wird eine Implementierung der Anwendungs-Lebenszyklus-Ausgestaltung detaillierter beschrieben. Wenn die Anwendung ausgeführt wird, wird Displayinformation in der Gestalt eines Displaykontextes 210 von einem Displaymanager 212 bereitgestellt. Dann liefert der Displaymanager die entsprechende Displayinformation zur Anzeige auf einem Fernsehmonitor 214.
  • Gemäß einer Ausführungsform der Erfindung ist der Anwendungsmanager derart konfiguriert, um gemäß einem Regelsatz 216 zu operieren. Diese Regeln können in einer Vielzahl von Art und Weisen spezifiziert sein, um einen Anwendungs-Lebenszyklus zu implementieren. Beispielsweise kann ein Anwendungs-Lebenszyklus eine Anwendung in die Lage versetzen, einen geladenen Zustand, einen Pausenzustand, einen aktiven Zustand sowie einen gelöschten Zustand durch das Auftreten von festgelegten Ereignissen zu betreten. 2B ist eine Darstellung, die einen exemplarischen Regelsatz zeigt, gemäß welchem der in der 2A gezeigte Anwendungsmanager operieren kann. Dieser exemplarische Regelsatz 216 weist vier Regeln auf. Eine erste Regel 218 spezifiziert, dass der Anwendungsmanager eine oder mehrere Anwendungen verwaltet bzw. steuert. Jedoch spezifiziert eine zweite Regel 220, dass lediglich eine Anwendung bei einem festgelegten Zeitpunkt aktiv sein kann (das heißt, ausgeführt werden kann). Darüber hinaus spezifiziert eine dritte Regel 222, dass zu einem gegebenen Zeitpunkt nur eine Anwendung angezeigt werden kann. Letztendlich spezifiziert eine vierte Regel 224, dass lediglich aktive Anwendungen angezeigt werden. Von daher kann ein Regelsatz in einer Vielzahl von Art und Weisen ausgestaltet und für einen Anwendungsmanager konfiguriert sein. Demgemäss kann der Regelsatz derart ausgestaltet sein, um die Ausführung von einer oder mehreren Anwendungen gemäß einem Anwendungs-Lebenszyklus zu verwalten bzw. zu steuern.
  • 3 ist ein Blockdiagramm, das eine exemplarische Datenstruktur zeigt, die verwendet wird, um die von dem in der 2A gezeigten Anwendungsmanager empfangenen Signaldaten zu speichern. Die Signaldaten 202 weisen einen Hinweis auf eine vorhandene Anwendung 304 in dem übertragenen Datenstrom auf. Wenn eine Anwendung vorhanden ist, wird ein Speicherort 306 der Datei (beispielsweise das Verzeichnis und der Dateiname) spezifiziert. Zusätzliche Information, wie etwa Authentifikationsinformation 308, versetzt den Erzeuger der Anwendung in die Lage, authentifiziert zu werden, sowie Zulassungen 310 zeigen an, dass eine bestimmte Aktion (beispielsweise Lesen/Schreiben) in Zusammenhang mit einer speziellen Quelle und/oder einem speziellen Ziel ausgeführt werden kann oder nicht ausgeführt werden kann.
  • Der Anwendungsmanager 208 kann zeitgleich den Lebenszyklus von verschiedenen Anwendungen verwalten bzw. steuern. Um die in Zusammenhang mit jeder potentiellen ausgeführten Anwendung 400 stehende Information beizubehalten, verwaltet bzw. steuert gemäß einer Ausführungsform der Erfindung der Anwendungsmanager eine Anwendungskontextliste 402. 4A ist eine Darstellung, die eine exemplarische Anwendungskontextliste 402 zeigt, auf die von dem Anwendungsmanager 208 während der Verwaltung bzw. Steuerung und der Ausführung von zugehörigen Anwendungen 400 zugegriffen wird. Wie dargestellt, weist die Anwendungskontextliste 402 einen oder mehrere Einträge auf, wobei jeder Eintrag einen Anwendungskontext 404 identifiziert, der in Zusammenhang mit einer der Anwendungen 400 steht. Im einzelnen stellen die Anwendungen 400-A, 400-B, 400-C und 400-D vier potentiell verschiedene Anwendungen dar, und zwar mit jeweils verschiedenen Anwendungskontexten 404-A, 404-B, 404-C und 404-D. Der Anwendungskontext 404 identifiziert Information, die in Zusammenhang mit einer Anwendung steht, um die Anwendung in die Lage zu versetzen, dass sie geladen und von einem Anwendungs-Lebenszyklus ausgeführt wird.
  • Gemäß einer Ausführungsform ist die in Zusammenhang mit einer Anwendung stehende Information von dem Anwendungskontext 404 zentralisiert und mit Verweisen versehen. 4B ist eine Darstellung, die eine exemplarische Datenstruktur zeigt, welche verwendet wird, um einen Anwendungskontext 404 zu speichern, welcher in der in der 4A dargestellten exemplarischen Anwendungskontextliste 402 identifiziert ist. Die exemplarische Datenstruktur für den Anwendungskontext 404 weist einen Klassen-Lader-Identifizierer 406 auf, der einen Klassen-Lader bzw. ein Klassen-Ladeprogramm, ein Objekt, welches verwendet wird, um Klassen in den Speicher zu laden, identifiziert. Von daher versetzt der Klassen-Lader-Identifizierer 406 den Anwendungsmanager in die Lage, eine oder mehrere in Zusammenhang mit der Anwendung stehende Klassen über den identifizierten Klassen-Lader zu laden, sowie diese Klassen nicht zu laden, indem der Klassen-Lader neu mit Verweisen versehen wird. Zusätzlich weist die exemplarische Datenstruktur für den Anwendungskontext 404 einen Signaldaten-Identifizierer 408 auf, der die Signaldaten 302, wie es in der 3 gezeigt ist, identifiziert. Von daher kann der Anwendungsmanager 208 diesen Signaldaten-Identifizierer 408 verwenden, um den Speicherort einer Anwendung sowie den Speicherort von Authentifikations- und Zulassungsdaten festzustellen. Die exemplarische Datenstruktur für den Anwendungskontext 404 weist ferner einen Displaykontext-Identifizierer auf, der einen Displaykontext identifiziert, welcher Information enthält, die von dem in der 2A gezeigten Displaymanager 212 verwendet werden wird, um die Anwendung anzuzeigen. Beispielsweise kann der Displaykontext einen Verweis auf ein Objekt enthalten, der die Anzeige einer Anwendung auf einem Bildschirm zulässt, wie etwa die Größe, die Position sowie sichtbare Daten. Die exemplarische Datenstruktur für den Anwendungskontext 404 weist ferner einen Anwendungs-Identifizierer 412 auf, der die Anwendung identifiziert. Zusätzlich wird ein Anwendungsumgebungs-Objekt 414 identifiziert, das die Anwendung in die Lage versetzt, mit dem Anwendungsmanager zu kommunizieren. Als ein Beispiel kann die Anwendung es wünschen, ihren Wunsch, einen anderen Zustand einzunehmen, zu übertragen, oder in einen anderen Zustand einzutreten und diese Zustandänderung dem Anwendungsmanager zu übertragen (zum Beispiel zu übertragen, dass sie den Pausenzustand oder den gelöschten Zustand eingenommen hat). Als ein anderes Beispiel kann die Anwendung es wünschen, Information hinsichtlich der Anwendungsumgebung zu erzielen (zum Beispiel, wie sie in dem zugehörigen Anwendungskontext gehalten wird). Unter Bezugnahme auf die 8 und die 9 wird das Anwendungsumgebungs-Objekt 414 im weiteren Detail beschrieben. Die exemplarische Datenstruktur für den Anwendungskontext 404 ist ferner gezeigt, um den gegenwärtigen Anwendungszustand 416 zu identifizieren. Von daher behält der Anwendungsmanager 208 eine Aufzeichnung des Anwendungszustandes von jeder Anwendung.
  • Wie zuvor unter Bezugnahme auf die 2A beschrieben, kann ein separater Displaymanager 212 implementiert sein, um einen Zugriff auf die Displayvorrichtung zu verwalten bzw. zu steuern, sowie um die Daten, die letztendlich angezeigt werden, zu verwalten bzw. zu steuern. Um diesen Prozess zu ermöglichen, führt der Displaymanager gemäß einer Ausführungsform der Erfindung eine Liste von Displaykontexten. 5A ist ein Blockdiagramm, das eine exemplarische Liste von Displaykontexten zeigt (Displaykontextliste) 502, auf die von einem Displaymanager gemäß einer Ausführungsform der Erfindung zugegriffen wird.
  • Wie dargestellt, weist die Displaykontextliste 502 einen oder mehrere Einträge auf, die in Zusammenhang mit einer oder mehreren Anwendung 400-A bis 400-D stehen. Jeder Eintrag in der Displaykontextliste 502 steht in Zusammenhang mit einem Kontext-Identifizierer 504 und identifiziert einen Displaykontext 506, der Information hinsichtlich der Anzeige einer Anwendung spezifiziert. Anders ausgedrückt bedeutet dies, dass der Displaykontext ein Objekt sein kann, das jene Information hält, die von einer Anwendung benötigt wird, um sich selbst anzuzeigen. Wenn von daher der Displaymanager 212 es wünscht, eine Anwendung anzuzeigen, kann er das entsprechende „Fenster", auf welches in dem entsprechenden Displaykontext verwiesen wird, „einschalten", und zwar möglicherweise indem andere „Fenster" ausgeschaltet werden.
  • Der Displaykontext kann gemäß einem Zustandsdiagramm für den Displaykontext angezeigt werden. 5B ist ein exemplarisches Zustandsdiagramm, welches in Zusammenhang mit einem Displaykontext steht. Wie dargestellt, ist der Displaykontext sichtbar 508, wenn er sich in einem ersten Displayzustand befindet, und er ist unsichtbar 510, wenn er sich in einem zweiten Displayzustand befindet. Der entsprechende Displayzustand wird gemäß einer Ausführungsform durch die von dem Anwendungsmanager verfolgten Regeln ermittelt bzw. festgestellt.
  • 5C ist eine Darstellung, die eine Tabelle zeigt, welche einen Satz von exemplarischen Displayzuständen zeigt, die gemäß einem Satz von exemplarischen Regeln erzeugt werden, welche von dem Anwendungsmanager verfolgt werden, wie es zuvor unter Bezugnahme auf die 2B gezeigt und beschrieben ist. Die Tabelle 512 zeigt alle möglichen Displayzustände 514 und ihre zugehörigen Anwendungszustände 516 an. Gemäß dem exemplarischen Regelsatz, der von dem Anwendungsmanager verfolgt wird, werden nur aktive Anwendungen angezeigt. Wenn sich von daher eine Anwendung in dem aktiven Zustand befindet, ist der Displayzustand sichtbar. Wenn sich alternativ hierzu eine Anwendung in dem Pausenzustand befindet, ist der Displayzustand unsichtbar.
  • Indem eine Anwendung in die Lage versetzt wird, eine Anzahl von Zuständen unter festgelegten Konditionen einzunehmen, wird ein Anwendungs-Lebenszyklus implementiert. Die Zustände sowie die Konditionen, die festlegen, wann eine Anwendung jeden der Zustände annehmen wird, können gemäß der Implementation des Anwendungsmanagers und der Anwendungs-Lebenszyklen variiert werden. 6 ist ein Zustandsdiagramm, welches einen Satz von Zuständen zeigt, die eine Anwendung während des Lebenszyklus der Anwendung gemäß einer Ausführungsform der Erfindung annehmen kann. Wenn der Anwendungsmanager die Anwendung lädt, tritt die Anwendung in den geladenen Zustand 602 ein. Sobald die Anwendung in den geladenen Zustand 602 eintritt, kann die Anwendung nach ihrer Initialisierung durch den Anwendungsmanager in den Pausenzustand 604 eintreten. Nur der Anwendungsmanager kann die Anwendung veranlassen, ihren Zustand von dem Pausenzustand 604 zu dem aktiven Zustand 606 zu ändern. Jedoch kann entweder der Anwendungsmanager oder die Anwendung die Anwendung veranlassen, von dem aktiven Zustand 606 in den Pausenzustand 604 einzutreten. Zusätzlich kann entweder der Anwendungsmanager oder die Anwendung die Anwendung veranlassen, zu enden und von dem geladenen Zustand 602, dem aktiven Zustand 606 oder dem Pausenzustand 604 in den gelöschten Zustand 608 einzutreten.
  • Wie es zuvor unter Bezugnahme auf die 6 beschrieben wurde, kann der Zustand der Anwendung durch das Ausführen der Anwendung oder eine Anwendung, die verschieden von der Ausführungs-Anwendung ist (beispielsweise der Anwendungsmanager), geändert werden. In vielen objektorientierten Sprachen können Verfahren und Variable in Module gruppiert werden, so dass die Namen und Parameter der Verfahren für externe Prozesse sichtbar sind (beispielsweise durch eine Schnittstelle), während Details hinsichtlich der Implementation für diese externen Prozesse verborgen sind. Gemäß einer Ausführungsform sind die Schnittstellen und die zugehörigen Verfahren, auf die die Anwendung und der Anwendungsmanager zugreifen können, in etwas „eingepackt", was von nun an als Pakete bezeichnet wird.
  • Jedes Paket weist eine zugehörige Schnittstelle auf, die jene Namen und Parameter der Verfahren definiert, die extern sichtbar sind. Zusätzlich weist jedes Paket einen zugehörigen Körper auf, der die Körper der Verfahren und von daher die Details der Implementation enthält, die in der Schnittstelle des Pakets definiert sind. Die Anwendung und der Anwendungsmanager können die beiden verschiedenen Schnittstellen zur Kommunikation verwenden. Von daher können der Anwendungsmanager und die Anwendung den Zustand der Anwendung durch die Verwendung von zwei verschiedenen Schnittstellen ändern, und zwar durch eine Anwendungs-Schnittstelle bzw. eine Anwendungsumgebungs-Schnittstelle. Zusätzlich können der Anwendungsmanager und die Anwendung Information übertragen, wie etwa Information hinsichtlich Zustandsänderungen oder potentieller Zustandsänderungen.
  • 7 ist eine Darstellung, die ein exemplarisches Anwendungs-Schnittstellen-Identifizierungsverfahren zeigt, welches von einem Anwendungsmanager (oder einem anderen Prozess) während des Lebenszyklus einer Anwendung aufgerufen werden kann, um den Zustand der Anwendung zu ändern. Eine Anwendungs-Schnittstelle 702 definiert alle Verfahren und zugehörigen Parameter, die von dem Anwendungsmanager aufgerufen werden können. Ein Initialisierungsverfahren ist verfügbar, um den Anwendungsmanager in die Lage zu versetzen, die Anwendung zu initialisieren. Beispielsweise kann das Initialisierungsverfahren 704 der Anwendung signalisieren, sich selbst zu initiieren und den Pausenzustand von dem geladenen Zustand einzunehmen. Gemäß einer Ausführungsform ist ein Parameter des Initialisierungsverfahrens 704 ein Anwendungsumgebungs-Objekt 706, welches nachfolgend unter Bezugnahme auf die 8 im weiteren Detail beschrieben wird. Das Anwendungsumgebungs-Objekt 706 kann ebenso von der Anwendung verwendet werden, um auf Eigenschaften, die mit der Laufzeitumgebung der Anwendung in Zusammenhang stehen, zuzugreifen, wie es nachfolgend beschrieben wird. Zusätzlich kann die Anwendung durch die Verwendung des Anwendungsumgebungs-Objektes 706 die Eigenschaften abrufen, die in Zusammenhang mit ihrer Laufzeitumgebung stehen. Beispielsweise weisen Eigenschaften, die abgefragt werden können, einen Verweis auf die Signalisierungsdaten und einen Verweis auf die Umgebung des Dienstes, der dargestellt wird (z.B. Audio-/Video-Umgebung), auf. Auf diese Art und Weise kann sich die Anwendung selber bei der Vorbereitung ihrer Ausführung initialisieren. Obwohl die Anwendung in bevorzugter Weise keine gemeinsam benutzten Betriebsmittel vor der Ausführung hält, sollte sie derart eingerichtet sein, um in einer angemessenen Zeit ausgeführt zu werden. Das Initialisierungsverfahren 704 sollte nur einmal aufgerufen werden. Nachdem das Initialisierungsverfahren 704 erfolgreich zurückkehrt, befindet sich die Anwendung in dem Pausenzustand. Wenn das Initialisierungsverfahren 704 nicht erfolgreich zurückkehren kann, gibt die Anwendung eine Zustandsänderungs-Ausnahme zurück, die anzeigt, dass die Anwendung nicht in den Pausenzustand eintreten kann.
  • Sobald sich die Anwendung in dem Pausenzustand befindet, kann die Anwendung in den aktiven Zustand eintreten. Jedoch kann nur der Anwendungsmanager diese Zustandsänderung unter Verwendung eines Startverfahrens 708 veranlassen. Sobald das Startverfahren 708 aufgerufen ist, signalisiert die Anwendung, die Bereitstellung eines Dienstes zu starten, und tritt in den aktiven Zustand ein. In dem aktiven Zustand kann die Anwendung gemeinsam genutzte Betriebsmittel halten. Eine Vielzahl von Fehlern kann verhindern, dass der Dienst startet. Beispielsweise kann der Fehler kurzlebig oder nicht kurzlebig sein. Gemäß einer Ausführungsform unterscheidet die Anwendung zwischen diesen beiden Fehlerarten. Für kurzlebige Fehler wird eine Zustandsänderungs-Ausnahme aufgeworfen. Wenn ein nicht kurzlebiger Fehler auftritt, kann eine andere Ausnahme aufgeworfen werden, oder es kann ein durchgeführtes Verfahren aufgerufen werden, um das Verfahren geeignet zu beenden. Wenn beispielsweise die Anwendung feststellt, dass sie nicht auf die Betriebsmittel zugreifen kann, die sie zur Ausführung benötigt, kann dies entweder als ein kurzlebiger oder als ein nicht kurzlebiger Fehler implementiert werden.
  • Sobald ein Pausenverfahren 710 von dem Anwendungsmanager aufgerufen ist, signalisiert es der Anwendung, die Ausführung anzuhalten und von dem aktiven Zustand in den Pausenzustand einzutreten. In dem Pausenzustand hält die Anwendung die Ausführung an und versucht so wenig Betriebsmittel wie möglich zu verwenden. Von daher kann die Anwendung einen Anteil der gemeinsam genutzten Betriebsmittel oder sämtliche der gemeinsam genutzten Betriebsmittel, die von ihr gehalten werden, freigeben.
  • Es kann erwünscht sein, die Anwendung von irgendeinem des geladenen Zustands, aktiven Zustands oder Pausenzustandes zu beenden. Es kann erreicht werden, indem ein Löschungsverfahren 712 aufgerufen wird. Das Löschungsverfahren 712 signalisiert der Anwendung, zu enden und in den gelöschten Zustand einzutreten. In dem gelöschten Zustand sollte die Anwendung sämtliche Betriebsmittel freigeben und Präferenzen oder Zustandsinformation schonen.
  • Wenn der Anwendungsmanager es wünscht, eine Anwendung zu löschen (beispielsweise zu beenden), mag es erwünscht sein, verschiedene Pegel der Dringlichkeit anzuzeigen. Gemäß einer Ausführungsform wird das Beenden einer Anwendung durchgeführt, wenn eine festgelegte Kondition erfüllt wird. Als ein Beispiel kann die festgelegte Kondition das Vorhandensein eines Signals von der Anwendung sein, welches ihrer vorzeitigen Beendigung zustimmt. Als ein anderes Beispiel kann die festgelegte Kondition der Mangel des Empfangs eines Signals von der Anwendung innerhalb einer speziellen Zeitperiode sein. Dieses kann durch einen Parameter 714 zu dem Löschungsverfahren 712 bewältigt werden. Der Parameter 714 zeigt an, dass das Löschungssignal konditional ist, wenn sich die Anwendung in einem ersten Zustand befindet, und nicht konditional ist, wenn sich die Anwendung in einem zweiten Zustand befindet. Wenn von daher es der Anwendungsmanager lediglich wünscht, anzufordern, dass die Anwendung beendet wird, kann er bei der Entscheidung der Anwendung, diese zu beenden, spezifizieren, dass das Löschungssignal konditional ist. Die Anwendung kann anzeigen, dass sie es wünscht, die Ausführung fortzuführen und von daher nicht in den gelöschten Zustand einzutreten, indem eine Zustandsänderungs-Ausnahme aufgeworfen wird. Wenn der Anwendungsmanager es wünscht, diese Anforderung von der Anwendung zu honorieren, kann der Anwendungsmanager das Löschungsverfahren erneut bei einem späteren Zeitpunkt aufrufen. Alternativ hierzu kann der Anwendungsmanager versuchen, eine andere Anwendung zu löschen, die beispielsweise eine höhere (oder niedrigere) Priorität aufweist. Auf diese Art und Weise kann der Anwendungsmanager Betriebsmittel, die von ihm benötigt werden (beispielsweise von der nächsten Anwendung, die geladen werden muss), von nur jenen Anwendungen erzielen, die es vorziehen, zu enden. Darüber hinaus kann der Anwendungsmanager versuchen, die Anwendung in einer speziellen Reihenfolge zu löschen, wie etwa in einer Prioritäts-Reihenfolge, die Anwendung, die den größten (oder den kleinsten) Umfang des Speichers verwendet, oder in einer Reihenfolge, in welcher die Ausführung initiiert wurde.
  • Wenn der Anwendungsmanager eine spezielle Anwendung beenden muss, kann er dies durch den Parameter 714 des Löschungsverfahrens 712 anzeigen, dass das Löschungssignal bedingungslos ist. Beispielsweise kann der Anwendungsmanager spezifizieren, dass das Löschungssignal bedingungslos ist, wenn sämtliche von der Anwendung gehaltenen Betriebsmittel von dem Anwendungsmanager benötigt werden. Von daher kann der Anwendungsmanager eine Anwendung zwingen, zu enden und die Betriebsmittel, die von ihr gehalten werden, freizugeben, wenn das Löschungssignal bedingungslos ist. Selbst wenn eine Anwendung eine Zustandsänderungs-Ausnahme aufwirft, die anzeigt, dass sie es wünscht, mit der Ausführung fortzufahren, kann demgemäss der Anwendungsmanager diese Ausnahme ignorieren, wenn das Löschungssignal bedingungslos ist. Obwohl sich die zuvor gegebene Beschreibung auf die konditionale und bedingungslose Beendigung einer Anwendung bezieht, können andere Operationen auf ähnliche Weise konditional und bedingungslos durchgeführt werden.
  • Wie es zuvor beschrieben wurde, wird ein Anwendungsumgebungs-Objekt zu einer Anwendung gesendet, wenn die Anwendung initialisiert ist. Zusätzlich stellt das Anwendungsumgebungs-Objekt der Anwendung einen Mechanismus bereit, um Eigenschaften abzufragen, sowie eine Art und Weise bereit, um interne Zustandsänderungen zu signalisieren. Gemäß einer Ausführungsform weist das Anwendungsumgebungs-Objekt eine Anwendungsumgebungs-Schnittstelle auf, die für die Anwendung verfügbar ist, welche geladen und ausgeführt wird. Sobald die Anwendung initialisiert ist, ist im einzelnen die Anwendungsumgebungs-Schnittstelle für die Anwendung verfügbar.
  • 8 ist eine Darstellung, die ein exemplarisches Anwendungsumgebungs-Schnittstellen-Identifizierungsverfahren zeigt, dass von einer Ausführungsanwendung während des Lebenszyklus der Anwendung aufgerufen werden kann. Wie es nachfolgend gezeigt und beschrieben wird, stellt eine Anwendungsumgebungs-Schnittstelle 802 verschiedene Verfahren bereit, die es einer Anwendung gestatten, Information hinsichtlich ihrer Umgebung aufzudecken sowie mit dem Anwendungsmanager hinsichtlich ihrer Zustandsänderungen und gewünschten Zustandsänderungen zu kommunizieren.
  • Wie es zuvor beschrieben wurde, kann die Anwendung von dem geladenen, aktiven oder Pausenzustand in den gelöschten Zustand eintreten. Darüber hinaus kann der Anwendungsmanager oder die Anwendung die Anwendung veranlassen, in den gelöschten Zustand einzutreten. Wie es unter Bezugnahme auf die 7 gezeigt und beschrieben wird, kann der Anwendungsmanager die Anwendung löschen, indem das Löschungsverfahren aufgerufen wird. Alternativ hierzu versetzt ein Löschungsverfahren 804 der Anwendungsumgebungs-Schnittstelle 802 die Anwendung in die Lage, zu signalisieren, dass sie selber in den gelöschten Zustand eingetreten ist. Der Anwendungsmanager aktualisiert dann den Anwendungszustand auf gelöscht, ohne das in der Anwendungs-Schnittstelle bereitgestellte Löschungsverfahren aufzurufen, wie es zuvor unter Bezugnahme auf die 7 beschrieben ist. Die Anwendung führt die gleichen Operationen (beispielsweise reinigen, freigeben von Betriebsmitteln) aus, als ob die Anwendung von dem Anwendungsmanager gelöscht wäre. Dieses wird in bevorzugter Weise ausgeführt, bevor die Anwendung selber in den gelöschten Zustand eintritt.
  • Wenn sich die Anwendung in dem aktiven Zustand befindet, kann der Anwendungsmanager oder die Anwendung die Anwendung veranlassen, in den Pausenzustand einzutreten. Im einzelnen kann der Anwendungsmanager die Anwendung unter Verwendung des Pausenverfahrens pausieren, wie es unter Bezugnahme auf die 7 gezeigt und beschrieben ist. Alternativ hierzu kann die Anwendung signalisieren, dass die Anwendung es nicht wünscht, aktiv zu sein, und dass sie in den Pausenzustand über das Pausenverfahren 806 eingetreten ist.
  • Ein Get-Property-Verfahren 808, welches einen Parameter 810 aufweist, stellt eine Anwendung mit einem Mechanismus bereit, um eine oder mehrere Eigenschaften von dem Anwendungsumgebungs-Objekt abzufragen. Als ein Beispiel wird in einer Java-Umgebung in typischer Weise ein „Root-Container" bzw. „Stamm-Container" verwendet, um Benutzerschnittstellen-Komponenten zu enthalten (beispielsweise Pull-Down-Menüs, Buttons), so dass sie in der Java-Umgebung angezeigt werden können. Von daher kann das Get-Property-Verfahren 808 verwendet werden, um den Stamm-Container festzulegen, in welchem Komponenten platziert werden können. Als ein anderes Beispiel kann die in Zusammenhang mit dem gesendeten Datenstrom (z.B. der Standort einer Datei innerhalb des gesendeten Datenstroms) stehende Information, erzielt werden. Andere Eigenschaften können beispielsweise einen Verweis auf ein Dienst-Session-Objekt (Dienstkontext) und Information, die speziell das unterliegende Transportprotokoll ist, enthalten.
  • Obwohl nur der Anwendungsmanager eine Anwendung veranlassen kann, in den aktiven Zustand einzutreten, kann die Anwendung es wünschen, anzuzeigen, dass sie daran interessiert ist, in den aktiven Zustand einzutreten. Dieses wird gemäß einer Ausführungsform über ein Resümee-Anforderungsverfahren 812 durchgeführt. Durch das Resümee-Anforderungsverfahren 812 können eine oder mehrere Anwendungen jeweils einen Wunsch dahingehend anzeigen, in den aktiven Zustand einzutreten. Jedoch kann die Anzahl der Anwendungen, die zeitgleich ausgeführt werden können, durch den Regelsatz begrenzt sein, den der Anwendungsmanager verfolgt. Beispielsweise können, wie es zuvor unter Bezugnahme auf die 2B beschrieben wird, die Regeln spezifizieren, dass nur eine Anwendung zu einem Zeitpunkt aktiv sein kann. Von daher können Aufrufe des Resümee-Anforderungsverfahrens 812 von einem Anwendungsmanager verwendet werden, um jene Anwendungen zu bestimmen, die es wünschen, in den aktiven Zustand einzutreten, so dass der Anwendungsmanager eine oder mehrere der anfragenden Anwendungen auswählen kann, um sie in den aktiven Zustand zu bewegen.
  • Durch die zuvor beschriebenen Schnittstellen kann der Anwendungs-Lebenszyklus sowohl von dem Anwendungsmanager als auch von der Anwendung gesteuert werden. Obwohl diese in Schnittstellen wohl definiert sind, können die Körper der Verfahren, die zuvor unter Bezugnahme auf die 7 und die 8 gezeigt und beschrieben sind, in einer Vielzahl von Art und Weisen implementiert werden, solange wie die zugehörige Schnittstelle (und zugehörige Zustandsmaschinen) in Einklang hiermit steht.
  • 9 ist eine Darstellung, die exemplarische Verfahren zeigt, welche entweder von dem Anwendungsmanager oder einer Anwendung während des Lebenszyklus der Anwendung aufgerufen werden können. Wie es in der 9 gezeigt ist, können verschiedene Sätze von Verfahren von dem Anwendungsmanager 902 und von jeder Anwendung 904, die von dem Anwendungsmanager 902 verwaltet bzw. gesteuert wird, aufgerufen werden. Wie es zuvor unter Bezugnahme auf die 7 beschrieben wird, kann ein erster Satz Verfahren, welcher ein Initialisierungsverfahren 906, ein Startverfahren 908, ein Löschungsverfahren 910 sowie ein Pausenverfahren 912 enthält, von dem Anwendungsmanager 902 aufgerufen werden. Ähnlich hierzu kann, wie es zuvor unter Bezugnahme auf die 8 beschrieben wird, ein zweiter Satz Verfahren, der ein Pausenverfahren 914, ein Löschungsverfahren 916, ein Resümee-Anforderungsverfahren 918 sowie ein Get-Property-Verfahren 920 enthält, von einer entsprechenden Anwendung 904 aufgerufen werden.
  • 20 ist ein Ablaufdiagramm, welches gemäß einer Ausführungsform der Erfindung ein Verfahren der Implementierung eines Anwendungsmanagers, eine Anwendung zu laden und die Anwendung in Übereinstimmung mit einem Anwendungs-Lebenszyklus auszuführen, zeigt. Der Prozess beginnt beim Block 1002, und beim Block 1004 wird der Digital-Fernsehempfänger eingeschaltet. Dann wird beim Block 1006 die Java-Umgebung gestartet. Beim Block 1008 wird ein Anwendungsmanager aufgebaut, um eine oder mehrere Anwendungen zu laden und auszuführen. Der Anwendungsmanager läuft dann beim Block 1010.
  • Eine Vielzahl von digitalen Fernsehdiensten kann von einem Digital-Fernsehempfänger, wie etwa einem in der 1 gezeigten Digital-Fernsehempfänger, empfangen werden. Zusätzlich zum Empfang einer Vielzahl von Kanälen (oder Diensten), können diese Dienste von dem interaktiven Fernsehen bis zum nahezu Video-On-Demand, zur spezialisierten Programmierung, reichen. Im einzelnen wird ein von einem Fernsehkanal bereitgestellter Dienst häufig Audio, Video sowie eine Anwendung aufweisen. Wenn beim Block 1012 ein Dienst ausgewählt wird (z.B. durch einen Benutzer, der Kanäle schaltet), wird ein in Zusammenhang mit dem ausgewählten Dienst stehender Datenstrom über den Digital-Fernsehempfänger beim Block 1014 empfangen. Wenn beispielsweise der Benutzer auf den Disney-Kanal schaltet, ist der Disney-Dienst ausgewählt, und ein in Zusammenhang mit dem Disney-Dienst stehender Datenstrom wird empfangen.
  • Beim Block 1016 wird festgestellt, ob sich eine in Zusammenhang mit dem ausgewählten Dienst stehende Anwendung in dem Datenstrom befindet. Wenn beispielsweise der Benutzer den Disney-Dienst auswählt, kann in dem Datenstrom eine Disney-Anwendung empfangen werden. Wenn beim Block 1018 festgestellt wird, dass sich eine Anwendung in dem Datenstrom befindet, lädt der Anwendungsmanager die Anwendung, wie es beim Block 1022 gezeigt ist, und führt die Anwendung gemäß dem Anwendungs-Lebenszyklus beim Block 1024 aus. Das Laden und Ausführen von Prozessen wird nachfolgend jeweils unter Bezugnahme auf die 11 und 12 im weiteren Teil beschrieben. Der Prozess schließt wie dargestellt beim Block 1026 ab. Wenn sich keine Anwendung in dem Datenstrom befindet, kehrt der Prozess zu 1020 zurück, um auf neue Signale zu warten, die sich auf eine Anwendung beziehen, um in dem beim Block 1014 empfangenen Datenstrom vorhanden zu sein. Der Prozess fährt dann beim Block 1016 fort.
  • 11 ist ein Ablaufdiagramm, welches ein Verfahren zum Laden einer Anwendung, wie es beim Block 1022 der 10 gezeigt ist, darstellt. Der Prozess beginnt beim Block 1102. Beim Block 1104 werden Signaldaten, wie etwa jene, die in der 3 gezeigt sind, von dem Anwendungsmanager bei dem Block 1104 empfangen. Sobald die Signaldaten empfangen sind, kann der Anwendungsmanager die Anwendung lokalisieren und laden. Um die in Zusammenhang mit der Anwendung stehende Information zu speichern, wird ein Anwendungskontext, wie etwa der in 4B gezeigte Anwendungskontext, beim Block 1106 erzeugt. Dann kann der Anwendungskontext verwendet werden, um einen Verweis auf sämtliche Information, die in Zusammenhang mit der Anwendung steht, zu halten. Sobald beispielsweise der Anwendungsmanager einen Klassen-Lader bzw. ein Klassen-Ladeprogramm für die Anwendung erzeugt, wie es beim Block 1108 gezeigt ist, kann ein Verweis auf den Klassen-Lader in dem Anwendungskontext gehalten werden. Die in Zusammenhang mit der Anwendung stehenden Klassen werden dann über den Klassen-Lader beim Block 1110 geladen. Dann wird ein Fall der Anwendung von den Klassen beim Block 1112 erzeugt.
  • Sobald die Anwendung instanziiert ist, tritt, wie es beim Block 1114 gezeigt ist, die Anwendung in den geladenen Zustand ein. Um die Anwendung in die Lage zu versetzen, die in Zusammenhang mit ihrer Umgebung stehenden Eigenschaften zu erzielen und mit dem Anwendungsmanager zu kommunizieren, wird ein Anwendungsumgebungs-Objekt, das mit einer Anwendungsumgebungs-Schnittstelle, wie etwa die in der 8 gezeigte Anwendungsumgebungs-Schnittstelle, übereinstimmt, beim Block 1116 instanziiert. Dann wird das Anwendungsumgebungs-Objekt für die Anwendung initialisiert, wenn das Initialisierungsverfahren von dem Anwendungsmanager beim Block 1118 aufgerufen wird.
  • Zusätzlich zum Laden der Anwendung ist der Anwendungsmanager für die Überwachung und Verwaltung bzw. Steuerung der Ausführung der Anwendung verantwortlich. 12 ist ein Ablaufdiagramm, welches ein Verfahren zum Ausführen einer Anwendung gemäß einem Anwendungs-Lebenszyklus, wie es beim Block 1024 der 10 gezeigt wird, darstellt. Durch die Verwendung der Schnittstellen, wie etwa jener Schnittstellen, die in der 7 und der 8 gezeigt sind, können die Anwendung und der Anwendungsmanager eine Änderung in dem Zustand der Anwendung vorschlagen, verzögern, verhindern oder bewirken. Das Nachfolgende ist eine vereinfachte Beschreibung der Art und Weise, in welcher der Zustand der Anwendung über den Lebenszyklus der Anwendung geändert wird. Der Prozess beginnt beim Block 1202. Sobald die Anwendung in den geladenen Zustand eingetreten ist, wartet die Anwendung beim Block 1204 auf den Anwendungsmanager, um den Anwendungszustand auf den Pausenzustand zu ändern. Wie es zuvor beschrieben ist, kann beispielsweise der Anwendungsmanager die Anwendung initialisieren, indem das in der Anwendungs-Schnittstelle bereitgestellte Initialisierungsverfahren verwendet wird, das die Anwendung veranlasst, wie es beim Block 1206 gezeigt ist, in den Pausenzustand einzutreten, wie es unter Bezugnahme auf die 13 im weiteren Detail beschrieben wird. Sobald die Anwendung in den Pausenzustand geändert wurde, ändert danach der Anwendungsmanager eventuell den Anwendungszustand auf den aktiven Zustand beim Block 1208 (beispielsweise unter Verwendung des Startverfahrens), wie es im weiteren Detail unter Bezugnahme auf die 14 gezeigt und beschrieben wird. Es ist wichtig, darauf hinzuweisen, dass nur der Anwendungsmanager eine Anwendung veranlassen kann, in den aktiven Zustand einzutreten. Von dem aktiven Zustand kann entweder die Anwendung oder der Anwendungsmanager die Anwendung veranlassen, in den Pausenzustand beim Block 1210 durch das Pausenverfahren, welches in der Anwendungsumgebungs-Schnittstelle verfügbar ist, oder durch das Pausenverfahren, welches in der Anwendungs-Schnittstelle verfügbar ist, einzutreten. Sobald sich die Anwendung in dem Pausenzustand befindet, kann die Anwendung anfordern, dass die Ausführung fortgesetzt wird, und zwar durch das Resümee-Anforderungsverfahren, welches in der Anwendungsumgebungs-Schnittstelle verfügbar ist. Die Anwendung oder der Anwendungsmanager kann ebenso die Anwendung veranlassen, zu enden und den gewünschten Zustand beim Block 1212 einzunehmen, und zwar über jeweils das Löschungsverfahren, das in der Anwendungsumgebungs-Schnittstelle verfügbar ist oder über das Löschungsverfahren, das in der Anwendungs-Schnittstelle verfügbar ist. Wie gezeigt, kann die Anwendung in den gelöschten Zustand beim Block 1210 von irgendeinem des geladenen Zustands, aktiven Zustands oder Pausenzustandes eintreten. Wenn beispielsweise die Anwendung die Ausführung beendet, kann die Anwendung in den gelöschten Zustand eintreten. Zusätzlich kann in Erwiderung auf ein von dem Fernsehempfänger empfangenes Signal eine Initiierung von einer Aktion initiiert werden, wie etwa das Laden, das Starten oder das Beenden einer Anwendung. Dieses kann beispielsweise auftreten, wenn ein neues Programm beginnt oder wenn ein Benutzer eine Taste auf der Fernbedienung des Fernsehers drückt, um einen neuen Kanal zu wählen. Sobald eine Anwendung ihren Zustand wie angefordert ändert (beispielsweise das Verfahren kehrt wie geeignet zurück), aktualisiert der Anwendungsmanager den gegenwärtigen Zustand der Anwendung in den zugehörigen Anwendungskontext, wie es in der 4A und in der 4B gezeigt ist. Obwohl es nicht unter Bezugnahme auf die 12 beschrieben wird, werden die zuvor genannten Zustandsänderungen in Übereinstimmung mit irgendeiner Zustandsänderungs-Ausnahme, die durch die Anwendung auf geworfen wird, durchgeführt. Wenn von daher in den meisten Fällen eine Zustandsänderung durch die Anwendung aufgeworfen wird, aktualisiert der Anwendungsmanager nicht den gegenwärtigen Zustand der Anwendung. Stattdessen kann er versuchen, später die gleiche Zustandsänderung, eine andere Zustandsänderung oder eine Zustandsänderung von einer anderen Anwendung anzufordern.
  • Sobald eine Anwendung gelöscht ist, können die von der Anwendung gehaltenen Betriebsmittel freigegeben werden. Beispielsweise kann ein Signal von dem Anwendungsmanager empfangen werden (beispielsweise von der Anwendung oder der Sendeumgebung über den Empfänger), um das Reinigen der Anwendung zu initiieren. Im einzelnen kann der Klassen-Lader die in Zusammenhang mit der Anwendung stehende Klassen beim Block 1214 entladen. Zusätzlich kann der Anwendungskontext, auf den durch die Anwendungskontextliste, wie sie in der 4A und der 4B gezeigt wird, verwiesen wird, freigegeben werden.
  • Wie es zuvor beschrieben wird, ändert der Anwendungsmanager den Zustand einer Anwendung von einem geladenen Zustand zu einem Pausenzustand, um sie für die Ausführung vorzubereiten. 13 ist ein Ablaufdiagramm, das ein Verfahren der Änderung des Zustandes einer Anwendung von einem geladenen Zustand zu einem Pausenzustand darstellt, wie es beim Block 1206 der 12 gezeigt ist. Der Prozess beginnt beim Block 1302. Beim Block 1304 ruft der Anwendungsmanager das Initialisierungsverfahren in der Anwendungs-Schnittstelle auf und übergibt das Anwendungsumgebungs-Objekt als Parameter. Dann verwendet die Anwendung das Anwendungsumgebungs-Objekt, um sich selbst beim Block 1306 zu initialisieren. Beispielsweise kann das Anwendungsumgebungs-Objekt Eigenschaften erzielen, wie etwa den Stamm-Container, den sie verwenden kann, wenn sie sich selbst initialisiert. Danach tritt die Anwendung in den Pausenzustand ein, wie es beim Block 1308 gezeigt ist.
  • Gemäß einer Ausführungsform kann nur der Anwendungsmanager den Zustand der Anwendung in den aktiven Zustand ändern. 14 ist ein Ablaufdiagramm, welches ein Verfahren zum Ändern des Zustandes einer Anwendung von einem Pausenzustand zu einem aktiven Zustand, wie es beim Block 1208 der 12 gezeigt ist, darstellt. Der Prozess beginnt beim Block 1402. Beim Block 1404 empfängt die Anwendung ein Signal, um die Anwendung zu starten. Beispielsweise kann solch ein Startsignal von dem Anwendungsmanager empfangen werden, wenn ein neues Programm beginnt, oder wenn ein Benutzer eine Taste auf der Fernbedienung des Fernsehers drückt. Für einige Dienste können die Anwendungen automatisch starten, wenn sie abgestimmt werden. Der Anwendungsmanager ruft dann das Start-Anwendungsverfahren auf, wie es in der Anwendungs- Schnittstelle, wie beim Block 1406 gezeigt, bereitgestellt wird. Die Anwendung führt ihren Dienst aus und tritt in den aktiven Zustand beim Block 1408 ein.
  • Die vorliegende Erfindung kann in einer Vielzahl von Situationen angewandt werden. Ein Beispiel besteht darin, dass eine Aktien-Laufschrift am Fuße eines Monitors (beispielsweise eines Fernsehbildschirms) auf verschiedenen Kanälen angezeigt wird. Die Aktien-Information kann von einem Empfänger von einem Rundfunkdienst oder einem Rück-Kanal zu einem zentralen Server oder Sender erzielt werden (beispielsweise über ein Modem, Kabel oder eine andere Verbindung zu dem Internet). Unter der Annahme, dass die Aktien-Laufschrift-Anwendung sich nach der Initialisierung in dem Pausenzustand befindet, drückt ein Benutzer eine Taste auf der Fernbedienung des Fernsehers, was dem Anwendungsmanager signalisiert, die Aktien-Laufschrift-Anwendung zu starten. Der Anwendungsmanager ruft das Start-Anwendungsverfahren für die Aktien-Laufschrift-Anwendung auf. Der Anwendungsmanager nimmt an diesem Punkt an, dass die Anwendung ihren Dienst ausführt. Beim Empfang des Startsignals erzeugt die Aktien-Laufschrift-Anwendung einen neuen Thread, der den Rück-Kanal öffnet, um die Aktienquoten zu empfangen. Die Aktien-Laufschrift-Anwendung befindet sich nun in dem aktiven Zustand.
  • Während sie sich in dem aktiven Zustand befindet, fährt die Aktien-Laufschrift-Anwendung fort, die Aktienquoten anzuzeigen. Infolge der Umstände außerhalb der Steuerung der Anwendung kann jedoch die Aktien-Laufschrift-Anwendung nicht länger in der Lage sein, aktualisierte Aktienquoten zu empfangen. Unter diesen Umständen kann die Anwendung entscheiden, mit der Anzeige der häufigsten Aktienquoten, die ihr zur Verfügung stehen, fortzufahren. Nach einer Zeitperiode kann jedoch die Anwendung nach wie vor nicht in der Lage sein, den Rück-Kanal zu öffnen. Die Anwendung kann von daher entscheiden, dass die Quoten, die sie anzeigt, zu alt sind, um dargestellt zu werden, und dass sie nicht länger ihren Dienst ausführen kann. Die Anwendung kann dann auswählen, sich selbst aus dem aktiven Zustand zu nehmen, indem das Pausenverfahren an dem Anwendungsumgebungs-Objekt aufgerufen wird, um diese Änderung dem Anwendungsmanager zu signalisieren. Darüber hinaus kann die Anwendung zu diesem Zeitpunkt oder zu einer späteren Zeit entscheiden, dass sie nicht länger eine Möglichkeit der Ausführung ihres Dienstes hat, so dass sie entscheidet, dass sie beendet werden sollte. Die Anwendung führt eine gewisse Reinigung durch, die die Betriebsmittel, welche nicht länger von der Anwendung erfordert werden, freigibt. Die Anwendung endet dann und ruft das Löschungsverfahren an dem Anwendungsumgebungs-Objekt auf, um dem Anwendungsmanager zu signalisieren, dass sie in den gelöschten Zustand eingetreten ist. Dann führt der Anwendungsmanager die entsprechende Reinigung dieser Anwendung durch.
  • Die vorliegende Erfindung kann auf jedem geeigneten Computersystem implementiert sein. 15 zeigt ein typisches Allzweck-Computersystem 1502, welches zur Implementierung der vorliegenden Erfindung geeignet ist. Das Computersystem kann irgendeine geeignete Form annehmen. Beispielsweise kann das Computersystem in einem Digital-Fernsehempfänger oder in einer Set-Top-Box integriert sein.
  • Das Computersystem 1530, oder im einzelnen die CPUs 1532, kann bzw. können ausgelegt sein, eine virtuelle Maschine zu unterstützen, wie es für den Fachmann zu verstehen ist. Das Computersystem 1502 weist eine Anzahl von Prozessoren 1504 (ebenso als zentrale Verarbeitungseinheiten oder CPUs bezeichnet) auf, die an Speichervorrichtungen gekoppelt sein können, welche primäre Speichervorrichtungen 1506 (typischerweise einen Festwertspeicher oder ROM) und primäre Speichervorrichtungen 1508 (typischerweise einen Direkt-Zugriffsspeicher oder RAM) enthalten. Wie es aus dem Stand der Technik bekannt ist, dient der Festwertspeicher ROM dazu, Daten und Anweisungen unidirektional zu den CPUs 1504 zu übertragen, während der Direkt-Zugriffsspeicher RAM in typischer Weise dazu verwendet wird, Daten und Anweisungen in einer bidirektionalen Art und Weise zu übertragen. Beide primäre Speichervorrichtungen 1506, 1508 können irgendein geeignetes computerlesbares Medium enthalten. Die CPUs 1504 können allgemein irgendeine Anzahl von Prozessoren enthalten.
  • Ein sekundäres Speichermedium 1510, welches in typischer Weise eine Massenspeichervorrichtung ist, kann ebenso bidirektional an die CPUs 1504 gekoppelt sein und zusätzliche Datenspeicherkapazität bereitstellen. Die Massenspeichervorrichtung 1510 ist ein computerlesbares Medium, das verwendet werden kann, um Programme, die Computer-Codes, Daten und dergleichen enthalten, zu speichern. In typischer Weise ist die Massenspeichervorrichtung 1510 ein Speichermedium, wie etwa eine Hard-Disc, das im allgemeinen langsamer als primäre Speichervorrichtungen 1506, 1508 ist.
  • Die CPUs 1504 können ebenso an eine oder mehrere Eingabe/Ausgabe-Vorrichtungen 1512 gekoppelt sein, die Vorrichtungen, wie etwa Video-Monitore, Track Balls, Mäuse, Tastaturen, Mikrophone, berührungssensitive Displays, Kartenlesegeräte, Magnet- oder Papierband-Lesegeräte, Tablets, Griffel, Sprach- oder Handschrift-Erkenner oder andere wohlbekannte Eingabe-Vorrichtungen, wie etwa selbstverständlich andere Computer, enthalten können, jedoch ist die Erfindung nicht hierauf beschränkt. Letztendlich können die CPUs 1504 optional an einem Computer oder an ein Telekommunikations-Netzwerk, beispielsweise ein Internet-Netzwerk oder ein Intranet-Netzwerk, unter Verwendung einer Netzwerkverbindung, wie sie allgemein bei 1514 gezeigt wird, gekoppelt sein. Mit solch einer Netzwerk-Verbindung ist vorgesehen, dass die CPUs 1504 Information von dem Netzwerk empfangen können, oder dass sie Information zu dem Netzwerk in dem Fall des Ausführens der zuvor beschriebenen Verfahrensschritte ausgeben können. Solch eine Information, welche häufig als Abfolge von Anweisungen, die unter Verwendung der CPUs 1504 ausgeführt werden müssen, dargestellt wird, kann von dem Netzwerk empfangen und zu dem Netzwerk ausgegeben werden, und zwar beispielsweise in der Gestalt eines Computer-Datensignals, welches in einer Trägerwelle eingebettet ist.
  • Durch die Verwendung eines Anwendungsmanagers, um die Ausführung von jeder Anwendung gemäß einem Anwendungs-Lebenszyklus zu laden und zu verwalten bzw. zu steuern, ist die Ausführung einer Anwendung standardisiert, und Speicher-Betriebsmittel werden effektiv geschont. Der Anwendungs-Lebenszyklus wird teilweise implementiert, indem in einer konsistenten Art und Weise die Zustände, in die die Anwendung eintreten kann, gesteuert werden. Gemäß einer Ausführungsform ist ein Schnittstellen-Definitionsverfahren zum Steuern des Anwendungs-Lebenszyklus für die Anwendung sowie für den Anwendungsmanager vorgesehen. In dieser Art und Weise können die Anwendung und der Anwendungsmanager Zustandsänderungen, Anforderungen für Zustandsänderungen, Anforderungen, dass Zustandsänderungen verzögert oder gelöscht werden, sowie andere Zustandsinformation übertragen. Durch die Verwendung der vorliegenden Erfindung kann eine Anwendung auf verschiedenen Maschinen zu unterschiedlichen Zeiten ablaufen, die dennoch das gleiche Ergebnis in einer vorsehbaren Art und Weise erzeugt. Darüber hinaus ermöglicht die vorliegende Erfindung, dass der in Zusammenhang mit einer Anwendung stehende Speicher freigegeben wird, wenn festgestellt wird, dass die Betriebsmittel nicht länger benötigt werden. Unter der Voraussetzung eines begrenzten Umfangs der Speicher-Betriebsmittel in Digital-Empfängern und Set-Top-Boxen stellt die Möglichkeit, Speicher-Betriebsmittel in einer Digital-Fernsehumgebung zu verwalten bzw. zu steuern, eine deutliche Verbesserung dar.
  • Obwohl anschauliche Ausführungsformen und Anwendungen dieser Erfindung hierin gezeigt und beschrieben werden, sind viele Variationen und Modifikationen möglich, die innerhalb des Konzeptes der Erfindung verbleiben, und diese Variationen sind für den Fachmann nach dem Durchlesen dieser Anwendung ersichtlich. Beispielsweise ist die vorliegende Erfindung so beschrieben, dass sie innerhalb des Zusammenhangs eines Digital-Fernsehempfängers implementiert ist. Jedoch kann die vorliegende Erfindung in anderen Zusammenhängen verwendet werden. Obwohl die vorliegende Erfindung so beschrieben wird, als sei sie auf einer Java-Plattform implementiert, kann sie darüber hinaus ebenso auf einer Vielzahl von Plattformen implementiert sein. Ferner sind die zuvor beschriebenen Prozessblöcke nur beispielhaft. Von daher kann die Implementierung des Anwendungsmanagers und des Anwendungs-Lebenszyklus unter Verwendung anderer Prozessblöcke sowie anderer Datenstrukturen durchgeführt werden. Obwohl sowohl der Anwendungsmanager als auch die Anwendung so beschrieben werden, dass sie separate Schnittstellen aufweisen, können darüber hinaus diese Schnittstellen öffentliche Verfahren aufweisen, die für alle Anwendung sowie für den Anwendungsmanager sichtbar sind. Demgemäss sind die vorliegenden Ausführungsformen als anschaulich und nicht einschränkend zu betrachten, und die Erfindung ist nicht auf die hierin angegebenen Details beschränkt, sondern kann innerhalb des Umfangs und der Äquivalente der beigefügten Patentansprüche modifiziert werden.

Claims (15)

  1. Digitalfernsehempfänger (200) zur Steuerung einer Anwendung gemäß eines Anwendungslebenszyklus, wobei der Digitalfernsehempfänger folgendes aufweist: einen Prozessor (1504); und einen Speicher (1508), der Computer-lesbare Anweisungen speichert, wobei die Computer-lesbaren Anweisungen folgendes aufweisen: Anweisungen (1016), um von einem Datenstrom zu ermitteln, ob eine Anwendung in dem Datenstrom vorhanden ist; Anweisungen (1022), um die Anwendung zu laden, wenn ermittelt wird, dass die Anwendung in dem Datenstrom vorhanden ist; und Anweisungen (1024), um die Anwendung gemäß einem Anwendungslebenszyklus, der eine Vielzahl von Zuständen enthält, auszuführen.
  2. Digitalfernsehempfänger nach Anspruch 1, in welchem die Anweisungen zum Ausführen der Anwendung folgendes aufweisen: eine erste Schnittstelle (702), die einem Anwendungs-Manager (208) sichtbar ist, wobei die erste Schnittstelle ausgelegt ist, den Anwendungs-Manager in die Lage zu versetzen, zu bewirken, dass sich die Anwendung von einem Zustand der Vielzahl der Zustände zu einem anderen Zustand der Vielzahl der Zustände ändert; und eine zweite Schnittstelle (802), die der Anwendung sichtbar ist, wobei die zweite Schnittstelle ausgelegt ist, die Anwendung in die Lage zu versetzen, dem Anwendungs-Manager eine Zustandsänderung der Anwendung von einem ersten Satz der Vielzahl der Zustände zu einem zweiten Satz der Vielzahl der Zustände mitzuteilen.
  3. Digitalfernsehempfänger nach Anspruch 2, in welchem der zweite Satz der Vielzahl der Zustände einen angehaltenen Zustand (604), der anzeigt, dass die Anwendung angehalten wurde, sowie einen gelöschten Zustand (608), der anzeigt, dass die Anwendung beendet wurde, enthält.
  4. Digitalfernsehempfänger nach Anspruch 1, in welchem die Anweisungen zum Ausführen der Anwendung folgendes aufweisen: eine erste Schnittstelle (702), die einem Anwendungs-Manager (208) sichtbar ist, wobei die erste Schnittstelle ausgelegt ist, den Anwendungs-Manager in die Lage zu versetzen, zu bewirken, dass die Anwendung ihren Zustand von einem Zustand der Vielzahl der Zustände zu einem anderen Zustand der Vielzahl der Zustände ändert; und eine zweite Schnittstelle (802), die der Anwendung sichtbar ist, wobei die zweite Schnittstelle ausgelegt ist, die Anwendung in die Lage zu versetzen, anzufordern, dass der Anwendungs-Manager den Zustand der Anwendung zu einem ersten Zustand der Vielzahl der Zustände ändert.
  5. Digitalfernsehempfänger nach Anspruch 4, der ferner Anweisungen aufweist, um den Zustand der Anwendung von einem zweiten Zustand der Vielzahl der Zustände zu dem ersten Zustand der Vielzahl der Zustände zu ändern.
  6. Digitalfernsehempfänger nach Anspruch 5, in welchem der erste Zustand ein aktiver Zustand (606) und der zweite Zustand ein angehaltener Zustand (604) ist.
  7. Digitalfernsehempfänger nach Anspruch 1, in welchem die Anweisungen zum Ausführen der Anwendung folgendes aufweisen: eine erste Schnittstelle (702), die einem Anwendungs-Manager (208) sichtbar ist, wobei die erste Schnittstelle ausgelegt ist, den Anwendungs-Manager in die Lage zu versetzen, zu bewirken, dass die Anwendung ihren Zustand von einem Zustand der Vielzahl der Zustände zu einem anderen Zustand der Vielzahl der Zustände ändert; und eine zweite Schnittstelle (802), die der Anwendung sichtbar ist, wobei die zweite Schnittstelle ausgelegt ist, die Anwendung in die Lage zu versetzen, dem Anwendungs-Manager mitzuteilen, dass die Anwendung ihren Zustand nicht ändern kann, wie es der Anwendungs-Manager angefordert hat.
  8. Digitalfernsehempfänger nach Anspruch 7, der ferner Anweisungen aufweist, um die Anwendung in die Lage zu versetzen, eine Zustandsänderungs-Ausnahme zu erhöhen, die anzeigt, dass die Anwendung ihren Zustand nicht ändern kann, wie es der Anwendungs-Manager angefordert hat.
  9. Digitalfernsehempfänger nach Anspruch 7, der ferner Anweisungen aufweist, um die Anwendung in die Lage zu versetzen, eine Zustandsänderungs-Ausnahme zu erhöhen, die anzeigt, dass die Anwendung ihren Zustand nicht ändern möchte, wie es der Anwendungs-Manager angefordert hat.
  10. Digitalfernsehempfänger nach Anspruch 3, der ferner Anweisungen zur Freigabe eines in Zusammenhang mit der Anwendung stehenden Speichers (1214), wenn die Anwendung beendet wurde, aufweist.
  11. Digitalfernsehempfänger nach Anspruch 1, der ferner folgendes aufweist: Anweisungen (1108) zum Erzeugen eines in Zusammenhang mit der Anwendung stehenden Klassen-Ladeprogramms, wobei das Klassen-Ladeprogramm ausgelegt ist, eine oder mehrere in Zusammenhang mit der Anwendung stehende Klassen zu laden; Anweisungen (1112) zum Instanziieren der Anwendung, indem jene Klassen verwendet werden, die mit dem Klassen-Ladeprogramm geladen wurden.
  12. Digitalfernsehempfänger nach Anspruch 11, der ferner Anweisungen (1214) aufweist, um die mit der Anweisung in Zusammenhang stehenden Klassen zu löschen, wenn die Anwendung beendet wird.
  13. Digitalfernsehempfänger nach Anspruch 12, in welchem die Anweisungen zum Löschen der Klassen Anweisungen zum Ent-Referenzieren des Klassen-Ladeprogramms aufweisen.
  14. Computerprogramm-Code, der mit einem Daten-Prozessor ausführbar ist, um den Digitalfernsehempfänger nach einem der Ansprüche 1 bis 14 bereitzustellen.
  15. Computer-lesbares Medium, welches den Computerprogramm-Code nach Anspruch 14 trägt.
DE60018067T 1999-07-13 2000-07-13 Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus Expired - Lifetime DE60018067T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14342899P 1999-07-13 1999-07-13
US143428P 1999-07-13
US465980 1999-12-16
US09/465,980 US7257812B1 (en) 1999-12-16 1999-12-16 Methods and apparatus for managing an application
US09/465,994 US6874145B1 (en) 1999-07-13 1999-12-16 Methods and apparatus for implementing an application lifecycle design for applications
US465994 1999-12-16
PCT/US2000/019167 WO2001004743A2 (en) 1999-07-13 2000-07-13 Methods and apparatus for managing an application according to an application lifecycle

Publications (2)

Publication Number Publication Date
DE60018067D1 DE60018067D1 (de) 2005-03-17
DE60018067T2 true DE60018067T2 (de) 2005-07-28

Family

ID=27385924

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60018067T Expired - Lifetime DE60018067T2 (de) 1999-07-13 2000-07-13 Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus

Country Status (9)

Country Link
EP (1) EP1194840B1 (de)
JP (1) JP2003504753A (de)
KR (1) KR20020022085A (de)
CN (1) CN1227588C (de)
AT (1) ATE289091T1 (de)
AU (1) AU781357B2 (de)
CA (1) CA2373036A1 (de)
DE (1) DE60018067T2 (de)
WO (1) WO2001004743A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7916117B2 (en) 2005-12-27 2011-03-29 Vega Grieshaber Kg Circuit arrangement for field unit

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2821940B1 (fr) * 2001-03-12 2006-09-29 Centre Nat Etd Spatiales Procede et systeme de gestion du temps dans un systeme temps reel
EP1320032A1 (de) 2001-12-12 2003-06-18 Siemens Aktiengesellschaft Verfahren zum Ändern des Betriebszustandes eines Anwendungsprogramms
JP2005005909A (ja) 2003-06-10 2005-01-06 Sony Ericsson Mobilecommunications Japan Inc 競合管理プログラム,競合管理プログラムが記憶された記憶媒体,競合管理方法及び電子機器
GB0315492D0 (en) * 2003-07-02 2003-08-06 Symbian Ltd A method of enabling a multitasking wireless information device to conserve battery power
US6947048B2 (en) * 2003-07-21 2005-09-20 Sony Corporation Method for sharing a graphics display as a resource in an embedded system
JP4243571B2 (ja) 2003-08-05 2009-03-25 パナソニック株式会社 放送受信装置
JP2007508612A (ja) * 2003-10-10 2007-04-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Bdディスクのためのjavaライフサイクルモデル
CN1867998B (zh) * 2003-10-10 2011-12-14 松下电器产业株式会社 记录方法、再现装置、再现方法
TW200518070A (en) 2003-10-10 2005-06-01 Matsushita Electric Ind Co Ltd Recording medium, reproduction device, program, and reproduction method
US8218951B2 (en) 2003-10-30 2012-07-10 Samsung Electronics Co., Ltd. Storage medium storing program management information, and reproducing method and apparatus
BRPI0409003A (pt) 2003-11-10 2006-03-28 Matsushita Electric Ind Co Ltd meio de gravação, aparelho de reprodução, programa, método de reprodução, circuito integrado do sistema
CN101656093B (zh) * 2003-11-10 2013-02-27 松下电器产业株式会社 播放装置及播放方法
US7870352B2 (en) 2003-11-13 2011-01-11 Stalker Altan J State-based memory unloading
FR2863074B1 (fr) * 2003-11-28 2006-02-24 Trusted Logic Procede permettant l'interrupton sure d'applications dans un systeme informatique distribue comportant un moteur d'execution logiciel.
CN100546096C (zh) * 2003-12-08 2009-09-30 松下电器产业株式会社 分波器和合波器
EP1734748A4 (de) 2004-04-06 2008-12-03 Panasonic Corp Programmausführungseinrichtung
EP1596291A1 (de) * 2004-05-10 2005-11-16 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zur automatischen Auswahl von Software Anwendungen
US7616864B2 (en) 2004-07-22 2009-11-10 Panasonic Corporation Playback apparatus for performing application-synchronized playback
KR100694123B1 (ko) * 2004-07-30 2007-03-12 삼성전자주식회사 동영상 데이터와 어플리케이션 프로그램이 기록된 저장매체 및 그 재생 장치 및 방법
KR101051703B1 (ko) 2004-08-09 2011-07-25 삼성전자주식회사 서스펜드/리쥼 기능을 갖는 집적 회로 카드 및 집적 회로카드 시스템
EP1840743B1 (de) * 2004-12-01 2011-05-18 Vodafone Group PLC Verknüpfungsoperationsverfahren und mobiles endgerät
US20060225107A1 (en) * 2005-04-01 2006-10-05 Microsoft Corporation System for running applications in a resource-constrained set-top box environment
KR100736095B1 (ko) 2006-02-24 2007-07-06 삼성전자주식회사 실시간 동영상 스트림의 화면 크기를 제어하는 장치 및방법
CN101403981B (zh) * 2008-11-07 2011-03-16 中兴通讯股份有限公司 手机应用程序运行状态的管理方法和系统
EP2247032A1 (de) * 2009-04-27 2010-11-03 Alcatel Lucent Fernverwaltung einer Anwendung auf einer Vorrichtung durch einen Managementserver
US8832686B2 (en) * 2010-10-29 2014-09-09 Microsoft Corporation Inherited product activation for virtual machines
TW201241640A (en) * 2011-02-14 2012-10-16 Microsoft Corp Dormant background applications on mobile devices
CN103729240B (zh) * 2013-12-02 2017-02-22 青岛海信电器股份有限公司 应用程序控制方法
KR101519414B1 (ko) * 2014-04-28 2015-05-12 한국인터넷진흥원 가상머신 라이프사이클 분석 시스템 및 방법
US9734000B2 (en) * 2015-06-18 2017-08-15 Microsoft Technology Licensing, Llc Seamless transitions between applications and devices
CN106506815A (zh) * 2016-10-19 2017-03-15 北京奇虎科技有限公司 一种应用的启用方法及相关设备
CN110417598B (zh) * 2019-07-30 2022-05-20 普信恒业科技发展(北京)有限公司 网关组件的管理方法及组件管理器
US12093414B1 (en) * 2019-12-09 2024-09-17 Amazon Technologies, Inc. Efficient detection of in-memory data accesses and context information

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) * 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
FR2679351B1 (fr) * 1991-07-15 1995-01-27 Bull Sa Systeme d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur a une liaison specifique d'un reseau.
EP0908821A1 (de) * 1997-10-07 1999-04-14 CANAL+ Société Anonyme Digitaler Codeinterpretierer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7916117B2 (en) 2005-12-27 2011-03-29 Vega Grieshaber Kg Circuit arrangement for field unit

Also Published As

Publication number Publication date
KR20020022085A (ko) 2002-03-23
ATE289091T1 (de) 2005-02-15
CN1227588C (zh) 2005-11-16
CN1360695A (zh) 2002-07-24
EP1194840B1 (de) 2005-02-09
WO2001004743A3 (en) 2001-12-27
CA2373036A1 (en) 2001-01-18
AU6097300A (en) 2001-01-30
DE60018067D1 (de) 2005-03-17
EP1194840A2 (de) 2002-04-10
JP2003504753A (ja) 2003-02-04
WO2001004743A2 (en) 2001-01-18
AU781357B2 (en) 2005-05-19

Similar Documents

Publication Publication Date Title
DE60018067T2 (de) Digitalfernsehempfänger zur steuerung einer anwendung gemäss eines anwendungslebenszyklus
US6874145B1 (en) Methods and apparatus for implementing an application lifecycle design for applications
DE60032030T2 (de) Ereignissteuergerät und digitales Rundfunksystem
DE69909255T2 (de) Multimediaterminal für mehrere benutzer
DE60022219T2 (de) Graphisches fenstersystem
DE69718195T2 (de) Vorrichtung und verfahren zur maskierung von latenzeffekten in einem nachrichtenverteilungssystem
DE69531561T2 (de) Ausführungssteuerungsverfahren für ein interaktives audio/video Programm
DE60318952T2 (de) Verfahren zum Reaktivieren einer Mehrzahl deaktivierter Geräte, ein entsprechendes Netzwerkelement und eine entsprechende Aktivierungseinrichtung
DE60037318T2 (de) Verfahren und vorrichtung zur auswahl von mehrfach gesendeten ip-daten die innerhalb eines rundfunkstromes übertragen werden
DE60005557T2 (de) Verfahren und vorrichtung für einen effizienten zugriff auf periodische rundfunkdaten
DE102006026725A1 (de) System und Verfahren zum transparenten Verarbeiten von Multimediadaten
CN109753617A (zh) 一种页面显示方法、设备和存储介质
DE112010005473T5 (de) Opportunistisches multitasking
DE102011107992A1 (de) System und Verfahren zum Anmelden zu Ereignissen auf der Grundlage von Schlagwörtern
DE60122795T2 (de) Server zum anpassen von datenströmen
DE112015002650B4 (de) Systeme und Verfahren zur prädiktiven Auslieferung von Inhalten mit hohen Bitraten zur Wiedergabe
DE112016002055T5 (de) Vorabrufcodierung für anwendungs-streaming
DE102018208496B4 (de) Persistente kennung für offline-zugriff auf gestreamte medien
US7770187B2 (en) Applications manager with variable management instruction set
US7257812B1 (en) Methods and apparatus for managing an application
DE60307896T2 (de) Verfahren zum hervorbringen einer liste von inhalten in einermit einem nationalen netzwerk verbundenen einrichtung und mit dem verfahrenassoziierte einrichtung
EP1340352B1 (de) Verfahren und vorrichtung zum steuern der übertragung und wiedergabe von digitalen signalen
DE60100932T2 (de) Ein Speicherverwaltungsgerät, -methode,-programm und rechnerlesbares Speichermedium zum Speichern des Speicherverwaltungsprogrammes
DE102019204521A1 (de) Kontextabhängiges Routing von Mediendaten
DE69708107T2 (de) Verfahren zum indexieren von daten in einem digitalen fernsehübertragungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition