DE202015009156U1 - Probabilistisches filtern und gruppieren von Nachrichten - Google Patents

Probabilistisches filtern und gruppieren von Nachrichten Download PDF

Info

Publication number
DE202015009156U1
DE202015009156U1 DE202015009156.3U DE202015009156U DE202015009156U1 DE 202015009156 U1 DE202015009156 U1 DE 202015009156U1 DE 202015009156 U DE202015009156 U DE 202015009156U DE 202015009156 U1 DE202015009156 U1 DE 202015009156U1
Authority
DE
Germany
Prior art keywords
beacon
transitory computer
filter
identifiers
identifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202015009156.3U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202015009156U1 publication Critical patent/DE202015009156U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien, das bzw. die Anweisungen speichert bzw. speichern, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Vorgänge durchführen, wobei die Vorgänge unter Verwendung probabilistischer Filter Folgendes umfassen: das Empfangen, durch einen oder mehrere Computer, einer Vielzahl von Filterteilen von einer Prüfeinheit, wobei die Vielzahl von Filterteilen einer Reihe von Bakenidentifizierer entspricht, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind; Die Speicherung der Vielzahl von Filterteilen in einen probabilistischen Filter, durch den einen oder die mehreren Rechenvorrichtungen; das Empfangen eines ersten Bakenidentifizierers einer ersten Bakenvorrichtung durch den einen oder die mehreren Rechenvorrichtungen; das Anwenden durch den einen oder die mehreren Rechenvorrichtungen, einer Vielzahl von Hashfunktionen auf den ersten Bakenidentifizierer, um eine Vielzahl von hash-codierten Identifizierern zu erhalten; die Abfrage des probabilistischen Filters unter Verwendung der Vielzahl von hash-codierten Identifizierern durch den einen oder die mehreren Rechenvorrichtungen, um festzustellen, ob der erste Bakenidentifizierer ein Element der Gruppe der Bakenidentifizierer ist.

