DE202018100131U1 - Reduzierern von Umleitungen - Google Patents

Reduzierern von Umleitungen Download PDF

Info

Publication number
DE202018100131U1
DE202018100131U1 DE202018100131.0U DE202018100131U DE202018100131U1 DE 202018100131 U1 DE202018100131 U1 DE 202018100131U1 DE 202018100131 U DE202018100131 U DE 202018100131U DE 202018100131 U1 DE202018100131 U1 DE 202018100131U1
Authority
DE
Germany
Prior art keywords
server
servers
client device
interaction
data
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.)
Active
Application number
DE202018100131.0U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202018100131U1 publication Critical patent/DE202018100131U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Computerprogrammprodukt, das Anweisungen enthält, die, wenn sie von einem Datenverarbeitungsgerät ausgeführt werden, das Datenverarbeitungsgerät veranlassen, ein Verfahren ausführen, das Verfahren umfassend:Erkennen einer Interaktion durch einen oder mehrere Server mit einer digitalen Komponente an einem Client-Gerät;Identifizieren eines Zwischenservers durch den einen oder die mehreren Server, der das Client-Gerät zu einer Zielressource umleiten kann, angefordert durch die Interaktion mit der digitalen Komponente;Anpingen des Zwischenservers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen;Erhalten einer Kennung für die Zielressource durch den einen oder die mehreren Server; undUmleiten des Client-Geräts durch den einen oder die mehreren Server zu der Zielressource unter Verwendung der Kennung.

