DE102017130229A1 - Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung - Google Patents
Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung Download PDFInfo
- Publication number
- DE102017130229A1 DE102017130229A1 DE102017130229.8A DE102017130229A DE102017130229A1 DE 102017130229 A1 DE102017130229 A1 DE 102017130229A1 DE 102017130229 A DE102017130229 A DE 102017130229A DE 102017130229 A1 DE102017130229 A1 DE 102017130229A1
- Authority
- DE
- Germany
- Prior art keywords
- event
- server
- coordination
- coordination server
- mapping
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L41/064—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
- H04L41/065—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving logical or physical relationship, e.g. grouping and hierarchies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
- HINTERGRUND
- Der Datenaustausch zwischen mehreren Computersystemen, die durch mehrere verschiedene Parteien kontrolliert werden, kann zu komplexen Zeitschienen führen. Manche Anwendungen versuchen, Korrelationen zwischen Datenereignissen zu identifizieren, ohne in Besitz aller Ereignisdaten zu sein. Dies kann zu widersprüchlichen Ansichten des Ereignisverlaufs führen und eine Nichtzustimmung bezüglich der Zuordnung oder Auswirkung verursachen. Frühere Versuche, diese Nichtzustimmung zu beheben, erforderten übermäßigen Datenaustausch und waren im Allgemeinen mit zusätzlicher Netzwerknutzung verbunden, was unerwünschte Latenz und Verzögerung zum Datenaustausch hinzufügte.
- KURZDARSTELLUNG DER OFFENBARUNG
- Ein veranschaulichendes Verfahren für das Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung beinhaltet das Empfangen, durch einen ersten Koordinationsserver, einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über ein der mehrere Benutzergeräte durchgeführt wird. Das Verfahren beinhaltet das Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen einer Vielzahl von Bestätigungsmeldungen für mehrere Ereignisse, einschließlich des ersten Ereignisses. Das Verfahren beinhaltet ferner das Senden, durch den ersten Koordinationsserver, von Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist.
- In einigen Implementierungen beinhaltet das Verfahren ferner das Empfangen, durch den ersten Koordinationsserver, einer Angabe der Zustimmung oder einer Angabe der Nichtzustimmung für die Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver.
- In einigen Implementierungen beinhaltet das Verfahren ferner das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, wobei das Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne Zugreifen, durch den Zuordnungsserver, auf die mehreren Bestätigungsmeldungen durchgeführt wird.
- In einigen Implementierungen beinhaltet das Verfahren das Empfangen, durch den Zuordnungsserver, einer Benachrichtigung des zweiten Ereignisses und das Senden, durch den Zuordnungsserver, der Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver. In einigen Implementierungen beinhaltet das Verfahren das Empfangen, durch den Zuordnungsserver, der Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver und das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, auf Basis der Daten, die das erste Ereignis beschreiben. In einigen Implementierungen beinhaltet das Verfahren das Senden, durch den Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist, und das Senden der Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
- In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses beinhalten.
- In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen der mehreren Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln.
- In einigen Implementierungen beinhaltet das Verfahren das Durchsuchen der mehreren Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, durch Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist.
- In einigen Implementierungen beinhaltet das Verfahren das Senden, durch den Zuordnungsserver, der Ereigniszuordnungsanfrage für das zweite Ereignis zu einem zweiten Koordinationsserver und das Empfangen, durch den Zuordnungsserver, von Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver. In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem zweiten Koordinationsserver verbunden ist, auf Basis der Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist. In einigen Implementierungen beinhaltet das Verfahren das Senden, durch den Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, und das Senden, durch den Zuordnungsserver, der Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist.
- In einigen Implementierungen beinhaltet das Verfahren das Aktualisieren, durch den ersten Koordinationsserver, der Zuordnungsmetriken des ersten Koordinationsservers, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver. In einigen Implementierungen beinhaltet das Verfahren das Aktualisieren, durch den zweiten Koordinationsserver, der Zuordnungsmetriken des zweiten Koordinationsservers, um anzugeben, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Nichtzustimmung vom Zuordnungsserver.
- In einigen Implementierungen beinhaltet das Verfahren das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis Ereignissen zuordenbar ist, die mit den Daten verbunden sind, die das Ereignis beschreiben, das mit dem zweiten Zuordnungsserver verbunden ist, durch Ermitteln, ob ein Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem zweiten Koordinationsserver verbunden ist, zeitlich einem Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den Zeitstempel beinhalten, der mit dem Ereignis verbunden ist, der mit dem zweiten Koordinationsserver verbunden ist.
- Ein veranschaulichendes System für das Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung beinhaltet einen ersten Koordinationsserver, der eine Verarbeitungsschaltung beinhaltet. Die Verarbeitungsschaltung ist konfiguriert, eine Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver zu empfangen, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines von mehreren Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über ein der mehrere Benutzergeräte durchgeführt wird. Die Verarbeitungsschaltung ist konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, indem sie mehrere Bestätigungsmeldungen für mehrere Ereignisse zu durchsuchen, die das erste Ereignis beinhalten, und Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver zu senden in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist. Ferner ist die Verarbeitungsschaltung so konfiguriert, dass sie eine Angabe der Zustimmung oder einer Angabe der Nichtzustimmung zu der Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver empfängt.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen der mehreren Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, die mehreren Bestätigungsmeldungen mit einer Kennung zu durchsuchen, die mit dem zweiten Ereignis verbunden ist, um eine Zustimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, durch Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, Zuordnungsmetriken des ersten Koordinationsservers zu aktualisieren, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver.
- Ein weiteres veranschaulichendes System für das Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung beinhaltet einen Zuordnungsserver, der eine Verarbeitungsschaltung beinhaltet. Die Verarbeitungsschaltung ist konfiguriert, eine Benachrichtigung eines zweites Ereignisses zu empfangen, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines der mehreren Benutzergeräte nach einem ersten Ereignis durchgeführt wird, das mit einem ersten Koordinationsserver verbunden ist, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der mehreren Benutzergeräte durchgeführt wird. Die Verarbeitungsschaltung ist konfiguriert, eine Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver zu senden. In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver zu empfangen, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, und eine Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln zu senden, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist. Die Verarbeitungsschaltung ist konfiguriert, eine Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln zu senden, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne dass der Zuordnungsserver auf mehrere Bestätigungsmeldungen zugreift, die durch den ersten Koordinationsserver gespeichert werden, wobei die Koordinationsmeldungen Informationen über Ereignisse beinhalten, die mit dem ersten Koordinationsserver verbunden sind, einschließlich dem ersten Ereignis.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses beinhalten.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, die Ereigniszuordnungsanfrage für das zweite Ereignis zu einem zweiten Koordinationsserver zu senden und Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver zu empfangen. Das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, kann eine andere Online-Aktivität sein, die durch den Benutzer über eines der mehreren Benutzergeräte vor dem zweiten Ereignis durchgeführt wird. Die Verarbeitungsschaltung kann konfiguriert sein, zu ermitteln, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem zweiten Koordinationsserver verbunden ist, und die Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln zu senden, dass das mit dem zweiten Koordinationsserver verbundene Ereignis dem zweiten Ereignis nicht zuordenbar ist.
- In einigen Implementierungen ist die Verarbeitungsschaltung konfiguriert, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob ein erster Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein dritter Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem Koordinationsserver verbunden ist, zeitlich einem zweiten Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den dritten Zeitstempel beinhalten.
- In einigen Implementierungen veranlassen die Angabe der Zustimmung und die Angabe der Nichtzustimmung den ersten Koordinationsserver, Zuordnungsmetriken des ersten Koordinationsserver so zu aktualisieren, dass sie angeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist oder nicht zuordenbar ist.
- Nachfolgend finden sich ausführlichere Beschreibungen verschiedener Konzepte, die sich auf Verfahren, Vorrichtungen und Systeme und deren Implementierungen beziehen. Die verschiedenen Konzepte, die vorstehend vorgestellt wurden und nachstehend ausführlicher erörtert werden, können in vielfältiger Weise implementiert werden, da die beschriebenen Konzepte nicht auf eine bestimmte Art und Weise der Implementierung beschränkt sind.
- Figurenliste
- Die oben genannten und damit zusammenhängende Objekte, Funktionen und Vorteile dieser vorliegenden Offenbarung werden durch Bezugnahme auf die folgende detaillierte Beschreibung in Verbindung mit den begleitenden Figuren besser verständlich, wobei gilt:
-
1A zeigt ein Blockdiagramm, das Server veranschaulicht, die netzwerkübergreifende Ereigniszuordnung durchführen können, gemäß einer veranschaulichenden Implementierung; -
1B zeigt ein Blockdiagramm, das ein exemplarisches Computergerät veranschaulicht, das für die Verwendung in den verschiedenen hierin beschriebenen Implementierungen geeignet ist, gemäß einer veranschaulichenden Implementierung; -
2 zeigt ein Ablaufdiagramm für ein Verfahren korrelierender Ereignisse für die Zuordnung zu Servern von1A , gemäß einer veranschaulichenden Implementierung; -
3 zeigt ein Ablaufdiagramm für ein Verfahren der Bestätigung der Zuordnung eines zweiten Ereignisses zu einem Vorgängerereignis mit den Servern von1A , gemäß einer veranschaulichenden Implementierung; -
4 zeigt ein Ablaufdiagramm für ein Verfahren für das Zuordnen von Ereignissen mehrerer Koordinationsserver, gemäß einer veranschaulichenden Implementierung. - Zur Vereinfachung sind in den jeweiligen Figuren ggf. nicht alle Komponenten beschriftet. Die Zeichnungen sollen nicht maßstabsgetreu sein. Ähnliche Referenznummern und Kennzeichnungen in den verschiedenen Figuren weisen auf ähnliche Elemente hin.
- AUSFÜHRLICHE BESCHREIBUNG
- Allgemein bezugnehmend auf die FIGUREN werden verschiedene veranschaulichende Systeme und Verfahren für das Ermitteln der Zuordnung zwischen Ereignissen, die über verschiedene Inhaltsnetzwerke erfolgen, gemäß verschiedenen Implementierungen dargestellt. Wie hierin beschrieben, können ein Zuordnungsserver und einer oder mehrere Koordinationsserver konfiguriert sein, die Zuordnung verschiedener Ereignisse durchzuführen. Die Ereignisse können Online-Interaktionen sein, die ein Benutzer mit Online-Ressourcen über verschiedene Benutzergeräte durchführen kann. Die hierin beschriebenen Systeme und Verfahren können die effiziente Echtzeitzuordnung von Ereignissen mit verbesserter Datensicherheit erreichen.
- Der Zuordnungsserver, wie hierin beschrieben, kann ein Server sein, der konfiguriert ist, die Zuordnung zwischen verschiedenen Online-Aktivitäten durchzuführen, die ein Benutzer durchführen kann. Die Koordinationsserver können ein Server sein, der konfiguriert ist, Angaben der Online-Aktivität des Benutzers zu empfangen, die Online-Aktivität des Benutzers zu speichern und mit dem Zuordnungsserver zu kommunizieren, um die Zuordnung zwischen Aktivitäten zu ermitteln. Wenn ein Inhaltsanbieter mehrere Koordinationsserver verwendet (z. B. ein Inhaltsanbieter stellt Inhalte über mehrere Online-Inhalt-Verteilungsnetzwerke bereit), kann ein Benutzer mit den Inhaltselementen der Koordinationsserver interagieren, bevor er eine Konversion durchführt. Jeder Koordinationsserver kann die Konversion zu Ereignissen zuordnen, die mit den jeweiligen Koordinationsservern verbunden sind. Dies kann jedoch ein Fehler sein, da nur ein Ereignis von einem der Koordinationsserver die Zuordnung für eine Konversion empfangen sollte, nicht beide, da nur eine Konversion erfolgt ist. Diesbezüglich kann der Zuordnungsserver konfiguriert sein, die Duplizierung der Konversionszuordnung über die hierin näher beschriebenen Systeme und Verfahren zu korrigieren.
- In einigen der hierin beschriebenen Systeme wird auf ein erstes Ereignis und ein zweites Ereignis Bezug genommen. Das erste Ereignis kann eine Online-Aktivität sein, wie z. B. eine Interaktion mit einem Inhaltselement, das über ein Online-Inhalt-Verteilungsnetzwerk bereitgestellt wird (z. B. durch Anzeigen und/oder Durchklicken einer Inhaltselement-Impression), die von einem Benutzer über ein Benutzergerät durchgeführt werden kann, z. B. ein Mobiltelefon oder eine Personalcomputer. Der Koordinationsserver kann Daten für das erste Ereignis oder jedwede Anzahl von Ereignissen, die dem ersten Ereignis ähnlich sind, empfangen und speichern. Ein nachfolgendes Ereignis, hierin gemäß einigen Implementierungen als zweites Ereignis bezeichnet, kann eine andere Benutzeraktivität sein, die durch den Benutzer mit einem Benutzergerät durchgeführt wird, die nach dem ersten Ereignis erfolgt. In einigen Implementierungen ist das zweite Ereignis eine Konversion. Eine Konversion kann das Herunterladen und/oder Installieren einer Benutzeranwendung, Durchführen eines Kaufs einer Ware und/oder Dienstleistung, Ansehen eines Videos, Abonnieren eines Servers usw. beinhalten. Über die hierin beschriebenen Verfahren kann die Zuordnung zwischen den ersten und zweiten Ereignissen ermittelt werden.
- Datensicherheit kann durch die hierin beschriebenen Systeme und Verfahren durch Beschränkungen verbessert werden, die bei Daten auferlegt werden, die zwischen dem Koordinationsserver und dem Zuordnungsserver ausgetauscht werden. Um die Ereigniszuordnung zu ermitteln, kann zum Beispiel die gesamte Online-Aktivität eines Benutzers durch den Zuordnungsserver zusammengestellt und die Zuordnung zwischen Ereignissen durch den Zuordnungsserver auf Basis des aggregierten Datensatzes ermittelt werden. Das Aggregieren der Ereignisdaten kann für den Datenschutz unerwünscht sein. Stattdessen können die hierin beschriebenen Koordinationsserver dem Zuordnungsserver nur ausreichende Informationen über das erste Ereignis bereitstellen, sodass der Zuordnungsserver die Zuordnung bestätigen oder ablehnen kann, ohne Daten in Verbindung mit allen Ereignissen des Benutzers von einem Koordinationsserver zu erhalten, oder sogar ohne alle Informationen über das erste Ereignis vom Koordinationsserver zu erhalten. Außerdem wird Netzwerkbandbreite gespart, indem der Austausch zuordenbarer Ereignisse über die beschränkte Kommunikation zwischen Zuordnungsserver und dem Koordinationsserver beschränkt wird, statt große Sätze von Benutzerereignisdaten zu übermitteln.
- Im Allgemeinen können die hierin beschriebenen Verfahren das Empfangen, durch den Koordinationsserver, von Daten für das erste Ereignis und eine Anfrage für die Zuordnung eines zweiten Ereignisses, das nach dem ersten Ereignis erfolgt, vom Zuordnungsserver beinhalten. In Reaktion auf das Empfangen der Anfrage für die Zuordnung des zweiten Ereignisses kann der Koordinationsserver das erste Ereignis durch Durchführen einer Suche bei gespeicherten Ereignisdaten durchführen. Die gespeicherten Ereignisdaten können jedwede Anzahl von Benutzerereignissen sowie Daten beinhalten, die sich auf das erste Ereignis beziehen.
- Der Koordinationsserver kann ein zuordenbares Ereignis aus dem gespeicherten Ereignis (dem ersten Ereignis) identifizieren. Der Koordinationsserver kann eine Beschreibung des ersten Ereignisses an den Zuordnungsserver zurückgeben. In einigen Implementierungen identifizieren die mehreren Koordinationsserver zuordenbare Ereignisse und stellen dem Zuordnungsserver die zuordenbaren Ereignisse bereit. Der Zuordnungsserver kann die Zuordnungen, die von den Koordinationsservern vorgeschlagen werden, auf Basis der Beschreibungen der Ereignisse entweder bestätigen oder ablehnen. Der Zuordnungsserver kann eine Angabe der Zustimmung oder Nichtzustimmung an jeden der Koordinationsserver senden.
- In einigen hierin beschriebenen Implementierungen können mehrere Koordinationsserver Angaben von Online-Benutzeraktivitäten über verschiedene Inhaltsnetzwerke empfangen. Ein Inhaltsanbieter, der Inhaltselemente für einen Benutzer über zwei verschiedene Inhaltsnetzwerke bereitstellt, kann wissen wollen, wie ein Benutzer mit seinen Inhaltselementen über beide Inhaltselemente interagiert. Ein erster Koordinationsserver kann Angaben der Benutzeraktivität mit Inhaltselementen empfangen, die mit dem ersten Inhaltsnetzwerk verbunden sind, während ein zweiter Koordinationsserver Angaben der Benutzeraktivität mit Inhaltselementen empfangen kann, die mit dem zweiten Inhaltsnetzwerk verbunden sind.
- Der Zuordnungsserver kann von einem zweiten Ereignis Kenntnis erlangen, das vom Benutzer durchgeführt wird. Dieses Ereignis kann eine Konversion sein, die ein Benutzer nach Anzeigen von oder Interagieren mit Inhalt des ersten Inhaltsnetzwerks und Inhalt des zweiten Netzwerks hält. Beide Koordinationsserver können ermitteln, dass sie die Konversion verursacht haben, und können Konversionsmetriken in ihren jeweiligen Benutzeroberflächen anzeigen, die die Konversion berücksichtigen. Da jedoch nur eine Konversion erfolgt ist, sind die von den Koordinationsservern gemeldeten Konversionen Duplikate und sollten tatsächlich nur einem Ereignis zugeordnet werden, das mit einem der Koordinationsserver verbunden ist.
- Um diese Duplizierung zu korrigieren, kann der Zuordnungsserver Anfragen für die Zuordnung zu den zwei Koordinationsservern senden und im Gegenzug potenziell zuordenbare Ereignisse von den Koordinationsservern empfangen. Auf Basis dieser potenziell zuordenbaren Ereignisse kann der Zuordnungsserver ermitteln, ob das Konversionsereignis der mit dem ersten Koordinationsserver verbundenen Online-Benutzeraktivität oder der mit dem zweiten Koordinationsserver verbundenen Online-Benutzeraktivität zuordenbar ist. In einigen Implementierungen senden der erste und der zweite Koordinationsserver Informationen bezüglich der jeweiligen Online-Benutzerinteraktionen an den Zuordnungsserver. Diese Informationen können die Zeitstempel beinhalten, zu denen die Interaktionen erfolgt sind. Der Zuordnungsserver kann auf Basis der Zeitstempel nur eine der Online-Benutzeraktionen als der Konversion zuordenbar auswählen. Der Zuordnungsserver kann nur das Ereignis, das zeitlich am nächsten erfolgt, einem Zeitstempel der Konversion zuordnen.
- Der Zuordnungsserver kann eine Bestätigung oder eine Zurückweisung der Zuordnung an den ersten und zweiten Koordinationsserver senden. Wenn der Zuordnungsserver zum Beispiel ermittelt, dass die Online-Ereignisaktivität, die vom ersten Koordinationsserver durchgeführt wird, die Zuordnung empfangen sollte, kann der Zuordnungsserver eine Benachrichtigung der Zuordnung an den Koordinationsserver und eine Benachrichtigung der Nicht-Zuordnung an den zweiten Koordinationsserver senden. Diesbezüglich können beide Koordinationsserver die Datenmetriken, die sie speichern und/oder einem Benutzer präsentieren, genauer aktualisieren. Der erste Koordinationsserver kann in Reaktion auf das Empfangen einer Benachrichtigung der Zuordnung vom Zuordnungsserver ermitteln (oder behaupten), dass die Benutzerinteraktion, die mit dem Koordinationsserver verbunden ist, der Konversion zuordenbar ist. Der zweite Koordinationsserver kann jedoch auf Basis der Angabe der Nicht-Zuordnung ermitteln, dass die Benutzerinteraktion, die mit dem zweiten Koordinationsserver verbunden ist, nicht als die Konversion veranlassend gezählt wird.
- In einigen Ausführungsformen kann jeder Koordinationsserver ein Dashboard beinhalten, das es dem Inhaltsanbieter ermöglicht, Metriken anzuzeigen, die mit der Benutzeraktivität verbunden sind. Jedes Dashboard kann es einem Inhaltsanbieter ermöglichen, die Deduplizierung von Ereignissen über die hierin beschriebenen Systeme und Verfahren für die netzwerkübergreifende Ereigniszuordnung zu aktivieren oder zu deaktivieren. Ähnlich kann der Zuordnungsserver ein Dashboard beinhalten, das es einem Inhaltsanbieter ermöglicht, Metriken anzuzeigen, die mit der Benutzeraktivität verbunden sind, wobei die Benutzeraktivität, mit einem oder mehreren Koordinationsservern verbunden ist. Diesbezüglich können die Koordinationsserver Dashboards beinhalten, die Benutzeraktivität melden, die von jedem jeweiligen Koordinationsserver empfangen wird. Die Aktivierung von Deduplizierung kann den Koordinationsserver veranlassen, am Zuordnungsverfahren teilzunehmen, das durch den Zuordnungsserver ermöglicht wird. Die Deaktivierung der Deduplizierung kann den Koordinationsserver veranlassen, jegliche Anfragen oder Benachrichtigungen zu ignorieren, die vom Zuordnungsserver empfangen werden.
- Für Situationen, in denen die hier erörterten Systeme Informationen über Benutzer sammeln oder Informationen über Benutzer nutzen können, wird den Benutzern ggf. die Möglichkeit gegeben, zu steuern, ob Programme oder Funktionen Benutzerinformationen sammeln (z. B. Informationen über die sozialen Netzwerkdaten eines Benutzers, soziale Aktionen oder Aktivitäten, Beruf, die Vorlieben eines Benutzers oder einen aktuellen Standort eines Benutzers), oder zu steuern, ob oder wie Inhalte vom Inhaltsserver empfangen werden, die für den Benutzer relevanter sein können. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, sodass bestimmte Informationen über den Benutzer entfernt werden. So kann beispielsweise die Identität eines Benutzers so behandelt werden, dass sich für den Benutzer keine identifizierenden Informationen ermitteln lassen, oder ein geografischer Standort eines Benutzers kann beim Empfangen von Standortinformationen verallgemeinert werden (beispielsweise auf eine Stadt, eine Postleitzahl oder ein Bundesland), sodass sich ein genauer Standort eines Benutzers nicht ermitteln lässt. Auf diese Weise kann der Benutzer die Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und von einem Inhaltsserver verwendet werden.
- Wie hier unter Bezugnahme auf
1A ersichtlich, wird ein Blockdiagramm dargestellt, das eine exemplarische Computerumgebung100 für das Durchführen der Ereigniszuordnung veranschaulicht, gemäß einer veranschaulichenden Implementierung. Die Computerumgebung100 ist so dargestellt, dass sie ein Netzwerk110 (z. B. das Internet) beinhaltet, über das das Client-Gerät120 konfiguriert werden kann, um mit anderen über das Netzwerk verbundenen Computersystemen, wie z. B. Servern, die Ressourcen für die Client-Geräte120 bereitstellen, zu kommunizieren. Bei den Ressourcen kann es sich um E-Mails, Webseiten, Streaming von Medien und Anwendungsunterstützung handeln. -
1A ist so dargestellt, dass sie einen Anwendungs-Backend-Server130 , einen Ereignisserver140 , einen Zuordnungsserver150 und einen Koordinationsserver160 beinhaltet. Die Server können über das Netzwerk110 , über ein getrenntes privates Netzwerk oder Backplane (nicht dargestellt) oder über direkte Verknüpfungen kommunizieren. Die Server können von unabhängigen Parteien betrieben werden, sie können von denselben Parteien betrieben werden und/oder sie können konsolidiert sein. Einige Server können Daten für die Verwendung bei der Funktionalität des Servers verwalten, z. B. ist Koordinationsserver160 in Kommunikation mit Datenspeicher190 dargestellt. - Die Client-Geräte
120 , der Anwendungs-Backend-Server130 , der Ereignisserver140 , der Zuordnungsserver150 und/oder der Koordinationsserver160 können konfiguriert sein, verschiedene Verfahren (z. B. die Verfahren wie in Bezug auf2-3 beschrieben) über eine oder mehrere Verarbeitungsschaltungen durchzuführen.1B stellt, wie hierin unter weiterer Bezugnahme beschrieben, ein Blockdiagramm bereit, das ein exemplarisches Computergerät101 mit einer Verarbeitungsschaltung (z. B. einem Prozessor und Speicher) veranschaulicht, das für die Verwendung als Client-Gerät120 und/oder für die Konfiguration als Anwendungs-Backend-Server130 , Ereignisserver140 , Zuordnungsserver150 und/oder Koordinationsserver160 geeignet ist, wie in Bezug auf1A und an anderen Stellen hierin näher beschrieben.1B veranschaulicht außerdem das Netzwerk110 , das die Kommunikation zwischen verschiedenen Knoten ermöglicht, z. B. die Kommunikation zwischen den Client-Geräten120 und Servern, wie z. B. dem Anwendungs-Backend-Server130 und/oder dem Ereignisserver140 . - Wie unter weiterer Bezugnahme auf
1A ersichtlich, können die Client-Geräte120 ein Computersystem oder prozessorbasiertes Gerät beinhalten, das, wie dargestellt, Anwendungen ausführt, Ausgaben für Benutzer präsentiert und Eingaben vom Benutzer empfängt. Das Client-Gerät120 kann jedwede Art von Computergerät beinhalten, wie zum Beispiel Desktopcomputer, Laptops oder Notepads, Mobilgeräte wie Tablets oder elektronische Pads, persönliche digitale Assistenten oder Smartphones, Videospielgeräte, Fernseher oder Fernsehzusatzgeräte (auch „Set-Top Box“ genannt), einen Kiosk, gehostete virtuelle Desktops oder beliebige andere Geräte dieser Art, die in der Lage sind, Informationen über das Netzwerk110 auszutauschen. Das Client-Gerät120 kann konfiguriert sein, Informationen mit anderen Computergeräten von1A über das Netzwerk110 auszutauschen. - Das Client-Gerät
120 kann zum Beispiel konfiguriert sein, Informationen über das Netzwerk110 mithilfe von Protokollen gemäß den Open Systems Interconnection (OSI)-Schichten auszutauschen, z. B. mithilfe eines OSI Schicht-4-Transportprotokolls, wie z. B. das User Datagram Protocol (UDP), das Transmission Control Protocol (TCP) oder das Stream Control Transmission Protocol (SCTP), das über ein OSI Schicht-3 -Netzwerkprotokoll wie das Internet Protocol (IP), z. B. IPv4 oder IPv6, geschichtet wird. In einigen Implementierungen beinhaltet das Client-Gerät120 ein oder mehrere Hardware-Elemente, die die Dateneingabe und Datenpräsentation ermöglichen, z. B. eine Tastatur, eine Anzeige, einen Berührungsbildschirm, ein Mikrofon, einen Lautsprecher und/oder ein haptisches Rückmeldegerät. In einigen Implementierungen beinhaltet das Client-Gerät120 Tasten, z. B. funktionsspezifische Tasten (z. B. Audiogerät-Lautstärkeregler für Lauter-, Leiser- und Stummschalten usw.) und/oder funktionsagnostische Tasten (z. B. Softtasten, denen spezifische Funktionalität auf Softwareebene zugewiesen werden kann). In einigen Implementierungen beinhaltet das Client-Gerät120 einen oder mehrere Sensoren, die in der Lage sind, die Bewegung des Client-Geräts120 selbst zu erkennen, z. B. einen Beschleunigungssensor, ein Gyroskop und/oder einen Kippsensor. - Ein Beschleunigungssensor kann einachsig oder mehrachsig aufgebaut sein. In einigen Implementierungen beinhaltet das Client-Gerät
120 eine Inertialmesseinheit (IMU). In einigen Implementierungen wird das Client-Gerät120 mithilfe von Spezial-Logikschaltungen implementiert, z. B. mithilfe einer anwenderspezifisch integrierten ASIC-Schaltung. In einigen Implementierungen wird das Client-Gerät120 mithilfe eines „System on a Chip“ (SoC)-Halbleitergeräts implementiert, das mindestens einen Prozessor- (oder Mikroprozessor-)kern beinhaltet. In einigen Implementierungen wird das Client-Gerät120 unter Verwendung eines Universalprozessors implementiert.1B veranschaulicht ein Computergerät101 , das sich in einigen Konfigurationen für die Verwendung als Client-Gerät120 eignet. - In einigen Implementierungen führt das Endgerät
120 ein Betriebssystem aus, das die Ausführung von Softwareanwendungen auf dem Client-Gerät120 verwaltet. In einigen Implementierungen wird das Betriebssystem mit dem Client-Gerät120 geliefert. In einigen Implementierungen führt das Client-Gerät120 eine Browseranwendung aus (z. B. einen Webbrowser), der in der Lage ist, Daten zu empfangen, die gemäß Hypertext-Anwendungsprotokollen formatiert sind, wie z. B. dem Hypertext Transfer Protocol (HTTP) und/oder Transport Layer Security-verschlüsseltes HTTP (HTTPS). - In einigen Implementierungen ermöglicht der Browser die Interaktion mit einem oder mehreren Servern über Schnittstellen, die auf dem Client-Gerät
120 in der Form von einer oder mehreren Webseiten präsentiert werden. In einigen Implementierungen wird die Browseranwendung zusammen mit dem Client-Gerät120 geliefert. In einigen Implementierungen führt das Client-Gerät120 eine benutzerdefinierte Anwendung aus, z. B. ein Spiel oder eine andere Anwendung, die mit Servern interagiert, z. B. einem Anwendungs-Backend-Server130 . Interaktionen zwischen der benutzerdefinierten Anwendung und dem Anwendungs-Backend-Server können Standardprotokolle wie HTTP und HTTPS verwenden, oder sie können anwendungsspezifische Protokolle verwenden, z. B. ein benutzerdefiniertes Protokoll auf der Anwendungsschicht, das über einem Protokoll auf der Transportschicht, wie z. B. UDP, TCP oder SCTP, implementiert wird. In einigen Implementierungen beinhaltet das Client-Gerät120 ein Tool für das Erhalten und/oder Installieren zusätzlicher Anwendungen (wie z. B. der benutzerdefinierten Anwendung) auf dem Client-Gerät120 . In einigen Implementierungen wird ein benutzerdefiniertes Anweisungsset, z. B. eine Anwendungsprogrammierschnittstelle (API), durch einen oder mehrere Server unterstützt, die mit dem Client-Gerät120 kommunizieren, und die API wird von der auf dem Client-Gerät120 ausgeführten benutzerdefinierten Anwendung implementiert. Eine Anwendung kann eine API z. B. mithilfe einer Bibliothek/eines Software Development Kits (SDK) implementieren, die/das vom Entwickler der Anwendung bereitgestellt wird. - Das Client-Gerät
120 kann konfiguriert sein, mit verschiedenen Servern, wie z. B. dem Anwendungs-Backend-Server130 und/oder dem Ereignisserver140 , zu kommunizieren (Daten auszutauschen). In einigen Implementierungen werden der eine oder die mehreren Server130 ,140 ,150 und160 mithilfe einer Spezial-Logikschaltung implementiert, z. B. einer anwenderspezifisch integrierten Schaltung (ASIC). In einigen Implementierungen werden der eine oder die mehreren Server130 ,140 ,150 und160 mithilfe eines „System on a Chip“ (SoC)-Halbleitergeräts implementiert, das mindestens einen Prozessor- (oder Mikroprozessor-)kern beinhaltet. In einigen Implementierungen werden der eine oder die mehreren Server130 ,140 ,150 und160 mithilfe eines Universalprozessors implementiert.1B veranschaulicht ein Computergerät, das in einigen Konfigurationen für die Verwendung als der Anwendungs-Backend-Server130 , der Ereignisserver140 , der Zuordnungsserver150 und/oder der Koordinationsserver160 geeignet ist. - In
1A kann der Anwendungs-Backend-Server130 Backend-Unterstützung für eine Anwendung bereitstellen, die auf dem Client-Gerät120 ausgeführt wird. In einigen Implementierungen führt der Anwendungs-Backend-Server130 einen Dienst aus, der Daten vom Client-Gerät120 empfängt und Daten an das Client-Gerät120 sendet. Die Anwendung, die auf dem Client-Gerät120 ausgeführt wird, kann zum Beispiel ein Browser sein, z. B. ein Webbrowser, der Inhalte präsentiert, die vom Anwendungs-Backend-Server130 bereitgestellt werden. Die Anwendung, die auf dem Client-Gerät120 ausgeführt wird, kann ein Spiel sein, z. B. ein Spiel für mehrere Spieler, bei dem Spieldaten für die verschiedenen Spieler durch den Anwendungs-Backend-Server130 gespeichert werden. - Die Anwendung, die auf dem Client-Gerät
120 ausgeführt wird, kann ein Transaktionsmoderator sein, z. B. eine Eintrittskarten- oder Fahrschein-Verwaltungsanwendung, ein Gutscheinabwickler oder ein Zahlungsbearbeiter, wobei einige Daten der Transaktion durch den Anwendungs-Backend-Server130 gespeichert oder authentifiziert werden können, wobei die Anwendung, die auf dem Client-Gerät120 ausgeführt wird, ein Dienstprogramm sein kann, wobei einige Funktionen der Anwendung durch den Anwendungs-Backend-Server130 oder eine beliebige Art von Client-Anwendung bereitgestellt werden, der/die einen Backend-Server130 zur Unterstützung verwendet. In einigen Implementierungen ermöglicht das Speichern der Daten entfernt vom Client-Gerät120 die asynchrone Interaktion zwischen mehreren Benutzern oder Client-Geräten, ermöglicht die Wiederherstellung bei einem Ausfall des Client-Geräts120 und stellt eine Schnittstelle zur Welt über das Netzwerk hinaus bereit. - Der Ereignisserver
140 kann, wie der Anwendungs-Backend-Server130 , serverseitige Funktionalität für eine Anwendung bereitstellen, die auf dem Client-Gerät120 ausgeführt wird. Die Anwendung, die auf dem Client-Gerät120 ausgeführt wird, kann konfiguriert sein, Anfragen oder Ereignisbenachrichtigungen zu erzeugen und an den Anwendungs-Backend-Server130 und/oder einen Ereignisserver140 zu senden. Die Anwendung kann zum Beispiel spezifische Daten vom Anwendungs-Backend-Server130 anfordern oder den Ereignisserver140 über eine Zustandsänderung am Client-Gerät120 benachrichtigen. In einigen Implementierungen sind der Anwendungs-Backend-Server130 und der Ereignisserver140 derselbe Server oder werden von derselben Partei betrieben oder verwaltet, z. B. im selben autonomen System (AS)-Netzwerk. - In einigen Implementierungen sind der Anwendungs-Backend-Server
130 und der Ereignisserver140 getrennte Server und werden, in einigen Implementierungen, von verschiedenen Parteien betrieben oder verwaltet. Das heißt, in einigen Implementierungen kann der Ereignisserver140 von einer dritten Partei kontrolliert werden. In einigen Implementierungen kann die Anwendung, die auf dem Client-Gerät120 ausgeführt wird, konfiguriert sein, Ereignisbenachrichtigungen zu erzeugen und an den Ereignisserver140 zu senden für Ereignisse, wie z. B. eine Erstinstallation der Anwendung auf dem Client-Gerät120 , ein Startereignis für die Anwendung auf dem Client-Gerät120 , ein Benutzerinteraktionsereignis, wie z. B. ein Auswahlereignis auf dem Client-Gerät120 , Einlösungsereignisse, wobei die Anwendung eine begrenzte Ressource verbraucht hat (z. B. kann eine Ticketanwendung den Ereignisserver benachrichtigen, dass das Ticket für den Erhalt des Zugangs zu einer Veranstaltung oder einer Fahrt verwendet wurde), Fehlerereignisse, wie z. B. ein Anwendungsfehler am Client-Gerät120 und so weiter. In einigen Implementierungen kann der Anwendungs-Backend-Server130 konfiguriert sein, zu ermitteln, dass ein Ereignis erfolgt ist, und die Benachrichtigung dem Ereignisserver140 bereitstellt. Das Client-Gerät120 kann zum Beispiel den Backend-Server130 benachrichtigen, der wiederum den Ereignisserver140 benachrichtigt. - Der Zuordnungsserver
150 kann ein Computersystem sein, das Daten für das Korrelieren von Ereignissen und Identifizieren der Zuordnung verwaltet. Der Zuordnungsserver150 kann konfiguriert sein, mit dem Koordinationsserver160 zu interagieren, um Koordinationsereignisse zu identifizieren, die für Ereignisse zuordenbar sind, die durch den Ereignisserver140 behandelt werden. In einigen Implementierungen kann der Ereignisserver140 konfiguriert sein, mit dem Zuordnungsserver150 zu interagieren, um Ereignissequenzen zu ermitteln, die der Zuordnung entsprechen. In einigen Implementierungen sind der Ereignisserver140 und der Zuordnungsserver150 derselbe Server oder werden von derselben Partei betrieben oder verwaltet, z. B. im selben autonomen System (AS)-Netzwerk. In einigen Implementierungen sind der Ereignisserver150 und der Anwendungs-Backend-Server140 getrennte Server und werden, in einigen Implementierungen, von verschiedenen Parteien betrieben oder verwaltet. Das heißt, in einigen Implementierungen kann der Zuordnungsserver150 von einer Drittpartei kontrolliert werden. - Der Koordinationsserver
160 kann ein Computersystem sein, das für das Koordinieren von Ereignissen konfiguriert ist. In einigen Implementierungen sendet der Koordinationsserver160 Koordinationsmeldungen an das Client-Gerät120 und empfängt Angaben von Antworten auf die Koordinationsmeldungen. Die Koordinationsmeldungen können zum Beispiel Einladungen sein, eine Aktion durchzuführen (z. B. eine Anwendung zu installieren, auf eine Webseite zuzugreifen oder einen Kauf zu tätigen), und die Antwort kann ein Ergebnis angeben (z. B. Ausführung der installierten Anwendung, eine Anfrage, auf die Webseite zuzugreifen, oder eine Kauftransaktion). Ereignisse können eine Sequenz bilden, die in einem Folge-Ereignis kulminiert (z. B. Installation einer Anwendung), und der Zuordnungsserver150 identifiziert Verbindungen zwischen Ereignissen, um ein oder mehrere Ereignisse für die Zuordnung in der Sequenz zu identifizieren, die mit dem Folge-Ereignis kulminiert. In einigen Implementierungen identifiziert der Zuordnungsserver150 ein vorletztes Ereignis für die Zuordnung als direkt zum Folge-Ereignis führend. In manchen Fällen kann die Koordinationsmeldung zu einer Reihe von Ereignissen führen, an denen der Koordinationsserver160 nicht beteiligt ist. - Die Koordinationsmeldung kann zum Beispiel ein Client-Gerät
120 mit einer Anwendungsinstallationsschnittstelle verbinden; der Koordinationsserver160 kann eine Antwort empfangen, die angibt, dass das Client-Gerät120 auf die Anwendungsinstallationsschnittstelle zugegriffen hat, aber möglicherweise keine weiteren Informationen dahingehend empfangen, ob eine Anwendung auf dem Client-Gerät120 von der Anwendungsinstallationsschnittstelle installiert wurde. Wenn die Anwendung später auf dem Client-Gerät120 installiert wird, kann es sein, dass das Installationsereignis der Einladung zuordenbar ist, oder es kann sein, dass ein dazwischenliegendes Ereignis (z. B. eine Einladung, die von einem anderen Koordinationsserver stammt) zugeordnet werden sollte. - Der Koordinationsserver
160 kann konfiguriert sein, Daten im Datenspeicher190 zu speichern und/oder abzurufen. Die im Datenspeicher190 gespeicherten Daten können zum Beispiel Konfigurationsdaten, Koordinationsmeldungsdaten und Statistiken für Koordinationsmeldungen beinhalten. Der Datenspeicher190 kann mithilfe eines oder mehrerer Datenspeichergeräte implementiert werden. Das Datenspeichergerät kann ein beliebiges Speichergerät sein, das für die Speicherung computerlesbarer Daten geeignet ist. Die Datenspeichergeräte können ein Gerät mit Festspeicher oder ein Gerät zum Einlesen von Wechselspeichermedien sein. Beispiele beinhalten alle Formen von nicht flüchtigem Speicher, Medien und Speichergeräten, Halbleiterspeichergeräten (z. B. EPROM, EEPROM, SDRAM und USB-Flash-Speichergeräte), magnetische Datenträger, magneto-optische Datenträger und optische Datenträger (z. B. CD-ROM, DVD-ROM oder BLU-RAY-Discs). Exemplarische Implementierungen von geeigneten Datenspeichergeräten beinhalten Speichernetzwerk (SAN), netzgebundenen Speicher (NAS) und redundante Speicher-Arrays (z. B. RAID-Arrays). In einigen Implementierungen hostet der Datenspeicher190 eine relationale Datenbank, z. B. mithilfe eines relationalen Datenbankverwaltungssystems (RDBMS). In einigen Implementierungen verwaltet der Datenspeicher190 Daten, die als Dateien, z. B. als XML-Dateien, gespeichert sind. - Auch wenn in
1A nicht dargestellt, können mehrere Server, einschließlich der Anwendungs-Backend-Server130 , der Ereignisserver140 , der Zuordnungsserver150 und/oder der Koordinationsserver160 , unabhängige oder gemeinsame Datenspeichergeräte, wie z. B. den veranschaulichten Datenspeicher190 , verwenden. - Wie hier unter Bezugnahme auf
1B ersichtlich, wird ein Blockdiagramm eines exemplarischen Computersystems101 gemäß einer veranschaulichenden Implementierung dargestellt. Das Computersystem101 ist für die Verwendung bei der Implementierung hierin beschriebener Computerkomponenten, in Zustimmung mit einer veranschaulichenden Implementierung, geeignet. Als allgemeiner Überblick beinhaltet das Computersystem101 einen Prozessor102 für die anweisungsgemäße Durchführung von Aktionen, z. B. Anweisungen, die im Zwischenspeicher103 abgelegt werden. Das veranschaulichte exemplarische Computersystem101 beinhaltet einen oder mehrere Prozessoren102 und Koprozessoren104 in Kommunikation über einen Bus105 , mit einem Hauptspeicher106 , einen Netzwerkschnittstellen-Controller107 , eine Eingabe/Ausgabe (E/A)-Schnittstelle 108 und einen Datenspeicher109 . In einigen Implementierungen kann das Computersystem101 zusätzliche Schnittstellen oder andere Komponenten116 beinhalten. - In einigen Implementierungen kann ein Prozessor
102 konfiguriert sein, Anweisungen vom Hauptspeicher106 (oder vom Datenspeicher109 ) in den Zwischenspeicher103 zu laden. Außerdem kann der Prozessor102 konfiguriert sein, Anweisungen aus dem Zwischenspeicher103 in Onboard-Register zu laden und Anweisungen aus den Onboard-Registern auszuführen. In einigen Implementierungen sind Anweisungen in einem hier nicht dargestellten, schreibgeschützten Speicher (ROM) oder einem Firmware-Speicherchip (z. B. Speichern von Anweisungen für ein Basic I/O-System (BIOS)) codiert und werden von demselben eingelesen. - Wie dargestellt, ist der Prozessor
102 direkt mit dem Zwischenspeicher103 verbunden. In einigen Implementierungen ist der Zwischenspeicher103 jedoch in den Prozessor102 integriert und/oder auf derselben Schaltung oder demselben Chip implementiert wie der Prozessor102 . Einige Implementierungen beinhalten mehrere Schichten oder Ebenen von Zwischenspeicher103 , die jeweils weiter vom Prozessor102 entfernt sind. Einige Implementierungen beinhalten mehrere Prozessoren102 und/oder Koprozessoren104 , die den Prozessor102 durch Unterstützung für zusätzliche spezialisierte Anweisungen erweitern (z. B. ein mathematischer Koprozessor, ein Gleitpunkt-Koprozessor und/oder ein Grafik-Koprozessor). Wie dargestellt, ist der Koprozessor104 eng mit dem Prozessor102 verbunden. In einigen Implementierungen ist der Koprozessor104 jedoch in den Prozessor102 integriert oder auf derselben Schaltung oder demselben Chip implementiert wie der Prozessor102 . In einige Implementierungen ist der Koprozessor104 weiter vom Prozessor102 entfernt, z. B. mit dem Bus105 verbunden. - Der Netzwerkschnittstellen-Controller
107 kann konfiguriert sein, eine oder mehrere Netzwerkschnittstellen117 für die Verbindung mit Netzwerkgeräten114 (z. B. für den Zugriff auf ein Netzwerk110 ) zu steuern. Die E/A-Schnittstelle 108 kann konfiguriert sein, das Senden und Empfangen von Daten zu/von verschiedenen E/A-Geräten 118 zu ermöglichen, wie z. B. unter anderem Tastaturen, Berührungsbildschirme, Mikrofone, Bewegungssensoren, Videoanzeigen, Lautsprecher, haptische Rückmeldegeräte, Drucker und so weiter. In einigen Implementierungen sind ein oder mehrere der E/A-Geräte 118 in das Computersystem101 integriert. In einigen Implementierungen sind ein oder mehrere der E/A-Geräte 118 extern und getrennt vom Computersystem101 . In einigen Implementierungen ist das Computersystem101 mithilfe einer Spezial-Logikschaltung implementiert, z. B. einer anwendungsspezifischen integrierten Schaltung (ASIC) oder eines „System on a Chip“-Halbleitergeräts, das den Prozessor102 und eine oder mehrere zusätzliche Komponenten beinhaltet, z. B. den Zwischenspeicher103 , den Netzwerkschnittstellen-Controller107 und die Netzwerkschnittstelle117 und eine oder mehrere E/A-Schnittstellen 108. - Bei den Prozessoren
102 kann es sich um eine beliebige Logikschaltung handeln, die Anweisungen verarbeitet, z. B. Anweisungen, die aus dem Zwischenspeicher103 , Hauptspeicher106 , Datenspeicher109 oder einem anderen Speicher, der nicht dargestellt ist, geholt werden. Der Prozessor102 beinhaltet eine Reihe von Daten- und Anweisungsregistern. In einigen Implementierungen kann der Prozessor102 konfiguriert sein, beim Starten (Booten) anfängliche Anweisungen von einem BIOS in die Register zu laden, einschließlich Anweisungen zum Laden von weiteren Anweisungen, und Anweisungen von den Registern auszuführen. In einigen Implementierungen veranlassen die BIOS-Anweisungen den Prozessor102 ein Betriebssystem (OS) zu laden, was wiederum den Prozessor102 veranlasst, eines oder mehrere Programme zu laden und auszuführen. - Die Prozessoren
102 können durch einen oder mehrere Hilfs-Koprozessoren104 erweitert werden, die Hilfsverarbeitungseinheiten mit spezialisierten Anweisungssätzen für spezifische Zwecke sind. In einigen Implementierungen gibt der Prozessor102 , wenn er mit einer nicht erkannten Anweisung konfrontiert ist, die Anweisung an den Koprozessor104 weiter, z. B. über einen Spezialbus, und erzeugt nur einen Fehler wegen nicht erkannter Anweisung, wenn der Koprozessor104 die Anweisung ebenfalls nicht erkennt. Die Prozessoren102 und Koprozessoren104 können Einkern- oder Mehrkernprozessoren sein. - Das Computersystem
101 kann mehrere unterschiedliche Prozessoren102 und/oder mehrere unterschiedliche Koprozessoren104 beinhalten. In einigen Implementierungen kann zum Beispiel ein Universalprozessor102 , wie z. B. eine zentrale Verarbeitungseinheit (CPU), durch einen oder mehrere Spezial-Koprozessoren104 , wie zum Beispiel einen mathematischen Koprozessor, einen Gleitpunkt-Koprozessor oder einen Grafikprozessor (GPU), erweitert werden. Ein mathematischer Koprozessor104 kann zum Beispiel den Prozessor102 bei Berechnungen mit hoher Präzision oder komplexen Berechnungen unterstützen. In einigen Implementierungen sind der/die Prozessor(en)102 und Koprozessoren104 als Schaltung auf einem oder mehreren Chips implementiert. Das Computersystem101 kann auf einem beliebigen Prozessor102 oder einem Satz von Prozessoren102 und/oder Koprozessoren104 basieren, die in der Lage sind, wie hierin beschrieben zu funktionieren. - Der Zwischenspeicher
103 ist im Allgemeinen eine Form von Computerspeicher, der für schnelle Zugriffszeiten in enger Nähe zu einem Prozessor102 platziert ist. In einigen Implementierungen ist der Zwischenspeicher103 eine Speicherschaltung, die Teil von oder auf demselben Chip wie ein Prozessors102 ist. In einigen Implementierungen gibt es mehrere Zwischenspeicherebenen103 , z. B. Zwischenspeicherschichten L2 und L3. In einigen Implementierungen wird von mehreren Prozessoren102 und/oder mehreren Kernen eines Prozessors102 auf denselben Zwischenspeicher103 zugegriffen. - Der Speicher
106 kann ein beliebiges Gerät sein, das für die Speicherung computerlesbarer Daten geeignet ist. Der Hauptspeicher106 ist ein Gerät, das direkten Zugriff auf spezifizierte Adressen unterstützt, d. h. der Hauptspeicher106 ist ein Direktzugriffsspeicher (RAM). In einigen Implementierungen ist der Hauptspeicher106 ein flüchtiges Halbleiter-Speichergerät, wie z. B. ein dynamischer Direktzugriffsspeicher (DRAM), ein synchroner dynamischer Direktzugriffsspeicher (SDRAM), ein SDRAM mit doppelter Datenrate (DDR SDRAM), ein statischer Direktzugriffsspeicher (SRAM), T-RAM, Z-RAM und so weiter. Das Computersystem101 kann eine beliebige Anzahl von Geräten aufweisen, die als Hauptspeicher106 dienen. - Das Datenspeichergerät
109 kann ein beliebiges Gerät sein, das für die Speicherung computerlesbarer Daten zwischen Stromzyklen geeignet ist. In einigen Implementierungen ist der Datenspeicher109 ein Gerät mit festem Speichermedium, wie z. B. magnetische Datenträger, z. B. ein Festplattenlaufwerk (HDD). In einigen Implementierungen ist der Datenspeicher109 ein Gerät mit einem Wechselspeichermedium, wie z. B. magnetischem Datenträger (z. B. einer Diskette oder einem Wechseldatenträger), Magnetband, magnetooptischen Datenträger oder optischen Datenträger (z. B. CD ROM-, DVD-ROM- oder BLU-RAY-Discs). In einigen Implementierungen ist der Datenspeicher109 ein nicht flüchtiges Halbleiter-Speichergerät, wie z. B. ein löschbarer programmierbarer schreibgeschützter Speicher (EPROM), ein elektrisch löschbarer programmierbarer schreibgeschützter Speicher (EPROM) oder Flash-Speicher. In einigen Implementierungen ist der Hauptspeicher106 ein Solid-State-Laufwerk (SSD), z. B. unter Verwendung von Multi-Level-Cell (MLC) NANDbasiertem Flash-Speicher. Ein Computersystem101 kann eine beliebige Anzahl von Geräten aufweisen, die als Datenspeicher109 dienen. - Wie unter weiterer Bezugnahme auf
1B ersichtlich, ist der Bus105 eine Schnittstelle, die Datenaustausch zwischen den verschiedenen internen Komponenten des Computersystems101 bereitstellt, z. B. Verbinden des Prozessors102 mit dem Hauptspeicher106 , dem Netzwerkschnittstellen-Controller107 , der E/A-Schnittstelle 108 und dem Datenspeicher109 . In einigen Implementierungen stellt der Bus105 ferner Datenaustausch mit einer oder mehreren Komponenten außerhalb des Computersystems101 , wie z. B. anderen Komponenten116 , bereit. In einigen Implementierungen beinhaltet der Bus105 serielle und/oder parallele Kommunikationsverbindungen. In einigen Implementierungen implementiert der Bus105 einen Datenbus-Standard, wie z. B. Integrated Drive Electronics (IDE), Peripheral Component Interconnect Express (PCI), Small Computer System Interface (SCSI) oder Universal Serial Bus (USB). In einigen Implementierungen hat das Computersystem101 mehrere Busse105 . - Das Computersystem
101 kann ein oder mehrere Eingabe- oder Ausgabe- (E/A)-Geräte 118 beinhalten oder Schnittstellen108 dafür bereitstellen. Die E/A-Geräte 118 beinhalten Eingabegeräte, wie z. B. unter anderem Tastaturen, Berührungsbildschirme, Berührungsfelder (z. B. elektromagnetische Induktionspads, elektrostatische Pads, kapazitive Pads usw.), Mikrofone, Steuerhebel (Joysticks), Fußpedale, Inertialmesseinheiten (IMUs), Beschleunigungssensoren, Gyroskope, Kippsensoren, Bewegungssensoren, Umgebungssensoren, Musical Instrument Digital Interface (MIDI)-Eingabegeräte, wie z. B. MIDI-Instrumente (z. B. MIDI-Keyboards), Eingabestifte und Zeigegeräte, wie z. B. eine Maus oder eine Steuerkugel (Trackball). Ausgabegeräte beinhalten, ohne Einschränkung, Videoanzeigen, Lautsprecher, haptische Rückmeldegeräte, Braillezellen, Leuchten, Servos, MIDI-Ausgabegeräte, wie z. B. MIDI-Synthesizer und zwei- oder dreidimensionale Drucker (einschließlich, jedoch nicht beschränkt auf Tintenstrahldrucker, Laserdrucker, thermographische Drucker, stereolithographische Drucker, Extrusionsabscheidungsdrucker und Metallsinterdrucker). - Das Netzwerk
110 ermöglicht die Kommunikation zwischen verschiedenen Knoten, wie z. B. dem Computersystem101 und einem Netzwerkgerät114 . In einigen Implementierungen werden Daten über das Netzwerk110 als Fluss von Datenpaketen von einem Quellknoten auf einen Zielknoten übertragen, z. B. in Form von Datenpaketen gemäß den OSI-Schichten (Open Systems Interconnection). Ein Datenpaketfluss kann zum Beispiel ein OSI-Schicht-4-Transportprotokoll verwenden, wie z. B. das User Datagram Protocol (UDP), das Transmission Control Protocol (TCP) oder das Stream Control Transmission Protocol (SCTP), das über das Netzwerk110 übertragen und über ein OSI-Schicht-3 -Netzwerkprotokoll, wie z. B. das Internetprotokoll (IP), z. B. IPv4 oder IPv6, geschichtet wird. Das Netzwerk110 setzt sich aus verschiedenen miteinander verbundenen Netzwerkgeräten (Knoten) zusammen, durch die ein oder mehrere Kommunikationspfade zwischen den beteiligten Geräten gebildet werden. Jedes Netzwerkgerät beinhaltet mindestens eine Netzwerkschnittstelle zum Senden und/oder Empfangen von Daten, in der Regel als ein oder mehrere Datenpakete. Ein exemplarisches Netzwerk110 ist das Internet; es können jedoch auch andere Netzwerke verwendet werden. Das Netzwerk110 kann ein autonomes System (AS) sein, d. h. ein Netzwerk, das unter einer konsistenten, vereinheitlichten Routing-Richtlinie betrieben wird (oder zumindest von außerhalb des AS-Netzwerks so erscheint), und es wird im Allgemeinen durch eine einzige administrative Entität (z. B. einen Systemoperator, einen Administrator oder eine Administratorgruppe) verwaltet. - Das Netzwerk
110 kann aus mehreren verbundenen Teilnetzwerken oder AS-Netzwerken bestehen, die sich an einem oder mehreren der Folgenden treffen: einem dazwischenliegenden Netzwerk (einem Transitnetzwerk), einem doppelverbundenen Gateway-Knoten, einem Point of Presence (POP) einem Internet eXchange Point (IXP) und/oder zusätzlichen anderen Netzwerkgrenzen. Das Netzwerk110 kann ein lokales Netzwerk (LAN), wie z. B. ein Unternehmensintranet, ein regionales Netzwerk (MAN), ein Großraumnetzwerk (WAN), ein netzwerkübergreifendes Netzwerk, wie z. B. das Internet oder ein Peer-to-Peer-Netzwerk, z. B. ein Adhoc-Peer-to-Peer-WLAN-Netzwerk, sein. Bei den Datenverbindungen zwischen Knoten im Netzwerk110 kann es sich um eine beliebige Kombination physischer Verbindungen (z. B. Glasfaser, Maschen, Koaxial, Twisted-Pair, wie z. B. Kat-5 oder Kat-6-Kabel usw.) und/oder um drahtlose Verbindungen (z. B. Funk, Satellit, Mikrowellen usw.) handeln. - Das Netzwerk
110 kann Trägernetzwerke für mobile Kommunikationsgeräte beinhalten, z. B. Netzwerke, die drahtlose Kommunikationsprotokolle, wie z. B. Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long-Term Evolution (LTE) oder beliebige andere Protokolle dieser Art implementieren, einschließlich u. a Protokollgenerationen, die als „3G“, „4G“, und „5G“ bekannt sind. Das Netzwerk110 kann drahtlose Kurzstreckenverbindungen z. B. über WLAN, BLUETOOTH, BLE oder ZIGBEE beinhalten, die manchmal als PAN (Personal Area Network) oder Maschennetzwerk bezeichnet werden. Das Netzwerk kann ein öffentliches, privates oder eine Kombination aus öffentlichen und privaten Netzwerken sein. Bei dem Netzwerk110 kann es sich um eine beliebige Art und/oder Form von Datennetzwerken und/oder Kommunikationsnetzwerken handeln. - Der Netzwerkschnittstellen-Controller
107 verwaltet den Datenaustausch mit Geräten im Netzwerk110 (z.B. dem Netzwerkgerät114 ) über die Netzwerkschnittstelle117 (manchmal als Netzwerkschnittstellenport bezeichnet). Der Netzwerkschnittstellen-Controller107 bewältigt die physischen und Datenverbindungsschichten des Open Systems Interconnection (OSI)-Modells für die Netzwerkkommunikation. In einigen Implementierungen werden einige der Aufgaben des Netzwerkschnittstellen-Controllers durch die Prozessoren102 und/oder Koprozessoren104 verarbeitet. In einigen Implementierungen ist der Netzwerkschnittstellen-Controller107 in den Prozessor102 , z. B. als Schaltung auf demselben Chip, integriert. In einigen Implementierungen hat ein Computersystem101 mehrere Netzwerkschnittstellen, 117, die von einem einzigen Controller107 gesteuert werden. In einigen Implementierungen hat ein Computersystem101 mehrere Netzwerkschnittstellencontroller107 . In einigen Implementierungen ist jede Netzwerkschnittstelle117 ein Verbindungspunkt für eine physische Netzwerkverbindung (z. B. eine Kat-5-Ethernet-Verbindung). - In einigen Implementierungen unterstützt der Netzwerkschnittstellen-Controller
107 drahtlose Netzwerkverbindungen und eine Schnittstelle117 ist ein drahtloser (z. B. Funk) Empfänger/Sender (z.B. für IEEE802.11 WLAN-Protokolle, Nahfeldkommunikation (NFC), BLUETOOTH LOW ENERGY (BLE), ZIGBEE, ANT oder ein beliebiges anderes drahtloses Protokoll). In einigen Implementierungen implementiert der Netzwerkschnittstellen-Controller107 eines oder mehrere Netzwerkprotokolle, z. B. Ethernet. Im Allgemeinen kann das Computersystem101 konfiguriert sein, Daten mit anderen Computergeräten über physische oder drahtlose Verbindungen durch eine Netzwerkschnittstelle117 auszutauschen. Die Netzwerkschnittstelle117 kann direkt mit einem anderen Gerät oder über ein zwischengeschaltetes Gerät, z. B. ein Netzwerkgerät114 wie einem Hub, einer Bridge, einem Switch oder einem Router, mit einem anderen Gerät verbunden sein, das das Computersystem101 mit einem Netzwerk110 verbindet. - Das Netzwerkgerät
114 kann ein Hub, ein Switch, ein Router, ein Modem, eine Netzwerk-Bridge, ein anderes Computersystem101 oder ein beliebiger anderer Netzwerkknoten sein. In einigen Implementierungen ist das Netzwerkgerät114 ein Netzwerk-Gateway. In einigen Implementierungen ist das Netzwerkgerät114 ein Routing-Gerät, das mithilfe individueller Hardware implementiert ist, wie z. B. ein Spezialprozessor und/oder ein dreifach inhaltsadressierbarer Speicher (TCAM). - Die anderen Komponenten
116 können eine alternative E/A-Schnittstelle, serielle Anschlüsse für externe Geräte und beliebige zusätzliche Koprozessoren104 beinhalten, die über den Bus105 verbunden sind. Ein Computersystem101 kann zum Beispiel eine Schnittstelle (z. B. eine Universal Serial Bus (USB)-Schnittstelle) für das Verbinden von externen Eingabegeräten, Ausgabegeräten oder zusätzlichen Speichergeräten (z. B. tragbarem Flash-Speicher oder einem externen Medienlaufwerk) beinhalten. - Das veranschaulichte Computersystem
101 ist für das Implementieren von Systemen geeignet, die Daten verwalten oder organisieren. In einigen Implementierungen hostet das Computersystem101 zum Beispiel eine Datenbank. Eine Datenbank oder genauer gesagt ein Datenbankverwaltungssystem (DBMS) organisiert Daten gemäß einer Datenbankdefinition, z. B. einem Datenbankschema. In einer einfachen relationalen Datenbank werden Daten zum Beispiel durch das DBMS in einer tabellenartigen Datenstruktur verwaltet. Jede Tabelle enthält Spalten, die jeweils einem Eintragstyp, einer Klassifizierung oder einem Zweck entsprechen. Eine Tabelle könnte zum Beispiel eine Spalte für numerische Daten, eine Spalte für Textdaten (z. B. eine Beschreibung der numerischen Daten), eine Spalte für Datumsdaten usw. enthalten. In einigen Implementierungen stellt eine Spalte strukturierte Daten dar, die mehrere Datenelemente in einer einzelnen Spalte darstellen. Jeder Eintrag in einer relationalen Datenbank steht zugleich in einer Spalte und in einer Zeile einer Tabelle, die den Eintrag mit Einträgen aus anderen Spalten in der Tabelle verknüpft. - In einigen Fällen verbindet ein Eintrag (oder eine Kombination von Einträgen) eine Zeile aus einer Tabelle mit einer oder mehreren Zeilen in einer anderen Tabelle. In einigen DBMS-Implementierungen werden Daten, die aus einer oder mehreren Tabellen abgerufen werden, in virtuellen Tabellen, die als „Ansichten“ bezeichnet werden, so dargestellt, als ob es sich auch um eine Tabelle handeln würde (d. h. die Ansicht sieht für einen Datenbank-Client oder Benutzer wie eine Tabelle aus, ist jedoch nicht unbedingt als solche gespeichert). Andere Arten von Datenbankverwaltungssystemen können ebenfalls verwendet werden, einschließlich verschiedener Arten von relationalen Datenbanken, objektorientierten Datenbanken, dokumentorientierten Datenbanken, eXtensible Markup Language (XML)-Datenbanken, NoSQL-Datenbanken und so weiter. Viele dieser Datenbanktypen verwenden, wie oben unter Bezugnahme auf relationale Datenbanken beschrieben, Tabellen oder tabellenartige Strukturen auf ähnliche Weise. In einigen Datenbankimplementierungen werden Daten nicht in einer Tabelle, sondern in anderer Form gespeichert oder dargestellt, z. B. als eine Sammlung von Datentupeln.
- Daten können von einem Client oder Benutzer einer Datenbank anhand von Datenbankbefehlen hinzugefügt, geändert oder abgerufen werden, indem er beispielsweise eine Datenbankabfragesprache, wie die strukturierte Abfragesprache (SQL), verwendet. Ein oder mehrere Datenbankbefehle können zu einer Datenbanktransaktion zusammengefasst werden. Für gewöhnlich sorgt eine Datenbank für Atomarität, Konsistenz, Isolation und Beständigkeit. Diese Eigenschaften sind unter dem Akronym „ACID“ bekannt. In einigen Implementierungen bietet ein DBMS alle ACID-Eigenschaften. In einigen Implementierungen bietet das DBMS jedoch nicht alle ACID-Eigenschaften.
- In einigen Implementierungen stehen ein oder mehrere Client-Geräte
120 , wie z. B. Instanzen des Computersystems101 , in Kommunikation mit dem DBMS, z. B. über eine direkte Verbindung oder über das Netzwerk110 . In einigen Implementierungen erhalten ein oder mehrere der Clients Daten vom DBMS mithilfe von Abfragen in einer formellen Abfragesprache, wie z. B. Structured Query Language (SQL), Hyper Text Structured Query Language (HTSQL), Contextual Query Language (CQL), Data Mining Extensions (DMX) oder XML Query (XQuery). In einigen Implementierungen erhalten ein oder mehrere Clients Daten vom DBMS mithilfe einer prozessübergreifenden Kommunikationsarchitektur, wie z. B. Common Object Request Broker Architecture (CORBA), Remote Procedure Calls (RPC), Object Linking and Embedding (OLE), Component Object Model (COM) oder Distributed Component Object Model (DCOM). In einigen Implementierungen erhalten ein oder mehrere Clients Daten vom DBMS mithilfe natürlicher Sprache oder semantischer Abfragen. In einigen Implementierungen erhalten ein oder mehrere Clients Daten vom DBMS mithilfe von Abfragen in einer benutzerspezifischen Abfragesprache, wie z. B. einer Visualization-API-Abfragesprache. - Wie hier unter Bezugnahme auf
2 ersichtlich, ist ein Ablaufdiagramm für ein Verfahren200 für das Korrelieren von Ereignissen gemäß einer veranschaulichenden Implementierung dargestellt. Der Anwendungs-Backend-Server130 , der Ereignisserver140 , der Zuordnungsserver150 und/oder der Koordinationsserver160 können konfiguriert sein, das Verfahren200 durchzuführen. Außerdem kann jedes hierin beschriebene Computergerät konfiguriert sein, das Verfahren200 durchzuführen. - Als allgemeiner Überblick des Verfahrens
200 empfängt der Koordinationsserver160 in Phase210 eine Bestätigungsmeldung für ein erstes Ereignis. Der Koordinationsserver160 kann eine große Anzahl an Bestätigungsmeldungen empfangen, die jeweils einem jeweiligen Ereignis entsprechen. Die Meldungen können von einem Client-Gerät120 von einem Drittpartei-Server oder von irgendeinem anderen Computergerät empfangen werden. In Phase220 empfängt der Koordinationsserver160 , von einem Zuordnungsserver150 , eine Anfrage für Zuordnung eines zweiten Ereignisses. - In Phase
230 durchsucht der Koordinationsserver160 gespeicherte Bestätigungsmeldungsdaten, z. B. Daten, die einer großen Anzahl an Bestätigungsmeldungen entsprechen, die Daten für die Bestätigungsmeldung beinhalten, die in Phase210 empfangen wurde. In Phase240 identifiziert der Koordinationsserver160 das erste Ereignis aus der Suche. In einigen Implementierungen wird das erste Ereignis in Phase240 als eines von mehreren Kandidatenereignissen für die Zuordnung identifiziert. - In Phase
250 gibt der Koordinationsserver160 dem Zuordnungsserver150 Daten, die das erste Ereignis beschreiben, in Reaktion auf die Anfrage, die in Phase220 empfangen wurde, zurück. Der Zuordnungsserver150 kann aus den Daten, die das erste Ereignis beschreiben, ermitteln, ob das zweite Ereignis dem ersten Ereignis zugeordnet werden kann. Die unten beschriebene3 veranschaulicht ein exemplarisches Verfahren300 des Bestätigens der Zuordnung zu einem Vorgängerereignis, wie es zum Beispiel vom Zuordnungsserver150 durchgeführt werden kann. Der Koordinationsserver160 empfängt dann, in Phase260 , die Zustimmung vom Zuordnungsserver150 , das zweite Ereignis dem beschriebenen ersten Ereignis zuzuordnen. In einigen Implementierungen empfängt, wenn der Zuordnungsserver150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver160 alternativ eine Meldung, die die Zuordnung ablehnt. In einigen Implementierungen empfängt, wenn der Zuordnungsserver150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver160 keine weiteren Meldungen, die mit der Zuordnungsanfrage und der ersten Ereignisbeschreibung verbunden sind. - Unter detailliertere Bezugnahme auf das Verfahren
200 empfängt der Koordinationsserver160 in Phase210 eine Bestätigungsmeldung für ein erstes Ereignis. In einigen Implementierungen sendet der Koordinationsserver160 Koordinationsmeldungen an eines oder mehrere Client-Geräte120 . Die Koordinationsmeldungen können zum Beispiel Einladungen sein, eine Aktion durchzuführen (z. B. eine Anwendung zu installieren, auf eine Webseite zuzugreifen oder einen Kauf zu tätigen). Das erste Ereignis kann eine Reaktion auf eine Einladung sein, z. B. eine Angabe, dass ein Client-Gerät120 , das die Einladung empfangen hat, damit interagiert hat. - Eine Einladung kann zum Beispiel ein auswählbares Element beinhalten, das zusätzliche Informationen bereitstellt oder eine Verbindung zu einer Drittpartei ermöglicht, wo weitere Aktionen durchgeführt werden können. Eine Einladung kann einen Hyperlink zu einer Uniform Resource Locator (URL) für eine Webseite (eine Einstiegsseite) beinhalten, auf der weitere Aktionen durchgeführt werden können, wie z. B. Zugreifen auf zusätzliche Informationen, Herunterladen von Medien (z. B. ein E-Book, visuelle Bildmedien, Audiodaten, interaktive Medien, Videomedien und so weiter), Herunterladen von Software, Verbinden mit einer Datenbank und jede beliebige andere Aktion. In einigen Implementierungen ist das erste Ereignis eine Auswahl einer URL (ein Klick) an einem Client-Gerät
120 . In einigen Implementierungen ist das erste Ereignis eine Seitenanfrage (oder ein Seitenabruf) vom Client-Gerät120 . - In einigen Implementierungen ist das erste Ereignis ein Ankunftsereignis, z. B. das Client-Gerät
120 , das an einem geografischen Standort ankommt. Das Ankunftsereignis kann zum Beispiel mithilfe von Geolokalisierungs-Hardware im Client-Gerät120 erkannt werden. Das Ankunftsereignis kann zum Beispiel mithilfe von Näherungsdetektoren (z. B. Nahfeld-Funkgeräten) im Client-Gerät120 erkannt werden, die die Nähe zu physischen Markern außerhalb des Client-Geräts120 erkennen, oder umgekehrt. In einigen Implementierungen kann das erste Ereignis jedwedes Ereignis sein, das eine Zuordnung für spätere nachfolgende Ereignisse empfangen könnte. Wenn das erste Ereignis zum Beispiel eine Interaktion ist, die dazu führt, dass das Client-Gerät ein Anwendungsinstallationstool ausführt, kann dieses eine Zuordnung für eine nachfolgende Anwendungsinstallation empfangen. In Phase210 des Verfahrens200 empfängt der Koordinationsserver160 eine Bestätigungsmeldung für ein bestimmtes erstes Ereignis. - In Reaktion auf das Empfangen der Bestätigungsmeldung für das erste Ereignis in Phase
210 zeichnet der Koordinationsserver160 Daten über das erste Ereignis, z. B. in Datenspeicher190 , auf. Die aufgezeichneten Daten über das erste Ereignis können zum Beispiel einen Datums- und Zeitstempel, einen Ereignistyp und eine oder mehrere Quellenkennungen beinhalten, wie z. B. eine Gerätekennung, eine Kontokennung, eine eindeutige CT-Nummer (z. B. eine zufällig erzeugte eindeutige Kennung) und so weiter. Die aufgezeichneten Daten über das erste Ereignis können ferner Informationen über eine Einladung beinhalten, die mit dem ersten Ereignis verbunden ist, z. B. eine Einladungskennung (oder Kennungen, z. B. eine Quellenkennung, eine Kampagnenkennung, eine Zielkennung, eine CT-Nummer usw.) und einen Datum- und Zeitstempel der Einladung. In einigen Implementierungen zeichnet der Koordinationsserver160 diese Daten in einem durchsuchbaren Datenspeichersystem, wie z. B. einer Datenbank, auf. - In Phase
220 empfängt der Koordinationsserver160 , von einem Zuordnungsserver150 , eine Anfrage für Zuordnung eines zweiten Ereignisses. In einigen Implementierungen verarbeiten ein oder mehrere der Client-Geräte120 , der Anwendungs-Backend-Server130 oder der Ereignisserver140 ein Ereignis, das am Client-Gerät120 erfolgt oder mit dem Client-Gerät120 verbunden ist, und suchen beim Verarbeiten des Ereignisses die Zuordnung für das Ereignis. Der Ereignisserver140 kann zum Beispiel das zweite Ereignis erkennen und eine Meldung an den Zuordnungsserver150 mit Informationen wie z. B. einer oder mehreren Kennungen (z. B. Gerätekennung und Anwendungskennung) und Ereignistyp senden. Wie nachfolgend in Bezug auf3 beschrieben, sendet der Zuordnungsserver150 dann eine Anfrage für Zuordnung des zweiten Ereignisses an den Koordinationsserver160 . Die Anfrage kann an mehrere Koordinationsserver gesendet werden z. B. an verschiedene Server, die jeweils von verschiedenen Parteien betrieben werden, die jeweils mit einem zuordenbaren Ereignis verbunden sein können. - In Phase
230 durchsucht der Koordinationsserver160 gespeicherte Bestätigungsmeldungsdaten, z. B. Daten, die jeweils einer großen Anzahl an Bestätigungsmeldungen entsprechen, die Daten für die Bestätigungsmeldung beinhalten können, die in Phase210 empfangen wurde. In einigen Implementierungen ist diese Suche auf eine oder mehrere spezifische Ereignisarten gerichtet, z. B. Ereignisarten, die dem zweiten Ereignis zugeordnet sein können. - In Phase
240 identifiziert der Koordinationsserver160 das erste Ereignis aus der Suche. In einigen Implementierungen wird das erste Ereignis in Phase240 als eines von mehreren Kandidatenereignissen für die Zuordnung identifiziert. Der Koordinationsserver160 kann das erste Ereignis auf Basis von Übereinstimmungskriterien identifizieren, wie z. B. dieselbe Gerätekennung, Kontokennung oder CT-Nummer aufweisend. - In Phase
250 gibt der Koordinationsserver160 dem Zuordnungsserver150 Daten, die das erste Ereignis beschreiben, in Reaktion auf die Anfrage, die in Phase220 empfangen wurde, zurück. Die beschreibenden Daten können zum Beispiel eine Teilmenge der aufgezeichneten Daten für das erste Ereignis sein. In einigen Implementierungen gibt der Koordinationsserver160 zum Beispiel einen Datums- und Zeitstempel für das erste Ereignis zurück oder gibt einen Datums- und Zeitstempel neben einer internen Kennung für das erste Ereignis zurück. Der Zuordnungsserver150 kann aus den Daten, die das erste Ereignis beschreiben, ermitteln, ob das zweite Ereignis dem ersten Ereignis zugeordnet werden kann. In einigen Implementierungen wählt zum Beispiel, wenn mehrere Koordinationsserver160 Zuordnungsansprüche zurückgeben (d. h. jeder gibt ein identifiziertes Kandidatenereignis für die Zuordnung zurück), der Zuordnungsserver einen der Zuordnungsansprüche für die Bestätigung aus. - Die unten beschriebene
3 veranschaulicht ein exemplarisches Verfahren300 des Bestätigens der Zuordnung zu einem Vorgängerereignis, wie es zum Beispiel vom Zuordnungsserver150 durchgeführt werden kann. In einigen Implementierungen wählt der Zuordnungsserver150 zum Beispiel das letzte Kandidatenereignis aus (d. h. das Kandidatenereignis mit dem Datums- und Zeitstempel, der dem Zeitpunkt des zweiten Ereignisses am nächsten ist). - In Phase
260 empfängt der Koordinationsserver160 die Zustimmung vom Zuordnungsserver150 , das zweite Ereignis dem beschriebenen ersten Ereignis zuzuordnen. In einigen Implementierungen empfängt, wenn der Zuordnungsserver150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver160 alternativ eine Meldung, die die Zuordnung ablehnt. In einigen Implementierungen empfängt, wenn der Zuordnungsserver150 ermittelt, dass die Zuordnung nicht gewährt werden sollte, der Koordinationsserver160 keine weiteren Meldungen, die mit der Zuordnungsanfrage und der ersten Ereignisbeschreibung verbunden sind. Der Koordinationsserver160 kann Daten über Zuordnungen behalten, z. B. für Berichterstellungs- oder Entscheidungsprozesse. In einigen Implementierungen kann ein Kampagnenadministrator zum Beispiel einen Bericht von Einladungen anfordern, die nachfolgenden Ereignissen zugeordnet sind. Dieser Bericht kann zum Beispiel konfiguriert sein, Ereignisse auszulassen, die keine Zuordnung empfangen, oder Ereignisse hervorzuheben (oder anderweitig anzugeben), die speziell eine Zuordnung erhalten haben. - Wie hier unter Bezugnahme auf
3 ersichtlich, ist ein Ablaufdiagramm für ein Verfahren300 zum Bestätigen der Zuordnung zu einem Vorgängerereignis gemäß einer veranschaulichenden Implementierung dargestellt. Das Verfahren300 kann insbesondere vom Zuordnungsserver150 durchgeführt werden, um die Zuordnung für ein zweites Ereignis durch Kommunizieren mit einem Koordinationsserver zu ermitteln. Der Anwendungs-Backend-Server130 , der Ereignisserver140 , der Zuordnungsserver150 und/oder der Koordinationsserver160 können konfiguriert sein, das Verfahren300 durchzuführen. Außerdem kann jedes hierin beschriebene Computergerät konfiguriert sein, das Verfahren300 durchzuführen. - Als allgemeiner Überblick des Verfahrens
300 empfängt der Zuordnungsserver150 in Phase320 eine Benachrichtigung eines zuordenbaren Ereignisses. In Phase330 sendet der Zuordnungsserver150 eine erste Anfrage für die Zuordnung zu einem Koordinationsserver160 . Der Koordinationsserver160 identifiziert dann ein erstes Ereignis, das zugeordnet werden könnte, und stellt eine Beschreibung des ersten Ereignisses für den Zuordnungsserver150 bereit. In Phase340 empfängt der Zuordnungsserver150 die Beschreibung des ersten Ereignisses und ermittelt, in Phase350 , ob das erste Ereignis die Kriterien für die Zuordnung erfüllt. Wenn das erste Ereignis die Kriterien für die Zuordnung nicht erfüllt, lehnt, in Phase360 , der Zuordnungsserver150 dann die Zuordnung ab. Wenn das erste Ereignis jedoch die Kriterien für die Zuordnung in Phase350 erfüllt, bestätigt der Zuordnungsserver150 in Phase370 dann die Zuordnung. In einigen Implementierungen sendet der Zuordnungsserver150 zum Beispiel eine zweite Meldung an den Koordinationsserver160 , die das zuordenbare Ereignis dem ersten Ereignis zuordnet. - Unter detailliertere Bezugnahme auf das Verfahren
300 empfängt der Zuordnungsserver150 in Phase320 eine Benachrichtigung eines zuordenbaren Ereignisses. Ein Ereignisserver140 kann zum Beispiel den Zuordnungsserver150 über das Ereignis benachrichtigen. In einigen Implementierungen verarbeiten ein oder mehrere der Client-Geräte120 , der Anwendungs-Backend-Server130 oder die Ereignisserver140 ein Ereignis, das am Client-Gerät120 erfolgt oder mit dem Client-Gerät120 verbunden ist, und suchen beim Verarbeiten des Ereignisses die Zuordnung für das Ereignis. Der Ereignisserver140 kann zum Beispiel das Ereignis erkennen und eine Meldung an den Zuordnungsserver150 mit Informationen, wie z. B. einer oder mehreren Kennungen (z. B. Gerätekennung und Anwendungskennung) und Ereignistyp, senden. In einigen Implementierungen erkennt der Zuordnungsserver150 das zuordenbare Ereignis und löst die Zuordnung für das Ereignis auf. - In Phase
330 sendet der Zuordnungsserver150 eine erste Anfrage zu einem Koordinationsserver160 . Die erste Anfrage ist eine Anfrage, ein Vorgängerereignis für die Zuordnung zu identifizieren. Die erste Anfrage kann eine Nachfrage, von einem Zuordnungsserver150 zum Koordinationsserver160 , sein, um zu erfahren, ob der Koordinationsserver160 vorher ein Ereignis koordiniert hat, das zum zuordenbaren Ereignis führte oder das dem Führen zum zuordenbaren Ereignis zugeordnet werden kann. In einigen Implementierungen wird die Anfrage an mehrere verschiedene Koordinationsserver gesendet, die jeweils von verschiedenen Parteien betrieben werden, die mit einem zuordenbaren Ereignis verbunden sein können. Wenn der Koordinationsserver160 ein erstes Ereignis identifizieren kann, das zugeordnet werden könnte, stellt der Koordinationsserver160 eine Beschreibung des ersten Ereignisses für den Zuordnungsserver150 bereit. In einigen Implementierungen kann der Koordinationsserver160 (oder mehrere Koordinationsserver) Beschreibungen von mehreren Kandidatenereignissen für die mögliche Zuordnung bereitstellen. - In Phase
340 empfängt der Zuordnungsserver150 die Beschreibung des ersten Ereignisses und ermittelt, in Phase350 , ob das erste Ereignis die Kriterien für die Zuordnung erfüllt. In einigen Implementierungen bestätigt der Zuordnungsserver150 , ob das beschriebene erste Ereignis zum zuordenbaren Ereignis geführt haben könnte. In einigen Implementierungen ermittelt der Zuordnungsserver150 , ob es ein dazwischenliegendes Ereignis gab, das die Zuordnung erhalten sollte. Wenn der Zuordnungsserver150 zum Beispiel Anfragen an mehrere verschiedene Koordinationsserver in Phase330 sendet, kann er in Reaktion mehrere Anwärter empfangen. Der Zuordnungsserver150 wählt aus den mehreren Anwärtern aus, z. B. durch Identifizieren eines Anwärterereignisses für die Zuordnung und Ablehnen des Rests. - Ein Anwärter, der von einem konkurrierenden Koordinationsserver empfangen wird, kann ein dazwischenliegendes Ereignis sein, was den Zuordnungsserver
150 veranlasst, die Zuordnung zum ersten Ereignis abzulehnen. In einigen Implementierungen konstruiert der Zuordnungsserver150 eine Zeitschiene oder Sequenz der Ereignisse, die bis zum zuordenbaren Ereignis führt, und wählt ein oder mehrere Ereignisse aus der Zeitschiene für die Zuordnung aus. In einigen dieser Implementierungen wählt der Zuordnungsserver150 das letzte Ereignis aus der Zeitschiene aus, das dem zuordenbaren Ereignis vorausgeht. Wenn das beschriebene erste Ereignis (wie in Phase340 empfangen) nicht ausgewählt wird, lehnt der Zuordnungsserver150 die Zuordnung in Phase360 ab. Wenn das beschriebene erste Ereignis (wie in Phase340 empfangen) ausgewählt wird, stellt der Zuordnungsserver150 die Zuordnung in Phase370 bereit oder bestätigt sie. - In Phase
360 lehnt der Zuordnungsserver150 die Zuordnung ab. In einigen Implementierungen führt der Zuordnungsserver150 keine Aktion durch, um die Zuordnung abzulehnen. Das heißt, die Abwesenheit einer Bestätigung kann zum Ablehnen ausreichen. In einigen Implementierungen stellt der Zuordnungsserver150 eine Ablehnungsbenachrichtigung für den Koordinationsserver160 bereit. - In Phase
370 bestätigt der Zuordnungsserver150 die Zuordnung ab. In einigen Implementierungen sendet der Zuordnungsserver150 zum Beispiel eine zweite Meldung an den Koordinationsserver160 , die das zuordenbare Ereignis dem ersten Ereignis zuordnet. In einigen Implementierungen stellt der Zuordnungsserver150 dem Koordinationsserver160 zusätzliche Informationen in der Bestätigung bereit. Die zusätzlichen Informationen können zum Beispiel eine eindeutige Ereigniskennung beinhalten, die der Koordinationsserver160 speichern und später als Nachweis der Zuordnung verwenden kann. In einigen Implementierungen beinhalten die zusätzlichen Informationen ein Token, ein verschlüsseltes Datenelement oder eine Kennung. In einigen Implementierungen beinhalten die zusätzlichen Informationen eine CT-Nummer. - In einigen Implementierungen stellt der Ereignisserver
140 jedes Mal, wenn eine Anwendung auf einem Client-Gerät120 ausgeführt wird, eine Benachrichtigung für einen Zuordnungsserver150 bereit. In einigen Implementierungen sendet die Anwendung zum Beispiel eine Meldung beim Starten eines Backend-Servers130 (z. B. eine Anfrage für beliebige neue Updates), woraufhin der Backend-Server130 dann eine Meldung an den Ereignisserver140 sendet, die das Startereignis dokumentiert. In einigen Implementierungen sendet die Anwendung eine Meldung an den Ereignisserver140 , die das Startereignis dokumentiert. Die Meldung kann zum Beispiel als eine HTTP-Anfrage gesendet werden. In einigen Implementierungen zeichnet der Ereignisserver140 dann Daten auf, die das Ereignis repräsentieren. In einigen Implementierungen sendet der Ereignisserver140 eine Meldung an den Zuordnungsserver150 , die den Zuordnungsserver150 über das Startereignis benachrichtigt. In einigen Implementierungen sendet der Ereignisserver140 diese Meldung an den Zuordnungsserver150 für ein erstes Startereignis, das einer Neuinstallation entsprechen würde, und sendet keine Meldung an den Zuordnungsserver150 für nachfolgende Startereignisse für dieselbe Anwendungsinstanz. Der Zuordnungsserver150 identifiziert dann ein früheres Koordinationsereignis für die Zuordnung, z. B. mithilfe des oben beschriebenen Verfahrens300 . - In einigen Implementierungen verwaltet der Koordinationsserver
160 Daten für jedes Ereignis und für jede Zuordnungsanfrage. Der Koordinationsserver160 kann eine administrative Schnittstelle bereitstellen, über die ein Administrator Berichte von Statistiken für Ereignisse und Zuordnungen erhalten kann. Da einige Ereignisse möglicherweise keine Zuordnung empfangen, z. B. wegen eines dazwischenliegenden, durch eine Drittpartei gesteuerten Ereignisses, das die Zuordnung empfangen hat, entspricht die Statistik derselben Statistik, die der Administrator ggf. von den Drittparteien empfängt. Eine ordnungsgemäße Darstellung der Zuordnung kann Verwirrung beseitigen und Konfigurationszyklen verringern. Wenn der Koordinationsserver160 nur Daten für zugeordnete Ereignisse empfängt, empfängt er außerdem keine unnötigen Drittpartei-Daten. - Wie hier unter Bezugnahme auf
4 ersichtlich, ist ein Verfahren400 für das Durchführen einer netzwerkübergreifenden Ereigniszuordnung, um die Zuordnung von Ereignissen zu deduplizieren, gemäß einer veranschaulichenden Implementierung dargestellt. Der Anwendungs-Backend-Server130 , der Ereignisserver140 , der Zuordnungsserver150 , der Koordinationsserver160 und/oder jedwedes andere hierin beschriebene Computergerät können konfiguriert sein, das Verfahren400 durchzuführen. Insbesondere nimmt das Verfahren400 Bezug auf einen ersten Koordinationsserver und einen zweiten Koordinationsserver. Diese Server können gleich und/oder ähnlich dem Koordinationsserver160 sein. - Der erste Koordinationsserver und der zweite Koordinationsserver können konfiguriert sein, Inhaltselemente für einen Benutzer bereitzustellen (oder sie können mit Servern verbunden sein, die diese bereitstellen) und Online-Benutzeraktivität mit den Inhaltselementen empfangen. Die zwei Koordinationsserver können jedoch unterschiedlich sein und durch verschiedene Entitäten betrieben werden. Wenn ein Inhaltsanbieter den ersten und zweiten Koordinationsserver verwendet, um Inhalt für einen Benutzer bereitzustellen, und Benutzeraktivität empfängt, wenn eine Konversion erfolgt, können beide Koordinationsserver Benutzerereignisaktivitäten, die mit ihrem Inhaltsnetzwerk verbunden sind, der Konversion zuordnen. Das unten beschriebene Verfahren
400 und andere hierin beschriebene Verfahren können die Zuordnung deduplizieren, indem sie ermitteln, welche Aktivitäten der Konversion zugeordnet werden sollen und welche Aktivitäten der Konversion nicht zugeordnet werden sollen. - Das Verfahren
400 wird auf eine solche Weise durchgeführt, dass der Datenschutz aufrechterhalten und Netzwerkbandbreite gespart wird. Insbesondere werden im Verfahren400 keine ganzen Sätze von Benutzerereignisaktivität zwischen den Servern weitergegeben, d. h. der erste Koordinationsserver, der zweite Koordinationsserver und der Zuordnungsserver geben nur Daten weiter, die zuordenbar sind, statt alle Benutzerereignisdaten zusammen zu aggregieren, um die Ereigniszuordnung zu ermitteln. Außerdem verringert das Senden nur erforderlicher Daten die Bandbreitennutzung gegenüber dem Senden großer Datensätze von Benutzerereignisdaten an einen zentralen Server, z. B. den Zuordnungsserver. Außerdem kann die Online-Aktivität des Benutzers verbessert werden. Da der erste Koordinationsserver Aktivität eines Benutzers über ein Inhaltsnetzwerk empfängt und der zweite Koordinationsserver Aktivität des Benutzers von einem zweiten Inhaltsnetzwerk empfängt, kann ein Benutzerereignis nur von einem statt von beiden der Koordinationsserver empfangen werden. - In den Schritten
410 und420 können der erste Koordinationsserver und der zweite Koordinationsserver jeweils ein Ereignis empfangen. Die Ereignisse können eine mit einem Benutzer verbundene Aktivität sein, die mit dem ersten Koordinationsserver bzw. dem zweiten Koordinationsserver verbunden ist. Der erste Koordinationsserver kann zum Beispiel direkt oder anderweitig Ereignisdaten von einem anderen Gerät für ein erstes Inhaltsnetzwerk empfangen. Der zweite Koordinationsserver kann direkt oder anderweitig Ereignisdaten von einem anderen Gerät für ein zweites Inhaltsnetzwerk empfangen. - Ein zweites Ereignis kann nach den Ereignissen erfolgen, die mit dem ersten und zweiten Koordinationsserver verbunden sind. In einigen Implementierungen ist das zweite Ereignis eine Konversion. Die Konversion kann das Herunterladen und/oder Installieren einer mobilen Anwendung, Kaufen eines Produkts über eine Webseite für das Online-Shopping oder das Abonnieren eines Dienstes beinhalten. Beide Koordinationsserver können vom zweiten Ereignis Kenntnis erlangen und ermitteln, dass Ereignisse, die mit dem ersten und zweiten Koordinationsserver verbunden sind, die Zuordnung für das Ereignis empfangen sollten. Dies kann jedoch eine duplizierte Zuordnung sein, d. h. nur einer der zwei Koordinationsserver sollte ein Ereignis haben, das dem zweiten Ereignis zugeordnet ist.
- In Schritt
430 empfangen der erste und zweite Koordinationsserver eine Anfrage für die Zuordnung des zweiten Ereignisses vom Zuordnungsserver150 . In Reaktion auf das Empfangen der Anfrage für die Zuordnung des zweiten Ereignisses kann jeder Koordinationsserver eine Suche aller Bestätigungsdaten durchführen, die mit Benutzerereignissen verbunden sind, die durchsucht werden können. - In Schritt
440 kann der erste Koordinationsserver Bestätigungsdaten durchsuchen, um ein Ereignis zu identifizieren, das möglicherweise dem zweiten Ereignis zugeordnet werden könnte oder diesem zugeordnet ist. In einigen Ausführungsformen durchsucht der erste Koordinationsserver die Bestätigungsmeldungen auf Basis einer Benutzerkennung, die mit dem zweiten Ereignis verbunden ist, und Benutzerkennungen, die mit den Ereignissen der Bestätigungsdaten verbunden sind. In einigen Ausführungsformen kann der erste Koordinationsserver eine Kennungszuordnung verwenden, die mehrere Kennungen zusammen zuordnet, um Ereignisse, die mit verschiedenen Konten, verschiedenen Geräten usw. durchgeführt werden, richtig zuzuordnen. Das Ergebnis des Durchsuchens der Bestätigungsdaten kann das Ereignis identifizieren, das mit dem ersten Koordinationsserver verbunden ist. - In Schritt
450 kann der erste Koordinationsserver Daten, die das erste Ereignis angeben, an den Zuordnungsserver150 senden. Schritte460 und470 können gleich und/oder ähnlich den Schritten440 und450 sein. Die Schritte460 und470 können jedoch durch den zweiten Zuordnungsserver durchgeführt werden. - In Schritt
480 kann der Zuordnungsserver150 ermitteln, ob das zweite Ereignis dem ersten Ereignis, das mit dem ersten Koordinationsserver verbunden ist, und dem Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, zuordenbar ist. In einigen Implementierungen kann der Zuordnungsserver150 die Zuordnung auf Basis von Zeitstempeln ermitteln, die mit dem zweiten Ereignis verbunden sind, dem Ereignis, das mit dem ersten Koordinationsserver verbunden ist, und dem Ereignis, das mit dem zweiten Koordinationsserver verbunden ist. Der Zuordnungsserver150 kann ermitteln, dass das Ereignis, das zeitlich am nächsten zum zweiten Ereignis erfolgt, dem zweiten Ereignis zuordenbar sein soll. Außerdem kann der Zuordnungsserver150 ermitteln, dass ein Ereignis zuordenbar ist, wenn es innerhalb eines vorher festgelegten Umfangs vor dem ersten Ereignis erfolgt ist. - Wenn zum Beispiel die Ereignisse in der folgenden Reihenfolge erfolgt sind 1) Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, 2) Ereignis, das mit dem ersten Koordinationsserver verbunden ist, und 3) das zweite Ereignis, kann der Zuordnungsserver
150 ermitteln, dass das Ereignis, das mit dem ersten Koordinationsserver verbunden ist, dem zweiten Ereignis zugeordnet werden soll, während das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zugeordnet werden soll. - In Schritt
490 kann der Zuordnungsserver150 eine Angabe der Zuordnung oder Nichtzuordnung an den ersten und zweiten Koordinationsserver senden. Der zweite Koordinationsserver kann eine Angabe empfangen, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zugeordnet werden soll, während der erste Koordinationsserver eine Angabe empfangen kann, dass das Ereignis, das mit dem ersten Koordinationsserver verbunden ist, dem zweiten Ereignis zugeordnet werden soll. - In Schritt
500 können, auf Basis der Angaben der Zuordnung oder Nicht-Zuordnung, der erste und zweite Koordinationsserver ihre Zuordnungsmetriken auf Basis der Angaben aktualisieren, die in Schritt490 empfangen wurden. Bei den Zuordnungsmetriken kann es sich um die gesamte Konversion, gesamte Konversionen für bestimmte Inhaltselemente usw. handeln. - Wenn der zweite Koordinationsserver zum Beispiel das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis zuordnet, jedoch eine Angabe vom Zuordnungsserver
150 empfängt, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist, kann der zweite Koordinationsserver Daten und/oder Metriken, die durch den zweiten Koordinationsserver gespeichert werden, so aktualisieren, dass der zweite Koordinationsserver das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, nicht dem zweiten Ereignis zuordnet. Diese Deduplizierung der Ereigniszuordnung kann Inhaltsanbieter-Schnittstellen verbessern, die Daten melden können, indem sie die Genauigkeit der Metriken verbessert, die in der Schnittstelle angezeigt werden. - Implementierungen des Gegenstands und der in dieser Spezifikation beschriebenen Vorgänge können in digitalen elektronischen Schaltungen oder in Computer-Software implementiert sein, die in einem physischen Medium, Firmware oder Hardware enthalten sind, einschließlich der in dieser Spezifikation offenbarten Strukturen und ihrer strukturellen Äquivalente oder in Kombinationen von einer oder mehreren derselben. Implementierungen des in dieser Spezifikation beschriebenen Gegenstandes können als ein oder mehrere Computerprogramme implementiert werden, die auf einem physischen Medium, d. h. als ein oder mehrere Module mit Computerprogrammanweisungen enthalten sind, die auf einem oder mehreren Computerspeichermedien codiert sind, um von einer Datenverarbeitungsvorrichtung ausgeführt zu werden bzw. den Betrieb derselben (einschließlich z. B. eines Prozessors
102 ) zu steuern. 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. Das Computerspeichermedium kann außerdem eine oder mehrere separate Komponenten oder Medien darstellen (z. B. mehrere CDs, Datenträger oder andere Speichergeräte) bzw. darin enthalten sein. Das Computerspeichermedium ist ein physisches Medium. Das Computerspeichermedium speichert Daten, z. B. computerausführbare Anweisungen, in nicht flüchtiger Form. - Ein Computerprogrammprodukt (auch als Programm, Software, Softwareanwendung, Script oder Code bezeichnet) kann in einer beliebigen Form von Programmiersprache geschrieben sein, darunter auch in kompilierten oder interpretierten Sprachen, deklarativen oder verfahrensorientierten Sprachen, wobei das Programm in jeder beliebigen Form eingesetzt werden kann, darunter auch als unabhängiges Programm oder als Modul, Komponente, Subroutine, Objekt oder als andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann, muss jedoch nicht einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, das andere Programme oder Daten enthält (wie z. B. ein oder mehrere Scripts, die in einem Dokument in Auszeichnungssprache gespeichert sind), in einer einzelnen dem betreffenden Programm gewidmeten Datei oder in mehreren koordinierten Dateien (wie beispielsweise Dateien, die ein oder mehrere Module, Bibliotheken, Teilprogramme oder Code-Abschnitte enthalten). 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 Logikabläufe können von einem oder mehreren programmierbaren Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, die durch den auf Eingabedaten basierenden Betrieb und das Erstellen von Ausgabedaten bestimmte Vorgängen aktivieren. Die Prozesse und Logikabläufe können zudem durch eine Spezial-Logikschaltung, wie z. B. eine feldprogrammierbare Universalschaltung (FPGA) oder eine anwendungsspezifische integrierte Schaltung (ASIC) ausgeführt und das Gerät in Form derselben implementiert werden. Jene Spezialschaltung kann als Computerprozessor bezeichnet werden, selbst wenn es sich nicht um einen Universalprozessor handelt.
- Obwohl diese Spezifikation viele spezifische Implementierungsdetails enthält, sollten diese nicht als Einschränkungen des Schutzumfangs einer Erfindung oder eines Anspruchs ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen, die für bestimmte Implementierungen bestimmter Erfindungen spezifisch sein können. Bestimmte Merkmale, die in dieser Spezifikation im Zusammenhang mit separaten Implementierungen beschrieben werden, können darüber hinaus in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Implementierung beschrieben werden, auch in mehreren Implementierungen separat oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale weiter oben ggf. als in bestimmten Kombinationen wirkend beschrieben und sogar zunächst als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgeschnitten und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
- Gleichermaßen sollte 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, oder dass alle veranschaulichten Vorgänge durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Implementierungen nicht als in allen Implementierungen erforderlich ausgelegt werden, da zudem davon ausgegangen werden sollte, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen in einem einzelnen Softwareprodukt oder in mehreren Softwareprodukten gebündelt integriert sein können.
- Bezugnahmen auf „oder“ können als inklusiv ausgelegt werden, sodass sich alle Begriffe, die mit „oder“ beschrieben werden, auf einen, mehr als einen oder jeden der beschriebenen Begriffe beziehen können. Die Begriffe „erster,“ „zweiter,“ „dritter,“ usw. sollen nicht notwendigerweise eine Reihenfolge angeben und dienen im Allgemeinen nur der Unterscheidung zwischen gleichartigen oder ähnlichen Gegenständen oder Elementen.
- Es wurden somit bestimmte Implementierungen des Gegenstands beschrieben. Andere Implementierungen fallen in den Geltungsbereich der folgenden Ansprüche. So können in einigen Fällen die in den Ansprüchen angegebenen 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 kann Multitasking oder Parallelverarbeitung verwendet werden.
Claims (20)
- Verfahren zum Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung, das Verfahren umfassend: Empfangen, durch einen ersten Koordinationsserver, einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten durchgeführt wird; Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen einer Vielzahl von Bestätigungsmeldungen für eine Vielzahl von Ereignissen, einschließlich des ersten Ereignisses; und Senden, durch den ersten Koordinationsserver, von Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist.
- Verfahren nach
Anspruch 1 , ferner umfassend das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, wobei das Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne Zugreifen, durch den Zuordnungsserver, auf die Vielzahl von Bestätigungsmeldungen durchgeführt wird. - Verfahren nach
Anspruch 1 , das Verfahren ferner umfassend das Empfangen, durch den ersten Koordinationsserver, einer Angabe der Zustimmung oder einer Angabe der Nichtzustimmung für die Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver. - Verfahren nach
Anspruch 3 , ferner umfassend: Empfangen, durch den Zuordnungsserver, einer Benachrichtigung des zweiten Ereignisses; Senden, durch den Zuordnungsserver, einer Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver; Empfangen, durch den Zuordnungsserver, der Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver; Ermitteln, durch den Zuordnungsserver, auf Basis der Daten, die das erste Ereignis beschreiben, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist; Senden, durch den ersten Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist; und Senden der Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist. - Verfahren nach
Anspruch 4 , wobei das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, das Ermitteln umfasst, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses umfassen. - Verfahren nach
Anspruch 3 , ferner umfassend: Senden, durch den Zuordnungsserver, einer Ereigniszuordnungsanfrage für das zweite Ereignis an einen zweiten Koordinationsserver; Empfangen, durch den Zuordnungsserver, von Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver; Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem zweiten Koordinationsserver verbunden ist, auf Basis der Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist; Senden, durch den Zuordnungsserver, der Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist; und Senden, durch den Zuordnungsserver, der Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist. - Verfahren nach
Anspruch 6 , wobei das Verfahren ferner umfasst: Aktualisieren, durch den ersten Koordinationsserver, der Zuordnungsmetriken des ersten Koordinationsservers, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver; und Aktualisieren, durch den zweiten Koordinationsserver, der Zuordnungsmetriken des zweiten Koordinationsservers, um anzugeben, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Nichtzustimmung vom Zuordnungsserver. - Verfahren nach
Anspruch 6 , wobei das Ermitteln, durch den Zuordnungsserver, ob das zweite Ereignis Ereignissen zuordenbar ist, die mit den Daten verbunden sind, die das Ereignis beschreiben, das mit dem zweiten Zuordnungsserver verbunden ist, das Ermitteln umfasst, ob ein Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem zweiten Koordinationsserver verbunden ist, zeitlich einem Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei die Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den Zeitstempel umfassen, der mit dem Ereignis verbunden ist, das mit dem zweiten Koordinationsserver verbunden ist. - Verfahren nach
Anspruch 1 , wobei das Ermitteln, durch den ersten Koordinationsserver, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, das Durchsuchen der Vielzahl von Bestätigungsmeldungen mit einer Kennung umfasst, die mit dem zweiten Ereignis verbunden ist, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln. - Verfahren nach
Anspruch 9 , wobei das Durchsuchen der Vielzahl von Bestätigungsmeldungen mit der Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, das Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, umfasst, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist. - System zum Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung, das System umfassend: einen ersten Koordinationsserver, umfassend eine Verarbeitungsschaltung konfiguriert zum: Empfangen einer Ereigniszuordnungsanfrage für ein zweites Ereignis von einem Zuordnungsserver, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines von einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten durchgeführt wird; Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen einer Vielzahl von Bestätigungsmeldungen für eine Vielzahl von Ereignissen, einschließlich des ersten Ereignisses; Senden von Daten, die das erste Ereignis beschreiben, an den Zuordnungsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist; und Empfangen einer Angabe der Zustimmung oder einer Angabe der Nichtzustimmung für die Zuordnung des zweiten Ereignisses zum ersten Ereignis vom Zuordnungsserver.
- System nach
Anspruch 11 , wobei die Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Durchsuchen der Vielzahl von Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und einer Kennung, die mit dem ersten Ereignis verbunden ist, zu bestimmen. - System nach
Anspruch 12 , wobei die Verarbeitungsschaltung konfiguriert ist, die Vielzahl von Bestätigungsmeldungen mit einer Kennung, die mit dem zweiten Ereignis verbunden ist, zu durchsuchen, um eine Übereinstimmung zwischen der Kennung, die mit dem zweiten Ereignis verbunden ist, und der Kennung, die mit dem ersten Ereignis verbunden ist, zu ermitteln, durch Ermitteln, auf Basis einer Kennungszuordnung, die die Kennung des zweiten Ereignisses der Kennung zuordnet, die mit dem ersten Ereignis verbunden ist, ob die Kennung des ersten Ereignisses der Kennung des zweiten Ereignisses zugeordnet ist. - System nach
Anspruch 11 , wobei die Verarbeitungsschaltung konfiguriert ist, Zuordnungsmetriken des ersten Koordinationsservers zu aktualisieren, um anzugeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist, in Reaktion auf das Empfangen der Angabe der Zustimmung vom Zuordnungsserver. - System zum Bereitstellen inhaltsnetzwerkübergreifender Ereigniszuordnung, das System umfassend: einen Zuordnungsserver, umfassend eine Verarbeitungsschaltung konfiguriert zum: Empfangen einer Benachrichtigung eines zweites Ereignisses, wobei das zweite Ereignis eine Online-Aktivität ist, die durch einen Benutzer über eines einer Vielzahl von Benutzergeräten nach einem ersten Ereignis durchgeführt wird, das mit einem ersten Koordinationsserver verbunden ist, wobei das erste Ereignis eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten durchgeführt wird; Senden einer Ereigniszuordnungsanfrage für das zweite Ereignis an den ersten Koordinationsserver; Empfangen von Daten, die das erste Ereignis beschreiben, vom ersten Koordinationsserver; Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist; Senden einer Angabe der Zustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis zuordenbar ist; und Senden einer Angabe der Nichtzustimmung an den ersten Koordinationsserver in Reaktion auf das Ermitteln, dass das zweite Ereignis dem ersten Ereignis nicht zuordenbar ist.
- System nach
Anspruch 15 , wobei die Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, ohne Zugreifen durch den Zuordnungsserver auf eine Vielzahl von Bestätigungsmeldungen, die durch den ersten Koordinationsserver gespeichert werden, wobei die Koordinationsmeldungen Informationen über Ereignisse umfassen, die mit dem ersten Koordinationsserver verbunden sind, der das erste Ereignis umfasst. - System nach
Anspruch 15 , wobei die Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob eine Zeitdauer zwischen einem ersten Zeitstempel des ersten Ereignisses und einem zweiten Zeitstempel des zweiten Ereignisses kürzer ist als ein vordefinierter Umfang, wobei die Daten, die das erste Ereignis beschreiben, den ersten Zeitstempel des ersten Ereignisses umfassen. - System nach
Anspruch 15 , wobei die Verarbeitungsschaltung konfiguriert ist zum: Senden der Ereigniszuordnungsanfrage für das zweite Ereignis an einen zweiten Koordinationsserver; Empfangen von Daten, die ein Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, vom zweiten Koordinationsserver, wobei das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, eine andere Online-Aktivität ist, die durch den Benutzer über eines der Vielzahl von Benutzergeräten vor dem zweiten Ereignis durchgeführt wird; Ermitteln, ob das zweite Ereignis dem Ereignis zuordenbar ist, das mit dem ersten Koordinationsserver verbunden ist; und Senden der Angabe der Nichtzustimmung an den zweiten Koordinationsserver in Reaktion auf das Ermitteln, dass das Ereignis, das mit dem zweiten Koordinationsserver verbunden ist, dem zweiten Ereignis nicht zuordenbar ist. - System nach
Anspruch 18 , wobei Verarbeitungsschaltung konfiguriert ist, zu ermitteln, ob das zweite Ereignis dem ersten Ereignis zuordenbar ist, durch Ermitteln, ob ein erster Zeitstempel, der mit dem ersten Ereignis verbunden ist, oder ein dritter Zeitstempel, der mit dem Ereignis verbunden ist, das mit dem Koordinationsserver verbunden ist, zeitlich einem zweiten Zeitstempel näher ist, der mit dem zweiten Ereignis verbunden ist, wobei die Daten, die das Ereignis beschreiben, das mit dem zweiten Koordinationsserver verbunden ist, den dritten Zeitstempel beinhalten. - System nach
Anspruch 15 , wobei die Angabe der Zustimmung und die Angabe der Nichtzustimmung den ersten Koordinationsserver veranlassen, Zuordnungsmetriken des ersten Koordinationsservers so zu aktualisieren, dass sie angeben, dass das erste Ereignis dem zweiten Ereignis zuordenbar ist oder nicht zuordenbar ist.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762491816P | 2017-04-28 | 2017-04-28 | |
US62/491,816 | 2017-04-28 | ||
US15/836,586 | 2017-12-08 | ||
US15/836,586 US10979284B2 (en) | 2017-04-28 | 2017-12-08 | Systems and methods for providing cross-network event attribution |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102017130229A1 true DE102017130229A1 (de) | 2018-10-31 |
Family
ID=60937894
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE202017107667.9U Active DE202017107667U1 (de) | 2017-04-28 | 2017-12-15 | Systeme und Computerprogrammprodukte für das Bereitstellen netzwerkübergreifender Ereigniszuordnung |
DE102017130229.8A Pending DE102017130229A1 (de) | 2017-04-28 | 2017-12-15 | Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE202017107667.9U Active DE202017107667U1 (de) | 2017-04-28 | 2017-12-15 | Systeme und Computerprogrammprodukte für das Bereitstellen netzwerkübergreifender Ereigniszuordnung |
Country Status (8)
Country | Link |
---|---|
US (1) | US10979284B2 (de) |
EP (1) | EP3560158B1 (de) |
JP (1) | JP6871395B2 (de) |
KR (1) | KR102262482B1 (de) |
CN (1) | CN108809687B (de) |
DE (2) | DE202017107667U1 (de) |
GB (1) | GB2561939A (de) |
WO (1) | WO2018200033A1 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114402300A (zh) * | 2020-08-18 | 2022-04-26 | 谷歌有限责任公司 | 用于识别共享特征的事件的系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040064450A1 (en) * | 2002-09-30 | 2004-04-01 | Kabushiki Kaisha Toshiba | Method for preparing data to be analyzed, data analysis method, data analysis device, data preparation program, data analysis program, data prediction device, data prediction method, data prediction program and computer |
CN101540734A (zh) | 2008-03-21 | 2009-09-23 | 阿里巴巴集团控股有限公司 | 一种跨域名Cookie访问方法、系统及设备 |
US8689136B2 (en) | 2010-02-03 | 2014-04-01 | Yahoo! Inc. | System and method for backend advertisement conversion |
US20110246298A1 (en) * | 2010-03-31 | 2011-10-06 | Williams Gregory D | Systems and Methods for Integration and Anomymization of Supplier Data |
US8788339B2 (en) | 2011-05-27 | 2014-07-22 | Google Inc. | Multiple attribution models with return on ad spend |
US20160328739A1 (en) | 2012-02-06 | 2016-11-10 | Kenshoo Ltd. | Attribution of values to user interactions in a sequence |
US20140365296A1 (en) * | 2013-06-07 | 2014-12-11 | Google Inc. | Cross-device conversion estimates |
US20160196494A1 (en) | 2013-06-20 | 2016-07-07 | Vodafone Ip Licensing Limited | Location analysis for analytics |
US20150066634A1 (en) * | 2013-09-05 | 2015-03-05 | Kenshoo Ltd. | System, a method and a computer program product for optimally communicating based on user's historical interactions and performance data |
US20150199767A1 (en) * | 2014-01-15 | 2015-07-16 | Bank Of America Corporation | System for Consolidating Customer Transaction Data |
-
2017
- 2017-12-08 US US15/836,586 patent/US10979284B2/en active Active
- 2017-12-12 JP JP2019541308A patent/JP6871395B2/ja active Active
- 2017-12-12 KR KR1020197022470A patent/KR102262482B1/ko active IP Right Grant
- 2017-12-12 EP EP17826037.8A patent/EP3560158B1/de active Active
- 2017-12-12 WO PCT/US2017/065899 patent/WO2018200033A1/en unknown
- 2017-12-15 GB GB1721008.9A patent/GB2561939A/en not_active Withdrawn
- 2017-12-15 DE DE202017107667.9U patent/DE202017107667U1/de active Active
- 2017-12-15 DE DE102017130229.8A patent/DE102017130229A1/de active Pending
-
2018
- 2018-01-31 CN CN201810095150.3A patent/CN108809687B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
GB201721008D0 (en) | 2018-01-31 |
CN108809687B (zh) | 2022-01-04 |
KR20190099068A (ko) | 2019-08-23 |
CN108809687A (zh) | 2018-11-13 |
US20180316546A1 (en) | 2018-11-01 |
EP3560158A1 (de) | 2019-10-30 |
KR102262482B1 (ko) | 2021-06-08 |
GB2561939A (en) | 2018-10-31 |
EP3560158B1 (de) | 2021-04-28 |
JP6871395B2 (ja) | 2021-05-12 |
JP2020514877A (ja) | 2020-05-21 |
WO2018200033A1 (en) | 2018-11-01 |
US10979284B2 (en) | 2021-04-13 |
DE202017107667U1 (de) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210126839A1 (en) | Systems and methods for enterprise information technology (it) monitoring | |
JP2022058578A (ja) | 分散イベント処理システムにおけるデータシリアライズ | |
US20170344605A1 (en) | Optimizing write operations in object schema-based application programming interfaces (apis) | |
JP2016539427A (ja) | 多重入力データストリームにわたるパターンマッチング | |
US11809446B2 (en) | Visualizing time metric database | |
US20180165349A1 (en) | Generating and associating tracking events across entity lifecycles | |
DE102016125767A1 (de) | Entdeckung einer verbundenen Entität | |
US9990403B2 (en) | System and a method for reasoning and running continuous queries over data streams | |
DE202017100386U1 (de) | Latenzreduzierung bei der feedbackbasierten Ermittlung einer Systemperformance | |
US10938684B2 (en) | Disparate monitoring for IoT | |
CN110020273A (zh) | 用于生成热力图的方法、装置以及系统 | |
US20170270037A1 (en) | Making production data available for testing in a non-production environment | |
CN112667733A (zh) | 数据仓库数据导入方法与系统 | |
US10452679B2 (en) | Systems and methods for context-sensitive data annotation and annotation visualization | |
Chen et al. | Use of grid computing for modeling virtual geospatial products | |
US20140047377A1 (en) | Retrieving data from an external data source | |
DE112020000274T5 (de) | Systeme und verfahren zur identifizierung von ereignissen, die eine eigenschaft teilen | |
DE102017130229A1 (de) | Systeme und Verfahren für das Bereitstellen netzwerkübergreifender Ereigniszuordnung | |
CN113094393B (zh) | 数据汇聚方法及装置、电子设备 | |
US9305066B2 (en) | System and method for remote data harmonization | |
US10169083B1 (en) | Scalable method for optimizing information pathway | |
CN113806401A (zh) | 数据流处理 | |
US8910183B2 (en) | Access to context information in a heterogeneous application environment | |
DE212017000012U1 (de) | Beurteilung der Genauigkeit eines Maschinenlernmodells | |
JP2023509812A (ja) | データ記憶方法、装置、クエリ方法、電子機器および可読媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R082 | Change of representative |
Representative=s name: KASTEL, STEFAN, DIPL.-PHYS.UNIV., DE Representative=s name: KILBURN & STRODE LLP, GB Representative=s name: KILBURN & STRODE LLP, NL |
|
R082 | Change of representative |
Representative=s name: KASTEL, STEFAN, DIPL.-PHYS.UNIV., DE Representative=s name: KILBURN & STRODE LLP, GB Representative=s name: KILBURN & STRODE LLP, NL |
|
R082 | Change of representative |
Representative=s name: KILBURN & STRODE LLP, GB Representative=s name: KILBURN & STRODE LLP, NL |
|
R082 | Change of representative |
Representative=s name: KILBURN & STRODE LLP, GB Representative=s name: KILBURN & STRODE LLP, NL |
|
R082 | Change of representative |
Representative=s name: KILBURN & STRODE LLP, NL |