Description

  • PRIORITÄTSANSPRUCH
  • Die vorliegende Offenbarung basiert auf der und nimmt Priorität in Anspruch auf die vorläufige US-Patentanmeldung 62/010,012, eingereicht am 10. Juni 2014 und die vorläufige US-Patentanmeldung 62/010,053 eingereicht am 10. Juni 2014, die beide hierin in ihrer Gesamtheit durch Bezugnahme aufgenommen sind.
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich im Allgemeinen auf das probabilistische Filtern und Gruppieren von Nachrichten. Die vorliegende Offenbarung gilt insbesondere für das Generieren und die Verwendung von probabilistischen Filtern im Rahmen eines Systems, das eine Vielzahl von Bakenvorrichtungen aufweist, darunter zumindest eine Beobachtungseinheit und eine Prüfeinheit.
  • HINTERGRUND
  • Es gibt bestimmte Systeme, in denen eine Übertragungseinheit Informationen liefern kann (z. B. Übertragungen, die eine drahtlose Nahbereichs-Kommunikationsverbindung verwenden), die das erste Gerät identifizieren. Die Informationen können zum Beispiel ein öffentlich zugänglicher oder ein verdeckter (z. B. verschlüsselter) Identifizierer sein. Eine Beobachtungseinheit kann die Informationen empfangen und mit einer zentralen Prüfeinheit kommunizieren, um die Identität der Übertragungseinheit zu erfahren und zusätzliche Informationen (z. B. semantische Informationen) über die in der Prüfeinheit gespeicherte Übertragungseinheit zu erfahren. Ein System, das wie oben beschrieben konfiguriert ist, kann für verschiedene Zwecke verwendet werden, unter anderem Kommunikation, Bereitstellung von Informationen, Warenverfolgung, Einzelhändlererkennung, Lokalisierung, Sicherheit, usw.
  • In den Fällen jedoch, in denen solche Systeme eine signifikant höhere Anzahl an Übertragungseinheiten beinhaltet, kann die oben beschriebene Konfiguration jedoch verschiedene Nachteile aufweisen. Wenn zum Beispiel die Anzahl der Sendeknoten steigt, werden die Sendefrequenzen zunehmend mit Sendesignalen, Updates, Messungen oder Nachrichten überfüllt. Einige dieser Signale sind wahrscheinlich nützlich und sinnvoll für eine bestimmte Beobachtungseinheit (z. B. ein Smartphone eines Benutzers). Die große Mehrheit dieser Signale ist jedoch einfach Lärm und irrelevant für die Beobachtungseinheit.
  • Daher ist es höchst ineffizient für die Beobachtungseinheit, mit der zentralen Prüfeinheit jedes Mal, wenn ein Signal empfangen wird, zu kommunizieren, da die überwiegende Mehrheit dieser Kommunikationen zu Informationen führt, die für die Beobachtungseinheit nicht nützlich sind. Insbesondere kann eine so große Menge unnötiger Kommunikationen einen großen Anteil der Kommunikationsbandbreite belegen, die geteilten Kommunikationskanäle überlasten und direkte Kosten für eine Beobachtungseinheit, deren Gebühren nach dem Volumen des Datenverkehrs berechnet werden, verursachen. Außerdem kann die große Anzahl unnötiger Kommunikationen auch ein Problem für den Energieverbrauch darstellen, indem zum Beispiel eine Batterie der Beobachtungseinheit entladen wird.
  • ZUSAMMENFASSUNG
  • Aspekte und Vorteile der vorliegenden Offenbarung sind zum Teil in der folgenden Beschreibung angegeben oder können aus der Beschreibung offenkundig sein, oder sie können durch Umsetzung der Ausführungsformen der vorliegenden Offenbarung in die Praxis erfahren werden.
  • Ein exemplarischer Aspekt der vorliegenden Offenbarung gilt für ein computerimplementiertes Verfahren für die Verwendung probabilistischer Filter. Dieses Verfahren umfasst das Empfangen einer Vielzahl von Filterteilen einer Prüfeinheit durch einen oder mehrere Recheneinrichtungen. Die Vielzahl von Filterteilen entspricht einem Satz von Bakenidentifizierern, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind. Das Verfahren beinhaltet das Speichern der Vielzahl von Filterteilen in einem probabilistischen Filter durch einen oder mehrere Computer. Das Verfahren beinhaltet das Empfangen eines ersten Bakenidentifizierers von einer ersten Bakenvorrichtung durch den einen oder die mehreren Recheneinrichtungen. Das Verfahren beinhaltet die Anwendung einer Vielzahl von Hashfunktionen, durch den einen oder die mehreren Recheneinrichtungen, auf den ersten Bakenidentifizierer, um eine Vielzahl von hash-codierten Identifizierern zu erhalten. Das Verfahren beinhaltet die Abfrage des probabilistischen Filters unter Verwendung der Vielzahl von hash-codierten Identifizierern durch den einen oder die mehreren Recheneinrichtungen, um festzustellen, ob der erste Bakenidentifizierer ein Element des Satzes der Bakenidentifizierer ist.
  • Ein exemplarischer Aspekt der vorliegenden Offenbarung gilt für ein computerimplementiertes Verfahren für die Verwendung von probabilistischen Filtern. Dieses Verfahren umfasst das Empfangen einer Vielzahl von Filterteilen einer Prüfeinheit durch einen oder mehrere Recheneinrichtungen. Die Vielzahl von Filterteilen entspricht einer Vielzahl von Bakenidentifizierern, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind. Die Vielzahl von Bakenvorrichtungen erfüllt eines oder mehrere Kriterien, die jeweils eines oder mehrere Attribute der Bakenvorrichtung definieren. Das Verfahren beinhaltet das Speichern der Vielzahl von Filterteilen in einem probabilistischen Filter durch einen oder mehrere Computer. Das Verfahren beinhaltet das Empfangen eines ersten Bakenidentifizierers von einer ersten Bakenvorrichtung durch den einen oder die mehreren Recheneinrichtungen. Das Verfahren beinhaltet die Anwendung einer Vielzahl von Hashfunktionen, durch den einen oder die mehreren Recheneinrichtungen, auf den ersten Bakenidentifizierer, um eine Vielzahl von hash-codierten Identifizierern zu erhalten. Das Verfahren beinhaltet die Abfrage des probabilistischen Filters unter Verwendung der Vielzahl von hash-codierten Identifizierern durch den einen oder die mehreren Recheneinrichtungen, um festzustellen, ob der erste Bakenidentifizierer ein Element eines Satzes von Bakenidentifizierern, der die Vielzahl von Bakenidentifizierern beinhaltet, ist.
  • Ein weiterer exemplarischer Aspekt der vorliegenden Offenbarung gilt für eines oder mehrere nicht-transitorische computerlesbare Medien, die Anweisungen speichern, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, Operationen auszuführen. Die Operationen beinhalten das Abfragen einer Vielzahl von Bakenidentifizierern, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind. Die Operationen beinhalten das Bestimmen einer Vielzahl von Filterteilen für jeden Bakenidentifizierer durch Anwendung einer Vielzahl von Hashfunktionen auf jeden Bakenidentifizierer. Die Operationen beinhalten die Bereitstellung der Vielzahl von Filterteilen für jeden Bakenidentifizierer für die lokale Speicherung in einem probabilistischen Filter in einer Beobachtungseinheit, sodass die Beobachtungseinheit den probabilistischen Filter abfragen kann, um einen Hinweis zu erhalten, ob ein empfangener Identifizierer ein Element eines Satzes ist, der die Vielzahl von Bakenidentifizierern beinhaltet.
  • Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Offenbarung werden mit Bezug auf die folgende Beschreibung und beigefügten Ansprüche besser verständlich. Die beiliegenden Zeichnungen, die in diese Spezifikation integriert wurden und einen Teil dieser Spezifikation ausmachen, veranschaulichen die Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung dazu, um die Prinzipien der vorliegenden Erfindung näher zu erläutern.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Eine vollständige und befähigende Beschreibung der vorliegenden Offenbarung, welche sich an den Durchschnittsfachmann richtet, wird in der Spezifikation dargelegt, die auf die angehängten Figuren Bezug nimmt, in denen:
  • 1 ein exemplarisches System gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung abbildet;
  • 2 ein Beispiel für ein Funktionsdiagramm für das Generieren des probabilistischen Filters in einer Prüfeinheit, gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung darstellt;
  • 3 ein exemplarisches Funktionsdiagramm für die interessenbasierte oder kriterienspezifische Generierung probabilistischer Filter gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung zeigt; und
  • 4 ein Beispiel für ein Funktionsdiagramm für die Verarbeitung von Bakenidentifizierern in einer Beobachtungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Übersicht
  • Im Allgemeinen gilt die vorliegende Offenbarung für probabilistische Filtertechniken zur Signal- und Nachrichtenübertragung und zur Filterung und Gruppierung von Nachrichten im Rahmen eines Systems, das eine Vielzahl von Bakenvorrichtungen, zumindest eine Beobachtungseinheit und zumindest eine Prüfeinheit enthält. Insbesondere können von der Prüfeinheit ein oder mehrere probabilistische Filter (z. B. Bloomfilter) generiert und der Beobachtungseinheit zur Verfügung gestellt werden. In bestimmten Implementierungen der vorliegenden Offenbarung können von der Prüfeinheit ein oder mehrere kriterienspezifische probabilistische Filter generiert und der Beobachtungseinheit bereitgestellt werden. Jeder probabilistische Filter oder kriterienspezifische probabilistische Filter kann Daten beinhalten, die einem bestimmten Satz von Bakenidentifizierern, die einer Reihe von Bakenvorrichtungen zugeordnet sind, entsprechen. Insbesondere kann der Satz von Bakenvorrichtungen aus Bakenvorrichtungen bestehen, die einem oder mehreren Kriterien entsprechen. Die Beobachtungseinheit kann die empfangenen probabilistischen Filter lokal speichern und die probabilistischen Filter verwenden, um eine geeignete Aktion beim Empfangen eines Bakenidentifizierers von einer Bakenvorrichtung zu bestimmen, wodurch die Beobachtungseinheit die Möglichkeit hat, empfangene Nachrichten gemäß den unterschiedlichen Themen oder anderen Kriterien lokal zu sortieren oder zu gruppieren.
  • Genauer gesagt kann die Beobachtungseinheit einen oder mehrere ihrer lokalen probabilistischen Filter abfragen, um einen oder mehrere Sätze von Bakenidentifizierern zu identifizieren, zu denen der empfangene Bakenidentifizierer gehört (z. B. er ist ein Element). Durch Verwendung der probabilistischen Filter oder der kriterienspezifischen probabilistischen Filter, um einen oder mehrere Sätze von Bakenidentifizierern, zu denen der empfangene Bakenidentifizierer gehört, zu identifizieren (oder nicht zu identifizieren), kann die Beobachtungseinheit eine oder mehrere geeignete Aktionen bestimmen, die als Reaktion auf das Empfangen des Bakenidentifizierers gesetzt werden. Insbesondere die Aktionen, die von der Beobachtungseinheit gesetzt werden, können auf der erkannten Zugehörigkeit des empfangenen Bakenidentifizierers zu einem Satz beruhen und können zum Beispiel das Routen des empfangenen Bakenidentifizierers zu einer bestimmten Anwendung, ungeachtet des empfangenen Bakenidentifizierers, durch Kommunikation mit der Prüfeinheit, um zusätzliche Informationen über die Bakenvorrichtung, der der empfangene Bakenidentifizierer zugeordnet ist (z. B. semantische Informationen) zu erfahren, oder eine filterspezifische Aktion beinhalten.
  • Auf diese Weise können Beobachtungseinheiten probabilistische Filter verwenden, um die Bakenidentifizierer teilweise oder ganz zu verarbeiten oder lokal zu filtern und zu gruppieren und unnötige Kommunikation zwischen der Beobachtungseinheit und der Prüfeinheit zu reduzieren. Außerdem kann der Gebrauch von probabilistischen Filtern den erforderlichen Speicherplatz stark reduzieren und in Fällen, in denen die Bakenidentifizierer verschlüsselt werden, der Beobachtungseinheit ermöglichen, lokal eine geeignete Aktion als Antwort auf einen verschlüsselten Identifizierer zu ermitteln, ohne die genaue Identität der entsprechenden Bakenvorrichtung kennen zu müssen.
  • Gemäß einem Aspekt der vorliegenden Offenbarung kann in einigen Ausführungsformen eine Prüfeinheit einen probabilistischen Filter generieren, indem zuerst ein Satz von Bakenidentifizierern, für die der Filter auf Zugehörigkeitsabfragen antworten soll, abgefragt wird. Die Bakenidentifizierer können jeweils einer Vielzahl von Bakenvorrichtungen entsprechen. Gemäß einem Aspekt der vorliegenden Offenbarung kann in einigen Ausführungsformen eine Prüfeinheit durch Identifikation einer Vielzahl von Bakenidentifizierern einen kriterienspezifischen probabilistischen Filter generieren. Die Bakenidentifizierer können jeweils einer Vielzahl von Bakenvorrichtungen, die eines oder mehrere Kriterien erfüllen, entsprechen. Die Bakenidentifizierer können statisch oder flüchtig sein.
  • Die Auswahl von Bakenidentifizierern als Elemente des Satzes können von zahlreichen Faktoren und/oder Designzielen abhängen. Es können zum Beispiel Sätze von Bakenidentifizierern definiert werden, die bestimmten Anwendungsfällen, geographischen Regionen, Anwendungen, oder anderen Klassifizierungen entsprechen. Somit können die probabilistischen Filter verwendet werden, um die Zugehörigkeit eines empfangenen Bakenidentifizierers zu einer beliebigen Anzahl an Sätzen von Bakenidentifizierern, die aus unterschiedlichen Gründen gruppiert sind, zu bestimmen.
  • Die probabilistischen Filter können Bloomfilter, Quotientenfilter, Filter, die Count-Min-Sketch verwenden, MinHash-Filter oder andere probabilistische Filter oder probabilistische Datenstrukturen sein. In einigen Ausführungsformen kann jeder probabilistische Filter, der die Möglichkeit bietet, ungefähre Zugehörigkeitsabfragen durchzuführen, verwendet werden.
  • Die einen oder die mehreren Kriterien können Kriterien sein, die bestimmte Zeiten, geographische Positionen oder Regionen, Themen oder Kategorien (z. B. Kategorien von Waren, Positionen, oder Restaurants), einen oder mehrere bestimmte Benutzer, für die der probabilistischer Filter gedacht ist, oder andere Kriterien oder Kombinationen davon, definieren. Durch Auswahl verschiedener Kriterien, die von den Bakenvorrichtungen, die für das Generieren des Filters verwendet werden, erfüllt werden müssen, kann der resultierende probabilistische Filter das kriterienspezifische Filtern oder Gruppieren von später empfangenen Nachrichten oder Signalen ermöglichen. Als solche kann das Schaffen einer Vielzahl von Filtern gemäß unterschiedlichen Kriterien einer Beobachtungseinheit ermöglichen, schnell und lokal empfangene Nachrichten in unterschiedliche Gruppen zu sortieren, die unterschiedlichen Anwendungsfällen, geografischen Regionen, Anwendungen, Aktivitäten, Organisationen oder anderen Klassifizierungen entsprechen.
  • Die einen oder die mehreren Kriterien können zum Beispiel ein oder mehrere geografische Gebiete sein. Daher kann der resultierende Filter verwendet werden, um Nachrichten oder Signale zu sortieren oder zu gruppieren, die von Bakenvorrichtungen, die sich in dem einen oder den mehreren geografischen Gebieten befinden, empfangen werden.
  • Als ein weiteres Beispiel können das eine oder die mehreren Kriterien eine Beziehung zwischen der Bakenvorrichtung und einem Benutzer, der der Beobachtungseinheit zugeordnet ist, sein. Bakenvorrichtungen, mit denen der Benutzer zuvor interagiert hat, können zum Beispiel identifiziert und für die Generierung des Filters verwendet werden. Als ein weiteres Beispiel können Bakenvorrichtungen, die möglicherweise für den Benutzer interessant sind, oder von denen man weiß, dass sie interessant sind, die Kriterien erfüllen und verwendet werden, um einen benutzerspezifischen Filter zu generieren. Somit kann zum Beispiel eine Aufzeichnung der Positionen des Benutzers, frühere Interaktionen mit verschiedenen Einheiten oder Benutzereinstellungen verwendet werden, um Bakenvorrichtungen festzustellen, die für den Benutzer von Interesse sein können.
  • Als noch ein anderes Beispiel können das eine oder die mehreren Kriterien die Zugehörigkeit der Bakenvorrichtung zu einer bestimmten Anwendung einer Vielzahl von Anwendungen sein. Alle Bakenvorrichtungen, die zum Beispiel einer Anwendung, die die Beobachtungseinheiten beim Entdecken historischer Orte unterstützt, zugeordnet sind, können erkannt und verwendet werden, um einen anwendungsspezifischen Filter, der für das Identifizieren von Nachrichten, die zur Anwendung für die historischen Orte weitergeleitet werden sollten, zu generieren.
  • Als ein weiteres Beispiel können das eine oder die mehreren Kriterien eine Zeitspanne sein. Insbesondere können in manchen Fällen die Bakenvorrichtungen flüchtige Bakenidentifizierer aussenden, die nur für eine bestimmte Zeitspanne gültige Darstellungen der Bakenvorrichtungen sind. Durch die Auswahl flüchtiger Identifizierer, die einer bestimmten Zeitspanne entsprechen, kann der resultierende Filter nur für die bestimmte Zeitspanne die entsprechenden Bakenvorrichtungen erkennen. Die Zeitspanne kann zum Beispiel eine durchgängige Zeitspanne oder mehrere nicht zusammenhängende Zeitspannen enthalten.
  • Gemäß einem Aspekt der vorliegenden Offenbarung kann in einigen Ausführungsformen die Prüfeinheit die Vielzahl von Bakenidentifizierern als Antwort auf eine Suchanfrage, die sie von der Beobachtungseinheit empfangen hat, identifizieren. Die Suchanfrage kann das eine oder die mehreren Kriterien, die von den Bakenvorrichtungen erfüllt sein müssen, spezifizieren. Die Suchanfrage kann zum Beispiel basierend auf einer Benutzereingabe, die das eine oder die mehreren Kriterien bestimmt hat, formuliert worden sein. Als ein weiteres Beispiel kann die Suchanfrage von einer Anwendung formuliert worden sein, die auf der Beobachtungseinheit ausgeführt und an die Prüfeinheit gesendet wird.
  • In einigen Ausführungsformen können eine Datenbank mit Bakenvorrichtungen und ihre entsprechenden Identifizierer gemäß verschiedenen Kriterien durchsucht werden. Als Antwort auf die Suchanfrage kann somit die Prüfeinheit die Datenbank durchsuchen, um die relevanten Bakenvorrichtungen zu identifizieren und dann ihre entsprechenden Bakenidentifizierer zur Verwendung bei der Generierung der Filter verwenden.
  • Alternativ dazu können die gewünschten Bakenvorrichtungen und/oder ihre Identifizierer der Prüfeinheit von der Beobachtungseinheit direkt kenntlich gemacht werden. Die Beobachtungseinheit kann zum Beispiel regelmäßig einen Bakenidentifizierer von einer Bakenvorrichtung empfangen. Die Beobachtungseinheit kann mit der Prüfeinheit kommunizieren, um die Identität der Bakenvorrichtung zu erfahren und kann danach von der Prüfeinheit Filterdaten abfragen (z. B. Filterteile), die die identifizierte Bakenvorrichtung repräsentieren. Unter Verwendung der Filterdaten kann die Beobachtungseinheit anschließend die Nachrichten von der Bakenvorrichtung erkennen, filtern oder nach unterschiedlichen Gruppierungen, die von unterschiedlichen Filtern repräsentiert werden, gruppieren. In solchen Ausführungsformen, können die einen oder die mehreren Kriterien, die von den Bakenvorrichtungen erfüllt werden, eine Anforderung sein, dass sie zu einer Liste von Geräten oder Identifizierern passen, die von der Beobachtungseinheit geliefert wird.
  • Nachdem der Satz von Bakenidentifizierern, denen der Filter entsprechen soll, erhalten wurde, kann die Prüfeinheit eine Vielzahl von Filterteilen für jeden der Bakenidentifizierer im Satz bestimmen. Gemäß einem anderen Aspekt der vorliegenden Offenbarung, kann die Prüfeinheit in einigen Ausführungsformen eine Vielzahl von Filterteilen für jede der Vielzahl von Bakenidentifizierern bestimmen, nachdem sie die Vielzahl von Bakenidentifizierern eingeholt hat, in Bezug auf die der Filter auf Zugehörigkeitsabfragen antworten soll. Insbesondere kann eine Vielzahl von Hashfunktionen auch auf jeden Bakenidentifizierer angewandt werden, um die Vielzahl von Filterteilen für diese Bakenidentifizierer zu bestimmen.
  • In einigen Ausführungsformen kann zum Beispiel die Vielzahl von Hashfunktionen eine Vielzahl von Bit-Slicing-Funktionen sein, die jeweils ein oder mehrere Bits vom hash-codierten Bakenidentifizierer auswählen. Die Bit-Slicing-Funktionen können zum Beispiel verwendet werden, um die Filterteile zu generieren, wenn der hash-codierte Bakenidentifizierer bereits verschlüsselt ist (z. B. wenn die Bakenidentifizierer flüchtige Identifizierer sind).
  • In einigen Ausführungsformen kann eine Vielzahl von Zugangsschlüsseln, die jeweils einer Vielzahl von Beobachtungseinheiten zugeordnet sind, verwendet werden, um die resultierenden Filterteile spezifisch für eine bestimmte Beobachtungseinheit zu machen. In einigen Ausführungsformen kann zum Beispiel jeder Bakenidentifizierer vor der Anwendung der Vielzahl von Hashfunktionen auf jeden Bakenidentifizierer, unter Verwendung eines Zugangsschlüssels verschlüsselt werden, der der Beobachtungseinheit, für die der Filter gedacht ist, zugeordnet ist. Die Vielzahl von Hashfunktionen kann dann auf die verschlüsselten Bakenidentifizierer angewandt werden, um die Filterteile zu erhalten. Wenn die Zugangsschlüssel geteilte Geheimnisse zwischen den entsprechenden Beobachtungseinheiten und der Prüfeinheit bleiben, dann wird auf diese Weise ein probabilistischer Filter, der die resultierenden Filterteile speichert, nur von der Beobachtungseinheit, die ihren spezifischen Zugangsschlüssel kennt, verwendbar.
  • In anderen Ausführungsformen können die Hashfunktionen selbst den Zugangsschlüssel verwenden, um die Vielzahl von Filterteilen für jede Bake zu bestimmen. Die Hashfunktionen können zum Beispiel den Bakenidentifizierer unter Verwendung einer Vielzahl von Varianten des Zugangsschlüssels (z. B. indem der Zugangsschlüssel als Hash Seed behandelt wird) hash-codieren. Als ein weiteres Beispiel können die Hashfunktionen den Bakenidentifizierer unter Verwendung einer Vielzahl von unterschiedlichen Teilen des Zugangsschlüssels hash-codieren, um die Filterteile zu erhalten.
  • Sobald Filterteile generiert wurden, können für jeden Bakenidentifizierer dieses Satzes alle Filterteile an eine Beobachtungseinheit geliefert werden. Die Beobachtungseinheit kann die Filterteile empfangen und sie lokal in einem probabilistischen Filter speichern. Wenn dann die Beobachtungseinheit später einen Bakenidentifizierer von einer Bakenvorrichtung empfängt, kann die Beobachtungseinheit den probabilistischen Filter abfragen, um einen Hinweis zu erhalten, ob der empfangene Bakenidentifizierer ein Element des Satzes der Bakenidentifizierer ist, die verwendet wurden, um die Filterteile zu generieren.
  • Als ein weiteres Beispiel kann in einigen Ausführungsformen nur eine Untergruppe der Filterteile, die einer bestimmten Bakenvorrichtung entsprechen, geliefert oder vom Filter verwendet werden, basierend auf einer gewünschten falsch positiven Fehlerrate für den Filter. Insbesondere, kann es eine proportionale Beziehung zwischen der Größe des probabilistischen Filters und falsch positiven Fehlerraten geben. Als solches kann es ökonomische oder andere ressourcenbedingte Einschränkungen geben, die eine bestimmte Größe oder einen bestimmten Aufbau des Filters erfordern (z. B. beschränkt auf Filterteile, die nur einer bestimmten Anzahl von Bakenvorrichtungsidentifizierern entsprechen, oder die auf einen bestimmten Teil aller verfügbaren Filterteile für jede enthaltene Bakenvorrichtung beschränkt sind).
  • Außerdem können die Filter inkrementell mit generierten Filterteilen aufgebaut werden. Daher können Filter mit der Zeit besser werden oder sich auf andere Weise verändern, wenn neue Filterteile hinzugefügt werden.
  • In einigen Ausführungsformen der vorliegenden Offenbarung kann die Beobachtungseinheit eine Vielzahl von unterschiedlichen probabilistischen Filtern empfangen oder auf andere Weise erhalten, die auf die weiter oben besprochene Weise, auf Basis unterschiedlicher Sätze von Bakenidentifizierern generiert wurden. Durch Verwendung der probabilistischen Filter um festzustellen, zu welchen dieser Sätze ein empfangener Bakenidentifizierer gehört, kann die Beobachtungseinheit eine geeignete Antwort identifizieren, ohne dass eine Kommunikation mit der Prüfeinheit nötig ist. Auf diese Weise können die probabilistischen Filter verwendet werden, um die Bakenidentifizierer teilweise oder komplett zu verarbeiten und um unnötige Kommunikation zwischen der Beobachtungseinheit und der Prüfeinheit zu reduzieren.
  • Gemäß einem anderen Aspekt der vorliegenden Offenbarung kann der Satz von Bakenidentifizierern, die verwendet werden, um die Filterteile für einen bestimmten Filter zu generieren, ein Satz von flüchtigen Identifizierern sein. Jeder flüchtige Identifizierer kann zum Beispiel eine zeitabhängige Verschlüsselung eines statischen Identifizierers sein, der einer Vielzahl von Bakenvorrichtungen, die zum Satz gehören, zugeordnet ist. Jeder flüchtige Identifizierer kann daher ein gültiger Vertreter der entsprechenden Bakenvorrichtung für eine definierte Zeitspanne sein.
  • Die Erzeugung von Filterteilen aus flüchtigen Identifizierern erlaubt dem Filter, zeitspezifische Antworten auf eine Zugehörigkeitsanfrage zu geben. In einigen Ausführungsformen können zum Beispiel flüchtige Identifizierer ausgewählt werden, um in den Satz der Identifizierer, der verwendet wird, um die Filterteile zu generieren, mit dem Ziel aufgenommen zu werden, dass eine bestimmte Bakenvorrichtung für eine spezifische Zeitspanne von einem bestimmten Filter erkannt wird (z. B. angegeben als ein Element des Satzes der Identifizierer, der dem Filter entspricht). Die spezifische Zeitspanne kann eine kontinuierliche Zeitspanne sein oder eine Vielzahl von nicht aufeinanderfolgenden Zeiträumen beinhalten. Auf diese Weise kann die Fähigkeit einer Beobachtungseinheit, einen Bakenidentifizierer einer bestimmten Bakenvorrichtung zu erkennen (z. B. die Zugehörigkeit zu einem Satz bestimmen) und darauf zu antworten, kontrolliert und/oder auf die spezifische Zeitspanne limitiert werden.
  • Gemäß einem anderen Aspekt der vorliegenden Offenbarung können die aktuelle Position, eine prognostizierte zukünftige Position oder andere Kriterien der Beobachtungseinheit oder des entsprechenden Benutzers verwendet werden, um die Bakenidentifizierer auszuwählen, die für das Generieren der an die Beobachtungseinheit gelieferten Filterteile verwendet werden. Gemäß einem anderen Aspekt der vorliegenden Offenbarung können die aktuelle Position, eine prognostizierte zukünftige Position, oder andere Kriterien der Beobachtungseinheit oder des entsprechenden Benutzers verwendet werden, um einen positionsspezifischen probabilistischen Filter zu generieren und/oder für die Beobachtungseinheit bereitzustellen. Insbesondere kann in einigen Ausführungsformen der vorliegenden Offenbarung die Position der Beobachtungseinheit nachverfolgt oder regelmäßig bestimmt werden. Wenn sich die Beobachtungseinheit in der Welt bewegt, kann die Prüfeinheit entsprechende Bakenvorrichtungen identifizieren, die sich in der Nähe der Position der Beobachtungseinheit befinden. Neue Filterteile können aus den Bakenidentifizierern, die zu den von der Prüfeinheit identifizierten Bakenvorrichtungen zugeordnet sind, generiert werden. Die neuen Filterteile können verwendet werden, um einen neuen Filter zu generieren oder sie können verwendet werden, um einen existierenden Filter auf der Beobachtungseinheit zu ergänzen. Die neuen Filterteile, die den identifizierten Bakenvorrichtungen entsprechen, können verwendet werden, um einen neuen Filter zu generieren oder sie können verwendet werden, um einen existierenden Filter auf der Beobachtungseinheit zu ergänzen. Auf diese Weise können die Filterdaten, die von der Beobachtungseinheit verwaltet werden, aktualisiert werden, damit die relevantesten Sätze von Bakenidentifizierern, gemäß der aktuellen Positionsangabe der Beobachtungseinheit, enthalten sind.
  • Als ein weiteres Beispiel kann in einigen Ausführungsformen die aktuelle Position der Beobachtungseinheit basierend auf einer Position einer Bakenvorrichtung, von der die Beobachtungseinheit vor kurzem eine Nachricht erhalten hat, bestimmt werden. Die Prüfeinheit kann zum Beispiel einen Hinweis von einer Beobachtungseinheit darüber erhalten, dass die Beobachtungseinheit vor kurzem einen Bakenidentifizierer von einer bestimmten Bakenvorrichtung empfangen hat. Die Position der Bakenvorrichtung kann dann als aktuelle Position der Beobachtungseinheit für die Bereitstellung eines positionsspezifischen Filters an die Beobachtungseinheit verwendet werden.
  • In einigen Ausführungsformen generiert die Prüfeinheit Filterteile für eine bestimmte Reihe von Bakenidentifizierern in einer einzelnen Instanz und liefert dann die generierten Filterteile in einem Bulk-Transfer an eine Beobachtungseinheit. In anderen Ausführungsformen können jedoch Filterteile, die jeweils dem potentiellen Bakenidentifizierer entsprechen, vorberechnet und in einer Filterteil-Datenbank gespeichert werden. Dann, wenn ein bestimmter Satz von Bakenidentifizierern identifiziert ist, können die Filterteile, die jedem Element der Sätze entsprechen, von der Filterteil-Datenbank abgerufen und kombiniert werden, um einen Filter zu generieren, der dem neu identifizierten Satz entspricht. Die Vorberechnung und Speicherung von Filterteilen kann eine effizientere und reaktionsschnellere Filtererzeugung ermöglichen und in einigen Ausführungsformen von den Prüfeinheiten oder den Beobachtungseinheiten verwendet werden, um den Filter spontan zu generieren.
  • Somit können sich Filter inkrementell, basierend auf externen Anfragen, oder en gros, für Fälle, in denen schon im Voraus bekannt ist, dass die Beobachtungseinheit wahrscheinlich mit einer großen Anzahl an Bakenvorrichtungen konfrontiert wird, für die Filter relevant sein können, zusammensetzen., Insbesondere können in einigen Ausführungsformen die Beobachtungseinheiten Filterteile anfordern, die einem oder mehreren Bakenidentifizierern entsprechen. Die Anfrage kann zum Beispiel die Bakenidentifizierer oder ein Thema, eine Position oder andere Kriterien spezifizieren und beantragen, dass die Prüfeinheit die entsprechenden Bakenidentifizierer identifiziert. Die angeforderten Filterteile können dann verwendet werden, um einen neuen Filter zu generieren oder einen existierenden Filter zu ergänzen, damit die Beobachtungseinheit in der Lage ist, die entsprechenden Bakenidentifizierer in Zukunft lokal zu verarbeiten.
  • Somit können kriterienspezifische Filter inkrementell aufgebaut werden, basierend auf externen Anfragen, oder en gros, in Fällen, in denen schon im Voraus bekannt ist, dass die Beobachtungseinheit wahrscheinlich mit einer großen Anzahl an Bakenvorrichtungen, für die kriterienspezifische Filter relevant sein können, konfrontiert wird (z. B. wenn festgestellt wird, dass die Beobachtungseinheit ein Einkaufszentrum oder Museum betritt). Der inkrementelle Aufbau von Filtern über einen gewissen Zeitraum kann ermöglichen, dass die Filter basierend auf den Interessen und das Verhalten des Benutzers aufgebaut werden und dass diese Filter an individuelle Benutzer angepasst werden.
  • Als ein weiteres Beispiel kann die Beobachtungseinheit in einigen Ausführungsformen, in jedem Fall, in dem zusätzliche Informationen hinsichtlich einer bestimmten Bakenvorrichtung von einer Beobachtungseinheit einer Prüfeinheit empfangen werden, die empfangenen zusätzlichen Informationen in einem lokalen Cache speichern. Außerdem können Filterteile, die die bestimmte Bakenvorrichtung repräsentieren, einem probabilistischen Filter hinzugefügt werden. Wenn ein Bakenidentifizierer empfangen wird, kann die Beobachtungseinheit den Filter abfragen, um festzustellen, ob Informationen über die entsprechende Bakenvorrichtung zuvor erhalten und im lokalen Cache gespeichert wurden. Auf diese Weise kann der probabilistische Filter verwendet werden, um festzustellen, wann die zuvor empfangenen Informationen lokal gespeichert werden, wodurch unnötige oder redundante Kommunikation mit der Prüfeinheit reduziert wird. In einigen Ausführungsformen kann jedoch die Beobachtungseinheit noch immer mit der Prüfeinheit kommunizieren, um die weitere Gültigkeit der lokal gespeicherten Informationen (z. B. wenn das Speicherdatum vor einem bestimmten Zeitpunkt liegt) zu bestätigen.
  • In einigen Ausführungsformen kann der probabilistische Filter regelmäßig aktualisiert oder gelöscht und neu aufgebaut werden. Wenn zum Beispiel der Satz, zu dem ein bestimmter Filter gehört, einen Grenzwert an Elementen überschreitet, dann kann der Filter zu stark zu falsch positiven Ergebnissen neigen und daher unterteilt oder anderweitig eliminiert und in anderen Formaten oder Gruppierungen wieder aufgebaut werden. Filter können auch von Beobachtungseinheiten entfernt werden, wenn sie überholt sind oder nicht mehr gebraucht werden. Wenn beispielsweise für einen längeren Zeitraum keine Elemente des Filters positiv identifiziert werden (z. B. keine erfolgreiche Referenz), kann der Filter gelöscht werden.
  • Wie bereits angemerkt wurde, kann gemäß einem anderen Aspekt der vorliegenden Offenbarung, jede Beobachtungseinheit eine Vielzahl von verschiedenen Filtern verwalten. Die Beobachtungseinheit kann den probabilistischen Filter verwenden, um einen oder mehrere Sätze von Bakenidentifizierern zu identifizieren, denen der empfangene Bakenidentifizierer angehört. Als solche kann die Beobachtungseinheit eine oder mehrere geeignete Aktionen bestimmen, die als Antwort auf das Empfangen der Bakenidentifizierer durchgeführt werden. Insbesondere können die Aktionen, die von der Beobachtungseinheit ausgeführt werden, von der festgestellten Zugehörigkeit des empfangenen Bakenidentifizierers zu dem Satz abhängen, und zum Beispiel die Weiterleitung der empfangenen Bakenidentifizierer an eine bestimmten Anwendung beinhalten, ungeachtet der empfangenen Bakenidentifizierer, oder mit der Prüfeinheit kommunizieren, um zusätzliche Informationen über die Bakenvorrichtung, der der empfangene Bakenidentifizierer zugeordnet ist, zu erhalten.
  • In einigen Ausführungsformen können die probabilistischen Filter jedem Element des Satzes, zu dem der Filter gehört, jeweils bestimmte Werte zuordnen. Wenn dann der Filter zu einer Anfrage über ein bestimmtes Element passt, kann der Wert, der dem bestimmten Element zugeordnet ist, zurückgegeben werden. Diese Filter können zum Beispiel Bloomier Filter sein.
  • Der bestimmte Wert, der einem bestimmten Filterelement zugeordnet ist, kann zum Beispiel als Pointer verwendet werden, um zusätzliche Informationen (z. B. Preis, Marke oder andere Informationen), die dem Benutzer zur Verfügung gestellt werden können, abzurufen. Somit kann in einigen Ausführungsformen der Filter statisch sein, während eine lokale oder externe Datenbank, die die zusätzlichen Informationen enthält und von bestimmten Werten referenziert ist, regelmäßig aktualisiert werden kann.
  • In Fällen, in denen sich die Datenbank zusätzlicher Informationen in der Beobachtungseinheit befindet, kann ein Bloomier-Filter (oder andere Filter, die einen bestimmten Wert, der einem Element des Satzes zugeordnet ist, zurückgeben) verwendet werden, um Informationen über eine Bakenvorrichtung zu erhalten, wenn keine Verbindung zwischen der Beobachtungseinheit und der Prüfeinheit vorhanden ist. Weiterhin kann die Verwendung eines Bloomier-Filters oder ähnlichen Filters der Beobachtungseinheit die Möglichkeit bieten, die zusätzlichen Informationen zu erhalten, ohne dass die flüchtigen Identifizierer verstanden oder entschlüsselt werden müssen.
  • Die zusätzlichen Informationen können spezifisch für eine bestimmte Bake sein oder es kann sich dabei um Informationen handeln, die eine Klasse von Baken betreffen. Somit können mehrere bestimmte Werte, die vom Filter retourniert werden, zu einem einzigen Dateneintrag gehören. Weiterhin kann der bestimmte Wert selbst die zusätzlichen Informationen (z. B. Preis) repräsentieren, ohne dass eine Weiterleitung oder weitere Verarbeitungen nötig sind.
  • In einigen Ausführungsformen kann die Vielzahl von probabilistischen Filtern auf einer Beobachtungseinheit in einer hierarchischen Konfiguration organisiert sein. Das kann eine effizientere Ermittlung der Zugehörigkeit gemäß verschiedenen Kombinationen von Kriterien ermöglichen. Filter können zum Beispiel kombiniert sein (OR), um aus konkreteren Filtern allgemeinere Filter zu machen. Als ein weiteres Beispiel können Filter gestapelt werden (AND), um aus allgemeinen Filtern exklusivere Filter zu erstellen. Filter können auch kaskadiert werden, um zunehmend mehr Selektivität zu erzeugen.
  • Somit können probabilistische Filter verwendet werden, um Beobachtungseinheiten die Möglichkeit zu geben, die Verarbeitung der Bakenidentifizierer zum Teil lokal durchzuführen, wodurch unnötige Kommunikationen zwischen den Beobachtungseinheiten und der Prüfeinheit reduziert werden. Die Verwendung von probabilistischen Filtern kann den Speicherbedarf stark reduzieren und in Fällen, in denen die Bakenidentifizierer verschlüsselt werden, der Beobachtungseinheit ermöglichen, lokal eine geeignete Aktion als Antwort auf einen verschlüsselten Identifizierer zu bestimmen, ohne die genaue Identität der entsprechenden Bakenvorrichtung kennen zu müssen.
  • Es wird nun im Einzelnen auf die Ausführungsformen der vorliegenden Offenbarung Bezug genommen, wobei ein oder mehrere Beispiele davon in den Zeichnungen veranschaulicht werden. Jedes Beispiel wird im Rahmen einer Erläuterung der Erfindung und nicht einer Einschränkung der Erfindung bereitgestellt.
  • Tatsächlich wird es für den Fachmann ersichtlich sein, dass verschiedene Änderungen und Abwandlungen in der vorliegenden Offenbarung ohne Abweichung von dem Schutzumfang oder Erfindungsgedanken der Offenbarung vorgenommen werden können. Zum Beispiel können Merkmale, die als Teil einer Ausführungsform dargestellt oder beschrieben sind, mit einer anderen Ausführungsform verwendet werden, um noch eine weitere Ausführungsform zu erreichen. Daher wird es beabsichtigt, dass die vorliegende Offenbarung derartige Änderungen und Abwandlungen, wie sie innerhalb des Umfangs der beiliegenden Ansprüche und deren Äquivalente vorkommen, abdeckt.
  • Beispielsystem
  • 1 bildet ein exemplarisches System 100 gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung ab; System 100 kann eine Vielzahl von Bakenvorrichtungen 102110 beinhalten; ein oder mehrere Beobachtungseinheiten 112 und 114; und zumindest eine Prüfeinheit 118.
  • Bakenvorrichtungen 102110 können für viele unterschiedliche Anwendungen verwendet werden, zum Beispiel Kopräsenz (z. B. zwei Einheiten, die sich gegenseitig wahrnehmen), standortbasiertes Spielen, Warenverfolgung, Lokalisierung der Bakenvorrichtung, Lokalisierung der Beobachtungseinheit, Telemetrie, Bereitstellung von Informationen (z. B. Verwendung einer Beobachtungseinheit, um verschiedene Informationen wie zum Beispiel semantische Informationen oder geographische Informationen abzurufen, die den Bakenvorrichtungen 102110 zugeordnet sind, wenn sich die Beobachtungseinheit in der Welt bewegt), Gepäckanhänger, Kommunikation in den Baken, Zahlungssysteme, etc. Die vorliegende Offenbarung bietet ein allgemeines System, das für die oben beschriebenen Anwendungen aber auch für andere Anwendungen anwendbar ist. Genauer gesagt bietet die vorliegende Offenbarung Systeme und Verfahren, die probabilistische Filter im Rahmen aller obengenannten Anwendungen generieren und anwenden können.
  • Bakenvorrichtungen 102110 können Computer sein, die dafür konfiguriert sind, Nachrichten oder andere Signale auszusenden. Die Nachrichten können beispielsweise ein Werberahmen sein, der einen Bakenidentifizierer inkludiert, der die Bakenvorrichtung für die Übertragung identifiziert. Der Bakenidentifizierer kann statisch oder flüchtig sein.
  • In einigen Ausführungsformen können die Werberahmen dafür verwendet werden, dass man „bemerkt” wird, aber nicht verbunden ist. Somit können in solchen Ausführungsformen die Gesamtheit der Interaktionen zwischen den Bakenvorrichtungen 102110 und den Beobachtungseinheiten 112 und 114 ausgeführt werden, ohne dass eine Verbindung zwischen der Beobachtungseinheit und der Bakenvorrichtung oder eine Verbindung zwischen der Bakenvorrichtung und der Prüfeinheit erforderlich ist. Stattdessen sind alle relevanten Informationen für die Interaktion in den Werbepaketen enthalten und werden von der Bakenvorrichtung gesendet. Die Begrenzung der Bakenvorrichtungsinteraktionen auf das Senden von Werbeframes kann zu einem nominalen Verhalten führen, durch das der Energieverbrauch und die Betriebsdauer beeinflusst und einigermaßen vorhergesagt werden können.
  • In anderen Ausführungsformen können jedoch die Bakenvorrichtungen 102110 Verbindungen für die Konfiguration, Bereitstellung, Wartung, Firmware-Updates, oder andere Funktionen ermöglichen. In einigen Ausführungsformen können zum Beispiel die Bakenvorrichtungen 102110 sich über einen zweiten Kommunikationskanal mit der Prüfeinheit 118 verbinden.
  • In weiteren anderen Ausführungsformen können die Bakenvorrichtungen 102110 so konfiguriert sein, dass sie zusätzliche Informationen an eine Beobachtungseinheit unter Verwendung einer Scan-Anfrage (SCALA REQ) und einer Scan-Antwort (SCALA RSP) liefern, die keine tatsächliche Verbindung zwischen den Geräten erfordert.
  • Die Bakenvorrichtungen 102110 können beispielsweise die Werbeframes unter Verwendung drahtloser Nahbereichs-Kommunikationsverbindungstechnologien wie zum Beispiel Bluetooth, Bluetooth Low Energy, ZigBee, Near Field Kommunikation, WiFi Direct oder andere Technologien übertragen. Obwohl drahtlose Nahbereichs-Kommunikationsverbindungstechnologien als Beispiel präsentiert werden, kann jede Kommunikationsmethode verwendet werden, um die Werbeframes von den Bakenvorrichtungen 102110 an die Beobachtungseinheiten 112 und 114, zu übertragen, inklusive zum Beispiel verdrahtete Verbindungen, allgemeine Hochfrequenzkommunikation, optische Kommunikation, Infrarotkommunikation, Magnetkommunikation oder andere Kommunikationsmethoden, inklusive zum Beispiel Quantenkommunikation.
  • Das Senden von Werbeframes kann der Hauptzweck jeder der Bakenvorrichtungen 102110 sein oder ein Nebenzweck. Somit kann in verschiedenen Ausführungsformen der vorliegenden Offenbarung jede Bakenvorrichtung eine Recheneinrichtung sein, die für das regelmäßige Senden von Werbeframes zuständig ist; ein Embedded System in einem größeren Computer oder System; eine Benutzerrecheneinrichtung (z. B. ein Smartphone oder tragbarer Computer) konfiguriert für das Senden von Werbeframes; andere Geräte; oder Kombinationen davon.
  • Gemäß einem Aspekt der vorliegenden Offenbarung kann jede der Bakenvorrichtungen 102110 zum Zeitpunkt der Bereitstellung mit einem bakenspezifischen statischen Identifizierer ausgestattet sein. Beispielmethoden für das Zuordnen von statischen Identifizierern werden weiter unten diskutiert.
  • In Fällen, in denen die Bakenvorrichtungen 102110 flüchtige Identifizierer übertragen sollen, kann jede Bakenvorrichtung 102110 auch mit einem bakenspezifischen geheimen Schlüssel, auch als Rotationsschlüssel bekannt, ausgestattet werden. Der statische Identifizierer und der Rotationsschlüssel, die jeder Bakenvorrichtung 102110 zugeordnet sind, können auch der Prüfeinheit 118 bekannt sein und als geteiltes Geheimnis für die Generierung von flüchtigen Identifizierern und für die Entschlüsselung verwendet werden.
  • In einigen Ausführungsformen kann jedes Werbeevent, das von einer Bakenvorrichtung durchgeführt wird, aus bis zu drei Werbeframes (ADV) bestehen, die von der Bakenvorrichtung gesendet werden. In Ausführungsformen, in denen Bakenvorrichtungen die Bluetooth Low Energy (BLE) Technologie für die Übertragung nutzen, kann jeder ADV-Rahmen maximal 31-Byte Nutzdaten tragen und auf einem von drei bestimmten Werbekanälen innerhalb des derzeit definierten 40-Kanal BLE Funkfrequenzspektrums gesendet werden. Die vorliegende Offenbarung kann jedoch einfach an verschiedene andere Werbesituationen angepasst werden. Wie bereits angemerkt wurde, können Werbungen Übertragungen werden, die von jedem Abhörgerät empfangen und verarbeitet werden können (z. B. Beobachtungseinheit). Ferner ist die oben genannte exemplarische Implementierung, die BLE Technologie verwendet, nur als Beispiel angeführt. Andere geeignete Kommunikationsprotokolle, die andere Rahmenformate oder Kanalzuordnungen haben, können ebenfalls verwendet werden. Außerdem kann die vorliegende Offenbarung, wenn bestimmte Protokolle mit der Zeit verändert oder ersetzt werden, einfach für die Verwendung dieser neuen Protokolle adaptiert werden.
  • In einigen Ausführungsformen kann jeder ADV-Rahmen im Rahmenformat angeben, ob die Übertragungs-Bakenvorrichtung verknüpfbar, abtastbar, oder nichtverknüpfbar/nichtabtastbar ist Für Rahmen, die verknüpfbar oder abtastbar sind, kann ein Abhörgerät eine Anfrage für einen zusätzlichen zu sendenden 31-Byte-Rahmen stellen, der zusätzliche Informationen von der Bakenvorrichtung enthalten kann. Die Anfrage (SCANREQ) kann keine Daten enthalten, nur eine „Rückkehradresse”, an die die Bakenvorrichtung ihre Antwort richten kann (SCANRSP).
  • In einigen Ausführungsformen kann jeder Werberahmen 26 der maximal 31-Byte Nutzdaten verwenden. Die Bytes 1–3 können zum Beispiel ür BLE Flags verwendet werden; Bytes 4–7 für Servicedaten-Kopfzeilen; Byte 8 kann verwendet werden, um einen Rahmentyp anzugeben; Byte 9 kann für Flags und einen Funkkanal, auf dem der ADV-Rahmen übertragen wird, verwendet werden; Byte 10 kann eine kalibrierte oder geschätzte Sendeleistung für den ADV-Rahmen angeben; und die Bytes 11–26 können verwendet werden, um einen Bakenidentifizierer wie den statischen Bakenidentifizierer oder einen flüchtigen Bakenidentifizierer zu kommunizieren. In anderen Ausführungsformen können andere Rahmenformate oder Bezeichnungen verwendet werden.
  • Als ein weiteres Beispiel kann jeder SCALA RSP-Rahmen vier Bytes mit einem herstellerspezifischen Datenvorsatz und 1–27 Bytes herstellerspezifische Nutzdaten beinhalten. In einigen Ausführungsformen können beispielsweise die Nutzdaten eines SCALA RSP-Rahmens für Telemetrie oder für das Liefern von anderen Daten verwendet werden.
  • In einigen Ausführungsformen kann der statische Identifizierer, der jeder Bakenvorrichtung 102110 zugeordnet ist, ein 16-Byte zeitkonstanter Identifizierer sein. Der statische Identifizierer kann zum Beispiel die Verkettung eines 10-Byte Namensraum-Identifizierers und eines 6-Byte Bakeninstanz-Identifizierers sein. Es können jedoch auch andere Formate oder Bit-Größen verwendet werden.
  • Beim Namensraum-Identifizierer kann es sich zum Beispiel um eine Klasse von Baken handeln, die einer bestimmten Anwendung oder Organisation zugeordnet wird. Somit kann in einigen Ausführungsformen, der Namensraum-Identifizierer verwendet werden, um beobachtete ADV-Rahmen für das Weiterleiten zu einer bestimmten Anwendung auszuwählen, die in der Lage sein kann, den Bakeninstanz-Identifizierer genauer zu identifizieren. Ebenso können Namensräume ein Mittel für Organisationen liefern, die Bakenvorrichtungen verwenden, um Gruppen von Bakenvorrichtungen gemäß bestimmten Anwendungen, Anwendungsfällen, oder Klassifizierungen zu segmentieren.
  • In einigen Ausführungsformen kann jeder Namensraum-Identifizierer auf einem Universally Unique Identifizierer (UUID) basieren. Der Namensraum-Identifizierer kann zum Beispiel die vier wichtigsten Bytes und die sechs unwichtigsten Bytes einer 128-Bit UUID sein, die gemäß Internet Engineering Task Force RFC bestimmt wurde: 4122.
  • Der Bakeninstanz-Identifizierer kann eine spezifische Bakenvorrichtung in einem Namensraum identifizieren. Jeder Bakeninstanz-Identifizierer kann in einem bestimmten Namensraum einmalig sein.
  • Die Beobachtungseinheiten 112 und 114 können Recheneinrichtungen sein, die dafür konfiguriert sind, Werbeframes von allen Bakenvorrichtungen 102110 zu empfangen. Die Beobachtungseinheiten 112 und 114 können zum Beispiel ein Benutzerrecheneinrichtungen sein wie ein Smartphone, ein Laptop, ein Desktop-Computer oder ein tragbarer Computer; und ein Embedded System auf einer Maschine; andere Geräte; oder Kombinationen davon. In einigen Ausführungsformen kann ein einzelnes Gerät Komponenten für die Durchführung der Funktionalität einer Bakenvorrichtung und Komponenten für die Durchführung der Funktionalität einer Beobachtungseinheit besitzen.
  • In einigen Ausführungsformen kann jede der Beobachtungseinheiten 112 und 114 mehrere Prozessoren oder Verarbeitungsmodule besitzen. Jede Beobachtungseinheit kann zum Beispiel ein System auf einem Chip (SoC) beinhalten, das Low-Power Hintergrundsuchen für Werbeframes durchführt, ein Mittel für das stapelweise Verarbeiten oder Filtern von beobachteten Werbeframes beinhaltet und regelmäßige Bulk-Transfers durchführt, um die Energieeffizienz zu verbessern. Jede der Beobachtungseinheiten 112 und 114 kann des Weiteren einen Prozessor auf Anwendungsebene, mit der Fähigkeit beinhalten, gemeinsam mit dem SoC einadaptives Scanning durchzuführen. Der Prozessor auf Anwendungsebene kann auch andere hochrangige Aufgaben ausführen. Ebenso können Bakenvorrichtungen 102110, wie weiter oben erläutert, auch mehrere Prozessoren oder Verarbeitungsmodule beinhalten.
  • Die Prüfeinheit 118 kann aus einem oder mehreren Rechenvorrichtungen bestehen, die dafür konfiguriert sind, mit den Beobachtungseinheiten 112 und 114 über ein Netzwerk 116 zu kommunizieren. Die Prüfeinheit 118 kann zum Beispiel aus einem oder mehreren Server-Computern bestehen. Für den Fall, dass eine Vielzahl von Servercomputern verwendet wird, können die Servercomputer gemäß jeder geeigneten Rechnerarchitektur angeordnet werden. Dazu gehören unter anderem auch sequentielle Rechnerarchitekturen, parallele Rechnerarchitekturen, oder Kombinationen davon.
  • Bei dem Netzwerk 116 kann es sich um jede Art von Kommunikationsnetzwerk, wie etwa ein lokales Netzwerk (z. B. Intranet), ein Wide Area Network (z. B. Internet) oder irgendeine Kombination hieraus handeln und es kann eine beliebige Anzahl verdrahteter oder drahtloser Links enthalten. Im Allgemeinen kann die Kommunikation zwischen der Prüfeinheit 118 und den Beobachtungseinheiten 112 und 114 unter Verwendung eines beliebigen Typs von verdrahteter und/oder drahtloser Verbindung, unter Verwendung einer Vielzahl von Kommunikationsprotokollen (z. B. TCP/IP, HTTP, SMTP, FTP), Kodierungen oder Formaten (z. B. HTML, XML) und/oder Schutzschemata (z. B. VPN, sicheres HTTP, SSL) getragen werden.
  • Obwohl ferner jede Beobachtungseinheit 112 und 114 so dargestellt ist, dass sie direkt mit Prüfeinheit 118 über das Netzwerk 116 kommuniziert, kann es einen Satz von zwischengeschalteten Geräten zwischen der Beobachtungseinheit 112 oder 114 und der Prüfeinheit 118 geben. In einigen Ausführungsformen können beispielsweise Gruppen von Beobachtungseinheiten in einem Netzwerk (z. B. einem Mesh-Netzwerk) organisiert sein und Nachrichten einer bestimmten Beobachtungseinheit von und an die Prüfeinheit 118 senden.
  • Gemäß einem Aspekt der vorliegenden Offenbarung können die Beobachtungseinheiten 112 und 114 probabilistische Filter anwenden, um die von den Bakenvorrichtungen 102110 empfangenen Identifizierer teilweise oder ganz zu verarbeiten. Gemäß einem Aspekt der vorliegenden Offenbarung können Beobachtungseinheiten 112 und 114 kriterienspezifische probabilistische Filter anwenden, um die von den Bakenvorrichtungen 102110 empfangenen Bakenidentifizierer nach verschiedenen Kriterien zu sortieren oder gruppieren. Insbesondere können die probabilistischen Filter jeweils verschiedene Filterteile beinhalten, um den hash-codierten Versionen spezifischer Sätze von Bakenidentifizierern zu entsprechen. Die probabilistischen Filter können abgefragt werden, um festzustellen, ob ein empfangener Bakenidentifizierer ein Element von einem ein oder mehreren spezifischen Sätzen von Bakenidentifizierern ist. Basierend auf der festgestellten Zugehörigkeit können die Beobachtungseinheiten die empfangenen Nachrichten sortieren und eine oder mehrere geeignete Aktionen feststellen, um den empfangenen Bakenidentifizierer weiter zu verarbeiten.
  • Exemplarische Generierung eines probabilistischen Filters
  • 2 stellt ein Beispiel für ein Funktionsdiagramm 200 für das Generieren eines probabilistischen Filters auf einer Prüfeinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar. Insbesondere kann die Prüfeinheit einen Satz von Bakenidentifizierern 202 erhalten, für den der entstandene Filter 210 auf Zugehörigkeitsabfragen antworten soll. Die Bakenidentifizierer im Satz 202 können jeweils einer Vielzahl von Bakenvorrichtungen entsprechen. Die Bakenidentifizierer im Satz 202 können statische oder flüchtige Identifizierer sein. Der probabilistische Filter 210 kann ein Bloomfilter, ein Quotientenfilter, oder ein anderer probabilistischer Filter oder eine andere probabilistische Datenstruktur sein.
  • Die Auswahl von Bakenidentifizierern als Elemente des Satzes 202 kann von zahlreichen Faktoren und/oder Designzielen abhängen. Es können zum Beispiel Sätze von Bakenidentifizierern definiert werden, die bestimmten Anwendungsfällen, geographischen Regionen, Anwendungen, oder anderen Klassifizierungen entsprechen, wie weiter unten in Bezug auf 3 diskutiert wird und nachfolgend beschrieben. Als ein weiteres Beispiel können Bakenidentifizierer im Satz 202 als Antwort auf eine Suchanfrage (z. B. erkannt von der Prüfeinheit als Antwort auf eine Suchanfrage einer Beobachtungseinheit) beinhaltet sein oder Sie können im Satz 202 als Antwort auf eine Anfrage für einen Filter von einer Beobachtungseinheit beinhaltet sein, worin die Anfrage die Bakenidentifizierer oder ihre entsprechenden Bakenvorrichtungen spezifiziert. Somit können die probabilistischen Filter verwendet werden, um die Zugehörigkeit eines empfangenen Bakenidentifizierers zu einer beliebigen Anzahl an Sätzen von Bakenidentifizierern, die aus unterschiedlichen Gründen gruppiert sind, zu bestimmen.
  • Die probabilistischen Filter können Bloomfilter, Quotientenfilter, Filter, die Count-Min-Sketch verwenden, MinHash-Filter oder andere probabilistische Filter oder probabilistische Datenstrukturen sein. In einigen Ausführungsformen kann jeder probabilistische Filter, der die Möglichkeit bietet, ungefähre Zugehörigkeitsabfragen durchzuführen, verwendet werden.
  • Nachdem der Satz von Bakenidentifizierern 202, dem der Filter 210 entsprechen soll, erhalten wurde, kann die Prüfeinheit eine Vielzahl von Filterteilen für jeden der Bakenidentifizierer im Satz 202 bestimmen. Insbesondere kann eine Vielzahl von Hashfunktionen (z. B. 204 und 206) auf jeden Bakenidentifizierer in Reihe 202 angewandt werden, um die Vielzahl von Filterteilen für diesen Bakenidentifizierer zu bestimmen.
  • In einigen Ausführungsformen kann zum Beispiel die Vielzahl von Hashfunktionen 204 und 206 eine Vielzahl von Bit-Slicing-Funktionen sein, die ein oder mehrere Bits vom hash-codierten Bakenidentifizierer für sich auswählen. Die Bit-Slicing-Funktionen können zum Beispiel verwendet werden, um die Filterteile zu generieren, wenn der hash-codierte Bakenidentifizierer bereits verschlüsselt ist (z. B. wenn die Bakenidentifizierer flüchtige Identifizierer sind).
  • In einigen Ausführungsformen kann eine Vielzahl von Zugangsschlüsseln (z. B. Zugangsschlüssel 208), die jeweils einer Vielzahl von Beobachtungseinheiten zugewiesen sind, verwendet werden, um die resultierenden Filterteile an eine bestimmte Beobachtungseinheit anzupassen. In einigen Ausführungsformen kann vor der Anwendung der Vielzahl von Hashfunktionen 204 und 206 auf jeden Bakenidentifizierer, jeder Bakenidentifizierer mit dem Zugangsschlüssel 208 verschlüsselt werden, der der Beobachtungseinheit, für die der Filter 210 bestimmt ist, zugeordnet ist. Die Vielzahl von Hashfunktionen 204 und 206 können auf die verschlüsselten Bakenidentifizierer angewendet werden, um die Filterteile zu erhalten. Wenn die Zugangsschlüssel geteilte Geheimnisse zwischen den entsprechenden Beobachtungseinheiten und der Prüfeinheit bleiben, dann wird auf diese Weise ein probabilistischer Filter, der die resultierenden Filterteile speichert, nur von der Beobachtungseinheit, die ihren spezifischen Zugangsschlüssel kennt, verwendbar.
  • In anderen Ausführungsformen, können die Hashfunktionen 204 und 206 den Zugangsschlüssel 208 verwenden, um die Vielzahl von Filterteilen für jeden Bakenidentifizierer zu bestimmen. Die Hashfunktionen 204 und 206 können zum Beispiel die Bakenidentifizierer unter Verwendung einer Vielzahl von Varianten des Zugangsschlüssels 208 (z. B. den Zugangsschlüssel als Hash Seed behandeln) hash-codieren. Als ein weiteres Beispiel, können die Hashfunktionen den Bakenidentifizierer unter Verwendung einer Vielzahl von unterschiedlichen Teilen des Zugangsschlüssels 208 hash-codieren, um die Filterteile abzufragen.
  • Die generierten Filterteile können dann im Filter 210 gespeichert werden. Die Filterteile können zum Beispiel bestimmten Werten entsprechen, die von den Hashfunktionen ausgegeben wurden. In einigen Ausführungsformen kann das Speichern der Filterteile im Filter 210 dadurch erfolgen, dass jede Position in einem Bit-Array, die einem der Filterteil-Werte entspricht, auf Eins gesetzt wird, während die Positionen im Bit-Array, die keinem Wert eines Filterteils entsprechen, auf Null gesetzt werden oder Null bleiben.
  • In anderen Ausführungsformen können Filterteile, die jedem potentiellen Bakenidentifizierer entsprechen, vorberechnet werden und in einer Filterteil-Datenbank gespeichert werden. Dadurch wird die Kalkulation von viel mehr Filterteilen ermöglicht, als erwartungsgemäß von einem einzigen Filter verwendet werden würden. Dann, wenn ein bestimmter Satz von Bakenidentifizierern identifiziert ist, können die Filterteile, die jedem Element der Sätze entsprechen, von der Filterteil-Datenbank abgerufen und kombiniert werden, um einen Filter zu generieren, der dem neu identifizierten Satz entspricht. Die Vorberechnung und Speicherung von Filterteilen kann eine effizientere und reaktionsschnellere Filtererzeugung ermöglichen und in einigen Ausführungsformen von den Prüfeinheiten oder den Beobachtungseinheiten verwendet werden, um den Filter spontan zu generieren.
  • 3 stellt ein Beispiel-Funktionsdiagramm 300 für die Generierung von interessenbasierten oder kriterienspezifischen probabilistischen Filtern gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung dar.
  • Im Allgemeinen können die Kriterien für die Entscheidung, welche Bakenidentifizierer in einem bestimmten Filter beinhaltet sein sollen, von dem Gerät, das den Filter konstruiert, bestimmt werden. In einigen Ausführungsformen können Kriterien wie Zeit 302, Geo-Position 304, Thema 306 (z. B. Warenart, historische Stätte, Thermostat) und/oder Informationen über einen bestimmten Benutzer 308 (z. B. der Benutzer geht gern Angeln) in jeder Kombination verwendet werden, um bestimmte Bakenidentifizierer auszuwählen, die beinhaltet sein sollen.
  • In einigen Ausführungsformen können die bestimmten Bakenidentifizierer, die im Filter beinhaltet sein sollen, als Antwort auf eine Suchanfrage, die von der Beobachtungseinheit empfangen wurde, identifiziert werden. Die Suchanfrage kann das eine oder die mehreren Kriterien 302308 (oder andere Kriterien), die von den Bakenvorrichtungen erfüllt werden müssen, spezifizieren. Die Suchanfrage kann zum Beispiel basierend auf der Benutzereingabe, die das eine oder die mehreren Kriterien 302308 identifiziert hat, formuliert worden sein. Als ein weiteres Beispiel kann die Suchanfrage von einer Anwendung formuliert worden sein, die auf der Beobachtungseinheit ausgeführt und an die Prüfeinheit gesendet wird.
  • In einigen Ausführungsformen können das eine oder die mehreren Kriterien 302308 verwendet werden, um eine Anfrage (dargestellt unter 310) bei einem Beacon Management Service (Bakenverwaltungsdienst) 312 durchzuführen, um alle Bakenidentifizierer zu identifizieren, die den gesuchten Kriterien entsprechen. Die relevanten Bakenidentifizierer können dann einer Reihe von Bakenidentifizierern, für die der Filter 318 erzeugt wird, hinzugefügt werden. Alternativ dazu können die Filterteile für jeden Bakenidentifizierer vorberechnet werden und dem Beacon Management Service 312 zugänglich sein. In solchen Fällen, wenn ein Satz von Bakenidentifizierern als Suchergebnis retourniert wird, können die entsprechenden vorberechneten Filterteile 314 abgefragt und einem Filtergenerator 316 für das Generieren des probabilistischen Filters 318 zur Verfügung gestellt werden.
  • Als Beispiel für die Verwendung der vorliegenden Offenbarung kann ein Benutzer, der in einem bestimmten Einkaufszentrum Sportartikel einkaufen will, die Kategorie Sportartikel als Thema 306, das Einkaufszentrum als Ort 304 und eine Shopping-Zeit 302 als Kriterium eingeben und einen personalisierten Filter 318 erhalten, der nur Bakenidentifizierer beinhaltet, die von Bakenvorrichtungen verwendet werden, die Sportartikeln in diesem Einkaufszentrum entsprechen.
  • Des Weiteren kann der Filter 318 in den Fällen, in denen flüchtige Identifizierer mit variabler Zeit verwendet werden, auf die entsprechenden flüchtigen Identifizierer begrenzt werden, die die Suchkriterien erfüllen und die (z. B. von denen erwartet wird, dass sie von den Bakenvorrichtungen verwendet werden) nur für den Zeitraum, in dem sich der Benutzer im Einkaufszentrum befindet, gültig sind.
  • Außerdem kann der Filter in den Fällen, in denen flüchtige Identifizierer verwendet werden, um den personalisierten Filter 318 aufzubauen, nur flüchtige Identifizierer erkennen, die von den Bakenvorrichtungen in einer bestimmten Zeitspanne verwendet werden, wie beispielsweise die Shopping Zeit 302, die vom Benutzer als Kriterium angegeben wurde. Ein Vorteil dieses Ansatzes ist, dass die Datenmenge, die erforderlich ist, um den Filter zu übertragen und zu speichern, reduziert werden kann.
  • Alternativ dazu können die gewünschten Bakenvorrichtungen und/oder ihre Identifizierer der Prüfeinheit von der Beobachtungseinheit direkt kenntlich gemacht werden. Die Beobachtungseinheit kann zum Beispiel regelmäßig einen Bakenidentifizierer von einer Bakenvorrichtung empfangen. Die Beobachtungseinheit kann mit der Prüfeinheit kommunizieren, um die Identität der Bakenvorrichtung zu erfahren und kann danach von den Prüfeinheit Filterdaten (z. B. Filterteile 314), die die identifizierte Bakenvorrichtung repräsentieren, abfragen.
  • In einigen Ausführungsformen sieht die Funktionsweise des Filtergenerators 316 vor, dass dieser jede Position in einem Bit-Array, die einer Position der Filterteile 314 entspricht, auf Eins setzt, während Positionen in der Bit-Array, die keinem der Filterteile 314 entsprechen, auf Null gesetzt werden.
  • In einigen Ausführungsformen kann der probabilistische Filter einen bestimmten Wert zuordnen, der jedem Element des Satzes, dem der Filter entspricht, zugeordnet ist. Wenn der Filter dann mit einer Anfrage über einen Satz von Filterelementen, die zu einem bestimmten Element gehören, übereinstimmt, kann der bestimmte Wert, der dem bestimmten Element zugeordnet ist, zurückgegeben werden. Diese Filter können zum Beispiel Bloomier Filter sein.
  • Der Filter 318 kann in der Prüfeinheit oder an einem anderen Cloud-Speicher-Ort zum späteren Gebrauch zwischengespeichert werden oder sofort an die Beobachtungseinheit zum sofortigen Gebrauch geschickt und in der Beobachtungseinheit lokal gespeichert werden.
  • Weiterhin können in einigen Ausführungsformen die Filterteile 314 an die Beobachtungseinheit geschickt werden und die Beobachtungseinheit kann den Filter generieren (z. B. anstelle des Filtergenerators 316), indem ein neuer Filter 318 generiert oder ein existierender Filter ergänzt wird.
  • Somit können Filter inkrementell, basierend auf externen Anfragen, oder en gros, in Fällen, in denen schon im Voraus bekannt ist, dass die Beobachtungseinheit wahrscheinlich mit einer großen Anzahl an Bakenvorrichtungen, für die Filter relevant sein können, konfrontiert wird (z. B. wenn festgestellt wird, dass die Beobachtungseinheit ein Einkaufszentrum oder Museum betritt), aufgebaut werden. Der inkrementelle Aufbau von Filtern über einen gewissen Zeitraum kann ermöglichen, dass die Filter basierend auf den Interessen und das Verhalten des Benutzers aufgebaut werden und dass diese Filter an individuelle Benutzer angepasst werden.
  • Weiterhin kann der Filter ad-hoc, basierend auf aktuellen Benutzerpositionsdaten oder anderen Positionsinformationen erzeugt werden. Die örtliche Lage einer bestimmten Bakenvorrichtung, mit der eine Beobachtungseinheit interagiert hat, kann zum Beispiel den proaktiven Download von Filterteilen für andere Filterteile, die sich in der Nähe befinden, relevant oder verwandt sind, auslösen und eine ad-hoc Erzeugung des Filters in der Beobachtungseinheit ermöglichen.
  • In einigen Ausführungsformen können die Beobachtungseinheiten Filter erzeugen, um bestimmte Sehenswürdigkeiten oder Besuche von bestimmten Orten zu verfolgen. Diese lokal erzeugten Filter können verwendet werden, um den Schwerpunkt eines allgemeinen Filters, der in der Beobachtungseinheit schon vorhanden ist, zu verfeinern oder zu verbessern. Wenn ein Benutzer zum Beispiel ein Museum besucht, kann er von einer Prüfeinheit einen allgemeinen Filter für das Museum erhalten, der Daten beinhaltet, die den am häufigsten besichtigten Ausstellungsstücken entspricht. Wenn jedoch der Benutzer bestimmte weniger populäre Ausstellungsstücke besichtigt, kann der Benutzer zusätzliche Informationen anfordern (z. B. zusätzliche Filterteile), die verwendet werden können, um den allgemeinen Filter zu erweitern.
  • Des Weiteren kann eine Analyse einer größeren Sammlung von ad-hoc Filtern, die von unterschiedlichen Beobachtungseinheiten generiert wurden, verschiedene Aspekte oder Informationen zeigen, die verwendet werden können, um verbesserte generische Filter zu liefern. Ein lokal generierter Filter kann zum Beispiel zur Analyse in die Prüfeinheit hochgeladen werden. Wenn die Analyse zeigt, dass ein bestimmtes Ausstellungsstück, von dem angenommen wurde, dass es ein weniger beliebtes Ausstellungsstück ist, verwendet wurde, um viele der allgemeinen Filter der Beobachtungseinheiten zu erweitern, dann kann der allgemeine Filter dahingehend geändert werden, dass er auch dieses bestimmte Ausstellungsstück für zukünftige Benutzer zur Verfügung stellt. Somit kann das Crowdsourcing, oder das Abstimmen der Benutzer „mit ihren Füßen”, die einem Standort zugeordneten Filter verbessern, sodass sie den erwarteten Lokalisierungsmustern und den Interaktionen mit der Bakenvorrichtung auf direktere Weise entsprechen.
  • Diese zielgerichteteren Filter können regelmäßig größere bulk-Filter als eine Art „Müllcontainer” ersetzen, um den erforderlichen Speicherplatz zu reduzieren und die Suchzeit zu verbessern, wodurch auch die Energie für die Verarbeitung für die Verwendung des Filters reduziert wird.
  • Filter können auch auf eine Weise zusammengesetzt sein, in der es möglich ist, die Aktualität oder die Referenzgröße zu verwenden, um die Größe eines lokal verwalteten Speichers zu steuern. Alternativ dazu können Filter regelmäßig neu aufgebaut und en gros aktualisiert werden, basierend auf Logs von ähnlichen Referenzen, die in der Prüfeinheit gespeichert sind.
  • Beispiel Verarbeitung eines Bakenidentifizierers
  • 4 ein Beispiel für ein Funktionsdiagramm für die Verarbeitung von Bakenidentifizierern in einer Beobachtungseinheit gemäß einer exemplarischen Ausführungsform der vorliegenden Offenbarung zeigt. Insbesondere kann die Beobachtungseinheit einen Bakenidentifizierer 402 von einer Bakenvorrichtung empfangen.
  • Die Beobachtungseinheit kann eine Vielzahl von Hashfunktionen 404 auf den Bakenidentifizierer 402 anwenden, um eine Vielzahl von hash-codierten Identifizierer zu erhalten. Die Vielzahl von hash-codierten Identifizierern kann dann verwendet werden, um einen probabilistischen Filter (dargestellt unter 408) abzufragen, um einen Hinweis zu empfangen, ob der Bakenidentifizierer 402 ein Element einer Reihe von Bakenidentifizierern, die vom probabilistischen Filter repräsentiert werden, ist. Genauer gesagt kann der probabilistische Filter Filterteile enthalten, die von einer Prüfeinheit basierend auf dem Satz von Bakenidentifizierern generiert wurden. In einigen Ausführungsformen können die Filterteile, die eine Beobachtungseinheit von einer anderen Beobachtungseinheit empfangen hat, verwendet werden, um einen neuen Filter zu generieren oder einen bestehenden Filter zu ergänzen.
  • In einigen Ausführungsformen der vorliegenden Offenbarung können eine Vielzahl von Zugangsschlüsseln, die einer Vielzahl von Beobachtungseinheiten zugeordnet sind, verwendet werden, um probabilistische Filter zu erstellen, die für eine bestimmte Beobachtungseinheit spezifisch sind. In solchen Ausführungsformen kann zum Beispiel die Beobachtungseinheit den Bakenidentifizierer 402 unter Verwendung eines Zugangsschlüssels 406, der der Beobachtungseinheit zugeordnet ist, verschlüsseln, bevor die Vielzahl von Hashfunktionen 404 am Bakenidentifizierer 402 angewandt wird. Die Vielzahl von Hashfunktionen 404 kann dann auf den verschlüsselten Bakenidentifizierer angewandt werden, um die hash-codierten Identifizierer zu erhalten.
  • Als ein weiteres Beispiel können die Hashfunktionen 404 den Zugangsschlüssel 406 verwenden, um die hash-codierten Identifizierer für den Bakenidentifizierer 402 zu bestimmen. Die Hashfunktionen 404 können zum Beispiel den Bakenidentifizierer 402 unter Verwendung einer Vielzahl von Varianten des Zugangsschlüssels 406 hash-codieren (z. B. indem der Zugangsschlüssel 406 als Hash Seed behandelt wird). Als ein weiteres Beispiel können die Hashfunktionen 404 den Bakenidentifizierer unter Verwendung einer Vielzahl von unterschiedlichen Teilen des Zugangsschlüssels 406 hash-codieren, um die Filterteile zu erhalten.
  • Gemäß einem Aspekt der vorliegenden Offenbarung kann die Beobachtungseinheit den Hinweis auf die Zugehörigkeit des Bakenidentifizierers 402 im Satz der Bakenidentifizierer, mit dem der probabilistische Filter generiert wird, verwenden, um eine geeignete Antwort auf das Empfangen des Bakenidentifizierers zu bestimmen. Die Beobachtungseinheit kann zum Beispiel den Bakenidentifizierer 402 und einen Zeitstempel für den Empfang des Gerätes 410 an die Prüfeinheit übertragen. Der Zeitstempel des Empfangs des Gerätes 410 kann eine Zeit angeben, zu der die Beobachtungseinheit den Bakenidentifizierer 402 von der Hakenvorrichtung empfangen hat. Alternativ dazu oder zusätzlich zum Zeitstempel des Empfangs des Gerätes kann die Beobachtungseinheit auch ihre aktuelle Position, einen Hinweis auf kürzlich beobachtete Hakenvorrichtungen und/oder andere Informationen kommunizieren, die von der Prüfeinheit verwendet werden können, um bei der Ausführung der gewünschten Funktionalität zu unterstützen.
  • Als ein weiteres Beispiel kann die Beobachtungseinheit eine lokale Abfrage und Aktion 412 durchführen, als Reaktion auf den Hinweis der Zugehörigkeit des Bakenidentifizierers 402 zu dem Satz der Bakenidentifizierer, der für die Generierung des probabilistischen Filters verwendet wurde. Die lokale Aktion 412 kann zum Beispiel die Weiterleitung des Bakenidentifizierers 402 an eine bestimmte Anwendung, die dem probabilistischen Filter, dem der Bakenidentifizierer 402 entspricht, zugeordnet ist.
  • Es können auch andere Aktionen gesetzt werden, zum Beispiel unabhängig vom Bakenidentifizierer 402, wenn der Bakenidentifizierer 402 nicht zu einem Satz von Identifizierern, der durch einen Filter in der Beobachtungseinheit repräsentiert ist, gehört.
  • Außerdem obwohl der Bakenidentifizierer 402 in 4 im Vergleich zu einem einfachen Filter dargestellt ist, kann in einigen Ausführungsformen der vorliegenden Offenbarung die Beobachtungseinheit eine Vielzahl von anderen probabilistischen Filtern, die basierend auf abweichenden Sätzen von Bakenidentifizierern generiert wurden, empfangen oder auf andere Weise verwalten.
  • In einigen Ausführungsformen kann beispielsweise die Vielzahl von probabilistischen Filtern auf einer Beobachtungseinheit in einer hierarchischen Konfiguration organisiert sein. Dadurch ist eine effizientere Zugehörigkeitsbestimmung möglich. Filter können zum Beispiel kombiniert sein (OR), um aus konkreteren Filtern allgemeinere Filter zu machen. Als ein weiteres Beispiel können Filter gestapelt werden (AND), um aus allgemeinen Filtern exklusivere Filter zu erstellen. Filter können auch kaskadiert werden, um zunehmend mehr Selektivität zu erzeugen.
  • So können probabilistische Filter verwendet werden, um Beobachtungseinheiten die Möglichkeit zu geben, die Verarbeitung der Bakenidentifizierer zum Teil lokal durchzuführen, wodurch unnötige Kommunikationen zwischen den Beobachtungseinheiten und der Prüfeinheit reduziert werden. Die Verwendung von probabilistischen Filtern kann den Speicherbedarf stark reduzieren und in Fällen, in denen die Bakenidentifizierer verschlüsselt werden, der Beobachtungseinheit ermöglichen, lokal eine geeignete Aktion als Antwort auf einen verschlüsselten Identifizierer zu bestimmen, ohne die genaue Identität der entsprechenden Hakenvorrichtung kennen zu müssen.
  • Die hier besprochene Technologie nimmt Bezug auf Server, Datenbanken, Softwareanwendungen, und sonstige computergestützte Systeme, sowie auch unternommene Handlungen und die an und von derartigen Systemen und gesendeten Informationen. Der Durchschnittsfachmann auf diesem Gebiet wird erkennen, dass die naturgemäße Flexibilität computergestützter Systeme eine große Vielfalt an möglichen Konfigurationen, Kombinationen und der Aufteilung von Aufgaben und Funktionalitäten zwischen und unter den Komponenten ermöglicht. Die hierin diskutierten Serverprozesse können beispielsweise unter Verwendung eines einzelnen Servers oder mehrerer in Kombination betriebener Server umgesetzt werden. Datenbanken und Anwendungen können auf einem einzigen System oder auf mehrere Systeme verteilt, implementiert werden. Verteilte Komponenten können sequenziell oder parallel betrieben werden.
  • Weiterhin, bezieht sich der Begriff „Computer” wie hierin verwendet, auf ein elektronisches Gerät für die Speicherung und die Verarbeitung von Daten. Jeder Computer kann einen oder mehrere Prozessoren und einen Speicher beinhalten. Der Speicher kann Befehle speichern, die, wenn sie durch den einen oder die mehreren Prozessoren implementiert sind, den einen oder die mehreren Prozessoren veranlassen, für eine bestimmte Funktionalität bestimmte Operationen auszuführen. Außerdem können in manchen Fällen Recheneinrichtungen ein oder mehrere Module implementieren, um eine bestimmte Funktionalität bereitzustellen. Der Begriff „Modul” bezieht sich auf eine Computerlogik, die verwendet wird, um die erwünschte Funktionalität bereitzustellen, die verwendet wird, um die erwünschte Funktionalität bereitzustellen. Daher kann ein Modul in Hardware, Firmware bzw. Software, die einen Allzweck-Prozessor steuert, implementiert werden. In einer Ausführungsform sind Module Programmcodedateien, die auf einer Speichervorrichtung gespeichert, auf einen Speicher geladen und von einem Prozessor ausgeführt werden, oder die von Computerprogrammprodukten, wie etwa computerausführbaren Anweisungen, bereitgestellt werden können, die auf einem physisch greifbaren rechnerlesbaren Speichermedium, wie etwa RAM, einer Festplatte, oder einem optischen oder magnetischen Datenträger gespeichert werden können.
  • Obwohl der vorliegende Erfindungsgegenstand im Detail unter Bezugnahme auf seine spezifischen exemplarischen Ausführungsformen und Verfahren beschrieben wurde, ist erkennbar, dass der Fachmann mit dem Verständnis des Vorstehenden leicht Änderungen an den Varianten und Äquivalenten dieser Ausführungsformen erzeugen kann. Demgemäß ist der Umfang der vorliegenden Offenlegung nur exemplarisch und nicht begrenzend, und die betroffene Offenbarung schließt die Einbeziehung solcher Modifizierungen, Varianten und/oder Hinzufügungen des vorliegenden Gegenstands nicht aus, die für Fachleute problemlos offensichtlich sind.