Description

  • HINTERGRUND
  • Dieses Dokument betrifft Reduzieren von Umleitungen. Das Internet bietet Zugriff auf eine Vielzahl von Ressourcen, und in einigen Situationen kann ein Benutzer, der Zugriff auf eine Ressource wünscht, zu mehreren unterschiedlichen Servern umgeleitet werden, bevor er schließlich zu dem Server umgeleitet wird, der die Ressource hostet.
  • KURZDARSTELLUNG DER OFFENBARUNG
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstandes in einem Computerprogrammprodukt verkörpert werden, das Anweisungen enthält, die, wenn sie von einem Datenverarbeitungsgerät ausgeführt werden, das Datenverarbeitungsgerät veranlassen, ein Verfahren auszuführen, das das Erkennen einer Interaktion mit einer digitalen Komponente auf einem Client-Gerät durch einen oder mehrere Server beinhaltet. Das Verfahren beinhaltet Identifizieren eines Zwischenservers durch den einen oder die mehreren Server, zu dem der eine oder die mehreren Server das Client-Gerät umleiten sollen, und eines Zielservers, angefordert durch die Interaktion mit der digitalen Komponente. Das Verfahren beinhaltet Umleiten des Client-Geräts durch den einen oder die mehreren Server zu dem Zielserver, ohne das Client-Gerät zu dem Zwischenserver umzuleiten. Das Verfahren beinhaltet Anpingen des Zwischenservers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen.
  • Diese und andere Ausführungsformen können jeweils optional ein oder mehrere der folgenden Merkmale beinhalten.
  • In einigen Beispielen beinhaltet Identifizieren des Zwischenservers Untersuchen einer URL, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die einen Pfad des Zwischenservers spezifizieren. In einigen Beispielen beinhaltet das Verfahren Empfangen einer Umleitungsantwort von dem Zwischenserver, die den einen oder die mehreren Server zu einem zweiten Zwischenserver umleitet, und durch den einen oder die mehreren Server Anpingen des zweiten Zwischenservers mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  • In einigen Beispielen beinhaltet Anpingen des Zwischenservers Initiieren eines zweiten Umleitungspfads, der sich von der Umleitung des Client-Geräts zu dem Zielserver unterscheidet. In einigen Beispielen beinhaltet Anpingen des Zwischenservers Starten eines Zählers, wenn das Anpingen initiiert wird, Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers; und erneutes Versuchen des Anpingens des Zwischenservers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet, bevor der eine oder die mehreren Server eine Antwort von dem Zwischenserver empfangen.
  • In einigen Beispielen ist das Client-Gerät ein mobiles Gerät, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und der eine oder die mehreren Server kommunizieren über ein drahtgebundenes Kommunikationsnetzwerk unabhängig von dem mobilen Gerät. In einigen Beispielen beinhaltet das Verfahren Folgen eines Mehrfachserverumleitungspfads durch den einen oder die mehreren Server, dem das Client-Gerät gefolgt wäre, wenn der eine oder die mehreren Server das Client-Gerät nicht zu dem Zielserver umgeleitet hätten.
  • In einem weiteren allgemeinen Aspekt beinhaltet ein System einen Datenspeicher, der Interaktionsdaten speichert, die einer clientseitigen Interaktion mit verschiedenen digitalen Komponenten entsprechen, eine Front-End-Schnittstelle, die eine Kommunikationsschnittstelle beinhaltet, die die Kommunikation über ein oder mehrere Kommunikationsnetzwerke ermöglicht, und einen mit der Front-End-Schnittstelle verbundenen Überwachungsserver, wobei der Überwachungsserver eine Umleitungskette unterbricht, der ein Client-Gerät folgt, indem er Vorgänge ausführt. Die Vorgänge beinhalten Erkennen der Interaktion mit einer digitalen Komponente an einem Client-Gerät durch den einen oder die mehreren Server durch Identifizieren eines anderen Servers durch den einen oder die mehreren Server, zu dem der eine oder die mehreren Server das Client-Gerät umleiten sollen, und eine Zielseite, die durch die Interaktion mit der digitalen Komponente angefordert wird, Umleiten des Client-Geräts durch den einen oder die mehreren Server zu einer Zielseite, ohne das Client-Gerät zu dem anderen Server umzuleiten, und Anpingen des anderen Servers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen.
  • In einigen Beispielen beinhaltet Identifizieren des anderen Servers Untersuchen einer URL, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die den anderen Server spezifizieren. In einigen Beispielen beinhalten die Vorgänge Empfangen einer Umleitungsantwort von dem anderen Server, die den einen oder die mehreren Server zu einem zweiten anderen Server umleitet, und durch den einen oder die mehreren Server Anpingen des zweiten anderen Servers mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  • In einigen Beispielen beinhaltet Anpingen des anderen Servers Initiieren eines zweiten Umleitungspfads, der sich von der Umleitung des Client-Geräts zu der Zielseite unterscheidet. In einigen Beispielen beinhaltet Anpingen des anderen Servers Starten eines Zählers, wenn das Anpingen initiiert wird, Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers und erneutes Versuchen des Anpingens des anderen Servers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet.
  • In einigen Beispielen ist das Client-Gerät ein mobiles Gerät, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und der eine oder die mehreren Server kommunizieren über ein drahtgebundenes Kommunikationsnetzwerk unabhängig von dem mobilen Gerät. In einigen Beispielen beinhalten die Vorgänge Folgen eines Mehrfachserverumleitungspfads durch den einen oder die mehreren Server, dem das Client-Gerät gefolgt wäre, wenn der eine oder die mehreren Server das Client-Gerät nicht zu dem Zielserver umgeleitet hätten.
  • In einem anderen allgemeinen Aspekt speichert ein nicht flüchtiges computerlesbares Medium Anweisungen, die bei Ausführung von einem oder mehreren Computergeräten das eine oder die mehreren Computergeräte zum Ausführen von Vorgängen veranlassen. Die Vorgänge beinhalten Erkennen der Interaktion mit einer digitalen Komponente an einem Client-Gerät durch einen oder mehrere Server durch Identifizieren eines anderen Servers durch den einen oder die mehreren Server, zu dem der eine oder die mehreren Server das Client-Gerät umleiten sollen, und eine Zielseite, die durch die Interaktion mit der digitalen Komponente angefordert wird, Umleiten des Client-Geräts durch den einen oder die mehreren Server zu einer Zielseite, ohne das Client-Gerät zu dem anderen Server umzuleiten, und Anpingen des anderen Servers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen.
  • In einigen Beispielen beinhaltet Identifizieren des anderen Servers Untersuchen einer URL, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die den anderen Server spezifizieren. In einigen Beispielen beinhalten die Vorgänge Empfangen einer Umleitungsantwort von dem anderen Server, die den einen oder die mehreren Server zu einem zweiten anderen Server umleitet, und durch den einen oder die mehreren Server Anpingen des zweiten anderen Servers mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  • In einigen Beispielen beinhaltet Anpingen des anderen Servers Initiieren eines zweiten Umleitungspfads, der sich von der Umleitung des Client-Geräts zu der Zielseite unterscheidet. In einigen Beispielen beinhaltet Anpingen des anderen Servers Starten eines Zählers, wenn das Anpingen initiiert wird, Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers und erneutes Versuchen des Anpingens des anderen Servers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet.
  • In einigen Beispielen ist das Client-Gerät ein mobiles Gerät, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, während der eine oder die mehreren Server unabhängig von dem mobilen Gerät über ein drahtgebundenes Kommunikationsnetzwerk kommunizieren.
  • In einem anderen allgemeinen Aspekt beinhaltet ein Verfahren Erkennen einer Interaktion mit einer digitalen Komponente auf einem Client-Gerät, durch einen oder mehrere Server. Das Verfahren beinhaltet Identifizieren eines Zwischenservers durch den einen oder die mehreren Server, der das Client-Gerät zu einer Zielressource umleiten soll, angefordert durch die Interaktion mit der digitalen Komponente. Das Verfahren beinhaltet Anpingen des Zwischenservers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen, und Empfangen einer Kennung für die Zielressource durch den einen oder die mehreren Server über den Zwischenserver. Das Verfahren beinhaltet Umleiten des Client-Geräts durch den einen oder die mehreren Server zu der Zielressource unter Verwendung der Kennung.
  • Weitere Ausführungsformen dieses Aspektes beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die konfiguriert sind, die auf Computerspeichergeräten codierten Aktionen des Verfahrens auszuführen.
  • Bestimmte Ausführungsformen des in diesem Dokument beschriebenen Gegenstandes können so implementiert werden, dass sie einen oder mehrere der folgenden Vorteile verwirklichen. Wenn ein Client-Gerät eine Anforderung nach einer Ressource stellt, kann das Client-Gerät eine oder mehrere intervenierende Umleitungen überspringen, die das Client-Gerät andernfalls ausführen müsste, wodurch die Anzahl der Umleitungen verringert wird, die das Client-Gerät ausführen muss, um die Ressource von einem Zielserver zu erhalten, der die Ressource hostet. Wenn das Client-Gerät in die Lage versetzt wird, intervenierende Umleitungen zu überspringen (z. B. Umleitungen zwischen der ersten Anforderung eines Client-Geräts nach einer Ressource und dem Client-Gerät, das zu dem Zielserver geleitet wird, der die Ressource hostet), verringert sich die Wahrscheinlichkeit eines Fehlers, der verhindert, dass das Client-Gerät die Ressource von dem Zielserver erhält. Beispiele von Fehlern, die verhindern, dass das Client-Gerät die Ressource von dem Zielserver erhält, beinhalten, dass das Client-Gerät auf einen nicht reagierenden Zwischenserver trifft, bevor es zu dem Zielserver umgeleitet wird, der die Ressource hostet, oder einen temporären Netzwerkausfall, der einen der Zwischenserver betrifft. Das Client-Gerät kann die Netzwerkverbindung verlieren, während es zu einem Zwischenserver umgeleitet wird, bevor es zu dem Zielserver umgeleitet wird. In einigen Beispielen kann ein Zwischenserver fehlerhafte Umleitungsdaten bereitstellen, die das Client-Gerät zu dem falschen Ziel führen.
  • Der Zeitbetrag, den das Client-Gerät benötigt, um die Ressource von dem Zielserver zu erhalten, wird reduziert, wenn die Anzahl der Umleitungen reduziert wird, da jede Umleitung zu einem Zwischenserver den Zeitbetrag zum Abrufen der Ressource von dem Zielserver erhöht. Im Zusammenhang mit mobilen Geräten kann der Zeitbetrag, der durch jede Umleitung hinzugefügt wird, aufgrund der Art, wie Netzwerkanrufe in einem drahtlosen (z. B. Mobilfunk-) Netzwerk ausgeführt werden, erheblich sein und zu einer negativen Benutzererfahrung oder Seitenladefehlern führen (z. B. aufgrund von schwankender Verfügbarkeit oder des Ladens von drahtlosen Netzwerken). Daher ist es wichtig, die Anzahl von Umleitungen eines mobilen Geräts zu reduzieren, um die durch diese Umleitungen eingeführte Latenz zu reduzieren. Durch die Reduzierung der Anzahl von Umleitungen wird auch die Menge der verwendeten mobilen Daten reduziert, wodurch eine effizientere Nutzung mobiler Daten ermöglicht wird, die für viele Benutzer begrenzt sein kann. Anstatt das Client-Gerät unter Verwendung der hier erläuterten Techniken zu dem Zwischenserver umzuleiten, kontaktiert ein bestimmter Server, wie in diesem Dokument dargelegt, die Zwischenserver im Auftrag des Client-Geräts, anstatt dass das Client-Gerät die Zwischenserver kontaktieren muss. Beispielsweise kann der gegebene Server einer Umleitungskette (z. B. einer Reihe von Anrufen zu Zwischenservern) folgen, der das Client-Gerät gefolgt wäre, anstatt zu fordern, dass das Client-Gerät der Umleitungskette folgt.
  • Der gegebene Server kommuniziert im Allgemeinen mit den Zwischenservern über eine zuverlässige Kommunikationsverbindung, wodurch die Wahrscheinlichkeit erhöht wird, dass jedem Zwischenserver die geeigneten Informationen bereitgestellt werden. Beispielsweise kann die Kommunikation mit den Zwischenservern über ein drahtgebundenes Hochgeschwindigkeitsnetzwerk, wie etwa ein optisches Netzwerk, ein digitales Teilnehmerleitungsnetzwerk oder ein hybrides Netzwerk, erfolgen. Darüber hinaus ermöglicht die Verwendung des gegebenen Servers zur Kommunikation mit den Zwischenservern dem Benutzer zusätzliche Zuverlässigkeitstechniken, beispielsweise kann der Server einen „Wiederholungsversuch“ verwenden, wenn eine an einen der Zwischenserver gesendete Anforderung nicht innerhalb eines spezifizierten Zeitbetrags erfüllt wurde. Wenn z. B. eine Zeitüberschreitung auftritt, bevor einer der Zwischenserver antwortet, kann der gegebene Server eine Wiederholung initiieren, die eine zweite Instanz der Anforderung zu dem Zwischenserver überträgt, der nicht geantwortet hat. Die Verwendung eines „Wiederholungsversuchs“ ist im Allgemeinen nicht verfügbar, wenn das Client-Gerät die Aufgabe hat, jeden Zwischenserver zu kontaktieren. Die in diesem Dokument erläuterten Techniken verbessern somit die Zuverlässigkeit, mit der Daten von dem Client-Gerät für jeden der Zwischenserver in einer Umleitungskette bereitgestellt werden.
  • Die Details einer oder mehrerer Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstandes werden in den beigefügten Zeichnungen und in der nachstehenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstandes werden aus der Beschreibung, den Zeichnungen und den Ansprüchen deutlich.
  • Figurenliste
    • 1 zeigt ein Blockdiagramm einer exemplarischen Umgebung, in der digitale Komponenten zur Präsentation mit elektronischen Dokumenten verteilt sind.
    • 2A-B zeigen exemplarische Datenströme zum Leiten eines Benutzers zu einer Zielseite.
    • 3 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses zum Leiten eines Benutzers zu einer Zielseite.
    • 4 zeigt ein Blockdiagramm eines exemplarischen Computersystems.
  • In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In diesem Dokument werden Verfahren, Systeme und Geräte beschrieben, die die Anzahl der Umleitungen reduzieren, die ein Client-Gerät beim Zugriff auf eine von dem Client-Gerät angeforderte Ressource ausführen muss. In einigen Situationen, wenn eine Anforderung nach einer Ressource durch Interaktion mit einer digitalen Komponente auf einem Client-Gerät generiert wird, kann die erste Anforderung, die generiert wird, das Client-Gerät zu einem bestimmten Server leiten, der sich von dem Server unterscheidet, der die angeforderte Ressource hostet. Beispielsweise kann der gegebene Server ein Überwachungsserver sein, der Interaktionen mit der digitalen Komponente überwacht. In diesem Beispiel untersucht der Überwachungsserver die Anforderung und in bestimmten Situationen den Inhalt der URL (Uniform Resource Locator), die verwendet wird, um den Überwachungsserver zu kontaktieren, um Informationen in Bezug auf die Interaktion mit der digitalen Komponente zu identifizieren, zu extrahieren und zu protokollieren (z. B. eine Kennung des Client-Geräts, bei dem die Interaktion aufgetreten ist, oder eine Kontokennung eines Benutzers, die die Interaktion ausgeführt hat).
  • Sobald der Überwachungsserver Informationen von der Anforderung erhalten hat, leitet der Überwachungsserver das Client-Gerät entlang eines Pfades zu dem Zielserver um, der die angeforderte Ressource hostet (z. B. unter Verwendung eines Umleitungsbefehls 301 oder 302, der den nächsten zu kontaktierenden Server spezifiziert). In einigen Situationen kann eine Umleitung, die von einem Überwachungsserver ausgegeben wird, zu einem Zwischenserver erfolgen, der sich von dem Zielserver unterscheidet. Beispielsweise kann in Situationen, in denen ein Anbieter der digitalen Komponente verschiedene unterschiedliche Überwachungsdienste verwendet, der Zwischenserver ein anderer Server sein, der Informationen über Interaktionen mit der digitalen Komponente erhalten muss, um einen anderen Überwachungsdienst bereitzustellen. Wenn das Client-Gerät zu diesem Zwischenserver umgeleitet wird, kann das Clientgerät zu einem anderen Zwischenserver umgeleitet werden und/oder einer Kette von sequenziellen Umleitungen zu verschiedenen Zwischenservern folgen, bevor es schließlich zu der Zielseite umgeleitet wird, auf der die ursprünglich durch die Interaktion mit der digitalen Komponente angeforderte Ressource gehostet wird.
  • Wie nachfolgend ausführlicher erläutert, kann die Anzahl der Umleitungen, denen ein Client-Gerät vor Erreichen des Zielservers folgen muss, reduziert werden, indem die Umleitungs-Verantwortlichkeiten auf ein gegebenes Servergerät ausgelagert werden. In einigen Implementierungen kann ein gegebener Server (z. B. der anfängliche Server, der von dem Client-Gerät in Reaktion auf die Interaktion mit der digitalen Komponente oder einem nachfolgenden Zwischenserver kontaktiert wird) die Umleitungskette unterbrechen, der das Client-Gerät folgt, indem er das Client-Gerät direkt zu dem Zielserver umleitet, anstatt das Client-Gerät zu einem Zwischenserver umzuleiten. Wenn der gegebene Server das Client-Gerät zu dem Zielserver umleitet, kann der angegebene Server dem Umleitungspfad folgen, der andernfalls von dem Client-Gerät verfolgt wurde, um sicherzustellen, dass jeder Zwischenserver in der Umleitungskette mit Informationen über die von dem Client-Gerät bereitgestellte Interaktion kontaktiert wird. Somit wird die von dem Client-Gerät angeforderte Ressource auf dem Client-Gerät in kürzerer Zeit präsentiert, als wenn der vollständigen Umleitungskette gefolgt worden wäre und die Zuverlässigkeit der erfolgreichen Zustellung der angeforderten Ressource an das Client-Gerät durch Reduzieren der Anzahl von Kommunikationsverbindungen erhöht worden wäre, die das Client-Gerät mit Zwischenservern herstellt.
  • Wir weisen darauf hin, dass die in diesem Dokument beschriebenen Techniken auch in Situationen implementiert werden können, in denen ein Benutzer verfügbare Anwendungen (z. B. in einem Online-Anwendungsspeicher oder einem Webbrowser) oder in anderen Umgebungen (z. B. auf Publisher-Webseiten) durchsucht. Der Kürze halber bezieht sich viel von der folgenden Beschreibung auf die Suchergebnisumgebung.
  • Wie in diesem Dokument verwendet, bezieht sich der Ausdruck „digitale Komponente“ auf eine diskrete Einheit von digitalem Inhalt oder digitalen Informationen (z. B. einen Videoclip, einen Audioclip, einen Multimediaclip, ein Bild, einen Text oder eine andere Inhaltseinheit). Eine digitale Komponente kann elektronisch in einem physischen Speichergerät als eine einzelne Datei oder in einer Sammlung von Dateien gespeichert werden, und digitale Komponenten können die Form von Videodateien, Audiodateien, Multimediadateien, Bilddateien oder Textdateien annehmen, und Werbeinformationen, wie z. B. eine Werbung, beinhalten, die eine Art von digitaler Komponente ist. Im Allgemeinen wird eine digitale Komponente durch einen einzelnen Anbieter oder eine bestimmte Quelle (z. B. einen Werbeanbieter, einen Publisher oder einen anderen Inhaltsanbieter) definiert (oder wird von ihm bereitgestellt), könnte aber eine Kombination von Inhalten aus mehreren Quellen sein. Digitale Komponenten aus mehreren verschiedenen Quellen können zu einem einzigen elektronischen Dokument (z. B. einer Sammlung verschiedener digitaler Komponenten) kombiniert werden, und Teile verschiedener digitaler Komponenten aus verschiedenen Quellen können zu einer einzigen digitalen Komponente mit aus Suchergebnissen extrahierten Informationen (oder andere Teile des Inhalts) kombiniert werden.
  • 1 zeigt ein Blockdiagramm einer exemplarischen Umgebung 100, in der digitale Komponenten zur Präsentation mit elektronischen Dokumenten verteilt sind. Die exemplarische Umgebung 100 beinhaltet ein Netzwerk 102, wie beispielsweise ein lokales Netzwerk (LAN), ein Großraumnetzwerk (WAN), das Internet oder eine Kombination derselben. Das Netzwerk 102 verbindet elektronische Dokumentenserver 104, Client-Geräte 106, Zwischenserver 108 und ein digitales Komponentenverteilungssystem (DCDS) 110 (auch als Komponentenverteilungssystem bezeichnet). Die exemplarische Umgebung 100 kann viele verschiedene elektronische Dokumentenserver 104, Client-Geräte 106 und Zwischenserver 108 beinhalten.
  • Ein Client-Gerät 106 ist ein elektronisches Gerät, das in der Lage ist, die Ressourcen über das Netzwerk 102 anzufordern und zu empfangen. Das exemplarische Client-Gerät 106 kann Personal-Computer, mobile Kommunikationsgeräte und andere Geräte beinhalten, die Daten über das Netzwerk 102 senden und empfangen können. Ein Client-Gerät 106 beinhaltet typischerweise eine Benutzeranwendung, wie z. B. einen Webbrowser, um das Senden und Empfangen von Daten über das Netzwerk 102 zu erleichtern, die durch das Client-Gerät 106 ausgeführten nativen Anwendungen können jedoch ebenfalls das Senden und Empfangen von Daten über das Netzwerk 102 erleichtern.
  • Ein elektronisches Dokument sind Daten, die einen Inhaltssatz auf einem Client-Gerät 106 darstellen. Beispiele für elektronische Dokumente sind Webseiten, Textverarbeitungsdokumente, PDF-Dokumente (Portable Document Format), Bilder, Videos, Suchergebnisseiten und Feed-Quellen. Native Anwendungen (z. B. „Apps“), wie z. B. Anwendungen, die auf mobilen, Tablet- oder Desktop-Computergeräten installiert sind, sind ebenfalls Beispiele für elektronische Dokumente. Elektronische Dokumente 105 („Electronic Docs“) können den Client-Geräten 106 durch elektronische Dokumentenserver 104 („Electronic Doc Server“) bereitgestellt werden. Beispielsweise können die elektronischen Dokumentenserver 104 Server enthalten, die Webseiten von Publishern hosten. In diesem Beispiel kann das Client-Gerät 106 eine Anforderung nach einer Ressource, wie z. B. einer gegebenen Publisher-Webseite, initiieren, und der elektronische Dokumentenserver 104, der die gegebene Publisher-Webseite hostet, kann auf die Anforderung antworten, indem er maschinenausführbare Anweisungen sendet, die die Präsentation der gegebenen Webseite auf dem Client-Gerät 106 initiiert.
  • In einem anderen Beispiel können die elektronischen Dokumentenserver 104 App-Server enthalten, von denen die Client-Geräte 106 Apps herunterladen können. In diesem Beispiel kann das Client-Gerät 106 eine Ressource anfordern, beispielsweise Dateien, die zum Installieren einer Anwendung erforderlich sind, die Dateien auf dem Client-Gerät 106 herunterladen und dann die heruntergeladene Anwendung lokal ausführen.
  • Die elektronischen Dokumente 105 können eine Vielzahl von Inhalten beinhalten. Beispielsweise kann ein elektronisches Dokument 105 einen statischen Inhalt (z. B. Text oder einen anderen spezifizierten Inhalt) beinhalten, der innerhalb des elektronischen Dokuments selbst liegt und/oder sich nicht im Laufe der Zeit ändert. Die elektronischen Dokumente 105 können auch dynamischen Inhalt beinhalten, der sich im Laufe der Zeit oder auf Anforderung ändern kann. Beispielsweise kann ein Publisher eines gegebenen elektronischen Dokuments 105 eine Datenquelle unterhalten, die verwendet wird, um Teile des elektronischen Dokuments 105 zu füllen. In diesem Beispiel kann das gegebene elektronische Dokument 105 ein oder mehrere Tags oder Scripts beinhalten, die bewirken, dass das Client-Gerät 106 Inhalt von der Datenquelle anfordert, wenn das gegebene elektronische Dokument 105 von einem Client-Gerät 106 verarbeitet (z. B. wiedergegeben oder ausgeführt) wird. Das Client-Gerät 106 integriert den von der Datenquelle erhaltenen Inhalt in das gegebene elektronische Dokument 105, um ein zusammengesetztes elektronisches Dokument zu erzeugen, das den von der Datenquelle erhaltenen Inhalt beinhaltet.
  • In manchen Situationen kann ein gegebenes elektronisches Dokument 105 ein oder mehrere digitale Komponenten-Tags oder digitale Komponentenscripts beinhalten, die auf das DCDS 110 verweisen. In diesen Situationen werden die digitalen Komponenten-Tags oder digitalen Komponenten-Scripts von dem Client-Gerät 106 ausgeführt, wenn das gegebene elektronische Dokument 105 von dem Client-Gerät 106 verarbeitet wird. Die Ausführung der digitalen Komponenten-Tags oder digitalen Komponenten-Scripts konfiguriert das Client-Gerät 106 zum Generieren einer Anforderung nach einer Ressource mit einer oder mehreren digitalen Komponenten 112 (als „Komponentenanforderung“ bezeichnet), die über das Netzwerk 102 an das DCDS 110 übertragen wird. Beispielsweise kann ein digitales Komponentenkennzeichen oder ein digitales Komponenten-Script das Client-Gerät 106 in die Lage versetzen, eine paketierte Datenanforderung zu erzeugen, die einen Header und Nutzlastdaten beinhaltet. Die Komponentenanforderung 112 kann Ereignisdaten beinhalten, die Merkmale, wie z. B. einen Namen (oder Netzwerkstandort) von einem Server, von dem die digitale Komponente angefordert wird, einen Namen (oder Netzwerkstandort) des anfordernden Geräts (z. B. des Client-Geräts 106), und/oder Informationen beinhalten, die das DCDS 110 verwenden kann, um eine oder mehrere digitale Komponenten auszuwählen, die in Reaktion auf die Anforderung bereitgestellt wird/werden. Die Komponentenanforderung 112 wird durch das Client-Gerät 106 über das Netzwerk 102 (z. B. ein Telekommunikationsnetzwerk) zu einem Server des DCDS 110 übertragen.
  • Die Komponentenanforderung 112 kann Ereignisdaten beinhalten, die andere Ereignismerkmale spezifizieren, wie z. B. das angeforderte elektronische Dokument und Eigenschaften von Standorten des elektronischen Dokuments, an denen digitale Komponenten präsentiert werden können. Beispielsweise können Ereignisdaten, die eine Referenz (z. B. URL) zu einem elektronischen Dokument (z. B. einer Webseite) spezifizieren, in dem (bzw. der) die digitale Komponente präsentiert wird, verfügbare Standorte der elektronischen Dokumente, die zum Präsentieren digitaler Komponenten verfügbar sind, Größen der verfügbaren Standorte angeben und/oder Medientypen, die für die Präsentation an den Standorten geeignet sind, können dem DCDS 110 bereitgestellt werden. In ähnlicher Weise können Ereignisdaten, die dem elektronischen Dokument zugeordnete Stichwörter („Dokumentenschlüsselwörter“) oder Entitäten (z. B. Personen, Standorte oder Dinge), auf die das elektronische Dokument verweist, in der Komponentenanforderung 112 enthalten sein (z. B. als Nutzlastdaten) und dem DCDS 110 bereitgestellt werden, um die Identifizierung von digitalen Komponenten zu erleichtern, die für die Präsentation mit dem elektronischen Dokument geeignet sind. Die Ereignisdaten können zudem eine Suchanforderung beinhalten, die von dem Client-Gerät 106 zum Erhalten einer Suchergebnisseite und/oder von Daten, die Suchergebnisse und/oder textlichen, hörbaren oder anderen visuellen Inhalt, der in den Suchergebnissen enthalten ist, erhalten werden.
  • Komponentenanforderungen 112 können zudem Daten beinhalten, die sich auf andere Informationen beziehen, wie z. B. Informationen, die ein Benutzer des Client-Geräts bereitgestellt hat, geografische Informationen, die einen Status oder eine Region angeben, wovon die Komponentenanforderung gesendet wurde, oder andere Informationen, die einen Kontext für die Umgebung bereitstellen, in dem die digitale Komponente angezeigt wird (z. B. eine Tageszeit der Komponentenanforderung, einen Wochentag der Komponentenanforderung, einen Gerätetyp, auf dem die digitale Komponente angezeigt wird, z. B. ein mobiles Gerät oder ein Tablet-Gerät). Komponentenanforderungen 112 können beispielsweise über ein paketiertes Netzwerk übertragen werden und die Komponentenanforderungen 112 selbst können als paketierte Daten mit Header- und Nutzlastdaten formatiert werden. Der Header kann ein Ziel des Pakets spezifizieren, während die Nutzlastdaten beliebige der vorstehend beschriebenen Informationen beinhalten können.
  • Das DCDS 110 wählt digitale Komponenten aus, denen das gegebene elektronische Dokument in Reaktion auf das Empfangen der Komponentenanforderung 112 und/oder die Verwendung von Informationen, die in der Komponentenanforderung 112 enthalten sind, präsentiert wird. In einigen Implementierungen wird eine digitale Komponente (unter Verwendung der hierin beschriebenen Techniken) in weniger als einer Sekunde ausgewählt, um Fehler zu vermeiden, die durch eine verzögerte Auswahl der digitalen Komponente verursacht werden könnten. Beispielsweise können Verzögerungen bei der Bereitstellung von digitalen Komponenten in Reaktion auf eine Komponentenanforderung 112 zu Seitenladefehlern in dem Client-Gerät 106 führen oder dazu führen, dass Abschnitte des elektronischen Dokuments unbelegt bleiben, selbst nachdem andere Abschnitte des elektronischen Dokuments auf dem Client-Gerät 106 präsentiert wurden. Da die Verzögerung bei der Bereitstellung der digitalen Komponente für das Client-Gerät 106 zunimmt, ist es wahrscheinlicher, dass das elektronische Dokument nicht länger auf dem Client-Gerät 106 präsentiert wird, wenn die digitale Komponente für das Client-Gerät 106 bereitgestellt wird, was sich negativ auf die Erfahrung eines Benutzers mit dem elektronischen Dokument auswirkt. Des Weiteren können Verzögerungen bei der Bereitstellung der digitalen Komponente zu einer fehlgeschlagenen Ausgabe der digitalen Komponente führen, beispielsweise wenn das elektronische Dokument 105 nicht mehr auf dem Client-Gerät 106 präsentiert wird, wenn die digitale Komponente bereitgestellt wird.
  • In einigen Implementierungen ist das DCDS 110 in einem verteilten Computersystem implementiert, das z. B. eine Umleitungsreduktionsvorrichtung 111 (z. B. einen Server, der Computerhardware und -code beinhaltet) und/oder einen Satz von mehreren Computergeräten beinhaltet, die miteinander verbunden sind, und digitale Komponenten in Reaktion auf Anforderungen 112 identifizieren und verteilen. Der Satz von mehreren Computergeräten wirkt zusammen, um einen Satz von digitalen Komponenten zu identifizieren, die geeignet sind, in dem elektronischen Dokument aus einem Korpus von Millionen von verfügbaren digitalen Komponenten dargestellt zu werden. Die Millionen von verfügbaren digitalen Komponenten können z. B. in einer digitalen Komponenten-Datenbank 116 indiziert werden. Jeder digitale Komponentenindexeintrag kann auf die entsprechende digitale Komponente verweisen und/oder Verteilungsparameter beinhalten, die zu der Verteilung/Übertragung der entsprechenden digitalen Komponente beitragen (z. B. konditionieren oder begrenzen). Beispielsweise können die Verteilungsparameter zur Übertragung einer digitalen Komponente beitragen, indem gefordert wird, dass eine Komponentenanforderung mindestens ein Kriterium beinhaltet, das einen der Verteilungsparameter von (z. B. entweder genau oder mit einem vorgegebenen Spezifikationsniveau) der digitalen Komponente anpasst.
  • Die Umleitungsreduktionsvorrichtung (RRA) 111 des DCDS 110 kann ein Überwachungsserver sein, der mit verschiedenen Zwischenservern, wie z. B. den Zwischenservern 108, kommuniziert. Die RRA 111 kann das Client-Gerät 106 zu Ressourcen leiten, die von dem Client-Gerät 106 angefordert, und auf verschiedenen Servern, wie z. B. den elektronischen Dokumentenservern 105, gehostet werden. Die RRA 111 beinhaltet eine Front-End-Schnittstelle, über die ein Benutzer eine Eingabe bereitstellen kann. Beispielsweise kann die Front-End-Schnittstelle eine Benutzeroberfläche beinhalten, die Benutzeroberflächenelemente wie etwa Schaltflächen und Texteingabefelder beinhaltet. Die Front-End-Schnittstelle beinhaltet eine Kommunikationsschnittstelle, die die Kommunikation über ein oder mehrere Kommunikationsnetzwerke, wie z. B. das Netzwerk 102, ermöglicht. Die RRA 111 kann mit den Zwischenservern 108 über die Kommunikationsschnittstelle kommunizieren. Beispielsweise kann die RRA 111 mit den Zwischenservern 108 über einen Proxy-Server unter Verwendung der Kommunikationsschnittstelle kommunizieren, um z. B. Daten wie Interaktionsüberwachungsdaten für das Client-Gerät 106 bereitzustellen, wenn das Client-Gerät 106 eine digitale Komponente anfordert.
  • Die Identifikation der in Frage kommenden digitalen Komponente kann in mehrere Aufgaben aufgeteilt werden, die dann zwischen Computergeräten innerhalb eines Satzes von mehreren Computergeräten zugewiesen werden. Beispielsweise können unterschiedliche Computergeräte in dem Satz von mehreren Computergeräten jeweils einen unterschiedlichen Abschnitt der digitalen Komponentendatenbank 116 analysieren, um verschiedene digitale Komponenten mit Verteilungsparametern zu identifizieren, die mit Informationen übereinstimmen, die in der Komponentenanforderung 112 enthalten sind. Die verschiedenen Computergeräte in dem Satz von mehreren Computergeräten können Berichtsdaten 118 verwenden, einschließlich Benutzerinteraktionsdaten mit bestimmten digitalen Komponenten, die in der digitalen Komponentendatenbank 116 gespeichert sind. In einigen Implementierungen kann jedes gegebene Computergerät in dem Satz von mehreren Computergeräten eine andere Datendimension (oder Menge von Dimensionen) analysieren und Ergebnisse der Analyse an das DCDS 110 zurückgeben (z. B. übertragen). Beispielsweise können die Ergebnisse 118a-118c, die von jedem der Computergeräte in dem Satz 114 bereitgestellt werden, eine Teilmenge digitaler Komponenten identifizieren, die in Reaktion auf die Komponentenanforderung und/oder eine Teilmenge der digitalen Komponenten für eine Verteilung geeignet sind, die bestimmte Verteilungsparameter aufweisen. Die Identifizierung der Teilmenge von digitalen Komponenten kann beispielsweise beinhalten, dass die Ereignisdaten mit den Verteilungsparametern verglichen werden, und die Teilmenge von digitalen Komponenten identifiziert wird, die Verteilungsparameter aufweisen, die zumindest einigen Merkmalen der Ereignisdaten entsprechen.
  • Das DCDS 110 aggregiert die von dem Satz von mehreren Computergeräten empfangenen Ergebnisse und verwendet Informationen, die mit den aggregierten Ergebnissen in Zusammenhang stehen, um eine oder mehrere digitale Komponenten auszuwählen, die in Reaktion auf die Anforderung 112 bereitgestellt werden. Beispielsweise kann das DCDS 110, wie nachfolgend erläutert, einen Satz von gewinnenden digitalen Komponenten (eine oder mehrere digitale Komponenten) basierend auf dem Ergebnis eines oder mehrerer Komponentenbewertungsprozesse auswählen. Das DCDS 110 kann wiederum über das Netzwerk 102 Antwortdaten 120 (z. B. digitale Daten, die eine Antwort darstellen) generieren und übertragen, die es dem Client-Gerät 106 ermöglichen, den Satz von gewinnenden digitalen Komponenten in das gegebene elektronische Dokument zu integrieren, sodass der Satz von gewinnenden digitalen Komponenten und der Inhalt des elektronischen Dokuments zusammen auf einer Anzeige des Client-Geräts 106 präsentiert werden.
  • In einigen Implementierungen führt das Client-Gerät 106 in den Antwortdaten 120 enthaltene Anweisungen aus, die das Client-Gerät 106 konfigurieren und aktivieren, um den Satz von gewinnenden digitalen Komponenten von einem oder mehreren digitalen Komponentenservern zu erhalten. Beispielsweise können die Anweisungen in den Antwortdaten 120 einen Netzwerkstandort (z. B. eine URL (Uniform Resource Locator)) und ein Script beinhalten, das das Client-Gerät 106 veranlasst, eine Serveranforderung (SR) 121 an den Zwischenserver 108 zu übertragen, um eine bestimmte digitale Komponente von Zwischenserver 108 zu erhalten. In Reaktion auf die Anforderung identifiziert der Zwischenserver 108 die gegebene gewinnende digitale Komponente, die in der Serveranfrage 121 spezifiziert ist (z. B. innerhalb einer Datenbank, die mehrere digitale Komponenten speichert) und überträgt digitale Komponentendaten (DC-Daten) 122 zu dem Client-Gerät 106, das die gegebene gewinnende digitale Komponente in dem elektronischen Dokument in dem Client-Gerät 106 präsentiert.
  • In einigen Implementierungen, wenn das Client-Gerät 106 mit der gegebenen gewinnenden digitalen Komponente interagiert, überträgt das Client-Gerät 106 eine Anforderung nach einer Ressource an das DCDS 110. In einigen Implementierungen, kann das Client-Gerät 106 die gegebene gewinnende digitale Komponente auswählen, die ein Link zum Herunterladen einer mobilen Anwendung ist. Beispielsweise überträgt das Client-Gerät 106 nach dem Auswählen der Verbindung eine Anforderung zum Zugreifen auf Dateien, die zum Herunterladen der mobilen Anwendung in das DCDS 110 erforderlich sind. Das DCDS 110 bestimmt basierend auf den Daten in der Anforderung, wohin das Client-Gerät 106 zu leiten ist.
  • In einigen Beispielen leitet das DCDS 110 das Client-Gerät 106 zu einem oder mehreren Zwischenservern, um den Zwischenservern Interaktionsdaten bereitzustellen, die die Interaktion mit der gegebenen gewinnenden digitalen Komponente auf dem Client-Gerät 106 anzeigen. Diese Zwischenserver können die Zwischenserver 108 beinhalten. In anderen Beispielen, die nachfolgend ausführlicher beschrieben werden, leitet das DCDS 110 das Client-Gerät 106 nicht zu den dazwischen liegenden Servern um, und leitet stattdessen das Client-Gerät 106 direkt zu dem angeforderten Zielserver, der die angeforderte Ressource hostet.
  • Um das Suchen von elektronischen Dokumenten zu erleichtern, kann die Umgebung 100 ein Suchsystem 150 beinhalten, das die elektronischen Dokumente durch Crawlen und Indexieren der elektronischen Dokumente identifiziert (z. B. indiziert basierend auf dem gecrawlten Inhalt der elektronischen Dokumente). Daten über die elektronischen Dokumente können basierend auf dem elektronischen Dokument indiziert werden, mit dem die Daten verknüpft sind. Die indexierten und optional zwischengespeicherten Kopien der elektronischen Dokumente werden in einem Suchindex 152 (z. B. Hardware-Speichergerät(en)) gespeichert. Daten, die mit einem elektronischen Dokument verknüpft sind, sind Daten, die Inhalt darstellen, der in dem elektronischen Dokument und/oder Metadaten für das elektronische Dokument enthalten ist.
  • Client-Geräte 106 können Suchanforderungen über das Netzwerk 102 zu dem Suchsystem 150 übertragen. In Reaktion darauf greift das Suchsystem 150 auf den Suchindex 152 zu, um elektronische Dokumente zu identifizieren, die für die Suchanforderung relevant sind. Das Suchsystem 150 identifiziert die elektronischen Dokumente in Form von Suchergebnissen und gibt die Suchergebnisse an das Client-Gerät 106 in einer Suchergebnisseite aus.
  • Bei einem Suchergebnis handelt es sich um vom Suchsystem 150 generierte Daten, die ein elektronisches Dokument identifizieren, das auf eine bestimmte Suchanfrage anspricht (z. B. relevant ist) und eine aktive Verbindung (z. B. Hypertext-Link) beinhaltet, die ein Client-Gerät dazu veranlasst, Daten von einem spezifizierten Netzwerkstandort (z. B. URL) in Reaktion auf eine Benutzerinteraktion mit dem Suchergebnis anzufordern. Ein Beispielsuchergebnis kann einen Webseitentitel, einen Textausschnitt oder einen Teil eines Bildes, das von der Webseite extrahiert wird, sowie die URL der Webseite, beinhalten. Ein anderes exemplarisches Suchergebnis kann einen Titel einer herunterladbaren Anwendung, einen Textausschnitt, der die herunterladbare Anwendung beschreibt, ein Bild, das eine Benutzeroberfläche der herunterladbaren Anwendung darstellt, und/oder eine URL zu einem Standort beinhalten, von dem die Anwendung auf das Client-Gerät 106 heruntergeladen werden kann.
  • In einigen Situationen kann das Suchsystem 150 Teil eines App Stores (oder eines Online-Portals) sein oder damit interagieren, von dem aus Anwendungen heruntergeladen und auf einem Client-Gerät 106 installiert werden können, um Informationen über herunterladbare Anwendungen zu präsentieren, die für eine gesendete Suchanforderung relevant sind. Wie andere elektronische Dokumente können Suchergebnisseiten einen oder mehrere digitale Komponentensteckplätze beinhalten, in denen digitale Komponenten (z. B. Videoclips, Audioclips, Bilder oder andere digitale Komponenten, die als Werbung formatiert werden können) dargestellt werden können.
  • In einigen Implementierungen überwachen mehrere Server, wie z. B. die Zwischenserver 108, Benutzerinteraktionen mit einer bestimmten digitalen Komponente, bevor ein Benutzer zu einem elektronischen Dokument 105 geleitet wird. Das DCDS 110 ermöglicht einem Client-Gerät den Zugriff auf ein elektronisches Dokument 105 mit weniger Umleitungen als bei bestehenden Verfahren, indem ein Client-Gerät 106 direkt auf das elektronische Dokument 105 zugreifen kann, ohne das Client-Gerät 106 auf andere Server, wie den Zwischenserver 108, umzuleiten. Anstatt das Client-Gerät 106 zu den Zwischenservern 108 umzuleiten, empfängt das DCDS 110 die Anforderung 112 des Benutzers und überträgt die Antwort 120 mit einer Referenz direkt zu dem elektronischen Dokument 105, das von den elektronischen Dokumentenservern 104 bereitgestellt wird. Wenn die Zwischenserver 108 Benutzerinteraktionen mit der bestimmten digitalen Komponente über Umleitungen der Client-Geräte zu den Zwischenservern 108 überwachen, wird die Umleitungsreduktionsvorrichtung 111 des DCDS 110 (oder eine andere Komponente des DCDS 110) das Client-Gerät 106 direkt zu dem Zwischenserver umleiten, der die angeforderte Ressource hostet, und den Umleitungen folgen, denen das Client-Gerät 106 ansonsten gefolgt wäre, um den Zwischenservern 108 Berichtsdaten bereitzustellen. Die Berichtsdaten können, wie zuvor beschrieben, Benutzerinteraktionsdaten mit der bestimmten digitalen Komponente zusätzlich zu Ereignisdaten beinhalten, die sich auf andere Informationen beziehen.
  • 2A zeigt einen exemplarischen Datenfluss 200, der zeigt, wie ein Client-Gerät über eine Umleitungskette zu einer angeforderten Ressource geleitet wird. Vorgänge des Datenflusses 200 werden durchgeführt, indem das Client-Gerät 106 mehrere Server, einschließlich eines Überwachungsservers 210, eines Zwischenservers A 220, eines Zwischenservers B 230 und eines Zielservers 240, kontaktiert. In einigen Implementierungen werden Stufen des Flusses 200 innerhalb einer Netzwerkumgebung, wie z. B. der Umgebung 100, durchgeführt.
  • In einigen Beispielen ist das Client-Gerät 106 ein mobiles Gerät, beispielsweise ein Mobiltelefon, ein Smartphone oder ein Tablet, und kommuniziert über ein drahtloses Netzwerk. Die Server 210, 220, 230 und 240 können über ein drahtgebundenes Netzwerk kommunizieren, das von dem drahtlosen Netzwerk getrennt ist, über das das Client-Gerät 106 kommuniziert. Beispielsweise kann das Client-Gerät 106 ein Smartphone sein, das über ein drahtloses Mobilfunknetz kommuniziert, während die Server 210, 220, 230 und 240 Remote-Server sind, die über verdrahtete Netzwerke kommunizieren.
  • Der Überwachungsserver 210 empfängt Überwachungsdaten von dem Client-Gerät 106 und bestimmt ein Umleitungsziel für das Client-Gerät 106 basierend auf den Überwachungsdaten. Beispielsweise kann der Überwachungsserver 210 bestimmen, dass das Client-Gerät 106 mit einer digitalen Komponente interagiert hat, die durch einen digitalen Komponentenanbieter über einen digitalen Komponentenserver bereitgestellt wird. Der Anbieter von digitalen Komponenten kann Interaktionsüberwachungsdaten von der Interaktion des Client-Geräts 106 mit der digitalen Komponente für seine eigenen Analysen anfordern und kann anfordern, dass das Client-Gerät 106 zu Zwischenservern (z. B. seinen Servern oder einem Drittserver umgeleitet wird, den der Anbieter digitaler Komponenten verwendet).
  • Server A 220 überwacht Interaktionen zwischen Client-Geräten und einem bestimmten elektronischen Dokument. Server A 220 empfängt Interaktionsdaten von dem Client-Gerät 106 und verwendet die Interaktionsdaten, um Ressourcenanbietern, wie z. B. Anbietern digitaler Komponenten, Analysen bereitzustellen. In einigen Implementierungen ist Server A 220 ein Drittanbieterserver, der von einer Partei unterhalten wird, die von der einen oder den mehreren Parteien getrennt ist, die den Überwachungsserver 210 und den Zielserver 240 unterhalten. Beispielsweise kann der Server A 220 von einer Analysefirma unterhalten werden, der Überwachungsserver 210 kann von einer Suchmaschinenfirma unterhalten werden und der Zielserver 240 kann von einem Anbieter digitaler Komponenten unterhalten werden. Ein Anbieter digitaler Komponenten, der den Server A 220 verwendet, kann anfordern, dass ein Client-Gerät 106, die mit einer von dem Anbieter digitaler Komponenten bereitgestellten digitalen Komponente interagiert, zu dem Server A 220 geleitet wird, bevor es zu dem Zielserver 240 umgeleitet wird, der die angeforderte Ressource bereitstellt, sodass die Interaktion mit der digitalen Komponente von Server A protokolliert wird.
  • Server B 230 kann, ähnlich wie Server A 220, ein Server eines Drittanbieters sein. Beispielsweise kann Server B 230 auch ein Analyseserver eines Drittanbieters sein, der von einem Anbieter digitaler Komponenten verwendet wird. In einigen Beispielen kann ein Anbieter digitaler Komponenten einen oder mehrere von Server A 220 und B 230 für Analysezwecke verwenden, die von denjenigen getrennt sind, die durch den Überwachungsserver 210 bereitgestellt werden. Beispielsweise kann ein bestimmter Anbieter digitaler Komponenten sowohl Server A 220 als auch Server B 230 für die Analyse verwenden und anfordern, dass das Client-Gerät 106 sowohl auf Server A 220 als auch auf Server B 230 umgeleitet wird, um Interaktionsüberwachungsdaten mit einer bestimmten digitalen Komponente bereitzustellen, die durch den bestimmten Anbieter digitaler Komponenten bereitgestellt wird. Server B 230 und kann von einer anderen Partei als derjenigen, die Server A 220 verwaltet, verwaltet werden. Beispielsweise kann Server B 230 ein Server eines Drittanbieters sein, der sich von Server A 220 unterscheidet, und Server B 230 kann von einem Anbieter digitaler Komponenten verwendet werden.
  • Der Zielserver 240 hostet Ressourcen und stellt eine von einem Client-Gerät 106 angeforderte Ressource bereit, wenn das Client-Gerät 106 die Ressource von dem Zielserver 240 (z. B. durch eine Umleitung) anfordert. Wenn z. B. das Client-Gerät 106 Dateien anfordert, die für die Installation einer Anwendung erforderlich sind, kann der Zielserver 240 die angeforderten Dateien bereitstellen, wenn das Client-Gerät 106 (z. B. durch eine von Server B 230 ausgegebene Umleitungsanweisung) zu dem Zielserver 240 geleitet wird. In einem anderen Beispiel, wenn das Client-Gerät 106 ein Sicherheitstoken für den Zugriff auf eine bestimmte Webseite anfordert, kann der Zielserver 240 das Sicherheitstoken bereitstellen, wenn das Client-Gerät 106 zu dem Zielserver 240 geleitet wird.
  • Der Fluss 200 beginnt mit Stufe (1), in der der Überwachungsserver 210 eine URL-Anforderung 202 von dem Client-Gerät 106 empfängt. Die URL-Anforderung 202 wird von dem Client-Gerät 106 zu dem Überwachungsserver 210 übertragen, wenn das Client-Gerät mit einer digitalen Komponente interagiert. Wenn beispielsweise ein Benutzer des Client-Geräts 106 auf einen Link klickt, um einen neuen Webbrowser herunterzuladen, veranlasst der Link das Client-Gerät 106, eine URL-Anforderung 202 an den Überwachungsserver 210 zu übertragen. Die URL-Anforderung 202 beinhaltet Interaktionsüberwachungsdaten von dem Client-Gerät 106. Beispielsweise kann die URL-Anforderung 202 Überwachungsdaten, wie z. B. eine Angabe der Interaktion, die digitale Komponente, mit der das Client-Gerät 106 interagierte, und eine Kennung, der das Client-Gerät 106 eindeutig identifiziert, beinhalten. In einigen Implementierungen beinhaltet die URL-Anforderung 202 eine Angabe des Anbieters der digitalen Komponente und den Standort des Zielservers 240, der die angeforderte Ressource hostet.
  • Die URL-Anforderung 202 kann einen oder mehrere Zwischenserver identifizieren, zu denen der Überwachungsserver 210 das Client-Gerät 106 umleiten soll, bevor es zu dem Zielserver 240 und der angeforderten Ressource geleitet wird. Alternativ kann der Überwachungsserver 210 die Informationen speichern, die die Identifizierung eines oder mehrerer Zwischenserver, die kontaktiert werden sollen, ermöglichen. Beispielsweise kann der Anbieter digitaler Komponenten andere Server von Drittanbietern als der Überwachungsserver 210 verwenden, um unabhängige Analysen von Interaktionsdaten mit digitalen Komponenten auszuführen, die von dem Anbieter digitaler Komponenten bereitgestellt werden. In diesem speziellen Beispiel hat der Anbieter von digitalen Komponenten angefordert, dass das Client-Gerät 106 nach dem Kontaktieren des Überwachungsservers 210 und vor dem Leiten zu dem Zielserver 240 zu dem Server A 220 geleitet wird.
  • Der Fluss 200 setzt sich mit Stufe (2) fort, in der der Überwachungsserver 210 Umleitungsdaten 212 zu dem Client-Gerät 106 überträgt. Der Überwachungsserver 210 erkennt Umleitungsinformationen innerhalb der URL-Anforderung 202 (oder von einem Datenspeicher) und stellt Umleitungsdaten 212 für das Client-Gerät 106 bereit, wodurch das Client-Gerät 106 zu einem Zwischenserver zwischen dem Überwachungsserver 210 und dem Zielserver 240 umgeleitet wird. In einigen Beispielen sind die Umleitungsdaten 212 ein Beispiel der Antwort 120. Die Umleitungsdaten 212 beinhalten die Angabe eines bestimmten Servers, zu dem das Client-Gerät 106 geleitet wird, und können eine Umleitung 301 oder einen Umleitungs- 302 Befehl beinhalten. In diesem bestimmten Beispiel leiten die Umleitungsdaten 212 das Client-Gerät 106 zu Server A 220. Jeder Zwischenserver speichert Informationen, die einen nächsten Server identifizieren, zu dem ein Gerät umgeleitet werden soll, wenn das Gerät den Zwischenserver kontaktiert.
  • Der Fluss 200 setzt sich mit Stufe (3) fort, in der das Client-Gerät 106 Berichtsdaten 214 an Server A 220 überträgt. Die Berichtsdaten 214 beinhalten Interaktionsüberwachungsdaten, die durch Server A 220 verwendet werden, um die Interaktionen der Client-Geräte mit der jeweiligen digitalen Komponente zu überwachen. In einigen Implementierungen beinhalten die Interaktionsüberwachungsdaten einen Abschnitt des Codes, mit dem Interaktionen überwacht werden. Die Interaktionsüberwachungsdaten können andere Daten beinhalten, wie z. B. eine Kennung, der das Client-Gerät 106 eindeutig identifiziert, eine Kennung, der die digitale Komponente, mit der das Client-Gerät 106 interagiert, eindeutig identifiziert, eine Serverkennung und/oder Standortinformationen des Client-Geräts 106.
  • Der Fluss 200 setzt sich mit Stufe (4) fort, in der Server A 220 Umleitungsdaten 222 an das Client-Gerät 106 überträgt. Die Umleitungsdaten 222 geben den nächsten Zwischenserver an, zu dem das Client-Gerät 106 geleitet wird, bevor es zu dem Zielserver 240 geleitet wird. Beispielsweise kann der Überwachungsserver 210 erkennen, dass der erste Zwischenserver, zu dem das Client-Gerät 106 geleitet wird, der Server A 220 ist, und die Umleitungsdaten 212 an das Client-Gerät 106 übertragen. Server A 220 greift auf Daten zu, die den nächsten Zwischenserver anzeigen, sowie auf Daten, die von dem nächsten Zwischenserver angefordert werden. Server A 220 kann z. B. auf Daten zugreifen, die eine Adresse des Servers B 230 und die von Server 230 B angeforderten speziellen Interaktionsüberwachungsdaten angeben. Server A 220 extrahiert die von Server 230 B angeforderten speziellen Interaktionsüberwachungsdaten aus den Berichtsdaten 214 oder der URL-Anforderung und generiert die Umleitungsdaten 222 unter Verwendung der speziellen Interaktionsüberwachungsdaten und der Adresse von Server B 230. Server A 220 überträgt die Umleitungsdaten 222 dann zu dem Client-Gerät 106. In einigen Beispielen kann Server A 220 die Umleitungsdaten 212 ändern, um anzuzeigen, dass das Client-Gerät 106 den ersten Zwischenserver erreicht hat, um die Umleitungsdaten 222 zu generieren.
  • Der Fluss 200 setzt sich mit Stufe (5) fort, in der das Client-Gerät 106 die Berichtsdaten 224 an Server A 230 überträgt. Das Client-Gerät 106 wird durch die Umleitungsdaten 222 zu dem Server B 220 geleitet, und wird angewiesen, die Berichtsdaten 224 für den Server B 230 bereitzustellen. Die Berichtsdaten 224 beinhalten Daten, die durch Server B 230 angefordert werden, wie z. B. die zuvor beschriebenen Interaktionsüberwachungsdaten. In einigen Beispielen generiert Server A 220 die Berichtsdaten 224 durch Modifikation der Berichtsdaten 214. Beispielsweise kann Server A 220 in den Berichtsdaten 224 angeben, dass die Daten durch Server A 220 empfangen wurden.
  • Der Fluss 200 setzt sich mit Stufe (6) fort, in der Server A 230 Umleitungsdaten 232 zu dem Client-Gerät 106 überträgt. Server B 230 bestimmt, dass alle Zwischenserver, zu denen das Client-Gerät 106 geleitet werden sollte, erreicht sind. In einigen Beispielen greift Server B 230 auf die Berichtsdaten 224 zu, um zu bestimmen, dass das Client-Gerät alle Zwischenserver erreicht hat. Server B 230 stellt dann die Umleitung der Daten 232 zu dem Client-Gerät 106 bereit, um das Client-Gerät 106 zu dem Zielserver 240 zu leiten.
  • Der Fluss 200 setzt sich mit Stufe (7) fort, in der das Client-Gerät 106 zu dem Zielserver 240 geleitet wird. Die Umleitungsdaten 232 beinhalten Standortdaten für den Zielserver 240. Das Client-Gerät 106 empfängt die Umleitungsdaten 232 und wird zu dem Zielserver 240 geleitet, um auf die angeforderte Ressource zuzugreifen. Das Client-Gerät 106 kann die angeforderte Ressource von dem Zielserver 240 herunterladen.
  • In einigen Implementierungen können deshalb mehr oder weniger Zwischenserver vorhanden sein. Es gibt mindestens einen Zwischenserver zwischen dem Zeitpunkt, an dem das Client-Gerät 106 eine Ressource anfordert, und dem Zeitpunkt, an dem das Client-Gerät 106 zu dem Zielserver 240 geleitet wird, um auf die Ressource zuzugreifen.
  • Wenn ein Client-Gerät nach dem Datenfluss 200 zu einer von dem Client-Gerät angeforderten Ressource geleitet wird, können unbeabsichtigte Prozesse und die damit verbundene Latenz oder Fehler auftreten. So kann z. B. ein separates Webbrowser-Fenster oder eine Anwendung geöffnet werden, die für den Zugriff auf die Ressource überflüssig ist. In einigen Beispielen kann ein Zwischenserver das Client-Gerät zu einer falschen Ressource oder einem falschen Standort umleiten. Beispielsweise kann ein Zwischenserver eines Drittanbieters das Client-Gerät dazu zwingen, einen Webbrowser zu einer Einstiegsseite für eine bestimmte mobile App zu öffnen, die von dem Client-Gerät zur Installation angefordert wird, anstatt einen App Store zu öffnen, um mit dem Herunterladen der für die Installation der App erforderlichen Dateien zu beginnen.
  • Diese zusätzlichen Prozesse erhöhen die Latenzzeit zwischen dem Zeitpunkt, an dem eine Ressource angefordert wird, und dem Zeitpunkt, an dem das Client-Gerät zu der Ressource geleitet wird. So kann z. B. für jede Umleitung, der das Client-Gerät ausgesetzt ist, eine Erhöhung der Latenzzeit auftreten, und mit zunehmender Anzahl von Zwischenservern, zu denen das Client-Gerät geleitet wird, erhöht sich die Wartezeit für den Benutzer des Client-Geräts. Zusätzlich gibt es Potenzial für eine abgebrochene Verbindung bei jeder Umleitung. Dieses Potenzial ist besonders ausgeprägt bei drahtlosen Netzwerken, wie z. B. Mobil-/Mobilfunknetzen, die unzuverlässig sein können.
  • 2B zeigt ein Beispiel für den Datenfluss 250, um ein Client-Gerät mit weniger Umleitungen zu einer angeforderten Ressource zu leiten, als der Datenfluss 200 erfordert. Der Fluss 250 reduziert die Anzahl der Umleitungen, denen das Client-Gerät ausgesetzt ist, bevor es zu der von dem Client-Gerät angeforderten Ressource geleitet wird, wodurch die Latenzzeit und das Potenzial für Unterbrechungen in der Richtungskette, der das Client-Gerät folgt, reduziert wird. Der Fluss 250 besteht aus einem Überwachungsserver 260, einem Server A 270, einem Server B 280 und einem Zielserver 290. Der Überwachungsserver 260 ist, wie zuvor in Bezug auf 1 beschrieben, ein Beispiel für die Umleitungsreduktionsvorrichtung 111 und beinhaltet Hardware und/oder einen Code, der es dem Überwachungsserver 260 ermöglicht, die Anzahl der Umleitungen, denen ein Client-Gerät ausgesetzt ist, zu reduzieren. In einigen Beispielen ist der Überwachungsserver 260 ein Überwachungsserver, der die Umleitungsreduktionsvorrichtung 111 beinhaltet und in der Lage ist, die Anzahl der Umleitungen zu reduzieren, denen ein Client-Gerät ausgesetzt ist, indem er die Umleitungsreduktionsvorrichtung 111 verwendet.
  • In einigen Beispielen ist das Client-Gerät 106 ein mobiles Gerät, beispielsweise ein Mobiltelefon, ein Smartphone oder ein Tablet, und kommuniziert über ein drahtloses Netzwerk. In einigen Beispielen können die Server 260, 270, 280 und 290 über ein drahtgebundenes Netzwerk kommunizieren, das von dem drahtlosen Netzwerk getrennt ist, über das das Client-Gerät 106 kommuniziert. Beispielsweise kann das Client-Gerät 106 ein Smartphone sein, das über ein drahtloses Mobilfunknetz kommuniziert, während die Server 260, 270, 280 und 290 Remote-Server sind, die über verdrahtete Netzwerke kommunizieren.
  • Der Fluss 250 beginnt mit Stufe (1), in der der Überwachungsserver 260 eine URL-Anforderung 252 und Interaktionsdaten 254 empfängt. Die URL-Anforderung 252 kann ähnlich der URL-Anforderung 202 sein. Der Überwachungsserver 260 empfängt die URL-Anforderung 252 und die Interaktionsdaten 254, und generiert eine strukturierte Antwort, die an das Client-Gerät 106 übertragen wird.
  • Die URL-Anforderung 252 beinhaltet Daten, die den Standort des Zielservers 290 angeben, den der Überwachungsserver 260 verwendet, um die zu dem Client-Gerät 106 übertragene Antwort zu generieren. Beispielsweise kann die URL-Anforderung 252 einen Header oder einen String beinhalten, der bestimmte Eigenschaften der URL-Anforderung 252 angibt. Der Header kann ein bestimmtes Bit beinhalten, das angibt, ob es Zwischenserver gibt, zu denen das Client-Gerät 106 geleitet werden soll, um Interaktionsdaten, wie z. B. die Interaktionsdaten 254, bereitzustellen, bevor es zu dem Zielserver 290 geleitet wird. Der Überwachungsserver 260 kann basierend auf dem Wert des bestimmten Bits bestimmen, dass Zwischenserver vorhanden sind, und fortfahren, den Standort des Zielservers 290 zu identifizieren. In einigen Beispielen überprüft der Überwachungsserver 260 Anmeldedaten einer Ressource gegen Quellen der Ressource, um zu bestimmen, ob es Zwischenserver gibt. Der Überwachungsserver 260 generiert dann eine Antwort an das Client-Gerät 106 mit dem Standort des Zielservers 290, anstatt das Client-Gerät 106 zu den Zwischenservern zu leiten.
  • Der Überwachungsserver 260 kann einen Proxy-Server anrufen, wenn die URL-Anforderung 252 angibt, dass ein Proxy verwendet werden sollte. Wenn z. B. das entsprechende Bit in dem Header der URL-Anforderung 252 gesetzt ist, kann der Überwachungsserver 260 auf einen Proxy-Server zugreifen. In einigen Implementierungen kann der Proxy-Server ein Postback-Proxy-Server sein, der Netzwerke und Server außerhalb der Host-Umgebung des Überwachungsservers 260 anpingt. In dem Fluss 250 bestimmt der Überwachungsserver 260, sobald der Überwachungsserver 260 anhand der URL-Anforderung 252 bestimmt hat, dass es Zwischenserver gibt, zu denen das Client-Gerät 106 geleitet werden soll, dass das Client-Gerät 106 zu dem Zielserver 290 anstatt zu den Zwischenservern geleitet werden soll, und der Überwachungsserver 260 stellt die angeforderten Interaktionsdaten für die in der URL-Anforderung 252 identifizierten Zwischenserver bereit.
  • Der Fluss 250 setzt sich mit Stufe (2) fort. In diesem speziellen Beispiel treten mehrere Schritte innerhalb der Stufe (2) auf, die eine Stufe (2A), eine Stufe (2B), eine Stufe (2C) und eine Stufe (2D) beinhalten. Stufen (2A) und (2B), (2C) und (2D) können gleichzeitig auftreten. Beispielsweise kann Stufe (2A) parallel zu Stufen (2B), (2C) und (2D) auftreten. Die Stufen (2B), (2C) und (2D) treten sequenziell auf.
  • Während Phase (2A) stellt der Überwachungsserver 260 die Umleitungsdaten 262 für das Client-Gerät 106 bereit. Nachdem der Überwachungsserver 260 die URL-Anforderung 252 empfangen, und festgestellt hat, dass es Zwischenserver gibt, zu denen das Client-Gerät 106 geleitet werden soll, generiert der Überwachungsserver 260 eine strukturierte Antwort, die die Umleitungsdaten 262 beinhaltet, die den Standort des Zielservers 290 angeben. Die Umleitungsdaten 262 können einen HTTP-Referer oder ein Feld in dem Header der URL-Anforderung 262 beinhalten, das die Adresse einer Webseite identifiziert, die mit der angeforderten Ressource verknüpft ist. Beispielsweise kann der Referer einen Blog-Beitrag oder den Herkunftsort des Client-Gerätes 106 angeben, der auf eine bestimmte mobile Anwendung verweist, die von dem Client-Gerät 106 angefordert wird. In einem solchen Beispiel wird die mobile Anwendung durch den Zielserver 260 gehostet.
  • Die Umleitungsdaten 262 beinhalten Daten, die das Client-Gerät 106 zu dem Zielserver 290 weiterleiten, der die von dem Client-Gerät 106 angeforderte Ressource hostet. Zum Beispiel können die Umleitungsdaten 262 den Standort des Zielservers 290 und den Code beinhalten, der das Client-Gerät 106 anweist, auf die angeforderte Ressource von dem Zielserver 290 zuzugreifen.
  • Während der Ausführung der Stufe (2A) identifiziert der Überwachungsserver 260 die Zwischenserver, für die das Client-Gerät 106 Interaktionsdaten, wie z. B. die Interaktionsdaten 254, bereitstellen soll.
  • Bei einigen Implementierungen handelt es sich bei den Zwischenservern um Server von Drittanbietern, die außerhalb der Umgebung gehostet werden, in der der Überwachungsserver 290 und/oder der Zielserver 290 gehostet wird. Um die Zwischenserver von Drittanbietern anzupingen, kann der Überwachungsserver 260 den Proxy-Server kontaktieren, um anzufordern, dass der Proxy-Server die Zwischenserver anpingt. Anpingen eines Servers kann Kontaktieren des Servers sowie Bereitstellen verschiedener Informationen für den Server beinhalten. Beispielsweise kann Anpingen eines Servers Bereitstellen von Informationen beinhalten, die von einer empfangenen URL-Anforderung und/oder anderen Informationen bezüglich der URL-Anforderung (z. B. in einem Datenspeicher gespeicherte und/oder auf die URL-Anforderung indexierte und/oder eine Kennung entsprechend der URL-Anforderung) extrahiert wurden. In einigen Implementierungen kann der Überwachungsserver 260 Zwischenserver anpingen, um den Zwischenservern Informationen bereitzustellen, die in der ursprünglich empfangenen URL-Anforderung 262 enthalten sind. Der Proxy-Server ermöglicht es dem Überwachungsserver 260, Remote-Prozeduraufrufe (RPCs, Remote Procedure Calls) mit niedriger Latenz durchzuführen, um mit den Zwischenservern, wie z. B. dem Server A 270 und dem Server B 280, zu kommunizieren. In einigen Beispielen hat der Proxy-Server eine hohe Zeitüberschreitung, um lange Zeitverzögerungen beim Empfangen der Antworten von den Pings zu behandeln. In einigen Beispielen kann der Proxy-Server erneut versuchen, die Zwischenserver anzupingen, wenn die Zeitüberschreitungsfrist abgelaufen ist. In einigen Beispielen ist der Ping ein nicht blockierender Ping, der sofort ein Ergebnis zurückgibt, ohne den Server-Thread, der den Ping in den Ruhezustand versetzt, zu reduzieren, indem die Blockierung reduziert wird, die die Ausführung anderer durch den Server ausgeführter Prozesse verzögert.
  • Während Stufe (2B) pingt der Überwachungsserver 260 Server A 270 mit einer Anforderung, einschließlich Berichtsdaten 264, an. Die Berichtsdaten 264 beinhalten mindestens einen Abschnitt der Interaktionsdaten 254, die von dem Client-Gerät 106 zu dem Überwachungsserver 260 übertragen werden. Server A 270 kann die Berichtsdaten 264 verwenden, um Analysen für einen Anbieter der digitalen Komponente zu generieren, mit denen das Client-Gerät 106 interagierte. Beispielsweise kann der Server A 270 ein Analyseserver eines Drittanbieters sein, der die Berichtsdaten 264 analysiert, um einen digitalen Komponentenanbieter mit Interaktionsstatistiken zu versehen, die unabhängig von den Statistiken sind, die durch den Überwachungsserver 260 bereitgestellt werden.
  • In einigen Beispielen, wenn der Überwachungsserver 260 anfordert, dass der Proxy-Server die Zwischenserver anpingt, startet der Überwachungsserver 260 einen Zähler, wenn ein Ping eines bestimmten Zwischenservers initiiert wird, und überwacht die Zeit, die abgelaufen ist, während er auf eine Antwort auf den Ping wartet. Wenn eine bestimmte Zeitüberschreitungsfrist erreicht ist, kann der Überwachungsserver 260 anfordern, dass der Proxy-Server erneut versucht, den jeweiligen Zwischenserver anzupingen.
  • Während Stufe (2C) empfängt der Überwachungsserver 260 die Umleitungsdaten 272 von Server A 270. Nach dem Empfang der Berichtsdaten 264 von dem Überwachungsserver 260 überträgt der Server 270 die Umleitungsdaten 272 an den Überwachungsserver 260. Die Umleitungsdaten 272 leiten den Überwachungsserver 260 direkt zu Server B 280. In einigen Beispielen weisen die Umleitungsdaten 272 den Überwachungsserver 260 an, Berichtsdaten, einschließlich Interaktionsdaten für Server B 280, bereitzustellen. In Fluss 200 und anderen solchen Prozessen, um ein Client-Gerät zu einer angeforderten Ressource zu leiten, würde Server A 270 die Umleitungsdaten 272 zu dem Client-Gerät 106 übertragen. Im Gegensatz dazu erkennt der Überwachungsserver 260 in Fluss 250, dass es Zwischenserver gibt, und pingt die Server an, um jede Umleitung abzufangen und zu verfolgen, um die Anzahl der Umleitungen zu reduzieren, denen ein Client-Gerät 106 ausgesetzt ist.
  • Während Stufe (2D) pingt der Überwachungsserver 260 den Server A 280 mit einer Anforderung, einschließlich der Berichtsdaten 264, an. Der Überwachungsserver 260 pingt Server B 280 in der gleichen Weise an, wie der Überwachungsserver 260 Server A 270 anpingt. Der Überwachungsserver 260 generiert die Berichtsdaten 264, die für Server B 280 bereitzustellen sind. In einigen Beispielen werden die Berichtsdaten 264 basierend auf den Umleitungsdaten 272 generiert, die dem Überwachungsserver 260 bereitgestellt werden. In einigen Beispielen kann der Überwachungsserver 260 die Berichtsdaten 264 modifizieren, um die Berichtsdaten 274 zu generieren, um anzugeben, dass die Interaktionsüberwachungsdaten einem vorherigen Zwischenserver bereitgestellt wurden. Beispielsweise kann der Überwachungsserver 260 die Berichtsdaten 274 generieren, um anzugeben, dass die von dem Server A 270 angeforderten Interaktionsüberwachungsdaten empfangen wurden. Der Überwachungsserver 260 kann Daten von den Umleitungsdaten 272, die von dem Server A 270 empfangen wurden, in die dem Server 280 bereitgestellten Berichtsdaten 274 aufnehmen. Beispielsweise kann der Überwachungsserver 260 einige oder alle der Umleitungsdaten 272 in die Berichtsdaten 274 aufnehmen. Server B 280 kann die Angabe, dass die Daten von dem Server A 270 empfangen wurden, zum Generieren von Berichten oder zum Bereitstellen von Interaktionsstatistiken für einen Anbieter digitaler Komponenten verwenden. Beispielsweise kann Server B 280 einem Anbieter digitaler Komponenten Statistiken bereitstellen, die die Anzahl der Zwischenserver angeben, denen die Interaktionsüberwachungsdaten für das Client-Gerät 106 bereitgestellt wurden.
  • Der Überwachungsserver 260 kann aus den Umleitungsdaten 272 erkennen, dass es keine weiteren Zwischenserver gibt, für die Interaktionsüberwachungsdaten bereitgestellt werden sollen, woraufhin der Überwachungsserver 260 keine weiteren Zwischenserver anpingen wird. In einigen Beispielen kann der Überwachungsserver 260 Daten vom Server B 280 empfangen, die angeben, dass alle Zwischenserver, für die Interaktionsüberwachungsdaten für das Client-Gerät 106 bereitgestellt werden sollen, erreicht sind.
  • In einigen Beispielen werden die Stufen (2B), (2C) und (2D) nacheinander ausgeführt, und die Stufe (2B) wird parallel zu der Stufe (2A) eingeleitet, in der der Überwachungsserver 260 die Umleitungsdaten 262 für das Client-Gerät 106 bereitstellt, die das Client-Gerät zu dem Zielserver 290 leiten.
  • Der Fluss 250 setzt sich mit Stufe (3) fort, in der das Client-Gerät 106 durch die Umleitungsdaten 262 zu dem Zielserver 290 geleitet wird. Die Stufe (3) tritt sequenziell nach der Stufe (2A) und asynchron zu den Stufen (2B), (2C) und (2D) auf. Die Umleitungsdaten 262 beinhalten Standortdaten für den Zielserver 290 und Daten, die das Client-Gerät 106 anweisen, die Ressource von dem Zielserver 290 anzufordern. Das Client-Gerät 106 kann die angeforderte Ressource von dem Zielserver 290 herunterladen.
  • Indem er dem Client-Gerät 106 ermöglicht, Umleitungen zu Zwischenservern zwischen der Anforderung einer Ressource und dem Zugriff auf die Ressource auf dem Zielserver 290 zu umgehen, reduziert der Fluss 250 die Latenzzeit für einen Benutzer des Client-Geräts und beseitigt mögliche Fehlerpunkte bei jeder Umleitung, bei der eine Verbindung zwischen dem Client-Gerät 106 und einem Netzwerk, das den Zugriff auf die Zwischenserver bereitstellt, entfallen könnte.
  • 3 zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 300 zum Leiten eines Benutzers zu einer angeforderten Ressource. In einigen Implementierungen kann der Prozess 300 durch einen oder mehrere Server implementiert werden. Beispielsweise kann der Prozess 300 durch den Überwachungsserver 260, Server A 270, Server B 280 und den Zielserver 290 von 2B implementiert werden. In einigen Implementierungen kann der Prozess 300 als Anweisungen implementiert werden, die auf einem nicht flüchtigen computerlesbaren Medium gespeichert sind, und wenn die Anweisungen durch einen oder mehrere Server ausgeführt werden, können die Anweisungen den einen oder die mehreren Server veranlassen, Vorgänge des Prozesses 300 auszuführen.
  • Ein oder mehrere Server erkennen eine Interaktion mit einer digitalen Komponente an einem Client-Gerät (302). Das Client-Gerät kann ein mobiles Gerät sein, das über ein drahtloses Kommunikationsnetzwerk kommuniziert. In einigen Implementierungen können ein oder mehrere Server verwendet werden, um den Überwachungsserver 260 zu implementieren, der eine Interaktion mit einer digitalen Komponente an dem Client-Gerät 106 erkennt. Der eine oder die mehreren Server kommunizieren unabhängig von dem mobilen Endgerät über ein drahtgebundenes Kommunikationsnetzwerk. Beispielsweise kann eine Interaktion mit einer bestimmten digitalen Komponente, wie zuvor in Bezug auf 1 beschrieben, dazu führen, dass das Client-Gerät eine Anforderung nach einer Ressource initiiert. Wie zuvor beschrieben, kann das Client-Gerät verschiedene Ereignisdaten in die Ressourcenanforderung aufnehmen und Daten beinhalten, die die digitale Komponente und den Anbieter der digitalen Komponente, mit der das Client-Gerät interagierte, spezifizieren. In Reaktion auf die Interaktion kann der Überwachungsserver das Client-Gerät zu einem Zielserver umleiten, der in einer URL angegeben ist, die von dem Client-Gerät empfangen wurde, und einem Mehrfachserverumleitungspfad folgen, dem das Client-Gerät, wie weiter nachfolgend näher beschrieben, gefolgt wäre, wenn der Überwachungsserver das Client-Gerät nicht zu dem Zielserver umgeleitet hätte.
  • Der eine oder die mehreren Server identifizieren einen Zwischenserver, zu dem der eine oder die mehreren Server das Client-Gerät umleiten sollen, und einen Zielserver, angefordert durch Interaktion mit der digitalen Komponente (304). In einigen Implementierungen identifiziert der Überwachungsserver 260 Server A 270 und Server B 280, zu dem der Überwachungsserver 260 das Client-Gerät 106 umleiten soll, bevor er zu dem Zielserver 290 geleitet wird, um auf die angeforderte Ressource durch Interaktion mit der digitalen Komponente zuzugreifen. Beispielsweise kann der Überwachungsserver 260, wie zuvor in Bezug auf 2B beschrieben, die Zwischenserver 270 und 280 sowie den Zielserver 290 identifizieren. In einigen Implementierungen untersucht der Überwachungsserver eine URL, die zum Kontaktieren des Überwachungsservers verwendet wird, und extrahiert Informationen, die einen Pfad des Zwischenservers angeben, zu dem das Client-Gerät umgeleitet werden soll. Alternativ kann der Überwachungsserver die jeweilige digitale Komponente identifizieren, mit der die Interaktion auftrat, und den Pfad des Zwischenservers in einer Datenstruktur nachschlagen, die digitale Komponenten auf Zwischenservern abbildet.
  • Der eine oder die mehreren Server leiten das Client-Gerät zu einem Zielserver um, ohne das Client-Gerät zu dem Zwischenserver (306) umzuleiten. In einigen Implementierungen kann der Überwachungsserver 260 das Client-Gerät 106 zu einem Zielserver 290 umleiten, ohne das Client-Gerät zu den Zwischenservern 270 und 280 umzuleiten. Beispielsweise kann der Überwachungsserver 260, wie zuvor in Bezug auf 2B beschrieben, Stufe (2A) ausführen, in der das Client-Gerät 106 unabhängig von Stufen (2B), (2C) und (2D) zu dem Zielserver 290 geleitet wird.
  • Der eine oder die mehreren Server pingen den Zwischenserver mit einer Anforderung an, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente (308) entsprechen. In einigen Implementierungen pingt der Überwachungsserver 260 die Zwischenserver, Server A 270 und Server B 280 mit Anforderungen an, die Interaktionsdaten enthalten, die der Interaktion mit der digitalen Komponente entsprechen. Beispielsweise kann der Überwachungsserver 260, wie zuvor in Bezug auf 2B beschrieben, Stufen (2B) oder (2D) zum Anpingen von Server A 270 oder Server B 280 ausführen. In einigen Beispielen sendet der Überwachungsserver 260 eine Anforderung an einen Proxy-Server, um die Pings auszuführen. In einigen Implementierungen pingt der Überwachungsserver 260 den Zwischenserver durch Initiieren eines zweiten Umleitungspfads an, der sich von der Umleitung des Client-Geräts zu dem Zielserver unterscheidet.
  • In einigen Implementierungen pingt der Überwachungsserver 260 den Zwischenserver, wie z. B. Server A 270, an, indem er einen Zähler startet, wenn der Ping initiiert wird, und eine Zeitspanne überwacht, die während des Pings mit der Anforderung über den Zähler abläuft. Der Überwachungsserver 260 kann erneut versuchen, den Zwischenserver oder Server, wie z. B. Server A 270 oder Server B 280, anzupingen.
  • Der eine oder die mehreren Server erhalten von dem Zwischenserver eine Umleitungsantwort, die den einen oder die mehreren Server zu einem zweiten Zwischenserver (310) umleitet. Beispielsweise können der eine oder die mehreren Server eine Umleitungsantwort von dem Zwischenserver empfangen, die den Standort eines zweiten Zwischenservers angibt. In einigen Implementierungen empfängt der Überwachungsserver 260 Umleitungsdaten 272, die den Überwachungsserver 260 zu einem zweiten Zwischenserver oder Server B 280 leiten.
  • Der eine oder die mehreren Server pingen den zweiten Zwischenserver mit einer zweiten Anforderung an, die Daten von der Umleitungsantwort (312) beinhaltet. Beispielsweise können der eine oder die mehreren Server den zweiten Zwischenserver durch einen Proxy-Server anpingen, der die externe Kommunikation für den einen oder die mehreren Server für den einen oder die mehreren Server ausführt. In einigen Implementierungen pingt der Überwachungsserver 260 Server B 280 mit einer zweiten Anforderung an, die Daten von den Umleitungsdaten 272 beinhaltet.
  • Es kann mehr als einen Zwischenserver geben, der durch den einen oder die mehreren Server identifiziert wird. In solchen Beispielen können der eine oder die mehreren Server Umleitungsdaten von jedem der Zwischenserver empfangen, die den einen oder die mehreren Server zu einem nachfolgenden Zwischenserver leiten. Beispielsweise kann der Überwachungsserver 260, wie zuvor in Bezug auf 2B beschrieben, in der Stufe (2C) zu dem Server B 280 umgeleitet werden.
  • 4 zeigt ein Blockdiagramm eines exemplarischen Computersystems 400, das verwendet werden kann, um zuvor beschriebene Vorgänge auszuführen. Das System 400 beinhaltet einen Prozessor 410, einen Arbeitsspeicher 420, ein Speichergerät 430 und ein Eingabe-/Ausgabegerät 440. Die jeweiligen Komponenten 410, 420, 430 und 440 können beispielsweise unter Verwendung von einem Systembus 450 miteinander verbunden werden. Der Prozessor 410 kann Anweisungen zur Ausführung innerhalb des Systems 400 verarbeiten. In einer Implementierung ist der Prozessor 410 ein Einzel-Thread-Prozessor. In einer weiteren Implementierung ist der Prozessor 410 ein Multi-Thread-Prozessor. Der Prozessor 410 ist in der Lage, in dem Arbeitsspeicher 420 oder in dem Speichergerät 430 abgelegte Befehle zu verarbeiten.
  • Der Arbeitsspeicher 420 speichert Informationen innerhalb des Systems 400. In einer Implementierung ist der Arbeitsspeicher 420 ein computerlesbares Medium. In einer Implementierung ist der Arbeitsspeicher 420 eine flüchtige Speichereinheit. In einer anderen Implementierung ist der Arbeitsspeicher 420 eine nicht flüchtige Speichereinheit.
  • Das Speichergerät 430 ist in der Lage, Massenspeicher für das System 400 bereitzustellen. In einer Implementierung ist das Speichergerät 430 ein computerlesbares Medium. In verschiedenen Implementierungen kann das Speichergerät 430 beispielsweise eine Festplatte, ein optisches Laufwerk, ein Speichergerät, das über ein Netzwerk von mehreren Computergeräten (z. B. ein Cloud-Speichergerät) oder einem anderen Hochkapazitätsspeichergerät gemeinsam genutzt wird, beinhalten.
  • Das Eingabe-/Ausgabegerät 440 stellt Eingabe-/Ausgabevorgänge für das System 400 bereit. In einer Implementierung kann das Eingabe-/Ausgabegerät 440 ein oder mehrere Netzwerkschnittstellengeräte, z. B. eine Ethernetkarte, ein serielles Kommunikationsgerät, z. B. einen RS-232-Anschluss und/oder ein kabelloses Schnittstellengerät, z. B. eine 802.11-Karte, beinhalten. In einer weiteren Implementierung kann das Eingabe-/Ausgabegerät Treibergeräte beinhalten, die konfiguriert sind, Eingabedaten zu empfangen und Ausgabedaten an andere Eingabe-/Ausgabegeräte, z. B. an Tastatur, Drucker und Bildschirmgeräte 460, auszugeben. Weitere Implementierungen, wie z. B. mobile Computergeräte, mobile Kommunikationsgeräte, Set-Top-Box-Client-Fernsehgeräte usw., können ebenfalls verwendet werden.
  • Obgleich in 4 ein exemplarisches Verarbeitungssystem beschrieben wurde, können Implementierungen des Gegenstandes, sowie die in dieser Spezifikation beschriebenen Vorgänge in anderen Arten von digitalen elektronischen Schaltkreisanordnungen oder in Computersoftware, Firmware oder Hardware, darunter auch in aus dieser Spezifikation hervorgehenden Strukturen und deren strukturellen Entsprechungen oder in Kombinationen einer oder mehrerer derselben implementiert werden.
  • Ein elektronisches Dokument (das abgekürzt einfach als Dokument bezeichnet wird) entspricht nicht notwendigerweise einer Datei. Ein Dokument kann in einem Teil einer Datei, die andere Dokumente in einer einzelnen Datei beinhaltet, die dem betreffenden Dokument zugeordnet sind, oder in mehreren koordinierten Dateien gespeichert sein.
  • Ausführungsformen des Gegenstandes und die in dieser Spezifikation beschriebenen Vorgänge können in digitalen elektronischen Schaltkreisanordnungen oder in Computer-Software, Firmware oder Hardware, darunter auch in den in dieser Spezifikation offenbarten Strukturen und deren strukturellen Entsprechungen oder in Kombinationen von einer oder mehrerer derselben, implementiert werden. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstandes können als ein oder mehrere Computerprogramme implementiert werden, d. h. als ein oder mehrere Module mit Computerprogrammanweisungen, die auf Computerspeichermedien (oder einem -medium) codiert sind, um von einem Datenverarbeitungsgerät ausgeführt zu werden bzw. den Betrieb desselben zu steuern. Alternativ oder ergänzend dazu können die Programmbefehle auf einem künstlich erzeugten, sich ausbreitenden Signal, wie beispielsweise einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal codiert werden, das erzeugt wird, um Informationen zur Übertragung an ein geeignetes Empfängergerät zu codieren, die dann von einem Datenverarbeitungsgerät ausgeführt werden. Ein Computerspeichermedium kann ein computerlesbares Speichergerät, ein computerlesbares Speichersubstrat, ein frei adressierbares oder serielles Zugriffsspeicher-Array oder -Gerät oder eine Kombination daraus sein bzw. darin enthalten sein. Ein Computerspeichermedium ist zwar kein sich verbreitendes Signal, ein Computerspeichermedium kann jedoch eine Quelle oder ein Ziel von Computerprogrammbefehlen sein, die in einem künstlich erzeugten verbreiteten Signal codiert sind. Bei dem Computerspeichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Datenträger oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein.
  • Die in dieser Spezifikation beschriebenen Vorgänge können als Vorgänge implementiert werden, die durch eine Datenverarbeitungsvorrichtung an Daten ausgeführt werden, die auf einem oder mehreren computerlesbaren Speichergerät(en) gespeichert oder von anderen Quellen empfangen werden.
  • Der Begriff „Datenverarbeitungsvorrichtung“ umfasst verschiedene Vorrichtungen, Geräte und Maschinen zur Verarbeitung von Daten, einschließlich z. B. eines programmierbaren Prozessors, eines Computers, eines oder mehrerer Systeme auf einem Chip bzw. einer Kombination derselben. Das Gerät kann eine Spezial-Logikschaltung, wie z. B. eine FPGA (feldprogrammierbare Universalschaltung) oder eine ASIC (anwendungsspezifische integrierte Schaltung) beinhalten. Die Vorrichtung kann zusätzlich zur Hardware auch Code beinhalten, der eine Ausführungsumgebung für das entsprechende Computerprogramm erzeugt, wie z. B. Code, der Prozessorfirmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, einen virtuellen Computer oder eine Kombination derselben darstellt. Die Vorrichtung und die Ausführungsumgebung können verschiedene Computermodellinfrastrukturen, wie z. B. Webdienste, sowie verteilte Rechen- und räumlich verteilte Rechen-Infrastrukturen realisieren.
  • Ein Computerprogramm (auch bezeichnet als Programm, Software, Softwareanwendung, Script oder Code) kann in einer beliebigen Form von Programmiersprache geschrieben sein, darunter auch in kompilierten oder interpretierten Sprachen, deklarativen oder verfahrensorientierten Sprachen, zudem kann das Programm in jeder beliebigen Form eingesetzt werden, darunter auch als unabhängiges Programm oder als Modul, Komponente, Subroutine, Objekt oder als eine andere Einheit, die zur Verwendung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss jedoch nicht einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert werden, der andere Programme oder Daten enthält (z. B. einen oder mehrere Scripts, die in einem Dokument in Auszeichnungssprache gespeichert sind), in einer einzelnen Datei, die dem betreffenden Programm zugeordnet ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Codeabschnitte speichern). Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort oder an mehreren Standorten verteilt befinden und über ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die in dieser Spezifikation beschriebenen Prozesse und logischen Abläufe können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um durch Bearbeiten von Eingabedaten und Erzeugen von Ausgabedaten Aktionen auszuführen. Die Prozesse und Logikabläufe können auch durch eine Logikschaltung für spezielle Zwecke, wie z. B.: eine FPGA (feldprogrammierbare Universalschaltung) oder eine ASIC (anwendungsspezifische integrierte Schaltung) ausgeführt und die Vorrichtung in Form derselben implementiert werden.
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise sowohl Universal- als auch Spezial-Mikroprozessoren. In der Regel empfängt ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher oder einem Direktzugriffsspeicher oder auch von beiden. Die wesentlichen Bestandteile eines Computers sind ein Prozessor zum Ausführen von Aktionen gemäß Anweisungen, sowie ein oder mehrere Speichergeräte zum Speichern von Anweisungen und Daten. In der Regel beinhaltet ein Computer ein oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B: magnetische, magneto-optische oder optische Festplatten, bzw. wird er operativ gekoppelt, um Daten von denselben zu empfangen oder auf dieselben zu übertragen. Ein Computer muss jedoch nicht über diese Geräte verfügen. Darüber hinaus kann ein Computer u. a. in ein anderes Gerät, wie beispielsweise ein Mobiltelefon, einen persönlichen digitalen Assistenten (PDA), einen mobilen Audio- oder Video-Player, eine Spielekonsole, einen GPS-Empfänger oder ein tragbares Speichergerät (z. B. USB-Flash-Laufwerk) integriert sein. Zu den zum Speichern von Computerprogrammanweisungen und Daten geeigneten Medien gehören sämtliche Arten von Festspeichern, Medien und Speichergeräten, darunter auch Halbleiterspeicherelemente, wie beispielsweise EPROM, EEPROM und Flash-Speichergeräte; magnetische Festplatten, wie z. B. interne Festplatten oder Wechselplatten; magneto-optische Festplatten; und CD-ROM- und DVD-ROM-Laufwerke. Der Prozessor und der Arbeitsspeicher können durch eine Spezial-Logikschaltung ergänzt oder in dieselbe integriert werden.
  • Um die Interaktion mit einem Benutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstandes auf einem Computer mit einem Anzeigegerät, wie z. B. einem CRT-(Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeigen) Monitor, mit welchem dem Benutzer Informationen angezeigt werden, sowie einer Tastatur und einem Zeigegerät, z. B. einer Maus oder einer Steuerkugel (Trackball), mit denen der Benutzer Eingaben an den Computer vornehmen kann, implementiert werden. Es können auch andere Arten von Geräten verwendet werden, um eine Interaktion mit einem Benutzer zu ermöglichen; beispielsweise kann eine dem Benutzer gelieferte Rückmeldung in einer beliebigen Form von sensorischer Rückmeldung vorliegen, z. B. als visuelle Rückmeldung, auditive Rückmeldung oder taktile Rückmeldung; ebenso kann die Eingabe von dem Benutzer in beliebiger Form empfangen werden, darunter auch als akustische, taktile oder Spracheingabe. Außerdem kann ein Computer durch das Senden von Dokumenten an ein Gerät und das Empfangen von Dokumenten von einem Gerät, das vom Benutzer verwendet wird, mit einem Benutzer interagieren, beispielsweise durch das Senden von Webseiten an einen Webbrowser auf dem Client-Gerät des Benutzers in Reaktion auf die von dem Webbrowser empfangenen Anforderungen.
  • Die in dieser Spezifikation beschriebenen Ausführungsformen des Gegenstandes können in einem Computersystem implementiert werden, das eine Backend-Komponente wie z. B. einen Datenserver oder eine Middleware-Komponente, wie z. B. einen Anwendungsserver oder eine Front-End-Komponente, wie z. B. einen Client-Computer mit einer grafischen Benutzeroberfläche, oder eine beliebige Kombination einer oder mehrerer der besagten Backend-, Middleware- oder Front-End-Komponenten oder einen Webbrowser beinhaltet, durch den ein Benutzer mit einer in dieser Spezifikation beschriebenen Implementierung des Gegenstandes interagieren kann. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele für Kommunikationsnetzwerke beinhalten ein lokales Netzwerk („LAN“) und ein Großraumnetzwerk („WAN“), ein Inter-Netzwerk (z. B. das Internet) und Peer-to-Peer-Netzwerke (z. B. ad hoc Peer-to-Peer-Netzwerke).
  • Das Computersystem kann Client und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und eine Client-Server-Beziehung zueinander aufweisen. In einigen Ausführungsformen überträgt ein Server Daten (z. B. eine HTML-Seite) an ein Client-Gerät (z. B. zum Anzeigen von Daten für und zum Empfangen von Benutzereingaben von einem Benutzer, der mit dem Client-Gerät interagiert). Daten, die am Client-Gerät erzeugt werden (z. B. ein Ergebnis der Benutzerinteraktion) können vom Benutzergerät auf dem Server empfangen werden.
  • Obgleich diese Spezifikation viele spezifische Implementierungsdetails enthält, sollten diese jedoch nicht als Einschränkungen des Umfangs oder des Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen bestimmter Erfindungen. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können zudem in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Funktionen vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Funktionen einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
  • Gleichermaßen soll dies, obwohl die Vorgänge in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, nicht so verstanden werden, dass die besagten Vorgänge in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen bzw. alle veranschaulichten Vorgänge durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und eine Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den zuvor beschriebenen Ausführungsformen nicht in allen Ausführungsformen als erforderlich aufgefasst werden, zudem versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte zusammengefasst werden können.
  • Folglich wurden bestimmte Ausführungsformen des Gegenstandes beschrieben. Andere Ausführungsformen liegen im Geltungsbereich der folgenden Ansprüche. So können in einigen Fällen die in den Ansprüchen angegebene Aktionen in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich setzen beispielsweise die in den beigefügten Figuren dargestellten Prozesse nicht unbedingt die gezeigte spezielle Reihenfolge oder fortlaufende Reihenfolge voraus, um erwünschte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und eine Parallelverarbeitung vorteilhaft sein.

