-
Die
Erfindung betrifft ein Verfahren und ein System zur Erzeugung von
Web-Seiten für
Client-Geräte,
wobei die Web-Seiten automatisch an den Typ und die Eigenschaften
der Client-Geräte
angepasst werden.
-
Die
große
Anzahl der gegenwärtig
verwendeten unterschiedlichen Client-Geräte zur Kommunikation über das
Internet, zu denen beispielsweise PCs, Laptops, Handheld Computer
oder WAP-fähige Mobiltelefone
zählen,
erfordern für
den Zugriff auf das Internet eine Vielzahl von verschiedenen Web-Browsern.
Die verschiedenen Client-Geräte bzw.
-gerätetypen
weisen unterschiedliche technische Merkmale auf. Beispielsweise
sind ihre Anzeigeeinrichtungen als Schwarzweiß- oder Farbbildschirme von
unterschiedlicher Größe und Auflösung, oder
ihre Eingabeeinrichtungen als Tastatur oder Touchscreen ausgeführt. Aber
auch Geräte
mit identischen Eigenschaften können
verschiedene Web-Browser, beispielsweise Internet Explorer, Netscape
oder Opera nutzen, die sich in der Unterstützung spezieller Funktionen,
welche insbesondere über
die Standard-Sprache HTML 3.2 hinausgehen, teilweise stark unterscheiden.
-
Bei
der Bereitstellung von Web-Seiten aus dem Internet ist der Web-Server
nicht in der Lage, feste Annahmen über die Eigenschaften des Client-Gerätes, an
den er die Web-Seiten übermittelt,
zu machen. Da verschiedene Web-Browser verwendet wer den können, erweist
es sich als schwierig, anstelle einfacher HTML-Seiten, welche meist
einheitlich für
alle Browser erstellt werden, Seiten mit hohem Bedienkomfort und
interaktiven Inhalten anzubieten, da hierzu der Einsatz spezieller
aufwendiger client-seitiger Technologien notwendig ist, wie beispielsweise
Dynamic HTML (Hypertext Mark-up Language), Frames, Cookies, JavaApplets
oder ActiveX Controls, die von manchen Browsern nicht unterstützt werden,
bzw. in verschiedenen Browser auf unterschiedliche Weise unterstützt werden.
Dies kann dazu führen,
dass Web-Seiten
in manchen Browsern fehlerhaft oder überhaupt nicht darstellbar
sind.
-
Mit
der zukünftig
weiter zunehmenden Verbreitung mobiler Endgeräte mit Internetzugang, insbesondere
von WAP-Handys, UMTS-Handys, Handhelds oder PocketPCs, müssen die
Web-Inhalte der Web-Seiten nicht nur für andere Browser sondern beispielsweise
auch für
wesentlich kleinere Displays sinnvoll aufbereitet werden.
-
Gegenwärtig wird
die Unterstützung
der Vielfalt verschiedener Client-Geräte in der Regel nur dadurch
erreicht, dass für
jeden Client-Typ eine eigene, mitunter sehr aufwendige Version der
Web-Seiten erstellt wird.
-
Ein
Lösungsansatz
bisheriger Web-Technologien besteht darin, verschiedene Web-Seiten oder verschiedene
Web-Programme, wie beispielsweise Active Server Pages, welches in
Williams, A., Barber, K., and P., Newkirk, "Active Server Pages Black Book", 10th ed.,
Coriolis Group, 1998, pp. 600 beschrieben ist, oder Java Server
Pages, welches in Hall, M., "Core
Servlets and JavaServer Pages", Prentice
Hall PTR, 2000, pp. 608 beschrieben ist, zu entwickeln, um die grafische
Benutzerschnittstelle und Interaktion mit jeder spezifischen Clientumgebung
individuell zu handhaben.
-
Hierzu
muss jedoch der Code für
jede Web-Seite in mehrfacher, für
das jeweilige Client-Gerät
in der entsprechenden modifizierten Form erstellt werden. Dies führt zwangsläufig zu
einer Vervielfachung des Aufwandes für die Erstellung und Wartung der
Web-Seiten, da die Web-Inhalte in sämtlichen Ausprägungen der
Seiten erstellt bzw. modifiziert werden müssen.
-
Ein
weiterer Nachteil bisheriger Web-Technologien zu Erzeugung von Web-Seiten,
welche an die Eigenschaften der unterschiedlichen Client-Geräte angepasst
sind, ergibt sich daraus, dass verschiedene Internet-Adressen, sogenannte
URLs (Uniform Resource Locator), für die auf verschiedene Client-Typen
zugeschnittenen Web-Seiten
bereitzustellen sind.
-
Der
Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren und ein
System zur Erzeugung von Web-Seiten für Client-Geräte anzugeben,
wobei die Web-Seiten automatisch an den Typ und die Eigenschaften
der Client-Geräte
angepasst werden, um eine effiziente Darstellung und einen minimalen Wartungsaufwand
der Web-Seiten zu
realisieren.
-
Diese
Aufgabe wird durch ein Verfahren zur automatischen Erzeugung von
Web-Seiten für Client-Geräte von unterschiedlichem
Client-Typ und/oder mit unterschiedlichen Client-Eigenschaften mit
den im Anspruch 1 angegebenen Merkmalen gelöst.
-
Vorteilhafte
Ausgestaltungen und ein System zur Erzeugung von Web-Seiten für Client-Geräte von unterschiedlichem
Client-Typ und mit unterschiedlichen Client-Eigenschaften sind in weiteren Ansprüchen angegeben.
-
Grundlage
für die
automatische Erzeugung einer von den Client-Geräten angeforderten Web-Seite
sind die auf einem Web-Server liegenden Web-Seiten, welche eine
oder mehrere registrierte Web-Komponenten in verschiedenen Varianten
für die
unterschiedlichen Client-Geräte
und Browser umfassen und die für
das jeweilige Client-Gerät eine angepasste
Darstellung der angeforderten Web-Seite erzeugen.
-
Eine
Web-Komponente ist dabei ein Objekt, in welchem sowohl der server-seitige
Code als auch Daten der Web-Seite gespeichert sind und welches eine
spezifische Menge von Diensten dem Web-Server zu Verfügung stellt,
um Inhalte für
die Web-Seiten geeignet
aufzubereiten.
-
Wenn
der Web-Server eine Seitenanforderung von einem Client-Gerät, welches
nachfolgend auch als Client bezeichnet wird, erhält, ermittelt er den Typ und
die Eigenschaften des Clients, insbesondere des Browsers, und instanziiert
für die
ange forderte Web-Seite die Web-Komponenten, welche für die Darstellung
des Seiteninhalts für
diesen Client geeignet sind. Die instanziierten server-seitigen Web-Komponenten erzeugen
dann den Seiteninhalt passend für
den Client, welcher die Seite angefordert hat.
-
Alternativ
besteht auch die Möglichkeit, grundsätzlich alle
Web-Komponenten einer Web-Seite zu instanziieren, wobei allerdings
auch dann nur die für
den jeweiligen Client benötigten
Web-Komponenten für
die Erzeugung der Seiteninhalte herangezogen werden.
-
Die
Eigenschaften des Clients umfassen dabei die Leistungsmerkmale des
Browsers, wie beispielsweise die Unterstützung von DHTML (Dynamic Hypertext
Mark-up Language), von Cookies oder von Frames, aber auch die Eigenschaften
des Displays, wie beispielsweise PC-Bildschirme, Handhelds oder WAP-Handys.
Die Bestimmung, um was für
einen Client-Typ und Browser es sich handelt, wird dabei vorzugsweise
auf Basis der Informationen in den entsprechenden Textfeldern im
http-Request-Header (Dateikopf
einer Hyper Text Transfer Protocol-Anfrage) realisiert.
-
Nachdem
die instanziierten Web-Komponenten den Inhalt der Web-Seite für den Client
erzeugt haben, übermittelt
der Web-Server die so an den Client-Typ und an die Client-Eigenschaften
angepasste Web-Seite an den Client.
-
Dabei
ist es ausreichend, dass der Web-Server für einen Client, der eine Anfrage
für eine Web-Seite
stellt, nur einmalig bestimmt, um was für einen Client es sich handelt.
Danach wird für
diesen Client eine eigene Session auf dem Web-Server erzeugt (zum
Beispiel entsprechend der in Williams, A., Barber, K., and P., Newkirk, „Active
Server Pages Black Book",
10th ed., Coriolis Group, 1998, pp. 600 beschriebenen
Vorgehensweise), In dieser Session kann dann das Profil des Clients
gespeichert werden.
-
Stellt
der Client nun weitere Anfragen an den Web-Server, wird das solange
auf dem Web-Server gespeicherte und zur Verfügung stehende Profil des Clients
für die
Erzeugung der Web-Seite genutzt. Wenn der Client über längere Zeit
nicht mehr auf den Web-Server zugreift, wird die entsprechende Session beendet.
-
In
einer alternativen Ausführungsform
wird das Client-Profil auf dem Client, beispielsweise in der URL
oder in Form von Cookies in der Web-Seite gespeichert.
-
Durch
die Erfindung wird die Unterstützung einer
Vielzahl verschiedener Client-Geräte mit unterschiedlichen
Browsern in vorteilhafter Weise effizient unterstützt.
-
Jede
Web-Applikation, die mehr als ein Client-Gerät oder einen Browser-Typ unterstützen soll, profitiert
von der beschriebenen Verwendung der Web-Komponenten.
-
Die
Erfindung ermöglicht
es in vorteilhafter Weise, den Aufwand für die Entwicklung und Wartung
der Seiten zu minimieren.
-
Weiterhin
ist es möglich,
die Web-Inhalte der angeforderten Web-Seiten auf die verschiedenen
Client-Geräte
optimiert zuzuschneiden, wobei der Aufwand für die Entwicklung und Wartung
der Web-Inhalte der Seiten, die auf den verschiedenen Client-Geräte unterschiedlich
dargestellt werden, minimiert wird.
-
Auch
für die
Vielzahl der in immer größerem Umfang
genutzten mobilen Endgeräte
mit Internetzugang kann das erfindungsgemäße Verfahren in vorteilhafter
Weise dahingehend genutzt werden, dass die Web-Inhalte der Web-Seiten
auch für
wesentlich kleinere Displays sinnvoll aufbereitet werden.
-
Ebenfalls
können
die Web-Inhalte unter nur einer, für verschiedene Client-Geräte identischen URL
angeboten werden. Es ist dabei auch nicht erforderlich, die Anfragen
der Client-Geräte
zu anderen, client-abhängigen
URLs umzuleiten.
-
Anhand
von in den folgenden Zeichnungsfiguren dargestellten Ausführungsbeispielen
sollen die Erfindung sowie vorteilhafte Ausgestaltungen und Verbesserungen
der Erfindung näher
erläutert
und beschrieben werden.
-
Es
zeigen:
-
1 einen Internetzugriff
verschiedener internetfähiger
Clients auf eine Web-Seite,
-
2 eine erfindungsgemäße Systemkonfiguration
zur client-abhängigen
Erzeugung, Aufbereitung und Darstellung von Web-Seiten,
-
3 einen Verfahrensablauf
einer Client-Anfrage und eines automatischen Aufbaus einer Web-Seite,
-
4 einen Aufbau einer Web-Seite
auf einem Web-Server, und
-
5 ein Ausführungsbeispiel
zur Erzeugung einer Web-Seite.
-
1 zeigt einen Internetzugriff
von verschiedenen internetfähigen
Client-Geräten,
wie beispielsweise einer PC/Workstation 1, eines Laptops 2 oder
eines WAP-Handys 3, auf einen Web-Server 4.
-
Im
Internet oder Intranet werden die verschiedenen Client-Geräte 1, 2, 3 von
unterschiedlichem Typ eingesetzt und unterscheiden sich beispielsweise
hinsichtlich der Eigenschaften ihrer Bildschirme, ihrer Eingabemöglichkeiten
oder ihrer Internet-Browser 11, 12, 13.
-
Die
verschiedenen Client-Geräte 1, 2, 3 kommunizieren
mit dem Web-Server 4, auf dem Web-Seiten abgelegt sind,
dahingehend, dass sie Web-Inhalte von einer einheitlichen Internet-Adresse (URL)
eines für
alle Clients identischen Internet-Dienstes, beispielsweise http://www.abc.net/index.cgi,
anfordern.
-
Der
Web-Server 4 erkennt den jeweiligen Typ bzw, die Eigenschaften
des Clients 1, 2, 3 und übermittelt
eine geeignet erzeugte Web-Seite 5, 6 in gegebenenfalls
verschiedenen HTML- (Hypertext Markup Language) Formaten an die
PC/Workstation 1 und den Laptop 2 bzw. eine Seite 7 im
WML- (Wireless Markup Language) Format an das WAP-fähige Handy 3.
Auf diese Weise erhalten alle Client-Geräte 1, 2, 3 den
Web-Inhalt von derselben URL, jedoch gemäß ihrer spezifischen Eigenschaften.
-
2 zeigt eine erfindungsgemäße Systemkonfiguration
zur client-abhängigen
Erzeugung, Aufbereitung und Darstellung von Web-Seiten 5, 6, 7 mittels
Web-Komponenten.
-
Die
verschiedenen Client-Geräte 1, 2, 3 kommunizieren
mit dem Web-Server 4, auf dem die Web-Seiten 5, 6, 7 abgelegt
sind, über
Client-Anfragen 14, 16, 18 und Server-Antworten 15, 17, 19.
-
Jede
der Web-Seiten 5, 6, 7 enthält eine
oder mehrere Web-Komponenten 24 zur Informationsaufbereitung
für die
verschiedenen Client-Typen A, B, C der Client-Geräte 1, 2, 3.
Abhängig
vom Typ A, B, C des jeweiligen Clients 1, 2, 3 unterscheiden
sich die Eigenschaften des Clients beispielsweise hinsichtlich des
Bildschirms, der Eingabemöglichkeiten
wie Tastatur und Maus oder hinsichtlich des Web-Browsers 11, 12, 13,
welcher mit seinen Browser-Fähigkeiten eine
Teilmenge der existierenden Web-Technologien unterstützt, beispielsweise
DHTML, HTML mit verschiedenen Dokumenten- Objekt- Modellen oder
verschiedene Datenformate wie HTML oder WML.
-
Die
Client-Geräte 1, 2, 3 senden
die Client-Anfragen 14, 16, 18 für eine erste
Web-Seite 5 an den
Web-Server 4. Der Web-Server 4 wertet die Client-Anfragen 14, 16, 18 aus,
indem er zunächst
den Typ A, B, C des Clients 1, 2, 3 und
den Browser-Typ 11, 12, 13 mit den dazugehörigen Browser-Fähigkeiten
ermittelt. Anschließend
instanziiert der Web-Server 4 die für das jeweilige Client-Gerät 1, 2, 3 geeigneten
Web-Komponenten 24 in der ersten Seite 5, welche
die Seiteninhalte für
die erste Seite 5 entsprechend des Typs A, B, C und der
Eigenschaften des entsprechenden Clients 1, 2, 3 erzeugt.
-
Anschließend sendet
der Web-Server 4 die von den ausgewählten Web-Komponenten 24 erzeugte erste
Seite 5 an den entsprechenden Client 1, 2, 3 als
Server-Antwort 15, 17, 19 zurück. Auf
diese Weise erhält
jeder Client 1, 2, 3 eine angepasste
Darstellung der ersten Seite 5, die optimal gelesen, verarbeitet
oder angezeigt wird. Werden weitere Web-Seiten 5, 6, 7 von
den Client-Geräten 1, 2, 3 angefordert,
wird der beschriebene Verfahrensablauf nochmals durchlaufen.
-
3 zeigt einen Verfahrensablauf
anhand von Verfahrensschritten 25–32, wobei eine von
einem Client 1, 2, 3 angeforderte Seite 5, 6, 7 automatisch
erzeugt und zum Client 1, 2, 3 zurückgesendet wird.
-
In
einem ersten Schritt 25 wird eine Client-Anfrage 14, 16, 18 an
den Web-Server 4 übermittelt.
Die Anfrage 14, 16, 18 enthält im HTTP-Request Header
die URL der aufgerufenen Seite sowie weitere Informationen über den
Client 1, 2, 3.
-
In
einem zweiten Schritt 26 wird überprüft, ob der Client 1, 2, 3 bereits
zuvor eine Anfrage 14, 16, 18 an den
Web-Server 4 gestellt hat und für den Client 1, 2, 3 ein
Profil verfügbar
ist. Wurde bereits eine Anfrage 14, 17, 18 gestellt,
existiert schon ein Profil mit den Eigenschaften des Clients 1, 2, 3,
welches in einem dritten Schritt 27 lediglich ausgelesen
wird.
-
Ist
für den
Client 1, 2, 3 hingegen noch kein Profil
verfügbar,
so legt der Web-Server 4 in einem vierten Schritt 28 für den Client 1, 2, 3 automatisch ein
neues Profil an, in welches in einem Identifikationsprozess die
Eigenschaften des Clients 1, 2, 3 eingetragen
werden. Dabei werden die Informationen über die Clienteigenschaften,
wie Browsertyp und Browser-Fähigkeiten
des Clients 1, 2, 3, aus dem HTTP-Request
Header verwendet, um den Client-Typ A, B, C zu identifizieren.
-
Ist
es nicht möglich
das Profil automatisch anzulegen, weil beispielsweise eine weitergehende, sehr
detaillierte Konfiguration der Clienteigenschaften erfolgen soll,
wird in einer weiteren Ausführungsform
die Identifikation des Clients 1, 2, 3 über einen speziellen
Dialog realisiert. Hierbei übermittelt
der Web-Server 4 zunächst
eine zwischengeschaltete Konfigurationsseite an den Client 1, 2, 3.
Auf dieser Seite stellt der Benutzer die spezifische Behandlung seines
Clients 1, 2, 3 beispielsweise durch
eine Auswahl aus einer Liste verschiedener Client-Typen A, B, C
ein.
-
Nachdem
nun der Client 1, 2, 3 identifiziert wurde,
ermittelt in einem fünften
Schritt 29 der Web-Server 4 für die Client Geräte 1, 2, 3 und
ihre Browser 11, 12, 13 in Abhängigkeit
von den Client-Eigenschaften und -Fähigkeiten ein Profil. Das Profil wird
für spätere Seitenanfragen
des Clients 1, 2, 3 auf dem Web-Server
gespeichert.
-
Ist
es nicht möglich,
den Client 1, 2, 3 bzw. seinen Typ A,
B, C und seine Eigenschaften zu identifizieren, ist in einer weiteren
Ausführungsform
vorgesehen, eine entsprechende Fehlerseite an den Client 1, 2, 3 zurückzusenden
oder für
den Client ein Standardprofil, beispielsweise als einfacher HTML-Client,
einzusetzen.
-
In
einem sechsten Schritt 30 instanziiert der Web-Server 4 die
serverseitigen Web-Komponenten 24,
für die
angeforderte Web-Seite 5, 6, 7 in Abhängigkeit
des zuvor ermittelten Client-Profils.
-
In
einem weiteren Schritt 31 wird dann durch einen Aufruf
der instanziierten Web-Komponenten 24 die
Web Seite 5, 6, 7 entsprechend des Client-Typs A,
B, C und der Client-Eigenschaften erzeugt.
-
In
einem letzten Schritt 32 übermittelt der Web-Server 4 die
angeforderte, durch die vorigen Schritte für den Client 1, 2, 3 optimal
aufbereitete Web-Seite 5, 6, 7 an das
entsprechende Client-Gerät 1, 2, 3.
-
In 4 ist der Aufbau einer Web-Seite
mit ihren serverseitigen Internet-Komponenten auf einem Web-Server
aufgezeigt.
-
Die
Web-Seite 5 gliedert sich in mehrere Funktionsblöcke 34, 35, 36,
wobei die Funktionsblöcke 34, 35, 36 beispielsweise
Menüs,
statische Inhalte oder Formularblöcke sind. Jeder der Funktionsblöcke 34, 35, 36 weist
eine oder mehrere Web-Komponenten 37–45 auf,
welche den Inhalt des entsprechenden Funktionsblocks in einer für den jeweiligen Client 1, 2, 3 geeigneten
Art darstellen.
-
Komponenten,
welche dem selben Funktionsblock angehören, erzeugen Web-Seiteninhalte, welche
die Funktionen bzw. Aufgaben des entsprechenden Funktionsblocks
möglichst
gut erfüllen,
indem sie den Teil der Seite in einer für den jeweiligen Client-Typ
A, B, C optimalen Weise darstellen.
-
Der
ersten Funktionsblock 35 enthält beispielsweise eine erste
Web-Komponente 37, welche die Web-Inhalte einer ersten
Web-Seite 5 für
Clients vom Typ A generiert, eine zweite Web-Komponente 38,
welche die Web-Inhalte für
Clients vom Typ B generiert und eine dritte Web-Komponente 39,
welche die Web-Inhalte für
Clients vom Typ C generiert.
-
Der
zweite Funktionsblock 36 enthält beispielsweise eine vierte
Web-Komponente 40, welche die Web-Inhalte einer zweiten
Web-Seite 6 für
Clients vom Typ A generiert, eine zweite Web-Komponente 41,
welche die Web-Inhalte für
Clients vom Typ B generiert und eine dritte Web-Komponente 42,
welche die Web-Inhalte für
Clients vom Typ C generiert.
-
Die
für einen
Client-Typ A, B, C zuständigen, den
verschiedenen Funktionsblöcken 34, 35, 36 zugeordneten
Web-Komponenten 37 bis 45 sorgen somit zusammen
für den
Aufbau der vollständigen Web-Seite 5, 6, 7.
Die sich ergebende, möglicherweise
große
Anzahl von Web-Komponenten 24, 37 bis 45 innerhalb
einer Web-Seite kann gemäß üblicher Web-Seiten-Strukturmodelle
angeordnet werden.
-
5 zeigt ein Ausführungsbeispiel
zur Erzeugung einer Web-Seite 5 und die Struktur eines Web-Seiteninhalts 46 der
Web-Seite 5 mit Hilfe der instanziierten Web-Komponenten 49.
-
Die
instanziierten Web-Komponenten 49 erzeugen den jeweiligen
Inhalt 47 der Web-Seite 5.
Die Erzeugung des Webseiteninhaltes 48 basiert auf den Client-Eigenschaften der
instanziierten Web-Komponenten 49.
-
Die
nicht instanziierten Web-Komponenten 50 sind an der Seitenerzeugung 48 nicht
beteiligt und benötigen
zu diesem Zeitpunkt daher keine Ressourcen auf dem Web-Server.