-
Technisches Gebiet
-
Die
Erfindung bezieht sich auf Systeme und Verfahren zur Implementierung
von Benutzerschnittstellen in Fernseh-gestützten Systemen, die auch Fähigkeiten
zum Web Browsing zur Verfügung
stellen.
-
Hintergrund der Erfindung
-
In
Gebieten, die mit Benutzereingaben und -Ausgaben zu tun haben, wurde
die PC Hardware sehr standardisiert. Beispielsweise verwenden die
meisten PCs Tastaturen mit identischen Tastensätzen, die identische elektrische
Signale erzeugen. Computer Mäuse
sind ein anderes Beispiel für
diese Tendenz. Sogar wo sich Hardware sich etwas unterscheidet,
wie z.B. bei Video Bildschirmen, werden die meisten Unterschiede transparent
durch Treiber Software behandelt. Als Ergebnis können Entwickler von Anwendungsprogrammen ihre
Bemühungen
auf höhere
Niveaus von Funktionalitäten
konzentrieren, anstatt sich mit den Einzelheiten der Interaktionen
von Hardware zu befassen.
-
Durch
die breite Verwendung von graphischen Benutzerschnittstellen, wie
der Windows Familie von Betriebssystemen, erhältlich bei Microsoft Corporation,
sind die Einzelheiten der Benutzerinteraktion sehr standardisiert
worden. Das Windows Betriebssystem ermöglicht es Entwicklern, vorgeschriebene
Software Komponenten zu verwenden, um Benutzer Steuerungen zu implementieren,
und ermöglicht
ein einheitliches „Look
and Feel" über einen
breiten Bereich von Anwendungen.
-
Diese
Grade der Standardisierung sind noch nicht in anderen Technologieprodukten
erreicht worden, die eine komplexe Interaktion mit dem Anwender
erfordern, wie z.B. interaktive Fernsehprodukte und Produkte, die
danach trachten, Internet Web Browsing mit traditionellen und verbesserten
Fernsehdiensten zu kombinieren. In diesen Produkten implementieren
verschiedene Hersteller verschiedene Arten von Eingabe Hardware
(Tastaturen, Mäuse,
etc.), und möchten
verschiedene Verfahren zur Benutzerinteraktion entwickeln und damit
experimentieren. Tatsächlich
gibt es bei allen Herstellern oft Versuche, ein einheitliches „Look and
Feel" einzuführen, um
ein Produkt vom Wettbewerb zu differenzieren.
-
Dies
stellt insofern ein Problem für
eine Firma wie Microsoft Corporation dar, die ein einzelnes Software
Produkt, wie ein Betriebssystem und einen Web Browser zur Verwendung
mit Produkten entwickeln und verkaufen möchte, die von verschiedenen
Firmen hergestellt werden. Das Software Produkt muss sich an verschiedene
Hardware für
die Produkt von jedem einzelnen Hersteller anpassen und muss auch
anpassbar sein, um die spezifische graphische Benutzerschnittstelle
eines jeden Herstellers zu implementieren.
-
Üblicherweise,
ist die Anpassung eines Software Produkts eines jeden Herstellers
sehr ineffizient, sowohl vom Herstellungsstandpunkt her, als auch
vom Wartungsstandpunkt her. Obwohl es den Herstellern ermöglicht werden
könnte,
den Quellcode eines Software Produkts zu verändern, um eine gewünschte Schnittstelle
zu implementieren, verursacht auch dies Wartungsprobleme. Weiterhin
sind viele solche Hersteller nicht dazu eingerichtet, eine Computerprogrammierung
auf dieser Ebene durchzuführen.
-
EP-A-06 22 729 legt
den Bau, oder die Editierung von Benutzerschnittstellen von PC Systemen
und Workstations offen. Die erzeugten und editierten Benutzerschnittstellen
sind unabhängig
von jedem Fenster verwendenden System, und müssen zur Verwendung nicht kompiliert
werden. Die Implementierung der Benutzerschnittstelle kann einfach
von einem System auf ein anderes umgeleitet werden. Die Benutzerschnittstellen sind
in einem Display Objektspeicher gespeichert und können von
Anwendungen über
einen Benutzerschnittstellenserver verwendet werden.
-
Zusammenfassung der Erfindung
-
Die
Erfindung verwendet eine Internet Web Browser Architektur, die es
den visuellen Komponenten einer Benutzerschnittstelle ermöglicht,
durch eine Kombination von Dokumenten oder Quellfiles implementiert zu
werden, die in üblichen
Internet Hypertext Formaten geschrieben sind. Insbesondere wird
die Benutzerschnittstelle unter Verwendung individueller HTML (Hypertext
Markup Language) in Verbindung mit einem globalen Script implementiert,
das in einer bekannten Scriptsprache, wie z.B. JavaScript, geschrieben
ist.
-
Das örtliche
Scriptfile ist so geschrieben, dass es auf Benutzereingaben und
andere Vorgänge
mit konventionellen und erweiterten JavaScript Event Handlern, wie
z.B. „onKeyDown", „onClick", etc., antwortet.
Als Antwort auf Benutzereingaben öffnet das globale Scriptfile
entsprechende HTML Elemente und zeigt diese an und antwortet auf
die Benutzerauswahl dieser Elemente. Diese Elemente können miteinander
und mit dem globalen Script unter Verwendung von JavaScript Verfahren
und Eigenschaften kommunizieren. Das Scriptfile und HTML Elemente
interagieren auch mit der Vorrichtungs-Hardware als Antwort auf
bestimmte Vorgänge.
-
Die
Erfindung verwendet eine Supervisory Application, die unter einem
Betriebsystem, wie Windows CE läuft.
Das Anwendungsprogramm verwendet ein erweitertes „Dokument
Objekt Model" zur
Verwendung durch das globale Script und durch Scripts, die in „HTML Control
Elements" eingebettet
sind. Das globale Script läuft
andauernd unter der Aufsicht des übergeordneten Anwendungsprogramms
und erfüllt
die eine oder die andere Aufgabe eines konventionellen Web Browsers.
-
Das
erweiterte Dokumentenobjektmodell enthält Verfahren, die sich auf
die Erzeugung und Wartung von Benutzerschnittstellenkomponenten
beziehen, die im Obigen als HTML Elemente bezeichnet wurden, und hier
auch als Dialoge bezeichnet werden. Diese Verfahren akzeptieren
Bezeichnungen von örtlichen
HTML Files, die Benutzersteuerungen darstellen. Solche HTML Files
existieren und sind neben dem Informationsinhalt spezifisiert, der
als Ergebnis des Web Browsing erlangt wurde.
-
Eine
bestimmte HTML Steuerung kann entweder als ein Modaldialog, oder
als ein Dialog ohne Modus geöffnet
werden. Die erweiterten Dokumentenobjektmodell Verfahren ermöglichen
das Öffnen,
Schliessen, die Grössenveränderung,
das Bewegen, und das Schliessen der Dialoge. Die Dialoge verhalten
sich wie konventionelle HTML Komponenten und enthalten möglicherweise
Event Handler Scripts, die auf Benutzereingabe Events und auf andere
Events antworten, einschliesslich „Custom Events", die von OEMs in
Verbindung mit ihrer eigenen Hardware definiert werden. Die HTML
Steuerungen haben Zugang auf das erweiterte Dokumentenobjektmodell
und auf Eigenschaften und Verfahren, die innerhalb des globalen
Script implementiert sind. Weiterhin hat das globale Script Zugang
auf Verfahren und Eigenschaften, die durch Scriptcode innerhalb
der HTML Steuerungen bestimmt und offengelegt sind. Demgemäss können das
global Script und die verschiedenen HTML Komponenten miteinander
kommunizieren und interagieren, um eine vollständige und flexible Benutzerschnittstelle
zu erzeugen.
-
Unter
Verwendung dieser Architektur kann ein Software Hersteller ein einzelnes
Produkt, wie z.B. einen Web Browser, an viele verschiedene Hersteller
verkaufen. In der gelieferten Form enthält das Produkt ein globales
Scriptfile und zugeordnete HTML Steuerungen, um eine graphische
Benutzerschnittstelle als vorgegebene Position in Verbindung mit
vorgebender Hardware zu implementieren. Jedoch kann das vorgegebene global
Scriptfile von Kunden einfach modifiziert oder ersetzt werden, unter
Verwendung wohlbekannter Web Content Erzeugungswerkzeuge, anstatt
komplexerer, hochgradig kompilierter Sprache wie C oder C++. Dadurch
ist es für
einen Kunden sehr einfach, eine vollkommen neue Benutzerschnittstelle
zu erzeugen, und sie an neue Hardware anzupassen, ohne kritischere
grundlegenden Aspekte der Software Produkte negativ zu beeinflussen.
-
Gemäss einem
ersten Aspekt der Erfindung, gibt es ein Computer gestütztes Verfahrensprogramm umfassend:
Ausführen
eines Vorgangs eines Hyperlink-Browser, wobei der Hyperlink-Browser
dazu ausgelegt ist, einen mit Hyperlink verbundenen und mit einem
Browser durchsuchbaren Inhalt von einem Netzwerks anzuzeigen und
zu navigieren; Ausführen
eines Verfahrens mit offener Schnittstelle, das von einem Script
aufgerufen werden kann, wobei das Verfahren mit offener Schnittstelle
dazu ausgelegt ist, eine spezifische aus einer Mehrzahl von graphischen
Benutzerschnittstellenkomponenten in Verbindung mit dem durch Hyperlink
verbundenen, durchsuchbaren Inhalt zu übergeben, wobei die Mehrzahl
von graphischen Benutzerschnittstellenkomponenten unabhängig von
dem durch Hyperlink verbundenen, durch Browser durchsuchbaren Inhalt
ist, und jede der Mehrzahl von graphischen Benutzerschnittstellenkomponenten
ein Dokument enthält,
welches in einer Text Markup Sprache geschrieben ist; und Ausführen eines
Verfahrens mit offener Schnittstelle, die von dem Script aufrufbar
ist, um die spezifizierte der Mehrzahl von graphischen Benutzerschnittstellenkomponenten
zu schliessen.
-
Gemäss einem
zweiten Aspekt der Erfindung, gibt es ein Computer Programm, oder
eine Gruppe von Computer Programmen, die so angeordnet sind, dass
sie, wenn sie von einem Computer ausgeführt werden, den Computer steuern,
dass er das Verfahren nach dem ersten Aspekt der Erfindung ausführt.
-
Gemäss einem
dritten Aspekt der Erfindung gibt es ein Computer lesbares Speichermedium,
welches das Computer Programm, oder zumindest eines der Gruppe von
Computer Programmen gemäss
dem zweiten Aspekt der Erfindung speichert.
-
Gemäss einem
vierten Aspekt der Erfindung gibt es ein Computer System, das einen
Vorgang eines Hyperlink-Browsers ausführt, ein offenes Schnittstellenverfahren,
und ein geschlossenes Schnittstellenverfahren, um das Verfahren
gemäss
einem der Ansprüche
1 bis 21 auszuführen.
-
Eine
Anzahl von bevorzugten oder vorteilhaften Eigenschaften wird in
den Unteransprüchen
in Bezug genommen.
-
Kurze Beschreibung der Zeichnungen
-
1 stellt
ein Fernseh-Gestütztes
System dar, welches Web Browsing Eigenschaften enthält;
-
2 ist
ein Blockdiagramm einer Systembox;
-
3 zeigt
Software Komponenten;
-
4 zeigt
ein Browser Fenster und seine Komponenten; und
-
5 zeigt
einen erweiterten Anwender Dialog.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsform
-
Internet Content – HTML und JavaScript
-
Das
World Wide Web (WWW oder Web) des Internet ist eine Ansammlung von
Multimedia Inhalten, die als „Hypermedia" bezeichnet wird. „Hypermedia" ist ein Begriff
für Informationen,
bei denen Text, Bilder, Ton, und Handlungen in einem komplexen nicht
sequenziellen Netz von Zuordnungen verbunden sind, die es einem
Benutzer ermöglichen,
durch verwandte Themen zu „Browsen", oder zu „Navigieren", unabhängig von der
zur Verfügung
gestellten Abfolge der Themen. Der Ausdruck „Hypermedia" entsteht aus „Hypertext", ein Ausdruck, der
ursprünglich
geprägt
wurde um textbasierte Dokumente zu beschreiben, die Verbindungen
mit anderen solchen Dokumenten enthalten, um ein nicht sequenzielles
Netz aus verbundenen Ideen zu bilden.
-
Hypermedia
Inhalte werden allgemein als individuelle „Dokumente" angeordnet, oder „Seiten" mit einer eingebetteten Steuerinformation.
Ein Dokument oder eine Seite entspricht normalerweise einem einzelnen File,
das entweder örtlich,
oder durch ein Netzwerk heruntergeladen werden kann. Die eingebettete
Steuerungsinformation enthält
Formatspezifikationen, die anzeigen, wie ein Dokument übergeben
werden soll.
-
Zusätzlich kann
eine solche Steuerungsinformation Links oder „Hyperlinks" enthalten: Symbole
oder Befehle, die anzeigen, wo andere verwandte Web Dokumente (Files)
im Internet zu finden sind. Ein Hyperlink von einem Hypermedia Thema
zu dem anderen wird üblicherweise
von dem Autor eines Hypermedia Dokuments erstellt, obwohl einige
Anwendungen es Benutzern erlauben, Hyperlinks in gewünschte Themen
einzusetzen.
-
Ein
Anwendungsprogramm, das als Web Browser bezeichnet wird, wird dazu
verwendet, Hypermedia Inhalte von dem WWW herunterzuladen, und zu übergeben.
Ein Web Browser ermöglicht
es einem Anwender durch das Web zu navigieren und dadurch Gegenstände zu finden,
die für
den Anwender von Interesse sind. Die Ausdrücke „Browsen" und „Navigieren" kennzeichnen ein
Verfahren des Folgens einer Abfolge von Hyperlinks durch eine Mehrzahl
von verschiedenen Dokumenten, oder anderen Web Ressourcen.
-
Als
Antwort auf die Aktivierung oder Auswahl eines spezifischen Hyperlink
lädt ein
Web Browser das File, oder einen anderen Multimedia Inhalt der von
dem Hyperlink spezifiziert ist, herunter, und übergibt ihn. Gemäss dem üblichen
Verfahren enthält
ein solcher Inhalt üblicherweise
Hyperlinks zu zusätzlichen
Medienquellen und erzeugt damit das Web von untereinander vernetzten
Dokumenten oder Quellen. Ein Anwender kann ein jedes solches Hyperlink
auswählen,
und als Antwort lädt
die Betrachtungs-Software die Medieninhalte, die durch dieses Hyperlink
identifiziert sind.
-
Ein
Hyperlink wird üblicherweise
durch einen Web Browser als eine graphische Ikone, oder als hervorgehobene
Schlüsselworte
dargestellt. Ein Anwender „aktiviert" oder „folgt" einem Hyperlink
durch Aufklicken, oder anderweitige Auswahl der Ikone, oder der
hervorgehobenen Schlüsselworte.
Das Aktivieren eines Link veranlasst den Web Browser, das Dokument,
oder die Quelle herunterzuladen und zu übergeben, auf das durch das
Hyperlink abgezielt wird. Das Ziel des Hyperlink ist in dem Dokument
spezifiziert, das den Hyperlink enthält.
-
Konzeptionell
kann das Ziel eines Hyperlink jede Art von Objekt sein, einschliesslich
ausführbarer
Programme, Text oder Multimedia Dokumente, Tonabschnitten, Audiosegmenten,
Stillen Bildern, Computern, Registern, und anderen Hyperlinks. In
WWW Dokumenten sind Hyperlink Ziele meist Files, die auf beliebigen Computern
geladen sein können,
die mit dem Internet verbunden sind. Jedoch kann ein Hyperlink Ziel
auch ein einzelner Ort innerhalb eines Dokuments sein, einschliesslich
des Dokuments, das derzeit übergeben
wird.
-
Hypermedia
Inhalte, die von dem WWW verwendet werden sind üblicherweise unter Verwendung
dessen geschrieben, was als „Text
Markup Language" bezeichnet
wird. „SGML" (Standard Generalized
Markup Language) ist eine solche Sprache, die formell als „eine Sprache
zur Dokumentendarstellung, die den Markup formalisiert und ihn von
System- und Verarbeitungsabhängigkeiten
befreit" definiert
wird. SGML ist eine Sprache, um die Struktur von Dokumenten zu beschreiben,
und um ein Markierungsschema zu beschreiben, um diese Struktur innerhalb
eines Textes auszulegen.
-
Zum
Erzeugen von Hypermedia Inhalten verwenden WWW Dokumente eine Spezialisierung
von SGML, die „HTML" genannt wird (Hypertext
Markup Language). Ein HTML Textdokument kann als einfacher Text
angesehen werden, der Formatanweisungen in der Form von HTML Markup
Codes, oder „Tags" enthält. Tags
weisen Web Browser an, wie Dokumente zu Übergeben und zu drucken sind,
und werden auch verwendet, um Hyperlinks zu spezifizieren.
-
Der
Hauptzweck des HTML ist es, Text und Bilder auszulegen und zu formatieren.
Jedoch können HTML
Dokumente auch ausführbare
Scripts enthalten. Ein Script ist eine Abfolge von Befehlen, die
logische Entscheidungen, Schleifen, und bedingte Schleifen enthalten
können.
Scripts werden oft zu dem Zeitpunkt der Ausführung interpretiert und nicht
kompiliert.
-
JavaScript
ist ein Beispiel einer derzeit populären Script Sprache. JavaScript
erlaubt es einem Designer, Interaktivität zu dem HTML hinzuzufügen, um
Benutzerinteraktion zu ermöglichen,
und Feedback und Animation und HTML mit anderen Technologien, wie
z.B. Java, ActiveX, und Plug-ins zu verbinden.
-
Um
eine Interaktivität
zu ermöglichen
verwendet JavaScript so genannte „Event Handler". Mit einem Event
Handler kann ein JavaScript Events erfassen, die auf einem Hyperdokument
auftreten, wie das Klicken auf einem Formknopf, oder der Maus, die
sich über
ein Link bewegt. Der Event Handler kann dann einen Code als Antwort
auf diese Aktionen ausführen.
Beispielsweise kann ein JavaScript einen „OnClick" Event Handler enthalten. Wenn der Event
Handler mit einem Button, oder einer anderen diskreten HTML Komponente
verbunden ist, dann veranlasst das Klicken auf dieser Komponente
das Ausführen
des OnClick Event Handlers.
-
JavaScript
verwendet ein so genanntes „Dokumentobjektmodell". Dies ist eine Hierarchie
von Objekten und ihren Eigenschaften und Verfahren. Durch solche
Eigenschaften und Verfahren kann ein Script auf Aspekte des Web
Browser selbst zugreifen und diese spezifizieren, wie z.B. Statuszeilen,
Fensterpositionen und Charakteristiken, Datums und Zeitwerte, und
eine Anzahl anderer Eigenschaften. Ein JavaScript kann auch seine
eigenen Eigenschaften und Verfahren zur Verwendung durch andere
JavaScript Komponente zur Verfügung
stellen.
-
In
Bezug auf andere Einzelheiten im Verhältnis zu HTML und JavaScript
wird auf R. Stout, „The
World Wide Web Complete Reference", (Berkeley: Osborne McGraw-Hill, 1996)
und N. Heinle, „Designing
with JavaScript: Creating Dynamic Web Pages", (Sebastopol: Songline Studios, 1997)
verwiesen. Die folgende Erörterung
geht davon aus, dass eine gewisse Vertrautheit mit diesen Themen
vorhanden ist.
-
Hardware Umgebung
-
Die
Erfindung wird in der Umgebung eines Fernseh-gestützten Computers
mit Internet Verbindbarkeit beschrieben, der allgemein als „Web Fernseher" oder „Internet
Fernseher" beschrieben
wird. Vorrichtungen wie diese können
in einer Mehrzahl von Konfigurationen mit Fernsehern, oder als traditionellere
Computer mit Fernsehfähigkeiten
hergestellt werden. Diese Vorrichtungen kombinieren die Netzwerk
Browser Funktionen eines Computers mit den Fernsehbetrachtungsfähigkeiten
eines herkömmlichen
Fernsehers. Zusätzlich
stellen so genannte Internet Fernseher verbesserte Fähigkeiten
wie interaktive Programmierrichtlinien und das Verbinden des durch
Hyperlink verbundenen Web Inhalts mit Fernsehinhalten wieder.
-
1 zeigt
ein Beispiel eines Fernseh-gestützten
Computer Browser Systems 50 innerhalb dessen die Erfindung
implementiert werden kann. In diesem Fall umfasst das System einen
konventionellen Fernsehempfänger 52 und
ein System, oder eine Settop Box 54. Ein Fernsehempfänger, oder
eine Anzeige 52 sind so verbunden, dass sie ein Video,
oder Audiosignal von der Systembox 54 empfangen. Eine Tastatur 68 ist
mit dem Tastatureingangsport der Systembox 54 verbunden,
vorzugsweise mit einer drahtlosen Infrarot Verbindung. Die Systembox
hat eine Internet Verbindung und empfängt ein Fernsehsignal von einer
erdgebundenen Quelle, von einem Satelliten, oder von einem Kabel
Fernsehsystem.
-
2 zeigt
die wichtigsten Komponenten der Systembox 54. Die Systembox 54 ist
im Grunde ein Computer, der einen Datenprozessor, oder einen Mikroprozessor 56 aufweist,
einen Primärspeicher 58,
der einen flüchtigen
und einen nicht flüchtigen
Speicher enthält,
wahlweise einen Sekundärspeicher 59,
wie z.B. eine Festplatte, Floppy Disc, oder andere entfernbare Medien,
verschiedene I/O Komponente 60, und andere Komponenten,
die in PCs üblich
sind. Die betreffenden I/O Komponenten enthalten einen Tastatureingabeport, einen
Video Ausgabeport, und eine Netzwerkschnittstelle, und einen Fernsehsignaleingabeport.
Die Netzwerkschnittstelle stellt eine Verbindung mit einem privaten,
oder öffentlichen
Netzwerk, wie dem Internet her. Die Netzwerkschnittstelle kann eine
Telefonmodem, eine Ethernetschnittstelle, oder eine ähnliche Schnittstelle enthalten.
Die Systembox 54 hat auch einen Fernsehtuner 70,
um herkömmliche
Fernsehsignale zu empfangen und zu demodulieren.
-
Software Architektur
-
Der
Mikroprozessor der Systembox 54 wird durch Programme programmiert,
und durch Befehle, die zu verschiedenen Zeiten in den verschiedenen
Computer lesbaren Speichermedien der Systembox gespeichert sind.
Programme werden üblicherweise
verteilt, z.B. auf Floppy Discs, oder CD-ROMs. Von dort werden sie in den Sekundärspeicher
eines Computers installiert oder geladen. Bei Ausführung werden
sie zumindest teilweise in den elektronischen Primärspeicher
des Computers geladen. Die hier beschriebene Erfindung enthält diese
verschiedenen Typen von Computer lesbaren Speichermedien, wenn solche
Medien Instruktionen oder Programme enthalten, um die gewünschten
Schritte mit einem Mikroprozessor, oder anderen Datenprozessor zu
implementieren. Die Erfindung enthält auch das System, oder den
Computer selbst, wenn sie gemäss
den Verfahren und Techniken programmiert ist, die im Folgenden beschrieben
werden.
-
In
der spezifischen beschriebenen Ausführungsform werden Programme
in nicht flüchtigen
ROM Speichern gespeichert und direkt von dort ausgeführt.
-
Wie
in 2 gezeigt, enthält das System ein Betriebsystem 72,
ein oder mehrere Anwendungsprogramme 74 und Programmdaten 76.
Zum Zweck der Darstellung werden Programme, Programmkomponenten und
Daten in 2 als diskrete Blöcke innerhalb
der Systembox 54 gezeigt, obwohl bekannt ist, dass solche Programme
und Komponenten zu verschiedenen Zeiten in verschiedenen Speicherkomponenten
des Computer gestützten
Systems angeordnet sind.
-
Das
Betriebsystem ist vorzugsweise ein Multitasking Betriebsystem, wie
z.B. das Windows CE Betriebsystem, das von Microsoft Corporation
verkauft wird.
-
Das
Betriebsystem verwendet eine graphische Benutzerschnittstelle in
einer Umgebung mit Fensterbetrieb.
-
In
der beschriebenen Ausführungsform
der Erfindung ist das Betriebsystem keine Komponente, die für den Benutzer
besonders sichtbar ist. Eher überwacht
ein Supervisory Computer Application Program die meisten der offensichtlichen
Funktionalitäten
des Systems 50 und verwaltet sie, wie z.B. Netzwerk Browsing,
Video- oder Fernsehüberwachungsfähigkeiten,
und Benutzerschnittstellenfunktionen. Das Supervisory Application Program
ist dazu ausgelegt, automatisch immer dann zu beginnen, wenn das
System 50 eingeschaltet und verwendet wird.
-
3 zeigt
eine solche übergeordnete
Anwendung, die allgemein mit der Bezugszahl 100 bezeichnet ist.
Die Anwendung wird in einer konventionellen kompilierten Programmsprache
geschrieben, die wohlbekannte Windowsprogrammierverfahren verwendet.
Das Anwendungsprogramm 100 läuft in Zusammenhang mit dem
Betriebsystem 72, das auch in 3 gezeigt
wird. Die Supervisory Application 100 kommuniziert mit Hardware
Vorrichtungen, wie z.B. dem Netzwerk Interface Fernsehtuner, Tastatur,
und Anzeigekomponenten durch konventionelle Windows Betriebsystem
Aufrufe. Weiterhin liefert das Betriebsystem andere Dienstleistungen,
wie sie üblicherweise
von modernen Betriebsystemen zur Verfügung gestellt werden.
-
Anwendungen 74 enthalten
ein Browserprogramm 104, das tatsächlich einen oder mehrere Einsätze der
Microsoft Web Browser ActiveX Control enthält, die als Teil von Microsofts
INET Software Developer Kit zur verfügbar sind. Die ActiveX Steuerung
ist ein voll funktionsfähiger
Netzwerk Hyperlink Browser mit Fähigkeiten,
wie diejenigen, die in dem Microsoft Internet Explorer Programm
verfügbar
sind. Es ermöglicht
einem Benutzer, durch das WWW des Internet, oder ähnliche
Quellen zu navigieren. In diesem Fall sind jedoch Browser Vorgänge dazu
ausgelegt, ohne ihren üblichen
Benutzerschnittstellenkomponenten abzulaufen. Benutzerschnittstellenkomponenten 105 werden
als HTML Inhalt getrennt von dem navigierbaren Inhalt übergeben,
wie im Folgenden genauer für
einen getrennten Browsereinsatz beschrieben wird.
-
Damit
läuft die
Supervisory Application 100 über dem Windows CE und last
einen oder mehrere Vorgänge
eines Browser Programms ablaufen, das einen navigierbaren Inhalt
zeigt. Wie im Folgenden näher
beschrieben wird, dehnt die Supervisory Application auch das Standardobjektmodell
aus, das von dem JavaScript verwendet wird, und stellt Event Brokering
Dienstleistungen zur Verfügung.
Einzelne Web Ressourcen können
durch eine direkte Anwendereingabe spezifiziert werden, durch Auswahl
eines Hyperlink, durch andere Applikationsprogramme, durch Standard
Programmschnittstellen, oder durch Scripts, die im Webinhalt selbst
enthalten sind. In den meisten Fällen
ersetzt eine neu spezifizierte Quelle den vorher übergebenen
Inhalt. Jedoch ist es auch möglich,
dass der neue Inhalt in einem neuen Fenster geöffnet wird, welches das alte Fenster
teilweise überlagert.
-
Spezifische
Quellen können
auch ActiveX Komponenten oder Steuerungen enthalten. Eine ActiveX Steuerung
ist eine ausführbares
Programm in Form einer DLL (Dynamically Linked Library). ActiveX
Steuerung können
als Webinhalt heruntergeladen, oder örtlich erlangt werden. ActiveX
Komponenten legen wahlweise Verfahren und Eigenschaften offen, die
durch Scripts verwendet werden können,
die mit Web Inhalten zu tun haben. Fernseh- oder Video Inhalte werden
vorzugsweise in ActiveX Steuerung betrachtet. Eine solche Steuerung
verwendet ihren eigenen Browser Einsatz, und läuft als ein Fenster über jedem
anderen Inhalt.
-
Beispiel für Anwenderschnittstelle
-
4 zeigt
ein Beispiel wie ein System konfiguriert werden kann, um Web Ansicht
und Zugang zu erlauben, während
gleichzeitig auch ein laufendes Fernsehprogramm betrachtet werden
kann. Die optische Ansicht enthält
drei primäre
Komponente: eine Benutzerschnittstellenkomponente, ein Internet
Inhaltsfenster 52, und ein laufendes Fernsehfenster 154.
Alle drei Komponenten sind als Browser Vorgänge ausgeführt.
-
Die
Internet Komponente 152 übergibt Web Inhalt. Innerhalb
dieser Komponente kann der Anwender den Betrachtungspunkt von Link
zu Link bewegen, den übergebenen
Inhalt auf und ab bewegen, und zu neuen Orten navigieren, alles
gemäss
konventioneller Browser Technologie.
-
Die
Fernsehkomponente 154 zeigt einen laufenden Video Strom
an. In diesem Beispiel wird diese Komponente in einem eigenen Fenster
angezeigt, welches dann mit der Internet Komponente überlagert
wird. Diese Komponente erhält
keinen Brennpunkt, und sie legt keine weitere sichtbare Komponente
ausser dem Video Strom offen. Die Fernsehkomponente benutzt eine
ActiveX Steuerung, um mit Fernsehsteuerungs Hardware zu kommunizieren,
die sich zwischen Systemen unterscheiden kann. Diese Steuerung legt
eine Gruppe von Verfahren und Eigenschaften offen, die es Scripts
erlaubt, auf TV spezifische Funktionalität und Information zuzugreifen.
-
In 4 wird
eine Benutzerschnittstellekomponente 150 in einem vorgegebenen
minimierten Zustand gezeigt. In diesem Zustand gibt die Benutzerschnittstellenkomponente
nur Informationsrückkopplung.
In diesem Beispiel zeigt sie eine variable Nachricht in einem Beschreibungsgebiet 155,
ein Paar Scroll Anzeiger 156, und ein Verbindungszustandsgebiet 158.
-
Um
auf die spezifische Funktionalität
des Systems 50 zuzugreifen kann der Benutzer die angezeigte Benutzerschnittstelle 150 dadurch
aktivieren und erweitern, dass eine zugeordnete Taste auf einem
Fernbedienungsgerät,
oder einer Tastatur betätigt
wird. Das Ergebnis wird in 5 gezeigt:
ein erweiterter Toolbar 160, der eine Mehrzahl von Menügegenständen enthält, die
graphisch als Knöpfe 162 dargestellt
sind. Ein Benutzer kann jeden dieser Knöpfe auswählen, um die angezeigten Funktionen
auszuführen.
-
Implementierung der Benutzerschnittstelle
-
Die
Benutzerschnittstellenkomponenten, die in den 4 und 5 gezeigt
werden, sind Beispiele der vielen verschiedenen Arten von Benutzerschnittstellenkomponenten,
die zusammen mit einer Fernsehgestützten Web Vorrichtung implementiert
werden können,
wie hier beschrieben. Es ist klar, dass die Möglichkeiten endlos sind und
hohe Anforderungen an die Flexibilität gestellt werden.
-
Um
eine solche Flexibilität
beim Implementieren des Benutzerschnittstellenbereichs der Vorrichtung zur
Verfügung
zu stellen werden alle Funktionen und Komponenten, die sich auf
die Benutzer Schnittstelle beziehen unter Verwendung der Technologie
implementiert, die im Zusammenhang mit Internet Inhalten häufig verwendet
wird. Insbesondere werden Benutzerschnittstellensteuerungen und
Dialoge als HTML Files oder Ressourcen implementiert. Weiterhin
wird die gesamte Logik und Abfolge der Benutzerschnittstelle durch
ein globales Script File hergestellt, das in Script Sprache, wie
JavaScript geschrieben ist. Das Script File wird zur „Runtime" spezifiziert und
kann während
der Ausführung
ersetzt oder neu spezifiziert werden, um verschiedene Betriebsarten
zu implementieren. Ein solches Script File wird in 3 gezeigt
und ist mit der Bezugszahl 106 bezeichnet.
-
Das
Script 106 ist ein JavaScript Programm, das dazu ausgelegt
und konfiguriert ist, um die Benutzerschnittstelle des Systems 50 zu
implementieren. Sie enthält
JavaScript Event Handler zur Ausführung als Antwort auf verschiedene
Events, wie z.B. Benutzereingaben, Browser Aktivitäten, und
eine Vielzahl von anderen Events, die sowohl von der Supervisory
Application 100, als auch durch besondere ActiveX Steuerungen
bestimmt sind, die durch durchsuchte Dokumente und durch das Global
Script File selbst geladen werden. Das Anwendungsprogramm 100 ruft
Event Handler als Antwort auf bestimmte Events auf. Im Gegenzug
können Event
Handler und anderer Code innerhalb des Global Script 106 Funktionen
oder Verfahren aufrufen, die von dem Anwendungsprogramm 100 zur
Verfügung
gestellt werden. Diese Funktionen werden durch ein erweitertes Dokumentenobjektmodell
aufgerufen, das von dem Anwendungsprogramm 100 implementiert
wird.
-
Steuerungen
und Dialoge selbst werden als Text und Graphik Dokumente aufgerufen,
die in einer Text Markup Language wie HTML geschrieben sind. Um
Optionen für
einen Anwender zur Verfügung
zu stellen erzeugt das Global Script 106 Dialogboxen und
steuert durch Spezifizieren örtlicher
HTML Grafik Elemente (in der Form von HTML Files und ihrer URLs)
für die
Supervisory Application 100. Die Supervisory Application 100 gibt
solche Spezifikationen an einen Browser Vorgang weiter, der die
spezifizierten HTML graphischen Elemente in Zusammenhang mit dem
Material zur Verfügung
stellt, das bereits als Ergebnis des Browsing des Benutzers angezeigt
wird.
-
Das
Supervisory Application Programm 100 implementiert ein
ausgedehntes Dokumentobjektmodell zur Verwendung durch das globale
Script 106 und durch den Script Code innerhalb des graphischen
HTML Elements, die als Benutzerschnittstellenkomponenten spezifiziert
sind. Das ausgedehnte Dokumentenobjektmodell enthält Verfahren,
die sich auf die Erzeugung und Aufrechterhaltung von graphischen
Benutzerschnittstellenelementen beziehen, die auch als Dialoge bezeichnet
werden. Diese Verfahren nehmen Bezeichnungen von örtliche
HTML Files an, die Benutzereingaben repräsentieren.
-
Eine
einzelne HTML Komponente oder Steuerung kann entweder als ein Modaldialog
oder als ein Dialog ohne Modus zur Verfügung gestellt werden. Die ausgedehnten
Dokumentenobjektmodellverfahren erlauben das Öffnen der Dialoge, das Verändern der
Grösse,
das Bewegen und das Schliessen. Wenn geöffnet, dann funktionieren die
Dialoge als konventionelle HTML Komponenten, die möglicherweise
Event Handler Scripts enthalten, die sich auf Benutzereingaben und
andere Vorgänge
beziehen. Die HTML Steuerungen selbst haben Zugang auf das erweiterte
Dokumentenobjektmodell und auf Eigenschaften und Verfahren die innerhalb
des globale Scripts implementiert sind. Zusätzlich hat das globale Script
Zugriff auf Verfahren und Eigenschaften, die durch den Script Code
innerhalb der HTML Steuerungen definiert sind. Demgemäss können das
globale Script und die verschiedenen HTML Komponenten miteinander kommunizieren
und interagieren, um eine vollständige
und flexible Benutzerschnittstelle zu erzeugen.
-
Erweitertes Objekt Modell
-
Um
die oben beschriebene Funktionalität zu implementieren unterstützt das
Anwendungsprogramm 100 ein erweitertes Dokumentenobjektmodell,
das durch JavaScript Scripts zugänglich
ist, wie das globale Script und Scripts, die in HTML Steuerungen
eingebettet sind.
-
Allgemein,
wird die folgende Syntax verwendet um auf UI bezogene Verfahren
und Eigenschaften in diesem erweiterten Modell zuzugreifen:
Window.external.app.method()
Window.external.app.property()
Window.external.dialog.method()
Window.external.dialog.property()
-
Die
folgenden Tabellen führen
wichtige Verfahren und Eigenschaften auf, die sich auf Benutzerschnittstellenkomponenten
beziehen:
App
Methods and properties | Beschreibung |
| |
ExecuteNewScript([in]BSTR
script) | Führe New
Script aus (Skriptname)
Lade neues globales Skript
Schliesse
derzeitiges Skript |
ExecuteScript(path,
vars) | Führe Skript
aus ()
Führt
neues globales Skript aus
Lädt
derzeitiges Skript nicht aus |
CloseScript() | Schliesst
derzeitges Globales Skript |
ShowModalDialog(string
URL, int x, int y, int dx, int dy, 0,0, VARIANT_BOOL DisallowClose) | Zeigt
einen Modaldialog der spezifizierten Grösse an dem spezifizierten Ort
Die
URL kann ein örtlicher
Pathname sein |
ShowModelssDialog(string
URL, int x, int y, int dx, int dy, 0,0) | Var
idDialog = Zeige Modeless Dialog
Zeigt einen modeless Dialog
der spezifizierten Grösse
am spezifizierten Ort.
Die URL kann ein örtlicher Pathname sein. |
CloseModelessDialog(name) | Schliesse
Modeless Dialog (idDialog)
Schliesst den Dialog nachdem die
ID durchgelaufen ist |
CloseAllModalDialogs() | Schliesst
alle Modaldialoge |
Dialog
Methods and properties | Beschreibung |
| |
Document | Eigenschaft
Erlaubt Zugriff auf Dokumenteneigenschaften des Dialogs |
Window | Eigenschaft
Erlaubt Zugriff auf Fenstereigenschaften des Dialogs |
SetFocus(void); | Bestimmt
den Fokus des Dialogs |
Show(void); | Zeigt
den Dialog |
Hide(void); | Versteckt
den Dialog |
Position(short
x, short y, short w, short h); | Lege
die Position des Dialogs fest |
IsVisible([out,
retval] BOOL·pfVisible); | Erlange/lege
die Sichtbarkeit des Dialogs fest |
-
Die
primären
Verfahren, die das globale Script verwendet, um Benutzerschnittstellen
zu erzeugen, sind die ShowModalDialog(), ShowModelessDialog(), CloseModalDialog(),
und das CloseModelessDialog() Verfahren, die hier als „open" und „close" Schnittstellenverfahren
bezeichnet werden.
-
Scripts
innerhalb spezifizierter HTML Komponenten können auf Verfahren und Eigenschaften
des Global Script unter Verwendung der folgenden Syntax zugreifen,
wo Verfahren() und Eigenschaften() durch Namen der Verfahren und
Eigenschaften ersetzt werden, die durch das globale Script offengelegt
werden.
Window.external.script.method()
Window.external.script.property
-
Das
Standard Objektmodell wird auch erweitert durch Definieren zusätzlicher
Events, die potentiellen Event Handlern entsprechen, die durch das
globale Script
106 implementiert werden. Die folgende Tabelle zeigt
Events, die durch das Anwendungsprogramm
100 zur potentiellen
Bearbeitung durch das globale Skript
106 erzeugt werden
können:
Event | Verhalten |
| |
OnStart | Erzeugt,
wenn Anwendungsprogramm 100 beginnt |
OnClose | Erzeugt,
wenn Anwendungsprogramm 100 beendet |
OnBowserDocLoaded | Erzeugt,
wenn der Hauptbrowser ein Dokument lädt |
OnBrowserTitleChange(BSTR) | Erzeugt,
wenn der momentane Browser Titel sich ändert |
OnBrowserBeforeNavigate() | Erzeugt,
wenn der Browser kurz vor dem Navigieren steht |
OnBrowserNavigateComplete() | Erzeugt,
wenn der Browser das Navigieren abgeschlossen hat |
OnBrowserDownloadBegin() | Erzeugt,
wenn der Browser das Heunterladen beginnt |
OnBrowserDownloadComplete() | Erzeugt,
wenn der Browser das Herunterladen vollendet |
| |
OnOpenSoftKeyboard() | Erzeugt,
wenn der Anwender eine Bildschirmtastatur aufruft |
OnCloseSoftKeyboard() | Erzeugt,
wenn die Bildschirmtastatur geschlossen wird |
| |
OnDialogOpen() | Erzeugt,
wenn der Dialog geöffnet
wird |
OnDialogClose() | Erzeugt,
wenn der Dialog geschlossen wird |
| |
OnRasDialStatus(int) | Erzeugt,
wenn sich der RAS Verbindungsstatus ändert |
| |
OnPlayAudio | Erzeugt,
wenn die Audio Übergabe
beginnt |
-
Zusätzlich werden
Tastatur Events für
bestimmte Tastaturkonfigurationen definiert. Als Beispiel kann ein „MenuKey" Event für eine zugeordnete
Tastaturtaste die als „Menu" gekennzeichnet ist
definiert werden. Hardware Hersteller können zusätzliche Keyboardkey Events
durch Registrieren von Keycodes in dem Register registrieren.
-
In
Systemen, die eine besondere Hardware aufweisen, die nicht von der
vergebenen Konfiguration beschrieben ist, kann eine ActiveX Steuerung,
als ein nicht sichtbarer Teil eines andauernden Dialogs vorbereitet und
geladen werden. Eine solche ActiveX Steuerung legt Verfahren und
Eigenschaften offen, die es dem Global Script erlauben, auf Eigenschaften
der spezifischen Hardware zuzugreifen.
-
Ausführungsbeispiele
-
Es
folgt nun ein Beispiel von JavaScript Code zum Erzeugen eines neuen
Dialoges und dann zum Arbeiten mit seinen Verfahren. Dieser Code
kann als Teil eines Event Handlers in dem Global Script implementiert
werden. Zum Beispiel um eine neue Benutzerschnittstellenkomponente
als Antwort darauf zu erzeugen, dass der Anwender eine bestimmte
Taste betätigt.
Toolbar
= Window.external.Ul.showModelessDialog("Toolbar.htm", 0, 0, 0, 0);
Window.external.Dialog.Document(Toolbar).all.TitleText.innerText
= "WebTV";
Window.external.Dialog.Window(Toolbar).scrollTo(0,
0);
Window.external.Dialog.Position(Toolbar, PosX, PosY, Width,
Height);
Window.external.Dialog.SetFocus(Toolbar);
Window.external.Ul.closeModelessDialog(Toolbar);
-
Das
Folgende ist ein Beispiel einer HTML Ressource, die ein Fernsehsteuergerät implementiert:
-
Wenn übergeben,
dann zeigt diese Ressource eine ActiveX Fernsehgerätesteuerung,
wie durch den Class Identifier (ClassID) spezifiziert. Unter der
Annahme, dass dieser HTML Text ein File ist, das „tuner.html" genannt wird, kann
das globale Script die Steuerung mit dem folgenden JavaScript Statement öffnen.
TVWindow=Window.external.Ul.showModelessDialog(„tuner.htm",Pos X, PsY, Width,
Height);
-
Ein
Statement wie dieses kann Teil eines Event Handlers sein, der ein
TV Ansichtsfenster als Antwort darauf öffnet, dass der Benutzer eine
bestimmte Taste drückt.
Die entstehende Fernsehgerätesteuerung
legt Verfahren und Eigenschaften offen, die von Scripts aus zugänglich sind.
Als Beispiel setzt das folgenden JavaScript Statement eine Variable
die „Channel" genannt wird auf
den Wert der derzeitigen Kanalnummer:
channel=browser.all.TVTuner.CurrentChannel();
-
Das
folgende JavaScript Statement setzt den Kanal auf den Wert, der
in der Variablen „Channel” enthalten
ist:
browser.document.all.TVTuner.CurrentChannel=(channel);
-
Mit
der Vorgabe, dass das ausgedehnte Dokumentenobjektenmodell eine
Definition für
einen Event, der "OnChannelUp" genannt wird, enthält, der
stattfindet, wenn ein Anwender eine Taste drückt die als "ChannelUp" bezeichnet ist.
Der folgende JavaScript Code ist ein Event Handler für diesen
Event, der den Kanal auf den nächsten
Kanal umwechselt:
-
Gemäss der Erfindung
enthält
das Global Script eine Vielzahl von Event Handlern wie diesen, um
sowohl Hardware zu steuern, als auch entsprechende graphische Elemente
anzuzeigen. Zusätzlich
enthält
das globale Script eine Logik, die notwendig ist, um die Interaktion
von angezeigten Steuerungen mit der darunterliegenden Hardware zu
steuern.
-
Kommunikation mit OEM spezifischer
Hardware und Software
-
Das
erweiterte Dokumentenobjektmodell des Anwendungsprogramms 100 stellt
keine expliziten Verfahren zur Kommunikation mit OEM spezifischer
Hardware und Software zur Verfügung.
Wenn eine solche Funktionalität
erforderlich ist, dann soll das globale Script konfiguriert werden,
um eine spezifische ActiveX Steuerung zu öffnen, die Kenntnis der Hardware
oder der Software hat, und die die notwendigen Verfahren und/oder
Schnittstellen offen legt, um mit der Hardware oder Software zu
arbeiten. Diese ActiveX Steuerung kann als Brücke (die Events erzeugt, wenn
das für
den Global Script Code erforderlich ist) zwischen der OEM Hardware
und der Software und des Global Script verwendet werden.
-
Schlussfolgerung
-
Die
beschriebene Architektur bietet einen sehr flexiblen Weg, um eine
Benutzerschnittstelle zu implementieren, was es individuellen Hardware
Herstellern ermöglicht,
die Benutzerschnittstelle auf vielfältigen Weisen zu anzupassen.
Die Architektur ist auch für
den Software Hersteller vorteilhaft, da ein einzelnes Softwareprodukt
an verschiedene Hardware Hersteller angeboten werden kann. Anpassungen
werden unter Verwendung von Web basierten Techniken implementiert,
die sehr wohl innerhalb der Fähigkeiten
der meisten Firmen liegen.
-
Obwohl
die Erfindung in einer Sprache beschrieben wurde, die für bestimmte
physische Merkmale und/oder Verfahrensschritte spezifisch ist, ist
es klar, dass die Erfindung, die in den beigefügten Ansprüchen beschrieben ist, nicht
notwendigerweise auf die spezifischen Eigenschaften oder Schritte
beschränkt
ist, die beschrieben sind. Spezifische Eigenschaften und Schritte
sind vielmehr als bevorzugte Formen zum Ausführen der beanspruchten Erfindung
offenbart.