Claims (33)

  1. Computerprogrammprodukt, das Anweisungen enthält, die, wenn sie von einem Datenverarbeitungsgerät ausgeführt werden, das Datenverarbeitungsgerät veranlassen, ein Verfahren ausführen, das Verfahren umfassend: Erkennen einer Interaktion durch einen oder mehrere Server mit einer digitalen Komponente an einem Client-Gerät; Identifizieren eines Zwischenservers durch den einen oder die mehreren Server, der das Client-Gerät zu einer Zielressource umleiten kann, angefordert durch die Interaktion mit der digitalen Komponente; Anpingen des Zwischenservers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen; Erhalten einer Kennung für die Zielressource durch den einen oder die mehreren Server; und Umleiten des Client-Geräts durch den einen oder die mehreren Server zu der Zielressource unter Verwendung der Kennung.
  2. Computerprogrammprodukt nach Anspruch 1, wobei Identifizieren des Zwischenservers Untersuchen einer URL beinhaltet, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die einen Pfad des Zwischenservers spezifizieren.
  3. Computerprogrammprodukt nach einem der Ansprüche 1-2, wobei der Schritt des Empfangens einer Kennung für die Zielressource durch den einen oder die mehreren Server über den Zwischenserver, ferner umfasst: Empfangen einer Umleitungsantwort von dem Zwischenserver, die den einen oder die mehreren Server zu einem zweiten Zwischenserver umleitet; und Anpingen des zweiten Zwischenservers durch den einen oder die mehreren Server mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  4. Computerprogrammprodukt nach einem der Ansprüche 1-3, wobei Anpingen des Zwischenservers Initiieren eines zweiten Umleitungspfades umfasst, der sich von der Umleitung des Client-Geräts zu der Zielressource unterscheidet.
  5. Computerprogrammprodukt nach einem der Ansprüche 1-4, wobei Anpingen des Zwischenservers umfasst: Starten eines Zählers, wenn das Anpingen initiiert wird; Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers; und erneutes Versuchen des Anpingens des Zwischenservers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet, bevor der eine oder die mehreren Server eine Antwort von dem Zwischenserver empfangen.
  6. Computerprogrammprodukt nach einem der Ansprüche 1-5, wobei das Client-Gerät ein mobiles Gerät ist, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und der eine oder die mehreren Server über ein drahtgebundenes Kommunikationsnetzwerk unabhängig von dem mobilen Gerät kommunizieren.
  7. System, umfassend: einen Datenspeicher, der Interaktionsdaten speichert, die einer clientseitigen Interaktion mit verschiedenen digitalen Komponenten entsprechen; eine Front-End-Schnittstelle, die eine Kommunikationsschnittstelle beinhaltet, die Kommunikation über ein oder mehrere Kommunikationsnetzwerke ermöglicht; einen mit der Front-End-Schnittstelle verbundenen Überwachungsserver, wobei der Überwachungsserver eine Umleitungskette unterbricht, der ein Client-Gerät folgt, indem er Vorgänge ausführt, beinhaltend: Erkennen einer Interaktion mit einer digitalen Komponente an einem Client-Gerät; Identifizieren eines Zwischenservers, der das Client-Gerät zu einer Zielressource umleiten kann, angefordert durch die Interaktion mit der digitalen Komponente; Anpingen des Zwischenservers mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen; Empfangen einer Kennung für die Zielressource über den Zwischenserver; Umleiten des Client-Geräts zu der Zielressource unter Verwendung der Kennung.
  8. System nach Anspruch 7, wobei Identifizieren des Zwischenservers Untersuchen einer URL beinhaltet, die verwendet wird, um den Überwachungsserver zu kontaktieren, und Extrahieren von Informationen, die einen Pfad des Zwischenservers spezifizieren.
  9. System nach einem der Ansprüche 7-8, wobei der Vorgang des Empfangens einer Kennung für die Zielressource über den Zwischenserver umfasst: Empfangen einer Umleitungsantwort von dem Zwischenserver, die den einen oder die mehreren Server zu einem zweiten Zwischenserver umleitet; und Anpingen des zweiten Zwischenservers mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  10. System nach einem der Ansprüche 7-9, wobei Anpingen des Zwischenservers Initiieren eines zweiten Umleitungspfades umfasst, der sich von der Umleitung des Client-Geräts zu der Zielressource unterscheidet.
  11. System nach einem der Ansprüche 7-10, wobei Anpingen des Zwischenservers umfasst: Starten eines Zählers, wenn das Anpingen initiiert wird; Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers; und erneutes Versuchen des Anpingens des anderen Servers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet, vor Empfangen einer Antwort von dem Zwischenserver.
  12. System nach einem der Ansprüche 7-11, wobei das Client-Gerät ein mobiles Gerät ist, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und ein oder mehrere Überwachungsserver unabhängig von dem mobilen Gerät über ein drahtgebundenes Kommunikationsnetzwerk kommunizieren.
  13. Nicht flüchtiges computerlesbares Medium, das Anweisungen speichert, die, wenn sie von einem oder mehreren Computergeräten ausgeführt werden, das eine oder die mehreren Computergeräte zum Ausführen eines Verfahrens eines Computerprogrammprodukts nach einem der Ansprüche 1-6 veranlassen.
  14. Computerprogrammprodukt, das Anweisungen enthält, die, wenn sie von einem Datenverarbeitungsgerät ausgeführt werden, das Datenverarbeitungsgerät veranlassen, ein Verfahren ausführen, das Verfahren umfassend: Erkennen einer Interaktion durch einen oder mehrere Server mit einer digitalen Komponente an einem Client-Gerät; Identifizieren eines Zwischenservers durch den einen oder die mehreren Server, zu dem der eine oder die mehreren Server das Client-Gerät umleiten sollen, und einen Zielserver, angefordert durch die Interaktion mit der digitalen Komponente; Umleiten des Client-Geräts durch den einen oder die mehreren Server zu dem Zielserver, ohne das Client-Gerät zu dem Zwischenserver umzuleiten; und Anpingen des Zwischenservers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen.
  15. Computerprogrammprodukt nach Anspruch 14, wobei Identifizieren des Zwischenservers Untersuchen einer URL beinhaltet, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die einen Pfad des Zwischenservers spezifizieren.
  16. Computerprogrammprodukt nach Anspruch 14, das Verfahren umfassend: Empfangen einer Umleitungsantwort von dem Zwischenserver, die den einen oder die mehreren Server zu einem zweiten Zwischenserver umleitet; und Anpingen des zweiten Zwischenservers durch den einen oder die mehreren Server mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  17. Computerprogrammprodukt nach Anspruch 14, wobei Anpingen des Zwischenservers Initiieren eines zweiten Umleitungspfades umfasst, der sich von der Umleitung des Client-Geräts zu dem Zielserver unterscheidet.
  18. Computerprogrammprodukt nach Anspruch 14, wobei Anpingen des Zwischenservers umfasst: Starten eines Zählers, wenn das Anpingen initiiert wird; Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers; und erneutes Versuchen des Anpingens des Zwischenservers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet, bevor der eine oder die mehreren Server eine Antwort von dem Zwischenserver empfangen.
  19. Computerprogrammprodukt nach Anspruch 14, wobei das Client-Gerät ein mobiles Gerät ist, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und der eine oder die mehreren Server unabhängig von dem mobilen Gerät über ein drahtgebundenes Kommunikationsnetzwerk kommunizieren.
  20. Computerprogrammprodukt nach Anspruch 14, das Verfahren umfassend: Folgen eines Mehrfachserverumleitungspfads durch den einen oder die mehreren Server, dem das Client-Gerät gefolgt wäre, wenn der eine oder die mehreren Server das Client-Gerät nicht zu dem Zielserver umgeleitet hätten.
  21. System, umfassend: einen Datenspeicher, der Interaktionsdaten speichert, die einer clientseitigen Interaktion mit verschiedenen digitalen Komponenten entsprechen; eine Front-End-Schnittstelle, die eine Kommunikationsschnittstelle beinhaltet, die die Kommunikation über ein oder mehrere Kommunikationsnetzwerke ermöglicht; einen mit der Front-End-Schnittstelle verbundenen Überwachungsserver, wobei der Überwachungsserver eine Umleitungskette unterbricht, der ein Client-Gerät folgt, indem er Vorgänge ausführt, beinhaltend: Erkennen einer Interaktion durch den einen oder die mehreren Server mit einer digitalen Komponente an einem Client-Gerät; Identifizieren eines anderen Servers durch den einen oder die mehreren Server, zu dem der eine oder die mehreren Server das Client-Gerät umleiten sollen, und einer Zielseite, angefordert durch die Interaktion mit der digitalen Komponente; Umleiten des Client-Geräts durch den einen oder die mehreren Server zu der Zielseite, ohne das Client-Gerät zu dem anderen Server umzuleiten; und Anpingen des anderen Servers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen.
  22. System nach Anspruch 21, wobei Identifizieren des anderen Servers Untersuchen einer URL umfasst, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die den anderen Server spezifizieren.
  23. System nach Anspruch 21, die Vorgänge umfassend: Empfangen einer Umleitungsantwort von dem anderen Server, die den einen oder die mehreren Server zu einem zweiten anderen Server umleitet; und Anpingen des zweiten anderen Servers durch den einen oder die mehreren Server mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  24. System nach Anspruch 21, wobei Anpingen des anderen Servers Initiieren eines zweiten Umleitungspfades umfasst, der sich von der Umleitung des Client-Geräts zu der Zielseite unterscheidet.
  25. System nach Anspruch 21, wobei Anpingen des anderen Servers Starten eines Zählers umfasst, wenn das Anpingen initiiert wird; Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers; und erneutes Versuchen des Anpingens des anderen Servers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet.
  26. System nach Anspruch 21, wobei das Client-Gerät ein mobiles Gerät ist, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und der eine oder die mehreren Server unabhängig von dem mobilen Gerät über ein drahtgebundenes Kommunikationsnetzwerk kommunizieren.
  27. System nach Anspruch 21, die Vorgänge umfassend: Folgen eines Mehrfachserverumleitungspfads durch den einen oder die mehreren Server, dem das Client-Gerät gefolgt wäre, wenn der eine oder die mehreren Server das Client-Gerät nicht zu der Zielseite umgeleitet hätten.
  28. Nicht flüchtiges computerlesbares Medium, das Anweisungen speichert, die, wenn sie von einem oder mehreren Computergeräten ausgeführt werden, das eine oder die mehreren Computergeräte zum Ausführen von Vorgängen veranlassen, die umfassen: Erkennen einer Interaktion durch einen oder mehrere Server mit einer digitalen Komponente an einem Client-Gerät; Identifizieren eines anderen Servers durch den einen oder die mehreren Server, der das Client-Gerät zu einer Zielressource umleiten kann und einer Zielseite, die durch die Interaktion mit der digitalen Komponente angefordert wird; Umleiten des Client-Geräts durch den einen oder die mehreren Server zu der Zielseite ohne Umleiten des Client-Geräts zu dem anderen Server; Anpingen des anderen Servers durch den einen oder die mehreren Server mit einer Anforderung, die Interaktionsdaten beinhaltet, die der Interaktion mit der digitalen Komponente entsprechen.
  29. Nicht flüchtiges computerlesbares Medium nach Anspruch 28, wobei Identifizieren des anderen Servers Untersuchen einer URL umfasst, die verwendet wird, um den einen oder die mehreren Server zu kontaktieren, und Extrahieren von Informationen, die den anderen Server spezifizieren.
  30. Nicht flüchtiges computerlesbares Medium nach Anspruch 28, die Vorgänge ferner umfassend: Empfangen einer Umleitungsantwort von dem anderen Server, die den einen oder die mehreren Server zu einem zweiten anderen Server umleitet; und Anpingen des zweiten anderen Servers durch den einen oder die mehreren Server mit einer zweiten Anforderung, die Daten von der Umleitungsantwort beinhaltet.
  31. Nicht flüchtiges computerlesbares Medium nach Anspruch 28, wobei Anpingen des anderen Servers Initiieren eines zweiten Umleitungspfades umfasst, der sich von der Umleitung des Client-Geräts zu der Zielseite unterscheidet.
  32. Nicht flüchtiges computerlesbares Medium nach Anspruch 28, wobei Anpingen des anderen Servers Starten eines Zählers umfasst, wenn das Anpingen initiiert wird; Überwachen einer abgelaufenen Anforderungszeit unter Verwendung des Zählers; und erneutes Versuchen des Anpingens des anderen Servers, wenn die abgelaufene Anforderungszeit einen Zeitüberschreitungsgrenzwert überschreitet.
  33. Nicht flüchtiges computerlesbares Medium nach Anspruch 28, wobei das Client-Gerät ein mobiles Gerät ist, das über ein drahtloses Kommunikationsnetzwerk kommuniziert, und der eine oder die mehreren Server unabhängig von dem mobilen Gerät über ein drahtgebundenes Kommunikationsnetzwerk kommunizieren.