Claims (20)

  1. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien, das bzw. die Anweisungen speichert bzw. speichern, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Vorgänge durchführen, wobei die Vorgänge unter Verwendung probabilistischer Filter Folgendes umfassen: das Empfangen, durch einen oder mehrere Computer, einer Vielzahl von Filterteilen von einer Prüfeinheit, wobei die Vielzahl von Filterteilen einer Reihe von Bakenidentifizierer entspricht, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind; Die Speicherung der Vielzahl von Filterteilen in einen probabilistischen Filter, durch den einen oder die mehreren Rechenvorrichtungen; das Empfangen eines ersten Bakenidentifizierers einer ersten Bakenvorrichtung durch den einen oder die mehreren Rechenvorrichtungen; das Anwenden durch den einen oder die mehreren Rechenvorrichtungen, einer Vielzahl von Hashfunktionen auf den ersten Bakenidentifizierer, um eine Vielzahl von hash-codierten Identifizierern zu erhalten; die Abfrage des probabilistischen Filters unter Verwendung der Vielzahl von hash-codierten Identifizierern durch den einen oder die mehreren Rechenvorrichtungen, um festzustellen, ob der erste Bakenidentifizierer ein Element der Gruppe der Bakenidentifizierer ist.
  2. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 1, des Weiteren umfassend das Verwerfen des ersten Bakenidentifizierers durch den einen oder die mehreren Recheneinrichtungen, wenn der probabilistische Filter angibt, dass der erste Bakenidentifizierer nicht ein Element der Gruppe der Bakenidentifizierer ist
  3. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 1, des Weiteren umfassend, das Ausführen einer oder mehrerer Operationen, die dem probabilistischen Filter zugeordnet sind, durch den einen oder die mehreren Recheneinrichtungen, wenn der probabilistische Filter angibt, dass der erste Bakenidentifizierer ein Element der Gruppe der Bakenidentifizierer ist.
  4. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 3, worin die eine oder die mehreren Operationen, die dem probabilistischen Filter zugeordnet sind, die Weiterleitung des Bakenidentifizierers durch den einen oder die mehreren Recheneinrichtungen an eine bestimmte Anwendung, die dem probabilistischen Filter zugeordnet ist, umfassen.
  5. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 1, worin die Vielzahl der Hashfunktionen eine Vielzahl von Bit-Slicing-Funktionen umfasst, die jeweils ein oder mehrere Bits vom Bakenidentifizierer, der hash-codiert wird, auswählen.
  6. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 1, des Weiteren umfassend: das Verschlüsseln durch den einen oder die mehreren Recheneinrichtungen des ersten Bakenidentifizierers mit einem Zugangsschlüssel, um einen verschlüsselten Identifizierer zu erhalten, vor der Anwendung der Vielzahl von Hashfunktionen durch den einen oder die mehreren Recheneinrichtungen; worin das Anwenden der Vielzahl von Hashfunktionen durch den einen oder die mehreren Rechenvorrichtungen auf den ersten Bakenidentifizierer, um die Vielzahl von hash-codierten Identifizierern zu erhalten, das Anwenden der Vielzahl von Hashfunktionen auf den verschlüsselten Identifizierer umfasst., um die Vielzahl der hash-codierten Identifizierer zu erhalten
  7. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 6, worin der Zugangsschlüssel spezifisch für eine Beobachtungseinheit, die das Verfahren ausführt, ist.
  8. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 7, worin der Zugangsschlüssel ein gemeinsames Geheimnis zwischen der Beobachtungseinheit und der Prüfeinheit umfasst.
  9. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 1, worin das Verfahren Folgendes umfasst: die Vielzahl von Hashfunktionen verwenden einen Zugangsschlüssel, um die Vielzahl von hash-codierten Identifizierern zu bestimmen; und der Zugangsschlüssel ist spezifisch für eine Beobachtungseinheit, die das Verfahren ausführt.
  10. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 1, worin der Satz von Bakenidentifizierern, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind, einen Satz von statischen Identifizierern, die jeweils der Vielzahl von Bakenvorrichtungen zugeordnet sind, umfasst.
  11. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien für die Verwendung probabilistischer Filter, das Verfahren umfassend: das Empfangen einer Vielzahl von Filterteilen einer Prüfeinheit von einem oder mehreren Computer, wobei die Vielzahl von Filterteilen einer Vielzahl von Bakenidentifizierern entspricht, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind und die Vielzahl von Bakenvorrichtungen ein oder mehrere Kriterien, die jeweils ein oder mehrere Attribute von Bakenvorrichtung definieren, erfüllen; Die Speicherung der Vielzahl von Filterteilen in einen probabilistischen Filter, durch den einen oder die mehreren Rechenvorrichtungen; das Empfangen eines ersten Bakenidentifizierers einer ersten Bakenvorrichtung durch den einen oder die mehreren Rechenvorrichtungen; die Anwendung einer Vielzahl von Hashfunktionen auf den ersten Bakenidentifizierer durch den einen oder die mehreren Computer, um eine Vielzahl von hash-codierten Identifizierern zu erhalten; und die Abfrage des probabilistischen Filters durch den einen oder die mehreren Computer, unter Verwendung der Vielzahl von hash-codierten Identifizierern, um einen Hinweis zu erhalten, ob der erste Bakenidentifizierer ein Element eines Satzes von Bakenidentifizierern ist, der die Vielzahl von Bakenidentifizierern beinhaltet.
  12. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 11, worin das Verfahren Folgendes umfasst: das eine oder die mehreren Kriterien umfassen eine Zeitspanne; die Vielzahl der Bakenidentifizierer umfasst eine Vielzahl von flüchtigen Identifizierern; und jeder flüchtige Identifizierer ist eine gültige Repräsentation einer entsprechenden Bakenvorrichtung für eine gegebene Zeitspanne, sodass die entsprechende Bakenvorrichtung für den probabilistischen Filter nur während dieser Zeitspanne erkennbar ist.
  13. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 11, worin das Verfahren Folgendes umfasst: das eine oder die mehreren Kriterien umfassen ein oder mehrere geographische Regionen; und die Vielzahl von Bakenvorrichtungen umfassen Bakenvorrichtungen, die innerhalb der einen oder mehreren geographische Regionen liegen.
  14. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien Anspruch 11, worin das eine oder die mehreren Kriterien ein Thema oder eine Kategorie umfassen.
  15. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 14, worin das Thema oder die Kategorie eine Warenkategorie umfasst.
  16. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 14, worin das eine oder die mehreren Kriterien eine Beziehung zwischen den Bakenvorrichtungen und einer bestimmten Anwendung einer Vielzahl von Anwendungen umfassen.
  17. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 11, worin das eine oder die mehreren Kriterien eine Beziehung zwischen den Bakenvorrichtungen und einem Benutzer, der dem einen oder den mehreren Computer zugeordnet ist, umfassen.
  18. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 17, worin die Vielzahl von Bakenvorrichtungen Bakenvorrichtungen umfasst, von denen bekannt ist, dass sie für den Benutzer interessant sind.
  19. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien nach Anspruch 11, des Weiteren umfassend das Senden einer Suchanfrage an die Prüfeinheit durch den einen oder die mehreren Recheneinrichtungen vor dem Empfangen der Vielzahl von Filterteilen der Prüfeinheit durch einen oder mehrere Recheneinrichtungen, worin die Suchanfrage das eine oder die mehreren Kriterien spezifiziert.
  20. Nicht-transitorisches computerlesbares Medium oder mehrere nicht-transitorische computerlesbare Medien, das bzw. die Anweisungen speichert bzw. speichern, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Vorgänge durchführen, wobei die Vorgänge Folgendes umfassen: das Abfragen einer Vielzahl von Bakenidentifizierern, die jeweils einer Vielzahl von Bakenvorrichtungen zugeordnet sind; das Bestimmen einer Vielzahl von Filterteilen für jeden Bakenidentifizierer durch Anwendung einer Vielzahl von Hashfunktionen auf jeden Bakenidentifizierer; und die Bereitstellung der Vielzahl von Filterteilen für jeden Bakenidentifizierer für die lokale Speicherung in einem probabilistischen Filter in einer Beobachtungseinheit, sodass die Beobachtungseinheit den probabilistischen Filter abfragen kann, um einen Hinweis zu erhalten, ob ein empfangener Identifizierer ein Element eines Satzes ist, der die Vielzahl von Bakenidentifizierern beinhaltet.
