DE60015423T2 - Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk - Google Patents

Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk Download PDF

Info

Publication number
DE60015423T2
DE60015423T2 DE60015423T DE60015423T DE60015423T2 DE 60015423 T2 DE60015423 T2 DE 60015423T2 DE 60015423 T DE60015423 T DE 60015423T DE 60015423 T DE60015423 T DE 60015423T DE 60015423 T2 DE60015423 T2 DE 60015423T2
Authority
DE
Germany
Prior art keywords
data
proxy server
requestor
data processing
proxy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60015423T
Other languages
English (en)
Other versions
DE60015423D1 (de
Inventor
Yun Wu Huang
Philip Yu
Kun Lung Wu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trend Micro Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE60015423D1 publication Critical patent/DE60015423D1/de
Application granted granted Critical
Publication of DE60015423T2 publication Critical patent/DE60015423T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers

Description

  • 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.

Claims (7)

  1. In einem Netz (100) mit einer Vielzahl von Datenverarbeitungsknoten ausgeführtes Verfahren, wobei mindestens ein Datenverarbeitungsknoten (131) ein Anforderer eines Objektes ist und eine Anforderung erzeugt; mindestens ein Datenverarbeitungsknoten (121) eine Quelle des angeforderten Objekts ist und ein Datenverarbeitungszwischenknoten zur Weiterleitung der Anforderung an die Quelle und zur Rückübertragung des angeforderten Objektes von der Quelle an den Anforderer zwischen den Anforderer und die Quelle geschaltet ist, wobei anfordererspezifische Fähigkeitsdaten mit einer erzeugten Anforderung nach einem Objekt und objektspezifische Deskriptordaten mit dem angeforderten Objekt bereitgestellt werden; Überprüfen der anfordererspezifischen Fähigkeitsdaten und der objektspezifischen Deskriptordaten im Datenverarbeitungszwischenknoten; und außerdem Treffen (407) einer Festlegung zur Verarbeitung des Objekts im Ganzen, um zu bewirken, dass das angeforderte Objekt den anfordererspezifischen Fähigkeitsdaten vollständig entspricht, oder zur teilweisen Verarbeitung des Objekts, um zu bewirken, dass das angeforderte Objekt den anfordererspezifischen Fähigkeitsdaten teilweise entspricht.
  2. Verfahren nach Anspruch 1, wobei das Verfahren bei der Verarbeitung des Objekts einen Schritt des Änderns (406) der objektspezifischen Deskriptordaten im Ganzen oder teilweise beinhaltet, um die vom Datenverarbeitungszwischenknoten ausgeführte Verarbeitung widerzuspiegeln.
  3. Verfahren nach Anspruch 1, wobei das Objekt ein Bildobjekt ist und wobei die anfordererspezifischen Fähigkeitsdaten eine Fähigkeit des Anforderers zum Anzeigen des Objekts anzeigen.
  4. Verfahren nach Anspruch 3, wobei der Datenverarbeitungszwischenknoten eine ausführlichere Version des angeforderten Objekts empfängt oder speichert, als die anfordererspezifischen Fähigkeitsdaten bezüglich der Fähigkeit des Anforderers zum Anzeigen des Objekts anzeigen, und das außerdem einen Schritt des Aufbereitens des Objekts umfasst, um einen Wert der Datennetzbandbreite zu verringern, die zum Übertragen des Objektes vom Datenverarbeitungszwischenknoten benötigt wird.
  5. Verfahren nach Anspruch 3, wobei der Datenverarbeitungszwischenknoten eine ausführlichere Version des angeforderten Objektes empfängt oder speichert, als die anfordererspezifischen Fähigkeitsdaten bezüglich der Fähigkeit des Anforderers zum Anzeigen des Objekts anzeigen, und das außerdem einen Schritt des Aufbereitens des Objekts umfasst, um einen Betrag an Ladeunsymmetrie für alle weiteren Datenverarbeitungszwischenknoten zu verringern, die sich zwischen diesem Datenverarbeitungszwischenknoten und dem Anforderer befinden.
  6. Datennetz, in dem das Verfahren nach irgendeinem vorhergehenden Anspruch ausgeführt wird.
  7. Computerlesbares Medium, das ein Computerprogramm verkörpert, um bei Ausführung in einem Computersystem das Computersystem zum Ausführen des Verfahrens nach irgendeinem vorhergehenden Verfahrensanspruch zu veranlassen.
DE60015423T 1999-03-29 2000-03-24 Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk Expired - Lifetime DE60015423T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/280,746 US6438576B1 (en) 1999-03-29 1999-03-29 Method and apparatus of a collaborative proxy system for distributed deployment of object rendering
US280746 1999-03-29

Publications (2)

Publication Number Publication Date
DE60015423D1 DE60015423D1 (de) 2004-12-09
DE60015423T2 true DE60015423T2 (de) 2005-11-10

Family

ID=23074449

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60015423T Expired - Lifetime DE60015423T2 (de) 1999-03-29 2000-03-24 Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk

Country Status (10)

Country Link
US (1) US6438576B1 (de)
EP (1) EP1047240B1 (de)
JP (1) JP3974307B2 (de)
KR (1) KR100322716B1 (de)
CN (1) CN1201244C (de)
AT (1) ATE281732T1 (de)
CA (1) CA2300562C (de)
DE (1) DE60015423T2 (de)
IL (1) IL134457A (de)
TW (1) TW449985B (de)

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298356B1 (en) * 1998-01-16 2001-10-02 Aspect Communications Corp. Methods and apparatus for enabling dynamic resource collaboration
US6256620B1 (en) * 1998-01-16 2001-07-03 Aspect Communications Method and apparatus for monitoring information access
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
JP3485252B2 (ja) 1999-06-16 2004-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理方法、情報端末支援サーバ、コラボレーション・システム、情報処理プログラムを格納する記憶媒体
US7349902B1 (en) * 1999-08-04 2008-03-25 Hewlett-Packard Development Company, L.P. Content consistency in a data access network system
US6563502B1 (en) * 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US7016973B1 (en) * 1999-11-19 2006-03-21 At&T Corp. Apparatus and methods for providing translucent proxies in a communications network
US8117644B2 (en) * 2000-01-07 2012-02-14 Pennar Software Corporation Method and system for online document collaboration
US6799196B1 (en) * 2000-01-21 2004-09-28 Gateway, Inc. On-demand data streaming parceling
WO2001080515A2 (en) * 2000-04-17 2001-10-25 Circadence Corporation System and method for data prioritization
US7062527B1 (en) * 2000-04-19 2006-06-13 Silicon Graphics, Inc. Management and scheduling of a distributed rendering method and system
US7092983B1 (en) * 2000-04-19 2006-08-15 Silicon Graphics, Inc. Method and system for secure remote distributed rendering
US7783695B1 (en) * 2000-04-19 2010-08-24 Graphics Properties Holdings, Inc. Method and system for distributed rendering
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
WO2002025459A1 (fr) * 2000-09-20 2002-03-28 Sony Corporation Systeme et procede de distribution
US6708216B1 (en) * 2000-09-23 2004-03-16 Paul Lee Closed virtual network system
JP4025498B2 (ja) * 2000-10-18 2007-12-19 日本電気株式会社 オブジェクトフィルタリング方法及びそれを用いたクライアント装置
US7290061B2 (en) * 2000-12-05 2007-10-30 Citrix Systems, Inc. System and method for internet content collaboration
US7598955B1 (en) 2000-12-15 2009-10-06 Adobe Systems Incorporated Hinted stem placement on high-resolution pixel grid
CA2328795A1 (en) 2000-12-19 2002-06-19 Advanced Numerical Methods Ltd. Applications and performance enhancements for detail-in-context viewing technology
US20020080171A1 (en) * 2000-12-22 2002-06-27 Laferriere Robert James Method and apparatus for coordinating screen views in a collaborative computing environment
US7127514B2 (en) * 2000-12-28 2006-10-24 Microsoft Corporation Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
US20020107910A1 (en) * 2001-02-02 2002-08-08 Yan Zhao Client/server two-way communication system framework under HTTP protocol
US20020107891A1 (en) * 2001-02-06 2002-08-08 Leamon Andrew P. Device-independent content acquisition and presentation
US7200679B2 (en) * 2001-04-13 2007-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Creating distributed proxy configurations
GB2374778B (en) 2001-04-20 2005-11-02 Discreet Logic Inc Processing image data
GB2374779B (en) 2001-04-20 2005-11-02 Discreet Logic Inc Processing image data
CA2345803A1 (en) 2001-05-03 2002-11-03 Idelix Software Inc. User interface elements for pliable display technology implementations
US8416266B2 (en) 2001-05-03 2013-04-09 Noregin Assetts N.V., L.L.C. Interacting with detail-in-context presentations
US7084886B2 (en) 2002-07-16 2006-08-01 Idelix Software Inc. Using detail-in-context lenses for accurate digital image cropping and measurement
US9760235B2 (en) 2001-06-12 2017-09-12 Callahan Cellular L.L.C. Lens-defined adjustment of displays
US7213214B2 (en) 2001-06-12 2007-05-01 Idelix Software Inc. Graphical user interface with zoom for detail-in-context presentations
US20020191206A1 (en) * 2001-06-18 2002-12-19 Anderson Jeff M. Rendering broker service and method
US20020199013A1 (en) * 2001-06-25 2002-12-26 Sorensen Lauge S. Method and apparatus for moving HTML/XML information into a HTTP header in a network
US20030016233A1 (en) * 2001-06-29 2003-01-23 Bitflash Graphics, Inc. Method and system for manipulation of graphics information
US20030031992A1 (en) * 2001-08-08 2003-02-13 Laferriere Robert J. Platform independent telecollaboration medical environments
JP2003067527A (ja) * 2001-08-29 2003-03-07 Nec Corp コンテンツアクセス管理装置及びそれに用いるコンテンツアクセス管理方法並びにそのプログラム
CA2361341A1 (en) 2001-11-07 2003-05-07 Idelix Software Inc. Use of detail-in-context presentation on stereoscopically paired images
KR100400014B1 (ko) * 2001-11-12 2003-09-29 삼성전자주식회사 신호 처리 시스템에서의 중복 신호처리 방지 제어 장치 및방법
US7428725B2 (en) * 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US7093002B2 (en) * 2001-12-06 2006-08-15 Mcafee, Inc. Handling of malware scanning of files stored within a file storage device of a computer network
US7150042B2 (en) 2001-12-06 2006-12-12 Mcafee, Inc. Techniques for performing malware scanning of files stored within a file storage device of a computer network
CA2370752A1 (en) 2002-02-05 2003-08-05 Idelix Software Inc. Fast rendering of pyramid lens distorted raster images
JP2003271572A (ja) * 2002-03-14 2003-09-26 Fuji Photo Film Co Ltd 処理分散制御装置、分散処理システム、処理分散制御プログラム、処理分散制御方法
US7809813B2 (en) * 2002-06-28 2010-10-05 Microsoft Corporation System and method for providing content-oriented services to content providers and content consumers
US20040024867A1 (en) * 2002-06-28 2004-02-05 Openwave Systems Inc. Method and apparatus for determination of device capabilities on a network
US7299033B2 (en) * 2002-06-28 2007-11-20 Openwave Systems Inc. Domain-based management of distribution of digital content from multiple suppliers to multiple wireless services subscribers
US7233790B2 (en) * 2002-06-28 2007-06-19 Openwave Systems, Inc. Device capability based discovery, packaging and provisioning of content for wireless mobile devices
US20070064018A1 (en) * 2005-06-24 2007-03-22 Idelix Software Inc. Detail-in-context lenses for online maps
US8120624B2 (en) 2002-07-16 2012-02-21 Noregin Assets N.V. L.L.C. Detail-in-context lenses for digital image cropping, measurement and online maps
CA2393887A1 (en) 2002-07-17 2004-01-17 Idelix Software Inc. Enhancements to user interface for detail-in-context data presentation
US7051040B2 (en) 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
US7136895B2 (en) * 2002-07-24 2006-11-14 Sun Microsystems, Inc. System and method for forward chaining web-based procedure calls
CA2406131A1 (en) 2002-09-30 2004-03-30 Idelix Software Inc. A graphical user interface using detail-in-context folding
CA2449888A1 (en) 2003-11-17 2005-05-17 Idelix Software Inc. Navigating large images using detail-in-context fisheye rendering techniques
CA2411898A1 (en) 2002-11-15 2004-05-15 Idelix Software Inc. A method and system for controlling access to detail-in-context presentations
US7006107B2 (en) * 2003-05-16 2006-02-28 Adobe Systems Incorporated Anisotropic anti-aliasing
US7002597B2 (en) * 2003-05-16 2006-02-21 Adobe Systems Incorporated Dynamic selection of anti-aliasing procedures
US7526549B2 (en) * 2003-07-24 2009-04-28 International Business Machines Corporation Cluster data port services for clustered computer system
US8250093B2 (en) 2003-08-25 2012-08-21 International Business Machines Corporation Method and system for utilizing a cache for path-level access control to structured documents stored in a database
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
US8150818B2 (en) * 2003-08-25 2012-04-03 International Business Machines Corporation Method and system for storing structured documents in their native format in a database
US7519574B2 (en) * 2003-08-25 2009-04-14 International Business Machines Corporation Associating information related to components in structured documents stored in their native format in a database
US8775468B2 (en) * 2003-08-29 2014-07-08 International Business Machines Corporation Method and system for providing path-level access control for structured documents stored in a database
US9100814B2 (en) * 2003-09-17 2015-08-04 Unwired Plant, Llc Federated download of digital content to wireless devices
US7580039B2 (en) 2004-03-31 2009-08-25 Adobe Systems Incorporated Glyph outline adjustment while rendering
US7602390B2 (en) * 2004-03-31 2009-10-13 Adobe Systems Incorporated Edge detection based stroke adjustment
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US7639258B1 (en) 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US7333110B2 (en) * 2004-03-31 2008-02-19 Adobe Systems Incorporated Adjusted stroke rendering
US7486302B2 (en) 2004-04-14 2009-02-03 Noregin Assets N.V., L.L.C. Fisheye lens graphical user interfaces
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8106927B2 (en) 2004-05-28 2012-01-31 Noregin Assets N.V., L.L.C. Graphical user interfaces and occlusion prevention for fisheye lenses with line segment foci
US9317945B2 (en) 2004-06-23 2016-04-19 Callahan Cellular L.L.C. Detail-in-context lenses for navigation
US7756879B2 (en) * 2004-07-23 2010-07-13 Jeffrey Parsons System and method for estimating user ratings from user behavior and providing recommendations
US7714859B2 (en) 2004-09-03 2010-05-11 Shoemaker Garth B D Occlusion reduction and magnification for multidimensional data presentations
US7995078B2 (en) 2004-09-29 2011-08-09 Noregin Assets, N.V., L.L.C. Compound lenses for multi-source data presentation
US7302468B2 (en) * 2004-11-01 2007-11-27 Motorola Inc. Local area preference determination system and method
US7580036B2 (en) 2005-04-13 2009-08-25 Catherine Montagnese Detail-in-context terrain displacement algorithm with optimizations
US7978204B2 (en) * 2005-04-29 2011-07-12 Nvidia Corporation Transparency-conserving system, method and computer program product to generate and blend images
CN100354788C (zh) * 2005-07-20 2007-12-12 华为技术有限公司 一种数字版权保护系统及方法
US8031206B2 (en) 2005-10-12 2011-10-04 Noregin Assets N.V., L.L.C. Method and system for generating pyramid fisheye lens detail-in-context presentations
US20070174762A1 (en) * 2006-01-24 2007-07-26 International Business Machines Corporation Personal web page annotation system
CA2643342C (en) * 2006-02-24 2015-09-22 Verisign, Inc. System and method for cross-carrier mobile device capability discovery
US7983473B2 (en) 2006-04-11 2011-07-19 Noregin Assets, N.V., L.L.C. Transparency adjustment of a presentation
US20080068383A1 (en) * 2006-09-20 2008-03-20 Adobe Systems Incorporated Rendering and encoding glyphs
JP5188057B2 (ja) * 2006-11-14 2013-04-24 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理装置、および情報処理方法
WO2008061903A1 (en) * 2006-11-22 2008-05-29 Agfa Healthcate Inc. Method and system for client / server distributed image processing
US9026938B2 (en) 2007-07-26 2015-05-05 Noregin Assets N.V., L.L.C. Dynamic detail-in-context user interface for application access and content access on electronic displays
WO2009052529A1 (en) * 2007-10-20 2009-04-23 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphical data
JP2009194692A (ja) * 2008-02-15 2009-08-27 Ntt Docomo Inc 遠隔デバイス利用システム
US7800471B2 (en) * 2008-04-04 2010-09-21 Cedar Ridge Research, Llc Field emission system and method
US20090265661A1 (en) * 2008-04-14 2009-10-22 Gary Stephen Shuster Multi-resolution three-dimensional environment display
WO2010096683A1 (en) * 2009-02-20 2010-08-26 Citrix Systems, Inc. Systems and methods for intermediaries to compress data communicated via a remote display protocol
JP5397014B2 (ja) * 2009-05-21 2014-01-22 ソニー株式会社 監視システム、撮像装置、解析装置及び監視方法
US9323582B2 (en) * 2009-08-12 2016-04-26 Schlumberger Technology Corporation Node to node collaboration
CN102196300A (zh) * 2010-03-18 2011-09-21 国际商业机器公司 虚拟世界场景的图像的提供方法和设备及处理方法和设备
CN102044089A (zh) * 2010-09-20 2011-05-04 董福田 一种三维模型的自适应化简、渐进传输和快速绘制的方法
US8928899B2 (en) * 2011-02-24 2015-01-06 Ricoh Company, Ltd. Web services printer driver
US9002994B2 (en) * 2011-04-02 2015-04-07 Open Invention Network, Llc System and method for connection efficiency
WO2013126430A1 (en) * 2012-02-20 2013-08-29 Virtustream Canada Holdings, Inc. Systems and methods involving virtual machine host isolation over a network
US9747386B1 (en) * 2012-08-10 2017-08-29 Amazon Technologies, Inc. User-perceived performance through browser hints
CN105335236B (zh) * 2015-12-10 2019-03-19 厦门市美亚柏科信息股份有限公司 一种分布式取证动态负载均衡调度方法和装置
CN105959238A (zh) * 2016-06-28 2016-09-21 深圳市彬讯科技有限公司 一种基于消息队列多优先级渲染资源的调度方法及系统
CN108710543A (zh) * 2018-05-21 2018-10-26 苏州本乔信息技术有限公司 一种渲染任务的处理方法及设备
US11562288B2 (en) 2018-09-28 2023-01-24 Amazon Technologies, Inc. Pre-warming scheme to load machine learning models
US11436524B2 (en) * 2018-09-28 2022-09-06 Amazon Technologies, Inc. Hosting machine learning models
US10924534B2 (en) 2019-03-01 2021-02-16 Akamai Technologies, Inc. Dynamic placement of computing tasks in a distributed computing environment
US11252226B2 (en) * 2020-03-05 2022-02-15 Qualcomm Incorporated Methods and apparatus for distribution of application computations

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793964A (en) * 1995-06-07 1998-08-11 International Business Machines Corporation Web browser system
US5826025A (en) * 1995-09-08 1998-10-20 Sun Microsystems, Inc. System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups
JPH0981569A (ja) * 1995-09-12 1997-03-28 Hitachi Ltd 多カ国対応サービス提供システム
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5727159A (en) * 1996-04-10 1998-03-10 Kikinis; Dan System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers
US5673322A (en) * 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
US5862481A (en) * 1996-04-08 1999-01-19 Northern Telecom Limited Inter-technology roaming proxy
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5742768A (en) * 1996-07-16 1998-04-21 Silicon Graphics, Inc. System and method for providing and displaying a web page having an embedded menu
US6167442A (en) * 1997-02-18 2000-12-26 Truespectra Inc. Method and system for accessing and of rendering an image for transmission over a network
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
KR100237387B1 (ko) * 1997-05-29 2000-01-15 정선종 분산처리환경에서 네임서비스 접속방법
JPH1145199A (ja) * 1997-07-29 1999-02-16 Omron Corp 分散型情報配信装置及びその方法
KR100232497B1 (ko) * 1997-10-08 1999-12-01 김덕중 단순 망 관리 프로토콜에 의한 망 관리 장치
US6275937B1 (en) * 1997-11-06 2001-08-14 International Business Machines Corporation Collaborative server processing of content and meta-information with application to virus checking in a server network
US6122666A (en) * 1998-02-23 2000-09-19 International Business Machines Corporation Method for collaborative transformation and caching of web objects in a proxy network

Also Published As

Publication number Publication date
US6438576B1 (en) 2002-08-20
IL134457A0 (en) 2001-04-30
KR20000076843A (ko) 2000-12-26
IL134457A (en) 2004-06-01
TW449985B (en) 2001-08-11
DE60015423D1 (de) 2004-12-09
EP1047240A2 (de) 2000-10-25
JP2000322395A (ja) 2000-11-24
CN1268701A (zh) 2000-10-04
EP1047240B1 (de) 2004-11-03
EP1047240A3 (de) 2003-10-22
ATE281732T1 (de) 2004-11-15
CA2300562C (en) 2006-04-11
KR100322716B1 (ko) 2002-02-07
JP3974307B2 (ja) 2007-09-12
CA2300562A1 (en) 2000-09-29
CN1201244C (zh) 2005-05-11

Similar Documents

Publication Publication Date Title
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE602004010807T2 (de) Techniken zur bereitstellung eines virtuellen arbeitsraums, bestehend aus einer vielzahl elektronischer einrichtungen
DE69732605T2 (de) Dynamisches Cachespeicher-Vorladen über lose gekoppelte administrative Bereiche
DE60024706T2 (de) Verteiltes Parameterkontrollprotokoll
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE602005006391T2 (de) System und verfahren zum asynchronen kommunizieren mit web-diensten unter verwendung von nachrichtensatzdefinitionen
DE602004002783T2 (de) Verfahren, system und programmprodukt zum asynchronen verarbeiten von anforderungen
DE60208786T2 (de) Übertragungskontrolle für objekte in einem kommunikationsnetzwerk
DE60011069T2 (de) Behandlung einer anfrage nach informationen, die von einem dienstleisters angeboten werden
DE10051024B4 (de) Verfahren zum intermediären Cachen in einem Client-Server-Softwaresystem, Computerprogrammprodukte und Computersystem zur Durchführung eines solchen Verfahrens
DE60028561T2 (de) Bereitstellung von kundendiensten, die daten aus datenquellen abrufen, wobei die datenquellen die vom kunden geforderten formate nicht notwendigerweise unterstützen
DE60306186T2 (de) Verfahren und system zur anordnung von dienste in einer webdienstarchitektur
DE602004011952T2 (de) Verfahren und System zum Verbessern der Präsentation von HTML-Seiten in einem Internet-Zugriffsgerät
DE60313567T2 (de) Zugriffsrelayvorrichtung
DE60210733T2 (de) System und Verfahren zur Überlastregelung in Netzwerken
DE10236188B4 (de) Verfahren, System und Programmprodukt zum Bereitstellen eines Inhalts einer Quellwebsite an eine Verbraucherwebsite durch einen Bildumwandlungsdienst
DE60317917T2 (de) Verfahren und vorrichtung zum weiterleiten von sitzungsinformationen von einem portal-server
DE69730929T2 (de) System zur Verwaltung der Mitanwesenheit innerhalb Gemeinschaften
DE19511770B4 (de) Datensuchsystem sowie Verfahren zum Nachrüsten eines solchen
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE112006000650B4 (de) Webbasiertes Verwaltungsverfahren und Vorrichtung zum Durchführen desselben
DE69834129T2 (de) Verfahren und system zum vorausladen von informationen
DE60211524T2 (de) Verfahren und vorrichtung zur verteilten lieferung von inhalten innerhalb eines computernetzwerkes
DE10296790B4 (de) Verfahren zur Präsentation von Medienobjekten, Multimediapräsentationssystem sowie Computerprogrammprodukt und dessen Verwendung
DE10236189B4 (de) Verfahren, System und Programmprodukt zum Drucker eines Dokuments, das eine Mehrzahl von Seiten aufweist

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7

8327 Change in the person/name/address of the patent owner

Owner name: TREND MICRO INCORPORATED, TOKIO/TOKYO, JP

8328 Change in the person/name/address of the agent

Representative=s name: KAHLER, KAECK & MOLLEKOPF, 86899 LANDSBERG