DE202018100131.0U 2017-04-03 2018-01-11 Reduzierern von Umleitungen Active DE202018100131U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2017/025725 WO2018186824A1 (en) 2017-04-03 2017-04-03 Reducing redirects
IBPCT/US2017/025725 2017-04-03

Publications (1)

Publication Number Publication Date
DE202018100131U1 true DE202018100131U1 (de) 2018-07-05

Family

ID=58609998

Family Applications (2)

Application Number Title Priority Date Filing Date
DE202018100131.0U Active DE202018100131U1 (de) 2017-04-03 2018-01-11 Reduzierern von Umleitungen
DE102018100526.1A Pending DE102018100526A1 (de) 2017-04-03 2018-01-11 Reduzieren von Umleitungen

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE102018100526.1A Pending DE102018100526A1 (de) 2017-04-03 2018-01-11 Reduzieren von Umleitungen

Country Status (7)

Country Link
EP (1) EP3552115B1 (de)
JP (1) JP6772389B2 (de)
KR (1) KR102196403B1 (de)
CN (1) CN108990423B (de)
DE (2) DE202018100131U1 (de)
GB (2) GB2566341A (de)
WO (1) WO2018186824A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL283674B1 (en) 2021-06-03 2024-05-01 Google Llc Distribution and monitoring of cross-disciplinary experimental groups to maintain privacy
US11652697B1 (en) 2022-03-29 2023-05-16 Oxylabs, Uab Transmitting request and response information through different proxies

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2368556C (en) * 1999-04-05 2010-12-21 Neomedia Technologies, Inc. System and method of using machine-readable or human-readable linkage codes for accessing networked data resources
CN100464524C (zh) * 2007-04-13 2009-02-25 华为技术有限公司 一种内容控制方法和系统
CN101662464A (zh) * 2008-08-26 2010-03-03 阿里巴巴集团控股有限公司 一种用于实现http请求服务的系统及其方法
US8868638B2 (en) * 2010-11-09 2014-10-21 Usablenet Inc. Methods for reducing latency in network connections using automatic redirects and systems thereof
US9282158B2 (en) * 2011-06-06 2016-03-08 Google Inc. Reducing redirects
US9342615B2 (en) * 2011-12-07 2016-05-17 Google Inc. Reducing redirects
US9344512B2 (en) * 2012-12-13 2016-05-17 Qualcomm Incorporated Loading a re-directed web resource on a web browser of a client device in a communications system
CN105915450B (zh) * 2016-06-02 2019-06-25 南京师范大学 一种ndn中基于重定向的任播方法和系统