DE202015009156.3U 2014-06-10 2015-05-14 Probabilistisches filtern und gruppieren von Nachrichten Active DE202015009156U1 (de)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201462010012P 2014-06-10 2014-06-10
US201462010053P 2014-06-10 2014-06-10
US62/010,012 2014-06-10
US62/010,053 2014-06-10
US14/559,388 US9912594B2 (en) 2014-06-10 2014-12-03 Probabilistic message filtering and grouping
US14/559,388 2014-12-03

Publications (1)

Publication Number Publication Date
DE202015009156U1 true DE202015009156U1 (de) 2016-11-04

Family

ID=54770459

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009156.3U Active DE202015009156U1 (de) 2014-06-10 2015-05-14 Probabilistisches filtern und gruppieren von Nachrichten

Country Status (3)

Country Link
US (2) US9912594B2 (de)
DE (1) DE202015009156U1 (de)
WO (1) WO2015191222A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3213485A1 (de) * 2014-10-31 2017-09-06 Assa Abloy AB Pseudonyme näherungsstandortvorrichtung
US9635021B2 (en) * 2014-12-18 2017-04-25 Intel Corporation Trusted ephemeral identifier to create a group for a service and/or to provide the service
US9788257B2 (en) * 2015-03-27 2017-10-10 Samsung Electronics Co., Ltd. Method and system for dynamically forming service aware bluetooth low energy (BLE) mesh network
US9743252B2 (en) * 2015-06-11 2017-08-22 Honeywell International Inc. System and method for locating devices in predetermined premises
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10997557B2 (en) 2016-10-14 2021-05-04 Slack Technologies, Inc. Method, apparatus, and computer program product for authorizing and authenticating user communication within an enterprise group-based communication platform
US10541825B2 (en) 2017-07-20 2020-01-21 Slack Technologies, Inc. Method, apparatus and computer program product for generating externally shared communication channels
US11341093B2 (en) 2017-07-20 2022-05-24 Slack Technologies, Llc Method, apparatus and computer program product for generating externally shared communication channels
US10402371B2 (en) * 2017-07-20 2019-09-03 Slack Technologies, Inc. Method, apparatus and computer program product for generating externally shared communication channels
US10455519B1 (en) * 2018-09-19 2019-10-22 International Business Machines Corporation Broadcast message transmission
US10346378B1 (en) 2018-11-30 2019-07-09 Slack Technologies, Inc. Data storage architecture for an enterprise communication system
EP3681058A1 (de) * 2019-01-08 2020-07-15 Linde GmbH Verfahren zur vorrichtungspositionsidentifikation unter verwendung von signalen mit variabler signalstärke
US10749832B1 (en) * 2019-01-31 2020-08-18 Slack Technologies, Inc. Methods and apparatuses for managing limited engagement by external email resource entity within a group-based communication system
US11455318B2 (en) * 2019-02-19 2022-09-27 Microsoft Technology Licensing, Llc Data replication using probabilistic replication filters
US11012414B2 (en) 2019-04-30 2021-05-18 Centripetal Networks, Inc. Methods and systems for prevention of attacks associated with the domain name system
US11012417B2 (en) 2019-04-30 2021-05-18 Centripetal Networks, Inc. Methods and systems for efficient packet filtering
CN114902607A (zh) * 2019-11-22 2022-08-12 向心网络公司 防止与域名系统相关联的攻击的方法和系统
US11115782B2 (en) * 2019-12-19 2021-09-07 Zebra Technologies Corporation Configuring a wireless mesh network for locationing
CN111356088B (zh) * 2020-03-16 2021-09-21 无锡市铖月科技有限公司 设备控制方法、设备、通信控制电路及存储介质
US11621828B1 (en) * 2021-09-23 2023-04-04 Google Llc Privately querying a database with private set membership using succinct filters
US11914616B1 (en) 2022-12-16 2024-02-27 Alchemy Insights, Inc. Systems and methods for creating a consistent blockchain including block commitment determinations
US11769143B1 (en) 2022-12-22 2023-09-26 Alchemy Insights, Inc. System and method for high performance providing fresh NFT metadata
US11816021B1 (en) 2022-12-22 2023-11-14 Alchemy Insights, Inc. System and method for intelligent testing of blockchain applications using a shadow system
US11811955B1 (en) * 2022-12-23 2023-11-07 Alchemy Insights, Inc. Systems and methods for improving reliability in blockchain networks using sharding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7342895B2 (en) 2004-01-30 2008-03-11 Mark Serpa Method and system for peer-to-peer wireless communication over unlicensed communication spectrum
US8630281B2 (en) 2007-07-10 2014-01-14 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
US20090131079A1 (en) * 2007-11-16 2009-05-21 Symbol Technologies, Inc. Methods and systems for delivering information to mobile devices
US8606873B2 (en) 2008-06-27 2013-12-10 Qualcomm Incorporated Methods and apparatus for securely advertising identification and/or discovery information
EP2166799A1 (de) 2008-09-19 2010-03-24 NTT DoCoMo, Inc. Verfahren und Vorrichtung zum Umsetzen eines virtuellen Netzwerks
US8305271B2 (en) * 2010-03-17 2012-11-06 Microsoft Corporation Cuckoo hashing to store beacon reference data
US20130204415A1 (en) * 2011-03-25 2013-08-08 Verisign, Inc. Systems and methods for using signal-derived segmented identifiers to manage resource contention and control access to data and functions
US8462781B2 (en) * 2011-04-06 2013-06-11 Anue Systems, Inc. Systems and methods for in-line removal of duplicate network packets
GB2488847B (en) 2011-07-28 2014-01-29 Renesas Mobile Corp Methods, apparatus and computer programs for compiling a beacon and filtering received beacons
US8880880B2 (en) 2011-07-29 2014-11-04 Qualcomm Incorporated Facilitating access control in peer-to-peer overlay networks
US10878439B2 (en) * 2012-06-11 2020-12-29 Retailmenot, Inc. Mobile-offer creation
US20140172309A1 (en) * 2012-12-14 2014-06-19 Lifescan Scotland Limited Context aware blood glucose measurement system
US20140282620A1 (en) * 2013-03-15 2014-09-18 Frank Settemo NUOVO System and method for triggering an event in response to receiving a device identifier
US20150227969A1 (en) * 2014-02-11 2015-08-13 Stubhub, Inc. Systems and methods for managing seating locations and preferences

