-
Diese
Erfindung betrifft Datennetze und insbesondere eine Fähigkeit
zum Ausführen
einer verteilten Objektaufbereitung in einem Datennetz. Insbesondere
führen
eine Vielzahl von zusammenarbeitenden Proxy-Servern eine verteilte
Objektaufbereitung aus, so dass Objektinhalte auf der Grundlage der
jeweiligen Fähigkeiten
und technischen Daten auf verschiedenen Arten von Clienteinheiten
angezeigt oder von diesen verwendet werden können.
-
Mit
zunehmender Beliebtheit des Internet sind immer mehr Nicht-Personalcomputer-
(PC-) Einheiten, beispielsweise so genannte intelligente Telefone
und PDAs (Personal Digital Assistants) durch Kabelverbindungen oder
drahtlose Verbindungen mit dem Internet verbunden. Das Internet
wird zur so genannten marktüblichen
Datenverarbeitungsumgebung, wo verschiedene Arten von Datenvorrichtungen/-einheiten
sowie PCs und andere Servercomputer miteinander verbunden sind.
In einer solchen marktüblichen
Datenverarbeitungsumgebung weisen die einzelnen Vorrichtungen/Einheiten
erwartungsgemäß unterschiedliche
Datenverarbeitungsleistungen und Anzeigefähigkeiten auf. Beispielsweise
können einige
Einheiten Farbbilder anzeigen, während
andere lediglich Schwarzweißbilder
anzeigen können.
Außerdem
haben einige Einheiten möglicherweise
große,
problemlos zu betrachtende Anzeigen, während andere eine im Verhältnis wesentlich
kleinere Anzeige aufweisen. Folglich ist es verständlich,
dass dieselben Datenobjekte in einer solchen marktüblichen Datenverarbeitungsumgebung
gemäß den verschiedenen
Anzeigefähigkeiten
der Einheiten möglicherweise
in verschiedenen Formen oder Auflösungen aufbereitet werden müssen.
-
Zur
Darstellung von Daten in verschiedenen Auflösungen wurden verschiedene
Verfahren entwickelt. In "A
Framework for Optimization of a Multiresolution Remote Image Retrieval
System" von A. Ortega
et al., Proceedings of IEEE InfoCom, 1994, wurde ein System zum Übertragen
von Bildern und Videodaten in mehreren Auflösungen beschrieben. In "The JPEG Still Picture
Compression Standard" von G.
Wallace, IEEE Transactions on Consumer Electronics, Band 38, Nr.
1, Februar 1992, wurde der JPEG-Bildkomprimierungsstandard zum Darstellen von
Bildern in mehreren verschiedenen Auflösungen beschrieben.
-
Die
Aufbereitung eines Objektes in verschiedenen Formen oder Auflösungen kann
an verschiedenen Orten ausgeführt
werden. Ein möglicher
Ort befindet sich in den Inhaltsservern. Die Inhaltsserver können jedoch
leicht überlastet
werden, insbesondere bei einer großen Anzahl von verschiedenen
Clientanforderungen, die alle zu demselben Inhaltsserver kommen.
Ein anderer möglicher
Ort zur Aufbereitung des Objektes ist in einer Clientmaschine, die
das Objekt tatsächlich
verwendet. Diese Lösung
ist jedoch nicht wünschenswert,
da viele typische Clientmaschinen hinsichtlich der Datenverarbeitungsleistung meist
zu begrenzt sind, um die notwendige Aufbereitungsfunktion auszuführen.
-
Alternativ
kann die Aufbereitung von einem oder mehreren Proxy-Servern ausgeführt werden, die
im Datennetz zwischen den Inhaltsservern und den Clienteinheiten
angeordnet sind. In diesem Szenario können die einheitenspezifischen
Daten huckepack auf den den Objekten zugeordneten Metadaten übertragen
werden, und der Proxy-Server kann eine Objektaufbereitung gemäß den Metadaten
ausführen.
Sobald die Objektaufbereitung vom Proxy-Server ausgeführt wurde,
kann das Ergebnis im Cachespeicher des Proxy-Servers gespeichert
werden. In diesem Fall können
alle nachfolgenden Anforderungen mach demselben Objekt von derselben
Art von Einheit direkt aus der gespeicherten Kopie im Cachespeicher
des Proxy-Servers bedient werden. Infolgedessen kann die wiederholte
Aufbereitung des Objektes für
dieselbe Art von Einheit vermieden werden. Zur Verbesserung der
Antwortzeit werden viele PC-Server, beispielsweise die NETFINITY-Server von
IBM, im Internet als ein Netz von Proxy-Servern eingesetzt (IBM
und NETFINITY sind eingetragene Warenzeichen von International Business
Machines Corporation). Diese Proxy-Server können bei der Objektaufbereitung
und der Cachespeicherung zusammenarbeiten.
-
In
einer Vorgehensweise, die von A. Fox mit dem Titel "Adapting to Network
and Client Variation Using Infrastructural Proxies: Lessons and
Perspective", IEEE
Personal Communications, Seiten 10 bis 19, August 1998 und von A.
Fox et al., "Cluster-Based
Scalable Network Services",
Operating Systems Review (SIGOPS), ACM Headquarter, New York, US-Band
31, 1. Dezember 1997, Seiten 78 bis 91, beschrieben wurde, wurde
ein Verfahren zum Ausführen
eines datentypspezifischen Auszugs (distillation) in einer Gruppe
von Proxies beschrieben. Die Objektaufbereitung und die Cachespeicherung werden
von der spezifischen Gruppe von Proxies ausgeführt. Eine zentrale Verwaltungseinrichtung wird zum
Ausführen
eines Lastausgleichs zwischen den Proxies in der Gruppe verwendet.
Ein Nachteil dieser Vorgehensweise besteht darin, dass die Objektaufbereitung
und die Cachespeicherung komplett in derselben Gruppe von Proxies
und nicht auf eine verteilte Weise ausgeführt werden. Andere Proxies im
Netz, die sich jedoch nicht in derselben Gruppe befinden, können an
einigen der Phasen im Objektaufbereitungsprozess nicht teilnehmen.
-
In
Anbetracht des Vorhergehenden ist es verständlich, dass ein Bedarf an
einem zusammenarbeitenden Proxy-System besteht, das eine Objektaufbereitung
auf eine verteilte Weise einsetzen kann. Vor dieser Erfindung wurde
dieser Bedarf nicht erfüllt.
-
Unter
einem ersten Aspekt stellt die Erfindung ein Verfahren bereit, wie
es in Anspruch 1 beansprucht wird.
-
Gemäß weiteren
Aspekten stellt die Erfindung außerdem ein Datennetz und ein
computerlesbares Medium gemäß den Ansprüchen 6 bzw.
7 bereit.
-
Gemäß der Lehre
dieser Erfindung wird ein Verfahren zur verteilten Objektaufbereitung
für ein zusammenarbeitendes
Datennetz beschrieben. Das Datennetz, zu dem das Internet gehören kann,
weist verbundene Datenverarbeitungsknoten auf, unter anderem Objektanfordererknoten,
Objektquellenknoten und Zwischenknoten, die Proxy-Server sein können. Das
Verfahren kann jedem teilnehmenden Proxy-Server, der einfach als "Proxy" und im Plural als "Proxies" bezeichnet werden
kann, eine Anpassung an die dynamischen Belastungsbedingungen von diesem
selbst und auch der anderen Proxies sowie an die dynamischen Datenverkehrsbedingungen
im Datennetz ermöglichen.
Die Feststellung, welcher Proxy oder welche Gruppe von Proxies eine
Objektaufbereitung und eine Cachespeicherung ausführen muss,
beruht auf einem verteilten, zusammenarbeitenden Verfahren, das
von den Proxies übernommen wird.
Zu den Kriterien für
ein solches Verfahren können
die Bandbreite und die aktuelle Belastung der Netzverbindungen zwischen
den Proxies und/oder die jeweilige CPU-Nutzung der Proxies gehören. Falls
eine Objektaufbereitung in mehrere Stufen unterteilt werden kann,
z.B. eine Aufbereitung in verschiedener Auflösung, kann sie von mehr als
einem der Proxies ausgeführt
werden. Die Feststellung, welcher Proxy welche Phase der mehrstufigen
Aufbereitung ausführt,
kann ebenfalls an die dynamischen Belastungsbedingungen sowie an
Netzbedingungen angepasst werden.
-
Infolgedessen
stellt ein teilnehmender Proxy auf das Bedienen eines Objekts hin
als Erstes fest, ob eine Objektaufbereitungsverarbeitung auf der Grundlage
des Clienteinheittyps benötigt
wird. Falls sich herausstellt, dass die Objektaufbereitungsverarbeitung
benötigt
wird, kann der teilnehmende Proxy auf der Grundlage des angeforderten
Objekttyps und der Zusammenarbeitungsdaten über andere Proxies im Netz
entscheiden, (a) die komplette Objektaufbereitung selbst auszuführen, (b)
eine teilweise Aufbereitung auszuführen, falls der Aufbereitungsprozess in
Stufen unterteilt werden kann, oder (c) nichts zu tun und einen
anderen Proxy die Aufbereitungstask ausführen zu lassen. Das Ziel besteht
darin, die Aufbereitungsverarbeitung im gesamten Proxy-Netz zu verteilen,
nicht nur in den spezialisierten Objektaufbereitungs-Proxies.
-
Diese
Erfindung stellt folglich ein verteiltes, dynamisches, hierarchisches
Aufbereitungsverfahren in einem Netz bereit, das aus miteinander
verbundenen Datenverarbeitungsknoten besteht. Das Verfahren enthält die folgenden
Schritte: in einem objektanfordernden Knoten oder in einem mit dem
objektanfordernden Knoten verbundenen Proxy-Knoten Aufnehmen bestimmter
Metadaten in eine Objektanforderung, die die Fähigkeiten des objektanfordernden
Knotens (hierin als Empfängerhinweisdaten
(receiver hint information, RHI) oder als anfordererspezifische
Fähigkeitsdaten
bezeichnet); in einem Zwischenknoten Empfangen einer Objektanforderung und
Weiterleiten der Anforderung an einen anderen Zwischenknoten (oder
an eine Quelle des angeforderten Objektes), falls das angeforderte
Objekt lokal nicht verfügbar
ist, wobei die RHI so geändert
werden, dass sie Daten zum Angeben seiner lokalen Bedingung zum
Bereitstellen des Aufbereitungsdienstes enthalten; andernfalls ermittelt
der Zwischenknoten die benötigte
Aufbereitung und ruft eine Auswahlfunktion auf, um auf der Grundlage
der RHI festzustellen, welcher Teil oder welche Teilmenge der benötigten Aufbereitung
vom Zwischenknoten ausgeführt werden
muss. Der Zwischenknoten führt
sodann die Aufbereitung aus und leitet das aufbereitete Objekt an
den anfordernden Knoten weiter. Als Teil dieser Erfindung ruft ein
anderer Zwischenknoten, der ein teilweise aufbereitetes Objekt empfängt, eine
Auswahlfunktion auf, um auf der Grundlage der RHI festzustellen,
welcher Teil der verbleibenden benötigten Aufbereitung oder ob
die gesamte Aufbereitung von diesem Zwischenknoten ausgeführt werden
muss, und führt
sodann die Aufbereitung aus und leitet das aufbereitete Objekt an
den anfordernden Knoten weiter.
-
In
einem Zwischenknoten mit einer weniger ausführlichen Version des angeforderten
Objektes nimmt das Verfahren solche Daten in die RHI auf, leitet
die Anforderung an einen anderen Knoten weiter, und in einem anderen
Zwischenknoten, der eine ausführlichere
Version des angeforderten Objektes aufweist, entscheidet der Knoten,
ob er die ausführlichere
Version des angeforderten Objektes ohne eine weitere lokale Aufbereitung
rücküberträgt oder
statt dessen eine Aufbereitung ausführt und ein teilweise aufbereitetes
Objekt rücküberträgt oder
stattdessen ein vollständig
aufbereitetes Objekt rücküberträgt.
-
Die
lokalen Bedingungsdaten können
die Belastung und/oder die Kapazität des Knotens (beispielsweise
die CPU-Nutzung) enthalten und können eine
Funktion der Netzverzögerung
(vom anfordernden Knoten) sein. Die lokalen Bedingungsdaten können außerdem einen
Typ von Aufbereitung enthalten, der im Knoten ausgeführt werden
kann (was von der im Knoten verfügbaren
Software abhängen
kann). Außerdem
können
die lokalen Bedingungsdaten die Speicherverfügbarkeit im lokalen Knoten
enthalten.
-
Für jeden
Zwischenknoten wird ein Auswahlverfahren bereitgestellt, um dynamisch
und unabhängig
von anderen Knoten zu entscheiden, welcher Teil der benötigten Aufbereitung
lokal unter Verwendung der RHI-Daten ausgeführt werden muss. Das Auswahlverfahren
kann die folgenden Schritte beinhalten: (a) Unterteilen eines verbleibenden
Aufbereitungsvorgangs in Schritte; (b) Auswählen von einem oder mehreren
Aufbereitungsschritten, die lokal ausgeführt werden müssen, um
eine gegebene Zielfunktion zu optimieren, wobei die RHI-Daten als
Eingabeparameter verwendet werden; und (c) Ausführen des einen oder der mehreren
Aufbereitungsschritte, die für
den aktuellen Knoten ausgewählt
wurden. Die Zielfunktion kann darin bestehen, die Aufbereitungsschritte
mit der größten Bandbreitenverringerung
zuerst auszuführen
und/oder die Aufbereitungsschritte so auszuführen, dass die Belastungsunausgewogenheit
zwischen den verbleibenden Knoten auf dem Pfad zum anfordernden
Clienteinheitknoten verringert wird. Außerdem kann die Zielfunktion
eine geschätzte
Antwortzeit von diesem Knoten zum anfordernden Knoten auf der Grundlage
der RHI-Daten sein.
-
Alternativ
kann das Auswahlverfahren die folgenden Schritte beinhalten: (a)
Unterteilen des verbleibenden Aufbereitungsvorgangs in Schritte;
(b) Zuordnen der Aufbereitungsschritte zu anderen Knoten auf einem
Pfad zum anfordernden Clienteinheitknoten gemäß einem Zuordnungsplan, um
die gegebene Zielfunktion unter Verwendung der RHI-Daten als Eingabeparameter
zu optimieren; und (c) Ausführen
des Aufbereitungsschrittes bzw. der Aufbereitungsschritte, der bzw.
die dem aktuellen Knoten zugeordnet werden. Außerdem liegt es im Anwendungsbereich
der Lehre dieser Erfindung, den Zuordnungsplan als dem aufbereiteten
Objekt zugeordnete Metadaten an einen nächsten Knoten weiterzuleiten, der
sodann frei ist, den Zuordnungsplan gemäß lokalen Gegebenheiten zu ändern, beispielsweise
gemäß der CPU-Belastung
im nächsten
Knoten.
-
Das
aufbereitete Objekt und/oder das empfangene Objekt können für eine Cachespeicherungsüberlegung
an eine Cachespeicher-Verwaltungseinrichtung
weitergeleitet werden, beispielsweise hinsichtlich des Aufwands
zum Erzeugen des aufbereiteten Objektes.
-
Im
Allgemeinen können
verschiedene Zwischenknoten verschiedene Auswahlfunktionen zur Aufbereitung
verwenden, und jeder Zwischenknoten kann in Abhängigkeit von der lokalen Bedingung
des Knotens (z.B. CPU-Belastung) eine andere Auswahlfunktion wählen.
-
Außerdem kann
jeder Knoten periodisch statistische Belastungsdaten von benachbarten
Knoten sammeln, anstatt die Daten in die jeder Anforderung zugeordneten
RHI aufzunehmen.
-
Folglich
stellt diese Erfindung ein Verfahren zum Verteilen der Objektaufbereitungsverarbeitung in
einem gesamten Proxy-Netz
bereit, wobei die Objektaufbereitungsverarbeitung nicht nur in spezialisierten
Objektaufbereitungs-Proxies konzentriert wird. Außerdem stellt
diese Erfindung ein zusammenarbeitendes Proxy-Netz bereit, wobei
Objektverarbeitungstasks, beispielsweise die Aufbereitung, auf der
Grundlage von beispielsweise dynamischen Belastungseigenschaften
des Proxy-Netzes auf eine anpassungsfähige Weise verteilt werden.
-
Die
oben dargelegten und andere Merkmale der Erfindung gehen besser
aus der folgenden ausführlichen
Beschreibung der Erfindung hervor, wenn sie in Verbindung mit den
beigefügten
Zeichnungen gelesen wird, in denen:
-
1 eine
Darstellung einer Internetumgebung gemäß einer beispielhaften Ausführungsform der
vorliegenden Erfindung ist.
-
2 eine
Darstellung ist, die eine Proxy-Umgebung gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt.
-
3 ein
Flussdiagramm ist, das die Konfiguration von Proxy-Servern gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung veranschaulicht.
-
4 ein
Flussdiagramm ist, das Arbeitsgänge
eines Proxy-Servers
beim Empfang einer Objektanforderung gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung veranschaulicht.
-
5 ein
Flussdiagramm ist, das Arbeitsgänge
eines Proxy-Servers
beim Empfang eines Objektes gemäß einer
beispielhaften Ausführungsform der
vorliegenden Erfindung veranschaulicht.
-
1 ist
eine Darstellung, die die Gesamtarchitektur eines Proxy-Netzes gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung veranschaulicht. Wie gezeigt wird, können verschiedene
Clients 130, 131 durch Proxy-Server (oder Proxies) 110, 111, 112 verbunden
werden, um auf Datenobjekte in den Inhaltsservern 120, 121 zuzugreifen. Die
Clients, Proxies und Inhaltsserver können alle durch ein Netz 101 verbunden
sein, beispielsweise durch das Internet. Die Proxies 110, 111, 112 werden im
Allgemeinen zur Verbesserung der Zugriffszeiten und zur Bereitstellung
von Diensten verwendet, beispielsweise einer Cachespeicherung und
einer Inhaltsfilterung. Beispielsweise kann ein ISP (Internetdiensteanbieter)
ein hierarchisches Netz von Proxy- Servern 110, 111, 112 umfassen,
die sich an verschiedenen Orten befinden (z.B. lokale, regionale und
nationale Proxy-Server).
Alternativ können
beispielsweise auch ein oder mehrere Proxy-Server vorhanden sein,
die in einem privaten oder halbprivaten lokalen Netz (LAN) oder
in einem weiträumigen
Netz (WAN) betrieben werden, und der eine oder die mehreren Proxy-Server
können
sich hinter einer Firewall befinden, die Sicherheit für das LAN
oder WAN bereitstellt.
-
Objektaufbereitungen
werden von den Proxies 110, 111, 112 auf
der Grundlage von Objekten ausgeführt, die aus den Inhaltsservern 120, 121 abgerufen
werden. Die spezifischen Einheitenfähigkeiten, die hierin als Empfängerhinweisdaten
(RHI) bezeichnet werden, sowie der Objektdatentyp (hierin allgemein
als objektspezifische Deskriptordaten bezeichnet) werden aufgenommen,
indem sie beispielsweise an die Anforderungen und angeforderten Objekten
zugeordneten Metadaten angehängt
werden. Die RHI können
von der anfordernden Clienteinheit 130, 131 oder
von einem der Proxies (z.B. dem ersten mit der anfordernden Einheit
verbundenen Proxy) in eine Objektanforderung aufgenommen werden.
Im letzteren Fall kann der Proxy 110, 111, 112 auf
der Grundlage eines mit der Anforderung übertragenen Kennzeichners der
anfordernden Einheit auf eine Tabelle von Einheitenfähigkeiten
zugreifen und die RHI auf der Grundlage der in der Tabelle gespeicherten
Daten erstellen. Beispielsweise und unter der Voraussetzung einer
ISP-Anordnung hat der lokale Proxy-Server Zugriff auf eine Tabelle,
in der die Eigenschaften (z.B. der Anzeigentyp, die Größe des Grafikspeichers
usw.) der verschiedenen Clienteinheiten gespeichert sind, die vom
lokalen Proxy bedient werden können.
Der Tabelleneintrag für
eine bestimmte Clienteinheit 130, 131 kann gespeichert werden, wenn
die Einheit sich erstmalig beim ISP registriert. Anschließend empfängt der
lokale Proxy-Server einen Kennzeichner der Clienteinheit, wenn diese
eine Anforderung macht, greift auf die Tabelle zu und erstellt die
entsprechenden RHI zur Aufnahme in die Objektanforderung. Auf ähnliche
Weise kann die Quelle des angeforderten Objektes die objektspezifischen
Deskriptordaten zum rückübertragenen
Objekt hinzufügen,
oder diese Daten können
von dem in Bezug auf die Quelle des angeforderten Objektes lokalen
Proxy-Server hinzugefügt
werden (falls ein Proxy-Server die Anforderung aus einer im Proxy gespeicherten
Kopie des Objektes nicht erfüllt,
wie an späterer
Stelle ausführlicher
beschrieben wird).
-
In
einer gegenwärtig
bevorzugten Ausführungsform
dieser Erfindung werden die RHI unter Verwendung von PICSTM-Daten ("Platform for Internet Content Selection" information) realisiert,
und dieser Aspekt der Erfindung wird an späterer Stelle ausführlicher
erläutert.
-
Wenn
ein angefordertes Objekt das Proxy-Netz durchläuft, kann jeder Proxy-Server 110, 111, 112 eine
vollständige
oder teilweise Aufbereitung auf der Grundlage der zugeordneten RHI
ausführen.
Falls beispielsweise der gesamte Aufbereitungsprozess in zwei oder
mehr Schritte unterteilt werden kann, kann ein gegebener der Proxy-Server (z.B. 110)
entscheiden, nur einen der Aufbereitungsschritte auszuführen und
das teilweise aufbereitete Objekt anschließend an einen anderen Proxy-Server (z.B. 111)
weiterzuleiten. Außerdem ändert der
Proxy-Server 110 die RHI, so dass sie die ausgeführte Verarbeitung
widerspiegeln, und leitet die geänderten
RHI ebenfalls weiter zum Proxy-Server 111. Außerdem können lokale
Bedingungen über
einen gegebenen der Proxy-Server 110, 111, 112,
beispielsweise die CPU-Belastung und die Netzverkehrsbelastung,
ebenfalls in die RHI aufgenommen und durch das Netz 101 weitergeleitet
werden. Diese Aspekte der Erfindung werden an späterer Stelle ausführlicher
erläutert.
-
In
einer beispielhaften Ausführungsform
dieser Erfindung können
zu den Clients 130, 131 beispielsweise ein Personal
Computer (PC), eine Datenstation, ein intelligentes Telefon, ein
Personal Digital Assistant (PDA) usw. gehören. Die Proxy-Server 110, 111, 112 können einen
PC-Server, einen RISC SYSTEM/6000-Server oder einen S/390-Server
umfassen, in dem zum Beispiel das von IBM erhältliche Internet Connection
Server (ICS) ausgeführt
wird (RISC SYSTEM/6000, S/390 und Internet Connection Server sind
Warenzeichen von International Business Machines Corporation). Das
Netz 101 kann beispielsweise aus dem Internet, dem World
Wide Web, einem Intranet und lokalen Netzen (LANs) bestehen. Zu
den Inhaltsservern 120, 121 kann ein PC-Server,
ein RS/6000-Server oder ein 5/390-Server gehören, in dem "Lotus Go Web" oder "Lotus Domino Go" ausgeführt wird
("Go Web" und "Domino Go" sind Warenzeichen
von Lotus Development Corporation).
-
2 ist
eine Darstellung, die eine allgemeine Proxy-Umgebung gemäß einer beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt. Der Proxy-Serverknoten 210 (der
beispielsweise irgendeiner der Proxy-Server 110, 111, 112 von 1 sein
könnte)
wird zum Darstellen eines Datenverarbeitungsknotens verwendet, der
Anforderungen durch ein Netz 212 verarbeiten kann, beispielsweise durch
das Netz 101 von 1. Zum Proxy-Serverknoten 201 gehört vorzugsweise
eine CPU 211, ein Speicher 202, beispielsweise
ein RAM, und Speichereinheiten 210, beispielsweise Plattenspeichereinheiten
oder allgemein eine Einheit mit Direktzugriffspeicher (DASD). Die
Proxy-Serverlogik 203 kann im Speicher 202 gespeichert
werden und wird vorzugsweise als ein computerlesbarer und – ausführbarer Code
realisiert, der von der Platte 210 zur Ausführung durch
die CPU 211 in den Speicher 202 geladen wird.
Die Proxy-Serverlogik 203, die mit Bezugnahme auf 3 ausführlicher
beschrieben wird, enthält eine
Objektbehandlungsroutine (object handler) 204 (in 5 ausführlicher
beschrieben) und eine Objektanforderungs-Behandlungsroutine (object request handler) 205 (in 4 ausführlicher
beschrieben). Eine Objektaufbereitungseinrichtung (object renderer) 206,
die eine Objektaufbereitung gemäß den einem
bestimmten Objekt zugeordneten RHI ausführt, kann ebenfalls zur Proxy-Serverlogik 203 gehören. Die
Objektaufbereitungseinrichtung kann ein Computerprogramm sein, das
beispielsweise ein Farbbild als Schwarzweiß-Bild wiedergibt, oder eines,
das einen komplexen HyperText Markup Language- (HTML-) Text als
einfachen HTML-Text wiedergibt, der nur eine Zusammenfassung der
HTML-Vorsätze enthält. Außerdem kann
die Proxy-Serverlogik 203 eine Cachespeicherverwaltungseinrichtung 207 beinhalten,
die eine lokale Kopie der teilweise oder vollständig aufbereiteten Objekte
aufbewahrt, um die Wiederholung von Objektaufbereitungsvorgängen im selben
Proxy-Server zu vermeiden.
-
3 ist
ein Flussdiagramm, das die allgemeinen Arbeitsgänge des Proxy-Serverknotens 201 beim
Empfang einer Eingabe gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung darstellt. Im Schritt 301 wartet
der ProxyServerknoten 201 auf die Eingabe. In Abhängigkeit
von der empfangenen Eingabe werden unterschiedliche Maßnahmen
ergriffen. Falls die empfangene Eingabe im Schritt 302 eine
Objektanforderung (d.h. eine HyperText Transfer Protocol-(HTTP-) Anforderung
von einem Client 130, 131 vom PDA-Typ) ist, wird
im Schritt 303 die Objektanforderungs-Behandlungsroutine 205 aufgerufen.
HTTP wird allgemein zum Abrufen von Dokumenteninhalten und/oder
beschreibenden Vorsatzdaten verwendet. Eine ausführliche Ausführung der
Objektanforderungs-Behandlungsroutine 205 wird in 4 beschrieben.
Falls die empfangene Eingabe ein Objekt ist (z.B. ein Objekt, das
auf eine vom Proxy-Serverknoten 201 übertragene Anforderung hin
an diesen rückübertragen
wird), Schritt 304, wird im Schritt 305 die Objektbehandlungsroutine 206 aufgerufen.
Eine ausführliche
Ausführung
der Objektbehandlungsroutine 206 wird in 5 beschrieben.
Bei anderen Typen von Anforderungen, beispielsweise File Transfer
Protocol- (FTP-) Anforderungen, wird im Schritt 305 eine
andere Behandlungsroutine aufgerufen. Nach dem Aufrufen der entsprechenden
Behandlungsroutine kehrt die Steuerung zurück zum Schritt 301,
um auf die nächste
Eingabe für
den Proxy-Serverknoten 201 aus
dem Netz 212 zu warten.
-
4 ist
ein Flussdiagramm, das die Arbeitsgänge der Objektanforderungs-Behandlungsroutine 205 gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung zeigt. Im Schritt 401 überprüft die Objektanforderungs-Behandlungsroutine 205 die
Cachespeicherverwaltungseinrichtung 207, um festzustellen,
ob das angeforderte Objekt im Cachespeicher verfügbar ist. Es sei darauf hingewiesen,
dass der Cachespeicher eine weniger ausführliche Version oder eine ausführlichere
Version des angeforderten Objektes enthalten kann. Eine weniger ausführliche
Version des Objektes entspricht nicht dem Bedarf, und es muss eine
Anforderung nach dem Objekt übertragen
werden, normalerweise an den entsprechenden der Inhaltsserver 120, 121 oder an
einen anderen Proxy-Server. Eine ausführlichere Version des Objektes
kann jedoch vom Proxy-Server 110, 111, 112 weiter
aufbereitet werden, um die Anforderung zu erfüllen. Falls das angeforderte
Objekt nicht im Cachespeicher gefunden werden kann, ändert der
Proxy-Server 110, 111, 112 im Schritt 404 die zugeordneten
RHI, um seine Fähigkeit
zum Bereitstellen von Aufbereitungsdiensten anzuzeigen, und überträgt die Anforderung
und die geänderten
RHI anschließend
in Abhängigkeit
von der Position des Proxy-Servers in der gesamten Proxy-Kette an
einen anderen Proxy-Server oder an den Inhaltsserver 120, 121.
-
Falls
eine Kopie des angeforderten Objektes im lokalen Cachespeicher gefunden
werden kann, führt
der Proxy-Server im Schritt 402 einen Vergleich mit den
RHI aus, um festzustellen, ob eine weitere Aufbereitung notwendig
ist. Es ist zu beachten, dass die RHI die Fähigkeitsangaben der empfangenden Einheit
(d.h. der Einheit, die das im Cachespeicher gefundene Objekt ursprünglich anforderte)
enthalten. Durch die Überprüfung der
RHI kann der Proxy-Server 110, 111, 112 feststellen,
ob eine weitere Aufbereitung notwendig ist. Falls keine weitere
Aufbereitung notwendig ist, ändert
der Proxy-Server
die RHI, um seine lokale Bedingung zur Bereitstellung von Aufbereitungsdiensten
anzuzeigen, und rücküberträgt das Objekt
im Schritt 403. Falls es sich aufgrund der RHI oder der
anfordernden Einheit herausstellt, dass eine weitere Aufbereitung
notwendig ist, führt der
Proxy-Server im Schritt 405 eine Auswahlfunktion aus, um
festzustellen, ob er die Aufbereitung lokal ausführen möchte. Falls der Proxy-Server die
Entscheidung trifft, lokal keine Aufbereitung auszuführen, ändert er
die RHI, so dass sie seine lokale Belastungsbedingung zur Bereitstellung
solcher Aufbereitungsdienste anzeigen, und rücküberträgt im Schritt 406 das
Objekt zusammen mit den geänderten
RHI. Falls der Proxy-Server stattdessen entscheidet, die Aufbereitung
lokal auszuführen, überprüft er im Schritt 407 die
RHI, um festzustellen, ob er den gesamten Aufbereitungsprozess oder
nur einen Teil des benötigten
Aufbereitungsprozesses ausführen
möchte.
Falls der Proxy-Server nur einen Teil des Aufbereitungsprozesses
ausführen
möchte,
führt er
im Schritt 409 eine andere Auswahlfunktion aus, um festzustellen,
welcher Teil des Aufbereitungsprozesses ausgeführt werden muss. In jedem Fall
und nach der Entscheidung zur lokalen Ausführung der Aufbereitung im Schritt 405 ruft
der Proxy-Server 110, 111, 112 die Objektaufbereitungseinrichtung 206 auf,
um die Objektaufbereitung im Schritt 408 auszuführen. Nach der
Ausführung
des Aufbereitungsprozesses (entweder einer vollständigen oder
einer teilweisen Aufbereitung) wird im Schritt 410 die
Cachespeicherverwaltungseinrichtung 207 aufgerufen, um
festzustellen, ob eine Kopie des aufbereiteten Objektes lokal im Cachespeicher
gespeichert werden muss. Der Proxy-Server 110, 111, 112 ändert sodann
im Schritt 406 die RHI, so dass sie seine lokale Bedingung
widerspiegeln, und rücküberträgt das (vollständig oder
teilweise) aufbereitete Objekt zusammen mit den geänderten
RHI.
-
Fachleute
werden verstehen, dass ein Proxy-Server 110, 111,
112 im Schritt 404 in den RHI anzeigen kann, dass er eine
weniger ausführliche
Version des angeforderten Objektes im Cachespeicher hat, und anschließend eine
Anforderung nach dem
-
Objekt
an einen anderen Proxy-Server übertragen
kann. Ein Proxy-Server, der eine ausführlichere Version des angeforderten
Objektes gespeichert hat, kann anschließend entscheiden, das ausführlichere
Objekt an den anfordernden Proxy-Server zu übertragen oder stattdessen
alle Daten zu übertragen,
die vom anfordernden Proxy-Server zum Aufbereiten des Objektes in
der notwendigen Auflösung benötigt werden.
Alternativ kann der Proxy-Server 110, 111, 112,
der die ausführlichere
Version des angeforderten Objektes enthält, eine Entscheidung zum Ausführen der
notwendigen Aufbereitung für
den anfordernden Proxy-Server treffen und das vollständig aufbereitete
Objekt an den anfordernden Proxy-Server rückübertragen. Dieser Typ von Entscheidung kann
beispielsweise auf der Belastung des anfordernden Proxy-Servers im Vergleich
zur Belastung des Proxy-Servers beruhen, der die ausführlichere Version
des angeforderten Objektes speichert.
-
Folglich
werden Fachleute außerdem
verstehen, dass es viele verschiedene Varianten hinsichtlich der
Auswahlfunktion gibt, um zu entscheiden, ob ein gegebener der Proxy-Server 110, 111, 112 den gesamten
verbleibenden Aufbereitungsprozess lokal ausführen muss oder welcher Teil
der Objektaufbereitung lokal ausgeführt werden muss.
-
Zu
den Auswahlkriterien können
beispielsweise die aktuelle CPU-Belastung und/oder die Netzverzögerung vom
anfordernden Knoten sowie die Belastungsbedingung des anfordernden
Knotens gehören.
Zu den Kriterien können
außerdem
der auszuführende
Typ von Aufbereitung und die Verfügbarkeit der zum Ausführen der
Aufbereitung benötigten
Software gehören.
Beispielsweise kann ein gegebener der Proxy-Server 110, 111, 112 geringfügig belastet sein,
jedoch kann ihm ein bestimmter Typ von Software fehlen, die benötigt wird,
um das Objekt auf eine mit den Anzeigefähigkeiten des anfordernden
der Clients 130, 131 übereinstimmende Weise aufzubereiten.
Außerdem
kann die lokale Speicherverfügbarkeit zu
den Kriterien gehören.
Falls ein bestimmter Proxy-Server jedoch der letzte auf dem Pfad
zur anfordernden Einheit ist, muss er in der Lage sein, eine eventuell
verbleibende Aufbereitung lokal auszuführen.
-
Fachleute
werden außerdem
verstehen, dass im Falle der Entscheidung eines gegebenen der Proxy-Server 110, 111, 112 zum
Ausführen
einer teilweisen Aufbereitung dieser zuerst den verbleibenden Aufbereitungsvorgang
in mehrere Schritte unterteilen und anschließend einen oder mehrere der
Schritte für seine
eigene lokale Verarbeitung auswählen
kann. Das Ziel besteht darin, eine gegebene Zielfunktion unter Verwendung
der zugeordneten RHI als Eingabeparameter zu optimieren. Außerdem kann
ein gegebener der Proxy-Server 110, 111, 112 die
verbleibenden Schritte auch dem bzw. den restlichen Proxy-Servern auf dem Pfad
zur anfordernden Clienteinheit 130, 131 zuordnen.
Jeder Proxy-Server, der einen solchen Zuordnungsplan empfängt, kann
die Zuordnung aufgrund seiner eigenen lokalen Bedingung ändern (z.B.
aufgrund der Belastung, der Speicherverfügbarkeit und/oder der Verfügbarkeit
der zum Ausführen
seines zugeordneten Teils des Zuordnungsplans notwendigen Software).
Die Zielfunktion, die wunschgemäß optimiert
werden soll, kann darin bestehen, die größten Wert an Bandbreite zu
verringern, den größten Betrag
an der Belastungsunausgewogenheit zwischen den Proxies auf dem Pfad
zur anfordernden Einheit zu verringern oder eine Kombination aus
beidem. Außerdem
kann sie darin bestehen, die geschätzte Antwortzeit vom aktuellen
Proxy-Server 110, 111, 112 zur anfordernden
Clienteinheit 130, 131 auf der Grundlage der RHI
auf ein Minimum herabzusetzen.
-
5 ist
ein Flussdiagramm, das die Objektbehandlungsroutine 204 der
Proxy-Serverlogik 203 veranschaulicht. Wenn ein Proxy-Server ein Objekt empfängt, überprüft er im
Schritt 501 zuerst die zugeordneten RHI, um festzustellen,
ob eine weitere Aufbereitung notwendig ist. Falls nicht, leitet
er das Objekt im Schritt 502 für Cachespeicherüberlegungen an
die Cachespeicherverwaltungseinrichtung 207 weiter. Im
Schritt 503 wird das empfangene Objekt an die anfordernde
Clienteinheit 130, 131 oder an einen anderen Proxy-Server 110, 111, 112 auf
dem Pfad zur anfordernden Clienteinheit rückübertragen. Beim Rückübertragen
des Objektes kann der Proxy-Server die zugeordneten RHI ändern, so
dass sie seine lokale Bedingung anzeigen.
-
Falls
der Proxy-Server stattdessen im Schritt 501 feststellt,
dass eine weitere Aufbereitung des Objektes notwendig ist, ermittelt
er im Schritt 504, ob er die Aufbereitung auf der Grundlage
seiner lokalen Bedingung(en), beispielsweise der CPU-Belastung, ausführt. Falls
er entscheidet, die lokale Aufbereitung nicht auszuführen, ändert er
im Schritt 505 die RHI und rücküberträgt anschließend das Objekt an einen anderen
Proxy-Server auf dem Pfad zur anfordernden Clienteinheit 130, 131.
Falls der Proxy-Server andernfalls im Schritt 504 entscheidet,
die lokale Aufbereitung des Objektes auszuführen, stellt er im Schritt 506 außerdem fest,
ob er den gesamten verbleibenden Aufbereitungsprozess lokal ausführt. Falls
nicht, kann er den verbleibenden Aufbereitungsprozess in mehrere
Schritte unterteilen und anschließend eine Teilmenge der Schritte
zur lokalen Ausführung
im Schritt 508 auswählen.
-
Die
Objektaufbereitungseinrichtung 206 wird sodann zum Ausführen der
lokalen Aufbereitung im Schritt 507 aufgerufen. Nach den
Aufbereitungsberechnungen wird im Schritt 509 die Cachespeicherverwaltungseinrichtung 207 aufgerufen,
um festzustellen, ob das aufbereitete Objekt im Cachespeicher gespeichert
werden muss. Der Proxy-Server 110, 111, 112 ändert sodann
die zugeordneten RHI und rücküberträgt das Objekt
an die anfordernde Clienteinheit 130, 131 oder
an einen anderen Proxy-Server auf dem Pfad zur anfordernden Clienteinheit 130, 131.
-
Es
ist möglich,
dass verschiedene zwischengeschaltete Proxy-Server verschiedene Auswahlfunktionen
auswählen,
um den Anteil der lokal auszuführenden
Objektaufbereitung zu ermitteln. Außerdem kann jeder Knoten im
Proxy-Netz periodisch Belastungsstatistiken von benachbarten Proxy-Serverknoten
sammeln, anstatt solche Belastungsbedingungen in die jeder Anforderung
zugeordneten RHI aufzunehmen.
-
Fachleute
werden verstehen, dass die Cachespeicherverwaltungseinrichtung 207 bei
der Verwaltung des Cachespeichers den Verarbeitungsaufwand zur Erzeugung
des aufbereiteten Objektes berücksichtigen
kann. Daher kann die Cachespeicherverwaltungseinrichtung neben einem
regulären Stapelspeicher
für andere
Objekte einen gesonderten Stapelspeicher für lokal aufbereitete Objekte
verwalten. Außerdem
kann sie von anderen Proxy-Servern aufbereitete Objekte im Cachespeicher
speichern, falls dies vorteilhaft ist.
-
Nach
der Beschreibung dieser Erfindung mit Bezugnahme auf beispielhafte
Ausführungsformen wird
nun eine ausführlichere Erläuterung
bestimmter Aspekte dieser Erfindung als ein Beispiel für die Verwendung
dieser Erfindung bereitgestellt, insbesondere die gegenwärtig bevorzugte
Ausführung
für die Empfängerhinweisdaten
(RHI).
-
Im
Allgemeinen können
Metadaten in HTTP-Anforderungsvorsätzen und Antwortvorsätzen gespeichert
werden, ähnlich
wie die PICSTM ("Platform for Internet Content Selection"). Im allgemeinsten
Falle ermöglichen
die PICSTM-Angaben die Zuordnung von Kennsätzen (Metadaten)
zum Internetinhalt. PICSTM gibt ein Verfahren
zur Übertragung
von Metadaten bezüglich
des elektronischen Inhaltes an und ist eine Protokollempfehlung
des Web-Konsortiums (Web Consortium Protocol Recommendation) (siehe
http://www.w3.org/PICS). PICSTM wurde zuerst
zum Übertragen
von wertebasierten Leistungsbeurteilungskennsätzen (rating labels) für den elektronischen
Inhalt verwendet, kann jedoch außerdem andere Verwendungen
für Kennsätze ermöglichen, beispielsweise
für Codesignaturen
und Datenschutz. Das Format und die Bedeutung der Metadaten sind jedoch
ganz und gar allgemein. In PICSTM werden Metadaten,
die einen elektronischen Inhalt beschreiben, gemäß einer Herstellerverwendung
und vorgesehenen Verwendung (producer-and-intended-usage) der Daten
gruppiert, und innerhalb einer solchen Gruppe kann eine beliebige
Anzahl von Kategorien oder Größenordnungen
von Daten übertragen
werden. Jede Kategorie weist einen Bereich von zulässigen Werten
auf. Für
einen spezifischen Teil des Inhaltes kann eine bestimmte Kategorie
einen einzigen Wert oder mehrere Werte haben. Außerdem kann die als "PICSTM-Kennsatz" ("PICSTM label") bekannte Metadatengruppe
Ablaufdaten enthalten. Jeder PICSTM-Kennsatz
für einen
spezifischen Teil eines elektronischen Inhaltes kann unabhängig vom
Inhalt hinzugefügt
oder aus diesem entnommen werden.
-
Es
wird auf eine Veröffentlichung
mit dem Titel "PILS
Label Distribution Label Syntax and Communications Protocols", REC-PICS-labels-961031, Version
1.1, W3C Recommendation, 31. Oktober 1996, verwiesen, die unter
http://www.w3.org/PICS aufgerufen werden kann. Außerdem kann
wird auf einen Artikel mit dem Titel "Filtering Information on the Internet", Paul Resnick, Scientific
American, März 1997,
verwiesen.
-
Gemäß der Lehre
dieser Erfindung und beispielhaft kann eine Bilddatei von einem
Server mit einem PICS-Kennsatz übertragen
werden, der ein Feld oder Felder aufweist, die zum Anzeigen der
Bildauflösung
eingestellt werden. Ein solcher Auflösungskennsatz kann durch ein
Paar aus Farbcodierung und Bildgröße angegeben werden, r(c 16
s 1000), wobei "c" und "s" Übertragungsnamen
für verschiedene
Metadatentypen sind, und die anwendbaren Werte für diesen Bildinhalt sind 16
(für c)
und 1000 (für
s), wodurch eine 16-Bit-Farbcodierung und eine Bildgröße von 1000
Megabyte angezeigt werden. Jene Proxy-Server 110, 111, 112,
die an der verteilten Objektaufbereitung teilnehmen, haben Kenntnis
darüber,
wie diese Kategorien und Werte zu interpretieren sind. Außerdem können andere
Einheitenfähigkeiten
sowie die Belastungsbedingungen von Proxy-Servern auf ähnliche
Weise als PICSTM-Kennsätze codiert und zusammen mit
den HTTP-Anforderungsvorsätzen
und/oder Antwortvorsätzen übertragen
werden.
-
Beispielsweise
kann die Einheitenfähigkeit eines
PDD (personal digital device), beispielsweise eines PDA, als ein
Paar aus Farbcodierung und Bildgröße, d(c 1 s 2), angegeben werden,
wodurch angezeigt wird, dass der PDD lediglich eine Bildgröße (s) von
bis zu 2 MB (zwei Megabyte) mit einer 1-Bit-Farbcodierung (c) anzeigen (d) kann.
Wie oben beschrieben wurde, kann dieser PICS-Kennsatz der Einheitenfähigkeit
vom PDD oder von einem mit diesem verbundenen Proxy-Server in einen
zwischen verschiedenen Proxy-Servern 110, 111, 112 übertragenen
HTTP-Anforderungsvorsatz eingefügt
werden. Dieser PICS-Kennsatz wird im Kontext dieser Erfindung als
Empfängerhinweisdaten
(RHI) bezeichnet.
-
Es
kann verstanden werden, dass ein Proxy-Server 110, 111, 112,
der ein Bildobjekt mit dem oben erwähnten PICS-Kennsatz r(c 16
s 1000) empfängt,
auf eine Anforderung vom PDD mit den oben erwähnten RHI d(c 1 s 2) benachrichtigt
wird, dass der PDD das empfangene Bildobjekt nicht anzeigen kann
und dass das Bildobjekt in einer Form aufbereitet werden muss, die
der PDD anzeigen kann. Der Proxy-Server kann den gesamten Aufbereitungsprozess
ausführen
und ändert
anschließend
den PICS-Kennsatz des Bildobjektes zu r(c 1 s 2), d.h., um ein Format
anzuzeigen, das mit den Anzeigefähigkeiten
des anfordernden PDD kompatibel ist. Falls der Proxy-Server jedoch
aus irgendeinem Grund entscheidet, das Bildobjekt nicht vollständig oder überhaupt
nicht aufzubereiten, beispielsweise aufgrund von Gründen der
Belastung oder einem Mangel an geeigneter Software, spiegelt der
PICS-Kennsatz des Bildobjektes keine Bedingung wider, die mit den Anzeigefähigkeiten
des PDD kompatibel ist. Wird beispielsweise angenommen, dass ein
gegebener der Proxy-Server 110, 111, 112 entscheidet,
lediglich die Farbcodierung des empfangenen Bildobjektes von Stufe
16 auf 1 zu ändern,
so ist der geänderte PICS-Kennsatz
beim Empfang durch einen nächsten Proxy-Server
r(c 1 s 1000), wobei diese Form noch immer nicht mit den RHI von
d(c 1 s 2) des PDD kompatibel ist. Der nächste Proxy-Server 110, 111, 112 kann
sodann entscheiden, das empfangene Bildobjekt aufzubereiten, um
die Bildgröße von 1000
Megabyte auf 2 Megabyte zu verringern, woraus sich der geänderte PICS-Kennsatz
von r(c 1 s 2) ergibt, was eine mit den RHI von d(c 1 s 2) des PDD
kompatible Form ist.
-
Als
weiteres Beispiel der verteilten Objektaufbereitung wird angenommen,
dass eine PDD-Einheit eine Bilddatei anfordert und eine solche gegenwärtig in
keinem der Proxy-Server 110, 111, 112 im
Netz 101 vorhanden ist. Die Anforderung wird zuerst an
einen lokalen Proxy-Server A übertragen, beispielsweise
einen lokalen ISP (Internetdiensteanbieter), und anschließend an
einen regionalen Proxy-Server B und schließlich an einen nationalen Proxy-Server
C weitergeleitet. Der nationale Proxy-Server C überträgt sodann eine Anforderung
an den entsprechenden Inhaltsserver 120 oder 121.
-
Unter
einem Aspekt der Lehre dieser Erfindung erkennt der lokale Proxy-Server
A, dass eine HTTP-Anforderung nach einer Bilddatei von einer spezifischen
PDD-Einheit stammt, indem er die ID der Einheit erkennt. Der lokale
Proxy-Server A sucht sodann in einer im lokalen Speicher oder in
einem anderen Speicher gespeicherten Tabelle oder in einem Verzeichnis,
um die Einheitenfähigkeiten
der PDD-Einheit und den entsprechenden PICS-Kennsatz der Einheitenfähigkeit
zu finden, beispielsweise d(c 1 s 3), wodurch angezeigt wird, dass diese
Einheit lediglich eine Bildgröße von bis
zu 3 MB mit einer 1-Bit-Farbcodierung
anzeigen kann. Ein solcher PICS-Kennsatz wird sodann in den HTTP-Anforderungsvorsatz
(als RHI für
den PDD) gestellt und anschließend
an den regionalen und den nationalen Proxy-Server B bzw. C übertragen.
Auf die Anforderung vom nationalen Proxy-Server C hin erstellt der Inhaltsserver 120 oder 121 einen
PICS-Kennsatz für die
Auflösung,
r(c 16 s 100) und fügt
diese in den HTTP-Vorsatz der Antwort ein. Die Bilddatei wird sodann
an den nationalen Proxy-Server C übertragen. Nach dem Vergleich
des PICS-Kennsatzes
der Auflösung
mit dem PICS- (RHI-) Kennsatz der Einheitenfähigkeiten stellt der Proxy-Server
C fest, ob für
diese Bilddatei eine Aufbereitung benötigt wird. Der Proxy-Server C entscheidet
sodann, ob die Aufbereitung lokal ausgeführt werden muss. Falls die
Aufbereitung lokal ausgeführt
werden muss, entscheidet der nationale Proxy-Server C sodann, ob
er die gesamte Aufbereitung selbst ausführt oder ob die Aufbereitung
in mehrere Schritte unterteilt wird, so dass nur ein Teil von dieser
lokal ausgeführt
wird. Unter der Annahme, dass der nationale Proxy-Server C festlegt,
eine teilweise Aufbereitung auszuführen, bereitet er die Bilddatei
teilweise auf und aktualisiert sodann den PICS-Kennsatz der Auflösung entsprechend.
Als Nächstes
wird angenommen, dass der sich ergebende PICS-Kennsatz der Auflösung zusammen
mit der teilweise aufbereiteten Bilddatei an den regionalen Proxy-Server B übertragen
wird. Ähnlich
stellt der Proxy-Server B fest, ob er die verbleibende Aufbereitung
lokal ausführt.
Falls nicht, leitet er den zuvor geänderten PICS-Kennsatz der Auflösung einfach
zusammen mit der teilweise aufbereiteten Bilddatei an den lokalen
Proxy-Server A weiter. Wenn der Proxy-Server A schließlich die
Bilddatei empfängt,
stellt er fest, ob noch eine verbleibende Aufbereitung ausgeführt werden
muss. Ist dies der Fall, führt
er die Aufbereitung lokal aus, da der Proxy-Server A der letzte
Proxy-Server 110, 111, 112 im Proxy-Netz
vor der PDD-Clienteinheit 130, 131 ist. Der Proxy-Server A führt die
Aufbereitung so aus, dass das Bild die vom PICS-Kennsatz d(c 1 s
3) angezeigte Einheitenbeschreibung erfüllt, und überträgt die aufbereitete Bilddatei
an die anfordernde Clienteinheit 130 oder 131.
-
Fachleute
müssen
verstehen, dass eine Anzahl möglicher
Netztopologien und -architekturen aus der Lehre dieser Erfindung
Nutzen ziehen und gemäß dieser
betrieben werden können
und es folglich nicht vorgesehen ist, dass die Lehre dieser Erfindung
lediglich auf die spezifischen beispielhaften Ausführungsformen
begrenzt ist, die oben beschrieben wurden.
-
Außerdem ist
die Lehre dieser Erfindung nicht auf die Verwendung von formatierten
PICSTTM-Kennsätzen oder Datenstrukturen zum
Realisieren der RHI begrenzt ist.
-
Außerdem können andere
Objekte als Bildobjekte angefordert, rückübertragen und auch von einem
oder mehreren Datenverarbeitungszwischenknoten verarbeitet werden.
Als Beispiel können
Tonobjekte auf dieselbe oder eine ähnliche Weise wie die oben
beschriebenen Bildobjekte bearbeitet werden, wobei die RHI die Tonwiedergabefähigkeit
des Anforderers anzeigen könnten.
Die Lehre dieser Erfindung kann außerdem auf komplexe HTML-Dokumente
angewandt werden, die viele Vorsätze
und Textabschnitte enthalten, um die Dokumente zu vereinfachen,
wenn sie von Einheiten mit begrenzten Anzeigefähigkeiten, beispielsweise PDDs,
angefordert werden.
-
Außerdem muss
es verstanden werden, dass die Lehre dieser Erfindung ein in einem
computerlesbaren Medium (beispielsweise der Platte 210) ausgeführtes Computerprogramm
umfasst, um einzelne von Servern in einem Netz von zusammenarbeitenden Servern
mit der Fähigkeit
zur Ausführung einer
Objektverarbeitung, beispielsweise einer Bildaufbereitung, gemäß den Fähigkeiten
einer das Objekt verwendenden Einheit bereitzustellen. Das Computerprogramm
enthält
ein Codesegment, das auf anfordererspezifische Fähigkeitsdaten, die in eine Anforderung
nach dem Objekt aufgenommen werden, sowie auf objektspezifische
Daten anspricht, die in das empfangene Objekt aufgenommen werden, um
das Objekt teilweise oder vollständig
zu verarbeiten, um zu bewirken, dass das Objekt den Fähigkeiten
des Anforderers entspricht.
-
Außerdem umfasst
die Erfindung eine maschinenlesbare Programmspeichereinheit, die
ein Programm von durch die Maschine ausführbaren Befehlen physisch aufweist,
um Verfahrensschritte auszuführen,
die einzelnen von Datenverarbeitungsknotenmaschinen in einem verbundenen
hierarchischen Netz von zusammenarbeitenden Datenverarbeitungsknoten
die Ausführung
einer Objektverarbeitung, beispielsweise einer Aufbereitung, gemäß den Fähigkeiten
einer das Objekt verwendenden Einheit ermöglicht. Das Verfahren spricht
auf anfordererspezifische Fähigkeitsdaten
an, die in eine Anforderung nach dem Objekt aufgenommen werden,
und es spricht außerdem
auf objektspezifische Daten an, die in das Objekt aufgenommen werden,
wenn es von einer Quelle des Objektes oder einer anderen Datenverarbeitungsknotenmaschine
empfangen wird, um das Objekt teilweise oder vollständig zu
verarbeiten, um zu bewirken, dass das Objekt den Fähigkeiten des
das Objekt verwendenden Anforderers entspricht.