Also Published As

Publication number Publication date
JP6772389B2 (ja) 2020-10-21
CN108990423B (zh) 2022-01-28
GB201720890D0 (en) 2018-01-31
DE102018100526A1 (de) 2018-10-04
JP2020510251A (ja) 2020-04-02
EP3552115B1 (de) 2021-09-29
GB2566341A (en) 2019-03-13
WO2018186824A1 (en) 2018-10-11
GB201800967D0 (en) 2018-03-07
KR20190090862A (ko) 2019-08-02
CN108990423A (zh) 2018-12-11
EP3552115A1 (de) 2019-10-16
KR102196403B1 (ko) 2020-12-29

Similar Documents

Publication Publication Date Title
DE60216918T2 (de) Verfahren und computersystem zur auswahl eines randservercomputers
DE69934871T2 (de) Verfahren und System zur optimalen Auswahl eines Webfirewalls in einem TCP/IP Netzwerk
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE69731318T2 (de) Herstellen von kommunikationsverbindungen in einem computernetzwerk
DE69837508T2 (de) Verfahren zum Inhaltswiederauffinden über ein Netzwerk
US9614889B2 (en) Autonomic content load balancing
DE69909839T3 (de) Optimierte Lokalisierung von Netzwerkbetriebsmittel
DE112016005265T5 (de) Verbesserte Push-Nachrichtenübermittlung
DE202015009251U1 (de) Netzwerkpaketkapselung und Routing
DE112016001103T5 (de) Interaktive werbeanzeige-wiedergabeanwendung für kommunikationsumgebungen geringer bandbreite
DE202017106604U1 (de) Benutzerdefinierte digitale Komponenten
DE102012218575B4 (de) Schützen der Privatsphäre beim Austauschen von Daten mit einem Webserver
DE202014010951U1 (de) Entfernungsabhängige Herabstufung von Suchrankings
DE202014011541U1 (de) System zum Herstellen einer Vertrauensverknüpfung
DE202017107339U1 (de) Bereitstellen eines Auto-Play-Medieninhaltselements von Cross-Origin Ressourcen
DE202016107513U1 (de) Zuordnungsmodell für Inhaltselementumwandlungen
DE112016001601T5 (de) Anzeige von inhaltselementen basierend auf dem benutzerinteresse zum erhalt von inhalt
DE202019005789U1 (de) Bereitstellung von Ereignisinhalten
DE112015006537T5 (de) Gerätebasierte filterung von inhaltselementen, die mit mobilen anwendungen verbunden sind
DE202018100131U1 (de) Reduzierern von Umleitungen
DE112012004301T5 (de) Erzeugen einer vorhersagenden Datenstruktur
DE10352400A1 (de) Netzwerkdienst-Abfangvorrichtung
DE112016004130T5 (de) Vorinstanziieren nativer Anwendungen im Hintergrund
DE602004011211T2 (de) Verfahren zur anpassung der dienstortplazierung auf der basis von aus dienstknoten empfangenen neueren daten und aktionen des dienstortsmanagers
DE112017000039T5 (de) Erzeugen von Deeplinks für Anwendungen auf Basis von mehrstufigen Verweisdaten

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years