Also Published As

Publication number Publication date
US20180198714A1 (en) 2018-07-12
US10623318B2 (en) 2020-04-14
US20150358234A1 (en) 2015-12-10
WO2015191222A1 (en) 2015-12-17
US9912594B2 (en) 2018-03-06

Similar Documents

Publication Publication Date Title
DE202015009156U1 (de) Probabilistisches filtern und gruppieren von Nachrichten
DE202015009157U1 (de) Systeme zur Erzeugung und Verwendung von flüchtigen Kennungen und Message Intergrity Codes
CN110795477A (zh) 数据的训练方法及装置、系统
DE112016001075T5 (de) Verteiltes speichern und abrufen von datensätzen
DE102014007329A1 (de) Einrichtung und Verfahren zum Absichern von Baken
DE112018000779T5 (de) Tokenbereitstellung für Daten
DE112017005885T5 (de) Datenverwaltung in einem Informationszentrierten Netzwerk
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE202014011624U1 (de) Geräte zum Sammeln von verteilten Benutzerinformationen für Medienabdrücke und Suchbegriffe
DE112015003750T5 (de) Systeme und verfahren zum verschleierten messen von publikum
DE102019103927A1 (de) Systeme und Verfahren zur Ausführung eines Sicherheitsprotokolls in einem durch hierarchische Zustandsautomaten gesteuerten Ausführungsplan
DE112004000271T5 (de) Datenerfassung,-bündelung und -optimierung auf der Basis offener Netze zum Gebrauch in Prozess-Steuersystemen
DE102010036511A1 (de) Prozesssteuerungssystem mit integrierten externen Datenquellen
DE112010003661T5 (de) Flexible Broadcast-Authentifizierung in Ressourcen-beschränkten Systemen: Bereitstellen einesKompromisses zwischen Kommunikationsaufwand und Rechenaufwand
DE112017007393T5 (de) System und verfahren für netzwerkvorrichtungssicherheits- und vertrauenswertbestimmung
US10430441B1 (en) Tagging resources of a remote computing service based on locality
DE202012013405U1 (de) Cloud-zu Gerät-Nachrichtenübermittlung zur Anwendungsaktivierung und Meldung
DE112018003350T5 (de) Vorrichtung und Verfahren zur Echtzeit-Sammlung von beweiserheblichen Daten im Bereich der öffentlichen Sicherheit
DE112018001616T5 (de) Sichere systeme und verfahren für abtastbare codes
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE112018007468T5 (de) Geheime-Suche-Einrichtung und Geheime-Suche-Verfahren
CN105491078B (zh) Soa系统中的数据处理方法及装置、soa系统
DE112016002207T5 (de) Erstellung und verwaltung von ladenbesuchsdaten
DE102017213160A1 (de) Kompilierung für knotenvorrichtungs-GPU-basierte Parallelverarbeitung
DE112022003844T5 (de) Regulierungsmechanismen für künstliche intelligenz

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years